commit:     d9d93e8707ecf44643b1c9bc203cba328ceb69ce
Author:     Dima Pasechnik <dima <AT> pasechnik <DOT> info>
AuthorDate: Thu Jul 31 07:40:35 2025 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Thu Jul 31 14:06:59 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d9d93e87

sci-mathematics/singular: ensure compatibility with flint 3.3.1

Signed-off-by: Dima Pasechnik <dima <AT> pasechnik.info>
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 .../singular/files/flint-3.3.0-compatibility.patch |  26 +++++
 sci-mathematics/singular/singular-4.4.1-r1.ebuild  | 110 +++++++++++++++++++++
 2 files changed, 136 insertions(+)

diff --git a/sci-mathematics/singular/files/flint-3.3.0-compatibility.patch 
b/sci-mathematics/singular/files/flint-3.3.0-compatibility.patch
new file mode 100644
index 000000000000..588e130c8376
--- /dev/null
+++ b/sci-mathematics/singular/files/flint-3.3.0-compatibility.patch
@@ -0,0 +1,26 @@
+diff --git a/factory/FLINTconvert.cc b/factory/FLINTconvert.cc
+index c36f6022d..67c271c5a 100644
+--- a/factory/FLINTconvert.cc
++++ b/factory/FLINTconvert.cc
+@@ -652,7 +652,7 @@ convertFacCFMatrix2Fq_nmod_mat_t (fq_nmod_mat_t M,
+   {
+     for(j=m.columns();j>0;j--)
+     {
+-      convertFacCF2nmod_poly_t (M->rows[i-1]+j-1, m (i,j));
++      convertFacCF2nmod_poly_t (fq_nmod_mat_entry (M, i-1, j-1), m (i,j));
+     }
+   }
+ }
+diff --git a/libpolys/polys/flintconv.cc b/libpolys/polys/flintconv.cc
+index 89152f5e4..56d527c16 100644
+--- a/libpolys/polys/flintconv.cc
++++ b/libpolys/polys/flintconv.cc
+@@ -331,7 +331,7 @@ void convSingMFlintFq_nmod_mat(matrix m, fq_nmod_mat_t M, 
const fq_nmod_ctx_t fq
+   {
+     for(j=MATCOLS(m);j>0;j--)
+     {
+-      convSingPFlintnmod_poly_t (M->rows[i-1]+j-1, MATELEM(m,i,j),r);
++      convSingPFlintnmod_poly_t (fq_nmod_mat_entry (M, i-1, j-1), 
MATELEM(m,i,j),r);
+     }
+   }
+ }

diff --git a/sci-mathematics/singular/singular-4.4.1-r1.ebuild 
b/sci-mathematics/singular/singular-4.4.1-r1.ebuild
new file mode 100644
index 000000000000..50552c9c8306
--- /dev/null
+++ b/sci-mathematics/singular/singular-4.4.1-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common
+
+MY_PN=Singular
+MY_PV=$(ver_rs 3 '')
+# Consistency is different...
+MY_DIR2=$(ver_cut 1-3 ${PV})
+MY_DIR=$(ver_rs 1- '-' ${MY_DIR2})
+
+DESCRIPTION="Computer algebra system for polynomial computations"
+HOMEPAGE="https://www.singular.uni-kl.de/ https://github.com/Singular/Singular";
+SRC_URI="https://www.singular.uni-kl.de/ftp/pub/Math/${MY_PN}/SOURCES/${MY_DIR}/${PN}-${MY_PV}.tar.gz";
+S="${WORKDIR}/${PN}-${MY_DIR2}"
+
+# Most files say "version 2 or version 3 of the License," which is not
+# quite GPL-2+, and is why we have listed GPL-2 below. But AFAIK there
+# are no GPL-2-only files.
+LICENSE="BSD GPL-2 GPL-2+ GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86 ~x86-linux"
+IUSE="emacs examples polymake +readline"
+
+# The interactive help uses "info" from sys-apps/texinfo.
+RDEPEND="
+       dev-lang/perl
+       dev-libs/gmp:0=
+       dev-libs/ntl:=
+       sci-libs/cddlib
+       sci-mathematics/flint:=
+       sys-apps/texinfo
+       emacs? ( app-editors/emacs:* )
+       polymake? ( sci-mathematics/polymake )
+       readline? ( sys-libs/readline:= )
+"
+DEPEND="${RDEPEND}"
+
+SITEFILE=60${PN}-gentoo.el
+
+PATCHES=(
+       "${FILESDIR}/flint-3.3.0-compatibility.patch"
+)
+
+src_configure() {
+       local myconf=(
+               --disable-debug
+               --disable-doc
+               --disable-optimizationflags
+               --disable-pyobject-module
+               --disable-python
+               --disable-python-module
+               --disable-python_module
+               --enable-factory
+               --enable-gfanlib
+               --enable-libfac
+               --with-flint
+               --with-gmp
+               --with-libparse
+               --with-ntl
+               --without-python
+               --without-pythonmodule
+               $(use_enable emacs)
+               $(use_enable polymake polymake-module)
+               $(use_with readline)
+       )
+       econf "${myconf[@]}"
+}
+
+src_compile() {
+       default
+
+       if use emacs; then
+               pushd "${S}"/emacs
+               elisp-compile *.el || die "elisp-compile failed"
+               popd
+       fi
+}
+
+src_install() {
+       # Do not compress singular's info file (singular.hlp)
+       # some consumer of that file do not know how to deal with compression
+       docompress -x /usr/share/info
+
+       default
+
+       dosym Singular /usr/bin/"${PN}"
+
+       find "${ED}" -type f -name '*.la' -delete || die
+}
+
+src_test() {
+       # SINGULAR_PROCS_DIR need to be set to "" otherwise plugins from
+       # an already installed version of singular may be used and cause 
segfault
+       # See https://github.com/Singular/Sources/issues/980
+       SINGULAR_PROCS_DIR="" emake check
+}
+
+pkg_postinst() {
+       einfo "Additional functionality can be enabled by installing"
+       einfo "sci-mathematics/4ti2"
+
+       use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}

Reply via email to