diff mbox series

[bug#46160,v3] gnu: Add plplot

Message ID CAO+9K5raNO0uSga+YfSnSpsn2ZSGeq3jH81J26szaOp3pHAOQQ@mail.gmail.com
State New
Headers show
Series [bug#46160,v3] gnu: Add plplot | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Sharlatan Hellseher May 13, 2022, 3:30 p.m. UTC
Hi Guix team!

This is fixed version of the patch adding plplot with all test enabled
and folowing new packge style fromat.



-- 
… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.

Comments

Maxim Cournoyer May 22, 2022, 3:24 a.m. UTC | #1
Hi,

Sharlatan Hellseher <sharlatanus@gmail.com> writes:

> Hi Guix team!
>
> This is fixed version of the patch adding plplot with all test enabled
> and folowing new packge style fromat.
>
>
>
> -- 
> … наш разум - превосходная объяснительная машина которая способна
> найти смысл почти в чем угодно, истолковать любой феномен, но
> совершенно не в состоянии принять мысль о непредсказуемости.
>
> From f190a7f646d8f1d7d212663a629adeb33414eb6a Mon Sep 17 00:00:00 2001
> From: Sharlatan Hellseher <sharlatanus@gmail.com>
> Date: Fri, 13 May 2022 16:13:57 +0100
> Subject: [PATCH] gnu: Add plplot
>
> * gnu/packages/maths.scm (plplot): New variable.
> ---
>  gnu/packages/maths.scm | 55 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
>
> diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
> index 98e239d5bd..641b80f572 100644
> --- a/gnu/packages/maths.scm
> +++ b/gnu/packages/maths.scm
> @@ -50,6 +50,7 @@
>  ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
>  ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
>  ;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
> +;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -123,6 +124,7 @@ (define-module (gnu packages maths)
>    #:use-module (gnu packages llvm)
>    #:use-module (gnu packages logging)
>    #:use-module (gnu packages lua)
> +  #:use-module (gnu packages geo)
>    #:use-module (gnu packages gnome)
>    #:use-module (gnu packages guile)
>    #:use-module (gnu packages xorg)
> @@ -152,6 +154,7 @@ (define-module (gnu packages maths)
>    #:use-module (gnu packages serialization)
>    #:use-module (gnu packages shells)
>    #:use-module (gnu packages sphinx)
> +  #:use-module (gnu packages swig)
>    #:use-module (gnu packages tcl)
>    #:use-module (gnu packages texinfo)
>    #:use-module (gnu packages tex)
> @@ -1123,6 +1126,58 @@ (define-public gnuplot
>      (license (license:fsf-free
>                "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright"))))
>  
> +(define-public plplot
> +  (package
> +    (name "plplot")
> +    (version "5.15.0")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             ;; Mirror: https://github.com/PLplot/PLplot
> +             (url "https://git.code.sf.net/p/plplot/plplot")
> +             (commit (string-append name "-" version))))
> +       (sha256
> +        (base32
> +         "0fn9j251zv9pwlqy30yv4flwcd0cbyxd1nn388n1k158jycw2i91"))
> +       (file-name (git-file-name name version))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:configure-flags
> +      #~(list
> +         "-DBUILD_TEST=ON"
> +         (string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib")
> +         (string-append "-DCMAKE_INSTALL_PREFIX=" #$output))))
> +    (native-inputs
> +     (list perl
> +           python-wrapper
> +           pkg-config
> +           swig))
> +    (inputs
> +     (list freetype
> +           camlidl
> +           gfortran
> +           libltdl
> +           lua
> +           ocaml
> +           octave
> +           pango
> +           perl-xml-dom
> +           perl-xml-parser

Are you sure the Perl XML modules are needed at runtime and not at build
time (to build doc, for example?).

> +           python-numpy

If python-numpy is refered at runtime, you'd need to also add
python-wrapper as an 'input' I believe, since numpy is a Python
library.  One good way to verify if the dependencies are correct is to
run the package in a container with:

$ ./pre-inst-env guix shell -C plplot

and see if something fail.

Another telling data point to shake extraneous dependencies is looking
at the output of 'guix gc -R $(./pre-inst-env guix build plplot)'; if
python-numpy is not there (probably it isn't), but really needed at
runtime, then it'd need to be wrapper in the plplot command script.

Could you verify that the package works in a container, adding a wrap
phase if needed or removing the unneeded inputs?

Thanks!

Maxim
Maxim Cournoyer May 22, 2022, 3:42 a.m. UTC | #2
Hi,

Sharlatan Hellseher <sharlatanus@gmail.com> writes:

[...]

> +    (description
> +     "PLplot is a cross-platform software package for creating scientific plots
> +whose (UTF-8) plot symbols and text.")

I forgot to mention, the description appears to be truncated.  It'd also
be nice if it contained a bit more information to help users
differentiate it from other plotting libraries.

Thanks again,

Maxim
Sharlatan Hellseher May 22, 2022, 7:27 p.m. UTC | #3
Hi Maxim,

Thanks for feedback, it's my one of the long pending package to Guix
due to it's complexity.
I initially followed packaging approach which Debian had but some of
the large projects are not packed yet (ADA for example) so it's
simplified version with less bindings.

It's required for some other astronomical software depending on it.

Regards

On Sun, 22 May 2022 at 04:42, Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
>
> Hi,
>
> Sharlatan Hellseher <sharlatanus@gmail.com> writes:
>
> [...]
>
> > +    (description
> > +     "PLplot is a cross-platform software package for creating scientific plots
> > +whose (UTF-8) plot symbols and text.")
>
> I forgot to mention, the description appears to be truncated.  It'd also
> be nice if it contained a bit more information to help users
> differentiate it from other plotting libraries.
>
> Thanks again,
>
> Maxim



-- 

… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.
diff mbox series

Patch

From f190a7f646d8f1d7d212663a629adeb33414eb6a Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <sharlatanus@gmail.com>
Date: Fri, 13 May 2022 16:13:57 +0100
Subject: [PATCH] gnu: Add plplot

* gnu/packages/maths.scm (plplot): New variable.
---
 gnu/packages/maths.scm | 55 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 98e239d5bd..641b80f572 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -50,6 +50,7 @@ 
 ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Pierre-Antoine Bouttier <pierre-antoine.bouttier@univ-grenoble-alpes.fr>
+;;; Copyright © 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -123,6 +124,7 @@  (define-module (gnu packages maths)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages geo)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages xorg)
@@ -152,6 +154,7 @@  (define-module (gnu packages maths)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tex)
@@ -1123,6 +1126,58 @@  (define-public gnuplot
     (license (license:fsf-free
               "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright"))))
 
+(define-public plplot
+  (package
+    (name "plplot")
+    (version "5.15.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             ;; Mirror: https://github.com/PLplot/PLplot
+             (url "https://git.code.sf.net/p/plplot/plplot")
+             (commit (string-append name "-" version))))
+       (sha256
+        (base32
+         "0fn9j251zv9pwlqy30yv4flwcd0cbyxd1nn388n1k158jycw2i91"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list
+         "-DBUILD_TEST=ON"
+         (string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib")
+         (string-append "-DCMAKE_INSTALL_PREFIX=" #$output))))
+    (native-inputs
+     (list perl
+           python-wrapper
+           pkg-config
+           swig))
+    (inputs
+     (list freetype
+           camlidl
+           gfortran
+           libltdl
+           lua
+           ocaml
+           octave
+           pango
+           perl-xml-dom
+           perl-xml-parser
+           python-numpy
+           qhull
+           shapelib
+           tcl
+           tk
+           wxwidgets))
+    (home-page "http://plplot.org/")
+    (synopsis "Scientific graphics plotting library")
+    (description
+     "PLplot is a cross-platform software package for creating scientific plots
+whose (UTF-8) plot symbols and text.")
+    (license license:lgpl2.0))) ; Other terms are in Copyright file
+
 (define-public gctp
   (package
     (name "gctp")
-- 
2.35.1