Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] Several math libraries
@ 2021-04-04 15:18 tornaria
  2021-04-04 17:41 ` dkwo
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: tornaria @ 2021-04-04 15:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1443 bytes --]

There is a new pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages math1
https://github.com/void-linux/void-packages/pull/29997

Several math libraries
<!-- Mark items with [x] where applicable -->

#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

#### Notes

- This includes: `givaro`, `fflas-ffpack`, `linbox`, `gf2x` (see also #29783), `ntl`, `flintlib`, `arb`, one commit each.
- Everything is tested and check pass in x86_64, x86_64-musl, i686.
- Except `gf2x`, everything is nocross.
- I tried to make sure everything works with baseline x86_64 as defined [here](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_Levels), essentially it means SSE2 is ok, but SSE3 is not.
- I added a general option `native`, which defaults to off. When turned on, it will let the libraries compile for the build machine which often results in significant improvements.

I will have a few more coming, but it takes a real effort to turn a works-for-me template into a portable one.

A patch file from https://github.com/void-linux/void-packages/pull/29997.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-math1-29997.patch --]
[-- Type: text/x-diff, Size: 16711 bytes --]

From cd34ac325286b1aa7423f4b65e98651fbfa0a23b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 9 Jan 2018 23:00:22 -0300
Subject: [PATCH 1/7] New package: givaro-4.1.1

---
 common/options.description |  1 +
 common/shlibs              |  1 +
 srcpkgs/givaro-devel       |  1 +
 srcpkgs/givaro/template    | 38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 41 insertions(+)
 create mode 120000 srcpkgs/givaro-devel
 create mode 100644 srcpkgs/givaro/template

diff --git a/common/options.description b/common/options.description
index 06360211a23f..40f5074e63cf 100644
--- a/common/options.description
+++ b/common/options.description
@@ -49,6 +49,7 @@ desc_option_lz4="Enable support for LZ4 compression format"
 desc_option_lzo="Enable support for LZO compression format"
 desc_option_microhttpd="Enable support for microhttpd"
 desc_option_mpcdec="Enable support for the Musepack decoder"
+desc_option_native="Enable instruction subsets supported by the build computer"
 desc_option_notify="Enable support for desktop notifications (libnotify)"
 desc_option_nvenc="Enable support for NVENC codecs"
 desc_option_openblas="Enable support for OpenBLAS accelerated linear algebra"
diff --git a/common/shlibs b/common/shlibs
index 9aa0a601250b..02175ed0b76a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libgivaro.so.9 givaro-4.1.1_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/givaro-devel b/srcpkgs/givaro-devel
new file mode 120000
index 000000000000..587339b2c069
--- /dev/null
+++ b/srcpkgs/givaro-devel
@@ -0,0 +1 @@
+givaro
\ No newline at end of file
diff --git a/srcpkgs/givaro/template b/srcpkgs/givaro/template
new file mode 100644
index 000000000000..7e36c656c5ef
--- /dev/null
+++ b/srcpkgs/givaro/template
@@ -0,0 +1,38 @@
+# Template file for 'givaro'
+pkgname=givaro
+version=4.1.1
+revision=1
+build_style="gnu-configure"
+makedepends="gmpxx-devel"
+short_desc="C++ library for arithmetic and algebraic computations"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="CECILL-B"
+homepage="https://github.com/linbox-team/givaro"
+distfiles="${homepage}/releases/download/v${version}/givaro-${version}.tar.gz"
+checksum=628049899386e91da245aee6cd446350fbca87e94863bc0d815066c08150487f
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4"
+fi
+
+post_install() {
+	vlicense "Licence_CeCILL-B_V1-en.txt"
+}
+
+givaro-devel_package() {
+	depends="givaro-${version}_${revision}"
+	depends+=" gmpxx-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+		vmove "usr/bin"
+	}
+}

From 3115b4391783db54695859a8057c2ce40c0edc1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 9 Jan 2018 23:39:59 -0300
Subject: [PATCH 2/7] New package: fflas-ffpack-2.4.3

---
 srcpkgs/fflas-ffpack/template | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 srcpkgs/fflas-ffpack/template

diff --git a/srcpkgs/fflas-ffpack/template b/srcpkgs/fflas-ffpack/template
new file mode 100644
index 000000000000..ff2410ea0e90
--- /dev/null
+++ b/srcpkgs/fflas-ffpack/template
@@ -0,0 +1,25 @@
+# Template file for 'fflas-ffpack'
+pkgname=fflas-ffpack
+version=2.4.3
+revision=1
+wrksrc="fflas_ffpack-${version}"
+build_style="gnu-configure"
+hostmakedepends="pkg-config"
+makedepends="givaro-devel openblas-devel"
+depends="givaro-devel openblas-devel"
+short_desc="Finite Field Linear Algebra Subroutines / Package"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="http://linbox-team.github.io/fflas-ffpack/"
+distfiles="https://github.com/linbox-team/fflas-ffpack/releases/download/v${version}/fflas_ffpack-${version}.tar.bz2"
+checksum=d4ecfc6289c7077185ed5e58fa77d07fdb034c1a74385366566226a4887c50c3
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4
+	  --disable-avx512f --disable-avx512dq --disable-avx512vl"
+fi

From 89e7c4404b669acf47fc0a1ca1912d799999e0b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 10 Jan 2018 00:14:35 -0300
Subject: [PATCH 3/7] New package: linbox-1.6.3

---
 common/shlibs           |  1 +
 srcpkgs/linbox-devel    |  1 +
 srcpkgs/linbox/template | 46 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 120000 srcpkgs/linbox-devel
 create mode 100644 srcpkgs/linbox/template

diff --git a/common/shlibs b/common/shlibs
index 02175ed0b76a..559cbd305c71 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3957,6 +3957,7 @@ libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
 libgivaro.so.9 givaro-4.1.1_1
+liblinbox.so.0 linbox-1.6.3_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/linbox-devel b/srcpkgs/linbox-devel
new file mode 120000
index 000000000000..4b90ac79c1e7
--- /dev/null
+++ b/srcpkgs/linbox-devel
@@ -0,0 +1 @@
+linbox
\ No newline at end of file
diff --git a/srcpkgs/linbox/template b/srcpkgs/linbox/template
new file mode 100644
index 000000000000..fd582a435276
--- /dev/null
+++ b/srcpkgs/linbox/template
@@ -0,0 +1,46 @@
+# Template file for 'linbox'
+pkgname=linbox
+version=1.6.3
+revision=1
+build_style="gnu-configure"
+hostmakedepends="pkg-config"
+makedepends="fflas-ffpack"
+short_desc="C++ library for exact, high-performance linear algebra"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://linalg.org"
+distfiles="https://github.com/linbox-team/linbox/releases/download/v${version}/linbox-${version}.tar.gz"
+checksum=a58a188307b07c57964e844bceb99321d3043a8a4a1fccc082a54928bb9a0057
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4"
+fi
+
+pre_check() {
+	if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then
+		# skip test that doesn't compile on i686
+		# see https://github.com/linbox-team/linbox/issues/273
+		touch tests/test-qlup.o
+		echo 'exit 77' > tests/test-qlup
+		chmod +x tests/test-qlup
+	fi
+}
+
+linbox-devel_package() {
+	depends="linbox-${version}_${revision}"
+	depends+=" fflas-ffpack"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+		vmove "usr/bin"
+		vmove "usr/share"
+	}
+}

From 9fda871e3705ce10e770775c6b0d9a5c07bcbfd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 29 Jan 2018 11:18:35 -0300
Subject: [PATCH 4/7] New package: gf2x-1.3.0

---
 common/shlibs         |  1 +
 srcpkgs/gf2x-devel    |  1 +
 srcpkgs/gf2x/template | 34 ++++++++++++++++++++++++++++++++++
 srcpkgs/gf2x/update   |  1 +
 4 files changed, 37 insertions(+)
 create mode 120000 srcpkgs/gf2x-devel
 create mode 100644 srcpkgs/gf2x/template
 create mode 100644 srcpkgs/gf2x/update

diff --git a/common/shlibs b/common/shlibs
index 559cbd305c71..0add3b90fced 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
 liblinbox.so.0 linbox-1.6.3_1
 libpari-gmp.so.7 pari-2.13.0_1
diff --git a/srcpkgs/gf2x-devel b/srcpkgs/gf2x-devel
new file mode 120000
index 000000000000..4542295e8de7
--- /dev/null
+++ b/srcpkgs/gf2x-devel
@@ -0,0 +1 @@
+gf2x
\ No newline at end of file
diff --git a/srcpkgs/gf2x/template b/srcpkgs/gf2x/template
new file mode 100644
index 000000000000..41580840c6fa
--- /dev/null
+++ b/srcpkgs/gf2x/template
@@ -0,0 +1,34 @@
+# Template file for 'gf2x'
+pkgname=gf2x
+version=1.3.0
+revision=1
+wrksrc=gf2x-gf2x-${version}
+build_style="gnu-configure"
+hostmakedepends="automake libtool"
+short_desc="C/C++ library for fast arithmetic in GF(2)[x]"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="GPL-3.0-or-later"
+homepage="https://gitlab.inria.fr/gf2x/gf2x"
+distfiles="${homepage}/-/archive/gf2x-${version}/gf2x-gf2x-${version}.tar.gz"
+checksum=11bcf98b620c60c2ee3b4460b02b7be741f14cfdc26b542f22c92950926575e0
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--disable-sse3"
+fi
+
+pre_configure() {
+	autoreconf -fi
+}
+
+gf2x-devel_package() {
+	depends="gf2x-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+	}
+}
diff --git a/srcpkgs/gf2x/update b/srcpkgs/gf2x/update
new file mode 100644
index 000000000000..504503610161
--- /dev/null
+++ b/srcpkgs/gf2x/update
@@ -0,0 +1 @@
+pkgname=gf2x-gf2x

From 0f6e6ba9a071073154a11e22878c66a6b4e43d35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 30 Jan 2018 11:02:38 -0300
Subject: [PATCH 5/7] New package: ntl-11.4.4

---
 common/shlibs        |  1 +
 srcpkgs/ntl-devel    |  1 +
 srcpkgs/ntl/template | 36 ++++++++++++++++++++++++++++++++++++
 srcpkgs/ntl/update   |  1 +
 4 files changed, 39 insertions(+)
 create mode 120000 srcpkgs/ntl-devel
 create mode 100644 srcpkgs/ntl/template
 create mode 100644 srcpkgs/ntl/update

diff --git a/common/shlibs b/common/shlibs
index 0add3b90fced..f9f1ee9e845f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3959,6 +3959,7 @@ libsword-1.8.1.so libsword-1.8.1_6
 libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
 liblinbox.so.0 linbox-1.6.3_1
+libntl.so.43 ntl-11.4.4_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/ntl-devel b/srcpkgs/ntl-devel
new file mode 120000
index 000000000000..fc0a39987329
--- /dev/null
+++ b/srcpkgs/ntl-devel
@@ -0,0 +1 @@
+ntl
\ No newline at end of file
diff --git a/srcpkgs/ntl/template b/srcpkgs/ntl/template
new file mode 100644
index 000000000000..68d7b090586c
--- /dev/null
+++ b/srcpkgs/ntl/template
@@ -0,0 +1,36 @@
+# Template file for 'ntl'
+pkgname=ntl
+version=11.4.4
+revision=1
+build_wrksrc="src"
+build_style="configure"
+hostmakedepends="perl"
+makedepends="gmp-devel gf2x-devel"
+short_desc="Library for doing Number Theory"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://libntl.org"
+distfiles="${homepage}/${pkgname}-${version}.tar.gz"
+checksum=9d7f6e82e11a409f151c0de2deb08c0d763baf9834fddfd432bf3d218f8021db
+nocross=yes
+
+build_options="native"
+
+do_configure() {
+	# see http://www.shoup.net/ntl/doc/tour-unix.html
+	./configure CXX="$CXX" CXXFLAGS="$CXXFLAGS" \
+		PREFIX="/usr" SHARED="on" NTL_GF2X_LIB="on" \
+		NATIVE="$(vopt_if native 'on' 'off')"
+}
+
+ntl-devel_package() {
+	depends="ntl-${version}_${revision}"
+	depends+=" gmp-devel gf2x-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/share"
+	}
+}
diff --git a/srcpkgs/ntl/update b/srcpkgs/ntl/update
new file mode 100644
index 000000000000..8ccb86344234
--- /dev/null
+++ b/srcpkgs/ntl/update
@@ -0,0 +1 @@
+site="${homepage}/download.html"

From aa5edb0a974a7b902770fd1338f297ed9d81bca5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Fri, 2 Feb 2018 22:42:49 -0300
Subject: [PATCH 6/7] New package: flintlib-2.7.1

---
 common/shlibs             |  1 +
 srcpkgs/flintlib-devel    |  1 +
 srcpkgs/flintlib/template | 30 ++++++++++++++++++++++++++++++
 srcpkgs/flintlib/update   |  2 ++
 4 files changed, 34 insertions(+)
 create mode 120000 srcpkgs/flintlib-devel
 create mode 100644 srcpkgs/flintlib/template
 create mode 100644 srcpkgs/flintlib/update

diff --git a/common/shlibs b/common/shlibs
index f9f1ee9e845f..d488757ccc72 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libflint.so.15 flintlib-2.7.1_1
 libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
 liblinbox.so.0 linbox-1.6.3_1
diff --git a/srcpkgs/flintlib-devel b/srcpkgs/flintlib-devel
new file mode 120000
index 000000000000..7c2633183069
--- /dev/null
+++ b/srcpkgs/flintlib-devel
@@ -0,0 +1 @@
+flintlib
\ No newline at end of file
diff --git a/srcpkgs/flintlib/template b/srcpkgs/flintlib/template
new file mode 100644
index 000000000000..c96312598923
--- /dev/null
+++ b/srcpkgs/flintlib/template
@@ -0,0 +1,30 @@
+# Template file for 'flintlib'
+pkgname=flintlib
+version=2.7.1
+revision=1
+wrksrc="flint-${version}"
+build_style="configure"
+configure_args="--prefix=/usr --with-gmp=/usr --with-mpfr=/usr --with-ntl=/usr"
+makedepends="mpfr-devel ntl-devel"
+short_desc="Fast Library for Number Theory"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://flintlib.org"
+distfiles="${homepage}/flint-${version}.tar.gz"
+checksum=186e2fd9ab67df8a05b122fb018269b382e4babcdb17353c4be1fe364dca481e
+nocross=yes
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+	CFLAGS="-D_GNU_SOURCE"
+fi
+
+flintlib-devel_package() {
+	depends="flintlib-${version}_${revision}"
+	depends+=" mpfr-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+	}
+}
diff --git a/srcpkgs/flintlib/update b/srcpkgs/flintlib/update
new file mode 100644
index 000000000000..8eee53cf22f2
--- /dev/null
+++ b/srcpkgs/flintlib/update
@@ -0,0 +1,2 @@
+pkgname=flint
+site="${homepage}/downloads.html"

From 08ce53ac2481379d85eb100824aefb45651c30ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sun, 4 Feb 2018 01:00:19 -0300
Subject: [PATCH 7/7] New package: arb-2.19.0

---
 common/shlibs        |  3 +++
 srcpkgs/arb-devel    |  1 +
 srcpkgs/arb/template | 29 +++++++++++++++++++++++++++++
 3 files changed, 33 insertions(+)
 create mode 120000 srcpkgs/arb-devel
 create mode 100644 srcpkgs/arb/template

diff --git a/common/shlibs b/common/shlibs
index d488757ccc72..5c5ee405ddbc 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,9 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libarb.so.2 arb-2.17.0_1
+libarb.so.2 arb-2.19.0_1
+libec.so.6 eclib-20190909_1
 libflint.so.15 flintlib-2.7.1_1
 libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
diff --git a/srcpkgs/arb-devel b/srcpkgs/arb-devel
new file mode 120000
index 000000000000..456b9f00a86c
--- /dev/null
+++ b/srcpkgs/arb-devel
@@ -0,0 +1 @@
+arb
\ No newline at end of file
diff --git a/srcpkgs/arb/template b/srcpkgs/arb/template
new file mode 100644
index 000000000000..7c7df0aace15
--- /dev/null
+++ b/srcpkgs/arb/template
@@ -0,0 +1,29 @@
+# Template file for 'arb'
+pkgname=arb
+version=2.19.0
+revision=1
+build_style="configure"
+configure_args="--prefix=/usr --with-gmp=/usr --with-mpfr=/usr --with-flint=/usr"
+makedepends="flintlib-devel"
+short_desc="C library for arbitrary-precision interval arithmetic"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://arblib.org"
+distfiles="https://github.com/fredrik-johansson/arb/archive/${version}.tar.gz"
+checksum=0aec6b492b6e9a543bdb3287a91f976951e2ba74fd4de942e692e21f7edbcf13
+nocross=yes
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+	CFLAGS="-D_GNU_SOURCE"
+fi
+
+arb-devel_package() {
+	depends="arb-${version}_${revision}"
+	depends+=" flintlib-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+	}
+}

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Several math libraries
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
@ 2021-04-04 17:41 ` dkwo
  2021-04-04 23:33 ` [PR PATCH] [Updated] " tornaria
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: dkwo @ 2021-04-04 17:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 166 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#issuecomment-813071226

Comment:
Great job, I will test soon.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR PATCH] [Updated] Several math libraries
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
  2021-04-04 17:41 ` dkwo
