commit:     533d3a72e06349a1ee683ba8c451b3a546e97a7b
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 22 19:08:48 2021 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Mon Mar 22 19:46:34 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=533d3a72

sci-mathematics/singular: new version 4.2.0p1.

Taken from the sage-on-gentoo overlay with minor tweaks and a new
patch. Many, many thanks to François Bissey for his work on this.

Closes: https://bugs.gentoo.org/712004
Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 sci-mathematics/singular/Manifest                  |   1 +
 .../files/singular-4.0.3-gfan_linking.patch        |  13 +++
 .../files/singular-4.1.3-doc_install.patch         |  62 ++++++++++++
 .../singular/files/singular-4.2.0-no-static.patch  |  69 ++++++++++++++
 sci-mathematics/singular/singular-4.2.0_p1.ebuild  | 104 +++++++++++++++++++++
 5 files changed, 249 insertions(+)

diff --git a/sci-mathematics/singular/Manifest 
b/sci-mathematics/singular/Manifest
index 5cb78241d61..a0d12ebf497 100644
--- a/sci-mathematics/singular/Manifest
+++ b/sci-mathematics/singular/Manifest
@@ -2,3 +2,4 @@ DIST singular-4.0.2-share.tar.gz 8789162 BLAKE2B 
357a68f68cc0508e4e197427c56232d
 DIST singular-4.0.2.tar.gz 8635172 BLAKE2B 
5f565bf14677d8414300d7a5602aa96c8cef7e863fd858083fe4561742b545d74a5fc4de95ef0c63acf4f78c66405bac7ba77a954e42b2e87a6da608e4732bcd
 SHA512 
4543a45839ce8adc45e3b2edd84a6e398b7ba157da1eda050dbce2a8b20333eb0c63433e3e7eaf59d76bf6bcb65c1b1611bfc08c25fd493c88e2f06624898e3d
 DIST singular-4.0.3-share.tar.gz 6633256 BLAKE2B 
c137b72aaa0926eb006624e03fe938678acb94a41da525de1ca4f7711985d253926788b550d2d98b8def15fb0cb60b2527c1c04566a29a28135fcb1a70246025
 SHA512 
5f8ae4ecd22a3470e5f00393e03079936d7ed334f44ae056ed1eb1719054afc4371b03e920b598033605600c843dc39cb6b01308505323e2c084dfe1f7a1b94a
 DIST singular-4.0.3.tar.gz 12615042 BLAKE2B 
b3c63434974bb8b5fdef86cbcbe73b76a47503b28dcae6bfc6e4210e1ab1c14224ac0f6eeefa9d8004450f6d9a26843368a9b2ea16bca68bf1215ce33e83df0d
 SHA512 
781227997c510829b02c969259d627572c0b62aa152c9ef623ff27de5b2df0c8e024f086740b89ca8f96b6e3f7def04f8d62ca79adb199d6249ade9b8cbb06ab
+DIST singular-4.2.0p1.tar.gz 14155171 BLAKE2B 
444553f87d7ca8d6a62e4519c9857a6892757e92285df7c3b686913a9b51c9ae8d802c41382b0b2b6e37dc2dc496d4a10f262c98407470219cdce131e8baf127
 SHA512 
2ecd8940c9e8d70a93dbdb4df6da313c00151e5cb959f8eed5856e8df99089b5a03e514fbcdc70903c77df8b59fa7ef9f3b134f1de510b795fa6ea0341089bd8

