guix-devel/guix
Ludovic Courtès 14328b81a2
guix build: Transformation options match packages by spec.
This allows us to combine several transformations on a given package, in
particular '--with-git-url' and '--with-branch'.

Previously transformations would ignore each other since they would all
take (specification->package SOURCE) as their replacement source,
compare it by identity, which doesn't work if a previous transformation
has already changed SOURCE.

* guix/scripts/build.scm (evaluate-replacement-specs): Adjust to produce
an alist as expected by 'package-input-rewriting/spec', with a package
spec as the first element of each pair.
(evaluate-git-replacement-specs): Likewise.
(transform-package-inputs):  Adjust accordingly and use
'package-input-rewriting/spec'.
(transform-package-inputs/graft): Likewise.
(transform-package-source-branch, transform-package-source-commit): Use
'package-input-rewriting/spec'.
(transform-package-source-git-url): Likewise, and adjust the
REPLACEMENTS alist accordingly.
(options->transformation): Iterate over OPTS instead of over
%TRANSFORMATIONS.  Invoke transformations one by one.
* tests/scripts-build.scm ("options->transformation, with-input"):
Adjust test to compare packages by name rather than by identity.
("options->transformation, with-git-url + with-branch"): New test.
2019-03-17 22:55:01 +01:00
..
build build-system/go: Build with a filesystem union of Go dependencies. 2019-03-14 15:34:26 -04:00
build-system build-system/glib-or-gtk: Support #:disallowed-references. 2019-03-15 23:27:58 +01:00
import import: opam: Work around janestreet version numbers. 2019-02-05 22:33:13 +01:00
scripts guix build: Transformation options match packages by spec. 2019-03-17 22:55:01 +01:00
store database: Make 'register-items' transactional. 2019-03-07 00:00:18 +01:00
tests
base16.scm
base32.scm
base64.scm
build-system.scm
cache.scm
channels.scm channels: Do not fail when the inferior lacks 'guix repl'. 2019-03-08 12:31:38 +01:00
ci.scm
combinators.scm
config.scm.in daemon: Rename 'NIX_STATE_DIR' and 'NIX_DB_DIR' environment variables. 2019-02-04 00:03:30 +01:00
cpio.scm
cve.scm
cvs-download.scm
deprecation.scm deprecation: Send warnings to (current-error-port) by default. 2019-01-21 23:09:55 +01:00
derivations.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
describe.scm describe: Add 'current-profile-date'. 2019-03-17 22:55:01 +01:00
discovery.scm
docker.scm
download.scm download: Add MATE mirrors. 2019-03-15 13:05:08 -04:00
elf.scm
ftp-client.scm
gexp.scm monads, gexp: Prevent redefinition of syntax parameters. 2019-02-06 23:06:18 +01:00
git-download.scm
git.scm git: Add an exception printer for 'git-error'. 2019-02-11 23:23:28 +01:00
glob.scm
gnu-maintenance.scm gnu-maintenance: Verify GPG signatures in KDE updater. 2019-02-15 12:12:09 +01:00
gnupg.scm
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
i18n.scm
inferior.scm channels: Do not fail when the inferior lacks 'guix repl'. 2019-03-08 12:31:38 +01:00
licenses.scm gnu: Add epl2.0. 2019-03-08 23:18:01 +01:00
man-db.scm
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
packages.scm packages: Add 'package-input-rewriting/spec'. 2019-03-17 22:55:01 +01:00
pki.scm
profiles.scm profiles: Raise an error for unmatched patterns. 2019-02-07 15:46:45 +01:00
profiling.scm
progress.scm
records.scm records: Make 'report-duplicate-field-specifier' available at expansion-time. 2019-01-24 20:48:14 +01:00
scripts.scm scripts: 'warn-about-old-distro' looks at the age of the running Guix. 2019-03-17 22:55:01 +01:00
search-paths.scm
self.scm self: Generated (guix config) honors %CURRENT-SYSTEM. 2019-02-17 00:04:57 +01:00
serialization.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
sets.scm
ssh.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
status.scm status: Erase the current line upon new builds or downloads. 2019-02-11 23:23:27 +01:00
store.scm store: 'log-file' honors 'GUIX_LOG_DIRECTORY'. 2019-02-04 00:03:30 +01:00
svn-download.scm
swh.scm
tests.scm tests: Add 'with-environment-variable'. 2019-03-16 18:15:09 +01:00
ui.scm ui: Always print the exception upon load errors. 2019-02-11 23:23:28 +01:00
upstream.scm upstream: Correctly report failure to update Git checkouts. 2019-03-08 23:21:59 +01:00
utils.scm
workers.scm
zlib.scm