From 926c4b5def384fcdd03a7939a6765068fb0100e7 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 24 Jan 2020 23:13:46 -0500 Subject: [PATCH 08/14] 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. --- gnu/local.mk | 1 - .../patches/plotutils-libpng-jmpbuf.patch | 23 ------------------ gnu/packages/plotutils.scm | 24 ++++++++++++------- 3 files changed, 15 insertions(+), 33 deletions(-) delete mode 100644 gnu/packages/patches/plotutils-libpng-jmpbuf.patch diff --git a/gnu/local.mk b/gnu/local.mk index ba9f9728b2..86efba5d2d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1369,7 +1369,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 a1e32eb398..15a310b5fe 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016, 2017, 2019, 2020 Nicolas Goaziou ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; 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 -- 2.26.2