From 8602db94fcb7b4682f76d94f4cbc706abe6b1d9b Mon Sep 17 00:00:00 2001 From: AstroFloyd Date: Thu, 18 May 2023 11:38:04 +0200 Subject: sci-libs/plplot: revision bump to v5.15.0-r2. Signed-off-by: AstroFloyd --- sci-libs/plplot/metadata.xml | 28 ++-- sci-libs/plplot/plplot-5.13.0-r1.ebuild | 283 -------------------------------- sci-libs/plplot/plplot-5.14.0-r2.ebuild | 144 ++++++++-------- sci-libs/plplot/plplot-5.15.0-r2.ebuild | 146 ++++++++-------- 4 files changed, 173 insertions(+), 428 deletions(-) delete mode 100644 sci-libs/plplot/plplot-5.13.0-r1.ebuild diff --git a/sci-libs/plplot/metadata.xml b/sci-libs/plplot/metadata.xml index 93b58c1..f306f1a 100644 --- a/sci-libs/plplot/metadata.xml +++ b/sci-libs/plplot/metadata.xml @@ -2,23 +2,21 @@ - PLplot is a library of functions that are useful for making scientific - plots. It can be used from within compiled languages such as C, C++, - FORTRAN and Java, as well as interactively from interpreted languages such - as Octave, Python, Perl and Tcl. It is capable of producing standard x-y - plots, semilog plots, log-log plots, contour plots, 3D surface plots, mesh - plots, bar charts and pie charts. Multiple graphs may be composited, and it - also supports a large variety of output file devices such as Postscript, - PNG, JPEG, LaTeX and others. It is also possible to to use interactive - devices such as xwin, tk and xterm as output devices. PLplot also offers - support for extended characters inculding the Greek alphabet and a host of - mathematical symbols. - + PLplot is a library of functions that are useful for making scientific + plots. It can be used from within compiled languages such as C, C++, + FORTRAN and Java, as well as interactively from interpreted languages such + as Octave, Python, Perl and Tcl. It is capable of producing standard x-y + plots, semilog plots, log-log plots, contour plots, 3D surface plots, mesh + plots, bar charts and pie charts. Multiple graphs may be composited, and it + also supports a large variety of output file devices such as Postscript, + PNG, JPEG, LaTeX and others. It is also possible to to use interactive + devices such as xwin, tk and xterm as output devices. PLplot also offers + support for extended characters inculding the Greek alphabet and a host of + mathematical symbols. + Build with dynamic drivers - Add bindings for - sci-mathematics/octave - Add bindings for dev-perl/PDL + Add bindings for sci-mathematics/octave Add bindings for media-libs/qhull Enable support for ESRI shapefiles diff --git a/sci-libs/plplot/plplot-5.13.0-r1.ebuild b/sci-libs/plplot/plplot-5.13.0-r1.ebuild deleted file mode 100644 index 31df733..0000000 --- a/sci-libs/plplot/plplot-5.13.0-r1.ebuild +++ /dev/null @@ -1,283 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -WX_GTK_VER=3.0-gtk3 -FORTRAN_NEEDED=fortran -FORTRAN_STANDARD=95 -PYTHON_COMPAT=( python{2_7,3_6,3_7,3_8,3_9} ) - -inherit cmake flag-o-matic fortran-2 java-pkg-opt-2 python-single-r1 toolchain-funcs virtualx wxwidgets - -DESCRIPTION="Multi-language scientific plotting library" -HOMEPAGE="http://plplot.sourceforge.net/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" - -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 - pdl png python qhull qt5 shapefile svg tcl test threads tk truetype wxwidgets X" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) qt5? ( dynamic ) test? ( latex ) tk? ( tcl )" -RESTRICT="octave? ( test )" - -RDEPEND=" - cairo? ( x11-libs/cairo:0=[svg?,X] ) - gd? ( media-libs/gd:2=[jpeg?,png?] ) - java? ( >=virtual/jre-1.5:* ) - latex? ( - app-text/ghostscript-gpl - virtual/latex-base - ) - lua? ( dev-lang/lua:0= ) - ocaml? ( - dev-lang/ocaml - dev-ml/camlidl - cairo? ( dev-ml/cairo-ocaml[gtk] ) - ) - octave? ( sci-mathematics/octave:0= ) - pdf? ( media-libs/libharu:0= ) - pdl? ( - dev-perl/PDL - dev-perl/XML-DOM - ) - python? ( - $(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.5 - 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 - )" - -PATCHES=( - "${FILESDIR}"/${PN}-5.9.6-python.patch - "${FILESDIR}"/${PN}-5.11.0-octave.patch - "${FILESDIR}"/${PN}-5.12.0-multiarch.patch - "${FILESDIR}"/${PN}-5.12.0-java-install-path.patch - "${FILESDIR}"/${PN}-5.12.0-ocaml-remove-rpath.patch -) - -pkg_setup() { - use python && python-single-r1_pkg_setup - use java && java-pkg-opt-2_pkg_setup - use fortran && fortran-2_pkg_setup -} - -#src_prepare() { -# use wxwidgets && need-wxwidgets unicode -# cmake-utils_src_prepare -# -# # 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 - -DCMAKE_SKIP_RPATH=ON - -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 - -DTEST_DYNDRIVERS=OFF - -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) - -DTRY_OCTAVE4=$(usex octave) - -DENABLE_octave=$(usex octave) - -DENABLE_pdl=$(usex pdl) - -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 ocaml && mycmakeargs+=( - -DOCAML_INSTALL_DIR="$(ocamlc -where)" - ) - use python && mycmakeargs+=( - -DENABLE_pyqt5=$(usex qt5) - ) - - cmake-utils_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-utils_src_test -} - -src_install() { - cmake-utils_src_install - - if use examples; then - docompress -x /usr/share/doc/${PF}/examples - else - rm -r "${ED%/}"/usr/share/doc/${PF}/examples || die - fi - - if use java; then - java-pkg_dojar "${BUILD_DIR}"/examples/java/${PN}.jar - java-pkg_regso "${EPREFIX}"/usr/$(get_libdir)/jni/plplotjavac_wrap.so - fi -} diff --git a/sci-libs/plplot/plplot-5.14.0-r2.ebuild b/sci-libs/plplot/plplot-5.14.0-r2.ebuild index b054f90..d4203ac 100644 --- a/sci-libs/plplot/plplot-5.14.0-r2.ebuild +++ b/sci-libs/plplot/plplot-5.14.0-r2.ebuild @@ -1,55 +1,61 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 WX_GTK_VER=3.0-gtk3 FORTRAN_NEEDED=fortran -FORTRAN_STANDARD=95 -PYTHON_COMPAT=( python{2_7,3_6,3_7,3_8,3_9} ) +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 python-single-r1 toolchain-funcs virtualx wxwidgets +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="http://plplot.sourceforge.net/" +HOMEPAGE="https://plplot.sourceforge.net" SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" 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 - pdl png python qhull qt5 shapefile svg tcl test threads tk truetype wxwidgets X" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) qt5? ( dynamic ) test? ( latex ) tk? ( tcl )" -RESTRICT="octave? ( test )" + 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] - x11-libs/pango:0=[X] - ) + cairo? ( x11-libs/cairo:0=[svg(+)?,X] ) gd? ( media-libs/gd:2=[jpeg?,png?] ) - java? ( >=virtual/jre-1.5:* ) + java? ( >=virtual/jre-1.8:* ) latex? ( app-text/ghostscript-gpl virtual/latex-base ) - lua? ( dev-lang/lua:0= ) + lua? ( ${LUA_DEPS} ) ocaml? ( - dev-lang/ocaml - dev-ml/camlidl - cairo? ( dev-ml/cairo-ocaml[gtk] ) + dev-lang/ocaml:= + dev-ml/camlidl:= ) octave? ( sci-mathematics/octave:0= ) pdf? ( media-libs/libharu:0= ) - pdl? ( - dev-perl/PDL - dev-perl/XML-DOM - ) python? ( + ${PYTHON_DEPS} $(python_gen_cond_dep ' dev-python/numpy[${PYTHON_USEDEP}] qt5? ( dev-python/PyQt5[${PYTHON_USEDEP}] ) - ') + ') ) qhull? ( media-libs/qhull:0= ) qt5? ( @@ -84,58 +90,64 @@ RDEPEND=" DEPEND="${RDEPEND} virtual/pkgconfig java? ( - >=virtual/jdk-1.5 + >=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 - )" + ) +" PATCHES=( "${FILESDIR}"/${PN}-5.9.6-python.patch - "${FILESDIR}"/${PN}-5.11.0-octave.patch - "${FILESDIR}"/${PN}-5.12.0-multiarch.patch - "${FILESDIR}"/${PN}-5.12.0-java-install-path.patch - "${FILESDIR}"/${PN}-5.12.0-ocaml-remove-rpath.patch + + # Fedora patches + "${FILESDIR}"/${PN}-5.15.0-ieee.patch + "${FILESDIR}"/${PN}-5.15.0-ocaml.patch + "${FILESDIR}"/${PN}-5.12.0-safe-string.patch + "${FILESDIR}"/${PN}-5.15.0-QPainterPath-include.patch + "${FILESDIR}"/${PN}-5.15.0-configure-clang16.patch ) 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 && need-wxwidgets unicode -# cmake-utils_src_prepare -# -# # 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_prepare() { + use wxwidgets && setup-wxwidgets + cmake_src_prepare + + # 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 @@ -157,7 +169,7 @@ src_configure() { ## Features -DBUILD_DOC=OFF -DBUILD_DOX_DOC=OFF - -DCMAKE_SKIP_RPATH=ON + -DUSE_RPATH=OFF -DPREBUILT_DOC=$(usex doc) -DHAVE_SHAPELIB=$(usex shapefile) -DWITH_FREETYPE=$(usex truetype) @@ -166,7 +178,6 @@ src_configure() { -DPLPLOT_USE_QT5=$(usex qt5) ## Tests - -DTEST_DYNDRIVERS=OFF -DBUILD_TEST=$(usex test) ## Bindings @@ -179,9 +190,7 @@ src_configure() { -DENABLE_fortran=$(usex fortran) -DENABLE_java=$(usex java) -DENABLE_lua=$(usex lua) - -DTRY_OCTAVE4=$(usex octave) -DENABLE_octave=$(usex octave) - -DENABLE_pdl=$(usex pdl) -DENABLE_python=$(usex python) -DENABLE_qt=$(usex qt5) -DENABLE_tcl=$(usex tcl) @@ -249,6 +258,9 @@ src_configure() { 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)" ) @@ -256,7 +268,7 @@ src_configure() { -DENABLE_pyqt5=$(usex qt5) ) - cmake-utils_src_configure + cmake_src_configure # clean up bloated pkg-config files (help linking properly on prefix) sed -i \ @@ -267,20 +279,22 @@ src_configure() { } src_test() { - virtx cmake-utils_src_test + virtx cmake_src_test } src_install() { - cmake-utils_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 + 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/plplotjavac_wrap.so + java-pkg_regso "${EPREFIX}"/usr/$(get_libdir)/jni/libplplotjavac_wrap.so fi } diff --git a/sci-libs/plplot/plplot-5.15.0-r2.ebuild b/sci-libs/plplot/plplot-5.15.0-r2.ebuild index b054f90..5603d28 100644 --- a/sci-libs/plplot/plplot-5.15.0-r2.ebuild +++ b/sci-libs/plplot/plplot-5.15.0-r2.ebuild @@ -1,55 +1,61 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 WX_GTK_VER=3.0-gtk3 FORTRAN_NEEDED=fortran -FORTRAN_STANDARD=95 -PYTHON_COMPAT=( python{2_7,3_6,3_7,3_8,3_9} ) +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 python-single-r1 toolchain-funcs virtualx wxwidgets +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="http://plplot.sourceforge.net/" +HOMEPAGE="https://plplot.sourceforge.net" SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" 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 - pdl png python qhull qt5 shapefile svg tcl test threads tk truetype wxwidgets X" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) qt5? ( dynamic ) test? ( latex ) tk? ( tcl )" -RESTRICT="octave? ( test )" + 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] - x11-libs/pango:0=[X] - ) + cairo? ( x11-libs/cairo:0=[svg(+)?,X] ) gd? ( media-libs/gd:2=[jpeg?,png?] ) - java? ( >=virtual/jre-1.5:* ) + java? ( >=virtual/jre-1.8:* ) latex? ( app-text/ghostscript-gpl virtual/latex-base ) - lua? ( dev-lang/lua:0= ) + lua? ( ${LUA_DEPS} ) ocaml? ( - dev-lang/ocaml - dev-ml/camlidl - cairo? ( dev-ml/cairo-ocaml[gtk] ) + dev-lang/ocaml:= + dev-ml/camlidl:= ) octave? ( sci-mathematics/octave:0= ) pdf? ( media-libs/libharu:0= ) - pdl? ( - dev-perl/PDL - dev-perl/XML-DOM - ) python? ( + ${PYTHON_DEPS} $(python_gen_cond_dep ' dev-python/numpy[${PYTHON_USEDEP}] qt5? ( dev-python/PyQt5[${PYTHON_USEDEP}] ) - ') + ') ) qhull? ( media-libs/qhull:0= ) qt5? ( @@ -84,58 +90,66 @@ RDEPEND=" DEPEND="${RDEPEND} virtual/pkgconfig java? ( - >=virtual/jdk-1.5 + >=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 - )" + ) +" PATCHES=( "${FILESDIR}"/${PN}-5.9.6-python.patch - "${FILESDIR}"/${PN}-5.11.0-octave.patch - "${FILESDIR}"/${PN}-5.12.0-multiarch.patch - "${FILESDIR}"/${PN}-5.12.0-java-install-path.patch - "${FILESDIR}"/${PN}-5.12.0-ocaml-remove-rpath.patch + + # Fedora patches + "${FILESDIR}"/${PN}-5.15.0-ocaml-rpath.patch + "${FILESDIR}"/${PN}-5.15.0-ieee.patch + "${FILESDIR}"/${PN}-5.15.0-multiarch.patch + "${FILESDIR}"/${PN}-5.15.0-ocaml.patch + "${FILESDIR}"/${PN}-5.12.0-safe-string.patch + "${FILESDIR}"/${PN}-5.15.0-QPainterPath-include.patch + "${FILESDIR}"/${PN}-5.15.0-configure-clang16.patch ) 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 && need-wxwidgets unicode -# cmake-utils_src_prepare -# -# # 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_prepare() { + use wxwidgets && setup-wxwidgets + cmake_src_prepare + + # 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 @@ -157,7 +171,7 @@ src_configure() { ## Features -DBUILD_DOC=OFF -DBUILD_DOX_DOC=OFF - -DCMAKE_SKIP_RPATH=ON + -DUSE_RPATH=OFF -DPREBUILT_DOC=$(usex doc) -DHAVE_SHAPELIB=$(usex shapefile) -DWITH_FREETYPE=$(usex truetype) @@ -166,7 +180,6 @@ src_configure() { -DPLPLOT_USE_QT5=$(usex qt5) ## Tests - -DTEST_DYNDRIVERS=OFF -DBUILD_TEST=$(usex test) ## Bindings @@ -179,9 +192,7 @@ src_configure() { -DENABLE_fortran=$(usex fortran) -DENABLE_java=$(usex java) -DENABLE_lua=$(usex lua) - -DTRY_OCTAVE4=$(usex octave) -DENABLE_octave=$(usex octave) - -DENABLE_pdl=$(usex pdl) -DENABLE_python=$(usex python) -DENABLE_qt=$(usex qt5) -DENABLE_tcl=$(usex tcl) @@ -249,6 +260,9 @@ src_configure() { 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)" ) @@ -256,7 +270,7 @@ src_configure() { -DENABLE_pyqt5=$(usex qt5) ) - cmake-utils_src_configure + cmake_src_configure # clean up bloated pkg-config files (help linking properly on prefix) sed -i \ @@ -267,20 +281,22 @@ src_configure() { } src_test() { - virtx cmake-utils_src_test + virtx cmake_src_test } src_install() { - cmake-utils_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 + 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/plplotjavac_wrap.so + java-pkg_regso "${EPREFIX}"/usr/$(get_libdir)/jni/libplplotjavac_wrap.so fi } -- cgit v1.2.3-65-gdbad