guix-devel/guix
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
..
build build-system/cargo: Don't copy source as an output. 2019-06-11 18:05:44 -07:00
build-system build-system/cargo: Don't copy source as an output. 2019-06-11 18:05:44 -07:00
import import: hackage: Handle Hackage revisions. 2019-06-13 22:18:52 -04:00
scripts pack: Fix 'guix pack -f docker'. 2019-06-10 23:16:47 +02:00
store gnu, guix: Yearly ritual purging of the filesystems. 2019-04-25 04:42:16 +02:00
tests
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm Add (guix bzr-download). 2019-05-09 00:22:37 -04:00
cache.scm
channels.scm deprecation: Use the 'warning' procedure for diagnostics. 2019-06-03 23:18:47 +02:00
ci.scm ci: Add procedures to access evaluations. 2018-11-10 23:33:46 +01:00
colors.scm colors: Add 'highlight'. 2019-04-14 23:40:52 +02:00
combinators.scm
config.scm.in Add (guix lzlib). 2019-05-06 23:21:33 +02:00
cpio.scm
cve.scm cve: Update feed URL. 2018-08-26 01:47:40 +02:00
cvs-download.scm
deprecation.scm deprecation: Use the 'warning' procedure for diagnostics. 2019-06-03 23:18:47 +02:00
derivations.scm store: 'build-things' accepts derivation/output pairs. 2019-06-10 22:42:59 +02:00
describe.scm describe: Add 'current-profile-date'. 2019-03-17 22:55:01 +01:00
diagnostics.scm Add (guix diagnostics). 2019-06-03 23:18:47 +02:00
discovery.scm discovery: 'all-modules' returns modules in path order. 2019-05-26 23:02:02 +02:00
docker.scm docker: 'build-docker-image' accepts an optional #:entry-point. 2019-05-15 16:36:21 +02:00
download.scm download: Update list of content-addressed mirrors. 2019-06-10 22:42:23 +02:00
elf.scm
ftp-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
gexp.scm gexp: 'compiled-modules' loads modules before compiling them. 2019-04-04 17:47:02 +02:00
git-download.scm guix: git-download: Remove explicit import. 2019-06-06 20:35:54 +02:00
git.scm git: Add an exception printer for 'git-error'. 2019-02-11 23:23:28 +01:00
glob.scm glob: Add an extra glob pattern compilation stage. 2018-03-18 22:57:17 +01:00
gnu-maintenance.scm gnu-maintenance: Switch to ftp.mirrorservice.org for KDE updater. 2019-06-10 13:58:24 +02:00
gnupg.scm gnupg: Change default keyserver. 2018-09-25 18:45:50 +02:00
grafts.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
graph.scm
hg-download.scm
http-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
i18n.scm
inferior.scm channels: Do not fail when the inferior lacks 'guix repl'. 2019-03-08 12:31:38 +01:00
licenses.scm licenses: Remove 'bsd-style'. 2019-04-08 10:42:51 +02:00
lzlib.scm lzlib: 'make-lzip-input-port' better handles end of decompression. 2019-06-01 15:26:30 +02:00
man-db.scm profiles: Use 'with-extensions'. 2018-06-01 15:21:28 +02:00
memoization.scm
modules.scm Remove traces of "GuixSD". 2019-03-13 23:12:43 +01:00
monad-repl.scm
monads.scm monads, gexp: Prevent redefinition of syntax parameters. 2019-02-06 23:06:18 +01:00
nar.scm nar: Really lock store files. 2019-06-05 23:10:37 +02:00
packages.scm gexp: 'compiled-modules' loads modules before compiling them. 2019-04-04 17:47:02 +02:00
pki.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
profiles.scm profiles: Add 'generation-profile'. 2019-04-10 17:09:47 +02:00
profiling.scm profiling: Add a "gc" profiling component. 2019-01-15 20:24:08 +01:00
progress.scm progress: Provide the proper type for %PROGRESS-INTERVAL. 2019-06-02 01:38:36 +02:00
records.scm records: Support custom 'this' identifiers. 2019-03-30 11:08:39 +01:00
scripts.scm scripts: GC hint suggests 'guix gc -d 1m'. 2019-04-10 17:09:47 +02:00
search-paths.scm search-paths: Add 'set-search-paths'. 2018-05-10 14:53:57 +02:00
self.scm self: Fix unquoting. 2019-05-28 23:21:27 +02:00
serialization.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
sets.scm
ssh.scm ssh: Add missing import. 2019-06-10 22:42:52 +02:00
status.scm colors: Introduce a disjoint type and pre-compute ANSI escapes. 2019-04-11 18:18:13 +02:00
store.scm store: 'build-things' accepts derivation/output pairs. 2019-06-10 22:42:59 +02:00
svn-download.scm
swh.scm swh: Export 'save-origin' and related bindings. 2018-11-27 12:12:33 +01:00
tests.scm lzlib: Add 'make-lzip-input-port/compressed'. 2019-05-27 22:47:24 +02:00
ui.scm Add (guix diagnostics). 2019-06-03 23:18:47 +02:00
upstream.scm refresh: Update the source code URL. 2019-03-27 14:59:42 +01:00
utils.scm utils: Support compression and decompression with lzip. 2019-05-27 22:47:24 +02:00
workers.scm
zlib.scm