From 96600cecff618ba7a2c6bc39590a69edc5f009e7 Mon Sep 17 00:00:00 2001 From: "Marshall Brewer (Gentoo Key)" Date: Fri, 22 Apr 2016 22:21:49 +0200 Subject: [PATCH 4/4] dev-lang/rakudo: revbump to 2016.04 make rakudo compile for MoarVM with some ugly hacks. and I do mean ugly. goddammit upstream, get your shit in order! Package-Manager: portage-2.2.28 --- dev-lang/rakudo/Manifest | 1 + .../rakudo/files/rakudo-2016.03-Makefile.in.patch | 17 +++++ dev-lang/rakudo/metadata.xml | 8 ++- dev-lang/rakudo/rakudo-2016.04.ebuild | 75 ++++++++++++++++++++++ 4 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 dev-lang/rakudo/files/rakudo-2016.03-Makefile.in.patch create mode 100644 dev-lang/rakudo/rakudo-2016.04.ebuild diff --git a/dev-lang/rakudo/Manifest b/dev-lang/rakudo/Manifest index b19f9e9..0738835 100644 --- a/dev-lang/rakudo/Manifest +++ b/dev-lang/rakudo/Manifest @@ -1,3 +1,4 @@ DIST rakudo-2016.01.1.tar.gz 2687265 SHA256 897d01bcb27c209bd51918bb5be6adc6e6ea9dbc2c6b65414f9ac081aa8c5d7b SHA512 31228d49577f5d25b306a987650af0ae11bb2fa80fcaeee421dbe88dc9812edd5a399999f8727dee11d74177b7b9bca0290e26c4240c7baed35fabb4c912f85f WHIRLPOOL 52b2d7d1a0461883b1d07bbb492994f7eb8930a8726565d9a4788883e16510fc052dc066bf8443e09042548d76a3f3ca1cb17be8baa23b16f5742eb52f33c39b DIST rakudo-2016.02.tar.gz 2691766 SHA256 8ccfbf24f49bf4f5aa0304ffa69abbd90b97dc59f2c65e2384c6b609e3d3f00a SHA512 9fa891a84e882626050772231dee15ad20f1c2d84b5b9ff985964efbff45f18e0a1940dad2cc1fbb8b91f69d9f7f2a3034998819e8ddbf0c380684b326d299ca WHIRLPOOL 2a55ec29df905ec79fee842f84394ac8733d1b116fc90c29a06e8953a77b15bfc193d974a804f99d41ee0b9fce87d4b07ff6e367f03243d08d03f20340fe766e DIST rakudo-2016.03.tar.gz 2702229 SHA256 d77b58acb09f34c99af94f32db92698df88cda7015c7630ddb1392adbf703471 SHA512 53619288655edf72f986cb5fe7b72cd70ed88a6b18421d46d5d70a8932ca22eb1067be5ddf98264e576f7d81a84d9bbaca2ac5ac3241e582d2f4672589ba7ab1 WHIRLPOOL 43696dda25214aa9e30be7c1c3323dee8ea0f1c50a5754ca2a08d421b4c59cac5001fa4a63d8086ce0cb97801eb098d4e854ca4b801eaf7d277099bf6d86b655 +DIST rakudo-2016.04.tar.gz 2706659 SHA256 207d723c9b2d524daf6008a3ed026ea06773d937e76e0fe79b89bfb7dcd0d92b SHA512 08e718643cfa89edbb8995ab9f350f69053e41cff97b33530dd2eb202d2ab2116d219ef1385717b48f5883665c73a181b1b054c1300db302fba31c6081e97532 WHIRLPOOL d49791b696114f57b685221be5cfe1873a88507810819b2a9aace07da2c2d7535eeaecc6c830df3265ecd1ff352effa509cbb3f24cba7e8afc0dc1468553cce6 diff --git a/dev-lang/rakudo/files/rakudo-2016.03-Makefile.in.patch b/dev-lang/rakudo/files/rakudo-2016.03-Makefile.in.patch new file mode 100644 index 0000000..adafa0d --- /dev/null +++ b/dev-lang/rakudo/files/rakudo-2016.03-Makefile.in.patch @@ -0,0 +1,17 @@ +diff -Naur a/tools/build/Makefile-Moar.in b/tools/build/Makefile-Moar.in +--- a/tools/build/Makefile-Moar.in 2016-02-02 14:27:13.000000000 +0100 ++++ b/tools/build/Makefile-Moar.in 2016-04-22 15:01:35.338534944 +0200 +@@ -87,11 +87,11 @@ + $(M_CC) @moar::ccswitch@ @moar::ccshared@ $(M_CFLAGS) -I$(PREFIX)/include/libatomic_ops \ + -I$(PREFIX)/include/dyncall -I$(PREFIX)/include/moar \ + -I$(PREFIX)/include/sha1 -I$(PREFIX)/include/tinymt -I$(PREFIX)/include/libtommath \ +- -I$(PREFIX)/include/libuv -I$(PREFIX)/include @moar::ccout@$(M_PERL6_OPS_OBJ) $(M_PERL6_OPS_SRC) ++ -I$(PREFIX)/include/libuv -I$(PREFIX)/include @moar::cincludes@ @moar::ccout@$(M_PERL6_OPS_OBJ) $(M_PERL6_OPS_SRC) + $(M_CC) @moar::ccswitch@ @moar::ccshared@ $(M_CFLAGS) -I$(PREFIX)/include/libatomic_ops \ + -I$(PREFIX)/include/dyncall -I$(PREFIX)/include/moar \ + -I$(PREFIX)/include/sha1 -I$(PREFIX)/include/tinymt -I$(PREFIX)/include/libtommath \ +- -I$(PREFIX)/include/libuv -I$(PREFIX)/include @moar::ccout@$(M_PERL6_CONT_OBJ) $(M_PERL6_CONT_SRC) ++ -I$(PREFIX)/include/libuv -I$(PREFIX)/include @moar::cincludes@ @moar::ccout@$(M_PERL6_CONT_OBJ) $(M_PERL6_CONT_SRC) + $(M_LD) @moar::ldswitch@ -L@moar::libdir@ @moar::ldshared@ $(M_LDFLAGS) @moar::ldout@$(M_PERL6_OPS_DLL) $(M_PERL6_OPS_OBJ) $(M_PERL6_CONT_OBJ) -lmoar @moarimplib@ + + $(PERL6_ML_MOAR): src/Perl6/ModuleLoader.nqp src/vm/moar/ModuleLoaderVMConfig.nqp diff --git a/dev-lang/rakudo/metadata.xml b/dev-lang/rakudo/metadata.xml index 5a5e997..eb9eaa1 100644 --- a/dev-lang/rakudo/metadata.xml +++ b/dev-lang/rakudo/metadata.xml @@ -5,8 +5,12 @@ patrick@gentoo.org Patrick Lauer - + perl@gentoo.org Gentoo Perl Project - + + + Use Clang to compile the MoarVM backend + Use the MoarVM as backend + diff --git a/dev-lang/rakudo/rakudo-2016.04.ebuild b/dev-lang/rakudo/rakudo-2016.04.ebuild new file mode 100644 index 0000000..09657fe --- /dev/null +++ b/dev-lang/rakudo/rakudo-2016.04.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit java-pkg-2 + +DESCRIPTION="A compiler for the Perl 6 programming language" +HOMEPAGE="http://rakudo.org" + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/rakudo/${PN}.git" + inherit git-r3 +else + SRC_URI="${HOMEPAGE}/downloads/${PN}/${P}.tar.gz" +fi + +LICENSE="Artistic-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +# TODO: add USE="javascript" once that's usable in nqp +IUSE="java moar test" + +RDEPEND="=dev-lang/nqp-${PV}:=[java=,moar=]" +DEPEND="${RDEPEND} + >=dev-lang/perl-5.10" + +REQUIRED_USE="|| ( java moar )" +PATCHES=( "${FILESDIR}/${PN}-2016.03-Makefile.in.patch" ) + +pkg_setup() { + use java && java-pkg-2_pkg_setup +} + +src_prepare() { + eapply "${PATCHES[@]}" + + # yup, this is ugly. but emake doesn't respect DESTDIR. + for i in Moar JVM; do + echo "DESTDIR = ${D}" > "${T}/Makefile-${i}.in" || die + cat "${S}/tools/build/Makefile-${i}.in" >> "${T}/Makefile-${i}.in" || die + mv "${T}/Makefile-${i}.in" "${S}/tools/build/Makefile-${i}.in" || die + done + + eapply_user + use java && java-pkg-2_src_prepare +} + +src_configure() { + local backends + use java && backends+="jvm," + use moar && backends+="moar," + local myargs=( "--prefix=/usr" + "--sysroot=/" + "--sdkroot=/" + "--make-install" + "--sdkroot=/" + "--backends=${backends}" + ) + perl Configure.pl "${myargs[@]}" +} + +src_compile() { + emake DESTDIR="${D}" +} + +src_test() { + export RAKUDO_PRECOMP_PREFIX=$(mktemp -d) + default +} + +src_install() { + emake DESTDIR="${D}" install +} -- 2.8.1