summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2014-06-03system: File system sources can be marked as labels or devices....* 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'. Ludovic Courtès
2014-06-02linux-initrd: Wait for devices to appear when resolving a label....* 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. Ludovic Courtès
2014-06-01linux-initrd: Actually create /dev/console....* guix/build/linux-initrd.scm (make-essential-device-nodes): Add "dev/console". Ludovic Courtès
2014-06-01derivations: Add #:allowed-references 'derivation' parameter....* guix/derivations.scm (derivation): Add #:allowed-references parameter. [user+system-env-vars]: Honor it. * tests/derivations.scm ("derivation #:allowed-references, ok", "derivation #:allowed-references, not allowed", "derivation #:allowed-references, self allowed", "derivation #:allowed-references, self not allowed"): New tests. * doc/guix.texi (Derivations): Document #:allowed-references. Ludovic Courtès
2014-06-01linux-initrd: Make more device nodes for SCSI disks and CD-ROM devices....* 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. Ludovic Courtès
2014-06-01linux-initrd: Gracefully handle missing /dev nodes....* guix/build/linux-initrd.scm (partition-label-predicate): Catch 'system-error' around 'read-ext2-superblock'; return #f upon ENOENT. Ludovic Courtès
2014-05-31linux-initrd: Gracefully deal with partitions with no label....* guix/build/linux-initrd.scm (partition-label-predicate): Check whether 'ext2-superblock-volume-name' returns #f, and return #f if it does. Ludovic Courtès
2014-05-30linux-initrd: Allow use of volume labels in 'file-system' declarations....* 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. Ludovic Courtès
2014-05-29vm: Allow a volume name to be specified for the root partition....* 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'. Ludovic Courtès
2014-05-27store: Work around 'get-bytevector-n' bug that affects 'import-paths'....Fixes <http://bugs.gnu.org/17591>. * guix/store.scm (process-stderr) <%stderr-read>: Use 'get-bytevector-n!' instead of 'get-bytevector-n'. Ludovic Courtès
2014-05-25store: Remove misleading 'setsockopt' call....* guix/store.scm (open-connection): Remove misleading 'setsockopt' call, erroneously introduced in df1fab58. This would actually shrink the receive buffer from 124 KiB to 12 KiB, though it had little impact on performance. Ludovic Courtès
2014-05-24services: nscd: Provide an 'activate' script to make /var/run/nscd....* 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. Ludovic Courtès
2014-05-24system: Always create /var/empty....* guix/build/install.scm (directives): Add /var/empty. Ludovic Courtès
2014-05-24system: 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-23download: Enlarge your receive buffer....* 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'. Ludovic Courtès
2014-05-22guix system: Add 'disk-image' action....* guix/scripts/system.scm (show-help): Add 'disk-image'. (guix-system)[parse-options]: Support 'disk-image' action. [option-arguments]: Likewise. Handle the 'disk-image' action. * doc/guix.texi (Invoking guix system): Document 'disk-image'. Ludovic Courtès
2014-05-22vm: Use a para-virtualized disk when creating an image....* 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. Ludovic Courtès
2014-05-22vm: Make the image format a parameter....* 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. Ludovic Courtès
2014-05-22linux-initrd: Build /dev/loop* nodes....* guix/build/linux-initrd.scm (make-essential-device-nodes): Build /dev/loop[0-7]. Ludovic Courtès
2014-05-22guix: download: Update imagemagick mirrors....* guix/download.scm (%mirrors)[imagemagick]: Update and add the legacy subdirectory of the main site as a last resort. Andreas Enge
2014-05-21vm: Modularize build-side code....* 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. Ludovic Courtès
2014-05-21vm: Remove misleading comment....* guix/build/vm.scm (load-in-linux-vm): Remove misleading comment. Ludovic Courtès
2014-05-21store: Flush the output when the build process emits '\r'....This allows progress reports emitted by 'substitute-binary' to be correctly displayed. * guix/store.scm (%newlines): New variable. (process-stderr) <%stderr-next>: Flush (current-build-output-port) when S contains one of %NEWLINES. Ludovic Courtès
2014-05-20linux-initrd: Display a backtrace when the initial program fails....* 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. Ludovic Courtès
2014-05-20vm: Fix typo....Regression introduced in e38e18f. * guix/build/vm.scm (initialize-hard-disk)[partition]: Use a string. Ludovic Courtès
2014-05-19ui: Gracefully deal with zero-output derivations....* guix/ui.scm (show-what-to-build)[built-or-substitutable?]: New procedure. Check whether OUT is #f. Use it. * tests/ui.scm ("show-what-to-build, zero outputs"): New test. Ludovic Courtès
2014-05-19guix system: Check whether we are installing to /....* guix/scripts/system.scm (install): Check whether TARGET is / and warn. Ludovic Courtès
2014-05-19guix system: Factorize out closure copy....* guix/scripts/system.scm (copy-closure): New procedure. (install): Use it. Ludovic Courtès
2014-05-19guix system: 'guix system init' installs GRUB by default....* guix/scripts/system.scm (install): Add #:grub?, #:grub.cfg, and #:device parameters; honor them. (show-help): Document '--no-grub'. (%options): Add '--no-grub'. (%default-options): Add 'install-grub?'. (guix-system): Honor 'install-grub?' option from OPTS. Adjust 'install' call accordingly. * doc/guix.texi (Invoking guix system): Document '--no-grub'. Ludovic Courtès
2014-05-19vm: Make the device name a parameter....* 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. Ludovic Courtès
2014-05-19guix: licenses: Add CeCILL-C license....* guix/licenses.scm (cecill-c): New variable. Eric Bavier
2014-05-18system: Prevent grub.cfg from being GC'd....* guix/build/install.scm (install-grub): Use 'copy-file' instead of 'symlink' for GRUB.CFG. Ludovic Courtès
2014-05-18guix system: Add 'init' sub-command....* guix/scripts/system.scm (install): New procedure. (guix-system)[parse-option]: Remove check for extraneous arguments. [match-pair, option-arguments]: New procedures. Use 'option-arguments'. Honor 'init'. (show-help): Document 'init'. * doc/guix.texi (Invoking guix system): Document 'init'. Ludovic Courtès
2014-05-18store: Change #:store parameter to #:prefix....* guix/store.scm (register-path): Change #:store to #:prefix. Ludovic Courtès
2014-05-18vm: Avoid resetting timestamps twice....* 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. Ludovic Courtès
2014-05-18system: 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-17store: Add #:store parameter to 'register-path'....* guix/store.scm (register-path): Add #:store and honor it. Ludovic Courtès
2014-05-16linux-initrd: Factorize kernel command-line option parsing....* guix/build/linux-initrd.scm (find-long-option): New procedure. (boot-system): Use it instead of the local 'option'. Ludovic Courtès
2014-05-16guix system: Add 'build' action....* guix/scripts/system.scm (show-help): Document 'build' action. (guix-system): Honor 'build' action. * doc/guix.texi (Invoking guix system): Add 'build' action. Ludovic Courtès
2014-05-16authenticate: Add compatibility hack for Guile 2.0.5....* guix/scripts/authenticate.scm (%default-port-conversion-strategy): New variable. Reported by Andreas Enge <andreas@enge.fr>. Ludovic Courtès
2014-05-15system: Add (guix build install) module....* 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. Ludovic Courtès
2014-05-15vm: Support initialization of the store DB when the store is shared....* 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'. Ludovic Courtès
2014-05-14activation: Silence warning from 'useradd'....* guix/build/activation.scm (add-user): Don't pass '--create-home' when HOME already exists. Ludovic Courtès
2014-05-14linux-initrd: Make /dev/ttyS0, for debugging....* guix/build/linux-initrd.scm (make-essential-device-nodes): Make /dev/ttyS0. Ludovic Courtès
2014-05-14system: When unionfs-fuse is used for /, don't kill it when halting....* 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. Ludovic Courtès
2014-05-14syscalls: Add 'processes' to list all the live processes....* guix/build/syscalls.scm (kernel?, processes): New procedures. Ludovic Courtès
2014-05-11system: 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-10services: 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-10Add (guix build syscalls)....* 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). Ludovic Courtès
2014-05-10linux-initrd: Append to /etc/mtab....* guix/build/linux-initrd.scm (mount-file-system): Open /etc/mtab in append mode. Ludovic Courtès