summaryrefslogtreecommitdiff
path: root/guix/packages.scm
AgeCommit message (Collapse)Author
2019-09-17Merge branch 'master' into core-updatesLudovic Courtès
2019-09-10packages: 'package-field-location' really catches 'system-error.Ludovic Courtès
This had been wrong since forever (i.e., 2013). * guix/packages.scm (package-field-location): Catch 'system-error, not 'system.
2019-09-06packages: 'supported-package?' binds '%current-system' for graph traversal.Ludovic Courtès
Previously, (supported-package? coreutils "armhf-linux") with (%current-system) = "x86_64-linux" would return false. That's because 'supported-package?' would traverse the x86_64 dependency graph, which contains 'tcc-boot0', which supports x86 only. Consequently, 'supported-package?' would match only 53 packages for "armhf-linux" when running on x86, as is the case during continuous integration. * guix/packages.scm (package-transitive-supported-systems): Add an optional 'system' parameter. Use 'mlambda' instead of 'mlambdaq' for memoization. (supported-package?): Pass 'system' to 'package-transitive-supported-systems'. * tests/packages.scm ("package-transitive-supported-systems, implicit inputs") ("package-transitive-supported-systems: reduced binary seed, implicit inputs"): Remove calls to 'invalidate-memoization!', which no longer work and were presumably introduced to work around the bug we're fixing (see commit 0db65c168fd6dec57a357735fe130c80feba5460). * tests/packages.scm ("supported-package?"): Rewrite test to use only existing system name since otherwise 'bootstrap-executable' raises an exception. ("supported-package? vs. system-dependent graph"): New test.
2019-08-29Merge branch 'master' into core-updatesMark H Weaver
2019-08-26packages: Apply target triplet in bag-transitive-host-inputs.David Thompson
Fixes a bug where propagated inputs that should be cross-compiled are instead compiled for the host system. * guix/packages.scm (bag-transitive-host-inputs): Call transitive-inputs in the context of the bag's target system triplet.
2019-06-20packages: Retain version in file name when repacking source checkouts.Marius Bakke
Fixes <https://bugs.gnu.org/34066>. * guix/packages.scm (patch-and-repack)<tarxz-name>: If FILE-NAME is a source checkout, reuse the name without the '-checkout' part.
2019-06-17packages: 'patch-and-repack' no longer uses #:deprecation-warnings.Ludovic Courtès
* guix/packages.scm (patch-and-repack): Remove #:deprecation-warnings argument passed to 'gexp->derivation'.
2019-06-17gexp: Remove #:pre-load-modules? parameter.Ludovic Courtès
* guix/gexp.scm (gexp->derivation): Remove #:pre-load-modules?. (compiled-modules): Likewise. Inline the case correspoding to PRE-LOAD-MODULES? = #t. * guix/packages.scm (patch-and-repack): Remove #:pre-load-modules?.
2019-05-01Merge branch 'master' into core-updatesMarius Bakke
2019-04-04gexp: 'compiled-modules' loads modules before compiling them.Ludovic Courtès
This works around <https://bugs.gnu.org/15602> in the context of modules specified with 'with-imported-modules'. * guix/gexp.scm (gexp->derivation): Add #:pre-load-modules? parameter and pass it to 'compiled-modules'. (compiled-modules): Add #:pre-load-modules? parameter and honor it. * guix/packages.scm (patch-and-repack): Pass #:pre-load-modules? to 'gexp->derivation'.
2019-03-30packages: Remove 'maintainers' field.Ludovic Courtès
This field was never used and doesn't match the way we collectively maintain packages. * guix/packages.scm (<package>)[maintainers]: Remove.
2019-03-30packages: Remove 'self-native-input?' field.Ludovic Courtès
This field has become unnecessary with the addition of 'this-package'. * guix/packages.scm (<package>)[self-native-input?]: Remove. (package->bag): Adjust accordingly. * doc/guix.texi (package Reference): Remove 'self-native-input?'.
2019-03-30packages: Define 'this-package' and 'this-origin'.Ludovic Courtès
* guix/packages.scm (<origin>): Choose 'this-origin' as the 'this' identifier. (<package>): Choose 'this-package'. * gnu/packages/gnucash.scm (gnucash)[arguments]: Use 'this-package' instead of 'this-record'. * gnu/packages/version-control.scm (git)[arguments]: Likewise.
2019-03-26packages: Adjust to new calling convention for "thunked" fields.Ludovic Courtès
Fixes <https://bugs.gnu.org/34995>. This is a followup to abd4d6b33dba4de228e90ad15a8efb456fcf7b6e. * guix/packages.scm (package->bag): Adjust calls to INPUTS, PROPAGATED-INPUTS, NATIVE-INPUTS, and ARGS, passing them SELF as an argument. * gnu/packages/gnucash.scm (gnucash)[arguments]: Use (package-inputs this-record) intead of (inputs). * gnu/packages/version-control.scm (git)[arguments]: Likewise.
2019-03-23Merge branch 'staging' into core-updatesMarius Bakke
2019-03-17packages: Add 'package-input-rewriting/spec'.Ludovic Courtès
* guix/packages.scm (package-input-rewriting/spec): New procedure. * tests/packages.scm ("package-input-rewriting/spec") ("package-input-rewriting/spec, partial match"): New tests. * doc/guix.texi (Defining Packages): Document it.
2019-03-14Merge branch 'staging' into core-updatesMarius Bakke
2019-03-12Revert "packages: 'package-input-rewriting' can take a promise."Ludovic Courtès
This reverts commit 7d2be1277b44de9d0528d9d3015443b40cb3b104, which turned out to be unhelpful for the problem at hand: https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00486.html
2019-03-10packages: 'patch-and-repack' specifies a 'type' property for the derivation.Ludovic Courtès
* guix/packages.scm (patch-and-repack): Pass #:properties to 'gexp->derivation'.
2019-01-28packages: 'package-input-rewriting' can take a promise.Ludovic Courtès
* guix/packages.scm (package-input-rewriting): Allow REPLACEMENTS to be a promise. * gnu/packages/guile.scm (package-for-guile-2.0): Delay the first argument to 'package-input-rewriting'.
2019-01-25packages: Add 'package-closure'.Ludovic Courtès
* guix/packages.scm (package-closure): New procedure. * tests/packages.scm ("package-closure"): New test.
2018-12-19packages: Turn 'cache!' into a single-value-return cache.Ludovic Courtès
* guix/packages.scm (cache!): Assume THUNK returns a single value. (cached): Likewise.
2018-07-26gexp: Remove backward compatibility hack for 'imported-files'.Ludovic Courtès
* guix/gexp.scm (gexp->derivation): Remove #:import-creates-derivation?. (imported-files): Remove #:derivation? and adjust callers. (imported-modules), compiled-modules): Likewise. * guix/packages.scm (patch-and-repack): Adjust 'gexp->derivation' call.
2018-07-26packages: 'patch-and-repack' compresses tarballs again.Ludovic Courtès
* guix/packages.scm (patch-and-repack): Add missing "a" in "tar cvfa". Fixes a regression introduced in 3e95125e9bd0676d4a9add9105217ad3eaef3ff0 whereby we'd always create uncompressed tarballs.
2018-07-24Merge branch 'master' into core-updatesMarius Bakke
2018-07-22Revert "packages: Enable threaded compression of source tarballs."Marius Bakke
Threaded compression makes tarballs non-deterministic: the result depends on the number of threads used for compressing. See <https://bugs.gnu.org/31015>. This reverts commit c8a3dea847bb9f87fa1876d0c6c3356d6226f121.
2018-07-19gexp: 'imported-files' no longer creates a derivation by default.Ludovic Courtès
* guix/gexp.scm (gexp->derivation): Add #:import-creates-derivation?. Pass #:derivation? to 'imported-modules' and 'compiled-modules'. In -L argument, check whether MODULES is a derivation. (%not-slash): New variable. (file-mapping->tree): New procedure. (imported-files): Rename to... (imported-files/derivation): ... this. (imported-files): New procedure. Rewrite in terms of 'interned-file-tree' when possible; add #:derivation? parameter. (imported-modules, compiled-modules): Add #:derivation? parameter and pass it to 'imported-files'. * guix/packages.scm (patch-and-repack): Pass #:import-creates-derivation? to 'gexp->derivation'. * tests/gexp.scm ("imported-files"): Adjust to no longer expect a derivation.
2018-07-03Revert "packages: Optimize 'package-transitive-supported-systems'."Ludovic Courtès
This reverts commit 24420f5ffabfbdbe913a5765e5c00e17de18fb4c. This broke 'package-transitive-supported-systems', which would return the union of supported systems instead of the intersection.
2018-07-03packages: Optimize 'package-transitive-supported-systems'.Ludovic Courtès
This version is 13% faster than the one above when timing: (fold-packages (lambda (p x) (package-transitive-supported-systems p)) '()) * guix/packages.scm (package-transitive-supported-systems): Make 'systems' a set instead of calling 'lset-intersection' repeatedly.
2018-06-09packages: Add 'package-patched-vulnerabilities'.Ludovic Courtès
* guix/packages.scm (patch-file-name): New procedure. (%vulnerability-regexp): New variable. (package-patched-vulnerabilities): New procedure. * guix/scripts/lint.scm (patch-file-name): Remove. (check-vulnerabilities): Adjust to use 'package-patched-vulnerabilities'. * tests/packages.scm ("package-patched-vulnerabilities"): New test.
2018-05-17Merge branch 'master' into core-updatesMark H Weaver
2018-05-08guix: Separate the package name and version with "@", not "-".Chris Marusich
* guix/packages.scm (package-full-name): By default, use "@" to separate the package name and package version. Add an optional delimiter argument so that there is still a way to explicitly use a different delimiter. * gnu/packages/commencement.scm (gcc-boot0) <unpack-gmp&co>: Adjust accordingly. * tests/graph.scm: Adjust accordingly. * tests/profiles.scm: Adjust accordingly. * NEWS: Mention the change. Fixes: <https://bugs.gnu.org/31088>. Reported by Pierre Neidhardt <ambrevar@gmail.com>.
2018-03-16packages: Issue a warning unless the snippet returns #t.Mark H Weaver
* guix/packages.scm (patch-and-repack): Issue a warning if the snippet returns a value other than #t.
2018-03-16packages: Update copyright notice.Mark H Weaver
This is a followup to commit 5003aeaf2560d6ddebcf980a94785fba77e00f34. * guix/packages.scm: Update copyright notice for Mark H Weaver.
2018-03-16packages: patch-and-repack: Fix snippet handling.Mark H Weaver
This is a followup to commit 5003aeaf2560d6ddebcf980a94785fba77e00f34. * guix/packages.scm (patch-and-repack): For the snippet, generate a single boolean expression for 'unless', instead of the list of expressions which had previously been spliced into an 'and' form (prior to commit 5003aea).
2018-03-16packages: patch-and-repack: Use invoke instead of system*.Mark H Weaver
* guix/packages.scm (patch-and-repack): Use invoke and remove vestigial plumbing.
2018-01-19Merge branch 'master' into core-updatesMark H Weaver
2018-01-20packages: 'package-mapping' maps replacement.Ludovic Courtès
* guix/packages.scm (package-mapping): Apply PROC to 'replacement' as well.
2018-01-18gnu: commencement: Memoize 'linux-libre-headers-boot0'.Ludovic Courtès
Fixes <https://bugs.gnu.org/30155>. The effect can be seen in the package graph produced by: guix graph -e '(@@ (gnu packages commencement) static-bash-for-glibc)' This reduces the number of "duplicate" nodes in this graph, i.e., distinct package objects that correspond to the same derivation (objects that are not 'eq?' but semantically equal.) * gnu/packages/commencement.scm (linux-libre-headers-boot0): Make an 'mlambda' instead of a 'lambda'. (hurd-core-headers-boot0): Ditto.
2017-12-07Merge branch 'master' into core-updatesMarius Bakke
2017-12-06Revert "packages: 'package-grafts' trims native inputs."Ludovic Courtès
This reverts commit 91c9b5d016ac8bed127557d378c70fbc56cec0e5 following the concerns raised by Mark, Ben, and Tobias: <https://lists.gnu.org/archive/html/guix-devel/2017-12/msg00081.html>.
2017-12-05Merge branch 'master' into core-updatesMarius Bakke
2017-12-05packages: 'package-grafts' trims native inputs.Ludovic Courtès
'package-grafts' returns a list of potentially applicable grafts, which 'cumulative-grafts' then narrows by looking at store item references and determining the subset of the grafts that's actually applicable. Until now, 'package-grafts' would traverse native inputs and would thus return a large superset of the applicable grafts, since native inputs are not in the reference graph by definition. This patch fixes that by having 'package-grafts' ignore entirely native inputs from the dependency graph. * guix/packages.scm (fold-bag-dependencies)[bag-direct-inputs*]: Add special case for libc. * guix/packages.scm (bag-grafts)[native-grafts, target-grafts]: Remove. [grafts]: New procedure. Use it. * tests/packages.scm ("package-grafts, grafts of native inputs ignored"): New test.
2017-12-05packages: 'fold-bag-dependencies' honors nativeness in recursive calls.Ludovic Courtès
Previously recursive calls to 'loop' would always consider all the bag inputs rather than those corresponding to NATIVE?. * guix/packages.scm (fold-bag-dependencies)[bag-direct-inputs*]: New procedure. Use it both in the 'match' expression and in its body.
2017-12-03gnu: glibc: Don't use full version string in locale path.Marius Bakke
This is a follow-up to commit ee3ebf1a357bd4eb36a2fa1790a7b549cffb305a. Fixes <https://bugs.gnu.org/29537>. * gnu/packages/base.scm (glibc/linux)[version]: Change to 2.26.91-gaaa2eb83b8. [source](uri): Adjust accordingly. [arguments]: Use VERSION-MAJOR+MINOR for locales path. (glibc-locales, glibc-utf8-locales): Likewise. * guix/packages.scm (patch-and-repack): Likewise. * guix/profiles.scm (ca-certificate-bundle, profile-derivation): Likewise.
2017-11-29gexp: 'compiled-modules' disables deprecation warnings by default.Ludovic Courtès
This avoids repeated deprecation messages, particularly while running 'guix system build' or similar. * guix/gexp.scm (gexp->derivation): Add #:deprecation-warnings. Pass it to 'compiled-modules'. (compiled-modules): Add #:deprecation-warnings and honor it. * doc/guix.texi (G-Expressions): Update 'gexp->derivation' documentation. * guix/packages.scm (patch-and-repack): Pass #:deprecation-warnings #t.
2017-08-24packages: Use Guile 2.0 for grafting.Ludovic Courtès
Works around <https://bugs.gnu.org/28211>. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/packages.scm (guile-2.0): New procedure. (package-derivation, package-cross-derivation): Use it when computing the #:guile argument to 'graft-derivation'.
2017-07-10Merge branch 'master' into core-updatesLeo Famulari
2017-07-03packages: Mark 'replacement' as an "innate" field.Ludovic Courtès
Suggested by Mark H Weaver at <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00355.html>. * guix/packages.scm (<package>)[replacement]: Mark as "innate". * gnu/packages/base.scm (glibc-2.25-patched, glibc-2.24) (glibc-2.23, glibc-2.22, glibc-2.21, glibc-locales): Remove 'replacement' field, which was set to #f. * gnu/packages/commencement.scm (perl-boot0): Likewise. * gnu/packages/fontutils.scm (graphite2/fixed): Likewise. * gnu/packages/ghostscript.scm (ghostscript/fixed): Likewise. * gnu/packages/gnupg.scm (libgcrypt-1.7.8): Likewise. * gnu/packages/guile.scm (guile-2.0/fixed, guile-2.2): Likewise. * gnu/packages/icu4c.scm (icu4c/fixed): Likewise. * gnu/packages/image.scm (libpng-apng): Likewise. * gnu/packages/make-bootstrap.scm (%guile-static): Likewise. * gnu/packages/pcre.scm (pcre/fixed): Likewise. * gnu/packages/perl.scm (perl/fixed): Likewise. * gnu/packages/ruby.scm (ruby-2.3, ruby-2.2, ruby-2.1) (ruby-1.8): Likewise. * gnu/packages/tls.scm (gnutls-3.5.13, gnutls/guile-2.2): Likewise. * gnu/packages/xml.scm (expat-2.2.1): Likewise.
2017-06-26Merge branch 'master' into core-updatesMark H Weaver