summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authortron <tron@pkgsrc.org>2009-04-16 21:56:13 +0000
committertron <tron@pkgsrc.org>2009-04-16 21:56:13 +0000
commite2abe52834d0e9aa4d57ac754f100861a4fa39c1 (patch)
tree299a8821e2257114ac45ad824708da7e75128948 /lang
parent244c160149c61f5ae67a19539ae7672b15b0022d (diff)
downloadpkgsrc-e2abe52834d0e9aa4d57ac754f100861a4fa39c1.tar.gz
Pullup ticket #2739 - requested by he
parrot: build fix Revisions pulled up: - lang/parrot/distinfo 1.8 - lang/parrot/patches/patch-ad 1.3 - lang/parrot/patches/patch-ae 1.1 --- Module Name: pkgsrc Committed By: he Date: Tue Apr 14 23:50:20 UTC 2009 Modified Files: pkgsrc/lang/parrot: distinfo Added Files: pkgsrc/lang/parrot/patches: patch-ad patch-ae Log Message: Fix the detection and use of perldoc, so that this package can be fully built and installed when the build is run as root. The reason this is problematical is that perldoc changes uid if run as root, to either 'nobody', 'nouser' or uid -2, for security reasons, and then cannot write files owned by root or create files in directories owned by root with 'normal' permissions. No revision bump as this should purely be a build fix.
Diffstat (limited to 'lang')
-rw-r--r--lang/parrot/distinfo4
-rw-r--r--lang/parrot/patches/patch-ad29
-rw-r--r--lang/parrot/patches/patch-ae15
3 files changed, 47 insertions, 1 deletions
diff --git a/lang/parrot/distinfo b/lang/parrot/distinfo
index a4f2a6ebfd1..509fce24ee0 100644
--- a/lang/parrot/distinfo
+++ b/lang/parrot/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.7 2009/03/25 23:01:48 he Exp $
+$NetBSD: distinfo,v 1.7.2.1 2009/04/16 21:56:13 tron Exp $
SHA1 (parrot-1.0.0.tar.gz) = 9e028f5fff38a332c13ad4389652a016d7a824f7
RMD160 (parrot-1.0.0.tar.gz) = 46f60accd33f16cc910f4ea03840badc358d22c7
@@ -6,3 +6,5 @@ Size (parrot-1.0.0.tar.gz) = 3908888 bytes
SHA1 (patch-aa) = b3ad6ae9acbd8f25682395933fe48209b50a9752
SHA1 (patch-ab) = 4ecbae193b0bfe47daa8d4dd69468d298137c03a
SHA1 (patch-ac) = 5e2875b46aa390fc512bf22001146a4a470ae192
+SHA1 (patch-ad) = 9002a7ca55f8f960bea669e383431b3eeb83a878
+SHA1 (patch-ae) = 72e4752112dab2f0b72ede5c45b77fd5b5554606
diff --git a/lang/parrot/patches/patch-ad b/lang/parrot/patches/patch-ad
new file mode 100644
index 00000000000..13da574d0c4
--- /dev/null
+++ b/lang/parrot/patches/patch-ad
@@ -0,0 +1,29 @@
+$NetBSD: patch-ad,v 1.3.2.2 2009/04/16 21:56:14 tron Exp $
+
+Allow parrot to detect perldoc when run as root. Perldoc changes
+uid to 'nobody', 'nouser' or uid -2 when run as root, so it won't
+be able to write files created by root with mode 0600 (or create new
+files in directories owned by root mode 0755).
+
+--- config/auto/perldoc.pm.orig 2009-03-08 21:32:47.000000000 +0100
++++ config/auto/perldoc.pm
+@@ -38,7 +38,9 @@ sub runstep {
+
+ my $cmd = $conf->data->get_p5('scriptdirexp') . q{/perldoc};
+ my ( $fh, $filename ) = tempfile( UNLINK => 1 );
+- my $content = capture_output("$cmd -ud $filename perldoc") || undef;
++ my($stdout, $stderr, $retval) =
++ capture_output("$cmd -u perldoc > $filename");
++ my($content) = $retval ? undef : $stderr;
+
+ return 1 unless defined( $self->_initial_content_check($conf, $content) );
+
+@@ -68,7 +70,7 @@ E_NOTE
+ if ( $new_perldoc ) {
+ $TEMP_pod_build .= <<"END"
+ ops$slash$pod: ..${slash}src${slash}ops${slash}$ops
+-\t\$(PERLDOC) -ud ops${slash}$pod ..${slash}src${slash}ops${slash}$ops
++\t\$(PERLDOC) -u ..${slash}src${slash}ops${slash}$ops > ops${slash}$pod
+ \t\$(CHMOD) 0644 ops${slash}$pod
+
+ END
diff --git a/lang/parrot/patches/patch-ae b/lang/parrot/patches/patch-ae
new file mode 100644
index 00000000000..75be58fbcdb
--- /dev/null
+++ b/lang/parrot/patches/patch-ae
@@ -0,0 +1,15 @@
+$NetBSD: patch-ae,v 1.1.2.2 2009/04/16 21:56:14 tron Exp $
+
+Perldoc's -d is incompatible with doing the build as root.
+
+--- config/gen/makefiles/docs.in.orig 2009-03-09 05:41:01.000000000 +0100
++++ config/gen/makefiles/docs.in
+@@ -37,7 +37,7 @@ doc-prep:
+ $(MKPATH) ops
+
+ packfile-c.pod: ../src/packfile.c
+-#IF(new_perldoc): $(PERLDOC) -ud packfile-c.pod ../src/packfile.c
++#IF(new_perldoc): $(PERLDOC) -u ../src/packfile.c > packfile-c.pod
+ #ELSE: $(PERLDOC) -u ../src/packfile.c > packfile-c.pod
+
+ clean: