guix-devel/guix/import
Robert Vollmert ca45da9fc9
import: hackage: Handle Hackage revisions.
Hackage packages can have metadata revisions (Cabal file only) that are
not reflected in the source archive.  The Haskell build system has
support for this, but until now the Hackage importer would create a
package based on the revised Cabal file which would then build using the
old Cabal file.

Fixes <https://bugs.gnu.org/35750>.

* guix/import/cabal.scm (<cabal-package>): Add 'revision' field.
(eval-cabal): Parse 'x-revision:' property.
* guix/import/hackage.scm (read-cabal-and-hash): New procedure.
(hackage-fetch-and-hash): New procedure.
(hackage-fetch): Rewrite using 'hackage-fetch-and-hash'.
(hackage-module->sexp): Add 'cabal-hash' argument and use it to populate
the '#:cabal-revision' argument.
(hackage->guix-package): Use the new '-and-hash' functions to get the
hash of the Cabal file and pass it to 'hackage-module->sexp'.
* guix/tests/hackage.scm: Test import of Cabal file revision.

Signed-off-by: Timothy Sample <samplet@ngyro.com>
2019-06-13 22:18:52 -04:00
..
cabal.scm import: hackage: Handle Hackage revisions. 2019-06-13 22:18:52 -04:00
cpan.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
cran.scm import: cran: Ignore invalid packages from the system requirements. 2019-05-28 23:56:59 +02:00
crate.scm import: crate: Define dependencies as arguments. 2019-06-11 18:05:44 -07:00
elpa.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
gem.scm import: gem: Add recursive import. 2018-07-11 07:08:54 +03:00
github.scm import: github: Sort releases before picking the latest one. 2019-05-15 13:29:50 +05:30
gnome.scm upstream: Add new GNOME updater. 2017-09-26 00:35:06 +02:00
gnu.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
hackage.scm import: hackage: Handle Hackage revisions. 2019-06-13 22:18:52 -04:00
json.scm import: json: Handle the error case. 2018-10-16 23:17:36 +02:00
launchpad.scm import: Add Launchpad updater. 2019-03-18 20:55:55 +05:30
opam.scm import: opam: Use dune-build-system when possible. 2019-04-10 21:39:04 +02:00
print.scm import: print: Honor the outputs of inputs (!). 2019-06-07 22:49:47 +02:00
pypi.scm gnu: Use pypi.org. 2018-10-18 23:46:33 -04:00
snix.scm build: Remove checks for 'nix-instantiate'. 2018-06-18 23:19:51 +02:00
stackage.scm guix: import: stackage: Fix JSON accessors. 2018-10-01 12:12:08 +02:00
texlive.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
utils.scm import: crate: Define dependencies as arguments. 2019-06-11 18:05:44 -07:00