aboutsummaryrefslogtreecommitdiff
path: root/guix/profiles.scm
Commit message (Collapse)AuthorAge
* profiles: Really disable deprecation warnings for 'profile-derivation'.Ludovic Courtès2017-12-03
| | | | | | | | 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'.
* profile: Use _IO* but disable deprecation warning.Ludovic Courtès2017-12-03
| | | | | | | | | | | | 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.
* profiles: Avoid _IO* in profile builder.Ludovic Courtès2017-12-03
| | | | | * guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated _IO* constants.
* profiles: Do not import the host's srfi-{19,26}.scm files.Ludovic Courtès2017-12-03
| | | | | | | | | | | | | | | | | | | 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.
* profiles: Only check file contents if the file exists.Ricardo Wurmus2017-08-09
| | | | | * guix/profiles.scm (fonts-dir-file): Check that files exist before using "empty-file?".
* profiles: Remove workaround for an old Guile 'scandir' bug.Ludovic Courtès2017-07-20
| | | | * guix/profiles.scm (generation-numbers)[scandir]: Remove.
* profiles: xdg-desktop-database: Run the hook when GLib is referenced.宋文武2017-07-03
| | | | | | | | 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.
* profiles: Add 'manifest-transaction-removal-candidate?'.Ludovic Courtès2017-06-26
| | | | | | | * guix/profiles.scm (manifest-transaction-removal-candidate?): New procedure. * tests/profiles.scm ("manifest-transaction-removal-candidate?"): New test.
* environment: Disable profile collision checks.Ludovic Courtès2017-06-21
| | | | | | | | | | | 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".
* profiles: Move 'manifest-entry-dependencies' user after definition.Ludovic Courtès2017-06-21
| | | | | | | Reported by Efraim Flashner. * guix/profiles.scm (manifest-transitive-entries): Move after <manifest-entry> definition.
* profiles: Catch and report collisions in the profile.Ludovic Courtès2017-06-21
| | | | | | | | | | * 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.
* profiles: Manifest entries keep a reference to their parent entry.Ludovic Courtès2017-06-21
| | | | | | | | | | | * 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.
* profiles: Represent propagated inputs as manifest entries.Ludovic Courtès2017-06-21
| | | | | | | | | | | | | * 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.
* profiles: Add elapsed time to manual-database hook to output message.Maxim Cournoyer2017-05-16
| | | | | | | * guix/profiles.scm (manual-database): Add elapsed time to manual-database hook to output message. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* profiles: Generate database file for man pages.Maxim Cournoyer2017-04-05
| | | | | | | | | | | 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>
* profiles: Create fonts.dir/scale for all fonts directories.Huang Ying2017-03-26
| | | | | | | * guix/profiles.scm (fonts-dir-file): Create fonts.dir/scale files for all fonts directories. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* profiles: Packages in a profile can be cross-compiled.Ludovic Courtès2017-03-17
| | | | | | * guix/profiles.scm (profile-derivation): Add #:target parameter; pass it to 'gexp->derivation'. * tests/profiles.scm ("profile-derivation, cross-compilation"): New test.
* profiles: gtk-im-modules: Fix for gtk3.Ying Huang2017-02-08
| | | | | | | | | | 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>
* profiles: Export 'ca-certificate-bundle'.Christopher Baines2017-01-16
| | | | | | | | * 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>
* profiles: Remove dependency on 'glibc-utf8-locales' for tests.Ludovic Courtès2016-12-17
| | | | | | | | | | | | | | | | | | 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.
* profiles: Build profiles in a UTF-8 locale.Ludovic Courtès2016-12-16
| | | | | | | | | 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'.
* store: Add 'references*'.Ludovic Courtès2016-11-19
| | | | | | | | | | | * 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).
* Merge branch 'master' into core-updatesMark H Weaver2016-11-07
|\
| * profiles: Extract a procedure for getting relative generation numbers.Chris Marusich2016-11-06
| | | | | | | | | | | | | | * 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>
* | Merge branch 'master' into core-updatesLeo Famulari2016-10-30
|\|
| * profiles: manifest-lookup-package: Cosmetic changes.Ricardo Wurmus2016-10-30
| | | | | | | | | | * guix/profiles.scm (manifest-lookup-package): Rename variables; use "string=?" instead of "equal?".
* | Merge branch 'master' into core-updatesLudovic Courtès2016-09-30
|\|
| * profiles: Build GTK+ input module cache.Ricardo Wurmus2016-09-26
| | | | | | | | | | * guix/profiles.scm (gtk-im-modules): New procedure. (%default-profile-hooks): Add it.
| * profiles: manifest-lookup-package: Optionally match version prefix.Ricardo Wurmus2016-09-26
| | | | | | | | | | * guix/profiles.scm (manifest-lookup-package): Optionally filter store item matches by version prefix.
| * profiles: Export <manifest-pattern> accessors.Ludovic Courtès2016-09-06
| | | | | | | | | | * guix/profiles.scm (manifest-pattern-name, manifest-pattern-version) (manifest-pattern-output): Export.
| * profiles: Add manifest-transaction helper procedures.Ludovic Courtès2016-09-06
| | | | | | | | | | | | | | * guix/profiles.scm (manifest-transaction-install-entry) (manifest-transaction-remove-pattern) (manifest-transaction-null?): New procedures. * tests/profiles.scm ("manifest-transaction-null?"): New test.
* | profiles: gtk-icon-themes: Use 'gtk-update-icon-cache' from 'gtk+:bin'.宋文武2016-08-23
|/ | | | | | | This is a followup to commit 7b808d7. * guix/profiles.scm (gtk-icon-themes): Use 'gtk-update-icon-cache' from the "bin" output of gtk+ package.
* profiles: xdg-mime-database: Run the hook when have GLib based applications.宋文武2016-08-12
| | | | | * guix/profiles.scm (xdg-mime-database): Run the hook when GLIB is referenced by the manifest. Add SHARED-MIME-INFO to the mime packages of `update-mime-database'.
* profiles: Output in 'package->manifest-entry' defaults to "out".Ludovic Courtès2016-07-26
| | | | | | | | | | | Fixes <http://bugs.gnu.org/24029>. Reported by Dylan Jeffers <sapientech@openmailbox.org>. * guix/profiles.scm (package->manifest-entry): Change #:output to default to "out". (packages->manifest): Add 'package?' in second 'match' clause. * tests/profiles.scm ("package->manifest-entry defaults to \"out\""): New test.
* profiles: Add fonts-dir-file hook.Alex Kost2016-07-25
| | | | | * guix/profiles.scm (fonts-dir-file): New procedure. (%default-profile-hooks): Add it.
* profiles: Use 'with-imported-modules'.Ludovic Courtès2016-07-12
| | | | | | | | | | | * guix/profiles.scm (info-dir-file): Use 'with-imported-modules' instead of the #:module argument to 'gexp->derivation'. (ghc-package-cache-file): Likewise. (ca-certificate-bundle): Likewise. (gtk-icon-themes): Likewise. (xdg-desktop-database): Likewise. (xdg-mime-database): Likewise. (profile-derivation): Likewise.
* profiles: Make sure hook derivations fail upon error.Ludovic Courtès2016-06-12
| | | | | | | | | | | Reported at <https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00368.html>. * guix/profiles.scm (info-dir-file)[build]: Add explicit call to 'exit'. * guix/profiles.scm (ghc-package-cache-file)[build]: Likewise. * guix/profiles.scm (xdg-desktop-database)[build]: Likewise. * guix/profiles.scm (xdg-mime-database)[build]: Likewise.
* profiles: manifest-lookup-package: Correctly handle package entries.宋文武2016-06-11
| | | | | * guix/profiles.scm (manifest-lookup-package): Consider the package entry in addition to its 'package-transitive-inputs'.
* profiles: xdg-mime-database: Union the "share/mime/packages" directory.宋文武2016-06-11
| | | | | * guix/profiles.scm (xdg-mime-database): Call 'union-build' for the "share/mime/packages" directory of inputs.
* profiles: 'profile-derivation' now honors #:system.Ludovic Courtès2016-06-05
| | | | | | | | | Fixes <http://bugs.gnu.org/23682>. Reported by Ander GM <anthk@openmailbox.org>. * guix/profiles.scm (profile-derivation): Pass #:system to 'gexp->derivation'. * tests/guix-environment.sh: Add 'guix environment -s' test.
* profiles: Factor out 'manifest-lookup-package'.宋文武2016-05-02
| | | | | * guix/profiles.scm (manifest-lookup-package): New procedure. (gtk-icon-themes, xdg-desktop-database, xdg-mime-database): Use it.
* profiles: Add xdg-mime-database hook.宋文武2016-05-02
| | | | | * guix/profiles.scm (xdg-mime-database): New function. (%default-profile-hooks): Add it.
* profiles: Add xdg-desktop-database hook.宋文武2016-05-02
| | | | | * guix/profiles.scm (xdg-desktop-database): New function. (%default-profile-hooks): Add it.
* profiles: Use the right 'package-name->name+version'.Ludovic Courtès2016-04-01
| | | | | * guix/profiles.scm: Use 'package-name->name+version' from (guix build utils). Fixes 'find-among-store-items' in 'gtk-icon-themes'.
* profiles: Add #:system argument to profile-derivation.Ludovic Courtès2016-02-12
| | | | | | | Suggested by David Thompson <davet@gnu.org>. * guix/profiles.scm (profile-derivation): Add #:system parameter and honor it.
* profiles: Honor search paths of propagated inputs.Ludovic Courtès2015-12-20
| | | | | | | | | | 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.
* profiles: Silence Info installation.Ludovic Courtès2015-12-14
| | | | | * guix/profiles.scm (info-dir-file)[build]: Pass --silent to 'install-info'.
* profiles: Silence GTK+ icon cache creation.Ludovic Courtès2015-12-04
| | | | | | | Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/profiles.scm (gtk-icon-themes)[build]: Pass --quiet to 'gtk-update-icon-cache'.
* profiles: Silence GTK+ icon theme union.Ludovic Courtès2015-12-04
| | | | | | | Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/profiles.scm (gtk-icon-themes)[build]: Pass 'union-build' a #:log-port argument.
* profiles: Add generation manipulation procedures.Ludovic Courtès2015-10-27
| | | | | | | | | | | | | | | * 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.