summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authortv <tv@pkgsrc.org>2004-04-24 21:04:43 +0000
committertv <tv@pkgsrc.org>2004-04-24 21:04:43 +0000
commit7c9976e9d728a07fa3263799f7c43136fa663add (patch)
tree914f2120a3f3bcf79226843959e18d75c54686de /lang
parentea103d2f01167cc734fc084e7143add6153c3ade (diff)
downloadpkgsrc-7c9976e9d728a07fa3263799f7c43136fa663add.tar.gz
Make perl58 work on Interix, with full shared-object module support.
Bump PKGREVISION (two .pm files were changed, but are not functionally different on non-Interix OS's).
Diffstat (limited to 'lang')
-rw-r--r--lang/perl58/Makefile25
-rw-r--r--lang/perl58/distinfo12
-rw-r--r--lang/perl58/patches/patch-aa38
-rw-r--r--lang/perl58/patches/patch-ca17
-rw-r--r--lang/perl58/patches/patch-cb15
-rw-r--r--lang/perl58/patches/patch-cc30
-rw-r--r--lang/perl58/patches/patch-cd12
-rw-r--r--lang/perl58/patches/patch-ce12
-rw-r--r--lang/perl58/patches/patch-cf12
-rw-r--r--lang/perl58/patches/patch-cg13
10 files changed, 172 insertions, 14 deletions
diff --git a/lang/perl58/Makefile b/lang/perl58/Makefile
index fe32506cce5..b7b1031d46a 100644
--- a/lang/perl58/Makefile
+++ b/lang/perl58/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.40 2004/04/12 03:07:50 jschauma Exp $
+# $NetBSD: Makefile,v 1.41 2004/04/24 21:04:43 tv Exp $
# The following two variables should have empty values unless we're
# building a perl snapshot or release candidate.
@@ -8,7 +8,7 @@ PERL5_RC_VERS= # empty
.if empty(PERL5_SNAPSHOT) && empty(PERL5_RC_VERS)
DISTNAME= perl-${PERL5_VERS}
-PKGREVISION= # empty
+PKGREVISION= 1
SNAPSHOT_SITES= # empty
.else
. if !empty(PERL5_SNAPSHOT)
@@ -95,7 +95,13 @@ PERL5_CC= ${CC:T}
CONFIGURE_ARGS+= -Dcc="${PERL5_CC}"
MAKE_ENV+= LANG=""
-.if ${OPSYS} == "Darwin"
+.if ${OPSYS} == "Interix"
+#
+# On Interix, the shared perl is actually faster, so default to that.
+#
+STATIC_PERL?= no
+
+.elif ${OPSYS} == "Darwin"
#
# The perl build attempts to work around case-insensitivity problems on
# HFS filesystems by using GNUmakefiles, so we need to use GNU make.
@@ -206,6 +212,19 @@ PERL5_PACKLIST= ${PERL5_ARCHLIB}/.packlist
PLIST_SUBST+= PERL5_SITEPERL=${PERL5_SITEPERL:S/^${PREFIX}\///}
MESSAGE_SUBST+= PERL5_SITELIB=${PERL5_SITELIB}
+# Some platforms may want the directory mode not to be 0755. This is,
+# unfortunately, hardcoded in quite a few places in Perl. So let's substitute
+# what pkgsrc said instead.
+post-patch:
+.if ${PKGDIRMODE} != "755"
+.for f in installhtml installman installperl lib/ExtUtils/Install.pm
+ cd ${WRKSRC} && \
+ ${MV} -f $f $f.dirmode && \
+ ${SED} -e 's/755/${PKGDIRMODE}/g;/umask(/d' \
+ $f.dirmode >$f
+.endfor
+.endif
+
# It's tough to guess which hints file will be used, so add our modifications
# to all of them:
#
diff --git a/lang/perl58/distinfo b/lang/perl58/distinfo
index f7be7a1d1b1..04ad2148ff2 100644
--- a/lang/perl58/distinfo
+++ b/lang/perl58/distinfo
@@ -1,11 +1,17 @@
-$NetBSD: distinfo,v 1.13 2004/04/12 02:59:06 jschauma Exp $
+$NetBSD: distinfo,v 1.14 2004/04/24 21:04:43 tv Exp $
SHA1 (perl-5.8.3.tar.gz) = 4c6f2aaa1b3a1d44535a1b54738d494e8fb90222
Size (perl-5.8.3.tar.gz) = 12002329 bytes
-SHA1 (patch-aa) = f9e1f13d48f50a5a0b638c26c3864071f8a20748
+SHA1 (patch-aa) = a441cba11b12a4285284e98b6e5918efbd8bafef
SHA1 (patch-ae) = fa3bbb1561192ce9214a7a7c756ccb2595a52c80
SHA1 (patch-ah) = 06fbeac7ed4eaf0099bad4404203bdd67576f33f
SHA1 (patch-ba) = cdceb712bae08c6041e5aa175e5989d48b3a3f4e
SHA1 (patch-bc) = 6bd07e902563079dd5642eac321ca7f9271ab8a6
-SHA1 (patch-ca) = a8ce3508d1dbe1c40321b7262f5bf2320bcd9c04
+SHA1 (patch-ca) = 481bb11e50c5d691d096b23fa3381af5e504be69
+SHA1 (patch-cb) = 1e1f24d1c0a2f22ac9b3e4ddc47a7f09a2d84d1b
+SHA1 (patch-cc) = 091793735154350b82a5ed7ecf60f5418ab81f32
+SHA1 (patch-cd) = 488e86f7064d2e4e8709c0de9b7789a866afc8e3
+SHA1 (patch-ce) = c7d2defd2cfa872c1f6651678bc3de6cd7aeaf34
+SHA1 (patch-cf) = 23cf46c8d683b688878433ec9b33f3c65528cd28
+SHA1 (patch-cg) = e1b56aaa40934f78298d1fd9303fbae33c472d8e
SHA1 (patch-zc) = eb81edd1144ec46285898afc641c03a3aad54977
diff --git a/lang/perl58/patches/patch-aa b/lang/perl58/patches/patch-aa
index 98ca1d79406..9265e196ac3 100644
--- a/lang/perl58/patches/patch-aa
+++ b/lang/perl58/patches/patch-aa
@@ -1,8 +1,38 @@
-$NetBSD: patch-aa,v 1.3 2004/01/05 11:25:14 salo Exp $
+$NetBSD: patch-aa,v 1.4 2004/04/24 21:04:43 tv Exp $
---- lib/ExtUtils/MM_Unix.pm.orig 2003-09-21 12:06:24.000000000 +0200
-+++ lib/ExtUtils/MM_Unix.pm 2003-11-22 21:53:24.000000000 +0100
-@@ -1127,9 +1127,9 @@
+--- lib/ExtUtils/MM_Unix.pm.orig Mon Jan 5 17:34:59 2004
++++ lib/ExtUtils/MM_Unix.pm Fri Apr 23 14:07:03 2004
+@@ -12,7 +12,7 @@
+
+ use vars qw($VERSION @ISA
+ $Is_Mac $Is_OS2 $Is_VMS $Is_Win32 $Is_Win95 $Is_Dos $Is_VOS
+- $Is_QNX $Is_AIX $Is_OSF $Is_IRIX $Is_NetBSD $Is_BSD
++ $Is_QNX $Is_AIX $Is_OSF $Is_IRIX $Is_NetBSD $Is_BSD $Is_Interix
+ $Is_SunOS4 $Is_Solaris $Is_SunOS
+ $Verbose %pm %static
+ %Config_Override
+@@ -37,10 +37,11 @@
+ $Is_OSF = $^O eq 'dec_osf';
+ $Is_IRIX = $^O eq 'irix';
+ $Is_NetBSD = $^O eq 'netbsd';
++$Is_Interix = $^O eq 'interix';
+ $Is_SunOS4 = $^O eq 'sunos';
+ $Is_Solaris = $^O eq 'solaris';
+ $Is_SunOS = $Is_SunOS4 || $Is_Solaris;
+-$Is_BSD = $^O =~ /^(?:free|net|open)bsd|bsdos$/;
++$Is_BSD = $^O =~ /^(?:free|net|open)bsd|bsdos|interix$/;
+
+
+ =head1 NAME
+@@ -1120,16 +1127,16 @@
+
+ my $libs = '$(LDLOADLIBS)';
+
+- if ($Is_NetBSD) {
++ if ($Is_NetBSD || $Is_Interix) {
+ # 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
# or -R to add paths to the run-time library search path.
if ($Config{'useshrplib'}) {
if ($Config{'lddlflags'} =~ /-Wl,-R/) {
diff --git a/lang/perl58/patches/patch-ca b/lang/perl58/patches/patch-ca
index 1aee833fc3f..845ba04fed5 100644
--- a/lang/perl58/patches/patch-ca
+++ b/lang/perl58/patches/patch-ca
@@ -1,8 +1,17 @@
-$NetBSD: patch-ca,v 1.1 2004/04/12 02:59:06 jschauma Exp $
+$NetBSD: patch-ca,v 1.2 2004/04/24 21:04:43 tv Exp $
---- Configure.orig Fri Mar 26 10:34:43 2004
-+++ Configure Fri Mar 26 10:43:17 2004
-@@ -12495,7 +12495,15 @@
+--- Configure.orig Fri Dec 5 06:57:56 2003
++++ Configure Fri Apr 23 14:09:12 2004
+@@ -7806,7 +7806,7 @@
+ solaris)
+ xxx="-R $shrpdir"
+ ;;
+- freebsd|netbsd|openbsd)
++ freebsd|netbsd|openbsd|interix)
+ xxx="-Wl,-R$shrpdir"
+ ;;
+ bsdos|linux|irix*|dec_osf)
+@@ -17244,7 +17244,15 @@
ACAT(Cir,cus)
EOCP
$cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1
diff --git a/lang/perl58/patches/patch-cb b/lang/perl58/patches/patch-cb
new file mode 100644
index 00000000000..7d1ca1656cd
--- /dev/null
+++ b/lang/perl58/patches/patch-cb
@@ -0,0 +1,15 @@
+$NetBSD: patch-cb,v 1.1 2004/04/24 21:04:43 tv Exp $
+
+--- Makefile.SH.orig Fri Apr 23 11:05:32 2004
++++ Makefile.SH Fri Apr 23 11:06:03 2004
+@@ -58,6 +58,10 @@
+ sunos*)
+ linklibperl="-lperl"
+ ;;
++ interix*)
++ linklibperl="-L. -lperl"
++ shrpldflags="$shrpldflags -Wl,--image-base,0x97000000"
++ ;;
+ netbsd*|freebsd[234]*|openbsd*)
+ linklibperl="-L. -lperl"
+ ;;
diff --git a/lang/perl58/patches/patch-cc b/lang/perl58/patches/patch-cc
new file mode 100644
index 00000000000..a4f7dceaf8c
--- /dev/null
+++ b/lang/perl58/patches/patch-cc
@@ -0,0 +1,30 @@
+$NetBSD: patch-cc,v 1.1 2004/04/24 21:04:43 tv Exp $
+
+--- hints/interix.sh.orig Fri Apr 23 12:29:09 2004
++++ hints/interix.sh Fri Apr 23 12:32:55 2004
+@@ -0,0 +1,25 @@
++# hints/interix.sh
++#
++# Please check with packages@netbsd.org before making modifications
++# to this file.
++
++cc='gcc'
++cccdlflags="-DPIC $cccdlflags"
++ccdlflags='-Wl,-E'
++ccflags="-D_ALL_SOURCE $ccflags"
++ld='gcc'
++lddlflags="-shared $lddlflags"
++rpathflag='-Wl,-R'
++sharpbang='#!'
++usenm='false'
++
++# This script UU/usethreads.cbu will get 'called-back' by Configure
++# after it has prompted the user for whether to use threads.
++cat > UU/usethreads.cbu <<'EOCBU'
++case "$usethreads" in
++$define|true|[yY]*)
++ ccflags="-D_REENTRANT $ccflags"
++ libswanted="$libswanted pthread"
++ ;;
++esac
++EOCBU
diff --git a/lang/perl58/patches/patch-cd b/lang/perl58/patches/patch-cd
new file mode 100644
index 00000000000..3a240297aae
--- /dev/null
+++ b/lang/perl58/patches/patch-cd
@@ -0,0 +1,12 @@
+$NetBSD: patch-cd,v 1.1 2004/04/24 21:04:43 tv Exp $
+
+--- lib/File/Find.pm.orig Fri Apr 23 12:41:39 2004
++++ lib/File/Find.pm Fri Apr 23 12:42:19 2004
+@@ -1212,6 +1212,7 @@
+
+ $File::Find::dont_use_nlink = 1
+ if $^O eq 'os2' || $^O eq 'dos' || $^O eq 'amigaos' || $^O eq 'MSWin32' ||
++ $^O eq 'interix' ||
+ $^O eq 'cygwin' || $^O eq 'epoc' || $^O eq 'qnx' ||
+ $^O eq 'nto';
+
diff --git a/lang/perl58/patches/patch-ce b/lang/perl58/patches/patch-ce
new file mode 100644
index 00000000000..bf2c8627937
--- /dev/null
+++ b/lang/perl58/patches/patch-ce
@@ -0,0 +1,12 @@
+$NetBSD: patch-ce,v 1.1 2004/04/24 21:04:43 tv Exp $
+
+--- lib/File/Temp.pm.orig Fri Apr 23 12:42:30 2004
++++ lib/File/Temp.pm Fri Apr 23 12:44:21 2004
+@@ -2012,6 +2012,7 @@
+
+ {
+ my $TopSystemUID = 10;
++ $TopSystemUID = 197108 if $^O eq 'interix'; # "Administrator"
+ sub top_system_uid {
+ my $self = shift;
+ if (@_) {
diff --git a/lang/perl58/patches/patch-cf b/lang/perl58/patches/patch-cf
new file mode 100644
index 00000000000..f7b02b73326
--- /dev/null
+++ b/lang/perl58/patches/patch-cf
@@ -0,0 +1,12 @@
+$NetBSD: patch-cf,v 1.1 2004/04/24 21:04:43 tv Exp $
+
+--- t/io/openpid.t.orig Fri Apr 23 12:45:43 2004
++++ t/io/openpid.t Fri Apr 23 12:45:56 2004
+@@ -23,6 +23,7 @@
+ use Config;
+ $| = 1;
+ $SIG{PIPE} = 'IGNORE';
++$SIG{HUP} = 'IGNORE' if $^O eq 'interix';
+
+ my $perl = which_perl();
+ $perl .= qq[ "-I../lib"];
diff --git a/lang/perl58/patches/patch-cg b/lang/perl58/patches/patch-cg
new file mode 100644
index 00000000000..d8bc8446600
--- /dev/null
+++ b/lang/perl58/patches/patch-cg
@@ -0,0 +1,13 @@
+$NetBSD: patch-cg,v 1.1 2004/04/24 21:04:43 tv Exp $
+
+--- t/op/groups.t.orig Fri Apr 23 12:46:39 2004
++++ t/op/groups.t Fri Apr 23 12:46:53 2004
+@@ -133,7 +133,7 @@
+
+ print "# gr = @gr\n";
+
+-if ($^O =~ /^(?:uwin|cygwin|solaris)$/) {
++if ($^O =~ /^(?:uwin|cygwin|interix|solaris)$/) {
+ # Or anybody else who can have spaces in group names.
+ $gr1 = join(' ', grep(!$did{$_}++, sort split(' ', join(' ', @gr))));
+ } else {