Compare commits

...

No commits in common. "c8-stream-5.3" and "stream-perl-5.24-rhel-8.9.0" have entirely different histories.

15 changed files with 284 additions and 94 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

3
.gitignore vendored
View File

@ -1 +1,2 @@
SOURCES/ExtUtils-MakeMaker-7.42.tar.gz
SOURCES/ExtUtils-MakeMaker-7.24.tar.gz
/ExtUtils-MakeMaker-7.24.tar.gz

View File

@ -1 +0,0 @@
0441553dc10430917382f132be3dfa167d77a030 SOURCES/ExtUtils-MakeMaker-7.42.tar.gz

View File

@ -0,0 +1,52 @@
From c2fc4b379565552ba6c82553ceceb7d4cd754cc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Tue, 2 Jul 2013 10:28:15 +0200
Subject: [PATCH] Link to libperl explicitly on Linux
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
<https://bugzilla.redhat.com/show_bug.cgi?id=960048>
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327585#50>
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/ExtUtils/MM_Unix.pm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm
index 25a1778..fcd130a 100644
--- a/lib/ExtUtils/MM_Unix.pm
+++ b/lib/ExtUtils/MM_Unix.pm
@@ -30,6 +30,7 @@ BEGIN {
$Is{IRIX} = $^O eq 'irix';
$Is{NetBSD} = $^O eq 'netbsd';
$Is{Interix} = $^O eq 'interix';
+ $Is{Linux} = $^O eq 'linux';
$Is{SunOS4} = $^O eq 'sunos';
$Is{Solaris} = $^O eq 'solaris';
$Is{SunOS} = $Is{SunOS4} || $Is{Solaris};
@@ -1022,7 +1023,7 @@ sub xs_make_dynamic_lib {
push(@m," \$(RM_F) \$\@\n");
my $libs = '$(LDLOADLIBS)';
- if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
+ if (($Is{Linux} || $Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
# Use nothing on static perl platforms, and to the flags needed
# to link against the shared libperl library on shared perl
# platforms. We peek at lddlflags to see if we need -Wl,-R
@@ -1035,6 +1036,11 @@ sub xs_make_dynamic_lib {
# The Android linker will not recognize symbols from
# libperl unless the module explicitly depends on it.
$libs .= ' "-L$(PERL_INC)" -lperl';
+ } else {
+ if ($ENV{PERL_CORE}) {
+ $libs .= ' -L$(PERL_INC)';
+ }
+ $libs .= ' -lperl';
}
}
--
2.5.5

View File

@ -0,0 +1,134 @@
From 4361bd6fb0717f99f6b21ed053542e01c5093af2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Thu, 12 Jan 2012 17:05:19 +0100
Subject: [PATCH] Do not set RPATH by default
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Former behavior can be forced by setting USE_MM_LD_RUN_PATH
environment variable to 1.
This is copy from `perl' package.
See <https://bugzilla.redhat.com/show_bug.cgi?id=773622>.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/ExtUtils/Liblist.pm | 5 +++++
lib/ExtUtils/MM_Unix.pm | 2 +-
lib/ExtUtils/MakeMaker.pm | 56 ++++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/lib/ExtUtils/Liblist.pm b/lib/ExtUtils/Liblist.pm
index 6e1224c..5573ff6 100644
--- a/lib/ExtUtils/Liblist.pm
+++ b/lib/ExtUtils/Liblist.pm
@@ -89,6 +89,11 @@ libraries. LD_RUN_PATH is a colon separated list of the directories
in LDLOADLIBS. It is passed as an environment variable to the process
that links the shared library.
+Fedora extension: This generation of LD_RUN_PATH is disabled by default.
+To use the generated LD_RUN_PATH for all links, set the USE_MM_LD_RUN_PATH
+MakeMaker object attribute / argument, (or set the $USE_MM_LD_RUN_PATH
+environment variable).
+
=head2 BSLOADLIBS
List of those libraries that are needed but can be linked in
diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm
index c5ddaac..d2fbb31 100644
--- a/lib/ExtUtils/MM_Unix.pm
+++ b/lib/ExtUtils/MM_Unix.pm
@@ -1039,7 +1039,7 @@ sub xs_make_dynamic_lib {
}
my $ld_run_path_shell = "";
- if ($self->{LD_RUN_PATH} ne "") {
+ if (($self->{LD_RUN_PATH} ne "") && ($self->{USE_MM_LD_RUN_PATH})) {
$ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
}
diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm
index fc1b1e6..89d7ca8 100644
--- a/lib/ExtUtils/MakeMaker.pm
+++ b/lib/ExtUtils/MakeMaker.pm
@@ -313,7 +313,7 @@ sub full_setup {
PERM_DIR PERM_RW PERM_RWX MAGICXS
PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE
PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
- SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS
+ SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS
XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION
clean depend dist dynamic_lib linkext macro realclean tool_autosplit
@@ -499,6 +499,26 @@ sub new {
$self->_PRINT_PREREQ;
}
+ # USE_MM_LD_RUN_PATH - another RedHatism to disable automatic RPATH generation
+ if ( ( ! $self->{USE_MM_LD_RUN_PATH} )
+ &&( ("@ARGV" =~ /\bUSE_MM_LD_RUN_PATH(=([01]))?\b/)
+ ||( exists( $ENV{USE_MM_LD_RUN_PATH} )
+ &&( $ENV{USE_MM_LD_RUN_PATH} =~ /([01])?$/ )
+ )
+ )
+ )
+ {
+ my $v = $1;
+ if( $v )
+ {
+ $v = ($v=~/=([01])$/)[0];
+ }else
+ {
+ $v = 1;
+ };
+ $self->{USE_MM_LD_RUN_PATH}=$v;
+ };
+
print "MakeMaker (v$VERSION)\n" if $Verbose;
if (-f "MANIFEST" && ! -f "Makefile" && ! $UNDER_CORE){
check_manifest();
@@ -2781,6 +2801,40 @@ precedence. A typemap in the current directory has highest
precedence, even if it isn't listed in TYPEMAPS. The default system
typemap has lowest precedence.
+=item USE_MM_LD_RUN_PATH
+
+boolean
+The Fedora perl MakeMaker distribution differs from the standard
+upstream release in that it disables use of the MakeMaker generated
+LD_RUN_PATH by default, UNLESS this attribute is specified , or the
+USE_MM_LD_RUN_PATH environment variable is set during the MakeMaker run.
+
+The upstream MakeMaker will set the ld(1) environment variable LD_RUN_PATH
+to the concatenation of every -L ld(1) option directory in which a -l ld(1)
+option library is found, which is used as the ld(1) -rpath option if none
+is specified. This means that, if your application builds shared libraries
+and your MakeMaker application links to them, that the absolute paths of the
+libraries in the build tree will be inserted into the RPATH header of all
+MakeMaker generated binaries, and that such binaries will be unable to link
+to these libraries if they do not still reside in the build tree directories
+(unlikely) or in the system library directories (/lib or /usr/lib), regardless
+of any LD_LIBRARY_PATH setting. So if you specified -L../mylib -lmylib , and
+ your 'libmylib.so' gets installed into /some_directory_other_than_usr_lib,
+ your MakeMaker application will be unable to link to it, even if LD_LIBRARY_PATH
+is set to include /some_directory_other_than_usr_lib, because RPATH overrides
+LD_LIBRARY_PATH.
+
+So for Fedora MakeMaker builds LD_RUN_PATH is NOT generated by default for
+every link. You can still use explicit -rpath ld options or the LD_RUN_PATH
+environment variable during the build to generate an RPATH for the binaries.
+
+You can set the USE_MM_LD_RUN_PATH attribute to 1 on the MakeMaker command
+line or in the WriteMakefile arguments to enable generation of LD_RUN_PATH
+for every link command.
+
+USE_MM_LD_RUN_PATH will default to 1 (LD_RUN_PATH will be used) IF the
+$USE_MM_LD_RUN_PATH environment variable is set during a MakeMaker run.
+
=item VENDORPREFIX
Like PERLPREFIX, but only for the vendor install locations.
--
2.5.5

View File

@ -0,0 +1,53 @@
From 58fa199a752913dfb0455ac1397e897afcc1f9b4 Mon Sep 17 00:00:00 2001
From: James E Keenan <jkeenan@cpan.org>
Date: Thu, 11 May 2017 04:23:40 -0400
Subject: [PATCH] Correct the order of tests of chmod(). (#294)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Per code review by haarg, the order of tests was wrong in the first place.
Hence, correctly re-ordering them is a better repair than changing one test's
description.
For: https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/294
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
t/eu_command.t | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/t/eu_command.t b/t/eu_command.t
index 269aa5c..32a6f59 100644
--- a/t/eu_command.t
+++ b/t/eu_command.t
@@ -151,20 +151,21 @@ BEGIN {
is( ((stat('testdir'))[2] & 07777) & 0700,
0100, 'change a dir to execute-only' );
- # change a dir to read-only
- @ARGV = ( '0400', 'testdir' );
+ # change a dir to write-only
+ @ARGV = ( '0200', 'testdir' );
ExtUtils::Command::chmod();
is( ((stat('testdir'))[2] & 07777) & 0700,
- 0400, 'change a dir to read-only' );
+ 0200, 'change a dir to write-only' );
- # change a dir to write-only
- @ARGV = ( '0200', 'testdir' );
+ # change a dir to read-only
+ @ARGV = ( '0400', 'testdir' );
ExtUtils::Command::chmod();
is( ((stat('testdir'))[2] & 07777) & 0700,
- 0200, 'change a dir to write-only' );
+ 0400, 'change a dir to read-only' );
+ # remove the dir we've been playing with
@ARGV = ('testdir');
rm_rf;
ok( ! -e 'testdir', 'rm_rf can delete a read-only dir' );
--
2.9.4

View File

@ -1,32 +1,32 @@
# Run optional test
%bcond_without perl_ExtUtils_MakeMaker_enables_optional_test
%global cpan_name ExtUtils-MakeMaker
Name: perl-%{cpan_name}
Epoch: 2
Version: 7.42
Release: 1%{?dist}
Version: 7.24
Release: 4%{?dist}
Summary: Create a module Makefile
License: GPL+ or Artistic
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/B/BI/BINGOS/%{cpan_name}-%{version}.tar.gz
Group: Development/Libraries
URL: http://search.cpan.org/dist/%{cpan_name}/
Source0: http://www.cpan.org/authors/id/B/BI/BINGOS/%{cpan_name}-%{version}.tar.gz
# Do not set RPATH to perl shared-library modules by default. Bug #773622.
# This is copy from `perl' package. This is a distributor extension.
Patch0: %{cpan_name}-7.36-USE_MM_LD_RUN_PATH.patch
Patch0: %{cpan_name}-7.16-USE_MM_LD_RUN_PATH.patch
# Link to libperl.so explicitly. Bug #960048.
Patch1: %{cpan_name}-7.30-Link-to-libperl-explicitly-on-Linux.patch
Patch1: %{cpan_name}-7.12-Link-to-libperl-explicitly-on-Linux.patch
# Unbundle version modules
Patch2: %{cpan_name}-7.04-Unbundle-version.patch
# Unbundle Encode::Locale module
Patch3: %{cpan_name}-7.22-Unbundle-Encode-Locale.patch
# Provide maybe_command independently, bug #1129443
Patch4: %{cpan_name}-7.11-Provide-ExtUtils-MM-methods-as-standalone-ExtUtils-M.patch
# Fix t/eu_command.t test, in upstream 2.25_02
Patch5: %{cpan_name}-7.25_01-Correct-the-order-of-tests-of-chmod-.-294.patch
BuildArch: noarch
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: make
BuildRequires: perl
BuildRequires: perl-generators
BuildRequires: perl-interpreter
# Makefile.Pl uses ExtUtils::MakeMaker from ./lib
# B needed only for CPAN::Meta::Requirements
BuildRequires: perl(Carp)
@ -46,6 +46,7 @@ BuildRequires: perl(version)
BuildRequires: perl(warnings)
# If an XS module is compiled, xsubpp(1) is needed
BuildRequires: perl-ExtUtils-ParseXS
BuildRequires: sed
# Tests:
BuildRequires: perl(AutoSplit)
BuildRequires: perl(base)
@ -70,11 +71,9 @@ BuildRequires: perl(POSIX)
BuildRequires: perl(subs)
BuildRequires: perl(Test::Harness)
BuildRequires: perl(Test::More)
BuildRequires: perl(Text::ParseWords)
# threads::shared not used
BuildRequires: perl(utf8)
# XSLoader not used
%if %{with perl_ExtUtils_MakeMaker_enables_optional_test}
# Optional tests
BuildRequires: perl-devel
BuildRequires: perl(B)
@ -82,7 +81,6 @@ BuildRequires: perl(ExtUtils::CBuilder)
BuildRequires: perl(PerlIO)
# Keep YAML optional
# Keep YAML::Tiny optional
%endif
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(B)
Recommends: perl(CPAN::Meta) >= 2.143240
@ -93,9 +91,7 @@ Requires: perl(Data::Dumper)
Requires: perl(DynaLoader)
# Encode is needed for producing POD with =encoding statement correctly
Requires: perl(Encode)
%if !%{defined perl_bootstrap}
Recommends: perl(Encode::Locale)
%endif
Requires: perl(ExtUtils::Command) >= 1.19
Requires: perl(ExtUtils::Install) >= 1.54
Requires: perl(ExtUtils::Manifest) >= 1.70
@ -109,18 +105,16 @@ Requires: perl(Pod::Man)
Requires: perl(POSIX)
Requires: perl(Test::Harness)
Recommends: perl(Time::HiRes)
Requires: perl(Text::ParseWords)
# Text::ParseWords is not needed (Win32 only)
# VMS::Filespec is not needed (VMS only)
# Win32 is not needed (Win32 only)
# If an XS module is compiled, xsubpp(1) is needed
Requires: perl-ExtUtils-ParseXS
# These dependencies are weak in order to relieve building noarch
# packages from perl-devel and gcc. See bug #1547165.
# If an XS module is built, code generated from XS will be compiled and it
# includes Perl header files.
Recommends: perl-devel
# If an XS module is built, the generated Makefile executes gcc.
Recommends: gcc
# TODO: This dependency will be weaken in order to relieve building noarch
# packages from perl-devel and gcc.
Requires: perl-devel
# Do not export underspecified dependencies
%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(File::Spec\\)\s*$
@ -135,6 +129,7 @@ Dougherty and the perl5-porters.
%package -n perl-ExtUtils-Command
Summary: Perl routines to replace common UNIX commands in Makefiles
License: GPL+ or Artistic
Group: Development/Libraries
BuildArch: noarch
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Requires: perl(Carp)
@ -152,6 +147,7 @@ easier to deal with in Makefiles.
%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(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
@ -168,22 +164,24 @@ is an overkill for small subroutines.
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
# Remove bundled modules
rm -rf bundled
perl -i -ne 'print $_ unless m{^bundled/}' MANIFEST
sed -i -e '/^bundled\// d' MANIFEST
rm -rf t/lib/Test
perl -i -ne 'print $_ unless m{^t/lib/Test/}' MANIFEST
sed -i -e '/^t\/lib\/Test\// d' MANIFEST
rm -rf lib/ExtUtils/MakeMaker/version{,.pm}
perl -i -ne 'print $_ unless m{^lib/ExtUtils/MakeMaker/version(?:/|\.pm)}' MANIFEST
sed -i -e '/^lib\/ExtUtils\/MakeMaker\/version[\/\.]/ d' MANIFEST
rm -rf lib/ExtUtils/MakeMaker/Locale.pm
perl -i -ne 'print $_ unless m{^lib/ExtUtils/MakeMaker/Locale\.pm}' MANIFEST
sed -i -e '/^lib\/ExtUtils\/MakeMaker\/Locale\.pm/ d' MANIFEST
%build
BUILDING_AS_PACKAGE=1 perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1
%{make_build}
BUILDING_AS_PACKAGE=1 perl Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}
%install
%{make_install}
make pure_install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -type f -name .packlist -delete
%{_fixperms} $RPM_BUILD_ROOT/*
%check
@ -213,70 +211,11 @@ make test
%{_mandir}/man3/ExtUtils::MM::Utils.*
%changelog
* Wed Dec 18 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2:7.42-1
- 7.42 bump
* Fri Mar 29 2019 Jitka Plesnikova <jplesnik@redhat.com> - 7.24-4
- Rebuild with enable hardening (bug #1636329)
* Tue Dec 17 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2:7.40-1
- 7.40 bump
* Wed Sep 11 2019 Petr Pisar <ppisar@redhat.com> - 2:7.38-1
- 7.38 bump
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.36-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jun 02 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2:7.36-3
- Perl 5.30 re-rebuild of bootstrapped packages
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2:7.36-2
- Perl 5.30 rebuild
* Mon Apr 29 2019 Petr Pisar <ppisar@redhat.com> - 1:7.36-1
- 7.36 bump
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:7.34-419
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:7.34-418
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sat Jun 30 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1:7.34-417
- Perl 5.28 re-rebuild of bootstrapped packages
* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1:7.34-416
- Increase release to favour standalone package
* Mon Mar 19 2018 Petr Pisar <ppisar@redhat.com> - 1:7.34-1
- 7.34 bump
* Wed Feb 28 2018 Petr Pisar <ppisar@redhat.com> - 1:7.32-2
- Recommend gcc and perl-devel instead of a hard dependency (bug #1547165)
* Mon Feb 19 2018 Petr Pisar <ppisar@redhat.com> - 1:7.32-1
- 7.32 bump
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:7.30-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Dec 18 2017 Petr Pisar <ppisar@redhat.com> - 1:7.30-3
- Rebase patches
- Do not recommend non-core Encode::Locale on bootstrapping
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:7.30-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Jun 13 2017 Petr Pisar <ppisar@redhat.com> - 1:7.30-1
- 7.30 bump
* Sat Jun 03 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1:7.28-2
- Perl 5.26 rebuild
* Wed May 31 2017 Petr Pisar <ppisar@redhat.com> - 7.28-1
- 7.28 bump
* Mon May 29 2017 Petr Pisar <ppisar@redhat.com> - 7.26-1
- 7.26 bump
- Fix META generation (CPAN RT#121913)
* Wed Jul 12 2017 Petr Pisar <ppisar@redhat.com> - 7.24-3
- Fix t/eu_command.t test
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 7.24-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

5
plans/sanity.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (ExtUtils-MakeMaker-7.24.tar.gz) = f57f8407aea6101af964f105fb9ddd6567262fa2bad91456573c8fc019cdf1469563945029f5078e20d2f7d1d736a63586e7cde3bb72cb9ae80ad0b8ebe818d5

5
tests/upstream-tests.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Upstream tests
component: perl-ExtUtils-MakeMaker
require: perl-ExtUtils-MakeMaker-tests
test: /usr/libexec/perl-ExtUtils-MakeMaker/test