aboutsummaryrefslogtreecommitdiff
path: root/gnu
AgeCommit message (Expand)Author
2020-05-29gnu: ruby-crass: Update to 1.0.6....* gnu/packages/ruby.scm (ruby-crass): Update to 1.0.6. [source]: Switch to GIT-FETCH. [native-inputs]: Remove. Marius Bakke
2020-05-29gnu: ruby-libffi: Enable tests and unbundle LibFFI....* gnu/packages/libffi.scm (ruby-ffi)[source]: Change to GIT-FETCH. [arguments]: Remove #:tests?. Add #:phases. Marius Bakke
2020-05-29gnu: ruby-rubygems-tasks: Update to 0.2.5....* gnu/packages/ruby.scm (ruby-rubygems-tasks): Update to 0.2.5. Marius Bakke
2020-05-29gnu: ruby-rake-compiler: Update to 1.1.0....* gnu/packages/ruby.scm (ruby-rake-compiler): Update to 1.1.0. Marius Bakke
2020-05-29gnu: ruby-ffi: Update to 1.12.2....* gnu/packages/libffi.scm (ruby-ffi): Update to 1.12.2. Marius Bakke
2020-05-29gnu: ruby-spec-its: Accept any version of ruby-ffi....* gnu/packages/ruby.scm (ruby-rspec-its)[arguments]: Change Gemfile substitution so that any ffi gem is accepted. While at it, tighten the regex and rename the phase to be more accurate. Marius Bakke
2020-05-29gnu: physfs: Do not build the static library....* gnu/packages/game-development.scm (physfs)[arguments]: Add #:configure-flags. Marius Bakke
2020-05-29gnu: love: Remove unused input....* gnu/packages/game-development.scm (love)[inputs]: Remove PHYSFS. Marius Bakke
2020-05-29gnu: autorandr: Update to 1.10.1....* gnu/packages/xdisorg.scm (autorandr): Update to 1.10.1. Pierre Neidhardt
2020-05-29build: image: Fix initialize-efi-partition docstring....* gnu/build/image.scm (initialize-efi-partition): Turn BOOTLOADER-PACKAGE into GRUB-EFI. Mathieu Othacehe
2020-05-29image: Do not use VM to create disk-images....Now that installing Grub on raw disk-images is supported, we do not need to rely on (gnu system vm) module. * gnu/system/image.scm (make-system-image): Rename to ... (system-image): ... this, and remove the compatibility wrapper. (find-image): Turn to a monadic procedure. This will become useful when introducing Hurd support, to be able to detect the target system. * gnu/ci.scm (qemu-jobs): Use lower-object now that system-image returns a file-like object. * gnu/tests/install.scm (run-install): Ditto. * guix/scripts/system.scm (system-derivation-for-action): Add a 'base-image' argument, (perform-action): adapt accordingly. Mathieu Othacehe
2020-05-29image: Add a post-MBR gap to the default image....The generic 'efi-disk-image' needs to be bootable on systems without EFI. To do that, GRUB is installed in the post-MBR gap. Make sure that the first partition starts with an offset, to make this gap large enough for GRUB. * gnu/system/image.scm (root-offset, root-label): New variables, (esp-partition): use 'root-offset' as the partition offset, (root-partition): use 'root-label' as the partition label. Mathieu Othacehe
2020-05-29system: image: Fix image-with-os....* gnu/system/image.scm (image-with-os): Do not reorder partitions, as we want them to be created according to definition order. Mathieu Othacehe
2020-05-29image: Use grub-efi to install the EFI bootloader....* gnu/build/image.scm (initialize-efi-partition): Rename bootloader-package argument to grub-efi. * gnu/system/image.scm (system-disk-image): Adapt accordingly to pass grub-efi package. Mathieu Othacehe
2020-05-29system: image: Correct genimage configuration file indentation....* gnu/system/image.scm (system-disk-image): Fix genimage configuration file indentation. Mathieu Othacehe
2020-05-29image: Add bootloader installation support....* gnu/build/image.scm (initialize-root-partition): Add bootloader-package and bootloader-installer arguments. Run the bootloader-installer if defined. * gnu/system/image.scm (system-disk-image): Adapt the partition initializer call accordingly. Mathieu Othacehe
2020-05-29bootloader: grub: Use inheritance to define grub-minimal-bootloader....* gnu/bootloader/grub.scm (grub-minimal-bootloader): Inherit from grub-bootloader to avoid field redefinition. Mathieu Othacehe
2020-05-29bootloader: grub: Do not run grub-install when creating a disk-image....* gnu/bootloader/grub.scm (install-grub): When creating a disk-image, grub-install will fail because it lacks root permissions. In that case, do not run grub-install and only copy Grub modules to the /boot directory. Mathieu Othacehe
2020-05-29bootloader: Add 'disk-image-installer'....* gnu/bootloader.scm (<bootloader>)[disk-image-installer]: New field, (bootloader-disk-image-installer): export it. * gnu/bootloader/grub.scm (install-grub-disk-image): New procedure ... (grub-bootloader): ... used as "disk-image-installer" here. (grub-efi-bootloader): set "disk-image-installer" to #f. * gnu/system/image.scm (root-partition?, find-root-partition): Move to "Helpers" section. (root-partition-index): New procedure. (system-disk-image): Honor disk-image-installer, and use it to install the bootloader directly on the disk-image, if supported. Mathieu Othacehe
2020-05-29gnu: openssh: Update to 8.3p1....* gnu/packages/ssh.scm (openssh): Update to 8.3p1. Tobias Geerinckx-Rice
2020-05-29gnu: ruby-hocon: Update to 1.3.1....* gnu/packages/ruby.scm (ruby-hocon): Update to 1.3.1. Tobias Geerinckx-Rice
2020-05-29gnu: ruby-fast-gettext: Update to 2.0.3....* gnu/packages/ruby.scm (ruby-fast-gettext): Update to 2.0.3. Tobias Geerinckx-Rice
2020-05-29gnu: fldigi: Update to 4.1.13....* gnu/packages/radio.scm (fldigi): Update to 4.1.13. Tobias Geerinckx-Rice
2020-05-29gnu: clp: Update to 1.17.6....* gnu/packages/maths.scm (clp): Update to 1.17.6. Tobias Geerinckx-Rice
2020-05-29gnu: piper: Include package name in source file name....* gnu/packages/gnome.scm (piper)[source]: Set FILE-NAME. Tobias Geerinckx-Rice
2020-05-29gnu: piper: Update to 0.5....* gnu/packages/gnome.scm (piper): Update to 0.5. Tobias Geerinckx-Rice
2020-05-29gnu: usbguard: Update to 0.7.8....* gnu/packages/hardware.scm (usbguard): Update to 0.7.8. Tobias Geerinckx-Rice
2020-05-29gnu: oil: Update to 0.8.pre5....* gnu/packages/shells.scm (oil): Update to 0.8.pre5. [arguments]: Perform ‘patch-compiler-invocation’ phase as part of 'configure. Remove ‘make-destination’ phase. Run a basic smoke test. [synopsis, description]: Update. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Ryan Prior via Guix-patches via
2020-05-29gnu: fluidsynth: Update to 2.1.3....* gnu/packages/audio.scm (fluidsynth): Update to 2.1.3. Tobias Geerinckx-Rice
2020-05-29gnu: babl: Update to 0.1.76....* gnu/packages/gimp.scm (babl): Update to 0.1.76. Tobias Geerinckx-Rice
2020-05-29gnu: font-comic-neue: Update to 2.5....* gnu/packages/fonts.scm (font-comic-neue): Update to 2.5. Tobias Geerinckx-Rice
2020-05-29gnu: rust-version-check: Update to 0.9.2....* gnu/packages/crates-io.scm (rust-version-check-0.9): Update to 0.9.2. Tobias Geerinckx-Rice
2020-05-29gnu: python-flask-sqlalchemy: Update to 2.4.3....* gnu/packages/python-web.scm (python-flask-sqlalchemy): Update to 2.4.3. Tobias Geerinckx-Rice
2020-05-28gnu: Add r-mstate....* gnu/packages/cran.scm (r-mstate): New variable. Signed-off-by: Leo Famulari <leo@famulari.name> Eric Brown
2020-05-28gnu: Add r-brms....* gnu/packages/cran.scm (r-brms): New variable. Signed-off-by: Leo Famulari <leo@famulari.name> Eric Brown
2020-05-28gnu: Add exfatprogs....* gnu/packages/file-systems.scm (exfatprogs): New public variable. Signed-off-by: Leo Famulari <leo@famulari.name> Tobias Geerinckx-Rice
2020-05-28gnu: Add shiru-lv2....* gnu/packages/music.scm (shiru-lv2): New variable. Signed-off-by: Leo Famulari <leo@famulari.name> Alexandros Theodotou
2020-05-28gnu: Add compiledb....* gnu/packages/build-tools.scm (compiledb): New variable. Signed-off-by: Leo Famulari <leo@famulari.name> Yuval Kogman
2020-05-28gnu: Add python-bashlex....* gnu/packages/python-xyz.scm (python-bashlex): New variable. Signed-off-by: Leo Famulari <leo@famulari.name> Yuval Kogman
2020-05-28gnu: Add guile-jsonld....* gnu/packages/guile-xyz.scm (guile-jsonld): New variable. Julien Lepiller
2020-05-28gnu: Transmission: Fix CVE-2018-10756....* gnu/packages/patches/transmission-CVE-2018-10756.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/bittorrent.scm (transmission)[source]: Use it. Leo Famulari
2020-05-28gnu: python-netcdf4: Update to 1.5.3...* gnu/packages/python-xyz.scm (python-netcdf4): Update to 1.5.3. Signed-off-by: Leo Famulari <leo@famulari.name> Josh Holland
2020-05-28gnu: clang: Build 'clang-tools-extra'....* gnu/packages/llvm.scm (clang-from-llvm): Add #:tools-extra. Add 'output' field. In 'inputs', add TOOLS-EXTRA when it's given. In 'arguments', add 'add-tools-extra' and 'move-extra-tools' phases when TOOLS-EXTRA is given. Ludovic Courtès
2020-05-28gnu: python-flask-sqlalchemy: Update to 2.4.2....* gnu/packages/python-web.scm (python-flask-sqlalchemy): Update to 2.4.2. Tobias Geerinckx-Rice
2020-05-27gnu: apfs-fuse: Update to 0.0.0-1.7b89418....* gnu/packages/file-systems.scm (apfs-fuse): Update to 0.0.0-1.7b89418. [arguments]: Install the README. Select FUSE 2 in #:configure-flags. Leo Famulari
2020-05-28gnu: r-rversions: Update to 2.0.2....* gnu/packages/statistics.scm (r-rversions): Update to 2.0.2. Tobias Geerinckx-Rice
2020-05-28gnu: cvs-fast-export: Update to 1.55....* gnu/packages/version-control.scm (cvs-fast-export): Update to 1.55. Tobias Geerinckx-Rice
2020-05-28gnu: eid-mw: Update to 4.4.27....* gnu/packages/security-token.scm (eid-mw): Update to 4.4.27. Tobias Geerinckx-Rice
2020-05-28gnu: mu: Update to 1.4.7....* gnu/packages/mail.scm (mu): Update to 1.4.7. Tobias Geerinckx-Rice
2020-05-28gnu: gnome: Add gnome-boxes....* gnu/packages/gnome.scm (gnome)[propagated-inputs]: Add gnome-boxes. Tobias Geerinckx-Rice
time to start up. (sleep 1) (test-eq "fetch version" 0 (marionette-eval `(begin (chdir "/tmp") (system* ,(string-append #$libvirt "/bin/virsh") "-c" "qemu:///system" "version")) marionette)) (test-eq "connect" 0 (marionette-eval `(begin (chdir "/tmp") (system* ,(string-append #$libvirt "/bin/virsh") "-c" "qemu:///system" "connect")) marionette)) (test-eq "create default network" 0 (marionette-eval '(begin (chdir "/tmp") (system* #$(file-append libvirt "/bin/virsh") "-c" "qemu:///system" "net-define" #$(file-append libvirt "/etc/libvirt/qemu/networks/default.xml"))) marionette)) (test-eq "start default network" 0 (marionette-eval '(begin (chdir "/tmp") (system* #$(file-append libvirt "/bin/virsh") "-c" "qemu:///system" "net-start" "default")) marionette)) (test-end)))) (gexp->derivation "libvirt-test" test)) (define %test-libvirt (system-test (name "libvirt") (description "Connect to the running LIBVIRT service.") (value (run-libvirt-test)))) ;;; ;;; QEMU Guest Agent service. ;;; (define %qemu-guest-agent-os (simple-operating-system (service qemu-guest-agent-service-type))) (define (run-qemu-guest-agent-test) "Run tests in %QEMU-GUEST-AGENT-OS." (define os (marionette-operating-system %qemu-guest-agent-os #:imported-modules '((gnu services herd)))) (define vm (virtual-machine (operating-system os) (port-forwardings '()))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (gnu build marionette) (ice-9 rdelim) (srfi srfi-64)) (define marionette ;; Ensure we look for the socket in the correct place below. (make-marionette (list #$vm) #:socket-directory "/tmp")) (define* (try-read port #:optional (attempts 10)) ;; Try reading from a port several times before giving up. (cond ((char-ready? port) (let ((response (read-line port))) (close-port port) response)) ((> attempts 1) (sleep 1) (try-read port (- attempts 1))) (else ""))) (define (run command) ;; Run a QEMU guest agent command and return the response. (let ((s (socket PF_UNIX SOCK_STREAM 0))) (connect s AF_UNIX "/tmp/qemu-ga") (display command s) (try-read s))) (test-runner-current (system-test-runner #$output)) (test-begin "qemu-guest-agent") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'qemu-guest-agent) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-equal "ping guest" "{\"return\": {}}" (run "{\"execute\": \"guest-ping\"}")) (test-assert "get network interfaces" (string-contains (run "{\"execute\": \"guest-network-get-interfaces\"}") "127.0.0.1")) (test-end)))) (gexp->derivation "qemu-guest-agent-test" test)) (define %test-qemu-guest-agent (system-test (name "qemu-guest-agent") (description "Run commands in a virtual machine using QEMU guest agent.") (value (run-qemu-guest-agent-test)))) ;;; ;;; GNU/Hurd virtual machines, aka. childhurds. ;;; (define %childhurd-os (simple-operating-system (service dhcp-client-service-type) (service hurd-vm-service-type (hurd-vm-configuration (os (operating-system (inherit %hurd-vm-operating-system) (users (cons (user-account (name "test") (group "users") (password "")) ;empty password %base-user-accounts)))))))) (define* (run-command-over-ssh command #:key (port 10022) (user "test")) "Return a program that runs COMMAND over SSH and prints the result on standard output." (define run (with-extensions (list guile-ssh) #~(begin (use-modules (ssh session) (ssh auth) (ssh popen) (ice-9 match) (ice-9 textual-ports)) (let ((session (make-session #:user #$user #:port #$port #:host "localhost" #:timeout 120 #:log-verbosity 'rare))) (match (connect! session) ('ok (userauth-password! session "") (display (get-string-all (open-remote-input-pipe* session #$@command)))) (status (error "could not connect to guest over SSH" session status))))))) (program-file "run-command-over-ssh" run)) (define (run-childhurd-test) (define (import-module? module) ;; This module is optional and depends on Guile-Gcrypt, do skip it. (and (guix-module-name? module) (not (equal? module '(guix store deduplication))))) (define os (marionette-operating-system %childhurd-os #:imported-modules (source-module-closure '((gnu services herd) (guix combinators) (gnu build install)) #:select? import-module?))) (define vm (virtual-machine (operating-system os) (memory-size (* 1024 3)))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (gnu build marionette) (srfi srfi-64) (ice-9 match)) (define marionette ;; Emulate as much as the host CPU supports so that, possibly, KVM ;; is available inside as well ("nested KVM"), provided ;; /sys/module/kvm_intel/parameters/nested (or similar) allows it. (make-marionette (list #$vm "-cpu" "max"))) (test-runner-current (system-test-runner #$output)) (test-begin "childhurd") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd) (ice-9 match)) (match (start-service 'childhurd) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-equal "childhurd SSH server replies" "SSH" ;; Check from within the guest whether its childhurd's SSH ;; server is reachable. Do that from the guest: port forwarding ;; to the host won't work because QEMU listens on 127.0.0.1. (marionette-eval '(begin (use-modules (ice-9 match) (ice-9 textual-ports)) (let loop ((n 60)) (if (zero? n) 'all-attempts-failed (let ((s (socket PF_INET SOCK_STREAM 0)) (a (make-socket-address AF_INET INADDR_LOOPBACK 10022))) (format #t "connecting to childhurd SSH server...~%") (connect s a) (match (get-string-n s 3) ((? eof-object?) (close-port s) (sleep 1) (loop (- n 1))) (str (close-port s) str)))))) marionette)) (test-equal "SSH up and running" "childhurd GNU\n" ;; Connect from the guest to the chidhurd over SSH and run the ;; 'uname' command. (marionette-eval '(begin (use-modules (ice-9 popen) (ice-9 textual-ports)) (get-string-all (open-input-pipe #$(run-command-over-ssh '("uname" "-on"))))) marionette)) (test-assert "guix-daemon up and running" (let ((drv (marionette-eval '(begin (use-modules (ice-9 popen) (ice-9 textual-ports)) (get-string-all (open-input-pipe #$(run-command-over-ssh '("guix" "build" "coreutils" "--no-grafts" "-d"))))) marionette))) ;; We cannot compare the .drv with (raw-derivation-file ;; coreutils) on the host: they may differ due to fixed-output ;; derivations and changes introduced compared to the 'guix' ;; package snapshot. (and (string-suffix? ".drv" (pk 'drv (string-trim-right drv))) drv))) (test-assert "copy-on-write store" ;; Set up a writable store. The root partition is already an ;; overlayfs, which is not suitable as the bottom part of this ;; additional overlayfs; thus, create a tmpfs for the backing ;; store. ;; TODO: Remove this when <virtual-machine> creates a writable ;; store. (marionette-eval '(begin (use-modules (gnu build install) (guix build syscalls)) (mkdir "/run/writable-store") (mount "none" "/run/writable-store" "tmpfs") (mount-cow-store "/run/writable-store" "/backing-store") (system* "df" "-hT")) marionette)) (test-equal "offloading" 0 (marionette-eval '(and (file-exists? "/etc/guix/machines.scm") (system* "guix" "offload" "test")) marionette)) (test-end)))) (gexp->derivation "childhurd-test" test)) (define %test-childhurd (system-test (name "childhurd") (description "Connect to the GNU/Hurd virtual machine service, aka. a childhurd, making sure that the childhurd boots and runs its SSH server.") (value (run-childhurd-test)))) ;;; ;;; Virtual build machine. ;;; (define %build-vm-os (simple-operating-system (service virtual-build-machine-service-type (virtual-build-machine (cpu-count 1) (memory-size (* 1 1024)))))) (define (run-build-vm-test) (define (import-module? module) ;; This module is optional and depends on Guile-Gcrypt, do skip it. (and (guix-module-name? module) (not (equal? module '(guix store deduplication))))) (define os (marionette-operating-system %build-vm-os #:imported-modules (source-module-closure '((gnu services herd) (gnu build install)) #:select? import-module?))) (define vm (virtual-machine (operating-system os) (memory-size (* 1024 3)))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (gnu build marionette) (srfi srfi-64) (ice-9 match)) (define marionette ;; Emulate as much as the host CPU supports so that, possibly, KVM ;; is available inside as well ("nested KVM"), provided ;; /sys/module/kvm_intel/parameters/nested (or similar) allows it. (make-marionette (list #$vm "-cpu" "max"))) (test-runner-current (system-test-runner #$output)) (test-begin "build-vm") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd) (ice-9 match)) (start-service 'build-vm)) marionette)) (test-assert "guest SSH up and running" ;; Note: Pass #:peek? #t because due to the way QEMU port ;; forwarding works, connecting to 11022 always works even if the ;; 'sshd' service hasn't been started yet in the guest. (wait-for-tcp-port 11022 marionette #:peek? #t)) (test-assert "copy-on-write store" ;; Set up a writable store. The root partition is already an ;; overlayfs, which is not suitable as the bottom part of this ;; additional overlayfs; thus, create a tmpfs for the backing ;; store. ;; TODO: Remove this when <virtual-machine> creates a writable ;; store. (marionette-eval '(begin (use-modules (gnu build install) (guix build syscalls)) (mkdir "/run/writable-store") (mount "none" "/run/writable-store" "tmpfs") (mount-cow-store "/run/writable-store" "/backing-store") (system* "df" "-hT")) marionette)) (test-equal "offloading" 0 (marionette-eval '(and (file-exists? "/etc/guix/machines.scm") (system* "guix" "offload" "test")) marionette)) (test-end)))) (gexp->derivation "build-vm-test" test)) (define %test-build-vm (system-test (name "build-vm") (description "Offload to a virtual build machine over SSH.") (value (run-build-vm-test))))