commit:     01ba2e4db767c6d825086b33e16c75ccca8d70e9
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 18:53:32 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 19:41:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01ba2e4d

sci-libs/plplot: migrate to lua-single.eclass

Same as with Python, upstream does not support installing Lua bindings
for multiple implementations. Seeing as their documentation does not
mention any versions of Lua newer than 5.1, no big deal.

Closes: https://bugs.gentoo.org/752849
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 profiles/package.mask                     |   1 +
 sci-libs/plplot/plplot-5.15.0-r100.ebuild | 298 ++++++++++++++++++++++++++++++
 2 files changed, 299 insertions(+)

diff --git a/profiles/package.mask b/profiles/package.mask
index 6ca89aa8213..94c62c87a59 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -559,6 +559,7 @@ dev-lua/luacrypto
 >=net-analyzer/suricata-6.0.0-r100
 >=net-im/swift-4.0.2-r100
 >=net-p2p/eiskaltdcpp-2.2.10-r100
+>=sci-libs/plplot-5.15.0-r100
 >=sci-visualization/gnuplot-5.4.0-r100
 >=sci-visualization/fityk-1.3.1-r100
 >=www-apache/mod_security-2.9.3-r100

diff --git a/sci-libs/plplot/plplot-5.15.0-r100.ebuild 
b/sci-libs/plplot/plplot-5.15.0-r100.ebuild
new file mode 100644
index 00000000000..6d53e801f4c
--- /dev/null
+++ b/sci-libs/plplot/plplot-5.15.0-r100.ebuild
@@ -0,0 +1,298 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+WX_GTK_VER=3.0-gtk3
+FORTRAN_NEEDED=fortran
+LUA_COMPAT=( lua5-1 )
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit cmake flag-o-matic fortran-2 java-pkg-opt-2 lua-single 
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
+       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.5:* )
+       latex? (
+               app-text/ghostscript-gpl
+               virtual/latex-base
+       )
+       lua? ( ${LUA_DEPS} )
+       ocaml? (
+               dev-lang/ocaml
+               dev-ml/camlidl
+               cairo? ( dev-ml/cairo-ocaml[gtk] )
+       )
+       octave? ( sci-mathematics/octave:0= )
+       pdf? ( media-libs/libharu:0= )
+       python? (
+               ${PYTHON_DEPS}
+               $(python_gen_cond_dep '
+                       dev-python/numpy[${PYTHON_MULTI_USEDEP}]
+                       qt5? ( dev-python/PyQt5[${PYTHON_MULTI_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
+       )
+       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
+
+       # 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
+)
+
+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_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
+               -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
+
+       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
+}

Reply via email to