From 34f4e562294da67362411c7e4ec5f130779b22eb Mon Sep 17 00:00:00 2001 From: Pacho Ramos Date: Fri, 24 Nov 2023 15:06:35 +0100 Subject: sci-libs/plplot: add 5.15.0_p6 Apply lots of bugfixes from Debian Closes: https://bugs.gentoo.org/814971 Closes: https://bugs.gentoo.org/828434 Closes: https://bugs.gentoo.org/832513 Closes: https://bugs.gentoo.org/891885 Signed-off-by: Pacho Ramos --- sci-libs/plplot/Manifest | 1 + sci-libs/plplot/plplot-5.15.0_p6.ebuild | 296 ++++++++++++++++++++++++++++++++ 2 files changed, 297 insertions(+) create mode 100644 sci-libs/plplot/plplot-5.15.0_p6.ebuild diff --git a/sci-libs/plplot/Manifest b/sci-libs/plplot/Manifest index 782cbdef89d3..114740b9cb03 100644 --- a/sci-libs/plplot/Manifest +++ b/sci-libs/plplot/Manifest @@ -1 +1,2 @@ DIST plplot-5.15.0.tar.gz 15380293 BLAKE2B 41f359c4e86c7a26fe53a9d82a9f02aeb97b5b6f44abca590621640c56e50a62823e8a03165a939689f5456cee419b8292ea34faccd07641bd4a953b6f1d73fe SHA512 54533245569b724a7ef90392cc6e9ae65873e6cbab923df0f841c8b43def5e4307690894c7681802209bd3c8df97f54285310a706428f79b3340cce3207087c8 +DIST plplot_5.15.0+dfsg2-6.debian.tar.xz 73416 BLAKE2B 2f0a9be0aea6d77b2c538f53a509636a6edca59eb930b7885da7ba915a0324d3cbe0e4b0ffe33a2a552ec7b8b679931e9eaa3e4810372b05ac3c0901ea9c6ee9 SHA512 0d64352eb08cb5bb003e8eac11c73533f6ecd08ad542cce002474d20ba4a899fd54b77f96b5e53656b551180fa693da820e7c40b18d6d43e20ea2c7377c36c69 diff --git a/sci-libs/plplot/plplot-5.15.0_p6.ebuild b/sci-libs/plplot/plplot-5.15.0_p6.ebuild new file mode 100644 index 000000000000..7608ead0153c --- /dev/null +++ b/sci-libs/plplot/plplot-5.15.0_p6.ebuild @@ -0,0 +1,296 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +WX_GTK_VER=3.2-gtk3 +FORTRAN_NEEDED=fortran +LUA_COMPAT=( lua5-1 ) +PYTHON_COMPAT=( python3_{9..11} ) +# fails with ninja, due to USE=java missing swig output dependencies +CMAKE_MAKEFILE_GENERATOR=emake + +inherit cmake flag-o-matic fortran-2 java-pkg-opt-2 lua-single python-single-r1 virtualx wxwidgets + +DESCRIPTION="Multi-language scientific plotting library" +HOMEPAGE="https://plplot.sourceforge.net" +SRC_URI="mirror://sourceforge/${PN}/${P/_p*}.tar.gz + mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV/_p*}+dfsg2-${PV/*_p}.debian.tar.xz" +S="${WORKDIR}/${P/_p*}" + +LICENSE="LGPL-2" +SLOT="0/14" # SONAME of libplplot.so +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" + +IUSE="cairo cxx doc +dynamic examples fortran gd java jpeg latex lua ocaml octave pdf + png python qhull qt5 shapefile svg tcl test threads tk truetype wxwidgets X" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + qt5? ( dynamic ) + test? ( latex ) + tk? ( tcl ) +" + +RESTRICT=" + !test? ( test ) + octave? ( test ) +" + +RDEPEND=" + cairo? ( x11-libs/cairo:0=[svg(+)?,X] ) + gd? ( media-libs/gd:2=[jpeg?,png?] ) + java? ( >=virtual/jre-1.8:* ) + latex? ( + app-text/ghostscript-gpl + virtual/latex-base + ) + lua? ( ${LUA_DEPS} ) + ocaml? ( + dev-lang/ocaml:= + dev-ml/camlidl:= + ) + octave? ( sci-mathematics/octave:0= ) + pdf? ( media-libs/libharu:0= ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + qt5? ( dev-python/PyQt5[${PYTHON_USEDEP}] ) + ') + ) + qhull? ( media-libs/qhull:0= ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qtsvg:5 + dev-qt/qtprintsupport:5 + ) + shapefile? ( sci-libs/shapelib:0= ) + tcl? ( + dev-lang/tcl:0= + dev-tcltk/itcl:0= + tk? ( + dev-lang/tk:0= + dev-tcltk/itk + ) + ) + truetype? ( + media-fonts/freefont + media-libs/lasi:0= + gd? ( media-libs/gd:2=[truetype] ) + ) + wxwidgets? ( + x11-libs/wxGTK:${WX_GTK_VER}=[X] + x11-libs/agg:0=[truetype?] + ) + X? ( + x11-libs/libX11:0= + x11-libs/libXau:0= + x11-libs/libXdmcp:0= + )" + +DEPEND="${RDEPEND} + virtual/pkgconfig + java? ( + >=virtual/jdk-1.8:* + dev-lang/swig + ) + lua? ( dev-lang/swig ) + ocaml? ( dev-ml/findlib ) + octave? ( >=dev-lang/swig-3.0.12 ) + python? ( dev-lang/swig ) + test? ( + media-fonts/font-misc-misc + media-fonts/font-cursor-misc + ) +" + +pkg_setup() { + use python && python-single-r1_pkg_setup + use lua && lua-single_pkg_setup + use java && java-pkg-opt-2_pkg_setup + use fortran && fortran-2_pkg_setup +} + +src_prepare() { + use wxwidgets && setup-wxwidgets + cmake_src_prepare + + # Debian patches + for p in $(<"${WORKDIR}"/debian/patches/series) ; do + eapply -p1 "${WORKDIR}/debian/patches/${p}" + done + + # avoid installing license + sed -i -e '/COPYING.LIB/d' CMakeLists.txt || die + + # prexify hard-coded /usr/include in cmake modules + sed -i \ + -e "s:/usr/include:${EPREFIX}/usr/include:g" \ + -e "s:/usr/lib:${EPREFIX}/usr/$(get_libdir):g" \ + -e "s:/usr/share:${EPREFIX}/usr/share:g" \ + cmake/modules/*.cmake || die + + # change default install directories for doc and examples + local f + while IFS="" read -d $'\0' -r f; do + sed -i -e 's:${DATA_DIR}/examples:${DOC_DIR}/examples:g' "${f}" || die + done < <(find "${S}" -name CMakeLists.txt -print0) + + sed -i \ + -e 's:${VERSION}::g' \ + -e "s:doc/\${PACKAGE}:doc/${PF}:" \ + cmake/modules/instdirs.cmake || die + + java-utils-2_src_prepare +} + +src_configure() { + # - don't build doc, it pulls in a whole stack of horrible dependencies + # - Bindings: + # * Ada is a mess in Gentoo, don't use + # * D has been removed from Gentoo, don't use + # * Qt4 has been disabled, as it is deprecated and unsupported upstream + # - DPLD_* drivers need to use ON/OFF instead of the usex defaults yes/no, as + # the testsuite performs a string comparison to determine which tests to run + + # Octave bindings now require C++11 support, #609980 + append-cxxflags -std=c++11 + + local mycmakeargs=( + # The build system does not honour CMAKE_INSTALL_LIBDIR as a + # relative dir, which is against the spirit of GNUInstallDirs, #610066 + -DCMAKE_INSTALL_LIBDIR="${EPREFIX}"/usr/$(get_libdir) + + ## Features + -DBUILD_DOC=OFF + -DBUILD_DOX_DOC=OFF + -DUSE_RPATH=OFF + -DPREBUILT_DOC=$(usex doc) + -DHAVE_SHAPELIB=$(usex shapefile) + -DWITH_FREETYPE=$(usex truetype) + -DPL_HAVE_PTHREAD=$(usex threads) + -DPL_HAVE_QHULL=$(usex qhull) + -DPLPLOT_USE_QT5=$(usex qt5) + + ## Tests + -DBUILD_TEST=$(usex test) + + ## Bindings + -DENABLE_ada=OFF + -DENABLE_d=OFF + -DENABLE_ocaml=$(usex ocaml) + -DENABLE_pyqt4=OFF + -DENABLE_cxx=$(usex cxx) + -DENABLE_DYNDRIVERS=$(usex dynamic) + -DENABLE_fortran=$(usex fortran) + -DENABLE_java=$(usex java) + -DENABLE_lua=$(usex lua) + -DENABLE_octave=$(usex octave) + -DENABLE_python=$(usex python) + -DENABLE_qt=$(usex qt5) + -DENABLE_tcl=$(usex tcl) + -DENABLE_itcl=$(usex tcl) + -DENABLE_tk=$(usex tk) + -DENABLE_itk=$(usex tk) + -DENABLE_wxwidgets=$(usex wxwidgets) + + ## Drivers + -DPLD_cgm=OFF + -DPLD_gif=OFF + -DPLD_jpeg=OFF + -DPLD_plmeta=OFF + -DPLD_png=OFF + -DPLD_pstex=OFF + -DPLD_wxpng=OFF + -DPLD_mem=ON + -DPLD_null=ON + -DPLD_wingcc=ON + # Cairo + $(usex cairo "" "-DDEFAULT_NO_CAIRO_DEVICES=ON") + -DPLD_epscairo=$(usex cairo ON OFF) + -DPLD_extcairo=$(usex cairo ON OFF) + -DPLD_memcairo=$(usex cairo ON OFF) + -DPLD_pdfcairo=$(usex cairo ON OFF) + -DPLD_pngcairo=$(usex cairo ON OFF) + -DPLD_pscairo=$(usex cairo ON OFF) + -DPLD_svgcairo=$(usex cairo ON OFF) + -DPLD_xcairo=$(usex cairo ON OFF) + # LaTeX + -DPLD_ps=$(usex latex ON OFF) + # PDF + -DPLD_pdf=$(usex pdf ON OFF) + # Qt + -DPLD_aqt=$(usex qt5 ON OFF) + -DPLD_bmpqt=$(usex qt5 ON OFF) + -DPLD_epsqt=$(usex qt5 ON OFF) + -DPLD_extqt=$(usex qt5 ON OFF) + -DPLD_jpgqt=$(usex qt5 ON OFF) + -DPLD_memqt=$(usex qt5 ON OFF) + -DPLD_pdfqt=$(usex qt5 ON OFF) + -DPLD_pngqt=$(usex qt5 ON OFF) + -DPLD_ppmqt=$(usex qt5 ON OFF) + -DPLD_qtwidget=$(usex qt5 ON OFF) + -DPLD_svgqt=$(usex qt5 ON OFF) + -DPLD_tiffqt=$(usex qt5 ON OFF) + # SVG + -DPLD_svg=$(usex svg ON OFF) + # Tk + -DPLD_ntk=$(usex tk ON OFF) + -DPLD_tk=$(usex tk ON OFF) + -DPLD_tkwin=$(usex tk ON OFF) + # Truetype + -DPLD_psttf=$(usex truetype ON OFF) + # Wx + -DPLD_wxwidgets=$(usex wxwidgets ON OFF) + # X + -DPLD_xfig=$(usex X ON OFF) + -DPLD_xwin=$(usex X ON OFF) + ) + + use truetype && mycmakeargs+=( + -DPL_FREETYPE_FONT_PATH="${EPREFIX}"/usr/share/fonts/freefont + ) + use shapefile && mycmakeargs+=( + -DSHAPELIB_INCLUDE_DIR="${EPREFIX}"/usr/include/libshp + ) + use lua && mycmakeargs+=( + -DREQUIRED_LUA_VERSION=$(lua_get_version) + ) + use ocaml && mycmakeargs+=( + -DOCAML_INSTALL_DIR="$(ocamlc -where)" + ) + use python && mycmakeargs+=( + -DENABLE_pyqt5=$(usex qt5) + ) + + cmake_src_configure + + # clean up bloated pkg-config files (help linking properly on prefix) + sed -i \ + -e "/Cflags/s:-I\(${EPREFIX}\|\)/usr/include[[:space:]]::g" \ + -e "/Libs/s:-L\(${EPREFIX}\|\)/usr/lib\(64\|\)[[:space:]]::g" \ + -e "s:${LDFLAGS}::g" \ + "${BUILD_DIR}"/pkgcfg/*pc || die +} + +src_test() { + virtx cmake_src_test +} + +src_install() { + cmake_src_install + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + else + rm -r "${ED}"/usr/share/doc/${PF}/examples || die + fi + + use python && python_optimize + + if use java; then + java-pkg_dojar "${BUILD_DIR}"/examples/java/${PN}.jar + java-pkg_regso "${EPREFIX}"/usr/$(get_libdir)/jni/libplplotjavac_wrap.so + fi +} -- cgit v1.2.3-65-gdbad