diff --git a/sci-mathematics/singular/files/singular-4.0.3-gfan_linking.patch 
b/sci-mathematics/singular/files/singular-4.0.3-gfan_linking.patch
new file mode 100644
index 00000000000..f228d980ffc
--- /dev/null
+++ b/sci-mathematics/singular/files/singular-4.0.3-gfan_linking.patch
@@ -0,0 +1,13 @@
+diff --git a/gfanlib/Makefile.am b/gfanlib/Makefile.am
+index 2039af0..a1b7dce 100644
+--- a/gfanlib/Makefile.am
++++ b/gfanlib/Makefile.am
+@@ -20,6 +20,8 @@ libgfan_la_SOURCES = $(SOURCES)
+ libgfan_includedir =$(includedir)/gfanlib
+ libgfan_include_HEADERS = config.h gfanlib_mixedvolume.h 
gfanlib_polymakefile.h gfanlib_symmetry.h gfanlib_vector.h gfanlib_z.h 
_config.h  gfanlib.h gfanlib_paralleltraverser.h gfanlib_q.h  
gfanlib_traversal.h gfanlib_zcone.h gfanlib_circuittableint.h gfanlib_matrix.h 
gfanlib_polyhedralfan.h gfanlib_symmetriccomplex.h gfanlib_tropicalhomotopy.h 
gfanlib_zfan.h
+ 
++libgfan_la_LIBADD = $(CDDGMPLDFLAGS)
++
+ DISTCLEANFILES =  config.h
+ 
+ moduledir = $(libexecdir)/singular/MOD

diff --git a/sci-mathematics/singular/files/singular-4.1.3-doc_install.patch 
b/sci-mathematics/singular/files/singular-4.1.3-doc_install.patch
new file mode 100644
index 00000000000..10e831bea70
--- /dev/null
+++ b/sci-mathematics/singular/files/singular-4.1.3-doc_install.patch
@@ -0,0 +1,62 @@
+diff --git a/Makefile.am b/Makefile.am
+index c21b6ba..ea61758 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -14,10 +14,11 @@ dist-hook:
+ 
+ install-data-local:
+       if test -e $(srcdir)/doc/doc.tbz2; then\
+-        (cat ${top_srcdir}/doc/doc.tbz2| (cd $(DESTDIR)$(datadir)/singular; 
tar jxf -));\
+          mkdir $(DESTDIR)$(datadir)/info;\
+-         mkdir $(DESTDIR)$(datadir)/doc;\
+-         mv  $(DESTDIR)$(datadir)/singular/singular.hlp  
$(DESTDIR)$(datadir)/info/.;\
++         mkdir -p $(DESTDIR)$(docdir);\
++        (cat ${top_srcdir}/doc/doc.tbz2| (cd $(DESTDIR)$(docdir); tar -jx 
--no-same-owner -f -));\
++         mv  $(DESTDIR)$(docdir)/singular.hlp  $(DESTDIR)$(datadir)/info/.;\
++         @INSTALL_DATA@ doc/singular.idx  $(DESTDIR)$(datadir)/singular/.;\
+       fi
+ 
+ uninstall-local:
+diff --git a/configure.ac b/configure.ac
+index 2d53a55..d43b5fe 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -248,6 +248,11 @@ AX_NORMALIZE_PATH([config_datadir],['/'])
+ AC_DEFINE_UNQUOTED([DATA_DIR],"$config_datadir",[datadir])
+ AC_SUBST(DATA_DIR, "$config_datadir")
+ 
++AX_RECURSIVE_EVAL([[$]docdir], [config_docdir])
++AX_NORMALIZE_PATH([config_docdir],['/'])
++AC_DEFINE_UNQUOTED([DOC_DIR],"$config_docdir",[docdir])
++AC_SUBST(DOC_DIR, "$config_docdir")
++
+ SING_SHOW_FLAGS([Compiler/linker flags: ])
+ 
+ 
+diff --git a/resources/configure.ac b/resources/configure.ac
+index cf6720f..ac5f2d0 100644
+--- a/resources/configure.ac
++++ b/resources/configure.ac
+@@ -72,5 +72,9 @@ AX_RECURSIVE_EVAL([[$]datadir], [config_datadir])
+ AX_NORMALIZE_PATH([config_datadir],['/'])
+ AC_DEFINE_UNQUOTED([DATA_DIR],"$config_datadir",[datadir])
+ 
++AX_RECURSIVE_EVAL([[$]htmldir], [config_htmldir])
++AX_NORMALIZE_PATH([config_htmldir],['/'])
++AC_DEFINE_UNQUOTED([HTML_DIR],"$config_datadir",[htmldir])
++
+ AC_CONFIG_FILES([singular_resources.pc Makefile])
+ AC_OUTPUT
+diff --git a/resources/feResource.cc b/resources/feResource.cc
+index 3d75bc9..7e4fc8c 100644
+--- a/resources/feResource.cc
++++ b/resources/feResource.cc
+@@ -85,7 +85,7 @@ VAR feResourceConfig_s feResourceConfigs[] =
+   {"DefaultDir",'d',    feResDir,   "SINGULAR_DEFAULT_DIR",  
SINGULAR_DEFAULT_DIR,  (char *)""},
+   {"InfoFile",  'i',    feResFile,  "SINGULAR_INFO_FILE",   
"%D/info/singular.hlp", (char *)""},
+   {"IdxFile",   'x',    feResFile,  "SINGULAR_IDX_FILE",    
"%D/singular/singular.idx",  (char *)""},
+-  {"HtmlDir",   'h',    feResDir,   "SINGULAR_HTML_DIR",    
"%D/singular/html",              (char *)""},
++  {"HtmlDir",   'h',    feResDir,   "SINGULAR_HTML_DIR",    HTML_DIR,         
     (char *)""},
