sci-libs/plplot: Version bump to 5.12.0
authorDavid Seifert <soap@gentoo.org>
Sat, 18 Feb 2017 19:09:44 +0000 (20:09 +0100)
committerDavid Seifert <soap@gentoo.org>
Sat, 18 Feb 2017 19:10:08 +0000 (20:10 +0100)
Bug: https://bugs.gentoo.org/show_bug.cgi?id=529382
Bug: https://bugs.gentoo.org/show_bug.cgi?id=554156
Bug: https://bugs.gentoo.org/show_bug.cgi?id=585114

Package-Manager: Portage-2.3.3, Repoman-2.3.1

sci-libs/plplot/Manifest
sci-libs/plplot/files/plplot-5.12.0-java-install-path.patch [new file with mode: 0644]
sci-libs/plplot/files/plplot-5.12.0-multiarch.patch [new file with mode: 0644]
sci-libs/plplot/plplot-5.12.0.ebuild [new file with mode: 0644]

index f31d3e9684cbb68950239168d984ba398b3f2c20..e94655ac8ece8f12aa9155666a5fdb3611967427 100644 (file)
@@ -1 +1,2 @@
 DIST plplot-5.11.1.tar.gz 15445404 SHA256 289dff828c440121e57b70538b3f0fb4056dc47159bc1819ea444321f2ff1c4c SHA512 663da681a2e1ab2cb551e028485a55dfa111d8828187e84a50f5605c3346288ebd07a0e20ff4c50f00efc4f52be84bc100602de42e5713868ad32fdb431b80fd WHIRLPOOL 21e11c496b89060d00c9b0e513a0fb4833713f021d1fa63ea9210198713324e6efc3a1a28a218a75acd1fa5752ee4058465575481c27cfaec1cb91c52db40864
+DIST plplot-5.12.0.tar.gz 16253895 SHA256 8dc5da5ef80e4e19993d4c3ef2a84a24cc0e44a5dade83201fca7160a6d352ce SHA512 5566b9db0ddbb5ecaa677168f65f240197b2b8b23a02a812efc7e97fc79686b523591edad9c83de2e72935090d426b4cb9fe82496d9eb5a5a521c42161e9848b WHIRLPOOL ef50a5974d6e5043cf225e840021517bd13b9c3ae8680f8f4f808c9e641f5593d2faab6e0825a93e884c42509dc7a9b77655b2da7e793991e9384ccf0bf00ecb
diff --git a/sci-libs/plplot/files/plplot-5.12.0-java-install-path.patch b/sci-libs/plplot/files/plplot-5.12.0-java-install-path.patch
new file mode 100644 (file)
index 0000000..2c053a2
--- /dev/null
@@ -0,0 +1,13 @@
+Java libs are installed into an already prefixed path.
+
+--- a/bindings/java/CMakeLists.txt
++++ b/bindings/java/CMakeLists.txt
+@@ -189,7 +189,7 @@
+       )
+   endif(APPLE)
+-  install(TARGETS plplotjavac_wrap LIBRARY DESTINATION ${JAVAWRAPPER_HARDDIR})
++  install(TARGETS plplotjavac_wrap LIBRARY DESTINATION ${JAVAWRAPPER_DIR})
+   set(JAVA_CLASSES)
+   foreach( srcfile ${JAVA_FILES_FULL} )
diff --git a/sci-libs/plplot/files/plplot-5.12.0-multiarch.patch b/sci-libs/plplot/files/plplot-5.12.0-multiarch.patch
new file mode 100644 (file)
index 0000000..63e92f5
--- /dev/null
@@ -0,0 +1,49 @@
+--- a/examples/c/Makefile.examples.in
++++ b/examples/c/Makefile.examples.in
+@@ -25,9 +25,6 @@
+ CC = @CC@
+ EXEEXT = @EXEEXT@
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+-RPATHCMD = @RPATHCMD@
+-
+ @extXdrawable_true@extXdrawable_EXECUTABLES_list = \
+ @extXdrawable_true@   extXdrawable_demo$(EXEEXT)
+--- a/examples/c++/Makefile.examples.in
++++ b/examples/c++/Makefile.examples.in
+@@ -25,10 +25,7 @@
+ CXX = @CXX@
+ EXEEXT = @EXEEXT@
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+-RPATHCMD = @RPATHCMD@
+ @qt_gui_true@QT_MOC_EXECUTABLE = @QT_MOC_EXECUTABLE@
+-@qt_gui_true@qt_RPATHCMD = @qt_RPATHCMD@
+ @wxwidgets_true@PLPLOTWXWIDGETS_EXECUTABLES_list = \
+ @wxwidgets_true@      @wxdemo_name@$(EXEEXT)
+--- a/examples/f95/Makefile.examples.in
++++ b/examples/f95/Makefile.examples.in
+@@ -25,9 +25,6 @@
+ F95 = @FC@
+ EXEEXT = @EXEEXT@
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+-FORTRAN_RPATHCMD = @FORTRAN_RPATHCMD@
+-
+ EXECUTABLES_list = \
+                x00f$(EXEEXT) \
+                x01f$(EXEEXT) \
+--- a/examples/tk/Makefile.examples.in
++++ b/examples/tk/Makefile.examples.in
+@@ -24,9 +24,6 @@
+ CC = @CC@
+ EXEEXT = @EXEEXT@
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+-plplottcltk_Main_RPATHCMD = @plplottcltk_Main_RPATHCMD@
+-
+ EXECUTABLES_list = xtk01$(EXEEXT)
+ # Second and fourth examples depend on itk.
+ @itk_true@itk_EXECUTABLES_list = xtk02$(EXEEXT) xtk04$(EXEEXT)
diff --git a/sci-libs/plplot/plplot-5.12.0.ebuild b/sci-libs/plplot/plplot-5.12.0.ebuild
new file mode 100644 (file)
index 0000000..5bf4980
--- /dev/null
@@ -0,0 +1,269 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+WX_GTK_VER=3.0-gtk3
+FORTRAN_NEEDED=fortran
+FORTRAN_STANDARD=95
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils 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 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= )
+       octave? ( sci-mathematics/octave:0= )
+       pdf? ( media-libs/libharu:0= )
+       pdl? (
+               dev-perl/PDL
+               dev-perl/XML-DOM
+       )
+       python? (
+               ${PYTHON_DEPS}
+               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
+       )
+       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
+       )
+       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
+)
+
+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
+       #   * OCaml is a general disaster and randomly inserts RPATH
+       #     on the basis of absolute -L linker paths:
+       #       https://caml.inria.fr/mantis/view.php?id=5943
+       #   * 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
+       local mycmakeargs=(
+               ## Features
+               -DBUILD_DOC=OFF
+               -DBUILD_DOX_DOC=OFF
+               -DUSE_RPATH=OFF
+               -DCMAKE_SKIP_INSTALL_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=OFF
+               -DENABLE_pyqt4=OFF
+               -DENABLE_cxx=$(usex cxx)
+               -DENABLE_DYNDRIVERS=$(usex dynamic)
+               -DENABLE_f95=$(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 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 /usr/$(get_libdir)/jni/plplotjavac_wrap.so
+       fi
+}