--- ./Configure.orig 2010-02-18 18:53:53.000000000 +0000 +++ ./Configure 2010-03-23 11:31:19.000000000 +0000 @@ -114,7 +114,7 @@ paths="$paths /usr/5bin /etc /usr/gnu/bi paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin" paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb" paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin" -paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib" +paths="$paths /etc /usr/lib /usr/lib64 /usr/ucblib /lib /usr/ccs/lib" paths="$paths /sbin /usr/sbin /usr/libexec" paths="$paths /system/gnu_library/bin" @@ -1316,7 +1316,7 @@ loclibpth="/usr/local/lib /opt/local/lib loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" : general looking path for locating libraries -glibpth="/lib /usr/lib $xlibpth" +glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth" glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" test -f /shlib/libc.so && glibpth="/shlib $glibpth" @@ -2375,7 +2375,7 @@ uname zip " pth=`echo $PATH | sed -e "s/$p_/ /g"` -pth="$pth /lib /usr/lib" +pth="$pth /lib /usr/lib /lib64 /usr/lib64" for file in $loclist; do eval xxx=\$$file case "$xxx" in @@ -11202,7 +11202,7 @@ void xxx(int n, ...) va_start(args, n); exit((unsigned long)vsprintf(buf,"%s",args) > 10L); } -int main() { xxx(1, "foo"); } +int main() { xxx(1, "foo"); return 0; } #else /* I_VARARGS */ @@ -11214,7 +11214,7 @@ va_dcl va_start(args); exit((unsigned long)vsprintf(buf,"%s",args) > 10L); } -int main() { xxx("foo"); } +int main() { xxx("foo"); return 0; } #endif @@ -19017,14 +19017,20 @@ int main(int argc, char *argv[]) } EOCP set try + # this is really stupid, but we have to link in the -ldb to have + # the above program succeed + _old_libs="$libs" + libs="$libs -ldb" if eval $compile_ok && $run ./try; then echo 'Looks OK.' >&4 + libs="$_old_libs" set `$run ./try 1` db_version_major=$1 db_version_minor=$2 db_version_patch=$3 else echo "I can't use Berkeley DB with your . I'll disable Berkeley DB." >&4 + libs="$_old_libs" i_db=$undef case " $libs " in *"-ldb "*) @@ -19067,7 +19073,7 @@ int main() } #endif EOCP - if $cc $ccflags -c try.c >try.out 2>&1 ; then + if $cc $ccflags -c try.c -ldb >try.out 2>&1 ; then if $contains warning try.out >>/dev/null 2>&1 ; then db_hashtype='int' else @@ -19112,7 +19118,7 @@ int main() } #endif EOCP - if $cc $ccflags -c try.c >try.out 2>&1 ; then + if $cc $ccflags -c try.c -ldb >try.out 2>&1 ; then if $contains warning try.out >>/dev/null 2>&1 ; then db_prefixtype='int' else @@ -23111,7 +23117,7 @@ passcat='$passcat' patchlevel='$patchlevel' path_sep='$path_sep' perl5='$perl5' -perl='$perl' +perl='perl' perl_patchlevel='$perl_patchlevel' perladmin='$perladmin' perllibs='$perllibs' --- ./SuSE/SuSEconfig.perl.orig 2010-03-23 11:31:19.000000000 +0000 +++ ./SuSE/SuSEconfig.perl 2010-03-23 11:31:19.000000000 +0000 @@ -0,0 +1,76 @@ +#! /bin/bash +# +# Copyright (c) 1996 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved. +# +# Author: Burchard Steinbild , 1996 +# Martin Scherbaum , 5/1997 +# Ruediger Oertel , 7/1998 + +# +# Variables in /etc/sysconfig/suseconfig used by this script are: +# CREATE_PERLLOCAL_POD +# +# This script calls the scripts: +# /usr/sbin/perllocal.suse which comes from the package perl +# + +# +# check if we are started as root +# only one of UID and USER must be set correctly +# +if test "$UID" != 0 -a "$USER" != root; then + echo "You must be root to start $0." + exit 1 +fi + +# +# SuSEconfig sometimes sets the variable CHECK_NEWPACKAGE. If it is set +# to false, we don't have to do anything. +# +test "$CHECK_NEWPACKAGE" = false && exit 0 + +test -f /etc/sysconfig/suseconfig || { echo "No /etc/sysconfig/suseconfig found." && exit 1 ; } +. /etc/sysconfig/suseconfig + +# this skript only works in a running system. + +test -n "$ROOT" && exit 0 + +perl -e 'exit 0' 2>/dev/null || { echo "Perl not found." && exit 0 ; } + +# +# see if we may do any work +# +test -n "$CREATE_PERLLOCAL_POD" -a "$CREATE_PERLLOCAL_POD" = "yes" \ + || { echo "disabled in sysconfig/suseconfig" && exit 1 ; } + +# +# check if anything to add +# +PERLLOCAL_PATH=`perl -V:installarchlib | sed -e "s/.*='\(.*\)'.*/\1/"` + +NEEDED="false" + +if test -d /var/adm/perl-modules ; then + if test /var/adm/perl-modules -nt $PERLLOCAL_PATH/perllocal.pod ; then + NEEDED="true" + elif test ! -f $PERLLOCAL_PATH/perllocal.pod ; then + NEEDED="true" + fi +fi + +# +# now call the working script +# +if "$NEEDED" = "true" ; then + if test -x /usr/lib/perl5/perllocal.SuSE ; then + /usr/lib/perl5/perllocal.SuSE + pod2man $PERLLOCAL_PATH/perllocal.pod | gzip > /usr/share/man/man3/perllocal.3pm.gz + else + echo "SuSEconfig.perl: /usr/lib/perl5/perllocal.SuSE not found!" + fi +fi + +# +# end of file SuSEconfig.perl +# --- ./SuSE/perllocal.SuSE.orig 2010-03-23 11:31:19.000000000 +0000 +++ ./SuSE/perllocal.SuSE 2010-03-23 11:31:19.000000000 +0000 @@ -0,0 +1,84 @@ +#!/usr/bin/perl +# Copyright (c) 1998 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved. +# +# Author: Ruediger Oertel , 1998 +# + +use Config; + +sub ReadFile { + local (*IF,*modules) = @_; + + while() { + chomp ($_); + next if (/^$/); + if (/^=head2.*$/) { + ($front,$rear) = split (': ',$_); + $front =~ s/^=head2\s*//; + $modules{$rear} = "$front"; + } elsif (/^=over [0-9]*$/) { + ($dummy,$num) = split ('\s',$_); + $curnum = 0; + } elsif (/^C<.*:.*>$/) { + $entry = $_; + $curnum++; + $modules{$rear} .= "\0$entry"; + } elsif (/^=back$/) { + ; + } elsif (/^=item \*$/) { + ; + } else { + print "SuSEconfig.perl: parsing perllocal:\n"; + print "ignoring line: $_\n"; + } + } + return %modules; +} + +local (%allmodules); + +if (open (IF, "<$Config{'installarchlib'}/perllocal.pod")) { + %allmodules = ReadFile(*IF,*allmodules); +} +close (IF); + +opendir (DIR, "/var/adm/perl-modules"); +while ($dirent = readdir(DIR)) { + next if ($dirent =~ /^\./); + open (IF , "/var/adm/perl-modules/$dirent"); + %allmodules = ReadFile(*IF,*allmodules); + close (IF); +} +closedir (DIR); + + +if (open (OF, ">$Config{'installarchlib'}/perllocal.pod")) { + foreach $key (keys(%allmodules)) { + $name = $key; + $name =~ s/^.*L\$//; + $name =~ s/::/\//; + @entries = split ('\0',$allmodules{$key}); + $ipath = $entries[1]; + $ipath =~ s/^.*\:\s//; + $ipath =~ s/>$//; + + # test if the module is really there, else skip + if ( -d "$ipath/$Config{'archname'}/auto/$name" || + -d "$Config{'installarchlib'}/auto/$name" ) { + $num = $#entries; + print OF "=head2 ",shift(@entries),": $key\n\n"; + print OF "=over $num\n\n"; + while ($_ = shift(@entries)) { + print OF "=item *\n\n"; + print OF "$_\n\n"; + } + print OF "=back\n\n"; + } + } + close (OF); +} else { + print "SuSEconfig.perl: Can't write to file $Config{'installarchlib'}/perllocal.pod !\n\n"; +} + --- ./SuSE/sysconfig.suseconfig-perl.orig 2010-03-23 11:31:19.000000000 +0000 +++ ./SuSE/sysconfig.suseconfig-perl 2010-03-23 11:31:19.000000000 +0000 @@ -0,0 +1,8 @@ +## Path: System/SuSEconfig +## Type: yesno +## Default: yes +## Config: perl +# +# May SuSEconfig modify your perllocal.pod? (yes/no) +# +CREATE_PERLLOCAL_POD="yes" --- ./cpan/CGI/lib/CGI/Fast.pm.orig 2010-03-23 15:04:37.000000000 +0000 +++ ./cpan/CGI/lib/CGI/Fast.pm 2010-03-23 15:05:01.000000000 +0000 @@ -26,6 +26,9 @@ use vars qw( ); @ISA = ('CGI'); +# FCGI is missing from the perl distri +our $RPM_Ignore_Requires = "perl(FCGI)"; + # workaround for known bug in libfcgi while (($ignore) = each %ENV) { } --- ./cpan/CPAN/lib/CPAN.pm.orig 2010-03-23 15:23:09.000000000 +0000 +++ ./cpan/CPAN/lib/CPAN.pm 2010-03-23 15:23:20.000000000 +0000 @@ -64,7 +64,7 @@ sub _uniq; no lib "."; -require Mac::BuildTools if $^O eq 'MacOS'; +#require Mac::BuildTools if $^O eq 'MacOS'; if ($ENV{PERL5_CPAN_IS_RUNNING} && $$ != $ENV{PERL5_CPAN_IS_RUNNING}) { $ENV{PERL5_CPAN_IS_RUNNING_IN_RECURSION} ||= $ENV{PERL5_CPAN_IS_RUNNING}; my @rec = _uniq split(/,/, $ENV{PERL5_CPAN_IS_RUNNING_IN_RECURSION}), $$; --- ./cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants/Report.pm.orig 2010-03-23 15:12:55.000000000 +0000 +++ ./cpan/CPANPLUS/lib/CPANPLUS/Internals/Constants/Report.pm 2010-03-23 15:13:29.000000000 +0000 @@ -237,6 +237,8 @@ Thanks! :-) . }; +our $RPM_Ignore_Requires = "perl(Your::Module::Here)"; + use constant REPORT_MISSING_TESTS => sub { return << "."; --- ./cpan/Compress-Raw-Zlib/config.in.orig 2010-03-23 15:01:12.000000000 +0000 +++ ./cpan/Compress-Raw-Zlib/config.in 2010-03-23 15:02:19.000000000 +0000 @@ -16,9 +16,9 @@ # Setting the Gzip OS Code # -BUILD_ZLIB = True -INCLUDE = ./zlib-src -LIB = ./zlib-src +BUILD_ZLIB = False +INCLUDE = /usr/include +LIB = /usr/lib OLD_ZLIB = False GZIP_OS_CODE = AUTO_DETECT --- ./cpan/Cwd/lib/File/Spec/VMS.pm.orig 2010-03-23 15:10:49.000000000 +0000 +++ ./cpan/Cwd/lib/File/Spec/VMS.pm 2010-03-23 15:11:11.000000000 +0000 @@ -12,6 +12,8 @@ $VERSION = eval $VERSION; use File::Basename; use VMS::Filespec; +our $RPM_Ignore_Requires = "perl(VMS::Filespec)"; + =head1 NAME File::Spec::VMS - methods for VMS file specs --- ./cpan/Encode/bin/enc2xs.orig 2010-03-23 11:34:24.000000000 +0000 +++ ./cpan/Encode/bin/enc2xs 2010-03-23 11:35:34.000000000 +0000 @@ -1005,13 +1005,13 @@ sub make_configlocal_pm { $LocalMod{$enc} ||= $mod; } }; - File::Find::find({wanted => $wanted}, @INC); + File::Find::find({wanted => $wanted}, grep {$_ ne '.'} @INC); $_ModLines = ""; for my $enc ( sort keys %LocalMod ) { $_ModLines .= qq(\$Encode::ExtModule{'$enc'} = "$LocalMod{$enc}";\n); } - warn $_ModLines; + warn $_ModLines if $_ModLines ne ''; $_LocalVer = _mkversion(); $_E2X = find_e2x(); $_Inc = $INC{"Encode.pm"}; --- ./cpan/File-Temp/Temp.pm.orig 2010-03-23 15:11:55.000000000 +0000 +++ ./cpan/File-Temp/Temp.pm 2010-03-23 15:12:16.000000000 +0000 @@ -146,7 +146,7 @@ use File::Path qw/ rmtree /; use Fcntl 1.03; use IO::Seekable; # For SEEK_* use Errno; -require VMS::Stdio if $^O eq 'VMS'; +#require VMS::Stdio if $^O eq 'VMS'; # pre-emptively load Carp::Heavy. If we don't when we run out of file # handles and attempt to call croak() we get an error message telling --- ./cpan/Sys-Syslog/t/syslog.t.orig 2010-03-23 14:58:56.000000000 +0000 +++ ./cpan/Sys-Syslog/t/syslog.t 2010-03-23 15:00:07.000000000 +0000 @@ -206,6 +206,7 @@ SKIP: { } } else { + $r = 1 unless -e '/dev/log'; ok( $r, "setlogsock() should return true: '$r'" ); } --- ./cpan/libnet/Net/Config.pm.orig 2010-03-23 15:06:09.000000000 +0000 +++ ./cpan/libnet/Net/Config.pm 2010-03-23 15:06:27.000000000 +0000 @@ -37,7 +37,7 @@ eval { local $SIG{__DIE__}; require Net: # Try to get as much configuration info as possible from InternetConfig # $^O eq 'MacOS' and eval <{dat { if (! -e $key) { - push(@missing, $key); - delete($self->{data}{$key}) if ($remove); + if (($key !~ m!/man/!) || ! -e "$key.gz") + { + push(@missing, $key); + delete($self->{data}{$key}) if ($remove); + } } } return(@missing); --- ./ext/DynaLoader/hints/linux.pl.orig 2009-02-08 21:40:12.000000000 +0000 +++ ./ext/DynaLoader/hints/linux.pl 2010-03-23 11:31:19.000000000 +0000 @@ -2,4 +2,7 @@ # Some Linux releases like to hide their $self->{CCFLAGS} = $Config{ccflags} . ' -I/usr/include/libelf' if -f "/usr/include/libelf/nlist.h"; +# Some silly modules like mod_perl use DynaLoader.a in a shared +# module, so add cccdlflags if we're going for a shared libperl +$self->{CCFLAGS} = ($self->{CCFLAGS} || $Config{ccflags}) . " $Config{cccdlflags}" if $Config{'useshrplib'} eq 'true'; 1; --- ./ext/NDBM_File/Makefile.PL.orig 2010-01-18 18:43:45.000000000 +0000 +++ ./ext/NDBM_File/Makefile.PL 2010-03-23 11:31:19.000000000 +0000 @@ -2,6 +2,7 @@ use ExtUtils::MakeMaker; WriteMakefile( NAME => 'NDBM_File', LIBS => ["-L/usr/local/lib -lndbm", "-ldbm -lucb"], + CCFLAGS => '-I/usr/include/db1 -Dbool=char -DHAS_BOOL', XSPROTOARG => '-noprototypes', # XXX remove later? VERSION_FROM => 'NDBM_File.pm', INC => ($^O eq "MacOS" ? "-i ::::db:include" : "") --- ./ext/ODBM_File/Makefile.PL.orig 2010-01-18 18:43:45.000000000 +0000 +++ ./ext/ODBM_File/Makefile.PL 2010-03-23 11:31:19.000000000 +0000 @@ -1,7 +1,7 @@ use ExtUtils::MakeMaker; WriteMakefile( NAME => 'ODBM_File', - LIBS => ["-ldbm -lucb"], + LIBS => ["-lgdbm -lucb"], XSPROTOARG => '-noprototypes', # XXX remove later? VERSION_FROM => 'ODBM_File.pm', ); --- ./ext/ODBM_File/hints/linux.pl.orig 2010-01-18 18:43:45.000000000 +0000 +++ ./ext/ODBM_File/hints/linux.pl 2010-03-23 11:31:19.000000000 +0000 @@ -1,5 +1,5 @@ # uses GDBM dbm compatibility feature - at least on SuSE 8.0 -$self->{LIBS} = ['-lgdbm']; +$self->{LIBS} = ['-lgdbm -lgdbm_compat']; # Debian/Ubuntu have /usr/lib/libgdbm_compat.so.3* but not this file, # so linking may fail --- ./hints/linux.sh.orig 2010-01-18 18:52:49.000000000 +0000 +++ ./hints/linux.sh 2010-03-23 11:31:19.000000000 +0000 @@ -50,12 +50,14 @@ ignore_versioned_solibs='y' # BSD compatibility library no longer needed # 'kaffe' has a /usr/lib/libnet.so which is not at all relevant for perl. # bind causes issues with several reentrant functions -set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /' -e 's/ bind / /'` +set `echo X "$libswanted "| \ + sed -e 's/ bsd / /' -e 's/ net / /' -e 's/ bind / /' \ + -e 's/ db / /' -e 's/ gdbm / /' -e 's/ ndbm / /'` shift libswanted="$*" # Debian 4.0 puts ndbm in the -lgdbm_compat library. -libswanted="$libswanted gdbm_compat" +#libswanted="$libswanted gdbm_compat" # If you have glibc, then report the version for ./myconfig bug reporting. # (Configure doesn't need to know the specific version since it just uses @@ -63,7 +65,18 @@ libswanted="$libswanted gdbm_compat" # We don't use __GLIBC__ and __GLIBC_MINOR__ because they # are insufficiently precise to distinguish things like # libc-2.0.6 and libc-2.0.7. -if test -L /lib/libc.so.6; then +if test -e /lib64/libc.so.6; then + libc=`ls -l /lib64/libc.so.6 | awk '{print $NF}'` + libc=/lib64/$libc + #plibpth='/usr/local/lib64 /usr/lib64 /lib64' + glibpth='/lib64 /usr/lib64 /usr/local/lib64' + libspath='/usr/local/lib64 /lib64 /usr/lib64' + #libpth='/usr/local/lib64 /lib64 /usr/lib64' + loclibpth='/usr/local/lib64' + lddlflags='-shared -L/usr/local/lib64' + ldflags=' -L/usr/local/lib64' + libs='-lm -ldl -lcrypt' +elif test -L /lib/libc.so.6; then libc=`ls -l /lib/libc.so.6 | awk '{print $NF}'` libc=/lib/$libc fi @@ -148,9 +161,14 @@ case "$optimize" in esac ;; esac + optimize="$optimize --pipe" ;; esac +man1dir=/usr/share/man/man1 +man3dir=/usr/share/man/man3 +man3ext=3pm + # Are we using ELF? Thanks to Kenneth Albanowski # for this test. cat >try.c <<'EOM' @@ -235,6 +253,29 @@ EOM esac fi +case `uname -m` in +i?86) archname='i586-linux';; +*) archname=`uname -m`-linux;; +esac + +case $archname in +sparc64-linux) glibpth="/lib64 /usr/lib64";; +esac + +cf_email='feedback@suse.de' +#libs='-lgdbm -ldb -ldl -lm -lc' +#libs='-ldl -lm -lc' + +usedl='true' +dlsrc='dl_dlopen.xs' +d_dosuid='undef' +d_bincompat3='y' + +# We don't want to add /usr/local/include and /usr/local/lib to the search +# paths, they are already searched by default. +locincpth= +loclibpth= + rm -f try.c a.out if /bin/sh -c exit; then @@ -284,6 +325,9 @@ else echo "Couldn't find tcsh. Csh-based globbing might be broken." fi fi +csh='' +d_csh='undef' +full_csh='' # Shimpei Yamashita # Message-Id: <33EF1634.B36B6500@pobox.com> @@ -362,6 +406,8 @@ $define|true|[yY]*) d_localtime_r_proto="$define" d_random_r_proto="$define" + test -e /lib64/libc.so.6 && libs='-lm -ldl -lcrypt -lpthread' + ;; esac EOCBU --- ./lib/perl5db.pl.orig 2010-01-18 18:52:49.000000000 +0000 +++ ./lib/perl5db.pl 2010-03-23 11:31:19.000000000 +0000 @@ -3400,6 +3400,8 @@ reading another. open( OUT, ">&STDOUT" ) # XXX: lost message || &warn("Can't restore DB::OUT"); } + # tell readline the new OUT handle + $term->Attribs()->{outstream} = *OUT if defined &Term::ReadLine::Gnu::readline; next CMD; } ## end unless ($piped = open(OUT,... @@ -3524,6 +3526,8 @@ our standard filehandles for input and o # if necessary, close(SAVEOUT); select($selected), $selected = "" unless $selected eq ""; + # tell readline the new OUT handle + $term->Attribs()->{outstream} = *OUT if defined &Term::ReadLine::Gnu::readline; # No pipes now. $piped = ""; --- ./locale.c.orig 2010-01-18 18:52:49.000000000 +0000 +++ ./locale.c 2010-03-23 11:31:19.000000000 +0000 @@ -357,9 +357,15 @@ Perl_init_i18nl10n(pTHX_ int printwarn) if (setlocale_failure) { char *p; +#if 0 const bool locwarn = (printwarn > 1 || (printwarn && (!(p = PerlEnv_getenv("PERL_BADLANG")) || atoi(p)))); +#else + const bool locwarn = (printwarn > 1 || + (printwarn && + ((p = PerlEnv_getenv("PERL_BADLANG")) && atoi(p)))); +#endif if (locwarn) { #ifdef LC_ALL --- ./t/op/numconvert.t.orig 2010-01-18 18:43:46.000000000 +0000 +++ ./t/op/numconvert.t 2010-03-23 11:31:19.000000000 +0000 @@ -46,7 +46,7 @@ my $max_chain = $ENV{PERL_TEST_NUMCONVER # Bulk out if unsigned type is hopelessly wrong: my $max_uv1 = ~0; -my $max_uv2 = sprintf "%u", $max_uv1 ** 6; # 6 is an arbitrary number here +my $max_uv2 = sprintf "%lu", $max_uv1 ** 6; # 6 is an arbitrary number here my $big_iv = do {use integer; $max_uv1 * 16}; # 16 is an arbitrary number here my $max_uv_less3 = $max_uv1 - 3; --- ./utils/perlbug.PL.orig 2010-03-07 17:53:22.000000000 +0000 +++ ./utils/perlbug.PL 2010-03-23 11:31:19.000000000 +0000 @@ -1083,6 +1083,7 @@ sub _message_headers { $headers{'Cc'} = $cc if ($cc); $headers{'Message-Id'} = $messageid if ($messageid); $headers{'Reply-To'} = $from if ($from); + $headers{'X-Webfrontend'} = 'perlbug'; return \%headers; } --- ./installperl.orig 2010-04-13 13:13:58.000000000 +0000 +++ ./installperl 2010-04-13 13:13:34.000000000 +0000 @@ -738,7 +738,7 @@ sub installlib { return if $name eq 'ExtUtils/XSSymSet.pm' and !$Is_VMS; my $installlib = $installprivlib; - if ($dir =~ /^auto\// || + if (($dir =~ /^auto\// && $dir ne 'auto/Compress/Zlib') || ($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) || ($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) || $name=~/^Config_(heavy|git)\.pl\z/