public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/plplot/, sci-libs/plplot/files/
@ 2019-12-27 12:53 Pacho Ramos
  0 siblings, 0 replies; 3+ messages in thread
From: Pacho Ramos @ 2019-12-27 12:53 UTC (permalink / raw
  To: gentoo-commits

commit:     bb6e02b6dd02c5f5466dc82818490693ab361f81
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 27 12:51:58 2019 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Fri Dec 27 12:53:18 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb6e02b6

sci-libs/plplot: Bump to 5.15.0

Closes: https://bugs.gentoo.org/604358
Closes: https://bugs.gentoo.org/606760
Closes: https://bugs.gentoo.org/624576
Closes: https://bugs.gentoo.org/624592
Closes: https://bugs.gentoo.org/645292
Closes: https://bugs.gentoo.org/659252
Closes: https://bugs.gentoo.org/661144
Closes: https://bugs.gentoo.org/666633
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 sci-libs/plplot/Manifest                           |   1 +
 ...hange-install-tree-location-of-wxPLViewer.patch | 117 ++++++
 .../plplot/files/plplot-5.12.0-safe-string.patch   |  20 +
 sci-libs/plplot/files/plplot-5.15.0-ieee.patch     |  19 +
 .../plplot/files/plplot-5.15.0-multiarch.patch     |  56 +++
 .../plplot/files/plplot-5.15.0-ocaml-rpath.patch   | 166 ++++++++
 sci-libs/plplot/files/plplot-5.15.0-ocaml.patch    |  43 ++
 sci-libs/plplot/files/replace-gdc-extensions.patch | 434 +++++++++++++++++++++
 sci-libs/plplot/plplot-5.15.0.ebuild               | 288 ++++++++++++++
 9 files changed, 1144 insertions(+)

diff --git a/sci-libs/plplot/Manifest b/sci-libs/plplot/Manifest
index cf755394678..f8b1522a06a 100644
--- a/sci-libs/plplot/Manifest
+++ b/sci-libs/plplot/Manifest
@@ -1 +1,2 @@
 DIST plplot-5.12.0.tar.gz 16253895 BLAKE2B 5b89c0a6a478c6faf9bff2e2765eb6b13b6b1fc5644dbcdbc6aa88c510ad82a04253a7cb33d16816ff128eb866aad0f5cbccc365687ebb62022926f3c8545a0b SHA512 5566b9db0ddbb5ecaa677168f65f240197b2b8b23a02a812efc7e97fc79686b523591edad9c83de2e72935090d426b4cb9fe82496d9eb5a5a521c42161e9848b
+DIST plplot-5.15.0.tar.gz 15380293 BLAKE2B 41f359c4e86c7a26fe53a9d82a9f02aeb97b5b6f44abca590621640c56e50a62823e8a03165a939689f5456cee419b8292ea34faccd07641bd4a953b6f1d73fe SHA512 54533245569b724a7ef90392cc6e9ae65873e6cbab923df0f841c8b43def5e4307690894c7681802209bd3c8df97f54285310a706428f79b3340cce3207087c8

diff --git a/sci-libs/plplot/files/Change-install-tree-location-of-wxPLViewer.patch b/sci-libs/plplot/files/Change-install-tree-location-of-wxPLViewer.patch
new file mode 100644
index 00000000000..f23b199c576
--- /dev/null
+++ b/sci-libs/plplot/files/Change-install-tree-location-of-wxPLViewer.patch
@@ -0,0 +1,117 @@
+From: Ole Streicher <olebole@debian.org>
+Date: Wed, 20 Nov 2019 08:56:53 +0100
+Subject: Change install-tree location of wxPLViewer
+
+The wxPLViewer application is only used internally by the wxwidgets
+
+This is based on commit 4e9679b22 in upstream git,
+author Alan W. Irwin <airwin@users.sourceforge.net>
+
+https://sourceforge.net/p/plplot/plplot/ci/4e9679b2266e190f66969f21392cdcf9766a58c9
+
+Closes: #944579
+---
+ drivers/wxwidgets_dev.cpp | 32 ++++++--------------------------
+ include/plplotP.h         |  2 --
+ src/plcore.c              |  5 +----
+ utils/CMakeLists.txt      |  6 +++++-
+ 4 files changed, 12 insertions(+), 33 deletions(-)
+
+diff --git a/drivers/wxwidgets_dev.cpp b/drivers/wxwidgets_dev.cpp
+index 6351c68..43e70be 100644
+--- a/drivers/wxwidgets_dev.cpp
++++ b/drivers/wxwidgets_dev.cpp
+@@ -1753,32 +1753,12 @@ void wxPLDevice::SetupMemoryMap()
+         header->completeFlag   = 0;
+ #endif  // #ifdef PL_WXWIDGETS_IPC3
+ 
+-        //try to find the wxPLViewer executable, in the first instance just assume it
+-        //is in the path.
+-        //wxString exeName = wxT( "/nfs/see-fs-02_users/earpros/usr/src/plplot-plplot/build/utils/" NAME_wxPLViewer );
+-        wxString exeName = wxT( NAME_wxPLViewer );
+-        if ( plInBuildTree() )
+-        {
+-            //if we are in the build tree check for the needed exe in there
+-            wxArrayString files;
+-            wxString      utilsDir = wxString( wxT( BUILD_DIR ) ) + wxString( wxT( "/utils" ) );
+-            wxDir::GetAllFiles( utilsDir, &files, exeName, wxDIR_FILES | wxDIR_DIRS );
+-            if ( files.size() == 0 )
+-                wxDir::GetAllFiles( utilsDir, &files, exeName + wxT( ".exe" ), wxDIR_FILES | wxDIR_DIRS );
+-            if ( files.size() > 0 )
+-                exeName = files[0];
+-        }
+-        else
+-        {
+-            //check the plplot bin install directory
+-            wxArrayString files;
+-            wxDir::GetAllFiles( wxT( BIN_DIR ), &files, exeName, wxDIR_FILES | wxDIR_DIRS );
+-            if ( files.size() == 0 )
+-                wxDir::GetAllFiles( wxT( BIN_DIR ), &files, exeName + wxT( ".exe" ), wxDIR_FILES | wxDIR_DIRS );
+-            if ( files.size() > 0 )
+-                exeName = files[0];
+-        }
+-        //Run the wxPlViewer with command line parameters telling it the location and size of the buffer
++        // The wxPLViewer executable has been built (build-tree case)
++        // or installed (install-tree case) in the drivers directory.
++        // So use the appropriate build-tree or install-tree location
++        // when referring to it.
++        wxString exeName = wxString( _( plGetDrvDir() ) ) + _( "/" ) + _( NAME_wxPLViewer );
++        //Run wxPlViewer with command line parameters telling it the location and size of the buffer
+         wxString command;
+         command << wxT( "\"" ) << exeName << wxT( "\" " ) << wxString( mapName, wxConvUTF8 ) << wxT( " " ) <<
+             mapSize << wxT( " " ) << m_width << wxT( " " ) << m_height;
+diff --git a/include/plplotP.h b/include/plplotP.h
+index 8d44e49..22a2036 100644
+--- a/include/plplotP.h
++++ b/include/plplotP.h
+@@ -1275,10 +1275,8 @@ plwytik( PLFLT x, PLFLT y, PLBOOL minor, PLBOOL invert );
+ 
+ // get drivers directory
+ 
+-#ifdef ENABLE_DYNDRIVERS
+ PLDLLIMPEXP const char*
+ plGetDrvDir( void );
+-#endif
+ 
+ #ifdef PL_HAVE_FREETYPE
+ PLDLLIMPEXP void
+diff --git a/src/plcore.c b/src/plcore.c
+index 84b8063..f57e756 100644
+--- a/src/plcore.c
++++ b/src/plcore.c
+@@ -2966,7 +2966,7 @@ int plInBuildTree()
+     return inBuildTree;
+ }
+ 
+-#ifdef ENABLE_DYNDRIVERS
++// Need this for both the ENABLE_DYNDRIVERS case and the wxPLViewer case.
+ 
+ PLCHAR_VECTOR
+ plGetDrvDir()
+@@ -2998,9 +2998,6 @@ plGetDrvDir()
+     return drvdir;
+ }
+ 
+-#endif
+-
+-
+ //--------------------------------------------------------------------------
+ // void plInitDispatchTable()
+ //
+diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
+index 5772910..f2a8411 100644
+--- a/utils/CMakeLists.txt
++++ b/utils/CMakeLists.txt
+@@ -52,7 +52,11 @@ if(ENABLE_wxwidgets AND NOT OLD_WXWIDGETS)
+     )
+ 
+   set(wxPLViewer_link_libraries PLPLOT::plplotwxwidgets PLPLOT::plplotcxx ${wxwidgets_LINK_FLAGS} ${MATH_LIB} ${RT_LIB})
+-  configure_executable_build(wxPLViewer "${wxPLViewer_SRCS}" "${wxPLViewer_link_libraries}" "${LIB_INSTALL_RPATH}" ${BIN_DIR})
++
++  # wxPLViewer depends on the plplotwxwidgets and plplotcxx libraries and is installed
++  # in the drivers directory.
++  set(LIB_INSTALL_RPATH ${LIB_DIR})
++  configure_executable_build(wxPLViewer "${wxPLViewer_SRCS}" "${wxPLViewer_link_libraries}" "${LIB_INSTALL_RPATH}" ${DRV_DIR})
+ 
+   # Set this property rather than using the WIN32 signature of add_executable
+   # inside the configure_executable_build function.

