packages: Add 'package-with-c-toolchain'.

* guix/build-system.scm (build-system-with-c-toolchain): New procedure.
* guix/packages.scm (package-with-c-toolchain): New procedure.
* tests/packages.scm ("package-with-c-toolchain"): New test.
* doc/guix.texi (package Reference): Document 'package-with-c-toolchain'.
(Build Systems): Mention it.
This commit is contained in:
Ludovic Courtès 2020-09-28 17:36:42 +02:00
parent b668450716
commit 46135ce4ce
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
4 changed files with 94 additions and 2 deletions

View file

@ -1430,6 +1430,26 @@
(derivation-file-name
(package-derivation %store coreutils))))))))
(test-assert "package-with-c-toolchain"
(let* ((dep (dummy-package "chbouib"
(build-system gnu-build-system)
(native-inputs `(("x" ,grep)))))
(p0 (dummy-package "thingie"
(build-system gnu-build-system)
(inputs `(("foo" ,grep)
("bar" ,dep)))))
(tc (dummy-package "my-toolchain"))
(p1 (package-with-c-toolchain p0 `(("toolchain" ,tc)))))
(define toolchain-packages
'("gcc" "binutils" "glibc" "ld-wrapper"))
(match (bag-build-inputs (package->bag p1))
((("foo" foo) ("bar" bar) (_ (= package-name packages) . _) ...)
(and (not (any (cut member <> packages) toolchain-packages))
(member "my-toolchain" packages)
(eq? foo grep)
(eq? bar dep))))))
(test-equal "package-patched-vulnerabilities"
'(("CVE-2015-1234")
("CVE-2016-1234" "CVE-2018-4567")