* [PATCH 0/2] automake/autoconf: avoid path to perl interpreter hardcoding @ 2017-03-28 18:26 Serhii Popovych 2017-03-28 18:26 ` [PATCH 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych ` (3 more replies) 0 siblings, 4 replies; 15+ messages in thread From: Serhii Popovych @ 2017-03-28 18:26 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux Hi, In this small series I would like to address build host perl interpreter hardcoding in shebang lines of various automake/autoconf scripts. This allows to use newer version of perl interpreter from some toolchain (e.g. devtoolset from SCL on RHEL6) when build host version is quite old to be used with automake/autoconf. Please review. Thanks. Cc: XE-Linux <xe-linux-external@cisco.com> Serhii Popovych (2): autoconf: Adjust shebang lines to remove interpreter path hardcode automake: Adjust shebang lines to remove interpreter path hardcode meta/recipes-devtools/autoconf/autoconf.inc | 7 +- ...tion-in-shebangs-with-modern-use-warnings.patch | 196 +++++++++++++++++++++ meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + ...tion-in-shebangs-with-modern-use-warnings.patch | 99 +++++++++++ meta/recipes-devtools/automake/automake_1.15.bb | 13 +- 5 files changed, 312 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch create mode 100644 meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch -- 2.7.4 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode 2017-03-28 18:26 [PATCH 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych @ 2017-03-28 18:26 ` Serhii Popovych 2017-03-28 18:40 ` [PATCH v2 2/2] " Serhii Popovych 2017-03-28 18:26 ` [PATCH 2/2] automake: " Serhii Popovych ` (2 subsequent siblings) 3 siblings, 1 reply; 15+ messages in thread From: Serhii Popovych @ 2017-03-28 18:26 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux If build host perl (and other tools) is old and we use some kind of toolchain to provide recent perl/python/etc to the OE build we still locked to use build host perl due to hardcoded shebang lines in autoconf scripts. Behaviour was observed with Enterprise Linux 6 and devtoolset toolchain from SCL (Software Collections) used to provide recent version of perl (not provided with default buildtools-tarball). Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables for class-native and class-nativesdk. Use patch to autoconf to replace -w option in shebang line with modern way to enable warnings on perl (i.e. "use warnings"). Note that ac_cv_path_PERL must be valid perl interpreter path since configure will check perl version and Flock implementation. It is not possible currently to use nativeperl from native sysroot because autoconf does not DEPENDS on perl-native (and doing so fails due to circular dependencies). Only possible solution is to overwrite shebangs with nativeperl somewhere at do_install() and update RDEPENDS for class-native. Or add perl symlinks to nativeperl in sysroot. For now it seems good to use perl found by /usr/bin/env from autoconf-native. Also add RDEPENDS for class-nativesdk and add nativesdk-perl to them. Cc: XE-Linux <xe-linux-external@cisco.com> Signed-off-by: Serhii Popovych <spopovyc@cisco.com> --- meta/recipes-devtools/autoconf/autoconf.inc | 7 +- ...tion-in-shebangs-with-modern-use-warnings.patch | 196 +++++++++++++++++++++ meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + 3 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch diff --git a/meta/recipes-devtools/autoconf/autoconf.inc b/meta/recipes-devtools/autoconf/autoconf.inc index b4e3356..408c5c9 100644 --- a/meta/recipes-devtools/autoconf/autoconf.inc +++ b/meta/recipes-devtools/autoconf/autoconf.inc @@ -27,13 +27,18 @@ RDEPENDS_${PN} = "m4 gnu-config \ perl-module-data-dumper \ " RDEPENDS_${PN}_class-native = "m4-native gnu-config-native" +RDEPENDS_${PN}_class-nativesdk = "nativesdk-m4 nativesdk-gnu-config nativesdk-perl" SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \ file://program_prefix.patch" inherit autotools texinfo -CACHED_CONFIGUREVARS += "ac_cv_path_PERL=${USRBINPATH}/perl" +PERL = "${USRBINPATH}/perl" +PERL_class-native = "/usr/bin/env perl" +PERL_class-nativesdk = "/usr/bin/env perl" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'" do_configure() { oe_runconf diff --git a/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch new file mode 100644 index 0000000..c3dff2d --- /dev/null +++ b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch @@ -0,0 +1,196 @@ +From 236552ff5b9f1ebf666d8d0e9850007dcce03d26 Mon Sep 17 00:00:00 2001 +From: Serhii Popovych <spopovyc@cisco.com> +Date: Wed, 10 Feb 2016 16:32:44 +0000 +Subject: [PATCH] perl: Replace -w option in shebangs with modern "use + warnings" + +In some builds we might provide ac_cv_path_PERL as /usr/bin/env perl +to use newer version of the perl from users PATH rather than +older from standard system path. + +However using /usr/bin/env perl -w from shebang line isn't +possible because it translates to something like +/usr/bin/env -w perl and env complains about illegal option. + +To address this we can remove -w option from perl shebang +line and add "use warnings" statement. + +Upstream-Status: Penging +Signed-off-by: Serhii Popovych <spopovyc@cisco.com> +--- + .pc/autoreconf-exclude.patch/bin/autoreconf.in | 3 ++- + .pc/autoreconf-gnuconfigize.patch/bin/autoreconf.in | 3 ++- + .pc/autoreconf-include.patch/bin/autoreconf.in | 3 ++- + .pc/check-automake-cross-warning.patch/bin/autoreconf.in | 3 ++- + bin/autom4te.in | 3 ++- + bin/autoreconf.in | 3 ++- + bin/autoscan.in | 3 ++- + bin/autoupdate.in | 3 ++- + bin/ifnames.in | 3 ++- + 9 files changed, 18 insertions(+), 9 deletions(-) + +diff --git a/.pc/autoreconf-exclude.patch/bin/autoreconf.in b/.pc/autoreconf-exclude.patch/bin/autoreconf.in +index 060cec7..b77b317 100644 +--- a/.pc/autoreconf-exclude.patch/bin/autoreconf.in ++++ b/.pc/autoreconf-exclude.patch/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/.pc/autoreconf-gnuconfigize.patch/bin/autoreconf.in b/.pc/autoreconf-gnuconfigize.patch/bin/autoreconf.in +index afc1343..e1a02e7 100644 +--- a/.pc/autoreconf-gnuconfigize.patch/bin/autoreconf.in ++++ b/.pc/autoreconf-gnuconfigize.patch/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/.pc/autoreconf-include.patch/bin/autoreconf.in b/.pc/autoreconf-include.patch/bin/autoreconf.in +index acf25d4..8909a54 100644 +--- a/.pc/autoreconf-include.patch/bin/autoreconf.in ++++ b/.pc/autoreconf-include.patch/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/.pc/check-automake-cross-warning.patch/bin/autoreconf.in b/.pc/check-automake-cross-warning.patch/bin/autoreconf.in +index 11ff026..3240abc 100644 +--- a/.pc/check-automake-cross-warning.patch/bin/autoreconf.in ++++ b/.pc/check-automake-cross-warning.patch/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/bin/autom4te.in b/bin/autom4te.in +index 11773c9..a8f5e41 100644 +--- a/bin/autom4te.in ++++ b/bin/autom4te.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -42,6 +42,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Data directory. + my $pkgdatadir = $ENV{'AC_MACRODIR'} || '@pkgdatadir@'; +diff --git a/bin/autoreconf.in b/bin/autoreconf.in +index e245db4..1a318cb 100644 +--- a/bin/autoreconf.in ++++ b/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/bin/autoscan.in b/bin/autoscan.in +index a67c48d..b931249 100644 +--- a/bin/autoscan.in ++++ b/bin/autoscan.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -43,6 +43,7 @@ use Autom4te::XFile; + use File::Basename; + use File::Find; + use strict; ++use warnings; + + use vars qw(@cfiles @makefiles @shfiles @subdirs %printed); + +diff --git a/bin/autoupdate.in b/bin/autoupdate.in +index 9737d49..92cb147 100644 +--- a/bin/autoupdate.in ++++ b/bin/autoupdate.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Lib files. + my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@'; +diff --git a/bin/ifnames.in b/bin/ifnames.in +index ba2cd05..74b0278 100644 +--- a/bin/ifnames.in ++++ b/bin/ifnames.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ BEGIN + use Autom4te::General; + use Autom4te::XFile; + use Autom4te::FileUtils; ++use warnings; + + # $HELP + # ----- +-- +2.3.0 + diff --git a/meta/recipes-devtools/autoconf/autoconf_2.69.bb b/meta/recipes-devtools/autoconf/autoconf_2.69.bb index fd01585..8e67f4b 100644 --- a/meta/recipes-devtools/autoconf/autoconf_2.69.bb +++ b/meta/recipes-devtools/autoconf/autoconf_2.69.bb @@ -15,6 +15,7 @@ SRC_URI += "file://check-automake-cross-warning.patch \ file://add_musl_config.patch \ file://performance.patch \ file://AC_HEADER_MAJOR-port-to-glibc-2.25.patch \ + file://autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch \ " SRC_URI[md5sum] = "82d05e03b93e45f5a39b828dc9c6c29b" -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 2/2] autoconf: Adjust shebang lines to remove interpreter path hardcode 2017-03-28 18:26 ` [PATCH 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych @ 2017-03-28 18:40 ` Serhii Popovych 0 siblings, 0 replies; 15+ messages in thread From: Serhii Popovych @ 2017-03-28 18:40 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux If build host perl (and other tools) is old and we use some kind of toolchain to provide recent perl/python/etc to the OE build we still locked to use build host perl due to hardcoded shebang lines in autoconf scripts. Behaviour was observed with Enterprise Linux 6 and devtoolset toolchain from SCL (Software Collections) used to provide recent version of perl (not provided with default buildtools-tarball). Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables for class-native and class-nativesdk. Use patch to autoconf to replace -w option in shebang line with modern way to enable warnings on perl (i.e. "use warnings"). Note that ac_cv_path_PERL must be valid perl interpreter path since configure will check perl version and Flock implementation. It is not possible currently to use nativeperl from native sysroot because autoconf does not DEPENDS on perl-native (and doing so fails due to circular dependencies). Only possible solution is to overwrite shebangs with nativeperl somewhere at do_install() and update RDEPENDS for class-native. Or add perl symlinks to nativeperl in sysroot. For now it seems good to use perl found by /usr/bin/env from autoconf-native. Also add RDEPENDS for class-nativesdk and add nativesdk-perl to them. v2: Just realized that files in quilt directory (.pc) patched unnecessarily. Cc: XE-Linux <xe-linux-external@cisco.com> Signed-off-by: Serhii Popovych <spopovyc@cisco.com> --- meta/recipes-devtools/autoconf/autoconf.inc | 7 +- ...tion-in-shebangs-with-modern-use-warnings.patch | 120 +++++++++++++++++++++ meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + 3 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch diff --git a/meta/recipes-devtools/autoconf/autoconf.inc b/meta/recipes-devtools/autoconf/autoconf.inc index b4e3356..408c5c9 100644 --- a/meta/recipes-devtools/autoconf/autoconf.inc +++ b/meta/recipes-devtools/autoconf/autoconf.inc @@ -27,13 +27,18 @@ RDEPENDS_${PN} = "m4 gnu-config \ perl-module-data-dumper \ " RDEPENDS_${PN}_class-native = "m4-native gnu-config-native" +RDEPENDS_${PN}_class-nativesdk = "nativesdk-m4 nativesdk-gnu-config nativesdk-perl" SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \ file://program_prefix.patch" inherit autotools texinfo -CACHED_CONFIGUREVARS += "ac_cv_path_PERL=${USRBINPATH}/perl" +PERL = "${USRBINPATH}/perl" +PERL_class-native = "/usr/bin/env perl" +PERL_class-nativesdk = "/usr/bin/env perl" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'" do_configure() { oe_runconf diff --git a/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch new file mode 100644 index 0000000..38457d1 --- /dev/null +++ b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch @@ -0,0 +1,120 @@ +From 236552ff5b9f1ebf666d8d0e9850007dcce03d26 Mon Sep 17 00:00:00 2001 +From: Serhii Popovych <spopovyc@cisco.com> +Date: Wed, 10 Feb 2016 16:32:44 +0000 +Subject: [PATCH] perl: Replace -w option in shebangs with modern "use + warnings" + +In some builds we might provide ac_cv_path_PERL as /usr/bin/env perl +to use newer version of the perl from users PATH rather than +older from standard system path. + +However using /usr/bin/env perl -w from shebang line isn't +possible because it translates to something like +/usr/bin/env -w perl and env complains about illegal option. + +To address this we can remove -w option from perl shebang +line and add "use warnings" statement. + +Upstream-Status: Penging +Signed-off-by: Serhii Popovych <spopovyc@cisco.com> +--- + bin/autom4te.in | 3 ++- + bin/autoreconf.in | 3 ++- + bin/autoscan.in | 3 ++- + bin/autoupdate.in | 3 ++- + bin/ifnames.in | 3 ++- + 5 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/bin/autom4te.in b/bin/autom4te.in +index 11773c9..a8f5e41 100644 +--- a/bin/autom4te.in ++++ b/bin/autom4te.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -42,6 +42,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Data directory. + my $pkgdatadir = $ENV{'AC_MACRODIR'} || '@pkgdatadir@'; +diff --git a/bin/autoreconf.in b/bin/autoreconf.in +index e245db4..1a318cb 100644 +--- a/bin/autoreconf.in ++++ b/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/bin/autoscan.in b/bin/autoscan.in +index a67c48d..b931249 100644 +--- a/bin/autoscan.in ++++ b/bin/autoscan.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -43,6 +43,7 @@ use Autom4te::XFile; + use File::Basename; + use File::Find; + use strict; ++use warnings; + + use vars qw(@cfiles @makefiles @shfiles @subdirs %printed); + +diff --git a/bin/autoupdate.in b/bin/autoupdate.in +index 9737d49..92cb147 100644 +--- a/bin/autoupdate.in ++++ b/bin/autoupdate.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Lib files. + my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@'; +diff --git a/bin/ifnames.in b/bin/ifnames.in +index ba2cd05..74b0278 100644 +--- a/bin/ifnames.in ++++ b/bin/ifnames.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ BEGIN + use Autom4te::General; + use Autom4te::XFile; + use Autom4te::FileUtils; ++use warnings; + + # $HELP + # ----- +-- +2.3.0 + diff --git a/meta/recipes-devtools/autoconf/autoconf_2.69.bb b/meta/recipes-devtools/autoconf/autoconf_2.69.bb index fd01585..8e67f4b 100644 --- a/meta/recipes-devtools/autoconf/autoconf_2.69.bb +++ b/meta/recipes-devtools/autoconf/autoconf_2.69.bb @@ -15,6 +15,7 @@ SRC_URI += "file://check-automake-cross-warning.patch \ file://add_musl_config.patch \ file://performance.patch \ file://AC_HEADER_MAJOR-port-to-glibc-2.25.patch \ + file://autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch \ " SRC_URI[md5sum] = "82d05e03b93e45f5a39b828dc9c6c29b" -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/2] automake: Adjust shebang lines to remove interpreter path hardcode 2017-03-28 18:26 [PATCH 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-28 18:26 ` [PATCH 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych @ 2017-03-28 18:26 ` Serhii Popovych 2017-03-28 19:02 ` ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding Patchwork 2017-03-28 19:02 ` ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding (rev2) Patchwork 3 siblings, 0 replies; 15+ messages in thread From: Serhii Popovych @ 2017-03-28 18:26 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux If build host perl (and other tools) is old and we use some kind of toolchain to provide recent perl/python/etc to the OE build we still locked to use build host perl due to hardcoded shebang lines in automake scripts. Behaviour was observed with Enterprise Linux 6 and devtoolset toolchain from SCL (Software Collections) used to provide recent version of perl (not provided with default buildtools-tarball). Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables for class-native and class-nativesdk. Use patch to automake to replace -w option in shebang line with modern way to enable warnings on perl (i.e. "use warnings"). Note that ac_cv_path_PERL must be valid perl interpreter path since configure will check perl version and Flock implementation. It is not possible currently to use nativeperl from native sysroot because automake does not DEPENDS on perl-native (and doing so fails due to circular dependencies). Only possible solution is to overwrite shebangs with nativeperl somewhere at do_install() and update RDEPENDS for class-native. Or add perl symlinks to nativeperl in sysroot. For now it seems good to use perl found by /usr/bin/env from automake-native. Also add RDEPENDS for class-nativesdk and add nativesdk-perl to them. Cc: XE-Linux <xe-linux-external@cisco.com> Signed-off-by: Serhii Popovych <spopovyc@cisco.com> --- ...tion-in-shebangs-with-modern-use-warnings.patch | 99 ++++++++++++++++++++++ meta/recipes-devtools/automake/automake_1.15.bb | 13 ++- 2 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch diff --git a/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch new file mode 100644 index 0000000..cae5ab9 --- /dev/null +++ b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch @@ -0,0 +1,99 @@ +From 41e06b7a354774913dcd2e32a35440e407843357 Mon Sep 17 00:00:00 2001 +From: Serhii Popovych <spopovyc@cisco.com> +Date: Wed, 10 Feb 2016 17:07:32 +0000 +Subject: [PATCH] perl: Replace -w option in shebangs with modern "use + warnings" In some builds we might provide ac_cv_path_PERL as /usr/bin/env + perl to use newer version of the perl from users PATH rather than older from + standard system path. + +However using /usr/bin/env perl -w from shebang line isn't +possible because it translates to something like +/usr/bin/env -w perl and env complains about illegal option. + +To address this we can remove -w option from perl shebang +line and add "use warnings" statement. + +Upstream-Status: Penging +Signed-off-by: Serhii Popovych <spopovyc@cisco.com> +--- + bin/aclocal.in | 3 ++- + bin/automake.in | 3 ++- + t/wrap/aclocal.in | 3 ++- + t/wrap/automake.in | 3 ++- + 4 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/bin/aclocal.in b/bin/aclocal.in +index 349f24a..50cb8d3 100644 +--- a/bin/aclocal.in ++++ b/bin/aclocal.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -33,6 +33,7 @@ BEGIN + } + + use strict; ++use warnings; + + use Automake::Config; + use Automake::General; +diff --git a/bin/automake.in b/bin/automake.in +index eedc8bc..e0a01cf 100644 +--- a/bin/automake.in ++++ b/bin/automake.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -28,6 +28,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' + package Automake; + + use strict; ++use warnings; + + BEGIN + { +diff --git a/t/wrap/aclocal.in b/t/wrap/aclocal.in +index e64b546..9996899 100644 +--- a/t/wrap/aclocal.in ++++ b/t/wrap/aclocal.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # @configure_input@ + + # Copyright (C) 2012-2014 Free Software Foundation, Inc. +@@ -19,6 +19,7 @@ + BEGIN + { + use strict; ++ use warnings; + @Aclocal::perl_libdirs = ('@abs_top_srcdir@/lib'); + unshift @Aclocal::perl_libdirs, '@abs_top_builddir@/lib' + if '@srcdir@' ne '.'; +diff --git a/t/wrap/automake.in b/t/wrap/automake.in +index 8b943b1..be61226 100644 +--- a/t/wrap/automake.in ++++ b/t/wrap/automake.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # @configure_input@ + + # Copyright (C) 2012-2014 Free Software Foundation, Inc. +@@ -19,6 +19,7 @@ + BEGIN + { + use strict; ++ use warnings; + @Automake::perl_libdirs = ('@abs_top_srcdir@/lib'); + unshift @Automake::perl_libdirs, '@abs_top_builddir@/lib' + if '@srcdir@' ne '.'; +-- +2.3.0 + diff --git a/meta/recipes-devtools/automake/automake_1.15.bb b/meta/recipes-devtools/automake/automake_1.15.bb index a3c72fd..442d093 100644 --- a/meta/recipes-devtools/automake/automake_1.15.bb +++ b/meta/recipes-devtools/automake/automake_1.15.bb @@ -17,16 +17,23 @@ RDEPENDS_${PN} += "\ perl-module-vars " RDEPENDS_${PN}_class-native = "autoconf-native hostperl-runtime-native" +RDEPENDS_${PN}_class-nativesdk = "nativesdk-autoconf nativesdk-perl" -SRC_URI += " file://python-libdir.patch \ +SRC_URI += "file://python-libdir.patch \ file://buildtest.patch \ file://performance.patch \ - file://new_rt_path_for_test-driver.patch" + file://new_rt_path_for_test-driver.patch \ + file://automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch \ + " SRC_URI[md5sum] = "716946a105ca228ab545fc37a70df3a3" SRC_URI[sha256sum] = "7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924" -CACHED_CONFIGUREVARS += "ac_cv_path_PERL=${USRBINPATH}/perl" +PERL = "${USRBINPATH}/perl" +PERL_class-native = "${USRBINPATH}/env perl" +PERL_class-nativesdk = "${USRBINPATH}/env perl" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'" do_install_append () { install -d ${D}${datadir} -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding 2017-03-28 18:26 [PATCH 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-28 18:26 ` [PATCH 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych 2017-03-28 18:26 ` [PATCH 2/2] automake: " Serhii Popovych @ 2017-03-28 19:02 ` Patchwork 2017-03-28 19:02 ` ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding (rev2) Patchwork 3 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2017-03-28 19:02 UTC (permalink / raw) To: Serhii Popovych; +Cc: openembedded-core == Series Details == Series: automake/autoconf: avoid path to perl interpreter hardcoding Revision: 1 URL : https://patchwork.openembedded.org/series/6028/ State : failure == Summary == Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures: * Issue Upstream-Status is in incorrect format [test_upstream_status_format] Suggested fix Fix Upstream-Status format in meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch so it is one of: Pending, Submitted, Accepted, Backport, Denied, Inappropriate If you believe any of these test results are incorrect, please reply to the mailing list (openembedded-core@lists.openembedded.org) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...). --- Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe ^ permalink raw reply [flat|nested] 15+ messages in thread
* ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding (rev2) 2017-03-28 18:26 [PATCH 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych ` (2 preceding siblings ...) 2017-03-28 19:02 ` ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding Patchwork @ 2017-03-28 19:02 ` Patchwork 2017-03-28 19:25 ` [PATCH v2 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 3 siblings, 1 reply; 15+ messages in thread From: Patchwork @ 2017-03-28 19:02 UTC (permalink / raw) To: Serhii Popovych; +Cc: openembedded-core == Series Details == Series: automake/autoconf: avoid path to perl interpreter hardcoding (rev2) Revision: 2 URL : https://patchwork.openembedded.org/series/6028/ State : failure == Summary == Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures: * Issue Upstream-Status is in incorrect format [test_upstream_status_format] Suggested fix Fix Upstream-Status format in meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch so it is one of: Pending, Submitted, Accepted, Backport, Denied, Inappropriate If you believe any of these test results are incorrect, please reply to the mailing list (openembedded-core@lists.openembedded.org) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...). --- Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 0/2] automake/autoconf: avoid path to perl interpreter hardcoding 2017-03-28 19:02 ` ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding (rev2) Patchwork @ 2017-03-28 19:25 ` Serhii Popovych 2017-03-28 19:25 ` [PATCH v3 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Serhii Popovych @ 2017-03-28 19:25 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux Hi, In this small series I would like to address build host perl interpreter hardcoding in shebang lines of various automake/autoconf scripts. This allows to use newer version of perl interpreter from some toolchain (e.g. devtoolset from SCL on RHEL6) when build host version is quite old to be used with automake/autoconf. Please review. Thanks. Cc: XE-Linux <xe-linux-external@cisco.com> Serhii Popovych (2): autoconf: Adjust shebang lines to remove interpreter path hardcode automake: Adjust shebang lines to remove interpreter path hardcode meta/recipes-devtools/autoconf/autoconf.inc | 7 +- ...tion-in-shebangs-with-modern-use-warnings.patch | 120 +++++++++++++++++++++ meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + ...tion-in-shebangs-with-modern-use-warnings.patch | 99 +++++++++++++++++ meta/recipes-devtools/automake/automake_1.15.bb | 13 ++- 5 files changed, 236 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch create mode 100644 meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch -- 2.7.4 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v3 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode 2017-03-28 19:25 ` [PATCH v2 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych @ 2017-03-28 19:25 ` Serhii Popovych 2017-03-30 16:44 ` Richard Purdie 2017-03-28 19:25 ` [PATCH v2 " Serhii Popovych 2017-03-31 12:02 ` ✗ patchtest: failure for "[v3,1/2] autoconf: Adjust sheb..." and 1 more (rev2) Patchwork 2 siblings, 1 reply; 15+ messages in thread From: Serhii Popovych @ 2017-03-28 19:25 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux If build host perl (and other tools) is old and we use some kind of toolchain to provide recent perl/python/etc to the OE build we still locked to use build host perl due to hardcoded shebang lines in autoconf scripts. Behaviour was observed with Enterprise Linux 6 and devtoolset toolchain from SCL (Software Collections) used to provide recent version of perl (not provided with default buildtools-tarball). Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables for class-native and class-nativesdk. Use patch to autoconf to replace -w option in shebang line with modern way to enable warnings on perl (i.e. "use warnings"). Note that ac_cv_path_PERL must be valid perl interpreter path since configure will check perl version and Flock implementation. It is not possible currently to use nativeperl from native sysroot because autoconf does not DE OBPENDS on perl-native (and doing so fails due to circular dependencies). Only possible solution is to overwrite shebangs with nativeperl somewhere at do_install() and update RDEPENDS for class-native. Or add perl symlinks to nativeperl in sysroot. For now it seems good to use perl found by /usr/bin/env from autoconf-native. Also add RDEPENDS for class-nativesdk and add nativesdk-perl to them. v3: Corrected Upstream-Status tag. v2: Just realized that files in quilt directory (.pc) patched unnecessarily. Cc: XE-Linux <xe-linux-external@cisco.com> Signed-off-by: Serhii Popovych <spopovyc@cisco.com> --- meta/recipes-devtools/autoconf/autoconf.inc | 7 +- ...tion-in-shebangs-with-modern-use-warnings.patch | 120 +++++++++++++++++++++ meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + 3 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch diff --git a/meta/recipes-devtools/autoconf/autoconf.inc b/meta/recipes-devtools/autoconf/autoconf.inc index b4e3356..408c5c9 100644 --- a/meta/recipes-devtools/autoconf/autoconf.inc +++ b/meta/recipes-devtools/autoconf/autoconf.inc @@ -27,13 +27,18 @@ RDEPENDS_${PN} = "m4 gnu-config \ perl-module-data-dumper \ " RDEPENDS_${PN}_class-native = "m4-native gnu-config-native" +RDEPENDS_${PN}_class-nativesdk = "nativesdk-m4 nativesdk-gnu-config nativesdk-perl" SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \ file://program_prefix.patch" inherit autotools texinfo -CACHED_CONFIGUREVARS += "ac_cv_path_PERL=${USRBINPATH}/perl" +PERL = "${USRBINPATH}/perl" +PERL_class-native = "/usr/bin/env perl" +PERL_class-nativesdk = "/usr/bin/env perl" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'" do_configure() { oe_runconf diff --git a/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch new file mode 100644 index 0000000..ae0e382 --- /dev/null +++ b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch @@ -0,0 +1,120 @@ +From 236552ff5b9f1ebf666d8d0e9850007dcce03d26 Mon Sep 17 00:00:00 2001 +From: Serhii Popovych <spopovyc@cisco.com> +Date: Wed, 10 Feb 2016 16:32:44 +0000 +Subject: [PATCH] perl: Replace -w option in shebangs with modern "use + warnings" + +In some builds we might provide ac_cv_path_PERL as /usr/bin/env perl +to use newer version of the perl from users PATH rather than +older from standard system path. + +However using /usr/bin/env perl -w from shebang line isn't +possible because it translates to something like +/usr/bin/env -w perl and env complains about illegal option. + +To address this we can remove -w option from perl shebang +line and add "use warnings" statement. + +Upstream-Status: Pending +Signed-off-by: Serhii Popovych <spopovyc@cisco.com> +--- + bin/autom4te.in | 3 ++- + bin/autoreconf.in | 3 ++- + bin/autoscan.in | 3 ++- + bin/autoupdate.in | 3 ++- + bin/ifnames.in | 3 ++- + 5 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/bin/autom4te.in b/bin/autom4te.in +index 11773c9..a8f5e41 100644 +--- a/bin/autom4te.in ++++ b/bin/autom4te.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -42,6 +42,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Data directory. + my $pkgdatadir = $ENV{'AC_MACRODIR'} || '@pkgdatadir@'; +diff --git a/bin/autoreconf.in b/bin/autoreconf.in +index e245db4..1a318cb 100644 +--- a/bin/autoreconf.in ++++ b/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/bin/autoscan.in b/bin/autoscan.in +index a67c48d..b931249 100644 +--- a/bin/autoscan.in ++++ b/bin/autoscan.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -43,6 +43,7 @@ use Autom4te::XFile; + use File::Basename; + use File::Find; + use strict; ++use warnings; + + use vars qw(@cfiles @makefiles @shfiles @subdirs %printed); + +diff --git a/bin/autoupdate.in b/bin/autoupdate.in +index 9737d49..92cb147 100644 +--- a/bin/autoupdate.in ++++ b/bin/autoupdate.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Lib files. + my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@'; +diff --git a/bin/ifnames.in b/bin/ifnames.in +index ba2cd05..74b0278 100644 +--- a/bin/ifnames.in ++++ b/bin/ifnames.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ BEGIN + use Autom4te::General; + use Autom4te::XFile; + use Autom4te::FileUtils; ++use warnings; + + # $HELP + # ----- +-- +2.3.0 + diff --git a/meta/recipes-devtools/autoconf/autoconf_2.69.bb b/meta/recipes-devtools/autoconf/autoconf_2.69.bb index fd01585..8e67f4b 100644 --- a/meta/recipes-devtools/autoconf/autoconf_2.69.bb +++ b/meta/recipes-devtools/autoconf/autoconf_2.69.bb @@ -15,6 +15,7 @@ SRC_URI += "file://check-automake-cross-warning.patch \ file://add_musl_config.patch \ file://performance.patch \ file://AC_HEADER_MAJOR-port-to-glibc-2.25.patch \ + file://autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch \ " SRC_URI[md5sum] = "82d05e03b93e45f5a39b828dc9c6c29b" -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v3 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode 2017-03-28 19:25 ` [PATCH v3 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych @ 2017-03-30 16:44 ` Richard Purdie 2017-03-31 11:46 ` [PATCH v3 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 0 siblings, 1 reply; 15+ messages in thread From: Richard Purdie @ 2017-03-30 16:44 UTC (permalink / raw) To: Serhii Popovych, openembedded-core; +Cc: XE-Linux On Tue, 2017-03-28 at 19:25 +0000, Serhii Popovych wrote: > If build host perl (and other tools) is old and we use some kind > of toolchain to provide recent perl/python/etc to the OE build > we still locked to use build host perl due to hardcoded shebang > lines in autoconf scripts. > > Behaviour was observed with Enterprise Linux 6 and devtoolset > toolchain from SCL (Software Collections) used to provide recent > version of perl (not provided with default buildtools-tarball). > > Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables > for class-native and class-nativesdk. Use patch to autoconf to > replace > -w option in shebang line with modern way to enable warnings on perl > (i.e. "use warnings"). > > Note that ac_cv_path_PERL must be valid perl interpreter path > since configure will check perl version and Flock implementation. > It is not possible currently to use nativeperl from native > sysroot because autoconf does not DE > OBPENDS on perl-native (and Typo above. > doing so fails due to circular dependencies). Only possible > solution is to overwrite shebangs with nativeperl somewhere at > do_install() and update RDEPENDS for class-native. Or add perl > symlinks to nativeperl in sysroot. > > For now it seems good to use perl found by /usr/bin/env from > autoconf-native. > > Also add RDEPENDS for class-nativesdk and add nativesdk-perl > to them. > > v3: Corrected Upstream-Status tag. > v2: Just realized that files in quilt directory (.pc) patched > unnecessarily. Revision history should go under --- below. > Cc: XE-Linux <xe-linux-external@cisco.com> > Signed-off-by: Serhii Popovych <spopovyc@cisco.com> > --- > meta/recipes-devtools/autoconf/autoconf.inc | 7 +- > ...tion-in-shebangs-with-modern-use-warnings.patch | 120 > +++++++++++++++++++++ > meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + > 3 files changed, 127 insertions(+), 1 deletion(-) > create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf- > replace-w-option-in-shebangs-with-modern-use-warnings.patch > > diff --git a/meta/recipes-devtools/autoconf/autoconf.inc > b/meta/recipes-devtools/autoconf/autoconf.inc > index b4e3356..408c5c9 100644 > --- a/meta/recipes-devtools/autoconf/autoconf.inc > +++ b/meta/recipes-devtools/autoconf/autoconf.inc > @@ -27,13 +27,18 @@ RDEPENDS_${PN} = "m4 gnu-config \ > perl-module-data-dumper \ > " > RDEPENDS_${PN}_class-native = "m4-native gnu-config-native" > +RDEPENDS_${PN}_class-nativesdk = "nativesdk-m4 nativesdk-gnu-config > nativesdk-perl" This RDEPENDS change is not mentioned in the commit message. Does this mean we suddenly start including perl in our SDKs or buildtools tarballs? This should be a separate patch an include impact information if you're really proposing this. Cheers, Richard ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v3 0/2] automake/autoconf: avoid path to perl interpreter hardcoding 2017-03-30 16:44 ` Richard Purdie @ 2017-03-31 11:46 ` Serhii Popovych 2017-03-31 11:46 ` [PATCH v4 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych 2017-03-31 11:46 ` [PATCH v3 2/2] automake: " Serhii Popovych 0 siblings, 2 replies; 15+ messages in thread From: Serhii Popovych @ 2017-03-31 11:46 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux Hi, This is updated series of changes to autoconf/automake where I address all questions from previous review session. Please review again. Thanks. Cc: XE-Linux <xe-linux-external@cisco.com> Serhii Popovych (2): autoconf: Adjust shebang lines to remove interpreter path hardcode automake: Adjust shebang lines to remove interpreter path hardcode meta/recipes-devtools/autoconf/autoconf.inc | 7 +- ...tion-in-shebangs-with-modern-use-warnings.patch | 120 +++++++++++++++++++++ meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + ...tion-in-shebangs-with-modern-use-warnings.patch | 99 +++++++++++++++++ meta/recipes-devtools/automake/automake_1.15.bb | 13 ++- 5 files changed, 236 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch create mode 100644 meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch -- 2.5.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode 2017-03-31 11:46 ` [PATCH v3 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych @ 2017-03-31 11:46 ` Serhii Popovych 2017-03-31 11:46 ` [PATCH v3 2/2] automake: " Serhii Popovych 1 sibling, 0 replies; 15+ messages in thread From: Serhii Popovych @ 2017-03-31 11:46 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux If build host perl (and other tools) is old and we use some kind of toolchain to provide recent perl/python/etc to the OE build we still locked to use build host perl due to hardcoded shebang lines in autoconf scripts. Behaviour was observed with Enterprise Linux 6 and devtoolset toolchain from SCL (Software Collections) used to provide recent version of perl (not provided with default buildtools-tarball). Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables for class-native and class-nativesdk. Use patch to autoconf to replace -w option in shebang line with modern way to enable warnings on perl (i.e. "use warnings"). Also add nativesdk-m4 and nativesdk-gnu-config to RDEPENDS to bring runtime dependencies inline with other targets. Note that ac_cv_path_PERL must be valid perl interpreter path since configure will check perl version and Flock implementation. It is not possible currently to use nativeperl from native sysroot because autoconf does not DEPENDS on perl-native (and doing so fails due to circular dependencies). Only possible solution is to overwrite shebangs with nativeperl somewhere at do_install() and update RDEPENDS for class-native. Or add perl symlinks to nativeperl in sysroot. For now it seems good to use perl found by /usr/bin/env from autoconf-native. Cc: XE-Linux <xe-linux-external@cisco.com> Signed-off-by: Serhii Popovych <spopovyc@cisco.com> --- v4: Address typo, and remnants of nativesdk-perl in RDEPENDS left from internal imlementation part. Thanks to Richard Purdie <richard.purdie@linuxfoundation.org> v3: Corrected Upstream-Status tag. v2: Just realized that files in quilt directory (.pc) patched unnecessarily. meta/recipes-devtools/autoconf/autoconf.inc | 7 +- ...tion-in-shebangs-with-modern-use-warnings.patch | 120 +++++++++++++++++++++ meta/recipes-devtools/autoconf/autoconf_2.69.bb | 1 + 3 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch diff --git a/meta/recipes-devtools/autoconf/autoconf.inc b/meta/recipes-devtools/autoconf/autoconf.inc index b4e3356..f1b2dfc 100644 --- a/meta/recipes-devtools/autoconf/autoconf.inc +++ b/meta/recipes-devtools/autoconf/autoconf.inc @@ -27,13 +27,18 @@ RDEPENDS_${PN} = "m4 gnu-config \ perl-module-data-dumper \ " RDEPENDS_${PN}_class-native = "m4-native gnu-config-native" +RDEPENDS_${PN}_class-nativesdk = "nativesdk-m4 nativesdk-gnu-config" SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \ file://program_prefix.patch" inherit autotools texinfo -CACHED_CONFIGUREVARS += "ac_cv_path_PERL=${USRBINPATH}/perl" +PERL = "${USRBINPATH}/perl" +PERL_class-native = "/usr/bin/env perl" +PERL_class-nativesdk = "/usr/bin/env perl" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'" do_configure() { oe_runconf diff --git a/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch new file mode 100644 index 0000000..ae0e382 --- /dev/null +++ b/meta/recipes-devtools/autoconf/autoconf/autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch @@ -0,0 +1,120 @@ +From 236552ff5b9f1ebf666d8d0e9850007dcce03d26 Mon Sep 17 00:00:00 2001 +From: Serhii Popovych <spopovyc@cisco.com> +Date: Wed, 10 Feb 2016 16:32:44 +0000 +Subject: [PATCH] perl: Replace -w option in shebangs with modern "use + warnings" + +In some builds we might provide ac_cv_path_PERL as /usr/bin/env perl +to use newer version of the perl from users PATH rather than +older from standard system path. + +However using /usr/bin/env perl -w from shebang line isn't +possible because it translates to something like +/usr/bin/env -w perl and env complains about illegal option. + +To address this we can remove -w option from perl shebang +line and add "use warnings" statement. + +Upstream-Status: Pending +Signed-off-by: Serhii Popovych <spopovyc@cisco.com> +--- + bin/autom4te.in | 3 ++- + bin/autoreconf.in | 3 ++- + bin/autoscan.in | 3 ++- + bin/autoupdate.in | 3 ++- + bin/ifnames.in | 3 ++- + 5 files changed, 10 insertions(+), 5 deletions(-) + +diff --git a/bin/autom4te.in b/bin/autom4te.in +index 11773c9..a8f5e41 100644 +--- a/bin/autom4te.in ++++ b/bin/autom4te.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -42,6 +42,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Data directory. + my $pkgdatadir = $ENV{'AC_MACRODIR'} || '@pkgdatadir@'; +diff --git a/bin/autoreconf.in b/bin/autoreconf.in +index e245db4..1a318cb 100644 +--- a/bin/autoreconf.in ++++ b/bin/autoreconf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -45,6 +45,7 @@ use Autom4te::XFile; + # Do not use Cwd::chdir, since it might hang. + use Cwd 'cwd'; + use strict; ++use warnings; + + ## ----------- ## + ## Variables. ## +diff --git a/bin/autoscan.in b/bin/autoscan.in +index a67c48d..b931249 100644 +--- a/bin/autoscan.in ++++ b/bin/autoscan.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -43,6 +43,7 @@ use Autom4te::XFile; + use File::Basename; + use File::Find; + use strict; ++use warnings; + + use vars qw(@cfiles @makefiles @shfiles @subdirs %printed); + +diff --git a/bin/autoupdate.in b/bin/autoupdate.in +index 9737d49..92cb147 100644 +--- a/bin/autoupdate.in ++++ b/bin/autoupdate.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ use Autom4te::General; + use Autom4te::XFile; + use File::Basename; + use strict; ++use warnings; + + # Lib files. + my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@'; +diff --git a/bin/ifnames.in b/bin/ifnames.in +index ba2cd05..74b0278 100644 +--- a/bin/ifnames.in ++++ b/bin/ifnames.in +@@ -1,4 +1,4 @@ +-#! @PERL@ -w ++#! @PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -44,6 +44,7 @@ BEGIN + use Autom4te::General; + use Autom4te::XFile; + use Autom4te::FileUtils; ++use warnings; + + # $HELP + # ----- +-- +2.3.0 + diff --git a/meta/recipes-devtools/autoconf/autoconf_2.69.bb b/meta/recipes-devtools/autoconf/autoconf_2.69.bb index fd01585..8e67f4b 100644 --- a/meta/recipes-devtools/autoconf/autoconf_2.69.bb +++ b/meta/recipes-devtools/autoconf/autoconf_2.69.bb @@ -15,6 +15,7 @@ SRC_URI += "file://check-automake-cross-warning.patch \ file://add_musl_config.patch \ file://performance.patch \ file://AC_HEADER_MAJOR-port-to-glibc-2.25.patch \ + file://autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch \ " SRC_URI[md5sum] = "82d05e03b93e45f5a39b828dc9c6c29b" -- 2.5.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 2/2] automake: Adjust shebang lines to remove interpreter path hardcode 2017-03-31 11:46 ` [PATCH v3 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-31 11:46 ` [PATCH v4 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych @ 2017-03-31 11:46 ` Serhii Popovych 1 sibling, 0 replies; 15+ messages in thread From: Serhii Popovych @ 2017-03-31 11:46 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux If build host perl (and other tools) is old and we use some kind of toolchain to provide recent perl/python/etc to the OE build we still locked to use build host perl due to hardcoded shebang lines in automake scripts. Behaviour was observed with Enterprise Linux 6 and devtoolset toolchain from SCL (Software Collections) used to provide recent version of perl (not provided with default buildtools-tarball). Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables for class-native and class-nativesdk. Use patch to automake to replace -w option in shebang line with modern way to enable warnings on perl (i.e. "use warnings"). Also add nativesdk-autoconf to RDEPENDS to bring runtime dependencies inline with other targets. Note that ac_cv_path_PERL must be valid perl interpreter path since configure will check perl version and Flock implementation. It is not possible currently to use nativeperl from native sysroot because automake does not DEPENDS on perl-native (and doing so fails due to circular dependencies). Only possible solution is to overwrite shebangs with nativeperl somewhere at do_install() and update RDEPENDS for class-native. Or add perl symlinks to nativeperl in sysroot. For now it seems good to use perl found by /usr/bin/env from automake-native. Cc: XE-Linux <xe-linux-external@cisco.com> Signed-off-by: Serhii Popovych <spopovyc@cisco.com> --- v3: Kill remnants of nativesdk-perl in RDEPENDS left from internal imlementation part. Thanks to Richard Purdie <richard.purdie@linuxfoundation.org> v2: Corrected Upstream-Status tag. ...tion-in-shebangs-with-modern-use-warnings.patch | 99 ++++++++++++++++++++++ meta/recipes-devtools/automake/automake_1.15.bb | 13 ++- 2 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch diff --git a/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch new file mode 100644 index 0000000..64eb253 --- /dev/null +++ b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch @@ -0,0 +1,99 @@ +From 41e06b7a354774913dcd2e32a35440e407843357 Mon Sep 17 00:00:00 2001 +From: Serhii Popovych <spopovyc@cisco.com> +Date: Wed, 10 Feb 2016 17:07:32 +0000 +Subject: [PATCH] perl: Replace -w option in shebangs with modern "use + warnings" In some builds we might provide ac_cv_path_PERL as /usr/bin/env + perl to use newer version of the perl from users PATH rather than older from + standard system path. + +However using /usr/bin/env perl -w from shebang line isn't +possible because it translates to something like +/usr/bin/env -w perl and env complains about illegal option. + +To address this we can remove -w option from perl shebang +line and add "use warnings" statement. + +Upstream-Status: Pending +Signed-off-by: Serhii Popovych <spopovyc@cisco.com> +--- + bin/aclocal.in | 3 ++- + bin/automake.in | 3 ++- + t/wrap/aclocal.in | 3 ++- + t/wrap/automake.in | 3 ++- + 4 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/bin/aclocal.in b/bin/aclocal.in +index 349f24a..50cb8d3 100644 +--- a/bin/aclocal.in ++++ b/bin/aclocal.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -33,6 +33,7 @@ BEGIN + } + + use strict; ++use warnings; + + use Automake::Config; + use Automake::General; +diff --git a/bin/automake.in b/bin/automake.in +index eedc8bc..e0a01cf 100644 +--- a/bin/automake.in ++++ b/bin/automake.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -28,6 +28,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' + package Automake; + + use strict; ++use warnings; + + BEGIN + { +diff --git a/t/wrap/aclocal.in b/t/wrap/aclocal.in +index e64b546..9996899 100644 +--- a/t/wrap/aclocal.in ++++ b/t/wrap/aclocal.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # @configure_input@ + + # Copyright (C) 2012-2014 Free Software Foundation, Inc. +@@ -19,6 +19,7 @@ + BEGIN + { + use strict; ++ use warnings; + @Aclocal::perl_libdirs = ('@abs_top_srcdir@/lib'); + unshift @Aclocal::perl_libdirs, '@abs_top_builddir@/lib' + if '@srcdir@' ne '.'; +diff --git a/t/wrap/automake.in b/t/wrap/automake.in +index 8b943b1..be61226 100644 +--- a/t/wrap/automake.in ++++ b/t/wrap/automake.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # @configure_input@ + + # Copyright (C) 2012-2014 Free Software Foundation, Inc. +@@ -19,6 +19,7 @@ + BEGIN + { + use strict; ++ use warnings; + @Automake::perl_libdirs = ('@abs_top_srcdir@/lib'); + unshift @Automake::perl_libdirs, '@abs_top_builddir@/lib' + if '@srcdir@' ne '.'; +-- +2.3.0 + diff --git a/meta/recipes-devtools/automake/automake_1.15.bb b/meta/recipes-devtools/automake/automake_1.15.bb index a3c72fd..a6904c8 100644 --- a/meta/recipes-devtools/automake/automake_1.15.bb +++ b/meta/recipes-devtools/automake/automake_1.15.bb @@ -17,16 +17,23 @@ RDEPENDS_${PN} += "\ perl-module-vars " RDEPENDS_${PN}_class-native = "autoconf-native hostperl-runtime-native" +RDEPENDS_${PN}_class-nativesdk = "nativesdk-autoconf" -SRC_URI += " file://python-libdir.patch \ +SRC_URI += "file://python-libdir.patch \ file://buildtest.patch \ file://performance.patch \ - file://new_rt_path_for_test-driver.patch" + file://new_rt_path_for_test-driver.patch \ + file://automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch \ + " SRC_URI[md5sum] = "716946a105ca228ab545fc37a70df3a3" SRC_URI[sha256sum] = "7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924" -CACHED_CONFIGUREVARS += "ac_cv_path_PERL=${USRBINPATH}/perl" +PERL = "${USRBINPATH}/perl" +PERL_class-native = "${USRBINPATH}/env perl" +PERL_class-nativesdk = "${USRBINPATH}/env perl" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'" do_install_append () { install -d ${D}${datadir} -- 2.5.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 2/2] automake: Adjust shebang lines to remove interpreter path hardcode 2017-03-28 19:25 ` [PATCH v2 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-28 19:25 ` [PATCH v3 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych @ 2017-03-28 19:25 ` Serhii Popovych 2017-03-30 16:45 ` Richard Purdie 2017-03-31 12:02 ` ✗ patchtest: failure for "[v3,1/2] autoconf: Adjust sheb..." and 1 more (rev2) Patchwork 2 siblings, 1 reply; 15+ messages in thread From: Serhii Popovych @ 2017-03-28 19:25 UTC (permalink / raw) To: openembedded-core; +Cc: XE-Linux If build host perl (and other tools) is old and we use some kind of toolchain to provide recent perl/python/etc to the OE build we still locked to use build host perl due to hardcoded shebang lines in automake scripts. Behaviour was observed with Enterprise Linux 6 and devtoolset toolchain from SCL (Software Collections) used to provide recent version of perl (not provided with default buildtools-tarball). Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables for class-native and class-nativesdk. Use patch to automake to replace -w option in shebang line with modern way to enable warnings on perl (i.e. "use warnings"). Note that ac_cv_path_PERL must be valid perl interpreter path since configure will check perl version and Flock implementation. It is not possible currently to use nativeperl from native sysroot because automake does not DEPENDS on perl-native (and doing so fails due to circular dependencies). Only possible solution is to overwrite shebangs with nativeperl somewhere at do_install() and update RDEPENDS for class-native. Or add perl symlinks to nativeperl in sysroot. For now it seems good to use perl found by /usr/bin/env from automake-native. Also add RDEPENDS for class-nativesdk and add nativesdk-perl to them. v2: Corrected Upstream-Status tag. Cc: XE-Linux <xe-linux-external@cisco.com> Signed-off-by: Serhii Popovych <spopovyc@cisco.com> --- ...tion-in-shebangs-with-modern-use-warnings.patch | 99 ++++++++++++++++++++++ meta/recipes-devtools/automake/automake_1.15.bb | 13 ++- 2 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch diff --git a/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch new file mode 100644 index 0000000..64eb253 --- /dev/null +++ b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch @@ -0,0 +1,99 @@ +From 41e06b7a354774913dcd2e32a35440e407843357 Mon Sep 17 00:00:00 2001 +From: Serhii Popovych <spopovyc@cisco.com> +Date: Wed, 10 Feb 2016 17:07:32 +0000 +Subject: [PATCH] perl: Replace -w option in shebangs with modern "use + warnings" In some builds we might provide ac_cv_path_PERL as /usr/bin/env + perl to use newer version of the perl from users PATH rather than older from + standard system path. + +However using /usr/bin/env perl -w from shebang line isn't +possible because it translates to something like +/usr/bin/env -w perl and env complains about illegal option. + +To address this we can remove -w option from perl shebang +line and add "use warnings" statement. + +Upstream-Status: Pending +Signed-off-by: Serhii Popovych <spopovyc@cisco.com> +--- + bin/aclocal.in | 3 ++- + bin/automake.in | 3 ++- + t/wrap/aclocal.in | 3 ++- + t/wrap/automake.in | 3 ++- + 4 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/bin/aclocal.in b/bin/aclocal.in +index 349f24a..50cb8d3 100644 +--- a/bin/aclocal.in ++++ b/bin/aclocal.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -33,6 +33,7 @@ BEGIN + } + + use strict; ++use warnings; + + use Automake::Config; + use Automake::General; +diff --git a/bin/automake.in b/bin/automake.in +index eedc8bc..e0a01cf 100644 +--- a/bin/automake.in ++++ b/bin/automake.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # -*- perl -*- + # @configure_input@ + +@@ -28,6 +28,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' + package Automake; + + use strict; ++use warnings; + + BEGIN + { +diff --git a/t/wrap/aclocal.in b/t/wrap/aclocal.in +index e64b546..9996899 100644 +--- a/t/wrap/aclocal.in ++++ b/t/wrap/aclocal.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # @configure_input@ + + # Copyright (C) 2012-2014 Free Software Foundation, Inc. +@@ -19,6 +19,7 @@ + BEGIN + { + use strict; ++ use warnings; + @Aclocal::perl_libdirs = ('@abs_top_srcdir@/lib'); + unshift @Aclocal::perl_libdirs, '@abs_top_builddir@/lib' + if '@srcdir@' ne '.'; +diff --git a/t/wrap/automake.in b/t/wrap/automake.in +index 8b943b1..be61226 100644 +--- a/t/wrap/automake.in ++++ b/t/wrap/automake.in +@@ -1,4 +1,4 @@ +-#!@PERL@ -w ++#!@PERL@ + # @configure_input@ + + # Copyright (C) 2012-2014 Free Software Foundation, Inc. +@@ -19,6 +19,7 @@ + BEGIN + { + use strict; ++ use warnings; + @Automake::perl_libdirs = ('@abs_top_srcdir@/lib'); + unshift @Automake::perl_libdirs, '@abs_top_builddir@/lib' + if '@srcdir@' ne '.'; +-- +2.3.0 + diff --git a/meta/recipes-devtools/automake/automake_1.15.bb b/meta/recipes-devtools/automake/automake_1.15.bb index a3c72fd..442d093 100644 --- a/meta/recipes-devtools/automake/automake_1.15.bb +++ b/meta/recipes-devtools/automake/automake_1.15.bb @@ -17,16 +17,23 @@ RDEPENDS_${PN} += "\ perl-module-vars " RDEPENDS_${PN}_class-native = "autoconf-native hostperl-runtime-native" +RDEPENDS_${PN}_class-nativesdk = "nativesdk-autoconf nativesdk-perl" -SRC_URI += " file://python-libdir.patch \ +SRC_URI += "file://python-libdir.patch \ file://buildtest.patch \ file://performance.patch \ - file://new_rt_path_for_test-driver.patch" + file://new_rt_path_for_test-driver.patch \ + file://automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch \ + " SRC_URI[md5sum] = "716946a105ca228ab545fc37a70df3a3" SRC_URI[sha256sum] = "7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924" -CACHED_CONFIGUREVARS += "ac_cv_path_PERL=${USRBINPATH}/perl" +PERL = "${USRBINPATH}/perl" +PERL_class-native = "${USRBINPATH}/env perl" +PERL_class-nativesdk = "${USRBINPATH}/env perl" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'" do_install_append () { install -d ${D}${datadir} -- 2.7.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 2/2] automake: Adjust shebang lines to remove interpreter path hardcode 2017-03-28 19:25 ` [PATCH v2 " Serhii Popovych @ 2017-03-30 16:45 ` Richard Purdie 0 siblings, 0 replies; 15+ messages in thread From: Richard Purdie @ 2017-03-30 16:45 UTC (permalink / raw) To: Serhii Popovych, openembedded-core; +Cc: XE-Linux On Tue, 2017-03-28 at 19:25 +0000, Serhii Popovych wrote: > If build host perl (and other tools) is old and we use some kind > of toolchain to provide recent perl/python/etc to the OE build > we still locked to use build host perl due to hardcoded shebang > lines in automake scripts. > > Behaviour was observed with Enterprise Linux 6 and devtoolset > toolchain from SCL (Software Collections) used to provide recent > version of perl (not provided with default buildtools-tarball). > > Pass /usr/bin/env perl in ac_cv_path_PERL configuration variables > for class-native and class-nativesdk. Use patch to automake to > replace > -w option in shebang line with modern way to enable warnings on perl > (i.e. "use warnings"). > > Note that ac_cv_path_PERL must be valid perl interpreter path > since configure will check perl version and Flock implementation. > It is not possible currently to use nativeperl from native > sysroot because automake does not DEPENDS on perl-native (and > doing so fails due to circular dependencies). Only possible > solution is to overwrite shebangs with nativeperl somewhere at > do_install() and update RDEPENDS for class-native. Or add perl > symlinks to nativeperl in sysroot. > > For now it seems good to use perl found by /usr/bin/env from > automake-native. > > Also add RDEPENDS for class-nativesdk and add nativesdk-perl to > them. > > v2: Corrected Upstream-Status tag. > > Cc: XE-Linux <xe-linux-external@cisco.com> > Signed-off-by: Serhii Popovych <spopovyc@cisco.com> Again, the patch description and what it actually does don't match (RDEPENDS)... Cheers, Richard ^ permalink raw reply [flat|nested] 15+ messages in thread
* ✗ patchtest: failure for "[v3,1/2] autoconf: Adjust sheb..." and 1 more (rev2) 2017-03-28 19:25 ` [PATCH v2 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-28 19:25 ` [PATCH v3 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych 2017-03-28 19:25 ` [PATCH v2 " Serhii Popovych @ 2017-03-31 12:02 ` Patchwork 2 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2017-03-31 12:02 UTC (permalink / raw) To: Serhii Popovych; +Cc: openembedded-core == Series Details == Series: "[v3,1/2] autoconf: Adjust sheb..." and 1 more (rev2) Revision: 2 URL : https://patchwork.openembedded.org/series/6033/ State : failure == Summary == Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures: * Issue Series does not apply on top of target branch [test_series_merge_on_head] Suggested fix Rebase your series on top of targeted branch Targeted branch master (currently at 49772e1a1f) If you believe any of these test results are incorrect, please reply to the mailing list (openembedded-core@lists.openembedded.org) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...). --- Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2017-03-31 12:02 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-03-28 18:26 [PATCH 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-28 18:26 ` [PATCH 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych 2017-03-28 18:40 ` [PATCH v2 2/2] " Serhii Popovych 2017-03-28 18:26 ` [PATCH 2/2] automake: " Serhii Popovych 2017-03-28 19:02 ` ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding Patchwork 2017-03-28 19:02 ` ✗ patchtest: failure for automake/autoconf: avoid path to perl interpreter hardcoding (rev2) Patchwork 2017-03-28 19:25 ` [PATCH v2 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-28 19:25 ` [PATCH v3 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych 2017-03-30 16:44 ` Richard Purdie 2017-03-31 11:46 ` [PATCH v3 0/2] automake/autoconf: avoid path to perl interpreter hardcoding Serhii Popovych 2017-03-31 11:46 ` [PATCH v4 1/2] autoconf: Adjust shebang lines to remove interpreter path hardcode Serhii Popovych 2017-03-31 11:46 ` [PATCH v3 2/2] automake: " Serhii Popovych 2017-03-28 19:25 ` [PATCH v2 " Serhii Popovych 2017-03-30 16:45 ` Richard Purdie 2017-03-31 12:02 ` ✗ patchtest: failure for "[v3,1/2] autoconf: Adjust sheb..." and 1 more (rev2) Patchwork
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.