Re: [PATCH] Add gctp
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
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
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
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
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
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
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
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
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
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
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 DanckaertDate: 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
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
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
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 DanckaertDate: 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
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
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 DanckaertDate: 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]) +