From 7e84f2c47ae7a0e8b76fc3080b1c7ee8487ee76b Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 31 Oct 2023 15:49:11 +0000 Subject: gentoo auto-resync : 31:10:2023 - 15:49:10 --- sci-mathematics/giac/Manifest | 7 +- .../giac/files/giac-1.9.0.55-system-gl2ps.patch | 69 -------- .../files/giac-1.9.0.67-glibcxx-assertions.patch | 30 ++++ .../giac/files/giac-1.9.0.67-system-gl2ps.patch | 69 ++++++++ sci-mathematics/giac/giac-1.9.0.55-r1.ebuild | 186 --------------------- sci-mathematics/giac/giac-1.9.0.67.ebuild | 186 +++++++++++++++++++++ 6 files changed, 289 insertions(+), 258 deletions(-) delete mode 100644 sci-mathematics/giac/files/giac-1.9.0.55-system-gl2ps.patch create mode 100644 sci-mathematics/giac/files/giac-1.9.0.67-glibcxx-assertions.patch create mode 100644 sci-mathematics/giac/files/giac-1.9.0.67-system-gl2ps.patch delete mode 100644 sci-mathematics/giac/giac-1.9.0.55-r1.ebuild create mode 100644 sci-mathematics/giac/giac-1.9.0.67.ebuild (limited to 'sci-mathematics/giac') diff --git a/sci-mathematics/giac/Manifest b/sci-mathematics/giac/Manifest index 41feb6c1dff0..538475f70f22 100644 --- a/sci-mathematics/giac/Manifest +++ b/sci-mathematics/giac/Manifest @@ -2,10 +2,11 @@ AUX giac-1.6.0-pari-2.11.patch 783 BLAKE2B f173015006fef4a9f8176965f923664f11b0b AUX giac-1.7.0.1-gsl_lapack.patch 2912 BLAKE2B b0f9f05126316b9b76d5f1a5ad737cc88ecbc71dc450ef714f6da323128d9c945ada9d658c73647987f84638498aa4d3bbef49062424ab63b53c76defc127902 SHA512 14bfcb04e5a23933cfa4635789bf02f6d6e6a528c167504678b3d2ecb38f135d0c05583712005fe53afd7696cc9ebee5dc3ab90cac056d75bd43be786075b011 AUX giac-1.9.0.21-pari-2.15.patch 298 BLAKE2B 99329cfd473ec3b580caf8f9700501e8b5dca9143cd04d883729880109d4e1962d19dce19aaf51e5d26ab09dc399a45a3a052847837f53a60c1b21087ebeabb8 SHA512 f9335dd47ee43ca10b784c8302422efcd5a835b1fe13fa134f5d36e453327e96624e77e086710f9d556352b1d62e6e693b3308fe8af329492e11d68cc9451b5b AUX giac-1.9.0.55-pari-2.15-test.patch 356 BLAKE2B 93863190cb64dbf0073f56e9657478b5e6d166da5ae36b81e55a45bbb75359cf63b23089b8191ae1e60958bf14652d5ac935b1aaf900b2bfb7d30b7ef3dc9504 SHA512 09155a08d8078d9bff610be15a2df0329ab9db53ca3873f01e61b02095361ab201ec93600cebc2ef42ccac67be40095a71bdaecaf54561e824fa267085245c7f -AUX giac-1.9.0.55-system-gl2ps.patch 2242 BLAKE2B 6248f5ad950f43f8c1e274b93040d3fbd2dd3d20f23580d1ea7f08f9f932376bb1cdf129da424773832349a5f7e049f9da0dee0ce707601f10055b6bed5e47e6 SHA512 ac3db9ba34a7cc57f544061337f465644feeda5aece3449066c9cfe87583ed4ca8c964cb458254a50fa29fcf40a05236d37c712820d9bd367b0f52bf8507ef09 AUX giac-1.9.0.55-undefined-behavior.patch 2081 BLAKE2B 68a3b7f2a56b6d425442f47fe6f069c1cce1bda38d85421519c68fdc9fd256ff7228886c74697151a80ec79016b436c82bc033be098b62e848e49ec499273d2d SHA512 ae531a42c9670d1ecb2cc6546ed256532705a99e13154fef6024f0ab69d5ff07b2872746b164b1cf234dce1ffe9c448a174a60dfb34eb914535ae92816007a2a +AUX giac-1.9.0.67-glibcxx-assertions.patch 990 BLAKE2B 9dc38f425038ecb645e00893ed61b053e7c3963827a18ebf2a74423b9b5cd4506760becd50b83cd7587401e1088268580f4350e20fd8eaec500c34144e97ec40 SHA512 33fe0350196763acbd409156a137f9468b9e60f97c42682887d9d75fcfe75b4cf870e3ba9a166fadc5a2f3bf70b8ff2dc87b93b157d4dc1e05d25596b135bb09 +AUX giac-1.9.0.67-system-gl2ps.patch 2283 BLAKE2B 6c98e3ea09f0f8b0e34e2634218595d576e7eee85234e56436db24fe0aa276288f58049bcfb374ae42d7f104b44f0d51b3e81acc6e2e9af1cecc4e4adadfada8 SHA512 88dae722242b81ee22b7d377e4fd4b98d1e687307aaf3091ab17ffc720678bedb93c30bc0fd92c0388b7994945b820f31dd57e831736b6dd29e5d8285320d4e6 DIST giac_1.9.0-29.tar.gz 115441843 BLAKE2B 9114db489be0c51d67c87b0a0c187fecf9eca84d7cb3117e72793290c8e606e76c3d9bc8a2d573fc2de2f2d885fb34d18583302a5902d69045976114ac02b95e SHA512 57b58aa35c724eae7df36229cb3d45d1b724a8a88acb1d1dd0711be64dd7c891850e7242662e448ce955e76b856973f9065628b65ce0826c60e277cb944b21b7 -DIST giac_1.9.0-55.tar.gz 113729553 BLAKE2B 8e95693623cfc8558e9a3b2dcc5e11cdbc4f2e25f0c2e88322dee986c5e010a63ced682bdbcb8b6dda61c8309477e8a106360a56f3a88d76043359bdb64f5d61 SHA512 c8043893fbe8951662c6c2fdd53adf6d2602ae7d3810254cd76d8478992005d9320de5e6be9453a03d5ed976900ec7721790ee61dace58e7121e0cfc330ecad9 +DIST giac_1.9.0-67.tar.gz 114193594 BLAKE2B aaa43b9b0eb9db04b55f995e4b47a5513a6a7238111d63900a33e8cc0d632cc24f1136e2bc5a2e3d6109fbd06405105684e571eacea5f887ef96f0f70a51adf5 SHA512 c03a7d22ea64f6281671eace533b7d7581ed3a3af060c112f8634fc7f13d450ba42568d9e26f8d8736e851f53ba1e9de8482fdb775427b71fcd78e2ca0ba4a69 EBUILD giac-1.9.0.29-r1.ebuild 4542 BLAKE2B dce03818ac9af080b4416b6546563e4be99617b220c4661a540f77e0127760582cfe0a3df8c6a2f94da676b8a0e9fa967be59748184b86eb8934481c607d7500 SHA512 6915110b6964d2e79d7da01cee85ee3b51b944f9879e5659447f0cba5d74bda8c4113ee9290203510fdb57ad1ba60eae52639b134ed74eec01b04a97d75cf066 -EBUILD giac-1.9.0.55-r1.ebuild 5007 BLAKE2B 8a4cdcb42ecae741970e262c012f2f9b7ac058508c3c824b5fe7ca745dce16bc59441262ce9f79b3e581f40989eb875bacfd268ee2e819185dfacc3e0dbcd9fc SHA512 6ff8cc8639796f8f71e80dac5a172bc8a60eceeb7c4986f787185440e8d921a9b18adbf2ece1c17b85c22c762a1b3d50bc70c9e984839e6ed34b458d895475da +EBUILD giac-1.9.0.67.ebuild 5019 BLAKE2B b180801337ad448fdbd4dc3bb35efa2ad44df8493790f7b264ab1e1e6b8e52b525ab57e62614ff150a5af5eda72b44c57a8ca5c44bf1d9244f24dd8afaf9c372 SHA512 1423181001d9110633d569a1519525fd2f95126df0f424f27143a4e75f7cc32e251b4927bb8ec6d497c5519d59d21469ae8c2ea277fbe898afe32250c059834e MISC metadata.xml 1315 BLAKE2B a461d359b33617422f5863466bdbec9ddf56db03467b992c887bce9967d434913489602fd684edc893303078f89cf94d01b44cfdc0ccff33db9b42c5e686cfa8 SHA512 eaeb480010c9dbdfd75516e45e97e3226d2b2812c44e217b318c5a1d86dc40820bac0de69686d7b502775b14a6f1ed3bc11d2372b891c46a37080b4e84da9a1c diff --git a/sci-mathematics/giac/files/giac-1.9.0.55-system-gl2ps.patch b/sci-mathematics/giac/files/giac-1.9.0.55-system-gl2ps.patch deleted file mode 100644 index e82d892560da..000000000000 --- a/sci-mathematics/giac/files/giac-1.9.0.55-system-gl2ps.patch +++ /dev/null @@ -1,69 +0,0 @@ -From ca8eda770e36d2649bfc808464415308a5e9fc47 Mon Sep 17 00:00:00 2001 -From: Michael Orlitzky -Date: Thu, 6 Jul 2023 21:27:09 -0400 -Subject: [PATCH 1/1] src: unbundle gl2ps. - -Updated patch based on the one by infinity0@debian.org. Ours links -only libxcas (and not libgiac) to gl2ps. ---- - configure.ac | 4 ++++ - src/Graph3d.cc | 2 +- - src/Makefile.am | 6 +++--- - 3 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 8e1813e..2f7f644 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -465,6 +465,10 @@ dnl AC_CHECK_LIB(GLU, main) - AC_CHECK_LIB(fltk_images, main) - FLTK_LIBS="$LIBS $X_LIBS" - AC_SUBST(FLTK_LIBS) -+ -+ # GL2PS is only used by xcas (the GUI) -+ GL2PS_LIBS="-lgl2ps" -+ AC_SUBST(GL2PS_LIBS) - cd src && ln -sf ../fltk-1.3.8 && cd .. - fi - fi -diff --git a/src/Graph3d.cc b/src/Graph3d.cc -index 7f54327..12d4723 100644 ---- a/src/Graph3d.cc -+++ b/src/Graph3d.cc -@@ -45,7 +45,7 @@ - #include "Xcas1.h" - #include "Cfg.h" - #include "Print.h" --#include "gl2ps.h" -+#include - - #ifdef __APPLE__ - //#include -diff --git a/src/Makefile.am b/src/Makefile.am -index 3fdd209..120ccb6 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -35,17 +35,17 @@ libbf.h list.h cutils.h qjsgiac.h \ - quickjs.h js.h quickjs-atom.h quickjs-libc.h quickjs-opcode.h bf2gmp.h - - noinst_LTLIBRARIES = libxcas.la --libxcas_la_LIBADD = libgiac.la $(FLTK_LIBS) -+libxcas_la_LIBADD = libgiac.la $(FLTK_LIBS) $(GL2PS_LIBS) - - libxcas_la_SOURCES = History.cc Input.cc Xcas1.cc Equation.cc Print.cc \ - Tableur.cc Editeur.cc Graph.cc Graph3d.cc Help1.cc Cfg.cc \ - Flv_CStyle.cc \ - Flve_Check_Button.cc Flve_Input.cc Flv_Style.cc Flv_Data_Source.cc \ -- Flve_Combo.cc Flv_List.cc Flv_Table.cc gl2ps.c \ -+ Flve_Combo.cc Flv_List.cc Flv_Table.cc \ - History.h Input.h Xcas1.h Equation.h Print.h Tableur.h \ - Editeur.h Graph.h Graph3d.h Help1.h Cfg.h Python.cc Python.h \ - Flv_CStyle.H Flve_Check_Button.H Flve_Input.H Flv_Style.H \ -- Flv_Data_Source.H Flve_Combo.H Flv_List.H Flv_Table.H gl2ps.h -+ Flv_Data_Source.H Flve_Combo.H Flv_List.H Flv_Table.H - - ##libjavagiac_la_LIBADD = libgiac.la - --- -2.39.3 - diff --git a/sci-mathematics/giac/files/giac-1.9.0.67-glibcxx-assertions.patch b/sci-mathematics/giac/files/giac-1.9.0.67-glibcxx-assertions.patch new file mode 100644 index 000000000000..dcdcfb5a728e --- /dev/null +++ b/sci-mathematics/giac/files/giac-1.9.0.67-glibcxx-assertions.patch @@ -0,0 +1,30 @@ +From 8fa2b53ee0db1827a4ddd88a7e754a7b1d91ca2c Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky +Date: Fri, 25 Aug 2023 20:33:31 -0400 +Subject: [PATCH 1/1] configure.ac: delete _GLIBCXX_ASSERTIONS override + +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. +--- + configure.ac | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d66c3e1..6fef28b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -45,10 +45,6 @@ GINAC_STD_CXX_HEADERS + AC_CHECK_HEADERS(regex) + AC_CHECK_FUNCS(tgammaf) + +-dnl CXXFLAGS="$CXXFLAGS -std=c++0x" +-dnl avoid "security" checks for vectors +-CXXFLAGS="$CXXFLAGS -U_GLIBCXX_ASSERTIONS" +- + dnl Define DOUBLEVAL if bigendian + if test "x$ac_cv_c_bigendian" = "xyes"; then + CXXFLAGS="$CXXFLAGS -DDOUBLEVAL" +-- +2.41.0 diff --git a/sci-mathematics/giac/files/giac-1.9.0.67-system-gl2ps.patch b/sci-mathematics/giac/files/giac-1.9.0.67-system-gl2ps.patch new file mode 100644 index 000000000000..88c0fbc4f5a8 --- /dev/null +++ b/sci-mathematics/giac/files/giac-1.9.0.67-system-gl2ps.patch @@ -0,0 +1,69 @@ +From 753b67c88d7feb166cf99243118943c09beba62a Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky +Date: Mon, 30 Oct 2023 21:40:57 -0400 +Subject: [PATCH 1/1] src: unbundle gl2ps + +Updated patch based on the one by infinity0@debian.org. Ours links +only libxcas (and not libgiac) to gl2ps. +--- + configure.ac | 4 ++++ + src/Graph3d.cc | 2 +- + src/Makefile.am | 6 +++--- + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d66c3e1..2acbf30 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -469,6 +469,10 @@ dnl AC_CHECK_LIB(GLU, main) + AC_CHECK_LIB(fltk_images, main) + FLTK_LIBS="$LIBS $X_LIBS" + AC_SUBST(FLTK_LIBS) ++ ++ # GL2PS is only used by xcas (the GUI) ++ GL2PS_LIBS="-lgl2ps" ++ AC_SUBST(GL2PS_LIBS) + cd src && ln -sf ../fltk-1.3.8 && cd .. + fi + fi +diff --git a/src/Graph3d.cc b/src/Graph3d.cc +index e653cc4..a6c3468 100644 +--- a/src/Graph3d.cc ++++ b/src/Graph3d.cc +@@ -23,7 +23,7 @@ + #define __CARBONSOUND__ + #ifdef HAVE_LIBFLTK + #ifdef HAVE_LIBFLTK_GL +-#include "gl2ps.h" ++#include + #else + void gl_font(int fontid, int size){} + void gl_draw(const char *){} +diff --git a/src/Makefile.am b/src/Makefile.am +index 7c90381..2ae8003 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -35,17 +35,17 @@ libbf.h list.h cutils.h qjsgiac.h \ + quickjs.h js.h quickjs-atom.h quickjs-libc.h quickjs-opcode.h bf2gmp.h + + noinst_LTLIBRARIES = libxcas.la +-libxcas_la_LIBADD = libgiac.la $(FLTK_LIBS) ++libxcas_la_LIBADD = libgiac.la $(FLTK_LIBS) $(GL2PS_LIBS) + + libxcas_la_SOURCES = History.cc Input.cc Xcas1.cc Equation.cc Print.cc \ + Tableur.cc Editeur.cc Graph.cc Graph3d.cc Help1.cc Cfg.cc \ + Flv_CStyle.cc \ + Flve_Check_Button.cc Flve_Input.cc Flv_Style.cc Flv_Data_Source.cc \ +- Flve_Combo.cc Flv_List.cc Flv_Table.cc gl2ps.c \ ++ Flve_Combo.cc Flv_List.cc Flv_Table.cc \ + History.h Input.h Xcas1.h Equation.h Print.h Tableur.h \ + Editeur.h Graph.h Graph3d.h Help1.h Cfg.h Python.cc Python.h \ + Flv_CStyle.H Flve_Check_Button.H Flve_Input.H Flv_Style.H \ +- Flv_Data_Source.H Flve_Combo.H Flv_List.H Flv_Table.H gl2ps.h ++ Flv_Data_Source.H Flve_Combo.H Flv_List.H Flv_Table.H + + ##libjavagiac_la_LIBADD = libgiac.la + +-- +2.41.0 + diff --git a/sci-mathematics/giac/giac-1.9.0.55-r1.ebuild b/sci-mathematics/giac/giac-1.9.0.55-r1.ebuild deleted file mode 100644 index ecc901270b63..000000000000 --- a/sci-mathematics/giac/giac-1.9.0.55-r1.ebuild +++ /dev/null @@ -1,186 +0,0 @@ -# Copyright 1999-2023 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" -LICENSE="GPL-2" - -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.6.0-pari-2.11.patch" - "${FILESDIR}/${PN}-1.9.0.21-pari-2.15.patch" - "${FILESDIR}/${PN}-1.9.0.55-pari-2.15-test.patch" - "${FILESDIR}/${PN}-1.9.0.55-undefined-behavior.patch" - "${FILESDIR}/${PN}-1.9.0.55-system-gl2ps.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" - -S="${WORKDIR}/${PN}-${MY_PV}" - -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 - - default - eautoreconf -} - -src_configure() { - append-cxxflags -std=c++14 # 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 -} diff --git a/sci-mathematics/giac/giac-1.9.0.67.ebuild b/sci-mathematics/giac/giac-1.9.0.67.ebuild new file mode 100644 index 000000000000..a9165fd96178 --- /dev/null +++ b/sci-mathematics/giac/giac-1.9.0.67.ebuild @@ -0,0 +1,186 @@ +# Copyright 1999-2023 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" +LICENSE="GPL-2" + +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.55-pari-2.15-test.patch" + "${FILESDIR}/${PN}-1.9.0.55-undefined-behavior.patch" + "${FILESDIR}/${PN}-1.9.0.67-system-gl2ps.patch" + "${FILESDIR}/${PN}-1.9.0.67-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" + +S="${WORKDIR}/${PN}-${MY_PV}" + +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 + + default + eautoreconf +} + +src_configure() { + append-cxxflags -std=c++14 # 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 +} -- cgit v1.2.3