@ 2021-04-04 23:33 ` tornaria
  2021-04-04 23:36 ` tornaria
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2021-04-04 23:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1448 bytes --]

There is an updated pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages math1
https://github.com/void-linux/void-packages/pull/29997

Several math libraries
<!-- Mark items with [x] where applicable -->

#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

#### Notes

- This includes: `givaro`, `fflas-ffpack`, `linbox`, `gf2x` (see also #29783), `ntl`, `flintlib`, `arb`, one commit each.
- Everything is tested and check pass in x86_64, x86_64-musl, i686.
- Except `gf2x`, everything is nocross.
- I tried to make sure everything works with baseline x86_64 as defined [here](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_Levels), essentially it means SSE2 is ok, but SSE3 is not.
- I added a general option `native`, which defaults to off. When turned on, it will let the libraries compile for the build machine which often results in significant improvements.

I will have a few more coming, but it takes a real effort to turn a works-for-me template into a portable one.

A patch file from https://github.com/void-linux/void-packages/pull/29997.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-math1-29997.patch --]
[-- Type: text/x-diff, Size: 16654 bytes --]

From cd34ac325286b1aa7423f4b65e98651fbfa0a23b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 9 Jan 2018 23:00:22 -0300
Subject: [PATCH 1/7] New package: givaro-4.1.1

---
 common/options.description |  1 +
 common/shlibs              |  1 +
 srcpkgs/givaro-devel       |  1 +
 srcpkgs/givaro/template    | 38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 41 insertions(+)
 create mode 120000 srcpkgs/givaro-devel
 create mode 100644 srcpkgs/givaro/template

diff --git a/common/options.description b/common/options.description
index 06360211a23f..40f5074e63cf 100644
--- a/common/options.description
+++ b/common/options.description
@@ -49,6 +49,7 @@ desc_option_lz4="Enable support for LZ4 compression format"
 desc_option_lzo="Enable support for LZO compression format"
 desc_option_microhttpd="Enable support for microhttpd"
 desc_option_mpcdec="Enable support for the Musepack decoder"
+desc_option_native="Enable instruction subsets supported by the build computer"
 desc_option_notify="Enable support for desktop notifications (libnotify)"
 desc_option_nvenc="Enable support for NVENC codecs"
 desc_option_openblas="Enable support for OpenBLAS accelerated linear algebra"
diff --git a/common/shlibs b/common/shlibs
index 9aa0a601250b..02175ed0b76a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libgivaro.so.9 givaro-4.1.1_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/givaro-devel b/srcpkgs/givaro-devel
new file mode 120000
index 000000000000..587339b2c069
--- /dev/null
+++ b/srcpkgs/givaro-devel
@@ -0,0 +1 @@
+givaro
\ No newline at end of file
diff --git a/srcpkgs/givaro/template b/srcpkgs/givaro/template
new file mode 100644
index 000000000000..7e36c656c5ef
--- /dev/null
+++ b/srcpkgs/givaro/template
@@ -0,0 +1,38 @@
+# Template file for 'givaro'
+pkgname=givaro
+version=4.1.1
+revision=1
+build_style="gnu-configure"
+makedepends="gmpxx-devel"
+short_desc="C++ library for arithmetic and algebraic computations"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="CECILL-B"
+homepage="https://github.com/linbox-team/givaro"
+distfiles="${homepage}/releases/download/v${version}/givaro-${version}.tar.gz"
+checksum=628049899386e91da245aee6cd446350fbca87e94863bc0d815066c08150487f
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4"
+fi
+
+post_install() {
+	vlicense "Licence_CeCILL-B_V1-en.txt"
+}
+
+givaro-devel_package() {
+	depends="givaro-${version}_${revision}"
+	depends+=" gmpxx-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+		vmove "usr/bin"
+	}
+}

