summaryrefslogtreecommitdiff
path: root/guix/packages.scm
AgeCommit message (Expand)Author
2016-10-14packages: 'package-grafts' applies grafts on replacement....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. Ludovic Courtès
2016-09-30Merge branch 'master' into core-updatesLudovic Courtès
2016-09-10gexp: Store compilers in a hash table for O(1) lookup....* 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. Ludovic Courtès
2016-09-06packages: Add 'package-superseded' and associated support....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. Ludovic Courtès
2016-09-02Merge branch 'master' into core-updatesLudovic Courtès
2016-09-01packages: Add 'package-input-rewriting'....* 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. Ludovic Courtès
2016-08-10packages: Use '--no-backup-if-mismatch' for patching....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. Alex Kost
2016-07-28packages: Add 'hidden-package'....* 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. Ludovic Courtès
2016-07-12packages: <origin> no longer has an 'imported-modules' field....* 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. Ludovic Courtès
2016-06-16packages: Disambiguate 'modules' and 'imported-modules' in <origin>....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. Ludovic Courtès
2016-06-15packages: The 'source' can be any lowerable object....* 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. Ludovic Courtès
2016-06-15packages: 'origin->derivation' expects an origin and nothing else....* guix/packages.scm (origin->derivation): Rename 'source' parameter to 'origin'. Move cases where SOURCE is a string to... (package-source-derivation): ... here. Ludovic Courtès
2016-06-15packages: Recognize the '.Z' extension....Reported by thomasd on #guix. * guix/packages.scm (patch-and-repack)[decompression-type]: Add "Z". Ludovic Courtès
2016-03-08packages: Cache the result of 'input-grafts'....This reduces the wall-clock time of guix environment gnutls --pure -E true by ~35%. * guix/packages.scm (%graft-cache): New variable. (input-graft): Use 'cached' to cache to %GRAFT-CACHE. Ludovic Courtès
2016-03-08packages: Cache the result of 'package->bag'....This reduces the wall-clock time of guix environment gnutls --pure -E true by ~25%. * guix/packages.scm (%bag-cache): New variable. (package->bag): Use 'cached' to cache things to %BAG-CACHE. Ludovic Courtès
2016-03-08packages: Generalize the 'cached' macro....* guix/packages.scm (cache): Rename to... (cache!): ... this. Add 'cache' parameter, and use it. (cached): Add a rule to allow the cache to be specified. Ludovic Courtès
2016-03-05packages: The result of 'bag-grafts' does not contain duplicates....* guix/packages.scm (bag-grafts): Add call to 'delete-duplicates'. Ludovic Courtès
2016-03-01grafts: Graft recursively....Fixes <http://bugs.gnu.org/22139>. * guix/grafts.scm (graft-derivation): Rename to... (graft-derivation/shallow): ... this. (graft-origin-file-name, item->deriver, non-self-references) (cumulative-grafts, graft-derivation): New procedures * tests/grafts.scm ("graft-derivation, grafted item is a direct dependency"): Clarify title. Use 'grafted' instead of 'graft' to refer to the grafted derivation. ("graft-derivation, grafted item is an indirect dependency") ("graft-derivation, no dependencies on grafted output"): New tests. * guix/packages.scm (input-graft): Change to take a package instead of an input. (input-cross-graft): Likewise. (fold-bag-dependencies): New procedure. (bag-grafts): Rewrite in terms of 'fold-bag-dependencies'. * tests/packages.scm ("package-derivation, indirect grafts"): Comment out. * doc/guix.texi (Security Updates): Mention run-time dependencies and recursive grafting. Ludovic Courtès
2016-02-22grafts: 'name' parameter of 'graft-derivation' is now optional....* guix/grafts.scm (graft-derivation): Name 'name' a keyword parameter. * guix/packages.scm (package-derivation, package-cross-derivation): Adjust accordingly. * tests/grafts.scm ("graft-derivation"): Likewise. * tests/packages.scm ("package-derivation, indirect grafts"): Likewise. Ludovic Courtès
2016-02-22derivations: Move grafts to (guix grafts)....* guix/derivations.scm (<graft>, graft-derivation, %graft?) (set-grafting): Move to... * guix/grafts.scm: ... here. New file. * guix/gexp.scm, guix/packages.scm, tests/packages.scm, guix/scripts/build.scm: Use it. * Makefile.am (MODULES): Add it. (SCM_TESTS): Add tests/grafts.scm. * tests/derivations.scm ("graft-derivation"): Move to... * tests/grafts.scm: ... here. New file. Ludovic Courtès
2016-01-28packages: Use '@' in package record printers....* guix/packages.scm <package>: Use '@' in record printer. * guix/import/cabal.scm <cabal-package>: Likewise * guix/import/elpa.scm <elpa-package>: Likewise. * tests/packages.scm: Adapt to it. Mathieu Lirzin
2015-12-20packages: Add 'package-transitive-native-search-paths'....* guix/packages.scm (package-transitive-native-search-paths): New procedure. * tests/packages.scm ("package-transitive-native-search-paths"): New test. Ludovic Courtès
2015-10-04packages: Use locales from the /X.Y sub-directory of the locale package....This is a followup to commit f2d7bbb. * guix/packages.scm (patch-and-repack)[build]: Append "/X.Y" to LOCPATH. Ludovic Courtès
2015-10-04Use "normalized codesets" everywhere....In other words, change "xx_YY.UTF-8" to "xx_YY.utf8". * guix/profiles.scm (ca-certificate-bundle): Use "en_US.utf8" instead of "en_US.UTF-8". * guix/packages.scm (patch-and-repack): Likewise. * guix/build/gnu-build-system.scm (install-locale): Likewise. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Likewise. * gnu/packages/python.scm (python-ipython): Likewise. * gnu/packages/gawk.scm (gawk): Likewise. * build-aux/hydra/demo-os.scm: Likewise. * gnu/packages/guile.scm (guile-ncurses)[arguments]: Remove 'change-locale' phase. Ludovic Courtès
2015-09-22Merge branch 'master' into core-updatesMark H Weaver
2015-09-14guix: packages: Add origin-actual-file-name....* guix/scripts/graph.scm (uri->file-name, node-full-name): Move origin file name logic to... * guix/packages.scm (origin-actual-file-name): ...here. * tests/packages.scm ("origin-actual-file-name") ("origin-actual-file-name, file-name"): New tests. Eric Bavier
2015-09-13Merge branch 'master' into core-updatesLudovic Courtès
2015-09-10guix: packages: Add transitive-input-references....* guix/packages.scm (transitive-input-references): New procedure. * gnu/packages/version-control.scm (package-transitive-propagated-labels*) (package-propagated-input-refs): Delete. (git)[arguments]: Adjust to transitive-input-references. Eric Bavier
2015-09-06packages: Build tarballs in sorted order even if tar doesn't support it....This is a followup to commit 92226a470ddc980e54863632e5b179bf40444bd7. * guix/packages.scm (patch-and-repack)[build]: Determine if tar supports the "--sort=name" option using a run-time test. If not supported, generate the sorted file list with 'find-files' and pass it to tar using "--files-from". Mark H Weaver
2015-09-04packages: Define '%hurd-systems'....* guix/packages.scm (%hurd-systems): New variable. Ludovic Courtès
2015-09-03Build tarballs with deterministic file ordering....* guix/packages.scm (patch-and-repack)[build], gnu/system/install.scm (self-contained-tarball)[build], gnu/packages/make-bootstrap.scm (tarball-package), gnu/packages/admin.scm (isc-dhcp), gnu/packages/video.scm (avidemux): Pass "--sort=name" to 'tar'. Mark H Weaver
2015-09-02packages: Add 'armhf-linux' to '%hydra-supported-systems'....* guix/packages.scm (%hydra-supported-systems): Do not remove 'armhf-linux' from it. It is now equal to '%supported-systems'. Mark H Weaver
2015-07-14packages: patch-and-repack: Build tarballs deterministically....* guix/packages.scm (patch-and-repack)[build]: When invoking 'tar' to repack the archive, pass "--mtime=@0", "--owner=root:0", and "--group=root:0". Mark H Weaver
2015-07-12packages: Rewrite 'transitive-inputs' to be linear and remove duplicates....There were two issues: 1. Use of 'delete-duplicates', which is quadratic, was a serious problem for closures with lots of propagated inputs, such as that of the 'hydra' package (several minutes for 'guix build hydra -n'!). 2. The 'delete-duplicates' call essentially had no effect since duplicate inputs typically had a different label and were thus kept. For instance, (bag-transitive-inputs (package->bag inkscape)) would return 216 items whereas (delete-duplicates (map cdr THAT)) contains only 67 items. The new implementation returns 67 items in this case. For 'hydra', we're down from 42211 items to 361, and roughly 13s for 'guix build hydra'. * guix/packages.scm (transitive-inputs): Rewrite as a breadth-first traversal. Remove duplicate propagated inputs. * tests/packages.scm ("package-transitive-inputs", "package->bag, propagated inputs"): Adjust to use simple labels for propagated inputs, without "/". ("package-transitive-inputs, no duplicates"): New test. Ludovic Courtès
2015-06-14Merge branch 'master' into core-updates...Conflicts: gnu/packages/commencement.scm gnu/packages/xml.scm Mark H Weaver
2015-06-11packages: Make 'location' field innate....* guix/packages.scm (<package>)[location]: Add 'innate' property. * guix/build-system/gnu.scm (static-package): Remove 'loc' parameter and 'location' field. * gnu/packages/autotools.scm (autoconf-wrapper): Remove 'location' field. * gnu/packages/commencement.scm (gnu-make-boot0, diffutils-boot0, gcc-final): Likewise. * gnu/packages/cross-base.scm (cross): Likewise. * gnu/packages/emacs.scm (emacs-no-x, emacs-no-x-toolkit): Likewise. * gnu/packages/make-bootstrap.scm (tarball-package): Likewise. * gnu/packages/maths.scm (petsc-complex): Likewise. Ludovic Courtès
2015-06-10Merge branch 'master' into core-updatesMark H Weaver
2015-05-21packages: Use packages from '%final-inputs' as the default patch inputs....Reported by Manolis Ragkousis <manolis837@gmail.com> at <http://lists.gnu.org/archive/html/guix-devel/2015-05/msg00059.html>. * guix/packages.scm (%standard-patch-inputs): Add 'canonical', and use it in 'ref'. Ludovic Courtès
2015-05-15packages: Use %store-directory....* guix/packages.scm (patch-and-repack): Call %store-directory instead of duplicating its code. Taylan Ulrich Bayırlı/Kammer
2015-05-04Move search path specifications to (guix search-paths)....* guix/packages.scm (<search-path-specification>, search-path-specification->sexp, sexp->search-path-specification): Move to... * guix/search-paths.scm: ... here. New file. * Makefile.am (MODULES): Add it. * guix/build-system/cmake.scm, guix/build-system/glib-or-gtk.scm, guix/build-system/gnu.scm, guix/build-system/haskell.scm, guix/build-system/perl.scm, guix/build-system/python.scm, guix/build-system/ruby.scm, guix/build-system/waf.scm, guix/profiles.scm, guix/scripts/package.scm: Use it. Ludovic Courtès
2015-05-02guix: packages: Add package-direct-sources and package-transitive-sources....* guix/tests.scm (dummy-origin): New syntax. * guix/packages.scm (package-direct-sources) (package-transitive-sources): New procedures. * tests/packages.scm ("package-direct-sources, no source") ("package-direct-sources, #f source") ("package-direct-sources, not input source", "package-direct-sources") ("package-transitive-sources"): Test them. Eric Bavier
2015-05-02profiles: Store search paths in manifests....Discussed in <http://bugs.gnu.org/20255>. * guix/packages.scm (sexp->search-path-specification): New variable. * guix/profiles.scm (<manifest-entry>)[search-paths]: New field. (package->manifest-entry): Initialize it. (manifest->gexp): Match it. Wrap #$deps in (propagated-inputs ...). Emit (search-paths ...). Increment version. (find-package): New procedure. (sexp->manifest)[infer-search-paths]: New procedure. Use it to initialize the 'search-paths' field for versions 0 and 1. Add case for version 2. * guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]: Remove. Use 'manifest-entry-search-paths' instead of 'manifest-entry->package' plus 'package-native-search-paths'. * tests/profiles.scm ("profile-manifest, search-paths"): New test. Ludovic Courtès
2015-05-01packages: Add '%hydra-supported-systems'....* build-aux/hydra/gnu-system.scm (%hydra-supported-systems): Remove. * guix/packages.scm (%hydra-supported-systems): New variable. Ludovic Courtès
2015-04-22packages: Add armhf-linux to %supported-systems....* guix/packages.scm (%supported-systems): Add "armhf-linux". Mark H Weaver
2015-04-19packages: Add 'supported-package?'....* guix/packages.scm (supported-package?): New procedure. * tests/packages.scm ("supported-package?"): New test. * build-aux/hydra/gnu-system.scm (package->job): Use it instead of 'package-transitive-supported-systems'. Ludovic Courtès
2015-04-15packages: Refer to the native tools when handling sources and downloads....* guix/packages.scm (patch-and-repack)[build]: Change most #$ to #+. * guix/cvs-download.scm (cvs-fetch)[build]: Likewise. * guix/download.scm (url-fetch)[builder]: Likewise. * guix/git-download.scm (git-fetch)[build]: Likewise. * guix/svn-download.scm (svn-fetch)[build]: Likewise. Ludovic Courtès
2015-04-11packages: 'package-transitive-supported-systems' accounts for implicit inputs....Reported by Federico Beffa. * guix/packages.scm (package-transitive-supported-systems): Use bag-direct-inputs + package->bag rather than package-direct-inputs. * tests/packages.scm ("package-transitive-supported-systems"): Add explicit 'build-system' field to each 'dummy-package' form. ("package-transitive-supported-systems, implicit inputs"): New test. Ludovic Courtès
2015-04-11packages: Add 'bag-direct-inputs'....* guix/packages.scm (bag-direct-inputs): New procedure. (bag-transitive-inputs): Use it. Ludovic Courtès
2015-03-24packages: Add zip archive support to 'patch-and-repack'....Fixes <http://bugs.gnu.org/19830>. * guix/packages.scm (%standard-patch-inputs): Add "unzip". (patch-and-repack)[decompression-type]: Detect zip archive. [build]: Invoke "unzip" when appropriate. Eric Bavier
2015-03-21packages: Make sure the patch inputs are not #f....Fixes build issues whereby #:inputs would be #f. See <http://hydra.gnu.org/build/320333/nixlog/4/tail-reload>. * guix/packages.scm (patch-and-repack): #:input defaults to #f. [lookup-input]: When INPUTS is #f, use (%standard-patch-inputs). Ludovic Courtès