Wed Oct 21 14:23:14 2009 UTC ()
Update parrot from version 1.6.0 to 1.6.0nb1.

Pkgsrc changes:
 o Enable shared libraries for NetBSD, and deal with the resulting
   fallout: tests which are written in C need to point their run-path
   to the build version of the shared libraries.
 o The default is shared libs with .so, except for on Darwin, where
   shared libs are named differently.  The Darwin part is untested.


(he)
diff -r1.22 -r1.23 pkgsrc/lang/parrot/Makefile
diff -r1.16 -r1.17 pkgsrc/lang/parrot/distinfo
diff -r0 -r1.3 pkgsrc/lang/parrot/patches/patch-af
diff -r0 -r1.3 pkgsrc/lang/parrot/patches/patch-ag
diff -r0 -r1.1 pkgsrc/lang/parrot/patches/patch-ai
diff -r0 -r1.1 pkgsrc/lang/parrot/patches/patch-aj

cvs diff -r1.22 -r1.23 pkgsrc/lang/parrot/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/parrot/Makefile 2009/09/20 10:57:04 1.22
+++ pkgsrc/lang/parrot/Makefile 2009/10/21 14:23:13 1.23
@@ -1,17 +1,18 @@ @@ -1,17 +1,18 @@
1# $NetBSD: Makefile,v 1.22 2009/09/20 10:57:04 he Exp $ 1# $NetBSD: Makefile,v 1.23 2009/10/21 14:23:13 he Exp $
2# 2#
3 3
4VERSION= 1.6.0 4VERSION= 1.6.0
 5PKGREVISION= 1
5RTYPE= devel 6RTYPE= devel
6DISTNAME= parrot-${VERSION} 7DISTNAME= parrot-${VERSION}
7CATEGORIES= lang 8CATEGORIES= lang
8MASTER_SITES= ftp://ftp.parrot.org/pub/parrot/releases/${RTYPE}/${VERSION}/ 9MASTER_SITES= ftp://ftp.parrot.org/pub/parrot/releases/${RTYPE}/${VERSION}/
9 10
10MAINTAINER= he@NetBSD.org 11MAINTAINER= he@NetBSD.org
11HOMEPAGE= http://www.parrotcode.org/ 12HOMEPAGE= http://www.parrotcode.org/
12COMMENT= Virtual machine made to run Perl 6 and other languages 13COMMENT= Virtual machine made to run Perl 6 and other languages
13LICENSE= artistic-2.0 14LICENSE= artistic-2.0
14 15
15PKG_DESTDIR_SUPPORT= user-destdir 16PKG_DESTDIR_SUPPORT= user-destdir
16USE_LANGUAGES= c c++ 17USE_LANGUAGES= c c++
17USE_TOOLS+= perl 18USE_TOOLS+= perl
@@ -28,18 +29,27 @@ CONFIGURE_SCRIPT= Configure.pl @@ -28,18 +29,27 @@ CONFIGURE_SCRIPT= Configure.pl
28CONFIGURE_ARGS+= --prefix=${PREFIX:Q} \ 29CONFIGURE_ARGS+= --prefix=${PREFIX:Q} \
29 --icu-config=${PREFIX}/bin/icu-config 30 --icu-config=${PREFIX}/bin/icu-config
30 31
31SUBST_CLASSES+= pthread 32SUBST_CLASSES+= pthread
32SUBST_STAGE.pthread= post-configure 33SUBST_STAGE.pthread= post-configure
33SUBST_FILES.pthread= Makefile 34SUBST_FILES.pthread= Makefile
34SUBST_SED.pthread= -e 's|-pthread||g' 35SUBST_SED.pthread= -e 's|-pthread||g'
35SUBST_SED.pthread+= -e 's|-lpthread||g' 36SUBST_SED.pthread+= -e 's|-lpthread||g'
36SUBST_SED.pthread+= -e 's|-lc_r||g' 37SUBST_SED.pthread+= -e 's|-lc_r||g'
37SUBST_SED.pthread+= -e '/^CFLAGS /s|$$|${PTHREAD_CFLAGS:Q}|' 38SUBST_SED.pthread+= -e '/^CFLAGS /s|$$|${PTHREAD_CFLAGS:Q}|'
38SUBST_SED.pthread+= -e '/^LINKFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|' 39SUBST_SED.pthread+= -e '/^LINKFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|'
39SUBST_SED.pthread+= -e '/^LDFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|' 40SUBST_SED.pthread+= -e '/^LDFLAGS /s|$$|${PTHREAD_LDFLAGS:Q} ${PTHREAD_LIBS:Q}|'
40 41
 42PLIST_SUBST+= VERSION=${VERSION:Q}
 43PLIST_SRC+= ${PLIST_SRC_DFLT}
 44# Default this to ELF shared libs with .so,
 45# Darwin has PLIST.Darwin which gets included automatically.
 46.if (${OPSYS} != "Darwin")
 47PLIST_SRC+= PLIST.shared
 48.endif
 49
 50
