Age | Commit message (Expand) | Author |
2014-05-24 | services: Support per-service activation scripts....* gnu/services.scm (<service>)[activate]: New field.
* gnu/system.scm (operating-system-activation-script)[service-activations]:
New procedure. Use it, and primitive-load each activation.
| Ludovic Courtès |
2014-05-24 | system: Separate the activation script from the boot script....* gnu/system.scm (operating-system-activation-script): New procedure,
containing most of the former 'operating-system-boot-script'.
(operating-system-boot-script): Call it, and 'primitive-load' its
result.
* guix/build/activation.scm (%booted-system): Remove.
(activate-current-system): Remove #:boot? parameter and related code.
| Ludovic Courtès |
2014-05-20 | Add (gnu system file-systems)....This fixes a circular dependency between (gnu system) and (gnu system
linux-initrd), where the latter could end up being compiled before
'file-system-type' was defined as a macro.
* gnu/system.scm (<file-system>, %fuse-control-file-system,
%binary-format-file-system): Move to...
* gnu/system/file-systems.scm: ... here. New file.
* build-aux/hydra/demo-os.scm, gnu/system/linux-initrd.scm,
gnu/system/vm.scm: Use it.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
| Ludovic Courtès |
2014-05-18 | system: Add 'grub-configuration' record....* gnu/system/grub.scm (<grub-configuration>): New record type.
(grub-configuration-file): Add 'config' parameter; remove
#:default-entry and #:timeout. Honor CONFIG.
* gnu/system.scm (<operating-system>): Remove 'bootloader-entries'
field; remove default value for 'bootloader' field.
(operating-system-grub.cfg): Pass the 'bootloader' field to
'grub-configuration-file'.
* build-aux/hydra/demo-os.scm (bootloader): New field.
| Ludovic Courtès |
2014-05-18 | system: Make /run/current-system at activation time....* gnu/system.scm (etc-directory): Change default value of #:profile.
Change contents of SHELLS. Use /run/current-system/profile/{s,}bin in
BASHRC.
(operating-system-boot-script)[%modules]: Add (guix build
linux-initrd). Add call to 'activate-current-system' in gexp.
(operating-system-initrd-file, operating-system-grub.cfg): New
procedures.
(operating-system-derivation): Don't build grub.cfg here and remove it
from the file union.
* gnu/system/vm.scm (qemu-image): Remove #:populate.
(operating-system-build-gid, operating-system-default-contents):
Remove.
(system-qemu-image): Remove call to
'operating-system-default-contents'. Use 'operating-system-grub.cfg'
to get grub.cfg. Add GRUB.CFG to #:inputs.
(system-qemu-image/shared-store): Likewise, but don't add GRUB.CFG to
#:inputs.
(system-qemu-image/shared-store-script): Pass --system kernel option.
* guix/build/activation.scm (%booted-system, %current-system): New
variables.
(boot-time-system, activate-current-system): New procedures.
* guix/build/install.scm (evaluate-populate-directive): Add case
for ('directory name uid gid mode).
(directives, populate-root-file-system): New procedures.
* guix/build/vm.scm (initialize-hard-disk): Replace calls to
'evaluate-populate-directive' by a call to
'populate-root-file-system'.
* gnu/services/dmd.scm (dmd-configuration-file): Use
/run/current-system/profile/bin.
* gnu/services/xorg.scm (slim-service): Likewise.
| Ludovic Courtès |
2014-05-14 | system: Provide declarations for the 'fusectl' and 'binfmt_misc' file systems....* gnu/system.scm (%fuse-control-file-system,
%binary-format-file-system): New variables.
* build-aux/hydra/demo-os.scm (file-systems): New field.
| Ludovic Courtès |
2014-05-14 | system: Move skeleton code to (gnu system shadow)....* gnu/system.scm (default-skeletons, skeleton-directory): Move to...
* gnu/system/shadow.scm: ... here.
| Ludovic Courtès |
2014-05-14 | system: Add skeleton '.gdbinit'....* gnu/system.scm (default-skeletons): Add .gdbinit.
| Ludovic Courtès |
2014-05-12 | system: Populate /etc/skel....* gnu/system.scm (<operating-system>)[skeletons]: New field.
(default-skeletons, skeleton-directory): New procedures.
(etc-directory): Add #:skeletons parameter. Call
'skeleton-directory', and produce the 'skel' sub-directory.
(operating-system-etc-directory): Pass #:skeletons to
'etc-directory'.
| Ludovic Courtès |
2014-05-11 | system: Make accounts and groups at activation time....* gnu/services/base.scm (guix-build-accounts): Remove #:gid parameter;
add #:group. Remove 'password' and 'gid' fields in 'user-account'
form, and add 'group'.
(guix-service): Remove #:build-user-gid parameter. Remove 'id' field
in 'user-group' form.
* gnu/system.scm (etc-directory): Remove #:groups and #:accounts. No
longer produce files "passwd", "shadow", and "group". Adjust caller
accordingly.
(%root-account): New variable.
(operating-system-accounts): Add 'users' variable. Add %ROOT-ACCOUNT
only of 'operating-system-users' doesn't already contain a root
account.
(user-group->gexp, user-account->gexp): New procedures.
(operating-system-boot-script): Add calls to 'setenv' and
'activate-users+groups' in gexp.
* gnu/system/linux.scm (base-pam-services): Add PAM services for
"user{add,del,mode}" and "group{add,del,mod}".
* gnu/system/shadow.scm (<user-account>)[gid]: Rename to...
[group]: ... this.
[supplementary-groups]: New field.
[uid, password]: Default to #f.
(<user-group>)[id]: Default to #f.
(group-file, passwd-file): Remove.
* gnu/system/vm.scm (operating-system-default-contents)[user-directories]:
Remove. Add "/home" to the directives.
* guix/build/activation.scm (add-group, add-user,
activate-users+groups): New procedures.
| Ludovic Courtès |
2014-05-10 | services: Add 'file-system-service'....* gnu/services/base.scm (file-system-service): New procedure.
(user-processes-service): Add 'requirements' parameter.
* gnu/services/dmd.scm (dmd-configuration-file): Use (guix build
linux-initrd).
* guix/build/linux-initrd.scm (guix): Export 'check-file-system'.
* gnu/system.scm (file-union): New procedure.
(essential-services): Use it. Add that to the returned list.
| Ludovic Courtès |
2014-05-09 | system: Automatically add essential services....* gnu/services/base.scm (%base-services): Remove calls to
'host-name-service', 'user-processes-service', and
'root-file-system-service'.
* gnu/system.scm (<operating-system>)[operating-system-services]: Rename
to...
[operating-system-user-services]: ... this.
(essential-services, operating-system-services): New procedures.
(operating-system-accounts, operating-system-etc-directory,
operating-system-boot-script, operating-system-derivation): Adjust to
new 'operating-system-services' return type.
| Ludovic Courtès |
2014-05-06 | linux-initrd: Delete files from the initrd ramfs when switching roots....* guix/build/linux-initrd.scm (switch-root): Delete file from the old
root. Chdir to / after 'chroot' call. Re-open file descriptors 0, 1,
and 2.
(boot-system): Move 'loading' message after the 'switch-root' call.
* gnu/system.scm (operating-system-boot-script): Add loop that closes
file descriptor before calling 'execl'.
| Ludovic Courtès |
2014-05-04 | linux-initrd: Check the root and other early file systems....* gnu/system.scm (operating-system-derivation)[boot-file-systems]: Keep "/".
* gnu/system/linux-initrd.scm (file-system->spec): Keep the 'check?'
flag.
(qemu-initrd)[helper-packages]: New variable. Pass it as #:to-copy.
<gexp>: Add 'set-path-environment-variable' call. Remove #:unionfs
argument for 'boot-system'.
* gnu/system/vm.scm (%linux-vm-file-systems): Add 'check?' field/
(virtualized-operating-system): Likewise for the "9p" file system.
* guix/build/linux-initrd.scm (mount-root-file-system): Change #:unionfs
default. Call 'check-file-system' before mounting ROOT, when
VOLATILE-ROOT? is false.
(check-file-system): New procedure.
(mount-file-system): Honor 'check?' element in list; add
'check-file-system' call.
(boot-system): Remove #:root-fs-type and #:unionfs parameters.
[root-mount-point?, root-fs-type]: New variables.
Call 'mount-file-system' on all MOUNTS but "/".
| Ludovic Courtès |
2014-05-03 | system: Add first-class file system declarations....* gnu/system.scm (<operating-system>)[initrd]: Default to
'qemu-initrd'.
(<file-system>): New record type.
(operating-system-root-file-system): New procedure.
(operating-system-derivation): Take the device name for GRUB from
'operating-system-root-file-system'. Pass the
'operating-system-initrd' procedure the list of boot file systems.
* gnu/system/linux-initrd.scm (file-system->spec): New procedure.
(qemu-initrd): Add 'file-systems' parameter, and remove #:mounts
parameter.
[file-system-type-predicate]: New procedure.
[linux-modules]: Use it.
Adjust #:mounts argument in 'boot-system' call.
(gnu-system-initrd): Remove.
* gnu/system/vm.scm (%linux-vm-file-systems): New variable.
(expression->derivation-in-linux-vm): Adjust call to 'qemu-initrd'.
(virtualized-operating-system): New procedure.
(system-qemu-image/shared-store-script)[initrd]: Remove. Use
'virtualized-operating-system'. Get the 'initrd' file from OS-DRV.
* guix/build/linux-initrd.scm (mount-qemu-smb-share, mount-qemu-9p):
Remove.
(MS_RDONLY, MS_BIND): New global variables.
(bind-mount): Remove local 'MS_BIND' definition.
(mount-root-file-system): New procedure, with code formerly in
'boot-system'.
(mount-file-system): New procedure.
(boot-system): Add #:root-fs-type parameter. Remove 'MS_RDONLY' local
variable. Use 'mount-root-file-system' and 'mount-file-system'.
* doc/guix.texi (Using the Configuration System): Add 'file-system'
declaration.
| Ludovic Courtès |
2014-05-01 | system: Add 'sudo' to the setuid programs, and handle /etc/sudoers....* gnu/system.scm (<operating-system>)[groups]: Change default to just
the 'root' group.
[sudoers]: New field.
(etc-directory): Add #:sudoers parameter. Add 'sudoers' to the
file union.
(operating-system-etc-directory): Pass #:sudoers to 'etc-directory'.
(%setuid-programs): Add 'sudo'.
(%sudoers-specification): New variable.
* gnu/system/linux.scm (base-pam-services): Add 'sudo'.
* build-aux/hydra/demo-os.scm: Add 'groups' field; add 'guest' to the
'wheel' group.
| Ludovic Courtès |
2014-04-30 | system: Add support for setuid binaries....* gnu/system.scm (<operating-system>)[pam-services, setuid-programs]:
New fields.
(etc-directory)[bashrc]: Prepend /run/setuid-programs to $PATH.
(operating-system-etc-directory): Honor
'operating-system-pam-services'.
(%setuid-programs): New variable.
(operating-system-boot-script): Add (guix build utils) to the set of
imported modules. Call 'activate-setuid-programs' in boot script.
* gnu/system/linux.scm (base-pam-services): New procedure.
* guix/build/activation.scm (%setuid-directory): New variable.
(activate-setuid-programs): New procedure.
* build-aux/hydra/demo-os.scm: Add 'pam-services' field.
| Ludovic Courtès |
2014-04-30 | system: Add (guix build activation)....* gnu/services/dmd.scm (dmd-configuration-file): Remove 'etc'
parameter. Move /etc activation code to...
* guix/build/activation.scm: ... here; new file.
* gnu/system.scm (operating-system-boot-script): Augment script: add
(guix build activation) to the load path; call 'activate-etc'.
* Makefile.am (MODULES): Add guix/build/activation.scm.
| Ludovic Courtès |
2014-04-28 | system: Rewrite 'union' using gexps....* gnu/system.scm (union): Rewrite using 'gexp->derivation'.
| Ludovic Courtès |
2014-04-28 | system: grub: Rewrite using gexps....* gnu/system/grub.scm (grub-configuration-file): Rewrite using
'gexp->derivation'.
* gnu/system.scm (operating-system-derivation): Adjust accordingly.
| Ludovic Courtès |
2014-04-28 | system: Change 'file-union' to use gexps....* gnu/system.scm (file-union): Make 'name' the first parameter; remove
'inputs' parameter. Rewrite using 'gexp->derivation'.
(etc-directory): Adjust accordingly.
(operating-system-derivation): Ditto.
| Ludovic Courtès |
2014-04-28 | services: Rewrite using gexps....* gnu/services.scm (<service>)[inputs]: Remove.
* gnu/system.scm (links): Remove.
(etc-directory): Add PASSWD and SHADOW to #:inputs.
(operating-system-boot-script): Pass ETC to 'dmd-configuration-file'.
(operating-system-derivation): Remove EXTRAS from the union.
* gnu/system/linux.scm (pam-service->configuration): Rewrite in terms of
'gexp->derivation'. Compute the contents on the build side. Expect
'arguments' to contain a list of gexps.
(pam-services->directory): Rewrite in terms of 'gexp->derivation'.
(unix-pam-service): Change 'arguments' to a list of one gexp.
* gnu/system/shadow.scm (<user-account>)[inputs]: Remove.
[shell]: Change default value to a gexp.
(passwd-file): Rewrite in terms of 'gexp->derivation'. Compute
contents on the build side.
* gnu/services/base.scm (host-name-service, mingetty-service,
nscd-service, syslog-service, guix-service): Change 'start' and 'stop'
to gexps; remove 'inputs' field.
(guix-build-accounts): Change 'shell' field to a gexp.
* gnu/services/networking.scm (static-networking-service): Change
'start' and 'stop' to gexps; remove 'inputs' field.
* gnu/services/xorg.scm (slim-service): Likewise.
* gnu/services/dmd.scm (dmd-configuration-file): Expect ETC to be a
derivation. Change 'config' to a gexp. Use 'gexp->file' instead of
'text-file'.
* doc/guix.texi (Defining Services): Update nscd example with gexps, and
without 'inputs'. Add xref to "G-Expressions".
| Ludovic Courtès |
2014-04-28 | vm: Rewrite support procedures to use gexps....* gnu/system/vm.scm (%imported-modules): Remove.
(expression->derivation-in-linux-vm): Remove 'inputs' parameter.
Rename 'imported-modules' to 'modules'. Rewrite using gexps and
'gexp->derivation'.
(qemu-image): Add 'qemu' parameter. Pass NAME to
'expression->derivation-in-linux-vm'. Rewrite using gexps. Remove
#:inputs argument to 'expression->derivation-in-linux-vm'.
(operating-system-default-contents): Rewrite using gexps.
* gnu/system.scm (operating-system-profile-derivation): Rename to...
(operating-system-profile): ... this. Adjust callers.
(operating-system-profile-directory): Remove.
| Ludovic Courtès |
2014-04-28 | gnu: Use gexps in obvious places in (gnu system ...)....* gnu/system.scm (operating-system-boot-script): Use 'gexp->file'
instead of 'text-file*'.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
(system-qemu-image/shared-store-script)[builder]: Turn into a gexp.
Use 'gexp->derivation' instead of 'derivation-expression'.
| Ludovic Courtès |
2014-04-23 | system: Add 'operating-system-boot-script'....* gnu/system.scm (operating-system-boot-script): New procedure.
(operating-system-derivation): Use it. Remove DMD-CONF from the
file union. Add BOOT-DRV to the inputs.
| Ludovic Courtès |
2014-04-23 | system: Factorize (gnu system)....* gnu/system.scm (operating-system-accounts,
operating-system-etc-directory): New procedures.
(operating-system-derivation): Use them.
* gnu/services/base.scm (%base-services): Add 'host-name-service'
invocation.
| Ludovic Courtès |
2014-02-22 | Merge branch 'master' into core-updates...Conflicts:
gnu-system.am
| Ludovic Courtès |
2014-02-19 | gnu: Add /etc/shells....* gnu/system.scm (etc-directory): Add /etc/shells.
| Ludovic Courtès |
2014-02-19 | gnu: Define '%base-services'....* gnu/services/base.scm (%base-services): New variable.
* gnu/system.scm (<operating-system>)[services]: Change the default
value to %BASE-SERVICES.
* doc/guix.texi (Using the Configuration System): Change
'%standard-services' to '%base-services'.
| Ludovic Courtès |
2014-02-19 | gnu: Introduce the (gnu services ...) modules....* gnu/system/dmd.scm: Remove file. Move contents to...
* gnu/services.scm, gnu/services/base.scm, gnu/services/dmd.scm,
gnu/services/networking.scm, gnu/services/xorg.scm: ... here. New
files.
* gnu/system.scm, gnu/system/vm.scm: Adjust accordingly.
* guix/scripts/system.scm (%user-module): Likewise.
* doc/guix.texi (Using the Configuration System): Likewise.
(Defining Services): Likewise.
| Ludovic Courtès |
2014-02-08 | gnu: Move root's home directory to /root....* gnu/system.scm (operating-system-derivation): Change root's
'home-directory' to "/root".
* gnu/system/vm.scm (operating-system-default-contents): Add /root.
| Ludovic Courtès |
2014-02-05 | gnu: system: Build /etc/localtime....* gnu/system.scm (etc-directory)[bashrc]: Use 'text-file*' instead of
'text-file'. Adjust users accordingly.
[files]: Add the /etc/localtime file for TIMEZONE.
Add TZDATA to the 'file-union' inputs.
(operating-system-derivation): Pass 'etc-directory' PROFILE-DRV
instead of PROFILE.
| Ludovic Courtès |
2014-02-02 | gnu: vm: Add /run/current-system and /bin/sh....* gnu/system/vm.scm (operating-system-default-contents): Populate
/run/current-system and create /bin/sh.
* gnu/system.scm (operating-system-profile-derivation,
operating-system-profile-directory): New procedures.
(operating-system-derivation): Use it.
| Ludovic Courtès |
2014-01-31 | gnu: vm: Add support for running a VM that shares its store with the host....* gnu/system/vm.scm (qemu-image): Check whether GUIX is #f.
(operating-system-build-gid, operating-system-default-contents): New
procedures.
(system-qemu-image): Use 'operating-system-build-gid'.
(system-qemu-image/shared-store,
system-qemu-image/shared-store-script): New procedures.
* gnu/system.scm: Add missing exports.
| Ludovic Courtès |
2014-01-31 | gnu: linux-initrd: Properly distinguish between /dev/sda* and /dev/vda*....* guix/build/linux-initrd.scm (make-essential-device-nodes): Rename
devices with major = 8 to /dev/sda*. Make /dev/vda* devices.
* gnu/system/vm.scm (qemu-image): Change '/dev/vda' to '/dev/sda'.
* gnu/system.scm (operating-system-derivation): Likewise.
| Ludovic Courtès |
2014-01-29 | gnu: Lower initrd makers from packages to monadic procedures....* gnu/packages/linux-initrd.scm: Remove.
* gnu/system/linux-initrd.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu/system.scm (<operating-system>): Change default 'initrd' value
to (gnu-system-initrd).
(operating-system-derivation): Bind 'operating-system-initrd'. Pass
'menu-entry' an initrd file name instead of a package.
* gnu/system/grub.scm (grub-configuration-file): Expect 'initrd' to be
file name.
| Ludovic Courtès |
2014-01-25 | Prefer local builds for "small" derivations....* gnu/system.scm (union, file-union, links): Pass #:local-build? #t to
'derivation-expression'.
* guix/derivations.scm (imported-files, compiled-modules): Likewise.
* guix/profiles.scm (profile-derivation): Likewise.
| Ludovic Courtès |
2014-01-13 | gnu: Changes references to (gnu packages admin)....* gnu/packages/version-control.scm, gnu/packages/vim.scm,
gnu/system.scm, gnu/system/dmd.scm, gnu/system/shadow.scm,
gnu/system/vm.scm: Change references to (gnu packages system) to (gnu
packages admin).
This is a followup to commit 4aeea89.
| Ludovic Courtès |
2013-12-10 | gnu: Honor the operating system's locale and timezone....* gnu/system.scm (etc-directory): Add 'locale' and 'timezone'
parameters. Set 'LC_ALL', 'TZ', and 'TZDIR' in /etc/profile.
(operating-system-derivation): Adjust call accordingly.
* gnu/system/vm.scm (%demo-operating-system): Change locale to
'en_US.UTF-8'. Add TZDATA to 'packages'.
| Ludovic Courtès |
2013-12-10 | gnu: Allow a plain list of packages in 'operating-system'....* gnu/system.scm (union): Allow (PACKAGE OUTPUT), (PACKAGE), and
PACKAGE.
(<operating-system>)[packages]: Make the default a list of package?
objects.
* gnu/system/vm.scm (%demo-operating-system): Likewise. Add a few
packages.
| Ludovic Courtès |
2013-12-10 | gnu: Add 'inputs' field to <user-account>; make 'shell' a monadic value....* gnu/system/shadow.scm (<user-account>)[inputs]: New field.
(passwd-file): Bind the 'shell' field of each account.
* gnu/system/vm.scm (%demo-operating-system): Remove 'shell' field.
* gnu/system/dmd.scm (guix-build-accounts): Store a monadic value in
'shell'. Add 'inputs' field.
* gnu/system.scm (operating-system-derivation): Remove 'shell' field for
'root' account. Add all the 'user-account-inputs' to EXTRAS.
| Ludovic Courtès |
2013-12-10 | gnu: Add (gnu system)....* gnu/system/vm.scm (lower-inputs): Move to monads.scm.
(qemu-image): Don't add GRUB-CONFIGURATION to the INPUTS-TO-COPY.
(union, file-union, etc-directory): Move to gnu/system.scm.
(%demo-operating-system): New variable.
(system-qemu-image): Add 'os' parameter. Rewrite in terms of
'operating-system-derivation'.
* guix/monads.scm (lower-inputs): New procedure.
* gnu/system/grub.scm (grub-configuration-file): Change 'entries' to be
a plain list instead of a list of monadic values.
* gnu/system.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
| Ludovic Courtès |