Просмотр исходного кода

new package: perl56 5.6.1 (Practical Extraction and Reporting Language (5.6))

Ralf S. Engelschall 23 лет назад
Родитель
Сommit
bc9cc952ea
2 измененных файлов с 197 добавлено и 0 удалено
  1. 67 0
      perl56/perl.patch
  2. 130 0
      perl56/perl56.spec

+ 67 - 0
perl56/perl.patch

@@ -0,0 +1,67 @@
+--- ext/Opcode/Safe.pm.orig
++++ ext/Opcode/Safe.pm
+@@ -213,7 +213,7 @@
+     # Create anon sub ref in root of compartment.
+     # Uses a closure (on $expr) to pass in the code to be executed.
+     # (eval on one line to keep line numbers as expected by caller)
+-	my $evalcode = sprintf('package %s; sub { eval $expr; }', $root);
++	my $evalcode = sprintf('package %s; sub { @_ = (); eval $expr; }', $root);
+     my $evalsub;
+ 
+ 	if ($strict) { use strict; $evalsub = eval $evalcode; }
+@@ -227,7 +227,7 @@
+     my $root = $obj->{Root};
+ 
+     my $evalsub = eval
+-	    sprintf('package %s; sub { do $file }', $root);
++	    sprintf('package %s; sub { @_ = (); do $file }', $root);
+     return Opcode::_safe_call_sv($root, $obj->{Mask}, $evalsub);
+ }
+
+--- makedepend.SH.orig	Mon Mar 19 08:33:17 2001
++++ makedepend.SH	Sun May 19 15:17:49 2002
+@@ -141,6 +141,8 @@
+         $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c |
+         $sed \
+     	    -e '/^#.*<stdin>/d' \
++    	    -e '/^#.*<built-in>/d' \
++    	    -e '/^#.*<command line>/d' \
+ 	    -e '/^#.*"-"/d' \
+ 	    -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
+ 	    -e 's/^[	 ]*#[	 ]*line/#/' \
+@@ -155,6 +157,8 @@
+         $sed \
+ 	    -e '1d' \
+ 	    -e '/^#.*<stdin>/d' \
++    	    -e '/^#.*<built-in>/d' \
++    	    -e '/^#.*<command line>/d' \
+ 	    -e '/^#.*"-"/d' \
+ 	    -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
+ 	    -e 's/^[	 ]*#[	 ]*line/#/' \
+--- hints/dec_osf.sh.orig	Fri Feb 23 03:57:55 2001
++++ hints/dec_osf.sh	Wed Jun  5 16:34:54 2002
+@@ -65,7 +65,7 @@
+ 	# reset
+ 	_DEC_cc_style=
+ case "`$cc -v 2>&1 | grep cc`" in
+-*gcc*)	_gcc_version=`$cc --version 2>&1 | tr . ' '`
++*gcc*)	_gcc_version=`$cc --version 2>&1 | head -1 | sed -e 's;^gcc (GCC) ;;' -e 's;^cc (GCC) ;;' | tr . ' '`
+ 	set $_gcc_version
+ 	if test "$1" -lt 2 -o \( "$1" -eq 2 -a \( "$2" -lt 95 -o \( "$2" -eq 95 -a "$3" -lt 2 \) \) \); then
+ 	    cat >&4 <<EOF
+--- hints/freebsd.sh.orig	2002-08-26 16:57:58.000000000 +0200
++++ hints/freebsd.sh	2002-08-26 16:58:44.000000000 +0200
+@@ -104,9 +104,10 @@
+ *)
+         objformat=`/usr/bin/objformat`
+         if [ x$objformat = xelf ]; then
+-            libpth="/usr/lib /usr/local/lib"
+-            glibpth="/usr/lib /usr/local/lib"
+-            ldflags="-Wl,-E "
++            libpth=${libpth:-/usr/lib /usr/local/lib}
++            glibpth=${glibpth:-/usr/lib /usr/local/lib}
++            ldflags=`echo $ldflags | sed -e "s;.*\(-L[ ]*[^ ][^ ]*\).*;\1;"`
++            ldflags="-Wl,-E $ldflags"
+             lddlflags="-shared "
+         else
+             if [ -e /usr/lib/aout ]; then

+ 130 - 0
perl56/perl56.spec

