aboutsummaryrefslogtreecommitdiff
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
guix-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