gnu: plotutils: Build libplotter.
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>
Sat, 25 Jan 2020 04:13:46 +0000 (23:13 -0500)
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>
Mon, 1 Jun 2020 02:12:12 +0000 (22:12 -0400)
* gnu/packages/plotutils.scm (plotutils)[origin]: Port the patch to a snippet,
which catches all the problematic occurrences.
[configure-flags]: Pass "--enable-libplotter".
[description]: Mention the newly added C++ libplotter library.

gnu/local.mk
gnu/packages/patches/plotutils-libpng-jmpbuf.patch [deleted file]
gnu/packages/plotutils.scm

index befe89f..6d77582 100644 (file)
@@ -1377,7 +1377,6 @@ dist_patch_DATA =                                         \
   %D%/packages/patches/plink-endian-detection.patch            \
   %D%/packages/patches/plib-CVE-2011-4620.patch                \
   %D%/packages/patches/plib-CVE-2012-4552.patch                \
-  %D%/packages/patches/plotutils-libpng-jmpbuf.patch           \
   %D%/packages/patches/podofo-cmake-3.12.patch                 \
   %D%/packages/patches/portaudio-audacity-compat.patch         \
   %D%/packages/patches/portmidi-modular-build.patch            \
diff --git a/gnu/packages/patches/plotutils-libpng-jmpbuf.patch b/gnu/packages/patches/plotutils-libpng-jmpbuf.patch
deleted file mode 100644 (file)
index 07ef609..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Use the `png_jmpbuf' accessor, as recommended since libpng 1.4.0:
-http://www.libpng.org/pub/png/src/libpng-1.2.x-to-1.4.x-summary.txt .
-
---- plotutils-2.6/libplot/z_write.c    2013-07-12 17:19:12.000000000 +0200
-+++ plotutils-2.6/libplot/z_write.c    2013-07-12 17:19:07.000000000 +0200
-@@ -164,7 +164,7 @@ _pl_z_maybe_output_image (S___(Plotter *
-     }
-   /* cleanup after libpng errors (error handler does a longjmp) */
--  if (setjmp (png_ptr->jmpbuf))
-+  if (setjmp (png_jmpbuf (png_ptr)))
-     {
-       png_destroy_write_struct (&png_ptr, (png_info **)NULL);
-       return -1;
-@@ -444,7 +444,7 @@ _our_error_fn_stdio (png_struct *png_ptr
- #endif
-     }
--  longjmp (png_ptr->jmpbuf, 1);
-+  longjmp (png_jmpbuf (png_ptr), 1);
- }
- static void 
index edd492c..f6881f6 100644 (file)
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -56,7 +57,6 @@
              (sha256
               (base32
                "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg"))
-             (patches (search-patches "plotutils-libpng-jmpbuf.patch"))
              (modules '((guix build utils)))
              (snippet
               ;; Force the use of libXaw7 instead of libXaw.  When not doing
                  (substitute* "configure"
                    (("-lXaw")
                     "-lXaw7"))
+                 ;; Use the `png_jmpbuf' accessor, as recommended since libpng
+                 ;; 1.4.0 (see:
+                 ;; http://www.libpng.org/pub/png/src/libpng-1.2.x-to-1.4.x-summary.txt).
+                 (substitute* "libplot/z_write.c"
+                   (("png_ptr->jmpbuf")
+                    "png_jmpbuf (png_ptr)"))
                  #t))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list "--enable-libplotter")))
     (inputs `(("libpng" ,libpng)
               ("libx11" ,libx11)
               ("libxt" ,libxt)
               ("libxaw" ,libxaw)))
-
-    (home-page
-     "https://www.gnu.org/software/plotutils/")
+    (home-page "https://www.gnu.org/software/plotutils/")
     (synopsis "Plotting utilities and library")
     (description
-     "GNU Plotutils is a package for plotting and working with 2D graphics. 
-It includes a library, \"libplot\", for C and C++ for exporting 2D vector
-graphics in many file formats.  It also has support for 2D vector graphics
-animations.  The package also contains command-line programs for plotting
-scientific data.")
+     "GNU Plotutils is a package for plotting and working with 2D graphics.
+It includes the C library @code{libplot} and the C++ @code{libplotter} library
+for exporting 2D vector graphics in many file formats.  It also has support
+for 2D vector graphics animations.  The package also contains command-line
+programs for plotting scientific data.")
     (license license:gpl2+)))
 
 (define-public guile-charting