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
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
gem.scm
github.scm import: github: Sort releases before picking the latest one. 2019-05-15 13:29:50 +05:30
gnome.scm
gnu.scm
hackage.scm import: hackage: Handle Hackage revisions. 2019-06-13 22:18:52 -04:00
json.scm
launchpad.scm
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
snix.scm
stackage.scm
texlive.scm
utils.scm import: crate: Define dependencies as arguments. 2019-06-11 18:05:44 -07:00