-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Update bash #8711
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Update bash #8711
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Changes: - tianon/docker-bash@ffa5831: Merge pull request tianon/docker-bash#22 from tianon/jq-template - tianon/docker-bash@7d80c7c: Add initial jq-based templating engine
Diff for 67a682d:diff --git a/_bashbrew-cat b/_bashbrew-cat
index 6e00668..f6bdd8d 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -3,55 +3,55 @@ GitRepo: https://github.com/tianon/docker-bash.git
Tags: 3.0.22, 3.0
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 3.0
Tags: 3.1.23, 3.1
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 3.1
Tags: 3.2.57, 3.2, 3
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 3.2
Tags: 4.0.44, 4.0
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 4.0
Tags: 4.1.17, 4.1
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 4.1
Tags: 4.2.53, 4.2
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 4.2
Tags: 4.3.48, 4.3
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 4.3
Tags: 4.4.23, 4.4, 4
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 2d420e498d46e7241dd16e3185c8696a1f8eef36
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 4.4
Tags: 5.0.18, 5.0, 5, latest
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 8d5bcd5f1a8a84662fa34ba674282a7fc7451965
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 5.0
Tags: 5.1-beta, 5.1-rc, rc
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 59513ccf13a99b69d25e794339e82dee4eb6f93b
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: 5.1-rc
Tags: devel-20200901, devel
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 42bd54fd2155c19cb6e0ae232a831d1785900da7
+GitCommit: 7d80c7cc5d829b6be9e04b6b2cba98a228fb67db
Directory: devel
diff --git a/bash_3.0/Dockerfile b/bash_3.0/Dockerfile
index d3abade..edb6f0b 100644
--- a/bash_3.0/Dockerfile
+++ b/bash_3.0/Dockerfile
@@ -1,12 +1,16 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 3.0
-ENV _BASH_PATCH_LEVEL 16
-# https://ftp.gnu.org/gnu/bash/bash-3.1-patches/?C=M;O=D
+ENV _BASH_VERSION 3.0.22
+ENV _BASH_BASELINE 3.0.16
+ENV _BASH_BASELINE_PATCH 16
+# https://ftp.gnu.org/gnu/bash/bash-3.0-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 22
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,36 +21,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -55,7 +56,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -67,6 +70,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -76,6 +80,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -103,8 +108,11 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
+ /usr/local/share/doc/bash/*.html \
+ /usr/local/share/info \
/usr/local/share/locale \
+ /usr/local/share/man \
; \
\
runDeps="$( \
@@ -113,13 +121,14 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
# for some reason, 3.0.xx manifests as 3.00.xx (hence the extra "0" added in the following check)
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION}0.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION//.0./.00.}" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_3.1/Dockerfile b/bash_3.1/Dockerfile
index 54ad010..d553181 100644
--- a/bash_3.1/Dockerfile
+++ b/bash_3.1/Dockerfile
@@ -1,11 +1,14 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 3.1
-ENV _BASH_PATCH_LEVEL 0
+ENV _BASH_VERSION 3.1.23
+ENV _BASH_BASELINE 3.1
# https://ftp.gnu.org/gnu/bash/bash-3.1-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 23
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,36 +20,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -55,7 +55,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -67,6 +69,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -76,6 +79,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -103,8 +107,11 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
+ /usr/local/share/doc/bash/*.html \
+ /usr/local/share/info \
/usr/local/share/locale \
+ /usr/local/share/man \
; \
\
runDeps="$( \
@@ -113,12 +120,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_3/Dockerfile b/bash_3/Dockerfile
index bf257bd..6c35c34 100644
--- a/bash_3/Dockerfile
+++ b/bash_3/Dockerfile
@@ -1,11 +1,15 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 3.2
-ENV _BASH_PATCH_LEVEL 57
+ENV _BASH_VERSION 3.2.57
+ENV _BASH_BASELINE 3.2.57
+ENV _BASH_BASELINE_PATCH 57
# https://ftp.gnu.org/gnu/bash/bash-3.2-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 57
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,36 +21,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -55,7 +56,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -67,6 +70,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -76,6 +80,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -103,8 +108,11 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
+ /usr/local/share/doc/bash/*.html \
+ /usr/local/share/info \
/usr/local/share/locale \
+ /usr/local/share/man \
; \
\
runDeps="$( \
@@ -113,12 +121,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_4.0/Dockerfile b/bash_4.0/Dockerfile
index bdbc703..8c96fd9 100644
--- a/bash_4.0/Dockerfile
+++ b/bash_4.0/Dockerfile
@@ -1,11 +1,14 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 4.0
-ENV _BASH_PATCH_LEVEL 0
+ENV _BASH_VERSION 4.0.44
+ENV _BASH_BASELINE 4.0
# https://ftp.gnu.org/gnu/bash/bash-4.0-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 44
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -13,41 +16,37 @@ ENV _BASH_LATEST_PATCH 44
RUN set -eux; \
\
apk add --no-cache --virtual .build-deps \
- autoconf \
bison \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -56,7 +55,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -68,6 +69,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -77,6 +79,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -96,6 +99,9 @@ RUN set -eux; \
cat >&2 config.log; \
false; \
}; \
+# in https://ftp.gnu.org/gnu/bash/bash-4.0-patches/bash40-037, "configure.in" is patched, resulting in https://git.savannah.gnu.org/cgit/bash.git/tree/Makefile.in?h=bash-4.0#n705 trying to rebuild "configure" via "autoconf"
+# however, bash40-037 is only relevant on Darwin / OS X, so we can safely use "touch configure" to fool "make" into thinking "configure" is up-to-date instead
+ touch configure; \
# parallel jobs workaround borrowed from Alpine :)
make y.tab.c; make builtins/libbuiltins.a; \
make -j "$(nproc)"; \
@@ -104,7 +110,8 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
+ /usr/local/share/doc/bash/*.html \
/usr/local/share/info \
/usr/local/share/locale \
/usr/local/share/man \
@@ -116,12 +123,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_4.1/Dockerfile b/bash_4.1/Dockerfile
index f8d5c34..652d389 100644
--- a/bash_4.1/Dockerfile
+++ b/bash_4.1/Dockerfile
@@ -1,11 +1,14 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 4.1
-ENV _BASH_PATCH_LEVEL 0
+ENV _BASH_VERSION 4.1.17
+ENV _BASH_BASELINE 4.1
# https://ftp.gnu.org/gnu/bash/bash-4.1-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 17
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,36 +20,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -55,7 +55,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -67,6 +69,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -76,6 +79,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -101,7 +105,8 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
+ /usr/local/share/doc/bash/*.html \
/usr/local/share/info \
/usr/local/share/locale \
/usr/local/share/man \
@@ -113,12 +118,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_4.2/Dockerfile b/bash_4.2/Dockerfile
index 56bfde9..c2075c2 100644
--- a/bash_4.2/Dockerfile
+++ b/bash_4.2/Dockerfile
@@ -1,11 +1,15 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 4.2
-ENV _BASH_PATCH_LEVEL 53
+ENV _BASH_VERSION 4.2.53
+ENV _BASH_BASELINE 4.2.53
+ENV _BASH_BASELINE_PATCH 53
# https://ftp.gnu.org/gnu/bash/bash-4.2-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 53
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,36 +21,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -55,7 +56,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -67,6 +70,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -76,6 +80,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -101,7 +106,8 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
+ /usr/local/share/doc/bash/*.html \
/usr/local/share/info \
/usr/local/share/locale \
/usr/local/share/man \
@@ -113,12 +119,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_4.3/Dockerfile b/bash_4.3/Dockerfile
index d63dfba..a686722 100644
--- a/bash_4.3/Dockerfile
+++ b/bash_4.3/Dockerfile
@@ -1,11 +1,15 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 4.3
-ENV _BASH_PATCH_LEVEL 30
+ENV _BASH_VERSION 4.3.48
+ENV _BASH_BASELINE 4.3.30
+ENV _BASH_BASELINE_PATCH 30
# https://ftp.gnu.org/gnu/bash/bash-4.3-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 48
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,37 +21,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gettext-dev \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -56,7 +56,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -68,6 +70,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -77,6 +80,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -102,7 +106,7 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
/usr/local/share/doc/bash/*.html \
/usr/local/share/info \
/usr/local/share/locale \
@@ -115,12 +119,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_4/Dockerfile b/bash_4/Dockerfile
index 263ee18..2bcc486 100644
--- a/bash_4/Dockerfile
+++ b/bash_4/Dockerfile
@@ -1,11 +1,15 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 4.4
-ENV _BASH_PATCH_LEVEL 18
+ENV _BASH_VERSION 4.4.23
+ENV _BASH_BASELINE 4.4.18
+ENV _BASH_BASELINE_PATCH 18
# https://ftp.gnu.org/gnu/bash/bash-4.4-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 23
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,37 +21,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gettext-dev \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -56,7 +56,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -68,6 +70,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -77,6 +80,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -102,7 +106,7 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
/usr/local/share/doc/bash/*.html \
/usr/local/share/info \
/usr/local/share/locale \
@@ -115,12 +119,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_devel/Dockerfile b/bash_devel/Dockerfile
index 150bb65..0f2c30d 100644
--- a/bash_devel/Dockerfile
+++ b/bash_devel/Dockerfile
@@ -1,8 +1,14 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+
FROM alpine:3.12
# https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel
ENV _BASH_COMMIT f43f678557d150aeca89836812ccfac506718280
-ENV _BASH_COMMIT_DESC commit bash-20200901 snapshot
+ENV _BASH_VERSION devel-20200901
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
RUN set -eux; \
@@ -30,6 +36,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -39,6 +46,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -60,10 +68,10 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
/usr/local/share/doc/bash/*.html \
/usr/local/share/info \
-# /usr/local/share/locale \
+ /usr/local/share/locale \
/usr/local/share/man \
; \
\
@@ -73,11 +81,12 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
- bash --version
+ bash --version; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_latest/Dockerfile b/bash_latest/Dockerfile
index da34405..f607bcc 100644
--- a/bash_latest/Dockerfile
+++ b/bash_latest/Dockerfile
@@ -1,11 +1,14 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
-ENV _BASH_VERSION 5.0
-ENV _BASH_PATCH_LEVEL 0
+ENV _BASH_VERSION 5.0.18
+ENV _BASH_BASELINE 5.0
# https://ftp.gnu.org/gnu/bash/bash-5.0-patches/?C=M;O=D
ENV _BASH_LATEST_PATCH 18
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
@@ -17,36 +20,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -55,7 +55,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -67,6 +69,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -76,6 +79,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -97,7 +101,7 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
/usr/local/share/doc/bash/*.html \
/usr/local/share/info \
/usr/local/share/locale \
@@ -110,12 +114,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "$_BASH_VERSION" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/bash_rc/Dockerfile b/bash_rc/Dockerfile
index 17e9d7c..c1325fc 100644
--- a/bash_rc/Dockerfile
+++ b/bash_rc/Dockerfile
@@ -1,13 +1,14 @@
-FROM alpine:3.12
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
-# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
-ENV _BASH_GPG_KEY 7C0135FB088AAF6C66C650B9BB5869F064EA74AB
+FROM alpine:3.12
# https://ftp.gnu.org/gnu/bash/?C=M;O=D
ENV _BASH_VERSION 5.1-beta
-ENV _BASH_PATCH_LEVEL 0
-# https://ftp.gnu.org/gnu/bash/bash-5.0-patches/?C=M;O=D
-ENV _BASH_LATEST_PATCH 0
+ENV _BASH_BASELINE 5.1-beta
# prefixed with "_" since "$BASH..." have meaning in Bash parlance
RUN set -eux; \
@@ -17,36 +18,33 @@ RUN set -eux; \
coreutils \
dpkg-dev dpkg \
gcc \
- gnupg \
libc-dev \
make \
ncurses-dev \
- patch \
tar \
; \
\
- version="$_BASH_VERSION"; \
- if [ "$_BASH_PATCH_LEVEL" -gt 0 ]; then \
- version="$version.$_BASH_PATCH_LEVEL"; \
- fi; \
- wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz"; \
- wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$version.tar.gz.sig"; \
+ wget -O bash.tar.gz "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz"; \
+ wget -O bash.tar.gz.sig "https://ftp.gnu.org/gnu/bash/bash-$_BASH_BASELINE.tar.gz.sig"; \
\
- if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_PATCH_LEVEL" ]; then \
+ : "${_BASH_BASELINE_PATCH:=0}" "${_BASH_LATEST_PATCH:=0}"; \
+ if [ "$_BASH_LATEST_PATCH" -gt "$_BASH_BASELINE_PATCH" ]; then \
mkdir -p bash-patches; \
- first="$(printf '%03d' "$(( _BASH_PATCH_LEVEL + 1 ))")"; \
+ first="$(printf '%03d' "$(( _BASH_BASELINE_PATCH + 1 ))")"; \
last="$(printf '%03d' "$_BASH_LATEST_PATCH")"; \
+ majorMinor="${_BASH_VERSION%.*}"; \
for patch in $(seq -w "$first" "$last"); do \
- url="https://ftp.gnu.org/gnu/bash/bash-$_BASH_VERSION-patches/bash${_BASH_VERSION//./}-$patch"; \
+ url="https://ftp.gnu.org/gnu/bash/bash-$majorMinor-patches/bash${majorMinor//./}-$patch"; \
wget -O "bash-patches/$patch" "$url"; \
wget -O "bash-patches/$patch.sig" "$url.sig"; \
done; \
fi; \
\
+ apk add --no-cache --virtual .gpg-deps gnupg; \
export GNUPGHOME="$(mktemp -d)"; \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$_BASH_GPG_KEY"; \
+# gpg: key 64EA74AB: public key "Chet Ramey <[email protected]>" imported
+ gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 7C0135FB088AAF6C66C650B9BB5869F064EA74AB; \
gpg --batch --verify bash.tar.gz.sig bash.tar.gz; \
- gpgconf --kill all; \
rm bash.tar.gz.sig; \
if [ -d bash-patches ]; then \
for sig in bash-patches/*.sig; do \
@@ -55,7 +53,9 @@ RUN set -eux; \
rm "$sig"; \
done; \
fi; \
+ gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
+ apk del --no-network .gpg-deps; \
\
mkdir -p /usr/src/bash; \
tar \
@@ -67,6 +67,7 @@ RUN set -eux; \
rm bash.tar.gz; \
\
if [ -d bash-patches ]; then \
+ apk add --no-cache --virtual .patch-deps patch; \
for p in bash-patches/*; do \
patch \
--directory=/usr/src/bash \
@@ -76,6 +77,7 @@ RUN set -eux; \
rm "$p"; \
done; \
rmdir bash-patches; \
+ apk del --no-network .patch-deps; \
fi; \
\
cd /usr/src/bash; \
@@ -97,10 +99,10 @@ RUN set -eux; \
rm -r /usr/src/bash; \
\
# delete a few installed bits for smaller image size
- rm -r \
+ rm -rf \
/usr/local/share/doc/bash/*.html \
/usr/local/share/info \
-# /usr/local/share/locale \
+ /usr/local/share/locale \
/usr/local/share/man \
; \
\
@@ -110,12 +112,13 @@ RUN set -eux; \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
- apk add --no-cache --virtual .bash-rundeps $runDeps; \
- apk del .build-deps; \
+ apk add --no-network --virtual .bash-rundeps $runDeps; \
+ apk del --no-network .build-deps; \
\
[ "$(which bash)" = '/usr/local/bin/bash' ]; \
bash --version; \
- [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.$_BASH_LATEST_PATCH" ];
+ [ "$(bash -c 'echo "${BASH_VERSION%%[^0-9.]*}"')" = "${_BASH_VERSION%%-*}.0" ]; \
+ bash -c 'help' > /dev/null
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes: