From: Jan Rękorajski Date: Tue, 24 Dec 2019 14:12:18 +0000 (+0900) Subject: - up to 4.15.1 X-Git-Tag: auto/th/rpm-4.16.0-0.1~42 X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=commitdiff_plain;h=6ecfe7c2fd3e7c517e39a5d7b9635e7f36c41672 - up to 4.15.1 - more patches updated / removed (obsolete) --- diff --git a/rpm-debuginfo.patch b/rpm-debuginfo.patch index f1b160d..aecf32e 100644 --- a/rpm-debuginfo.patch +++ b/rpm-debuginfo.patch @@ -1,17 +1,14 @@ --- rpm-5.3.1/scripts/find-debuginfo.sh.wiget 2009-09-10 03:52:13.000000000 +0200 +++ rpm-5.3.1/scripts/find-debuginfo.sh 2010-05-30 16:53:33.275994510 +0200 -@@ -92,8 +92,12 @@ strip_to_debug() +@@ -254,7 +254,10 @@ strip_to_debug() + $strip_glibs && case "$(file -bi "$2")" in + application/x-sharedlib*) g=-g ;; esac - [ -n "$EXCLUDE_FULL_REGEXP" ] && grep -E -q "$EXCLUDE_FULL_REGEXP" <<< "$2" && g=-g - -- eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo -f "$1") "$2" || exit -- [ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit -+ [ -n "$DISABLE_DEBUG" ] && return +- eu-strip --remove-comment $r $g ${keep_remove_args} -f "$1" "$2" || exit + local t=$(mktemp "/tmp/rpm.stripped.XXXXXX") + objcopy --compress-debug-sections "$2" || exit -+ eu-strip --remove-comment -f "$1" "$2" -o "$t" || exit ++ eu-strip --remove-comment $r -f "$1" "$2" -o "$t" || exit + rm -f "$t" -+ chmod 444 "$1" || exit + chmod 444 "$1" || exit } - # Make a relative symlink to $1 called $3$2 diff --git a/rpm-dont-copy-descriptive-tags.patch b/rpm-dont-copy-descriptive-tags.patch deleted file mode 100644 index da59246..0000000 --- a/rpm-dont-copy-descriptive-tags.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- rpm-5.4.9/build/parseDescription.c.mdvbz62979~ 2012-05-03 20:39:51.000000000 +0200 -+++ rpm-5.4.9/build/parseDescription.c 2012-05-15 01:55:31.332318888 +0200 -@@ -92,6 +92,7 @@ int parseDescription(Spec spec) - } - - /* Lose the inheirited %description (if present). */ -+#if !defined(RPM_VENDOR_MANDRIVA) && !defined(RPM_VENDOR_PLD) /* mdvbz#62979 */ - if (spec->packages->header != pkg->header) { - he->tag = RPMTAG_DESCRIPTION; - xx = headerGet(pkg->header, he, 0); -@@ -99,6 +100,7 @@ int parseDescription(Spec spec) - if (xx && he->t == RPM_STRING_TYPE) - xx = headerDel(pkg->header, he, 0); - } -+#endif - - t = stashSt(spec, pkg->header, RPMTAG_DESCRIPTION, lang); - ---- rpm-5.4.10/build/parsePreamble.c.orig 2012-05-03 20:39:51.000000000 +0200 -+++ rpm-5.4.10/build/parsePreamble.c 2012-10-26 00:41:10.281500646 +0200 -@@ -30,8 +30,10 @@ - RPMTAG_DISTEPOCH, - RPMTAG_LICENSE, - RPMTAG_GROUP, /* XXX permissive. */ -+#if !defined(RPM_VENDOR_PLD) - RPMTAG_SUMMARY, /* XXX permissive. */ - RPMTAG_DESCRIPTION, /* XXX permissive. */ -+#endif - RPMTAG_PACKAGER, - RPMTAG_DISTRIBUTION, - RPMTAG_DISTURL, diff --git a/rpm-gettext-in-header.patch b/rpm-gettext-in-header.patch deleted file mode 100644 index 935f612..0000000 --- a/rpm-gettext-in-header.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-4.1/rpmdb/header.c.wiget2 Thu Sep 19 00:47:29 2002 -+++ rpm-4.1/rpmdb/header.c Thu Sep 19 00:52:10 2002 -@@ -1645,7 +1645,8 @@ - if (ed_weak) return (char *) ed_weak; - } - -- return (char *) entry->data; -+/* when everything fail, try gettext */ -+ return ((entry->data != NULL) && *(char*)(entry->data)) ? _(entry->data) : (char *) entry->data; - } - - /** diff --git a/rpm-hack-norpmlibdep.patch b/rpm-hack-norpmlibdep.patch deleted file mode 100644 index 05e8902..0000000 --- a/rpm-hack-norpmlibdep.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-4.3/build/files.c.orig 2003-11-24 19:10:54.000000000 +0100 -+++ rpm-4.3/build/files.c 2003-11-24 19:20:05.827568008 +0100 -@@ -2119,7 +2119,7 @@ - goto exit; - - /* Verify that file attributes scope over hardlinks correctly. */ -- if (checkHardLinks(&fl)) -+ if (checkHardLinks(&fl) && !rpmExpandNumeric("%{_hack_dontneed_PartialHardlinkSets}")) - (void) rpmlibNeedsFeature(pkg->header, - "PartialHardlinkSets", "4.0.4-1"); - diff --git a/rpm-lua.patch b/rpm-lua.patch index b3f7a0b..e253eb6 100644 --- a/rpm-lua.patch +++ b/rpm-lua.patch @@ -1,11 +1,11 @@ --- rpm-5.0.2/configure.ac~ 2008-02-19 20:09:59.000000000 +0200 +++ rpm-5.0.2/configure.ac 2008-02-19 20:21:41.000000000 +0200 @@ -1042,7 +1042,7 @@ - WITH_LUA_SUBDIR_LIB="" - RPM_CHECK_LIB( - [Lua], [lua], -- [lua], [lua_newstate], [lua.h], -+ [lua51], [lua_newstate], [lua.h], - [no,internal:external:none], [lua:local], - [ if test ".$RPM_CHECK_LIB_LOCATION" = .internal; then - AC_CHECK_LIB(m, fabs) + + AS_IF([test "$with_lua" != no],[ + PKG_CHECK_MODULES([LUA], +- [lua >= 5.1], ++ [lua51 >= 5.1], + [AC_DEFINE(WITH_LUA, 1, [Build with lua support?])], + [AC_MSG_ERROR([lua not present (--without-lua to disable)])]) + AC_SUBST(LUA_CFLAGS) diff --git a/rpm-nosetproctitle.patch b/rpm-nosetproctitle.patch deleted file mode 100644 index 71d4638..0000000 --- a/rpm-nosetproctitle.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- rpm-5.4.10/misc/librpmmisc.c.orig 2009-05-29 21:04:21.000000000 +0200 -+++ rpm-5.4.10/misc/librpmmisc.c 2013-04-06 21:52:32.825238309 +0200 -@@ -33,7 +33,7 @@ - #endif - - /* XXX limit the fiddle up to linux for now. */ --#if !defined(HAVE_SETPROCTITLE) && defined(__linux__) -+#if 0 && !defined(HAVE_SETPROCTITLE) && defined(__linux__) - #include "setproctitle.c" - #endif - ---- rpm-5.4.10/configure.ac.orig 2013-04-06 15:51:42.965689560 +0200 -+++ rpm-5.4.10/configure.ac 2013-04-06 21:52:57.755237789 +0200 -@@ -945,13 +945,6 @@ if test $ac_cv_func_syslog = no; then - done - fi - --AC_CHECK_FUNCS(setproctitle) --if test $ac_cv_func_setproctitle = no; then -- # setproctitle is not in the default libraries. See if it's in some other. -- AC_CHECK_LIB(setproctitle, setproctitle, [AC_DEFINE(HAVE_SETPROCTITLE) -- LIBS="$LIBS -lsetproctitle"]) --fi -- - dnl # Check how to find out the amount of physical memory in the system. The - dnl # xz command line tool uses this to automatically limit its memory usage. - dnl # - sysconf() gives all the needed info on GNU+Linux and Solaris. ---- rpm-5.4.10/rpmqv.c.orig 2012-07-06 17:39:16.000000000 +0200 -+++ rpm-5.4.10/rpmqv.c 2013-04-06 21:52:12.351905402 +0200 -@@ -450,7 +450,7 @@ int main(int argc, const char ** argv) - environ = envp; - #else - /* XXX limit the fiddle up to linux for now. */ --#if !defined(HAVE_SETPROCTITLE) && defined(__linux__) -+#if 0 && !defined(HAVE_SETPROCTITLE) && defined(__linux__) - (void) initproctitle(argc, (char **)argv, environ); - #endif - #endif -@@ -1117,7 +1117,7 @@ exit: - optCon = rpmcliFini(optCon); - - /* XXX limit the fiddle up to linux for now. */ --#if !defined(HAVE_SETPROCTITLE) && defined(__linux__) -+#if 0 && !defined(HAVE_SETPROCTITLE) && defined(__linux__) - (void) finiproctitle(); - #endif - ---- rpm-5.4.14/rpmqv.cc.orig 2012-07-06 17:39:16.000000000 +0200 -+++ rpm-5.4.14/rpmqv.cc 2013-04-06 21:52:12.351905402 +0200 -@@ -450,7 +450,7 @@ int main(int argc, const char ** argv) - environ = envp; - #else - /* XXX limit the fiddle up to linux for now. */ --#if !defined(HAVE_SETPROCTITLE) && defined(__linux__) -+#if 0 && !defined(HAVE_SETPROCTITLE) && defined(__linux__) - (void) initproctitle(argc, (char **)argv, environ); - #endif - #endif -@@ -1117,7 +1117,7 @@ exit: - optCon = rpmcliFini(optCon); - - /* XXX limit the fiddle up to linux for now. */ --#if !defined(HAVE_SETPROCTITLE) && defined(__linux__) -+#if 0 && !defined(HAVE_SETPROCTITLE) && defined(__linux__) - (void) finiproctitle(); - #endif - diff --git a/rpm-notsc.patch b/rpm-notsc.patch deleted file mode 100644 index b42c40e..0000000 --- a/rpm-notsc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rpm-4.3/rpmio/rpmsw.c.orig 2003-04-10 20:09:13.000000000 +0200 -+++ rpm-4.3/rpmio/rpmsw.c 2003-11-17 21:55:44.649426712 +0100 -@@ -27,7 +27,7 @@ - /*@unchecked@*/ - static int rpmsw_initialized = 0; - --#if defined(__linux__) && defined(__i386__) && !defined(RPM_VENDOR_PLD) -+#if defined(__linux__) && defined(__i386__) - /* Swiped from glibc-2.3.2 sysdeps/i386/i686/hp-timing.h */ - - #define HP_TIMING_ZERO(Var) (Var) = (0) diff --git a/rpm-perl-macros.patch b/rpm-perl-macros.patch index c99ad2e..dd1adf4 100644 --- a/rpm-perl-macros.patch +++ b/rpm-perl-macros.patch @@ -1,20 +1,21 @@ --- rpm-5.3.1/configure.ac.wiget 2010-05-22 17:15:11.000000000 +0200 +++ rpm-5.3.1/configure.ac 2010-05-30 16:37:59.526924459 +0200 -@@ -2198,6 +2198,7 @@ AC_CONFIG_FILES([ po/Makefile.in - build/Makefile build/auto/Makefile build/auto/desc build/auto/types - tools/Makefile - scripts/Makefile -+ scripts/perl.req scripts/perl.prov - rpmdb/DB_CONFIG - macros/macros macros/macros.rpmbuild - macros/java macros/libtool macros/mono macros/perl +@@ -1100,7 +1100,7 @@ AC_CONFIG_FILES([ po/Makefile.in + + AC_CONFIG_FILES([Makefile + rpmio/Makefile lib/Makefile build/Makefile sign/Makefile +- po/Makefile.in scripts/Makefile fileattrs/Makefile ++ po/Makefile.in scripts/Makefile scripts/perl.req scripts/perl.prov fileattrs/Makefile + misc/Makefile + doc/Makefile + python/Makefile --- rpm-5.3.1/scripts/perl.req.wiget 2008-10-26 10:50:53.000000000 +0100 +++ rpm-5.3.1/scripts/perl.req 2010-05-30 16:35:36.999438206 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!@__PERL@ - - # RPM (and its source code) is covered under two separate licenses. + + # RPM (and its source code) is covered under two separate licenses. @@ -41,7 +41,11 @@ @@ -28,10 +29,10 @@ + } } } else { - + @@ -49,7 +53,11 @@ if ("@ARGV") { # contents of the file. - + foreach (<>) { - process_file($_); + if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) { @@ -51,13 +52,13 @@ # if module is a number then both require and use interpret that # to mean that a particular version of perl is specified -- my $ver=$1; +- my $ver = $1; - if ($ver =~ /5.00/) { -- print "perl >= 0:$ver\n"; +- $perlreq{"0:$ver"} = 1; - next; - } - else { -- print "perl >= 1:$ver\n"; +- $perlreq{"1:$ver"} = 1; - next; - } + my $ver=$2; @@ -95,12 +96,12 @@ }; @@ -244,7 +274,31 @@ sub process_file { - # will be included with the name sys/systeminfo.ph so only use the + # will be included with the name sys/systeminfo.ph so only use the # basename of *.ph files -- ($module =~ m/\.ph$/) && next; +- ($module =~ m/\.ph$/) && next; + # ($module =~ m/\.ph$/) && ($module =~ s!.*/!!g ); -+ ++ + # there is no need to generate dependencies for ph, pl or test files + # so let's just skip them. + @@ -125,5 +126,5 @@ + + $module =~ s/\(\s*\)$//; - $require{$module}=$version; - $line{$module}=$_; + # use base|parent qw(Foo) dependencies + if ($statement eq "use" && ($module eq "base" || $module eq "parent")) { diff --git a/rpm-perl-req-perlfile.patch b/rpm-perl-req-perlfile.patch index 5fe81f9..16ad595 100644 --- a/rpm-perl-req-perlfile.patch +++ b/rpm-perl-req-perlfile.patch @@ -1,8 +1,8 @@ --- rpm-4.2/scripts/perl.req.wigperl Tue Apr 1 13:33:52 2003 +++ rpm-4.2/scripts/perl.req Tue Apr 1 13:39:47 2003 -@@ -39,28 +39,20 @@ +@@ -39,28 +39,19 @@ + eval { require version; $HAVE_VERSION = 1; }; - # by Ken Estes Mail.com kestes@staff.mail.com -if ("@ARGV") { - foreach (@ARGV) { @@ -16,10 +16,10 @@ } - } -} else { -- +- - # notice we are passed a list of filenames NOT as common in unix the - # contents of the file. -- +- - foreach (<>) { - if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) { - if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) { @@ -33,22 +33,21 @@ + delete $require{$_}; +} +delete $require{the}; # don't count "use the sth" as perl module -+ - foreach $module (sort keys %require) { - if (length($require{$module}) == 0) { + foreach $perlver (sort keys %perlreq) { + print "perl >= $perlver\n"; @@ -82,6 +74,53 @@ - exit 0; - + } + } +sub is_perlfile { + my $file = shift; + my $fh = shift; -+ ++ + my $fl = <$fh>; + + my $is_perl = 0; -+ ++ + my $nw = 0; + + if ($file =~ /\.(so|ph|h|html|pod|gz|bz2|png|gif|jpg|xpm|a|patch|o|mo)$/) { @@ -75,11 +74,11 @@ + last if ($. > 30); + } + } -+ ++ + seek($fh, 0, 0); -+ ++ + $is_perl = 1 if ($nw > 1); # propably perl file -+ ++ + #if (!$is_perl) { + # print STDERR "NOPERL $file\n"; + # return 0; @@ -88,18 +87,18 @@ + return $is_perl; +} + - sub process_file { - + + my ($file) = @_; @@ -90,6 +129,8 @@ - - open(FILE, "<$file") || return; - + return; + } + + return if (!is_perlfile($file, \*FILE)); + while () { - - # skip the documentation + + # skip the "= <<" block @@ -111,6 +152,10 @@ last; } diff --git a/rpm-perl_req-INC_dirs.patch b/rpm-perl_req-INC_dirs.patch index c6db3cd..f6276f4 100644 --- a/rpm-perl_req-INC_dirs.patch +++ b/rpm-perl_req-INC_dirs.patch @@ -1,11 +1,9 @@ --- scripts/perl.req~ 2004-04-16 13:27:10.000000000 +0200 +++ scripts/perl.req 2004-04-26 23:54:42.128568344 +0200 -@@ -39,8 +39,19 @@ +@@ -39,8 +39,17 @@ + eval { require version; $HAVE_VERSION = 1; }; - # by Ken Estes Mail.com kestes@staff.mail.com -+ -+ +# *inc variables are used to track dependencies on directories for modules. +# These directories (especially arch-dependent) are likely to change some day. +my @inc = sort { length $b cmp length $a } @@ -22,14 +20,14 @@ + if (m=/usr/(sbin|bin|lib|lib64|libx32|share|X11R6/(lib|lib64|libx32|bin))/=) { if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) { process_file($_) if -f; -@@ -53,8 +64,9 @@ +@@ -53,7 +64,9 @@ + foreach $perlver (sort keys %perlreq) { + print "perl >= $perlver\n"; } - delete $require{the}; # don't count "use the sth" as perl module - +print "$_\n" for sort grep $inc{$_}, keys %inc; - ++ -foreach $module (sort keys %require) { +foreach my $module (sort grep length, keys %require) { if (length($require{$module}) == 0) { - if ($module =~ /^[0-9._]+$/) { - print "perl-base >= $module\n"; + print "perl($module)\n"; + } else { diff --git a/rpm-php-deps.patch b/rpm-php-deps.patch deleted file mode 100644 index a6b90ad..0000000 --- a/rpm-php-deps.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- rpm-4.4.8/lib/rpmfc.c.orig 2007-02-14 07:31:50.000000000 +0100 -+++ rpm-4.4.8/lib/rpmfc.c 2007-04-08 16:48:00.273560592 +0200 -@@ -773,7 +773,7 @@ - } else - if (fc->fcolor->vals[fc->ix] & RPMFC_PHP) { - xx = rpmfcHelper(fc, 'P', "php"); -- if (is_executable) -+ /* not only executable, files run by httpd usually are not */ - xx = rpmfcHelper(fc, 'R', "php"); - } - - diff --git a/rpm-popt-aliases.patch b/rpm-popt-aliases.patch index 001b73f..a6c5451 100644 --- a/rpm-popt-aliases.patch +++ b/rpm-popt-aliases.patch @@ -1,9 +1,9 @@ --- rpm-4.4.9/rpmpopt.in 2008-03-24 22:09:33.709972364 +0200 +++ rpm-4.4.9/rpmpopt.in 2008-04-04 18:51:45.658923774 +0300 -@@ -240,6 +249,18 @@ - --POPTdesc=$"override build root" \ - --POPTargs=$"DIRECTORY" - +@@ -240,5 +249,35 @@ + --POPTdesc=$"trace macro expansion" + rpmspec alias --nodebuginfo --define 'debug_package %{nil}' \ + --POPTdesc=$"do not generate debuginfo for this package" +# (PLD-specific) Make RPM build tree +rpmbuild exec --install-build-tree install-build-tree \ + --POPTdesc=$"make all needed dirs for building binary rpms" @@ -16,12 +16,6 @@ +rpmbuild exec --bcond find-spec-bcond \ + --POPTdesc=$"find all --with/--without values" + - rpmbuild alias --lsb --noautoreq --noautoprov \ - --define '_use_internal_dependency_generator 0' \ - --notinlsb -@@ -595,4 +595,22 @@ - rpmv alias --httpproxy --define '_httpproxy !#:+' - +rpm alias --initdb -qa --quiet \ + --POPTdesc=$"Compatibility option with old rpm. Database is created lazily now." + diff --git a/rpm-scripts-closefds.patch b/rpm-scripts-closefds.patch index 5a9f787..84c3d29 100644 --- a/rpm-scripts-closefds.patch +++ b/rpm-scripts-closefds.patch @@ -1,19 +1,19 @@ --- rpm-4.1/lib/rpminstall.c.wiget Mon Sep 16 21:06:08 2002 +++ rpm-4.1/lib/rpminstall.c Thu Sep 19 00:03:36 2002 @@ -126,8 +126,15 @@ - xx = Fclose(fd); + Fclose(fd); fd = NULL; } - } else + } else { + long oldfl; - fd = fdLink(fd, "persist (showProgress)"); + fd = fdLink(fd); + oldfl=Fcntl(fd, F_GETFD, 0); + if(oldfl >= 0) { + oldfl |= FD_CLOEXEC; /* scripts shouldn't inherit rpm file descriptor */ + Fcntl(fd, F_SETFD, (void*)oldfl); + } + } + return (void *)fd; + break; - #if defined(POSIX_FADV_WILLNEED) - (void) Fadvise(fd, 0, 0, POSIX_FADV_WILLNEED); diff --git a/rpm.spec b/rpm.spec index 82f7bf3..062432b 100644 --- a/rpm.spec +++ b/rpm.spec @@ -46,12 +46,12 @@ Summary(pt_BR.UTF-8): Gerenciador de pacotes RPM Summary(ru.UTF-8): Менеджер пакетов от RPM Summary(uk.UTF-8): Менеджер пакетів від RPM Name: rpm -Version: 4.14.2.1 +Version: 4.15.1 Release: 0.1 License: GPL v2 / LGPL v2.1 Group: Base -Source0: http://ftp.rpm.org/releases/rpm-4.14.x/%{name}-%{version}.tar.bz2 -# Source0-md5: fdb8b8857f103b087b6aed5b78dd9b4f +Source0: http://ftp.rpm.org/releases/rpm-4.15.x/%{name}-%{version}.tar.bz2 +# Source0-md5: ed72147451a5ed93b2a48e2f8f5413c3 # See README.cpu-os-macros how to update cpu-os-macros.a Source100: cpu-os-macros.a Source101: README.cpu-os-macros @@ -90,17 +90,11 @@ Source31: gem_helper.rb Patch0: %{name}-branch.patch Patch1: %{name}-man_pl.patch Patch2: %{name}-popt-aliases.patch -Patch3: %{name}-nosetproctitle.patch Patch4: %{name}-perl-macros.patch Patch5: %{name}-perl-req-perlfile.patch Patch6: %{name}-scripts-closefds.patch Patch7: %{name}-php-macros.patch -Patch8: %{name}-gettext-in-header.patch Patch9: %{name}-lua.patch -Patch10: %{name}-php-deps.patch -Patch11: %{name}-notsc.patch -Patch12: %{name}-hack-norpmlibdep.patch -Patch13: %{name}-dont-copy-descriptive-tags.patch Patch14: %{name}-perl_req-INC_dirs.patch Patch15: %{name}-debuginfo.patch Patch16: vendor-pld.patch @@ -753,20 +747,11 @@ cd - #patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 -%patch8 -p1 +#%patch7 -p1 %{?with_system_lua:%patch9 -p1} -%patch10 -p1 -%ifnarch i386 i486 -# enable TSC for capable archs -%patch11 -p1 -%endif -%patch12 -p1 -%patch13 -p1 %patch14 -p0 %patch15 -p1 %patch16 -p1 @@ -857,8 +842,8 @@ cd - %patch100 -p1 install %{SOURCE2} macros/pld.in -install %{SOURCE8} scripts/php.prov.in -install %{SOURCE9} scripts/php.req.in +#install %{SOURCE8} scripts/php.prov.in +#install %{SOURCE9} scripts/php.req.in install %{SOURCE11} scripts/perl.prov.in cp -p %{SOURCE30} scripts/rubygems.rb cp -p %{SOURCE31} scripts/gem_helper.rb