commit:     07a2116aa1b13393dad67070653f5397fe224091
Author:     François Bissey <frp.bissey <AT> gmail <DOT> com>
AuthorDate: Wed Aug 21 23:03:11 2024 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Thu Sep  5 23:48:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=07a2116a

sci-mathematics/giac: add 1.9.0.995

Signed-off-by: François Bissey <frp.bissey <AT> gmail.com>
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 sci-mathematics/giac/Manifest                      |   1 +
 .../files/giac-1.9.0.995-glibcxx-assertions.patch  |  21 +++
 sci-mathematics/giac/giac-1.9.0.995.ebuild         | 191 +++++++++++++++++++++
 3 files changed, 213 insertions(+)

diff --git a/sci-mathematics/giac/Manifest b/sci-mathematics/giac/Manifest
index c8840a6dbd27..b69209a45253 100644
--- a/sci-mathematics/giac/Manifest
+++ b/sci-mathematics/giac/Manifest
@@ -1,2 +1,3 @@
 DIST giac_1.9.0-29.tar.gz 115441843 BLAKE2B 
9114db489be0c51d67c87b0a0c187fecf9eca84d7cb3117e72793290c8e606e76c3d9bc8a2d573fc2de2f2d885fb34d18583302a5902d69045976114ac02b95e
 SHA512 
57b58aa35c724eae7df36229cb3d45d1b724a8a88acb1d1dd0711be64dd7c891850e7242662e448ce955e76b856973f9065628b65ce0826c60e277cb944b21b7
 DIST giac_1.9.0-93.tar.gz 115117442 BLAKE2B 
397c64c5587fadca37b3298fef8c15c2977ded30849af2f3d3ee8a083d26f8db4645ac6a0db2fce4e254144cdc70b88d3313de58a502510e21a22927e1af3505
 SHA512 
b8c7d7070218afdfdb8f9a94911407860ab81ead9a60adf7f0c0cec3c50cec5fad3a439269192a01ef4d55ed822a4a619b123b6938ba76f9aba3537d14bc4680
+DIST giac_1.9.0-995.tar.gz 128346387 BLAKE2B 
c275d2cad511b906a3822156bd05f83cd77265cf489da82b111973b0a80de7abd1875d0cf0116e34610aa20b5ea2cc36550950dbf1eb1a321db8c7145c789137
 SHA512 
7111a21df5efe1ef5f14dc744277e18f3e4701842d827da0f8d745e1bcec4c06b45e3306b7ed3c4affee59c5df2454643900eefe32d46019771e6bb07bc971d9

diff --git a/sci-mathematics/giac/files/giac-1.9.0.995-glibcxx-assertions.patch 
b/sci-mathematics/giac/files/giac-1.9.0.995-glibcxx-assertions.patch
new file mode 100644
index 000000000000..60172a814d2c
--- /dev/null
+++ b/sci-mathematics/giac/files/giac-1.9.0.995-glibcxx-assertions.patch
@@ -0,0 +1,21 @@
+From Michael Orlitzky <[email protected]> in the original version
+of the patch:
+
+This was added upstream when it was pointed out that the codebase
+contains undefined behavior that triggers glibcxx's assertions.
+Disabling the assertions without fixing the undefined behavior is not
+a satisfactory solution, so we drop the override.
+
+diff --git a/configure.ac b/configure.ac
+index 96b0223..cdc5618 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -48,7 +48,7 @@ AC_CHECK_FUNCS(tgammaf)
+ dnl avoid "security" checks for vectors is also included in first.h
+ dnl use -std=c++17 -march=native  for vectorclass v2 optimizations
+ dnl -DUSE_OBJET_BIDON added because xcas::localisation() does not load 
locales correctly for modules loaded before main() is executed
+-CXXFLAGS="$CXXFLAGS  -U_GLIBCXX_ASSERTIONS -DUSE_OBJET_BIDON"
++CXXFLAGS="$CXXFLAGS -DUSE_OBJET_BIDON"
+ 
+ dnl Define DOUBLEVAL if bigendian
+ if test "x$ac_cv_c_bigendian" = "xyes"; then