From 3115b4391783db54695859a8057c2ce40c0edc1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 9 Jan 2018 23:39:59 -0300
Subject: [PATCH 2/7] New package: fflas-ffpack-2.4.3

---
 srcpkgs/fflas-ffpack/template | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 srcpkgs/fflas-ffpack/template

diff --git a/srcpkgs/fflas-ffpack/template b/srcpkgs/fflas-ffpack/template
new file mode 100644
index 000000000000..ff2410ea0e90
--- /dev/null
+++ b/srcpkgs/fflas-ffpack/template
@@ -0,0 +1,25 @@
+# Template file for 'fflas-ffpack'
+pkgname=fflas-ffpack
+version=2.4.3
+revision=1
+wrksrc="fflas_ffpack-${version}"
+build_style="gnu-configure"
+hostmakedepends="pkg-config"
+makedepends="givaro-devel openblas-devel"
+depends="givaro-devel openblas-devel"
+short_desc="Finite Field Linear Algebra Subroutines / Package"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="http://linbox-team.github.io/fflas-ffpack/"
+distfiles="https://github.com/linbox-team/fflas-ffpack/releases/download/v${version}/fflas_ffpack-${version}.tar.bz2"
+checksum=d4ecfc6289c7077185ed5e58fa77d07fdb034c1a74385366566226a4887c50c3
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4
+	  --disable-avx512f --disable-avx512dq --disable-avx512vl"
+fi

