summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Lauer <patrick@gentoo.org>2013-12-01 06:46:14 +0000
committerPatrick Lauer <patrick@gentoo.org>2013-12-01 06:46:14 +0000
commitedafd8354d49b3e9aea62f139ec6de2abe9264ef (patch)
tree8e5ec080cf7a248e34cdacfe66d015f6bfb6e672 /dev-lang/parrot
parentChange back to virtual/libusb:0 as that is what the source explicitly checks ... (diff)
downloadhistorical-edafd8354d49b3e9aea62f139ec6de2abe9264ef.tar.gz
historical-edafd8354d49b3e9aea62f139ec6de2abe9264ef.tar.bz2
historical-edafd8354d49b3e9aea62f139ec6de2abe9264ef.zip
Bump for #492648
Package-Manager: portage-2.2.7/cvs/Linux x86_64
Diffstat (limited to 'dev-lang/parrot')
-rw-r--r--dev-lang/parrot/ChangeLog8
-rw-r--r--dev-lang/parrot/Manifest5
-rw-r--r--dev-lang/parrot/files/perldoc-5.10.patch146
-rw-r--r--dev-lang/parrot/parrot-5.10.0.ebuild86
4 files changed, 243 insertions, 2 deletions
diff --git a/dev-lang/parrot/ChangeLog b/dev-lang/parrot/ChangeLog
index e33e91aac59e..5685346aec73 100644
--- a/dev-lang/parrot/ChangeLog
+++ b/dev-lang/parrot/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-lang/parrot
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/parrot/ChangeLog,v 1.72 2013/09/24 07:45:30 patrick Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/parrot/ChangeLog,v 1.73 2013/12/01 06:46:07 patrick Exp $
+
+*parrot-5.10.0 (01 Dec 2013)
+
+ 01 Dec 2013; Patrick Lauer <patrick@gentoo.org> +files/perldoc-5.10.patch,
+ +parrot-5.10.0.ebuild:
+ Bump for #492648
24 Sep 2013; Patrick Lauer <patrick@gentoo.org> -parrot-5.4.0.ebuild,
-parrot-5.5.0.ebuild:
diff --git a/dev-lang/parrot/Manifest b/dev-lang/parrot/Manifest
index 5e7e149a5bfc..5b25a69bc802 100644
--- a/dev-lang/parrot/Manifest
+++ b/dev-lang/parrot/Manifest
@@ -1,7 +1,10 @@
+AUX perldoc-5.10.patch 4544 SHA256 e226cd502abda8d66b05cba3e5175a139522b129adcb64d1089709fcf80abbca SHA512 1b312f5420a51eb201f002a723073bf2498d9efe941ba0e824e755d2b1eee0dc97a49f0277bf45c6838942053b21dffd581bc84f61b8231de5393393a3607a24 WHIRLPOOL 04e44056ecaaa4a50babf15fe5fe1b1baa24fd0c773e1e459ef0bf39e3a0e1d70944b2d4e8858294f814571470cfd47e05a3676e9930d0163b005ad9fdf559cf
AUX perldoc.patch 1491 SHA256 ed3e385f6c57c34a828142ded341a954d9afd67270e77e2949ee0aac42d6d775 SHA512 2450d725d70dc015a64ff8fe6f2331ed019ad71a284c86e27b8a237d3063020e8c396906a8c950185beed14c14ef539997bd50fa55f97da45128f28880209bdf WHIRLPOOL 32e21a494d3c6b3a74e2e3f6496c47b25ad7839823246633b08cd9ac27dac0b29007d3e536931786a8572b0e302e733d4906cb5423b743e5980643ed76eb8df4
+DIST parrot-5.10.0.tar.gz 4595044 SHA256 417d504ccf557528d179c9f25df4f8430d5ec1e703ea63126d722452bfd38be3 SHA512 abd627545f85e42a9d20e13f73ef30595cea6ad252b1fd6d06982ec9afb0534520affc99a77bd2d648deb4090a22c818b03e30b5c5a7f99041da5b1776025f33 WHIRLPOOL 0f5b1fa6c4accea9ba6836b2be2db7478d61bf6f3f7d533e4aadb1cfc074547d08d8d506616d8f5d1216d8b2a2db92072476bd883e56eb828a8a606c6103bace
DIST parrot-5.6.0.tar.gz 4597748 SHA256 8e2d2ddaff36c2c960236c94f868f0eea28740e306345ee42df84bcd9aa146a6 SHA512 27823099bbcd75da56d7485da546f1baa6838322747c20cd79d6dce6bc32e10b0a84b299f7422031653e6a5adc04b4bda4d1f0209d45ab2ec50d55d64f82116b WHIRLPOOL 44f49a8b28451443cda75474ca17cea4075bd3c0d78a8d4caf198e3a79690c3d6271cb5c12db990df190fd5a0e6698c0da6332c55d6160cdf723947e6d2a6839
DIST parrot-5.7.0.tar.gz 4604326 SHA256 0d07c210a8b90d368cde600351173b8c90a28d376379836ba36edf83acf7a21f SHA512 6db01c4c092f64cb7dbaab99972ddcea73183bbca18a9005871992ca57035d0adca5408af944e40e84095cc35badc6ebf611177fc3d73112577a2f1b7745de75 WHIRLPOOL dac3f775d67fc4f6c3baffc0e8d5176f7466827e19b2a96e0f3ae8ac6e0ecce5de7aa66a93e0265ed8867341169f0bc332501b05bf3fa251f35be2dd2a8663e1
+EBUILD parrot-5.10.0.ebuild 2468 SHA256 5d5cb02b011af874af4884f750eae873d3ec4c8794aa3bb2575b0c5e9123e113 SHA512 6871672bde418125bfc86e34ac330a063e7764e39dedf07ba6b37c72610da5348cdbcd48a0d639add72414970e02aff2e382c8b48902124cfc699410dae4321d WHIRLPOOL 5f06f80d5a3bf086c2be730bf575ddfcefe93b88b3b106222f097274591277ffd649f3ad7e05d19d72e9b0a7371464c3995022013ab1ed2e09ea923450d392d1
EBUILD parrot-5.6.0.ebuild 2580 SHA256 3eb7e308da53c9d2d7c15f40f82fa38d977cda799a04a9bec61bb4e8bcde53bf SHA512 139e28d0741a2d8cfd09f76d3347821c404b300f5c4ea7cfa8fe95339e246457f4b062b4baafe2395b96892a67887cae4b37a1ad3b5fc954e6f5b2ea36ba4684 WHIRLPOOL 07b20b09b970eb02515c4674ddf4fdbcd75f6c7fcd6627736c5e81cb8365b2957970994411eca88a2fd928b06c33a8241f7850788aea79542e4e75ebd89efcda
EBUILD parrot-5.7.0.ebuild 2580 SHA256 f73d2ae6e4c53c79bbc6dd008b0825bc7714fad82ab7f74c3323feebf69c2685 SHA512 9c1d776acf457cc2faca02116aadbcd4b69c415976dbee1b03b25fc470c7305485c69a79a96cd90930018b6ec2a61d734c39c9eb9e48994c25d5f98e644d61a3 WHIRLPOOL 0ceef6a4ab5437c60b117a350cc028f6d6f01676d49f179e79b693bd2c5d3b484812a03280a9c88816f9c953db74c7df57d3718425c7940d37c7606726624032
-MISC ChangeLog 10182 SHA256 9e174813adcaf3b3aab0fa55ff189a26b7dabf3d4308fd0688a33841c2a2f715 SHA512 23b45101d024bacc30d5c6056af423bad65a709345fa9c1de6090d0b5caf0a607d66e0b709056c5cac376a353249965d324ee8bd21c5435e46f44e525c48412b WHIRLPOOL 4f663334be9711b88e66a37d7964a07cf5b352dd3204904dc9471fd872be286d2bc0c90cbeb60165f4bf08a44dc63bcd18331cea68ba5075af5110a442de87f3
+MISC ChangeLog 10334 SHA256 ce07e6eb47bfc9d226c5a32dc46de526c064d5e5f6d32e0ef39c065eccaef00f SHA512 0c5d4ca9b630a1090a51b545884dfd60535087518ae3997b55dd94dd2a63c83b55aac3f9b64e93e9fa0b689e89ec306a39e9070103083f7f6b468913c6ca516e WHIRLPOOL f057b8738793db592618a4e7dea10d4e58d437c237cde9338e8ae401c38a3fc324841bd875b083ae19a76f80c19c7e94ba5fe8e4ed2aba9a27cc52cae0609f30
MISC metadata.xml 157 SHA256 6a11fd41a2a210a9760849de398ef8c62cf46cc742d09b2e1781def7848fa1ec SHA512 95158d74d42674de03bc271c8dffa2264759c77681436de71fa9b3ad67f50b09394b0401e6df6dde526bc8dcd6ea666ed6767662bd63c3e92cb33b7b23e4ede8 WHIRLPOOL d3fdf14c384070120719ad4076cd04630790564f5bceda2a273e6481ea27a6fc6291e55d78cbf8bf99b73c7b42e8a1f286927c990702dceee97a63815cb33846
diff --git a/dev-lang/parrot/files/perldoc-5.10.patch b/dev-lang/parrot/files/perldoc-5.10.patch
new file mode 100644
index 000000000000..43a7fddee142
--- /dev/null
+++ b/dev-lang/parrot/files/perldoc-5.10.patch
@@ -0,0 +1,146 @@
+diff --git a/config/auto/perldoc.pm b/config/auto/perldoc.pm
+index 4d87aca..7e54156 100644
+--- a/config/auto/perldoc.pm
++++ b/config/auto/perldoc.pm
+@@ -66,24 +66,12 @@ E_NOTE
+ foreach my $ops (@ops) {
+ my $pod = $ops;
+ $pod =~ s/\.ops$/.pod/;
+- if ( $new_perldoc ) {
+- $TEMP_pod_build .= <<"END";
++ $TEMP_pod_build .= <<"END";
+ ops/$pod: ../src/ops/$ops
+-\t\$(PERLDOC) -ud ops/$pod ../src/ops/$ops
++\t\$(PODEXTRACT) ../src/ops/$ops ops/$pod
+ \t\$(CHMOD) 0644 ops/$pod
+ \t\$(ADDGENERATED) "docs/\$\@" "[doc]"
+-
+-END
+- }
+- else {
+- $TEMP_pod_build .= <<"END";
+-ops/$pod: ../src/ops/$ops
+-\t\$(PERLDOC) -u ../ops/$ops > ops/$pod
+-\t\$(CHMOD) 0644 ../ops/$pod
+-\t\$(ADDGENERATED) "docs/\$\@" "[doc]"
+-
+ END
+- }
+ }
+
+ $conf->data->set(
+diff --git a/config/gen/makefiles/docs.in b/config/gen/makefiles/docs.in
+index 3e8c74b..4e8f35d 100644
+--- a/config/gen/makefiles/docs.in
++++ b/config/gen/makefiles/docs.in
+@@ -11,6 +11,7 @@ RM_RF = @rm_rf@
+ PERLDOC = @perldoc@
+ POD2MAN = @pod2man@
+ VERSION = @VERSION@@DEVEL@
++PODEXTRACT = $(PERL) ../tools/build/podextract.pl
+ ADDGENERATED = $(PERL) ../tools/build/addgenerated.pl
+ OPS_SUMMARY = ../tools/docs/ops_summary.pl
+
+@@ -63,8 +64,7 @@ doc-prep:
+ $(TOUCH) doc-prep
+
+ packfile-c.pod: ../src/packfile/api.c
+-#IF(new_perldoc): $(PERLDOC) -ud packfile-c.pod ../src/packfile/api.c
+-#ELSE: $(PERLDOC) -u ../src/packfile/api.c > packfile-c.pod
++ $(PODEXTRACT) ../src/packfile/api.c packfile-c.pod
+ $(ADDGENERATED) "docs/$@" "[doc]"
+
+ .pod.1 : # suffix rule (limited support)
+diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in
+index c1f0c19..36e853a 100644
+--- a/config/gen/makefiles/root.in
++++ b/config/gen/makefiles/root.in
+@@ -115,6 +115,7 @@ LDFLAGS = @ldflags@ @ld_debug@
+ INNO_SETUP = iscc
+ TEMPDIR = @tempdir@
+ RPATH_BLIB = @rpath_blib@
++PODEXTRACT = $(PERL) $(BUILD_TOOLS_DIR)/podextract.pl
+ ADDGENERATED = $(PERL) $(BUILD_TOOLS_DIR)/addgenerated.pl
+ #IF(darwin):export MACOSX_DEPLOYMENT_TARGET = @osx_version@
+
+diff --git a/tools/build/podextract.pl b/tools/build/podextract.pl
+new file mode 100644
+index 0000000..0979b6b
+--- /dev/null
++++ b/tools/build/podextract.pl
+@@ -0,0 +1,75 @@
++#! perl
++
++=head1 NAME
++
++tools/build/podextract.pl
++
++=head1 DESCRIPTION
++
++Simple POD Extraction
++
++=head1 SYNOPSIS
++
++Previously:
++
++ perldoc -ud $target $source
++
++or
++
++ perldoc -u $source > $target
++
++Now:
++
++ perl podextract.pl $source $target
++
++=head1 RATIONALE
++
++C<perldoc> does many things, and is somewhat complex.
++
++For instance, normally,
++
++ perldoc perldoc
++
++Inspects various paths, and paths that are controlled by C<%ENV> to find relevant documentation for "perldoc".
++
++And because of this, it is a little security concious, and pre-emptively drops root to UID=nobody
++
++But Parrot is not using this feature of C<perldoc>
++
++Parrot is simply using C<perldoc> as a content filter to extract C<POD> from source files.
++
++And as such, it only needs the alternative function
++
++ perldoc $PATH
++
++To work, which doesn't require C<%ENV>, and additionally, dropping root to C<UID=nobody> makes it impossible
++for some parrot to invoke C<perldoc -ud $target $source> on some systems, because it drops privelages and can then no longer read C<$source>, and can no longer write C<$target>.
++
++However, some means vendor tooling that B<MUST> execute C<make install> as root, by proxy, C<MUST> invoke C<perldoc> as root, and as such, invokes the security problem, which is impossible to work around.
++
++Given a simple C<chmod> is not enough, because parent directories also are not readable or writeable by C<UID=nobody>, and additionally, vendor tooling causes fatal access violations when a process running as C<UID=nobody> even attempts to do directory lookaround ( which C<perldoc> does much of as part of C<%ENV> handling )
++
++So this tool is simple:
++
++It takes the very core utility in C<PerlDoc> that parrot needed to utilize, and calls it directly.
++
++And this avoids the misguided attempts of increasing security, which simply does nothing useful.
++
++=cut
++
++use strict;
++use warnings;
++
++if ( not $ARGV[1] ) {
++ die "pod_extract <src> <target>";
++}
++if ( not -e $ARGV[0] ) {
++ die "<src> $ARGV[0] does not exist";
++}
++require Pod::Perldoc::ToPod;
++my $parser = Pod::Perldoc::ToPod->new();
++open my $output, '>', $ARGV[1] or die "Cant write to $ARGV[1] $! $?";
++$parser->parse_from_file( $ARGV[0], $output );
++
++1
++
diff --git a/dev-lang/parrot/parrot-5.10.0.ebuild b/dev-lang/parrot/parrot-5.10.0.ebuild
new file mode 100644
index 000000000000..e4d4d38d1979
--- /dev/null
+++ b/dev-lang/parrot/parrot-5.10.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/parrot/parrot-5.10.0.ebuild,v 1.1 2013/12/01 06:46:07 patrick Exp $
+
+EAPI=3
+
+inherit eutils multilib
+
+# weird failures
+RESTRICT="test"
+
+DESCRIPTION="Virtual machine designed to efficiently compile and execute bytecode for dynamic languages"
+HOMEPAGE="http://www.parrot.org/"
+SRC_URI="ftp://ftp.parrot.org/pub/parrot/releases/devel/${PV}/${P}.tar.gz"
+
+LICENSE="Artistic-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="opengl nls doc examples gdbm gmp ssl +unicode pcre"
+
+RDEPEND="sys-libs/readline
+ opengl? ( media-libs/freeglut )
+ nls? ( sys-devel/gettext )
+ unicode? ( >=dev-libs/icu-2.6 )
+ gdbm? ( >=sys-libs/gdbm-1.8.3-r1 )
+ gmp? ( >=dev-libs/gmp-4.1.4 )
+ ssl? ( dev-libs/openssl )
+ pcre? ( dev-libs/libpcre )"
+
+DEPEND="dev-lang/perl[doc?]
+ ${RDEPEND}"
+
+src_prepare() {
+ # Fix perldoc sandbox madness
+ epatch "${FILESDIR}/perldoc-5.10.patch" || die
+}
+
+src_configure() {
+ myconf="--disable-rpath"
+ use unicode || myconf+=" --without-icu"
+ use ssl || myconf+=" --without-crypto"
+ use gdbm || myconf+=" --without-gdbm"
+ use nls || myconf+=" --without-gettext"
+ use gmp || myconf+=" --without-gmp"
+ use opengl || myconf+=" --without-opengl"
+ use pcre || myconf+=" --without-pcre"
+
+ perl Configure.pl \
+ --ccflags="${CFLAGS}" \
+ --linkflags="${LDFLAGS}" \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}"/usr/$(get_libdir) \
+ --mandir="${EPREFIX}"/usr/share/man \
+ --sysconfdir="${EPREFIX}"/etc \
+ --sharedstatedir="${EPREFIX}"/var/lib/parrot \
+ $myconf || die
+}
+
+src_compile() {
+ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"${S}"/blib/lib
+ # occasionally dies in parallel make
+ emake -j1 || die
+ if use doc ; then
+ emake -j1 html || die
+ fi
+}
+
+src_test() {
+ emake -j1 test || die
+}
+
+src_install() {
+ emake -j1 install-dev DESTDIR="${D}" DOC_DIR="${EPREFIX}/usr/share/doc/${PF}" || die
+ dodoc CREDITS DONORS.pod PBC_COMPAT PLATFORMS RESPONSIBLE_PARTIES TODO || die
+ if use examples; then
+ insinto "/usr/share/doc/${PF}/examples"
+ doins -r examples/* || die
+ fi
+ if use doc; then
+ insinto "/usr/share/doc/${PF}/editor"
+ doins -r editor || die
+ cd docs/html
+ dohtml -r developer.html DONORS.pod.html index.html ops.html parrotbug.html pdds.html \
+ pmc.html tools.html docs src tools || die
+ fi
+}