aboutsummaryrefslogtreecommitdiff
path: root/guix/packages.scm
Commit message (Collapse)AuthorAge
* 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.
* 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.
* 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: 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".
* packages: Cache the result of 'input-grafts'.Ludovic Courtès2016-03-08
| | | | | | | | | | | 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.
* packages: Cache the result of 'package->bag'.Ludovic Courtès2016-03-08
| | | | | | | | | | | 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.
* packages: Generalize the 'cached' macro.Ludovic Courtès2016-03-08
| | | | | | * 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.
* packages: The result of 'bag-grafts' does not contain duplicates.Ludovic Courtès2016-03-05
| | | | * guix/packages.scm (bag-grafts): Add call to 'delete-duplicates'.
* grafts: Graft recursively.Ludovic Courtès2016-03-01
| | | | | | | | | | | | | | | | | | | | | | 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.
* grafts: 'name' parameter of 'graft-derivation' is now optional.Ludovic Courtès2016-02-22
| | | | | | | | * 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.
* derivations: Move grafts to (guix grafts).Ludovic Courtès2016-02-22
| | | | | | | | | | | | * 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.
* packages: Use '@' in package record printers.Mathieu Lirzin2016-01-28
| | | | | | | * 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.
* packages: Add 'package-transitive-native-search-paths'.Ludovic Courtès2015-12-20
| | | | | | | * guix/packages.scm (package-transitive-native-search-paths): New procedure. * tests/packages.scm ("package-transitive-native-search-paths"): New test.
* packages: Use locales from the /X.Y sub-directory of the locale package.Ludovic Courtès2015-10-04
| | | | | | | This is a followup to commit f2d7bbb. * guix/packages.scm (patch-and-repack)[build]: Append "/X.Y" to LOCPATH.
* Use "normalized codesets" everywhere.Ludovic Courtès2015-10-04
| | | | | | | | | | | | | | | 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.
* Merge branch 'master' into core-updatesMark H Weaver2015-09-22
|\
| * guix: packages: Add origin-actual-file-name.Eric Bavier2015-09-14
| | | | | | | | | | | | | | | | * 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.
* | Merge branch 'master' into core-updatesLudovic Courtès2015-09-13
|\|
| * guix: packages: Add transitive-input-references.Eric Bavier2015-09-10
| | | | | | | | | | | | | | * 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.
* | packages: Build tarballs in sorted order even if tar doesn't support it.Mark H Weaver2015-09-06
| | | | | | | | | | | | | | | | 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".
* | packages: Define '%hurd-systems'.Ludovic Courtès2015-09-04
| | | | | | | | * guix/packages.scm (%hurd-systems): New variable.
* | Build tarballs with deterministic file ordering.Mark H Weaver2015-09-03
| | | | | | | | | | | | | | | | * 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'.
* | packages: Add 'armhf-linux' to '%hydra-supported-systems'.Mark H Weaver2015-09-02
|/ | | | | * guix/packages.scm (%hydra-supported-systems): Do not remove 'armhf-linux' from it. It is now equal to '%supported-systems'.
* packages: patch-and-repack: Build tarballs deterministically.Mark H Weaver2015-07-14
| | | | | * guix/packages.scm (patch-and-repack)[build]: When invoking 'tar' to repack the archive, pass "--mtime=@0", "--owner=root:0", and "--group=root:0".
* packages: Rewrite 'transitive-inputs' to be linear and remove duplicates.Ludovic Courtès2015-07-12
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge branch 'master' into core-updatesMark H Weaver2015-06-14
|\ | | | | | | | | | | Conflicts: gnu/packages/commencement.scm gnu/packages/xml.scm
| * packages: Make 'location' field innate.Ludovic Courtès2015-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Merge branch 'master' into core-updatesMark H Weaver2015-06-10
|\|
| * Move search path specifications to (guix search-paths).Ludovic Courtès2015-05-04
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * guix: packages: Add package-direct-sources and package-transitive-sources.Eric Bavier2015-05-02
| | | | | | | | | | | | | | | | | | | | * 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.
| * profiles: Store search paths in manifests.Ludovic Courtès2015-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | packages: Use packages from '%final-inputs' as the default patch inputs.Ludovic Courtès2015-05-21
| | | | | | | | | | | | | | | | 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'.
* | packages: Use %store-directory.Taylan Ulrich Bayırlı/Kammer2015-05-15
|/ | | | | * guix/packages.scm (patch-and-repack): Call %store-directory instead of duplicating its code.
* packages: Add '%hydra-supported-systems'.Ludovic Courtès2015-05-01
| | | | | * build-aux/hydra/gnu-system.scm (%hydra-supported-systems): Remove. * guix/packages.scm (%hydra-supported-systems): New variable.
* packages: Add armhf-linux to %supported-systems.Mark H Weaver2015-04-22
| | | | * guix/packages.scm (%supported-systems): Add "armhf-linux".
* packages: Add 'supported-package?'.Ludovic Courtès2015-04-19
| | | | | | | * 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'.
* packages: Refer to the native tools when handling sources and downloads.Ludovic Courtès2015-04-15
| | | | | | | | * 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.
* packages: 'package-transitive-supported-systems' accounts for implicit inputs.Ludovic Courtès2015-04-11
| | | | | | | | | | 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.
* packages: Add 'bag-direct-inputs'.Ludovic Courtès2015-04-11
| | | | | * guix/packages.scm (bag-direct-inputs): New procedure. (bag-transitive-inputs): Use it.
* packages: Add zip archive support to 'patch-and-repack'.Eric Bavier2015-03-24
| | | | | | | | 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.
* packages: Make sure the patch inputs are not #f.Ludovic Courtès2015-03-21
| | | | | | | | 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).
* gnu: Use 'glibc-utf8-locales-final' in the default patching inputs.Ludovic Courtès2015-03-21
| | | | | | * 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.
* packages: Rewrite 'patch-and-repack' using gexps.Ludovic Courtès2015-03-18
| | | | | | | | | | | | | | | * 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'.
* gexp: Move the package and origin compilers to (guix packages).Ludovic Courtès2015-03-17
| | | | | | | | | | | | | 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.