From 89e7c4404b669acf47fc0a1ca1912d799999e0b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 10 Jan 2018 00:14:35 -0300
Subject: [PATCH 3/7] New package: linbox-1.6.3

---
 common/shlibs           |  1 +
 srcpkgs/linbox-devel    |  1 +
 srcpkgs/linbox/template | 46 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 120000 srcpkgs/linbox-devel
 create mode 100644 srcpkgs/linbox/template

diff --git a/common/shlibs b/common/shlibs
index 02175ed0b76a..559cbd305c71 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3957,6 +3957,7 @@ libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
 libgivaro.so.9 givaro-4.1.1_1
+liblinbox.so.0 linbox-1.6.3_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/linbox-devel b/srcpkgs/linbox-devel
new file mode 120000
index 000000000000..4b90ac79c1e7
--- /dev/null
+++ b/srcpkgs/linbox-devel
@@ -0,0 +1 @@
+linbox
\ No newline at end of file
diff --git a/srcpkgs/linbox/template b/srcpkgs/linbox/template
new file mode 100644
index 000000000000..fd582a435276
--- /dev/null
+++ b/srcpkgs/linbox/template
@@ -0,0 +1,46 @@
+# Template file for 'linbox'
+pkgname=linbox
+version=1.6.3
+revision=1
+build_style="gnu-configure"
+hostmakedepends="pkg-config"
+makedepends="fflas-ffpack"
+short_desc="C++ library for exact, high-performance linear algebra"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://linalg.org"
+distfiles="https://github.com/linbox-team/linbox/releases/download/v${version}/linbox-${version}.tar.gz"
+checksum=a58a188307b07c57964e844bceb99321d3043a8a4a1fccc082a54928bb9a0057
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4"
+fi
+
+pre_check() {
+	if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then
+		# skip test that doesn't compile on i686
+		# see https://github.com/linbox-team/linbox/issues/273
+		touch tests/test-qlup.o
+		echo 'exit 77' > tests/test-qlup
+		chmod +x tests/test-qlup
+	fi
+}
+
+linbox-devel_package() {
+	depends="linbox-${version}_${revision}"
+	depends+=" fflas-ffpack"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+		vmove "usr/bin"
+		vmove "usr/share"
+	}
+}

