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.
This commit is contained in:
Petr Písař 2016-04-18 16:33:28 +02:00
parent 1eda1fc7e8
commit df7d75b0c2
2 changed files with 152 additions and 5 deletions

View File

@ -0,0 +1,110 @@
From 9575301256f67116eccdbb99b38fc804ba3dcf53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
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ř <ppisar@redhat.com>
---
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

View File

@ -62,6 +62,9 @@ Patch4: perl-5.10.0-libresolv.patch
# patches ExtUtils-MakeMaker # patches ExtUtils-MakeMaker
Patch5: perl-USE_MM_LD_RUN_PATH.patch 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 # The Fedora builders started randomly failing this futime test
# only on x86_64, so we just don't run it. Works fine on normal # only on x86_64, so we just don't run it. Works fine on normal
# systems. # 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 reference is used as the filehandle to write to. Otherwise output defaults to
STDOUT. 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} %if %{dual_life} || %{rebuild_from_scratch}
%package ExtUtils-ParseXS %package ExtUtils-ParseXS
@ -2358,6 +2375,7 @@ Perl extension for Version Objects
%endif %endif
%patch4 -p1 %patch4 -p1
%patch5 -p1 %patch5 -p1
%patch6 -p1
%patch7 -p1 %patch7 -p1
%patch8 -p1 %patch8 -p1
%patch15 -p1 %patch15 -p1
@ -2379,7 +2397,7 @@ perl -x patchlevel.h \
%endif \ %endif \
'Fedora Patch4: use libresolv instead of libbind' \ 'Fedora Patch4: use libresolv instead of libbind' \
'Fedora Patch5: USE_MM_LD_RUN_PATH' \ '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 Patch7: Dont run one io test due to random builder failures' \
'Fedora Patch15: Define SONAME for libperl.so' \ 'Fedora Patch15: Define SONAME for libperl.so' \
'Fedora Patch16: Install libperl.so to -Dshrpdir value' \ 'Fedora Patch16: Install libperl.so to -Dshrpdir value' \
@ -2646,6 +2664,7 @@ sed \
# lib/perl5db.t will fail if Term::ReadLine::Gnu is available # lib/perl5db.t will fail if Term::ReadLine::Gnu is available
%check %check
%if %{with test} %if %{with test}
%{new_perl} -I/lib regen/lib_cleanup.pl
pushd t pushd t
%{new_perl} -I../lib porting/customized.t --regen %{new_perl} -I../lib porting/customized.t --regen
popd popd
@ -2961,7 +2980,8 @@ popd
%exclude %{privlib}/ExtUtils/Liblist.pm %exclude %{privlib}/ExtUtils/Liblist.pm
%exclude %{privlib}/ExtUtils/MakeMaker %exclude %{privlib}/ExtUtils/MakeMaker
%exclude %{privlib}/ExtUtils/MakeMaker.pm %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/MY.pm
%exclude %{privlib}/ExtUtils/Mkbootstrap.pm %exclude %{privlib}/ExtUtils/Mkbootstrap.pm
%exclude %{privlib}/ExtUtils/Mksymlists.pm %exclude %{privlib}/ExtUtils/Mksymlists.pm
@ -2969,7 +2989,8 @@ popd
%exclude %{_mandir}/man1/instmodsh.1* %exclude %{_mandir}/man1/instmodsh.1*
%exclude %{_mandir}/man3/ExtUtils::Command::MM* %exclude %{_mandir}/man3/ExtUtils::Command::MM*
%exclude %{_mandir}/man3/ExtUtils::Liblist.3* %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::MY.3*
%exclude %{_mandir}/man3/ExtUtils::MakeMaker* %exclude %{_mandir}/man3/ExtUtils::MakeMaker*
%exclude %{_mandir}/man3/ExtUtils::Mkbootstrap.3* %exclude %{_mandir}/man3/ExtUtils::Mkbootstrap.3*
@ -2980,6 +3001,11 @@ popd
%exclude %{privlib}/ExtUtils/Miniperl.pm %exclude %{privlib}/ExtUtils/Miniperl.pm
%exclude %{_mandir}/man3/ExtUtils::Miniperl.3* %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 # ExtUtils-ParseXS
%exclude %dir %{privlib}/ExtUtils/ParseXS %exclude %dir %{privlib}/ExtUtils/ParseXS
%exclude %{privlib}/ExtUtils/ParseXS.pm %exclude %{privlib}/ExtUtils/ParseXS.pm
@ -3903,7 +3929,8 @@ popd
%{privlib}/ExtUtils/Liblist.pm %{privlib}/ExtUtils/Liblist.pm
%{privlib}/ExtUtils/MakeMaker %{privlib}/ExtUtils/MakeMaker
%{privlib}/ExtUtils/MakeMaker.pm %{privlib}/ExtUtils/MakeMaker.pm
%{privlib}/ExtUtils/MM*.pm %{privlib}/ExtUtils/MM.pm
%{privlib}/ExtUtils/MM_*.pm
%{privlib}/ExtUtils/MY.pm %{privlib}/ExtUtils/MY.pm
%{privlib}/ExtUtils/Mkbootstrap.pm %{privlib}/ExtUtils/Mkbootstrap.pm
%{privlib}/ExtUtils/Mksymlists.pm %{privlib}/ExtUtils/Mksymlists.pm
@ -3911,7 +3938,8 @@ popd
%{_mandir}/man1/instmodsh.1* %{_mandir}/man1/instmodsh.1*
%{_mandir}/man3/ExtUtils::Command::MM* %{_mandir}/man3/ExtUtils::Command::MM*
%{_mandir}/man3/ExtUtils::Liblist.3* %{_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::MY.3*
%{_mandir}/man3/ExtUtils::MakeMaker* %{_mandir}/man3/ExtUtils::MakeMaker*
%{_mandir}/man3/ExtUtils::Mkbootstrap.3* %{_mandir}/man3/ExtUtils::Mkbootstrap.3*
@ -3924,6 +3952,14 @@ popd
%{privlib}/ExtUtils/Miniperl.pm %{privlib}/ExtUtils/Miniperl.pm
%{_mandir}/man3/ExtUtils::Miniperl.3* %{_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} %if %{dual_life} || %{rebuild_from_scratch}
%files ExtUtils-ParseXS %files ExtUtils-ParseXS
%dir %{privlib}/ExtUtils %dir %{privlib}/ExtUtils
@ -4645,6 +4681,7 @@ popd
(bug #1129443) (bug #1129443)
- Remove perl-ExtUtils-ParseXS dependency on perl-devel (bug #1129443) - Remove perl-ExtUtils-ParseXS dependency on perl-devel (bug #1129443)
- Require perl-devel by perl-ExtUtils-MakeMaker - Require perl-devel by perl-ExtUtils-MakeMaker
- Provide MM::maybe_command independently (bug #1129443)
* Tue Mar 15 2016 Petr Pisar <ppisar@redhat.com> - 4:5.22.1-359 * Tue Mar 15 2016 Petr Pisar <ppisar@redhat.com> - 4:5.22.1-359
- Do not filter FCGI dependency, CGI is non-core now - Do not filter FCGI dependency, CGI is non-core now