aboutsummaryrefslogtreecommitdiff
path: root/guix/packages.scm
Commit message (Expand)AuthorAge
* packages: 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ès2016-03-08
* packages: 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ès2016-03-08
* packages: 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ès2016-03-08
* packages: The result of 'bag-grafts' does not contain duplicates.•••* guix/packages.scm (bag-grafts): Add call to 'delete-duplicates'. Ludovic Courtès2016-03-05
* grafts: 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ès2016-03-01
* grafts: '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ès2016-02-22
* derivations: 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ès2016-02-22
* packages: 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 Lirzin2016-01-28
* packages: 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ès2015-12-20
* packages: 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ès2015-10-04
* Use "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ès2015-10-04
* Merge branch 'master' into core-updatesMark H Weaver2015-09-22
|\
| * guix: 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 Bavier2015-09-14
* | Merge branch 'master' into core-updatesLudovic Courtès2015-09-13
|\|
| * guix: 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 Bavier2015-09-10
* | packages: 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 Weaver2015-09-06
* | packages: Define '%hurd-systems'.•••* guix/packages.scm (%hurd-systems): New variable. Ludovic Courtès2015-09-04
* | Build 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 Weaver2015-09-03
* | packages: 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 Weaver2015-09-02
|/
* packages: 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 Weaver2015-07-14
* packages: 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ès2015-07-12
* Merge branch 'master' into core-updates•••Conflicts: gnu/packages/commencement.scm gnu/packages/xml.scm Mark H Weaver2015-06-14
|\
| * packages: 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ès2015-06-11
* | Merge branch 'master' into core-updatesMark H Weaver2015-06-10
|\|
| * Move 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ès2015-05-04
| * guix: 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 Bavier2015-05-02
| * profiles: 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ès2015-05-02
* | packages: 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ès2015-05-21
* | packages: Use %store-directory.•••* guix/packages.scm (patch-and-repack): Call %store-directory instead of duplicating its code. Taylan Ulrich Bayırlı/Kammer2015-05-15
|/
* packages: Add '%hydra-supported-systems'.•••* build-aux/hydra/gnu-system.scm (%hydra-supported-systems): Remove. * guix/packages.scm (%hydra-supported-systems): New variable. Ludovic Courtès2015-05-01
* packages: Add armhf-linux to %supported-systems.•••* guix/packages.scm (%supported-systems): Add "armhf-linux". Mark H Weaver2015-04-22
* packages: 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ès2015-04-19
* packages: 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ès2015-04-15
* packages: '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ès2015-04-11
* packages: Add 'bag-direct-inputs'.•••* guix/packages.scm (bag-direct-inputs): New procedure. (bag-transitive-inputs): Use it. Ludovic Courtès2015-04-11
* packages: 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 Bavier2015-03-24
* packages: 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ès2015-03-21
* gnu: Use 'glibc-utf8-locales-final' in the default patching inputs.•••* gnu/packages/commencement.scm (glibc-utf8-locales-final): Make public. * guix/packages.scm (%standard-patch-inputs): Use GLIBC-UTF8-LOCALES-FINAL instead of GLIBC-UTF8-LOCALES. Ludovic Courtès2015-03-21
* packages: Rewrite 'patch-and-repack' using gexps.•••* guix/packages.scm (patch-and-repack): Remove 'store' parameter and change default value of #:inputs to (%standard-patch-inputs). [lookup-input, instantiate-patch]: New procedures. [patch-inputs]: Remove. [builder]: Rename to... [build]: ... this. Use gexps instead of sexps. (patch-and-repack*): Remove. (origin->derivation): Use 'patch-and-repack' instead of 'patch-and-repack*'. * tests/packages.scm ("package-source-derivation, snippet")[source](snippet): Remove references to '%build-inputs' and '%outputs'. Ludovic Courtès2015-03-18
* gexp: Move the package and origin compilers to (guix packages).•••From now own, (guix packages) depends on (guix gexps); it was the other way around now. This means that (guix packages) code can use gexps. * guix/gexp.scm (origin-compiler, package-compiler): Remove. (default-guile-derivation): New procedure. (gexp->derivation): Use it instead of 'default-guile' + 'package->derivation'. * guix/packages.scm (default-guile-derivation): New procedure. (package-compiler, origin-compiler): New variables. * doc/guix.texi (G-Expressions): Mention extensibility. Ludovic Courtès2015-03-17
* packages: Move grafting parameter to (guix derivations).•••* guix/packages.scm (%graft?, set-grafting): Move to... * guix/derivations.scm: ... here. Ludovic Courtès2015-03-17
* packages: Set the port conversion strategy to 'error'.•••Suggested by Mark H Weaver. * guix/build/gnu-build-system.scm (gnu-build): Set %DEFAULT-PORT-CONVERSION-STRATEGY to 'error. * guix/packages.scm (patch-and-repack)[builder]: Likewise. Ludovic Courtès2015-02-28
* packages: When possible, use a UTF-8 locale in patch-and-repack.•••* guix/packages.scm (%standard-patch-inputs): Add "locales". (patch-and-repack)[builder]: Add 'locales' variable. When it is true, call 'setenv' and 'setlocale'. Ludovic Courtès2015-02-27
* packages: Add 'set-grafting' procedure.•••* guix/packages.scm (set-grafting): New procedure. Ludovic Courtès2015-02-13
* packages: Mark the 'patches' field as delayed.•••* guix/packages.scm (<origin>)[patches]: Mark as 'delayed'. (print-origin, origin->derivation): Add call to 'force' when accessing 'patches'. Ludovic Courtès2015-01-20
* store: Make '%store-monad' an alias for '%state-monad'.•••* guix/store.scm (define-alias): New macro. (%store-monad, store-return, store-bind): Define as aliases of the corresponding %STATE-MONAD part. (store-lift, text-file, interned-file): Return STORE as a second value. (run-with-store): Use 'run-with-state'. * guix/packages.scm (set-guile-for-build, package-file): Return STORE as a second value. * guix/monads.scm: Remove part of the module commentary. Ludovic Courtès2015-01-17
* Merge branch 'core-updates'•••Conflicts: gnu/packages/bootstrap.scm Ludovic Courtès2015-01-16
|\
| * packages: Add 'file-pattern' field to 'search-path-specification'.•••* guix/packages.scm (<search-path-specification>)[file-pattern]: New field. (search-path-specification->sexp): Honor it. Ludovic Courtès2014-12-27
| * build-support/gnu: Add support for file patterns in search paths.•••* guix/build/utils.scm (search-path-as-list): Add #:pattern parameter and honor it. (set-path-environment-variable): Likewise, and pass it to 'search-path-as-list'. * guix/packages.scm (search-path-specification->sexp): Add PATTERN slot. * guix/build/gnu-build-system.scm (set-paths): Adjust accordingly. Ludovic Courtès2014-12-27
| * packages: Add 'file-type' field to 'search-path-specification'.•••Fixes <http://bugs.gnu.org/18033>. * guix/packages.scm (<search-path-specification>): Rename 'directories' field to 'files'. Add 'file-type'. (search-path-specification->sexp): Honor 'file-type'. * gnu/packages/autotools.scm, gnu/packages/bootstrap.scm, gnu/packages/cross-base.scm, gnu/packages/games.scm, gnu/packages/gcc.scm, gnu/packages/glib.scm, gnu/packages/guile.scm, gnu/packages/man.scm, gnu/packages/perl.scm, gnu/packages/pkg-config.scm, gnu/packages/python.scm, gnu/packages/ruby.scm, gnu/packages/xfce.scm: Change 'directories' to 'files'. * tests/packages.scm ("search paths"): Change 'directories' field to 'files'. * guix/scripts/environment.scm (for-each-search-path): Likewise. Ludovic Courtès2014-12-27