From 34773deb2ca2fdbea3d61f5cf93e9aec8ac79beb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Thu, 11 Nov 2021 09:39:20 -0300 Subject: [PATCH 1/6] hooks: option to skip 03-rewrite-python-shebang --- common/hooks/pre-pkg/03-rewrite-python-shebang.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common/hooks/pre-pkg/03-rewrite-python-shebang.sh b/common/hooks/pre-pkg/03-rewrite-python-shebang.sh index 07162ad2c69b..c0f2198e44cf 100644 --- a/common/hooks/pre-pkg/03-rewrite-python-shebang.sh +++ b/common/hooks/pre-pkg/03-rewrite-python-shebang.sh @@ -4,6 +4,10 @@ hook() { local pyver= shebang= off= + if [ -n "$_no_python_shebang" ]; then + return 0 + fi + if [ -d ${PKGDESTDIR}/usr/lib/python* ]; then pyver="$(find ${PKGDESTDIR}/usr/lib/python* -prune -type d | grep -o '[[:digit:]]\.[[:digit:]]\+$')" fi From 9bda4cb647d64026e2e82f99ef8a1a251c96c628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Thu, 11 Nov 2021 10:36:03 -0300 Subject: [PATCH 2/6] New package: sage-9.5.beta5 --- srcpkgs/sage/template | 74 +++++++++++++++++++++++++++++++++++++++++++ srcpkgs/sage/update | 3 ++ 2 files changed, 77 insertions(+) create mode 100644 srcpkgs/sage/template create mode 100644 srcpkgs/sage/update diff --git a/srcpkgs/sage/template b/srcpkgs/sage/template new file mode 100644 index 000000000000..2ef437238cb5 --- /dev/null +++ b/srcpkgs/sage/template @@ -0,0 +1,74 @@ +# Template file for 'sage' +pkgname=sage +version=9.5.beta5 +revision=1 +build_style=configure +configure_args=--prefix=/usr/lib/sage-${version} +make_check_target=ptest +short_desc="Open source mathematics software" +maintainer="Gonzalo Tornaría " +license="GPL-3.0-or-later" +homepage="http://sagemath.org/" +distfiles="http://mirrors.mit.edu/sage/src/sage-$version.tar.gz" +checksum=3b78ee848450d6881902bf68f4f3af17e1647e72c51e5fcdcb412c938ecbce57 + +case ${version} in + # url for devel is different + *.beta*|*.rc*) + distfiles=${distfiles/sage\/src/sage\/devel} + ;; +esac + +# first we try to build native; we'll worry about cross later +# besides, some dependencies are nocross +nocross=yes + +# for now, to make install faster +nostrip=yes + +# don't rewrite python shebang as sage uses its own python (for now) +_no_python_shebang=yes + +do_install() { + vcopy /usr/lib/sage-${version} usr/lib/ + vmkdir usr/bin + ln -s /usr/lib/sage-${version}/bin/sage ${DESTDIR}/usr/bin/ +} + +### copied from sage-deps, to keep in sync + +# hard dependencies +makedepends+=" gcc make m4 perl binutils git tar libgomp-devel" + +# recommended dependencies +makedepends+=" gcc-fortran openssl-devel" + +# bootstrap dependencies +makedepends+=" automake gettext gettext-devel" + +# other host dependencies +makedepends+=" cmake curl git ninja pandoc patch pkg-config python3 tox" + +# already in void +makedepends+=" + CoinMP-devel R arb-devel boost-devel bzip2-devel ecl eclib-devel + ecm-devel flintlib-devel freetype-devel gc-devel gd-devel giac-devel + glpk-devel gmp-devel gmpxx-devel gp2c graphviz gsl-devel isl-devel + libatomic_ops-devel libcurl-devel libffi-devel libmpc-devel + libpng-devel libxml2-devel mpfr-devel ncurses-devel openblas-devel + pari-devel pari-elldata-small pari-galdata pari-galpol-small + pari-seadata pcre-devel perl-File-Slurp perl-JSON perl-Term-ReadKey + perl-Term-ReadLine-Gnu perl-XML-LibXML perl-XML-LibXSLT + perl-XML-Writer ppl-devel python3-devel readline-devel sqlite-devel + zeromq-devel zlib-devel + FlintQS SuiteSparse-devel cddlib-devel fflas-ffpack fplll-devel gf2x-devel + givaro-devel igraph-devel iml-devel lcalc-devel linbox-devel + m4ri-devel m4rie-devel mpfi-devel ntl-devel perl-SVG rankwidth-devel + singular sympow zn_poly symmetrica-devel planarity-devel qhull libqhull-devel +" + +# TODO: standard +# brial cliquer gfan libbraiding libhomfly lrcalc nauty palp tachyon + +# TODO: optional +# 4ti2 coxeter3 libnauty libsemigroups lrslib perl_mongodb diff --git a/srcpkgs/sage/update b/srcpkgs/sage/update new file mode 100644 index 000000000000..f797813dcde6 --- /dev/null +++ b/srcpkgs/sage/update @@ -0,0 +1,3 @@ +# for now, check both stable and devel releases +site="http://mirrors.mit.edu/sage/src/ +http://mirrors.mit.edu/sage/devel/" From 21a5106c8b7b48ca751cd71503dc9b0e31f9cc38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 13 Nov 2021 00:08:27 -0300 Subject: [PATCH 3/6] sagemath: update to sage-9.5.beta6 Also: - rename pkg from sage to sagemath - now it will build sage in-place at /usr/lib/sage-$version - the resulting pkg contains a lot of useless stuff that comes with the distribution; we'll have to clean up. E.g. SAGE_ROOT/upstream is definitely unnecessary (1.2G); possibly SAGE_ROOT/pkgs or at least SAGE_ROOT/pkgs/sagemath-standard/build (2.6G). --- srcpkgs/{sage => sagemath}/template | 46 +++++++++++++++++++++-------- srcpkgs/{sage => sagemath}/update | 1 + 2 files changed, 35 insertions(+), 12 deletions(-) rename srcpkgs/{sage => sagemath}/template (67%) rename srcpkgs/{sage => sagemath}/update (90%) diff --git a/srcpkgs/sage/template b/srcpkgs/sagemath/template similarity index 67% rename from srcpkgs/sage/template rename to srcpkgs/sagemath/template index 2ef437238cb5..fa5189ad259e 100644 --- a/srcpkgs/sage/template +++ b/srcpkgs/sagemath/template @@ -1,41 +1,63 @@ -# Template file for 'sage' -pkgname=sage -version=9.5.beta5 +# Template file for 'sagemath' +pkgname=sagemath +version=9.5.beta6 revision=1 +wrksrc=sage-$version build_style=configure -configure_args=--prefix=/usr/lib/sage-${version} +configure_args="--enable-build-as-root" make_check_target=ptest +# for now skip building docs +make_build_target=build short_desc="Open source mathematics software" maintainer="Gonzalo Tornaría " license="GPL-3.0-or-later" homepage="http://sagemath.org/" distfiles="http://mirrors.mit.edu/sage/src/sage-$version.tar.gz" -checksum=3b78ee848450d6881902bf68f4f3af17e1647e72c51e5fcdcb412c938ecbce57 +checksum=7bae8cbb4db73147bd698261497102524bfadeb71ca66b1c68e96827bd5a8975 + +# path where sage will be installed +_SAGE_ROOT=/usr/lib/sage-${version} case ${version} in # url for devel is different - *.beta*|*.rc*) - distfiles=${distfiles/sage\/src/sage\/devel} - ;; + *.beta*|*.rc*) distfiles=${distfiles/sage\/src/sage\/devel} ;; esac -# first we try to build native; we'll worry about cross later -# besides, some dependencies are nocross +# for now, skip check in ci, since we still have a few tests failing +make_check=ci-skip + +# for now, just build native; we'll worry about cross later +# besides, some dependencies are nocross (e.g. ntl) nocross=yes # for now, to make install faster nostrip=yes +# don't shlib_provide anything +noshlibprovides=yes + # don't rewrite python shebang as sage uses its own python (for now) _no_python_shebang=yes +post_extract() { + # sage wants to be built in place so let $wrksrc be a symlink + mv -T $wrksrc $_SAGE_ROOT + ln -sfT $_SAGE_ROOT $wrksrc +} + +do_clean() { + # undo post_extract() + rm $wrksrc + mv $_SAGE_ROOT $wrksrc +} + do_install() { vcopy /usr/lib/sage-${version} usr/lib/ vmkdir usr/bin - ln -s /usr/lib/sage-${version}/bin/sage ${DESTDIR}/usr/bin/ + ln -s $_SAGE_ROOT/sage ${DESTDIR}/usr/bin/ } -### copied from sage-deps, to keep in sync +### copied from sage-deps, to be kept in sync # hard dependencies makedepends+=" gcc make m4 perl binutils git tar libgomp-devel" diff --git a/srcpkgs/sage/update b/srcpkgs/sagemath/update similarity index 90% rename from srcpkgs/sage/update rename to srcpkgs/sagemath/update index f797813dcde6..c33aba4e6df2 100644 --- a/srcpkgs/sage/update +++ b/srcpkgs/sagemath/update @@ -1,3 +1,4 @@ +pkgname=sage # for now, check both stable and devel releases site="http://mirrors.mit.edu/sage/src/ http://mirrors.mit.edu/sage/devel/" From 38f69160565dc1334195cc3b549e0e99f128056f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 13 Nov 2021 07:40:55 -0300 Subject: [PATCH 4/6] sagemath: revbump for changes - include patch fixing build of pyzmq on musl - add gengetopts and texinfo to makedepends - first attempt at cleanup: remove upstream sources and build artifacts --- srcpkgs/sagemath/patches/fix-pyzmq-musl.patch | 15 +++++++++++++++ srcpkgs/sagemath/template | 9 +++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/sagemath/patches/fix-pyzmq-musl.patch diff --git a/srcpkgs/sagemath/patches/fix-pyzmq-musl.patch b/srcpkgs/sagemath/patches/fix-pyzmq-musl.patch new file mode 100644 index 000000000000..9190830d835e --- /dev/null +++ b/srcpkgs/sagemath/patches/fix-pyzmq-musl.patch @@ -0,0 +1,15 @@ +diff --git a/build/pkgs/pyzmq/spkg-install.in b/build/pkgs/pyzmq/spkg-install.in +index 0ce404ee5a..b7260c6d27 100644 +--- a/build/pkgs/pyzmq/spkg-install.in ++++ b/build/pkgs/pyzmq/spkg-install.in +@@ -1,6 +1,9 @@ + # Since we use environment vars we have to generate setup.cfg + +-echo "[build_ext]" > src/setup.cfg ++echo "[global]" > src/setup.cfg ++echo "skip_check_zmq = True" >> src/setup.cfg ++ ++echo "[build_ext]" >> src/setup.cfg + + # (I tried putting quotes around $SAGE_LOCAL to allow for spaces in + # the path---which is never used but is a good habit to support---but diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index fa5189ad259e..56166cd44272 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,7 +1,7 @@ # Template file for 'sagemath' pkgname=sagemath version=9.5.beta6 -revision=1 +revision=2 wrksrc=sage-$version build_style=configure configure_args="--enable-build-as-root" @@ -52,7 +52,11 @@ do_clean() { } do_install() { - vcopy /usr/lib/sage-${version} usr/lib/ + vcopy $_SAGE_ROOT usr/lib/ + # cleanup: upstream sources and build artifacts + rm -rf ${DESTDIR}/$_SAGE_ROOT/upstream + rm -rf ${DESTDIR}/$_SAGE_ROOT/pkgs/*/build + # symlink main binary vmkdir usr/bin ln -s $_SAGE_ROOT/sage ${DESTDIR}/usr/bin/ } @@ -87,6 +91,7 @@ makedepends+=" givaro-devel igraph-devel iml-devel lcalc-devel linbox-devel m4ri-devel m4rie-devel mpfi-devel ntl-devel perl-SVG rankwidth-devel singular sympow zn_poly symmetrica-devel planarity-devel qhull libqhull-devel + gengetopt texinfo " # TODO: standard From 4dc5be66df29ef22f8d1a02fc42a974e442686c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 14 Nov 2021 18:23:29 -0300 Subject: [PATCH 5/6] sagemath: revbump to 9.5.beta6_3 for changes - add depends needed for runtime and for testing - add python_version=3 - disable skipping 03-rewrite-python-shebang as it seems to be harmless after adding python_version=3 - fix cleaning up of $wrksrc and $_SAGE_ROOT - use sage-${version}_${revision} for the binary symlink; this way it won't override whatever sage is installed in the system so I can test on a live system. --- srcpkgs/sagemath/template | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index 56166cd44272..cfe97e039974 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,19 +1,24 @@ # Template file for 'sagemath' pkgname=sagemath version=9.5.beta6 -revision=2 +revision=3 wrksrc=sage-$version build_style=configure configure_args="--enable-build-as-root" make_check_target=ptest # for now skip building docs make_build_target=build +depends="giac git FlintQS zn_poly sympow + pari-elldata-small pari-galdata pari-galpol-small pari-seadata-small + flintlib-devel gsl-devel ntl-devel eclib-devel pari-devel mpfr-devel + m4ri-devel gd-devel libpng-devel fflas-ffpack pkg-config gcc-fortran" short_desc="Open source mathematics software" maintainer="Gonzalo Tornaría " license="GPL-3.0-or-later" homepage="http://sagemath.org/" distfiles="http://mirrors.mit.edu/sage/src/sage-$version.tar.gz" checksum=7bae8cbb4db73147bd698261497102524bfadeb71ca66b1c68e96827bd5a8975 +python_version=3 # path where sage will be installed _SAGE_ROOT=/usr/lib/sage-${version} @@ -37,7 +42,8 @@ nostrip=yes noshlibprovides=yes # don't rewrite python shebang as sage uses its own python (for now) -_no_python_shebang=yes +# after python_version=3, this seems harmless... strange... +#_no_python_shebang=yes post_extract() { # sage wants to be built in place so let $wrksrc be a symlink @@ -46,9 +52,12 @@ post_extract() { } do_clean() { - # undo post_extract() - rm $wrksrc - mv $_SAGE_ROOT $wrksrc + rm -rf $wrksrc $_SAGE_ROOT +} + +post_build() { + # install pytest for more tests + ./sage -i pytest } do_install() { @@ -58,7 +67,9 @@ do_install() { rm -rf ${DESTDIR}/$_SAGE_ROOT/pkgs/*/build # symlink main binary vmkdir usr/bin - ln -s $_SAGE_ROOT/sage ${DESTDIR}/usr/bin/ + # for now use sage-${version}_${revision} so it doesn't override + # other sage installed in the system + ln -sfT $_SAGE_ROOT/sage ${DESTDIR}/usr/bin/sage-${version}_${revision} } ### copied from sage-deps, to be kept in sync From 65e8719b8e0e6ee7dc25073e158b843eef7f94e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sat, 20 Nov 2021 19:01:21 -0300 Subject: [PATCH 6/6] sagemath: update to 9.5.beta7. --- srcpkgs/sagemath/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/sagemath/template b/srcpkgs/sagemath/template index cfe97e039974..3f9a3e9e077f 100644 --- a/srcpkgs/sagemath/template +++ b/srcpkgs/sagemath/template @@ -1,7 +1,7 @@ # Template file for 'sagemath' pkgname=sagemath -version=9.5.beta6 -revision=3 +version=9.5.beta7 +revision=1 wrksrc=sage-$version build_style=configure configure_args="--enable-build-as-root" @@ -17,7 +17,7 @@ maintainer="Gonzalo Tornaría " license="GPL-3.0-or-later" homepage="http://sagemath.org/" distfiles="http://mirrors.mit.edu/sage/src/sage-$version.tar.gz" -checksum=7bae8cbb4db73147bd698261497102524bfadeb71ca66b1c68e96827bd5a8975 +checksum=b81e1fe22d1b990bf1230260241ead016470da1f2f7b260f562d50f74c2904c7 python_version=3 # path where sage will be installed