summary refs log tree commit diff
path: root/gnu/system.scm
AgeCommit message (Collapse)Author
2016-10-30Merge branch 'master' into core-updatesLeo Famulari
2016-10-30system: Record store file system info in each generation.Chris Marusich
* gnu/system.scm (<boot-parameters>)[store-device, store-mount-point]: New fields. (read-boot-parameters): Initialize them. (operating-system-grub.cfg): Likewise. Remove STORE-FS argument from call to 'grub-configuration-file'. (operating-system-parameters-file): Add 'store' element in 'boot-parameters'. * gnu/system/grub.scm (strip-mount-point): Replace 'store-fs' parameter by 'mount-point'; adjust accordingly. Adjust callers. (<menu-entry>)[device, device-mount-point]: New fields. (eye-candy): Replace 'root-fs' parameter by 'store-device'; add 'store-mount-point'. Use keyword arguments for 'system' and 'port'. (grub-root-search): Remove 'root-fs' by 'device' and adjust accordingly. (grub-configuration-file): Remove 'store-fs' parameter. Adjust accordingly. * guix/scripts/system.scm (previous-grub-entries): Initialize 'device' and 'device-mount-point' fields from PARAMS. * doc/guix.texi (GRUB Configuration): Document 'device' and 'device-mount-point'. Explain that 'linux' can be prefixed by a GRUB device name. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-09-30Merge branch 'master' into core-updatesLudovic Courtès
2016-09-24system: grub.cfg uses correct file names when store is not in root partition.Carlos Sánchez de La Lama
Fixes <http://bugs.gnu.org/24346>. Reported by csanchezdll@gmail.com (Carlos Sánchez de La Lama). * guix/scripts/system.scm (previous-grub-entries): Get the initrd file name from PARAMS. * gnu/system.scm (operating-system-grub.cfg): Use 'operating-system-initrd-file' to retrieve the initrd file name. * gnu/system/grub.scm (strip-mount-point): New procedure. (grub-configuration-file)[entry->gexp]: Call 'strip-mount-point' for LINUX and INITRD. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-09-24system: 'read-boot-parameters' reads the 'initrd' parameter.Ludovic Courtès
* gnu/system.scm (<boot-parameters>)[initrd]: New field. (read-boot-parameters): Read the 'initrd' element and fill in the 'initrd' field of the result.
2016-09-10system: Use 'file-append' to denote file names.Ludovic Courtès
* gnu/services/avahi.scm, gnu/services/base.scm, gnu/services/databases.scm, gnu/services/dbus.scm, gnu/services/desktop.scm, gnu/services/dict.scm, gnu/services/mail.scm, gnu/services/networking.scm, gnu/services/sddm.scm, gnu/services/spice.scm, gnu/services/ssh.scm, gnu/services/web.scm, gnu/services/xorg.scm, gnu/system.scm: Replace the #~(string-append #$pkg "/bin/foo") idiom with (file-append pkg "/bin/foo").
2016-09-09system: Build the initrd file name with 'file-append'.Ludovic Courtès
* gnu/system.scm (operating-system-initrd-file) (operating-system-grub.cfg): Use 'file-append' to construct the initrd file name.
2016-09-09system: grub: Allow arbitrary kernel file names in 'menu-entry'.Ludovic Courtès
Fixes <http://bugs.gnu.org/20067>. Reported by Tomáš Čech <sleep_walker@suse.cz>. * gnu/system.scm (system-linux-image-file-name) (operating-system-kernel-file): New procedures. (operating-system-grub.cfg): Use 'operating-system-kernel-file' for the 'kernel' field of 'menu-entry'. (operating-system-parameters-file): Likewise for the 'kernel' entry. (read-boot-parameters): Adjust 'kernel' field so that it contains the absolute file name of the image. * gnu/system/grub.scm (grub-configuration-file)[linux-image-name]: Remove. [entry->gexp]: Assume LINUX is the absolute file name of the kernel image. * doc/guix.texi (GRUB Configuration): Add an example, and adjust 'kernel' field documentation accordingly.
2016-08-29Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner
2016-08-22services: Make a single extensible 'file-systems' service.Ludovic Courtès
Previously we would create one 'file-system-service-type' instead per file system. Now, we create only one instance for all the file systems. * gnu/services/base.scm (fstab-service-type)[compose]: Change to CONCATENATE. (file-system-shepherd-service): Change to return either one <shepherd-service> or #f. (file-system-service-type): Pluralize 'name'. Adjust SHEPHERD-ROOT-SERVICE-TYPE extension to above changes. Add 'compose' and 'extend'. (file-system-service): Remove. * gnu/system.scm (other-file-system-services): Rename to... (non-boot-file-system-service): ... this. Change to return a single FILE-SYSTEM-SERVICE-TYPE instance. (essential-services): Adjust accordingly.
2016-08-10gnu: glibc/linux: Adjust variable name to upstream change.Leo Famulari
* gnu/packages/base.scm (glibc/linux)[arguments]: Change 'libc_cv_localedir' to 'libc_cv_complocaledir' in #:configure-flags. * gnu/system.scm: (operating-system-environment-variables): Remove 'GUIX_LOCPATH'.
2016-08-02system: Define 'GUIX_LOCPATH' to work around 'glibc' package defect.Ludovic Courtès
Our 'glibc' package currently ignores /run/current-system/locale, although the intent is to look for locales in that directory. * gnu/packages/base.scm (glibc/linux): Add comment about /run/current-system/locale being ignored. * gnu/system.scm (operating-system-environment-variables): Add 'GUIX_LOCPATH'. * gnu/tests/base.scm (run-basic-test): Add "locale" test.
2016-07-27system: Source /etc/environment before $HOME/.guix-profile/etc/profile.Carlos Sánchez de La Lama
* gnu/system.scm (operating-system-etc-service) <profile>: Move sourcing of /etc/environment before that of $HOME/.guix-profile/etc/profile. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-07-18system: Honor the 'dependencies' field of file systems.Ludovic Courtès
This allows mapped devices listed in 'dependencies' to be properly taken into account. Reported by Andreas Enge <andreas@enge.fr>. * gnu/system.scm (mapped-device-user): Check whether DEVICE is a member of the 'dependencies' of FS. * tests/system.scm (%luks-device, %os-with-mapped-device): New variables. ("operating-system-user-mapped-devices") ("operating-system-boot-mapped-devices") ("operating-system-boot-mapped-devices, implicit dependency"): New tests.
2016-07-12gexp: 'gexp->file' emits code to set '%load-path'.Ludovic Courtès
* guix/gexp.scm (gexp->file): Add #:set-load-path? parameter and honor it. * gnu/system.scm (operating-system-parameters-file): Pass #:set-load-path? #f. * doc/guix.texi (G-Expressions): Adjust accordingly.
2016-05-04system: Add procedures to access user accounts and service names.Ludovic Courtès
* gnu/system.scm (operating-system-user-accounts) (operating-system-shepherd-service-names): New procedures.
2016-04-18mapped-devices: 'mapped-device-service' takes a <mapped-device>.Ludovic Courtès
* gnu/system/mapped-devices.scm (device-mapping-service): Take a <mapped-device> instead of 3 parameters. (device-mapping-service-type): Adjust accordingly. * gnu/system.scm (device-mapping-services): Adjust accordingly.
2016-04-18system: Move 'luks-device-mapping' to (gnu system mapped-devices).Ludovic Courtès
* gnu/system.scm (open-luks-device, close-luks-device) (luks-device-mapping): Move to... * gnu/system/mapped-devices.scm: ... here. New file.
2016-04-18system: Add (gnu system mapped-devices).Ludovic Courtès
* gnu/system/file-systems.scm (<mapped-device>, <mapped-device-type>): Move to... * gnu/system/mapped-devices.scm: ... here. New file. * gnu/system.scm, gnu/services/base.scm, gnu/system/linux-initrd.scm: Use it. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu.scm (%public-modules): Add it.
2016-04-04system: Define 'GTK_DATA_PREFIX' globally.Ludovic Courtès
Fixes <http://bugs.gnu.org/23200>. Reported by Chris Marusich <cmmarusich@gmail.com>. * gnu/system.scm (operating-system-environment-variables): Add 'GTK_DATA_PREFIX'.
2016-03-24system: Use 'info-reader' instead of Texinfo to avoid dragging Perl.Ludovic Courtès
* gnu/system.scm (%base-packages): Use INFO-READER instead of TEXINFO.
2016-03-24system: Do not create "site-start.el".Alex Kost
After commits 004ea62 and 092dd65, Emacs can find packages in a system profile, so it autoloads guix code without additional hacks, which can be removed now. * gnu/system.scm (emacs-site-file, emacs-site-directory): Remove. (operating-system-etc-service): Adjust accordingly. (operating-system-environment-variables): Remove EMACSLOADPATH.
2016-03-09gnu: eudev: Add dependency on blkid.Ludovic Courtès
* gnu/packages/linux.scm (eudev)[inputs]: Add UTIL-LINUX. (eudev-with-blkid): Remove. * gnu/services/base.scm (udev-service): Use EUDEV instead of EUDEV-WITH-BLKID. * gnu/system.scm (%base-packages): Likewise.
2016-03-08system: Explicitly set umask to 022 in /etc/profile.Ludovic Courtès
Fixes <http://bugs.gnu.org/22650>. Reported by myglc2 <myglc2@gmail.com>. * gnu/system.scm (operating-system-etc-service)[profile]: Invoke 'umask'.
2016-03-03system: GRUB menu entry says "beta" instead of "alpha"Petter
* gnu/system.scm (kernel->grub-label): Change "alpha" to "beta'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-03-03system: Add rfkill to '%base-packages'.Ludovic Courtès
* gnu/system.scm (%base-packages): Add RFKILL.
2016-02-18system: Add iproute to '%base-packages'.Alex Kost
* gnu/system.scm (%base-packages): Add iproute.
2016-02-10system: Selected locale is automatically built.Ludovic Courtès
Fixes <http://bugs.gnu.org/22572>. Reported by Mark H Weaver <mhw@netris.org>. * gnu/system/locale.scm (%not-dot): New variable. (denormalize-codeset, locale-name->definition): New procedures. * gnu/system.scm (locale-name->definition*): New procedure. (operating-system-locale-directory): Instead of raising an error, add the missing locale. * doc/guix.texi (Locales): Adjust accordingly.
2016-02-08system: Add Texinfo to '%base-packages'.Ludovic Courtès
Fixes <http://bugs.gnu.org/22598>. Reported by myglc2 <myglc2@gmail.com>. * gnu/system.scm (%base-packages): Add TEXINFO.
2016-02-07system: Fix EMACSLOADPATH.Alex Kost
After commit 13fe4891fa247d306e203ee14c6886513bd86b52, Emacs package includes "site-start.el", and it has a priority over "/etc/emacs/site-start.el" on GuixSD because "/etc/emacs" is added to the end of 'load-path'. * gnu/system.scm (operating-system-environment-variables): Change EMACSLOADPATH to prepend "/etc/emacs" to 'load-path' instead of appending.
2016-02-03system: /etc/profile reads /etc/environment for the sake of lshd.Ludovic Courtès
Fixes <http://bugs.gnu.org/22175>. * gnu/system.scm (operating-system-etc-service)[profile]: Add hack to define variables from /etc/environment.
2016-02-02gnu: eudev: Add variant that depends on libblkid.Ludovic Courtès
This fixes a bug whereby /dev/disk/by-{label,id} would be missing on GuixSD (/dev/disk/by-id would still contain device-mapped partitions though.) Reported by Mark H Weaver <mhw@netris.org>. * gnu/packages/linux.scm (eudev-with-blkid): New variable. * gnu/services/base.scm (udev-service): #:udev defaults to EUDEV-WITH-BLKID. * gnu/system.scm (%base-packages): Replace EUDEV with EUDEV-WITH-BLKID.
2016-02-02gnu: aspell: Wrap binary to find dictionaries.Federico Beffa
* gnu/packages/aspell.scm (aspell): Add 'wrap-aspell' phase. * gnu/system.scm (operating-system-etc-service): Remove 'ASPELL_CONF' definition. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-01-29services: Rename 'dmd' services to 'shepherd'.Alex Kost
* gnu/services/shepherd.scm (dmd-root-service-type, %dmd-root-service) (dmd-service-type, <dmd-service>, dmd-service, dmd-service?) (make-dmd-service, dmd-service-documentation, dmd-service-provision) (dmd-service-requirement, dmd-service-respawn, dmd-service-start) (dmd-service-stop, dmd-service-auto-start?, dmd-service-modules) (dmd-service-imported-modules, dmd-service-file-name, dmd-service-file) (dmd-service-back-edges): Rename to... (shepherd-root-service-type, %shepherd-root-service, shepherd-service-type) (<shepherd-service>, shepherd-service, shepherd-service?) (make-shepherd-service, shepherd-service-documentation) (shepherd-service-provision, shepherd-service-requirement) (shepherd-service-respawn, shepherd-service-start) (shepherd-service-stop, shepherd-service-auto-start?) (shepherd-service-modules, shepherd-service-imported-modules) (shepherd-service-file-name, shepherd-service-file) (shepherd-service-back-edges): ...this * gnu/services.scm: Adjust comments. * gnu/services/avahi.scm (avahi-dmd-service): Rename to... (avahi-shepherd-service): ... this. * gnu/services/base.scm (%root-file-system-dmd-service) (file-system->dmd-service-name, mapped-device->dmd-service-name) (dependency->dmd-service-name, file-system-dmd-service) (mingetty-dmd-service, nscd-dmd-service, guix-dmd-service) (guix-publish-dmd-service, udev-dmd-service, gpm-dmd-service): Rename to... (%root-file-system-shepherd-service) (file-system->shepherd-service-name, mapped-device->shepherd-service-name) (dependency->shepherd-service-name, file-system-shepherd-service) (mingetty-shepherd-service, nscd-shepherd-service, guix-shepherd-service) (guix-publish-shepherd-service, udev-shepherd-service) (gpm-shepherd-service): ... this. * gnu/services/databases.scm (postgresql-dmd-service): Rename to... (postgresql-shepherd-service): ... this. * gnu/services/desktop.scm (upower-dmd-service, elogind-dmd-service): Rename to... (upower-shepherd-service, elogind-shepherd-service): ... this. * gnu/services/dbus.scm (dbus-dmd-service): Rename to... (dbus-shepherd-service): ... this. * gnu/services/lirc.scm (lirc-dmd-service): Rename to... (lirc-shepherd-service): ... this. * gnu/services/mail.scm (dovecot-dmd-service): Rename to... (dovecot-shepherd-service): ... this. * gnu/services/networking.scm (ntp-dmd-service, tor-dmd-service) (bitlbee-dmd-service, wicd-dmd-service, network-manager-dmd-service): Rename to... (dbus-shepherd-service): ... this. * gnu/services/ssh.scm (lsh-dmd-service): Rename to... (lsh-shepherd-service): ... this. * gnu/services/web.scm (nginx-dmd-service): Rename to... (nginx-shepherd-service): ... this. * gnu/services/xorg.scm (slim-dmd-service): Rename to... (slim-shepherd-service): ... this. * gnu/system.scm (essential-services): Use '%shepherd-root-service'. * gnu/system/install.scm (cow-store-service-type): Adjust accordingly. * guix/scripts/system.scm (dmd-service-node-label, dmd-service-node-type) (export-dmd-graph): Likewise. * tests/guix-system.sh: Likewise. * tests/services.scm ("dmd-service-back-edges"): Rename to... ("shepherd-service-back-edges"): Adjust accordingly. * doc/guix.texi: Likewise. * doc/images/service-graph.dot: Use 'shepherd' service name.
2016-01-29Rename (gnu services dmd) to (gnu services shepherd).Alex Kost
* gnu/services/dmd.scm: Rename to... * gnu/services/shepherd.scm: ... this. * gnu/system.scm: Use it. * gnu/system/install.scm: Likewise. * gnu/services/xorg.scm: Likewise. * gnu/services/web.scm: Likewise. * gnu/services/ssh.scm: Likewise. * gnu/services/networking.scm: Likewise. * gnu/services/mail.scm: Likewise. * gnu/services/lirc.scm: Likewise. * gnu/services/desktop.scm: Likewise. * gnu/services/dbus.scm: Likewise. * gnu/services/databases.scm: Likewise. * gnu/services/base.scm: Likewise. * gnu/services/avahi.scm: Likewise. * guix/scripts/system.scm: Likewise. * tests/services.scm: Likewise. * tests/guix-system.sh: Likewise. * doc/guix.texi (Shepherd Services): Adjust accordingly. * gnu-system.am (GNU_SYSTEM_MODULES): Likewise. * po/guix/POTFILES.in: Likewise.
2016-01-27services: guix: Provide Guix via 'profile-service-type'.Ludovic Courtès
* gnu/services/base.scm (guix-service-type): Extend PROFILE-SERVICE-TYPE. * gnu/system.scm (%base-packages): Remove GUIX.
2016-01-27services: dmd: Provide dmd via 'profile-service-type'.Ludovic Courtès
* gnu/services/dmd.scm (dmd-root-service-type): Extend PROFILE-SERVICE-TYPE. * gnu/system.scm (%base-packages): Remove dmd.
2016-01-22system: grub: Search root device by label or UUID if possible.Ludovic Courtès
Fixes <http://bugs.gnu.org/22281>. Reported by Christopher Allan Webber <cwebber@dustycloud.org>. * gnu/system/grub.scm (eye-candy): Add 'root-fs' parameter. Replace 'search --file' command in the output with whatever 'grub-root-search' returns. (grub-root-search): New procedure. (grub-configuration-file): Add 'store-fs' parameter. Use 'grub-root-search' instead of hard-coded 'search --file' commands. * gnu/system.scm (store-file-system, operating-system-store-file-system): New procedures. (operating-system-grub.cfg): Use it, and adjust call to 'grub-configuration-file'. * tests/system.scm: New file. * Makefile.am (SCM_TESTS): Add it.
2016-01-16Move <boot-parameters> to (gnu system).Alex Kost
* guix/scripts/system.scm (previous-grub-entries) (display-system-generation): Use accessors instead of matching <boot-parameters>. (boot-parameters, boot-parameters?, boot-parameters-label) (boot-parameters-root-device, boot-parameters-kernel) (boot-parameters-kernel-arguments, read-boot-parameters): Move to... * gnu/system.scm: ... here. Export them.
2016-01-05services: Move /tmp cleanup to a separate service.Ludovic Courtès
* gnu/services.scm (compute-boot-script): Remove /tmp and /var/run deletion code from here. (cleanup-gexp): New procedure with /tmp and /var/run deletion code formerly in 'compute-boot-script'. (cleanup-service-type): New variable. * gnu/system.scm (essential-services): Add an instance of CLEANUP-SERVICE-TYPE.
2016-01-01system: Allow the root file system to be named by UUID.Ludovic Courtès
* gnu/build/file-systems.scm (canonicalize-device-spec)[canonical-title]: Use 'string->uuid' to check whether SPEC is a UUID. When SPEC is a string and CANONICAL-TITLE is 'uuid, call 'string->uuid'. * gnu/system.scm (operating-system-grub.cfg): Add 'root-device' variable and use it for the "--root=" argument.
2016-01-01system: Allow the root file system to have a UUID.Ludovic Courtès
This is a followup to ab64483. * gnu/system.scm (mapped-device-user): Check whether the title of FS is 'device before calling 'string=?'. * gnu/system/vm.scm (virtualized-operating-system)[user-file-systems]: Likewise.
2015-12-22file-systems: The 'device' field can be a UUID (bytevector).Ludovic Courtès
Previously a wrong-type-arg error would be raised when a file system with a UUID (bytevector) field was encountered. * gnu/system.scm (other-file-system-services)[device-mappings]: Check whether FS's device is a string.
2015-12-22services: Add 'fstab-service-type'.Ludovic Courtès
* gnu/services/base.scm (file-system->fstab-entry) (file-systems->fstab): New procedures. (fstab-service-type): New variable. * gnu/services/base.scm (file-system-dmd-service): New procedure, taken from... (file-system-service-type): ... here. * gnu/system.scm (essential-services): Add FSTAB-SERVICE-TYPE instance.
2015-12-05system: Add /etc/environment.宋文武
* gnu/system.scm: (operating-system-environment-variables): New procedure. Adapted and moved environment variables from /etc/profile. (operating-system-etc-service): Adjust accordingly. (essential-services): Add an instance of SESSION-ENVIRONMENT-SERVICE-TYPE.
2015-11-11system: Populate /etc/shells from ACCOUNT-SERVICE-TYPE.Ludovic Courtès
* gnu/system.scm (user-shells): Remove. (operating-system-etc-service): Remove "shells" entry. (shells-file): Move to... * gnu/system/shadow.scm (shells-file): ... here. New procedure. (etc-skel): Rename to... (etc-files): ... this. Add "shells" entry. (account-service-type): Adjust accordingly.
2015-11-03system: Rename (gnu system linux) to (gnu system pam).Ludovic Courtès
* gnu/system/linux.scm: Rename to... * gnu/system/pam.scm: ... this. * gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly. * gnu.scm, gnu/services/base.scm, gnu/services/desktop.scm, gnu/services/networking.scm, gnu/services/ssh.scm, gnu/services/xorg.scm, gnu/system.scm, gnu/system/vm.scm: Likewise.
2015-11-02services: Add 'profile-service-type'.Ludovic Courtès
* gnu/services.scm (packages->profile-entry): New procedure. (profile-service-type): New variable. * gnu/system.scm (operating-system-directory-base-entries): Remove the "profile" entry. (essential-services): Add a PROFILE-SERVICE-TYPE instance. (operating-system-profile): Rewrite in terms of 'fold-services'. * doc/guix.texi (Service Reference): Add 'profile-service-type'. * doc/images/service-graph.dot: Likewise.
2015-11-02services: Add 'system-service-type'.Ludovic Courtès
* gnu/services.scm (system-derivation): New procedure. (system-service-type): New variable. (boot-script-entry): New procedure. (boot-service-type): Extend SYSTEM-SERVICE-TYPE. (etc-entry): New procedure. (etc-service-type): Extend SYSTEM-SERVICE-TYPE. (fold-services): Change default #:target-type to SYSTEM-SERVICE-TYPE. * gnu/system.scm (operating-system-directory-base-entries): New procedure. (essential-services): Use it. Add an instance of SYSTEM-SERVICE-TYPE. (operating-system-boot-script): Pass #:target-type to 'fold-services'. (operating-system-derivation): Rewrite in terms of 'fold-services'. * gnu/system/linux-container.scm (system-container): Remove. (container-script): Use 'operating-system-derivation'. * guix/scripts/system.scm (export-extension-graph): Replace BOOT-SERVICE-TYPE by SYSTEM-SERVICE-TYPE. * doc/images/service-graph.dot: Add 'system' node and edges. * doc/guix.texi (Service Composition): Mention SYSTEM-SERVICE-TYPE. (Service Reference): Document it. Update 'fold-services' documentation.
2015-10-30system: Add 'locale-libcs' field.Ludovic Courtès
* gnu/system/locale.scm (localedef-command)[maybe-version-directory]: New procedure. Use it. (locale-directory): Rename to... (single-locale-directory): ... this. Check the version of LIBC to determine whether to create a "X.Y" sub-directory or to make it a symlink to ".". Add the version number in the derivation name. (locale-directory): New procedure. (%default-locale-libcs): New variable. * gnu/system.scm (<operating-system>)[locale-libcs]: New field. (operating-system-locale-directory): Pass it to 'locale-directory'. * doc/guix.texi (operating-system Reference): Document 'locale-libcs'. (Locales)[Locale Data Compatibility Considerations]: New section.