@@ -0,0 +1,130 @@
+##
+##  perl56.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
+##  Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE.
+##
+
+#   package information
+Name:         perl56
+Summary:      Practical Extraction and Reporting Language (5.6)
+URL:          http://www.perl.com/
+Vendor:       The Perl Project
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EVAL]
+Group:        Language
+License:      GPL/Artistic
+Version:      5.6.1
+Release:      20030123
+
+#   list of sources
+Source0:      ftp://ftp.cpan.org/pub/CPAN/src/perl-%{version}.tar.gz
+Patch0:       perl.patch
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20021230, gcc
+PreReq:       OpenPKG, openpkg >= 20021230, gcc
+AutoReq:      no
+AutoReqProv:  no
+Provides:     perl = %{version}-%{release}
+Conflicts:    perl < %{version}, perl > %{version}
+
+%description
+    Perl ("Practical Reporting and Extraction Language") is a very
+    sophisticated and flexible (but this way also complex) programming
+    language. This is the original implementation of the Perl 5 interpreter
+    from Larry Wall and his community.
+
+    THIS IS THE ALREADY OBSOLETE VERSION 5.6! USE IT ON YOUR OWN RISK!
+
+%prep
+    %setup -q -n perl-%{version}
+    %patch -p0
+    chmod -R u+w .
+
+%build
+    #   configure the Perl package
+    %{l_shtool} subst \
+        -e 's;\(.*for thislib in $libswanted.*\);libswanted=`echo " $libswanted " | sed -e "s/ bind / /g" -e "s/ db / /g" -e "s/ gdbm / /g" -e "s/ iconv / /g"`\; \1;' \
+        -e 's;package=perl5;package=perl;' \
+        Configure
+    %{l_shtool} subst \
+        -e 's; */usr/local/lib;;' \
+        hints/freebsd.sh hints/netbsd.sh
+    ./Configure \
+        -d -e -s \
+        -Dprefix=%{l_prefix} \
+        -Dinstallprefix=$RPM_BUILD_ROOT%{l_prefix} \
+        -Dcc="%{l_cc}" -Doptimize="%{l_cflags -O}" \
+        -Dlocincpth="%{l_prefix}/include" \
+        -Dloclibpth="%{l_prefix}/lib" \
+        -Dldflags="-L%{l_prefix}/lib" \
+        -Dlibpth="%{l_prefix}/lib /lib /usr/lib /usr/ccs/lib" \
+        -Dglibpth="%{l_prefix}/lib /lib /usr/lib /usr/ccs/lib" \
+        -Dscriptdir="%{l_prefix}/bin" \
+        -Uinstallusrbinperl \
+        -Ui_malloc -Ui_iconv -Ui_db
+
+    #   build the Perl package
+    %{l_make} %{l_mflags} -f Makefile
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+
+    #   install the Perl package via standard procedure
+    %{l_make} %{l_mflags} -f Makefile install
+
+    #   install Perl versions of system header files
+    ( cd /usr/include
+      PERL5LIB=$RPM_BUILD_ROOT%{l_prefix}/lib/perl
+      export PERL5LIB
+      eval `$RPM_BUILD_ROOT%{l_prefix}/bin/perl -V:installarchlib`
+      echo *.h sys/*.h |\
+      xargs $RPM_BUILD_ROOT%{l_prefix}/bin/perl \
+          $RPM_BUILD_ROOT%{l_prefix}/bin/h2ph -h -d $installarchlib
+    )
+
+    #   post-adjustments to installation tree
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/perl%{version}
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man3
+
+    #   re-adjust configuration as mentioned in Perl's INSTALL document
+    $RPM_BUILD_ROOT%{l_prefix}/bin/perl -pi.orig \
+        -e "s:$RPM_BUILD_ROOT%{l_prefix}:%{l_prefix}:g" \
+        $RPM_BUILD_ROOT%{l_prefix}/lib/perl/%{version}/*/Config.pm \
+        `find $RPM_BUILD_ROOT%{l_prefix}/lib/perl/%{version}/ \
+              -type f -name ".packlist" -print`
+    find $RPM_BUILD_ROOT%{l_prefix}/lib/perl/ \
+         -name "*.orig" -print | xargs rm -f
+
+    #   strip binary files
+    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2> /dev/null || true
+
+    #   determine installed files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+