aboutsummaryrefslogtreecommitdiff
path: root/guix/packages.scm
Commit message (Collapse)AuthorAge
* gexp: 'imported-files' no longer creates a derivation by default.Ludovic Courtès2018-07-19
| | | | | | | | | | | | | | | | | | * 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.
* Revert "packages: Optimize 'package-transitive-supported-systems'."Ludovic Courtès2018-07-03
| | | | | | | This reverts commit 24420f5ffabfbdbe913a5765e5c00e17de18fb4c. This broke 'package-transitive-supported-systems', which would return the union of supported systems instead of the intersection.
* packages: Optimize 'package-transitive-supported-systems'.Ludovic Courtès2018-07-03
| | | | | | | | | | | 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.
* packages: Add 'package-patched-vulnerabilities'.Ludovic Courtès2018-06-09
| | | | | | | | | | * 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.
* Merge branch 'master' into core-updatesMark H Weaver2018-05-17
|\
| * guix: Separate the package name and version with "@", not "-".Chris Marusich2018-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>.
* | packages: Issue a warning unless the snippet returns #t.Mark H Weaver2018-03-16
| | | | | | | | | | * guix/packages.scm (patch-and-repack): Issue a warning if the snippet returns a value other than #t.
* | packages: Update copyright notice.Mark H Weaver2018-03-16
| | | | | | | | | | | | This is a followup to commit 5003aeaf2560d6ddebcf980a94785fba77e00f34. * guix/packages.scm: Update copyright notice for Mark H Weaver.
* | packages: patch-and-repack: Fix snippet handling.Mark H Weaver2018-03-16
| | | | | | | | | | | | | | | | 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).
* | packages: patch-and-repack: Use invoke instead of system*.Mark H Weaver2018-03-16
|/ | | | | * guix/packages.scm (patch-and-repack): Use invoke and remove vestigial plumbing.
* Merge branch 'master' into core-updatesMark H Weaver2018-01-19
|\
| * packages: 'package-mapping' maps replacement.Ludovic Courtès2018-01-20
| | | | | | | | * guix/packages.scm (package-mapping): Apply PROC to 'replacement' as well.
* | gnu: commencement: Memoize 'linux-libre-headers-boot0'.Ludovic Courtès2018-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into core-updatesMarius Bakke2017-12-07
|\|
| * Revert "packages: 'package-grafts' trims native inputs."Ludovic Courtès2017-12-06
| | | | | | | | | | | | 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>.
| * packages: 'package-grafts' trims native inputs.Ludovic Courtès2017-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | '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.
| * packages: 'fold-bag-dependencies' honors nativeness in recursive calls.Ludovic Courtès2017-12-05
| | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into core-updatesMarius Bakke2017-12-05
|\|
| * gexp: 'compiled-modules' disables deprecation warnings by default.Ludovic Courtès2017-11-29
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | gnu: glibc: Don't use full version string in locale path.Marius Bakke2017-12-03
|/ | | | | | | | | | | | 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.
* packages: Use Guile 2.0 for grafting.Ludovic Courtès2017-08-24
| | | | | | | | | 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'.
* Merge branch 'master' into core-updatesLeo Famulari2017-07-10
|\
| * packages: Mark 'replacement' as an "innate" field.Ludovic Courtès2017-07-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into core-updatesMark H Weaver2017-06-26
|\|
| * gnu: Move contents of zip module into compression module.Arun Isaac2017-06-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnu/packages/zip.scm (zip, unzip, zziplib, perl-zip): Move to... * gnu/packages/compression.scm: ...here. * gnu/packages/zip.scm: Delete file. * gnu/local.mk (GNU_SYSTEM_MODULES): Unregister deleted file. * po/packages/POTFILES.in: Unregister deleted file. * gnu/packages/{audio, avr, bioinformatics, busybox, cdrom, ci, compression, docbook, documentation, fonts, fpga, game-development, games, gl, gnome, gnuzilla, graphics, guile, haskell, image, java, kodi, ldc, libreoffice, markup, maths, mc, monitoring, music, php, pretty-print, python, scheme, smalltalk, statistics, synergy, tex, textutils, video, web-browsers, xml, zip}.scm, guix/build-system/{ant, font}.scm, guix/{download, packages}.scm: Adapt module import.
* | Merge branch 'master' into core-updatesMark H Weaver2017-06-18
|\|
| * packages: Patches can be any lowerable object.Ludovic Courtès2017-06-15
| | | | | | | | | | * guix/packages.scm (patch-and-repack)[instantiate-patch]: Replace 'origin?' with 'struct?'.
* | Merge branch 'master' into core-updatesRicardo Wurmus2017-05-24
|\|
| * packages: Add aarch64-linux to %supported-systems.Efraim Flashner2017-05-23
| | | | | | | | | | * guix/packages.scm (%supported-systems): Add aarch64-linux. (%hydra-supported-systems): Remove aarch64-linux.
| * Add package/inherit.Mark H Weaver2017-05-02
| | | | | | | | * guix/packages.scm (package/inherit): New public macro.
| * packages: Add 'package-mapping' and base 'package-input-rewriting' on it.Ludovic Courtès2017-04-05
| | | | | | | | | | | | | | * guix/packages.scm (package-mapping): New procedure. (package-input-rewriting): Rewrite in terms of 'package-mapping'. * tests/packages.scm ("package-mapping"): New test. * doc/guix.texi (Defining Packages): Document it.
| * packages: Catch invalid input errors for structs.Ludovic Courtès2017-04-04
| | | | | | | | | | | | | | | | | | Reported by Thomas Sigurdsen <thomas.sigurdsen@gmail.com> at <https://lists.gnu.org/archive/html/help-guix/2017-04/msg00007.html>. * guix/packages.scm (expand-input): Add 'guard' form around call to 'package-source-derivation'. * tests/packages.scm (dummy): New test.
* | packages: Enable threaded compression of source tarballs.Leo Famulari2017-04-15
|/ | | | | | | This provides a ~2x speedup when using 4 threads. * guix/packages.scm (patch-and-repack)[build]: Invoke xz with '--threads=0' when re-packing tarballs.
* packages: Remove "mips64el-linux" from '%hydra-supported-systems'.Ludovic Courtès2017-03-29
| | | | * guix/packages.scm (%hydra-supported-systems): Remove "mips64el-linux".
* packages: Remove 'define-memoized/v' and use 'mlambdaq' instead.Ludovic Courtès2017-01-28
| | | | | | | * guix/packages.scm (define-memoized/v): Remove. (package-transitive-supported-systems): Use 'mlambdaq' instead of 'define-memoized/v'. (package-input-rewriting)[replace]: Likewise.
* packages: Add 'package-upstream-name' and use it.Ludovic Courtès2017-01-28
| | | | | | | * guix/packages.scm (package-upstream-name): New procedure. * guix/gnu-maintenance.scm (gnu-package?, ftp-server/directory) (latest-release*, latest-gnome-release) (latest-kde-release): Use it instead of the inline expression.
* Merge branch 'master' into core-updatesMark H Weaver2016-10-17
|\
| * packages: 'package-grafts' applies grafts on replacement.Ludovic Courtès2016-10-14
| | | | | | | | | | | | | | | | | | | | Partly fixes <http://bugs.gnu.org/24418>. * guix/packages.scm (input-graft): Compute 'new' with #:graft? #t. (input-cross-graft): Likewise. * tests/packages.scm ("package-grafts, indirect grafts, cross"): Comment out. ("replacement also grafted"): New test.
* | Merge branch 'master' into core-updatesLudovic Courtès2016-09-30
|\|
| * gexp: Store compilers in a hash table for O(1) lookup.Ludovic Courtès2016-09-10
| | | | | | | | | | | | | | | | | | | | | | | | | | * guix/gexp.scm (<gexp-compiler>)[predicate]: Remove. [type]: New field. (%gexp-compilers): Turn into a hash table. (register-compiler!, lookup-compiler, lookup-expander): Adjust accordingly. (define-gexp-compiler): Replace 'predicate' by 'record-type'. (derivation-compiler, local-file-compiler, plain-file-compiler) (computed-file-compiler, program-file-compiler, scheme-file-compiler) (file-append-compiler): Adjust accordingly. * guix/packages.scm (package-compiler, origin-compiler): Likewise.
| * packages: Add 'package-superseded' and associated support.Ludovic Courtès2016-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This provides a way to mark a package as superseded by another one. Upgrades replace superseded packages with their replacement. * guix/packages.scm (package-superseded, deprecated-package): New procedures. * gnu/packages.scm (%find-package): Check for 'package-superseded'. * guix/scripts/package.scm (transaction-upgrade-entry)[supersede]: New procedure. Call it when 'package-superseded' is true. * tests/guix-build.sh: Add test for a superseded package. * tests/packages.scm ("package-superseded") ("transaction-upgrade-entry, superseded package"): New tests.
* | Merge branch 'master' into core-updatesLudovic Courtès2016-09-02
|\|
| * packages: Add 'package-input-rewriting'.Ludovic Courtès2016-09-01
| | | | | | | | | | | | | | * guix/packages.scm (package-input-rewriting): New procedure. * tests/packages.scm ("package-input-rewriting"): New test. * doc/guix.texi (Defining Packages): Document it. (Package Transformation Options): Add cross-reference.
* | packages: Use '--no-backup-if-mismatch' for patching.Alex Kost2016-08-10
|/ | | | | | | Suggested-by: Ludovic Courtès <ludo@gnu.org> * guix/packages.scm (patch-and-repack)[build]: Use '--no-backup-if-mismatch' patch flag to avoid making *.orig files.
* packages: Add 'hidden-package'.Ludovic Courtès2016-07-28
| | | | | | * guix/packages.scm (hidden-package, hidden-package?): New procedures. * gnu/packages.scm (fold-packages): Filter out 'hidden-package?'. * tests/packages.scm ("hidden-package"): New test.
* packages: <origin> no longer has an 'imported-modules' field.Ludovic Courtès2016-07-12
| | | | | | | | | * guix/packages.scm (<origin>)[imported-modules]: Remove. (patch-and-repack): Remove #:imported-modules. Use 'with-imported-modules'. Remove #:modules argument to 'gexp->derivation'. (origin->derivation): Adjust accordingly. * doc/guix.texi (origin Reference): Adjust accordingly.
* packages: Disambiguate 'modules' and 'imported-modules' in <origin>.Ludovic Courtès2016-06-16
| | | | | | | | | | | | | The two mistakes made here (confusion between 'modules' and 'imported-modules') were canceling each other. * guix/packages.scm (patch-and-repack): Use IMPORTED-MODULES, not MODULES, as the base of the module list passed as #:modules to 'gexp->derivation'. (origin->derivation): Pass IMPORTED-MODULES, not MODULES, as the #:imported-modules argument of 'patch-and-repack'. * gnu/packages/engineering.scm (fastcap)[source]: Add 'imported-modules' field.
* packages: The 'source' can be any lowerable object.Ludovic Courtès2016-06-15
| | | | | | | | | | | * guix/packages.scm (expand-input): Use 'struct?' instead of 'origin?' when matching SOURCE. (package-source-derivation): Use 'lower-object' instead of 'origin->derivation'. * tests/packages.scm ("package-source-derivation, local-file"): New test. * doc/guix.texi (package Reference): Update 'source' documentation accordingly.
* packages: 'origin->derivation' expects an origin and nothing else.Ludovic Courtès2016-06-15
| | | | | | * guix/packages.scm (origin->derivation): Rename 'source' parameter to 'origin'. Move cases where SOURCE is a string to... (package-source-derivation): ... here.
* packages: Recognize the '.Z' extension.Ludovic Courtès2016-06-15
| | | | | | Reported by thomasd on #guix. * guix/packages.scm (patch-and-repack)[decompression-type]: Add "Z".