From df7d75b0c2b19fc58ac61365c05a1c89926cb35f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Mon, 18 Apr 2016 16:33:28 +0200 Subject: [PATCH] Provide MM::maybe_command independently We do not insert perl-ExtUtils-MM-Utils into perl-core because this is not a core module. It's a Fedora extension. Run regen/lib_cleanup.pl to regenerate Makefile.SH and other scripts to pass porting/regen.t because of addedd ExtUtils/MakeMaker/MM/Utils.pm file. --- ...-MM-methods-as-standalone-ExtUtils-M.patch | 110 ++++++++++++++++++ perl.spec | 47 +++++++- 2 files changed, 152 insertions(+), 5 deletions(-) create mode 100644 perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch diff --git a/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch b/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch new file mode 100644 index 0000000..0cfc4c5 --- /dev/null +++ b/perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch @@ -0,0 +1,110 @@ +From 9575301256f67116eccdbb99b38fc804ba3dcf53 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Mon, 18 Apr 2016 16:24:03 +0200 +Subject: [PATCH] Provide ExtUtils::MM methods as standalone + ExtUtils::MM::Utils +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If you cannot afford depending on ExtUtils::MakeMaker, you can +depend on ExtUtils::MM::Utils instead. + + + +Signed-off-by: Petr Písař +--- + MANIFEST | 1 + + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm | 68 ++++++++++++++++++++++++ + 2 files changed, 69 insertions(+) + create mode 100644 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm + +diff --git a/MANIFEST b/MANIFEST +index 6af238c..d4f0c56 100644 +--- a/MANIFEST ++++ b/MANIFEST +@@ -1045,6 +1045,7 @@ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm MakeMaker methods for OS/2 + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm MakeMaker adaptor class + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm MakeMaker methods for QNX + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm MakeMaker methods for Unix ++cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm Independed MM methods + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm MakeMaker methods for U/WIN + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm MakeMaker methods for VMS + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm MakeMaker methods for VOS +diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm +new file mode 100644 +index 0000000..6bbc0d8 +--- /dev/null ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM/Utils.pm +@@ -0,0 +1,68 @@ ++package ExtUtils::MM::Utils; ++ ++require 5.006; ++ ++use strict; ++use vars qw($VERSION); ++$VERSION = '7.11_06'; ++$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] ++ ++=head1 NAME ++ ++ExtUtils::MM::Utils - ExtUtils::MM methods without dependency on ExtUtils::MakeMaker ++ ++=head1 SYNOPSIS ++ ++ require ExtUtils::MM::Utils; ++ MM->maybe_command($file); ++ ++=head1 DESCRIPTION ++ ++This is a collection of L subroutines that are used by many ++other modules but that do not need full-featured L. The ++issue with L is it pulls in Perl header files and that is ++an overkill for small subroutines. ++ ++An example is the L that caused installing GCC just because of ++three-line I from L. ++ ++The intentions is to use L instead of ++L for these trivial methods. You can still call them via ++L class name. ++ ++=head1 METHODS ++ ++=over 4 ++ ++=item maybe_command ++ ++Returns true, if the argument is likely to be a command. ++ ++=cut ++ ++if (!exists $INC{'ExtUtils/MM.pm'}) { ++ *MM::maybe_command = *ExtUtils::MM::maybe_command = \&maybe_command; ++} ++ ++sub maybe_command { ++ my($self,$file) = @_; ++ return $file if -x $file && ! -d $file; ++ return; ++} ++ ++1; ++ ++=back ++ ++=head1 BUGS ++ ++These methods are copied from L. Other operating systems ++are not supported yet. The reason is this ++L. ++ ++=head1 SEE ALSO ++ ++L, L ++ ++=cut +-- +2.5.5 + diff --git a/perl.spec b/perl.spec index 291a590..d98a9ba 100644 --- a/perl.spec +++ b/perl.spec @@ -62,6 +62,9 @@ Patch4: perl-5.10.0-libresolv.patch # patches ExtUtils-MakeMaker Patch5: perl-USE_MM_LD_RUN_PATH.patch +# Provide maybe_command independently, bug #1129443 +Patch6: perl-5.22.1-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch + # The Fedora builders started randomly failing this futime test # only on x86_64, so we just don't run it. Works fine on normal # systems. @@ -1078,6 +1081,20 @@ reference to a scalar it is used as the filename to open for ouput. Any other reference is used as the filehandle to write to. Otherwise output defaults to STDOUT. +%if %{dual_life} || %{rebuild_from_scratch} +%package -n perl-ExtUtils-MM-Utils +Summary: ExtUtils::MM methods without dependency on ExtUtils::MakeMaker +License: GPL+ or Artistic +Group: Development/Libraries +BuildArch: noarch +Requires: %perl_compat + +%description -n perl-ExtUtils-MM-Utils +This is a collection of ExtUtils::MM subroutines that are used by many +other modules but that do not need full-featured ExtUtils::MakeMaker. The +issue with ExtUtils::MakeMaker is it pulls in Perl header files and that +is an overkill for small subroutines. +%endif %if %{dual_life} || %{rebuild_from_scratch} %package ExtUtils-ParseXS @@ -2358,6 +2375,7 @@ Perl extension for Version Objects %endif %patch4 -p1 %patch5 -p1 +%patch6 -p1 %patch7 -p1 %patch8 -p1 %patch15 -p1 @@ -2379,7 +2397,7 @@ perl -x patchlevel.h \ %endif \ 'Fedora Patch4: use libresolv instead of libbind' \ 'Fedora Patch5: USE_MM_LD_RUN_PATH' \ - 'Fedora Patch6: Skip hostname tests, due to builders not being network capable' \ + 'Fedora Patch6: Provide MM::maybe_command independently (bug #1129443)' \ 'Fedora Patch7: Dont run one io test due to random builder failures' \ 'Fedora Patch15: Define SONAME for libperl.so' \ 'Fedora Patch16: Install libperl.so to -Dshrpdir value' \ @@ -2646,6 +2664,7 @@ sed \ # lib/perl5db.t will fail if Term::ReadLine::Gnu is available %check %if %{with test} +%{new_perl} -I/lib regen/lib_cleanup.pl pushd t %{new_perl} -I../lib porting/customized.t --regen popd @@ -2961,7 +2980,8 @@ popd %exclude %{privlib}/ExtUtils/Liblist.pm %exclude %{privlib}/ExtUtils/MakeMaker %exclude %{privlib}/ExtUtils/MakeMaker.pm -%exclude %{privlib}/ExtUtils/MM*.pm +%exclude %{privlib}/ExtUtils/MM.pm +%exclude %{privlib}/ExtUtils/MM_*.pm %exclude %{privlib}/ExtUtils/MY.pm %exclude %{privlib}/ExtUtils/Mkbootstrap.pm %exclude %{privlib}/ExtUtils/Mksymlists.pm @@ -2969,7 +2989,8 @@ popd %exclude %{_mandir}/man1/instmodsh.1* %exclude %{_mandir}/man3/ExtUtils::Command::MM* %exclude %{_mandir}/man3/ExtUtils::Liblist.3* -%exclude %{_mandir}/man3/ExtUtils::MM* +%exclude %{_mandir}/man3/ExtUtils::MM.3* +%exclude %{_mandir}/man3/ExtUtils::MM_* %exclude %{_mandir}/man3/ExtUtils::MY.3* %exclude %{_mandir}/man3/ExtUtils::MakeMaker* %exclude %{_mandir}/man3/ExtUtils::Mkbootstrap.3* @@ -2980,6 +3001,11 @@ popd %exclude %{privlib}/ExtUtils/Miniperl.pm %exclude %{_mandir}/man3/ExtUtils::Miniperl.3* +# ExtUtils-MM-Utils +%exclude %dir %{privlib}/ExtUtils/MM +%exclude %{privlib}/ExtUtils/MM/Utils.pm +%exclude %{_mandir}/man3/ExtUtils::MM::Utils.* + # ExtUtils-ParseXS %exclude %dir %{privlib}/ExtUtils/ParseXS %exclude %{privlib}/ExtUtils/ParseXS.pm @@ -3903,7 +3929,8 @@ popd %{privlib}/ExtUtils/Liblist.pm %{privlib}/ExtUtils/MakeMaker %{privlib}/ExtUtils/MakeMaker.pm -%{privlib}/ExtUtils/MM*.pm +%{privlib}/ExtUtils/MM.pm +%{privlib}/ExtUtils/MM_*.pm %{privlib}/ExtUtils/MY.pm %{privlib}/ExtUtils/Mkbootstrap.pm %{privlib}/ExtUtils/Mksymlists.pm @@ -3911,7 +3938,8 @@ popd %{_mandir}/man1/instmodsh.1* %{_mandir}/man3/ExtUtils::Command::MM* %{_mandir}/man3/ExtUtils::Liblist.3* -%{_mandir}/man3/ExtUtils::MM* +%{_mandir}/man3/ExtUtils::MM.3* +%{_mandir}/man3/ExtUtils::MM_* %{_mandir}/man3/ExtUtils::MY.3* %{_mandir}/man3/ExtUtils::MakeMaker* %{_mandir}/man3/ExtUtils::Mkbootstrap.3* @@ -3924,6 +3952,14 @@ popd %{privlib}/ExtUtils/Miniperl.pm %{_mandir}/man3/ExtUtils::Miniperl.3* +%if %{dual_life} || %{rebuild_from_scratch} +%files ExtUtils-MM-Utils +%dir %{privlib}/ExtUtils +%dir %{privlib}/ExtUtils/MM +%{privlib}/ExtUtils/MM/Utils.pm +%{_mandir}/man3/ExtUtils::MM::Utils.* +%endif + %if %{dual_life} || %{rebuild_from_scratch} %files ExtUtils-ParseXS %dir %{privlib}/ExtUtils @@ -4645,6 +4681,7 @@ popd (bug #1129443) - Remove perl-ExtUtils-ParseXS dependency on perl-devel (bug #1129443) - Require perl-devel by perl-ExtUtils-MakeMaker +- Provide MM::maybe_command independently (bug #1129443) * Tue Mar 15 2016 Petr Pisar - 4:5.22.1-359 - Do not filter FCGI dependency, CGI is non-core now