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
crate.scm import: crate: Define dependencies as arguments. 2019-06-11 18:05:44 -07:00
elpa.scm
gem.scm
github.scm
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
print.scm
pypi.scm
snix.scm
stackage.scm
texlive.scm
utils.scm import: crate: Define dependencies as arguments. 2019-06-11 18:05:44 -07:00