* [PATCH] gnu: Add coda.
@ 2016-10-19 9:59 Thomas Danckaert
2016-10-19 20:13 ` Ludovic Courtès
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Danckaert @ 2016-10-19 9:59 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: Text/Plain, Size: 739 bytes --]
This is a C library wich also presents a python interface. It can be
used just as well without python, so I've made python only a native
input, not a regular input. There's currently a non-determinism
issue for the python interface, related to
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22533
I also tried to automatically generate the string
“lib/python3.4/site-packages”, so it's updated automatically when the
python version changes, but didn't manage to do that (for example I
tried
(version-major+minor (package-version python))
but the package variable “python” is not available when the build
expression is turned into a derivation, as far as I understand it?).
Advice welcome.
Thomas
[-- Attachment #2: 0001-gnu-Add-coda.patch --]
[-- Type: Text/X-Patch, Size: 2093 bytes --]
From edb38dfcc09afdef4279728c84d10688b9d0fc71 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.danckaert@gmail.com>
Date: Wed, 19 Oct 2016 11:44:33 +0200
Subject: [PATCH] gnu: Add coda.
* gnu/packages/maths.scm (coda): New variable.
---
gnu/packages/maths.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 07934e3..f28d8b4 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -113,6 +113,42 @@ interactive dialogs to guide them.")
(license license:gpl3+)
(home-page "http://www.gnu.org/software/c-graph/")))
+(define-public coda
+ (package
+ (name "coda")
+ (version "2.17.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/stcorp/coda/releases/download/"
+ version "/coda-" version ".tar.gz"))
+ (sha256
+ (base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"))))
+ (native-inputs
+ `(("fortran" ,gfortran)
+ ("python" ,python)
+ ("python-numpy" ,python-numpy)))
+ (inputs
+ `(("zlib" ,zlib)
+ ("hdf4" ,hdf4-alt)
+ ("hdf5" ,hdf5)))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python")))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "PYTHONPATH")
+ (files '("lib/python3.4/site-packages")))))
+ (synopsis "Common interface to various earth observation data formats")
+ (description
+ "The Common Data Access toolbox (CODA) provides a set of interfaces for
+reading remote sensing data from earth observation data files. These
+interfaces consist of command line applications, libraries, interfaces to
+scientific applications (such as IDL and MATLAB), and interfaces to
+programming languages (such as C, Fortran, Python, and Java).")
+ (home-page "https://stcorp.nl/coda")
+ (license license:gpl2)))
+
(define-public units
(package
(name "units")
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: Add coda.
2016-10-19 9:59 [PATCH] gnu: Add coda Thomas Danckaert
@ 2016-10-19 20:13 ` Ludovic Courtès
2016-10-21 7:26 ` Thomas Danckaert
0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2016-10-19 20:13 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: guix-devel
Thomas Danckaert <post@thomasdanckaert.be> skribis:
> This is a C library wich also presents a python interface. It can be
> used just as well without python, so I've made python only a native
> input, not a regular input. There's currently a non-determinism issue
> for the python interface, related to
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22533
>
> I also tried to automatically generate the string
> “lib/python3.4/site-packages”, so it's updated automatically when the
> python version changes, but didn't manage to do that (for example I
> tried
>
> (version-major+minor (package-version python))
>
> but the package variable “python” is not available when the build
> expression is turned into a derivation, as far as I understand
> it?). Advice welcome.
I think this is not needed; see below.
> From edb38dfcc09afdef4279728c84d10688b9d0fc71 Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <thomas.danckaert@gmail.com>
> Date: Wed, 19 Oct 2016 11:44:33 +0200
> Subject: [PATCH] gnu: Add coda.
>
> * gnu/packages/maths.scm (coda): New variable.
[...]
> + (native-search-paths
> + (list (search-path-specification
> + (variable "PYTHONPATH")
> + (files '("lib/python3.4/site-packages")))))
Unless I’m mistaken this is not needed: this ‘native-search-paths’ entry
belongs in Python itself, not in users of Python.
> + (synopsis "Common interface to various earth observation data formats")
> + (description
> + "The Common Data Access toolbox (CODA) provides a set of interfaces for
> +reading remote sensing data from earth observation data files. These
> +interfaces consist of command line applications, libraries, interfaces to
> +scientific applications (such as IDL and MATLAB), and interfaces to
Let’s remove MATLAB; we can replace it with Octave if it’s valid.
> + (license license:gpl2)))
Version 2 only? That is, is the “or any later version” wording missing
from license headers?
Otherwise LGTM.
Could you send an updated patch?
Thank you!
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: Add coda.
2016-10-19 20:13 ` Ludovic Courtès
@ 2016-10-21 7:26 ` Thomas Danckaert
2016-10-24 21:24 ` Ludovic Courtès
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Danckaert @ 2016-10-21 7:26 UTC (permalink / raw)
To: ludo; +Cc: guix-devel
[-- Attachment #1: Type: Text/Plain, Size: 1674 bytes --]
From: ludo@gnu.org (Ludovic Courtès)
Subject: Re: [PATCH] gnu: Add coda.
Date: Wed, 19 Oct 2016 22:13:42 +0200
>> + (native-search-paths
>> + (list (search-path-specification
>> + (variable "PYTHONPATH")
>> + (files '("lib/python3.4/site-packages")))))
>
> Unless I’m mistaken this is not needed: this ‘native-search-paths’
> entry
> belongs in Python itself, not in users of Python.
I used ipython to test the interface, and noticed the PYTHONPATH
setting was missing. That's why I added it here. So probably this
native-search-paths entry could/should be added to the ipython
package?
>> + (synopsis "Common interface to various earth observation data
>> formats")
>> + (description
>> + "The Common Data Access toolbox (CODA) provides a set of
>> interfaces for
>> +reading remote sensing data from earth observation data files.
>> These
>> +interfaces consist of command line applications, libraries,
>> interfaces to
>> +scientific applications (such as IDL and MATLAB), and interfaces
>> to
>
> Let’s remove MATLAB; we can replace it with Octave if it’s valid.
I removed IDL as well, because it's the same story as Matlab
(proprietary scripting language for scientific applications). I
don't think there's an Octave interface, unless Octave can
automatically use interfaces written for Matlab (unlikely? I have no
experience with either).
>> + (license license:gpl2)))
>
> Version 2 only? That is, is the “or any later version” wording
> missing
> from license headers?
gpl2+, indeed.
I've attached an updated patch.
cheers,
Thomas
[-- Attachment #2: 0001-gnu-Add-coda.patch --]
[-- Type: Text/X-Patch, Size: 1836 bytes --]
From f521132ac56e3ad6f7e6169fa1a0fcd56beb77f6 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.danckaert@gmail.com>
Date: Wed, 19 Oct 2016 11:44:33 +0200
Subject: [PATCH] gnu: Add coda.
* gnu/packages/maths.scm (coda): New variable.
---
gnu/packages/maths.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 07934e3..c3c5b68 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -113,6 +113,37 @@ interactive dialogs to guide them.")
(license license:gpl3+)
(home-page "http://www.gnu.org/software/c-graph/")))
+(define-public coda
+ (package
+ (name "coda")
+ (version "2.17.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/stcorp/coda/releases/download/"
+ version "/coda-" version ".tar.gz"))
+ (sha256
+ (base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"))))
+ (native-inputs
+ `(("fortran" ,gfortran)
+ ("python" ,python)
+ ("python-numpy" ,python-numpy)))
+ (inputs
+ `(("zlib" ,zlib)
+ ("hdf4" ,hdf4-alt)
+ ("hdf5" ,hdf5)))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python")))
+ (synopsis "A common interface to various earth observation data formats")
+ (description
+ "The Common Data Access toolbox (CODA) provides a set of interfaces for
+reading remote sensing data from earth observation data files. It consists of
+command line applications and interfaces to the C, Fortran, Python, and Java
+programming languages.")
+ (home-page "https://stcorp.nl/coda")
+ (license license:gpl2+)))
+
(define-public units
(package
(name "units")
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: Add coda.
2016-10-21 7:26 ` Thomas Danckaert
@ 2016-10-24 21:24 ` Ludovic Courtès
2016-10-25 9:15 ` Thomas Danckaert
0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2016-10-24 21:24 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: guix-devel
Thomas Danckaert <post@thomasdanckaert.be> skribis:
> From: ludo@gnu.org (Ludovic Courtès)
> Subject: Re: [PATCH] gnu: Add coda.
> Date: Wed, 19 Oct 2016 22:13:42 +0200
>
>>> + (native-search-paths
>>> + (list (search-path-specification
>>> + (variable "PYTHONPATH")
>>> + (files '("lib/python3.4/site-packages")))))
>>
>> Unless I’m mistaken this is not needed: this ‘native-search-paths’
>> entry
>> belongs in Python itself, not in users of Python.
>
> I used ipython to test the interface, and noticed the PYTHONPATH
> setting was missing. That's why I added it here. So probably this
> native-search-paths entry could/should be added to the ipython
> package?
Probably not. I think the problem is as described in
<http://bugs.gnu.org/22138>.
>>> + (synopsis "Common interface to various earth observation data
>>> formats")
>>> + (description
>>> + "The Common Data Access toolbox (CODA) provides a set of
>>> interfaces for
>>> +reading remote sensing data from earth observation data files.
>>> These
>>> +interfaces consist of command line applications, libraries,
>>> interfaces to
>>> +scientific applications (such as IDL and MATLAB), and interfaces
>>> to
>>
>> Let’s remove MATLAB; we can replace it with Octave if it’s valid.
>
> I removed IDL as well, because it's the same story as Matlab
> (proprietary scripting language for scientific applications). I don't
> think there's an Octave interface, unless Octave can automatically use
> interfaces written for Matlab (unlikely? I have no experience with
> either).
OK. ISTR Octave can work with “MEX files”, but I’m no expert.
> From f521132ac56e3ad6f7e6169fa1a0fcd56beb77f6 Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <thomas.danckaert@gmail.com>
> Date: Wed, 19 Oct 2016 11:44:33 +0200
> Subject: [PATCH] gnu: Add coda.
>
> * gnu/packages/maths.scm (coda): New variable.
Applied, thanks!
However I noticed that Coda bundles copies of zlib, pcre, and expat.
Could you send a patch that (1) adds those as inputs and makes sure the
bundled copies are not used (using ‘guix gc --references’ on the
result), and (2) removes the corresponding directories from the source
tree in a ‘snippet’, if possible?
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: Add coda.
2016-10-24 21:24 ` Ludovic Courtès
@ 2016-10-25 9:15 ` Thomas Danckaert
2016-10-25 12:58 ` Ludovic Courtès
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Danckaert @ 2016-10-25 9:15 UTC (permalink / raw)
To: ludo; +Cc: guix-devel
[-- Attachment #1: Type: Text/Plain, Size: 283 bytes --]
Thanks for applying!
From: ludo@gnu.org (Ludovic Courtès)
Subject: Re: [PATCH] gnu: Add coda.
Date: Mon, 24 Oct 2016 23:24:17 +0200
> However I noticed that Coda bundles copies of zlib, pcre, and expat.
I hadn't noticed that. I've attached a patch.
cheers,
Thomas
[-- Attachment #2: 0001-gnu-coda-Remove-bundled-libraries.patch --]
[-- Type: Text/X-Patch, Size: 5719 bytes --]
From 56ba046e6c176e8f1109bb28ab75a586daa287db Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.danckaert@gmail.com>
Date: Tue, 25 Oct 2016 10:56:46 +0200
Subject: [PATCH] gnu: coda: Remove bundled libraries.
* gnu/packages/maths.scm (coda): Remove bundled libraries.
[source]: Add patch and snippet to remove bundled zlib, pcre and expat.
[inputs]: Add system zlib, pcre and expat.
* gnu/packages/patches/coda-use-system-libs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/maths.scm | 13 +++++--
gnu/packages/patches/coda-use-system-libs.patch | 46 +++++++++++++++++++++++++
3 files changed, 58 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/coda-use-system-libs.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 51849f4..4ffd37a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -484,6 +484,7 @@ dist_patch_DATA = \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/clx-remove-demo.patch \
%D%/packages/patches/cmake-fix-tests.patch \
+ %D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/cpio-CVE-2016-2037.patch \
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
%D%/packages/patches/cracklib-CVE-2016-6318.patch \
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 2928cb6..70a6212 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -123,18 +123,27 @@ interactive dialogs to guide them.")
(uri (string-append "https://github.com/stcorp/coda/releases/download/"
version "/coda-" version ".tar.gz"))
(sha256
- (base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"))))
+ (base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"))
+ (patches (search-patches "coda-use-system-libs.patch"))
+ (modules '((guix build utils)))
+ (snippet ;; Make sure we don't use the bundled software.
+ '(map (lambda (d)
+ (delete-file-recursively (string-append "libcoda/" d) ))
+ '("zlib" "pcre" "expat")))))
(native-inputs
`(("fortran" ,gfortran)
("python" ,python)
("python-numpy" ,python-numpy)))
(inputs
`(("zlib" ,zlib)
+ ("pcre" ,pcre)
+ ("expat" ,expat)
("hdf4" ,hdf4-alt)
("hdf5" ,hdf5)))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python")))
+ '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python"
+ "LIBS= -lz -lpcre -lexpat")))
(synopsis "A common interface to various earth observation data formats")
(description
"The Common Data Access toolbox (CODA) provides a set of interfaces for
diff --git a/gnu/packages/patches/coda-use-system-libs.patch b/gnu/packages/patches/coda-use-system-libs.patch
new file mode 100644
index 0000000..fbf8441
--- /dev/null
+++ b/gnu/packages/patches/coda-use-system-libs.patch
@@ -0,0 +1,46 @@
+Remove dependencies on bundled zlib, pcre and expat.
+
+diff --git a/Makefile.in b/Makefile.in
+index 4360a26..80f9f59 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -210,8 +210,7 @@ coda_matlab_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ @BUILD_MATLAB_TRUE@@SUBPACKAGE_MODE_FALSE@ -rpath \
+ @BUILD_MATLAB_TRUE@@SUBPACKAGE_MODE_FALSE@ $(matlabmexexecdir)
+ am__DEPENDENCIES_1 =
+-libcoda_la_DEPENDENCIES = @LTLIBOBJS@ libexpat_internal.la \
+- libpcre_internal.la libz_internal.la $(am__DEPENDENCIES_1) \
++libcoda_la_DEPENDENCIES = @LTLIBOBJS@ $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+ am__libcoda_la_SOURCES_DIST = libcoda/coda-ascbin-cursor.c \
+ libcoda/coda-ascbin.h libcoda/coda-ascii-cursor.c \
+@@ -306,8 +305,7 @@ libcoda_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libcoda_la_LDFLAGS) $(LDFLAGS) -o $@
+ @SUBPACKAGE_MODE_FALSE@am_libcoda_la_rpath = -rpath $(libdir)
+-am__DEPENDENCIES_2 = @LTLIBOBJS@ libexpat_internal.la \
+- libpcre_internal.la libz_internal.la $(am__DEPENDENCIES_1) \
++am__DEPENDENCIES_2 = @LTLIBOBJS@ $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+ libcoda_internal_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
+ am__libcoda_internal_la_SOURCES_DIST = libcoda/coda-ascbin-cursor.c \
+@@ -898,8 +896,8 @@ INSTALL_DATA_HOOK_TARGETS = $(am__append_1)
+ UNINSTALL_HOOK_TARGETS =
+ CLEAN_LOCAL_TARGETS = $(am__append_11)
+ ALL_LOCAL_TARGETS =
+-@SUBPACKAGE_MODE_FALSE@noinst_LTLIBRARIES = libcoda_internal.la libexpat_internal.la libpcre_internal.la libz_internal.la
+-@SUBPACKAGE_MODE_TRUE@noinst_LTLIBRARIES = libcoda_internal.la libexpat_internal.la libpcre_internal.la libz_internal.la
++@SUBPACKAGE_MODE_FALSE@noinst_LTLIBRARIES = libcoda_internal.la
++@SUBPACKAGE_MODE_TRUE@noinst_LTLIBRARIES = libcoda_internal.la
+
+ # libraries (+ related files)
+ @SUBPACKAGE_MODE_FALSE@lib_LTLIBRARIES = libcoda.la
+@@ -1048,7 +1046,7 @@ libcoda_hdf5_files = \
+
+ libcoda_la_CPPFLAGS = -Ilibcoda/expat -I$(srcdir)/libcoda/expat -Ilibcoda/pcre -I$(srcdir)/libcoda/pcre -Ilibcoda/zlib -I$(srcdir)/libcoda/zlib $(AM_CPPFLAGS)
+ libcoda_la_LDFLAGS = -no-undefined -version-info $(LIBCODA_CURRENT):$(LIBCODA_REVISION):$(LIBCODA_AGE)
+-libcoda_la_LIBADD = @LTLIBOBJS@ libexpat_internal.la libpcre_internal.la libz_internal.la $(HDF4LIBS) $(HDF5LIBS)
++libcoda_la_LIBADD = @LTLIBOBJS@ $(HDF4LIBS) $(HDF5LIBS)
+ libcoda_internal_la_SOURCES = libcoda/coda-ascbin-cursor.c \
+ libcoda/coda-ascbin.h libcoda/coda-ascii-cursor.c \
+ libcoda/coda-ascii-internal.h libcoda/coda-ascii.c \
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: Add coda.
2016-10-25 9:15 ` Thomas Danckaert
@ 2016-10-25 12:58 ` Ludovic Courtès
0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2016-10-25 12:58 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: guix-devel
Thomas Danckaert <post@thomasdanckaert.be> skribis:
> From 56ba046e6c176e8f1109bb28ab75a586daa287db Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <thomas.danckaert@gmail.com>
> Date: Tue, 25 Oct 2016 10:56:46 +0200
> Subject: [PATCH] gnu: coda: Remove bundled libraries.
>
> * gnu/packages/maths.scm (coda): Remove bundled libraries.
> [source]: Add patch and snippet to remove bundled zlib, pcre and expat.
> [inputs]: Add system zlib, pcre and expat.
> * gnu/packages/patches/coda-use-system-libs.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
Woow, that was fast!
> + (snippet ;; Make sure we don't use the bundled software.
> + '(map (lambda (d)
> + (delete-file-recursively (string-append "libcoda/" d) ))
^
I changed ‘map’ to ‘for-each’, to make it clear that this expression is
used for effects, and removed the extra space above.
Pushed, thanks!
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-10-25 12:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-19 9:59 [PATCH] gnu: Add coda Thomas Danckaert
2016-10-19 20:13 ` Ludovic Courtès
2016-10-21 7:26 ` Thomas Danckaert
2016-10-24 21:24 ` Ludovic Courtès
2016-10-25 9:15 ` Thomas Danckaert
2016-10-25 12:58 ` Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).