From cfec1af96a19be3fef26e13900937773355ee580 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 6 Jun 2020 17:17:07 +0200 Subject: gnu: di: Update to 4.48. * gnu/packages/admin.scm (di): Update to 4.48. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 77981e520a..2e1c4d1ada 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2743,13 +2743,13 @@ a new command using the matched rule, and runs it.") (define-public di (package (name "di") - (version "4.47.3") + (version "4.48") (source (origin (method url-fetch) (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz")) (sha256 - (base32 "0m4npba50sf5s61g5z3xd2r7937zwja941f2h3f081xi24c2hfck")))) + (base32 "0crvvfsxh8ryc0j19a2x52i9zacvggm8zi6j3kzygkcwnpz4km8r")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; obscure test failures -- cgit v1.2.3 From aba98be5406eaeaf70dbd6b9b30e16d254ede9d7 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 6 Jun 2020 17:23:32 +0200 Subject: gnu: di: Cross-compile. * gnu/packages/admin.scm (di)[arguments]: Use CC-FOR-TARGET. --- gnu/packages/admin.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 2e1c4d1ada..bb93f7efb1 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2758,7 +2758,7 @@ a new command using the matched rule, and runs it.") (delete 'configure) ; no configure script (add-before 'build 'setup-environment (lambda* (#:key outputs #:allow-other-keys) - (setenv "CC" "gcc") + (setenv "CC" ,(cc-for-target)) (setenv "prefix" (assoc-ref outputs "out")) #t))) #:make-flags (list "--environment-overrides"))) -- cgit v1.2.3 From 6aa25ab3b332deb070e6d4c6ca2786e4dead69b9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 6 Jun 2020 20:26:33 +0200 Subject: gnu: burp: Update to 2.3.28. * gnu/packages/backup.scm (burp): Update to 2.3.28. --- gnu/packages/backup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 49db612eb9..950dbc55ff 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -1066,14 +1066,14 @@ interractive mode.") (define-public burp (package (name "burp") - (version "2.3.26") + (version "2.3.28") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/burp/burp-" version "/burp-" version ".tar.bz2")) (sha256 (base32 - "1kwm8wwmzla02cqacgpmac6n5466dqd5czx83lkbp97rmg9017h8")))) + "18f8cjsb87skabvz4cl5pdln35qmim7x686js1xzpld6wyl9kv2k")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 58eea2eb26647ef24f486d65551ccd6452adec0f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 6 Jun 2020 20:37:18 +0200 Subject: gnu: klavaro: Update to 3.10. * gnu/packages/education.scm (klavaro): Update to 3.10. --- gnu/packages/education.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index ab02d1b7af..2ccda4b7a0 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -648,15 +648,14 @@ hours.") (define-public klavaro (package (name "klavaro") - (version "3.09") + (version "3.10") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/klavaro/klavaro-" version ".tar.bz2")) (sha256 - (base32 - "12gml7h45b1w9s318h0d5wxw92h7pgajn2kh57j0ak9saq0yb0wr")))) + (base32 "0jnzdrndiq6m0bwgid977z5ghp4q61clwdlzfpx4fd2ml5x3iq95")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) -- cgit v1.2.3 From 22fdca91a9edaca2ed0a714d2309470646c73c97 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 6 Jun 2020 21:53:36 +0200 Subject: gnu: libqmi: Update to 1.24.14. * gnu/packages/freedesktop.scm (libqmi): Update to 1.24.14. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 9e84f30b5c..b823a693f7 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1084,7 +1084,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") (define-public libqmi (package (name "libqmi") - (version "1.24.12") + (version "1.24.14") (source (origin (method url-fetch) (uri (string-append @@ -1092,7 +1092,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") "libqmi-" version ".tar.xz")) (sha256 (base32 - "0scb8a2kh0vnzx6kxanfy2s2slnfppvrwg202rxv30m8p2i92frd")))) + "0zshxqbm9ldybgrzh7pjmwmfjvvvfd0xh8qhgl8xiqdb9ply73r0")))) (build-system gnu-build-system) (inputs `(("libgudev" ,libgudev))) -- cgit v1.2.3 From 0c053a3973fbd8a62961998ca1b75152e8741229 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 May 2020 17:40:14 +0200 Subject: system: 'system-linux-image-file-name' takes an optional parameter. * gnu/system.scm (system-linux-image-file-name): Make 'target' an optional parameter. --- gnu/system.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index ac8bbd1d16..61cbaef280 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -466,15 +466,15 @@ from the initrd." "Return the list of swap services for OS." (map swap-service (operating-system-swap-devices os))) -(define* (system-linux-image-file-name) - "Return the basename of the kernel image file for SYSTEM." - ;; FIXME: Evaluate the conditional based on the actual current system. - (let ((target (or (%current-target-system) (%current-system)))) - (cond - ((string-prefix? "arm" target) "zImage") - ((string-prefix? "mips" target) "vmlinuz") - ((string-prefix? "aarch64" target) "Image") - (else "bzImage")))) +(define* (system-linux-image-file-name #:optional + (target (or (%current-target-system) + (%current-system)))) + "Return the basename of the kernel image file for TARGET." + (cond + ((string-prefix? "arm" target) "zImage") + ((string-prefix? "mips" target) "vmlinuz") + ((string-prefix? "aarch64" target) "Image") + (else "bzImage"))) (define (operating-system-kernel-file os) "Return an object representing the absolute file name of the kernel image of -- cgit v1.2.3 From b3477234455a555917365b6b4961004e2361c57f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 May 2020 23:04:48 +0200 Subject: vm: 'expression->derivation-in-linux-vm' always returns a native build. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Remove #:target. [builder]: Use #+. Don't pass #:target-arm32? and #:target-aarch64? to 'load-in-linux-vm'. Pass #:target #f to 'gexp->derivation'. (qemu-image): Adjust accordingly. * gnu/build/vm.scm (load-in-linux-vm): Remove #:target-aarch64? and #:target-arm32?. Define them as local variables. --- gnu/build/vm.scm | 11 ++++++++--- gnu/system/vm.scm | 16 +++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) (limited to 'gnu') diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 433b5a7e8d..0f0ceae18f 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -84,8 +84,6 @@ linux initrd make-disk-image? single-file-output? - target-arm32? - target-aarch64? (disk-image-size (* 100 (expt 2 20))) (disk-image-format "qcow2") (references-graphs '())) @@ -101,7 +99,14 @@ access it via /dev/hda. REFERENCES-GRAPHS can specify a list of reference-graph files as produced by the #:references-graphs parameter of 'derivation'." - (define target-arm? (or target-arm32? target-aarch64?)) + (define target-arm32? + (string-prefix? "arm-" %host-type)) + + (define target-aarch64? + (string-prefix? "aarch64-" %host-type)) + + (define target-arm? + (or target-arm32? target-aarch64?)) (define arch-specific-flags `(;; On ARM, a machine has to be specified. Use "virt" machine to avoid diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 3e483fd86c..d737a5e4ec 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -141,7 +141,7 @@ (define* (expression->derivation-in-linux-vm name exp #:key - (system (%current-system)) target + (system (%current-system)) (linux linux-libre) initrd (qemu qemu-minimal) @@ -226,10 +226,11 @@ substitutable." (let* ((native-inputs '#+(list qemu (canonical-package coreutils))) - (linux (string-append #$linux "/" - #$(system-linux-image-file-name))) - (initrd #$initrd) - (loader #$loader) + (linux (string-append + #+linux "/" + #+(system-linux-image-file-name system))) + (initrd #+initrd) + (loader #+loader) (graphs '#$(match references-graphs (((graph-files . _) ...) graph-files) (_ #f))) @@ -249,8 +250,6 @@ substitutable." #:memory-size #$memory-size #:make-disk-image? #$make-disk-image? #:single-file-output? #$single-file-output? - #:target-arm32? #$(check target-arm32?) - #:target-aarch64? #$(check target-aarch64?) #:disk-image-format #$disk-image-format #:disk-image-size size #:references-graphs graphs)))))) @@ -258,7 +257,7 @@ substitutable." (gexp->derivation name builder ;; TODO: Require the "kvm" feature. #:system system - #:target target + #:target #f ;EXP is always executed natively #:env-vars env-vars #:guile-for-build guile-for-build #:references-graphs references-graphs @@ -430,7 +429,6 @@ system that is passed to 'populate-root-file-system'." #:bootloader-installer #$(bootloader-installer bootloader))))))) #:system system - #:target target #:make-disk-image? #t #:disk-image-size disk-image-size #:disk-image-format disk-image-format -- cgit v1.2.3 From 96cb3f8a29a96c0b72784fa88d2a34249ebb1437 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 May 2020 23:08:15 +0200 Subject: vm: 'qemu-image' uses the native partitioning tools and bootloader. * gnu/system/vm.scm (qemu-image): Use #+ for Parted, the bootloader, etc. --- gnu/system/vm.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index d737a5e4ec..c7767db9df 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -345,7 +345,7 @@ system that is passed to 'populate-root-file-system'." (setlocale LC_ALL "en_US.utf8") (let ((inputs - '#$(append (list parted e2fsprogs dosfstools) + '#+(append (list parted e2fsprogs dosfstools) (map canonical-package (list sed grep coreutils findutils gawk)))) @@ -422,12 +422,12 @@ system that is passed to 'populate-root-file-system'." #:partitions partitions #:grub-efi grub-efi #:bootloader-package - #$(bootloader-package bootloader) + #+(bootloader-package bootloader) #:bootcfg #$bootcfg-drv #:bootcfg-location #$(bootloader-configuration-file bootloader) #:bootloader-installer - #$(bootloader-installer bootloader))))))) + #+(bootloader-installer bootloader))))))) #:system system #:make-disk-image? #t #:disk-image-size disk-image-size -- cgit v1.2.3 From 52c1b90a5a0c36d618b159233dcf7ba2a56737ba Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 28 May 2020 00:37:33 +0200 Subject: vm: 'qemu-image' preserves the cross-compilation target of the OS. * gnu/system/vm.scm (qemu-image)[preserve-target, inputs*]: New variables. In gexp, use INPUTS* instead of INPUTS. Wrap OS and BOOTCFG-DRV in 'preserve-target'. Pass INPUTS* instead of INPUTS as the #:references-graphs. --- gnu/system/vm.scm | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index c7767db9df..991ea2d837 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -317,6 +317,21 @@ system that is passed to 'populate-root-file-system'." (local-file (search-path %load-path "guix/store/schema.sql")))) + (define preserve-target + (if target + (lambda (obj) + (with-parameters ((%current-target-system target)) + obj)) + identity)) + + (define inputs* + (map (match-lambda + ((name thing) + `(,name ,(preserve-target thing))) + ((name thing output) + `(,name ,(preserve-target thing) ,output))) + inputs)) + (expression->derivation-in-linux-vm name (with-extensions gcrypt-sqlite3&co @@ -355,7 +370,7 @@ system that is passed to 'populate-root-file-system'." '#$(map (match-lambda ((name thing) thing) ((name thing output) `(,thing ,output))) - inputs))) + inputs*))) (set-path-environment-variable "PATH" '("bin" "sbin") inputs) @@ -367,7 +382,7 @@ system that is passed to 'populate-root-file-system'." #:closures graphs #:copy-closures? #$copy-inputs? #:register-closures? #$register-closures? - #:system-directory #$os + #:system-directory #$(preserve-target os) #:make-device-nodes #$(match device-nodes @@ -423,7 +438,7 @@ system that is passed to 'populate-root-file-system'." #:grub-efi grub-efi #:bootloader-package #+(bootloader-package bootloader) - #:bootcfg #$bootcfg-drv + #:bootcfg #$(preserve-target bootcfg-drv) #:bootcfg-location #$(bootloader-configuration-file bootloader) #:bootloader-installer @@ -432,7 +447,7 @@ system that is passed to 'populate-root-file-system'." #:make-disk-image? #t #:disk-image-size disk-image-size #:disk-image-format disk-image-format - #:references-graphs inputs + #:references-graphs inputs* #:substitutable? substitutable?)) (define* (system-docker-image os -- cgit v1.2.3 From 60f759f06d3a33f9284233200a2c732ed8716ef7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 May 2020 23:09:49 +0200 Subject: vm: compiler honors system and target. * gnu/system/vm.scm (system-qemu-image/shared-store): Add #:system and #:target. Pass it down. (system-qemu-image/shared-store-script): Likewise. (virtual-machine-compiler): Likewise. --- gnu/system/vm.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 991ea2d837..05f3986aca 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -764,6 +764,8 @@ environment with the store shared with the host. MAPPINGS is a list of (define* (system-qemu-image/shared-store os #:key + (system (%current-system)) + (target (%current-target-system)) full-boot? (disk-image-size (* (if full-boot? 500 30) (expt 2 20)))) "Return a derivation that builds a QEMU image of OS that shares its store @@ -784,6 +786,8 @@ bootloader refers to: OS kernel, initrd, bootloader data, etc." ;; This is more than needed (we only need the kernel, initrd, GRUB for its ;; font, and the background image), but it's hard to filter that. (qemu-image #:os os + #:system system + #:target target #:bootcfg-drv bootcfg #:bootloader (bootloader-configuration-bootloader (operating-system-bootloader os)) @@ -824,6 +828,8 @@ with '-virtfs' options for the host file systems listed in SHARED-FS." (define* (system-qemu-image/shared-store-script os #:key + (system (%current-system)) + (target (%current-target-system)) (qemu qemu) (graphic? #t) (memory-size 256) @@ -847,6 +853,8 @@ it is mostly useful when FULL-BOOT? is true." (mlet* %store-monad ((os -> (virtualized-operating-system os mappings full-boot?)) (image (system-qemu-image/shared-store os + #:system system + #:target target #:full-boot? full-boot? #:disk-image-size disk-image-size))) (define kernel-arguments @@ -920,10 +928,11 @@ FORWARDINGS is a list of host-port/guest-port pairs." (define-gexp-compiler (virtual-machine-compiler (vm ) system target) - ;; XXX: SYSTEM and TARGET are ignored. (match vm (($ os qemu graphic? memory-size disk-image-size ()) (system-qemu-image/shared-store-script os + #:system system + #:target target #:qemu qemu #:graphic? graphic? #:memory-size memory-size @@ -936,6 +945,8 @@ FORWARDINGS is a list of host-port/guest-port pairs." "user,model=virtio-net-pci," (port-forwardings->qemu-options forwardings))))) (system-qemu-image/shared-store-script os + #:system system + #:target target #:qemu qemu #:graphic? graphic? #:memory-size memory-size -- cgit v1.2.3 From e768e4e97fff4615da01245437ee91f27adb0c9c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 May 2020 23:11:14 +0200 Subject: vm: Shared-store script runs the native QEMU and Bash. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Use #+ for QEMU and BASH. --- gnu/system/vm.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 05f3986aca..038cce19b6 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -862,7 +862,8 @@ it is mostly useful when FULL-BOOT? is true." #+@(operating-system-kernel-arguments os "/dev/vda1"))) (define qemu-exec - #~(list (string-append #$qemu "/bin/" #$(qemu-command (%current-system))) + #~(list #+(file-append qemu "/bin/" + (qemu-command (or target system))) #$@(if full-boot? #~() #~("-kernel" #$(operating-system-kernel-file os) @@ -879,7 +880,7 @@ it is mostly useful when FULL-BOOT? is true." #~(call-with-output-file #$output (lambda (port) (format port "#!~a~% exec ~a \"$@\"~%" - #$(file-append bash "/bin/sh") + #+(file-append bash "/bin/sh") (string-join #$qemu-exec " ")) (chmod port #o555)))) -- cgit v1.2.3 From b2ee53d5aead4e2c49f526c8ddcf5a279e879236 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 May 2020 23:57:41 +0200 Subject: gnu: guile-static: Disable JIT on ARMv7. * gnu/packages/make-bootstrap.scm (make-guile-static): Pass "--disable-jit" when 'target-arm32?' is true. --- gnu/packages/make-bootstrap.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index fe86f810bf..b2d3e2a326 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -706,7 +706,12 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ;; When `configure' checks for ltdl availability, it ;; doesn't try to link using libtool, and thus fails ;; because of a missing -ldl. Work around that. - ''("LDFLAGS=-ldl")) + + ;; XXX: On ARMv7, disable JIT: it causes crashes with 3.0.2, + ;; possibly related to . + (if (target-arm32?) + ''("LDFLAGS=-ldl" "--disable-jit") + ''("LDFLAGS=-ldl"))) ((#:phases phases '%standard-phases) `(modify-phases ,phases -- cgit v1.2.3 From ecbde6505cd12025d7fe92c2c9a56b969ff3cb8e Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sat, 6 Jun 2020 17:56:54 -0700 Subject: gnu: guix: Update to d445c30ea6. * gnu/packages/package-management.scm (guix): Update to 1.1.0-7.d445c30. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index cc3a40cb93..551dfc9c39 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -118,8 +118,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.1.0") - (commit "ea924134f819eef072ba7df9080d39de97fd73e6") - (revision 6)) + (commit "d445c30ea6f9693454ca96bae9089ba8738a6f78") + (revision 7)) (package (name "guix") @@ -135,7 +135,7 @@ (commit commit))) (sha256 (base32 - "08likdidf3k1zqf8821h6a84dsrvgbdhridhkzpjymc2c884j0w4")) + "17xb4chb8m7kz1dkg19lp3s21imyi6faijzzhwczgy6rq3j5pd1s")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 99d27a1353209c9a33f9c3ba6bd658ae1b1cc617 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 7 Jun 2020 00:23:13 -0400 Subject: gnu: emacs-realgud: Fix realgud:run-process problem. * gnu/packages/emacs-xyz.scm (emacs-realgud)[phases] {fix-realgud:run-process-void-error}: New phase. {fix-autogen-script}: Return #t. {autogen}: Likewise. {set-home}: Likewise. {remove-realgud-pkg.el}: Likewise. --- gnu/packages/emacs-xyz.scm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 23876932ac..c149f9d030 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6010,22 +6010,35 @@ after buffer changes.") `(#:tests? #t #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-realgud:run-process-void-error + ;; See: https://github.com/realgud/realgud/issues/269. + (lambda _ + (substitute* '("realgud/debugger/gdb/gdb.el" + "realgud/debugger/gub/gub.el") + (("^\\(require 'load-relative\\).*" anchor) + (string-append anchor + "(require-relative-list \ +'(\"../../common/run\") \"realgud:\")\n"))) + #t)) (add-after 'unpack 'fix-autogen-script (lambda _ (substitute* "autogen.sh" - (("./configure") "sh configure")))) + (("./configure") "sh configure")) + #t)) (add-after 'fix-autogen-script 'autogen (lambda _ (setenv "CONFIG_SHELL" "sh") (invoke "sh" "autogen.sh"))) (add-after 'fix-autogen-script 'set-home (lambda _ - (setenv "HOME" (getenv "TMPDIR")))) + (setenv "HOME" (getenv "TMPDIR")) + #t)) (add-before 'patch-el-files 'remove-realgud-pkg.el (lambda _ ;; FIXME: `patch-el-files' crashes on this file with error: ;; unable to locate "bashdb". - (delete-file "./test/test-regexp-bashdb.el")))) + (delete-file "./test/test-regexp-bashdb.el") + #t))) #:include (cons* ".*\\.el$" %default-include))) (native-inputs `(("autoconf" ,autoconf) -- cgit v1.2.3 From f9d40736125e55976b7c226f00b6919e2bdfddf1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 7 Jun 2020 09:16:32 +0300 Subject: gnu: streamlink: Update to 1.4.1. * gnu/packages/video.scm (streamlink): Update to 1.4.1. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index b2d359cac2..6efe6ed190 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2253,14 +2253,14 @@ and custom quantization matrices.") (define-public streamlink (package (name "streamlink") - (version "1.3.1") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "streamlink" version)) (sha256 (base32 - "0cnlg3ra3g6dml4xfy9ysy9b4qwyn458fadd8ac44cfwi3v4gq6y")))) + "1s458k8z1lv0w8i82sxs8dys66fwm4yr9j1m7fzp7r0piz8phcpd")))) (build-system python-build-system) (home-page "https://github.com/streamlink/streamlink") (native-inputs -- cgit v1.2.3 From 388a89750ec60a320dd7b6a0b0f174cbed4f50c6 Mon Sep 17 00:00:00 2001 From: Katherine Cox-Buday Date: Sat, 6 Jun 2020 11:18:00 -0500 Subject: gnu: sbcl-lparallel: Modify system definition to require sb-cltl2. * gnu/packages/lisp-xyz.scm (sbcl-lparallel)[arguments]: Add 'fix-dependency' phase to modify system definition to require sb-cltl2. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index e92fd0ba1d..d8009c2638 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -3197,6 +3197,17 @@ WebKit browsing engine.") `(("alexandria" ,sbcl-alexandria) ("bordeaux-threads" ,sbcl-bordeaux-threads) ("trivial-garbage" ,sbcl-trivial-garbage))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-dependency + ;; lparallel loads a SBCL specific system in its asd file. This is + ;; not carried over into the fasl which is generated. In order for + ;; it to be carried over, it needs to be listed as a dependency. + (lambda _ + (substitute* "lparallel.asd" + ((":depends-on \\(:alexandria" all) + (string-append all " #+sbcl :sb-cltl2")))))))) (home-page "https://lparallel.org/") (synopsis "Parallelism for Common Lisp") (description -- cgit v1.2.3 From 5dc04da4dfa5330cd634f7a6dddc3fcdfe102f8a Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sun, 7 Jun 2020 10:40:48 +0200 Subject: gnu: sbcl-cl-random-forest: Remove obsolete fix. * gnu/packages/machine-learning.scm (sbcl-cl-random-forest)[arguments]: Remove 'add-sb-cltl2-dependency' phase. --- gnu/packages/machine-learning.scm | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index e26768267b..4be165f390 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2018 Julien Lepiller ;;; Copyright © 2018 Björn Höfling ;;; Copyright © 2019 Nicolas Goaziou -;;; Copyright © 2019 Guillaume Le Vaillant +;;; Copyright © 2019, 2020 Guillaume Le Vaillant ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2020 Konrad Hinsen ;;; Copyright © 2020 Edouard Klein @@ -2067,18 +2067,7 @@ online linear classification written in Common Lisp.") ("cl-online-learning" ,sbcl-cl-online-learning) ("lparallel" ,sbcl-lparallel))) (arguments - `(;; The tests download data from the Internet - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'add-sb-cltl2-dependency - (lambda _ - ;; sb-cltl2 is required by lparallel when using sbcl, but it is - ;; not loaded automatically. - (substitute* "cl-random-forest.asd" - (("\\(in-package :cl-user\\)") - "(in-package :cl-user) #+sbcl (require :sb-cltl2)")) - #t))))) + `(#:tests? #f)) ; The tests download data from the Internet (synopsis "Random Forest and Global Refinement for Common Lisp") (description "CL-random-forest is an implementation of Random Forest for multiclass -- cgit v1.2.3 From 64174aff927f4f9da18ea452247c838e6bab3306 Mon Sep 17 00:00:00 2001 From: Katherine Cox-Buday Date: Sun, 7 Jun 2020 10:56:59 +0200 Subject: gnu: Add cl-rdkafka. * gnu/packages/lisp-xyz.scm (sbcl-cl-rdkafka, cl-rdkafka): New variables. Signed-off-by: Guillaume Le Vaillant --- gnu/packages/lisp-xyz.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index d8009c2638..0bf2dec44d 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -11938,3 +11938,51 @@ tables.") (define-public ecl-cl-ascii-table (sbcl-package->ecl-package sbcl-cl-ascii-table)) + +(define-public sbcl-cl-rdkafka + (package + (name "sbcl-cl-rdkafka") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SahilKang/cl-rdkafka.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qcgfd4h7syilzmrmd4z2vknbvawda3q3ykw7xm8n381syry4g82")))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:tests? #f ; Attempts to connect to locally running Kafka + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/low-level/librdkafka-bindings.lisp" + (("librdkafka" all) + (string-append (assoc-ref inputs "librdkafka") "/lib/" + all))))) + (add-before 'cleanup 'move-bundle + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (actual (string-append out "/lib/sbcl/src/cl-rdkafka.fasl")) + (expected (string-append + out "/lib/sbcl/cl-rdkafka--system.fasl"))) + (copy-file actual expected) + #t)))))) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cffi" ,sbcl-cffi) + ("cffi-grovel" ,sbcl-cffi-grovel) + ("librdkafka" ,librdkafka) + ("lparallel" ,sbcl-lparallel) + ("trivial-garbage" ,sbcl-trivial-garbage))) + (home-page "https://github.com/SahilKang/cl-rdkafka") + (synopsis "Common Lisp client library for Apache Kafka") + (description "A Common Lisp client library for Apache Kafka.") + (license license:gpl3))) + +(define-public cl-rdkafka + (sbcl-package->cl-source-package sbcl-cl-rdkafka)) -- cgit v1.2.3 From cc9d63f370851c18d64bb15d74ff90e6947fe700 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 7 Jun 2020 11:22:23 +0200 Subject: gnu: emacs-lispyville: Update to 20200605. * gnu/packages/emacs-xyz.scm (emacs-lispyville): Update to 20200605. [arguments]: Remove obsolete workaround for tests. --- gnu/packages/emacs-xyz.scm | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index c149f9d030..cf8c5ddbde 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6490,8 +6490,8 @@ S-expression.") (license license:gpl3+))) (define-public emacs-lispyville - (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74") - (revision "1")) + (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db") + (revision "2")) (package (name "emacs-lispyville") (version (git-version "0.1" revision commit)) @@ -6501,31 +6501,12 @@ S-expression.") (uri (git-reference (url home-page) (commit commit))) (sha256 (base32 - "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx")) + "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw")) (file-name (git-file-name name version)))) (propagated-inputs `(("emacs-evil" ,emacs-evil) ("emacs-lispy" ,emacs-lispy))) (build-system emacs-build-system) - (arguments - `(#:phases - ;; XXX: mysterious whitespace issue with one test - (modify-phases %standard-phases - (add-before 'check 'make-test-writable - (lambda _ - (make-file-writable "lispyville-test.el") - #t)) - (add-after 'make-test-writable 'remove-test - (lambda _ - (emacs-batch-edit-file "lispyville-test.el" - `(progn (progn (goto-char (point-min)) - (re-search-forward - "ert-deftest lispyville-comment-and-clone-dwim") - (beginning-of-line) - (kill-sexp)) - (basic-save-buffer)))))) - #:tests? #t - #:test-command '("make" "test"))) (synopsis "Minor mode for integrating Evil with lispy") (description "LispyVille's main purpose is to provide a Lisp editing environment -- cgit v1.2.3 From dfb3f2bad8e54f44b5bb0e129ba146f70c7db3a4 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Sun, 7 Jun 2020 16:23:29 +0300 Subject: gnu: youtube-dl: Update to 2020.06.06. * gnu/packages/video.scm (youtube-dl): Update to 2020.06.06. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 6efe6ed190..8d9d5ecfd1 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1611,7 +1611,7 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2020.05.29") + (version "2020.06.06") (source (origin (method url-fetch) (uri (string-append "https://github.com/ytdl-org/youtube-dl/" @@ -1619,7 +1619,7 @@ To load this plugin, specify the following option when starting mpv: version ".tar.gz")) (sha256 (base32 - "111ganbfi76ipfq5gjgamjbqd7m8l4lim9wwmfnc04bzvwqqzfi3")))) + "1qrrr14glv0jv377n61paq55b6k58jpnwbz2sp5xfl4wnxy5hqny")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion -- cgit v1.2.3 From 2dcaa7601f8709e2761df7a2a2bcd9eeeb10dcb6 Mon Sep 17 00:00:00 2001 From: Ryan Prior Date: Mon, 1 Jun 2020 06:00:09 +0000 Subject: gnu: Add vala-0.48. * gnu/packages/gnome.scm (vala-0.48): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/gnome.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 592cab0b49..6a3ff8709b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3295,6 +3295,19 @@ requirements and without using a different ABI compared to applications and libraries written in C.") (license license:lgpl2.1+))) +(define-public vala-0.48 + (package + (inherit vala) + (version "0.48.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/vala/" + (version-major+minor version) "/" + "vala-" version ".tar.xz")) + (sha256 + (base32 + "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi")))))) + (define-public vte (package (name "vte") -- cgit v1.2.3 From 8d7efc7a950968a73c90bb64af9a431c68781c55 Mon Sep 17 00:00:00 2001 From: Ryan Prior Date: Wed, 3 Jun 2020 03:06:35 +0000 Subject: gnu: Add vala-language-server. * gnu/packages/gnome-xyz.scm (vala-language-server): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/gnome-xyz.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 83e37f97b0..21838ff0cd 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2020 Jack Hill ;;; Copyright © 2020 Ekaitz Zarraga ;;; Copyright © 2020 Tobias Geerinckx-Rice +;;; Copyright © 2020 Ryan Prior ;;; ;;; This file is part of GNU Guix. ;;; @@ -585,3 +586,36 @@ dark elements. It supports GNOME, Unity, Xfce, and Openbox.") (description "Papirus is a fork of the icon theme Paper with a lot of new icons and a few extra features.") (license license:gpl3)))) + +(define-public vala-language-server + (package + (name "vala-language-server") + ;; Note to maintainer: VLS must be built with a Vala toolchain the same + ;; version or newer. Therefore when you update this package you may need + ;; to update Vala too. + (version "0.48") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/benwaffle/vala-language-server.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0chgfpci247skrvsiq1l8cas8sj2z6z42dlarka3df3qwxmh0if0")))) + (build-system meson-build-system) + (arguments '(#:glib-or-gtk? #t)) + (inputs + `(("glib" ,glib) + ("json-glib" ,json-glib) + ("jsonrpc-glib" ,jsonrpc-glib) + ("libgee" ,libgee) + ("vala" ,vala-0.48))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/benwaffle/vala-language-server") + (synopsis "Language server for Vala") + (description "The Vala language server is an implementation of the Vala +language specification for the Language Server Protocol (LSP). This tool is +used in text editing environments to provide a complete and integrated +feature-set for programming Vala effectively.") + (license license:lgpl2.1+))) -- cgit v1.2.3 From ce4b77cc2dfb17f604f0a006bcb65ce954f2fc13 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 Jun 2020 02:37:21 +0200 Subject: gnu: wireguard-linux-compat: Update to 1.0.20200520. * gnu/packages/vpn.scm (wireguard-linux-compat): Update to 1.0.20200520. --- gnu/packages/vpn.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index e16ac81961..a0aff7a32c 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -499,7 +499,7 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers (define-public wireguard-linux-compat (package (name "wireguard-linux-compat") - (version "1.0.20200401") + (version "1.0.20200520") (source (origin (method url-fetch) (uri (string-append "https://git.zx2c4.com/wireguard-linux-compat/" @@ -507,7 +507,7 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers ".tar.xz")) (sha256 (base32 - "0ymprz3h4b92wlcqm5k5vmcgap8pjv202bgkdx0axmp12n1lmyvx")))) + "1hvpbfpdd3v2k27ypa1y1j422irx7hxpz87f50s28jvkxx5sxrqn")))) (build-system linux-module-build-system) (outputs '("out" "kernel-patch")) -- cgit v1.2.3 From 41c68b6a68a28a54c790a169e508bb5840d96035 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 Jun 2020 17:42:04 +0200 Subject: gnu: s6-portable-utils: Update to 2.2.2.3. * gnu/packages/skarnet.scm (s6-portable-utils): Update to 2.2.2.3. --- gnu/packages/skarnet.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index b4cab33271..0c381582e8 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -263,7 +263,7 @@ environment."))) (define-public s6-portable-utils (package (name "s6-portable-utils") - (version "2.2.2.2") + (version "2.2.2.3") (source (origin (method url-fetch) @@ -271,7 +271,7 @@ environment."))) "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-" version ".tar.gz")) (sha256 - (base32 "1k3la37q46n93vjwk9wm9ym4w87z6lqzv43f03qd0vqj9k94mpv3")))) + (base32 "0dniniw8y9das12ic7bd34ra817qzfrql18rczs49sfnkf67c98n")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments -- cgit v1.2.3 From 7907e7f237f86fe2f8628a00052727ac7a9f36da Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 Jun 2020 18:23:19 +0200 Subject: gnu: libgit2: Update to 1.0.1. * gnu/packages/version-control.scm (libgit2): Update to 1.0.1. --- gnu/packages/version-control.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index f26d0ca2b4..60a31fb16c 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -634,7 +634,7 @@ on @command{git}, and use any regular Git hosting service.") (define-public libgit2 (package (name "libgit2") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/libgit2/libgit2/" @@ -642,7 +642,7 @@ on @command{git}, and use any regular Git hosting service.") "/libgit2-" version ".tar.gz")) (sha256 (base32 - "1d09ni0v3vammk8zqmmwks92fh3wwnsxpyrh4s5wwdb3gxma27va")) + "0nlg35pxhh548nn7aa3y1m81mf81nkbzz86i2psps4f474n497v8")) (patches (search-patches "libgit2-mtime-0.patch")) (snippet '(begin (delete-file-recursively "deps") #t)) -- cgit v1.2.3 From 1fc6f1def974041b92fc411a8ba9ec9037e6ee93 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 Jun 2020 18:24:51 +0200 Subject: gnu: python-mwclient: Update to 0.10.1. * gnu/packages/python-xyz.scm (python-mwclient): Update to 0.10.1. --- gnu/packages/python-xyz.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index bf0584326b..94e63d1c74 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -14147,7 +14147,7 @@ exception message with a traceback that points to the culprit.") (define-public python-mwclient (package (name "python-mwclient") - (version "0.10.0") + (version "0.10.1") (source (origin (method git-fetch) @@ -14157,8 +14157,7 @@ exception message with a traceback that points to the culprit.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1c3q6lwmb05yqywc4ya98ca7hsl15niili8rccl4n1yqp77c103v")))) + (base32 "120snnsh9n5svfwkyj1w9jrxf99jnqm0jk282yypd3lpyca1l9hj")))) (build-system python-build-system) (propagated-inputs `(("python-requests-oauthlib" ,python-requests-oauthlib) -- cgit v1.2.3 From d8a85f8200863757a432314bc0490d3ee8adfcc4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 7 Jun 2020 18:43:11 +0200 Subject: gnu: qwt: Update to 6.1.5. * gnu/packages/qt.scm (qwt): Update to 6.1.5. --- gnu/packages/qt.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index cd5b38d74c..d4b215a0bc 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016 Thomas Danckaert ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus ;;; Copyright © 2017 Quiliro -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2018 Nicolas Goaziou ;;; Copyright © 2018 Hartmut Goebel ;;; Copyright © 2018 Eric Bavier @@ -2338,7 +2338,7 @@ securely. It will not store any data unencrypted unless explicitly requested.") (define-public qwt (package (name "qwt") - (version "6.1.4") + (version "6.1.5") (source (origin (method url-fetch) @@ -2346,7 +2346,7 @@ securely. It will not store any data unencrypted unless explicitly requested.") (string-append "mirror://sourceforge/qwt/qwt/" version "/qwt-" version ".tar.bz2")) (sha256 - (base32 "1navkcnmn0qz8kzsyqmk32d929zl72l0b580w1ica7z5559j2a8m")))) + (base32 "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) -- cgit v1.2.3 From c6f557636abc1131e0d3f02a191bc644a4647c73 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 6 Jun 2020 22:13:48 +0200 Subject: gnu: docker, docker-cli: Update to 19.03.11. * gnu/packages/docker.scm (%docker-version): Update to 19.03.11. (docker, docker-cli): Update hashes. --- gnu/packages/docker.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index aeb43a6393..cdde807046 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -47,7 +47,7 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages virtualization)) -(define %docker-version "19.03.9") +(define %docker-version "19.03.11") (define-public python-docker-py (package @@ -314,7 +314,7 @@ built-in registry server of Docker.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1a9hkprkix5d7lqi88r8svvfpzh1qbzw9nrkp11lxrcf9wdan4hg")) + (base32 "1pmbggxbazipl24hxiaccbj32379zv79xba76l78v5131ihx922h")) (patches (search-patches "docker-fix-tests.patch")))) (build-system gnu-build-system) @@ -592,7 +592,7 @@ provisioning etc.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1599ff7699p3m925rdyfg7gl3cga6gy0lli7qh2ybyiw2kwf4gj9")))) + (base32 "1y9ymv70r1hndblr64h19q34arxl2f3dqqi2qcrai5zfimcml6lr")))) (build-system go-build-system) (arguments `(#:import-path "github.com/docker/cli" -- cgit v1.2.3 From 2d0cd1cab1f470324d3e476eebb64a1eaf35ab44 Mon Sep 17 00:00:00 2001 From: Fredrik Salomonsson Date: Sat, 6 Jun 2020 10:01:37 -0700 Subject: gnu: Add emacs-flymake-shellcheck. * gnu/packages/emacs-xyz.scm (emacs-flymake-shellcheck): New variable. Signed-off-by: Nicolas Goaziou --- gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index cf8c5ddbde..932fdd25fc 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -984,6 +984,31 @@ different tools. It highlights errors and warnings inline in the buffer, and provides an optional IDE-like error list.") (license license:gpl3+)))) ;+GFDLv1.3+ for the manual +(define-public emacs-flymake-shellcheck + ;; No tag, version grabbed from source .el file. + (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6") + (revision "0")) + (package + (name "emacs-flymake-shellcheck") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/federicotdn/flymake-shellcheck.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix")))) + (build-system emacs-build-system) + (home-page "https://github.com/federicotdn/flymake-shellcheck") + (synopsis "Flymake backend for Bash/Sh powered by ShellCheck") + (description + "This package provides a backend for Flymake to use the +tool ShellCheck for static analyzing @command{bash} and @command{sh} +scripts.") + (license license:gpl3+)))) + (define-public emacs-a (package (name "emacs-a") -- cgit v1.2.3 From a6e2c477c5ebe28a64d4c5292a783631563fd36e Mon Sep 17 00:00:00 2001 From: Fredrik Salomonsson Date: Sat, 6 Jun 2020 10:05:07 -0700 Subject: gnu: emacs-lua-mode: Update to 20200508-0.35b6e4c. * gnu/packages/emacs-xyz.scm (emacs-lua-mode): Update to 20200508-0.35b6e4c. Signed-off-by: Nicolas Goaziou --- gnu/packages/emacs-xyz.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 932fdd25fc..b44652fbba 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -8292,11 +8292,11 @@ using package inferred style.") (license license:gpl3+)))) (define-public emacs-lua-mode - (let ((commit "1f596a93b3f1caadd7bba01030f8c179b029600b") - (revision "1")) + (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c") + (revision "0")) (package (name "emacs-lua-mode") - (version (git-version "20191204" revision commit)) + (version (git-version "20200508" revision commit)) (home-page "https://github.com/immerrr/lua-mode/") (source (origin (method git-fetch) @@ -8306,14 +8306,14 @@ using package inferred style.") (file-name (git-file-name name version)) (sha256 (base32 - "0i4adlaik3qjx1wkb7rwk2clvj7ci2g8pm0siyb3yk90r6z5mspi")))) + "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk")))) (build-system emacs-build-system) (arguments `(#:tests? #t - #:test-command '("buttercup" "-l" "lua-mode.el"))) + #:test-command '("buttercup" "-l" "lua-mode.el"))) (native-inputs `(("emacs-buttercup" ,emacs-buttercup) - ("lua" ,lua))) + ("lua" ,lua))) (synopsis "Major mode for lua") (description "This Emacs package provides a mode for @uref{https://www.lua.org/, -- cgit v1.2.3 From 9b5e7d01afc0ca295ccba231b002f5314f5ef9bd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 7 Jun 2020 18:42:49 +0300 Subject: gnu: Add vim-dispatch. * gnu/packages/vim.scm (vim-dispatch): New variable. --- gnu/packages/vim.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index deea538622..2d9447d211 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -872,3 +872,31 @@ through its msgpack-rpc API.") NeoVim) to enable you to run shell commands in background and read output in the quickfix window in realtime.") (license license:expat))) + +(define-public vim-dispatch + (package + (name "vim-dispatch") + (version "1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tpope/vim-dispatch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1m8b5mn2zqlphzs6xfwykwmghf6p0wabrhpjmh7vav35jgcxc4wl")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (home-page "https://github.com/tpope/vim-dispatch") + (synopsis "Asynchronous build and test dispatcher") + (description "Leverage the power of Vim's compiler plugins without being +bound by synchronicity. Kick off builds and test suites using one of several +asynchronous adapters (including tmux, screen, and a headless mode), and when +the job completes, errors will be loaded and parsed automatically.") + (license license:vim))) -- cgit v1.2.3 From fae75ff9911b91a8c5ec257335c7ebed04c82929 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 7 Jun 2020 18:46:42 +0300 Subject: gnu: Add epour. * gnu/packages/enlightenment.scm (epour): New variable. --- gnu/packages/enlightenment.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index d852cbb275..40f1191416 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages algebra) #:use-module (gnu packages avahi) #:use-module (gnu packages bash) + #:use-module (gnu packages bittorrent) #:use-module (gnu packages check) #:use-module (gnu packages code) #:use-module (gnu packages compression) @@ -598,3 +599,42 @@ directories. "This is a process monitor and system monitor using the @dfn{Enlightenment Foundation Libraries} (EFL).") (license license:bsd-2))) + +(define-public epour + (package + (name "epour") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.enlightenment.org/rel/apps/epour" + "/epour-" version ".tar.xz")) + (sha256 + (base32 + "0g9f9p01hsq6dcf4cs1pwq95g6fpkyjgwqlvdjk1km1i5gj5ygqw")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; no test target + #:use-setuptools? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'find-theme-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "epour/gui/__init__.py" + (("join\\(data_path") + (string-append "join(\"" out "/share/epour\""))) + #t)))))) + (native-inputs + `(("intltool" ,intltool) + ("python-distutils-extra" ,python-distutils-extra))) + (inputs + `(("libtorrent-rasterbar" ,libtorrent-rasterbar) + ("python-dbus" ,python-dbus) + ("python-efl" ,python-efl) + ("python-pyxdg" ,python-pyxdg))) + (home-page "https://www.enlightenment.org") + (synopsis "EFL Bittorrent client") + (description "Epour is a BitTorrent client based on the @dfn{Enlightenment +Foundation Libraries} (EFL) and rb-libtorrent.") + (license license:gpl3+))) -- cgit v1.2.3 From 0601fb29fbfe353714ba596363be8a2f80151398 Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Fri, 22 May 2020 16:58:15 +0200 Subject: gnu: Add go-github-com-stretchr-objx. * gnu/packages/golang.scm (go-github-com-stretchr-objx): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ae0b7c6779..ca06790032 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -917,6 +917,29 @@ increment versions.") Go.") (license license:expat)))) +(define-public go-github-com-stretchr-objx + (package + (name "go-github-com-stretchr-objx") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stretchr/objx.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/stretchr/objx")) + (home-page "https://github.com/stretchr/objx") + (synopsis "Go package for dealing with maps, slices, JSON and other data") + (description "This package provides a Go library for dealing with maps, +slices, JSON and other data.") + (license license:expat))) + (define-public go-github-com-stretchr-testify (let ((commit "b1f989447a57594c728884458a39abf3a73447f7") -- cgit v1.2.3 From 388ffbfbfef1e279e5bc36d1fdd2bb185387dbd1 Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Fri, 22 May 2020 17:00:09 +0200 Subject: gnu: go-github-com-davecgh-go-spew: Update to 1.1.1. * gnu/packages/golang.scm (go-github-com-davecgh-go-spew): Update to 1.1.1. --- gnu/packages/golang.scm | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ca06790032..a35b21e4b5 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1931,28 +1931,26 @@ that's a lot faster (and only does simple bandwidth metrics).") (license license:expat)))) (define-public go-github-com-davecgh-go-spew - (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d") - (revision "0")) - (package - (name "go-github-com-davecgh-go-spew") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/davecgh/go-spew.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx")))) - (build-system go-build-system) - (arguments - '(#:unpack-path "github.com/davecgh/go-spew" - #:import-path "github.com/davecgh/go-spew/spew")) - (home-page "https://github.com/davecgh/go-spew") - (synopsis "Deep pretty printer for Go data structures to aid in debugging") - (description "Package @command{spew} implements a deep pretty printer + (package + (name "go-github-com-davecgh-go-spew") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/davecgh/go-spew.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y")))) + (build-system go-build-system) + (arguments + '(#:unpack-path "github.com/davecgh/go-spew" + #:import-path "github.com/davecgh/go-spew/spew")) + (home-page "https://github.com/davecgh/go-spew") + (synopsis "Deep pretty printer for Go data structures to aid in debugging") + (description "Package @command{spew} implements a deep pretty printer for Go data structures to aid in debugging. A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows: @@ -1968,7 +1966,7 @@ pointer receiver are optionally invoked when passing non-pointer variables. includes offsets, byte values in hex, and ASCII output (only when using Dump style). @end itemize\n") - (license license:isc)))) + (license license:isc))) (define-public go-github-com-btcsuite-btclog (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a") -- cgit v1.2.3 From 715f589ea39146fa66cce5470c0368073c471540 Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Fri, 22 May 2020 17:01:59 +0200 Subject: gnu: go-github-com-stretchr-testify: Update to 1.5.1. * gnu/packages/golang.scm (go-github-com-stretchr-testify): Update to 1.5.1. --- gnu/packages/golang.scm | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a35b21e4b5..d95e195ba5 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -941,28 +941,30 @@ slices, JSON and other data.") (license license:expat))) (define-public go-github-com-stretchr-testify - (let ((commit - "b1f989447a57594c728884458a39abf3a73447f7") - (revision "0")) - (package - (name "go-github-com-stretchr-testify") - (version (git-version "1.1.4" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/stretchr/testify.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/stretchr/testify")) - (home-page "https://github.com/stretchr/testify") - (synopsis "Go helper library for tests and invariant checking") - (description "This package provide many tools for testifying that your + (package + (name "go-github-com-stretchr-testify") + (version "1.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stretchr/testify.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/stretchr/testify")) + (propagated-inputs + `(("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew) + ("github.com/pmezard/go-difflib" ,go-github-com-pmezard-go-difflib) + ("github.com/stretchr/objx" ,go-github-com-stretchr-objx) + ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2))) + (home-page "https://github.com/stretchr/testify") + (synopsis "Go helper library for tests and invariant checking") + (description "This package provide many tools for testifying that your code will behave as you intend. Features include: @@ -972,7 +974,7 @@ Features include: @item HTTP response trapping @item Testing suite interfaces and functions. @end itemize") - (license license:expat)))) + (license license:expat))) (define-public go-github-com-tevino-abool (let ((commit -- cgit v1.2.3 From cc5792566461b8494f2729ad27e7727754b1e094 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 8 Jun 2020 00:34:20 -0400 Subject: gnu: linux-libre@4.19: Update to 4.19.127. * gnu/packages/linux.scm (linux-libre-4.19-version): Update to 4.19.127. (linux-libre-4.19-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index db03160085..de42f92ce7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -385,10 +385,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.126") +(define-public linux-libre-4.19-version "4.19.127") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "129ziwvk3f4xh8jvnq2krajc0bnrl2zxffqsiz63j7p3vc57wakf"))) + (hash (base32 "0vsq5vjyh6n8acjnldfs0zny63l12fn2pssb8zbwidc8qmmqibw2"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -- cgit v1.2.3 From ec29dc0713d0492e7b5244390df09401b56a3b11 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 8 Jun 2020 00:35:15 -0400 Subject: gnu: linux-libre@5.6: Update to 5.6.17. * gnu/packages/linux.scm (linux-libre-5.6-version): Update to 5.6.17. (linux-libre-5.6-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index de42f92ce7..beeeba09b6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,10 +369,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (sha256 hash))) -(define-public linux-libre-5.6-version "5.6.16") +(define-public linux-libre-5.6-version "5.6.17") (define-public linux-libre-5.6-pristine-source (let ((version linux-libre-5.6-version) - (hash (base32 "1xvwk6yxi5nhiwhskpmr89a31286mw9hpm0y3l3i5ydswx6lnl15"))) + (hash (base32 "17kzalz8z6svv6nwa3dbmf7nyvpb2wwwyabj19vdwf6v05a28fn3"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.6))) -- cgit v1.2.3 From fa122ac4ca2bd4c87b216e2f478397bcde2c1d8f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 8 Jun 2020 00:35:52 -0400 Subject: gnu: linux-libre: Update to 5.4.45. * gnu/packages/linux.scm (linux-libre-5.4-version): Update to 5.4.45. (linux-libre-5.4-pristine-source): Update hash. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index beeeba09b6..ab19a16bce 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -377,10 +377,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (%upstream-linux-source version hash) deblob-scripts-5.6))) -(define-public linux-libre-5.4-version "5.4.44") +(define-public linux-libre-5.4-version "5.4.45") (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0fc4nsv1zwlknvfv1bzkjlq2vlx28wfl09hg2p7r8cn7a77bphlp"))) + (hash (base32 "0bpy2lb3bqmkaqxzdmssgmhbjsys7d3lyfv4x919q0596jgh6gqh"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -- cgit v1.2.3 From 1acf4c59f8bd47002328307ea04b53864b3f2c33 Mon Sep 17 00:00:00 2001 From: Morgan Smith Date: Sun, 7 Jun 2020 23:49:55 -0400 Subject: gnu: Add v4l2loopback-linux-module. * gnu/packages/linux.scm (v4l2loopback-linux-module): New variable. --- gnu/packages/linux.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index ab19a16bce..a31f3d81ca 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -43,6 +43,7 @@ ;;; Copyright © 2020 Chris Marusich ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2020 Morgan Smith ;;; ;;; This file is part of GNU Guix. ;;; @@ -1134,6 +1135,39 @@ module allows the control of the backlight level or luminance property when supported under @file{/sys/class/backlight/}.") (license license:gpl2+))) +(define-public v4l2loopback-linux-module + (package + (name "v4l2loopback-linux-module") + (version "0.12.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/umlaeute/v4l2loopback.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn")))) + (build-system linux-module-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "make" + "--directory=./tests" + (string-append "CC=" ,(cc-for-target)))))))) + (home-page "https://github.com/umlaeute/v4l2loopback") + (synopsis "Linux kernel module that allows you to create \"virtual video devices\"") + (description "This module allows you to create \"virtual video devices\" +normal (v4l2) applications will read these devices as if they were ordinary +video devices, but the video will not be read from e.g. a capture card but +instead it is generated by another application. this allows you for instance +to apply some nifty video effects on your Jitsi video... it also allows some +more serious things (e.g. using it to add streaming capabilities to an +application by the means of hooking GStreamer into the loopback devices).") + (license license:gpl2+))) + ;;; ;;; Pluggable authentication modules (PAM). -- cgit v1.2.3 From fdcd193744dbb92d3478c8e4e6c4f4336a872831 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 Jun 2020 10:34:20 +0200 Subject: gnu: v4l2loopback-linux-module: Disable ‘test’. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It simply built the test programme but nothing more. * gnu/packages/linux.scm (v4l2loopback-linux-module)[arguments]: Remove the ‘check’ phase. --- gnu/packages/linux.scm | 8 -------- 1 file changed, 8 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a31f3d81ca..7785b6931e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1149,14 +1149,6 @@ supported under @file{/sys/class/backlight/}.") (base32 "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn")))) (build-system linux-module-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "make" - "--directory=./tests" - (string-append "CC=" ,(cc-for-target)))))))) (home-page "https://github.com/umlaeute/v4l2loopback") (synopsis "Linux kernel module that allows you to create \"virtual video devices\"") (description "This module allows you to create \"virtual video devices\" -- cgit v1.2.3 From ecb65812765bfbc0def42cdb30eca31fe0fcffd3 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 Jun 2020 10:36:16 +0200 Subject: gnu: v4l2loopback-linux-module: Edit synopsis and description. * gnu/packages/linux.scm (v4l2loopback-linux-module) [synopsis, description]: Edit. --- gnu/packages/linux.scm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7785b6931e..de28d4a6e6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1150,14 +1150,16 @@ supported under @file{/sys/class/backlight/}.") "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn")))) (build-system linux-module-build-system) (home-page "https://github.com/umlaeute/v4l2loopback") - (synopsis "Linux kernel module that allows you to create \"virtual video devices\"") - (description "This module allows you to create \"virtual video devices\" -normal (v4l2) applications will read these devices as if they were ordinary -video devices, but the video will not be read from e.g. a capture card but -instead it is generated by another application. this allows you for instance -to apply some nifty video effects on your Jitsi video... it also allows some -more serious things (e.g. using it to add streaming capabilities to an -application by the means of hooking GStreamer into the loopback devices).") + (synopsis "Linux kernel module to create virtual V4L2 video devices") + (description + "This Linux module creates virtual video devices. @acronym{V4L2, Video +for Linux 2} applications will treat these as ordinary video devices but read +video data generated by another application, instead of a hardware device such +as a capture card. + +This lets you apply nifty effects to your Jitsi video, for example, but also +allows some more serious things like adding streaming capabilities to an +application by hooking GStreamer into the loopback device.") (license license:gpl2+))) -- cgit v1.2.3 From b2a9d1525342a611f76342b945df35fd1a391b15 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 Jun 2020 02:33:28 +0200 Subject: gnu: mu: Update to 1.4.9. * gnu/packages/mail.scm (mu): Update to 1.4.9. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 67ed8c4b68..8337bc7808 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -711,7 +711,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") (define-public mu (package (name "mu") - (version "1.4.8") + (version "1.4.9") (source (origin (method url-fetch) (uri (string-append "https://github.com/djcb/mu/releases/" @@ -719,7 +719,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") "mu-" version ".tar.xz")) (sha256 (base32 - "0vww8n7r6pfl4jyijhzas3fpdl6v1ndhc99zr1fsamjldxqpxk5m")))) + "0dgmwdaszh5m7v1py3f9n9f6avb30vrl93g58a1k225iwdsv01d5")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 44adf883f082eaa4881a698de0d49b7b692972f0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 Jun 2020 08:44:16 +0200 Subject: gnu: rtl8812au-aircrack-ng-linux-module: Update to 5.6.4.2-1.df2b8df. * gnu/packages/linux.scm (rtl8812au-aircrack-ng-linux-module): Update to 5.6.4.2-1.df2b8df. --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index de28d4a6e6..67449c02d2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -988,8 +988,8 @@ and should be used with caution, especially on untested models.") (license license:gpl3+)))) ; see README.md (no licence headers) (define-public rtl8812au-aircrack-ng-linux-module - (let ((commit "945d6ed6505c32f0993b1dba576388e92e78101b") - (revision "0")) + (let ((commit "df2b8dfd8cb7d9f6cfeb55abaeab8a5372011fc9") + (revision "1")) (package (name "rtl8812au-aircrack-ng-linux-module") (version (git-version "5.6.4.2" revision commit)) @@ -1001,7 +1001,7 @@ and should be used with caution, especially on untested models.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1pjws7qb5l4z9k80vgz4zdxmqhbwxjjrmkpf0hijf821byyddvi7")) + (base32 "1qcr0j8yhg8l9l0f5y55zcsk1mgf3qd46yh9xfqgg91szxa3yvca")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From de728cb859738b9f2ec977a09338f9c73656637a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 Jun 2020 08:46:25 +0200 Subject: gnu: rtl8812au-aircrack-ng-linux-module: Use MAKE-FLAGS. * gnu/packages/linux.scm (rtl8812au-aircrack-ng-linux-module) [arguments]: Use MAKE-FLAGS keyword. --- gnu/packages/linux.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 67449c02d2..c78f2fe533 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1013,15 +1013,15 @@ and should be used with caution, especially on untested models.") #t)))) (build-system linux-module-build-system) (arguments - `(#:phases + `(#:make-flags + (list (string-append "KSRC=" + (assoc-ref %build-inputs "linux-module-builder") + "/lib/modules/build")) + #:phases (modify-phases %standard-phases (replace 'build - (lambda* (#:key inputs make-flags #:allow-other-keys) - (apply invoke "make" - (string-append "KSRC=" - (assoc-ref inputs "linux-module-builder") - "/lib/modules/build") - (or make-flags '()))))) + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (apply invoke "make" make-flags)))) #:tests? #f)) ; no test suite (supported-systems '("x86_64-linux" "i686-linux")) (home-page "https://github.com/aircrack-ng/rtl8812au") -- cgit v1.2.3 From d1fe14be6a98bf8dec63bbee7ac82cd9fadc90f5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 8 Jun 2020 08:53:07 +0200 Subject: gnu: rtl8821ce-linux-module: Use MAKE-FLAGS. * gnu/packages/linux.scm (rtl8821ce-linux-module)[arguments]: Use MAKE-FLAGS keyword. Make CC environment variable a make flag. --- gnu/packages/linux.scm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c78f2fe533..329bf7c327 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1051,16 +1051,17 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.") "17jiw25k74kv5lnvgycvj2g1n06hbrpjz6p4znk4a62g136rhn4s")))) (build-system linux-module-build-system) (arguments - `(#:phases + `(#:make-flags + (list "CC=gcc" + (string-append "KSRC=" + (assoc-ref %build-inputs "linux-module-builder") + "/lib/modules/build")) + #:phases (modify-phases %standard-phases (replace 'build - (lambda* (#:key (make-flags '()) inputs #:allow-other-keys) - (setenv "CC" "gcc") - (invoke "make" - (string-append "KSRC=" - (assoc-ref inputs "linux-module-builder") - "/lib/modules/build"))))) - #:tests? #f)) + (lambda* (#:key (make-flags '()) #:allow-other-keys) + (apply invoke "make" make-flags)))) + #:tests? #f)) ; no test suite (home-page "https://github.com/tomaspinho/rtl8821ce") (synopsis "Linux driver for Realtek RTL8821CE wireless network adapters") (description "This is Realtek's RTL8821CE Linux driver for wireless -- cgit v1.2.3 From ea5d9bf9916d532005842f220f7da6e522151f6a Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 7 Jun 2020 15:39:39 +0200 Subject: system: install: Add default libcs to gc-roots. During the installation, it may be needed to build locales that are not covered by glibc-utf8-locales. Make sure that the libraries required to build locales are available. This is a follow-up of 0eed77127592323d89f56c215a15374a1aaae110. * gnu/system/install.scm (installation-os)[services]: Add %default-locale-libcs to gc-root-service-type. --- gnu/system/install.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/system/install.scm b/gnu/system/install.scm index fe49ffdb94..d0ff2e7c52 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -32,6 +32,7 @@ #:use-module ((guix packages) #:select (package-version)) #:use-module ((guix store) #:select (%store-prefix)) #:use-module (gnu installer) + #:use-module (gnu system locale) #:use-module (gnu services dbus) #:use-module (gnu services networking) #:use-module (gnu services shepherd) @@ -439,10 +440,12 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m ;; things needed by 'profile-derivation' to minimize the amount of ;; download. (service gc-root-service-type - (list bare-bones-os - glibc-utf8-locales - texinfo - guile-3.0)) + (append + (list bare-bones-os + glibc-utf8-locales + texinfo + guile-3.0) + %default-locale-libcs)) ;; Machines without Kernel Mode Setting (those with many old and ;; current AMD GPUs, SiS GPUs, ...) need uvesafb to show the GUI -- cgit v1.2.3 From 173d22a1c03450c804b2c7fab1393670fef45606 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 6 Jun 2020 10:54:58 +0200 Subject: gnu: sudo: Separate Python output. The Python plugin of "sudo" drags the Python interpreter to the closure of Guix System. Put it in a separate output. * gnu/packages/admin.scm (sudo)[arguments]: Add a 'separate-python-output phase, that's populating ... [outputs]: ... the new "python" output. --- gnu/packages/admin.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index bb93f7efb1..bcbdf9b395 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1375,6 +1375,7 @@ system administrator.") (delete-file-recursively "lib/zlib") #t)))) (build-system gnu-build-system) + (outputs (list "out" "python")) (arguments `(#:configure-flags (list (string-append "--docdir=" (assoc-ref %outputs "out") @@ -1432,7 +1433,22 @@ system administrator.") (substitute* "plugins/sudoers/Makefile.in" (("^pre-install:" match) (string-append match "\ndisabled-" match))) - #t))) + #t)) + (add-after 'install 'separate-python-output + (lambda* (#:key target outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (out:python (assoc-ref outputs "python"))) + (if target + (mkdir-p (string-append out:python "/empty")) + (for-each + (lambda (file) + (let ((old (string-append out "/" file)) + (new (string-append out:python "/" file))) + (mkdir-p (dirname new)) + (rename-file old new))) + (list "libexec/sudo/python_plugin.so" + "libexec/sudo/python_plugin.la"))) + #t)))) ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. -- cgit v1.2.3 From 65c8512f9c709a85766e0e1cb8eee12459a3d705 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 6 Jun 2020 11:10:34 +0200 Subject: gnu: Add openssh-sans-x. * gnu/packages/ssh.scm (openssh-sans-x): New variable. --- gnu/packages/ssh.scm | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 73841db6b5..43764a8245 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -239,6 +239,15 @@ Additionally, various channel-specific options can be negotiated.") "See LICENSE in the distribution.")) (home-page "https://www.openssh.com/"))) +;; OpenSSH without X support. This allows to use OpenSSH without dragging X +;; libraries to the closure. +(define-public openssh-sans-x + (package + (inherit openssh) + (name "openssh-sans-x") + (inputs (alist-delete "xauth" (package-inputs openssh))) + (synopsis "OpenSSH client and server without X11 support"))) + (define-public guile-ssh (package (name "guile-ssh") -- cgit v1.2.3 From 0dddaa7b017b9d4c0c1fc6598cc24b951e159d83 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 6 Jun 2020 11:10:42 +0200 Subject: system: bare-bones: Remove dependency to X libraries. Use "openssh-sans-x" to prevent the inclusion of X libraries to the bare-bones system closure. * gnu/system/examples/bare-bones.tmpl (operating-system)[services]: Use openssh-sans-x instead of openssh. --- gnu/system/examples/bare-bones.tmpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index 4f30a5b756..1035ab1d60 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu)) (use-service-modules networking ssh) -(use-package-modules screen) +(use-package-modules screen ssh) (operating-system (host-name "komputilo") @@ -46,5 +46,6 @@ (services (append (list (service dhcp-client-service-type) (service openssh-service-type (openssh-configuration + (openssh openssh-sans-x) (port-number 2222)))) %base-services))) -- cgit v1.2.3 From bec45e6ddb0fd8b8feff3c0147936e4d8f41208d Mon Sep 17 00:00:00 2001 From: Michael Rohleder Date: Sun, 7 Jun 2020 18:01:38 +0200 Subject: gnu: x265: Build with assembly files. * gnu/packages/video.scm (x265)[native-inputs]: Add nasm. Signed-off-by: Efraim Flashner --- gnu/packages/video.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8d9d5ecfd1..c822075c57 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -625,6 +625,7 @@ available.") (delete-file-recursively "source/compat/getopt") #t)))) (build-system cmake-build-system) + (native-inputs `(("nasm" ,nasm))) (arguments `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built #:configure-flags -- cgit v1.2.3 From 4c26229ccbbcac843567aa6c52a0287ff6eb1494 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Tue, 12 May 2020 07:56:46 +0200 Subject: gnu: hurd: Update to upstream Hurd-reserved xattr index. This enables setting (and reading) passive translators when preparing a Hurd file system from GNU/Linux. * gnu/packages/patches/hurd-xattr.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/hurd.scm (hurd): Use it. --- gnu/local.mk | 1 + gnu/packages/hurd.scm | 3 +- gnu/packages/patches/hurd-xattr.patch | 53 +++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/hurd-xattr.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index ae8a2275f7..6182306dd5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1084,6 +1084,7 @@ dist_patch_DATA = \ %D%/packages/patches/http-parser-fix-assertion-on-armhf.patch \ %D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hurd-cross.patch \ + %D%/packages/patches/hurd-xattr.patch \ %D%/packages/patches/hplip-remove-imageprocessor.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-makeicecat.patch \ diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 55c40710fa..278568b583 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -377,7 +377,8 @@ boot, since this cannot be done from GNU/Linux." (name "hurd") (version (package-version hurd-headers)) (source (origin (inherit (package-source hurd-headers)) - (patches (search-patches "hurd-cross.patch")))) + (patches (search-patches "hurd-cross.patch" + "hurd-xattr.patch")))) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/patches/hurd-xattr.patch b/gnu/packages/patches/hurd-xattr.patch new file mode 100644 index 0000000000..0a922c91b5 --- /dev/null +++ b/gnu/packages/patches/hurd-xattr.patch @@ -0,0 +1,53 @@ +From 75cb948c575fca3962c4cce115d31dd178bc389f Mon Sep 17 00:00:00 2001 +From: "Jan (janneke) Nieuwenhuizen" +Date: Tue, 12 May 2020 07:39:59 +0200 +Subject: [PATCH] ext2fs: Update to upstream Hurd-reserved xattr index for + "gnu.*". + +See + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3980bd3b406addb327d858aebd19e229ea340b9a + +This supports setting (and reading) of passive trasnlators from +GNU/Linux, e.g. + + dd if=/dev/zero of=file bs=1k count=1000 + losetup /dev/loop0 file + mke2fs -t ext2 -o hurd -O ext_attr /dev/loop0 + mount -t ext2 -o x-xattr-translator-records /dev/loop0 /mnt + mkdir -p /mnt/servers/socket + touch /mnt/servers/socket/1 + setfattr --name=gnu.translator --value='/hurd/pflocal\0' /mnt/servers/socket/1 + getfattr --name=gnu.translator /mnt/servers/socket/1 + # file: 1 + gnu.translator="/hurd/pflocal" + +* ext2fs/xattr.c (struct _xattr_prefix): For "gnu.*", use index for +the Hurd (10). +--- + ext2fs/xattr.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ext2fs/xattr.c b/ext2fs/xattr.c +index f6ea0f39..78458214 100644 +--- a/ext2fs/xattr.c ++++ b/ext2fs/xattr.c +@@ -1,6 +1,6 @@ + /* Ext2 support for extended attributes + +- Copyright (C) 2006, 2016 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2016, 2020 Free Software Foundation, Inc. + + Written by Thadeu Lima de Souza Cascardo + and Shengyu Zhang +@@ -39,7 +39,7 @@ xattr_prefixes[] = + { + 1, "user.", sizeof "user." - 1}, + { +- 7, "gnu.", sizeof "gnu." - 1}, ++ 10, "gnu.", sizeof "gnu." - 1}, + { + 0, NULL, 0} + }; +-- +2.26.0 + -- cgit v1.2.3 From 6cea61f2fab26716cd8c2394fc83eac9985f9d97 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sun, 24 May 2020 12:41:32 +0200 Subject: linux-boot: Update 'make-hurd-device-nodes'. * gnu/build/linux-boot.scm (make-hurd-device-nodes): Avoid de-duplication of device mount points; also create mount points for /servers/. --- gnu/build/linux-boot.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gnu') diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index f08bb11514..d62c670684 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -337,6 +337,7 @@ one specific hardware device. These we have to create." (for-each (lambda (file) (call-with-output-file (scope file) (lambda (port) + (display file port) ;avoid hard-linking (chmod port #o666)))) '("dev/null" "dev/zero" @@ -347,6 +348,20 @@ one specific hardware device. These we have to create." ;; console-run on first boot. (mkdir (scope "servers")) + (for-each (lambda (file) + (call-with-output-file (scope (string-append "servers/" file)) + (lambda (port) + (display file port) ;avoid hard-linking + (chmod port #o444)))) + '("startup" + "exec" + "proc" + "password" + "default-pager" + "crash-dump-core" + "kill" + "suspend")) + (mkdir (scope "servers/socket")) ;; Don't create /servers/socket/1 & co: runsystem does that on first boot. -- cgit v1.2.3 From c77b92859fdad2b85f0f32d920048d476a347ff0 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 23 May 2020 19:10:44 +0200 Subject: image: Add Hurd support. * gnu/system/image.scm (hurd-disk-image): New exported variable, (root-offset, root-label): new variables, (esp-partition, root-partition): adapt accordingly, (find-image): add Hurd support. --- gnu/build/image.scm | 5 +++++ gnu/system/image.scm | 40 +++++++++++++++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 5 deletions(-) (limited to 'gnu') diff --git a/gnu/build/image.scm b/gnu/build/image.scm index 14503b02ba..fb85bd4bb8 100644 --- a/gnu/build/image.scm +++ b/gnu/build/image.scm @@ -161,6 +161,8 @@ deduplicates files common to CLOSURE and the rest of PREFIX." references-graphs (register-closures? #t) system-directory + (make-device-nodes + make-essential-device-nodes) #:allow-other-keys) "Initialize the given ROOT directory. Use BOOTCFG and BOOTCFG-LOCATION to install the bootloader configuration. @@ -172,6 +174,9 @@ of the directory of the 'system' derivation." (populate-root-file-system system-directory root) (populate-store references-graphs root) + ;; Populate /dev. + (make-device-nodes root) + (when register-closures? (for-each (lambda (closure) (register-closure root diff --git a/gnu/system/image.scm b/gnu/system/image.scm index f44886c137..15dac8af57 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -43,6 +43,7 @@ #:use-module (gnu packages genimage) #:use-module (gnu packages guile) #:autoload (gnu packages gnupg) (guile-gcrypt) + #:use-module (gnu packages hurd) #:use-module (gnu packages linux) #:use-module (gnu packages mtools) #:use-module ((srfi srfi-1) #:prefix srfi-1:) @@ -54,6 +55,7 @@ #:export (esp-partition root-partition + hurd-disk-image efi-disk-image iso9660-image @@ -91,6 +93,26 @@ (flags '(boot)) (initializer (gexp initialize-root-partition)))) +(define hurd-initialize-root-partition + #~(lambda* (#:rest args) + (apply initialize-root-partition + (append args + (list #:make-device-nodes + make-hurd-device-nodes))))) + +(define hurd-disk-image + (image + (format 'disk-image) + (partitions + (list (partition + (size 'guess) + (offset root-offset) + (label root-label) + (file-system "ext2") + (file-system-options '("-o" "hurd" "-O" "ext_attr")) + (flags '(boot)) + (initializer hurd-initialize-root-partition)))))) + (define efi-disk-image (image (format 'disk-image) @@ -145,12 +167,14 @@ (with-imported-modules `(,@(source-module-closure '((gnu build vm) (gnu build image) + (gnu build linux-boot) (guix store database)) #:select? not-config?) ((guix config) => ,(make-config.scm))) #~(begin (use-modules (gnu build vm) (gnu build image) + (gnu build linux-boot) (guix store database) (guix build utils)) gexp* ...)))) @@ -525,10 +549,16 @@ image, depending on IMAGE format." "Find and return an image that could match the given FILE-SYSTEM-TYPE. This is useful to adapt to interfaces written before the addition of the record." - (mbegin %store-monad - (return - (match file-system-type - ("iso9660" iso9660-image) - (_ efi-disk-image))))) + (mlet %store-monad ((target (current-target-system))) + (mbegin %store-monad + (return + (match file-system-type + ("iso9660" iso9660-image) + (_ (cond + ((and target + (hurd-triplet? target)) + hurd-disk-image) + (else + efi-disk-image)))))))) ;;; image.scm ends here -- cgit v1.2.3 From 45b2cb439deaa2f438aed3893ee8fc80445d5563 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sun, 3 May 2020 14:13:58 +0200 Subject: system: hurd: Add hurd-default-essential-services. * gnu/system.scm (hurd-default-essential-services): New procedure. --- gnu/system.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index 61cbaef280..79f52acc23 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2020 Brice Waegeneire ;;; Copyright © 2020 Florian Pelz ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -127,6 +128,8 @@ operating-system-with-gc-roots operating-system-with-provenance + hurd-default-essential-services + boot-parameters boot-parameters? boot-parameters-label @@ -574,6 +577,10 @@ bookkeeping." (service firmware-service-type (operating-system-firmware os))))))) +(define (hurd-default-essential-services os) + (list (service system-service-type '()) + (service profile-service-type '()))) + (define* (operating-system-services os) "Return all the services of OS, including \"essential\" services." (instantiate-missing-services -- cgit v1.2.3 From 2018fb2afe20988193a50fe30159725f51db0a4b Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sun, 3 May 2020 15:09:15 +0200 Subject: system: Add 'hurd' field to . * gnu/system.scm ()[hurd]: New field. * doc/guix.texi (operating-system Reference): Document 'hurd'. --- doc/guix.texi | 18 +++++++++++++++--- gnu/system.scm | 3 +++ 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index 056bf011f6..46aceae068 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11484,9 +11484,21 @@ configuration (@pxref{Using the Configuration System}). @table @asis @item @code{kernel} (default: @code{linux-libre}) -The package object of the operating system kernel to use@footnote{Currently -only the Linux-libre kernel is supported. In the future, it will be -possible to use the GNU@tie{}Hurd.}. +The package object of the operating system kernel to +use@footnote{Currently only the Linux-libre kernel is fully supported. +Using GNU@tie{}mach with the GNU@tie{}Hurd is experimental and only +available when building a virtual machine disk image.}. + +@cindex hurd +@item @code{hurd} (default: @code{#f}) +The package object of the hurd to be started by the kernel. When this +field is set, produce a GNU/Hurd operating system. In that case, +@code{kernel} must also be set to the @code{gnumach} package---the +microkernel the Hurd runs on. + +@quotation Warning +This feature is experimental and only supported for disk images. +@end quotation @item @code{kernel-loadable-modules} (default: '()) A list of objects (usually packages) to collect loadable kernel modules diff --git a/gnu/system.scm b/gnu/system.scm index 79f52acc23..310a4aac87 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -83,6 +83,7 @@ operating-system-packages operating-system-host-name operating-system-hosts-file + operating-system-hurd operating-system-kernel operating-system-kernel-file operating-system-kernel-arguments @@ -187,6 +188,8 @@ (default '())) ; list of packages (kernel-arguments operating-system-user-kernel-arguments (default %default-kernel-arguments)) ; list of gexps/strings + (hurd operating-system-hurd + (default #f)) ; package (bootloader operating-system-bootloader) ; (label operating-system-label ; string (thunked) -- cgit v1.2.3 From 21acd8d6c11b85d06c82b168807b35cb7d2d0adf Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Tue, 26 May 2020 16:54:18 +0200 Subject: bootloader: Extend `' for multiboot. * gnu/bootloader.scm ()[multiboot-kernel,multiboot-arguments, multiboot-modules]: New fields. [linux,initrd]: Add default value '#f'. (menu-entry->sexp, sexp->menu-entry): Support multiboot entry. * doc/guix.texi (Bootloader Configuration): Document them. --- doc/guix.texi | 27 +++++++++++++++++++++++++-- gnu/bootloader.scm | 46 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 66 insertions(+), 7 deletions(-) (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index 46aceae068..167a0a84d6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -26985,7 +26985,7 @@ The type of an entry in the bootloader menu. @item @code{label} The label to show in the menu---e.g., @code{"GNU"}. -@item @code{linux} +@item @code{linux} (default: @code{#f}) The Linux kernel image to boot, for example: @lisp @@ -27007,9 +27007,10 @@ field is ignored entirely. The list of extra Linux kernel command-line arguments---e.g., @code{("console=ttyS0")}. -@item @code{initrd} +@item @code{initrd} (default: @code{#f}) A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions}). + @item @code{device} (default: @code{#f}) The device where the kernel and initrd are to be found---i.e., for GRUB, @dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual}). @@ -27020,6 +27021,28 @@ the bootloader will search the device containing the file specified by the @code{linux} field (@pxref{search,,, grub, GNU GRUB manual}). It must @emph{not} be an OS device name such as @file{/dev/sda1}. +@item @code{multiboot-kernel} (default: @code{#f}) +The kernel to boot in Multiboot-mode (@pxref{multiboot,,, grub, GNU GRUB +manual}). When this field is set, a Multiboot menu-entry is generated. +For example: + +@lisp +(file-append mach "/boot/gnumach") +@end lisp + +@item @code{multiboot-arguments} (default: @code{()}) +The list of extra command-line arguments for the multiboot-kernel. + +@item @code{multiboot-modules} (default: @code{()}) +The list of commands for loading Multiboot modules. For example: + +@lisp +(list (list (file-append hurd "/hurd/ext2fs.static") "ext2fs" + @dots{}) + (list (file-append libc "/lib/ld.so.1") "exec" + @dots{})) +@end lisp + @end table @end deftp diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm index 668caa7fc3..2eebb8e9d9 100644 --- a/gnu/bootloader.scm +++ b/gnu/bootloader.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017, 2020 Mathieu Othacehe ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,9 @@ menu-entry-linux-arguments menu-entry-initrd menu-entry-device-mount-point + menu-entry-multiboot-kernel + menu-entry-multiboot-arguments + menu-entry-multiboot-modules menu-entry->sexp sexp->menu-entry @@ -77,22 +81,41 @@ (default #f)) (device-mount-point menu-entry-device-mount-point (default #f)) - (linux menu-entry-linux) + (linux menu-entry-linux + (default #f)) (linux-arguments menu-entry-linux-arguments (default '())) ; list of string-valued gexps - (initrd menu-entry-initrd)) ; file name of the initrd as a gexp + (initrd menu-entry-initrd ; file name of the initrd as a gexp + (default #f)) + (multiboot-kernel menu-entry-multiboot-kernel + (default #f)) + (multiboot-arguments menu-entry-multiboot-arguments + (default '())) ; list of string-valued gexps + (multiboot-modules menu-entry-multiboot-modules + (default '()))) ; list of multiboot commands, where + ; a command is a list of (define (menu-entry->sexp entry) "Return ENTRY serialized as an sexp." (match entry - (($ label device mount-point linux linux-arguments initrd) + (($ label device mount-point linux linux-arguments initrd #f + ()) `(menu-entry (version 0) (label ,label) (device ,device) (device-mount-point ,mount-point) (linux ,linux) (linux-arguments ,linux-arguments) - (initrd ,initrd))))) + (initrd ,initrd))) + (($ label device mount-point #f () #f + multiboot-kernel multiboot-arguments multiboot-modules) + `(menu-entry (version 0) + (label ,label) + (device ,device) + (device-mount-point ,mount-point) + (multiboot-kernel ,multiboot-kernel) + (multiboot-arguments ,multiboot-arguments) + (multiboot-modules ,multiboot-modules))))) (define (sexp->menu-entry sexp) "Turn SEXP, an sexp as returned by 'menu-entry->sexp', into a @@ -109,7 +132,20 @@ record." (device-mount-point mount-point) (linux linux) (linux-arguments linux-arguments) - (initrd initrd))))) + (initrd initrd))) + (('menu-entry ('version 0) + ('label label) ('device device) + ('device-mount-point mount-point) + ('multiboot-kernel multiboot-kernel) + ('multiboot-arguments multiboot-arguments) + ('multiboot-modules multiboot-modules) _ ...) + (menu-entry + (label label) + (device device) + (device-mount-point mount-point) + (multiboot-kernel multiboot-kernel) + (multiboot-arguments multiboot-arguments) + (multiboot-modules multiboot-modules))))) ;;; -- cgit v1.2.3 From 912b857ede450828805e09bb718658f79c40703a Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Tue, 26 May 2020 17:38:30 +0200 Subject: system: Add 'multiboot-modules' field to . * gnu/system.scm ()[multiboot-modules]: New field. (read-boot-parameters): Initialize it. (operating-system-multiboot-modules, hurd-multiboot-modules): New procedure. (operating-system-boot-parameters): Cater for multiboot the Hurd and initialize it; avoid initrd in that case. (operating-system-kernel-file): Cater for for Gnumach (the Hurd) besides Linux. (boot-parameters->menu-entry): Use it to support a multiboot . --- gnu/system.scm | 86 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 67 insertions(+), 19 deletions(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index 310a4aac87..0722bcf771 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -39,9 +39,11 @@ #:use-module (guix utils) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages cross-base) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages admin) + #:use-module (gnu packages hurd) #:use-module (gnu packages linux) #:use-module (gnu packages pciutils) #:use-module (gnu packages package-management) @@ -142,6 +144,7 @@ boot-parameters-kernel boot-parameters-kernel-arguments boot-parameters-initrd + boot-parameters-multiboot-modules read-boot-parameters read-boot-parameters-file boot-parameters->menu-entry @@ -283,7 +286,8 @@ directly by the user." (store-mount-point boot-parameters-store-mount-point) (kernel boot-parameters-kernel) (kernel-arguments boot-parameters-kernel-arguments) - (initrd boot-parameters-initrd)) + (initrd boot-parameters-initrd) + (multiboot-modules boot-parameters-multiboot-modules)) (define (ensure-not-/dev device) "If DEVICE starts with a slash, return #f. This is meant to filter out @@ -314,7 +318,7 @@ file system labels." (match (read port) (('boot-parameters ('version 0) ('label label) ('root-device root) - ('kernel linux) + ('kernel kernel) rest ...) (boot-parameters (label label) @@ -330,12 +334,12 @@ file system labels." ((_ entries) (map sexp->menu-entry entries)) (#f '()))) - ;; In the past, we would store the directory name of the kernel instead - ;; of the absolute file name of its image. Detect that and correct it. - (kernel (if (string=? linux (direct-store-path linux)) - (string-append linux "/" + ;; In the past, we would store the directory name of linux instead of + ;; the absolute file name of its image. Detect that and correct it. + (kernel (if (string=? kernel (direct-store-path kernel)) + (string-append kernel "/" (system-linux-image-file-name)) - linux)) + kernel)) (kernel-arguments (match (assq 'kernel-arguments rest) @@ -349,6 +353,8 @@ file system labels." (('initrd (? string? file)) file))) + (multiboot-modules (or (assq 'multiboot-modules rest) '())) + (store-device ;; Linux device names like "/dev/sda1" are not suitable GRUB device ;; identifiers, so we just filter them out. @@ -386,14 +392,25 @@ The object has its kernel-arguments extended in order to make it bootable." (boot-parameters-kernel-arguments params)))))) (define (boot-parameters->menu-entry conf) - (menu-entry - (label (boot-parameters-label conf)) - (device (boot-parameters-store-device conf)) - (device-mount-point (boot-parameters-store-mount-point conf)) - (linux (boot-parameters-kernel conf)) - (linux-arguments (boot-parameters-kernel-arguments conf)) - (initrd (boot-parameters-initrd conf)))) - + (let* ((kernel (boot-parameters-kernel conf)) + (multiboot-modules (boot-parameters-multiboot-modules conf)) + (multiboot? (pair? multiboot-modules))) + (menu-entry + (label (boot-parameters-label conf)) + (device (boot-parameters-store-device conf)) + (device-mount-point (boot-parameters-store-mount-point conf)) + (linux (and (not multiboot?) kernel)) + (linux-arguments (if (not multiboot?) ' + (boot-parameters-kernel-arguments conf) + '())) + (initrd (boot-parameters-initrd conf)) + (multiboot-kernel (and multiboot? kernel)) + (multiboot-arguments (if multiboot? + (boot-parameters-kernel-arguments conf) + '())) + (multiboot-modules (if multiboot? + (boot-parameters-multiboot-modules conf) + '()))))) ;;; @@ -485,8 +502,10 @@ from the initrd." (define (operating-system-kernel-file os) "Return an object representing the absolute file name of the kernel image of OS." - (file-append (operating-system-kernel os) - "/" (system-linux-image-file-name))) + (if (operating-system-hurd os) + (file-append (operating-system-kernel os) "/boot/gnumach") + (file-append (operating-system-kernel os) + "/" (system-linux-image-file-name)))) (define (package-for-kernel target-kernel module-package) "Return a package like MODULE-PACKAGE, adapted for TARGET-KERNEL, if @@ -1131,17 +1150,45 @@ a list of , to populate the \"old entries\" menu." #:store-directory-prefix (btrfs-store-subvolume-file-name file-systems)))) +(define (operating-system-multiboot-modules os) + (if (operating-system-hurd os) (hurd-multiboot-modules os) '())) + +(define (hurd-multiboot-modules os) + (let* ((hurd (operating-system-hurd os)) + (root-file-system-command + (list (file-append hurd "/hurd/ext2fs.static") + "ext2fs" + "--multiboot-command-line='${kernel-command-line}'" + "--host-priv-port='${host-port}'" + "--device-master-port='${device-port}'" + "--exec-server-task='${exec-task}'" + "--store-type=typed" + "'${root}'" "'$(task-create)'" "'$(task-resume)'")) + (target (%current-target-system)) + (libc (if target + (with-parameters ((%current-target-system #f)) + ;; TODO: cross-libc has extra patches for the Hurd; + ;; remove in next rebuild cycle + (cross-libc target)) + glibc)) + (exec-server-command + (list (file-append libc "/lib/ld.so.1") "exec" + (file-append hurd "/hurd/exec") "'$(exec-task=task-create)'"))) + (list root-file-system-command exec-server-command))) + (define* (operating-system-boot-parameters os root-device #:key system-kernel-arguments?) "Return a monadic record that describes the boot parameters of OS. When SYSTEM-KERNEL-ARGUMENTS? is true, add kernel arguments such as '--root' and '--load' to ." - (let* ((initrd (operating-system-initrd-file os)) + (let* ((initrd (and (not (hurd-target?)) + (operating-system-initrd-file os))) (store (operating-system-store-file-system os)) (bootloader (bootloader-configuration-bootloader (operating-system-bootloader os))) (bootloader-name (bootloader-name bootloader)) - (label (operating-system-label os))) + (label (operating-system-label os)) + (multiboot-modules (operating-system-multiboot-modules os))) (boot-parameters (label label) (root-device root-device) @@ -1151,6 +1198,7 @@ such as '--root' and '--load' to ." (operating-system-kernel-arguments os root-device) (operating-system-user-kernel-arguments os))) (initrd initrd) + (multiboot-modules multiboot-modules) (bootloader-name bootloader-name) (bootloader-menu-entries (bootloader-configuration-menu-entries (operating-system-bootloader os))) -- cgit v1.2.3 From 1244491a0d5334e1589159a2ff67bbc967b9648b Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Tue, 26 May 2020 18:09:01 +0200 Subject: bootloader: grub: Add support for multiboot. * gnu/bootloader/grub.scm (grub-configuration-file): Add support for multiboot. --- gnu/bootloader/grub.scm | 76 +++++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 27 deletions(-) (limited to 'gnu') diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 2d9a39afc3..d4dbb57131 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -330,36 +330,58 @@ when booting a root file system on a Btrfs subvolume." (define all-entries (append entries (bootloader-configuration-menu-entries config))) (define (menu-entry->gexp entry) - (let* ((device (menu-entry-device entry)) - (device-mount-point (menu-entry-device-mount-point entry)) - (label (menu-entry-label entry)) - (arguments (menu-entry-linux-arguments entry)) - (kernel (normalize-file (menu-entry-linux entry) - device-mount-point - store-directory-prefix)) - (initrd (normalize-file (menu-entry-initrd entry) - device-mount-point - store-directory-prefix))) - ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point. - ;; Use the right file names for KERNEL and INITRD in case - ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a - ;; separate partition. - #~(format port "menuentry ~s { + (let ((label (menu-entry-label entry)) + (linux (menu-entry-linux entry)) + (device (menu-entry-device entry)) + (device-mount-point (menu-entry-device-mount-point entry))) + (if linux + (let ((arguments (menu-entry-linux-arguments entry)) + (linux (normalize-file linux + device-mount-point + store-directory-prefix)) + (initrd (normalize-file (menu-entry-initrd entry) + device-mount-point + store-directory-prefix))) + ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point. + ;; Use the right file names for LINUX and INITRD in case + ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a + ;; separate partition. + + ;; When BTRFS-SUBVOLUME-FILE-NAME is defined, prepend it the linux and + ;; initrd paths, to allow booting from a Btrfs subvolume. + #~(format port "menuentry ~s { ~a linux ~a ~a initrd ~a }~%" - #$label - #$(grub-root-search device kernel) - #$kernel (string-join (list #$@arguments)) - #$initrd))) - (define sugar - (eye-candy config - (menu-entry-device (first all-entries)) - (menu-entry-device-mount-point (first all-entries)) - #:store-directory-prefix store-directory-prefix - #:system system - #:port #~port)) + #$label + #$(grub-root-search device linux) + #$linux (string-join (list #$@arguments)) + #$initrd)) + (let ((kernel (menu-entry-multiboot-kernel entry)) + (arguments (menu-entry-multiboot-arguments entry)) + (modules (menu-entry-multiboot-modules entry)) + (root-index 1)) ; XXX EFI will need root-index 2 + #~(format port " +menuentry ~s { + multiboot ~a root=device:hd0s~a~a~a +}~%" + #$label + #$kernel + #$root-index (string-join (list #$@arguments) " " 'prefix) + (string-join (map string-join '#$modules) + "\n module " 'prefix)))))) + + (define (sugar) + (let* ((entry (first all-entries)) + (device (menu-entry-device entry)) + (mount-point (menu-entry-device-mount-point entry))) + (eye-candy config + device + mount-point + #:store-directory-prefix store-directory-prefix + #:system system + #:port #~port))) (define keyboard-layout-config (let* ((layout (bootloader-configuration-keyboard-layout config)) @@ -384,7 +406,7 @@ keymap ~a~%" #$keymap)))) "# This file was generated from your Guix configuration. Any changes # will be lost upon reconfiguration. ") - #$sugar + #$(sugar) #$keyboard-layout-config (format port " set default=~a -- cgit v1.2.3 From e6cd8581c192f739712013874dfa9690522ea9f1 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sun, 10 May 2020 15:31:45 +0200 Subject: system: Use 'hurd' package in label. * gnu/system.scm (kernel->boot-label): Add keyword parameter 'hurd'. If set, use it for label. (operating-system-default-label): Call with it with operating-system-hurd. --- gnu/system.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index 0722bcf771..a37c5ba4f3 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -1091,9 +1091,13 @@ listed in OS. The C library expects to find it under (locale-directory definitions #:libcs (operating-system-locale-libcs os))) -(define (kernel->boot-label kernel) +(define* (kernel->boot-label kernel #:key hurd) "Return a label for the bootloader menu entry that boots KERNEL." - (cond ((package? kernel) + (cond ((package? hurd) + (string-append "GNU with the " + (string-titlecase (package-name hurd)) " " + (package-version hurd))) + ((package? kernel) (string-append "GNU with " (string-titlecase (package-name kernel)) " " (package-version kernel))) @@ -1106,7 +1110,8 @@ listed in OS. The C library expects to find it under (define (operating-system-default-label os) "Return the default label for OS, as it will appear in the bootloader menu entry." - (kernel->boot-label (operating-system-kernel os))) + (kernel->boot-label (operating-system-kernel os) + #:hurd (operating-system-hurd os))) (define (store-file-system file-systems) "Return the file system object among FILE-SYSTEMS that contains the store." -- cgit v1.2.3 From 59bcffa314171294278444aad4b7012abe50257a Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 13 Apr 2020 17:15:10 +0200 Subject: system: examples: Add bare-hurd.tmpl. * gnu/system/hurd.scm (%hurd-def%hurd-default-operating-system-kernel, %hurd-default-operating-system): New exported variables. * gnu/system/examples/bare-hurd.tmpl: New file. * Makefile.am (EXAMPLES): Add it. * tests/guix-system.sh: Add --target=i586-pc-gnu when testing it. --- Makefile.am | 3 ++- gnu/services.scm | 2 ++ gnu/system/examples/bare-hurd.tmpl | 31 +++++++++++++++++++++++++ gnu/system/hurd.scm | 47 ++++++++++++++++++++++++++++++++++++-- tests/guix-system.sh | 7 +++++- 5 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 gnu/system/examples/bare-hurd.tmpl (limited to 'gnu') diff --git a/Makefile.am b/Makefile.am index f3985f9572..0feb75c7c1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,7 +7,7 @@ # Copyright © 2017 Mathieu Othacehe # Copyright © 2017 Leo Famulari # Copyright © 2017 Ricardo Wurmus -# Copyright © 2017 Jan Nieuwenhuizen +# Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen # Copyright © 2017 Arun Isaac # Copyright © 2018 Nikita # Copyright © 2018 Julien Lepiller @@ -348,6 +348,7 @@ AUX_FILES = \ EXAMPLES = \ gnu/system/examples/asus-c201.tmpl \ gnu/system/examples/bare-bones.tmpl \ + gnu/system/examples/bare-hurd.tmpl \ gnu/system/examples/beaglebone-black.tmpl \ gnu/system/examples/desktop.tmpl \ gnu/system/examples/lightweight-desktop.tmpl \ diff --git a/gnu/services.scm b/gnu/services.scm index 2e4648bf78..63a709fc95 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2016 Chris Marusich +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ #:use-module (guix modules) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages hurd) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl new file mode 100644 index 0000000000..16f20416aa --- /dev/null +++ b/gnu/system/examples/bare-hurd.tmpl @@ -0,0 +1,31 @@ +;; -*-scheme-*- + +;; This is an operating system configuration template +;; for a "bare bones" setup, with no X11 display server. + +;; To build a disk image for a virtual machine, do +;; +;; ./pre-inst-env guix system disk-image --target=i586-pc-gnu --no-grafts \ +;; gnu/system/examples/bare-hurd.tmpl +;; +;; it boots, but needs activation, more setup and services to be useful. + +(use-modules (gnu) (gnu system hurd) (guix utils)) + +(define %hurd-os + (operating-system + (inherit %hurd-default-operating-system) + (bootloader (bootloader-configuration + (bootloader grub-minimal-bootloader) + (target "/dev/sdX"))) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext2")) + %base-file-systems)) + (host-name "guixygnu") + (timezone "Europe/Amsterdam") + (packages %base-packages/hurd) + (services %base-services/hurd))) + +%hurd-os diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm index 3ccf47aa21..e11055cbb8 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -21,6 +21,7 @@ #:use-module (guix gexp) #:use-module (guix profiles) #:use-module (guix utils) + #:use-module (gnu bootloader) #:use-module (gnu bootloader grub) #:use-module (gnu packages admin) #:use-module (gnu packages base) @@ -31,8 +32,18 @@ #:use-module (gnu packages guile-xyz) #:use-module (gnu packages hurd) #:use-module (gnu packages less) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services hurd) + #:use-module (gnu services shepherd) + #:use-module (gnu system) + #:use-module (gnu system shadow) #:use-module (gnu system vm) - #:export (cross-hurd-image)) + #:export (cross-hurd-image + %base-packages/hurd + %base-services/hurd + %hurd-default-operating-system + %hurd-default-operating-system-kernel)) ;;; Commentary: ;;; @@ -41,10 +52,42 @@ ;;; ;;; Code: +(define %hurd-default-operating-system-kernel + (if (hurd-system?) + gnumach + ;; A cross-built GNUmach does not work + (with-parameters ((%current-system "i686-linux") + (%current-target-system #f)) + gnumach))) + (define %base-packages/hurd (list hurd bash coreutils file findutils grep sed guile-3.0 guile-colorized guile-readline - net-base inetutils less which)) + net-base inetutils less shepherd which)) + +(define %base-services/hurd + '()) + +(define %hurd-default-operating-system + (operating-system + (kernel %hurd-default-operating-system-kernel) + (kernel-arguments '()) + (hurd hurd) + (bootloader (bootloader-configuration + (bootloader grub-minimal-bootloader) + (target "/dev/vda"))) + (initrd (lambda _ '())) + (initrd-modules (lambda _ '())) + (firmware '()) + (host-name "guixygnu") + (file-systems '()) + (packages %base-packages/hurd) + (timezone "GNUrope") + (name-service-switch #f) + (essential-services (hurd-default-essential-services this-operating-system)) + (pam-services '()) + (setuid-programs '()) + (sudoers-file #f))) (define* (cross-hurd-image #:key (hurd hurd) (gnumach gnumach)) "Return a cross-built GNU/Hurd image." diff --git a/tests/guix-system.sh b/tests/guix-system.sh index 3a831cba1d..0e22686a34 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -307,7 +307,12 @@ guix system search anonym network | grep "^name: tor" # Verify that the examples can be built. for example in gnu/system/examples/*.tmpl; do - guix system -n disk-image "$example" + if echo "$example" | grep hurd; then + target="--target=i586-pc-gnu" + else + target= + fi + guix system -n disk-image $target "$example" done # Verify that the disk image types can be built. -- cgit v1.2.3 From c3fd2df705695a0dc9f393545606360be1ea6104 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sun, 3 May 2020 16:32:09 +0200 Subject: system: Support activation service for the Hurd. * gnu/build/activation.scm (boot-time-system): Use "command-line" for the Hurd. * gnu/system.scm (hurd-default-essential-services): Add %boot-service and %activation-service. --- gnu/build/activation.scm | 4 +++- gnu/system.scm | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 30f5e87d5a..b915e6bb67 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -320,7 +320,9 @@ improvement." (define (boot-time-system) "Return the '--system' argument passed on the kernel command line." - (find-long-option "--system" (linux-command-line))) + (find-long-option "--system" (if (string-contains %host-type "linux-gnu") + linux-command-line + (command-line)))) (define* (activate-current-system #:optional (system (or (getenv "GUIX_NEW_SYSTEM") diff --git a/gnu/system.scm b/gnu/system.scm index a37c5ba4f3..4c23178b18 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -601,6 +601,8 @@ bookkeeping." (define (hurd-default-essential-services os) (list (service system-service-type '()) + %boot-service + %activation-service (service profile-service-type '()))) (define* (operating-system-services os) -- cgit v1.2.3 From f5ca79d2a26ece8ce58693916d3bec21749f14cb Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sat, 25 Apr 2020 11:55:56 +0200 Subject: services: Support etc-service for the Hurd. * gnu/system.scm (operating-system-etc-service): Cater for missing nsswitch and missing sudoers-file. For the Hurd, add "login" and "motd". (hurd-default-essential-services): Add operating-system-etc-service. --- gnu/system.scm | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index 4c23178b18..cca1c09f5d 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -603,6 +603,7 @@ bookkeeping." (list (service system-service-type '()) %boot-service %activation-service + (operating-system-etc-service os) (service profile-service-type '()))) (define* (operating-system-services os) @@ -708,7 +709,7 @@ This is the GNU system. Welcome.\n") (define* (operating-system-etc-service os) "Return a that builds containing the static part of the /etc directory." - (let ((login.defs + (let* ((login.defs (plain-file "login.defs" (string-append "# Default paths for non-login shells started by su(1).\n" @@ -719,10 +720,13 @@ directory." "/run/current-system/profile/bin:" "/run/current-system/profile/sbin\n"))) - (issue (plain-file "issue" (operating-system-issue os))) - (nsswitch (plain-file "nsswitch.conf" - (name-service-switch->string - (operating-system-name-service-switch os)))) + (hurd (operating-system-hurd os)) + (issue (plain-file "issue" (operating-system-issue os))) + (nsswitch (operating-system-name-service-switch os)) + (nsswitch (and nsswitch + (plain-file "nsswitch.conf" + (name-service-switch->string nsswitch)))) + (sudoers (operating-system-sudoers-file os)) ;; Startup file for POSIX-compliant login shells, which set system-wide ;; environment variables. @@ -812,7 +816,7 @@ fi\n"))) ("rpc" ,(file-append net-base "/etc/rpc")) ("login.defs" ,#~#$login.defs) ("issue" ,#~#$issue) - ("nsswitch.conf" ,#~#$nsswitch) + ,@(if nsswitch `(("nsswitch.conf" ,#~#$nsswitch)) '()) ("profile" ,#~#$profile) ("bashrc" ,#~#$bashrc) ("hosts" ,#~#$(or (operating-system-hosts-file os) @@ -828,7 +832,11 @@ fi\n"))) ("timezone" ,(plain-file "timezone" (operating-system-timezone os))) ("localtime" ,(file-append tzdata "/share/zoneinfo/" (operating-system-timezone os))) - ("sudoers" ,(operating-system-sudoers-file os)))))) + ,@(if sudoers `(("sudoers" ,sudoers)) '()) + ,@(if hurd + `(("login" ,(file-append hurd "/etc/login")) + ("motd" ,(file-append hurd "/etc/motd"))) + '()))))) (define %root-account ;; Default root account. -- cgit v1.2.3 From c03e513a41ff983703e010b2bb636ed7f8188281 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sun, 3 May 2020 16:37:27 +0200 Subject: services: hurd: Populate system profile. * gnu/system.scm (hurd-default-essential-services): Populate profile with packages. --- gnu/system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index cca1c09f5d..ce574d8c51 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -604,7 +604,7 @@ bookkeeping." %boot-service %activation-service (operating-system-etc-service os) - (service profile-service-type '()))) + (service profile-service-type (operating-system-packages os)))) (define* (operating-system-services os) "Return all the services of OS, including \"essential\" services." -- cgit v1.2.3 From 97c94fc2c210341edc5099856c5c0e83cfc0bd86 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Wed, 6 May 2020 08:22:41 +0200 Subject: gnu: hurd: Create minimal "runsystem" script to invoke "rc". This moves towards a regular Guix startup, loading SYSTEM/boot to activate the system and start the shepherd. * gnu/packages/hurd.scm (hurd-rc-script): Update to handle "runsystem" tasks. Load system/boot to activate the system and start the shepherd. Create /hurd symlink. (hurd)[arguments]: Add 'create-runsystem' phase. Do not substitute now unused init.c, runsystem.hurd. Substitute "/hurd/" for the fixed 'out + "/hurd/"' in boot.c, console-run.c and startup.c. Also substitute _HURD_STARTUP ("/hurd/startup") to the fixed 'out + "/hurd/startup"' in libdiskfs/boot-start.c and libdiskfs/opts-std-startup.c. --- gnu/packages/hurd.scm | 152 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 115 insertions(+), 37 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 278568b583..b341683afe 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -329,10 +329,26 @@ boot, since this cannot be done from GNU/Linux." (with-imported-modules '((guix build utils)) #~(begin (use-modules (guix build utils) - (ice-9 match)) - - ;; "@HURD@" is a placeholder. - (setenv "PATH" "@HURD@/bin") + (ice-9 match) + (system repl repl) + (srfi srfi-1) + (srfi srfi-26)) + + (display "Welcome, this is GNU's early boot Guile.\n") + (display "Use '--repl' for an initrd REPL.\n\n") + + ;; "@HURD@" and "@COREUTILS@" are a placeholders. + (setenv "PATH" "@HURD@/bin:@HURD@/sbin:@COREUTILS@/bin") + + ;; XXX FIXME c&p from linux-boot.scm + (define (find-long-option option arguments) + "Find OPTION among ARGUMENTS, where OPTION is something like \"--load\". +Return the value associated with OPTION, or #f on failure." + (let ((opt (string-append option "="))) + (and=> (find (cut string-prefix? opt <>) + arguments) + (lambda (arg) + (substring arg (+ 1 (string-index arg #\=))))))) (define (translated? node) ;; Return true if a translator is installed on NODE. @@ -349,10 +365,54 @@ boot, since this cannot be done from GNU/Linux." (apply invoke "settrans" "-c" node command)))) '#$translators) - ;; Start the oh-so-fancy console client. - (mkdir-p "/var/run") ;for the PID file - (invoke "console" "--daemonize" "-c" "/dev/vcs" - "-d" "vga" "-d" "pc_kbd" "-d" "generic_speaker")))) + (format #t "Creating essential device nodes...\n") + (with-directory-excursion "/dev" + (invoke "MAKEDEV" "--devdir=/dev" "std") + (invoke "MAKEDEV" "--devdir=/dev" "vcs") + (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6") + (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2") + (invoke "MAKEDEV" "--devdir=/dev" "console")) + + (let* ((args (command-line)) + (system (find-long-option "--system" args)) + (to-load (find-long-option "--load" args))) + + (false-if-exception (delete-file "/hurd")) + (let ((hurd/hurd (string-append system "/profile/hurd"))) + (symlink hurd/hurd "/hurd")) + + (format #t "Starting pager...\n") + (unless (zero? (system* "/hurd/mach-defpager")) + (format #t "FAILED...Good luck!\n")) + + (cond ((member "--repl" args) + (format #t "Starting repl...\n") + (start-repl)) + (to-load + (format #t "loading '~a'...\n" to-load) + (primitive-load to-load) + (format (current-error-port) + "boot program '~a' terminated, rebooting~%" + to-load) + (let ((shepherd.conf + (if (file-exists? "/etc/shepherd.conf") + "/etc/shepherd.conf" + (let ((files (find-files "/gnu/store" ".*-shepherd.conf"))) + (and (pair? files) (car files)))))) + (unless shepherd.conf + (format #t "No shepherd.conf found, dropping to a shell...\n") + (invoke "/run/current-system/profile/bin/bash") + (reboot)) + (false-if-exception (delete-file "/var/run/shepherd/socket")) + (format #t "Starting the Shepherd... ~a\n" shepherd.conf) + (execl "/run/current-system/profile/bin/shepherd" "shepherd" + "--config" shepherd.conf)) + (sleep 2) + (reboot)) + (else + (display "no boot file passed via '--load'\n") + (display "entering a warm and cozy REPL\n") + (start-repl))))))) ;; FIXME: We want the program to use the cross-compiled Guile when ;; cross-compiling. But why do we need to be explicit here? @@ -425,6 +485,28 @@ boot, since this cannot be done from GNU/Linux." (substitute* '("daemons/Makefile" "utils/Makefile") (("-o root -m 4755") "")) #t)) + (add-after 'unpack 'create-runsystem + (lambda _ + ;; XXX Work towards having startup.c invoke the Guile rc + (delete-file "daemons/runsystem.sh") + (with-output-to-file "daemons/runsystem.sh" + (lambda _ + (display "#! /bin/bash + +# XXX Guile needs pipe support for its finalizer thread, to start. +# Remove this script when Linux and the Hurd have xattr patches. +PATH=@PATH@ + +fsck --yes --force / +fsysopts / --writable + +# Note: this /hurd/ gets substituted +settrans --create /servers/socket/1 /hurd/pflocal +echo Starting /libexec/rc ... +exec /libexec/rc \"$@\" +"))) + )) + (add-before 'build 'set-file-names (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -437,45 +519,39 @@ boot, since this cannot be done from GNU/Linux." (("/bin/login") (string-append out "/bin/login")) (("/bin/bash") (string-append bash "/bin/bash"))) - (substitute* '("startup/startup.c" "init/init.c" "config/ttys") + (substitute* '("startup/startup.c" "config/ttys") (("/libexec/") (string-append out "/libexec/"))) (substitute* '("utils/uptime.sh") (("/bin/w") (string-append out "/bin/w"))) - (substitute* "daemons/console-run.c" + ;; Upon first boot the /hurd symlink does not exist; it is + ;; created during activation: Hard-code the .../hurd store file + ;; name. + (substitute* '("boot/boot.c" + "daemons/console-run.c" + "startup/startup.c") (("/hurd/") (string-append out "/hurd/"))) - + (substitute* '("libdiskfs/boot-start.c" + "libdiskfs/opts-std-startup.c") + (("_HURD_STARTUP") + (string-append "\"" out "/hurd/startup\""))) (substitute* '("daemons/runsystem.sh" - "daemons/runsystem.hurd.sh" - "sutils/MAKEDEV.sh") + "utils/fakeroot.sh" + "utils/remap.sh" + "sutils/MAKEDEV.sh" + "sutils/losetup.sh") (("^PATH=.*") - (string-append "PATH=" out "/bin:" out "/sbin:" - coreutils "/bin:" - sed "/bin:" grep "/bin:" - util-linux "/bin\n")) - (("^SHELL=.*") - (string-append "SHELL=" bash "/bin/bash\n")) + (string-append "PATH=" out "/bin" + ":" out "/sbin" + ":" coreutils "/bin" + ":" grep "/bin" + ":" sed "/bin" + ":" util-linux "/sbin\n")) (("/sbin/") (string-append out "/sbin/")) (("/libexec/") (string-append out "/libexec/")) (("/hurd/") (string-append out "/hurd/"))) - - (substitute* "daemons/runsystem.sh" - (("export PATH") - (string-append "export PATH\n" - "\ -fsysopts / --writable - -# MAKEDEV relies on pipes so this needs to be set up. -settrans -c /servers/socket/1 /hurd/pflocal - -(cd /dev; MAKEDEV -D /dev std vcs tty{1,2,3,4,5,6})\n"))) - - (substitute* "daemons/runsystem.hurd.sh" - (("export PATH") - "export PATH -fsysopts / --writable\n")) #t))) (add-after 'patch-shebangs 'patch-libexec-shebangs (lambda* (#:key inputs outputs #:allow-other-keys) @@ -511,11 +587,13 @@ fsysopts / --writable\n")) (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (file (string-append out "/libexec/rc")) - (rc (assoc-ref inputs "hurd-rc"))) + (rc (assoc-ref inputs "hurd-rc")) + (coreutils (assoc-ref inputs "coreutils"))) (delete-file file) (copy-file rc file) (substitute* file - (("@HURD@") out)) + (("@HURD@") out) + (("@COREUTILS@") coreutils)) #t)))) #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib") -- cgit v1.2.3 From f9c04580bf5462bb088f47ad8fc6c3136649cbd6 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sun, 12 Apr 2020 22:17:03 +0200 Subject: services: Add `hurd-console-service-type'. * gnu/services/hurd.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Hurd Services): Document it. --- doc/guix.texi | 22 ++++++++++++++++ gnu/local.mk | 1 + gnu/services/hurd.scm | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 gnu/services/hurd.scm (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index 167a0a84d6..9a57b927da 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -319,7 +319,9 @@ Services * Version Control Services:: Providing remote access to Git repositories. * Game Services:: Game servers. * PAM Mount Service:: Service to mount volumes when logging in. +* Guix Services:: Services relating specifically to Guix. * Linux Services:: Services tied to the Linux kernel. +* Hurd Services:: Services specific to a Hurd System. * Miscellaneous Services:: Other services. Defining Services @@ -12599,6 +12601,7 @@ declaration. * PAM Mount Service:: Service to mount volumes when logging in. * Guix Services:: Services relating specifically to Guix. * Linux Services:: Services tied to the Linux kernel. +* Hurd Services:: Services specific for a Hurd System. * Miscellaneous Services:: Other services. @end menu @@ -26037,6 +26040,25 @@ parameters, can be done as follow: @end lisp @end deffn +@node Hurd Services +@subsection Hurd Services + +@defvr {Scheme Variable} hurd-console-service-type +This service starts the fancy @code{VGA} console client on the Hurd. + +The service's value is a @code{hurd-console-configuration} record. +@end defvr + +@deftp {Data Type} hurd-console-configuration +This is the data type representing the configuration for the +hurd-console-service. + +@table @asis +@item @code{hurd} (default: @var{hurd}) +The Hurd package to use. +@end table +@end deftp + @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/local.mk b/gnu/local.mk index 6182306dd5..442e981830 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -582,6 +582,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/games.scm \ %D%/services/getmail.scm \ %D%/services/guix.scm \ + %D%/services/hurd.scm \ %D%/services/kerberos.scm \ %D%/services/linux.scm \ %D%/services/lirc.scm \ diff --git a/gnu/services/hurd.scm b/gnu/services/hurd.scm new file mode 100644 index 0000000000..36da8e218f --- /dev/null +++ b/gnu/services/hurd.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu services hurd) + #:use-module (gnu packages admin) + #:use-module (gnu packages hurd) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu system) + #:use-module (guix gexp) + #:use-module (guix records) + #:export (hurd-console-configuration + hurd-console-service-type)) + +;;; Commentary: +;;; +;;; This module implements services for the Hurd. +;;; +;;; Code: + +;;; +;;; The Hurd VGA console service. +;;; + +(define-record-type* + hurd-console-configuration make-hurd-console-configuration + hurd-console-configuration? + (hurd hurd-console-configuration-hurd ;package + (default hurd))) + +(define (hurd-console-shepherd-service config) + "Return a for a Hurd VGA console with CONFIG." + + (define console-command + #~(list + (string-append #$(hurd-console-configuration-hurd config) "/bin/console") + "-c" "/dev/vcs" + "-d" "vga" + "-d" "pc_kbd" + "-d" "generic_speaker")) + + (list (shepherd-service + (documentation "Run the Hurd’s VGA console client.") + (provision '(console)) + (requirement '(user-processes)) + (start #~(make-forkexec-constructor #$console-command)) + (stop #~(make-kill-destructor))))) + +(define hurd-console-service-type + (service-type + (name 'console) + (description "Run the Hurd console client.") + (extensions + (list (service-extension shepherd-root-service-type + hurd-console-shepherd-service))) + (default-value (hurd-console-configuration)))) + +;;; hurd.scm ends here -- cgit v1.2.3 From 7ccd471c71d650055e99cd02381bc8dcd86d5313 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Thu, 7 May 2020 11:14:01 +0200 Subject: services: Add `hurd-getty-service-type'. * gnu/services/hurd.scm (): New record. (hurd-ttys-shepherd-service): New procedure. (hurd-getty-service-type): New variable. * doc/guix.texi (Hurd Services): Document it. --- doc/guix.texi | 23 +++++++++++++++++++++++ gnu/services/hurd.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 74 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/doc/guix.texi b/doc/guix.texi index 9a57b927da..13e3c017d3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -26059,6 +26059,29 @@ The Hurd package to use. @end table @end deftp +@defvr {Scheme Variable} hurd-getty-service-type +This service starts a tty using the Hurd @code{getty} program. + +The service's value is a @code{hurd-getty-configuration} record. +@end defvr + +@deftp {Data Type} hurd-getty-configuration +This is the data type representing the configuration for the +hurd-getty-service. + +@table @asis +@item @code{hurd} (default: @var{hurd}) +The Hurd package to use. + +@item @code{tty} +The name of the console this Getty runs on---e.g., @code{"tty1"}. + +@item @code{baud-rate} (default: @code{38400}) +An integer specifying the baud rate of the tty. + +@end table +@end deftp + @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/hurd.scm b/gnu/services/hurd.scm index 36da8e218f..1ccf164223 100644 --- a/gnu/services/hurd.scm +++ b/gnu/services/hurd.scm @@ -25,7 +25,9 @@ #:use-module (guix gexp) #:use-module (guix records) #:export (hurd-console-configuration - hurd-console-service-type)) + hurd-console-service-type + hurd-getty-configuration + hurd-getty-service-type)) ;;; Commentary: ;;; @@ -70,4 +72,52 @@ hurd-console-shepherd-service))) (default-value (hurd-console-configuration)))) + +;;; +;;; The Hurd getty service. +;;; + +(define-record-type* + hurd-getty-configuration make-hurd-getty-configuration + hurd-getty-configuration? + (hurd hurd-getty-configuration-hurd ; + (default hurd)) + (tty hurd-getty-configuration-tty) ;string + (baud-rate hurd-getty-configuration-baud-rate + (default 38400))) ;integer + +(define (hurd-getty-shepherd-service config) + "Return a for a Hurd getty with CONFIG." + + (let ((hurd (hurd-getty-configuration-hurd config)) + (tty (hurd-getty-configuration-tty config)) + (baud-rate (hurd-getty-configuration-baud-rate config))) + + (define getty-command + #~(list + (string-append #$hurd "/libexec/getty") + #$(number->string baud-rate) + #$tty)) + + (list + (shepherd-service + (documentation "Run getty on a tty.") + (provision (list (string->symbol (string-append "term-" tty)))) + (requirement '(user-processes console)) + (start #~(make-forkexec-constructor #$getty-command)) + (stop #~(make-kill-destructor)))))) + +(define hurd-getty-service-type + (service-type + (name 'getty) + (extensions (list (service-extension shepherd-root-service-type + hurd-getty-shepherd-service))) + (description + "Provide console login using the Hurd @command{getty} program."))) + +(define* (hurd-getty-service config) + "Return a service to run the Hurd getty according to @var{config}, which +specifies the tty to run, among other things." + (service hurd-getty-service-type config)) + ;;; hurd.scm ends here -- cgit v1.2.3 From 11e4200feeffcf1abdd1559c9fca48373599ab10 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Wed, 6 May 2020 10:07:08 +0200 Subject: system: hurd: Populate services. * gnu/system/hurd.scm (%base-services/hurd): Add hurd-console-service, hurd-getty-services, guix-service. Also add sylog and loopback, needed for ... * gnu/system.scm (hurd-default-essential-services): ... add %shepherd-root-service with dependencies: %boot-service, %activation-service, user-processes, root-file-system-service, file-system-service, pam-root-service. --- gnu/system.scm | 11 +++++++++++ gnu/system/hurd.scm | 18 +++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system.scm b/gnu/system.scm index ce574d8c51..88b208277e 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -603,6 +603,17 @@ bookkeeping." (list (service system-service-type '()) %boot-service %activation-service + %shepherd-root-service + (service user-processes-service-type) + (account-service (append (operating-system-accounts os) + (operating-system-groups os)) + (operating-system-skeletons os)) + (root-file-system-service) + (service file-system-service-type '()) + (service fstab-service-type + (filter file-system-needed-for-boot? + (operating-system-file-systems os))) + (pam-root-service (operating-system-pam-services os)) (operating-system-etc-service os) (service profile-service-type (operating-system-packages os)))) diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm index e11055cbb8..956682357e 100644 --- a/gnu/system/hurd.scm +++ b/gnu/system/hurd.scm @@ -66,7 +66,23 @@ net-base inetutils less shepherd which)) (define %base-services/hurd - '()) + (list (service hurd-console-service-type + (hurd-console-configuration (hurd hurd))) + (service hurd-getty-service-type (hurd-getty-configuration + (tty "tty1"))) + (service hurd-getty-service-type (hurd-getty-configuration + (tty "tty2"))) + (service static-networking-service-type + (list (static-networking (interface "lo") + (ip "127.0.0.1") + (requirement '()) + (provision '(loopback)) + (name-servers '("10.0.2.3"))))) + (syslog-service) + (service guix-service-type + (guix-configuration + (extra-options '("--disable-chroot" + "--disable-deduplication")))))) (define %hurd-default-operating-system (operating-system -- cgit v1.2.3 From b37c544196898cc3dfa3da07ed344fbe11abc120 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 1 Jun 2020 09:46:39 +0200 Subject: hurd-boot: Further cleanup of "rc". * gnu/packages/hurd.scm (hurd-rc-script): Move implementation to ... * gnu/build/hurd-boot.scm (boot-hurd-system): ...here, new file. * gnu/build/linux-boot.scm (make-hurd-device-nodes): Move there likewise. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/build/hurd-boot.scm | 202 +++++++++++++++++++++++++++++++++++++++++++++++ gnu/build/linux-boot.scm | 48 +---------- gnu/local.mk | 1 + gnu/packages/hurd.scm | 100 +++-------------------- gnu/system/image.scm | 2 + gnu/system/vm.scm | 5 +- 6 files changed, 219 insertions(+), 139 deletions(-) create mode 100644 gnu/build/hurd-boot.scm (limited to 'gnu') diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm new file mode 100644 index 0000000000..729822dcbd --- /dev/null +++ b/gnu/build/hurd-boot.scm @@ -0,0 +1,202 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Ludovic Courtès +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu build hurd-boot) + #:use-module (system repl error-handling) + #:autoload (system repl repl) (start-repl) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match) + #:use-module (guix build utils) + #:use-module ((guix build syscalls) + #:hide (file-system-type)) + #:export (make-hurd-device-nodes + boot-hurd-system)) + +;;; Commentary: +;;; +;;; Utility procedures useful to boot a Hurd system. +;;; +;;; Code: + +;; XXX FIXME c&p from linux-boot.scm +(define (find-long-option option arguments) + "Find OPTION among ARGUMENTS, where OPTION is something like \"--load\". +Return the value associated with OPTION, or #f on failure." + (let ((opt (string-append option "="))) + (and=> (find (cut string-prefix? opt <>) + arguments) + (lambda (arg) + (substring arg (+ 1 (string-index arg #\=))))))) + +;; XXX FIXME c&p from guix/utils.scm +(define (readlink* file) + "Call 'readlink' until the result is not a symlink." + (define %max-symlink-depth 50) + + (let loop ((file file) + (depth 0)) + (define (absolute target) + (if (absolute-file-name? target) + target + (string-append (dirname file) "/" target))) + + (if (>= depth %max-symlink-depth) + file + (call-with-values + (lambda () + (catch 'system-error + (lambda () + (values #t (readlink file))) + (lambda args + (let ((errno (system-error-errno args))) + (if (or (= errno EINVAL)) + (values #f file) + (apply throw args)))))) + (lambda (success? target) + (if success? + (loop (absolute target) (+ depth 1)) + file)))))) + +(define* (make-hurd-device-nodes #:optional (root "/")) + "Make some of the nodes needed on GNU/Hurd." + (define (scope dir) + (string-append root (if (string-suffix? "/" root) "" "/") dir)) + + (mkdir (scope "dev")) + (for-each (lambda (file) + (call-with-output-file (scope file) + (lambda (port) + (display file port) ;avoid hard-linking + (chmod port #o666)))) + '("dev/null" + "dev/zero" + "dev/full" + "dev/random" + "dev/urandom")) + ;; Don't create /dev/console, /dev/vcs, etc.: they are created by + ;; console-run on first boot. + + (mkdir (scope "servers")) + (for-each (lambda (file) + (call-with-output-file (scope (string-append "servers/" file)) + (lambda (port) + (display file port) ;avoid hard-linking + (chmod port #o444)))) + '("startup" + "exec" + "proc" + "password" + "default-pager" + "crash-dump-core" + "kill" + "suspend")) + + (mkdir (scope "servers/socket")) + ;; Don't create /servers/socket/1 & co: runsystem does that on first boot. + + ;; TODO: Set the 'gnu.translator' extended attribute for passive translator + ;; settings? + ) + + +(define* (boot-hurd-system #:key (on-error 'debug)) + "This procedure is meant to be called from an early RC script. + +Install the relevant passive translators on the first boot. Then, run system +activation by using the kernel command-line options '--system' and '--load'; +starting the Shepherd. + +XXX TODO: see linux-boot.scm:boot-system. +XXX TODO: add proper file-system checking, mounting +XXX TODO: move bits to (new?) (hurd?) (activation?) services +XXX TODO: use settrans/setxattr instead of MAKEDEV + +" + (define translators + '(("/servers/crash-dump-core" ("/hurd/crash" "--dump-core")) + ("/servers/crash-kill" ("/hurd/crash" "--kill")) + ("/servers/crash-suspend" ("/hurd/crash" "--suspend")) + ("/servers/password" ("/hurd/password")) + ("/servers/socket/1" ("/hurd/pflocal")) + ("/servers/socket/2" ("/hurd/pfinet" "--interface" "eth0" + "--address" "10.0.2.15" ;the default QEMU guest IP + "--netmask" "255.255.255.0" + "--gateway" "10.0.2.2" + "--ipv6" "/servers/socket/16")))) + + (display "Welcome, this is GNU's early boot Guile.\n") + (display "Use '--repl' for an initrd REPL.\n\n") + + (call-with-error-handling + (lambda () + + (define (translated? node) + ;; Return true if a translator is installed on NODE. + (with-output-to-port (%make-void-port "w") + (lambda () + (with-error-to-port (%make-void-port "w") + (lambda () + (zero? (system* "showtrans" "-s" node))))))) + + (for-each (match-lambda + ((node command) + (unless (translated? node) + (mkdir-p (dirname node)) + (apply invoke "settrans" "-c" node command)))) + translators) + + (format #t "Creating essential device nodes...\n") + (with-directory-excursion "/dev" + (invoke "MAKEDEV" "--devdir=/dev" "std") + (invoke "MAKEDEV" "--devdir=/dev" "vcs") + (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6") + (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2") + (invoke "MAKEDEV" "--devdir=/dev" "console")) + + (let* ((args (command-line)) + (system (find-long-option "--system" args)) + (to-load (find-long-option "--load" args))) + + (false-if-exception (delete-file "/hurd")) + (let ((hurd/hurd (readlink* (string-append system "/profile/hurd")))) + (symlink hurd/hurd "/hurd")) + + (format #t "Starting pager...\n") + (unless (zero? (system* "/hurd/mach-defpager")) + (format #t "FAILED...Good luck!\n")) + + (cond ((member "--repl" args) + (format #t "Starting repl...\n") + (start-repl)) + (to-load + (format #t "loading '~a'...\n" to-load) + (primitive-load to-load) + (format (current-error-port) + "boot program '~a' terminated, rebooting~%" + to-load) + (sleep 2) + (reboot)) + (else + (display "no boot file passed via '--load'\n") + (display "entering a warm and cozy REPL\n") + (start-repl))))) + #:on-error on-error)) + +;;; hurd-boot.scm ends here diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index d62c670684..80fe0cfb9d 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -40,7 +40,6 @@ find-long-option find-long-options make-essential-device-nodes - make-hurd-device-nodes make-static-device-nodes configure-qemu-networking @@ -324,51 +323,6 @@ one specific hardware device. These we have to create." ;; File systems in user space (FUSE). (mknod (scope "dev/fuse") 'char-special #o666 (device-number 10 229))) -(define* (make-hurd-device-nodes #:optional (root "/")) - "Make some of the nodes needed on GNU/Hurd." - (define (scope dir) - (string-append root - (if (string-suffix? "/" root) - "" - "/") - dir)) - - (mkdir (scope "dev")) - (for-each (lambda (file) - (call-with-output-file (scope file) - (lambda (port) - (display file port) ;avoid hard-linking - (chmod port #o666)))) - '("dev/null" - "dev/zero" - "dev/full" - "dev/random" - "dev/urandom")) - ;; Don't create /dev/console, /dev/vcs, etc.: they are created by - ;; console-run on first boot. - - (mkdir (scope "servers")) - (for-each (lambda (file) - (call-with-output-file (scope (string-append "servers/" file)) - (lambda (port) - (display file port) ;avoid hard-linking - (chmod port #o444)))) - '("startup" - "exec" - "proc" - "password" - "default-pager" - "crash-dump-core" - "kill" - "suspend")) - - (mkdir (scope "servers/socket")) - ;; Don't create /servers/socket/1 & co: runsystem does that on first boot. - - ;; TODO: Set the 'gnu.translator' extended attribute for passive translator - ;; settings? - ) - (define %host-qemu-ipv4-address (inet-pton AF_INET "10.0.2.10")) @@ -610,4 +564,4 @@ upon error." (start-repl))))) #:on-error on-error)) -;;; linux-initrd.scm ends here +;;; linux-boot.scm ends here diff --git a/gnu/local.mk b/gnu/local.mk index 442e981830..b4d7ba5174 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -638,6 +638,7 @@ GNU_SYSTEM_MODULES = \ %D%/build/cross-toolchain.scm \ %D%/build/image.scm \ %D%/build/file-systems.scm \ + %D%/build/hurd-boot.scm \ %D%/build/install.scm \ %D%/build/linux-boot.scm \ %D%/build/linux-container.scm \ diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index b341683afe..d02bbe6013 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -31,6 +31,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) + #:use-module (gnu build hurd-boot) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) #:use-module (gnu packages flex) @@ -312,107 +313,26 @@ Hurd-minimal package which are needed for both glibc and GCC.") (define (hurd-rc-script) "Return a script to be installed as /libexec/rc in the 'hurd' package. The script takes care of installing the relevant passive translators on the first -boot, since this cannot be done from GNU/Linux." - (define translators - '(("/servers/crash-dump-core" ("/hurd/crash" "--dump-core")) - ("/servers/crash-kill" ("/hurd/crash" "--kill")) - ("/servers/crash-suspend" ("/hurd/crash" "--suspend")) - ("/servers/password" ("/hurd/password")) - ("/servers/socket/1" ("/hurd/pflocal")) - ("/servers/socket/2" ("/hurd/pfinet" "--interface" "eth0" - "--address" "10.0.2.15" ;the default QEMU guest IP - "--netmask" "255.255.255.0" - "--gateway" "10.0.2.2" - "--ipv6" "/servers/socket/16")))) +boot, since this cannot be done from GNU/Linux. Then, it runs system +activation; starting the Shepherd." (define rc - (with-imported-modules '((guix build utils)) + (with-imported-modules '((guix build utils) + (gnu build hurd-boot) + (guix build syscalls)) #~(begin (use-modules (guix build utils) + (gnu build hurd-boot) + (guix build syscalls) (ice-9 match) (system repl repl) (srfi srfi-1) (srfi srfi-26)) - (display "Welcome, this is GNU's early boot Guile.\n") - (display "Use '--repl' for an initrd REPL.\n\n") - - ;; "@HURD@" and "@COREUTILS@" are a placeholders. + ;; "@HURD@" and "@COREUTILS@" are placeholders. (setenv "PATH" "@HURD@/bin:@HURD@/sbin:@COREUTILS@/bin") - ;; XXX FIXME c&p from linux-boot.scm - (define (find-long-option option arguments) - "Find OPTION among ARGUMENTS, where OPTION is something like \"--load\". -Return the value associated with OPTION, or #f on failure." - (let ((opt (string-append option "="))) - (and=> (find (cut string-prefix? opt <>) - arguments) - (lambda (arg) - (substring arg (+ 1 (string-index arg #\=))))))) - - (define (translated? node) - ;; Return true if a translator is installed on NODE. - (with-output-to-port (%make-void-port "w") - (lambda () - (with-error-to-port (%make-void-port "w") - (lambda () - (zero? (system* "showtrans" "-s" node))))))) - - (for-each (match-lambda - ((node command) - (unless (translated? node) - (mkdir-p (dirname node)) - (apply invoke "settrans" "-c" node command)))) - '#$translators) - - (format #t "Creating essential device nodes...\n") - (with-directory-excursion "/dev" - (invoke "MAKEDEV" "--devdir=/dev" "std") - (invoke "MAKEDEV" "--devdir=/dev" "vcs") - (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6") - (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2") - (invoke "MAKEDEV" "--devdir=/dev" "console")) - - (let* ((args (command-line)) - (system (find-long-option "--system" args)) - (to-load (find-long-option "--load" args))) - - (false-if-exception (delete-file "/hurd")) - (let ((hurd/hurd (string-append system "/profile/hurd"))) - (symlink hurd/hurd "/hurd")) - - (format #t "Starting pager...\n") - (unless (zero? (system* "/hurd/mach-defpager")) - (format #t "FAILED...Good luck!\n")) - - (cond ((member "--repl" args) - (format #t "Starting repl...\n") - (start-repl)) - (to-load - (format #t "loading '~a'...\n" to-load) - (primitive-load to-load) - (format (current-error-port) - "boot program '~a' terminated, rebooting~%" - to-load) - (let ((shepherd.conf - (if (file-exists? "/etc/shepherd.conf") - "/etc/shepherd.conf" - (let ((files (find-files "/gnu/store" ".*-shepherd.conf"))) - (and (pair? files) (car files)))))) - (unless shepherd.conf - (format #t "No shepherd.conf found, dropping to a shell...\n") - (invoke "/run/current-system/profile/bin/bash") - (reboot)) - (false-if-exception (delete-file "/var/run/shepherd/socket")) - (format #t "Starting the Shepherd... ~a\n" shepherd.conf) - (execl "/run/current-system/profile/bin/shepherd" "shepherd" - "--config" shepherd.conf)) - (sleep 2) - (reboot)) - (else - (display "no boot file passed via '--load'\n") - (display "entering a warm and cozy REPL\n") - (start-repl))))))) + (boot-hurd-system)))) ;; FIXME: We want the program to use the cross-compiled Guile when ;; cross-compiling. But why do we need to be explicit here? diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 15dac8af57..a0e6bf31f1 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -167,6 +167,7 @@ (with-imported-modules `(,@(source-module-closure '((gnu build vm) (gnu build image) + (gnu build hurd-boot) (gnu build linux-boot) (guix store database)) #:select? not-config?) @@ -174,6 +175,7 @@ #~(begin (use-modules (gnu build vm) (gnu build image) + (gnu build hurd-boot) (gnu build linux-boot) (guix store database) (guix build utils)) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 038cce19b6..686e56348d 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -344,9 +344,10 @@ system that is passed to 'populate-root-file-system'." #~(begin (use-modules (gnu build bootloader) (gnu build vm) + ((gnu build hurd-boot) + #:select (make-hurd-device-nodes)) ((gnu build linux-boot) - #:select (make-essential-device-nodes - make-hurd-device-nodes)) + #:select (make-essential-device-nodes)) (guix store database) (guix build utils) (srfi srfi-26) -- cgit v1.2.3 From 68d8c094659565fe19abc1c433a17337ce5cacb7 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Thu, 30 Apr 2020 15:40:07 +0200 Subject: gnu: services: Add %hurd-startup-service. This decouples startup of the Hurd from the "hurd" package, moving the RC script into SYSTEM. * gnu/packages/hurd.scm (hurd)[inputs]: Remove hurd-rc-script. [arguments]: Do not substitute it. Update "runsystem.sh" to parse kernel arguments and exec into --system=SYSTEM/rc. (hurd-rc-script): Move to... * gnu/services.scm (%hurd-rc-file): ...this new variable. (hurd-rc-entry): New procedure. (%hurd-startup-service): Use it in new variable. * gnu/system.scm (hurd-default-essential-services): Use it. --- gnu/build/hurd-boot.scm | 35 +++++++++++++++-------------- gnu/packages/hurd.scm | 58 ++++++++++--------------------------------------- gnu/services.scm | 35 +++++++++++++++++++++++++++++ gnu/system.scm | 1 + 4 files changed, 67 insertions(+), 62 deletions(-) (limited to 'gnu') diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index 729822dcbd..09326233d2 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -153,27 +153,30 @@ XXX TODO: use settrans/setxattr instead of MAKEDEV (lambda () (with-error-to-port (%make-void-port "w") (lambda () - (zero? (system* "showtrans" "-s" node))))))) - - (for-each (match-lambda - ((node command) - (unless (translated? node) - (mkdir-p (dirname node)) - (apply invoke "settrans" "-c" node command)))) - translators) - - (format #t "Creating essential device nodes...\n") - (with-directory-excursion "/dev" - (invoke "MAKEDEV" "--devdir=/dev" "std") - (invoke "MAKEDEV" "--devdir=/dev" "vcs") - (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6") - (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2") - (invoke "MAKEDEV" "--devdir=/dev" "console")) + (zero? (system* "showtrans" "--silent" node))))))) (let* ((args (command-line)) (system (find-long-option "--system" args)) (to-load (find-long-option "--load" args))) + (format #t "Creating essential servers...\n") + (setenv "PATH" (string-append system "/profile/bin" + ":" system "/profile/sbin")) + (for-each (match-lambda + ((node command) + (unless (translated? node) + (mkdir-p (dirname node)) + (apply invoke "settrans" "--create" node command)))) + translators) + + (format #t "Creating essential device nodes...\n") + (with-directory-excursion "/dev" + (invoke "MAKEDEV" "--devdir=/dev" "std") + (invoke "MAKEDEV" "--devdir=/dev" "vcs") + (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6") + (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2") + (invoke "MAKEDEV" "--devdir=/dev" "console")) + (false-if-exception (delete-file "/hurd")) (let ((hurd/hurd (readlink* (string-append system "/profile/hurd")))) (symlink hurd/hurd "/hurd")) diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index d02bbe6013..dd2d0f1b95 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -310,35 +310,6 @@ Hurd-minimal package which are needed for both glibc and GCC.") (base32 "0p2vhnc18cnbmb39vq4m7hzv4mhnm2l0a2s7gx3ar277fwng3hys")))) -(define (hurd-rc-script) - "Return a script to be installed as /libexec/rc in the 'hurd' package. The -script takes care of installing the relevant passive translators on the first -boot, since this cannot be done from GNU/Linux. Then, it runs system -activation; starting the Shepherd." - - (define rc - (with-imported-modules '((guix build utils) - (gnu build hurd-boot) - (guix build syscalls)) - #~(begin - (use-modules (guix build utils) - (gnu build hurd-boot) - (guix build syscalls) - (ice-9 match) - (system repl repl) - (srfi srfi-1) - (srfi srfi-26)) - - ;; "@HURD@" and "@COREUTILS@" are placeholders. - (setenv "PATH" "@HURD@/bin:@HURD@/sbin:@COREUTILS@/bin") - - (boot-hurd-system)))) - - ;; FIXME: We want the program to use the cross-compiled Guile when - ;; cross-compiling. But why do we need to be explicit here? - (with-parameters ((%current-target-system "i586-pc-gnu")) - (program-file "rc" rc))) - (define dde-sources ;; This is the current tip of the dde branch (let ((commit "ac1c7eb7a8b24b7469bed5365be38a968d59a136")) @@ -422,11 +393,19 @@ fsysopts / --writable # Note: this /hurd/ gets substituted settrans --create /servers/socket/1 /hurd/pflocal -echo Starting /libexec/rc ... -exec /libexec/rc \"$@\" -"))) - )) +# parse multiboot arguments +for i in \"$@\"; do + case $i in + (--system=*) + system=${i#--system=} + ;; + esac +done + +echo Starting ${system}/rc... +exec ${system}/rc \"$@\" +"))))) (add-before 'build 'set-file-names (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -502,18 +481,6 @@ exec /libexec/rc \"$@\" (mkdir-p datadir) (copy-file "unifont" (string-append datadir "/vga-system.bdf")) - #t))) - (add-after 'install 'install-rc-file - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (file (string-append out "/libexec/rc")) - (rc (assoc-ref inputs "hurd-rc")) - (coreutils (assoc-ref inputs "coreutils"))) - (delete-file file) - (copy-file rc file) - (substitute* file - (("@HURD@") out) - (("@COREUTILS@") coreutils)) #t)))) #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib") @@ -528,7 +495,6 @@ exec /libexec/rc \"$@\" (build-system gnu-build-system) (inputs `(("glibc-hurd-headers" ,glibc/hurd-headers) - ("hurd-rc" ,(hurd-rc-script)) ("libgcrypt" ,libgcrypt) ;for /hurd/random ("libdaemon" ,libdaemon) ;for /bin/console --daemonize diff --git a/gnu/services.scm b/gnu/services.scm index 63a709fc95..27e5558231 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -93,6 +93,8 @@ activation-service-type activation-service->script %linux-bare-metal-service + %hurd-rc-script + %hurd-startup-service special-files-service-type extra-special-file etc-service-type @@ -605,6 +607,39 @@ ACTIVATION-SCRIPT-TYPE." activation-service-type %linux-kernel-activation)) +(define %hurd-rc-script + ;; The RC script to be started upon boot. + (program-file "rc" + (with-imported-modules (source-module-closure + '((guix build utils) + (gnu build hurd-boot) + (guix build syscalls))) + #~(begin + (use-modules (guix build utils) + (gnu build hurd-boot) + (guix build syscalls) + (ice-9 match) + (system repl repl) + (srfi srfi-1) + (srfi srfi-26)) + (boot-hurd-system))))) + +(define (hurd-rc-entry rc) + "Return, as a monadic value, an entry for the RC script in the system +directory." + (mlet %store-monad ((rc (lower-object rc))) + (return `(("rc" ,rc))))) + +(define hurd-startup-service-type + ;; The service that creates the initial SYSTEM/rc startup file. + (service-type (name 'startup) + (extensions + (list (service-extension system-service-type hurd-rc-entry))) + (default-value %hurd-rc-script))) + +(define %hurd-startup-service + ;; The service that produces the RC script. + (service hurd-startup-service-type %hurd-rc-script)) (define special-files-service-type ;; Service to install "special files" such as /bin/sh and /usr/bin/env. diff --git a/gnu/system.scm b/gnu/system.scm index 88b208277e..21d0fbd190 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -602,6 +602,7 @@ bookkeeping." (define (hurd-default-essential-services os) (list (service system-service-type '()) %boot-service + %hurd-startup-service %activation-service %shepherd-root-service (service user-processes-service-type) -- cgit v1.2.3 From 835b3d893fa84efd49ab4dd1a34dd3cbfb8a393d Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Thu, 7 May 2020 18:25:26 +0200 Subject: gnu: guix: Update to 68d8c09465. * gnu/packages/package-management.scm (guix): Update to 1.1.0-1.68d8c09465. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 551dfc9c39..3ff61c70ab 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -118,8 +118,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.1.0") - (commit "d445c30ea6f9693454ca96bae9089ba8738a6f78") - (revision 7)) + (commit "68d8c094659565fe19abc1c433a17337ce5cacb7") + (revision 8)) (package (name "guix") @@ -135,7 +135,7 @@ (commit commit))) (sha256 (base32 - "17xb4chb8m7kz1dkg19lp3s21imyi6faijzzhwczgy6rq3j5pd1s")) + "1pmfvlvr9vd06zy92icc7k7llnn7lvvd4b9dbcgkl7ghplyl96qp")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 8176ce6fde681a94558cf4be129fa1f385010664 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Thu, 7 May 2020 18:25:26 +0200 Subject: gnu: guix: Update to ab9e30039d. * gnu/packages/package-management.scm (guix): Update to 1.1.0-1.ab9e30039d. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 3ff61c70ab..b1c96f18e7 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -118,8 +118,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.1.0") - (commit "68d8c094659565fe19abc1c433a17337ce5cacb7") - (revision 8)) + (commit "ab9e30039d9312285ea3f4ed43f81c9c2c0dae08") + (revision 9)) (package (name "guix") @@ -135,7 +135,7 @@ (commit commit))) (sha256 (base32 - "1pmfvlvr9vd06zy92icc7k7llnn7lvvd4b9dbcgkl7ghplyl96qp")) + "0qb2haf5dyq5x1hcjyx58v455lzi6ffa68ldm0615jy25w5phmxq")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 4a6974667e838c82ae375c8b9c1b3eaca7a72ac4 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 8 Jun 2020 15:03:05 +0200 Subject: gnu: openssh: Remove exception to build without xauth for the Hurd. * gnu/packages/ssh.scm (openssh)[inputs]: Unconditionally include xauth; for the Hurd: use openssh-sans-x for now. --- gnu/packages/ssh.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 43764a8245..d42971d4f0 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -43,7 +43,6 @@ #:use-module (gnu packages groff) #:use-module (gnu packages guile) #:use-module (gnu packages libedit) - #:use-module (gnu packages hurd) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages m4) @@ -150,9 +149,7 @@ a server that supports the SSH-2 protocol.") ("pam" ,linux-pam) ("mit-krb5" ,mit-krb5) ("zlib" ,zlib) - ,@(if (hurd-target?) - '() - `(("xauth" ,xauth))))) ; for 'ssh -X' and 'ssh -Y' + ("xauth" ,xauth))) ; for 'ssh -X' and 'ssh -Y' (arguments `(#:test-target "tests" ;; Otherwise, the test scripts try to use a nonexistent directory and -- cgit v1.2.3 From b470122f677d1d11db2e88a34eab5c257ba7b8b8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 Jun 2020 18:51:04 +0200 Subject: gnu: python-odfpy: Update to 1.4.1. * gnu/packages/python-xyz.scm (python-odfpy): Update to 1.4.1. [arguments]: Remove #:modules. Rewrite test phase to use pytest. [native-inputs]: Add PYTHON-PYTEST. [propagated-inputs]: Add PYTHON-DEFUSEDXML. --- gnu/packages/python-xyz.scm | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 94e63d1c74..aaded24af3 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -12581,27 +12581,26 @@ discovery, monitoring and configuration.") (define-public python-odfpy (package (name "python-odfpy") - (version "1.3.3") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "odfpy" version)) (sha256 (base32 - "1a6ms0w9zfhhkqhvrnynwwbxrivw6hgjc0s5k7j06npc7rq0blxw")))) + "1v1qqk9p12qla85yscq2g413l3qasn6yr4ncyc934465b5p6lxnv")))) (arguments - `(#:modules ((srfi srfi-1) - (guix build python-build-system) - (guix build utils)) - #:phases + `(#:phases (modify-phases %standard-phases (replace 'check - ;; The test runner invokes python2 and python3 for test*.py. - ;; To avoid having both in inputs, we replicate it here. (lambda _ - (for-each (lambda (test-file) (invoke "python" test-file)) - (find-files "tests" "^test.*\\.py$")) - #t))))) + (setenv "PYTHONPATH" (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "-vv")))))) (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-defusedxml" ,python-defusedxml))) (home-page "https://github.com/eea/odfpy") (synopsis "Python API and tools to manipulate OpenDocument files") (description "Collection of libraries and utility programs written in -- cgit v1.2.3 From 59e646ab4edaa296ac1b5147f8b495f60ac2e216 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 Jun 2020 18:51:49 +0200 Subject: gnu: python-cssselect: Update to 1.1.0. * gnu/packages/python-web.scm (python-cssselect): Update to 1.1.0. [source]: Change to GIT-FETCH. [arguments]: Remove #:tests?. Add #:phases. [native-inputs]: Add PYTHON-LXML and PYTHON-PYTEST. [home-page]: Update to current. --- gnu/packages/python-web.scm | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 61d21418d4..c01a86935c 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -796,25 +796,30 @@ ebooks, due to cssutils not receiving updates as of 1.0.2.") (define-public python-cssselect (package (name "python-cssselect") - (version "0.9.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "cssselect" version)) - (sha256 - (base32 - "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi")))) + (version "1.1.0") + (source (origin + ;; The PyPI release does not contain tests. + (method git-fetch) + (uri (git-reference + (url "https://github.com/scrapy/cssselect") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xslrnhbrmgakp4xg6k26qffay3kqffp3a2z2sk27c65rwxa79kc")))) (build-system python-build-system) (arguments - ;; tests fail with message - ;; AttributeError: 'module' object has no attribute 'tests' - `(#:tests? #f)) - (home-page - "https://pythonhosted.org/cssselect/") - (synopsis - "CSS3 selector parser and translator to XPath 1.0") + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "-vv")))))) + (native-inputs + `(("python-lxml" ,python-lxml) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/scrapy/cssselect") + (synopsis "CSS3 selector parser and translator to XPath 1.0") (description - "Cssselect ia a Python module that parses CSS3 Selectors and translates + "Cssselect ia a Python module that parses CSS3 Selectors and translates them to XPath 1.0 expressions. Such expressions can be used in lxml or another XPath engine to find the matching elements in an XML or HTML document.") (license license:bsd-3))) -- cgit v1.2.3 From a8a7a2c7972af22457041c36c4c2b4d28621a0e0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 Jun 2020 18:52:29 +0200 Subject: gnu: python-netifaces: Update to 0.10.9. * gnu/packages/python-xyz.scm (python-netifaces): Update to 0.10.9. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index aaded24af3..d6165e3f3e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -6921,14 +6921,14 @@ some are not yet implemented).") (define-public python-netifaces (package (name "python-netifaces") - (version "0.10.7") + (version "0.10.9") (source (origin (method url-fetch) (uri (pypi-uri "netifaces" version)) (sha256 (base32 - "1gccklrcplbbqh81g1mdgpa5y8na7kkf29cq2ka3f5a2fp5hyndx")))) + "1wxby874kcr3pp4ygzk5aiarbzhg1yi093d56s1qg4k2s7yrzvid")))) (build-system python-build-system) (home-page "https://github.com/al45tair/netifaces") (synopsis -- cgit v1.2.3 From 183858d938d60b0ba7ea0ca183f6da153a74864e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 Jun 2020 18:53:51 +0200 Subject: gnu: python-regex: Update to 2020.6.8. * gnu/packages/python-xyz.scm (python-regex): Update to 2020.6.8. [arguments]: New field. --- gnu/packages/python-xyz.scm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d6165e3f3e..abf25c6107 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -15105,16 +15105,22 @@ window memory map manager.") (define-public python-regex (package (name "python-regex") - (version "2019.04.14") + (version "2020.6.8") (source (origin (method url-fetch) (uri (pypi-uri "regex" version)) (sha256 (base32 - "1a6hhfs6l6snr1z654ay6wzbmwdkmv282fzfkd5hk2d1n73y8v6m")))) - ;; TODO: Fix and enable regex_test.py tests that complain about the - ;; test.support module not existing. + "1b3k0zi1pd99q5mk7ri7vcx2y1mq5inm9hk8dryqyhrpkmh4xdp9")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "python" "-c" + "from regex.test_regex import test_main; test_main()")))))) (home-page "https://bitbucket.org/mrabarnett/mrab-regex") (synopsis "Alternative regular expression module") (description "This regular expression implementation is backwards- -- cgit v1.2.3 From 087e760e293f6fe9c7d608d732576c4b559f1e2f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 Jun 2020 18:57:08 +0200 Subject: gnu: Add python-mechanize. * gnu/packages/python-xyz.scm (python2-mechanize): Rename to ... (python-mechanize): ... this. Update to 0.4.5. [arguments]: Remove. [propagated-inputs]: Add PYTHON-HTML5LIB. [home-page]: Update to current. [license]: Set to LICENSE:BSD-3. (python2-mechanize): Define in terms of PACKAGE-WITH-PYTHON2. --- gnu/packages/python-xyz.scm | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index abf25c6107..abf12ec4e0 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -1669,38 +1669,30 @@ human-friendly syntax.") (define-public python2-schedule (package-with-python2 python-schedule)) -(define-public python2-mechanize +(define-public python-mechanize (package - (name "python2-mechanize") - (version "0.2.5") + (name "python-mechanize") + (version "0.4.5") (source (origin (method url-fetch) (uri (pypi-uri "mechanize" version)) (sha256 (base32 - "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf")))) + "1z9kqcwb8gfq2l6i42z624kxpd8692a0c8gw2x5bbm7n848w2mb3")))) (build-system python-build-system) - (arguments - `(#:python ,python-2 ; apparently incompatible with Python 3 - #:tests? #f)) - ;; test fails with message - ;; AttributeError: 'module' object has no attribute 'test_pullparser' - ;; (python-3.3.2) or - ;; AttributeError: 'module' object has no attribute 'test_urllib2_localnet' - ;; (python-2.7.5). - ;; The source code is from March 2011 and probably not up-to-date - ;; with respect to python unit tests. - (home-page "http://wwwsearch.sourceforge.net/mechanize/") + (propagated-inputs + `(("python-html5lib" ,python-html5lib))) + (home-page "https://github.com/python-mechanize/mechanize") (synopsis "Stateful programmatic web browsing in Python") (description "Mechanize implements stateful programmatic web browsing in Python, after Andy Lester’s Perl module WWW::Mechanize.") - (license (license:non-copyleft - "file://COPYING" - "See COPYING in the distribution.")))) + (license license:bsd-3))) +(define-public python2-mechanize + (package-with-python2 python-mechanize)) (define-public python-simplejson (package -- cgit v1.2.3 From 1fd2c00efbe701a81d86c254d5f4f285e63c1cde Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 8 Jun 2020 18:58:15 +0200 Subject: gnu: font-liberation: Update to 2.1.1. * gnu/packages/fonts.scm (font-liberation): Update to 2.1.1. --- gnu/packages/fonts.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 5964294202..4ed0f9a037 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -310,14 +310,14 @@ The Lato 2.010 family supports more than 100 Latin-based languages, over (define-public font-liberation (package (name "font-liberation") - (version "2.00.5") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/liberationfonts/liberation-fonts/" - "files/2926169/liberation-fonts-ttf-" version ".tar.gz")) + "files/4743886/liberation-fonts-ttf-" version ".tar.gz")) (sha256 - (base32 "0kdjsbf0y716k1kv0i0ixdpvg7b9b8xkcsg6favaxdc7pshg0kzi")))) + (base32 "1jkg8j8jx7ffj13z5ilw7dids99dyypljm1pv06ycmghw1pw3qlf")))) (build-system font-build-system) (home-page "https://github.com/liberationfonts") (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New") -- cgit v1.2.3