guix-play/tests
Ludovic Courtès 67effc1560
grafts: Fix corner case involving multiple-output derivations.
Fixes a bug that would occur with references to two outputs of the same
derivation, with one of them referring to the other one.

For example, the references of libreoffice include both mariadb:dev and
mariadb:lib; additionally, mariadb:dev refers to mariadb:lib.  In this
case, the glibc graft would not be applied on one of the mariadb paths,
and both the grafted and ungrafted glibc would end up in the closure of
libreoffice.

Fixes <https://issues.guix.gnu.org/66662>.

* guix/grafts.scm (non-self-references): Simplify and include references
to outputs of DRV other than OUTPUTS.
(reference-origins): Simplify and possibly return outputs of DRV itself.
(cumulative-grafts)[graft-origin?]: Add OUTPUT parameter and honor it.
[dependency-grafts]: Adjust accordingly.
* tests/grafts.scm ("graft-derivation, multiple outputs need to be replaced"):
New test.

Change-Id: Iac2005024ab7049037537b3af55298696ec90e3c
2023-10-28 00:17:23 +02:00
..
keys tests: Ensure test OpenPGP keys never expire. 2022-05-18 23:20:21 +02:00
services services: configuration: Use transducers within serialize-configuration. 2023-10-07 12:41:05 -04:00
accounts.scm
base16.scm
base32.scm
base64.scm
boot-parameters.scm tests: Add test for menu-entry roundtrips as sexps. 2022-08-28 23:37:28 +02:00
bournish.scm
build-emacs-utils.scm tests: build-emacs-utils: Allow test to pass on Emacs 27 too. 2022-07-13 10:49:40 -04:00
build-utils.scm utils: Fix wrap-script argument handling. 2022-01-10 11:44:29 -05:00
builders.scm git-download: Use “builtin:git-download” when available. 2023-09-26 17:36:58 +02:00
cache.scm cache: Catch invalid 'last-expiry-cleanup'. 2022-06-04 12:04:23 +02:00
challenge.scm
channels.scm tests: Assume ‘git’ is always available. 2023-09-26 17:36:59 +02:00
combinators.scm
containers.scm linux-container: 'container-excursion' forks to join the PID namespace. 2023-01-30 22:24:27 +01:00
cpan.scm tests: Ensure 'cpan' updater test does not access the network. 2023-06-09 14:19:14 +02:00
cpio.scm cpio: Skip test on inode numbers that don't fit on 32 bits. 2022-12-20 16:56:03 +01:00
cran.scm
crate.scm guix: import: Don't import yanked rust crates. 2023-10-22 16:46:39 +03:00
cve-sample.json
cve.scm
debug-link.scm
derivations.scm tests: Assume ‘git’ is always available. 2023-09-26 17:36:59 +02:00
discovery.scm
egg.scm
elm.scm import: Add Elm importer. 2022-05-22 01:07:52 +02:00
elpa.scm tests: Ensure 'elpa' test does not access the network. 2023-06-09 14:19:14 +02:00
file-systems.scm
gem.scm tests: Use quasiquoted 'match' patterns for package sexps. 2023-05-31 23:50:06 +02:00
gexp.scm grafts: Run with a UTF-8 locale. 2022-11-11 23:17:42 +01:00
git-authenticate.scm tests: Assume ‘git’ is always available. 2023-09-26 17:36:59 +02:00
git.scm tests: Assume ‘git’ is always available. 2023-09-26 17:36:59 +02:00
glob.scm
gnu-maintenance.scm tests: ‘rewrite-url’ test no longer depends on network access. 2023-09-27 23:38:21 +02:00
go.scm
grafts.scm grafts: Fix corner case involving multiple-output derivations. 2023-10-28 00:17:23 +02:00
graph.scm tests: Adjust 'node-back-edges' test for 'bag' to system-dependent glibc. 2023-08-21 16:16:47 +02:00
gremlin.scm tests: Fix file-needed/recursive on aarch64-linux. 2022-01-16 20:21:27 -08:00
guix-archive.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-authenticate.sh
guix-build-branch.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-build.sh ui: 'load*' accepts /dev/fd/N files pointing to a pipe. 2023-08-17 17:33:53 +02:00
guix-daemon.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-describe.sh guix describe: Adjust test to latest changes. 2022-09-04 23:10:10 +02:00
guix-download.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-environment-container.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-environment.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-gc.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-git-authenticate.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-graph.sh tests: Adjust ‘guix graph --path’ test to latest Emacs changes. 2023-09-26 17:36:57 +02:00
guix-hash.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-home.sh tests: guix-home: Fix description search for home-mcron. 2023-08-25 17:45:47 +02:00
guix-lint.sh
guix-locate.sh Add 'guix locate'. 2023-06-18 23:44:29 +02:00
guix-pack-localstatedir.sh
guix-pack-relocatable.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-pack.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-package-aliases.sh tests: Relax two tests that expected a non-zero error code. 2023-04-21 17:09:46 +02:00
guix-package-net.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-package.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-refresh.sh refresh: Add --target-version option. 2023-08-15 09:38:29 -04:00
guix-repl.sh
guix-shell-export-manifest.sh shell: Fix '--export-manifest' for cached profiles and when '-p' is used. 2022-06-16 23:57:40 +02:00
guix-shell.sh tests: guix-shell: Use bash instead of user's $SHELL. 2023-08-25 14:23:43 +02:00
guix-style.sh tests: Fix checks for expected failures. 2023-04-21 16:16:38 +02:00
guix-system.sh tests: Verify plasma.tmpl at x86_64-linux. 2023-10-21 16:11:17 +02:00
guix-time-machine.sh scripts: time-machine: Error when attempting to visit too old commits. 2023-08-16 21:34:13 -04:00
hackage.scm import: hackage: Add upstream-name property. 2023-02-26 10:19:36 +01:00
hexpm.scm tests: Use quasiquoted 'match' patterns for package sexps. 2023-05-31 23:50:06 +02:00
home-import.scm home: import: Use (guix read-print) to render the config file. 2022-09-20 19:24:31 +02:00
home-services.scm home: services: Add 'lookup-home-service-types' procedure. 2022-06-04 12:04:24 +02:00
http-client.scm tests: Add (guix http-client) tests. 2022-03-06 22:49:46 +01:00
import-git.scm tests: Assume ‘git’ is always available. 2023-09-26 17:36:59 +02:00
import-github.scm upstream-updater: Rename record field. 2022-12-26 17:15:06 +01:00
import-utils.scm import-utils: Do not include punctuation when wrapping in @code{}. 2023-08-28 19:08:38 +02:00
inferior.scm guix: inferior: Fix the behaviour of open-inferior #:error-port. 2022-07-08 13:51:34 +01:00
ipfs.scm
lint.scm lint: Check that (cc-for-target) and friends are used. 2023-09-08 19:12:15 +02:00
minetest.scm tests: Adjust minetest tests. 2023-06-09 14:19:14 +02:00
modules.scm
monads.scm Remove now unnecessary uses of (guix grafts). 2022-10-22 01:46:55 +02:00
nar.scm
networking.scm services: ntp-service-type: Remove deprecated server as strings support. 2023-04-07 17:56:07 +02:00
offload.scm
opam.scm tests: Use quasiquoted 'match' patterns for package sexps. 2023-05-31 23:50:06 +02:00
openpgp.scm
pack.scm tests: Avoid three-argument ‘test-assertm’. 2023-10-20 00:33:26 +02:00
packages.scm tests: Fix "package-transitive-supported-systems, implicit inputs". 2023-09-15 22:05:23 +02:00
pki.scm pki: 'public-keys->acl' deduplicates entries. 2022-12-12 15:03:05 +01:00
print.scm import: print: Quasiquote properties 2022-09-29 22:59:48 +02:00
processes.scm
profiles.scm Remove now unnecessary uses of (guix grafts). 2022-10-22 01:46:55 +02:00
publish.scm publish: Send uncached narinfo replies from the main thread. 2022-04-29 18:07:17 +02:00
pypi.scm tests: Use quasiquoted 'match' patterns for package sexps. 2023-05-31 23:50:06 +02:00
read-print.scm tests: read-print: Update expectations. 2023-09-24 02:00:00 +02:00
records.scm tests: records: Add test for ellipsis in body. 2023-06-04 10:59:28 +02:00
rpm.scm pack: Add RPM format. 2023-02-19 21:13:23 -05:00
scripts.scm
search-paths.scm
services.scm gnu: services: Revert to deleting and updating all matching services 2023-08-31 23:31:50 -04:00
sets.scm
size.scm
status.scm status: Relay "updating substitutes" messages. 2022-06-26 23:19:14 +02:00
store-database.scm
store-deduplication.scm deduplicate: Use 'sendfile' for small file copies. 2022-12-10 10:56:48 +01:00
store-roots.scm tests: store-roots: Remove bogus test. 2023-08-18 16:10:08 +02:00
store.scm
style.scm style: Add 'arguments' styling rule. 2023-05-18 20:01:32 +02:00
substitute.scm substitute: Gracefully retry after failed partial downloads. 2023-06-08 22:54:58 +02:00
swh.scm
syscalls.scm
system.scm Remove now unnecessary uses of (guix grafts). 2022-10-22 01:46:55 +02:00
test.drv
texlive.scm tests: Fix texlive->guix-package test. 2023-08-13 02:00:00 +02:00
transformations.scm transformations: Add '--with-configure-flag'. 2023-05-04 17:06:44 +02:00
ui.scm ui: Take package upstream name into account when searching. 2022-12-13 17:46:39 +01:00
union.scm
upstream.scm tests: upstream: Restore test that was skipped. 2023-05-31 23:25:25 +02:00
utils.scm
uuid.scm
workers.scm