diff --git a/sci-libs/plplot/files/plplot-5.12.0-safe-string.patch b/sci-libs/plplot/files/plplot-5.12.0-safe-string.patch
new file mode 100644
index 00000000000..5a3605168e6
--- /dev/null
+++ b/sci-libs/plplot/files/plplot-5.12.0-safe-string.patch
@@ -0,0 +1,20 @@
+--- plplot-5.12.0.old/examples/ocaml/x20.ml	2017-01-29 01:50:35.000000000 +0000
++++ plplot-5.12.0/examples/ocaml/x20.ml	2017-11-18 12:10:33.476409441 +0000
+@@ -59,7 +59,7 @@
+   let w, h = Scanf.sscanf w_h_line "%d %d" (fun w h -> w, h) in
+   let num_col = Scanf.sscanf num_col_line "%d" (fun n -> n) in
+ 
+-  let img = String.make (w * h) ' ' in
++  let img = Bytes.make (w * h) ' ' in
+   let imf = Array.make_matrix w h 0.0 in
+ 
+   (* Note that under 32bit OCaml, this will only work when reading strings up
+@@ -72,7 +72,7 @@
+     for j = 0 to h - 1 do
+       imf.(i).(j) <-
+         (* flip image up-down *)
+-        float_of_int (int_of_char (img.[(h - 1 - j ) * w + i]));
++        float_of_int (int_of_char (Bytes.get img ((h - 1 - j ) * w + i)));
+     done
+   done;
+   imf, w, h, num_col

diff --git a/sci-libs/plplot/files/plplot-5.15.0-ieee.patch b/sci-libs/plplot/files/plplot-5.15.0-ieee.patch
new file mode 100644
index 00000000000..065f59a52df
--- /dev/null
+++ b/sci-libs/plplot/files/plplot-5.15.0-ieee.patch
@@ -0,0 +1,19 @@
+diff -up plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake.ieee plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake
+--- plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake.ieee	2018-09-19 20:31:11.333168883 -0600
++++ plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake	2018-09-19 20:31:56.323728783 -0600
+@@ -27,15 +27,6 @@ option(WITH_CSA "Enable use of the csa l
+ # expanded to a lot more cases as we gain platform experience.
+ set(NAN_CFLAGS ${CMAKE_C_FLAGS})
+ if(PL_HAVE_QHULL OR WITH_CSA)
+-  if(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86" AND NOT CMAKE_C_COMPILER MATCHES "gcc")
+-    set(NAN_CFLAGS "${NAN_CFLAGS} -mieee-fp")
+-  elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "alpha.*")
+-    if(CMAKE_C_COMPILER MATCHES "gcc")
+-      set(NAN_CFLAGS "${NAN_CFLAGS} -mieee")
+-    else(CMAKE_C_COMPILER MATCHES "gcc")
+-      set(NAN_CFLAGS "${NAN_CFLAGS} -ieee")
+-    endif(CMAKE_C_COMPILER MATCHES "gcc")
+-  endif(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86" AND NOT CMAKE_C_COMPILER MATCHES "gcc")
+   if(NOT DEFINED NaNAwareCCompiler)
+     message(STATUS "Check for NaN awareness in C compiler")
+     try_run(RUN_RESULT COMPILE_RESULT

diff --git a/sci-libs/plplot/files/plplot-5.15.0-multiarch.patch b/sci-libs/plplot/files/plplot-5.15.0-multiarch.patch
new file mode 100644
index 00000000000..4fc5b0b43d9
--- /dev/null
+++ b/sci-libs/plplot/files/plplot-5.15.0-multiarch.patch
@@ -0,0 +1,56 @@
+diff -up plplot-5.15.0/examples/c/Makefile.examples.in.multiarch plplot-5.15.0/examples/c/Makefile.examples.in
+--- plplot-5.15.0/examples/c/Makefile.examples.in.multiarch	2019-09-17 21:47:24.535984257 -0600
++++ plplot-5.15.0/examples/c/Makefile.examples.in	2019-09-17 21:50:37.029009186 -0600
+@@ -23,9 +23,6 @@ SHELL = @SH_EXECUTABLE@
+ CC = @CC@
+ EXEEXT = @EXEEXT@
+ 
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+-install_tree_c_RPATHCMD = @install_tree_c_RPATHCMD@
+-
+ @extXdrawable_true@extXdrawable_EXECUTABLES_list = \
+ @extXdrawable_true@	extXdrawable_demo$(EXEEXT)
+ 
+diff -up plplot-5.15.0/examples/c++/Makefile.examples.in.multiarch plplot-5.15.0/examples/c++/Makefile.examples.in
+--- plplot-5.15.0/examples/c++/Makefile.examples.in.multiarch	2019-09-17 21:47:24.536984262 -0600
++++ plplot-5.15.0/examples/c++/Makefile.examples.in	2019-09-17 21:50:18.672911449 -0600
+@@ -23,15 +23,10 @@ SHELL = @SH_EXECUTABLE@
+ CXX = @CXX@
+ EXEEXT = @EXEEXT@
+ 
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+-install_tree_cxx_RPATHCMD = @install_tree_cxx_RPATHCMD@
+-
+-@wxwidgets_true@install_tree_wxwidgets_RPATHCMD = @install_tree_wxwidgets_RPATHCMD@
+ @wxwidgets_true@PLPLOTWXWIDGETS_EXECUTABLES_list = \
+ @wxwidgets_true@	@wxdemo_name@$(EXEEXT)
+ 
+ @qt_gui_true@QT_MOC_EXECUTABLE = @QT_MOC_EXECUTABLE@
+-@qt_gui_true@install_tree_qt_RPATHCMD = @install_tree_qt_RPATHCMD@
+ @qt_gui_true@qt_gui_EXECUTABLES_list = \
+ @qt_gui_true@	qt_example$(EXEEXT)
+ 
+diff -up plplot-5.15.0/examples/fortran/Makefile.examples.in.multiarch plplot-5.15.0/examples/fortran/Makefile.examples.in
+--- plplot-5.15.0/examples/fortran/Makefile.examples.in.multiarch	2019-09-17 21:47:24.537984268 -0600
++++ plplot-5.15.0/examples/fortran/Makefile.examples.in	2019-09-17 21:48:01.062178741 -0600
+@@ -24,7 +24,6 @@ SHELL = @SH_EXECUTABLE@
+ Fortran = @FC@
+ EXEEXT = @EXEEXT@
+ 
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+ install_tree_fortran_RPATHCMD = @install_tree_fortran_RPATHCMD@
+ 
+ EXECUTABLES_list = \
+diff -up plplot-5.15.0/examples/tk/Makefile.examples.in.multiarch plplot-5.15.0/examples/tk/Makefile.examples.in
+--- plplot-5.15.0/examples/tk/Makefile.examples.in.multiarch	2019-09-17 21:47:24.538984273 -0600
++++ plplot-5.15.0/examples/tk/Makefile.examples.in	2019-09-17 21:50:00.816816375 -0600
+@@ -24,9 +24,6 @@ SHELL = @SH_EXECUTABLE@
+ CC = @CC@
+ EXEEXT = @EXEEXT@
+ 
+-PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
+-install_tree_tk_RPATHCMD = @install_tree_tk_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/files/plplot-5.15.0-ocaml-rpath.patch b/sci-libs/plplot/files/plplot-5.15.0-ocaml-rpath.patch
new file mode 100644
index 00000000000..f3fe04d84a7
--- /dev/null
+++ b/sci-libs/plplot/files/plplot-5.15.0-ocaml-rpath.patch
@@ -0,0 +1,166 @@
+commit 6b215267e7baeae83906bec8dab72a549aeda6c8
+Author: Alan W. Irwin <airwin@users.sourceforge.net>
+Date:   Mon Sep 23 17:39:31 2019 -0700
+
+    Build system: Fix ocaml examples core build for -DUSE_RPATH=OFF case
+    
+    Thanks to Orion Poplawski for reporting this issue which is that the
+    *core build_tree* rpath manipulations for the ocaml examples were
+    being (incorrectly) skipped for the -DUSE_RPATH=OFF case.  The fix for
+    this issue required non-trivial CMake logic changes so was extensively
+    tested (see below).
+    
+    Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux
+    (Debian Buster = Stable) with the following steps:
+    
+    # Choose these prefixes to assure that the source, build, and install
+    # trees have blanks in their pathnames (to test those cases during
+    # this comprehensive test)
+    COMPREHENSIVE_TEST_PREFIX="/home/software/plplot/HEAD/comprehensive_test_disposeable blank"
+    SOURCE_PREFIX="/home/software/plplot/HEAD/plplot blank .git"
+    
+    # Set CMAKE_PREFIX_PATH to access local versions of lua and libLASi to
+    # avoid important bugs in the Debian Testing versions of those
+    # packages.  Also access a local version of libqhull to test that
+    # additional rpath possibility.
+    
+    # Put a local build of CMake-3.15.20190829-g3ec986c first on the PATH to thoroughly
+    # test our build system for a locally built CMake version that includes an
+    # essential fix so that D language support works properly for the ldc2 and dmd compilers.
+    
+    # For this particular test use the gdc D compiler if D enabled (which it was not, see below).
+    
+    # Use the -DUSE_INCRTCL_VERSION_4=ON option to help CMake find Tcl/Tk
+    # components. (This step will not be necessary as soon as the PLplot
+    # build system is modified to make Tcl/Tk/Itcl/Itk/Iwidgets finding
+    # more robust.)
+    
+    # Use -DSWIG_EXECUTABLE=/home/software/swig/install/bin/swig to test
+    # swig-4.0.0 that I built for myself.
+    
+    # To save time, constrain the test to just the ocaml binding and svg device.
+    
+    # To save a lot of babysitting of this test, constrain the test by dropping
+    # the interactive component.
+    
+    time (nice -19 env CMAKE_PREFIX_PATH=/home/software/lua/install-5.3.5:/home/software/lasi_svn/install:/home/software/qhull/install PATH=/home/software/cmake/install-3ec986ce8e/bin:"$PATH" DC=gdc "$SOURCE_PREFIX"/scripts/comprehensive_test.sh --prefix "$COMPREHENSIVE_TEST_PREFIX" --cmake_added_options "-DUSE_INCRTCL_VERSION_4=ON -DSWIG_EXECUTABLE=/home/software/swig/install/bin/swig -DDEFAULT_NO_BINDINGS=ON -DENABLE_ocaml=ON -DDEFAULT_NO_DEVICES=ON -DPLD_svg=ON " --build_command "make -j18" --ctest_command "ctest -j18" --do_test_interactive no)
+    
+    The time result on my Ryzen 7 1700 system with 16 hardware threads was
+    
+    real    4m12.625s
+    user    4m22.128s
+    sys     0m58.076s
+    
+    The above test was repeated with the following changes:
+    
+    # Specify LD_LIBRARY_PATH to workaround the lack of special rpath
+    # support for external local versions of software
+    
+    # Use the -DUSE_RPATH=OFF cmake option to drop all install-tree
+    # rpath support (and to ignore any special rpath support for
+    # external local versions of software).
+    
+    # Further constrain the test to be performed just for the core build tree
+    # since -DUSE_RPATH=OFF will obviously give bad results for the install
+    # tree for this non-standard installation location.
+    
+    time (nice -19 env CMAKE_PREFIX_PATH=/home/software/lua/install-5.3.5:/home/software/lasi_svn/install:/home/software/qhull/install PATH=/home/software/cmake/install-3ec986ce8e/bin:"$PATH" DC=gdc LD_LIBRARY_PATH=/home/software/lasi_svn/install/lib:/home/software/qhull/install/lib "$SOURCE_PREFIX"/scripts/comprehensive_test.sh --prefix "$COMPREHENSIVE_TEST_PREFIX" --cmake_added_options "-DUSE_INCRTCL_VERSION_4=ON -DSWIG_EXECUTABLE=/home/software/swig/install/bin/swig -DDEFAULT_NO_BINDINGS=ON -DENABLE_ocaml=ON -DDEFAULT_NO_DEVICES=ON -DPLD_svg=ON -DUSE_RPATH=OFF" --build_command "make -j18" --ctest_command "ctest -j18" --do_test_interactive no --do_test_install_tree no --do_test_traditional_install_tree no)
+    
+    The time result on my Ryzen 7 1700 system with 16 hardware threads was
+    
+    real    1m57.888s
+    user    1m42.156s
+    sys     0m26.478s
+    
+    Both these comprehensive tests (one which tests that the default
+    -DUSE_RPATH=ON still works for the ocaml case and one similar to
+    Orion's test case which tests that -DUSER_RPATH=OFF works for the
+    ocaml case in the core build tree) ran without issues (e.g., there
+    were no hangs or other obvious errors) and was followed up by the
+    evaluation procedure documented in doc/wiki_source/Testing_PLplot.
+    Those evaluations showed no configure, build, or obvious run-time
+    errors (i.e., no non-zero return codes for any of the steps in these
+    comprehensive tests), and the difference test results (done with the
+    default svg device) were perfect as well.
+
+diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
+index 93cb01b..5bcbceb 100644
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -343,27 +343,24 @@ if(CORE_BUILD)
+       # Extra layer of -Wl indirection required for the nagfor compiler
+       string(REPLACE "-Wl," "-Wl,-Wl,," install_tree_fortran_RPATHCMD ${install_tree_fortran_RPATHCMD})
+     endif(install_tree_fortran_RPATHCMD AND CMAKE_Fortran_COMPILER MATCHES "nagfor")
++  endif(USE_RPATH AND NOT WIN32_OR_CYGWIN)
++
++  # ocaml is a special case not handled by the above logic for other languages
++  # because the (unofficial) CMake language support is
++  # implemented with low-level add_custom commands/targets so that rpath
++  # must be specified for 3 cases (the traditional build of the installed
++  # examples, and the CMake-based build of the build-tree and install-tree examples).
++  # Furthermore, the rpath syntax is different for ocaml.
++  if(ENABLE_ocaml)
++    set(language ocaml)
+ 
+-    # ocaml is a special case because the (unofficial) CMake language support is
+-    # implemented with low-level add_custom commands/targets so that rpath
+-    # must be specified for 3 cases (the traditional build of the installed
+-    # examples, and the CMake-based build of the build-tree and install-tree examples).
+-    # Furthermore, the rpath syntax is different for ocaml.
+-    if(ENABLE_ocaml)
+-      set(language ocaml)
++    if(USE_RPATH AND NOT WIN32_OR_CYGWIN)
+       # Each of the installed examples that are built depend on a library installed in ${LIB_DIR}.
+       set(install_tree_${language}_RPATH ${LIB_DIR})
+-      # The ocaml examples depend on the plplot library
++      # The ocaml examples depend on the plplot library so use INSTALL_RPATH
++      # property of that library target.
+       set(tll_arguments PLPLOT::plplot)
+       process_rpath(install_tree_${language}_RPATH "${tll_arguments}")
+-
+-      # Special case of the ocaml build-tree examples.
+-      # Must be done before ${install_tree_${language}_RPATH gets transformed
+-      # from official CMake list to colon-separated form.
+-      set(build_tree_${language}_RPATH ${install_tree_${language}_RPATH})
+-      list(REMOVE_ITEM build_tree_${language}_RPATH ${LIB_DIR})
+-      list(APPEND build_tree_${language}_RPATH ${CMAKE_BINARY_DIR}/src)
+-
+       # Transform from semicolon- to colon-separated list.  (Quotes
+       # for last argument required to process whole argument as string
+       # containing semicolons rather than as the concatanated elements
+@@ -372,19 +369,30 @@ if(CORE_BUILD)
+       # install- and build-tree versions of CMake-based build of ocaml
+       # examples
+       string(REGEX REPLACE ";" ":"  install_tree_${language}_RPATH "${install_tree_${language}_RPATH}")
+-      string(REGEX REPLACE ";" ":"  build_tree_${language}_RPATH "${build_tree_${language}_RPATH}")
+       string(REPLACE " " "\\ " install_tree_${language}_RPATH_ESCAPED "${install_tree_${language}_RPATH}")
+-      string(REPLACE " " "\\ " build_tree_${language}_RPATH_ESCAPED "${build_tree_${language}_RPATH}")
+-
+       # install_tree_ocaml_RPATHCMD needed in configured traditional
+       # Makefile for the ocaml subdirectory.
+       # Ocaml compiler requires -ccopt in front of every -Wl option:
+       set(install_tree_${language}_RPATHCMD "-ccopt -Wl,-rpath -ccopt -Wl,\"${install_tree_${language}_RPATH_ESCAPED}\"")
++    endif(USE_RPATH AND NOT WIN32_OR_CYGWIN)
+ 
+-    endif(ENABLE_ocaml)
++    # Special case of the ocaml build-tree examples.
++    # Follow above process_rpath logic but with some changes
++    # appropriate for the core build of the ocaml examples.
++    set(build_tree_${language}_RPATH ${CMAKE_BINARY_DIR}/src)
++    set(tll_arguments PLPLOT::plplot)
++    process_rpath(build_tree_${language}_RPATH "${tll_arguments}")
+ 
++    # Get rid of any mention of ${LIB_DIR} for the core build version
++    # of the examples.
++    # Must be done before ${build_tree_${language}_RPATH gets transformed
++    # from official CMake list to colon-separated form.
++    list(REMOVE_ITEM build_tree_${language}_RPATH ${LIB_DIR})
+ 
+-  endif(USE_RPATH AND NOT WIN32_OR_CYGWIN)
++    string(REGEX REPLACE ";" ":"  build_tree_${language}_RPATH "${build_tree_${language}_RPATH}")
++    string(REPLACE " " "\\ " build_tree_${language}_RPATH_ESCAPED "${build_tree_${language}_RPATH}")
++
++  endif(ENABLE_ocaml)
+ 
+   # Install Chloe.pgm in installed examples directory so that all implementations
+   # of example 20 in the various examples subdirectories can conveniently

diff --git a/sci-libs/plplot/files/plplot-5.15.0-ocaml.patch b/sci-libs/plplot/files/plplot-5.15.0-ocaml.patch
new file mode 100644
index 00000000000..6f0827f334e
--- /dev/null
+++ b/sci-libs/plplot/files/plplot-5.15.0-ocaml.patch
@@ -0,0 +1,43 @@
+diff -up plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt.ocaml plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt
+--- plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt.ocaml	2018-09-19 17:38:53.000000000 -0600
++++ plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt	2018-09-19 20:32:29.884146436 -0600
+@@ -326,11 +326,11 @@ if(ENABLE_ocaml)
+     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cmo
+     )
+ 
+-  # ocamlc -a -custom builds a *.cma library from *.cmo
++  # ocamlc -a builds a *.cma library from *.cmo
+   add_custom_command(
+     OUTPUT
+     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cma
+-    COMMAND ${OCAMLC} -a -custom -o plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${ocaml_LIBRARIES_FLAGS}
++    COMMAND ${OCAMLC} -a -o plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${ocaml_LIBRARIES_FLAGS}
+     DEPENDS
+     ${CMAKE_CURRENT_BINARY_DIR}/plplot_core.cmo
+     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cmo
+@@ -341,7 +341,7 @@ if(ENABLE_ocaml)
+   add_custom_command(
+     OUTPUT
+     ${CMAKE_CURRENT_BINARY_DIR}/installed_plplot.cma
+-    COMMAND ${OCAMLC} -a -custom -o installed_plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${installed_ocaml_LIBRARIES_FLAGS}
++    COMMAND ${OCAMLC} -a -o installed_plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${installed_ocaml_LIBRARIES_FLAGS}
+     DEPENDS
+     ${CMAKE_CURRENT_BINARY_DIR}/plplot_core.cmo
+     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cmo
+diff -up plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt.ocaml plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt
+--- plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt.ocaml	2018-09-19 20:32:29.884146436 -0600
++++ plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt	2018-09-19 20:33:18.389750080 -0600
+@@ -91,11 +91,11 @@ if(ENABLE_ocaml AND OCAML_HAS_CAIRO)
+     ${CMAKE_CURRENT_BINARY_DIR}/plcairo.ml
+     )
+ 
+-  # ocamlc -a -custom builds a *.cma library from *.cmo
++  # ocamlc -a builds a *.cma library from *.cmo
+   add_custom_command(
+     OUTPUT
+     ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cma
+-    COMMAND ${OCAMLC} -a -custom -o ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cma -I ${PATH_TO_PLPLOT_CMA} plplot.cma ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cmo -dllib -lplcairo_stubs -ccopt -L${CMAKE_CURRENT_BINARY_DIR} -cclib -lplcairo_stubs -ccopt -L${CMAKE_BINARY_DIR}/src -cclib -l${WRITEABLE_TARGET}plplot -dllpath ${CMAKE_BINARY_DIR}/src
++    COMMAND ${OCAMLC} -a -o ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cma -I ${PATH_TO_PLPLOT_CMA} plplot.cma ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cmo -dllib -lplcairo_stubs -ccopt -L${CMAKE_CURRENT_BINARY_DIR} -cclib -lplcairo_stubs -ccopt -L${CMAKE_BINARY_DIR}/src -cclib -l${WRITEABLE_TARGET}plplot -dllpath ${CMAKE_BINARY_DIR}/src
+     DEPENDS
+     ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cmo
+     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}

diff --git a/sci-libs/plplot/files/replace-gdc-extensions.patch b/sci-libs/plplot/files/replace-gdc-extensions.patch
new file mode 100644
index 00000000000..551926dc154
--- /dev/null
+++ b/sci-libs/plplot/files/replace-gdc-extensions.patch
@@ -0,0 +1,434 @@
+Description: Replace gdc extensions in D binding and examples source code with equivalent standard D source code
+ This patch is needed to avoid FTBFS with recent gdc versions.
+Origin: upstream, https://sourceforge.net/p/plplot/plplot/ci/74799e02c5435e491b46dfc1fd053753105c3441/
+Reviewed-by: Sébastien Villemot <sebastien@debian.org>
+Last-Update: 2019-10-08
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/bindings/d/plplot.d
++++ b/bindings/d/plplot.d
+@@ -298,7 +298,7 @@ void plfill3( PLFLT[] x, PLFLT[] y, PLFL
+ // Get the current device (keyword) name
+ void plgdev( out string p_dev )
+ {
+-    char cdev[1024];
++    char[1024] cdev;
+     c_plgdev( cdev.ptr );
+     p_dev = to!string( cdev.ptr );
+ }
+@@ -306,7 +306,7 @@ void plgdev( out string p_dev )
+ // Get the (current) output file name.  Must be preallocated to >80 bytes
+ void plgfnam( out string fnam )
+ {
+-    char cfnam[1024];
++    char[1024] cfnam;
+     c_plgfnam( cfnam.ptr );
+     fnam = to!string( cfnam.ptr );
+ }
+@@ -337,7 +337,7 @@ void  plgriddata( PLFLT[] x, PLFLT[] y,
+ // Get the current library version number
+ void plgver( out string p_ver )
+ {
+-    char cver[1024];
++    char[1024] cver;
+     c_plgver( cver.ptr );
+     p_ver = to!string( cver.ptr );
+ }
+--- a/examples/d/x01d.d
++++ b/examples/d/x01d.d
+@@ -224,7 +224,7 @@ class plot {
+ 
+         if ( do_test && test_xor )
+         {
+-            writefln( "The -xor command line option can only be exercised if your "
++            writefln( "The -xor command line option can only be exercised if your " ~
+                 "system\nhas usleep(), which does not seem to happen." );
+         }
+     }
+@@ -294,4 +294,4 @@ class plot {
+         plcol0( 4 );
+         plline( x, y );
+     }
+-}
+\ No newline at end of file
++}
+--- a/examples/d/x08d.d
++++ b/examples/d/x08d.d
+@@ -24,7 +24,7 @@
+ import plplot;
+ import std.string;
+ import std.math;
+-import std.c.stdlib;
++import core.stdc.stdlib;
+ 
+ //--------------------------------------------------------------------------
+ // cmap1_init1
+@@ -92,8 +92,8 @@ int main( char[][] args )
+     PLFLT[]     alt = [ 60.0, 40.0 ];
+     PLFLT[]     az  = [ 30.0, -30.0 ];
+ 
+-    string title[] = [ "#frPLplot Example 8 - Alt=60, Az=30",
+-                       "#frPLplot Example 8 - Alt=40, Az=-30" ];
++    string[]    title = [ "#frPLplot Example 8 - Alt=60, Az=30",
++                          "#frPLplot Example 8 - Alt=40, Az=-30" ];
+ 
+     // Parse and process command line arguments
+     plparseopts( args, PL_PARSE_FULL );
+--- a/examples/d/x11d.d
++++ b/examples/d/x11d.d
+@@ -48,16 +48,16 @@ void cmap1_init()
+ //--------------------------------------------------------------------------
+ int main( char[][] args )
+ {
+-    const   nlevel = 10;
+-    const   XPTS   = 35;        // Data points in x
+-    const   YPTS   = 46;        // Data points in y
++    const    nlevel = 10;
++    const    XPTS   = 35;       // Data points in x
++    const    YPTS   = 46;       // Data points in y
+ 
+-    int[]   opt = [ DRAW_LINEXY, DRAW_LINEXY ];
++    int[]    opt = [ DRAW_LINEXY, DRAW_LINEXY ];
+ 
+-    PLFLT[] alt = [ 33.0, 17.0 ];
+-    PLFLT[] az  = [ 24.0, 115.0 ];
++    PLFLT[]  alt = [ 33.0, 17.0 ];
++    PLFLT[]  az  = [ 24.0, 115.0 ];
+ 
+-    string title[] = [ "#frPLplot Example 11 - Alt=33, Az=24, Opt=3",
++    string[] title = [ "#frPLplot Example 11 - Alt=33, Az=24, Opt=3",
+                        "#frPLplot Example 11 - Alt=17, Az=115, Opt=3" ];
+ 
+     PLFLT xx, yy;
+--- a/examples/d/x15d.d
++++ b/examples/d/x15d.d
+@@ -145,10 +145,10 @@ class plot {
+ //--------------------------------------------------------------------------
+     public void plot2( PLFLT[][] z )
+     {
+-        static PLINT nlin[10]   = [ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2 ];
+-        static PLINT inc[10][2] = [ [450, 0], [-450, 0], [0, 0], [900, 0], [300, 0],
++        static PLINT[10] nlin   = [ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2 ];
++        static PLINT[2][10] inc = [ [450, 0], [-450, 0], [0, 0], [900, 0], [300, 0],
+                                     [450, -450], [0, 900], [0, 450], [450, -450], [0, 900] ];
+-        static PLINT del[10][2] = [ [2000, 2000], [2000, 2000], [2000, 2000],
++        static PLINT[2][10] del = [ [2000, 2000], [2000, 2000], [2000, 2000],
+                                     [2000, 2000], [2000, 2000], [2000, 2000],
+                                     [2000, 2000], [2000, 2000], [4000, 4000],
+                                     [4000, 2000] ];
+@@ -191,11 +191,11 @@ class plot {
+ //--------------------------------------------------------------------------
+     public void plot3()
+     {
+-        static PLFLT xx[2][5] = [ [-1.0, 1.0, 1.0, -1.0, -1.0],
++        static PLFLT[5][2] xx = [ [-1.0, 1.0, 1.0, -1.0, -1.0],
+                                   [-1.0, 1.0, 1.0, -1.0, -1.0] ];
+-        static PLFLT yy[2][5] = [ [1.0, 1.0, 0.0, 0.0, 1.0],
++        static PLFLT[5][2] yy = [ [1.0, 1.0, 0.0, 0.0, 1.0],
+                                   [-1.0, -1.0, 0.0, 0.0, -1.0] ];
+-        static PLFLT zz[2][5] = [ [0.0, 0.0, 1.0, 1.0, 0.0],
++        static PLFLT[5][2] zz = [ [0.0, 0.0, 1.0, 1.0, 0.0],
+                                   [0.0, 0.0, 1.0, 1.0, 0.0] ];
+ 
+         pladv( 0 );
+--- a/examples/d/x16d.d
++++ b/examples/d/x16d.d
+@@ -195,7 +195,7 @@ int main( char[][] args )
+     string[]  axis_opts = [
+         "bcvtm",
+     ];
+-    PLFLT[] values[NUM_AXES];
++    PLFLT[][NUM_AXES] values;
+     for ( size_t i = 0; i < NUM_AXES; i++ )
+     {
+         values[i] = new PLFLT[ns];
+@@ -207,7 +207,7 @@ int main( char[][] args )
+         0,
+     ];
+     const int NUM_LABELS = 1;
+-    PLINT label_opts[] = [
++    PLINT[]   label_opts = [
+         PL_COLORBAR_LABEL_BOTTOM,
+     ];
+     string[] labels = [
+--- a/examples/d/x17d.d
++++ b/examples/d/x17d.d
+@@ -4,7 +4,7 @@
+ import std.string;
+ import std.math;
+ import std.stdio;
+-import std.c.stdlib;
++import core.stdc.stdlib;
+ import plplot;
+ 
+ 
+--- a/examples/d/x18d.d
++++ b/examples/d/x18d.d
+@@ -6,9 +6,9 @@ import std.string;
+ 
+ import plplot;
+ 
+-int opt[]   = [ 1, 0, 1, 0 ];
+-PLFLT alt[] = [ 20.0, 35.0, 50.0, 65.0 ];
+-PLFLT az[]  = [ 30.0, 40.0, 50.0, 60.0 ];
++int[]   opt = [ 1, 0, 1, 0 ];
++PLFLT[] alt = [ 20.0, 35.0, 50.0, 65.0 ];
++PLFLT[] az  = [ 30.0, 40.0, 50.0, 60.0 ];
+ 
+ //--------------------------------------------------------------------------
+ // main
+@@ -81,7 +81,7 @@ int main( char[][] args )
+ 
+ void test_poly( int k )
+ {
+-    PLINT draw[][] = [ [ 1, 1, 1, 1 ],
++    PLINT[][] draw = [ [ 1, 1, 1, 1 ],
+                        [ 1, 0, 1, 0 ],
+                        [ 0, 1, 0, 1 ],
+                        [ 1, 1, 0, 0 ] ];
+--- a/examples/d/x19d.d
++++ b/examples/d/x19d.d
+@@ -4,7 +4,7 @@
+ 
+ import std.math;
+ import std.string;
+-import std.c.string;
++import core.stdc.string;
+ 
+ import plplot;
+ 
+@@ -109,15 +109,15 @@ int main( char[][] args )
+     PLFLT maxy = 80;
+ 
+     //variables for the shapelib example
+-    const PLINT nbeachareas = 2;
+-    const PLINT beachareas[] = [ 23, 24 ];
+-    const       nwoodlandareas = 94;
+-    PLINT       woodlandareas[94];
+-    const PLINT nshingleareas = 22;
+-    const PLINT shingleareas[] = [ 0, 1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 217, 2424, 2425, 2426, 2427, 2428, 2491, 2577 ];
+-    const PLINT ncragareas = 2024;
+-    PLINT       cragareas[2024];
+-    const PLINT majorroads[] = [ 33, 48, 71, 83, 89, 90, 101, 102, 111 ];
++    const PLINT   nbeachareas    = 2;
++    const PLINT[] beachareas     = [ 23, 24 ];
++    const         nwoodlandareas = 94;
++    PLINT[94] woodlandareas;
++    const PLINT   nshingleareas = 22;
++    const PLINT[] shingleareas  = [ 0, 1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 217, 2424, 2425, 2426, 2427, 2428, 2491, 2577 ];
++    const PLINT   ncragareas    = 2024;
++    PLINT[2024]       cragareas;
++    const PLINT[] majorroads = [ 33, 48, 71, 83, 89, 90, 101, 102, 111 ];
+ 
+     plinit();
+ 
+@@ -173,8 +173,8 @@ int main( char[][] args )
+     // Show Baltimore, MD on the map
+     plcol0( 2 );
+     plssym( 0.0, 2.0 );
+-    PLFLT x[1] = -76.6125;
+-    PLFLT y[1] = 39.2902778;
++    PLFLT[1] x = -76.6125;
++    PLFLT[1] y = 39.2902778;
+     plpoin( x, y, 18 );
+     plssym( 0.0, 1.0 );
+     plptex( -76.6125, 43.0, 0.0, 0.0, 0.0, "Baltimore, MD" );
+--- a/examples/d/x23d.d
++++ b/examples/d/x23d.d
+@@ -336,14 +336,14 @@ int main( char[][] args )
+             }
+             else if ( page == 14 )
+             {
+-                text = format( "Page 15, %s, %s, %s:  #<0x%1x0>#<0x%1x1>#<0x%1x2>"
++                text = format( "Page 15, %s, %s, %s:  #<0x%1x0>#<0x%1x1>#<0x%1x2>" ~
+                     "The quick brown fox jumps over the lazy dog",
+                     family[family_index], style[style_index], weight[weight_index],
+                     family_index, style_index, weight_index );
+             }
+             else if ( page == 15 )
+             {
+-                text = format( "Page 16, %s, %s, %s:  #<%s/>#<%s/>#<%s/>"
++                text = format( "Page 16, %s, %s, %s:  #<%s/>#<%s/>#<%s/>" ~
+                     "The quick brown fox jumps over the lazy dog",
+                     family[family_index], style[style_index], weight[weight_index],
+                     family[family_index], style[style_index], weight[weight_index] );
+--- a/examples/d/x33d.d
++++ b/examples/d/x33d.d
+@@ -30,7 +30,7 @@ import plplot;
+ import std.math;
+ import std.string;
+ 
+-static PLINT position_options[16] = [
++static PLINT[16] position_options = [
+     PL_POSITION_LEFT | PL_POSITION_TOP | PL_POSITION_OUTSIDE,
+     PL_POSITION_TOP | PL_POSITION_OUTSIDE,
+     PL_POSITION_RIGHT | PL_POSITION_TOP | PL_POSITION_OUTSIDE,
+@@ -50,7 +50,7 @@ static PLINT position_options[16] = [
+ ];
+ 
+ // Pick 5 arbitrary UTF-8 symbols useful for plotting points (✠✚✱✪✽✺✰✴✦).
+-static string special_symbols[5] = [
++static string[5] special_symbols = [
+     "✰",
+     "✴",
+     "✱",
+@@ -61,14 +61,14 @@ static string special_symbols[5] = [
+ // plcolorbar options
+ 
+ // Colorbar type options
+-const int    COLORBAR_KINDS = 4;
+-static PLINT colorbar_option_kinds[COLORBAR_KINDS] = [
++const int COLORBAR_KINDS = 4;
++static    PLINT[COLORBAR_KINDS] colorbar_option_kinds = [
+     PL_COLORBAR_SHADE,
+     PL_COLORBAR_SHADE | PL_COLORBAR_SHADE_LABEL,
+     PL_COLORBAR_IMAGE,
+     PL_COLORBAR_GRADIENT
+ ];
+-static string colorbar_option_kind_labels[COLORBAR_KINDS] = [
++static string[COLORBAR_KINDS] colorbar_option_kind_labels = [
+     "Shade colorbars",
+     "Shade colorbars with custom labels",
+     "Image colorbars",
+@@ -76,14 +76,14 @@ static string colorbar_option_kind_label
+ ];
+ 
+ // Which side of the page are we positioned relative to?
+-const int    COLORBAR_POSITIONS = 4;
+-static PLINT colorbar_position_options[COLORBAR_POSITIONS] = [
++const int COLORBAR_POSITIONS = 4;
++static    PLINT[COLORBAR_POSITIONS] colorbar_position_options = [
+     PL_POSITION_LEFT,
+     PL_POSITION_RIGHT,
+     PL_POSITION_TOP,
+     PL_POSITION_BOTTOM
+ ];
+-static string colorbar_position_option_labels[COLORBAR_POSITIONS] = [
++static string[COLORBAR_POSITIONS] colorbar_position_option_labels = [
+     "Left",
+     "Right",
+     "Top",
+@@ -91,14 +91,14 @@ static string colorbar_position_option_l
+ ];
+ 
+ // Colorbar label positioning options
+-const int    COLORBAR_LABELS = 4;
+-static PLINT colorbar_label_options[COLORBAR_LABELS] = [
++const int COLORBAR_LABELS = 4;
++static    PLINT[COLORBAR_LABELS] colorbar_label_options = [
+     PL_COLORBAR_LABEL_LEFT,
+     PL_COLORBAR_LABEL_RIGHT,
+     PL_COLORBAR_LABEL_TOP,
+     PL_COLORBAR_LABEL_BOTTOM
+ ];
+-static string colorbar_label_option_labels[COLORBAR_LABELS] = [
++static string[COLORBAR_LABELS] colorbar_label_option_labels = [
+     "Label left",
+     "Label right",
+     "Label top",
+@@ -106,14 +106,14 @@ static string colorbar_label_option_labe
+ ];
+ 
+ // Colorbar cap options
+-const int    COLORBAR_CAPS = 4;
+-static PLINT colorbar_cap_options[COLORBAR_CAPS] = [
++const int COLORBAR_CAPS = 4;
++static    PLINT[COLORBAR_CAPS] colorbar_cap_options = [
+     PL_COLORBAR_CAP_NONE,
+     PL_COLORBAR_CAP_LOW,
+     PL_COLORBAR_CAP_HIGH,
+     PL_COLORBAR_CAP_LOW | PL_COLORBAR_CAP_HIGH
+ ];
+-static string colorbar_cap_option_labels[COLORBAR_CAPS] = [
++static string[COLORBAR_CAPS] colorbar_cap_option_labels = [
+     "No caps",
+     "Low cap",
+     "High cap",
+@@ -126,20 +126,20 @@ void
+ plcolorbar_example_page( int kind_i, int label_i, int cap_i, PLINT cont_color, PLFLT cont_width, PLINT n_values, PLFLT [] values )
+ {
+     // Parameters for the colorbars on this page
+-    PLINT     position_i, position, opt;
+-    PLFLT     x, y, x_length, y_length;
+-    PLFLT     ticks[1]     = [ 0.0 ];
+-    PLINT     sub_ticks[1] = [ 0 ];
++    PLINT position_i, position, opt;
++    PLFLT x, y, x_length, y_length;
++    PLFLT[1]     ticks     = [ 0.0 ];
++    PLINT[1]     sub_ticks = [ 0 ];
+     PLFLT     low_cap_color, high_cap_color;
+     PLINT     vertical, ifn;
+     PLINT     n_axes = 1;
+     string[]  axis_opts;
+-    PLINT     n_labels      = 1;
+-    PLINT     label_opts[1] = [ 0 ];
++    PLINT     n_labels = 1;
++    PLINT[1]     label_opts = [ 0 ];
+     string[]  label;
+     string    title;
+     PLFLT     colorbar_width, colorbar_height;
+-    PLINT     n_values_array[1];
++    PLINT[1]     n_values_array;
+     PLFLT[][] values_array;
+ 
+     axis_opts.length  = 1;
+@@ -279,26 +279,26 @@ const int MAX_NLEGEND = 7;
+ 
+ int main( char[][] args )
+ {
+-    int    i, k;
+-    PLINT  opt;
+-    PLINT  nlegend, nturn;
+-    PLINT  opt_array[MAX_NLEGEND];
+-    PLINT  text_colors[MAX_NLEGEND];
+-    PLINT  box_colors[MAX_NLEGEND];
+-    PLINT  box_patterns[MAX_NLEGEND];
+-    PLFLT  box_scales[MAX_NLEGEND];
+-    PLFLT  box_line_widths[MAX_NLEGEND];
+-    PLINT  line_colors[MAX_NLEGEND];
+-    PLINT  line_styles[MAX_NLEGEND];
+-    PLFLT  line_widths[MAX_NLEGEND];
+-    PLINT  symbol_numbers[MAX_NLEGEND];
+-    PLINT  symbol_colors[MAX_NLEGEND];
+-    PLFLT  symbol_scales[MAX_NLEGEND];
+-    string text[MAX_NLEGEND];
+-    string symbols[MAX_NLEGEND];
+-    PLFLT  legend_width, legend_height, x, y, xstart, ystart;
+-    PLFLT  max_height, text_scale;
+-    PLINT  position, opt_base, nrow, ncolumn;
++    int   i, k;
++    PLINT opt;
++    PLINT nlegend, nturn;
++    PLINT[MAX_NLEGEND]  opt_array;
++    PLINT[MAX_NLEGEND]  text_colors;
++    PLINT[MAX_NLEGEND]  box_colors;
++    PLINT[MAX_NLEGEND]  box_patterns;
++    PLFLT[MAX_NLEGEND]  box_scales;
++    PLFLT[MAX_NLEGEND]  box_line_widths;
++    PLINT[MAX_NLEGEND]  line_colors;
++    PLINT[MAX_NLEGEND]  line_styles;
++    PLFLT[MAX_NLEGEND]  line_widths;
++    PLINT[MAX_NLEGEND]  symbol_numbers;
++    PLINT[MAX_NLEGEND]  symbol_colors;
++    PLFLT[MAX_NLEGEND]  symbol_scales;
++    string[MAX_NLEGEND] text;
++    string[MAX_NLEGEND] symbols;
++    PLFLT legend_width, legend_height, x, y, xstart, ystart;
++    PLFLT max_height, text_scale;
++    PLINT position, opt_base, nrow, ncolumn;
+ 
+     // Parse and process command line arguments
+     plparseopts( args, PL_PARSE_FULL );
+@@ -822,9 +822,9 @@ int main( char[][] args )
+     if ( colorbar )
+     {
+         // Color bar examples
+-        PLFLT values_small[2]  = [ -1.0e-20, 1.0e-20 ];
+-        PLFLT values_uneven[9] = [ -1.0e-20, 2.0e-20, 2.6e-20, 3.4e-20, 6.0e-20, 7.0e-20, 8.0e-20, 9.0e-20, 10.0e-20 ];
+-        PLFLT values_even[9]   = [ -2.0e-20, -1.0e-20, 0.0e-20, 1.0e-20, 2.0e-20, 3.0e-20, 4.0e-20, 5.0e-20, 6.0e-20 ];
++        PLFLT[2] values_small  = [ -1.0e-20, 1.0e-20 ];
++        PLFLT[9] values_uneven = [ -1.0e-20, 2.0e-20, 2.6e-20, 3.4e-20, 6.0e-20, 7.0e-20, 8.0e-20, 9.0e-20, 10.0e-20 ];
++        PLFLT[9] values_even   = [ -2.0e-20, -1.0e-20, 0.0e-20, 1.0e-20, 2.0e-20, 3.0e-20, 4.0e-20, 5.0e-20, 6.0e-20 ];
+ 
+         // Use unsaturated green background colour to contrast with black caps.
+         plscolbg( 70, 185, 70 );

diff --git a/sci-libs/plplot/plplot-5.15.0.ebuild b/sci-libs/plplot/plplot-5.15.0.ebuild
new file mode 100644
index 00000000000..bafe731a8d4
--- /dev/null
+++ b/sci-libs/plplot/plplot-5.15.0.ebuild
@@ -0,0 +1,288 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+WX_GTK_VER=3.0-gtk3
+FORTRAN_NEEDED=fortran
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit cmake-utils 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
+	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="
+	!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? ( 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= )
+	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: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
+
+	# 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
+)
+
+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
+		-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 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
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-libs/plplot/, sci-libs/plplot/files/
@ 2020-09-21  8:21 David Seifert
  0 siblings, 0 replies; 3+ messages in thread
From: David Seifert @ 2020-09-21  8:21 UTC (permalink / raw
  To: gentoo-commits

commit:     8ed5329c23c1bfbd4e023cd1e0c787c7a303cfb2
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 21 08:21:19 2020 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 08:21:19 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ed5329c

sci-libs/plplot: Fix #include <QPainterPath>

Closes: https://bugs.gentoo.org/743166
Package-Manager: Portage-3.0.7, Repoman-3.0.1
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 sci-libs/plplot/files/plplot-5.15.0-QPainterPath-include.patch | 10 ++++++++++
 sci-libs/plplot/plplot-5.15.0-r1.ebuild                        |  1 +
 2 files changed, 11 insertions(+)

diff --git a/sci-libs/plplot/files/plplot-5.15.0-QPainterPath-include.patch b/sci-libs/plplot/files/plplot-5.15.0-QPainterPath-include.patch
new file mode 100644
index 00000000000..3c6b85b1714
--- /dev/null
+++ b/sci-libs/plplot/files/plplot-5.15.0-QPainterPath-include.patch
@@ -0,0 +1,10 @@
+--- a/include/qt.h
++++ b/include/qt.h
+@@ -67,6 +67,7 @@
+ #include <QMainWindow>
+ #include <QPicture>
+ #include <QMutex>
++#include <QPainterPath>
+ 
+ #include "plDevs.h"
+ #include "plplotP.h"

diff --git a/sci-libs/plplot/plplot-5.15.0-r1.ebuild b/sci-libs/plplot/plplot-5.15.0-r1.ebuild
index f0f9d5c4247..7f16c4d0e29 100644
--- a/sci-libs/plplot/plplot-5.15.0-r1.ebuild
+++ b/sci-libs/plplot/plplot-5.15.0-r1.ebuild
@@ -108,6 +108,7 @@ PATCHES=(
 	"${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() {


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-libs/plplot/, sci-libs/plplot/files/
@ 2024-03-24 21:03 Andreas Sturmlechner
  0 siblings, 0 replies; 3+ messages in thread
From: Andreas Sturmlechner @ 2024-03-24 21:03 UTC (permalink / raw
  To: gentoo-commits

commit:     1037d2547a1e241852c96c7d616d6ee82c5c2db8
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  7 13:16:03 2024 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Mar 24 21:02:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1037d254

sci-libs/plplot: drop 5.15.0-r105

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/plplot-5.15.0-QPainterPath-include.patch |  10 -
 .../files/plplot-5.15.0-configure-clang16.patch    |  18 --
 sci-libs/plplot/files/plplot-5.15.0-ieee.patch     |  19 --
 .../plplot/files/plplot-5.15.0-multiarch.patch     |  56 ----
 .../plplot/files/plplot-5.15.0-ocaml-rpath.patch   | 166 -----------
 sci-libs/plplot/files/plplot-5.15.0-ocaml.patch    |  43 ---
 sci-libs/plplot/files/plplot-5.9.6-python.patch    |  13 -
 sci-libs/plplot/plplot-5.15.0-r105.ebuild          | 302 ---------------------
 8 files changed, 627 deletions(-)

diff --git a/sci-libs/plplot/files/plplot-5.15.0-QPainterPath-include.patch b/sci-libs/plplot/files/plplot-5.15.0-QPainterPath-include.patch
deleted file mode 100644
index 3c6b85b1714e..000000000000
--- a/sci-libs/plplot/files/plplot-5.15.0-QPainterPath-include.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/include/qt.h
-+++ b/include/qt.h
-@@ -67,6 +67,7 @@
- #include <QMainWindow>
- #include <QPicture>
- #include <QMutex>
-+#include <QPainterPath>
- 
- #include "plDevs.h"
- #include "plplotP.h"

diff --git a/sci-libs/plplot/files/plplot-5.15.0-configure-clang16.patch b/sci-libs/plplot/files/plplot-5.15.0-configure-clang16.patch
deleted file mode 100644
index 1f72da24ffb0..000000000000
--- a/sci-libs/plplot/files/plplot-5.15.0-configure-clang16.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-https://bugs.gentoo.org/898258
-https://sourceforge.net/p/plplot/patches/37/
-
-Avoid implicitly declaring exit.  Future compilers will not support
-implicit function declarations, so this cmake probe will always fail.
-
---- a/cmake/modules/TestForHighBitCharacters.c
-+++ b/cmake/modules/TestForHighBitCharacters.c
-@@ -17,6 +17,6 @@ int
-    int i;
-    for (i = 0; i < 256; i++)
-      if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i))
--       exit(1);
--   exit (0);
-+       return 1;
-+   return 0;
- }
-

diff --git a/sci-libs/plplot/files/plplot-5.15.0-ieee.patch b/sci-libs/plplot/files/plplot-5.15.0-ieee.patch
deleted file mode 100644
index 065f59a52dfd..000000000000
--- a/sci-libs/plplot/files/plplot-5.15.0-ieee.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake.ieee plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake
---- plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake.ieee	2018-09-19 20:31:11.333168883 -0600
-+++ plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/cmake/modules/csiro.cmake	2018-09-19 20:31:56.323728783 -0600
-@@ -27,15 +27,6 @@ option(WITH_CSA "Enable use of the csa l
- # expanded to a lot more cases as we gain platform experience.
- set(NAN_CFLAGS ${CMAKE_C_FLAGS})
- if(PL_HAVE_QHULL OR WITH_CSA)
--  if(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86" AND NOT CMAKE_C_COMPILER MATCHES "gcc")
--    set(NAN_CFLAGS "${NAN_CFLAGS} -mieee-fp")
--  elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "alpha.*")
--    if(CMAKE_C_COMPILER MATCHES "gcc")
--      set(NAN_CFLAGS "${NAN_CFLAGS} -mieee")
--    else(CMAKE_C_COMPILER MATCHES "gcc")
--      set(NAN_CFLAGS "${NAN_CFLAGS} -ieee")
--    endif(CMAKE_C_COMPILER MATCHES "gcc")
--  endif(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86" AND NOT CMAKE_C_COMPILER MATCHES "gcc")
-   if(NOT DEFINED NaNAwareCCompiler)
-     message(STATUS "Check for NaN awareness in C compiler")
-     try_run(RUN_RESULT COMPILE_RESULT

diff --git a/sci-libs/plplot/files/plplot-5.15.0-multiarch.patch b/sci-libs/plplot/files/plplot-5.15.0-multiarch.patch
deleted file mode 100644
index 4fc5b0b43d9e..000000000000
--- a/sci-libs/plplot/files/plplot-5.15.0-multiarch.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -up plplot-5.15.0/examples/c/Makefile.examples.in.multiarch plplot-5.15.0/examples/c/Makefile.examples.in
---- plplot-5.15.0/examples/c/Makefile.examples.in.multiarch	2019-09-17 21:47:24.535984257 -0600
-+++ plplot-5.15.0/examples/c/Makefile.examples.in	2019-09-17 21:50:37.029009186 -0600
-@@ -23,9 +23,6 @@ SHELL = @SH_EXECUTABLE@
- CC = @CC@
- EXEEXT = @EXEEXT@
- 
--PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
--install_tree_c_RPATHCMD = @install_tree_c_RPATHCMD@
--
- @extXdrawable_true@extXdrawable_EXECUTABLES_list = \
- @extXdrawable_true@	extXdrawable_demo$(EXEEXT)
- 
-diff -up plplot-5.15.0/examples/c++/Makefile.examples.in.multiarch plplot-5.15.0/examples/c++/Makefile.examples.in
---- plplot-5.15.0/examples/c++/Makefile.examples.in.multiarch	2019-09-17 21:47:24.536984262 -0600
-+++ plplot-5.15.0/examples/c++/Makefile.examples.in	2019-09-17 21:50:18.672911449 -0600
-@@ -23,15 +23,10 @@ SHELL = @SH_EXECUTABLE@
- CXX = @CXX@
- EXEEXT = @EXEEXT@
- 
--PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
--install_tree_cxx_RPATHCMD = @install_tree_cxx_RPATHCMD@
--
--@wxwidgets_true@install_tree_wxwidgets_RPATHCMD = @install_tree_wxwidgets_RPATHCMD@
- @wxwidgets_true@PLPLOTWXWIDGETS_EXECUTABLES_list = \
- @wxwidgets_true@	@wxdemo_name@$(EXEEXT)
- 
- @qt_gui_true@QT_MOC_EXECUTABLE = @QT_MOC_EXECUTABLE@
--@qt_gui_true@install_tree_qt_RPATHCMD = @install_tree_qt_RPATHCMD@
- @qt_gui_true@qt_gui_EXECUTABLES_list = \
- @qt_gui_true@	qt_example$(EXEEXT)
- 
-diff -up plplot-5.15.0/examples/fortran/Makefile.examples.in.multiarch plplot-5.15.0/examples/fortran/Makefile.examples.in
---- plplot-5.15.0/examples/fortran/Makefile.examples.in.multiarch	2019-09-17 21:47:24.537984268 -0600
-+++ plplot-5.15.0/examples/fortran/Makefile.examples.in	2019-09-17 21:48:01.062178741 -0600
-@@ -24,7 +24,6 @@ SHELL = @SH_EXECUTABLE@
- Fortran = @FC@
- EXEEXT = @EXEEXT@
- 
--PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
- install_tree_fortran_RPATHCMD = @install_tree_fortran_RPATHCMD@
- 
- EXECUTABLES_list = \
-diff -up plplot-5.15.0/examples/tk/Makefile.examples.in.multiarch plplot-5.15.0/examples/tk/Makefile.examples.in
---- plplot-5.15.0/examples/tk/Makefile.examples.in.multiarch	2019-09-17 21:47:24.538984273 -0600
-+++ plplot-5.15.0/examples/tk/Makefile.examples.in	2019-09-17 21:50:00.816816375 -0600
-@@ -24,9 +24,6 @@ SHELL = @SH_EXECUTABLE@
- CC = @CC@
- EXEEXT = @EXEEXT@
- 
--PKG_CONFIG_ENV = @PKG_CONFIG_ENV@
--install_tree_tk_RPATHCMD = @install_tree_tk_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/files/plplot-5.15.0-ocaml-rpath.patch b/sci-libs/plplot/files/plplot-5.15.0-ocaml-rpath.patch
deleted file mode 100644
index f3fe04d84a7c..000000000000
--- a/sci-libs/plplot/files/plplot-5.15.0-ocaml-rpath.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-commit 6b215267e7baeae83906bec8dab72a549aeda6c8
-Author: Alan W. Irwin <airwin@users.sourceforge.net>
-Date:   Mon Sep 23 17:39:31 2019 -0700
-
-    Build system: Fix ocaml examples core build for -DUSE_RPATH=OFF case
-    
-    Thanks to Orion Poplawski for reporting this issue which is that the
-    *core build_tree* rpath manipulations for the ocaml examples were
-    being (incorrectly) skipped for the -DUSE_RPATH=OFF case.  The fix for
-    this issue required non-trivial CMake logic changes so was extensively
-    tested (see below).
-    
-    Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux
-    (Debian Buster = Stable) with the following steps:
-    
-    # Choose these prefixes to assure that the source, build, and install
-    # trees have blanks in their pathnames (to test those cases during
-    # this comprehensive test)
-    COMPREHENSIVE_TEST_PREFIX="/home/software/plplot/HEAD/comprehensive_test_disposeable blank"
-    SOURCE_PREFIX="/home/software/plplot/HEAD/plplot blank .git"
-    
-    # Set CMAKE_PREFIX_PATH to access local versions of lua and libLASi to
-    # avoid important bugs in the Debian Testing versions of those
-    # packages.  Also access a local version of libqhull to test that
-    # additional rpath possibility.
-    
-    # Put a local build of CMake-3.15.20190829-g3ec986c first on the PATH to thoroughly
-    # test our build system for a locally built CMake version that includes an
-    # essential fix so that D language support works properly for the ldc2 and dmd compilers.
-    
-    # For this particular test use the gdc D compiler if D enabled (which it was not, see below).
-    
-    # Use the -DUSE_INCRTCL_VERSION_4=ON option to help CMake find Tcl/Tk
-    # components. (This step will not be necessary as soon as the PLplot
-    # build system is modified to make Tcl/Tk/Itcl/Itk/Iwidgets finding
-    # more robust.)
-    
-    # Use -DSWIG_EXECUTABLE=/home/software/swig/install/bin/swig to test
-    # swig-4.0.0 that I built for myself.
-    
-    # To save time, constrain the test to just the ocaml binding and svg device.
-    
-    # To save a lot of babysitting of this test, constrain the test by dropping
-    # the interactive component.
-    
-    time (nice -19 env CMAKE_PREFIX_PATH=/home/software/lua/install-5.3.5:/home/software/lasi_svn/install:/home/software/qhull/install PATH=/home/software/cmake/install-3ec986ce8e/bin:"$PATH" DC=gdc "$SOURCE_PREFIX"/scripts/comprehensive_test.sh --prefix "$COMPREHENSIVE_TEST_PREFIX" --cmake_added_options "-DUSE_INCRTCL_VERSION_4=ON -DSWIG_EXECUTABLE=/home/software/swig/install/bin/swig -DDEFAULT_NO_BINDINGS=ON -DENABLE_ocaml=ON -DDEFAULT_NO_DEVICES=ON -DPLD_svg=ON " --build_command "make -j18" --ctest_command "ctest -j18" --do_test_interactive no)
-    
-    The time result on my Ryzen 7 1700 system with 16 hardware threads was
-    
-    real    4m12.625s
-    user    4m22.128s
-    sys     0m58.076s
-    
-    The above test was repeated with the following changes:
-    
-    # Specify LD_LIBRARY_PATH to workaround the lack of special rpath
-    # support for external local versions of software
-    
-    # Use the -DUSE_RPATH=OFF cmake option to drop all install-tree
-    # rpath support (and to ignore any special rpath support for
-    # external local versions of software).
-    
-    # Further constrain the test to be performed just for the core build tree
-    # since -DUSE_RPATH=OFF will obviously give bad results for the install
-    # tree for this non-standard installation location.
-    
-    time (nice -19 env CMAKE_PREFIX_PATH=/home/software/lua/install-5.3.5:/home/software/lasi_svn/install:/home/software/qhull/install PATH=/home/software/cmake/install-3ec986ce8e/bin:"$PATH" DC=gdc LD_LIBRARY_PATH=/home/software/lasi_svn/install/lib:/home/software/qhull/install/lib "$SOURCE_PREFIX"/scripts/comprehensive_test.sh --prefix "$COMPREHENSIVE_TEST_PREFIX" --cmake_added_options "-DUSE_INCRTCL_VERSION_4=ON -DSWIG_EXECUTABLE=/home/software/swig/install/bin/swig -DDEFAULT_NO_BINDINGS=ON -DENABLE_ocaml=ON -DDEFAULT_NO_DEVICES=ON -DPLD_svg=ON -DUSE_RPATH=OFF" --build_command "make -j18" --ctest_command "ctest -j18" --do_test_interactive no --do_test_install_tree no --do_test_traditional_install_tree no)
-    
-    The time result on my Ryzen 7 1700 system with 16 hardware threads was
-    
-    real    1m57.888s
-    user    1m42.156s
-    sys     0m26.478s
-    
-    Both these comprehensive tests (one which tests that the default
-    -DUSE_RPATH=ON still works for the ocaml case and one similar to
-    Orion's test case which tests that -DUSER_RPATH=OFF works for the
-    ocaml case in the core build tree) ran without issues (e.g., there
-    were no hangs or other obvious errors) and was followed up by the
-    evaluation procedure documented in doc/wiki_source/Testing_PLplot.
-    Those evaluations showed no configure, build, or obvious run-time
-    errors (i.e., no non-zero return codes for any of the steps in these
-    comprehensive tests), and the difference test results (done with the
-    default svg device) were perfect as well.
-
-diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index 93cb01b..5bcbceb 100644
---- a/examples/CMakeLists.txt
-+++ b/examples/CMakeLists.txt
-@@ -343,27 +343,24 @@ if(CORE_BUILD)
-       # Extra layer of -Wl indirection required for the nagfor compiler
-       string(REPLACE "-Wl," "-Wl,-Wl,," install_tree_fortran_RPATHCMD ${install_tree_fortran_RPATHCMD})
-     endif(install_tree_fortran_RPATHCMD AND CMAKE_Fortran_COMPILER MATCHES "nagfor")
-+  endif(USE_RPATH AND NOT WIN32_OR_CYGWIN)
-+
-+  # ocaml is a special case not handled by the above logic for other languages
-+  # because the (unofficial) CMake language support is
-+  # implemented with low-level add_custom commands/targets so that rpath
-+  # must be specified for 3 cases (the traditional build of the installed
-+  # examples, and the CMake-based build of the build-tree and install-tree examples).
-+  # Furthermore, the rpath syntax is different for ocaml.
-+  if(ENABLE_ocaml)
-+    set(language ocaml)
- 
--    # ocaml is a special case because the (unofficial) CMake language support is
--    # implemented with low-level add_custom commands/targets so that rpath
--    # must be specified for 3 cases (the traditional build of the installed
--    # examples, and the CMake-based build of the build-tree and install-tree examples).
--    # Furthermore, the rpath syntax is different for ocaml.
--    if(ENABLE_ocaml)
--      set(language ocaml)
-+    if(USE_RPATH AND NOT WIN32_OR_CYGWIN)
-       # Each of the installed examples that are built depend on a library installed in ${LIB_DIR}.
-       set(install_tree_${language}_RPATH ${LIB_DIR})
--      # The ocaml examples depend on the plplot library
-+      # The ocaml examples depend on the plplot library so use INSTALL_RPATH
-+      # property of that library target.
-       set(tll_arguments PLPLOT::plplot)
-       process_rpath(install_tree_${language}_RPATH "${tll_arguments}")
--
--      # Special case of the ocaml build-tree examples.
--      # Must be done before ${install_tree_${language}_RPATH gets transformed
--      # from official CMake list to colon-separated form.
--      set(build_tree_${language}_RPATH ${install_tree_${language}_RPATH})
--      list(REMOVE_ITEM build_tree_${language}_RPATH ${LIB_DIR})
--      list(APPEND build_tree_${language}_RPATH ${CMAKE_BINARY_DIR}/src)
--
-       # Transform from semicolon- to colon-separated list.  (Quotes
-       # for last argument required to process whole argument as string
-       # containing semicolons rather than as the concatanated elements
-@@ -372,19 +369,30 @@ if(CORE_BUILD)
-       # install- and build-tree versions of CMake-based build of ocaml
-       # examples
-       string(REGEX REPLACE ";" ":"  install_tree_${language}_RPATH "${install_tree_${language}_RPATH}")
--      string(REGEX REPLACE ";" ":"  build_tree_${language}_RPATH "${build_tree_${language}_RPATH}")
-       string(REPLACE " " "\\ " install_tree_${language}_RPATH_ESCAPED "${install_tree_${language}_RPATH}")
--      string(REPLACE " " "\\ " build_tree_${language}_RPATH_ESCAPED "${build_tree_${language}_RPATH}")
--
-       # install_tree_ocaml_RPATHCMD needed in configured traditional
-       # Makefile for the ocaml subdirectory.
-       # Ocaml compiler requires -ccopt in front of every -Wl option:
-       set(install_tree_${language}_RPATHCMD "-ccopt -Wl,-rpath -ccopt -Wl,\"${install_tree_${language}_RPATH_ESCAPED}\"")
-+    endif(USE_RPATH AND NOT WIN32_OR_CYGWIN)
- 
--    endif(ENABLE_ocaml)
-+    # Special case of the ocaml build-tree examples.
-+    # Follow above process_rpath logic but with some changes
-+    # appropriate for the core build of the ocaml examples.
-+    set(build_tree_${language}_RPATH ${CMAKE_BINARY_DIR}/src)
-+    set(tll_arguments PLPLOT::plplot)
-+    process_rpath(build_tree_${language}_RPATH "${tll_arguments}")
- 
-+    # Get rid of any mention of ${LIB_DIR} for the core build version
-+    # of the examples.
-+    # Must be done before ${build_tree_${language}_RPATH gets transformed
-+    # from official CMake list to colon-separated form.
-+    list(REMOVE_ITEM build_tree_${language}_RPATH ${LIB_DIR})
- 
--  endif(USE_RPATH AND NOT WIN32_OR_CYGWIN)
-+    string(REGEX REPLACE ";" ":"  build_tree_${language}_RPATH "${build_tree_${language}_RPATH}")
-+    string(REPLACE " " "\\ " build_tree_${language}_RPATH_ESCAPED "${build_tree_${language}_RPATH}")
-+
-+  endif(ENABLE_ocaml)
- 
-   # Install Chloe.pgm in installed examples directory so that all implementations
-   # of example 20 in the various examples subdirectories can conveniently

diff --git a/sci-libs/plplot/files/plplot-5.15.0-ocaml.patch b/sci-libs/plplot/files/plplot-5.15.0-ocaml.patch
deleted file mode 100644
index 6f0827f334e5..000000000000
--- a/sci-libs/plplot/files/plplot-5.15.0-ocaml.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt.ocaml plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt
---- plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt.ocaml	2018-09-19 17:38:53.000000000 -0600
-+++ plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/CMakeLists.txt	2018-09-19 20:32:29.884146436 -0600
-@@ -326,11 +326,11 @@ if(ENABLE_ocaml)
-     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cmo
-     )
- 
--  # ocamlc -a -custom builds a *.cma library from *.cmo
-+  # ocamlc -a builds a *.cma library from *.cmo
-   add_custom_command(
-     OUTPUT
-     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cma
--    COMMAND ${OCAMLC} -a -custom -o plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${ocaml_LIBRARIES_FLAGS}
-+    COMMAND ${OCAMLC} -a -o plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${ocaml_LIBRARIES_FLAGS}
-     DEPENDS
-     ${CMAKE_CURRENT_BINARY_DIR}/plplot_core.cmo
-     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cmo
-@@ -341,7 +341,7 @@ if(ENABLE_ocaml)
-   add_custom_command(
-     OUTPUT
-     ${CMAKE_CURRENT_BINARY_DIR}/installed_plplot.cma
--    COMMAND ${OCAMLC} -a -custom -o installed_plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${installed_ocaml_LIBRARIES_FLAGS}
-+    COMMAND ${OCAMLC} -a -o installed_plplot.cma plplot_core.cmo plplot.cmo -dllib -lplplot_stubs -ccopt -L. -cclib -lplplot_stubs -ccopt -L${CAMLIDL_LIB_DIR} -cclib -lcamlidl ${installed_ocaml_LIBRARIES_FLAGS}
-     DEPENDS
-     ${CMAKE_CURRENT_BINARY_DIR}/plplot_core.cmo
-     ${CMAKE_CURRENT_BINARY_DIR}/plplot.cmo
-diff -up plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt.ocaml plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt
---- plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt.ocaml	2018-09-19 20:32:29.884146436 -0600
-+++ plplot-plplot-a9d9500c732d4eae47ed7fca687e02ec8a48d02c/bindings/ocaml/plcairo/CMakeLists.txt	2018-09-19 20:33:18.389750080 -0600
-@@ -91,11 +91,11 @@ if(ENABLE_ocaml AND OCAML_HAS_CAIRO)
-     ${CMAKE_CURRENT_BINARY_DIR}/plcairo.ml
-     )
- 
--  # ocamlc -a -custom builds a *.cma library from *.cmo
-+  # ocamlc -a builds a *.cma library from *.cmo
-   add_custom_command(
-     OUTPUT
-     ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cma
--    COMMAND ${OCAMLC} -a -custom -o ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cma -I ${PATH_TO_PLPLOT_CMA} plplot.cma ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cmo -dllib -lplcairo_stubs -ccopt -L${CMAKE_CURRENT_BINARY_DIR} -cclib -lplcairo_stubs -ccopt -L${CMAKE_BINARY_DIR}/src -cclib -l${WRITEABLE_TARGET}plplot -dllpath ${CMAKE_BINARY_DIR}/src
-+    COMMAND ${OCAMLC} -a -o ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cma -I ${PATH_TO_PLPLOT_CMA} plplot.cma ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cmo -dllib -lplcairo_stubs -ccopt -L${CMAKE_CURRENT_BINARY_DIR} -cclib -lplcairo_stubs -ccopt -L${CMAKE_BINARY_DIR}/src -cclib -l${WRITEABLE_TARGET}plplot -dllpath ${CMAKE_BINARY_DIR}/src
-     DEPENDS
-     ${CMAKE_CURRENT_BINARY_DIR}/plcairo.cmo
-     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}

diff --git a/sci-libs/plplot/files/plplot-5.9.6-python.patch b/sci-libs/plplot/files/plplot-5.9.6-python.patch
deleted file mode 100644
index d62ece2ec416..000000000000
--- a/sci-libs/plplot/files/plplot-5.9.6-python.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/examples/python/CMakeLists.txt b/examples/python/CMakeLists.txt
-index 7599164..8457490 100644
---- a/examples/python/CMakeLists.txt
-+++ b/examples/python/CMakeLists.txt
-@@ -214,7 +214,7 @@ if(CORE_BUILD)
-     @ONLY
-     )
- 
--  set(python_location1 ${PYTHON_INSTDIR})
-+  set(python_location1)
-   set(python_location2)
-   set(python_location3)
-   set(python_location4)

diff --git a/sci-libs/plplot/plplot-5.15.0-r105.ebuild b/sci-libs/plplot/plplot-5.15.0-r105.ebuild
deleted file mode 100644
index f6506f7c5103..000000000000
--- a/sci-libs/plplot/plplot-5.15.0-r105.ebuild
+++ /dev/null
@@ -1,302 +0,0 @@
-# Copyright 1999-2023 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_{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}.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.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
-	)
-"
-
-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
-	"${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 && 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
-	# - 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
-}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-03-24 21:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-24 21:03 [gentoo-commits] repo/gentoo:master commit in: sci-libs/plplot/, sci-libs/plplot/files/ Andreas Sturmlechner
  -- strict thread matches above, loose matches on Subject: below --
2020-09-21  8:21 David Seifert
2019-12-27 12:53 Pacho Ramos

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox