diff --git a/9.2/alpine/Dockerfile b/9.2/alpine/Dockerfile index b18a8ed872..03667baf5d 100644 --- a/9.2/alpine/Dockerfile +++ b/9.2/alpine/Dockerfile @@ -39,6 +39,7 @@ RUN set -ex \ \ && apk add --no-cache --virtual .build-deps \ bison \ + coreutils \ flex \ gcc \ # krb5-dev \ @@ -57,7 +58,9 @@ RUN set -ex \ util-linux-dev \ zlib-dev \ \ - && wget -O uuid.tar.gz "http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \ +# install OSSP uuid (http://www.ossp.org/pkg/lib/uuid/) +# see https://github.com/docker-library/postgres/pull/255 for more details + && wget -O uuid.tar.gz "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \ && echo "$OSSP_UUID_SHA256 *uuid.tar.gz" | sha256sum -c - \ && mkdir -p /usr/src/ossp-uuid \ && tar \ @@ -66,13 +69,15 @@ RUN set -ex \ --directory /usr/src/ossp-uuid \ --strip-components 1 \ && rm uuid.tar.gz \ - && cd /usr/src/ossp-uuid \ - && ./configure \ - --prefix=/usr \ - && make -j "$(getconf _NPROCESSORS_ONLN)"\ - && make install \ - && cd / \ + && ( \ + cd /usr/src/ossp-uuid \ + && ./configure \ + --prefix=/usr/local \ + && make -j "$(nproc)" \ + && make install \ + ) \ && rm -rf /usr/src/ossp-uuid \ + \ && cd /usr/src/postgresql \ # update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian) # see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f @@ -94,6 +99,8 @@ RUN set -ex \ --with-pgport=5432 \ --with-system-tzdata=/usr/share/zoneinfo \ --prefix=/usr/local \ + --with-includes=/usr/local/include \ + --with-libraries=/usr/local/lib \ \ # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # --with-krb5 \ @@ -106,7 +113,7 @@ RUN set -ex \ --with-openssl \ --with-libxml \ --with-libxslt \ - && make -j "$(getconf _NPROCESSORS_ONLN)" world \ + && make -j "$(nproc)" world \ && make install-world \ && make -C contrib install \ \ diff --git a/9.3/alpine/Dockerfile b/9.3/alpine/Dockerfile index c783b884a7..5f929e71ad 100644 --- a/9.3/alpine/Dockerfile +++ b/9.3/alpine/Dockerfile @@ -39,6 +39,7 @@ RUN set -ex \ \ && apk add --no-cache --virtual .build-deps \ bison \ + coreutils \ flex \ gcc \ # krb5-dev \ @@ -57,7 +58,9 @@ RUN set -ex \ util-linux-dev \ zlib-dev \ \ - && wget -O uuid.tar.gz "http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \ +# install OSSP uuid (http://www.ossp.org/pkg/lib/uuid/) +# see https://github.com/docker-library/postgres/pull/255 for more details + && wget -O uuid.tar.gz "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \ && echo "$OSSP_UUID_SHA256 *uuid.tar.gz" | sha256sum -c - \ && mkdir -p /usr/src/ossp-uuid \ && tar \ @@ -66,13 +69,15 @@ RUN set -ex \ --directory /usr/src/ossp-uuid \ --strip-components 1 \ && rm uuid.tar.gz \ - && cd /usr/src/ossp-uuid \ - && ./configure \ - --prefix=/usr \ - && make -j "$(getconf _NPROCESSORS_ONLN)"\ - && make install \ - && cd / \ + && ( \ + cd /usr/src/ossp-uuid \ + && ./configure \ + --prefix=/usr/local \ + && make -j "$(nproc)" \ + && make install \ + ) \ && rm -rf /usr/src/ossp-uuid \ + \ && cd /usr/src/postgresql \ # update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian) # see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f @@ -94,6 +99,8 @@ RUN set -ex \ --with-pgport=5432 \ --with-system-tzdata=/usr/share/zoneinfo \ --prefix=/usr/local \ + --with-includes=/usr/local/include \ + --with-libraries=/usr/local/lib \ \ # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # --with-krb5 \ @@ -106,7 +113,7 @@ RUN set -ex \ --with-openssl \ --with-libxml \ --with-libxslt \ - && make -j "$(getconf _NPROCESSORS_ONLN)" world \ + && make -j "$(nproc)" world \ && make install-world \ && make -C contrib install \ \ diff --git a/9.4/alpine/Dockerfile b/9.4/alpine/Dockerfile index 53a762ea81..c29beb513e 100644 --- a/9.4/alpine/Dockerfile +++ b/9.4/alpine/Dockerfile @@ -36,6 +36,7 @@ RUN set -ex \ \ && apk add --no-cache --virtual .build-deps \ bison \ + coreutils \ flex \ gcc \ # krb5-dev \ @@ -76,6 +77,8 @@ RUN set -ex \ --with-pgport=5432 \ --with-system-tzdata=/usr/share/zoneinfo \ --prefix=/usr/local \ + --with-includes=/usr/local/include \ + --with-libraries=/usr/local/lib \ \ # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # --with-krb5 \ @@ -88,7 +91,7 @@ RUN set -ex \ --with-openssl \ --with-libxml \ --with-libxslt \ - && make -j "$(getconf _NPROCESSORS_ONLN)" world \ + && make -j "$(nproc)" world \ && make install-world \ && make -C contrib install \ \ diff --git a/9.5/alpine/Dockerfile b/9.5/alpine/Dockerfile index 7d313e619f..fae64ec138 100644 --- a/9.5/alpine/Dockerfile +++ b/9.5/alpine/Dockerfile @@ -36,6 +36,7 @@ RUN set -ex \ \ && apk add --no-cache --virtual .build-deps \ bison \ + coreutils \ flex \ gcc \ # krb5-dev \ @@ -76,6 +77,8 @@ RUN set -ex \ --with-pgport=5432 \ --with-system-tzdata=/usr/share/zoneinfo \ --prefix=/usr/local \ + --with-includes=/usr/local/include \ + --with-libraries=/usr/local/lib \ \ # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # --with-krb5 \ @@ -88,7 +91,7 @@ RUN set -ex \ --with-openssl \ --with-libxml \ --with-libxslt \ - && make -j "$(getconf _NPROCESSORS_ONLN)" world \ + && make -j "$(nproc)" world \ && make install-world \ && make -C contrib install \ \ diff --git a/9.6/alpine/Dockerfile b/9.6/alpine/Dockerfile index c33ba38b60..2e8a296d8c 100644 --- a/9.6/alpine/Dockerfile +++ b/9.6/alpine/Dockerfile @@ -36,6 +36,7 @@ RUN set -ex \ \ && apk add --no-cache --virtual .build-deps \ bison \ + coreutils \ flex \ gcc \ # krb5-dev \ @@ -76,6 +77,8 @@ RUN set -ex \ --with-pgport=5432 \ --with-system-tzdata=/usr/share/zoneinfo \ --prefix=/usr/local \ + --with-includes=/usr/local/include \ + --with-libraries=/usr/local/lib \ \ # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # --with-krb5 \ @@ -88,7 +91,7 @@ RUN set -ex \ --with-openssl \ --with-libxml \ --with-libxslt \ - && make -j "$(getconf _NPROCESSORS_ONLN)" world \ + && make -j "$(nproc)" world \ && make install-world \ && make -C contrib install \ \ diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index 0f9787ef65..42905f8e2d 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -37,6 +37,7 @@ RUN set -ex \ \ && apk add --no-cache --virtual .build-deps \ bison \ + coreutils \ flex \ gcc \ # krb5-dev \ @@ -55,7 +56,7 @@ RUN set -ex \ util-linux-dev \ zlib-dev \ \ - %%INSTALL_OSSP_UUID%% +%%INSTALL_OSSP_UUID%% && cd /usr/src/postgresql \ # update "DEFAULT_PGSOCKET_DIR" to "/var/run/postgresql" (matching Debian) # see https://anonscm.debian.org/git/pkg-postgresql/postgresql.git/tree/debian/patches/51-default-sockets-in-var.patch?id=8b539fcb3e093a521c095e70bdfa76887217b89f @@ -78,6 +79,8 @@ RUN set -ex \ --with-pgport=5432 \ --with-system-tzdata=/usr/share/zoneinfo \ --prefix=/usr/local \ + --with-includes=/usr/local/include \ + --with-libraries=/usr/local/lib \ \ # these make our image abnormally large (at least 100MB larger), which seems uncouth for an "Alpine" (ie, "small") variant :) # --with-krb5 \ @@ -90,7 +93,7 @@ RUN set -ex \ --with-openssl \ --with-libxml \ --with-libxslt \ - && make -j "$(getconf _NPROCESSORS_ONLN)" world \ + && make -j "$(nproc)" world \ && make install-world \ && make -C contrib install \ \ diff --git a/ossp-uuid.template b/ossp-uuid.template index 7b59e3c70d..aced4977eb 100644 --- a/ossp-uuid.template +++ b/ossp-uuid.template @@ -1,4 +1,6 @@ - && wget -O uuid.tar.gz "http://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \ +# install OSSP uuid (http://www.ossp.org/pkg/lib/uuid/) +# see https://github.com/docker-library/postgres/pull/255 for more details + && wget -O uuid.tar.gz "https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/uuid-$OSSP_UUID_VERSION.tar.gz" \ && echo "$OSSP_UUID_SHA256 *uuid.tar.gz" | sha256sum -c - \ && mkdir -p /usr/src/ossp-uuid \ && tar \ @@ -7,10 +9,12 @@ --directory /usr/src/ossp-uuid \ --strip-components 1 \ && rm uuid.tar.gz \ - && cd /usr/src/ossp-uuid \ - && ./configure \ - --prefix=/usr \ - && make -j "$(getconf _NPROCESSORS_ONLN)"\ - && make install \ - && cd / \ + && ( \ + cd /usr/src/ossp-uuid \ + && ./configure \ + --prefix=/usr/local \ + && make -j "$(nproc)" \ + && make install \ + ) \ && rm -rf /usr/src/ossp-uuid \ + \ diff --git a/update.sh b/update.sh index 4d9b4e0bea..05d2308f99 100755 --- a/update.sh +++ b/update.sh @@ -12,7 +12,7 @@ versions=( "${versions[@]%/}" ) packagesBase='http://apt.postgresql.org/pub/repos/apt/dists/jessie-pgdg' mainList="$(curl -fsSL "$packagesBase/main/binary-amd64/Packages.bz2" | bunzip2)" -uuidConfigFlag="--with-uuid=e2fs" +# https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/?C=M;O=D osspUuidVersion='1.6.2' osspUuidHash='11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0' @@ -37,17 +37,29 @@ for version in "${versions[@]}"; do set -x cp docker-entrypoint.sh "$version/$variant/" sed -i 's/gosu/su-exec/g' "$version/$variant/docker-entrypoint.sh" - sed 's/%%PG_MAJOR%%/'"$version"'/g; s/%%PG_VERSION%%/'"$srcVersion"'/g; s/%%PG_SHA256%%/'"$srcSha256"'/g' Dockerfile-$variant.template > "$version/$variant/Dockerfile" - if [[ $version =~ ^9.[23]$ ]]; then - uuidConfigFlag='--with-ossp-uuid' - sed -i 's/%%OSSP_UUID_ENV_VARS%%/ENV OSSP_UUID_VERSION '"$osspUuidVersion"'\nENV OSSP_UUID_SHA256 '"$osspUuidHash"'\n/' "$version/$variant/Dockerfile" - sed -i $'/%%INSTALL_OSSP_UUID%%/ {r ossp-uuid.template\n d}' "$version/$variant/Dockerfile" - sed -i '/--enable-tap-tests/d' "$version/$variant/Dockerfile" - fi - sed -i '/%%OSSP_UUID_ENV_VARS%%/d' "$version/$variant/Dockerfile" - sed -i '/%%INSTALL_OSSP_UUID%%/d' "$version/$variant/Dockerfile" - sed -i 's/%%UUID_CONFIG_FLAG%%/'"$uuidConfigFlag"'/' "$version/$variant/Dockerfile" + sed -e 's/%%PG_MAJOR%%/'"$version"'/g' \ + -e 's/%%PG_VERSION%%/'"$srcVersion"'/g' \ + -e 's/%%PG_SHA256%%/'"$srcSha256"'/g' \ + "Dockerfile-$variant.template" > "$version/$variant/Dockerfile" + # TODO remove all this when 9.2 and 9.3 are EOL (2017-10-01 and 2018-10-01 -- from http://www.postgresql.org/support/versioning/) + case "$version" in + 9.2|9.3) + uuidConfigFlag='--with-ossp-uuid' + sed -i 's/%%OSSP_UUID_ENV_VARS%%/ENV OSSP_UUID_VERSION '"$osspUuidVersion"'\nENV OSSP_UUID_SHA256 '"$osspUuidHash"'\n/' "$version/$variant/Dockerfile" + sed -i $'/%%INSTALL_OSSP_UUID%%/ {r ossp-uuid.template\n d}' "$version/$variant/Dockerfile" + + # configure: WARNING: unrecognized options: --enable-tap-tests + sed -i '/--enable-tap-tests/d' "$version/$variant/Dockerfile" + ;; + + *) + uuidConfigFlag='--with-uuid=e2fs' + sed -i '/%%OSSP_UUID_ENV_VARS%%/d' "$version/$variant/Dockerfile" + sed -i '/%%INSTALL_OSSP_UUID%%/d' "$version/$variant/Dockerfile" + ;; + esac + sed -i 's/%%UUID_CONFIG_FLAG%%/'"$uuidConfigFlag"'/' "$version/$variant/Dockerfile" ) travisEnv="\n - VERSION=$version VARIANT=$variant$travisEnv" done