perl 5.26: mark as tested on x86_gcc2

Passes 99.25% of tests.
Remove old recipes.
This commit is contained in:
Adrien Destugues
2018-02-10 10:07:33 +01:00
parent 6f255120a9
commit 99b5ce0a6f
5 changed files with 1 additions and 955 deletions

View File

@@ -1,139 +0,0 @@
diff -ruw perl-5.10.1/ext/Errno/Errno_pm.PL perl-5.10.1-haiku/ext/Errno/Errno_pm.PL
--- perl-5.10.1/ext/Errno/Errno_pm.PL 2009-06-27 16:09:45.059768832 +0000
+++ perl-5.10.1-haiku/ext/Errno/Errno_pm.PL 2011-03-01 18:01:57.984350720 +0000
@@ -159,10 +159,14 @@
# we might miss out on compiler-specific ones
$file{"$ENV{GUSI}include:sys:errno.h"} = 1;
- } elsif ($^O eq 'beos' || $^O eq 'haiku') {
+ } elsif ($^O eq 'beos') {
# hidden in a special place
$file{'/boot/develop/headers/posix/errno.h'} = 1;
+ } elsif ($^O eq 'haiku') {
+ # hidden in a special place
+ $file{'/boot/system/develop/headers/posix/errno.h'} = 1;
+
} elsif ($^O eq 'vos') {
# avoid problem where cpp returns non-POSIX pathnames
$file{'/system/include_library/errno.h'} = 1;
diff -ruw perl-5.10.1/hints/haiku.sh perl-5.10.1-haiku/hints/haiku.sh
--- perl-5.10.1/hints/haiku.sh 2009-02-12 23:58:12.063176704 +0100
+++ perl-5.10.1-haiku/hints/haiku.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +1 @@
-# Haiku hints file
-# $Id$
-
-prefix="/boot/common"
-
-libpth='/boot/home/config/lib /boot/common/lib /system/lib'
-usrinc='/boot/develop/headers/posix'
-locinc='/boot/home/config/include /boot/common/include /boot/develop/headers'
-
-libc='/system/lib/libroot.so'
-libs='-lnetwork'
-
-# Use Haiku's malloc() by default.
-case "$usemymalloc" in
-'') usemymalloc='n' ;;
-esac
-
-# Haiku generally supports hard links, but the default file system (BFS)
-# doesn't. So better avoid using hard links.
-d_link='undef'
-dont_use_nlink='define'
-
-# The array syserrlst[] is useless for the most part.
-# Large negative numbers really kind of suck in arrays.
-d_syserrlst='undef'
-
-# Haiku uses gcc.
-cc="gcc"
-ld='gcc'
-
-# The runtime loader library path variable is LIBRARY_PATH.
-case "$ldlibpthname" in
-'') ldlibpthname=LIBRARY_PATH ;;
-esac
+# haiku sets all its specifics via Configure
diff -ruw perl-5.10.1/installperl perl-5.10.1-haiku/installperl
--- perl-5.10.1/installperl 2009-08-13 22:40:10.066846720 +0000
+++ perl-5.10.1-haiku/installperl 2011-02-28 17:24:45.324272128 +0000
@@ -409,6 +409,11 @@
mkpath("$installarchlib/CORE/mpeix", $opts{verbose}, 0777);
push(@corefiles,'mpeix/mpeixish.h');
}
+ if ($^O eq 'haiku') {
+ # Haiku needs haikuish.h installed as well.
+ mkpath("$installarchlib/CORE/haiku", $opts{verbose}, 0777);
+ push(@corefiles,'haiku/haikuish.h');
+ }
# If they have built sperl.o...
push(@corefiles,'sperl.o') if -f 'sperl.o';
}
diff -ruw perl-5.10.1/lib/File/Temp/t/lock.t perl-5.10.1-haiku/lib/File/Temp/t/lock.t
--- perl-5.10.1/lib/File/Temp/t/lock.t 2009-02-12 22:58:13.009699328 +0000
+++ perl-5.10.1-haiku/lib/File/Temp/t/lock.t 2011-02-28 17:24:45.354418688 +0000
@@ -8,7 +8,8 @@
BEGIN {
# see if we have O_EXLOCK
eval { &Fcntl::O_EXLOCK; };
- if ($@) {
+ if ($@ || $^O eq 'haiku') {
+ # haiku doesn't implement O_EXLOCK yet (but it defines the value)
plan skip_all => 'Do not seem to have O_EXLOCK';
} else {
plan tests => 4;
diff -ruw perl-5.10.1/lib/File/Temp.pm perl-5.10.1-haiku/lib/File/Temp.pm
--- perl-5.10.1/lib/File/Temp.pm 2009-06-30 13:13:54.013369344 +0000
+++ perl-5.10.1-haiku/lib/File/Temp.pm 2011-02-28 17:24:45.347602944 +0000
@@ -1978,7 +1978,8 @@
# on Win9x the link count remains 1
# On NFS the link count may still be 1 but we cant know that
# we are on NFS
- return ( $fh[3] == 0 or $^O eq 'cygwin' ? 1 : 0);
+ # On haiku, the link count seems to be always 1 (at least for BFS)
+ return ( $fh[3] == 0 or $^O eq 'cygwin' or $^O eq 'haiku' ? 1 : 0);
} else {
_deferred_unlink($fh, $path, 0);
diff -ruw perl-5.10.1/t/run/exit.t perl-5.10.1-haiku/t/run/exit.t
--- perl-5.10.1/t/run/exit.t 2009-08-04 15:48:30.014155776 +0000
+++ perl-5.10.1-haiku/t/run/exit.t 2011-02-28 17:24:45.362283008 +0000
@@ -57,18 +57,18 @@
if (!$vms_exit_mode) {
my $posix_ok = eval { require POSIX; };
my $wait_macros_ok = defined &POSIX::WIFEXITED;
- eval { POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}) };
+ eval { POSIX::WIFEXITED($?) };
$wait_macros_ok = 0 if $@;
$exit = run('exit 42');
is( $exit >> 8, 42, 'Non-zero exit' );
is( $exit, $?, 'Non-zero exit $?' );
- isnt( !${^CHILD_ERROR_NATIVE}, 0, 'Non-zero exit ${^CHILD_ERROR_NATIVE}' );
+ isnt( ${^CHILD_ERROR_NATIVE}, 0, 'Non-zero exit ${^CHILD_ERROR_NATIVE}' );
SKIP: {
skip("No POSIX", 3) unless $posix_ok;
skip("No POSIX wait macros", 3) unless $wait_macros_ok;
- ok(POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}), "WIFEXITED");
- ok(!POSIX::WIFSIGNALED(${^CHILD_ERROR_NATIVE}), "WIFSIGNALED");
- is(POSIX::WEXITSTATUS(${^CHILD_ERROR_NATIVE}), 42, "WEXITSTATUS");
+ ok(POSIX::WIFEXITED($?), "WIFEXITED");
+ ok(!POSIX::WIFSIGNALED($?), "WIFSIGNALED");
+ is(POSIX::WEXITSTATUS($?), 42, "WEXITSTATUS");
}
SKIP: {
@@ -87,9 +87,9 @@
SKIP: {
skip("No POSIX", 3) unless $posix_ok;
skip("No POSIX wait macros", 3) unless $wait_macros_ok;
- ok(!POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}), "WIFEXITED");
- ok(POSIX::WIFSIGNALED(${^CHILD_ERROR_NATIVE}), "WIFSIGNALED");
- is(POSIX::WTERMSIG(${^CHILD_ERROR_NATIVE}), 15, "WTERMSIG");
+ ok(!POSIX::WIFEXITED($?), "WIFEXITED");
+ ok(POSIX::WIFSIGNALED($?), "WIFSIGNALED");
+ is(POSIX::WTERMSIG($?), 15, "WTERMSIG");
}
}

