aboutsummaryrefslogtreecommitdiff
path: root/gnu/build
AgeCommit message (Collapse)Author
2017-08-05build: Allow mounting of entire disks.Danny Milosavljevic
* gnu/build/file-systems.scm (disk-partitions): Also return entire drives.
2017-08-03activation: Make sure /etc exists.Ludovic Courtès
Fixes <http://bugs.gnu.org/27146>. Reported by ng0 <ng0@pragmatique.xyz>. * gnu/build/activation.scm (activate-etc): Add call to 'mkdir-p'.
2017-07-18vm: 'iso9660-image' produces a single-file output.Ludovic Courtès
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add #:single-file-output? and pass it to 'load-in-linux-vm'. (iso9660-image): Pass #:single-file-output? to 'expression->derivation-in-linux-vm'. * gnu/build/vm.scm (load-in-linux-vm): Add #:single-file-output? and honor it.
2017-07-18vm: Increase disk size overhead estimate.Tobias Geerinckx-Rice
* gnu/build/vm.scm (estimated-partition-size): Add 25% to the graph size.
2017-07-17build, vm: Use a less common label.Tobias Geerinckx-Rice
* gnu/build/vm.scm (initialize-hard-disk): Use "GuixSD_image" as label. * gnu/system/install.scm (installation-os): Likewise. * gnu/system/vm.scm (system-disk-image): Likewise.
2017-07-12build: Make ISO-9660 image bootable from USB flash drive.Danny Milosavljevic
* gnu/build/vm.scm (make-iso9660-image): Make image bootable from USB flash drive.
2017-07-10build, vm: Use "GuixSD" or "GUIXSD" as volume label.Danny Milosavljevic
* gnu/build/vm.scm (initialize-hard-disk): Use "GuixSD" as label. * gnu/system/install.scm (installation-os): Use "GuixSD" as label. * gnu/system/vm.scm (system-disk-image): Use "GuixSD" or "GUIXSD" as volume label. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2017-07-03build: Add (gnu build file-systems) import.Danny Milosavljevic
* gnu/build/vm.scm: Add (gnu build file-systems) import.
2017-07-03build: Clarify error message when make-iso9660-image fails.Danny Milosavljevic
* gnu/build/vm.scm (make-iso9660-image): Clarify error message.
2017-07-03build: Allow specifying volume-uuid with make-iso9660-image.Danny Milosavljevic
* gnu/build/file-systems.scm (iso9660-uuid->string): Export. * gnu/build/vm.scm (make-iso9660-image): Add volume-uuid.
2017-07-03build: Add iso9660 system image generator.Danny Milosavljevic
* build-aux/hydra/gnu-system.scm (qemu-jobs): Add 'iso9660-image . * gnu/build/vm.scm (make-iso9660-image): New variable. Export it. * gnu/system/vm.scm (iso9660-image): New variable. Use make-iso9660-image. (system-disk-image): Use iso9660-image.
2017-07-02gnu: Switch guile-cairo and dependents to Guile 2.2 again.Ludovic Courtès
Fixes <https://bugs.gnu.org/27551>. Reported by Leo Famulari <leo@famulari.name>. This reinstates the following commits: e3ddb1e83 * gnu: guile-cairo: Switch to Guile 2.2. ae5c6ef39 * gnu: guile-gnome: Update to 2.16.5. 0fd8013fc * gnu: guile-rsvg: Update to commit 05c6a2fd. 66b9183c4 * gnu: guile-lib: Switch to Guile 2.2. and adds the following changes: * gnu/bootloader/grub.scm (svg->png): Add 'package->derivation' call for GUILE-2.2. Pass #:guile-for-build to 'gexp->derivation'. * gnu/build/svg.scm (svg->png): Add 'em' and 'ex' to the 'let-values' form to account for all the values returned by 'rsvg-handle-get-dimensions', which Guile 2.2 does not truncate.
2017-07-02file-systems: iso9660-uuid->string: Use "-" as separator in the result.Danny Milosavljevic
* gnu/build/file-systems.scm (iso9660-uuid->string): Use "-" as separator in the result.
2017-06-30vm: Use 'fold2' from (guix combinators).Ludovic Courtès
* gnu/build/vm.scm: Use (guix combinators). (fold2): Remove.
2017-06-30vm: Estimate the disk size by default.Ludovic Courtès
* gnu/build/vm.scm (estimated-partition-size): New procedure. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:disk-image-size default to 'guess. [builder]: When DISK-IMAGE-SIZE is 'guess, use 'estimated-partition-size' and compute and estimate of the image size. (qemu-image): Likewise. * guix/build/store-copy.scm (file-size, closure-size): New procedures. * guix/scripts/system.scm (%default-options): Change 'image-size' to 'guess. * doc/guix.texi (Building the Installation Image): Remove '--image-size' flag from example. (Invoking guix system): Document the image size estimate.
2017-06-30vm: Display the disk and partition sizes.Ludovic Courtès
* gnu/build/vm.scm (load-in-linux-vm): Add 'format' call when MAKE-DISK-IMAGE? is true. (initialize-partition-table): Show the size of the partitions being created.
2017-06-30vm: Fix 'load-in-linux-vm' docstring.Ludovic Courtès
* gnu/build/vm.scm (load-in-linux-vm): Change default value of #:disk-image-size. Update docstring to note that DISK-IMAGE-SIZE is in bytes.
2017-06-12marionette: Factorize 'wait-for-file'.Ludovic Courtès
* gnu/build/marionette.scm (wait-for-file): New procedure. * gnu/tests/base.scm (run-mcron-test)[test](wait-for-file): Remove. Pass second argument in 'wait-for-file' calls. * gnu/tests/ssh.scm (run-ssh-test)[test](wait-for-file): Remove. Pass second argument in 'wait-for-file' calls. * gnu/tests/messaging.scm (run-xmpp-test)[test](guest-wait-for-file): Remove. Use 'wait-for-file' instead, with second argument.
2017-06-11file-systems: Handle EIO error in 'ENOENT-safe' as well.Adam Van Ymeren
Trying to boot GuixSD when an audio CD is in the drive will die with an "input/output error" when trying to read the superblock from the cd drive. This patch catches and warns in this case rather than dying. * gnu/build/file-systems.scm (ENOENT-safe): Handle EIO. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-06-10file-systems: Provide string->ext*-uuid, string->btrfs-uuid.Danny Milosavljevic
* gnu/build/file-systems.scm (string->ext2-uuid, string->ext3-uuid, string->ext4-uuid, string->btrfs-uuid): New variables. Export them.
2017-06-09file-systems: Provide string->iso9660-uuid.Danny Milosavljevic
* gnu/build/file-systems.scm (string->iso9660-uuid): New variable. Export it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2017-06-07file-systems: Use creation time if modification time is unset for ISO9660.Danny Milosavljevic
* gnu/build/file-systems.scm (iso9660-superblock-uuid): Modify.
2017-06-03file-systems: Improve error handling in the iso9660 case - fixes boot problem.Danny Milosavljevic
* gnu/build/file-systems.scm (read-iso9660-superblock): Modify.
2017-05-31file-systems: Improve error reporting.Danny Milosavljevic
Suggested by Chris Marusich <cmmarusich@gmail.com>. Fixes <https://bugs.gnu.org/27143>. * gnu/build/file-systems.scm (read-iso9660-primary-volume-descriptor): Improve error reporting.
2017-05-31gnu: build: Improve comments.Danny Milosavljevic
* gnu/build/file-systems.scm (iso9660-superblock-volume-name): Add clarifying comment.
2017-05-30activation: Change permissions on /root to #o700.Ludovic Courtès
Reported by Alex Griffin <a@ajgrf.com>. Fixes <http://bugs.gnu.org/27135>. * gnu/build/activation.scm (add-user): When UID is zero, add 'chmod' call. * gnu/tests/base.scm (run-basic-test)["permissions on /root"]: New test.
2017-05-27gnu: build: Improve docstrings.Danny Milosavljevic
* gnu/build/file-systems.scm (iso9660-superblock?, read-iso9660-superblock, iso9660-superblock-uuid): Improve docstrings.
2017-05-19vm: Add UEFI loader to disk images.Marius Bakke
* gnu/build/vm.scm (install-efi): New procedure. (initialize-hard-disk): Generate EFI blob when ESP is present. * gnu/system/vm.scm (qemu-image): Append 40MiB EFI System Partition.
2017-05-19vm: Support creating FAT partitions.Marius Bakke
* gnu/build/vm.scm (create-ext-file-system, create-fat-file-system): New procedures. (format-partition): Use them. Error for unknown file systems. * gnu/system/vm.scm (qemu-image): Include DOSFSTOOLS. * gnu/system/linux-initrd.scm (base-initrd): Always add nls_is8859-1.ko.
2017-05-19vm: Support arbitrary partition flags.Marius Bakke
* gnu/build/vm.scm (<partition>): Change BOOTABLE? to FLAGS. (initialize-partition-table): Pass each flag to parted. (initialize-hard-disk): Locate boot partition. * gnu/system/vm.scm (qemu-image): Adjust partition flags.
2017-05-18services: user-homes: Do not create home directories marked as no-create.Ludovic Courtès
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.
2017-05-16bootloader: Adapt vm to new bootloader API.Mathieu Othacehe
* 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.
2017-05-03gnu: build: file-systems: Add ISO-9660.Danny Milosavljevic
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.
2017-04-15vm: Reword grub.cfg to bootcfg.Mathieu Othacehe
* 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>
2017-04-13file-systems: Allow for bind-mounts of named sockets.Ludovic Courtès
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)).
2017-04-11build: Fix compilation warnings.Mathieu Othacehe
* 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>
2017-04-07vm: Add missing module.Mathieu Othacehe
* 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>
2017-03-15Merge branch 'master' into core-updatesMarius Bakke
2017-03-14pack: Add '--symlink'.Ludovic Courtès
* 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.
2017-03-14pack: Add '--localstatedir' option.Ludovic Courtès
* 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.
2017-03-09Merge branch 'master' into core-updatesLudovic Courtès
2017-03-01file-systems: Add FAT32 support.David Craven
* 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.
2017-02-10Merge branch 'master' into core-updatesLudovic Courtès
2017-02-08services: Add 'special-files-service-type'.Ludovic Courtès
* 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.
2017-02-07Add (gnu build shepherd).Ludovic Courtès
* gnu/build/shepherd.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2017-02-07linux-container: Add 'container-excursion*'.Ludovic Courtès
* gnu/build/linux-container.scm (container-excursion*): New procedure. * tests/containers.scm ("container-excursion*") ("container-excursion*, same namespaces"): New tests.
2017-02-06linux-container: Add comment on exception handling.Ludovic Courtès
* gnu/build/linux-container.scm (run-container): Add note about writing the exceptions.
2017-02-06linux-container: Do not rely on 'isatty?'.Ludovic Courtès
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'.
2017-02-04activation: Set the right owner for home directories.Ludovic Courtès
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.
2017-02-02Merge branch 'master' into core-updatesLeo Famulari