diff --git a/sci-mathematics/sympow/Manifest b/sci-mathematics/sympow/Manifest new file mode 100644 index 0000000000000..791d59c9e9639 --- /dev/null +++ b/sci-mathematics/sympow/Manifest @@ -0,0 +1 @@ +DIST sympow-v2.023.6.tar.gz 68142 BLAKE2B accff25cb1da5b6935a91179fa399d76148709be54bbd434c0dc6143e88e9cd0f0a3cd96c683da3214366a29d6d0dbb7236d2623ef3f9322b6d4d54c6bad9882 SHA512 efe3b09fff0629e136b029ea615aa09ac1a4f225c06636d653ac921c7de01bf75e2b392a138c3c1af92f2b4f889f5949beeeba5b6e5e6b49e02c605bb9c16ceb diff --git a/sci-mathematics/sympow/files/sympow-2.023.6-dont-force-O3.patch b/sci-mathematics/sympow/files/sympow-2.023.6-dont-force-O3.patch new file mode 100644 index 0000000000000..ae4924d468e35 --- /dev/null +++ b/sci-mathematics/sympow/files/sympow-2.023.6-dont-force-O3.patch @@ -0,0 +1,53 @@ +From d5fd3ce4221705c59dc289f14f5aefc2f974ba41 Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky +Date: Thu, 14 May 2020 18:45:59 -0400 +Subject: [PATCH 1/1] Configure: don't force -O3 in CFLAGS. + +The build system already respects the user's CFLAGS. It should respect +lower -O levels as well. This is a "requirement" on Gentoo. +--- + Configure | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/Configure b/Configure +index 1ef9756..fd5555c 100755 +--- a/Configure ++++ b/Configure +@@ -104,15 +104,12 @@ CFLAGS='' + # return 2 if we did not add $FLAG. + try_add_CFLAG() + { +- # We use -O3 here to really force generation of fused +- # multiply-add instructions and to keep floats as much as +- # possible in registers. + # We compile in the fpu.c which only does + # something if the macro x86 is defined. + local flag=$1 # first argument: C FLAG to test + local bypassfputest=${2:-nobypass} # second argument: whether or not bypass the numerical test (default: not) + local status=0 +- if $CC $ORIGINALCFLAGS -Werror $CFLAGS -O3 $flag config/fpubits1.c config/fpubits2.c fpu.c -o config/fpubits 2>/dev/null; then ++ if $CC $ORIGINALCFLAGS -Werror $CFLAGS $flag config/fpubits1.c config/fpubits2.c fpu.c -o config/fpubits 2>/dev/null; then + # Compiled successfully, now run it + config/fpubits >/dev/null 2>/dev/null + status=$? +@@ -166,7 +163,7 @@ for FLAG in '' '-ffloat-store' '-O0'; do + done + + # Check the actual FPU precision with our new flags. +-CC_ARGS="$ORIGINALCFLAGS -O3 $CFLAGS config/fpubits1.c config/fpubits2.c fpu.c -o config/fpubits" ++CC_ARGS="$ORIGINALCFLAGS $CFLAGS config/fpubits1.c config/fpubits2.c fpu.c -o config/fpubits" + $CC $CC_ARGS + if [ $? -ne 0 ]; then + echo >&2 "Error: the command below failed:" +@@ -256,7 +253,7 @@ echo "CONFEXE = config/endiantuple config/fpubits" >> $FILE + ## + ##echo "DEFS = $DEFS" >> $FILE + +-OPT="-O3 ${CFLAGS}" && echo "OPT = $OPT" >> $FILE ++OPT="${CFLAGS}" && echo "OPT = $OPT" >> $FILE + + echo "H2MFLAGS = \\" >> $FILE + echo " --manual=\"SYMPOW package\" \\" >> $FILE +-- +2.26.2 + diff --git a/sci-mathematics/sympow/files/sympow-2.023.6-no-pkgdatafilesbindir-warnings.patch b/sci-mathematics/sympow/files/sympow-2.023.6-no-pkgdatafilesbindir-warnings.patch new file mode 100644 index 0000000000000..e3cbe823def7c --- /dev/null +++ b/sci-mathematics/sympow/files/sympow-2.023.6-no-pkgdatafilesbindir-warnings.patch @@ -0,0 +1,45 @@ +From cf182287eb4219b03e57352072449885e10543f3 Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky +Date: Fri, 15 May 2020 16:49:49 -0400 +Subject: [PATCH 1/1] main.c: hide pkgdatafilesbindir warnings behind VERBOSE + >= 2. + +The default "pkgdatafilesbindir" is something like /var/cache/sympow +that will never be writable by unprivileged users (and cannot safely +be made that way). There is already a fallback to $HOME in the code +that works perfectly well, but by default sympow emits a warning when +it realizes that it can't write to e.g. /var/cache/sympow on the first +try. Since that's completely expected, we hide the warnings behind an +additional level of verbosity (VERBOSE >= 2 instead of VERBOSE >= 1). +--- + main.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/main.c b/main.c +index 1d018df..fecd7d1 100644 +--- a/main.c ++++ b/main.c +@@ -136,17 +136,17 @@ static void prepare_main(char *argv0) + asprintf(&pkgdatafilesbindir,"%s/datafiles/"ENDIANTUPLE,pkgcachedir); + if (stat(pkgdatafilesbindir,&infodb)) {mode_t mask=umask(0); + if (mkdir(pkgdatafilesbindir,(S_IRWXU|S_IRWXG|S_IRWXO|S_ISVTX))) +- {if (VERBOSE>=1) fprintf(stderr,"**WARNING** failed to create data bin package cache folder %s\n",pkgdatafilesbindir); ++ {if (VERBOSE>=2) fprintf(stderr,"**WARNING** failed to create data bin package cache folder %s\n",pkgdatafilesbindir); + free(pkgdatafilesbindir); pkgdatafilesbindir=NULL;} + else + {stat(pkgdatafilesbindir,&infodb); pkgdatamode= infodb.st_mode & ~MASK;} + umask(mask);} + else + {if (!S_ISDIR(infodb.st_mode)) +- {if (VERBOSE>=1) fprintf(stderr,"**WARNING** %s exists but is not a directory\n",pkgdatafilesbindir); ++ {if (VERBOSE>=2) fprintf(stderr,"**WARNING** %s exists but is not a directory\n",pkgdatafilesbindir); + free(pkgdatafilesbindir); pkgdatafilesbindir=NULL;} + else if (access(pkgdatafilesbindir,(R_OK|W_OK|X_OK))) +- {if (VERBOSE>=1) fprintf(stderr,"**WARNING** %s yields insufficient permissions\n",pkgdatafilesbindir); ++ {if (VERBOSE>=2) fprintf(stderr,"**WARNING** %s yields insufficient permissions\n",pkgdatafilesbindir); + free(pkgdatafilesbindir); pkgdatafilesbindir=NULL;} + else {pkgdatamode= infodb.st_mode & ~MASK;}} + asprintf(&datafilesdir,"%s/datafiles",cachedir); +-- +2.26.2 + diff --git a/sci-mathematics/sympow/metadata.xml b/sci-mathematics/sympow/metadata.xml new file mode 100644 index 0000000000000..a321d1a8e2a39 --- /dev/null +++ b/sci-mathematics/sympow/metadata.xml @@ -0,0 +1,24 @@ + + + + + mjo@gentoo.org + + + + frp.bissey@gmail.com + François Bissey + + + proxy-maint@gentoo.org + Proxy Maintainers + + + + rezozer/forks/sympow + + diff --git a/sci-mathematics/sympow/sympow-2.023.6.ebuild b/sci-mathematics/sympow/sympow-2.023.6.ebuild new file mode 100644 index 0000000000000..4e5e5566a81bb --- /dev/null +++ b/sci-mathematics/sympow/sympow-2.023.6.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs + +DESCRIPTION="Symmetric power elliptic curve L-functions" +HOMEPAGE="https://gitlab.com/rezozer/forks/sympow/" +SRC_URI="https://gitlab.com/rezozer/forks/sympow/-/archive/v${PV}/${PN}-v${PV}.tar.gz" +S="${WORKDIR}/${PN}-v${PV}" + +LICENSE="Sympow-BSD" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +# Pari is used at build time to generate data. +BDEPEND="sys-apps/help2man + sci-mathematics/pari" +DEPEND="" +RDEPEND="sci-mathematics/pari" + +PATCHES=( + "${FILESDIR}/${P}-dont-force-O3.patch" + "${FILESDIR}/${P}-no-pkgdatafilesbindir-warnings.patch" +) + +DOCS=( HISTORY README.md ) + +src_configure() { + export ADDBINPATH=yes + export PREFIX="${EPREFIX}/usr" + + # This location still won't be writable, but we can at least add + # the EPREFIX that belongs there. Sympow uses $HOME/.sympow as a + # fallback (what we want) when its first attempt doesn't work. + export VARPREFIX="${EPREFIX}/var" + + ./Configure || die +} + +src_compile() { + emake CC="$(tc-getCC)" all +}