aboutsummaryrefslogtreecommitdiff
path: root/gnu/build
Commit message (Collapse)AuthorAge
* Revert "gnu: system: Add home-directory-permissions field to <user-account>."Tobias Geerinckx-Rice2023-08-20
| | | | | | | | | | | | | | | | | This reverts commit e9a5eebc785cb843034b38c5c5a6dd10904bdf2a, which as far as I can tell breaks system roll-backs thusly: [...] In gnu/build/accounts.scm: 239:27 3 (_ #<<password-entry> name: "root" password: "x" uid: 0 gid: 0 real-name: "System >) In unknown file: 2 (string-join ("root" "x" "0" "0" "System administrator" "/root" #t) ":" #<undefined>) In ice-9/boot-9.scm: 1685:16 1 (raise-exception _ #:continuable? _) 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure string-append: Wrong type (expecting string): #t
* gnu: system: Add home-directory-permissions field to <user-account>.David Thompson2023-08-25
| | | | | | | | | | | * gnu/system/accounts.scm (<user-account>)[home-directory-permissions]: New field. (user-account-home-directory-permissions): New accessor. * gnu/build/activation.scm (activate-users+groups): Use home directory permission bits from the user account object. * doc/guix.texi (User Accounts): Document new field. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
* marionette: Allow passing custom OCR arguments.Bruno Victal2023-07-19
| | | | | | | | * gnu/build/marionette.scm (%default-ocrad-arguments): New variable. (invoke-ocrad-ocr, invoke-tesseract-ocr, marionette-screen-text) [ocr-arguments]: New argument. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* hurd-boot: Cater for netdde.Janneke Nieuwenhuizen2023-07-13
| | | | | | | * gnu/build/hurd-boot.scm (set-hurd-device-translators): Setup translators for netdde, eth{0,1}. Create /servers/socket/{inet,inet6} symlinks. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
* hurd-boot: Setup pci-arbiter and rumpdisk translators.Janneke Nieuwenhuizen2023-07-13
| | | | | | | | * gnu/build/hurd-boot.scm (make-hurd-device-nodes): Create "servers/bus/pci. (set-hurd-device-translators): Create transators for pci-arbiter, rumpdisk, and /dev/wd0..3s1..4. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
* gnu: image: Add support for unformatted partitions.Efraim Flashner2023-06-14
| | | | | | | * gnu/build/image.scm (make-unformatted-image): New procedure. (make-partition-image): Add support for unformatted partition. * gnu/system/image.scm (system-disk-image)[partition->gpt-type]: Add case for using unformatted partition uuid.
* hurd-boot: Symlink /hurd before setting up translators.Josselin Poiret2023-05-17
| | | | | | | * gnu/build/hurd-boot.scm (boot-hurd-system): Symlink /hurd before setting up translators. Reviewed-by: Janneke Nieuwenhuizen <janneke@gnu.org>
* services: dbus-service, secret-service: Do not cause (fibers) to be loaded.Ludovic Courtès2023-05-06
| | | | | * gnu/build/dbus-service.scm (sleep*): Pass #:ensure #f to 'resolve-module'. * gnu/build/secret-service.scm (wait-for-readable-fd): Likewise.
* file-systems: Validate 'no-diratime flag.Tobias Geerinckx-Rice2023-02-26
| | | | | | | | This follows up on commit c0773455397746b10194bc14c7cef144f4095b65, and adds a comment to avoid this in future. * gnu/system/file-systems.scm (invalid-file-system-flags): Add 'no-diratime to the list of KNOWN-FLAGS.
* linux-container: 'container-excursion' forks to join the PID namespace.Ludovic Courtès2023-01-30
| | | | | | | | | | Fixes <https://issues.guix.gnu.org/61156>. * gnu/build/linux-container.scm (container-excursion): Add extra call to 'primitive-fork' and invoke THUNK in the child process. * tests/containers.scm ("container-excursion"): Remove extra 'primitive-fork' call, now unnecessary. ("container-excursion*, /proc"): New test.
* container: Correctly report exit status.Ludovic Courtès2023-01-30
| | | | | | | | | * gnu/build/linux-container.scm (container-excursion): Return the raw status value. * tests/containers.scm ("container-excursion, same namespaces"): Add 'status:exit-val' call. * guix/scripts/container/exec.scm (guix-container-exec): Correctly handle the different cases.
* hurd-boot: Fix list of devices with translators.Ludovic Courtès2022-12-24
| | | | | | | | | | Fixes a regression introduced in 450f7740283ce160a7482d1c75e6e0ab17f2a6f0 and e3c6575ee93741a43003cd1aa4663151dd90b9f5, which introduced unquote-splicing without changing quote to quasiquote. * gnu/build/hurd-boot.scm (set-hurd-device-translators)[devices]: Use quasiquote, note quote.
* activation: Firmware activation handles missing support in kernel.Marius Bakke2022-12-17
| | | | | * gnu/build/activation.scm (activate-firmware): Check if firmware loading is enabled before attempting to use it.
* Merge branch 'version-1.4.0'Ludovic Courtès2022-12-12
|\
| * install: 'umount-cow-store' retries upon EBUSY.Ludovic Courtès2022-12-10
| | | | | | | | | | | | | | Possibly fixes <https://issues.guix.gnu.org/59884>. * gnu/build/install.scm (umount*): New procedure. (unmount-cow-store): Use it instead of 'umount'.
* | image: Use 512 byte blocks for EFI partitions.Efraim Flashner2022-12-12
| | | | | | | | | | | | | | Addresses <https://issues.guix.gnu.org/59695>. * gnu/build/image.scm (make-vfat-image): When creating a fat filesystem for UEFI bootable partition use 512 byte blocks.
* | system: hurd: Create more ttys.Ludovic Courtès2022-11-28
| | | | | | | | | | | | | | * gnu/build/hurd-boot.scm (set-hurd-device-translators)[devices]: Add more /dev/ttyN nodes. * gnu/system/hurd.scm (%base-services/hurd): Add more 'hurd-getty-service-type' instances.
* | hurd-boot: Explain why 'getxattr' cannot be used on GNU/Hurd.Ludovic Courtès2022-11-28
| | | | | | | | | | | | | | This is a followup to f25e8f76fec03e5a31c221e7427d6962ece1aa67. * gnu/build/hurd-boot.scm (translated?): Clarify why 'getxattr' cannot be used on GNU/Hurd.
* | hurd-boot: Create more PTY nodes.Ludovic Courtès2022-11-28
|/ | | | | * gnu/build/hurd-boot.scm (set-hurd-device-translators): Create more /dev/ptyp* and /dev/ttyp* nodes.
* file-systems: Always do recursive bind mounts.Ricardo Wurmus2022-11-20
| | | | | | | | Fixes <https://issues.guix.gnu.org/59185>. * guix/build/syscalls.scm (MS_REC): New variable. * gnu/build/file-systems.scm (mount-flags->bit-mask): Set MS_REC bit when bind-mounting.
* tests: root-unmount: Wait for the first QEMU process to finish.Ludovic Courtès2022-11-17
| | | | | | | | There was a tiny possibility that the first QEMU process would still be running by the time we launch the second one. * gnu/build/marionette.scm (marionette-pid): Export. * gnu/tests/base.scm (run-root-unmount-test)[test]: Add 'waitpid' call.
* install: Validate symlink target in evaluate-populate-directive.Maxim Cournoyer2022-11-15
| | | | | | | * gnu/build/install.scm (evaluate-populate-directive): By default, error when the target of a symlink doesn't exist. Always ensure TARGET ends with "/". (populate-root-file-system): Call evaluate-populate-directive with #:error-on-dangling-symlink #t and add comment.
* linux-modules: Add 'load-pci-device-database'.Ludovic Courtès2022-11-15
| | | | | * gnu/build/linux-modules.scm (read-pci-device-database) (load-pci-device-database): New procedures.
* linux-modules: Add support for listing PCI devices.Ludovic Courtès2022-11-15
| | | | | | * gnu/build/linux-modules.scm (<pci-device>): New record type. (pci-device-class-predicate, storage-pci-device?, network-pci-device?) (display-pci-device?, pci-devices?): New procedures.
* file-systems: Gracefully handle EMEDIUMTYPE in 'read-partitions'.Marius Bakke2022-11-03
| | | | * gnu/build/file-systems.scm (ENOENT-safe): Catch EMEDIUMTYPE and warn.
* file-systems: Support the 'no-diratime' mount flag.Ludovic Courtès2022-10-20
| | | | | * gnu/build/file-systems.scm (mount-flags->bit-mask): Handle 'no-diratime'. * doc/guix.texi (File Systems): Document it.
* marionette: Add a callback arguments to wait-for-screen-text.Maxim Cournoyer2022-10-07
| | | | | | * gnu/build/marionette.scm (wait-for-screen-text): New 'pre-action' and 'post-action' arguments. Update doc. Call the procedures before and after the OCR occurs, respectively.
* marionette: Define keystrokes for typing colons and exclamation marks.Maxim Cournoyer2022-10-07
| | | | | * gnu/build/marionette.scm (%qwerty-us-keystrokes): Register keystrokes for the ':' and '!' characters.
* marionette: Preserve screen dumps on failures.Maxim Cournoyer2022-10-07
| | | | | | | | | | | This is to make it easier to debug test failures involving 'wait-for-screen-text': the screendump image used for the OCR is now preserved for inspection when 'wait-for-screen-text' fails. * gnu/build/marionette.scm (marionette-screen-text): Return the screendump image file as the second value. Adjust doc. (wait-for-screen-text): Add the preserved screendump image file name to the error message. Adjust doc.
* marionette: Make marionette-screen-text private.Maxim Cournoyer2022-10-07
| | | | | | | It has only one user, which is better suited for wait-for-screen-text anyway. * gnu/tests/base.scm (run-basic-test): Refactor to use wait-for-screen-text instead of marionette-screen-text.
* linux-container: Mark socket pair as SOCK_CLOEXEC.Ludovic Courtès2022-09-24
| | | | | * gnu/build/linux-container.scm (run-container): Pass SOCK_CLOEXEC to 'socketpair'.
* build: jami-service: account->username always return a fingerprint.Maxim Cournoyer2022-09-23
| | | | | | | | | | | This change is motivated by the fact that Account.registeredName is a volatile account data, not exported along the account and retrieved from the name server. Have it always return Account.username instead, so that the result is reproducible independent of whether networking is available or not. * gnu/build/jami-service.scm (account->username): Always return the account fingerprint. Adjust doc. (id->username): Likewise.
* linux-container: 'container-excursion*' marks its FDs as FD_CLOEXEC.Ludovic Courtès2022-09-20
| | | | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/57827>. Reported by Mathieu Othacehe <othacehe@gnu.org>. Fixes a regression introduced with the Shepherd 0.9.2 upgrade in 1ba0e38267c9ff8bb476285091be6e297bbf136e, whereby IN and OUT would no longer be closed when 'fork+exec-command/container' would call 'exec-command*' as part of the THUNK passed to 'container-excursion*'. This is because the Shepherd 0.9.2 assumes file descriptors are properly marked as O_CLOEXEC and, consequently, 'exec-command' no longer run the close(2) loop prior to 'exec'. * gnu/build/linux-container.scm (container-excursion*): Add calls to 'fcntl'.
* marionette: Avoid read error when wait-for-file file is empty.Christopher Baines2022-09-16
| | | | | | | | Since #<eof> can't be read. * gnu/build/marionette.scm (wait-for-file): Return "" if file is empty. Partially-Fixes: https://issues.guix.gnu.org/57827
* marionette: Make it easier to debug REPL read failures.Christopher Baines2022-09-16
| | | | | | | | | | Log the remaining contnet written to the REPL, so that there's more to go on than: socket:5:14: Unknown # object: "#<" * gnu/build/marionette.scm (marionette-eval): Catch exceptions from read and log the remainder of the content from the REPL.
* secret-service: Mark sockets as SOCK_CLOEXEC.Ludovic Courtès2022-09-13
| | | | | * gnu/build/secret-service.scm (secret-service-send-secrets) (secret-service-receive-secrets): Pass SOCK_CLOEXEC to 'socket'.
* file-systems: Open files with O_CLOEXEC.Ludovic Courtès2022-09-08
| | | | | | | | | Since this code is run from PID 1, this ensures file descriptors to sensitive files and devices are not accidentally leaked to sub-processes. * gnu/build/file-systems.scm (call-with-input-file): New procedure. (mount-file-system): Use 'close-fdes' + 'open-fdes'.
* linux-boot: Resume from hibernation after pre-boot.Jack Hill2022-09-04
| | | | | | | * gnu/build/linux-boot.scm (boot-system): Call resume-if-hibernated after pre-mount. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
* shepherd: Set #o640 permissions for log file of service in container.Arun Isaac2022-09-02
| | | | | * gnu/build/shepherd.scm (make-forkexec-constructor/container): Set #o640 permissions for log file.
* build: image: Make partition uuid optional.Mathieu Othacehe2022-08-30
| | | | | | | The uuid field of <partition> defaults to #false. This should be reflected when creating the partition. * gnu/build/image.scm (make-ext-image): Make it optional.
* build: image: Remove unused variable.Mathieu Othacehe2022-08-30
| | | | * gnu/build/image.scm (make-ext-image): Remove the unused flags variable.
* build: marionette: Add support for Tesseract OCR.Maxim Cournoyer2022-08-28
| | | | | | | | | | | * gnu/build/marionette.scm (invoke-ocrad-ocr): New procedure. (invoke-tesseract-ocr): Likewise. (marionette-screen-text): Rename the #:ocrad argument to #:ocr. Dispatch the matching OCR invocation procedure. (wait-for-screen-text): Rename the #:ocrad argument to #:ocr. * gnu/tests/base.scm (run-basic-test): Adjust accordingly. * gnu/tests/install.scm (enter-luks-passphrase): Likewise. (enter-luks-passphrase-for-home): Likewise.
* marionette: Improve the error message of 'wait-for-screen-text'.Maxim Cournoyer2022-08-28
| | | | | * gnu/build/marionette.scm (wait-for-screen-text): Return the last OCR'd text when the predicate fails to match instead of the not useful predicate object.
* build: marionette: Adjust QEMU Info manual reference.Maxim Cournoyer2022-08-11
| | | | | * gnu/build/marionette.scm (marionette-control): Update doc to correct the QEMU Info manual reference.
* gnu: system: file-systems: Add shared flag.Oleg Pykhalov2022-08-10
| | | | | | | | | * gnu/build/file-systems.scm (mount-flags->bit-mask, mount-file-system): Handle shared flag. * gnu/system/file-systems.scm (invalid-file-system-flags): Add shared to known flags. * guix/build/syscalls.scm (MS_SHARED): New variable. * doc/guix.texi (File Systems): Document shared flag.
* tests: Add qemu-guest-agent system test.Timotej Lazar2022-08-09
| | | | | | | | | | | Enable the QEMU guest agent interface in marionette VMs, run the qemu-guest-agent service in one and try talking to it. * gnu/build/marionette.scm (make-marionette): Enable the guest agent device. * gnu/tests/virtualization.scm (run-qemu-guest-agent-test): New procedure. (%test-qemu-guest-agent): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: modifying make-chromium-extension to rely on node-crx3.Nicolas Graves2022-07-20
| | | | | | | * gnu/build/chromium-extension.scm (make-crx): Lift Xorg and Chromium dependencies, rely on node-crx3 instead. Signed-off-by: Marius Bakke <marius@gnu.org>
* file-systems: Add 'cleanly-unmounted-ext2?'.Ludovic Courtès2022-07-01
| | | | | * gnu/build/file-systems.scm (ext2-superblock-cleanly-unmounted?) (cleanly-unmounted-ext2?): New procedures.
* image: Add support for 32bit UEFI.Denis 'GNUtoo' Carikli2022-06-24
| | | | | | | | | | | | | | | | | * gnu/bootloader/grub.scm (grub-efi32-bootloader): New variable. (install-grub-efi32): New variable. * gnu/build/bootloader.scm (install-efi): Add a 'targets' keyword argument. (install-efi-loader): Likewise. * gnu/build/image.scm (initialize-efi32-partition): New procedure. * gnu/packages/bootloaders.scm (grub-efi32): New variable. * gnu/system/image.scm (esp32-partition): New variable (efi32-disk-image): New variable. (efi32-raw-image-type): New variable. (system-disk-image)[partition-image]: Set '#:grub-efi32' when calling the partition initializer. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* services: jami: Modernize to adjust to Shepherd 0.9+ changes.Maxim Cournoyer2022-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This partially fixes <https://issues.guix.gnu.org/54786>, allowing the 'jami' and 'jami-provisioning' system tests to pass again. In version 0.9.0, Shepherd constructors are now run concurrently, via cooperative scheduling (Guile Fibers). The Jami service previously relied on blocking sleeps while polling for D-Bus services to become ready after forking a process; this wouldn't work anymore since while blocking the service process wouldn't be given the chance to finish starting. The new reliance on Fibers in Shepherd's fork+exec-command in the helper 'send-dbus' procedure also meant that it wouldn't work outside of Shepherd anymore. Finally, the 'start-service' Shepherd procedure used in the test suite would cause the Jami daemon to be spawned multiple times (a bug introduced in Shepherd 0.9.0). To fix/simplify these problems, this change does the following: 1. Use the Guile AC/D-Bus library for D-Bus communication, which simplify things, such as avoiding the need to fork 'dbus-send' processes. 2. The non-blocking 'sleep' version of Fiber is used for the 'with-retries' waiting syntax. 3. A 'dbus' package variant is used to adjust the session bus configuration, tailoring it for the use case at hand. 4. Avoid start-service in the tests, preferring 'jami-service-available?' for now. * gnu/build/jami-service.scm (parse-dbus-reply, strip-quotes) (deserialize-item, serialize-boolean, dbus-dict->alist) (dbus-array->list, parse-account-ids, parse-account-details) (parse-contacts): Delete procedures. (%send-dbus-binary, %send-dbus-bus, %send-dbus-user, %send-dbus-group) (%send-dbus-debug): Delete parameters. (jami-service-running?): New procedure. (send-dbus/configuration-manager): Rename to... (call-configuration-manager-method): ... this. Turn METHOD into a positional argument. Turn ARGUMENTS into an optional argument. Invoke `call-dbus-method' instead of `send-dbus', adjusting callers accordingly. (get-account-ids, id->account-details, id->account-details) (id->volatile-account-details, username->id, add-account remove-account) (username->contacts, remove-contact, add-contact, set-account-details) (set-all-moderators, username->all-moderators?, username->moderators) (set-moderator): Adjust accordingly. (with-retries, send-dbus, dbus-available-services) (dbus-service-available?): Move to ... * gnu/build/dbus-service.scm: ... this new module. (send-dbus): Rewrite to use the Guile AC/D-Bus library. (%dbus-query-timeout, sleep*): New variables. (%current-dbus-connection): New parameter. (initialize-dbus-connection!, argument->signature-type) (call-dbus-method): New procedures. (dbus-available-services): Adjust accordingly. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new module. * gnu/packages/glib.scm (dbus-for-jami): New variable. * gnu/services/telephony.scm: (jami-configuration)[dbus]: Default to dbus-for-jami. (jami-dbus-session-activation): Write a D-Bus daemon configuration file at '/var/run/jami/session-local.conf'. (jami-shepherd-services): Add the closure of guile-ac-d-bus and guile-fibers as extensions. Adjust imported modules. Remove no longer used parameters. <jami-dbus-session>: Use a PID file, avoiding the need for the manual synchronization. <jami>: Set DBUS_SESSION_BUS_ADDRESS environment variable. Poll using 'jami-service-available?' instead of 'dbus-service-available?'. * gnu/tests/telephony.scm (run-jami-test): Add needed Guile extensions. Set DBUS_SESSION_BUS_ADDRESS environment variable. Adjust all tests to use 'jami-service-available?' to determine if the service is started rather than the now problematic Shepherd's 'start-service'.