From 9fda871e3705ce10e770775c6b0d9a5c07bcbfd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 29 Jan 2018 11:18:35 -0300
Subject: [PATCH 4/7] New package: gf2x-1.3.0

---
 common/shlibs         |  1 +
 srcpkgs/gf2x-devel    |  1 +
 srcpkgs/gf2x/template | 34 ++++++++++++++++++++++++++++++++++
 srcpkgs/gf2x/update   |  1 +
 4 files changed, 37 insertions(+)
 create mode 120000 srcpkgs/gf2x-devel
 create mode 100644 srcpkgs/gf2x/template
 create mode 100644 srcpkgs/gf2x/update

diff --git a/common/shlibs b/common/shlibs
index 559cbd305c71..0add3b90fced 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
 liblinbox.so.0 linbox-1.6.3_1
 libpari-gmp.so.7 pari-2.13.0_1
diff --git a/srcpkgs/gf2x-devel b/srcpkgs/gf2x-devel
new file mode 120000
index 000000000000..4542295e8de7
--- /dev/null
+++ b/srcpkgs/gf2x-devel
@@ -0,0 +1 @@
+gf2x
\ No newline at end of file
diff --git a/srcpkgs/gf2x/template b/srcpkgs/gf2x/template
new file mode 100644
index 000000000000..41580840c6fa
--- /dev/null
+++ b/srcpkgs/gf2x/template
@@ -0,0 +1,34 @@
+# Template file for 'gf2x'
+pkgname=gf2x
+version=1.3.0
+revision=1
+wrksrc=gf2x-gf2x-${version}
+build_style="gnu-configure"
+hostmakedepends="automake libtool"
+short_desc="C/C++ library for fast arithmetic in GF(2)[x]"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="GPL-3.0-or-later"
+homepage="https://gitlab.inria.fr/gf2x/gf2x"
+distfiles="${homepage}/-/archive/gf2x-${version}/gf2x-gf2x-${version}.tar.gz"
+checksum=11bcf98b620c60c2ee3b4460b02b7be741f14cfdc26b542f22c92950926575e0
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--disable-sse3"
+fi
+
+pre_configure() {
+	autoreconf -fi
+}
+
+gf2x-devel_package() {
+	depends="gf2x-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+	}
+}
diff --git a/srcpkgs/gf2x/update b/srcpkgs/gf2x/update
new file mode 100644
index 000000000000..504503610161
--- /dev/null
+++ b/srcpkgs/gf2x/update
@@ -0,0 +1 @@
+pkgname=gf2x-gf2x

From 0f6e6ba9a071073154a11e22878c66a6b4e43d35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 30 Jan 2018 11:02:38 -0300
Subject: [PATCH 5/7] New package: ntl-11.4.4

---
 common/shlibs        |  1 +
 srcpkgs/ntl-devel    |  1 +
 srcpkgs/ntl/template | 36 ++++++++++++++++++++++++++++++++++++
 srcpkgs/ntl/update   |  1 +
 4 files changed, 39 insertions(+)
 create mode 120000 srcpkgs/ntl-devel
 create mode 100644 srcpkgs/ntl/template
 create mode 100644 srcpkgs/ntl/update

diff --git a/common/shlibs b/common/shlibs
index 0add3b90fced..f9f1ee9e845f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3959,6 +3959,7 @@ libsword-1.8.1.so libsword-1.8.1_6
 libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
 liblinbox.so.0 linbox-1.6.3_1
+libntl.so.43 ntl-11.4.4_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/ntl-devel b/srcpkgs/ntl-devel
new file mode 120000
index 000000000000..fc0a39987329
--- /dev/null
+++ b/srcpkgs/ntl-devel
@@ -0,0 +1 @@
+ntl
\ No newline at end of file
diff --git a/srcpkgs/ntl/template b/srcpkgs/ntl/template
new file mode 100644
index 000000000000..68d7b090586c
--- /dev/null
+++ b/srcpkgs/ntl/template
@@ -0,0 +1,36 @@
+# Template file for 'ntl'
+pkgname=ntl
+version=11.4.4
+revision=1
+build_wrksrc="src"
+build_style="configure"
+hostmakedepends="perl"
+makedepends="gmp-devel gf2x-devel"
+short_desc="Library for doing Number Theory"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://libntl.org"
+distfiles="${homepage}/${pkgname}-${version}.tar.gz"
+checksum=9d7f6e82e11a409f151c0de2deb08c0d763baf9834fddfd432bf3d218f8021db
+nocross=yes
+
+build_options="native"
+
+do_configure() {
+	# see http://www.shoup.net/ntl/doc/tour-unix.html
+	./configure CXX="$CXX" CXXFLAGS="$CXXFLAGS" \
+		PREFIX="/usr" SHARED="on" NTL_GF2X_LIB="on" \
+		NATIVE="$(vopt_if native 'on' 'off')"
+}
+
+ntl-devel_package() {
+	depends="ntl-${version}_${revision}"
+	depends+=" gmp-devel gf2x-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/share"
+	}
+}
diff --git a/srcpkgs/ntl/update b/srcpkgs/ntl/update
new file mode 100644
index 000000000000..8ccb86344234
--- /dev/null
+++ b/srcpkgs/ntl/update
@@ -0,0 +1 @@
+site="${homepage}/download.html"

From aa5edb0a974a7b902770fd1338f297ed9d81bca5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Fri, 2 Feb 2018 22:42:49 -0300
Subject: [PATCH 6/7] New package: flintlib-2.7.1

