Skip to content

Commit 22f7d64

Browse files
tianonzakame
authored andcommitted
Update old Perls from jessie to stretch (and test them all in Actions)
Additionally, add buster to all of them. Finally, move all EOL versions into a completely separate `eol/` directory so that the repository is a little easier manage (and so we can limit testing of all old EOL versions to only when something inside the `eol/` directory changes).
1 parent 738a3cc commit 22f7d64

File tree

172 files changed

+21418
-129
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+21418
-129
lines changed

.github/workflows/build-image-eol.yml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Build and Test (EOL)
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
tags-ignore:
8+
- '*'
9+
paths:
10+
- 'eol/**'
11+
pull_request:
12+
paths:
13+
- 'eol/**'
14+
15+
defaults:
16+
run:
17+
shell: 'bash -Eeuo pipefail -x {0}'
18+
working-directory: eol
19+
20+
jobs:
21+
generate-matrix:
22+
name: Generate Matrix
23+
runs-on: ubuntu-latest
24+
outputs:
25+
matrix: ${{ steps.generate.outputs.matrix }}
26+
steps:
27+
- uses: actions/checkout@master
28+
- id: generate
29+
name: Enumerate Dockerfiles
30+
run: |
31+
matrix="$(dirname */Dockerfile | sort -rn | jq -csR 'rtrimstr("\n") | split("\n") | { directory: . }')"
32+
echo "::set-output name=matrix::$matrix"
33+
build-image:
34+
needs: generate-matrix
35+
runs-on: ubuntu-latest
36+
strategy:
37+
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
38+
name: ${{ matrix.directory }}
39+
steps:
40+
- uses: actions/checkout@master
41+
- name: Clone docker-library/official-images (for testing)
42+
run: |
43+
git clone --depth 1 --single-branch https://github.com/docker-library/official-images.git
44+
- name: Build image
45+
run: |
46+
docker version
47+
dir='${{ matrix.directory }}'
48+
img="perl:${dir//,/-}"
49+
docker build -t "$img" "$dir"
50+
- name: Inspect image creation and tag time
51+
run: |
52+
dir='${{ matrix.directory }}'
53+
img="perl:${dir//,/-}"
54+
docker image inspect --format '{{.Created}}' "$img"
55+
docker image inspect --format '{{.Metadata.LastTagTime}}' "$img"
56+
- name: Run tests
57+
run: |
58+
dir='${{ matrix.directory }}'
59+
img="perl:${dir//,/-}"
60+
./official-images/test/run.sh "$img"

.github/workflows/build-image.yml

+30-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build and test latest supported Perls
1+
name: Build and Test
22

33
on:
44
push:
@@ -8,13 +8,29 @@ on:
88
- '*'
99
pull_request:
1010

11+
defaults:
12+
run:
13+
shell: 'bash -Eeuo pipefail -x {0}'
14+
1115
jobs:
16+
generate-matrix:
17+
name: Generate Matrix
18+
runs-on: ubuntu-latest
19+
outputs:
20+
matrix: ${{ steps.generate.outputs.matrix }}
21+
steps:
22+
- uses: actions/checkout@master
23+
- id: generate
24+
name: Enumerate Dockerfiles
25+
run: |
26+
matrix="$(dirname */Dockerfile | sort -rn | jq -csR 'rtrimstr("\n") | split("\n") | { directory: . }')"
27+
echo "::set-output name=matrix::$matrix"
1228
build-image:
29+
needs: generate-matrix
1330
runs-on: ubuntu-latest
1431
strategy:
15-
matrix:
16-
variant: [ 'main', 'slim', 'main,threaded', 'slim,threaded' ]
17-
perl-version: [ '5.032.001', '5.030.003' ]
32+
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
33+
name: ${{ matrix.directory }}
1834
steps:
1935
- uses: actions/checkout@master
2036
- name: Clone docker-library/official-images (for testing)
@@ -23,11 +39,17 @@ jobs:
2339
- name: Build image
2440
run: |
2541
docker version
26-
docker build --no-cache -t perl:${{ matrix.perl-version }} ${{ matrix.perl-version }}-${{ matrix.variant }}-buster
42+
dir='${{ matrix.directory }}'
43+
img="perl:${dir//,/-}"
44+
docker build -t "$img" "$dir"
2745
- name: Inspect image creation and tag time
2846
run: |
29-
docker image inspect --format \'{{.Created}}\' perl:${{ matrix.perl-version }}
30-
docker image inspect --format \'{{.Metadata.LastTagTime}}\' perl:${{ matrix.perl-version }}
47+
dir='${{ matrix.directory }}'
48+
img="perl:${dir//,/-}"
49+
docker image inspect --format '{{.Created}}' "$img"
50+
docker image inspect --format '{{.Metadata.LastTagTime}}' "$img"
3151
- name: Run tests
3252
run: |
33-
./official-images/test/run.sh perl:${{ matrix.perl-version }}
53+
dir='${{ matrix.directory }}'
54+
img="perl:${dir//,/-}"
55+
./official-images/test/run.sh "$img"

.github/workflows/generate-dockerfiles-patches.yml

+7
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,10 @@ jobs:
2929
- name: Show diffstat (if any)
3030
run: |
3131
git --no-pager diff --stat HEAD
32+
- name: Generate EOL Dockerfiles/patches
33+
run: |
34+
cd eol
35+
perl -I../local/lib/perl5 ../generate.pl
36+
- name: Show diffstat (if any)
37+
run: |
38+
git --no-pager diff --stat HEAD

config.yml

-54
Original file line numberDiff line numberDiff line change
@@ -8,60 +8,6 @@ options:
88
threaded: "-Dusethreads"
99

