| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* guix/build/install.scm (directives): Add /var/guix/profiles/system.
(populate-root-file-system): Add 'system' parameter. Create
/var/guix/profiles/system-1-link.
* guix/scripts/system.scm (install): Pass OS-DIR to
'populate-root-file-system'.
* guix/build/vm.scm (initialize-root-partition): Add #:system-directory
parameter, and pass it to 'populate-root-file-system'.
(initialize-hard-disk): Add #:system-directory parameter, and pass it
to 'initialize-root-partition'.
* gnu/system/vm.scm (qemu-image): Add #:os-derivation parameter and pass
it to 'initialize-hard-disk'.
(system-disk-image, system-qemu-image,
system-qemu-image/shared-store): Pass #:os-derivation to 'qemu-image.
|
|
|
|
|
|
|
|
| |
This is a followup to e2fcc23. The /etc/group file would be cleared
when booting.
* guix/build/activation.scm (activate-users+groups)[touch]: Rewrite so
it does not wipe out FILE's contents.
|
|
|
|
|
|
|
| |
Fixes <http://bugs.gnu.org/17827>.
* guix/build/linux-initrd.scm (mount-root-file-system) [volatile-root?]:
Pass unionfs '-o max_file=65536'.
|
|\ |
|
| |
| |
| |
| | |
* guix/build/pull.scm (build-guix): Copy gnu.scm to OUT.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This partly reverts commit 185f669 ("services: Make sure the store's
group is the build group.")
* gnu/services/base.scm (guix-service)[activate]: Remove 'chown' call.
Add 'id' field to 'user-group' form.
* guix/build/install.scm (directives): Set the store's GID to 30000.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Before that the effect would be to re-create groups at each boot, and
thus remove any members of the groups.
* guix/build/activation.scm (activate-users+groups): Call 'add-group'
only when (getgrname name) fails.
|
| |
| |
| |
| |
| |
| |
| | |
* gnu/services/base.scm (guix-service)[activate]: New variable. Add
'chown' call for (%store-prefix). Set the 'activate' field to
ACTIVATE.
* guix/build/install.scm (directives): Add comment about STORE's group.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* gnu/system/file-systems.scm (<file-system>)[title]: New field.
* gnu/services/base.scm (file-system-service): Add #:title parameter.
In 'start' gexp, use 'canonicalize-device-spec' and honor TITLE.
* gnu/system.scm (other-file-system-services,
operating-system-root-file-system, operating-system-initrd-file):
Adjust accordingly.
* gnu/system/linux-initrd.scm (file-system->spec): Likewise.
* gnu/system/vm.scm (system-disk-image): Add 'title' field for the root
file system.
* guix/build/linux-initrd.scm (mount-file-system): Expect the second
element of SPEC to be the title.
(boot-system)[root-mount-point?, root-fs-type]: Likewise.
* gnu/services/dmd.scm (dmd-configuration-file): Select
'canonicalize-device-spec'.
|
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (canonicalize-device-spec): Add #:title
parameter. When resolving a label, wait a little and try several
times before bailing out.
|
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (make-essential-device-nodes): Add
"dev/console".
|
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (make-disk-device-nodes): New procedure.
(make-essential-device-nodes): Use it. Make more devices nodes for
SCSI disks and CD-ROM devices.
|
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (partition-label-predicate): Catch
'system-error' around 'read-ext2-superblock'; return #f upon ENOENT.
|
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (partition-label-predicate): Check whether
'ext2-superblock-volume-name' returns #f, and return #f if it does.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (%ext2-endianness, %ext2-sblock-magic,
%ext2-sblock-creator-os, %ext2-sblock-uuid, %ext2-sblock-volume-name):
New macros.
(read-ext2-superblock, ext2-superblock-uuid,
ext2-superblock-volume-name, disk-partitions,
partition-label-predicate, find-partition-by-label,
canonicalize-device-spec): New procedures.
(mount-file-system): Use 'canonicalize-device-spec' on SOURCE.
(boot-system): Likewise for ROOT.
* doc/guix.texi (Using the Configuration System): Adjust 'file-system'
declaration accordingly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/vm.scm (format-partition): Add #:label parameter, and honor
it.
(initialize-hard-disk): Add #:file-system-label parameter, and pass it
to 'format-partition'.
* gnu/system/vm.scm (qemu-image): Add #:file-system-label parameter and
pass it to 'initialize-hard-disk'.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
* gnu/services/base.scm (nscd-service): Add 'activate' field.
* guix/build/install.scm (directives): Remove /var/run/nscd; add
/var/run.
* doc/guix.texi (Defining Services): Add 'activate' field in example.
Document it.
|
| |
| |
| |
| | |
* guix/build/install.scm (directives): Add /var/empty.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| |
| |
| | |
* guix/build/download.scm (open-connection-for-uri): Remove call to
'setsockopt'.
* guix/http-client.scm (open-socket-for-uri)[rmem-max, buffer-size]: New
variables. Add call to 'setsockopt'.
|
| |
| |
| |
| |
| |
| | |
* guix/build/vm.scm (load-in-linux-vm): When MAKE-DISK-IMAGE?, use
'-drive ...,if=virtio' for better performance.
* gnu/system/vm.scm (qemu-image): Use /dev/vda instead of /dev/sda.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/vm.scm (load-in-linux-vm): Add #:disk-image-format
parameter; add 'image-file' variable. Honor DISK-IMAGE-FORMAT.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add
#:disk-image-format parameter, and honor it.
(qemu-image): Likewise.
|
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (make-essential-device-nodes): Build
/dev/loop[0-7].
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/install.scm (install-grub): Call 'error' if 'system*'
returns non-zero.
* guix/build/vm.scm (initialize-partition-table): Make 'partition-size'
a positional parameter. Call 'error' when 'system*' returns
non-zero'.
(format-partition, initialize-root-partition): New procedures.
(initialize-hard-disk): Use them.
|
| |
| |
| |
| | |
* guix/build/vm.scm (load-in-linux-vm): Remove misleading comment.
|
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (boot-system): Add pre-unwind handler in
'catch' form around 'primitive-load', and call 'format' and
'display-backtrace' from there.
|
| |
| |
| |
| |
| |
| | |
Regression introduced in e38e18f.
* guix/build/vm.scm (initialize-hard-disk)[partition]: Use a string.
|
| |
| |
| |
| |
| |
| |
| | |
* guix/build/vm.scm (initialize-partition-table): Honor 'device'
parameter.
(initialize-hard-disk): Add 'device' parameter and honor it.
* gnu/system/vm.scm (qemu-image): Adjust accordingly.
|
| |
| |
| |
| |
| | |
* guix/build/install.scm (install-grub): Use 'copy-file' instead of
'symlink' for GRUB.CFG.
|
| |
| |
| |
| |
| |
| |
| | |
* guix/build/vm.scm (initialize-hard-disk): Don't call
'reset-timestamps' when REGISTER-CLOSURES? is true.
* guix/build/install.scm (register-closure): Mention timestamps in
docstring.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (find-long-option): New procedure.
(boot-system): Use it instead of the local 'option'.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/vm.scm (install-grub, evaluate-populate-directive,
reset-timestamps, register-closure): Move to...
* guix/build/install.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add (guix
build install) to #:modules.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* gnu/system/vm.scm (qemu-image): Rename #:inputs-to-copy to #:inputs,
and #:initialize-store? to #:register-closures?. Add #:copy-inputs?.
Adjust build gexp accordingly.
(system-qemu-image): Remove #:initialize-store? argument and add
#:copy-inputs?.
(system-qemu-image/shared-store): Add #:inputs, #:register-closures?,
and #:copy-inputs? arguments.
* guix/build/vm.scm (register-closure): New procedure.
(MS_BIND): New variable.
(initialize-hard-disk): Rename #:initialize-store? to
#:register-closures?, #:closures-to-copy to #:closures, and add
#:copy-closures?.
Add 'target-directory' and 'target-store' variables.
Call 'populate-store' only when COPY-CLOSURES?.
Bind-mount the store to TARGET-STORE when REGISTER-CLOSURES? and not
COPY-CLOSURES?. Add call to 'register-closure'.
|
| |
| |
| |
| |
| | |
* guix/build/activation.scm (add-user): Don't pass '--create-home' when
HOME already exists.
|
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
/dev/ttyS0.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (pidof): New procedure.
(mount-root-file-system)[mark-as-not-killable]: New procedure.
Use it for unionfs when VOLATILE-ROOT?.
* gnu/services/base.scm (%do-not-kill-file): New variable.
(user-processes-service)[stop]: Honor it.
|
| |
| |
| |
| | |
* guix/build/syscalls.scm (kernel?, processes): New procedures.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/syscalls.scm, tests/syscalls.scm: New files.
* Makefile.am (MODULES): Add guix/build/syscalls.scm.
(SCM_TESTS): Add tests/syscalls.scm.
* guix/utils.scm (%libc-errno-pointer, errno): Remove; take from (guix
build syscalls).
|
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (mount-file-system): Open /etc/mtab in
append mode.
|
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (switch-root): Simplify /dev/console
code. This fixes a bug where we would leak the IN and OUT file
descriptors.
|
| |
| |
| |
| | |
* guix/build/git.scm (git-fetch): Add 'setenv' call.
|
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (mount-root-file-system): Populate
/root/etc/mtab.
(mount-file-system): Update ROOT/etc/mtab.
|
| |
| |
| |
| |
| | |
* guix/build/gnome.scm: Remove.
* Makefile.am (MODULES): Update accordingly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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'.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/build/linux-initrd.scm (move-essential-file-systems,
switch-root): New procedures.
(MS_MOVE): New variable.
(boot-system): Remove 'mount-essential-file-systems' call for ROOT.
Use 'switch-root' instead of chdir + chroot.
|