diff --git a/sci-mathematics/giac/giac-1.9.0.995.ebuild 
b/sci-mathematics/giac/giac-1.9.0.995.ebuild
new file mode 100644
index 000000000000..32f7faec217b
--- /dev/null
+++ b/sci-mathematics/giac/giac-1.9.0.995.ebuild
@@ -0,0 +1,191 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic xdg-utils
+
+FETCH_P="${PN}_"$(ver_rs  3 '-')
+MY_PV=$(ver_cut 1-3)
+DESCRIPTION="A free C++ Computer Algebra System library and its interfaces"
+HOMEPAGE="https://www-fourier.ujf-grenoble.fr/~parisse/giac.html";
+SRC_URI="https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/${FETCH_P}.tar.gz";
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+# The licensing is explained in README. We disable or delete several
+# bundled features (MicroPytho, QuickJS, FLTK, gl2ps) that are
+# specifically mentioned there.
+LICENSE="GPL-3+"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+LANGS="el en es pt"
+IUSE="ao doc +ecm examples gc +glpk gui test"
+for X in ${LANGS} ; do
+       IUSE="${IUSE} l10n_${X}"
+done
+
+# nauty and cliquer are automagical dependencies
+RDEPEND="dev-libs/gmp:=[cxx(+)]
+       dev-libs/mpfr:=
+       dev-libs/ntl:=
+       net-misc/curl
+       sci-libs/mpfi
+       sci-libs/gsl:=
+       sci-mathematics/cliquer
+       sci-mathematics/nauty
+       sci-mathematics/pari:=[threads]
+       sys-libs/readline:=
+       virtual/lapack
+       virtual/blas
+       ao? ( media-libs/libao )
+       ecm? ( sci-mathematics/gmp-ecm )
+       gc? ( dev-libs/boehm-gc )
+       glpk? ( sci-mathematics/glpk )
+       gui? (
+               media-libs/libpng:=
+               x11-libs/fltk[opengl]
+               x11-libs/gl2ps
+       )"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="dev-tex/hevea
+       virtual/pkgconfig
+       app-alternatives/yacc"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-1.7.0.1-gsl_lapack.patch"
+       "${FILESDIR}/${PN}-1.9.0.21-pari-2.15.patch"
+       "${FILESDIR}/${PN}-1.9.0.67-system-gl2ps.patch"
+       "${FILESDIR}/${P}-glibcxx-assertions.patch"
+)
+
+REQUIRED_USE="test? ( gui )"
+
+# The mirror restriction is due to the French documentation for which
+# "Other kind of redistributions require the consent of the copyright
+# holder."
+RESTRICT="!test? ( test ) mirror"
+
+src_prepare() {
+       # giac-1.9.0.55 tries to compile a bundled version of FLTK for you
+       # if you pass --enable-fltk but the system version isn't detected.
+       # We make sure that cannot happen under any circumstances.
+       rm fltk-1.3.8-source.tar.bz2 || die
+
+       # similar deal with gl2ps
+       rm src/gl2ps.[ch] || die
+
+       # mjs is an arm executable artifact that should not have been shipped
+       # Removing it so it can be rebuilt with the host architecture
+       rm src/mkjs || die
+
+       default
+       eautoreconf
+}
+
+src_configure() {
+       append-cxxflags -std=c++17 # bug 788283
+
+       if use gui; then
+               append-cppflags -I$(fltk-config --includedir)
+               append-lfs-flags
+
+               # Get the big-L flags from fltk's LDFLAGS.
+               append-ldflags $(fltk-config --ldflags | sed -e 
's/\(-L\S*\)\s.*/\1/')
+       fi
+
+       # Using libsamplerate is currently broken
+       #
+       # The giac build system supports --docdir, but the path 
/usr/share/giac/doc
+       # is hard-coded throughout the source code, so passing anything else to
+       # ./configure --docdir just causes problems. Later, we'll put things 
right.
+       #
+       # micropython is for specific use in an upstream project, so is quickjs.
+       # Note that disabling fltk is not a real option. It just skip 
autodetection
+       # but doesn't disable compiling against fltk. png is needed as part of 
fltk
+       # support.
+       #
+       # As of 1.9.0.25, --{en,dis}able-gui is no op. The only way to
+       # disable the gui is though --disable-fltk.
+       econf \
+               --enable-gmpxx \
+               --disable-samplerate \
+               --disable-micropy \
+               --disable-quickjs \
+               --docdir="${EPREFIX}"/usr/share/giac/doc \
+               $(use_enable gui fltk)  \
+               $(use_enable gui png)  \
+               $(use_enable ao) \
+               $(use_enable ecm) \
+               $(use_enable glpk) \
+               $(use_enable gc)
+
+}
+
+src_install() {
+       docompress -x "/usr/share/doc/${PF}/"{aide_cas,doc,examples}
+       emake install DESTDIR="${D}"
+
+       # Move all of /usr/share/giac (which contains only documentation) to
+       # its /usr/share/doc/${PF} counterpart.
+       dodir /usr/share/doc
+       mv "${ED}"/usr/share/giac "${ED}/usr/share/doc/${PF}" || die
+
+       # and create a symlink from the original location to the new one
+       dosym "./doc/${PF}" /usr/share/giac
+
+       # This is duplicated in ${ED}/usr/share/doc/${PF}/examples
+       rm -r "${ED}/usr/share/doc/${PF}/doc/Exemples" || die
+
+       # These aren't supposed to be installed at all.
+       find "${ED}/usr/share/doc/${PF}" -type f -name 'Makefile*' -delete || 
die
+
+       # The French docs are not freely licensed according to the README.
+       rm -r "${ED}/usr/share/doc/${PF}/doc/fr" || die
+
+       dodoc AUTHORS ChangeLog INSTALL NEWS README TROUBLES
+       if ! use gui; then
+               rm -rf \
+                       "${ED}"/usr/bin/x* \
+                       "${ED}"/usr/share/application-registry \
+                       "${ED}"/usr/share/applications \
+                       "${ED}"/usr/share/icons \
+                       || die "failed to clean up fltk files"
+       fi
+
+       if ! use doc; then
+               rm -r "${ED}/usr/share/doc/${PF}/doc" || die "failed to remove 
doc directory"
+       else
+               for lang in ${LANGS}; do
+                       if use l10n_$lang; then
+                               dosym ../aide_cas 
"/usr/share/doc/${PF}/doc/${lang}/aide_cas"
+                       else
+                               rm -r "${ED}/usr/share/giac/doc/${lang}" \
+                                       || die "failed to remove ${lang} 
documentation"
+                       fi
+               done
+       fi
+
+       if ! use examples; then
+               rm -r "${ED}/usr/share/doc/${PF}/examples" \
+                  || die "failed to remove examples"
+       fi
+
+       find "${ED}" -type f -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+       if use gui; then
+               xdg_desktop_database_update
+               xdg_icon_cache_update
+       fi
+}
+
+pkg_postrm() {
+       if use gui; then
+               xdg_desktop_database_update
+               xdg_icon_cache_update
+       fi
+}

Reply via email to