41pre-install: 51pre-install:
42 ${CHMOD} -R g-w ${WRKSRC} 52 ${CHMOD} -R g-w ${WRKSRC}
43 53
44.include "../../textproc/icu/buildlink3.mk" 54.include "../../textproc/icu/buildlink3.mk"
45.include "../../mk/bsd.pkg.mk" 55.include "../../mk/bsd.pkg.mk"

cvs diff -r1.16 -r1.17 pkgsrc/lang/parrot/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/parrot/distinfo 2009/09/20 10:57:04 1.16
+++ pkgsrc/lang/parrot/distinfo 2009/10/21 14:23:13 1.17
@@ -1,7 +1,11 @@ @@ -1,7 +1,11 @@
1$NetBSD: distinfo,v 1.16 2009/09/20 10:57:04 he Exp $ 1$NetBSD: distinfo,v 1.17 2009/10/21 14:23:13 he Exp $
2 2
3SHA1 (parrot-1.6.0.tar.gz) = 2258c3a0da32ed8c1ce55ee460e81a841d06a2c1 3SHA1 (parrot-1.6.0.tar.gz) = 2258c3a0da32ed8c1ce55ee460e81a841d06a2c1
4RMD160 (parrot-1.6.0.tar.gz) = ca5907643a9e972971daac51afd1b95a30103fa5 4RMD160 (parrot-1.6.0.tar.gz) = ca5907643a9e972971daac51afd1b95a30103fa5
5Size (parrot-1.6.0.tar.gz) = 3977952 bytes 5Size (parrot-1.6.0.tar.gz) = 3977952 bytes
6SHA1 (patch-ad) = 9002a7ca55f8f960bea669e383431b3eeb83a878 6SHA1 (patch-ad) = 9002a7ca55f8f960bea669e383431b3eeb83a878
7SHA1 (patch-ae) = 72e4752112dab2f0b72ede5c45b77fd5b5554606 7SHA1 (patch-ae) = 72e4752112dab2f0b72ede5c45b77fd5b5554606
 8SHA1 (patch-af) = f2d67ac311aec9960a47b54eacdc8b72e83521eb
 9SHA1 (patch-ag) = 7a43d15e4e6fb76d4c4619affee4c3c8e0dd3444
 10SHA1 (patch-ai) = 97c3fbff3b7868a07f76a40fa2651b9b737ff148
 11SHA1 (patch-aj) = df1d64aa5a3b5f3ed7389a72a855baa14dc7df38

File Added: pkgsrc/lang/parrot/patches/Attic/patch-af
$NetBSD: patch-af,v 1.3 2009/10/21 14:23:13 he Exp $

Enable shared libraries on NetBSD.

