aboutsummaryrefslogtreecommitdiff
path: root/gnu/build
Commit message (Collapse)AuthorAge
* services: user-homes: Do not create home directories marked as no-create.Ludovic Courtès2017-05-18
| | | | | | | | | | | | Fixes a bug whereby GuixSD would create the /nonexistent directory, from user 'nobody', even though it has 'create-home-directory?' set to #f. * gnu/build/activation.scm (activate-users+groups): Add comment for \#:create-home?. (activate-user-home)[ensure-user-home]: Skip when CREATE-HOME? is #f or SYSTEM? is #t. * gnu/tests/base.scm (run-basic-test)["no extra home directories"]: New tests.
* bootloader: Adapt vm to new bootloader API.Mathieu Othacehe2017-05-16
| | | | | | | | | | | | * gnu/build/install.scm (install-boot-config): New procedure. (install-grub): Move to (gnu bootloader grub). * gnu/build/vm.scm (register-bootcfg-root): Rename register-grub.cfg-root and adjust accordingly. (initialize-hard-disk): Takes a bootloader-package, bootcfg, bootcfg-location and bootloader-installer procedure. Adjust accordingly. * gnu/system/vm.scm (qemu-image): Adjust to initialize-hard-disk. (system-disk-image, system-qemu-image, system-qemu-image/shared-store): Adjust to qemu-image.
* gnu: build: file-systems: Add ISO-9660.Danny Milosavljevic2017-05-03
| | | | | | | | | | | Fixes <https://bugs.gnu.org/26751>. * gnu/build/file-systems.scm (iso9660-superblock?, read-iso9660-primary-volume-descriptor, read-iso9660-superblock, iso9660-superblock-uuid, iso9660-uuid->string, iso9660-superblock-volume-name): New variables. (%partition-label-readers): Add iso9660. (%partition-uuid-readers): Add iso9660.
* vm: Reword grub.cfg to bootcfg.Mathieu Othacehe2017-04-15
| | | | | | | | | | * gnu/build/vm.scm (register-grub.cfg-root): Reword grub.cfg to bootcfg, (initialize-hard-disk): ditto, * gnu/system/vm.scm (system-disk-image): ditto, (system-qemu-image): ditto, (system-qemu-image/shared-store): ditto. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
* file-systems: Allow for bind-mounts of named sockets.Ludovic Courtès2017-04-13
| | | | | | | | | Previously a named socket such as /dev/log would fail the 'regular-file?' test and we'd end up mkdir'ing it. * gnu/build/file-systems.scm (regular-file?): Remove. (mount-file-system): Change (regular-file? source) to (not (file-is-directory? source)).
* build: Fix compilation warnings.Mathieu Othacehe2017-04-11
| | | | | | | | | | | * gnu/build/linux-boot.scm (define-module): Use (guix build syscalls). * gnu/build/linux-modules.scm (define-module): Ditto. * gnu/build/file-systems (define-module): Stop re-exporting mount, umount and MS_* flags as this is now safe to include (guix build syscalls) instead. (mount): Remove procedure. (umount): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* vm: Add missing module.Mathieu Othacehe2017-04-07
| | | | | | | | | | | | | | | | | | | * gnu/build/vm.scm (define-module): Use module (guix build syscalls). It fixes the following warnings during guix build : gnu/build/vm.scm:233:3: warning: possibly unbound variable `mount' gnu/build/vm.scm:238:3: warning: possibly unbound variable `umount' gnu/build/vm.scm:268:8: warning: possibly unbound variable `mount' gnu/build/vm.scm:276:8: warning: possibly unbound variable `umount' gnu/build/vm.scm:315:4: warning: possibly unbound variable `mount' gnu/build/vm.scm:323:4: warning: possibly unbound variable `umount' This was not possible until the previous commit because we had to be sure that Guile core implementation of 'mount' and 'umount' was used in initrd context. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* Merge branch 'master' into core-updatesMarius Bakke2017-03-15
|\
| * pack: Add '--symlink'.Ludovic Courtès2017-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/scripts/pack.scm (self-contained-tarball): Add #:symlinks parameter. [build](symlink->directives): New procedure (directives): New variable. Add call to 'evaluate-populate-directive'. Pass the directories among DIRECTIVES to 'tar'. (%default-options): Add 'symlinks'. (%options, show-help): Add '--symlink'. (guix-pack): Honor it. * gnu/build/install.scm (evaluate-populate-directive): Export. * doc/guix.texi (Invoking guix pack): Document it.
| * pack: Add '--localstatedir' option.Ludovic Courtès2017-03-14
| | | | | | | | | | | | | | | | | | | | | | | | * guix/scripts/pack.scm (self-contained-tarball): Add #:localstatedir? parameter and honor it. (%options, show-help): Add '--localstatedir'. (guix-pack): Honor it. * gnu/build/install.scm (populate-single-profile-directory): Add #:register? parameter and honor it. * doc/guix.texi (Binary Installation): Use '--localstatedir' in example. (Invoking guix pack): Document it.
* | Merge branch 'master' into core-updatesLudovic Courtès2017-03-09
|\|
| * file-systems: Add FAT32 support.David Craven2017-03-01
| | | | | | | | | | | | | | | | | | | | * gnu/build/file-systems.scm (%fat32-endianness, fat32-superblock?, read-fat32-superblock, fat32-superblock-uuid, fat32-uuid->string, fat32-superblock-volume-name, check-fat32-file-system): New variables. (%partition-label-readers, %partition-uuid-readers, check-file-system): Add fat support. (latin1->string): New variable. (null-terminated-latin1->string): Use latin1->string.
* | Merge branch 'master' into core-updatesLudovic Courtès2017-02-10
|\|
| * services: Add 'special-files-service-type'.Ludovic Courtès2017-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | * gnu/build/activation.scm (activate-/bin/sh): Remove. (activate-special-files): New procedure. * gnu/services.scm (activation-script): Remove call to 'activate-/bin/sh'. (special-files-service-type): New variable. (extra-special-file): New procedure. * gnu/services/base.scm (%base-services): Add SPECIAL-FILES-SERVICE-TYPE instance. * gnu/tests/base.scm (run-basic-test)[special-files]: New variables. ["special files"]: New test.
| * Add (gnu build shepherd).Ludovic Courtès2017-02-07
| | | | | | | | | | * gnu/build/shepherd.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
| * linux-container: Add 'container-excursion*'.Ludovic Courtès2017-02-07
| | | | | | | | | | | | * gnu/build/linux-container.scm (container-excursion*): New procedure. * tests/containers.scm ("container-excursion*") ("container-excursion*, same namespaces"): New tests.
| * linux-container: Add comment on exception handling.Ludovic Courtès2017-02-06
| | | | | | | | | | * gnu/build/linux-container.scm (run-container): Add note about writing the exceptions.
| * linux-container: Do not rely on 'isatty?'.Ludovic Courtès2017-02-06
| | | | | | | | | | | | | | | | This avoids problems where 'isatty?' return #t but 'ttyname' fails with ENOTTY or such. * gnu/build/linux-container.scm (mount-file-systems): Remove call of 'isatty?'. Directly call 'ttyname' and catch 'system-error'.
| * activation: Set the right owner for home directories.Ludovic Courtès2017-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression introduced in ae763b5b0b7d5e7316a3d0efe991fe8ab2261031 whereby home directories and skeletons would be root-owned. * gnu/build/activation.scm (copy-account-skeletons): Make 'directory' a keyword parameter. Add #:uid and #:gid and honor them. [set-owner]: New procedure. (activate-user-home): Add call to 'getpw' and 'chown'. Pass UID and GID to 'copy-account-skeletons'. * gnu/tests/base.scm (run-basic-test)["skeletons in home directories"]: Test file ownership under HOME.
* | Merge branch 'master' into core-updatesLeo Famulari2017-02-02
|\|
| * system: Create home directories once 'file-systems' is up.Ludovic Courtès2017-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/21108>. Reported by Andy Patterson <ajpatter@uwaterloo.ca> and Leo Famulari <leo@famulari.name>. * gnu/build/activation.scm (activate-users+groups)[activate-user]: Pass #:create-home? #t iff CREATE-HOME? and SYSTEM?. (activate-user-home): New procedure. * gnu/system/shadow.scm (account-shepherd-service): New procedure. (account-service-type)[extensions]: Add SHEPHERD-ROOT-SERVICE-TYPE extension. * gnu/tests/base.scm (run-basic-test)["home"] ["skeletons in home directories"]: New tests. * gnu/tests/install.scm (%separate-home-os, %separate-home-os-source) (%test-separate-home-os): New variables.
| * file-systems: Do not read superblocks past the end of a device.Ludovic Courtès2017-01-31
| | | | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/25573>. Reported by Alex Kost <alezost@gmail.com>. * gnu/build/file-systems.scm (seek*): New procedure. (read-superblock): Use it instead of 'seek' and ensure it returns OFFSET.
* | utils: Add helper method to make files writable.Marius Bakke2017-01-26
|/ | | | | | * gnu/build/activation.scm (make-file-writable): Move this to ... * guix/build/utils.scm (make-file-writable): ... here. Export it. * guix/build/gnu-build-system.scm (strip): Use it.
* system: Add btrfs file system support.David Craven2017-01-10
| | | | | | | | | | | | | | | | * gnu/build/file-systems.scm (%btrfs-endianness, btrfs-superblock?, read-btrfs-superblock, btrfs-superblock-uuid, btrfs-superblock-volume-name, check-btrfs-file-system): New variables. (%paritition-label-readers, %partition-uuid-readers): Add btrfs readers. * gnu/system/linux-initrd.scm (linux-modules): Add btrfs modules when a btrfs file-system is used. * gnu/tests/install.scm (%btrfs-root-os %btrfs-root-os-source, %btrfs-root-installation-script, %test-btrfs-root-os): New system test. * doc/guix.texi: Adjust accordingly. Fixes <http://bugs.gnu.org/19280>.
* file-systems: Refactor file-system predicates.David Craven2017-01-10
| | | | | | | | | | | | | * gnu/build/file-systems.scm (partition-field-reader, read-partition-field, %partition-label-readers, %partition-uuid-readers, read-partition-label, read-partition-uuid): New variables. (partition-predicate, partition-label-predicate, partition-uuid-predicate, luks-partition-uuid-predicate): Use partition field readers. (find-partition): New variable. (find-partition-by-label, find-partition-by-uuid, find-partition-by-luks-uuid): Use find-partition-by.
* file-systems: Refactor check-file-system.David Craven2017-01-10
| | | | | | * gnu/build/file-systems.scm (check-file-system): Use file-system type specific checker. (check-ext2-file-system): New variable.
* file-systems: Refactor file system detection logic.David Craven2017-01-06
| | | | | | | | | | | | | | | * gnu/build/file-systems.scm (read-superblock, null-terminated-latin1->string): New variables. (sub-bytevector): Move to general section. (ext2-superblock?, read-ext2-superblock): New variables. (ext2-superblock-uuid, ext2-superblock-volume-name): Use sub-bytevector and null-terminated-latin1->string. (%ext2-sblock-magic, %ext2-sblock-creator-os, %ext2-sblock-uuid, %ext2-sblock-volume-name): Inline constants. (luks-superblock?, read-luks-header): New variables. (%luks-header-size, %luks-magic): Inline. (partition-label-predicate, partition-uuid-predicate, luks-partition-uuid-predicate): Use new functions.
* gnu: cross-base: Move phases to (gnu build cross-toolchain).Ludovic Courtès2016-12-07
| | | | | | | | | | * gnu/packages/cross-base.scm (cross-gcc-arguments) <#:phases>: Use 'cross-gcc-build-phases', and move body cross-toolchain.scm. (cross-gcc): Add #:imported-modules. Add (gnu build cross-toolchain) to #:modules. * gnu/build/cross-toolchain.scm: New file, with code from 'cross-gcc-arguments'. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu: Allow nfs file systems to be automatically mounted.John Darrington2016-11-29
| | | | | * gnu/build/file-systems.scm (mount-file-system): Append target addr= when mounting nfs filesystems.
* vm: Avoid needless file copy in 'load-in-linux-vm'.Ludovic Courtès2016-11-28
| | | | | | | Reported by Chris Webber. * gnu/build/vm.scm (load-in-linux-vm)[image-file]: Remove. Directly refer to OUTPUT instead.
* install: Enable "cryptodisk" handling in GRUB.Ludovic Courtès2016-11-23
| | | | | | | | | | | | | | | | | | This allows 'grub-install' to do the right thing when / or /boot is a LUKS-encrypted partition. Fixes <http://bugs.gnu.org/21843>. * gnu/build/install.scm (install-grub): Add 'setenv' to set 'GRUB_ENABLE_CRYPTODISK'. (wait-for-screen-text): New test. * gnu/tests/base.scm (run-basic-test): Add #:initialization parameter and honor it. * gnu/tests/install.scm (%encrypted-root-os)[kernel-arguments]: Remove. (%encrypted-root-installation-script): Pass '--uuid' to 'cryptsetup luksFormat'. Remove 'sed' invocation. (enter-luks-passphrase): New procedure. (%test-encrypted-os)[value]: Pass #:initialization to 'run-basic-test'.
* marionette: Add 'marionette-screen-text' using OCR.Ludovic Courtès2016-11-23
| | | | | * gnu/build/marionette.scm (marionette-screen-text): New procedure. * gnu/tests/base.scm (run-basic-test)["screen text"]: New test.
* marionette: Delay synchronization with the host's REPL.Ludovic Courtès2016-11-23
| | | | | | | | | * gnu/build/marionette.scm (<marionette>)[marionette-repl]: Rename to... [%marionette-repl]: ... this. (marionette-repl): New macro. (make-marionette): Wrap last 'read' call into 'delay', making the last argument to 'marionette' a promise of a port. (marionette-eval): Use 'force' in 'match' clause.
* marionette: Avoid use of SIGALRM for timeouts.Ludovic Courtès2016-11-22
| | | | | * gnu/build/marionette.scm (make-marionette)[accept*]: New procedures. Remove calls to 'sigaction'. Use 'accept*' instead of 'accept'.
* container: Pass a list of <file-system> objects as things to mount.Ludovic Courtès2016-11-10
| | | | | | | | | | | | | | | * gnu/build/linux-container.scm (mount-file-systems): 'mounts' is now a list of <file-system> objects instead of a list of lists ("specs"). Add call to 'file-system->spec' as the argument to 'mount-file-system'. (run-container, call-with-container): Adjust docstring accordingly. * gnu/system/file-systems.scm (spec->file-system): New procedure. * gnu/system/linux-container.scm (container-script)[script]: Call 'spec->file-system' inside gexp. * guix/scripts/environment.scm (launch-environment/container): Remove call to 'file-system->spec'. * tests/containers.scm ("call-with-container, mnt namespace") ("call-with-container, mnt namespace, wrong bind mount"): Pass a list of <file-system> objects.
* install: Extract procedure: install-grub-config.Chris Marusich2016-11-06
| | | | | | | * gnu/build/install.scm (install-grub-config): New procedure. (install-grub): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: build: file-system: Change url of LUKS specification.ng02016-11-06
| | | | | | * gnu/build/file-system.scm: Change url of LUKS specification. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* file-systems: 'disk-partitions' detected partitions from mapped devices.Ludovic Courtès2016-10-27
| | | | | | | | | | Previously, partitions of mdadm- or cryptsetup-produced block devices would not be returned by 'disk-partitions'. * gnu/build/file-systems.scm (disk-partitions)[last-character]: New procedure. [partition?]: Add 'name' parameter and rewrite. Adjust caller. * gnu/build/file-systems.scm (ENOENT-safe): Silently ignore ENOMEDIUM.
* svg: Autoload Guile-RSVG and Guile-Cairo.Ludovic Courtès2016-10-25
| | | | | | | Fixes compilation by 'guix pull' where Guile-{RSVG,Cairo} are missing. Reported by Efraim Flashner. * gnu/build/svg.scm: Use 'module-autoload!' rather than 'module-use!'.
* system: grub: Use Guile-{RSVG,Cairo} instead of Inkscape + ImageMagick.Ludovic Courtès2016-10-25
| | | | | | | | | | | | Based on a suggestion by Andy Wingo at <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00753.html>. * gnu/build/svg.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/system/grub.scm (svg->png): Add #:width and #:height. Rewrite to use (gnu build svg). (resize-image): Remove. (grub-background-image): Adjust accordingly.
* container: Allow 'container-excursion' to the same namespaces.Ludovic Courtès2016-10-19
| | | | | | | | | | | Before that, 'container-excursion' would call 'setns' even when the target namespace is the one the caller is already in, which would fail. * gnu/build/linux-container.scm (container-excursion): Introduce 'source' and 'target'. Compare the result of 'readlink' on these instead of comparing file descriptors to decide whether to call 'setns'. * tests/containers.scm ("container-excursion, same namespace"): New test.
* activation: Don't fail if /var/lib exists.Leo Famulari2016-09-06
| | | | | | | This is a followup to commit 6526d43ea4fb0cd151a0d5e9a072c651c1c963d1. * gnu/build/activation.scm (activate-user+groups): Use mkdir-p to create /var/lib.
* activation: Allow home directories to be created under /var/lib.David Craven2016-09-06
| | | | | * gnu/build/activation.scm (activate-user+groups): Make sure /var/lib exists.
* file-systems: Always use (guix build syscalls).Ludovic Courtès2016-09-05
| | | | | | | | | | * gnu/build/file-systems.scm: Use (guix build syscalls) unconditionally. Override the 'mount' and 'umount' bindings when (guile) provides them. (MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_REMOUNT) (MS_BIND, MS_MOVE): Remove. * guix/build/syscalls.scm (%libc-errno-pointer): Add 'false-if-exception' around 'dynamic-func'.
* tests: Make sure /var/guix/gcroots/profiles is a valid symlink.Ludovic Courtès2016-08-29
| | | | | | | | | | Reported by csanchezdll@gmail.com (Carlos Sánchez de La Lama) at <https://lists.gnu.org/archive/html/guix-devel/2016-08/msg01641.html>. * gnu/build/install.scm (directives): Add /var/guix/gcroots/profiles symlink. * gnu/tests/base.scm (run-basic-test)["/var/guix/gcroots/profiles is a valid symlink"]: New test.
* system: Add 'create-home-directory?' field to <user-account>.Ludovic Courtès2016-08-28
| | | | | | | | | | | | * gnu/system/shadow.scm (<user-account>)[create-home-directory?]: New field. (user-account->gexp): Serialize it. * gnu/build/activation.scm (activate-users+groups)[activate-user]: Update 'match-lambda' pattern accordingly. Pass #:create-home? to 'ensure-user'. (add-user, modify-user, ensure-user): Add #:create-home? parameter and honor it. * doc/guix.texi (User Accounts): Document it.
* vm: 'qemu-command' honors its argument.Ludovic Courtès2016-06-20
| | | | | * gnu/build/vm.scm (qemu-command): Refer to SYSTEM rather than %HOST-TYPE in the body.
* container: Gracefully report mount errors in the child process.Ludovic Courtès2016-05-31
| | | | | | | | | | | | | Fixes <http://bugs.gnu.org/23306>. * gnu/build/linux-container.scm (run-container): Use 'socketpair' instead of 'pipe'. Rename 'in' to 'child' and 'out' to 'parent'. Send a 'ready message or an exception argument list from the child to the parent; adjust the parent accordingly. * tests/containers.scm ("call-with-container, mnt namespace, wrong bind mount"): New test. * tests/guix-environment-container.sh: Add test with --expose=/does-not-exist.
* container: Gracefully handle failure to set up user namespaces.Ludovic Courtès2016-05-31
| | | | | * gnu/build/linux-container.scm (run-container): Exit when the parent process doesn't say 'ready.
* Add (gnu tests) and (gnu build marionette).Ludovic Courtès2016-05-04
| | | | | | * gnu/build/marionette.scm, gnu/tests.scm: New files. * gnu/local.mk (GNU_SYSTEM_MODULES): Add them. * gnu/system/vm.scm (common-qemu-options): Remove '-serial stdio'.