mirror of
https://git.yoctoproject.org/poky
synced 2026-04-16 15:32:13 +02:00
perl: Fix various reproducibile build issues
Add a patch which handles the following issues: a) Remove the \n from configure_attr.sh since it gets quoted differently depending on whether the shell is bash or dash which can cause the test result to be incorrect. Reported upstream: https://github.com/arsv/perl-cross/issues/87 b) Sort the order of the module lists from configure_mods.sh since otherwise the result isn't the same leading to makefile differences. Reported upstream: https://github.com/arsv/perl-cross/issues/88 c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst there for good measure) This needs to go to upstream perl (not done) d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash and "" with dash Reported upstream: https://github.com/arsv/perl-cross/issues/87 (From OE-Core rev: 482fd0d99f989b5a72a25bdf402fb2f219420b5d) (From OE-Core rev: def3a9d748564883d71c506726554df622701b00) (From OE-Core rev: 1f630fe43ec3c3e78c25f93d6badc8a35ff782ad) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
81
meta/recipes-devtools/perl/files/determinism.patch
Normal file
81
meta/recipes-devtools/perl/files/determinism.patch
Normal file
@@ -0,0 +1,81 @@
|
||||
Fixes to make the perl build reproducible:
|
||||
|
||||
a) Remove the \n from configure_attr.sh since it gets quoted differently depending on
|
||||
whether the shell is bash or dash which can cause the test result to be incorrect.
|
||||
Reported upstream: https://github.com/arsv/perl-cross/issues/87
|
||||
|
||||
b) Sort the order of the module lists from configure_mods.sh since otherwise
|
||||
the result isn't the same leading to makefile differences.
|
||||
Reported upstream: https://github.com/arsv/perl-cross/issues/88
|
||||
|
||||
c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst
|
||||
there for good measure)
|
||||
This needs to go to upstream perl (not done)
|
||||
|
||||
d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash
|
||||
and "" with dash
|
||||
Reported upstream: https://github.com/arsv/perl-cross/issues/87
|
||||
|
||||
RP 2020/2/7
|
||||
|
||||
Upstream-Status: Pending [75% submitted]
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org
|
||||
|
||||
Index: perl-5.30.1/cnf/configure_attr.sh
|
||||
===================================================================
|
||||
--- perl-5.30.1.orig/cnf/configure_attr.sh
|
||||
+++ perl-5.30.1/cnf/configure_attr.sh
|
||||
@@ -131,7 +131,7 @@ if not hinted d_c99_variadic_macros 'sup
|
||||
try_start
|
||||
try_add '#include <stdio.h>'
|
||||
try_add '#define foo(fmt, ...) printf(fmt, __VA_ARGS__)'
|
||||
- try_add 'int main(void) { foo("%i\n", 1234); return 0; }'
|
||||
+ try_add 'int main(void) { foo("%i", 1234); return 0; }'
|
||||
try_compile
|
||||
resdef d_c99_variadic_macros 'supported' 'missing'
|
||||
fi
|
||||
Index: perl-5.30.1/cnf/configure_mods.sh
|
||||
===================================================================
|
||||
--- perl-5.30.1.orig/cnf/configure_mods.sh
|
||||
+++ perl-5.30.1/cnf/configure_mods.sh
|
||||
@@ -82,7 +82,7 @@ extonlyif() {
|
||||
}
|
||||
|
||||
definetrimspaces() {
|
||||
- v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//'`
|
||||
+ v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//' | xargs -n1 | LANG=C sort | xargs`
|
||||
define $1 "$v"
|
||||
}
|
||||
|
||||
Index: perl-5.30.1/cpan/Encode/Byte/Makefile.PL
|
||||
===================================================================
|
||||
--- perl-5.30.1.orig/cpan/Encode/Byte/Makefile.PL
|
||||
+++ perl-5.30.1/cpan/Encode/Byte/Makefile.PL
|
||||
@@ -171,7 +171,7 @@ sub postamble
|
||||
my $lengthsofar = length($str);
|
||||
my $continuator = '';
|
||||
$str .= "$table.c : $enc2xs Makefile.PL";
|
||||
- foreach my $file (@{$tables{$table}})
|
||||
+ foreach my $file (sort (@{$tables{$table}}))
|
||||
{
|
||||
$str .= $continuator.' '.$self->catfile($dir,$file);
|
||||
if ( length($str)-$lengthsofar > 128*$numlines )
|
||||
@@ -189,7 +189,7 @@ sub postamble
|
||||
qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
|
||||
open (FILELIST, ">$table.fnm")
|
||||
|| die "Could not open $table.fnm: $!";
|
||||
- foreach my $file (@{$tables{$table}})
|
||||
+ foreach my $file (sort (@{$tables{$table}}))
|
||||
{
|
||||
print FILELIST $self->catfile($dir,$file) . "\n";
|
||||
}
|
||||
Index: perl-5.30.1/cnf/configure
|
||||
===================================================================
|
||||
--- perl-5.30.1.orig/cnf/configure
|
||||
+++ perl-5.30.1/cnf/configure
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/bin/sh
|
||||
+#!/bin/bash
|
||||
|
||||
base=${0%/*}; test -z "$base" && base=.
|
||||
|
||||
@@ -21,6 +21,7 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
|
||||
file://fix-setgroup.patch \
|
||||
file://0001-enc2xs-Add-environment-variable-to-suppress-comments.patch \
|
||||
file://0002-Constant-Fix-up-shebang.patch \
|
||||
file://determinism.patch \
|
||||
"
|
||||
SRC_URI_append_class-native = " \
|
||||
file://perl-configpm-switch.patch \
|
||||
|
||||
Reference in New Issue
Block a user