summaryrefslogtreecommitdiff
path: root/guix/profiles.scm
AgeCommit message (Expand)Author
2016-05-02profiles: Factor out 'manifest-lookup-package'....* guix/profiles.scm (manifest-lookup-package): New procedure. (gtk-icon-themes, xdg-desktop-database, xdg-mime-database): Use it. 宋文武
2016-05-02profiles: Add xdg-mime-database hook....* guix/profiles.scm (xdg-mime-database): New function. (%default-profile-hooks): Add it. 宋文武
2016-05-02profiles: Add xdg-desktop-database hook....* guix/profiles.scm (xdg-desktop-database): New function. (%default-profile-hooks): Add it. 宋文武
2016-04-01profiles: Use the right 'package-name->name+version'....* guix/profiles.scm: Use 'package-name->name+version' from (guix build utils). Fixes 'find-among-store-items' in 'gtk-icon-themes'. Ludovic Courtès
2016-02-12profiles: Add #:system argument to profile-derivation....Suggested by David Thompson <davet@gnu.org>. * guix/profiles.scm (profile-derivation): Add #:system parameter and honor it. Ludovic Courtès
2015-12-20profiles: Honor search paths of propagated inputs....Fixes <http://bugs.gnu.org/22073>. Reported by Federico Beffa <beffa@ieee.org>. * guix/profiles.scm (package->manifest-entry): Use 'package-transitive-native-search-paths' when computing 'search-paths' field. * tests/profiles.scm ("package->manifest-entry, search paths"): New test. Ludovic Courtès
2015-12-14profiles: Silence Info installation....* guix/profiles.scm (info-dir-file)[build]: Pass --silent to 'install-info'. Ludovic Courtès
2015-12-04profiles: Silence GTK+ icon cache creation....Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/profiles.scm (gtk-icon-themes)[build]: Pass --quiet to 'gtk-update-icon-cache'. Ludovic Courtès
2015-12-04profiles: Silence GTK+ icon theme union....Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/profiles.scm (gtk-icon-themes)[build]: Pass 'union-build' a #:log-port argument. Ludovic Courtès
2015-10-27profiles: Add generation manipulation procedures....* guix/scripts/package.scm (delete-generations): Use 'delete-generation*' instead of 'delete-generation'. (guix-package)[process-actions]: Use 'roll-back*' instead of 'roll-back' and 'switch-to-generation*' instead of 'switch-to-generation'. (link-to-empty-profile, switch-to-generation, switch-to-previous-generation, roll-back, delete-generation): Move to... * guix/profiles.scm: ... here. Adjust to not print messages and to return values that can be used by user interfaces. * guix/ui.scm (display-generation-change, roll-back*, switch-to-generation*, delete-generation*): New procedures. 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-10-03gnu: glibc: Look for locale data in versioned sub-directories....* gnu/packages/base.scm (glibc)[native-search-paths]: Add 'lib/locale/VERSION' for 'GUIX_LOCPATH'. (glibc-locales, glibc-utf8-locales): Write to a VERSION sub-directory. * guix/profiles.scm (ca-certificate-bundle): Adjust LOCPATH value accordingly. Ludovic Courtès
2015-09-24profiles: Make profile-specific derivations non-substitutable....This avoids gratuitous queries of the substituter. * guix/profiles.scm (ghc-package-cache-file): Pass #:substitutable? #f to 'gexp->derivation'. (ca-certificate-bundle): Likewise. (gtk-icon-themes): Likewise. (profile-derivation): Likewise. (info-dir-file): Likewise, plus #:local-build? #t. Ludovic Courtès
2015-08-20profiles: Remove duplicate entries in 'etc/profile'....Reported by Andy Wingo at <http://lists.gnu.org/archive/html/guix-devel/2015-08/msg00109.html>. * guix/profiles.scm (profile-derivation)[builder]: Delete duplicates in SEARCH-PATHS. Ludovic Courtès
2015-06-11profiles: Process ghc conf files only once....A package may be listed in the manifest inputs multiple times. Avoid copying ghc *.conf files twice by deleting duplicates. * guix/profiles.scm (ghc-package-cache-file)[conf-files]: Delete duplicate manifest inputs before copying conf files. Eric Bavier
2015-06-11profiles: Search for ghc conf files only if package db exists....This avoids having 'find-files' report warnings about searching in non-existent directories. * guix/profiles.scm (ghc-package-cache-file)[conf-files]: Only search for *.conf files if the search directory exists. Eric Bavier
2015-05-28profiles: Deal with non-directory items in share/icons....Reported by Mark H Weaver <mhw@netris.org>. * guix/profiles.scm (gtk-icon-themes)[build]: Check whether DIR is a directory before calling 'ensure-writable-directory'. Ludovic Courtès
2015-05-27profiles: Export 'ensure-writable-directory' and use it....* guix/build/profiles.scm (ensure-writable-directory): Export. * guix/profiles.scm (gtk-icon-themes)[build]: Remove '@@' form and use (guix build profiles). Ludovic Courtès
2015-05-27profiles: Don't assume all the inputs are of a package are packages....Reported by Ricardo Wurmus. * guix/profiles.scm (gtk-icon-themes)[entry-lookup-gtk+](find-among-packages): Rename to... (find-among-inputs): ... this. Check whether INPUT is a package before calling 'package-name'. Fixes a regression introduced in b04af0e. Ludovic Courtès
2015-05-27profiles: Use 'derivation?' to filter hooks....Fixes a regression introduced in 07eaecfa. * guix/profiles.scm (profile-derivation): Use 'derivation?' instead of 'gexp?' to filter hooks. 宋文武
2015-05-27profiles: Add gtk-icon-themes hook....* guix/profiles.scm (gtk-icon-themes): New function. (%default-profile-hooks): Add it. 宋文武
2015-05-26profiles: Hooks always return a monadic value....Suggested by 宋文武 <iyzsong@gmail.com>. * guix/profiles.scm (ghc-package-cache-file): Return a monadic #f, not just #f, when MANIFEST contains no GHC package. (profile-derivation): Do not filter based on the return value of HOOK; instead filter based on the value of items in EXTRAS. Ludovic Courtès
2015-05-20profiles: Add 'packages->manifest' procedure....* guix/profiles.scm (packages->manifest): New procedure. David Thompson
2015-05-06profiles: Generate an 'etc/profile' file....Suggested by 宋文武 <iyzsong@gmail.com> in <http://bugs.gnu.org/20255>. * guix/build/profiles.scm (abstract-profile, write-environment-variable-definition): New procedures. (build-profile): Add #:search-paths parameter. Create OUTPUT/etc/profile. * guix/profiles.scm (profile-derivation)[builder]: Add 'search-paths' variable and pass it to 'build-profile'. Adjust #:modules argument. * tests/profiles.scm ("etc/profile"): New test. * doc/guix.texi (Invoking guix package): Mention etc/profile. Ludovic Courtès
2015-05-06profiles: Move build code to (guix build profiles)....* guix/build/profiles.scm: New file. * Makefile.am (MODULES): Add it. * guix/profiles.scm (profile-derivation)[builder]: Call out to 'build-profile'. Add (guix build profiles) to the #:modules argument. Ludovic Courtès
2015-05-04profiles: Use a &message error condition instead of 'error'....* guix/profiles.scm (sexp->manifest): Use 'raise' instead of 'error'. Ludovic Courtès
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-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-04-20profiles: Create a CA certificate bundle only when it would be non-empty....* guix/profiles.scm (ca-certificate-bundle): Create $output/etc/ssl/certs if and only if CA-FILES is non-empty. Ludovic Courtès
2015-04-15profiles: Generalize "hooks" for 'profile-derivation'....* guix/profiles.scm (info-dir-file): Remove (null? (manifest-entries manifest)) test. (ca-certificate-bundle): Likewise. (ghc-package-cache-file): Turn 'if' into 'and', and remove second arm. (%default-profile-hooks): New variable. (profile-derivation): Remove #:info-dir?, #:ghc-package-cache?, and #:ca-certificate-bundle?. Add #:hooks. Iterate over HOOKS. Adjust 'inputs' accordingly. * guix/scripts/package.scm (guix-package): Adjust 'profile-derivation' call accordingly. * tests/packages.scm ("--search-paths with pattern"): Likewise. * tests/profiles.scm ("profile-derivation", "profile-derivation, inputs"): Likewise. Ludovic Courtès
2015-04-08profiles: Generate GHC's package database cache....* guix/profiles.scm (ghc-package-cache-file): New procedure. (profile-derivation): Add 'ghc-package-cache?' keyword argument. If true (the default), add the result of 'ghc-package-cache-file' to 'inputs'. * guix/scripts/package.scm (guix-package)[process-actions]: Pass #:ghc-package-cache? to 'profile-generation'. * tests/packages.scm ("--search-paths with pattern"): Likewise. * tests/profiles.scm ("profile-derivation"): Likewise. Federico Beffa
2015-03-17profiles: Use 'gexp-input' instead of two-element lists....* guix/profiles.scm (package->manifest-entry): Use 'gexp-input' instead of two-element lists to denote specific package outputs. (manifest-inputs): Likewise. (profile-derivation)[info-dir]: Likewise. Ludovic Courtès
2015-03-04tests: Remove dependency on 'glibc-utf8-locales' for profile tests....This fixes a regression introduced in commit 536c3ee. * guix/profiles.scm (ca-certificate-bundle): When MANIFEST is empty, make a trivial derivation. * guix/scripts/package.scm (guix-package)[process-actions]: Pass #:ca-certificate-bundle? to 'profile-generation'. * tests/packages.scm ("--search-paths with pattern"): Likewise. * tests/profiles.scm ("profile-derivation"): Likewise. Ludovic Courtès
2015-03-03profiles: Produce a single-file CA certificate bundle....* guix/profiles.scm (ca-certificate-bundle): New procedure. (profile-derivation): Add 'ca-certificate-bundle?' keyword argument. If true (the default), add the result of 'ca-certificate-bundle' to 'inputs'. Co-Authored-By: Ludovic Courtès <ludo@gnu.org> Mark H Weaver
2015-02-09profiles: Report "pseudo-upgrades" as upgrades, not downgrades....Reported by Andreas Enge <andreas@enge.fr> at <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19764#19>. * guix/profiles.scm (manifest-transaction-effects): Use 'version>=?' instead of 'version>?'. * tests/profiles.scm ("manifest-transaction-effects and pseudo-upgrades"): New test. Ludovic Courtès
2015-02-08profiles: Distinguish downgrades from upgrades....Fixes <http://bugs.gnu.org/19764>. * guix/profiles.scm (manifest-transaction-effects): Return downgraded packages as a fourth value. * guix/ui.scm (show-manifest-transaction): Adjust accordingly. * tests/profiles.scm ("manifest-transaction-effects and downgrades"): New test. Ludovic Courtès
2015-01-14monads: Move '%store-monad' and related procedures where they belong....This turns (guix monads) into a generic module for monads, and moves the store monad and related monadic procedures in their corresponding module. * guix/monads.scm (store-return, store-bind, %store-monad, store-lift, text-file, interned-file, package-file, package->derivation, package->cross-derivation, origin->derivation, imported-modules, compiled, modules, built-derivations, run-with-store): Move to... * guix/store.scm (store-return, store-bind, %store-monad, store-lift, text-file, interned-file): ... here. (%guile-for-build): New variable. (run-with-store): Moved from monads.scm. Remove default value for #:guile-for-build. * guix/packages.scm (default-guile): Export. (set-guile-for-build): New procedure. (package-file, package->derivation, package->cross-derivation, origin->derivation): Moved from monads.scm. * guix/derivations.scm (%guile-for-build): Remove. (imported-modules): Rename to... (%imported-modules): ... this. (compiled-modules): Rename to... (%compiled-modules): ... this. (built-derivations, imported-modules, compiled-modules): New procedures. * gnu/services/avahi.scm, gnu/services/base.scm, gnu/services/dbus.scm, gnu/services/dmd.scm, gnu/services/networking.scm, gnu/services/ssh.scm, gnu/services/xorg.scm, gnu/system/install.scm, gnu/system/linux-initrd.scm, gnu/system/shadow.scm, guix/download.scm, guix/gexp.scm, guix/git-download.scm, guix/profiles.scm, guix/svn-download.scm, tests/monads.scm: Adjust imports accordingly. * guix/monad-repl.scm (default-guile-derivation): New procedure. (store-monad-language, run-in-store): Use it. * build-aux/hydra/gnu-system.scm (qemu-jobs): Add explicit 'set-guile-for-build' call. * guix/scripts/archive.scm (derivation-from-expression): Likewise. * guix/scripts/build.scm (options/resolve-packages): Likewise. * guix/scripts/environment.scm (guix-environment): Likewise. * guix/scripts/system.scm (guix-system): Likewise. * doc/guix.texi (The Store Monad): Adjust module names accordingly. Ludovic Courtès
2014-12-15profiles: Fix removal of the next-to-last item in a profile....Fixes a bug whereby removing the next-to-last item in a profile would lead to an obscure error, as shown at <http://lists.gnu.org/archive/html/guix-devel/2014-12/msg00292.html>. Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>. * guix/profiles.scm (profile-derivation)[inputs]: Use (list info-dir "out") instead of just INFO-DIR. Ludovic Courtès
2014-10-12profiles: Add 'relative-generation'....* guix/profiles.scm: (relative-generation): New procedure. (previous-generation-number): Use it. Alex Kost
2014-10-12profiles: Add condition types for profiles and generations....Suggested by Ludovic Courtès. * guix/profiles.scm (&profile-error, &profile-not-found-error, &missing-generation-error): New condition types. * guix/ui.scm (call-with-error-handling): Handle new types. * guix/scripts/package.scm (roll-back, guix-package): Raise '&profile-not-found-error' where needed. Alex Kost
2014-10-10ui: Move 'show-manifest-transaction' from (guix profiles)....* guix/profiles.scm: Do not use (guix ui) module. (right-arrow, manifest-show-transaction): Move and rename to... * guix/ui.scm (right-arrow, show-manifest-transaction): ... here. * tests/profiles.scm ("manifest-show-transaction"): Move to... * tests/ui.scm ("show-manifest-transaction"): ... here. (guile-1.8.8, guile-2.0.9): New variables. * emacs/guix-main.scm (process-package-actions): Rename 'manifest-show-transaction' to 'show-manifest-transaction'. * guix/scripts/package.scm (guix-package): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Alex Kost
2014-09-22profiles: Add 'profile-generations'....* guix/profiles.scm (profile-generations): New procedure. Alex Kost
2014-09-10profiles: Adjust for compatibility with Guile 2.0.5....Reported by Andreas Enge <andreas@enge.fr>. * guix/profiles.scm (right-arrow): Use 'set-port-conversion-strategy!' instead of '%default-port-conversion-strategy'. The latter is only available in Guile 2.0.5. Ludovic Courtès
2014-09-04profiles: Use a real arrow to denote upgrades in ASCII....Suggested by Alex Kost. * guix/profiles.scm (right-arrow): Fall back to "->". * tests/profiles.scm ("manifest-show-transaction"): Adjust accordingly. Ludovic Courtès
2014-09-02profiles: Report version numbers in a separate column....* guix/profiles.scm (manifest-show-transaction)[package-strings, upgrade-strings]: Show version number in separate column. Show OUTPUT in first column, and only when it's different from "out". Ludovic Courtès
2014-09-02profiles: Report the old and new version number in upgrades....* guix/profiles.scm (manifest-lookup): New procedure. (manifest-installed?): Use it. (manifest-transaction-effects): Return a pair of entries for upgrades. (right-arrow): New procedure. (manifest-show-transaction)[upgrade-string, →]: New variables. Report upgrades using 'upgrade-string'. * tests/profiles.scm ("manifest-show-transaction"): New test. ("manifest-transaction-effects"): Match UPGRADE against a pair. Ludovic Courtès
2014-08-30profiles: Compute transaction effects in a functional way....* guix/profiles.scm (manifest-transaction-effects): New procedure. (manifest-show-transaction): Use it instead of locally computing it. * tests/profiles.scm (glibc): New variable. ("manifest-transaction-effects"): New test. Ludovic Courtès
2014-08-28profiles: Add gzip to $PATH before invoking 'install-info'....* guix/profiles.scm (info-dir-file)[gzip]: New variable. [build]: Add 'setenv' call. Ludovic Courtès
2014-08-25profiles: Handle packages without a 'share/info' directory....Reported by Mark H. Weaver. * guix/profiles.scm (info-dir-file): Handle the case where 'scandir' returns #f. Ludovic Courtès
2014-08-23profiles: Produce a top-level Info 'dir' file....Fixes <http://bugs.gnu.org/18305>. Reported by Brandon Invergo <brandon@gnu.org>. * guix/profiles.scm (manifest-inputs, info-dir-file): New procedures. (profile-derivation): Use them. Add #:info-dir? parameter and honor it. * guix/scripts/package.scm (guix-package): Call 'profile-derivation' with #:info-dir? #f when the 'bootstrap? option is set. * tests/profiles.scm ("profile-derivation"): Pass #:info-dir? #f. Ludovic Courtès