summaryrefslogtreecommitdiff
path: root/gnu/build
AgeCommit message (Expand)Author
2020-05-05vm: Remove obsolete procedures.•••* gnu/build/vm.scm (install-efi, make-iso9660-image): Remove those procedures that are now implemented in (gnu build image) module, (initialize-hard-disk): remove efi support. * gnu/system/vm.scm (iso9660-image): Remove it, (qemu-image): adapt it to remove ISO9660 support. Mathieu Othacehe
2020-05-05image: Add a new API.•••Raw disk-images and ISO9660 images are created in a Qemu virtual machine. This is quite fragile, very slow, and almost unusable without KVM. For all these reasons, add support for host image generation. This implies the use new image generation mechanisms. - Raw disk images: images of partitions are created using tools such as mke2fs and mkdosfs depending on the partition file-system type. The partition images are then assembled into a final image using genimage. - ISO9660 images: the ISO root directory is populated within the store. GNU xorriso is then called on that directory, in the exact same way as this is done in (gnu build vm) module. Those mechanisms are built upon the new (gnu image) module. * gnu/image.scm: New file. * gnu/system/image.scm: New file. * gnu/build/image: New file. * gnu/local.mk: Add them. * gnu/system/vm.scm (system-disk-image): Rename to system-disk-image-in-vm. * gnu/ci.scm (qemu-jobs): Adapt to new API. * gnu/tests/install.scm (run-install): Ditto. * guix/scripts/system.scm (system-derivation-for-action): Ditto. Mathieu Othacehe
2020-05-05build: bootloader: Add install-efi procedure.•••* gnu/build/bootloader.scm (install-efi): New procedure copied from (gnu build vm). (install-efi-loader): New exported procedure, wrapping install-efi. * gnu/build/vm.scm (initialize-hard-disk): Adapt to use install-efi-loader. Mathieu Othacehe
2020-05-05build: install: Do not set store GID.•••There's no need to set the store GID as is will be done by the guix-daemon, with the following snippet: if (chown(chrootStoreDir.c_str(), 0, buildUser.getGID()) == -1) throw SysError(format("cannot change ownership of ‘%1%’") % chrootStoreDir); * gnu/build/install.scm (directives): Do not set store GID. Mathieu Othacehe
2020-05-05build: install: Ignore chown exceptions.•••Changing ownership may require root permissions. As image can now be generated without root permissions (no VM involved), ignore those exceptions. * gnu/build/install.scm (evaluate-populate-directive): Ignore chown exceptions. Mathieu Othacehe
2020-05-03file-systems: Fix UTF-16 handling in initrd.•••Follow-up to f73f4b3a2d7a313a6cb1667bd69205ea4b09f57c. * gnu/build/file-systems.scm (bytevector->u16-list): New procedure. (utf16->string): New procedure. Danny Milosavljevic
2020-05-03file-systems: Fix F2FS volume name accessor.•••Follow-up to 23b37c3d40d497cc6f07437ab26ab10e60fb6e09. * gnu/build/file-systems.scm (bytevector-utf16-length): New procedure. (null-terminated-utf16->string): New procedure. (f2fs-superblock-volume-name): Use it. Danny Milosavljevic
2020-05-02linux-boot: Allow the root file system to be mounted via NFS.•••* gnu/build/linux-boot.scm (boot-system) Treat a root option with ":/" as an nfs source and avoid to call 'canonicalize-device-spec' for it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Stefan
2020-05-02file-systems: Add support for F2FS.•••* gnu/build/file-systems.scm (%f2fs-endianness): New syntax. (f2fs-superblock?, read-f2fs-superblock, f2fs-superblock-uuid) (f2fs-superblock-volume-name, check-f2fs-file-system): New procedures. (%partition-label-readers, %partition-uuid-readers, check-file-system): Register them. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> raingloom
2020-04-10vm: Transparently compress iso9660 images.•••* gnu/build/vm.scm (make-iso9660-image): Use the ‘--zisofs’ xorriso filter at the highest compression settings for supported directories. Tobias Geerinckx-Rice
2020-03-26vm: Distinguish between success and failure of the guest code.•••Fixes <https://bugs.gnu.org/34276>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]: Produce '/xchg/.exit-status' file upon success. * gnu/build/vm.scm (load-in-linux-vm): Check for 'xchg/.exit-status' once QEMU has completed and respond accordingly. Ludovic Courtès
2020-03-22system: Add kernel-loadable-modules to operating-system.•••* gnu/system.scm (<operating-system>): Add kernel-loadable-modules. (operating-system-directory-base-entries): Use it. * doc/guix.texi (operating-system Reference): Document KERNEL-LOADABLE-MODULES. * gnu/build/linux-modules.scm (depmod): New procedure. (make-linux-module-directory): New procedure. Export it. * guix/profiles.scm (linux-module-database): New procedure. Export it. * gnu/tests/linux-modules.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/linux.scm (make-linux-libre*)[arguments]<#:phases>[install]: Disable depmod. Remove "build" and "source" symlinks. [native-inputs]: Remove kmod. Danny Milosavljevic
2020-03-02build: file-systems: Do not warn about file system check for NFS.•••* gnu/build/file-systems.scm (check-file-system): Define a dummy checker procedure for NFS that always passes to prevent a warning from being emitted. Maxim Cournoyer
2020-03-02linux-boot: Ensure volatile root is mounted read-only.•••* gnu/build/linux-boot.scm (mount-root-file-system): Ensure MS_RDONLY is present among the root file system flags when VOLATILE-ROOT? is #t. Maxim Cournoyer
2020-02-22marionette: Provide portable US-layout keystrokes for "<" and ">".•••* gnu/build/marionette.scm (%qwerty-us-keystrokes): Use shit-comma and shift-dot for #\< and #\> because the "less" key doesn't work the same in "US intl." layouts. Ludovic Courtès
2020-02-22marionette: 'wait-for' procedures no longer leak a port.•••* gnu/build/marionette.scm (wait-for-tcp-port): Close SOCK upon success. (wait-for-unix-socket): Likewise. Ludovic Courtès
2020-01-06activation: Check whether /proc/sys/kernel/modprobe exists.•••* gnu/build/activation.scm (activate-modprobe): Check whether /proc/sys/kernel/modprobe exists before writing to it. Co-authored-by: Ludovic Courtès <ludo@gnu.org> kanichos@yandex.ru
2020-01-05file-systems: Handle LUKS2 header.•••* gnu/build/file-systems.scm (luks-superblock?): Handle LUKS2 header. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> David Trudgian
2020-01-03file-systems: Add support for JFS.•••* gnu/build/file-systems.scm (%jfs-endianness): New syntax. (jfs-superblock?, read-jfs-superblock, jfs-superblock-uuid) (jfs-superblock-volume-name, check-jfs-file-system): New procedures. (%partition-label-readers, %partition-uuid-readers, check-file-system): Register them. Tobias Geerinckx-Rice
2020-01-02activation: Keep going when failing to create one of the setuid programs.•••Fixes <https://bugs.gnu.org/38800>. Reported by Jakub Kądziołka <kuba@kadziolka.net>. * gnu/build/activation.scm (activate-setuid-programs): Catch 'system-error' around 'make-setuid-program' calls. Ludovic Courtès
2019-12-18gnu: Remove uses of deprecated Qemu network configuration.•••* gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from ARCH-SPECIFIC-FLAGS to the Qemu command line. Use the "-nic" option of Qemu instead of "-device" and "-net". * gnu/system/vm.scm (common-qemu-options): Do not add a '-net' command. (virtual-machine-compiler): Use "-nic user,..." instead of "-net". * doc/guix.texi (Installing Guix in a VM, Invoking guix system, Running Guix in a VM): Do the same for examples. Marius Bakke
2019-12-12linux-boot: Don't ignore flags when mounting root file system.•••* gnu/build/linux-boot.scm (mount-root-file-system): Add the 'flags' keyword argument and use it when mounting the root file system. (boot-system): Pass the root file system flags to 'mount-root-file-system'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Guillaume Le Vaillant
2019-12-07file-systems: Add support for 'strict-atime' and 'lazy-time' flags.•••* guix/build/syscalls.scm (MS_LAZYTIME): New variable. * gnu/build/file-systems.scm (mount-flags->bit-mask): Add match rules for 'strict-atime' and 'lazy-time'. * doc/guix.texi (File Systems): Add 'strict-atime' and 'lazy-time' to the list of supported flags. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Guillaume Le Vaillant
2019-12-01build: vm: Fix qemu-command procedure.•••* gnu/build/vm.scm (qemu-command): When system is "armhf-linux", use "arm" as qemu cpu prefix. Mathieu Othacehe
2019-11-22system: vm: Add arm64 support.•••* gnu/build/vm.scm (load-in-linux-vm): Add target-arm64? argument and use it to pass correct arguments to qemu. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass the new target-arm64? argument added above. Do not add ESP partition on all ARM targets. Do not pass grub-efi package to initialize-hard-disk on ARM targets. Mathieu Othacehe
2019-11-22build: vm: Fix arm32 support.•••* gnu/build/vm.scm (load-in-linux-vm): Disable qemu highmem support on ARM32 systems. Mathieu Othacehe
2019-11-18linux-boot: Don't ignore options when mounting root file system.•••Fixes <https://bugs.gnu.org/37977>. * gnu/build/linux-boot.scm (mount-root-file-system): Add the 'options' keyword argument and use it when mounting the root file system. (boot-system): Pass the root file system options to 'mount-root-file-system'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Guillaume Le Vaillant
2019-11-18linux-boot: Fix indentation.•••* gnu/build/linux-boot.scm (boot-system): Re-indent. Maxim Cournoyer
2019-11-18file-systems: Fix docstring.•••* gnu/build/file-systems.scm (mount-file-system): Clean the documentation from the no longer existing parameters (these are now encapsulated within a <file-system> record). Maxim Cournoyer
2019-09-27Merge branch 'master' into core-updatesMarius Bakke
2019-09-26shepherd: Ensure the log file has correct ownership.•••* gnu/build/shepherd.scm (make-forkexec-constructor/container): Ensure LOG-FILE has correct ownership. Ludovic Courtès
2019-09-26shepherd: 'make-forkexec-constructor/container' keeps the log file.•••* gnu/build/shepherd.scm (make-forkexec-constructor/container): Don't call 'clean-up' on LOG-FILE. This mirrors Shepherd commit 6892f638c78a14fedd075f664432757bc015c140. Ludovic Courtès
2019-09-25linux-boot: Fix typo.•••* gnu/build/linux-boot.scm (mount-root-file-system): Fix typo. Maxim Cournoyer
2019-09-25build: initrd: Fix "write-cpio-archive" return value.•••* gnu/build/linux-initrd.scm (write-cpio-archive): Really return OUTPUT on success, even when compression is disabled. Maxim Cournoyer
2019-09-17Merge branch 'master' into core-updatesLudovic Courtès
2019-09-12linux-container: "run-container" scripts shows the container's PID.•••* gnu/build/linux-container.scm (call-with-container): Add #:process-spawned-hook and honor it. * gnu/system/linux-container.scm (container-script)[script]: Define 'explain' and pass it as #:process-spawned-hook'. Ludovic Courtès
2019-09-12file-systems: Add /var/run/nscd to '%network-file-mappings'.•••This allows containers created by "guix environment -CN" or by "guix system container -N" to talk to the host nscd. * gnu/system/file-systems.scm (%network-file-mappings): Add "/var/run/nscd". * gnu/build/shepherd.scm (default-mounts)[nscd-socket]: Remove. * gnu/system/linux-container.scm (container-script)[nscd-run-directory] [nscd-mapping, nscd-os, nscd-specs]: Remove. [script]: Filter out from SPECS bind-mounts where the device does not exist. * guix/scripts/environment.scm (launch-environment/container) [optional-mapping->fs]: New procedure. [mappings]: Remove %NETWORK-FILE-MAPPINGS. [file-systems]: Add %NETWORK-FILE-MAPPINGS here, filtered through 'optional-mapping->fs'. Ludovic Courtès
2019-08-29Merge branch 'master' into core-updatesMark H Weaver
2019-08-28gnu: mingw-w64: Update to 6.0.0.•••* gnu/packages/mingw.scm (mingw-w64): Update to 6.0.0. * gnu/packages/patches/mingw-w64-6.0.0-gcc.patch: New file. * gnu/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch: Delete it. * gnu/local.mk (dist_patch_DATA): Add new patch. Delete old patch. * gnu/build/cross-toolchain.scm (set-cross-path/mingw): Add additional autoconf-like substitutions. David Thompson
2019-08-28accounts: Delete duplicate entries.•••When adding multiple instances of a service requiring some user account/group, we could end up with multiple entries for that account or group in /etc/passwd or /etc/group. * gnu/build/accounts.scm (database-writer)[write-entries]: Add call to 'delete-duplicates'. * tests/accounts.scm ("write-passwd with duplicate entry"): New test. Ludovic Courtès
2019-08-22Merge branch 'master' into core-updatesMark H Weaver
2019-08-16linux-modules: Define and use a module name database.•••Fixes <https://bugs.gnu.org/34902>. Reported by Julien Lepiller <julien@lepiller.eu>. * gnu/build/linux-modules.scm (module-formal-name): New procedure. (load-linux-modules-from-directory)[lookup-module]: Remove. [module-name->file-name]: New variable. Use it. (module-name->file-name/guess, module-name-lookup) (write-module-name-database): New procedures. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Call 'write-module-name-database'. Ludovic Courtès
2019-08-16linux-modules: Add 'load-linux-modules-from-directory'.•••* gnu/build/linux-modules.scm (load-linux-modules-from-directory): New procedure. * gnu/build/linux-boot.scm (boot-system)[lookup-module]: Remove. Use 'load-linux-modules-from-directory' instead. Ludovic Courtès
2019-08-16linux-modules: Add "modules.devname" writer.•••* gnu/build/linux-modules.scm (aliases->device-tuple) (write-module-device-database): New procedures. (%not-dash): New variable. Co-authored-by: Danny Milosavljevic <dannym@scratchpost.org>. Ludovic Courtès
2019-08-16linux-modules: Add "modules.alias" writer.•••* gnu/build/linux-modules.scm (write-module-alias-database): New procedure. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Danny Milosavljevic
2019-08-14gnu: mingw: Add x86_64 support.•••This patch parameterizes previously hard-coded instances of i686-w64-mingw32, adding support for x86_64-w64-mingw32. * gnu/packages/mingw.scm (make-mingw-w64): New procedure. (mingw-w64-i686, mingw-w64-x86_64): New variables. (%mingw-triplet): Remove. (mingw-w64): Update to point to 'mingw-w64-i686'. * gnu/packages/cross-base.scm (cross-gcc): Use 'libc' keyword argument if specified, instead of treating it as a boolean. (native-libc): Return the correct mingw-w64 depending on machine specified in target. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "x86_64-mingw". * gnu/build/cross-toolchain.scm (set-cross-path/mingw): Replace hardcoded 'i686-w64-mingw32' instances with 'target' keyword argument. (cross-gcc-build-phases): Update accordingly; use 'target-mingw?' implementation of target checking and add commentary. * gnu/ci.scm (%cross-targets): Add "x86_64-w64-mingw32". Carl Dong
2019-07-12Merge branch 'master' into core-updates••• Conflicts: gnu/local.mk gnu/packages/python-xyz.scm gnu/packages/xml.scm guix/gexp.scm po/guix/POTFILES.in Marius Bakke
2019-07-06linux-container: Mount a new /dev/pts instance in the container.•••Fixes <https://bugs.gnu.org/36463>. Reported by Steffen Rytter Postas <nc@scalehost.eu>. * gnu/build/linux-container.scm (mount-file-systems): When /dev/ptmx exists on the host, explicitly mount a new instance of devpts and make /dev/ptmx a symlink to /dev/pts/ptmx. Ludovic Courtès
2019-06-27Merge branch 'master' into core-updatesLudovic Courtès
2019-06-27accounts: Use 'fsync' instead of 'fdatasync'.•••* gnu/build/accounts.scm (catch-ENOSYS): Remove. (database-writer): Use 'fsync' instead of 'fdatasync'. Ludovic Courtès