From df7d75b0c2b19fc58ac61365c05a1c89926cb35f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <[email protected]>
Date: Mon, 18 Apr 2016 16:33:28 +0200
Subject: 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.
---
 ...Utils-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?= <[email protected]>
+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.
+
+<https://bugzilla.redhat.com/show_bug.cgi?id=1129443>
+
+Signed-off-by: Petr Písař <[email protected]>
+---
+ 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<ExtUtils::MM> subroutines that are used by many
++other modules but that do not need full-featured L<ExtUtils::MakeMaker>. The
++issue with L<ExtUtils::MakeMaker> is it pulls in Perl header files and that is
++an overkill for small subroutines.
++
++An example is the L<IPC::Cmd> that caused installing GCC just because of
++three-line I<maybe_command()> from L<ExtUtils::MM_Unix>.
++
++The intentions is to use L<ExtUtils::MM::Utils> instead of
++L<ExtUtils::MakeMaker> for these trivial methods. You can still call them via
++L<MM> 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<ExtUtils::MM_Unix>. Other operating systems
++are not supported yet. The reason is this
++L<a hack for Linux
++distributions|https://bugzilla.redhat.com/show_bug.cgi?id=1129443>.
++
++=head1 SEE ALSO
++
++L<ExtUtils::MakeMaker>, L<ExtUtils::MM>
++
++=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*
@@ -3925,6 +3953,14 @@ popd
 %{_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
 %dir %{privlib}/ExtUtils/ParseXS
@@ -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 <[email protected]> - 4:5.22.1-359
 - Do not filter FCGI dependency, CGI is non-core now
-- 
cgit v0.12


        
http://pkgs.fedoraproject.org/cgit/perl.git/commit/?h=master&id=df7d75b0c2b19fc58ac61365c05a1c89926cb35f
--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
perl-devel mailing list
[email protected]
http://lists.fedoraproject.org/admin/lists/[email protected]

Reply via email to