aboutsummaryrefslogtreecommitdiff
path: root/guix/profiles.scm
Commit message (Expand)AuthorAge
* guix: Add guard to texlive-configuration profile hook.•••It is possible to generate a profile where this hook will crash, as the texmf.cnf file does not exist to be patched by substitute*. A simple example is the profile just containing texlive-fonts-txfonts. * guix/profiles.scm (texlive-configuration): Check that the texmf.cnf file exists before trying to change it. Christopher Baines2019-01-18
* guix: Add profile hook to build TeX live configuration.•••* guix/profiles.scm (texlive-configuration): New procedure. (%default-profile-hooks): Add it. * guix/status.scm (hook-message): Handle "texlive-configuration" hook type. Ricardo Wurmus2019-01-15
* Use 'mapm' instead of 'sequence' + 'map'.•••Previously we'd use the (sequence M (map P L)) idiom just because 'mapm' was slower (not specialized for the given monad). This is no longer the case since commit dcb95c1fc936d74dfdf84b7e59eff66cb99c5a63. * guix/gexp.scm (lower-inputs): Use (mapm M P L) instead of (sequence M (map P L)). (lower-references, gexp->sexp, imported-files): Likewise. * guix/profiles.scm (profile-derivation): Likewise. * guix/scripts/environment.scm (inputs->requisites): Likewise. * guix/scripts/system.scm (copy-closure): Likewise. Ludovic Courtès2018-12-19
* ui: Report profile hooks separately.•••* guix/ui.scm (profile-hook-derivation?): New procedure. (show-what-to-build): Distinguish among BUILD derivations that match 'profile-hook-derivation?'. Report them separately. * guix/status.scm (hook-message): New procedure. (print-build-event): Display profile hooks with readable hook name. * guix/profiles.scm (info-dir-file, ghc-package-cache-file, ca-certificate-bundle, glib-schemas, gtk-icon-themes, gtk-im-modules, xdg-desktop-database, xdg-mime-database, fonts-dir-file, manual-database): Augment derivation with "type" and "hook" properties. Ricardo Wurmus2018-12-19
* profiles: Fix typo in exports.•••* guix/profiles.scm (&profile-collistion-error): Fix typo in export list. Ludovic Courtès2018-10-26
* profiles: 'user-friendly-profile' now recognizes ~/.config/guix/current.•••* guix/profiles.scm (%known-shorthand-profiles): New variable. (user-friendly-profile): Use it. Ludovic Courtès2018-10-12
* profiles: Generalize 'canonicalize-profile'.•••* guix/profiles.scm (canonicalize-profile): Rewrite to work with any profile that lives under %PROFILE-DIRECTORY. Ludovic Courtès2018-10-11
* profiles: Add 'ensure-profile-directory'.•••* guix/scripts/package.scm (ensure-default-profile): Move /var/guix/profiles/per-user handling to... * guix/profiles.scm (ensure-profile-directory): ... here. New procedure. * po/guix/POTFILES.in: Add 'guix/profiles.scm'. Ludovic Courtès2018-10-11
* profiles: Make Geiser happy.•••* guix/profiles.scm (manual-database)[config.scm]: Use ungexp/quote trick to placate Geiser, which otherwise thinks it's in (guix config). Ludovic Courtès2018-10-09
* profiles: 'packages->manifest' now accepts inferior packages.•••* guix/profiles.scm (packages->manifest)[inferiors-loaded?]: New variable. [inferior->entry]: New procedure. Accept inferior packages when INFERIORS-LOADED? is true. * tests/guix-package.sh: Add test using a manifest with an inferior. * tests/inferior.scm ("packages->manifest"): New test. Ludovic Courtès2018-09-21
* guix package: Record package provenance in manifest entries.•••* guix/profiles.scm (package->manifest-entry): Add #:properties and honor it. * guix/scripts/package.scm (package-provenance) (package->manifest-entry*): New procedures. (transaction-upgrade-entry, options->installable): Use 'package->manifest-entry*' instead of 'package->manifest-entry'. Ludovic Courtès2018-09-07
* guix package: Use relative symlinks to generations.•••Reported by Roel Janssen <roel@gnu.org> at <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00036.html>. * guix/profiles.scm (switch-to-generation): Use (basename generation) as the symlink target. * guix/scripts/package.scm (build-and-use-profile): Likewise, use (basename name) as the symlink target. * tests/guix-package.sh: Adjust --roll-back test accordingly. Add explicitly test with '-p foo/prof'. Ludovic Courtès2018-07-13
* profiles: Introduce 'profile-search-paths' and use it.•••* guix/profiles.scm (profile-search-paths): New procedure. * guix/scripts/environment.scm (evaluate-search-paths): Remove. (create-environment): Replace 'paths' with 'manifest'. Use 'profile-search-paths' instead of 'evaluate-search-paths'. (show-search-paths): Likewise. (launch-environment): Replace 'paths' with 'manifest'. Make 'pure?' a keyword parameter. (launch-environment/fork, launch-environment/container): Likewise. (guix-environment): Remove 'paths' variable. Adjust callers of the above procedures accordingly. Ludovic Courtès2018-07-11
* profiles: Factorize 'manifest-search-paths'.•••* guix/profiles.scm (manifest-search-paths): New procedure. (profile-derivation)[builder]: Use it. * guix/build/profiles.scm (build-etc/profile): Remove $PATH. Ludovic Courtès2018-07-11
* profiles: 'info-dir-file' hook now produces 'dir.LANG' files.•••Previously, entries for 'guix.fr.info' would end up in 'dir', above the 'guix.info' entries; consequently, running 'info guix' would actually open 'guix.fr.info', which was confusing for non-French readers. * guix/profiles.scm (info-dir-file)[glibc-utf8-locales]: New variable. [build](info-file-language): New procedure. (install-info): Use it, to create 'dir.LANG' files. Set GUIX_LOCPATH. Ludovic Courtès2018-07-04
* profiles: Add 'properties' field to manifest entries.•••* guix/profiles.scm (<manifest-entry>)[properties]: New field. (manifest->gexp)[entry->gexp]: Serialize it. (sexp->manifest)[sexp->manifest-entry]: Deserialize it. Ludovic Courtès2018-06-09
* profiles: Add '%current-profile', 'user-friendly-profile', & co.•••* guix/scripts/package.scm (%user-profile-directory) (%profile-directory, %current-profile, canonicalize-profile) (user-friendly-profile): Move to... * guix/profiles.scm: ... here. Ludovic Courtès2018-06-09
* profiles: Use 'with-extensions'.•••* guix/profiles.scm (manual-database)[build]: Use 'with-extensions'. Remove 'add-to-load-path' call. * guix/man-db.scm: Use (gdbm) the normal way; remove 'module-autoload!' call. Ludovic Courtès2018-06-01
* profiles: Add hook to generate "gschemas.compiled".•••* guix/profiles.scm (glib-schemas): New procedure. (%default-profile-hooks): Add it. Danny Milosavljevic2018-05-21
* profiles: Allow lowerable objects other than packages in <manifest-entry>.•••* guix/profiles.scm (manifest-lookup-package)[entry-lookup-package]: Add case where 'manifest-entry-item' returns something that's neither a string nor a package. Ludovic Courtès2018-05-10
* profiles: Optionally use relative file names for symlink targets.•••* guix/build/union.scm (symlink-relative): New procedure. * guix/build/profiles.scm: Re-export it. (build-profile): Add #:symlink and pass it to 'union-build'. * guix/profiles.scm (profile-derivation): Add #:relative-symlinks?. Pass #:symlink to 'build-profile'. * tests/profiles.scm ("profile-derivation relative symlinks, one entry") ("profile-derivation relative symlinks, two entries"): New tests. Ludovic Courtès2018-05-10
* profiles: 'manifest-add' truly deletes duplicate entries.•••Fixes <https://bugs.gnu.org/30569>. Reported by Andreas Enge <andreas@enge.fr>. * guix/profiles.scm (manifest-add): Don't append ENTRIES as is. Instead, cons each element of ENTRIES as we fold over it. Remove unneeded ellispes in 'match' patterns. Ludovic Courtès2018-03-01
* Merge branch 'master' into core-updatesMarius Bakke2017-12-19
|\
| * profiles: Use (guix man-db) to create the manual database.•••Fixes <https://bugs.gnu.org/29654>. Reported by Ruud van Asseldonk <dev+guix@veniogames.com>. This also speeds up database creation compared to "man-db --create" (less than half the time, on a warm cache, for 19k pages.) * guix/man-db.scm: New file. * Makefile.am (MODULES_NOT_COMPILED): Add it. * guix/profiles.scm (manual-database): Rewrite to use (guix man-db). Ludovic Courtès2017-12-17
* | Merge branch 'master' into core-updatesMarius Bakke2017-12-05
|\|
| * profiles: Really disable deprecation warnings for 'profile-derivation'.•••This is a followup to 2815fca1423cf72e6f3d0e774f1058bcbf8dfdbf. * guix/profiles.scm (profile-derivation)[builder]: Remove 'debug-disable' call, which was ineffective. Pass #:env-vars to 'gexp->derivation'. Ludovic Courtès2017-12-03
| * profile: Use _IO* but disable deprecation warning.•••This fixes a regression introduced in 2f60084f77815f454d1521396c2a383390ea2865, whereby the profile derivation would fail to run on Guile 2.0 (as is the case with "guix package --bootstrap"). Reported by Christopher Baines. * guix/profiles.scm (profile-derivation)[builder]: Use _IO* but add 'debug-disable' call. Ludovic Courtès2017-12-03
| * profiles: Avoid _IO* in profile builder.•••* guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated _IO* constants. Ludovic Courtès2017-12-03
| * profiles: Do not import the host's srfi-{19,26}.scm files.•••Previously the "manual-database" derivation would always import the host's srfi-{19,26}.scm files in the build side. In practice this means that different users could get different manual-database.drv depending on the Guile version they're using in the host. For example, the (gnu tests install) tests would fail if the host was running Guile 2.2.3 because the guest is running 2.2.2, and thus has different srfi-{19,26}.scm files. The manual-database.drv would need to be built from source, which would fail because prerequisites were missing. Reported by Mathieu Othacehe <m.othacehe@gmail.com> at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29409#96>. * guix/profiles.scm (manual-database): Do not pass #:modules to 'gexp->derivation'. Wrap 'build' gexp in 'with-imported-modules' form. Ludovic Courtès2017-12-03
* | gnu: glibc: Don't use full version string in locale path.•••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. Marius Bakke2017-12-03
|/
* profiles: Only check file contents if the file exists.•••* guix/profiles.scm (fonts-dir-file): Check that files exist before using "empty-file?". Ricardo Wurmus2017-08-09
* profiles: Remove workaround for an old Guile 'scandir' bug.•••* guix/profiles.scm (generation-numbers)[scandir]: Remove. Ludovic Courtès2017-07-20
* profiles: xdg-desktop-database: Run the hook when GLib is referenced.•••This will pull the latest 'desktop-file-utils' package into the profile closure, as the 'xdg-mime-database' hook already does. * guix/profiles.scm (xdg-desktop-database): Run the hook when 'glib' is referenced. 宋文武2017-07-03
* profiles: Add 'manifest-transaction-removal-candidate?'.•••* guix/profiles.scm (manifest-transaction-removal-candidate?): New procedure. * tests/profiles.scm ("manifest-transaction-removal-candidate?"): New test. Ludovic Courtès2017-06-26
* environment: Disable profile collision checks.•••Reported by Efraim Flashner. This is a followup to a654dc4bcf7c8e205bdefa1a1d5f23444dd22778. * guix/profiles.scm (profile-derivation): Add #:allow-collisions? and honor it. * guix/scripts/environment.scm (inputs->profile-derivation): Pass #:allow-collisions? #f to 'profile-derivation'. * tests/guix-environment.sh: Test "guix environment guix". Ludovic Courtès2017-06-21
* profiles: Move 'manifest-entry-dependencies' user after definition.•••Reported by Efraim Flashner. * guix/profiles.scm (manifest-transitive-entries): Move after <manifest-entry> definition. Ludovic Courtès2017-06-21
* profiles: Catch and report collisions in the profile.•••* guix/profiles.scm (&profile-collision-error): New error condition. (manifest-transitive-entries, manifest-entry-lookup, lower-manifest-entry) (check-for-collisions): New procedures. (profile-derivation): Add call to 'check-for-collisions'. * guix/ui.scm (call-with-error-handling): Handle '&profile-collision-error'. * tests/profiles.scm ("collision", "collision of propagated inputs") ("no collision"): New tests. Ludovic Courtès2017-06-21
* profiles: Manifest entries keep a reference to their parent entry.•••* guix/profiles.scm (<manifest-entry>)[parent]: New field. (package->manifest-entry): Add #:parent parameter. Fill out the 'parent' field of <manifest-entry>; pass #:parent in recursive calls. * guix/profiles.scm (sexp->manifest)[sexp->manifest-entry]: New procedure. Use it for version 3. * tests/profiles.scm ("manifest-entry-parent"): New procedure. ("read-manifest")[entry->sexp]: Add 'manifest-entry-parent' to the result. Ludovic Courtès2017-06-21
* profiles: Represent propagated inputs as manifest entries.•••* guix/profiles.scm (package->manifest-entry): Turn DEPS into a list of manifest entries. (manifest->gexp)[entry->gexp]: Call 'entry->gexp' on DEPS. Bump version to 3. (sexp->manifest)[infer-dependency]: New procedure. Use it for versions 1 and 2. Parse version 3. (manifest-inputs)[entry->gexp]: New procedure. Adjust to 'dependencies' being a list of <manifest-entry>. * tests/profiles.scm ("packages->manifest, propagated inputs") ("read-manifest"): New fields. Ludovic Courtès2017-06-21
* profiles: Add elapsed time to manual-database hook to output message.•••* guix/profiles.scm (manual-database): Add elapsed time to manual-database hook to output message. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer2017-05-16
* profiles: Generate database file for man pages.•••The mandb database file (index.db) is used by the "apropos" (whatis) or "man -k" commands. This change introduces a profile hook to generate such database file. * guix/profiles.scm (manual-database): New procedure. (%default-profile-hooks): Add it. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer2017-04-05
* profiles: Create fonts.dir/scale for all fonts directories.•••* guix/profiles.scm (fonts-dir-file): Create fonts.dir/scale files for all fonts directories. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Huang Ying2017-03-26
* profiles: Packages in a profile can be cross-compiled.•••* guix/profiles.scm (profile-derivation): Add #:target parameter; pass it to 'gexp->derivation'. * tests/profiles.scm ("profile-derivation, cross-compilation"): New test. Ludovic Courtès2017-03-17
* profiles: gtk-im-modules: Fix for gtk3.•••Gtk+3 now have multiple outputs, so the gtk-query-immodules-3.0 should be find in output "bin" instead of "out". * guix/profiles.scm (gtk-im-modules): Pass the path of gtk-query-immodules-x.x as 'query' argument to the 'build' procedure. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Ying Huang2017-02-08
* profiles: Export 'ca-certificate-bundle'.•••* guix/profiles.scm: Export ca-certificate-bundle, such that it can be used in other G-expressions. This is useful where these G-expressions run programs that require a ca-certificate-bundle, e.g. git. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Christopher Baines2017-01-16
* profiles: Remove dependency on 'glibc-utf8-locales' for tests.•••Commit 1af0860e8be81c01ad405c1226d6bc4516e62863 added a mandatory dependency on 'glibc-utf8-locales', which entails long rebuilds for tests. * guix/profiles.scm (profile-derivation): Add #:locales? parameter. Add 'set-utf8-locale' variable. Use it when LOCALES? is true. (link-to-empty-profile): Pass #:locales? #f. * guix/scripts/environment.scm (inputs->profile-derivation): Pass #:locales?. * guix/scripts/package.scm (build-and-use-profile): Likewise. * tests/packages.scm ("--search-paths with pattern"): Pass #:locales? #f. * tests/profiles.scm ("profile-derivation") ("profile-derivation, inputs", "profile-manifest, search-paths") ("etc/profile", "etc/profile when etc/ already exists"): ("etc/profile when etc/ is a symlink"): Likewise. Ludovic Courtès2016-12-17
* profiles: Build profiles in a UTF-8 locale.•••Fixes <http://bugs.gnu.org/25213>. Reported by Christopher Baines <mail@cbaines.net>. * guix/profiles.scm (profile-derivation)[glibc-utf8-locales]: New variable. [builder]: Use it to set 'LOCPATH'. Ludovic Courtès2016-12-16
* store: Add 'references*'.•••* guix/store.scm (references*): New procedure. * guix/profiles.scm (manifest-lookup-package)[references*]: Remove. * guix/scripts/system.scm (references*): Remove. * tests/gexp.scm ("gexp->file", "gexp->file + file-append") ("gexp->derivation", "gexp->derivation, cross-compilation") ("gexp->derivation, ungexp + ungexp-native") ("scheme-file", "text-file*", "mixed-text-file"): Remove 'references*' instead of (store-lift references). Ludovic Courtès2016-11-19
* Merge branch 'master' into core-updatesMark H Weaver2016-11-07
|\
| * profiles: Extract a procedure for getting relative generation numbers.•••* guix/profiles.scm (relative-generation-spec->number): New procedure. * guix/scripts/package.scm (switch-generation-action): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Chris Marusich2016-11-06