summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorRobert Vollmert <rob@vllmrt.net>2019-06-13 21:39:14 +0200
committerTimothy Sample <samplet@ngyro.com>2019-06-13 22:18:52 -0400
commitca45da9fc9b1eee399ce4344b18cbb129daeca4c (patch)
tree361e65e3401f9c875ac5aa76ede6c6a5bcdab159 /gnu
parent30825c46298c70028f70da1470eadbadf1e0d858 (diff)
downloadguix-ca45da9fc9b1eee399ce4344b18cbb129daeca4c.tar.gz
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>
Diffstat (limited to 'gnu')
0 files changed, 0 insertions, 0 deletions