diff options
author | 2017-08-19 16:08:23 +0100 | |
---|---|---|
committer | 2017-08-19 16:11:51 +0100 | |
commit | 6fbf02ba1f3ae873821c599fd5f9cd03add570d2 (patch) | |
tree | f1135d3e4cd5f598c8b46bdbb4bf27177ac7ecae /dev-perl | |
parent | Update net-misc/memcached-1.4.39 (diff) | |
download | srcshelton-6fbf02ba1f3ae873821c599fd5f9cd03add570d2.tar.gz srcshelton-6fbf02ba1f3ae873821c599fd5f9cd03add570d2.tar.bz2 srcshelton-6fbf02ba1f3ae873821c599fd5f9cd03add570d2.zip |
Add dev-perl/Math-Pari-2.10.809.0
Diffstat (limited to 'dev-perl')
-rw-r--r-- | dev-perl/Math-Pari/Manifest | 5 | ||||
-rw-r--r-- | dev-perl/Math-Pari/Math-Pari-2.10.809.0.ebuild | 97 | ||||
-rw-r--r-- | dev-perl/Math-Pari/files/Math-Pari-2.10.809.0-no-dot-inc.patch | 31 | ||||
-rw-r--r-- | dev-perl/Math-Pari/files/no-flto.patch | 74 | ||||
-rw-r--r-- | dev-perl/Math-Pari/files/pari-2.3.5-no-dot-inc.patch | 61 |
5 files changed, 268 insertions, 0 deletions
diff --git a/dev-perl/Math-Pari/Manifest b/dev-perl/Math-Pari/Manifest index 04b2dc4c..7d1b7951 100644 --- a/dev-perl/Math-Pari/Manifest +++ b/dev-perl/Math-Pari/Manifest @@ -1,3 +1,8 @@ +AUX Math-Pari-2.10.809.0-no-dot-inc.patch 1012 SHA256 e0d9db431f961c7465be91cfd145003f7c4786d72ae3c999b101631d9547008e SHA512 6446ed3d58a522cb083c0b463e2f047295b43717bbcf2e8a0b59c9a11503f6ede09059798c1caf4816cade812c83dfa4ce1c83e1fbeb4c1ae19b754f70da52f7 WHIRLPOOL 64f8ed6d3579122f7ff3126ab111b06f8438f6aed85692c2ef54f12dfdb5ed53e528247cb356ef3fe958d773023daf2bb0ad3cc1b042e61b256f5fd2a8b483ce +AUX no-flto.patch 2946 SHA256 7836fe2933058cabac61237c9b9308350552960774a6c2e27cc3bf6007b8c0b4 SHA512 610cfaef1f9d9117872fb4275626ab0263754dc2d3688f198291b4fe625bae1b7ffa1c42f644d7a37bce294fd3a31d8be2306d55613b7831d22aa1d84d31ff73 WHIRLPOOL 991e1af4caa089ce61c49f5a30ab81216ab5ba1377fa08ad4c6fe54bc7c4e141d0ee75fe363e7e876124addcea0330b7b9d03fd1d0317b507aa7fdccf501b5ee +AUX pari-2.3.5-no-dot-inc.patch 1594 SHA256 1d1ba8e9a577c31046485c797135eec6b6a804f2a6b22b78becc02d57147cc6b SHA512 4f3e7757c5fa564ea05b843e74118086fb22d8602bf29964aa3be886263941434bc1b7121805c5efafb64c208c2fe181da4831c6d662bda8d1a04cd5d9704605 WHIRLPOOL 1dd30c1a91d9108c0d16560d79cec39dcc909c00b8673739504ac9800edd24338b5365eeb867b5ccd23e7b236a31b031400a09ef7be480f4d7b4bcede00b498d DIST Math-Pari-2.01080605.tar.gz 122627 SHA256 eed553dc838973566c23b77cc30c9130802ba502e6a33969e25183bc5831ca46 SHA512 a92ff01afce8d52c5d7c4fec1a5759b5d7b786c8f359348ac8f4e7fc95be9338b990879d4d89598dc5333f79c53a92e54f6756d0e6c9a0e9e72a4dfd15b0b263 WHIRLPOOL 7e8ecc1329750019a65819af07fe3170af511a90fcae17464163bac4654d475048ad423b1f37f06d4e11e5ff1a7b803c9fe4e298ba1b39a46700efb3609385d6 +DIST Math-Pari-2.01080900.zip 166396 SHA256 5845d9350fe0cd9d909d71b6d6b88ab67d17da88f4b0df6570938583d6f365fc SHA512 844324472632081e16d8c70e2f3b14a04cc125dc65ac1e4e75b495f7b83393cadc637c6b81d2e6657380b153a6d91eba4a437087481ffbd4c6c58c5da0e4d05b WHIRLPOOL 89fbb7e774cc7e94335f588b1a2045bda257204424fbd16186f8e4bccbf3ce52e0e43ef397b698776d369adfc883d71b4c07f7f72ff4ec0b1c1dafda9a6c6742 DIST pari-2.3.5.tar.gz 2018097 SHA256 47ddae1af73b4476660d2a89338483949067a97ffb8758c82e8189dfa4c89d88 SHA512 0e49e6310b4c76ef3370786a13aa8cbc5bb0b7dc84ec1665866d623e6284f45db8584eea759e8b5954dc9b5c8a3e866e77a377d18073ed33f11708a7e88a4cca WHIRLPOOL 1d7f3fcfb5c4b44479ea7494536bcb7c971df721a23bca9f7bdee878cc91c5beec5353920d352142534e89bb0158bfd8ad9a431a22c90fc577676e3f8ceb8b9b EBUILD Math-Pari-2.10.806.50-r1.ebuild 3248 SHA256 0f936a84b25156ecc15fb204e982729a92dc3cb0780d8238bab76630ec5f45d9 SHA512 1dd12ba2c34804d03bce2e465f9c174946e5d5f7dce9ab5691bcecba06cb459e2306467cf85130c03ceb717b4b07935384fc4f0f2ab4a47477836b4f6d44d84b WHIRLPOOL 741843e3f59c73c8bcfa5a99aaae20ea6325414344c2f24e3d7328f609c80a4ba0abd0ea7d789d24e7edfc34bce7f4e382c195b887c8e65f3d000cf95c1e33e3 +EBUILD Math-Pari-2.10.809.0.ebuild 3355 SHA256 fab28c12147006b91d22a5f1d89be79519df7e82080c4fed39449485a9ac330b SHA512 a23633c76706c0327994955e49af89ecce57cce407c89e2fb6af47cdbea45b6ef831ebe440b53e8c5f3a48ecfc360434807c93922fda50b612f403069de727ac WHIRLPOOL cebcd78c5880fef64536756e9cfb3e4a7abe2c967b672c7cad16bf47a0e350172b15ccfe317e9ef3aa611cbccd41edce5e55081df4034a2b37944a49fdd06670 diff --git a/dev-perl/Math-Pari/Math-Pari-2.10.809.0.ebuild b/dev-perl/Math-Pari/Math-Pari-2.10.809.0.ebuild new file mode 100644 index 00000000..d985de28 --- /dev/null +++ b/dev-perl/Math-Pari/Math-Pari-2.10.809.0.ebuild @@ -0,0 +1,97 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +DIST_AUTHOR=ILYAZ +DIST_SECTION=modules +DIST_VERSION=2.01080900 +DIST_A_EXT=zip +inherit perl-module toolchain-funcs + +PARI_VER=2.3.5 + +DESCRIPTION="Perl interface to PARI" +SRC_URI="${SRC_URI} + http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-${PARI_VER}.tar.gz" + +SLOT="0" +KEYWORDS="alpha amd64 ~hppa ~mips ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +IUSE="abi_x86_x32 elibc_glibc" + +# Math::Pari requires that a copy of the pari source in a parallel +# directory to where you build it. It does not need to compile it, but +# it does need to be the same version as is installed, hence the hard +# DEPEND below +RDEPEND="~sci-mathematics/pari-${PARI_VER}" +DEPEND="${RDEPEND} + app-arch/unzip +" + +S_PARI=${WORKDIR}/pari-${PARI_VER} + +PATCHES=( + "${FILESDIR}/no-flto.patch" + "${FILESDIR}/${P}-no-dot-inc.patch" +) +src_prepare() { + # On 64-bit hardware, these files are needed in both the 64/ and 32/ + # directories for the testsuite to pass. + cd "${S_PARI}"/src/test/ + for t in analyz compat ellglobalred elliptic galois graph intnum kernel \ + linear nfields number objets ploth polyser program qfbsolve rfrac \ + round4 stark sumiter trans ; do + i="in/${t}" + o32="32/${t}" + o64="64/${t}" + [ -f "$i" -a ! -f "$o32" ] && cp -al "$i" "$o32" + [ -f "$i" -a ! -f "$o64" ] && cp -al "$i" "$o64" + done + cd "${S_PARI}" + eapply "${FILESDIR}/pari-${PARI_VER}-no-dot-inc.patch" + cd "${S}" + perl-module_src_prepare +} + +src_configure() { + # Unfortunately the assembly routines math-pari has for SPARC do not appear + # to be working at current. Perl cannot test math-pari or anything that + # pulls in the math-pari module as DynaLoader cannot load the resulting + # .so files math-pari generates. As such, we have to use the generic + # non-machine specific assembly methods here. + use sparc && myconf="${myconf} machine=none" + + # This is a horrible, horrible hack - but on systems where the word-length + # of the kernel differs from that of userland, math-pari goes with the + # kernel size and then breaks :( + # This affects x32 systems and systems with a 64-bit kernel running a + # 32-bit userland. It likely affects other architectures (primarily MIPS?) + # also, but this fix deals only with the Intel case. + # We're limited in what we can do here, because 'perl-module_src_configure' + # is a shell-function inherited from the 'perl-module' eclass, and we don't + # want to freeze-and-import a whole chunk of this script just to ensure + # that the configure stage detects the correct architecture. Instead, we + # cunningly define and export a shell-function named 'perl' which is called + # in place of the perl binary and which itself invokes the perl binary, + # but in the correct context. We then remove this ASAP since, let's face + # it, this is bound to be hugely fragile... + if use elibc_glibc; then + if use abi_x86_x32 || [[ "$( uname -m )" == "x86_64" && "$( getconf LONG_BIT )" != "64" ]]; then + export real_perl_path="$( type -pf perl 2>/dev/null )" + if [[ -x "${real_perl_path}" ]]; then + function perl() { + linux32 "${real_perl_path}" "${@}" + } + export -f perl + fi + fi + fi + + perl-module_src_configure + + unset perl real_perl_path +} + +src_compile() { + emake AR="$(tc-getAR)" OTHERLDFLAGS="${LDFLAGS}" +} diff --git a/dev-perl/Math-Pari/files/Math-Pari-2.10.809.0-no-dot-inc.patch b/dev-perl/Math-Pari/files/Math-Pari-2.10.809.0-no-dot-inc.patch new file mode 100644 index 00000000..95ebcf9d --- /dev/null +++ b/dev-perl/Math-Pari/files/Math-Pari-2.10.809.0-no-dot-inc.patch @@ -0,0 +1,31 @@ +From 712cff175abfbf95428ed09a875a15f4047ce105 Mon Sep 17 00:00:00 2001 +From: Kent Fredric <kentfredric@gmail.com> +Date: Sun, 11 Jun 2017 13:22:46 +1200 +Subject: [PATCH] Fix "do" to forcibly use a relative path on Perl 5.26 + +Reliance on "." in @INC was previously how this worked. But that +becomes broken on Perl 5.26 + +Resolves RT#120711 ( Well, at least the Math-Pari parts, the pari + parts themselves need additional fixing, and that's not viable + to really perform in Math::Pari ) + +Bug: https://rt.cpan.org/Ticket/Display.html?id=120711 +--- + test_eng/ex.t | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test_eng/ex.t b/test_eng/ex.t +index a1a2286..0ad57ee 100644 +--- a/test_eng/ex.t ++++ b/test_eng/ex.t +@@ -10,5 +10,5 @@ $dir1 = "CHANGE_ME"; + $dir1 = "$dir/../$dir1" unless $dir1 =~ m|^([a-z]:)?[\\/]|i; + @ARGV = "$dir1/src/test/$long_bits/$name"; + @ARGV = "$dir1/src/test/32/$name" unless -r $ARGV[0]; +-do 'test_eng/Testout.pm'; ++do './test_eng/Testout.pm'; + die if $@; +-- +2.13.1 + diff --git a/dev-perl/Math-Pari/files/no-flto.patch b/dev-perl/Math-Pari/files/no-flto.patch new file mode 100644 index 00000000..d3902ac5 --- /dev/null +++ b/dev-perl/Math-Pari/files/no-flto.patch @@ -0,0 +1,74 @@ +From c169041dfa888ec3815aa5bacc97bcc0f21dc318 Mon Sep 17 00:00:00 2001 +From: Kent Fredric <kentfredric@gmail.com> +Date: Sun, 11 Jun 2017 13:05:59 +1200 +Subject: [PATCH] Disable -flto as it breaks compile. + +LTO seems to be bad for static/shared libraries or something. + +Turning it off until somebody works out how to make it not cause +a compile failure, on top of all the crap Pari does. +--- + Makefile.PL | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/Makefile.PL b/Makefile.PL +index f3025bd..c32eb6a 100644 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -42,18 +42,23 @@ Could not find GP/PARI build directory, please run Makefile.PL + with paridir=/directory option. + EOD + ++my $optimize = $Config{optimize}; ++my $ldflags = $Config{ldflags}; ++ ++s/(^|\s)-flto(\s|$)/$1$2/ for $optimize, $ldflags; ++ + my $gcc_version + = defined($Config{gccversion}) ? ", gccversion=$Config{gccversion}" : ""; + print <<EOP; + Setting up Math::Pari with Perl $] on $^O version $Config{osvers}; + cc=$Config{cc}$gcc_version, cccdlflags='$Config{cccdlflags}', + ccflags='$Config{ccflags}', +- optimize='$Config{optimize}', +- ld=$Config{ld}, ldflags='$Config{ldflags}'. ++ optimize='$optimize', ++ ld=$Config{ld}, ldflags='$ldflags'. + EOP + + if ($^O eq 'solaris' and $Config{cc} eq 'gcc' +- and ( $Config{optimize} =~ s/(?<!\S)(-xarch=386|-xildoff)(?!\S)//g ++ and ( $optimize =~ s/(?<!\S)(-xarch=386|-xildoff)(?!\S)//g + or $Config{cccdlflags} =~ s/(?<!\S)-KPIC(?!\S)/-fPIC/ )) { + # Vendor's Perl has major problems with building extensions; try to fix this + # One way is to use perlgcc; but it does not work with 5.8.4 +@@ -61,7 +66,7 @@ if ($^O eq 'solaris' and $Config{cc} eq 'gcc' + print <<EOP; + + ... Broken config of gcc-on-Solaris detected! I would try to work around this. +-... Reset: cccdlflags --> '$Config{cccdlflags}', optimize -> '$Config{optimize}'. ++... Reset: cccdlflags --> '$Config{cccdlflags}', optimize -> '$optimize'. + + EOP + } +@@ -181,7 +186,7 @@ $define .= ' -DLONG_SHORTER_THAN_IV' if $perl_int_size > $longsize; + + $define .= ' -Derr=pari_err'; # On linux it can get a wrong dynamic loading + $define .= ' -DHAVE_LADD' if $opts{have_ladd}; +-$define .= ' -DGCC_INLINE' if $Config{gccversion} and not $Config{optimize} =~ /-g\b/; ++$define .= ' -DGCC_INLINE' if $Config{gccversion} and not $optimize =~ /-g\b/; + $define .= ' -DHAVE_PARIPRIV' if -f "$paridir/src/headers/paripriv.h"; + #$define .= ' -DNO_GRAPHICS_PARI' unless -f "$paridir/src/graph/plotgnuplot.c"; + +@@ -200,6 +205,8 @@ my $extra_inc = extra_includes($paridir); + &WriteMakefile( + LIBS => $libs, + INC => $extra_inc . ' -I $(PARI_DIR)/src/headers -I $(PARI_DIR)/src -I ./libPARI', ++ OPTIMIZE => $optimize, ++ LDFLAGS => $ldflags, + NAME => 'Math::Pari', + ($common::parilib ? () : + (MYEXTLIB => 'libPARI/libPARI$(LIB_EXT)')), +-- +2.13.1 + diff --git a/dev-perl/Math-Pari/files/pari-2.3.5-no-dot-inc.patch b/dev-perl/Math-Pari/files/pari-2.3.5-no-dot-inc.patch new file mode 100644 index 00000000..cd34851a --- /dev/null +++ b/dev-perl/Math-Pari/files/pari-2.3.5-no-dot-inc.patch @@ -0,0 +1,61 @@ +From 4f1e00df5ea1e51042146f6277bb1af02f249cc3 Mon Sep 17 00:00:00 2001 +From: Kent Fredric <kentfredric@gmail.com> +Date: Sun, 11 Jun 2017 10:31:03 +1200 +Subject: [PATCH] Fix for 5.26 removal of '.' in @INC + +Previous scripts assumed CWD was in @INC and that "PARI::822" was in +wherever CWD was. + +This fixes both of those, and the latter, because its not obvious +from the build system where one should assume CWD to be. + +Instead, the absolute path of the directory of these scripts is +inserted into @INC +--- + src/desc/gen_member | 4 ++++ + src/desc/gen_proto | 4 ++++ + src/desc/merge_822 | 4 ++++ + 3 files changed, 12 insertions(+) + +diff --git a/src/desc/gen_member b/src/desc/gen_member +index 2f3cf52..66dea2b 100755 +--- a/src/desc/gen_member ++++ b/src/desc/gen_member +@@ -1,4 +1,8 @@ + #!/usr/bin/perl -w ++use File::Spec; ++use File::Basename qw( dirname ); ++use lib dirname(File::Spec->rel2abs(__FILE__)); ++ + use PARI::822; + + $class='member_functions'; +diff --git a/src/desc/gen_proto b/src/desc/gen_proto +index 1b507fa..2fb4d3f 100755 +--- a/src/desc/gen_proto ++++ b/src/desc/gen_proto +@@ -1,4 +1,8 @@ + #!/usr/bin/perl -w ++use File::Spec; ++use File::Basename qw( dirname ); ++use lib dirname(File::Spec->rel2abs(__FILE__)); ++ + use PARI::822; + + $class=$ARGV[0]; +diff --git a/src/desc/merge_822 b/src/desc/merge_822 +index a02d612..9ca8252 100755 +--- a/src/desc/merge_822 ++++ b/src/desc/merge_822 +@@ -1,4 +1,8 @@ + #!/usr/bin/perl -w ++use File::Spec; ++use File::Basename qw( dirname ); ++use lib dirname(File::Spec->rel2abs(__FILE__)); ++ + use PARI::822; + + PARI::822::read(\%funcs,$_,1) +-- +2.13.1 + |