summary refs log tree commit diff
path: root/gnu/build
AgeCommit message (Collapse)Author
2018-06-01bootloader: grub: Use 'with-extensions'.Ludovic Courtès
* gnu/bootloader/grub.scm (svg->png): Use 'with-extensions'. Remove 'add-to-load-path' calls. * gnu/build/svg.scm: Use (rsvg) and (cairo) the normal way. Remove 'module-autoload!' calls.
2018-06-01marionette: Add 'wait-for-tcp-port'.Ludovic Courtès
* gnu/build/marionette.scm (wait-for-tcp-port): New procedure. * gnu/tests/dict.scm (run-dicod-test)["connect inside"]: Use it instead of the inline loop.
2018-05-31file-systems: Always wait for devices to show up.Ludovic Courtès
Previously, 'canonicalize-device-spec' would wait for devices when they were specified as a label or UUID, but would not wait when the user passed a "/dev" file name directly. This could cause problems when the /dev node takes a while to show up. * gnu/build/file-systems.scm (canonicalize-device-spec): Add 'resolve' call in the 'string?' case.
2018-05-28system: Remove uses of the 'title' field of <file-system>.Ludovic Courtès
* gnu/system/install.scm (installation-os): Remove uses of the 'title' field of 'file-system'; use 'file-system-label' as appropriate. * gnu/system/vm.scm (system-disk-image, system-qemu-image): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-extlinux-os) (%minimal-os-on-vda, %separate-home-os, %separate-store-os) (%raid-root-os, %encrypted-root-os, %btrfs-root-os): Likewise. * gnu/build/shepherd.scm (default-mounts)[tmpfs]: Likewise. * tests/guix-system.sh: Likewise. * tests/system.scm (%root-fs): Likewise. ("operating-system-boot-mapped-devices, implicit dependency"): Likewise.
2018-05-28file-systems: Remove 'title' field and add <file-system-label>.Ludovic Courtès
The 'title' field was easily overlooked and was an endless source of confusion. Now, the value of the 'device' field is self-contained. * gnu/system/file-systems.scm (<file-system>): Change constructor name to '%file-system'. [title]: Remove. (<file-system-label>): New record type with printer. (report-deprecation, device-expression) (process-file-system-declaration, file-system): New macros. (file-system-title): New procedure. (file-system->spec, spec->file-system): Adjust to handle <file-system-label>. * gnu/system.scm (bootable-kernel-arguments): Add case for 'file-system-label?'. (read-boot-parameters): Likewise. (mapped-device-user): Avoid 'file-system-title'. (fs->boot-device): Remove. (operating-system-boot-parameters): Use 'file-system-device' instead of 'fs->boot-device'. (device->sexp): Add case for 'file-system-label?'. * gnu/bootloader/grub.scm (grub-root-search): Add case for 'file-system-label?'. * gnu/system/examples/bare-bones.tmpl, gnu/system/examples/beaglebone-black.tmpl, gnu/system/examples/lightweight-desktop.tmpl, gnu/system/examples/vm-image.tmpl: Remove uses of 'title'. * gnu/system/vm.scm (virtualized-operating-system): Remove uses of 'file-system-title'. * guix/scripts/system.scm (check-file-system-availability): Likewise, and adjust fix-it hint. (check-initrd-modules)[file-system-/dev]: Likewise. * gnu/build/file-systems.scm (canonicalize-device-spec): Remove 'title' parameter. [canonical-title]: Remove. Match on SPEC's type rather than on CANONICAL-TITLE. (mount-file-system): Adjust caller. * gnu/build/linux-boot.scm (boot-system): Interpret ROOT here. * gnu/services/base.scm (file-system->fstab-entry): Remove use of 'file-system-title'. * doc/guix.texi (File Systems): Remove documentation of the 'title' field. Rewrite documentation of 'device' and document 'file-system-label'.
2018-05-25vm: Pass "panic=1" to Linux.Ludovic Courtès
* gnu/build/vm.scm (load-in-linux-vm): Always pass "panic=1" after '-append'.
2018-05-23vm: Print the label and UUID of partitions.Ludovic Courtès
* gnu/build/vm.scm (create-ext-file-system): Print the label and UUID.
2018-03-27activation: Pass '-d HOME' to 'usermod'.Ludovic Courtès
Fixes a bug whereby changes to user home directories in the OS config would never be effective. Reported by Pierre Neidhardt <ambrevar@gmail.com>. * gnu/build/activation.scm (modify-user): Pass '-d HOME'.
2018-03-24gnu: When building in a VM, share a temporary directory.Chris Marusich
* gnu/build/vm.scm (load-in-linux-vm): Make a shared temporary directory available in the VM. * gnu/system/vm.scm (%linux-vm-file-systems): Add a corresponding entry.
2018-03-24vm: Allow control of deduplication in root-partition-initializer.Chris Marusich
* gnu/build/vm.scm (root-partition-initializer): Add #:deduplicate? keyword argument.
2018-03-18glob: Add an extra glob pattern compilation stage.Ludovic Courtès
* guix/glob.scm (compile-glob-pattern): Rename to... (string->sglob): ... this. (compile-sglob, string->compiled-sglob): New procedures. (glob-match?): Replace '?, 'range, and 'set with a single clause. * tests/glob.scm (test-compile-glob-pattern): Rename to... (test-string->sglob): ... this. Adjust accordingly. (test-glob-match): Use 'string->compiled-sglob' instead of 'compile-glob-pattern'. * gnu/build/linux-modules.scm (read-module-aliases): Use 'string->compiled-sglob' instead of 'compile-glob-pattern'.
2018-03-18linux-modules: 'load-linux-module*' honors BLACK-LIST in recursive calls.Ludovic Courtès
* gnu/build/linux-modules.scm (load-linux-module*): Pass BLACK-LIST in recursive call.
2018-03-18linux-modules: Add 'current-kernel-directory'.Ludovic Courtès
* gnu/build/linux-modules.scm (current-kernel-directory): New procedure. (current-alias-file): Use it.
2018-03-16vm: Pass "-append ..." only once.Danny Milosavljevic
* gnu/build/vm.scm (load-in-linux-vm): Pass "-append ..." only once.
2018-03-15vm: Use 'invoke' instead of 'system*'.Ludovic Courtès
* gnu/build/vm.scm (load-in-linux-vm, initialize-partition-table) (create-ext-file-system, create-fat-file-system) (install-efi, make-iso9660-image): Use 'invoke' instead of (unless (zero? (system* ...)) (error ...)).
2018-03-03linux-modules: Add module-aliases.Danny Milosavljevic
* gnu/build/linux-modules.scm (module-aliases): New variable.
2018-03-02linux-modules: Add 'device-module-aliases' and related procedures.Ludovic Courtès
* gnu/build/linux-modules.scm (readlink*, stat->device-major) (stat->device-minor): New procedures. (%not-slash): New variable. (read-uevent, device-module-aliases, read-module-aliases) (current-alias-file, known-module-aliases, matching-modules): New procedures.
2018-02-28linux-modules: Use 'load-linux-module/fd'.Ludovic Courtès
This should be more efficient than loading the whole thing in user space. * gnu/build/linux-modules.scm (load-linux-module*): Use 'load-linux-module/fd' instead of 'load-linux-module'. Remove 'slurp'.
2018-02-19marionette: Use QEMU's "VM channel" mechanism.Ludovic Courtès
* gnu/tests.scm (<marionette-configuration>)[device]: Default to "/dev/virtio-ports/org.gnu.guix.port.0". * gnu/tests.scm (marionette-shepherd-service): Remove (guix build syscalls) from 'modules'. Remove 'tcsetattr' call from 'start'. * gnu/build/marionette.scm (make-marionette): Use "-virtserialport" instead of "-virtconsole".
2018-02-06gnu: build: linux-boot: Remove bind-mount export.Christopher Baines
bind-mount is not contained within this module. * gnu/build/linux-boot.scm: Remove bind-mount export.
2018-02-01linux-boot: Add find-long-options.Danny Milosavljevic
* gnu/build/linux/boot.scm (find-long-options): New variable.
2018-01-19gnu: Consistently Write ‘file system(s)’.Tobias Geerinckx-Rice
It is the GNU way. * doc/guix.texi (Build Systems, DNS Services): Write ‘file system(s)’. * gnu/build/vm.scm (create-ext-file-system, create-fat-file-system): Likewise. * gnu/packages/backup.scm (dirvish, rsnapshot)[description]: Likewise. * gnu/packages/check.scm (python-testpath)[description]: Likewise. * gnu/packages/disk.scm (pydf)[description]: Likewise. * gnu/packages/file-systems.scm (disorderfs)[synopsis, description]: Likewise. (glusterfs)[description]: Likewise. * gnu/packages/haskell.scm (ghc-directory, ghc-system-fileio-bootstrap) (ghc-system-fileio)[synopsis]: Likewise. (ghc-fsnotify)[description]: Likewise. * gnu/packages/linux.scm (proot)[description]: Likewise. (jmtpfs)[synopsis, description]: Likewise. * gnu/packages/mate.scm (caja, caja-extensions)[description]: Likewise. * gnu/packages/storage.scm (ceph)[description]: Likewise. * gnu/packages/sync.scm (lsyncd)[description]: Likewise. * gnu/packages/syncthing.scm (syncthing)[synopsis]: Likewise. (go-github-com-zillode-notify)[description]: Likewise. * gnu/services/nfs.scm (pipefs-service-type): Likewise. * guix/scripts/system.scm (perform-action): Likewise.
2018-01-15linux-container: Work around EBADF errors upon exit.Ludovic Courtès
Typically 'read-pid-file/container' would fail when starting services in containers such as BitlBee. * gnu/build/linux-container.scm (call-with-clean-exit): Use 'primitive-_exit' instead of 'primitive-exit'. (container-excursion*): Close OUT.
2018-01-08linux-boot: Add #:on-error for initrd error handling.Ludovic Courtès
Suggested by Danny Milosavljevic <dannym@scratchpost.org> in <https://bugs.gnu.org/29922>. * gnu/build/linux-boot.scm (boot-system): Add #:on-error parameter and pass it to 'call-with-error-handling'. * gnu/system/linux-initrd.scm (raw-initrd): Add #:on-error and pass it. (base-initrd): Likewise.
2017-12-18vm: Pass the host's /dev/urandom to the guest at /dev/hwrng.Leo Famulari
* gnu/build/vm.scm (load-in-linux-vm): Use QEMU's virtio-rng-pci. * gnu/system/vm.scm (common-qemu-options): Likewise.
2017-12-16linux-boot: Add make-static-device-nodes.Danny Milosavljevic
* gnu/build/linux-boot.scm (make-static-device-nodes): New variable. (<device-node>): New variable. (read-static-device-nodes): New variable. (report-system-error): New variable. (catch-system-error): New variable. (create-device-node): New variable. (mkdir-p*): New variable. Co-Authored-By: Ludovic Courtès <ludo@gnu.org>
2017-12-15bootloader: Factorize write-file-on-device.Mathieu Othacehe
* gnu/bootloader/extlinux.scm (install-extlinux): Factorize bootloader writing in a new procedure write-file-on-device defined in (gnu build bootloader). * gnu/build/bootloader.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add new file. * gnu/system/vm.scm (qemu-img): Adapt to import and use (gnu build bootloader) module during derivation building. * gnu/scripts/system.scm (bootloader-installer-derivation): Ditto.
2017-12-15vm: Adapt qemu command to ARM.Mathieu Othacehe
* gnu/build/vm.scm (load-in-linux-vm): New argument #:target-arm32. Use it to adapt command for qemu-system-arm. This implies to choose a machine ("virt"), use the correct console port "ttyAMA0", disable KVM use that is buggy on some ARM boards (Odroid XU4 for example) and use user mode network stack instead of NIC. Gather all those options in a new variable "arch-specific-flags". * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass to load-in-linux-vm "#:target-arm32?" argument.
2017-12-13vm: Use qemu drive device parameter.Mathieu Othacehe
* gnu/build/vm.scm (load-in-linux-vm): Use device parameter to define drive device.
2017-12-02linux-boot: Remove unneeded import.Ludovic Courtès
* gnu/build/linux-boot.scm: Remove unnecessary autoload of (system base compile).
2017-11-29vm: ISO9660 images include /etc and other standard files.Ludovic Courtès
* gnu/build/vm.scm (make-iso9660-image): Call 'populate-root-file-system' instead of a series of 'mkdir-p' calls. Add /etc to the arguments of xorriso.
2017-11-29linux-boot: Ensure /etc exists on the root file system.Ludovic Courtès
Fixes a regression introduced in c8289690365887ca1dd122645e479a89cf7cd969 whereby /etc would no longer be created as a result of calling 'mark-as-not-killable'. This would affect ISO images because 'make-iso9660-image' does not create /etc by default. In particular, the ISO installation image as created by the "iso-image-installer" test would fail to boot while creating the /root/etc/mtab symlink: <https://hydra.gnu.org/build/2352514/nixlog/9/raw>. * gnu/build/linux-boot.scm (mount-root-file-system): Make sure /root/etc exists.
2017-11-22shepherd: Include /etc/group in service containers.Ludovic Courtès
* gnu/build/shepherd.scm (default-mounts)[passwd]: Rename to... [accounts]: ... this. Add /etc/group.
2017-11-08build: Use overlayfs instead of unionfs.Hartmut Goebel
Overlayfs is part of the kernel, while unionfs needs FUSE. This also reduces the size of the initrd by ca. 4.3% (487K). * gnu/build/linux-boot.scm (mount-root-file-system): Remove optional parameter "unionfs"; mount using overlayfs instead of unionfs; new directory layout requied by overlayfs; update documentation. [mark-as-not-killable]: Remove now unused function * gnu/system/linux-initrd.scm (file-system-packages): Remove now unused packages "unionfs-fuse/static" and thus unused related 'if'. (linux-modules): Replace "fuse" by "overlay".
2017-10-11file-systems: Add support for FAT16.Ludovic Courtès
* gnu/build/file-systems.scm (check-fat32-file-system): Rename to... (check-fat-file-system): ... this. (check-file-system): Adjust accordingly. (fat16-superblock?, read-fat16-superblock) (fat16-superblock-uuid, fat16-superblock-volume-name): New procedures. (%partition-label-readers, %partition-uuid-readers): Add FAT16.
2017-10-11file-systems: Preserve UUID types when serializing.Ludovic Courtès
Reported by Roel Janssen <roel@gnu.org> at <https://lists.gnu.org/archive/html/help-guix/2017-09/msg00094.html>. * gnu/system/file-systems.scm (file-system->spec): When DEVICE is a UUID, serialize it in a way that preserves its type. (spec->file-system): Adjust accordingly. * gnu/build/file-systems.scm (canonicalize-device-spec): Add case for when SPEC is 'uuid?'.
2017-10-11file-systems: 'mount-file-system' now takes a <file-system> object.Ludovic Courtès
* gnu/build/file-systems.scm (mount-file-system): Rename 'spec' to 'fs' and assume it's a <file-system>. * gnu/build/linux-boot.scm (boot-system): Assume MOUNTS is a list of <file-system> and adjust accordingly. * gnu/build/linux-container.scm (mount-file-systems): Remove 'file-system->spec' call. * gnu/services/base.scm (file-system-shepherd-service): Add 'spec->file-system' call. Add (gnu system file-systems) to 'modules'. * gnu/system/linux-initrd.scm (raw-initrd): Use (gnu system file-systems). Add 'spec->file-system' call for #:mounts.
2017-10-08activation: Do not create setuid binaries in the store [security fix].Ludovic Courtès
Fixes <https://bugs.gnu.org/28751>. * gnu/build/activation.scm (activate-setuid-programs)[link-or-copy]: Remove. Use 'copy-file' instead.
2017-10-05uuid: Add 'uuid=?' and use it.Ludovic Courtès
* gnu/system/uuid.scm (uuid=?): New procedure. * tests/uuid.scm ("uuid=?"): New test. * gnu/build/file-systems.scm (partition-uuid-predicate) (luks-partition-uuid-predicate): Use it instead of 'bytevector=?'.
2017-09-22build: Do not store two copies of the ISO-9660 superblock anymore.Danny Milosavljevic
* gnu/build/vm.scm (make-iso9660-image): Do not store two copies of the ISO-9660 superblock anymore.
2017-09-11file-systems: Introduce (gnu system uuid).Ludovic Courtès
* gnu/build/file-systems.scm (sub-bytevector) (latin1->string, %fat32-endianness, fat32-uuid->string) (%iso9660-uuid-rx, string->iso9660-uuid) (iso9660-uuid->string, %network-byte-order) (dce-uuid->string, %uuid-rx, string->dce-uuid) (string->ext2-uuid, string->ext3-uuid, string->ext4-uuid) (vhashq, %uuid-parsers, %uuid-printers, string->uuid) (uuid->string): Move to... * gnu/system/uuid.scm: ... here. New file. * gnu/system/file-systems.scm (uuid): Move to the above file. * gnu/system/vm.scm: Adjust accordingly. * gnu/local.mk (GNU_SYSTEM_MODULES): Add uuid.scm.
2017-09-11file-systems: Add UUID type dictionaries.Ludovic Courtès
* gnu/build/file-systems.scm (uuid->string): Rename to... (dce-uuid->string): ... this. (string->uuid): Rename to... (string->dce-uuid): ... this. (vhashq): New macro. (%uuid-parsers, %uuid-printers): New variables. (uuid->string, string->uuid): New procedures.
2017-09-11vm: Allow partitions to be initialized with a given UUID.Ludovic Courtès
* gnu/build/vm.scm (<partition>)[uuid]: New field. (create-ext-file-system): Add #:uuid and honor it. (create-fat-file-system): Add #:uuid. (format-partition): Add #:uuid and honor it. (initialize-partition): Honor the 'uuid' field of PARTITION.
2017-09-10vm: Add comment about deduplication in make-iso9660-image.Christopher Baines
* gnu/build/vm.scm (make-iso9660-image): Add comment about the use of #:deduplicate #f when calling register-closure.
2017-09-08marionette: 'wait-for-file' can be passed a read procedure.Ludovic Courtès
* gnu/build/marionette.scm (wait-for-file): Add #:read parameter and honor it. * gnu/tests/base.scm (run-basic-test)["login on tty1"]: Use 'wait-for-file' instead of inline code.
2017-09-06vm: Create /mnt in the generated ISO image in make-iso9660-image.Christopher Baines
This is used in the installation process, as the mountpoint for the target filesystem. * gnu/build/vm.scm (make-iso9660-image): Create /mnt within the generated ISO image.
2017-09-06vm: Add support for registering closures to make-iso9660-image.Christopher Baines
This mimics the functionality in the root-partition-initializer used in creating the QEMU image. This helps when trying to run guix system init from the generated ISO image. * gnu/build/vm.scm (make-iso9660-image): Add support for registering closures.
2017-08-28marionette: Augment the set of keystrokes.Ludovic Courtès
* gnu/build/marionette.scm (%qwerty-us-keystrokes): Add ', ", and `.
2017-08-28marionette: Fix typing of capital letters.Ludovic Courtès
Previously we'd use "sendkey P" instead of "sendkey shift-p", which had no effect. * gnu/build/marionette.scm (character->keystroke): New procedure. (string->keystroke-commands): Use it.
2017-08-28marionette: 'wait-for-file' really raises an error when a file is missing.Ludovic Courtès
* gnu/build/marionette.scm (wait-for-file): Arrange to call 'error' on the host, not in the guest.