---
 common/shlibs             |  1 +
 srcpkgs/flintlib-devel    |  1 +
 srcpkgs/flintlib/template | 30 ++++++++++++++++++++++++++++++
 srcpkgs/flintlib/update   |  2 ++
 4 files changed, 34 insertions(+)
 create mode 120000 srcpkgs/flintlib-devel
 create mode 100644 srcpkgs/flintlib/template
 create mode 100644 srcpkgs/flintlib/update

diff --git a/common/shlibs b/common/shlibs
index f9f1ee9e845f..d488757ccc72 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libflint.so.15 flintlib-2.7.1_1
 libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
 liblinbox.so.0 linbox-1.6.3_1
diff --git a/srcpkgs/flintlib-devel b/srcpkgs/flintlib-devel
new file mode 120000
index 000000000000..7c2633183069
--- /dev/null
+++ b/srcpkgs/flintlib-devel
@@ -0,0 +1 @@
+flintlib
\ No newline at end of file
diff --git a/srcpkgs/flintlib/template b/srcpkgs/flintlib/template
new file mode 100644
index 000000000000..c96312598923
--- /dev/null
+++ b/srcpkgs/flintlib/template
@@ -0,0 +1,30 @@
+# Template file for 'flintlib'
+pkgname=flintlib
+version=2.7.1
+revision=1
+wrksrc="flint-${version}"
+build_style="configure"
+configure_args="--prefix=/usr --with-gmp=/usr --with-mpfr=/usr --with-ntl=/usr"
+makedepends="mpfr-devel ntl-devel"
+short_desc="Fast Library for Number Theory"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://flintlib.org"
+distfiles="${homepage}/flint-${version}.tar.gz"
+checksum=186e2fd9ab67df8a05b122fb018269b382e4babcdb17353c4be1fe364dca481e
+nocross=yes
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+	CFLAGS="-D_GNU_SOURCE"
+fi
+
+flintlib-devel_package() {
+	depends="flintlib-${version}_${revision}"
+	depends+=" mpfr-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+	}
+}
diff --git a/srcpkgs/flintlib/update b/srcpkgs/flintlib/update
new file mode 100644
index 000000000000..8eee53cf22f2
--- /dev/null
+++ b/srcpkgs/flintlib/update
@@ -0,0 +1,2 @@
+pkgname=flint
+site="${homepage}/downloads.html"

From 1c2d7c6f21b097d1d3adf6dbfb87212bf80c1e13 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sun, 4 Feb 2018 01:00:19 -0300
Subject: [PATCH 7/7] New package: arb-2.19.0

---
 common/shlibs        |  1 +
 srcpkgs/arb-devel    |  1 +
 srcpkgs/arb/template | 29 +++++++++++++++++++++++++++++
 3 files changed, 31 insertions(+)
 create mode 120000 srcpkgs/arb-devel
 create mode 100644 srcpkgs/arb/template

diff --git a/common/shlibs b/common/shlibs
index d488757ccc72..116d6f7462e0 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libarb.so.2 arb-2.19.0_1
 libflint.so.15 flintlib-2.7.1_1
 libgf2x.so.3 gf2x-1.3.0_1
 libgivaro.so.9 givaro-4.1.1_1
diff --git a/srcpkgs/arb-devel b/srcpkgs/arb-devel
new file mode 120000
index 000000000000..456b9f00a86c
--- /dev/null
+++ b/srcpkgs/arb-devel
@@ -0,0 +1 @@
+arb
\ No newline at end of file
diff --git a/srcpkgs/arb/template b/srcpkgs/arb/template
new file mode 100644
index 000000000000..7c7df0aace15
--- /dev/null
+++ b/srcpkgs/arb/template
@@ -0,0 +1,29 @@
+# Template file for 'arb'
+pkgname=arb
+version=2.19.0
+revision=1
+build_style="configure"
+configure_args="--prefix=/usr --with-gmp=/usr --with-mpfr=/usr --with-flint=/usr"
+makedepends="flintlib-devel"
+short_desc="C library for arbitrary-precision interval arithmetic"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://arblib.org"
+distfiles="https://github.com/fredrik-johansson/arb/archive/${version}.tar.gz"
+checksum=0aec6b492b6e9a543bdb3287a91f976951e2ba74fd4de942e692e21f7edbcf13
+nocross=yes
+
+if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+	CFLAGS="-D_GNU_SOURCE"
+fi
+
+arb-devel_package() {
+	depends="arb-${version}_${revision}"
+	depends+=" flintlib-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+	}
+}

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Several math libraries
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
  2021-04-04 17:41 ` dkwo
  2021-04-04 23:33 ` [PR PATCH] [Updated] " tornaria
@ 2021-04-04 23:36 ` tornaria
  2021-04-06  4:57 ` [PR PATCH] [Updated] " tornaria
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2021-04-04 23:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 219 bytes --]

New comment by tornaria on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#issuecomment-813116766

Comment:
Nothing relevant changed: I cleaned up some leftover lines in `common/shlib`.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR PATCH] [Updated] Several math libraries
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
                   ` (2 preceding siblings ...)
  2021-04-04 23:36 ` tornaria
@ 2021-04-06  4:57 ` tornaria
  2021-04-07 12:52 ` Math packages: givaro, fflas-ffpack, linbox dkwo
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2021-04-06  4:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1448 bytes --]

There is an updated pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages math1
https://github.com/void-linux/void-packages/pull/29997

Several math libraries
<!-- Mark items with [x] where applicable -->

#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

#### Notes

