summaryrefslogtreecommitdiff
path: root/gnu/build
Commit message (Collapse)AuthorAgeFilesLines
* linux-modules: Raise an error when a kernel module cannot be found.Ludovic Courtès2018-08-291-2/+2
| | | | | | | | | | | | | | | | | | | | | Previously we'd get an unhelpful backtrace like this: In gnu/build/linux-modules.scm: 184:47 4 (recursive-module-dependencies _ #:lookup-module _) 98:14 3 (module-dependencies _) 85:18 2 (modinfo-section-contents _) In ice-9/ports.scm: 439:11 1 (call-with-input-file #f #<procedure get-bytevector-al?> ?) In unknown file: 0 (open-file #f "r" #:encoding #f #:guess-encoding #f) ERROR: In procedure open-file: Wrong type (expecting string): #f builder for `/gnu/store/…-linux-modules.drv' failed with exit code 1 * gnu/build/linux-modules.scm (find-module-file): When MODULE cannot be found, raise an error instead of returning #f. This is more useful to the user.
* marionette: Add wait-for-unix-socket.Chris Marusich2018-08-281-0/+25
| | | | * gnu/build/marionette.scm (wait-for-unix-socket): New variable.
* marionette: Add support for QEMU's "quit" command.Chris Marusich2018-08-281-1/+2
| | | | | * gnu/build/marionette.scm (marionette-control): Don't wait for the monitor prompt when the command was "quit".
* linux-modules: Adjust 'section-contents' procedure.Ludovic Courtès2018-08-211-5/+5
| | | | | | | * gnu/build/linux-modules.scm (section-contents): Honor SECTION as was intended. (modinfo-section-contents): Pass 'section-contents' a section, not a section name.
* linux-initrd: Try several file names when looking up modules.Ludovic Courtès2018-07-291-0/+35
| | | | | | | | | | | Fixes <https://bugs.gnu.org/31714>. Reported by Tonton <tonton@riseup.net>. * gnu/build/linux-modules.scm (find-module-file): New procedure. * gnu/system/linux-initrd.scm (flat-linux-module-directory)[build-exp]: Remove 'lookup' procedure and use 'find-module-file' instead. * gnu/system/mapped-devices.scm (check-device-initrd-modules): Add comment.
* linux-initrd: Improve check of initrd modules.Ludovic Courtès2018-07-291-0/+1
| | | | | | | | Previously we would not strip the ".ko" suffix if present. * gnu/build/linux-modules.scm (file-name->module-name): Export. * gnu/system/mapped-devices.scm (check-device-initrd-modules): Use 'file-name->module-name' instead of 'normalize-module-name'.
* vm: Disable KVM on i386.Ludovic Courtès2018-07-041-1/+7
| | | | * gnu/build/vm.scm (load-in-linux-vm): Disable KVM on i386.
* vm: 'make-iso9660-image' makes 'grub.cfg' a GC root.Ludovic Courtès2018-06-261-1/+2
| | | | | * gnu/build/vm.scm (make-iso9660-image): Add call to 'register-bootcfg-root'.
* vm: 'make-iso9660-image' no longer includes unreferenced store items.Ludovic Courtès2018-06-261-38/+61
| | | | | | | Fixes <https://bugs.gnu.org/31757>. * gnu/build/vm.scm (make-iso9660-image): Invoke 'grub-mkrescue' in 'open-pipe*'. Use '-path-list -' instead of passing "gnu/store=…".
* vm: Don't try to modify the bind-mounted store.Ludovic Courtès2018-06-261-2/+4
| | | | | | | | | Previously 'guix system disk-image --file-system-type=iso9660' would fail because 'register-closure' would try to reset timestamps/ownership on the bind-mounted store, which fails with EPERM. * gnu/build/vm.scm (make-iso9660-image): Pass #:reset-timestamps? to 'register-closure'.
* linux-initrd: Module check correctly handles hyphen vs. underscore.Ludovic Courtès2018-06-141-0/+1
| | | | | | | | | | Fixes <https://bugs.gnu.org/31714>. Reported by Vagrant Cascadian <vagrant@debian.org> and Florian Pelz <pelzflorian@pelzflorian.de>. * gnu/system/mapped-devices.scm (check-device-initrd-modules): Pass LINUX-MODULES through 'normalize-module-name'. * gnu/build/linux-modules.scm (normalize-module-name): Export.
* Remove 'guix-register' and its traces.Ludovic Courtès2018-06-142-5/+2
| | | | | | | | | | | | | | | | | | | * Makefile.am (SH_TESTS): Remove tests/guix-register.sh. * build-aux/pre-inst-env.in (GUIX_REGISTER): Remove. * gnu/build/install.scm (directives): Remove outdated comment. * gnu/build/vm.scm (root-partition-initializer): Update comment. * gnu/packages/package-management.scm (guix-register): Remove. * guix/config.scm.in (%sbindir, %guix-register-program): Remove. * guix/scripts/system.scm (install): Adjust docstring. * guix/self.scm (make-config.scm): Remove #:guix. Do not generate %sbindir and %guix-register-program. (specification->package): Remove "guix". * nix/guix-register/guix-register.cc: Remove. * nix/libstore/store-api.cc (decodeValidPathInfo): Remove. * nix/libstore/store-api.hh (decodeValidPathInfo): Remove declaration. * nix/local.mk (sbin_PROGRAMS, guix_register_SOURCES) (guix_register_CPPFLAGS, guix_register_LDFLAGS): Remove. * tests/guix-register.sh: Remove.
* database: Allow for deterministic database construction.Ludovic Courtès2018-06-141-0/+1
| | | | | | | | | | Fixes <https://bugs.gnu.org/21073>. * guix/store/database.scm (sqlite-register): Add #:time. (%epoch): New variable. (register-items): Add #:registration-time. Pass #:time to 'sqlite-register'. * gnu/build/install.scm (register-closure): Pass #:registration-time.
* install: Use 'reset-timestamps' from (guix store database).Ludovic Courtès2018-06-142-15/+1
| | | | | * gnu/build/install.scm (reset-timestamps): Remove. * gnu/build/vm.scm: Use 'reset-timestamps' from (guix store database).
* database: Add 'register-items'.Ludovic Courtès2018-06-141-10/+5
| | | | | | | | * guix/build/store-copy.scm (store-info): Export. * guix/store/database.scm (register-items): New procedure. (register-path): Implement in terms of 'register-items'. * gnu/build/install.scm (register-closure): Use 'register-items' instead of 'for-each' and 'register-path'.
* install: Use (guix store database) instead of 'guix-register'.Ludovic Courtès2018-06-142-18/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnu/build/install.scm (register-closure): Add #:reset-timestamps? and and #:schema; honor them. Rewrite in terms of 'register-path'. (populate-single-profile-directory): Add #:schema and honor it. Make /var/guix/profiles and /var/guix/gcroots. * gnu/build/vm.scm (root-partition-initializer): Pass #:reset-timestamps? to 'register-closure'. * gnu/system/vm.scm (not-config?): New procedure. (guile-sqlite3&co): New variable. (expression->derivation-in-linux-vm)[config]: New variable. [builder]: Use 'with-extensions'. (iso9660-image)[schema, config]: New variables. Wrap build expression in 'with-extensions'; add 'sql-schema' call. Remove GUIX from INPUTS. (qemu-image)[schema, config]: New variables. Wrap body in 'with-extensions'. (system-docker-image)[not-config?]: Remove. [config]: Use 'make-config.scm'. [schema]: New variable. [build]: Use 'with-extensions'. Add call to 'sql-schema'. Remove GUIX from INPUTS. * gnu/system/file-systems.scm (%store-prefix): Check whether '%store-prefix' is defined. * guix/scripts/pack.scm (self-contained-tarball)[not-config?] [libgcrypt, schema]: New variables. [build]: Wrap in 'with-extensions'. Adjust imported module list to use 'make-config.scm' for (guix config).
* Merge branch 'master' into core-updatesLudovic Courtès2018-06-013-10/+32
|\
| * bootloader: grub: Use 'with-extensions'.Ludovic Courtès2018-06-011-8/+3
| | | | | | | | | | | | | | * 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.
| * marionette: Add 'wait-for-tcp-port'.Ludovic Courtès2018-06-011-0/+27
| | | | | | | | | | | | * 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.
| * file-systems: Always wait for devices to show up.Ludovic Courtès2018-05-311-2/+2
| | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' into core-updatesMark H Weaver2018-05-283-45/+24
|\|
| * system: Remove uses of the 'title' field of <file-system>.Ludovic Courtès2018-05-281-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * file-systems: Remove 'title' field and add <file-system-label>.Ludovic Courtès2018-05-282-43/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
* | Merge branch 'master' into core-updatesMark H Weaver2018-05-271-4/+9
|\|
| * vm: Pass "panic=1" to Linux.Ludovic Courtès2018-05-251-4/+9
| | | | | | | | * gnu/build/vm.scm (load-in-linux-vm): Always pass "panic=1" after '-append'.
* | Merge branch 'master' into core-updatesMark H Weaver2018-05-241-1/+2
|\|
| * vm: Print the label and UUID of partitions.Ludovic Courtès2018-05-231-1/+2
| | | | | | | | * gnu/build/vm.scm (create-ext-file-system): Print the label and UUID.
* | Merge branch 'master' into core-updatesMarius Bakke2018-03-292-6/+19
|\|
| * activation: Pass '-d HOME' to 'usermod'.Ludovic Courtès2018-03-271-2/+3
| | | | | | | | | | | | | | | | | | 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'.
| * gnu: When building in a VM, share a temporary directory.Chris Marusich2018-03-241-0/+7
| | | | | | | | | | | | * 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.
| * vm: Allow control of deduplication in root-partition-initializer.Chris Marusich2018-03-241-4/+9
| | | | | | | | | | * gnu/build/vm.scm (root-partition-initializer): Add #:deduplicate? keyword argument.
* | gnu: cross-base: Use invoke in (gnu build cross-toolchain).Mark H Weaver2018-03-231-3/+3
|/ | | | | * gnu/build/cross-toolchain.scm (set-cross-path/mingw, install-strip): Use invoke.
* glob: Add an extra glob pattern compilation stage.Ludovic Courtès2018-03-181-2/+2
| | | | | | | | | | | | | * 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'.
* linux-modules: 'load-linux-module*' honors BLACK-LIST in recursive calls.Ludovic Courtès2018-03-181-1/+3
| | | | | * gnu/build/linux-modules.scm (load-linux-module*): Pass BLACK-LIST in recursive call.
* linux-modules: Add 'current-kernel-directory'.Ludovic Courtès2018-03-181-4/+7
| | | | | * gnu/build/linux-modules.scm (current-kernel-directory): New procedure. (current-alias-file): Use it.
* vm: Pass "-append ..." only once.Danny Milosavljevic2018-03-161-2/+0
| | | | * gnu/build/vm.scm (load-in-linux-vm): Pass "-append ..." only once.
* vm: Use 'invoke' instead of 'system*'.Ludovic Courtès2018-03-151-58/+47
| | | | | | | * 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 ...)).
* linux-modules: Add module-aliases.Danny Milosavljevic2018-03-031-0/+10
| | | | * gnu/build/linux-modules.scm (module-aliases): New variable.
* linux-modules: Add 'device-module-aliases' and related procedures.Ludovic Courtès2018-03-021-1/+158
| | | | | | | | | * 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.
* linux-modules: Use 'load-linux-module/fd'.Ludovic Courtès2018-02-281-7/+7
| | | | | | | 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'.
* marionette: Use QEMU's "VM channel" mechanism.Ludovic Courtès2018-02-191-2/+5
| | | | | | | | | * 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".
* gnu: build: linux-boot: Remove bind-mount export.Christopher Baines2018-02-061-1/+0
| | | | | | bind-mount is not contained within this module. * gnu/build/linux-boot.scm: Remove bind-mount export.
* linux-boot: Add find-long-options.Danny Milosavljevic2018-02-011-0/+11
| | | | * gnu/build/linux/boot.scm (find-long-options): New variable.
* gnu: Consistently Write ‘file system(s)’.Tobias Geerinckx-Rice2018-01-193-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* linux-container: Work around EBADF errors upon exit.Ludovic Courtès2018-01-151-4/+10
| | | | | | | | | 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.
* linux-boot: Add #:on-error for initrd error handling.Ludovic Courtès2018-01-081-4/+9
| | | | | | | | | | 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.
* vm: Pass the host's /dev/urandom to the guest at /dev/hwrng.Leo Famulari2017-12-181-1/+3
| | | | | * gnu/build/vm.scm (load-in-linux-vm): Use QEMU's virtio-rng-pci. * gnu/system/vm.scm (common-qemu-options): Likewise.
* linux-boot: Add make-static-device-nodes.Danny Milosavljevic2017-12-161-0/+107
| | | | | | | | | | | | * 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>
* bootloader: Factorize write-file-on-device.Mathieu Othacehe2017-12-151-0/+37
| | | | | | | | | | | * 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.
* vm: Adapt qemu command to ARM.Mathieu Othacehe2017-12-151-7/+27
| | | | | | | | | | | * 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.