1010
releases:
11-
- version: 5.8.9
12-
sha256: 1097fbcd48ceccb2bc735d119c9db399a02a8ab9f7dc53e29e47e6a8d0d72e79
13-
extra_flags: "-A ccflags=-fwrapv"
14-
test_parallel: no
15-
debian_release: jessie
16-
17-
- version: 5.10.1
18-
sha256: 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826
19-
extra_flags: "-A ccflags=-fwrapv"
20-
test_parallel: no
21-
debian_release: jessie
22-
23-
- version: 5.12.5
24-
sha256: 10749417fd3010aae320a34181ad4cd6a4855c1fc63403b87fa4d630b18e966c
25-
extra_flags: "-A ccflags=-fwrapv"
26-
test_parallel: no
27-
debian_release: jessie
28-
29-
- version: 5.14.4
30-
sha256: eece8c2b0d491bf6f746bd1f4f1bb7ce26f6b98e91c54690c617d7af38964745
31-
extra_flags: "-A ccflags=-fwrapv"
32-
test_parallel: no
33-
debian_release: jessie
34-
35-
- version: 5.16.3
36-
sha256: bb7bc735e6813b177dcfccd480defcde7eddefa173b5967eac11babd1bfa98e8
37-
extra_flags: "-A ccflags=-fwrapv"
38-
test_parallel: no
39-
debian_release: jessie
40-
41-
- version: 5.18.4
42-
sha256: 1fb4d27b75cd244e849f253320260efe1750641aaff4a18ce0d67556ff1b96a5
43-
extra_flags: "-A ccflags=-fwrapv"
44-
test_parallel: no
45-
debian_release: jessie
46-
47-
- version: 5.20.3
48-
sha256: 1b40068166c242e34a536836286e70b78410602a80615143301e52aa2901493b
49-
debian_release: stretch
50-
51-
- version: 5.22.4
52-
sha256: 8b3122046d1186598082d0e6da53193b045e85e3505e7d37ee0bdd0bdb539b71
53-
debian_release: stretch
54-
55-
- version: 5.24.4
56-
sha256: e34ff38c54857f431f37403b757267c9998152bf46b5c750b462f62461279b10
57-
debian_release: stretch
58-
59-
- version: 5.26.3
60-
sha256: 9ff35a613213f29ab53975141af6825ae7d4408895538cac0922e47ab92a1477
61-
debian_release:
62-
- stretch
63-
- buster
64-
6511
- version: 5.28.3
6612
sha256: 77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5
6713
type: xz

downloads/.keep

Whitespace-only changes.

5.008.009-main,threaded-jessie/Dockerfile renamed to eol/5.008.009-main,threaded-buster/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM buildpack-deps:jessie
1+
FROM buildpack-deps:buster
22
LABEL maintainer="Peter Martini <[email protected]>, Zak B. Elep <[email protected]>"
33

44
COPY *.patch /usr/src/perl/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
FROM buildpack-deps:stretch
2+
LABEL maintainer="Peter Martini <[email protected]>, Zak B. Elep <[email protected]>"
3+
4+
COPY *.patch /usr/src/perl/
5+
WORKDIR /usr/src/perl
6+
7+
RUN true \
8+
&& curl -SL https://www.cpan.org/src/5.0/perl-5.8.9.tar.bz2 -o perl-5.8.9.tar.bz2 \
9+
&& echo '1097fbcd48ceccb2bc735d119c9db399a02a8ab9f7dc53e29e47e6a8d0d72e79 *perl-5.8.9.tar.bz2' | sha256sum -c - \
10+
&& tar --strip-components=1 -xaf perl-5.8.9.tar.bz2 -C /usr/src/perl \
11+
&& rm perl-5.8.9.tar.bz2 \
12+
&& cat *.patch | patch -p1 \
13+
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
14+
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
15+
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
16+
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -A ccflags=-fwrapv -des \
17+
&& make -j$(nproc) \
18+
&& make test_harness \
19+
&& make install \
20+
&& cd /usr/src \
21+
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
22+
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
23+
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
24+
&& true \
25+
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
26+
27+
WORKDIR /
28+
29+
CMD ["perl5.8.9","-de0"]

5.008.009-main-jessie/Dockerfile renamed to eol/5.008.009-main-buster/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM buildpack-deps:jessie
1+
FROM buildpack-deps:buster
22
LABEL maintainer="Peter Martini <[email protected]>, Zak B. Elep <[email protected]>"
33

44
COPY *.patch /usr/src/perl/

eol/5.008.009-main-stretch/Dockerfile

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
FROM buildpack-deps:stretch
2+
LABEL maintainer="Peter Martini <[email protected]>, Zak B. Elep <[email protected]>"
3+
4+
COPY *.patch /usr/src/perl/
5+
WORKDIR /usr/src/perl
6+
7+
RUN true \
8+
&& curl -SL https://www.cpan.org/src/5.0/perl-5.8.9.tar.bz2 -o perl-5.8.9.tar.bz2 \
9+
&& echo '1097fbcd48ceccb2bc735d119c9db399a02a8ab9f7dc53e29e47e6a8d0d72e79 *perl-5.8.9.tar.bz2' | sha256sum -c - \
10+
&& tar --strip-components=1 -xaf perl-5.8.9.tar.bz2 -C /usr/src/perl \
11+
&& rm perl-5.8.9.tar.bz2 \
12+
&& cat *.patch | patch -p1 \
13+
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
14+
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
15+
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
16+
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -A ccflags=-fwrapv -des \
17+
&& make -j$(nproc) \
18+
&& make test_harness \
19+
&& make install \
20+
&& cd /usr/src \
21+
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
22+
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
23+
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
24+
&& true \
25+
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
26+
27+
WORKDIR /
28+
29+
CMD ["perl5.8.9","-de0"]

0 commit comments

Comments
 (0)