summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-01-24 23:13:46 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-05-31 22:12:12 -0400
commitf977fe92c4456c3a051832a96c5338e646771c05 (patch)
tree9f9235c3ea6d45583f08bbb6bf088f0e3b091969
parent89c34f5e48431de070c057cf4162a4519afbb0ba (diff)
downloadguix-f977fe92c4456c3a051832a96c5338e646771c05.tar.gz
gnu: plotutils: Build libplotter.
* 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.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/plotutils-libpng-jmpbuf.patch23
-rw-r--r--gnu/packages/plotutils.scm24
3 files changed, 15 insertions, 33 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index befe89ff3e..6d775828e0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -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
index 07ef60996c..0000000000
--- a/gnu/packages/patches/plotutils-libpng-jmpbuf.patch
+++ /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 
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index edd492c711..f6881f6776 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -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
@@ -67,22 +67,28 @@
                  (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