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.
This commit is contained in:
Maxim Cournoyer 2020-01-24 23:13:46 -05:00
parent 89c34f5e48
commit f977fe92c4
No known key found for this signature in database
GPG key ID: 1260E46482E63562
3 changed files with 15 additions and 33 deletions

View 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 \

View file

@ -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

View 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 @@ (define-public plotutils
(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 @@ (define-public plotutils
(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.")
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