- This includes: `givaro`, `fflas-ffpack`, `linbox`, `gf2x` (see also #29783), `ntl`, `flintlib`, `arb`, one commit each.
- Everything is tested and check pass in x86_64, x86_64-musl, i686.
- Except `gf2x`, everything is nocross.
- I tried to make sure everything works with baseline x86_64 as defined [here](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_Levels), essentially it means SSE2 is ok, but SSE3 is not.
- I added a general option `native`, which defaults to off. When turned on, it will let the libraries compile for the build machine which often results in significant improvements.

I will have a few more coming, but it takes a real effort to turn a works-for-me template into a portable one.

A patch file from https://github.com/void-linux/void-packages/pull/29997.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-math1-29997.patch --]
[-- Type: text/x-diff, Size: 7345 bytes --]

From 22744296d015ae018a683a74206dbba06a8b992c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 9 Jan 2018 23:00:22 -0300
Subject: [PATCH 1/3] New package: givaro-4.1.1

---
 common/options.description |  1 +
 common/shlibs              |  1 +
 srcpkgs/givaro-devel       |  1 +
 srcpkgs/givaro/template    | 38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 41 insertions(+)
 create mode 120000 srcpkgs/givaro-devel
 create mode 100644 srcpkgs/givaro/template

diff --git a/common/options.description b/common/options.description
index 06360211a23f..40f5074e63cf 100644
--- a/common/options.description
+++ b/common/options.description
@@ -49,6 +49,7 @@ desc_option_lz4="Enable support for LZ4 compression format"
 desc_option_lzo="Enable support for LZO compression format"
 desc_option_microhttpd="Enable support for microhttpd"
 desc_option_mpcdec="Enable support for the Musepack decoder"
+desc_option_native="Enable instruction subsets supported by the build computer"
 desc_option_notify="Enable support for desktop notifications (libnotify)"
 desc_option_nvenc="Enable support for NVENC codecs"
 desc_option_openblas="Enable support for OpenBLAS accelerated linear algebra"
diff --git a/common/shlibs b/common/shlibs
index 9aa0a601250b..02175ed0b76a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3956,6 +3956,7 @@ libopenaptx.so.0 libopenaptx-0.2.0_1
 libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
+libgivaro.so.9 givaro-4.1.1_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/givaro-devel b/srcpkgs/givaro-devel
new file mode 120000
index 000000000000..587339b2c069
--- /dev/null
+++ b/srcpkgs/givaro-devel
@@ -0,0 +1 @@
+givaro
\ No newline at end of file
diff --git a/srcpkgs/givaro/template b/srcpkgs/givaro/template
new file mode 100644
index 000000000000..15b307ca117a
--- /dev/null
+++ b/srcpkgs/givaro/template
@@ -0,0 +1,38 @@
+# Template file for 'givaro'
+pkgname=givaro
+version=4.1.1
+revision=1
+build_style="gnu-configure"
+makedepends="gmpxx-devel"
+short_desc="C++ library for arithmetic and algebraic computations"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="CECILL-B"
+homepage="https://github.com/linbox-team/givaro"
+distfiles="https://github.com/linbox-team/givaro/releases/download/v${version}/givaro-${version}.tar.gz"
+checksum=628049899386e91da245aee6cd446350fbca87e94863bc0d815066c08150487f
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4"
+fi
+
+post_install() {
+	vlicense "Licence_CeCILL-B_V1-en.txt"
+}
+
+givaro-devel_package() {
+	depends="givaro-${version}_${revision}"
+	depends+=" gmpxx-devel"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+		vmove "usr/bin"
+	}
+}

From fbfd2e6b7ddc50b8b92503c795dfe45cc4a3eb9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 9 Jan 2018 23:39:59 -0300
Subject: [PATCH 2/3] New package: fflas-ffpack-2.4.3

---
 srcpkgs/fflas-ffpack/template | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 srcpkgs/fflas-ffpack/template

diff --git a/srcpkgs/fflas-ffpack/template b/srcpkgs/fflas-ffpack/template
new file mode 100644
index 000000000000..ff2410ea0e90
--- /dev/null
+++ b/srcpkgs/fflas-ffpack/template
@@ -0,0 +1,25 @@
+# Template file for 'fflas-ffpack'
+pkgname=fflas-ffpack
+version=2.4.3
+revision=1
+wrksrc="fflas_ffpack-${version}"
+build_style="gnu-configure"
+hostmakedepends="pkg-config"
+makedepends="givaro-devel openblas-devel"
+depends="givaro-devel openblas-devel"
+short_desc="Finite Field Linear Algebra Subroutines / Package"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="http://linbox-team.github.io/fflas-ffpack/"
+distfiles="https://github.com/linbox-team/fflas-ffpack/releases/download/v${version}/fflas_ffpack-${version}.tar.bz2"
+checksum=d4ecfc6289c7077185ed5e58fa77d07fdb034c1a74385366566226a4887c50c3
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4
+	  --disable-avx512f --disable-avx512dq --disable-avx512vl"
+fi

From 8c93208c8989b98b29dafac6e5ee868b96e38bda Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 10 Jan 2018 00:14:35 -0300
Subject: [PATCH 3/3] New package: linbox-1.6.3

---
 common/shlibs           |  1 +
 srcpkgs/linbox-devel    |  1 +
 srcpkgs/linbox/template | 46 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 120000 srcpkgs/linbox-devel
 create mode 100644 srcpkgs/linbox/template

diff --git a/common/shlibs b/common/shlibs
index 02175ed0b76a..559cbd305c71 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3957,6 +3957,7 @@ libsimavr.so.1 simavr-1.6_2
 libsimavrparts.so.1 simavr-1.6_2
 libsword-1.8.1.so libsword-1.8.1_6
 libgivaro.so.9 givaro-4.1.1_1
+liblinbox.so.0 linbox-1.6.3_1
 libpari-gmp.so.7 pari-2.13.0_1
 libtree-sitter.so.0 tree-sitter-0.19.0_1
 libwayland-client++.so.0 libwaylandpp-0.2.8_1
