generate.pl: Use single canonical location for getting Perl tarballs
We seem to be using www.cpan.org for getting the Perl tarballs for patching with Devel::PatchPerl, yet in our generated Dockerfiles we are using cpan.metacpan.org instead. Since the former location is listed in www.perl.org as the canonical Perl source location, let's base from that as our single source of truth. This also means we can depend less on finding which PAUSE account has which Perl release, so let's remove that from the Releases.yaml as well.
This commit is contained in:
parent
ccda32e166
commit
0a6526583a
2 changed files with 7 additions and 24 deletions
|
@ -1,58 +1,48 @@
|
|||
releases:
|
||||
- version: 5.8.9
|
||||
sha256: 1097fbcd48ceccb2bc735d119c9db399a02a8ab9f7dc53e29e47e6a8d0d72e79
|
||||
pause: NWCLARK
|
||||
extra_flags: "-A ccflags=-fwrapv"
|
||||
test_parallel: no
|
||||
buildpack_deps: jessie
|
||||
|
||||
- version: 5.10.1
|
||||
sha256: 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826
|
||||
pause: DAPM
|
||||
extra_flags: "-A ccflags=-fwrapv"
|
||||
test_parallel: no
|
||||
buildpack_deps: jessie
|
||||
|
||||
- version: 5.12.5
|
||||
sha256: 10749417fd3010aae320a34181ad4cd6a4855c1fc63403b87fa4d630b18e966c
|
||||
pause: DOM
|
||||
extra_flags: "-A ccflags=-fwrapv"
|
||||
test_parallel: no
|
||||
buildpack_deps: jessie
|
||||
|
||||
- version: 5.14.4
|
||||
sha256: eece8c2b0d491bf6f746bd1f4f1bb7ce26f6b98e91c54690c617d7af38964745
|
||||
pause: DAPM
|
||||
extra_flags: "-A ccflags=-fwrapv"
|
||||
test_parallel: no
|
||||
buildpack_deps: jessie
|
||||
|
||||
- version: 5.16.3
|
||||
sha256: bb7bc735e6813b177dcfccd480defcde7eddefa173b5967eac11babd1bfa98e8
|
||||
pause: RJBS
|
||||
extra_flags: "-A ccflags=-fwrapv"
|
||||
test_parallel: no
|
||||
buildpack_deps: jessie
|
||||
|
||||
- version: 5.18.4
|
||||
sha256: 1fb4d27b75cd244e849f253320260efe1750641aaff4a18ce0d67556ff1b96a5
|
||||
pause: RJBS
|
||||
extra_flags: "-A ccflags=-fwrapv"
|
||||
test_parallel: no
|
||||
buildpack_deps: jessie
|
||||
|
||||
- version: 5.20.3
|
||||
sha256: 1b40068166c242e34a536836286e70b78410602a80615143301e52aa2901493b
|
||||
pause: SHAY
|
||||
|
||||
- version: 5.22.4
|
||||
sha256: 8b3122046d1186598082d0e6da53193b045e85e3505e7d37ee0bdd0bdb539b71
|
||||
pause: SHAY
|
||||
|
||||
- version: 5.24.2
|
||||
sha256: e28c8fa588c4227eb25350036b45d7b1b46d61bb3a2194ee09dc79be6ed0fd0f
|
||||
pause: SHAY
|
||||
|
||||
- version: 5.26.0
|
||||
sha256: f21d66de84982175e95ad15fd8d0e22fed2cc2de7e4394f5d48dbe451be2f6f2
|
||||
pause: XSAWYERX
|
||||
|
|
21
generate.pl
21
generate.pl
|
@ -14,10 +14,9 @@ The Releases.yaml file must look roughly like:
|
|||
releases:
|
||||
- version: 5.20.0
|
||||
sha256: asdasdadas
|
||||
pause: RJBS
|
||||
|
||||
Where version is the version number of Perl, sha256 is the SHA256 of the
|
||||
tar.bz2 file, and pause is the PAUSE account of the release manager.
|
||||
Where version is the version number of Perl and sha256 is the SHA256 of
|
||||
the tar.bz2 file.
|
||||
|
||||
If needed or desired, extra_flags: can be added, which will be passed
|
||||
verbatim to Configure.
|
||||
|
@ -54,13 +53,13 @@ if (! -d "downloads") {
|
|||
}
|
||||
|
||||
for my $release (@{$yaml->{releases}}) {
|
||||
do { die_with_sample unless $release->{$_}} for (qw(version pause sha256));
|
||||
do { die_with_sample unless $release->{$_}} for (qw(version sha256));
|
||||
|
||||
die "Bad version: $release->{version}" unless $release->{version} =~ /\A5\.\d+\.\d+\Z/;
|
||||
|
||||
my $patch;
|
||||
my $file = "perl-$release->{version}.tar.bz2";
|
||||
my $url = "http://www.cpan.org/src/5.0/$file";
|
||||
my $url = "https://www.cpan.org/src/5.0/$file";
|
||||
if (-f "downloads/$file" &&
|
||||
`sha256sum downloads/$file` =~ /^\Q$release->{sha256}\E\s+\Qdownloads\/$file\E/) {
|
||||
print "Skipping download of $file, already current\n";
|
||||
|
@ -88,13 +87,13 @@ for my $release (@{$yaml->{releases}}) {
|
|||
die "Couldn't create a Devel::PatchPerl patch for $release->{version}" if $? != 0;
|
||||
}
|
||||
|
||||
$release->{pause} =~ s#(((.).).*)#$3/$2/$1#;
|
||||
$release->{url} = $url;
|
||||
$release->{extra_flags} = "" unless defined $release->{extra_flags};
|
||||
$release->{_tag} = $release->{buildpack_deps} || "stretch";
|
||||
|
||||
for my $config (keys %builds) {
|
||||
my $output = $template;
|
||||
$output =~ s/\{\{$_\}\}/$release->{$_}/mg for (qw(version pause extra_flags sha256 _tag));
|
||||
$output =~ s/\{\{$_\}\}/$release->{$_}/mg for (qw(version extra_flags sha256 url _tag));
|
||||
$output =~ s/\{\{args\}\}/$builds{$config}/mg;
|
||||
|
||||
my $dir = sprintf "%i.%03i.%03i-%s",
|
||||
|
@ -153,12 +152,6 @@ The actual perl version, such as B<5.20.1>.
|
|||
|
||||
The SHA-256 of the C<.tar.bz2> file for that release.
|
||||
|
||||
=item pause
|
||||
|
||||
The PAUSE (CPAN user) account that the release was uploaded to.
|
||||
|
||||
=back
|
||||
|
||||
=item OPTIONAL
|
||||
|
||||
=over 4
|
||||
|
@ -198,7 +191,7 @@ LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@c
|
|||
COPY *.patch /usr/src/perl/
|
||||
WORKDIR /usr/src/perl
|
||||
|
||||
RUN curl -SL https://cpan.metacpan.org/authors/id/{{pause}}/perl-{{version}}.tar.bz2 -o perl-{{version}}.tar.bz2 \
|
||||
RUN curl -SL {{url}} -o perl-{{version}}.tar.bz2 \
|
||||
&& echo '{{sha256}} *perl-{{version}}.tar.bz2' | sha256sum -c - \
|
||||
&& tar --strip-components=1 -xjf perl-{{version}}.tar.bz2 -C /usr/src/perl \
|
||||
&& rm perl-{{version}}.tar.bz2 \
|
||||
|
|
Loading…
Add table
Reference in a new issue