]> git.ipfire.org Git - people/ms/ipfire-3.x.git/commitdiff
perl: Make this package more in a redhat style.
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 1 Oct 2010 14:12:44 +0000 (16:12 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 1 Oct 2010 14:12:44 +0000 (16:12 +0200)
pkgs/core/perl/patches/perl-5.10.0-libresolv.patch [moved from pkgs/core/perl/patches/perl-5.10.1-libresolv.patch with 100% similarity]
pkgs/core/perl/patches/perl-5.8.0-libdir64.patch [new file with mode: 0644]
pkgs/core/perl/patches/perl-5.8.8-rpath-make.patch [moved from pkgs/core/perl/patches/perl-5.10.1-rpath-make.patch with 100% similarity]
pkgs/core/perl/patches/perl-USE_MM_LD_RUN_PATH.patch [new file with mode: 0644]
pkgs/core/perl/patches/perl-disable_test_hosts.patch [new file with mode: 0644]
pkgs/core/perl/patches/perl-perlbug-tag.patch [new file with mode: 0644]
pkgs/core/perl/perl.nm

diff --git a/pkgs/core/perl/patches/perl-5.8.0-libdir64.patch b/pkgs/core/perl/patches/perl-5.8.0-libdir64.patch
new file mode 100644 (file)
index 0000000..0ab67a0
--- /dev/null
@@ -0,0 +1,46 @@
+--- perl-5.8.0/Configure.orig  2002-09-09 11:31:19.000000000 -0400
++++ perl-5.8.0/Configure       2002-09-09 11:40:37.000000000 -0400
+@@ -6458,8 +6458,8 @@
+ : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7.
+ case "$installstyle" in
+ '')   case "$prefix" in
+-              *perl*) dflt='lib';;
+-              *) dflt='lib/perl5' ;;
++              *perl*) dflt='lib64';;
++              *) dflt='lib64/perl5' ;;
+       esac
+       ;;
+ *)    dflt="$installstyle" ;;
+@@ -6475,8 +6475,8 @@
+ : /opt/perl/lib/perl5... would be redundant.
+ : The default "style" setting is made in installstyle.U
+ case "$installstyle" in
+-*lib/perl5*) set dflt privlib lib/$package/$version ;;
+-*)     set dflt privlib lib/$version ;;
++*lib64/perl5*) set dflt privlib lib64/$package/$version ;;
++*)     set dflt privlib lib64/$version ;;
+ esac
+ eval $prefixit
+ $cat <<EOM
+@@ -6934,8 +6934,8 @@
+ prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+ case "$sitelib" in
+ '') case "$installstyle" in
+-      *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
+-      *)       dflt=$siteprefix/lib/site_$prog/$version ;;
++      *lib64/perl5*) dflt=$siteprefix/lib64/$package/site_$prog/$version ;;
++      *)       dflt=$siteprefix/lib64/site_$prog/$version ;;
+       esac
+       ;;
+ *)    dflt="$sitelib"
+@@ -7061,8 +7061,8 @@
+       '')
+               prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+               case "$installstyle" in
+-              *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;;
+-              *)           dflt=$vendorprefix/lib/vendor_$prog/$version ;;
++              *lib64/perl5*) dflt=$vendorprefix/lib64/$package/vendor_$prog/$version ;;
++              *)           dflt=$vendorprefix/lib64/vendor_$prog/$version ;;
+               esac
+               ;;
+       *)      dflt="$vendorlib"
diff --git a/pkgs/core/perl/patches/perl-USE_MM_LD_RUN_PATH.patch b/pkgs/core/perl/patches/perl-USE_MM_LD_RUN_PATH.patch
new file mode 100644 (file)
index 0000000..5b1ef76
--- /dev/null
@@ -0,0 +1,109 @@
+diff -up perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm.runpath perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
+--- perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm.runpath        2010-01-18 19:52:49.000000000 +0100
++++ perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm        2010-04-13 15:56:55.859789425 +0200
+@@ -88,6 +88,11 @@ libraries.  LD_RUN_PATH is a colon separ
+ 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 -up perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm.runpath perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+--- perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm.runpath      2010-01-18 19:52:49.000000000 +0100
++++ perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm      2010-04-13 16:00:32.941778159 +0200
+@@ -262,7 +262,7 @@ sub full_setup {
+     PERL_SRC PERM_DIR PERM_RW PERM_RWX
+     PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE PPM_INSTALL_EXEC
+     PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
+-    SIGN SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG
++    SIGN SKIP TYPEMAPS USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS XSOPT XSPROTOARG
+     XS_VERSION clean depend dist dynamic_lib linkext macro realclean
+     tool_autosplit
+@@ -406,7 +406,27 @@ sub new {
+     # PRINT_PREREQ is RedHatism.
+     if ("@ARGV" =~ /\bPRINT_PREREQ\b/) {
+         $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 STDOUT "MakeMaker (v$VERSION)\n" if $Verbose;
+     if (-f "MANIFEST" && ! -f "Makefile"){
+@@ -2320,6 +2340,40 @@ precedence.  A typemap in the current di
+ 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.
+diff -up perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.runpath perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+--- perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.runpath        2010-01-18 19:52:49.000000000 +0100
++++ perl-5.12.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm        2010-04-13 15:56:10.656775285 +0200
+@@ -944,7 +944,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $
+     }
+     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/pkgs/core/perl/patches/perl-disable_test_hosts.patch b/pkgs/core/perl/patches/perl-disable_test_hosts.patch
new file mode 100644 (file)
index 0000000..dc86a34
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up perl-5.12.0/cpan/libnet/Net/Config.pm.disable perl-5.12.0/cpan/libnet/Net/Config.pm
+--- perl-5.12.0/cpan/libnet/Net/Config.pm.disable      2010-01-18 19:52:49.000000000 +0100
++++ perl-5.12.0/cpan/libnet/Net/Config.pm      2010-04-13 16:03:50.090770813 +0200
+@@ -29,7 +29,7 @@ eval { local $SIG{__DIE__}; require Net:
+   ftp_firewall    => undef,
+   ftp_ext_passive => 1,
+   ftp_int_passive => 1,
+-  test_hosts      => 1,
++  test_hosts      => 0,
+   test_exist      => 1,
+ );
diff --git a/pkgs/core/perl/patches/perl-perlbug-tag.patch b/pkgs/core/perl/patches/perl-perlbug-tag.patch
new file mode 100644 (file)
index 0000000..e4b0976
--- /dev/null
@@ -0,0 +1,51 @@
+--- perl-5.10.1/utils/perlbug.PL.fedora        2009-08-12 20:49:24.000000000 +0200
++++ perl-5.10.1/utils/perlbug.PL       2009-11-18 15:56:15.000000000 +0100
+@@ -27,8 +27,6 @@ open OUT, ">$file" or die "Can't create 
+ open PATCH_LEVEL, "<" . catfile(updir, "patchlevel.h")
+     or die "Can't open patchlevel.h: $!";
+-my $patchlevel_date = (stat PATCH_LEVEL)[9];
+-
+ while (<PATCH_LEVEL>) {
+     last if $_ =~ /^\s*static\s+(?:const\s+)?char.*?local_patches\[\]\s*=\s*{\s*$/;
+ }
+@@ -71,9 +69,8 @@ $Config{startperl}
+     eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}'
+       if \$running_under_some_shell;
+-my \$config_tag1 = '$extract_version - $Config{cf_time}';
++my \$config_tag1 = '$extract_version';
+-my \$patchlevel_date = $patchlevel_date;
+ my \$patch_tags = '$patch_tags';
+ my \@patches = (
+     $patch_desc
+@@ -333,17 +330,6 @@ sub Init {
+     $ok = '';
+     if ($::opt_o) {
+       if ($::opt_o eq 'k' or $::opt_o eq 'kay') {
+-          my $age = time - $patchlevel_date;
+-          if ($::opt_o eq 'k' and $age > 60 * 24 * 60 * 60 ) {
+-              my $date = localtime $patchlevel_date;
+-              print <<"EOF";
+-"perlbug -ok" and "perlbug -nok" do not report on Perl versions which
+-are more than 60 days old.  This Perl version was constructed on
+-$date.  If you really want to report this, use
+-"perlbug -okay" or "perlbug -nokay".
+-EOF
+-              exit();
+-          }
+           # force these options
+           unless ($::opt_n) {
+               $::opt_S = 1; # don't prompt for send
+@@ -730,8 +716,8 @@ EFF
+     print OUT <<EFF;
+ ---
+ EFF
+-    print OUT "This perlbug was built using Perl $config_tag1\n",
+-          "It is being executed now by  Perl $config_tag2.\n\n"
++    print OUT "This perlbug was built using Perl $config_tag1 in the Fedora build system.\n",
++          "It is being executed now by Perl $config_tag2.\n\n"
+       if $config_tag2 ne $config_tag1;
+     print OUT <<EOF;
index 4bb5cba16444c8aa6c9770436b30af3aaaebabc5..96d4b7ad3e0b7e10ce6ee85215d77f84687a9050 100644 (file)
@@ -53,6 +53,7 @@ PKG_TARBALL    = $(THISAPP).tar.gz
 define QUALITY_AGENT_WHITELIST_RPATH
        /lib
        /usr/lib
+       /usr/lib/perl5/CORE
 endef
 
 define STAGE_PREPARE_CMDS
@@ -68,16 +69,29 @@ define STAGE_BUILD
        cd $(DIR_APP) && \
                sh ./Configure -des \
                        -Doptimize="$(CFLAGS)" \
+                       -Dccdlflags="-Wl,--enable-new-dtags" \
+                       -Dversion=$(PKG_VER) \
+                       -Dmyhostname=localhost \
+                       -Dperladmin=root@localhost \
+                       -Dcc="gcc" \
+                       -Dcf_by="$(DISTRO_VENDOR)" \
                        -Dprefix=/usr \
+                       -Dvendorprefix=/usr \
+                       -Dsiteprefix="/usr/local" \
+                       -Dsitelib="/usr/local/share/perl5" \
+                       -Dsitearch="/usr/local/lib/perl5" \
+                       -Dprivlib="/usr/share/perl5" \
+                       -Dvendorlib="/usr/share/perl5/vendor_perl" \
+                       -Darchlib="/usr/lib/perl5" \
+                       -Dvendorarch="/usr/lib/perl5/vendor_perl" \
+                       -Darchname=$(PKG_ARCH)-linux-thread-multi \
+                       -Dpager="/usr/bin/less -isr" \
                        -Dman1dir=/usr/share/man/man1 \
                        -Dman3dir=/usr/share/man/man3 \
-                       -Dpager="/usr/bin/less -isR" \
-                       -Dmyhostname=localhost
                        -Duseshrplib \
                        -Dusethreads \
                        -Duseithreads \
                        -Duselargefiles \
-                       -Dd_dosuid \
                        -Dd_semctl_semun \
                        -Di_db \
                        -Ui_ndbm \
@@ -95,7 +109,8 @@ define STAGE_BUILD
                        -Ud_endprotoent_r_proto \
                        -Ud_setprotoent_r_proto \
                        -Ud_endservent_r_proto \
-                       -Ud_setservent_r_proto
+                       -Ud_setservent_r_proto \
+                       -Dscriptdir="/usr/bin"
 
        cd $(DIR_APP) && make $(PARALLELISMFLAGS)
 endef
@@ -103,3 +118,8 @@ endef
 define STAGE_TEST
        cd $(DIR_APP) && make test
 endef
+
+define STAGE_INSTALL_CMDS
+       # Remove precreated directories
+       rm -rfv $(BUILDROOT)/usr/local
+endef