--- config/init/hints/netbsd.pm	(revision 41959)
+++ config/init/hints/netbsd.pm	(working copy)
@@ -9,6 +9,9 @@
 sub runstep {
     my ( $self, $conf ) = @_;
 
+    my $share_ext = $conf->option_or_data('share_ext');
+    my $version   = $conf->option_or_data('VERSION');
+
     my $ccflags = $conf->data->get('ccflags');
     if ( $ccflags !~ /-pthread\b/ ) {
         $ccflags .= ' -pthread';
@@ -19,7 +22,16 @@
     if ( $libs !~ /-lpthread\b/ ) {
         $libs .= ' -lpthread';
     }
-    $conf->data->set( libs => $libs );
+    $conf->data->set(
+	libs => $libs,
+	rpath => '-Wl,-R',
+
+	has_dynamic_linking    => 1,
+	parrot_is_shared       => 1,
+	libparrot_shared       => "libparrot$share_ext.$version",
+	libparrot_shared_alias => "libparrot$share_ext",
+	libparrot_soname       => "-Wl,-soname=libparrot$share_ext.$version",
+    );
 }
 
 1;

File Added: pkgsrc/lang/parrot/patches/Attic/patch-ag
$NetBSD: patch-ag,v 1.3 2009/10/21 14:23:13 he Exp $

This test now works in NetBSD, after we properly selected the libm
variant in the platform startup code.

--- t/op/trans.t	(revision 41959)
+++ t/op/trans.t	(working copy)
@@ -387,9 +387,6 @@
 ok 16
 OUTPUT
 
-TODO: {
-local $TODO = 'fails on netbsd' if $^O =~ /netbsd/;
-
 pasm_output_is( <<"CODE", <<'OUTPUT', 'atan, part 2' );
         .include 'fp_equality.pasm'
         atan N4, -0.0, -0.0
@@ -402,8 +399,6 @@
 ok 1
 OUTPUT
 
-}
-
 pasm_output_is( <<"CODE", <<OUTPUT, "log2" );
         .include 'fp_equality.pasm'
         set N1, 10.0

File Added: pkgsrc/lang/parrot/patches/Attic/patch-ai
$NetBSD: patch-ai,v 1.1 2009/10/21 14:23:13 he Exp $

I beleive this test works for all relevant pkgsrc platforms.
It has been similarly transformed upstream after 1.7.0 was released.

--- t/op/io.t.orig	2008-12-18 06:19:20.000000000 +0100
+++ t/op/io.t
@@ -51,28 +51,9 @@ Tests various io opcodes.
     ok(1, 'open with null mode')
 .end
 
-.sub 'tt661_todo_test' :anon
-    # Checks whether the platform is linux, MSWin32, darwin: on other
-    # platforms, the following tests are todo'ed.
-    .include 'sysinfo.pasm'
-    $S0 = sysinfo .SYSINFO_PARROT_OS
-    if $S0 == 'linux' goto tt661_ok
-    if $S0 == 'MSWin32' goto tt661_ok
-    if $S0 == 'darwin' goto tt661_ok
-    if $S0 == 'openbsd' goto tt661_ok
-
-    .return (0)
-
-  tt661_ok:
-    .return (1)
-.end
-
 .include 'iglobals.pasm'
 
 .sub 'open_pipe_for_reading'
-    $I0 = tt661_todo_test()
-    unless $I0 goto open_pipe_for_reading_todoed
-
     .local pmc interp
     interp = getinterp
 
@@ -103,15 +84,9 @@ Tests various io opcodes.
   open_pipe_for_reading_failed:
     nok(1, 'open pipe for reading')
     .return ()
-
-  open_pipe_for_reading_todoed:
-    todo(1, 'Unimplemented in this platform, TT #661')
 .end
 
 .sub 'open_pipe_for_writing'
-    $I0 = tt661_todo_test()
-    unless $I0 goto open_pipe_for_writing_todoed
-
     .local pmc interp
     interp = getinterp
 
@@ -144,9 +119,6 @@ Tests various io opcodes.
   open_pipe_for_writing_failed:
     nok(1, 'open pipe for writing')
     .return ()
-
-  open_pipe_for_writing_todoed:
-    todo(1, 'Unimplemented in this platform, TT #661')
 .end
 
 # Local Variables:

File Added: pkgsrc/lang/parrot/patches/Attic/patch-aj
$NetBSD: patch-aj,v 1.1 2009/10/21 14:23:13 he Exp $

Make sure to use rpath if it's defined when linking C-language tests.

--- lib/Parrot/Test.pm.orig	2009-10-20 03:09:41.000000000 +0200
+++ lib/Parrot/Test.pm
@@ -1045,6 +1045,10 @@ sub _generate_test_functions {
                     . "$PConfig{ld_out}$exe_f "
                     . "$obj_f $cfg "
                     . "$PConfig{libparrot_linkflags} "
+		    # If rpath is defined (and therefore rpath_blib), use it to get at the build libraries
+		    . ( defined($PConfig{rpath_blib})
+			? (  $PConfig{rpath_blib} . " " )
+			: "" )
                     . "$PConfig{linkflags} $PConfig{ld_debug} "
                     . "$iculibs $PConfig{libs}";
                 my $exit_code = run_command(