3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00
guix/tests
Ludovic Courtès 2bf6f962b9
packages: 'package-input-rewriting/spec' can rewrite implicit dependencies.
With this change, '--with-input', '--with-graft', etc. also apply to
implicit dependencies.  Thus, it's now possible to do:

  guix build python-itsdangerous --with-input=python-wrapper=python@2

or:

  guix build hello --with-graft=glibc=glibc@2.29

Additionally, before, implicit inputs were not rewritten, which could
lead to duplicates in the output of 'bag-transitive-inputs' (packages
that are not 'eq?' but lead to the same derivation).  This in turn would
lead to unnecessary rebuilds when using '--with-input' & co.  This
change fixes it by ensuring even implicit inputs are rewritten.

Fixes <https://bugs.gnu.org/42156>.

* guix/packages.scm (package-input-rewriting/spec): Add #:deep?
defaulting to #true, and pass it to 'package-mapping'.
[replacement-property]: New variable.
[rewrite]: Check that property and set it on the result of PROC.
[cut?]: New procedure.
* tests/packages.scm ("package-input-rewriting/spec"): Ensure implicit
inputs were unchanged.
("package-input-rewriting/spec, partial match"): Pass #:deep? #f.
("package-input-rewriting/spec, deep")
("package-input-rewriting/spec, no duplicates"): New tests.
(package/inherit): Move before use.
* tests/guix-build.sh: Add tests.
* tests/scripts-build.scm ("options->transformation, with-graft"):
Compare dependencies by package name or derivation file name.
* doc/guix.texi (Defining Packages): Adjust accordingly.
2020-09-27 21:41:08 +02:00
..
services services: Add zram-device-service. 2020-08-02 15:54:37 +03:00
accounts.scm accounts: Delete duplicate entries. 2019-08-28 00:27:14 +02:00
base16.scm
base32.scm build: Remove references to the 'nix-hash' program. 2020-08-29 16:24:17 +02:00
base64.scm
bournish.scm
build-utils.scm tests: Avoid unnecessary use of 'mock'. 2019-11-26 00:16:35 +01:00
builders.scm tests: Remove expensive and pointless test. 2019-06-14 21:57:18 +02:00
cache.scm Remove workaround for 'time-monotonic' in Guile 2.2.2. 2020-03-22 16:49:47 +01:00
challenge.scm packages: Introduce <content-hash> and use it in <origin>. 2020-05-22 01:29:39 +02:00
channels.scm Use 'formatted-message' instead of '&message' where appropriate. 2020-07-25 19:11:37 +02:00
civodul.key Add (guix openpgp). 2020-05-04 09:56:12 +02:00
combinators.scm
containers.scm tests: Skip container test when lacking kernel support. 2019-10-15 10:21:41 +02:00
cpan.scm import: cpan: Rewrite tests to use an HTTP server instead of mocking. 2020-01-15 18:40:43 +01:00
cpio.scm
cran.scm import: cran: Avoid uses of '@@' in the tests. 2020-01-16 23:14:05 +01:00
crate.scm tests: Remove trailing commas in JSON tests. 2020-04-27 23:29:40 +02:00
cve-sample.json cve: Rewrite to read the JSON feed instead of the XML feed. 2019-10-23 16:40:17 +02:00
cve.scm cve: Rewrite to read the JSON feed instead of the XML feed. 2019-10-23 16:40:17 +02:00
debug-link.scm tests: Add 'test-assertm' to (guix tests). 2018-11-12 23:37:13 +01:00
derivations.scm packages: Introduce <content-hash> and use it in <origin>. 2020-05-22 01:29:39 +02:00
discovery.scm
dsa.key Add (guix openpgp). 2020-05-04 09:56:12 +02:00
ed25519.key Add (guix openpgp). 2020-05-04 09:56:12 +02:00
ed25519.sec Add (guix openpgp). 2020-05-04 09:56:12 +02:00
ed25519bis.key git-authenticate: Add tests. 2020-06-05 22:54:06 +02:00
ed25519bis.sec git-authenticate: Add tests. 2020-06-05 22:54:06 +02:00
elpa.scm import: elpa: Rewrite test to use an HTTP server instead of mocking. 2020-01-16 23:14:05 +01:00
file-systems.scm bootloader: grub: Allow booting from a Btrfs subvolume. 2020-05-20 08:30:35 -04:00
gem.scm tests: Remove trailing commas in JSON tests. 2020-04-27 23:29:40 +02:00
gexp.scm gexp: Fix expansion for (file-append (local-file ...) ...). 2020-05-25 23:00:30 +02:00
git-authenticate.scm tests: Allow 'tests/git-authenticate.scm' to run when git/gpg is missing. 2020-06-28 23:26:53 +02:00
git.scm git: 'commit-difference' really excludes the ancestors of #:excluded. 2020-06-09 00:34:52 +02:00
glob.scm
gnu-maintenance.scm
grafts.scm Merge branch 'master' into core-updates 2019-06-27 23:33:48 +02:00
graph.scm packages: Introduce <content-hash> and use it in <origin>. 2020-05-22 01:29:39 +02:00
gremlin.scm gremlin: Adjust tests for foreign distros. 2019-05-18 12:10:15 +02:00
guix-archive.sh guix archive: Add '--list'. 2019-12-12 17:56:58 +01:00
guix-authenticate.sh authenticate: Encode strings as ISO-8859-1. 2020-09-15 14:40:20 +02:00
guix-build-branch.sh tests: Adjust '--with-commit' test for tags. 2020-04-04 18:52:36 +02:00
guix-build.sh packages: 'package-input-rewriting/spec' can rewrite implicit dependencies. 2020-09-27 21:41:08 +02:00
guix-daemon.sh daemon: Make 'profiles/per-user' non-world-writable. 2019-10-16 22:53:40 +02:00
guix-describe.sh Add 'guix describe'. 2018-09-07 11:40:22 +02:00
guix-download.sh
guix-environment-container.sh environment: '--link-profile' uses ~/.guix-profile for environment variables. 2020-09-21 23:05:38 +02:00
guix-environment.sh environment: Document that '--manifest' can be repeated. 2019-11-22 15:07:58 +01:00
guix-gc.sh guix gc: Add '--list-roots'. 2019-04-10 17:09:47 +02:00
guix-git-authenticate.sh Add 'guix git authenticate'. 2020-07-11 12:33:01 +02:00
guix-graph.sh guix graph: Add '--path'. 2020-05-11 23:30:55 +02:00
guix-hash.sh guix hash, guix download: Support base64 format. 2020-05-22 00:35:24 +02:00
guix-lint.sh lint: formatting: Gracefully handle relative file names. 2020-08-23 23:05:16 +02:00
guix-pack-localstatedir.sh pack: '--localstatedir' and '-R' tests gracefully handle missing /gnu/store. 2019-05-18 12:23:31 +02:00
guix-pack-relocatable.sh pack: "fakechroot" engine always creates its store. 2020-07-28 14:41:05 +02:00
guix-pack.sh store: 'mapm/accumulate-builds' preserves '%current-target-system'. 2020-05-14 17:21:27 +02:00
guix-package-aliases.sh tests: Test 'guix show' with multiple packages. 2020-05-11 23:30:54 +02:00
guix-package-net.sh guix package: Support multiple profiles with '--list-installed'. 2020-05-23 16:29:29 +02:00
guix-package.sh tests: Adjust to 'show-manifest-transaction' changes. 2020-03-25 16:02:53 +01:00
guix-repl.sh repl: Look for script files in (getcwd). 2020-09-16 16:04:01 +02:00
guix-system.sh system: examples: Add bare-hurd.tmpl. 2020-06-08 13:51:19 +02:00
hackage.scm import: hackage: Add two expected failing test cases. 2019-06-20 14:07:01 +02:00
import-utils.scm import: utils: 'recursive-import' returns a list rather than a stream. 2019-12-11 12:13:03 +01:00
inferior.scm Merge branch 'master' into core-updates 2020-03-21 22:16:02 +01:00
lint.scm Use 'formatted-message' instead of '&message' where appropriate. 2020-07-25 19:11:37 +02:00
modules.scm
monads.scm
nar.scm serialization: Add 'fold-archive'. 2019-12-12 17:56:57 +01:00
networking.scm services: ntp: Ensure no double quotes are output to config file. 2019-10-30 18:15:54 -04:00
offload.scm offload: Modify the build-machine record to accept multiple systems. 2020-08-25 13:45:27 -04:00
opam.scm import: opam: Avoid uses of '@@' in tests. 2020-01-17 14:22:07 +01:00
openpgp.scm openpgp: Add 'string->openpgp-packet'. 2020-05-04 09:56:13 +02:00
pack.scm pack: Build the store database under a UTF-8 locale. 2020-07-20 23:25:09 +02:00
packages.scm packages: 'package-input-rewriting/spec' can rewrite implicit dependencies. 2020-09-27 21:41:08 +02:00
pki.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
print.scm tests: Update expected values for package->code. 2020-04-20 10:57:49 +02:00
processes.scm tests: processes: Skip tests if running with binfmt. 2019-12-10 10:49:42 +01:00
profiles.scm profiles: Add lowerable <profile> record type. 2020-04-26 22:49:48 +02:00
publish.scm Use "guile-zlib" and "guile-lzlib" instead of (guix config). 2020-08-24 13:35:24 +02:00
pypi.scm utils: Remove compatibility re-export of 'memoize'. 2020-07-25 19:11:36 +02:00
records.scm records: Improve reporting of "invalid field specifier" errors. 2020-01-16 18:30:57 +01:00
rsa.key Add (guix openpgp). 2020-05-04 09:56:12 +02:00
scripts-build.scm packages: 'package-input-rewriting/spec' can rewrite implicit dependencies. 2020-09-27 21:41:08 +02:00
scripts.scm tests: Add missing import. 2019-03-24 00:13:53 +01:00
search-paths.scm build: Remove 'gnu/packages/bootstrap' and its binaries. 2019-06-14 22:09:38 +02:00
services.scm guix system: Add 'reconfigure' module. 2019-07-26 19:19:49 +02:00
sets.scm
signing-key.pub
signing-key.sec
size.scm tests: Add 'test-assertm' to (guix tests). 2018-11-12 23:37:13 +01:00
snix.scm
status.scm status: Keep track of the current build phase. 2019-02-05 12:03:25 +01:00
store-database.scm
store-deduplication.scm deduplication: Gracefully handle ENOSPC raised by 'link' calls. 2018-12-14 12:07:24 +01:00
store-roots.scm Add (guix store roots). 2019-04-10 17:09:47 +02:00
store.scm tests: Remove one 'delete-paths' call in 'tests/store.scm'. 2020-09-14 15:42:56 +02:00
substitute.scm Use "guile-zlib" and "guile-lzlib" instead of (guix config). 2020-08-24 13:35:24 +02:00
swh.scm swh: Adjust 'origin' test. 2020-02-27 23:29:30 +01:00
syscalls.scm tests: Do not fail when network interface aliases are present. 2020-06-28 23:32:52 +02:00
system.scm
test.drv
texlive.scm import: texlive: Avoid uses of '@@' in tests. 2020-01-17 14:22:08 +01:00
ui.scm tests: Adjust to 'show-manifest-transaction' changes. 2020-03-25 16:02:53 +01:00
union.scm tests: Make builds less expensive. 2019-06-14 21:57:39 +02:00
upstream.scm upstream: Temporarily skip failing test. 2019-01-28 23:13:40 +01:00
utils.scm Use "guile-zlib" and "guile-lzlib" instead of (guix config). 2020-08-24 13:35:24 +02:00
uuid.scm uuid: 'fat-uuid->string' preserves leading zeros. 2019-05-07 12:18:44 +02:00
workers.scm