diff options
author | Marius Bakke <mbakke@fastmail.com> | 2020-04-30 23:47:49 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2020-04-30 23:47:49 +0200 |
commit | 8bf8cd9b85c85be387565f6c8ca9f6c72196fb8e (patch) | |
tree | 6fa0f8ba32b83a996625bc188903ccebfb7e7c2c /guix/profiles.scm | |
parent | 5d9e2187929ed7e8d46ec3cb3174fd78c1846360 (diff) | |
parent | 229f4fa9522fb56b014ee9c0d8111e8fb6da764d (diff) | |
download | patches-8bf8cd9b85c85be387565f6c8ca9f6c72196fb8e.tar patches-8bf8cd9b85c85be387565f6c8ca9f6c72196fb8e.tar.gz |
Merge branch 'master' into core-updates
Conflicts:
gnu/local.mk
gnu/packages/backup.scm
gnu/packages/emacs-xyz.scm
gnu/packages/guile.scm
gnu/packages/lisp.scm
gnu/packages/openldap.scm
gnu/packages/package-management.scm
gnu/packages/web.scm
gnu/packages/xorg.scm
Diffstat (limited to 'guix/profiles.scm')
-rw-r--r-- | guix/profiles.scm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm index fbadf41284..2fecf3eb7d 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -125,6 +125,15 @@ profile-derivation profile-search-paths + profile + profile? + profile-name + profile-content + profile-hooks + profile-locales? + profile-allow-collisions? + profile-relative-symlinks? + generation-number generation-profile generation-numbers @@ -1660,6 +1669,33 @@ are cross-built for TARGET." . ,(length (manifest-entries manifest)))))))) +;; Declarative profile. +(define-record-type* <profile> profile make-profile + profile? + (name profile-name (default "profile")) ;string + (content profile-content) ;<manifest> + (hooks profile-hooks ;list of procedures + (default %default-profile-hooks)) + (locales? profile-locales? ;Boolean + (default #t)) + (allow-collisions? profile-allow-collisions? ;Boolean + (default #f)) + (relative-symlinks? profile-relative-symlinks? ;Boolean + (default #f))) + +(define-gexp-compiler (profile-compiler (profile <profile>) system target) + "Compile PROFILE to a derivation." + (match profile + (($ <profile> name manifest hooks + locales? allow-collisions? relative-symlinks?) + (profile-derivation manifest + #:name name + #:hooks hooks + #:locales? locales? + #:allow-collisions? allow-collisions? + #:relative-symlinks? relative-symlinks? + #:system system #:target target)))) + (define* (profile-search-paths profile #:optional (manifest (profile-manifest profile)) #:key (getenv (const #f))) |