View File

@@ -1,546 +0,0 @@
From 4bef2ada1d8a38b4dff88f0659a3b9e181bf1950 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:52:03 +0200
Subject: Tell perl that BFS has a link count of 1
diff --git a/cpan/File-Temp/lib/File/Temp.pm b/cpan/File-Temp/lib/File/Temp.pm
index ac57c26..759690c 100644
--- a/cpan/File-Temp/lib/File/Temp.pm
+++ b/cpan/File-Temp/lib/File/Temp.pm
@@ -2051,7 +2051,8 @@ sub unlink0 {
# On NFS the link count may still be 1 but we can't know that
# we are on NFS. Since we can't be sure, we'll defer it
- return 1 if $fh[3] == 0 || $^O eq 'cygwin';
+ # On haiku, the link count seems to be always 1 (at least for BFS)
+ return 1 if $fh[3] == 0 || $^O eq 'cygwin' || $^O eq 'haiku';
}
# fall-through if we can't unlink now
_deferred_unlink($fh, $path, 0);
--
1.8.3.4
From e54a8f98abfea2be3eec53b4bbe2cbaaf9f39139 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:52:53 +0200
Subject: Haiku defines, but does not implement O_EXLOCK
diff --git a/cpan/File-Temp/t/lock.t b/cpan/File-Temp/t/lock.t
index ff8c7f9..4364bf6 100644
--- a/cpan/File-Temp/t/lock.t
+++ b/cpan/File-Temp/t/lock.t
@@ -8,7 +8,8 @@ use Fcntl;
BEGIN {
# see if we have O_EXLOCK
eval { &Fcntl::O_EXLOCK; };
- if ($@) {
+ if ($@ || $^O eq 'haiku') {
+ # haiku doesn't implement O_EXLOCK yet (but it defines the value)
plan skip_all => 'Do not seem to have O_EXLOCK';
} else {
plan tests => 4;
--
1.8.3.4
From 30f81dcecdfb9c49ad8824314348cd23ef43ec0f Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:53:40 +0200
Subject: haiku sets all its specifics via Configure
diff --git a/hints/haiku.sh b/hints/haiku.sh
index fa8ebe5..0f09f53 100644
--- a/hints/haiku.sh
+++ b/hints/haiku.sh
@@ -1,44 +1 @@
-# Haiku hints file
-# $Id$
-
-case "$prefix" in
-'') prefix="/boot/common" ;;
-*) ;; # pass the user supplied value through
-esac
-
-libpth='/boot/home/config/lib /boot/common/lib /system/lib'
-usrinc='/boot/develop/headers/posix'
-locinc='/boot/home/config/include /boot/common/include /boot/develop/headers'
-
-libc='/system/lib/libroot.so'
-libs='-lnetwork'
-
-# Use Haiku's malloc() by default.
-case "$usemymalloc" in
-'') usemymalloc='n' ;;
-esac
-
-# Haiku generally supports hard links, but the default file system (BFS)
-# doesn't. So better avoid using hard links.
-d_link='undef'
-dont_use_nlink='define'
-
-# The array syserrlst[] is useless for the most part.
-# Large negative numbers really kind of suck in arrays.
-d_syserrlst='undef'
-
-# Haiku uses gcc.
-cc="gcc"
-ld='gcc'
-
-# The runtime loader library path variable is LIBRARY_PATH.
-case "$ldlibpthname" in
-'') ldlibpthname=LIBRARY_PATH ;;
-esac
-
-# as of alpha 4.1 (at the latest) some symbols are versioned,
-# confusing the nm lookup
-case "$usenm" in
-'') usenm='undef' ;;
-esac
-
+# haiku sets all its specifics via Configure
--
1.8.3.4
From 187343906d2ed78aa5e5b4b3a6cfb7ad199c726f Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:54:15 +0200
Subject: Tell perl that Haiku needs haikuish.h installed as well
diff --git a/installperl b/installperl
index e64b1c3..8ae20cc 100755
--- a/installperl
+++ b/installperl
@@ -379,6 +379,11 @@ elsif ($Is_Cygwin) { # On Cygwin symlink it to CORE to make Makefile happy
# AIX needs perl.exp installed as well.
push(@corefiles,'perl.exp') if $^O eq 'aix';
+ if ($^O eq 'haiku') {
+ # Haiku needs haikuish.h installed as well.
+ mkpath("$installarchlib/CORE/haiku", $opts{verbose}, 0777);
+ push(@corefiles,'haiku/haikuish.h');
+ }
}
foreach my $file (@corefiles) {
# HP-UX (at least) needs to maintain execute permissions
--
1.8.3.4
From 936c1f0486788b814578ea469f4441d1755dac71 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:55:13 +0200
Subject: Fix handling of exit codes on Haiku
diff --git a/t/run/exit.t b/t/run/exit.t
index 02e57c6..e836410 100644
--- a/t/run/exit.t
+++ b/t/run/exit.t
@@ -55,18 +55,18 @@ is( ${^CHILD_ERROR_NATIVE}, $native_success, 'Normal exit ${^CHILD_ERROR_NATIVE
if (!$vms_exit_mode) {
my $posix_ok = eval { require POSIX; };
my $wait_macros_ok = defined &POSIX::WIFEXITED;
- eval { POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}) };
+ eval { POSIX::WIFEXITED($?) };
$wait_macros_ok = 0 if $@;
$exit = run('exit 42');
is( $exit >> 8, 42, 'Non-zero exit' );
is( $exit, $?, 'Non-zero exit $?' );
- isnt( !${^CHILD_ERROR_NATIVE}, 0, 'Non-zero exit ${^CHILD_ERROR_NATIVE}' );
+ isnt( ${^CHILD_ERROR_NATIVE}, 0, 'Non-zero exit ${^CHILD_ERROR_NATIVE}' );
SKIP: {
skip("No POSIX", 3) unless $posix_ok;
skip("No POSIX wait macros", 3) unless $wait_macros_ok;
- ok(POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}), "WIFEXITED");
- ok(!POSIX::WIFSIGNALED(${^CHILD_ERROR_NATIVE}), "WIFSIGNALED");
- is(POSIX::WEXITSTATUS(${^CHILD_ERROR_NATIVE}), 42, "WEXITSTATUS");
+ ok(POSIX::WIFEXITED($?), "WIFEXITED");
+ ok(!POSIX::WIFSIGNALED($?), "WIFSIGNALED");
+ is(POSIX::WEXITSTATUS($?), 42, "WEXITSTATUS");
}
SKIP: {
@@ -85,9 +85,9 @@ if (!$vms_exit_mode) {
SKIP: {
skip("No POSIX", 3) unless $posix_ok;
skip("No POSIX wait macros", 3) unless $wait_macros_ok;
- ok(!POSIX::WIFEXITED(${^CHILD_ERROR_NATIVE}), "WIFEXITED");
- ok(POSIX::WIFSIGNALED(${^CHILD_ERROR_NATIVE}), "WIFSIGNALED");
- is(POSIX::WTERMSIG(${^CHILD_ERROR_NATIVE}), 15, "WTERMSIG");
+ ok(!POSIX::WIFEXITED($?), "WIFEXITED");
+ ok(POSIX::WIFSIGNALED($?), "WIFSIGNALED");
+ is(POSIX::WTERMSIG($?), 15, "WTERMSIG");
}
}
--
1.8.3.4
From c8c19c0e4b6493dd5122749ba0f0d7d8b1b89117 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 15:00:44 +0200
Subject: Fix include path of errno.h
diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
index b707911..7999ae4 100644
--- a/ext/Errno/Errno_pm.PL
+++ b/ext/Errno/Errno_pm.PL
@@ -143,7 +143,7 @@ sub get_files {
$file{$linux_errno_h} = 1;
} elsif ($^O eq 'haiku') {
# hidden in a special place
- $file{'/boot/develop/headers/posix/errno.h'} = 1;
+ $file{'/boot/system/develop/headers/posix/errno.h'} = 1;
} elsif ($^O eq 'vos') {
# avoid problem where cpp returns non-POSIX pathnames
--
1.8.3.4
From 46ed1ae1bc678bda0d0fe3efb589847798afab58 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sat, 28 Sep 2013 13:46:42 +0200
Subject: Adjust ExtUtils::MakeMaker for PM-Haiku.
* MakeMaker-projects trying to install into 'site-perl' while specifying
PREFIX would end up using a wrong 'site-perl' prefix.
* Split MM_Haiku.pm off MM_BeOS.pm, implementing Haiku-specific overrides
for MakeMaker.
diff --git a/cpan/ExtUtils-MakeMaker/MANIFEST b/cpan/ExtUtils-MakeMaker/MANIFEST
index 72feb7d..8eb81f3 100644
--- a/cpan/ExtUtils-MakeMaker/MANIFEST
+++ b/cpan/ExtUtils-MakeMaker/MANIFEST
@@ -48,6 +48,7 @@ lib/ExtUtils/MM_BeOS.pm
lib/ExtUtils/MM_Cygwin.pm
lib/ExtUtils/MM_Darwin.pm
lib/ExtUtils/MM_DOS.pm
+lib/ExtUtils/MM_Haiku.pm
lib/ExtUtils/MM_MacOS.pm
lib/ExtUtils/MM_NW5.pm
lib/ExtUtils/MM_OS2.pm
diff --git a/cpan/ExtUtils-MakeMaker/NOTES b/cpan/ExtUtils-MakeMaker/NOTES
index cb29aec..bfa628c 100644
--- a/cpan/ExtUtils-MakeMaker/NOTES
+++ b/cpan/ExtUtils-MakeMaker/NOTES
@@ -80,9 +80,9 @@ The MM_* hierarchy
MM_Win95 MM_NW5
\ /
-MM_BeOS MM_Cygwin MM_OS2 MM_VMS MM_Win32 MM_DOS MM_UWIN
- \ | | | / / /
- ------------------------------------------------
+MM_BeOS MM_Cygwin MM_OS2 MM_VMS MM_Win32 MM_DOS MM_UWIN MM_Haiku
+ \ | | | / / / /
+ --------------------------------------------------------
| |
MM_Unix |
| |
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
index 26ed594..dfeea45 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
@@ -59,7 +59,8 @@ if( $^O eq 'MSWin32' ) {
$Is{UWIN} = $^O =~ /^uwin(-nt)?$/;
$Is{Cygwin} = $^O eq 'cygwin';
$Is{NW5} = $Config{osname} eq 'NetWare'; # intentional
-$Is{BeOS} = ($^O =~ /beos/i or $^O eq 'haiku');
+$Is{BeOS} = $^O =~ /beos/i;
+$Is{Haiku} = $^O eq 'haiku';
$Is{DOS} = $^O eq 'dos';
if( $Is{NW5} ) {
$^O = 'NetWare';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
new file mode 100644
index 0000000..81e5f99
--- /dev/null
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
@@ -0,0 +1,70 @@
+package ExtUtils::MM_Haiku;
+
+use strict;
+
+=head1 NAME
+
+ExtUtils::MM_Haiku - methods to override UN*X behaviour in ExtUtils::MakeMaker
+
+=head1 SYNOPSIS
+
+ use ExtUtils::MM_Haiku; # Done internally by ExtUtils::MakeMaker if needed
+
+=head1 DESCRIPTION
+
+See ExtUtils::MM_Unix for a documentation of the methods provided
+there. This package overrides the implementation of these methods, not
+the semantics.
+
+=over 4
+
+=cut
+
+use ExtUtils::MakeMaker::Config;
+use File::Spec;
+require ExtUtils::MM_Any;
+require ExtUtils::MM_Unix;
+
+our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
+our $VERSION = '6.66';
+
+
+=item os_flavor
+
+Haiku is Haiku.
+
+=cut
+
+sub os_flavor {
+ return('Haiku');
+}
+
+=head3 init_INSTALL_from_PREFIX
+
+ $mm->init_INSTALL_from_PREFIX;
+
+=cut
+
+sub init_INSTALL_from_PREFIX {
+ my $self = shift;
+
+ # If a prefix has been given from outside, the default implementation
+ # will set PERLPREFIX, SITEPREFIX and VENDORPREFIX to identical values,
+ # but due to the way how Haiku's package management works, PERLPREFIX
+ # and VENDORPREFIX are not writable at all (as they're being populated
+ # from installed packages via package-fs). SITEPREFIX, however needs to
+ # be set to a path which can be written to (since site packages are
+ # expected to be installed "manually") - so we make sure it points
+ # to a 'non-packaged'-folder:
+ my $prefixGiven = $self->{PREFIX};
+ $self->SUPER::init_INSTALL_from_PREFIX();
+ if ($prefixGiven) {
+ $self->{SITEPREFIX} = '$(PREFIX)/non-packaged';
+ }
+}
+
+=back
+
+1;
+__END__
+
--
1.8.3.4
From f9458e30c41213d315721183c9f10c3605812f57 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Tue, 8 Oct 2013 22:16:37 +0200
Subject: Avoid using -rpath for dynamic modules.
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
index 81e5f99..25ace13 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
@@ -65,6 +65,33 @@ sub init_INSTALL_from_PREFIX {
=back
+=head3 init_others
+
+ $MM->init_others();
+
+Initializes the macro definitions having to do with compiling and
+linking used by tools_other() and places them in the $MM object.
+
+If there is no description, its the same as the parameter to
+WriteMakefile() documented in ExtUtils::MakeMaker.
+
+=cut
+
+sub init_others {
+ my $self = shift;
+
+ $self->SUPER::init_others();
+
+ # Don't use run-time paths for libraries required by dynamic
+ # modules on Haiku, as that wouldn't work should a library be moved
+ # (for instance because the package has been activated somewhere else).
+ $self->{LD_RUN_PATH} = "";
+
+ return;
+}
+
+=back
+
1;
__END__
--
1.8.3.4
From 5d6dde9cb0022bdeee490b383ff1991eacc3b9cc Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Tue, 8 Oct 2013 22:17:26 +0200
Subject: Add script sitecustomize.pl for setting up @INC as we need it.
diff --git a/sitecustomize.pl b/sitecustomize.pl
new file mode 100644
index 0000000..a321e51
--- /dev/null
+++ b/sitecustomize.pl
@@ -0,0 +1,36 @@
+#! perl
+
+use Config;
+
+# Remove all compiled-in paths referring to Perl's installation dir
+# and replace them with a static set of paths that implement the intended
+# searching order:
+my @ourINC = (
+ "/boot/home/config/lib/perl5/$Config{version}/$Config{archname}",
+ "/boot/home/config/lib/perl5/$Config{version}",
+ "/boot/home/config/non-packaged/lib/perl5/site_perl/$Config{version}/$Config{archname}",
+ "/boot/home/config/non-packaged/lib/perl5/site_perl/$Config{version}",
+ "/boot/home/config/lib/perl5/vendor_perl/$Config{version}/$Config{archname}",
+ "/boot/home/config/lib/perl5/vendor_perl/$Config{version}",
+ "/boot/home/config/lib/perl5/vendor_perl",
+ "/boot/system/lib/perl5/$Config{version}/$Config{archname}",
+ "/boot/system/lib/perl5/$Config{version}",
+ "/boot/system/non-packaged/lib/perl5/site_perl/$Config{version}/$Config{archname}",
+ "/boot/system/non-packaged/lib/perl5/site_perl/$Config{version}",
+ "/boot/system/lib/perl5/vendor_perl/$Config{version}/$Config{archname}",
+ "/boot/system/lib/perl5/vendor_perl/$Config{version}",
+ "/boot/system/lib/perl5/vendor_perl",
+);
+my @newINC;
+my $removedPerlPaths;
+foreach my $inc (@INC) {
+ if ($inc =~ m[^/packages/perl-$Config{version}-\d+/.self/]o) {
+ if (! $removedPerlPaths) {
+ push @newINC, @ourINC;
+ $removedPerlPaths = 1;
+ }
+ next;
+ }
+ push @newINC, $inc;
+}
+@INC = @newINC;
--
1.8.3.4
From f33151a4535dd22acaae24d4b16da3115b6cef64 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Wed, 9 Oct 2013 20:29:38 +0200
Subject: Fix initialization check for CPAN.
* On Haiku, only the site-lib directories will ever be writable,
as the others read-only. This avoids CPAN asking for a way to
circumvent unwritable lib dirs.
diff --git a/cpan/CPAN/lib/CPAN/FirstTime.pm b/cpan/CPAN/lib/CPAN/FirstTime.pm
index b099b04..55bf194 100644
--- a/cpan/CPAN/lib/CPAN/FirstTime.pm
+++ b/cpan/CPAN/lib/CPAN/FirstTime.pm
@@ -2010,6 +2010,12 @@ sub _print_urllist {
}
sub _can_write_to_libdirs {
+ if ($^O eq 'haiku') {
+ # on Haiku, the other dirs are never writable, as they are
+ # being populated by packagefs
+ return -w $Config{installsitelib}
+ && -w $Config{installsitearch}
+ }
return -w $Config{installprivlib}
&& -w $Config{installarchlib}
&& -w $Config{installsitelib}
--
1.8.3.4
From 6fbbb6e99558e992f373cddd6ae02a3656ad7ce0 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 13 Oct 2013 17:32:50 +0200
Subject: Add support for HAIKU_USE_VENDOR_DIRECTORIES.
* Adjust MakeMaker to automatically switch to vendor directories if
requested via HAIKU_USE_VENDOR_DIRECTORIES.
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
index 25ace13..0be8c3d 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Haiku.pm
@@ -29,21 +29,20 @@ our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
our $VERSION = '6.66';
-=item os_flavor
-
-Haiku is Haiku.
-
-=cut
-
sub os_flavor {
return('Haiku');
}
-=head3 init_INSTALL_from_PREFIX
+sub init_main {
+ my $self = shift;
- $mm->init_INSTALL_from_PREFIX;
+ # switch to vendor directories if requested.
+ if ($ENV{'HAIKU_USE_VENDOR_DIRECTORIES'}) {
+ $self->{INSTALLDIRS} ||= 'vendor';
+ }
-=cut
+ $self->SUPER::init_main();
+}
sub init_INSTALL_from_PREFIX {
my $self = shift;
@@ -63,20 +62,6 @@ sub init_INSTALL_from_PREFIX {
}
}
-=back
-
-=head3 init_others
-
- $MM->init_others();
-
-Initializes the macro definitions having to do with compiling and
-linking used by tools_other() and places them in the $MM object.
-
-If there is no description, its the same as the parameter to
-WriteMakefile() documented in ExtUtils::MakeMaker.
-
-=cut
-
sub init_others {
my $self = shift;
@@ -90,8 +75,6 @@ sub init_others {
return;
}
-=back
-
1;
__END__
--
1.8.3.4

View File

@@ -1,127 +0,0 @@
SUMMARY="Larry Wall's Practical Extraction and Report Language"
DESCRIPTION="
Perl was originally developed by Larry Wall in 1987 as a general-purpose
Unix scripting language to make report processing easier.
Perl borrows features from other programming languages including C, shell
scripting (sh), AWK, and sed. The language provides powerful text
processing facilities without the arbitrary data-length limits of many
contemporary Unix tools, facilitating easy manipulation of text files.
In addition to CGI, Perl is used for graphics programming, system
administration, network programming, finance, bioinformatics, and other
applications. Perl is nicknamed 'the Swiss Army chainsaw of scripting
languages' because of its flexibility and power, and possibly also
because of its perceived 'ugliness'.
"
HOMEPAGE="http://www.perl.org/"
COPYRIGHT="1993-2009 Larry Wall and others"
LICENSE="GNU GPL v1
Artistic"
SOURCE_URI="http://www.cpan.org/src/perl-5.10.1.tar.gz"
CHECKSUM_SHA256="cb7f26ea4b2b28d6644354d87a269d01cac1b635287dae64e88eeafa24b44f35"
REVISION="6"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PATCHES="perl-5.10.1.patch"
PROVIDES="
perl = $portVersion compat >= 5
cmd:a2p = $portVersion compat >= 5
cmd:c2ph = $portVersion compat >= 5
cmd:config_data = $portVersion compat >= 5
cmd:corelist = $portVersion compat >= 5
cmd:cpan = $portVersion compat >= 5
cmd:cpan2dist = $portVersion compat >= 5
cmd:cpanp = $portVersion compat >= 5
cmd:cpanp_run_perl = $portVersion compat >= 5
cmd:dprofpp = $portVersion compat >= 5
cmd:enc2xs = $portVersion compat >= 5
cmd:find2perl = $portVersion compat >= 5
cmd:h2ph = $portVersion compat >= 5
cmd:h2xs = $portVersion compat >= 5
cmd:instmodsh = $portVersion compat >= 5
cmd:libnetcfg = $portVersion compat >= 5
cmd:perl = $portVersion compat >= 5
cmd:perl5.10.1 = $portVersion compat >= 5
cmd:perlbug = $portVersion compat >= 5
cmd:perldoc = $portVersion compat >= 5
cmd:perlivp = $portVersion compat >= 5
cmd:perlthanks = $portVersion compat >= 5
cmd:piconv = $portVersion compat >= 5
cmd:pl2pm = $portVersion compat >= 5
cmd:pod2html = $portVersion compat >= 5
cmd:pod2latex = $portVersion compat >= 5
cmd:pod2man = $portVersion compat >= 5
cmd:pod2text = $portVersion compat >= 5
cmd:pod2usage = $portVersion compat >= 5
cmd:podchecker = $portVersion compat >= 5
cmd:podselect = $portVersion compat >= 5
cmd:prove = $portVersion compat >= 5
cmd:psed = $portVersion compat >= 5
cmd:pstruct = $portVersion compat >= 5
cmd:ptar = $portVersion compat >= 5
cmd:ptardiff = $portVersion compat >= 5
cmd:s2p = $portVersion compat >= 5
cmd:shasum = $portVersion compat >= 5
cmd:splain = $portVersion compat >= 5
cmd:xsubpp = $portVersion compat >= 5
lib:libperl = $portVersion compat >= 5
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku_devel
cmd:gcc
cmd:ld
cmd:make
cmd:sed
"
GLOBAL_WRITABLE_FILES="
non-packaged/lib/perl5/site_perl/5.10.1/BePC-haiku directory
"
BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL
BUILD()
{
./Configure \
-Dprefix=$prefix \
-Dprivlib=$prefix/lib/perl5/core_perl/$portVersion \
-Dsiteprefix=$prefix/non-packaged \
-Dsitelib=$prefix/non-packaged/lib/perl5/site_perl/$portVersion \
-Dvendorprefix=$prefix \
-Dvendorlib=$prefix/lib/perl5/vendor_perl/$portVersion \
-Dcf_email=zooey@hirschkaefer.de \
-Uusenm -Duseshrplib -Uusemymalloc \
-Dlibpth="$(finddir B_USER_LIB_DIRECTORY) $(finddir B_COMMON_LIB_DIRECTORY) $(finddir B_SYSTEM_LIB_DIRECTORY)" \
-Dusrinc="$(finddir B_SYSTEM_DEVELOP_DIRECTORY)/headers/posix" \
-Dlocinc="$(finddir B_USER_CONFIG_DIRECTORY)/develop/headers $(finddir B_COMMON_DEVELOP_DIRECTORY)/headers $(finddir B_SYSTEM_DEVELOP_DIRECTORY)/headers" \
-Dlibc="$(finddir B_SYSTEM_LIB_DIRECTORY)/libroot.so" \
-Dlibs=-lnetwork -Dcc=gcc -Dld=gcc \
-Ud_link -Ddont_use_nlink -Ud_syserrlst \
-Dldlibpthname=LIBRARY_PATH -Dstartperl="#! perl" -de
# force-remove path from sed
sed -i -e 's/LOC_SED\s*"\/boot\/common\/bin\/sed/LOC_SED "sed/' config.h
make $jobArgs
}
INSTALL()
{
eval $(./miniperl "-I$relativeLibDir" -V:archname)
make install
cd "$binDir"
chmod a+x perl psed pstruct perlthanks
cd "$libDir"
ln -sf perl5/core_perl/5.10.1/$archname/CORE/libperl.so .
# The "site-perl" stuff is automatically created, when necessary, so we can
# as well remove it.
rm -r $prefix/non-packaged
}

View File

@@ -1,142 +0,0 @@
SUMMARY="Larry Wall's Practical Extraction and Report Language"
DESCRIPTION="
Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix \
scripting language to make report processing easier.
Perl borrows features from other programming languages including C, shell \
scripting (sh), AWK, and sed. The language provides powerful text processing \
facilities without the arbitrary data-length limits of many contemporary Unix \
tools, facilitating easy manipulation of text files.
In addition to CGI, Perl is used for graphics programming, system \
administration, network programming, finance, bioinformatics, and other \
applications. Perl is nicknamed 'the Swiss Army chainsaw of scripting \
languages' because of its flexibility and power, and possibly also because of \
its perceived 'ugliness'.
"
HOMEPAGE="http://www.perl.org/"
COPYRIGHT="1993-2009 Larry Wall and others"
LICENSE="GNU GPL v1
Artistic"
SOURCE_URI="http://www.cpan.org/src/perl-5.18.1.tar.gz"
CHECKSUM_SHA256="655e11a8ffba8853efcdce568a142c232600ed120ac24aaebb4e6efe74e85b2b"
REVISION="1"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PATCHES="perl-5.18.1.patchset"
PROVIDES="
# assume that any perl commands are backwards compatible to version 5.
perl = $portVersion compat >= 5
cmd:a2p = $portVersion compat >= 5
cmd:c2ph = $portVersion compat >= 5
cmd:config_data = $portVersion compat >= 5
cmd:corelist = $portVersion compat >= 5
cmd:cpan = $portVersion compat >= 5
cmd:cpan2dist = $portVersion compat >= 5
cmd:cpanp = $portVersion compat >= 5
cmd:cpanp_run_perl = $portVersion compat >= 5
cmd:dprofpp = $portVersion compat >= 5
cmd:enc2xs = $portVersion compat >= 5
cmd:find2perl = $portVersion compat >= 5
cmd:h2ph = $portVersion compat >= 5
cmd:h2xs = $portVersion compat >= 5
cmd:instmodsh = $portVersion compat >= 5
cmd:json_pp = $portVersion compat >= 5
cmd:libnetcfg = $portVersion compat >= 5
cmd:perl = $portVersion compat >= 5
cmd:perl$portVersion = $portVersion compat >= 5
cmd:perlbug = $portVersion compat >= 5
cmd:perldoc = $portVersion compat >= 5
cmd:perlivp = $portVersion compat >= 5
cmd:perlthanks = $portVersion compat >= 5
cmd:piconv = $portVersion compat >= 5
cmd:pl2pm = $portVersion compat >= 5
cmd:pod2html = $portVersion compat >= 5
cmd:pod2latex = $portVersion compat >= 5
cmd:pod2man = $portVersion compat >= 5
cmd:pod2text = $portVersion compat >= 5
cmd:pod2usage = $portVersion compat >= 5
cmd:podchecker = $portVersion compat >= 5
cmd:podselect = $portVersion compat >= 5
cmd:prove = $portVersion compat >= 5
cmd:psed = $portVersion compat >= 5
cmd:pstruct = $portVersion compat >= 5
cmd:ptar = $portVersion compat >= 5
cmd:ptardiff = $portVersion compat >= 5
cmd:ptargrep = $portVersion compat >= 5
cmd:s2p = $portVersion compat >= 5
cmd:shasum = $portVersion compat >= 5
cmd:splain = $portVersion compat >= 5
cmd:xsubpp = $portVersion compat >= 5
cmd:zipdetails = $portVersion compat >= 5
# vendor_perl refers to the path to packaged perl modules, which includes
# the full perl version, so it isn't backwards compatible to anything else.
vendor_perl = $portVersion
# It is unclear which kind of backwards compatibility libperl.so
# implements, so we assume none.
lib:libperl = $portVersion
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku_devel
cmd:gcc
cmd:ld
cmd:make
cmd:sed
"
perlArchName="$(uname -m)-haiku"
GLOBAL_WRITABLE_FILES="
non-packaged/lib/perl5/site_perl/$portVersion/sitecustomize.pl keep-old
non-packaged/lib/perl5/site_perl/$portVersion/$perlArchName directory keep-old
"
BUILD_PACKAGE_ACTIVATION_PHASE=INSTALL
BUILD()
{
./Configure \
-Dprefix=$prefix \
-Dprivlib=$prefix/lib/perl5/$portVersion \
-Dsiteprefix=$prefix/non-packaged \
-Dsitelib=$prefix/non-packaged/lib/perl5/site_perl/$portVersion \
-Dvendorprefix=$prefix \
-Dvendorlib=$prefix/lib/perl5/vendor_perl/$portVersion \
-Dcf_email=zooey@hirschkaefer.de \
-Uusenm -Duseshrplib -Uusemymalloc \
-Dlibpth="$(finddir B_USER_DEVELOP_DIRECTORY)/lib $(finddir B_SYSTEM_DEVELOP_DIRECTORY)/lib" \
-Dusrinc="$(finddir B_SYSTEM_DEVELOP_DIRECTORY)/headers/posix" \
-Dlocinc="$(finddir B_USER_CONFIG_DIRECTORY)/develop/headers $(finddir B_SYSTEM_DEVELOP_DIRECTORY)/headers" \
-Dlibc="'$(finddir B_SYSTEM_LIB_DIRECTORY)/libroot.so'" \
-Dlibs=-lnetwork -Dcc=gcc -Dld=gcc \
-Ud_link -Ddont_use_nlink -Ud_syserrlst \
-Dldlibpthname=LIBRARY_PATH -Dstartperl="#! perl" \
-Dccdlflags="-Wl,-rpath=$libDir/perl5/$portVersion/$perlArchName/CORE" \
-Dusesitecustomize \
-de
# force-remove path from sed
sed -i -e 's/LOC_SED\s*"\/bin\/sed/LOC_SED "sed/' config.h
make $jobArgs
}
INSTALL()
{
make install
chmod a+x $binDir/{perl,psed,pstruct,perlthanks}
# copy script into site_perl that takes care of massaging @INC into what we need.
cp sitecustomize.pl $prefix/non-packaged/lib/perl5/site_perl/$portVersion/
}
TEST()
{
make test
}

View File

@@ -22,7 +22,7 @@ SOURCE_URI="http://www.cpan.org/src/perl-$portVersion.tar.gz"
CHECKSUM_SHA256="e763aa485e8dc1a70483dbe6d615986bbf32b977f38016480d68c99237e701dd"
PATCHES="perl-$portVersion.patchset"
ARCHITECTURES="?x86_gcc2 x86 x86_64 ?arm"
ARCHITECTURES="x86_gcc2 x86 x86_64 ?arm"
PROVIDES="
# assume that any perl commands are backwards compatible to version 5.