diff --git a/srcpkgs/linbox-devel b/srcpkgs/linbox-devel
new file mode 120000
index 000000000000..4b90ac79c1e7
--- /dev/null
+++ b/srcpkgs/linbox-devel
@@ -0,0 +1 @@
+linbox
\ No newline at end of file
diff --git a/srcpkgs/linbox/template b/srcpkgs/linbox/template
new file mode 100644
index 000000000000..fd582a435276
--- /dev/null
+++ b/srcpkgs/linbox/template
@@ -0,0 +1,46 @@
+# Template file for 'linbox'
+pkgname=linbox
+version=1.6.3
+revision=1
+build_style="gnu-configure"
+hostmakedepends="pkg-config"
+makedepends="fflas-ffpack"
+short_desc="C++ library for exact, high-performance linear algebra"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="LGPL-2.1-or-later"
+homepage="https://linalg.org"
+distfiles="https://github.com/linbox-team/linbox/releases/download/v${version}/linbox-${version}.tar.gz"
+checksum=a58a188307b07c57964e844bceb99321d3043a8a4a1fccc082a54928bb9a0057
+nocross=yes
+
+build_options="native"
+
+if [ ! "$build_option_native" ]; then
+	configure_args="--enable-sse --enable-sse2
+	  --disable-sse3 --disable-ssse3 --disable-sse41 --disable-sse42
+	  --disable-avx --disable-avx2 --disable-fma --disable-fma4"
+fi
+
+pre_check() {
+	if [ "$XBPS_TARGET_MACHINE" = "i686" ]; then
+		# skip test that doesn't compile on i686
+		# see https://github.com/linbox-team/linbox/issues/273
+		touch tests/test-qlup.o
+		echo 'exit 77' > tests/test-qlup
+		chmod +x tests/test-qlup
+	fi
+}
+
+linbox-devel_package() {
+	depends="linbox-${version}_${revision}"
+	depends+=" fflas-ffpack"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove "usr/include"
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/pkgconfig"
+		vmove "usr/bin"
+		vmove "usr/share"
+	}
+}

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Math packages: givaro, fflas-ffpack, linbox
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
                   ` (3 preceding siblings ...)
  2021-04-06  4:57 ` [PR PATCH] [Updated] " tornaria
@ 2021-04-07 12:52 ` dkwo
  2021-04-07 17:24 ` [PR REVIEW] " Chocimier
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: dkwo @ 2021-04-07 12:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 155 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#issuecomment-814888657

Comment:
Looks good to me.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR REVIEW] Math packages: givaro, fflas-ffpack, linbox
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
                   ` (4 preceding siblings ...)
  2021-04-07 12:52 ` Math packages: givaro, fflas-ffpack, linbox dkwo
@ 2021-04-07 17:24 ` Chocimier
  2021-04-07 17:43 ` ericonr
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Chocimier @ 2021-04-07 17:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 331 bytes --]

New review comment by Chocimier on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#discussion_r608851206

Comment:
I would rather remove option and make in unconditional. People are free to use XBPS_CFLAGS="-march=native" to get optimized build. Works for this package, should work for others too.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR REVIEW] Math packages: givaro, fflas-ffpack, linbox
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
                   ` (5 preceding siblings ...)
  2021-04-07 17:24 ` [PR REVIEW] " Chocimier
@ 2021-04-07 17:43 ` ericonr
  2021-04-07 17:45 ` Chocimier
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ericonr @ 2021-04-07 17:43 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 410 bytes --]

New review comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#discussion_r608864145

Comment:
I think the correct variable is `XBPS_TARGET_CFLAGS`? At least that's what's used in the `build-profiles` (the README there needs to be fixed, btw).

I agree that that's a better way of solving it, but it would be nice to make sure it's working. Also see #29732

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR REVIEW] Math packages: givaro, fflas-ffpack, linbox
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
                   ` (6 preceding siblings ...)
  2021-04-07 17:43 ` ericonr
@ 2021-04-07 17:45 ` Chocimier
  2021-04-07 17:54 ` tornaria
  2021-04-07 17:55 ` tornaria
  9 siblings, 0 replies; 11+ messages in thread
From: Chocimier @ 2021-04-07 17:45 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 179 bytes --]

New review comment by Chocimier on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#discussion_r608865493

Comment:
I mean XBPS_CFLAGS in etc/conf

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR REVIEW] Math packages: givaro, fflas-ffpack, linbox
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
                   ` (7 preceding siblings ...)
  2021-04-07 17:45 ` Chocimier
@ 2021-04-07 17:54 ` tornaria
  2021-04-07 17:55 ` tornaria
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2021-04-07 17:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 696 bytes --]

New review comment by tornaria on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#discussion_r608871264

Comment:
It might work in this case (assuming the only effect of the --enable-sse* configure flags is to add -msse* to CFLAGS, I'd have to check).

However, some math packages have custom written asm for different architectures so selecting build option "native" will not necessarily be equivalent to just using `-march=native`.

Another point is that using a build option will make an annotation in the xbps, e.g.:
```
$ xq givaro | grep native
build-options: ~native 
```
vs.
```
$ xbps-query -S givaro | grep build
build-options: native 
```

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PR REVIEW] Math packages: givaro, fflas-ffpack, linbox
  2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
                   ` (8 preceding siblings ...)
  2021-04-07 17:54 ` tornaria
@ 2021-04-07 17:55 ` tornaria
  9 siblings, 0 replies; 11+ messages in thread
From: tornaria @ 2021-04-07 17:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 686 bytes --]

New review comment by tornaria on void-packages repository

https://github.com/void-linux/void-packages/pull/29997#discussion_r608871264

Comment:
It might work in this case (assuming the only effect of the --enable-sse* configure flags is to add -msse* to CFLAGS, I'd have to check).

However, some math packages have custom written asm for different architectures so selecting build option "native" will not necessarily be equivalent to just using `-march=native`.

Another point is that using a build option will make an annotation in the xbps, e.g.:
```
$ xq givaro | grep native
build-options: ~native 
```
vs.
```
$ xq givaro | grep native
build-options: native 
```

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-04-07 17:55 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-04 15:18 [PR PATCH] Several math libraries tornaria
2021-04-04 17:41 ` dkwo
2021-04-04 23:33 ` [PR PATCH] [Updated] " tornaria
2021-04-04 23:36 ` tornaria
2021-04-06  4:57 ` [PR PATCH] [Updated] " tornaria
2021-04-07 12:52 ` Math packages: givaro, fflas-ffpack, linbox dkwo
2021-04-07 17:24 ` [PR REVIEW] " Chocimier
2021-04-07 17:43 ` ericonr
2021-04-07 17:45 ` Chocimier
2021-04-07 17:54 ` tornaria
2021-04-07 17:55 ` tornaria

Github messages for voidlinux

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.vuxu.org/voidlinux-github

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 voidlinux-github voidlinux-github/ http://inbox.vuxu.org/voidlinux-github \
		voidlinux-github@inbox.vuxu.org
	public-inbox-index voidlinux-github

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.github.voidlinux


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git