Re: [PATCH] Add gctp

2016-09-27 Thread Leo Famulari
On Sat, Sep 24, 2016 at 09:49:56PM +0200, Thomas Danckaert wrote:
> From: Leo Famulari <l...@famulari.name>
> Subject: Re: [PATCH] Add gctp
> Date: Fri, 23 Sep 2016 21:08:25 -0400
> 
> >> +(version "2.0")
> >> +(source
> >> + (origin
> >> +   (method url-fetch)
> >> +   (uri "https://github.com/OkoSanto/GCTP/archive/v2.0.0.tar.gz;)
> > 
> > The only thing I would like to change is this mismatch between the
> > version and the tarball name. Can we call it version 2.0.0?
> > 
> > Also, we should add a (file-name) field so that the downloaded tarball
> > has "gctp" in the name.
> > 
> > I can make these changes locally if you think they are okay.
> 
> Of course, go ahead!
> 
> Thanks for reviewing the patch(-es).

Great, pushed as 32f70e1f86141ed30f1026ea0cf8a4bd377004b0 !

> 
> Thomas



Re: [PATCH] Add gctp

2016-09-24 Thread Thomas Danckaert
From: Leo Famulari <l...@famulari.name>
Subject: Re: [PATCH] Add gctp
Date: Fri, 23 Sep 2016 21:08:25 -0400

>> +(version "2.0")
>> +(source
>> + (origin
>> +   (method url-fetch)
>> +   (uri "https://github.com/OkoSanto/GCTP/archive/v2.0.0.tar.gz;)
> 
> The only thing I would like to change is this mismatch between the
> version and the tarball name. Can we call it version 2.0.0?
> 
> Also, we should add a (file-name) field so that the downloaded tarball
> has "gctp" in the name.
> 
> I can make these changes locally if you think they are okay.

Of course, go ahead!

Thanks for reviewing the patch(-es).

Thomas



Re: [PATCH] Add gctp

2016-09-23 Thread Leo Famulari
On Thu, Sep 15, 2016 at 07:08:08PM +0200, Thomas Danckaert wrote:
> Hi Guix,
> 
> I've cleaned up my gctp patch, following your advice:
> 
> From: Leo Famulari <l...@famulari.name>
> Subject: Re: [PATCH] Add gctp
> Date: Mon, 18 Jul 2016 17:47:23 -0400
> 
> > If it's not possible to use the bundled GCTPs then we have to use an
> > external library, but I think it should be maintained outside of Guix.
> > As you say, it should not be much work to put it on a public Git repo or
> > to host a tarball, since the development is basically complete.
> 
> I took the contents of the gctpc20.tar.Z archive distributed with wgrib2,
> added an autoconf-based build script, and published the repository on
> Github.  Changes are minor: I had to make some changes to the test programs,
> and fix one input routine (int size mismatch when reading an auxiliary
> binary file).
> 
> This version of the patch uses a release tarball published on github. Is
> there a better place I can host a tarball (if not the repository itself?).

Wow, thank you! A GitHub tarball is fine if it works (and this one
does).

> +(version "2.0")
> +(source
> + (origin
> +   (method url-fetch)
> +   (uri "https://github.com/OkoSanto/GCTP/archive/v2.0.0.tar.gz;)

The only thing I would like to change is this mismatch between the
version and the tarball name. Can we call it version 2.0.0?

Also, we should add a (file-name) field so that the downloaded tarball
has "gctp" in the name.

I can make these changes locally if you think they are okay.



Re: [PATCH] Add gctp

2016-09-15 Thread Thomas Danckaert

Hi Guix,

I've cleaned up my gctp patch, following your advice:

From: Leo Famulari <l...@famulari.name>
Subject: Re: [PATCH] Add gctp
Date: Mon, 18 Jul 2016 17:47:23 -0400


If it's not possible to use the bundled GCTPs then we have to use an
external library, but I think it should be maintained outside of 
Guix.
As you say, it should not be much work to put it on a public Git 
repo or

to host a tarball, since the development is basically complete.


I took the contents of the gctpc20.tar.Z archive distributed with 
wgrib2, added an autoconf-based build script, and published the 
repository on Github.  Changes are minor: I had to make some changes 
to the test programs, and fix one input routine (int size mismatch 
when reading an auxiliary binary file).


This version of the patch uses a release tarball published on github. 
Is there a better place I can host a tarball (if not the repository 
itself?).


best,

Thomas
>From 442f902377c95d72b59d2311c78df2d403f02ea4 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 17 Jun 2016 10:41:50 +0200
Subject: [PATCH] gnu: Add gctp.

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

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 44a24ef..e275436 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -418,6 +418,30 @@ plotting engine by third-party applications like Octave.")
   (license (license:fsf-free
 "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright;)
 
+(define-public gctp
+  (package
+(name "gctp")
+(version "2.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri "https://github.com/OkoSanto/GCTP/archive/v2.0.0.tar.gz;)
+   (sha256
+(base32
+ "0l9aqnqynh9laicn5dxf3rsb1n14xiks79wbyqccirzmjqd1c1x4"
+(native-inputs
+ `(("fortran" ,gfortran)))
+(build-system gnu-build-system)
+(synopsis "General Cartographic Transformation Package (GCTP)")
+(description
+ "The General Cartographic Transformation Package (GCTP) is a system of
+software routines designed to permit the transformation of coordinate pairs
+from one map projection to another.  The GCTP is the standard computer
+software used by the National Mapping Division for map projection
+computations.")
+(home-page "https://github.com/OkoSanto/GCTP;)
+(license 'license:public-domain))) ; https://www2.usgs.gov/laws/info_policies.html
+
 (define-public hdf5
   (package
 (name "hdf5")
-- 
2.10.0



Re: [PATCH] Add gctp

2016-07-18 Thread Leo Famulari
On Thu, Jul 07, 2016 at 09:40:18AM +0200, Thomas Danckaert wrote:
> It's not a lot of work to submit a patch for HDF-EOS5 with the bundled
> GCTP, but I'm afraid that other packages which depend on two libraries
> that each bundle (a version of) GCTP (such as HDF-EOS2 and HDF-EOS5),
> will run into problems. There would be either a conflict due to
> multiple versions of libGctp, or, if we statically include GCTP in the
> libraries that use it, conflicting symbols when we link those
> libraries, no?

I'm not sure if there will be problems or not... it's unfortunately
beyond my level of expertise :) I've asked someone with more experience
than me to weigh in.

> For this reason, maybe using a separate GCTP package, and adding a
> patch to projects that use it, is the best solution after all?
> Development of GCTP and most packages that depend on it seems to be
> mostly finished anyway, so maintaining the patches might not be that
> much work.

Based on my experience with Guix so far, I think that maintaining our
own forks of 3rd party software is outside of the scope of the Guix
project. I think that the {nix,guix}-daemon is the only software for
which we do this.

If it's not possible to use the bundled GCTPs then we have to use an
external library, but I think it should be maintained outside of Guix.
As you say, it should not be much work to put it on a public Git repo or
to host a tarball, since the development is basically complete.

Too bad no other distros have already packaged it; often we can copy
them ;)

I'm sorry for the lng delayed reply.



Re: [PATCH] Add gctp

2016-07-18 Thread Ludovic Courtès
Thomas Danckaert <p...@thomasdanckaert.be> skribis:

> From: Leo Famulari <l...@famulari.name> Subject: Re: [PATCH] Add gctp
> Date: Fri, 1 Jul 2016 16:33:12 -0400
>
>> On Mon, Jun 27, 2016 at 09:07:54PM +0200, Thomas Danckaert wrote:
>>> Indeed, I believe GCTP is not maintained anymore, and each project
>>> using it makes a few small adjustments. From the changelog, it
>>> seems GCTP was last changed March 1998.
>> In this case, I think it's appropriate to use the bundled GCTP. What
>> do others think?
>
> It's not a lot of work to submit a patch for HDF-EOS5 with the bundled
> GCTP, but I'm afraid that other packages which depend on two libraries
> that each bundle (a version of) GCTP (such as HDF-EOS2 and HDF-EOS5),
> will run into problems. There would be either a conflict due to
> multiple versions of libGctp, or, if we statically include GCTP in the
> libraries that use it, conflicting symbols when we link those
> libraries, no?
>
> For this reason, maybe using a separate GCTP package, and adding a
> patch to projects that use it, is the best solution after all?
> Development of GCTP and most packages that depend on it seems to be
> mostly finished anyway, so maintaining the patches might not be that
> much work.

Leo, what’s your take on this?  It seems we’ve forgotten about this
patch for too long already.  :-)

Thanks,
Ludo’.



Re: [PATCH] Add gctp

2016-07-07 Thread Thomas Danckaert

From: Leo Famulari <l...@famulari.name>
Subject: Re: [PATCH] Add gctp
Date: Fri, 1 Jul 2016 16:33:12 -0400


On Mon, Jun 27, 2016 at 09:07:54PM +0200, Thomas Danckaert wrote:

Indeed, I believe GCTP is not maintained anymore, and each project using it
makes a few small adjustments. From the changelog, it seems GCTP was last
changed March 1998.


In this case, I think it's appropriate to use the bundled GCTP. What do
others think?


It's not a lot of work to submit a patch for HDF-EOS5 with the bundled GCTP, 
but I'm afraid that other packages which depend on two libraries that each 
bundle (a version of) GCTP (such as HDF-EOS2 and HDF-EOS5), will run into 
problems. There would be either a conflict due to multiple versions of libGctp, 
or, if we statically include GCTP in the libraries that use it, conflicting 
symbols when we link those libraries, no?

For this reason, maybe using a separate GCTP package, and adding a patch to 
projects that use it, is the best solution after all?  Development of GCTP and 
most packages that depend on it seems to be mostly finished anyway, so 
maintaining the patches might not be that much work.

Thomas



Re: [PATCH] Add gctp

2016-07-01 Thread Leo Famulari
On Mon, Jun 27, 2016 at 09:07:54PM +0200, Thomas Danckaert wrote:
> Indeed, I believe GCTP is not maintained anymore, and each project using it
> makes a few small adjustments. From the changelog, it seems GCTP was last
> changed March 1998.

In this case, I think it's appropriate to use the bundled GCTP. What do
others think?

> If there's not much interest to include HDF-EOS right now, I could also
> maintain the libraries as a custom packages somewhere, for the few people
> who need them. I think one of the great things about Guix is that packages
> defined by users or third parties integrate so easily with the main
> repository.

I do think we should include HDF-EOS! If we choose to use the bundled
GCTP, are your earlier patches easily adaptable?



Re: [PATCH] Add gctp

2016-06-27 Thread Thomas Danckaert

From: Leo Famulari <l...@famulari.name>
Subject: Re: [PATCH] Add gctp
Date: Sat, 25 Jun 2016 13:21:31 -0400


It sounds like you've tried emailing the authors for advice. Is that
right?


I tried 2 addresses that I found in the source distributions, but 
both addresses bounced.


It looks like this gctp-2.0 is bundled with wgrib2 [0]. If there is 
no

independent repository for GCTP, I'd assume that GCTP is altered
independently for each application that it's bundled with. If so, I
think it makes sense to use the bundled copy of GCTP.

Otherwise, we are basically forking GCTP and creating a new 
distribution
of it, and that would require us to maintain it and test its 
integration

with HDF-EOS5.


Indeed, I believe GCTP is not maintained anymore, and each project 
using it makes a few small adjustments. From the changelog, it seems 
GCTP was last changed March 1998.


If there's not much interest to include HDF-EOS right now, I could 
also maintain the libraries as a custom packages somewhere, for the 
few people who need them. I think one of the great things about Guix 
is that packages defined by users or third parties integrate so 
easily with the main repository.


best,

Thomas



Re: [PATCH] Add gctp

2016-06-25 Thread Leo Famulari
On Sat, Jun 18, 2016 at 11:05:40AM +0200, Thomas Danckaert wrote:
> From: Leo Famulari 
> Date: Fri, 17 Jun 2016 21:39:26 -0400
> > Should we package GCTP separately in that case? Is it used by anything
> > besides HDF-EOS5? Or, should we just package HDF-EOS5?
> 
> The only other use I'm aware of is in HDF-EOS2, which is a separate library
> from HDF-EOS5, built on HDF4 instead of HDF5, and which also bundles gctp. I
> intend to package HDF-EOS2 as well, once HDF4 is included.
> 
> > We usually don't accept bundled code, but it sounds like GCTP no longer
> > exists as an independent project. Is that right?
> 
> That is my impression, too (broken urls and undeliverable e-mails). The
> package is quite small anyway, so perhaps bundling with the 2 HDF-EOS
> libraries is acceptable?

It sounds like you've tried emailing the authors for advice. Is that
right?

> The archive does not contain an explicit version number or changelog (it
> just says it's the “new C version of the GCTP” -- before that, it seems
> there were some Fortran routines).  I've also found a gctpc2.0 archive,
> which *does* have a changelog, and on closer inspection (comparing the
> source of this package with comments from the changelog from 2.0), it seems
> that this code corresponds to version 1.3... (though e.g. Debian also calls
> it 1.0).  It's quite messy actually. I'll see if HDF-EOS5 builds against
> gctp-2.0 (for which a I've found a cleaner archive), and maybe package that
> instead...

It looks like this gctp-2.0 is bundled with wgrib2 [0]. If there is no
independent repository for GCTP, I'd assume that GCTP is altered
independently for each application that it's bundled with. If so, I
think it makes sense to use the bundled copy of GCTP.

Otherwise, we are basically forking GCTP and creating a new distribution
of it, and that would require us to maintain it and test its integration
with HDF-EOS5.

What do people think? Should we use the bundled GCTP in HDF-EOS5 and,
later, HDF-EOS2?

[0]
http://www.nco.ncep.noaa.gov/pmb/codes/nwprod/util/sorc/wgrib2.cd/grib2/wgrib2/Introduction.txt



Re: [PATCH] Add gctp

2016-06-21 Thread Thomas Danckaert

Hi Guix,

here's a new patch for gctp.  This one takes the source for gctp 2.0, and 
patches it to add an autotools build configuration.  I also had to add a patch 
to remove an override of 'sincos', which leads to an infinite recursion when 
calling sin/cos/sincos on my system.

Thomas
>From 8b03b2edbaf26ed73001ab13ce2e51a3b9a4df53 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert 
Date: Fri, 17 Jun 2016 10:41:50 +0200
Subject: [PATCH] gnu: Add gctp.

* gnu/packages/maths.cm (gctp): New variable.
* gnu/packages/patches/gctp-autoconfiscate.patch: New file.
* gnu/packages/patches/gctp-sincos.patch: New file.
---
 gnu/packages/maths.scm | 38 +
 gnu/packages/patches/gctp-autoconfiscate.patch | 77 ++
 gnu/packages/patches/gctp-sincos.patch | 22 
 3 files changed, 137 insertions(+)
 create mode 100644 gnu/packages/patches/gctp-autoconfiscate.patch
 create mode 100644 gnu/packages/patches/gctp-sincos.patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 3b860a9..0601619 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -42,6 +42,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system r)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -408,6 +409,43 @@ plotting engine by third-party applications like Octave.")
 (license (license:fsf-free
   "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright;
 
+(define-public gctp
+  (package
+(name "gctp")
+(version "2.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri "http://www.nco.ncep.noaa.gov\
+/pmb/codes/nwprod/util/sorc/wgrib2.cd/grib2/gctpc20.tar.Z")
+   (sha256
+(base32
+ "0sx69yljdy7r1v4idk7c19vlzplzqnpqf6z1p825l5w0ym1awzi1"))
+   (patches (search-patches "gctp-autoconfiscate.patch"
+"gctp-sincos.patch"))
+   ))
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("libtool" ,libtool)))
+(build-system gnu-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-before
+ 'configure 'autogen
+   (lambda _ (zero? (system* "autoreconf" "--install")))
+(synopsis "General Cartographic Transformation Package (GCTP)")
+(description
+ "The General Cartographic Transformation Package (GCTP) is a system of
+software routines designed to permit the transformation of coordinate pairs
+from one map projection to another.  The GCTP is the standard computer
+software used by the National Mapping Division for map projection
+computations.")
+(home-page "http://gcmd.nasa.gov/records/USGS-GCTP.html;)
+(license (license:bsd-style
+  "http://gcmd.nasa.gov/records/USGS-GCTP.html;
+
 (define-public hdf5
   (package
 (name "hdf5")
diff --git a/gnu/packages/patches/gctp-autoconfiscate.patch b/gnu/packages/patches/gctp-autoconfiscate.patch
new file mode 100644
index 000..83db0bf
--- /dev/null
+++ b/gnu/packages/patches/gctp-autoconfiscate.patch
@@ -0,0 +1,77 @@
+From 3f3c27f97edf864d7312e5f43daa386903b839c9 Mon Sep 17 00:00:00 2001
+From: Thomas Danckaert 
+Date: Sat, 18 Jun 2016 17:58:47 +0200
+Subject: [PATCH] Minimal autotools build.
+
+---
+ Makefile.am|  1 +
+ configure.ac   | 23 +++
+ source/Makefile.am | 18 ++
+ 3 files changed, 42 insertions(+)
+ create mode 100644 Makefile.am
+ create mode 100644 configure.ac
+ create mode 100644 source/Makefile.am
+
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 000..4b48b24
+--- /dev/null
 b/Makefile.am
+@@ -0,0 +1 @@
++SUBDIRS = source
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 000..e35d418
+--- /dev/null
 b/configure.ac
+@@ -0,0 +1,23 @@
++AC_PREREQ([2.69])
++AC_INIT([gctp], [2.0], [guix-devel@gnu.org])
++AM_INIT_AUTOMAKE(foreign)
++LT_INIT
++AC_CONFIG_SRCDIR([source/cproj.c])
++AC_CONFIG_HEADERS([config.h])
++
++# Checks for programs.
++AC_PROG_CC
++
++# Checks for libraries.
++AC_CHECK_LIB([m], [sin])
++
++# Checks for header files.
++AC_CHECK_HEADERS([stdlib.h string.h])
++
++# Checks for library functions.
++AC_CHECK_FUNCS([pow sqrt])
++
++AC_CONFIG_FILES([Makefile
++source/Makefile])
++   #  test/test_proj/Makefile])
++AC_OUTPUT
+diff --git a/source/Makefile.am b/source/Makefile.am
+new file mode 100644
+index 000..6de94ae
+--- /dev/null
 b/source/Makefile.am
+@@ -0,0 +1,18 @@
++lib_LTLIBRARIES = libgctp.la
++
++libgctp_la_SOURCES = gctp.c alberfor.c alberinv.c alconfor.c alconinv.c azimfor.c \
++	  aziminv.c eqconfor.c eqconinv.c equifor.c equiinv.c gnomfor.c \
++	  gnominv.c goodfor.c goodinv.c 

Re: [PATCH] Add gctp

2016-06-18 Thread Thomas Danckaert

From: Leo Famulari <l...@famulari.name>
Subject: Re: [PATCH] Add gctp
Date: Fri, 17 Jun 2016 21:39:26 -0400


On Fri, Jun 17, 2016 at 02:40:17PM +0200, Thomas Danckaert wrote:
this is a patch to add the GCTP library. It seems the library is 
no longer
maintained separately (“official” sources are gone), so this 
package
downloads the HDF-EOS5 source, which contains GCTP, and patches 
the build to

only build and install GCTP. (I'm packaging HDF-EOS5 later on)


Should we package GCTP separately in that case? Is it used by 
anything

besides HDF-EOS5? Or, should we just package HDF-EOS5?


The only other use I'm aware of is in HDF-EOS2, which is a separate 
library from HDF-EOS5, built on HDF4 instead of HDF5, and which also 
bundles gctp. I intend to package HDF-EOS2 as well, once HDF4 is 
included.


We usually don't accept bundled code, but it sounds like GCTP no 
longer

exists as an independent project. Is that right?


That is my impression, too (broken urls and undeliverable e-mails). 
The package is quite small anyway, so perhaps bundling with the 2 
HDF-EOS libraries is acceptable?



Here are some comments:


[ Style issues noted, I will take care of that. ]


+(define-public gctp
+  (package
+(name "gctp")
+(version "1.0")


Is this the upstream version or is it arbitrary? I see that the 
HDF-EOS5

tarball is at version 1.15.


The archive does not contain an explicit version number or changelog 
(it just says it's the “new C version of the GCTP” -- before that, it 
seems there were some Fortran routines).  I've also found a gctpc2.0 
archive, which *does* have a changelog, and on closer inspection 
(comparing the source of this package with comments from the 
changelog from 2.0), it seems that this code corresponds to version 
1.3... (though e.g. Debian also calls it 1.0).  It's quite messy 
actually. I'll see if HDF-EOS5 builds against gctp-2.0 (for which a 
I've found a cleaner archive), and maybe package that instead...



We have a Scheme procedure for chmod. There are examples in
'gnu/packages'. Is this what required coreutils as a native-input?


That's the reason indeed. I wasn't aware of the chmod procedure, I'll 
adapt my package definition .



In general, I think these patches need some more comments and
explanation of the various changes.


I'll resubmit an improved patch.

Before I do that, though, I'll await your opinion on whether an 
independent gctp package is actually needed or not.


Some other explanations in-line:


+diff --git a/Makefile.am b/Makefile.am
+index 363bcfb..01ed024 100644
+--- a/Makefile.am
 b/Makefile.am
+@@ -3,13 +3,7 @@
+ # Include boilerplate
+ include $(top_srcdir)/config/include.am
+
+-# List of subdirectories.
+-# Only build the testdrivers directory if configure detected 
that it's present.

+-if TESTDRIVERS_CONDITIONAL
+-TESTDRIVERS=testdrivers
+-else
+ TESTDRIVERS=
+-endif


What is the effect of this?



About this and the other “TESTDRIVERS”-related stuff:
When we run automake after patching the build, it needs the 
“testdrivers” directory.  This is a set of additional 
tests/demonstration programs (HDF-EOS5 already contains tests in the 
src/samples directory), which are distributed in a separate tarball 
(the configure script will test if the testdrivers are there or not, 
so they are optional in a “standard” build scenario). In order to 
allow automake to complete, I removed all references to the 
testdrivers in my patch.  The alternative solution would be to 
download 2 tarballs (source + testdrivers) and extract them in the 
build directory. Removing the testdrivers was the easiest solution.



+ AC_OUTPUT



+diff --git a/include/HE5_HdfEosDef.h b/include/HE5_HdfEosDef.h
+index 9ed7881..abf0a90 100755
+--- a/include/HE5_HdfEosDef.h
 b/include/HE5_HdfEosDef.h
+@@ -24,6 +24,7 @@
+ #ifndef HE5_HDFEOSDEF_H_
+ #define HE5_HDFEOSDEF_H_
+
++#define H5_USE_16_API 1


What is the significance of this definition?



Actually this only affects the HDF-EOS5 package, and I now realize it 
can be removed from this patchset.  I was using the same patch for 
shared library compilation in my HDF5 and GCTP packages... lazyness.


(The HDF5 API changed in version 1.8. Code written against previous 
version (such as HDF-EOS5) needs this #define to link with newer 
versions of HDF5.)


diff --git a/gnu/packages/patches/gctp-fix-soname.patch 
b/gnu/packages/patches/gctp-fix-soname.patch

new file mode 100644
index 000..5a32970
--- /dev/null
+++ b/gnu/packages/patches/gctp-fix-soname.patch
@@ -0,0 +1,31 @@
+Make library name all-lowercase.


Is this a stylistic change or does it have some other effect?



Otherwise the library is installed as “libGctp.so.0”, which seems 
like an unconventional capitalization (?). Like this, users switching 
from Debian & Co. will have a seamless experience ;-)


Thomas


Re: [PATCH] Add gctp

2016-06-17 Thread Leo Famulari
On Fri, Jun 17, 2016 at 02:40:17PM +0200, Thomas Danckaert wrote:
> this is a patch to add the GCTP library. It seems the library is no longer
> maintained separately (“official” sources are gone), so this package
> downloads the HDF-EOS5 source, which contains GCTP, and patches the build to
> only build and install GCTP. (I'm packaging HDF-EOS5 later on)

Should we package GCTP separately in that case? Is it used by anything
besides HDF-EOS5? Or, should we just package HDF-EOS5?

We usually don't accept bundled code, but it sounds like GCTP no longer
exists as an independent project. Is that right?

Otherwise, it looks like we are forking GCTP and creating a new
distribution.

> It's not very elegant... An alternative solution would be to get the source
> package from, e.g. Debian, and build that (might involve less patching).

We do fetch a few things from Debian.

Here are some comments:

> Subject: [PATCH] gnu: Add gctp

We prefer to use complete sentences, with punctuation, even when they
are only 2 words long ;)

> * gnu/packages/maths.cm (gctp): New variable
> 
> * guix/packages.scm (decompression-type): Modify by adding ".Z" suffix
>   for gzipped files.

I believe this was addressed in commit 5257ab6de. Can you check?

> * gnu/packages/patches/gct-build-shared.patch: patch build system for
>   shared builds.

We also capitalize the beginning of our sentences :)

> * gnu/packages/patches/gctp-remove-hdf-eos5.patch: don't build the
>   hdf-eos5 library contained in the same archive.
> 
> * gnu/packages/patches/gctp-fix-soname.patch: use a lower case soname.
> ---
>  gnu/packages/maths.scm  |  39 ++
>  gnu/packages/patches/gctp-build-shared.patch|  84 +
>  gnu/packages/patches/gctp-fix-soname.patch  |  31 ++
>  gnu/packages/patches/gctp-remove-hdf-eos5.patch | 482 
> 
>  4 files changed, 636 insertions(+)
>  create mode 100644 gnu/packages/patches/gctp-build-shared.patch
>  create mode 100644 gnu/packages/patches/gctp-fix-soname.patch
>  create mode 100644 gnu/packages/patches/gctp-remove-hdf-eos5.patch
> 

> diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
> index 3b860a9..9cd0554 100644
> --- a/gnu/packages/maths.scm
> +++ b/gnu/packages/maths.scm
> @@ -42,6 +42,8 @@
>#:use-module (guix build-system gnu)
>#:use-module (guix build-system r)
>#:use-module (gnu packages algebra)
> +  #:use-module (gnu packages autotools)
> +  #:use-module (gnu packages base)
>#:use-module (gnu packages bison)
>#:use-module (gnu packages boost)
>#:use-module (gnu packages check)
> @@ -408,6 +410,43 @@ plotting engine by third-party applications like 
> Octave.")
>  (license (license:fsf-free
>
> "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright;
>  
> +(define-public gctp
> +  (package
> +(name "gctp")
> +(version "1.0")

Is this the upstream version or is it arbitrary? I see that the HDF-EOS5
tarball is at version 1.15.

> +(source (origin
> +  (method url-fetch)
> +  (uri (string-append 
> "ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos5/latest_release/HDF-EOS5.1.15.tar.Z;))
> +  (sha256
> +   (base32
> +"1p8nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i"))
> +  (patches (search-patches "gctp-build-shared.patch" 
> "gctp-remove-hdf-eos5.patch" "gctp-fix-soname.patch"))
> +  ))

Some of these lines are too long. We like to keep them shorter than 80
characters whenever possible.

> +(native-inputs
> + `(("autoconf" ,autoconf)
> +   ("automake" ,automake)
> +   ("libtool" ,libtool)
> +   ("coreutils" ,coreutils)))
> +(build-system gnu-build-system)
> +(arguments
> + `(#:configure-flags '("--enable-install-include")
> +   #:phases
> +   (modify-phases %standard-phases
> + (add-before
> + 'configure 'autogen
> +   (lambda _
> + (and (zero? (system* "chmod" "-R" "u+w" ".")) ; archive is 
> read-only...

We have a Scheme procedure for chmod. There are examples in
'gnu/packages'. Is this what required coreutils as a native-input?

> diff --git a/gnu/packages/patches/gctp-build-shared.patch 
> b/gnu/packages/patches/gctp-build-shared.patch

In general, I think these patches need some more comments and
explanation of the various changes.

> new file mode 100644
> index 000..1139fbb
> --- /dev/null
> +++ b/gnu/packages/patches/gctp-build-shared.patch
> @@ -0,0 +1,84 @@
> +Allow shared build.
> +
> +---
> + Makefile.am |  6 --
> + configure.ac| 12 
> + include/HE5_HdfEosDef.h |  1 +
> + src/Makefile.am |  3 ++-
> + 4 files changed, 3 insertions(+), 19 deletions(-)
> +

> +diff --git a/Makefile.am b/Makefile.am
> +index 363bcfb..01ed024 100644
> +--- a/Makefile.am
>  b/Makefile.am
> +@@ -3,13 +3,7 @@
> + # Include boilerplate
> + include $(top_srcdir)/config/include.am
> + 

[PATCH] Add gctp

2016-06-17 Thread Thomas Danckaert

Hi guix-devel,

this is a patch to add the GCTP library. It seems the library is no 
longer maintained separately (“official” sources are gone), so this 
package downloads the HDF-EOS5 source, which contains GCTP, and 
patches the build to only build and install GCTP. (I'm packaging 
HDF-EOS5 later on)


It's not very elegant... An alternative solution would be to get the 
source package from, e.g. Debian, and build that (might involve less 
patching).


Thomas
>From 6c253d8ca12003bec3be4b040723d96e07445dfe Mon Sep 17 00:00:00 2001
From: Thomas Danckaert 
Date: Fri, 17 Jun 2016 10:41:50 +0200
Subject: [PATCH] gnu: Add gctp

* gnu/packages/maths.cm (gctp): New variable

* guix/packages.scm (decompression-type): Modify by adding ".Z" suffix
  for gzipped files.

* gnu/packages/patches/gct-build-shared.patch: patch build system for
  shared builds.

* gnu/packages/patches/gctp-remove-hdf-eos5.patch: don't build the
  hdf-eos5 library contained in the same archive.

* gnu/packages/patches/gctp-fix-soname.patch: use a lower case soname.
---
 gnu/packages/maths.scm  |  39 ++
 gnu/packages/patches/gctp-build-shared.patch|  84 +
 gnu/packages/patches/gctp-fix-soname.patch  |  31 ++
 gnu/packages/patches/gctp-remove-hdf-eos5.patch | 482 
 4 files changed, 636 insertions(+)
 create mode 100644 gnu/packages/patches/gctp-build-shared.patch
 create mode 100644 gnu/packages/patches/gctp-fix-soname.patch
 create mode 100644 gnu/packages/patches/gctp-remove-hdf-eos5.patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 3b860a9..9cd0554 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -42,6 +42,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system r)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -408,6 +410,43 @@ plotting engine by third-party applications like Octave.")
 (license (license:fsf-free
   "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright;
 
+(define-public gctp
+  (package
+(name "gctp")
+(version "1.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos5/latest_release/HDF-EOS5.1.15.tar.Z;))
+  (sha256
+   (base32
+"1p8nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i"))
+  (patches (search-patches "gctp-build-shared.patch" "gctp-remove-hdf-eos5.patch" "gctp-fix-soname.patch"))
+  ))
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("libtool" ,libtool)
+   ("coreutils" ,coreutils)))
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags '("--enable-install-include")
+   #:phases
+   (modify-phases %standard-phases
+ (add-before
+ 'configure 'autogen
+   (lambda _
+ (and (zero? (system* "chmod" "-R" "u+w" ".")) ; archive is read-only...
+  (zero? (system* "autoreconf" "--install" ; configure.ac was patched
+(synopsis "General Cartographic Transformation Package (GCTP)")
+(description
+ "The General Cartographic Transformation Package (GCTP) is a system of
+software routines designed to permit the transformation of coordinate pairs
+from one map projection to another.  The GCTP is the standard computer
+software used by the National Mapping Division for map projection
+computations.")
+(home-page "http://gcmd.nasa.gov/records/USGS-GCTP.html;)
+(license (license:bsd-style "http://gcmd.nasa.gov/records/USGS-GCTP.html;
+
 (define-public hdf5
   (package
 (name "hdf5")
diff --git a/gnu/packages/patches/gctp-build-shared.patch b/gnu/packages/patches/gctp-build-shared.patch
new file mode 100644
index 000..1139fbb
--- /dev/null
+++ b/gnu/packages/patches/gctp-build-shared.patch
@@ -0,0 +1,84 @@
+Allow shared build.
+
+---
+ Makefile.am |  6 --
+ configure.ac| 12 
+ include/HE5_HdfEosDef.h |  1 +
+ src/Makefile.am |  3 ++-
+ 4 files changed, 3 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 363bcfb..01ed024 100644
+--- a/Makefile.am
 b/Makefile.am
+@@ -3,13 +3,7 @@
+ # Include boilerplate
+ include $(top_srcdir)/config/include.am
+ 
+-# List of subdirectories.
+-# Only build the testdrivers directory if configure detected that it's present.
+-if TESTDRIVERS_CONDITIONAL
+-TESTDRIVERS=testdrivers
+-else
+ TESTDRIVERS=
+-endif
+ 
+ if INSTALL_INCLUDE_CONDITIONAL
+ INCLUDE=include
+diff --git a/configure.ac b/configure.ac
+index 5d48b43..cfa9d4e 100644
+--- a/configure.ac
 b/configure.ac
+@@ -13,9 +13,6 @@ AC_CONFIG_AUX_DIR([config])
+ 

[PATCH] Add gctp

2016-06-17 Thread Thomas Danckaert

Hi guix-devel,

this is a patch to add the GCTP library. It seems the library is no 
longer maintained separately (“official” sources are gone), so this 
package downloads the HDF-EOS5 source, which contains GCTP, and 
patches the build to only build and install GCTP. (I'm packaging 
HDF-EOS5 later on)


It's not very elegant... An alternative solution would be to get the 
source package from, e.g. Debian, and build that (might involve less 
patching).


Thomas
* gnu/packages/maths.cm (gctp): New variable

* guix/packages.scm (decompression-type): Modify by adding ".Z" suffix
  for gzipped files.

* gnu/packages/patches/gct-build-shared.patch: patch build system for
  shared builds.

* gnu/packages/patches/gctp-remove-hdf-eos5.patch: don't build the
  hdf-eos5 library contained in the same archive.

* gnu/packages/patches/gctp-fix-soname.patch: use a lower case soname.
---
 gnu/packages/maths.scm  |  39 ++
 gnu/packages/patches/gctp-build-shared.patch|  84 +
 gnu/packages/patches/gctp-fix-soname.patch  |  31 ++
 gnu/packages/patches/gctp-remove-hdf-eos5.patch | 482 
 guix/packages.scm   |   1 +
 5 files changed, 637 insertions(+)
 create mode 100644 gnu/packages/patches/gctp-build-shared.patch
 create mode 100644 gnu/packages/patches/gctp-fix-soname.patch
 create mode 100644 gnu/packages/patches/gctp-remove-hdf-eos5.patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 3b860a9..9cd0554 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -42,6 +42,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system r)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -408,6 +410,43 @@ plotting engine by third-party applications like Octave.")
 (license (license:fsf-free
   "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright;
 
+(define-public gctp
+  (package
+(name "gctp")
+(version "1.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos5/latest_release/HDF-EOS5.1.15.tar.Z;))
+  (sha256
+   (base32
+"1p8nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i"))
+  (patches (search-patches "gctp-build-shared.patch" "gctp-remove-hdf-eos5.patch" "gctp-fix-soname.patch"))
+  ))
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("libtool" ,libtool)
+   ("coreutils" ,coreutils)))
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags '("--enable-install-include")
+   #:phases
+   (modify-phases %standard-phases
+ (add-before
+ 'configure 'autogen
+   (lambda _
+ (and (zero? (system* "chmod" "-R" "u+w" ".")) ; archive is read-only...
+  (zero? (system* "autoreconf" "--install" ; configure.ac was patched
+(synopsis "General Cartographic Transformation Package (GCTP)")
+(description
+ "The General Cartographic Transformation Package (GCTP) is a system of
+software routines designed to permit the transformation of coordinate pairs
+from one map projection to another.  The GCTP is the standard computer
+software used by the National Mapping Division for map projection
+computations.")
+(home-page "http://gcmd.nasa.gov/records/USGS-GCTP.html;)
+(license (license:bsd-style "http://gcmd.nasa.gov/records/USGS-GCTP.html;
+
 (define-public hdf5
   (package
 (name "hdf5")
diff --git a/gnu/packages/patches/gctp-build-shared.patch b/gnu/packages/patches/gctp-build-shared.patch
new file mode 100644
index 000..1139fbb
--- /dev/null
+++ b/gnu/packages/patches/gctp-build-shared.patch
@@ -0,0 +1,84 @@
+Allow shared build.
+
+---
+ Makefile.am |  6 --
+ configure.ac| 12 
+ include/HE5_HdfEosDef.h |  1 +
+ src/Makefile.am |  3 ++-
+ 4 files changed, 3 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 363bcfb..01ed024 100644
+--- a/Makefile.am
 b/Makefile.am
+@@ -3,13 +3,7 @@
+ # Include boilerplate
+ include $(top_srcdir)/config/include.am
+ 
+-# List of subdirectories.
+-# Only build the testdrivers directory if configure detected that it's present.
+-if TESTDRIVERS_CONDITIONAL
+-TESTDRIVERS=testdrivers
+-else
+ TESTDRIVERS=
+-endif
+ 
+ if INSTALL_INCLUDE_CONDITIONAL
+ INCLUDE=include
+diff --git a/configure.ac b/configure.ac
+index 5d48b43..cfa9d4e 100644
+--- a/configure.ac
 b/configure.ac
+@@ -13,9 +13,6 @@ AC_CONFIG_AUX_DIR([config])
+ AM_INIT_AUTOMAKE([foreign])
+ AM_MAINTAINER_MODE
+ 
+-# Disable shared libraries (for now)
+-AC_DISABLE_SHARED
+-
+ AM_PROG_LIBTOOL
+ 
+ dnl 

[PATCH] Add gctp

2016-06-17 Thread Thomas Danckaert

Hi guix-devel,

this is a patch to add the GCTP library. It seems the library is no 
longer maintained separately (“official” sources are gone), so this 
package downloads the HDF-EOS5 source, which contains GCTP, and 
patches the build to only build and install GCTP. (I'm packaging 
HDF-EOS5 later on)


It's not very elegant... An alternative solution would be to get the 
source package from, e.g. Debian, and build that (might involve less 
patching).


Thomas
>From 6c253d8ca12003bec3be4b040723d96e07445dfe Mon Sep 17 00:00:00 2001
From: Thomas Danckaert 
Date: Fri, 17 Jun 2016 10:41:50 +0200
Subject: [PATCH] gnu: Add gctp

* gnu/packages/maths.cm (gctp): New variable

* guix/packages.scm (decompression-type): Modify by adding ".Z" suffix
  for gzipped files.

* gnu/packages/patches/gct-build-shared.patch: patch build system for
  shared builds.

* gnu/packages/patches/gctp-remove-hdf-eos5.patch: don't build the
  hdf-eos5 library contained in the same archive.

* gnu/packages/patches/gctp-fix-soname.patch: use a lower case soname.
---
 gnu/packages/maths.scm  |  39 ++
 gnu/packages/patches/gctp-build-shared.patch|  84 +
 gnu/packages/patches/gctp-fix-soname.patch  |  31 ++
 gnu/packages/patches/gctp-remove-hdf-eos5.patch | 482 
 4 files changed, 636 insertions(+)
 create mode 100644 gnu/packages/patches/gctp-build-shared.patch
 create mode 100644 gnu/packages/patches/gctp-fix-soname.patch
 create mode 100644 gnu/packages/patches/gctp-remove-hdf-eos5.patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 3b860a9..9cd0554 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -42,6 +42,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system r)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -408,6 +410,43 @@ plotting engine by third-party applications like Octave.")
 (license (license:fsf-free
   "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright;
 
+(define-public gctp
+  (package
+(name "gctp")
+(version "1.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos5/latest_release/HDF-EOS5.1.15.tar.Z;))
+  (sha256
+   (base32
+"1p8nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i"))
+  (patches (search-patches "gctp-build-shared.patch" "gctp-remove-hdf-eos5.patch" "gctp-fix-soname.patch"))
+  ))
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("libtool" ,libtool)
+   ("coreutils" ,coreutils)))
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags '("--enable-install-include")
+   #:phases
+   (modify-phases %standard-phases
+ (add-before
+ 'configure 'autogen
+   (lambda _
+ (and (zero? (system* "chmod" "-R" "u+w" ".")) ; archive is read-only...
+  (zero? (system* "autoreconf" "--install" ; configure.ac was patched
+(synopsis "General Cartographic Transformation Package (GCTP)")
+(description
+ "The General Cartographic Transformation Package (GCTP) is a system of
+software routines designed to permit the transformation of coordinate pairs
+from one map projection to another.  The GCTP is the standard computer
+software used by the National Mapping Division for map projection
+computations.")
+(home-page "http://gcmd.nasa.gov/records/USGS-GCTP.html;)
+(license (license:bsd-style "http://gcmd.nasa.gov/records/USGS-GCTP.html;
+
 (define-public hdf5
   (package
 (name "hdf5")
diff --git a/gnu/packages/patches/gctp-build-shared.patch b/gnu/packages/patches/gctp-build-shared.patch
new file mode 100644
index 000..1139fbb
--- /dev/null
+++ b/gnu/packages/patches/gctp-build-shared.patch
@@ -0,0 +1,84 @@
+Allow shared build.
+
+---
+ Makefile.am |  6 --
+ configure.ac| 12 
+ include/HE5_HdfEosDef.h |  1 +
+ src/Makefile.am |  3 ++-
+ 4 files changed, 3 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 363bcfb..01ed024 100644
+--- a/Makefile.am
 b/Makefile.am
+@@ -3,13 +3,7 @@
+ # Include boilerplate
+ include $(top_srcdir)/config/include.am
+ 
+-# List of subdirectories.
+-# Only build the testdrivers directory if configure detected that it's present.
+-if TESTDRIVERS_CONDITIONAL
+-TESTDRIVERS=testdrivers
+-else
+ TESTDRIVERS=
+-endif
+ 
+ if INSTALL_INCLUDE_CONDITIONAL
+ INCLUDE=include
+diff --git a/configure.ac b/configure.ac
+index 5d48b43..cfa9d4e 100644
+--- a/configure.ac
 b/configure.ac
+@@ -13,9 +13,6 @@ AC_CONFIG_AUX_DIR([config])
+