+   {"ManualUrl", 'u',    feResUrl,   "SINGULAR_URL",         
"https://www.singular.uni-kl.de/Manual/";,    (char *)""},
+   {"ExDir",     'm',    feResDir,   "SINGULAR_EXAMPLES_DIR","%r/examples",    
      (char *)""},
+   {"Path",      'p',    feResPath,  NULL,                   "%b;%P;$PATH",    
         (char *)""},

diff --git a/sci-mathematics/singular/files/singular-4.2.0-no-static.patch 
b/sci-mathematics/singular/files/singular-4.2.0-no-static.patch
new file mode 100644
index 00000000000..5509c58bd6b
--- /dev/null
+++ b/sci-mathematics/singular/files/singular-4.2.0-no-static.patch
@@ -0,0 +1,69 @@
+From ef9d66230f9697caaa77dbfc275650412d0d9c0d Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <[email protected]>
+Date: Mon, 22 Mar 2021 09:02:58 -0400
+Subject: [PATCH 1/1] Singular/Makefile.am: drop -static linker flags.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+There are a few hard-coded "-static" flags in the Makefile.am for
+Singular that are causing weird problems for shared builds. The
+visible symptom on Gentoo was a few insecure rpaths being stripped
+from the "Singular" executable, but François Bissey was able to track
+down the root cause, namely the "-static" that is causing libtool to
+act weird.
+
+In retrospect, this problem was also reported on Stack Overflow at,
+
+  https://stackoverflow.com/questions/17905121
+
+The Gentoo bug is,
+
+  https://bugs.gentoo.org/712004
+
+If we experience no problems with this patch, it will be sent upstream.
+---
+ Singular/Makefile.am | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Singular/Makefile.am b/Singular/Makefile.am
+index 7fe43bffb..1e440765d 100644
+--- a/Singular/Makefile.am
++++ b/Singular/Makefile.am
+@@ -153,7 +153,7 @@ Singular_SOURCES = tesths.cc fegetopt.c fegetopt.h 
utils.cc  utils.h
+ 
+ Singular_LDADD = libSingular.la ${OMALLOC_LIBS} ${BUILTIN_FLAGS}
+ 
+-Singular_LDFLAGS = -static ${AM_LDFLAGS} ${BUILTIN_FLAGS}
++Singular_LDFLAGS = ${AM_LDFLAGS} ${BUILTIN_FLAGS}
+ 
+ Singulard_SOURCES = tesths.cc fegetopt.c fegetopt.h utils.cc  utils.h
+ 
+@@ -166,7 +166,6 @@ dist_script_SCRIPTS = singularsurf singularsurf_jupyter 
singularsurf_win surfex
+ 
+ #### ESingular
+ ESingular_CPPFLAGS = ${AM_CPPFLAGS} -DESINGULAR -DPROTO
+-# ESingular_LDFLAGS = -static ${AM_LDFLAGS}
+ ESingular_LDADD =  ${top_builddir}/libpolys/reporter/libreporter.la \
+ ${top_builddir}/libpolys/misc/libmisc.la ${OMALLOC_LIBS} \
+ ${top_builddir}/resources/libsingular_resources.la
+@@ -176,7 +175,6 @@ ESingular_SOURCES = emacs.cc fegetopt.c fegetopt.h 
feOptES.inc feOpt.cc
+ 
+ #### same for TSingular
+ TSingular_CPPFLAGS = ${AM_CPPFLAGS} -DTSINGULAR -DPROTO
+-# TSingular_LDFLAGS = -static ${AM_LDFLAGS}
+ TSingular_LDADD = ${top_builddir}/libpolys/reporter/libreporter.la \
+ ${top_builddir}/libpolys/misc/libmisc.la ${OMALLOC_LIBS} \
+ ${top_builddir}/resources/libsingular_resources.la
+@@ -191,7 +189,7 @@ libparse_CPPFLAGS = ${AM_CPPFLAGS} -DSTANDALONE_PARSER
+ libparse_SOURCES = libparse.cc fegetopt.c fegetopt.h utils.cc  utils.h
+ 
+ libparse_LDADD =
+-libparse_LDFLAGS = -static ${AM_LDFLAGS}
++libparse_LDFLAGS = ${AM_LDFLAGS}
+ 
+ #########################################################
+ # the Singular library (*.lib files)
+-- 
+2.26.2
+

