summary refs log tree commit diff
path: root/gnu/system.scm
AgeCommit message (Collapse)Author
2014-12-09system: Cleanup bash startup files.宋文武
* gnu/system.scm (etc-directory) (bashrc): Rename to 'profile'. * gnu/system/shadow.scm (default-skeletons): Rename '.bashrc' to '.bash_profile'. Don't source /etc/profile.
2014-12-07system: Add 'man-db' to '%base-packages'.Ludovic Courtès
Suggested by Tsutsukakushi on #guix. * gnu/system.scm (%base-packages): Add MAN-DB.
2014-11-30Revert "system: Add a 'needed-for-boot?' field to 'mapped-device'."Ludovic Courtès
This reverts commit 3b09332adf7ce8e976a4d117a62c586a53af04aa, which turned out to be a bad idea because we need to have dependency information between the device-mapping service and the file-system service that uses it.
2014-11-29system: Add a 'needed-for-boot?' field to 'mapped-device'.Ludovic Courtès
* gnu/system/file-systems.scm (<mapped-device>)[needed-for-boot?]: New field. * gnu/system.scm (operating-system-user-mapped-devices, operating-system-boot-mapped-devices): Use it instead of trying to guess. Guessing doesn't work when one refers to a partition using its label, for instance. * doc/guix.texi (Mapped Devices): Document 'needed-for-boot?'.
2014-11-28linux-boot: Load modules and their dependencies, à la 'modprobe'.Ludovic Courtès
* gnu/build/linux-boot.scm: Use (gnu build linux-modules). (load-linux-module*): Remove. (boot-system): Add #:linux-module-directory parameter. [lookup-module]: New procedure. Call 'current-module-debugging-port'. Pass #:lookup-module to 'load-linux-module*'. Map LOOKUP-MODULE on LINUX-MODULES. * gnu/system/linux-initrd.scm (base-initrd): Adjust 'boot-system' call accordingly. Adjust #:modules argument as well. * gnu/system.scm (operating-system-activation-script)[%modules]: Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
2014-11-27system: Build system-wide locale definitions.Ludovic Courtès
* gnu/system/locale.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/system.scm (<operating-system>)[locale]: Change the default to "en_US.utf8". (operating-system-locale-directory): New procecure. (operating-system-derivation): Use it. * doc/guix.texi (Using the Configuration System): Change example locale to "fr_FR.utf8". (operating-system Reference): Add xref to "Locales". Document 'locale-definitions'. (Locales): New section. * po/guix/POTFILES.in: Add gnu/system.scm.
2014-11-25file-systems: 'file-system-needed-for-boot?' always returns #t for "/".Ludovic Courtès
Reported by Nikita Karetnikov. * gnu/system/file-systems.scm (<file-system>): Rename 'needed-for-boot?' accessor to '%file-system-needed-for-boot?'. (file-system-needed-for-boot?): New inlinable procedure. * gnu/system.scm (other-file-system-services)[file-systems]: Rely on 'file-system-needed-for-boot?' to handle the "/" case. (operating-system-initrd-file)[boot-file-systems]: Likewise.
2014-11-11system: Shorten the default label for GRUB entries.Ludovic Courtès
* gnu/system.scm (kernel->grub-label): Shorten entry labels.
2014-11-11activation: Set the firmware search path.Ludovic Courtès
* gnu/build/activation.scm (activate-firmware): New procedure. * gnu/system.scm (<operating-system>)[firmware]: New field. (directory-union): New procedure. (%base-firmware): New variable. (operating-system-activation-script): Use 'directory-union', and call 'activate-firmware'. * doc/guix.texi (operating-system Reference): Document 'firmware'.
2014-11-10services: Add 'user-unmount-service' as an essential service.Ludovic Courtès
* gnu/services/base.scm (user-unmount-service): New procedure. * gnu/system.scm (essential-services): Use it. * gnu/system/install.scm (cow-store-service): Mention it in comment.
2014-11-05system: Define 'INFOPATH' in /etc/profile.Ludovic Courtès
* gnu/system.scm (etc-directory)[bashrc]: Set 'INFOPATH'.
2014-11-02system: Allow Linux-libre to find our 'modprobe' command.Ludovic Courtès
Fixes <http://bugs.gnu.org/18525>. Reported by Mark H Weaver <mhw@netris.org>. * gnu/build/activation.scm (activate-modprobe): New procedure. * gnu/system.scm (modprobe-wrapper): New procedure. (operating-system-activation-script): Use both.
2014-10-29system: Add pciutils and pciutils to '%base-packages'.Ludovic Courtès
* gnu/system.scm (%base-packages): Add PCIUTILS and USBUTILS.
2014-10-07system: Export 'local-host-aliases'.Ludovic Courtès
* gnu/system.scm (local-host-aliases): New procedure. (default-/etc/hosts): Use it.
2014-09-22system: Add Patch to '%base-packages'.Ludovic Courtès
* gnu/system.scm (%base-packages): Add PATCH.
2014-09-22system: Add support for boot-time mapped devices.Ludovic Courtès
* gnu/build/linux-boot.scm (boot-system): Add #:pre-mount parameter and honor it. * gnu/system/linux-initrd.scm (base-initrd): Add #:mapped-devices parameter. Add 'device-mapping-commands' variable, and use it to build the #:pre-mount argument of 'boot-system'. * gnu/system.scm (mapped-device-user, operating-system-user-mapped-devices, operating-system-boot-mapped-devices): New procedures. (device-mapping-services): Use 'operating-system-user-mapped-devices' instead of 'operating-system-mapped-devices'. (operating-system-initrd-file): Call the initrd with #:mapped-devices.
2014-09-18system: Add support for swap devices.Ludovic Courtès
* gnu/services/base.scm (swap-service): New procedure. * gnu/system.scm (<operating-system>)[swap-devices]: New field. (swap-services): New procedure. (essential-services): Use it.
2014-09-18system: Define 'device-mapping-kind', and add a 'close' procedure.Ludovic Courtès
* gnu/system/file-systems.scm (<mapped-device-type>): New record type. (<mapped-device>)[command]: Remove field. [type]: New field. * gnu/services/base.scm (device-mapping-service): Rename 'command' parameter to 'open'. Add 'close' parameter and honor it. * gnu/system.scm (luks-device-mapping): Rename to... (open-luks-device): ... this. (close-luks-device): New procedure. (luks-device-mapping): New variable. (device-mapping-services): Get the type of MD, and pass its 'open' and 'close' fields to 'device-mapping-service'.
2014-09-13system: Use eudev instead of udev by default.Ludovic Courtès
* gnu/system.scm (%base-packages): Change 'udev' to 'eudev'. * gnu/services/base.scm (udev-service): Change #:udev to default to 'eudev'.
2014-09-13system: Add Diffutils to '%base-packages'.Ludovic Courtès
* gnu/system.scm (%base-packages): Add DIFFUTILS.
2014-09-12system: Add more common tools to '%base-packages'.Ludovic Courtès
* gnu/system.scm (%base-packages): Add gawk, tar, gzip, bzip2, xz, lzip, and wireless-tools.
2014-09-12system: Produce a basic /etc/nsswitch.conf to honor /etc/hosts.Ludovic Courtès
* gnu/system.scm (etc-directory): Produce nsswitch.conf.
2014-09-12system: Fix the default /etc/hosts.Ludovic Courtès
* gnu/system.scm (default-/etc/hosts): Fix the alias/address order. Add ::1.
2014-09-12system: Add support for Linux-style mapped devices.Ludovic Courtès
* gnu/system/file-systems.scm (<mapped-device>): New record type. * gnu/system.scm (<operating-system>)[mapped-devices]: New field. (luks-device-mapping): New procedure. (other-file-system-services)[device-mappings, requirements]: New procedures. Pass #:requirements to 'file-system-service'. (device-mapping-services): New procedure. (essential-services): Use it. Append its result to the return value. (operating-system-initrd-file): Add comment. * gnu/services/base.scm (file-system-service): Add #:requirements parameter and honor it. (device-mapping-service): New procedure. * gnu/system/linux-initrd.scm (base-initrd): Add comment.
2014-09-12system: Add '\w' to the default PS1.Ludovic Courtès
* gnu/system.scm (etc-directory)[bashrc]: Add '\w' to PS1.
2014-09-12activation: Make the /bin/sh symlink at activation time.Ludovic Courtès
* gnu/build/install.scm (directives): Remove "/bin/sh". * gnu/build/activation.scm (activate-/bin/sh): New procedure. * gnu/system.scm (operating-system-activation-script): Use it.
2014-09-12system: Add 'hosts-file' field.Ludovic Courtès
* gnu/system.scm (<operating-system>)[hosts-file]: New field. (default-/etc/hosts): New procedure. (etc-directory): Add #:hosts-file parameter and honor it. (operating-system-etc-directory): Build /etc/hosts, and pass it as #:hosts-file to 'etc-directory'.
2014-09-09system: Export '%setuid-programs'.Ludovic Courtès
* gnu/system.scm: Export '%setuid-programs', as documented in the manual.
2014-09-03Move part of (gnu build linux-boot) to (gnu build file-systems).Ludovic Courtès
* gnu/build/linux-boot.scm (%ext2-endianness, %ext2-sblock-magic, %ext2-sblock-creator-os, %ext2-sblock-uuid, %ext2-sblock-volume-name, read-ext2-superblock, ext2-superblock-uuid, ext2-superblock-volume-name, disk-partitions, partition-label-predicate, find-partition-by-label, canonicalize-device-spec, MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_BIND, MS_MOVE, bind-mount, check-file-system, mount-flags->bit-mask, mount-file-system): Move to... * gnu/build/file-systems.scm: ... here. New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/services/base.scm: Use (gnu build file-systems). * gnu/services/dmd.scm (dmd-configuration-file): Likewise. * gnu/system.scm (operating-system-activation-script): Likewise. * gnu/system/linux-initrd.scm (base-initrd): Likewise. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
2014-09-03Rename (gnu build linux-initrd) to (gnu build linux-boot).Ludovic Courtès
* gnu/build/linux-initrd.scm: Rename to... * gnu/build/linux-boot.scm: ... this. * gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly. * gnu/build/activation.scm, gnu/build/vm.scm, gnu/services/base.scm, gnu/services/dmd.scm, gnu/system.scm, gnu/system/linux-initrd.scm, gnu/system/vm.scm: Adjust accordingly.
2014-09-03Move operating system helpers from (guix build …) to (gnu build …).Ludovic Courtès
* guix/build/activation.scm, guix/build/install.scm, guix/build/linux-initrd.scm, guix/build/vm.scm: Move to... * gnu/build: ... here. * Makefile.am (MODULES): Remove the above guix/build/ files. * gnu-system.am (GNU_SYSTEM_MODULES): Add the above gnu/build/ files here. * gnu/services/base.scm, gnu/services/dmd.scm, gnu/system.scm, gnu/system/linux-initrd.scm, gnu/system/vm.scm, guix/scripts/system.scm: Adjust to the new module names.
2014-08-28gnu: Split (gnu packages base), adding (gnu packages commencement).Ludovic Courtès
* gnu/packages/base.scm (gnu-make-boot0, diffutils-boot0, findutils-boot0, %boot0-inputs, nix-system->gnu-triplet, boot-triplet, binutils-boot0, gcc-boot0, perl-boot0, linux-libre-headers-boot0, texinfo-boot0, %boot1-inputs, glibc-final-with-bootstrap-bash, cross-gcc-wrapper, static-bash-for-glibc, glibc-final, gcc-boot0-wrapped, %boot2-inputs, binutils-final, libstdc++, gcc-final, ld-wrapper-boot3, %boot3-inputs, bash-final, %boot4-inputs, guile-final, gnu-make-final, ld-wrapper, coreutils-final, grep-final, %boot5-inputs, %final-inputs, canonical-package, gcc-toolchain, gcc-toolchain-4.8, gcc-toolchain-4.9): Move to... * gnu/packages/commencement.scm: ... here. New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * build-aux/check-final-inputs-self-contained.scm: Adjust accordingly. * gnu/packages/cross-base.scm: Likewise. * gnu/packages/make-bootstrap.scm: Likewise. * guix/build-system/cmake.scm (cmake-build): Likewise. * guix/build-system/gnu.scm (standard-packages, gnu-build, gnu-cross-build): Likewise. * guix/build-system/perl.scm (perl-build): Likewise. * guix/build-system/python.scm (python-build): Likewise. * guix/build-system/trivial.scm (guile-for-build): Likewise. * guix/download.scm (url-fetch): Likewise. * guix/gexp.scm (default-guile): Likewise. * guix/git-download.scm (git-fetch): Likewise. * guix/monads.scm (run-with-store): Likewise. * guix/packages.scm (default-guile): Likewise. * guix/scripts/package.scm (guix-package): Likewise. * guix/scripts/refresh.scm: Likewise. * guix/svn-download.scm (svn-fetch): Likewise. * tests/builders.scm (%bootstrap-inputs, %bootstrap-search-paths): Likewise. * tests/packages.scm ("GNU Make, bootstrap"): Likewise. * tests/guix-package.sh: Likewise. * gnu/services/base.scm: Use 'canonical-package' instead of xxx-final. * gnu/services/xorg.scm: Likewise. * gnu/system/vm.scm: Likewise. * guix/scripts/pull.scm (guix-pull): Likewise.
2014-08-11system: Use (guix profiles) to build the system profile.Ludovic Courtès
* gnu/system.scm (union): Remove. (operating-system-profile): Use 'profile-derivation' and related procedures instead of 'union'.
2014-07-25system: Add the 'system?' field for user groups.Ludovic Courtès
Suggested by Mark H. Weaver. * gnu/system/shadow.scm (<user-group>)[system?]: New field. (%base-groups): Introduce 'system-group' macro, and use it. * gnu/system.scm (user-group->gexp): Pass the 'system?' field. * guix/build/activation.scm (add-group): Add #:system? and honor it. (activate-users+groups): Handle the 'system?' field. * gnu/system/file-systems.scm (%tty-gid): Choose an ID below 1000. * doc/guix.texi (User Accounts): Document the 'system?' field.
2014-07-23system: Recognize more file system flags.Ludovic Courtès
* guix/build/linux-initrd.scm (MS_NOSUID, MS_NODEV, MS_NOEXEC): New variables. (mount-flags->bit-mask): New procedure. (mount-file-system)[flags->bit-mask]: Remove. Use 'mount-flags->bit-mask' instead. In /etc/mtab, use the empty string when OPTIONS is false. * gnu/services/base.scm (file-system-service): Add #:flags parameter and honor it. * gnu/system.scm (other-file-system-services): Pass FLAGS to 'file-system-service'.
2014-07-23system: Add 'create-mount-point?' file system option.Ludovic Courtès
* gnu/system/file-systems.scm (<file-system>)[create-mount-point?]: New field. * gnu/services/base.scm (file-system-service): Add #:create-mount-point? parameter and honor it. * gnu/system.scm (other-file-system-services): Update 'file-system-service' call accordingly. * doc/guix.texi (File Systems): Document it.
2014-07-16system: Add e2fsprogs to the base packages.Ludovic Courtès
* gnu/system.scm (%base-packages): Add E2FSPROGS.
2014-07-16system: Use kmod instead of module-init-tools.Ludovic Courtès
* gnu/system.scm (%base-packages): Use kmod instead of module-init-tools.
2014-07-14system: Add 'nano' and 'lsof' to the base packages.Ludovic Courtès
* gnu/system.scm (%base-packages): Add NANO and LSOF.
2014-07-12system: Add 'which' to the base packages.Ludovic Courtès
* gnu/system.scm (%base-packages): Add WHICH.
2014-07-12system: Remove erroneous system binding in profile maker.Ludovic Courtès
Partly fixes <http://bugs.gnu.org/18002>. Reported by David Thompson <dthompson2@worcester.edu>. * gnu/system.scm (union): Remove #:system parameter, which was unused.
2014-07-01linux-initrd: Rename 'qemu-initrd' to 'base-initrd'.Ludovic Courtès
* gnu/system/linux-initrd.scm (qemu-initrd): Rename to... (base-initrd): ... this. * gnu/system.scm (<operating-system>)[initrd]: Update accordingly. * gnu/system/vm.scm (expression->derivation-in-linux-vm, system-disk-image, virtualized-operating-system): Likewise.
2014-06-29system: Set $LINUX_MODULE_DIRECTORY as a function or /run/booted-system.Ludovic Courtès
* gnu/system.scm (etc-directory): Remove #:kernel parameter. Set LINUX_MODULE_DIRECTORY as a function or /run/booted-system. (operating-system-etc-directory): Update accordingly.
2014-06-27system: Add a 'system?' field to user accounts.Ludovic Courtès
* gnu/system/shadow.scm (<user-account>)[system?]: New field. * gnu/system.scm (user-account->gexp): Add it. * guix/build/activation.scm (add-user): Add #:system? parameter and honor it. (activate-users+groups): Handle the 'system?' part of user tuples. Pass it to 'add-user'. Don't create PROFILE-DIR when SYSTEM? is true. * gnu/services/dbus.scm (dbus-service): Add 'system?' field for "messagebus" account. * gnu/services/base.scm (guix-build-accounts): Likewise. * gnu/services/avahi.scm (avahi-service): Likewise.
2014-06-27system: Adjust the set of fields with default values.Ludovic Courtès
* gnu/system.scm (<operating-system>)[file-systems]: Remove default. [locale]: Add default value.
2014-06-27guix system: Add 'reconfigure' action.Ludovic Courtès
* guix/scripts/system.scm (%system-profile): New variable. (switch-to-system, previous-grub-entries): New procedures. (unless-file-not-found): New macro. (show-help): Add 'reconfigure'. (guix-system): Handle it. * gnu/system.scm: Export 'operating-system-activation-script'. * doc/guix.texi (Invoking guix system): Document it.
2014-06-25system: Support the addition of old entries in the GRUB menu.Ludovic Courtès
* gnu/system.scm (operating-system-grub.cfg): Add 'old-entries' parameter. Pass it to 'grub-configuration-file'. * gnu/system/grub.scm (grub-configuration-file): Add #:old-entries parameter. Honor it.
2014-06-25system: Store boot parameters in the system derivation.Ludovic Courtès
* gnu/system.scm (operating-system-parameters-file): New procedure. (operating-system-derivation): Use it to produce a 'parameters' files.
2014-06-25system: Factorize GRUB menu entry label.Ludovic Courtès
* gnu/system.scm (kernel->grub-label): New procedure. (operating-system-grub.cfg): Use it.
2014-06-24services: Add udev service, and add it to '%base-services'.Ludovic Courtès
* gnu/services/base.scm (udev-service): New procedure. (%base-services): Use it. * gnu/system.scm (%base-packages): Add UDEV.