diff --git a/dev-lang/perl/patches/perl-5.18.2.patchset b/dev-lang/perl/patches/perl-5.18.2.patchset new file mode 100644 index 000000000..6db252c67 --- /dev/null +++ b/dev-lang/perl/patches/perl-5.18.2.patchset @@ -0,0 +1,546 @@ +From 4bef2ada1d8a38b4dff88f0659a3b9e181bf1950 Mon Sep 17 00:00:00 2001 +From: Oliver Tappe +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 + diff --git a/dev-lang/perl/perl-5.18.2.recipe b/dev-lang/perl/perl-5.18.2.recipe index 19c28d011..e819a8c0a 100644 --- a/dev-lang/perl/perl-5.18.2.recipe +++ b/dev-lang/perl/perl-5.18.2.recipe @@ -23,7 +23,7 @@ CHECKSUM_SHA256="7cbed5ef11900e8f68041215eea0de5e443d53393f84c41d5c9c69c150a4982 REVISION="2" ARCHITECTURES="x86_gcc2 x86 x86_64 arm" -PATCHES="perl-5.18.1.patchset" +PATCHES="perl-5.18.2.patchset" PROVIDES=" # assume that any perl commands are backwards compatible to version 5. diff --git a/dev-lang/ruby/patches/ruby-1.9.3.patchset b/dev-lang/ruby/patches/ruby-1.9.3.patchset new file mode 100644 index 000000000..d382648d4 --- /dev/null +++ b/dev-lang/ruby/patches/ruby-1.9.3.patchset @@ -0,0 +1,545 @@ +From 7bab20a22b69de3239de475cbc72a5c39864f43c Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 11 Nov 2013 19:00:01 -0700 +Subject: applying patch ruby-1.9.1.patch + + +diff --git a/configure.in b/configure.in +index c98a024..113d4e5 100644 +--- a/configure.in ++++ b/configure.in +@@ -1462,11 +1462,11 @@ if test "$with_dln_a_out" != yes; then + haiku*) case "$target_cpu" in + powerpc*) + : ${LDSHARED="ld -xms"} +- DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o' ++ DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lroot glue-noinit.a init_term_dyn.o start_dyn.o' + ;; + i586*) + : ${LDSHARED="ld -shared"} +- DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot" ++ DLDFLAGS="$DLDFLAGS -L/boot/system/develop/lib -lroot -L/boot/home/config/develop/lib" + ;; + esac + : ${LIBPATHENV=LIBRARY_PATH} +diff --git a/ext/nkf/nkf-utf8/nkf.h b/ext/nkf/nkf-utf8/nkf.h +index 0998837..814ceef 100644 +--- a/ext/nkf/nkf-utf8/nkf.h ++++ b/ext/nkf/nkf-utf8/nkf.h +@@ -164,6 +164,11 @@ void setbinmode(FILE *fp) + # ifndef HAVE_LOCALE_H + # define HAVE_LOCALE_H + # endif ++#elif defined(__HAIKU__) ++# undef HAVE_LANGINFO_H ++# ifndef HAVE_LOCALE_H ++# define HAVE_LOCALE_H ++# endif + #else + # ifndef HAVE_LANGINFO_H + # define HAVE_LANGINFO_H +diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c +index a3b612b..d900ef3 100644 +--- a/ext/openssl/ossl.c ++++ b/ext/openssl/ossl.c +@@ -92,7 +92,7 @@ ossl_x509_ary2sk(VALUE ary) + + #define OSSL_IMPL_SK2ARY(name, type) \ + VALUE \ +-ossl_##name##_sk2ary(STACK *sk) \ ++ossl_##name##_sk2ary(STACK_OF(type) *sk) \ + { \ + type *t; \ + int i, num; \ +@@ -102,7 +102,7 @@ ossl_##name##_sk2ary(STACK *sk) \ + OSSL_Debug("empty sk!"); \ + return Qnil; \ + } \ +- num = sk_num(sk); \ ++ num = sk_##type##_num(sk); \ + if (num < 0) { \ + OSSL_Debug("items in sk < -1???"); \ + return rb_ary_new(); \ +@@ -110,7 +110,7 @@ ossl_##name##_sk2ary(STACK *sk) \ + ary = rb_ary_new2(num); \ + \ + for (i=0; i= 0x10000000L ++#define STACK _STACK ++#endif ++ ++/* + * String to HEXString conversion + */ + int string2hex(const unsigned char *, int, char **, int *); +diff --git a/ext/openssl/ossl_config.c b/ext/openssl/ossl_config.c +index bc5067f..5ec5b06 100644 +--- a/ext/openssl/ossl_config.c ++++ b/ext/openssl/ossl_config.c +@@ -1,5 +1,5 @@ + /* +- * $Id: ossl_config.c 18971 2008-08-31 03:36:09Z nobu $ ++ * $Id: ossl_config.c 27460 2010-04-23 14:28:56Z akr $ + * 'OpenSSL for Ruby' project + * Copyright (C) 2001-2002 Michal Rokos + * All rights reserved. +@@ -33,8 +33,8 @@ + VALUE cConfig; + VALUE eConfigError; + +-/* +- * Public ++/* ++ * Public + */ + + static CONF *parse_config(VALUE, CONF*); +@@ -154,7 +154,7 @@ ossl_config_initialize(int argc, VALUE *argv, VALUE self) + _CONF_new_data(conf); + } + #endif +- ++ + return self; + } + +@@ -187,11 +187,30 @@ ossl_config_add_value(VALUE self, VALUE section, VALUE name, VALUE value) + OPENSSL_free(cv); + ossl_raise(eConfigError, "_CONF_add_string failure"); + } +- ++ + return value; + #endif + } + ++static void ++rb_ossl_config_modify_check(VALUE config) ++{ ++ if (OBJ_FROZEN(config)) rb_error_frozen("OpenSSL::Config"); ++ if (!OBJ_UNTRUSTED(config) && rb_safe_level() >= 4) ++ rb_raise(rb_eSecurityError, "Insecure: can't modify OpenSSL config"); ++} ++ ++#if !defined(OSSL_NO_CONF_API) ++static VALUE ++ossl_config_add_value_m(VALUE self, VALUE section, VALUE name, VALUE value) ++{ ++ rb_ossl_config_modify_check(self); ++ return ossl_config_add_value(self, section, name, value); ++} ++#else ++#define ossl_config_add_value_m rb_f_notimplement ++#endif ++ + static VALUE + ossl_config_get_value(VALUE self, VALUE section, VALUE name) + { +@@ -214,7 +233,7 @@ static VALUE + ossl_config_get_value_old(int argc, VALUE *argv, VALUE self) + { + VALUE section, name; +- ++ + rb_scan_args(argc, argv, "11", §ion, &name); + + /* support conf.value(nil, "HOME") -> conf.get_value("", "HOME") */ +@@ -247,6 +266,7 @@ ossl_config_set_section(VALUE self, VALUE section, VALUE hash) + { + VALUE arg[2]; + ++ rb_ossl_config_modify_check(self); + arg[0] = self; + arg[1] = section; + rb_block_call(hash, rb_intern("each"), 0, 0, set_conf_section_i, (VALUE)arg); +@@ -278,7 +298,7 @@ ossl_config_get_section(VALUE self, VALUE section) + return hash; + } + for (i=0; iname), rb_str_new2(entry->value)); + } + +@@ -292,15 +312,16 @@ ossl_config_get_section_old(VALUE self, VALUE section) + return ossl_config_get_section(self, section); + } + +-#ifdef IMPLEMENT_LHASH_DOALL_ARG_FN ++#if defined(IMPLEMENT_LHASH_DOALL_ARG_FN) && defined(LHASH_OF) + static void +-get_conf_section(CONF_VALUE *cv, VALUE ary) ++get_conf_section_doall_arg(CONF_VALUE *cv, void *tmp) + { ++ VALUE ary = (VALUE)tmp; + if(cv->name) return; + rb_ary_push(ary, rb_str_new2(cv->section)); + } + +-static IMPLEMENT_LHASH_DOALL_ARG_FN(get_conf_section, CONF_VALUE*, VALUE); ++static IMPLEMENT_LHASH_DOALL_ARG_FN(get_conf_section, CONF_VALUE, void) + + static VALUE + ossl_config_get_sections(VALUE self) +@@ -310,14 +331,16 @@ ossl_config_get_sections(VALUE self) + + GetConfig(self, conf); + ary = rb_ary_new(); +- lh_doall_arg(conf->data, LHASH_DOALL_ARG_FN(get_conf_section), (void*)ary); ++ lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(get_conf_section), ++ (void*)ary); + + return ary; + } + + static void +-dump_conf_value(CONF_VALUE *cv, VALUE str) ++dump_conf_value_doall_arg(CONF_VALUE *cv, void *tmp) + { ++ VALUE str = (VALUE)tmp; + STACK_OF(CONF_VALUE) *sk; + CONF_VALUE *v; + int i, num; +@@ -338,7 +361,7 @@ dump_conf_value(CONF_VALUE *cv, VALUE str) + rb_str_cat2(str, "\n"); + } + +-static IMPLEMENT_LHASH_DOALL_ARG_FN(dump_conf_value, CONF_VALUE*, VALUE); ++static IMPLEMENT_LHASH_DOALL_ARG_FN(dump_conf_value, CONF_VALUE, void) + + static VALUE + dump_conf(CONF *conf) +@@ -346,7 +369,8 @@ dump_conf(CONF *conf) + VALUE str; + + str = rb_str_new(0, 0); +- lh_doall_arg(conf->data, LHASH_DOALL_ARG_FN(dump_conf_value), (void*)str); ++ lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(dump_conf_value), ++ (void*)str); + + return str; + } +@@ -362,7 +386,7 @@ ossl_config_to_s(VALUE self) + } + + static void +-each_conf_value(CONF_VALUE *cv, void* dummy) ++each_conf_value_doall_arg(CONF_VALUE *cv, void *dummy) + { + STACK_OF(CONF_VALUE) *sk; + CONF_VALUE *v; +@@ -382,7 +406,7 @@ each_conf_value(CONF_VALUE *cv, void* dummy) + } + } + +-static IMPLEMENT_LHASH_DOALL_ARG_FN(each_conf_value, CONF_VALUE*, void*); ++static IMPLEMENT_LHASH_DOALL_ARG_FN(each_conf_value, CONF_VALUE, void *) + + static VALUE + ossl_config_each(VALUE self) +@@ -392,7 +416,8 @@ ossl_config_each(VALUE self) + RETURN_ENUMERATOR(self, 0, 0); + + GetConfig(self, conf); +- lh_doall_arg(conf->data, LHASH_DOALL_ARG_FN(each_conf_value), (void*)NULL); ++ lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(each_conf_value), ++ (void*)NULL); + + return self; + } +@@ -456,7 +481,7 @@ Init_ossl_config() + rb_define_method(cConfig, "initialize", ossl_config_initialize, -1); + rb_define_method(cConfig, "get_value", ossl_config_get_value, 2); + rb_define_method(cConfig, "value", ossl_config_get_value_old, -1); +- rb_define_method(cConfig, "add_value", ossl_config_add_value, 3); ++ rb_define_method(cConfig, "add_value", ossl_config_add_value_m, 3); + rb_define_method(cConfig, "[]", ossl_config_get_section, 1); + rb_define_method(cConfig, "section", ossl_config_get_section_old, 1); + rb_define_method(cConfig, "[]=", ossl_config_set_section, 2); +diff --git a/ext/openssl/ossl_pkcs7.c b/ext/openssl/ossl_pkcs7.c +index f7cd156..644e91a 100644 +--- a/ext/openssl/ossl_pkcs7.c ++++ b/ext/openssl/ossl_pkcs7.c +@@ -572,12 +572,11 @@ ossl_pkcs7_add_certificate(VALUE self, VALUE cert) + return self; + } + +-static STACK * +-pkcs7_get_certs_or_crls(VALUE self, int want_certs) ++static STACK_OF(X509) * ++pkcs7_get_certs(VALUE self) + { + PKCS7 *pkcs7; + STACK_OF(X509) *certs; +- STACK_OF(X509_CRL) *crls; + int i; + + GetPKCS7(self, pkcs7); +@@ -585,17 +584,38 @@ pkcs7_get_certs_or_crls(VALUE self, int want_certs) + switch(i){ + case NID_pkcs7_signed: + certs = pkcs7->d.sign->cert; +- crls = pkcs7->d.sign->crl; + break; + case NID_pkcs7_signedAndEnveloped: + certs = pkcs7->d.signed_and_enveloped->cert; ++ break; ++ default: ++ certs = NULL; ++ } ++ ++ return certs; ++} ++ ++static STACK_OF(X509_CRL) * ++pkcs7_get_crls(VALUE self) ++{ ++ PKCS7 *pkcs7; ++ STACK_OF(X509_CRL) *crls; ++ int i; ++ ++ GetPKCS7(self, pkcs7); ++ i = OBJ_obj2nid(pkcs7->type); ++ switch(i){ ++ case NID_pkcs7_signed: ++ crls = pkcs7->d.sign->crl; ++ break; ++ case NID_pkcs7_signedAndEnveloped: + crls = pkcs7->d.signed_and_enveloped->crl; + break; + default: +- certs = crls = NULL; ++ crls = NULL; + } + +- return want_certs ? certs : crls; ++ return crls; + } + + static VALUE +@@ -610,7 +630,7 @@ ossl_pkcs7_set_certificates(VALUE self, VALUE ary) + STACK_OF(X509) *certs; + X509 *cert; + +- certs = pkcs7_get_certs_or_crls(self, 1); ++ certs = pkcs7_get_certs(self); + while((cert = sk_X509_pop(certs))) X509_free(cert); + rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_certs_i, self); + +@@ -620,7 +640,7 @@ ossl_pkcs7_set_certificates(VALUE self, VALUE ary) + static VALUE + ossl_pkcs7_get_certificates(VALUE self) + { +- return ossl_x509_sk2ary(pkcs7_get_certs_or_crls(self, 1)); ++ return ossl_x509_sk2ary(pkcs7_get_certs(self)); + } + + static VALUE +@@ -650,7 +670,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ary) + STACK_OF(X509_CRL) *crls; + X509_CRL *crl; + +- crls = pkcs7_get_certs_or_crls(self, 0); ++ crls = pkcs7_get_crls(self); + while((crl = sk_X509_CRL_pop(crls))) X509_CRL_free(crl); + rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_crls_i, self); + +@@ -660,7 +680,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ary) + static VALUE + ossl_pkcs7_get_crls(VALUE self) + { +- return ossl_x509crl_sk2ary(pkcs7_get_certs_or_crls(self, 0)); ++ return ossl_x509crl_sk2ary(pkcs7_get_crls(self)); + } + + static VALUE +diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c +index c278edc..1167627 100644 +--- a/ext/openssl/ossl_ssl.c ++++ b/ext/openssl/ossl_ssl.c +@@ -1195,10 +1195,10 @@ ossl_ssl_get_peer_cert_chain(VALUE self) + } + chain = SSL_get_peer_cert_chain(ssl); + if(!chain) return Qnil; +- num = sk_num(chain); ++ num = sk_X509_num(chain); + ary = rb_ary_new2(num); + for (i = 0; i < num; i++){ +- cert = (X509*)sk_value(chain, i); ++ cert = sk_X509_value(chain, i); + rb_ary_push(ary, ossl_x509_new(cert)); + } + +diff --git a/ext/openssl/ossl_ssl_session.c b/ext/openssl/ossl_ssl_session.c +index b236e4d..4d0848f 100644 +--- a/ext/openssl/ossl_ssl_session.c ++++ b/ext/openssl/ossl_ssl_session.c +@@ -72,6 +72,16 @@ static VALUE ossl_ssl_session_initialize(VALUE self, VALUE arg1) + return self; + } + ++#if HAVE_SSL_SESSION_CMP == 0 ++int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b) ++{ ++ if (a->ssl_version != b->ssl_version || ++ a->session_id_length != b->session_id_length) ++ return 1; ++ return memcmp(a->session_id,b-> session_id, a->session_id_length); ++} ++#endif ++ + /* + * call-seq: + * session1 == session2 -> boolean +diff --git a/ext/openssl/ossl_x509attr.c b/ext/openssl/ossl_x509attr.c +index 248e02a..2634cd9 100644 +--- a/ext/openssl/ossl_x509attr.c ++++ b/ext/openssl/ossl_x509attr.c +@@ -218,8 +218,9 @@ ossl_x509attr_get_value(VALUE self) + ossl_str_adjust(str, p); + } + else{ +- length = i2d_ASN1_SET_OF_ASN1_TYPE(attr->value.set, NULL, +- i2d_ASN1_TYPE, V_ASN1_SET, V_ASN1_UNIVERSAL, 0); ++ length = i2d_ASN1_SET_OF_ASN1_TYPE(attr->value.set, ++ (unsigned char **) NULL, i2d_ASN1_TYPE, ++ V_ASN1_SET, V_ASN1_UNIVERSAL, 0); + str = rb_str_new(0, length); + p = (unsigned char *)RSTRING_PTR(str); + i2d_ASN1_SET_OF_ASN1_TYPE(attr->value.set, &p, +diff --git a/ext/openssl/ossl_x509crl.c b/ext/openssl/ossl_x509crl.c +index 3896b6e..c5123ae 100644 +--- a/ext/openssl/ossl_x509crl.c ++++ b/ext/openssl/ossl_x509crl.c +@@ -264,7 +264,7 @@ ossl_x509crl_get_revoked(VALUE self) + VALUE ary, revoked; + + GetX509CRL(self, crl); +- num = sk_X509_CRL_num(X509_CRL_get_REVOKED(crl)); ++ num = sk_X509_REVOKED_num(X509_CRL_get_REVOKED(crl)); + if (num < 0) { + OSSL_Debug("num < 0???"); + return rb_ary_new(); +@@ -272,7 +272,7 @@ ossl_x509crl_get_revoked(VALUE self) + ary = rb_ary_new2(num); + for(i=0; i +Date: Mon, 11 Nov 2013 20:00:13 -0700 +Subject: Use gcc for linking modules + + +diff --git a/configure.in b/configure.in +index 113d4e5..9bfbfb3 100644 +--- a/configure.in ++++ b/configure.in +@@ -1465,7 +1465,10 @@ if test "$with_dln_a_out" != yes; then + DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lroot glue-noinit.a init_term_dyn.o start_dyn.o' + ;; + i586*) +- : ${LDSHARED="ld -shared"} ++ : ${LDSHARED="${CC} -shared"} ++ if test "$rb_cv_binary_elf" = yes; then ++ LDFLAGS="$LDFLAGS -Wl,-export-dynamic" ++ fi + DLDFLAGS="$DLDFLAGS -L/boot/system/develop/lib -lroot -L/boot/home/config/develop/lib" + ;; + esac +-- +1.8.3.4 + + +From c43e8e49d47f7778314d9a723f9430fa4686f7ba Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Mon, 11 Nov 2013 23:13:59 -0700 +Subject: Add soname flags for libruby.so + + +diff --git a/configure.in b/configure.in +index 9bfbfb3..611b586 100644 +--- a/configure.in ++++ b/configure.in +@@ -1777,6 +1777,10 @@ if test "$enable_shared" = 'yes'; then + ;; + esac + ;; ++ haiku*) ++ LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)' ++ LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so' ++ ;; + darwin*) + LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib' + LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace' +-- +1.8.3.4 + + +From c6983e184282d3ffbb88c095ff13d1913c18a3f8 Mon Sep 17 00:00:00 2001 +From: Rene Gollent +Date: Wed, 18 Dec 2013 21:52:24 -0500 +Subject: Add case for x86_64. + + +diff --git a/configure.in b/configure.in +index 611b586..01f0bb0 100644 +--- a/configure.in ++++ b/configure.in +@@ -1464,7 +1464,7 @@ if test "$with_dln_a_out" != yes; then + : ${LDSHARED="ld -xms"} + DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lroot glue-noinit.a init_term_dyn.o start_dyn.o' + ;; +- i586*) ++ i586*|x86_64*) + : ${LDSHARED="${CC} -shared"} + if test "$rb_cv_binary_elf" = yes; then + LDFLAGS="$LDFLAGS -Wl,-export-dynamic" +-- +1.8.3.4 + diff --git a/dev-lang/ruby/ruby-1.9.3.recipe b/dev-lang/ruby/ruby-1.9.3.recipe index b676700a0..8c9fd8a13 100644 --- a/dev-lang/ruby/ruby-1.9.3.recipe +++ b/dev-lang/ruby/ruby-1.9.3.recipe @@ -78,7 +78,7 @@ REQUIRES_devel=" SOURCE_DIR="ruby-1.9.3-p545" -PATCHES="ruby-1.9.1.patchset" +PATCHES="ruby-1.9.3.patchset" BUILD() { diff --git a/dev-util/scons/patches/scons-2.2.0.patch b/dev-util/scons/patches/scons-2.3.1.patchset similarity index 54% rename from dev-util/scons/patches/scons-2.2.0.patch rename to dev-util/scons/patches/scons-2.3.1.patchset index 15d06891d..1ecca99d2 100644 --- a/dev-util/scons/patches/scons-2.2.0.patch +++ b/dev-util/scons/patches/scons-2.3.1.patchset @@ -1,7 +1,14 @@ -diff -Naur ./scons-2.2.0/engine/SCons/Platform/__init__.py ./scons-2.2.0-haiku/engine/SCons/Platform/__init__.py ---- ./scons-2.2.0/engine/SCons/Platform/__init__.py 2012-08-05 15:38:31.009961472 +0000 -+++ ./scons-2.2.0-haiku/engine/SCons/Platform/__init__.py 2012-09-30 13:28:21.978583552 +0000 -@@ -78,6 +78,8 @@ +From 8f1968371d3426d08cba8dafa44eaaa0cb59b13f Mon Sep 17 00:00:00 2001 +From: Ingo Weinhold +Date: Fri, 9 Aug 2013 17:46:35 +0200 +Subject: Add support for the Haiku platform + + +diff --git a/engine/SCons/Platform/__init__.py b/engine/SCons/Platform/__init__.py +index 2cab3c8..373938d 100644 +--- a/engine/SCons/Platform/__init__.py ++++ b/engine/SCons/Platform/__init__.py +@@ -78,6 +78,8 @@ def platform_default(): return 'aix' elif sys.platform.find('darwin') != -1: return 'darwin' @@ -10,10 +17,12 @@ diff -Naur ./scons-2.2.0/engine/SCons/Platform/__init__.py ./scons-2.2.0-haiku/e else: return 'posix' elif os.name == 'os2': -diff -Naur ./scons-2.2.0/engine/SCons/Platform/haiku.py ./scons-2.2.0-haiku/engine/SCons/Platform/haiku.py ---- ./scons-2.2.0/engine/SCons/Platform/haiku.py 1970-01-01 00:00:00.000000000 +0000 -+++ ./scons-2.2.0-haiku/engine/SCons/Platform/haiku.py 2012-09-30 13:30:07.109051904 +0000 -@@ -0,0 +1,54 @@ +diff --git a/engine/SCons/Platform/haiku.py b/engine/SCons/Platform/haiku.py +new file mode 100644 +index 0000000..5c802dd +--- /dev/null ++++ b/engine/SCons/Platform/haiku.py +@@ -0,0 +1,69 @@ +"""SCons.Platform.haiku + +Platform-specific initialization for Haiku systems. @@ -48,23 +57,41 @@ diff -Naur ./scons-2.2.0/engine/SCons/Platform/haiku.py ./scons-2.2.0-haiku/engi + +__revision__ = "" + -+import posix +import commands ++import os ++import posix + -+def findDir( identifier ): -+ return commands.getoutput( 'finddir %s' % identifier ) ++def findDir(identifier): ++ return commands.getoutput('finddir %s' % identifier) + +def generate(env): + posix.generate(env) -+ -+ # path list -+ listPath = [ '.' ] -+ listPath.append( '%s/bin' % findDir( 'B_USER_CONFIG_DIRECTORY' ) ) -+ listPath.append( findDir( 'B_COMMON_BIN_DIRECTORY' ) ) -+ listPath.append( findDir( 'B_SYSTEM_BIN_DIRECTORY' ) ) -+ listPath.append( findDir( 'B_BEOS_BIN_DIRECTORY' ) ) -+ listPath.append( '%s/tools/gnupro/bin' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' ) ) -+ env['ENV']['PATH'] = ':'.join( listPath ) -+ -+ # help the linker find the startfiles -+ env['ENV']['BELIBRARIES'] = ':%s/lib/x86' % findDir( 'B_COMMON_DEVELOP_DIRECTORY' ) ++ ++ # determine, if building for the secondary architecture ++ secondaryArch = os.environ.get('HAIKU_SECONDARY_ARCH') ++ archSubDir = '/' + secondaryArch if secondaryArch else '' ++ ++ # PATH ++ pathDescriptions = [ ++ ('B_USER_NONPACKAGED_BIN_DIRECTORY', None), ++ ('B_USER_CONFIG_DIRECTORY', 'bin'), ++ ('B_COMMON_NONPACKAGED_BIN_DIRECTORY', None), ++ ('B_COMMON_BIN_DIRECTORY', None), ++ ('B_SYSTEM_BIN_DIRECTORY', None) ++ ] ++ ++ paths = [] ++ for pathConstant, subDir in pathDescriptions: ++ path = findDir(pathConstant) ++ if subDir: ++ path += '/' + subDir ++ paths.append(path) ++ ++ if secondaryArch: ++ # prepend the secondary arch subdirectories ++ paths = [path + archSubDir for path in paths] + paths ++ ++ env['ENV']['PATH'] = ':'.join(paths) +-- +1.7.10.2 + diff --git a/dev-util/scons/scons-2.3.1.recipe b/dev-util/scons/scons-2.3.1.recipe index 34c143f5a..636281c94 100644 --- a/dev-util/scons/scons-2.3.1.recipe +++ b/dev-util/scons/scons-2.3.1.recipe @@ -14,7 +14,7 @@ CHECKSUM_SHA256="091ab468f8e6084c30f3ae9fd48828e3884021401cfef4b713d13161ba12020 REVISION="3" ARCHITECTURES="x86_gcc2 x86 x86_64" -PATCHES="scons-2.2.0.patchset" +PATCHES="scons-2.3.1.patchset" PROVIDES=" scons = $portVersion compat >= 2 diff --git a/dev-vcs/mercurial/mercurial-2.9.1.recipe b/dev-vcs/mercurial/mercurial-2.9.1.recipe index 09d14f259..0edd1c388 100644 --- a/dev-vcs/mercurial/mercurial-2.9.1.recipe +++ b/dev-vcs/mercurial/mercurial-2.9.1.recipe @@ -10,7 +10,7 @@ CHECKSUM_SHA256="a20fb1434ecbdb070ef955c7c292db9eb2676bfc1ac165e95ba73866623bc01 REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" -PATCHES="mercurial-2.8.1.patch" +PATCHES="mercurial-2.9.1.patch" PROVIDES=" mercurial = $portVersion compat >= 2 diff --git a/dev-vcs/mercurial/mercurial-2.9.2.recipe b/dev-vcs/mercurial/mercurial-2.9.2.recipe index 540756cd4..af343a973 100644 --- a/dev-vcs/mercurial/mercurial-2.9.2.recipe +++ b/dev-vcs/mercurial/mercurial-2.9.2.recipe @@ -10,7 +10,7 @@ CHECKSUM_SHA256="86462b3a1518e137cfe813dc273b8acb120ad71230a1813c0dc9335223b38f5 REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" -PATCHES="mercurial-2.8.1.patch" +PATCHES="mercurial-2.9.2.patch" PROVIDES=" mercurial = $portVersion compat >= 2 diff --git a/dev-vcs/mercurial/patches/mercurial-2.9.1.patch b/dev-vcs/mercurial/patches/mercurial-2.9.1.patch new file mode 100644 index 000000000..edfe44133 --- /dev/null +++ b/dev-vcs/mercurial/patches/mercurial-2.9.1.patch @@ -0,0 +1,12 @@ +diff -up mercurial-2.8.1/mercurial/ui.py.orig mercurial-2.8.1/mercurial/ui.py +--- mercurial-2.8.1/mercurial/ui.py.orig 2012-06-01 22:48:21.025690112 -0600 ++++ mercurial-2.8.1/mercurial/ui.py 2012-06-04 17:15:16.317980672 -0600 +@@ -693,7 +693,7 @@ class ui(object): + # avoid confusion. + editor = 'E' + else: +- editor = 'vi' ++ editor = 'nano' + return (os.environ.get("HGEDITOR") or + self.config("ui", "editor") or + os.environ.get("VISUAL") or diff --git a/dev-vcs/mercurial/patches/mercurial-2.9.2.patch b/dev-vcs/mercurial/patches/mercurial-2.9.2.patch new file mode 100644 index 000000000..edfe44133 --- /dev/null +++ b/dev-vcs/mercurial/patches/mercurial-2.9.2.patch @@ -0,0 +1,12 @@ +diff -up mercurial-2.8.1/mercurial/ui.py.orig mercurial-2.8.1/mercurial/ui.py +--- mercurial-2.8.1/mercurial/ui.py.orig 2012-06-01 22:48:21.025690112 -0600 ++++ mercurial-2.8.1/mercurial/ui.py 2012-06-04 17:15:16.317980672 -0600 +@@ -693,7 +693,7 @@ class ui(object): + # avoid confusion. + editor = 'E' + else: +- editor = 'vi' ++ editor = 'nano' + return (os.environ.get("HGEDITOR") or + self.config("ui", "editor") or + os.environ.get("VISUAL") or diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.3.0.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.3.0.recipe index cd1262412..39d1fb7ff 100644 --- a/haiku-libs/haikuwebkit/haikuwebkit-1.3.0.recipe +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.3.0.recipe @@ -26,7 +26,7 @@ SECONDARY_ARCHITECTURES="x86" if [ $effectiveTargetArchitecture == x86_64 ]; then - PATCHES="haikuwebkit-1.2.5.patchset" + PATCHES="haikuwebkit-1.3.0.patchset" fi PROVIDES=" diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.3.1.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.3.1.recipe index 8f4f94b61..aa53e9a76 100644 --- a/haiku-libs/haikuwebkit/haikuwebkit-1.3.1.recipe +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.3.1.recipe @@ -26,7 +26,7 @@ SECONDARY_ARCHITECTURES="x86" if [ $effectiveTargetArchitecture == x86_64 ]; then - PATCHES="haikuwebkit-1.2.5.patchset" + PATCHES="haikuwebkit-1.3.1.patchset" fi PROVIDES=" diff --git a/haiku-libs/haikuwebkit/haikuwebkit-1.3.2.recipe b/haiku-libs/haikuwebkit/haikuwebkit-1.3.2.recipe index 822a935cf..a726061eb 100644 --- a/haiku-libs/haikuwebkit/haikuwebkit-1.3.2.recipe +++ b/haiku-libs/haikuwebkit/haikuwebkit-1.3.2.recipe @@ -26,7 +26,7 @@ SECONDARY_ARCHITECTURES="x86" if [ $effectiveTargetArchitecture == x86_64 ]; then - PATCHES="haikuwebkit-1.2.5.patchset" + PATCHES="haikuwebkit-1.3.2.patchset" fi PROVIDES=" diff --git a/haiku-libs/haikuwebkit/patches/haikuwebkit-1.3.0.patchset b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.3.0.patchset new file mode 100644 index 000000000..d4c97a1f8 --- /dev/null +++ b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.3.0.patchset @@ -0,0 +1,29 @@ +From 77b90ebb44229f5e920e95d517cd153c5c3c0ce8 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 19 Mar 2014 00:52:39 +0100 +Subject: [PATCH] Fix compilation on x86_64 + +--- + Source/JavaScriptCore/offlineasm/asm.rb | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Source/JavaScriptCore/offlineasm/asm.rb b/Source/JavaScriptCore/offlineasm/asm.rb +index 8fe6228..0f5849c 100644 +--- a/Source/JavaScriptCore/offlineasm/asm.rb ++++ b/Source/JavaScriptCore/offlineasm/asm.rb +@@ -209,7 +209,11 @@ class Assembler + + def self.labelReference(labelName) + if !$emitWinAsm +- "\" LOCAL_REFERENCE(#{labelName}) \"" ++ if labelName == 'llint_throw_from_slow_path_trampoline' ++ "\" GLOBAL_REFERENCE(#{labelName}) \"" ++ else ++ "\" LOCAL_REFERENCE(#{labelName}) \"" ++ end + else + "#{labelName}" + end +-- +Jonathan + diff --git a/haiku-libs/haikuwebkit/patches/haikuwebkit-1.3.1.patchset b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.3.1.patchset new file mode 100644 index 000000000..d4c97a1f8 --- /dev/null +++ b/haiku-libs/haikuwebkit/patches/haikuwebkit-1.3.1.patchset @@ -0,0 +1,29 @@ +From 77b90ebb44229f5e920e95d517cd153c5c3c0ce8 Mon Sep 17 00:00:00 2001 +From: Jonathan Schleifer +Date: Wed, 19 Mar 2014 00:52:39 +0100 +Subject: [PATCH] Fix compilation on x86_64 + +--- + Source/JavaScriptCore/offlineasm/asm.rb | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Source/JavaScriptCore/offlineasm/asm.rb b/Source/JavaScriptCore/offlineasm/asm.rb +index 8fe6228..0f5849c 100644 +--- a/Source/JavaScriptCore/offlineasm/asm.rb ++++ b/Source/JavaScriptCore/offlineasm/asm.rb +@@ -209,7 +209,11 @@ class Assembler + + def self.labelReference(labelName) + if !$emitWinAsm +- "\" LOCAL_REFERENCE(#{labelName}) \"" ++ if labelName == 'llint_throw_from_slow_path_trampoline' ++ "\" GLOBAL_REFERENCE(#{labelName}) \"" ++ else ++ "\" LOCAL_REFERENCE(#{labelName}) \"" ++ end + else + "#{labelName}" + end +-- +Jonathan + diff --git a/haiku-libs/libprefs/libprefs-1.2.5.recipe b/haiku-libs/libprefs/libprefs-1.2.5.recipe index d6306bfb8..caca21844 100644 --- a/haiku-libs/libprefs/libprefs-1.2.5.recipe +++ b/haiku-libs/libprefs/libprefs-1.2.5.recipe @@ -33,7 +33,7 @@ BUILD_PREREQUIRES=" SOURCE_DIR="libprefs125" -PATCHES="libprefs.patch" +PATCHES="libprefs-1.2.5.patch" BUILD() { diff --git a/haiku-libs/libprefs/patches/libprefs.patch b/haiku-libs/libprefs/patches/libprefs-1.2.5.patch similarity index 100% rename from haiku-libs/libprefs/patches/libprefs.patch rename to haiku-libs/libprefs/patches/libprefs-1.2.5.patch diff --git a/media-libs/libdvdnav/libdvdnav-4.2.1.recipe b/media-libs/libdvdnav/libdvdnav-4.2.1.recipe index 3b139d378..83dd97331 100644 --- a/media-libs/libdvdnav/libdvdnav-4.2.1.recipe +++ b/media-libs/libdvdnav/libdvdnav-4.2.1.recipe @@ -14,7 +14,7 @@ REVISION="1" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 ?x86" -PATCHES="libdvdnav-4.2.0.patch" +PATCHES="libdvdnav-4.2.1.patch" PROVIDES=" libdvdnav${secondaryArchSuffix} = $portVersion diff --git a/sys-devel/llvm/llvm-3.4.1.recipe b/sys-devel/llvm/llvm-3.4.1.recipe index fedd4c33b..d8610eef2 100644 --- a/sys-devel/llvm/llvm-3.4.1.recipe +++ b/sys-devel/llvm/llvm-3.4.1.recipe @@ -70,7 +70,7 @@ BUILD_PREREQUIRES=" cmd:grep " -PATCHES="llvm-3.4.patchset" +PATCHES="llvm-3.4.1.patchset" SOURCE_DIR="$portVersionedName.src" diff --git a/sys-devel/llvm/patches/llvm-3.4.1.patchset b/sys-devel/llvm/patches/llvm-3.4.1.patchset new file mode 100644 index 000000000..9f14d94d8 --- /dev/null +++ b/sys-devel/llvm/patches/llvm-3.4.1.patchset @@ -0,0 +1,25 @@ +From 744634aa845c403f5a39b8257bbacd36dc1dd351 Mon Sep 17 00:00:00 2001 +From: Alexander von Gluck IV +Date: Wed, 22 Jan 2014 05:04:31 +0000 +Subject: [PATCH] haiku: fix Host.h for endian.h + +--- + include/llvm/Support/Host.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/llvm/Support/Host.h b/include/llvm/Support/Host.h +index 28c4cc7..ab985a4 100644 +--- a/include/llvm/Support/Host.h ++++ b/include/llvm/Support/Host.h +@@ -16,7 +16,7 @@ + + #include "llvm/ADT/StringMap.h" + +-#if defined(__linux__) || defined(__GNU__) ++#if defined(__linux__) || defined(__GNU__) || defined(__HAIKU__) + #include + #else + #if !defined(BYTE_ORDER) && !defined(LLVM_ON_WIN32) +-- +1.8.3.4 +