diff --git a/sci-mathematics/singular/singular-4.2.0_p1.ebuild 
b/sci-mathematics/singular/singular-4.2.0_p1.ebuild
new file mode 100644
index 00000000000..b015ba5fee6
--- /dev/null
+++ b/sci-mathematics/singular/singular-4.2.0_p1.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools 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/Sources";
+SRC_URI="ftp://jim.mathematik.uni-kl.de/pub/Math/${MY_PN}/SOURCES/${MY_DIR}/${PN}-${MY_PV}.tar.gz";
+
+LICENSE="BSD GPL-2 GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-linux"
+IUSE="emacs examples +readline static-libs"
+
+RDEPEND="dev-libs/gmp:0
+       dev-libs/ntl:=
+       emacs? ( >=app-editors/emacs-23.1:* )
+       sci-mathematics/flint
+       sci-libs/cddlib
+       dev-lang/perl
+       readline? ( sys-libs/readline )"
+
+DEPEND="${RDEPEND}"
+
+SITEFILE=60${PN}-gentoo.el
+
+S="${WORKDIR}/${PN}-${MY_DIR2}"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-4.0.3-gfan_linking.patch"
+       "${FILESDIR}/${PN}-4.1.3-doc_install.patch"
+       "${FILESDIR}/${PN}-4.2.0-no-static.patch"
+)
+
+src_prepare() {
+       default
+
+       eautoreconf
+}
+
+src_configure() {
+       econf --with-gmp \
+               --with-ntl="${EPREFIX}"/usr \
+               --with-flint \
+               --enable-gfanlib \
+               --disable-debug \
+               --disable-doc \
+               --enable-factory \
+               --enable-libfac \
+               --enable-IntegerProgramming \
+               --disable-polymake \
+               $(use_enable static-libs static) \
+               $(use_enable emacs) \
+               $(use_with readline)
+}
+
+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}"
+
+       # purge .la file
+       find "${ED}" -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