X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/86f914e3a4a21cd13e0841c22b32e70caec678c9..426284d85581257ef0e2f60404ba0bdefc188148:/gnu/packages/linux.scm diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d0fda9a007..a01edf73d3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2,29 +2,29 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015, 2016, 2017 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Christopher Allan Webber -;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2016, 2017 Alex Kost ;;; Copyright © 2016 Raymond Nicholson ;;; Copyright © 2016 Mathieu Lirzin -;;; Copyright © 2016 Nicolas Goaziou +;;; Copyright © 2016, 2018 Nicolas Goaziou ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 John Darrington -;;; Copyright © 2016, 2017 Marius Bakke +;;; Copyright © 2016, 2017, 2018 Marius Bakke ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016 Carlos Sánchez de La Lama -;;; Copyright © 2016, 2017 ng0 -;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2016, 2017 Nils Gillmann +;;; Copyright © 2017, 2018 Leo Famulari ;;; Copyright © 2017 José Miguel Sánchez García ;;; Copyright © 2017 Gábor Boskovits ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Clément Lassieur -;;; Copyright © 2017 Rutger Helling +;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2017 nee ;;; Copyright © 2017 Dave Love ;;; @@ -78,6 +78,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages netpbm) #:use-module (gnu packages networking) #:use-module (gnu packages ninja) #:use-module (gnu packages perl) @@ -127,11 +128,12 @@ ((string-prefix? "aarch64" arch) "arm64") ((string-prefix? "alpha" arch) "alpha") ((string-prefix? "powerpc" arch) "powerpc") ;including "powerpc64le" + ((string-prefix? "s390" arch) "s390") (else arch)))) (define-public (system->defconfig system) "Some systems (notably powerpc-linux) require a special target for kernel -defconfig. Return the appropiate make target if applicable, otherwise return +defconfig. Return the appropriate make target if applicable, otherwise return \"defconfig\"." (cond ((string-prefix? "powerpc-" system) "pmac32_defconfig") ((string-prefix? "powerpc64le-" system) "ppc64_defconfig") @@ -156,13 +158,13 @@ defconfig. Return the appropiate make target if applicable, otherwise return (define-public linux-libre-headers (package (name "linux-libre-headers") - (version "4.4.47") + (version "4.9.59") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "00zdq7swhvzbbnnhzizq6m34q5k4fycpcp215bmkbxh1ic76v7bs")))) + "0z8hq8a6ic38xh33idzl0k0yi4isgd7ncl2g1d6mzf9ixw5krhvc")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments @@ -282,6 +284,14 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." ("bc" ,bc) ("openssl" ,openssl) ("kmod" ,kmod) + ;; On x86, build with GCC-7 for full retpoline support. + ;; FIXME: Remove this when our default compiler has retpoline support. + ,@(match (system->linux-architecture + (or (%current-target-system) (%current-system))) + ((or "x86_64" "i386") + `(("gcc" ,gcc-7))) + (_ + '())) ,@(match (and configuration-file (configuration-file (system->linux-architecture @@ -327,7 +337,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (begin (copy-file config ".config") (chmod ".config" #o666)) - (system* "make" ,defconfig)) + (invoke "make" ,defconfig)) ;; Appending works even when the option wasn't in the ;; file. The last one prevails if duplicated. @@ -336,7 +346,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (display extra-configuration port) (close-port port)) - (zero? (system* "make" "oldconfig"))))) + (invoke "make" "oldconfig")))) (replace 'install (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -351,15 +361,15 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (find-files "." "\\.dtb$")) ;; Install kernel modules (mkdir-p moddir) - (zero? (system* "make" - (string-append "DEPMOD=" kmod "/bin/depmod") - (string-append "MODULE_DIR=" moddir) - (string-append "INSTALL_PATH=" out) - (string-append "INSTALL_MOD_PATH=" out) - "INSTALL_MOD_STRIP=1" - "modules_install")))))) + (invoke "make" + (string-append "DEPMOD=" kmod "/bin/depmod") + (string-append "MODULE_DIR=" moddir) + (string-append "INSTALL_PATH=" out) + (string-append "INSTALL_MOD_PATH=" out) + "INSTALL_MOD_STRIP=1" + "modules_install"))))) #:tests? #f)) - (home-page "https://www.gnu.org/software/linux-libre//") + (home-page "https://www.gnu.org/software/linux-libre/") (synopsis "100% free redistribution of a cleaned Linux kernel") (description "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel. @@ -369,34 +379,43 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux")) -(define %linux-libre-version "4.14") -(define %linux-libre-hash "0y42cn0lq08njvsfg3b2xyziaga268aj2lx034k40wilha6hkw3h") - ;; linux-libre configuration for armhf-linux is derived from Debian armmp. It ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. +(define %linux-libre-version "4.15.15") +(define %linux-libre-hash "14pjdwj6n7j8wpjrwlj261s5bxf4861d6w42agrz8ilznhi11niy") + (define-public linux-libre (make-linux-libre %linux-libre-version %linux-libre-hash %linux-compatible-systems #:configuration-file kernel-config)) +(define %linux-libre-4.14-version "4.14.32") +(define %linux-libre-4.14-hash "0xqqd9s35xqxp72l93jr26vjcbwxlxmpmk8b5p9jipql9a81a1x8") + +(define-public linux-libre-4.14 + (make-linux-libre %linux-libre-4.14-version + %linux-libre-4.14-hash + %linux-compatible-systems + #:configuration-file kernel-config)) + (define-public linux-libre-4.9 - (make-linux-libre "4.9.64" - "0mhzc8904cdnaxil8xlxmv3rd86lypi13ig9i9321jjbmv4cn849" + (make-linux-libre "4.9.92" + "1v4mf5mcqc5axbld38qn31pivy6mi80xci81wk128yhlby6w0yj7" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.100" - "0lqb6bxpa3play8hz9k1d54xzlm8m58xh6rlfcvmwcs8qjkvpm6g" + (make-linux-libre "4.4.126" + "03arqqx8qsjadnk7mhhnr59j2vmbpkmrwi86md2n4c8bqja8fgnq" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.46" - "0bg1vplfksgsnxqdxdp2n0b5lv2j299nv52s8hpja5ckp396jkhk" + (make-linux-libre "4.1.51" + "0l8lpwjpckp44hjyx5qrxqdwwi97gyyc1n6pmk66cr3fpdhnk540" %intel-compatible-systems #:configuration-file kernel-config)) @@ -407,6 +426,13 @@ It has been modified to remove all non-free binary blobs.") #:defconfig "multi_v7_defconfig" #:extra-version "arm-generic")) +(define-public linux-libre-arm-generic-4.14 + (make-linux-libre %linux-libre-4.14-version + %linux-libre-4.14-hash + '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic")) + (define-public linux-libre-arm-omap2plus (make-linux-libre %linux-libre-version %linux-libre-hash @@ -414,6 +440,13 @@ It has been modified to remove all non-free binary blobs.") #:defconfig "omap2plus_defconfig" #:extra-version "arm-omap2plus")) +(define-public linux-libre-arm-omap2plus-4.14 + (make-linux-libre %linux-libre-4.14-version + %linux-libre-4.14-hash + '("armhf-linux") + #:defconfig "omap2plus_defconfig" + #:extra-version "arm-omap2plus")) + ;;; ;;; Pluggable authentication modules (PAM). @@ -514,7 +547,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.30.1") + (version "2.31") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -522,7 +555,7 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "0hdq2fz405a89fyha4bgwg0rx8b65inxq17w8fg8qhmcj4x3dr0v")) + "12nw108xjhm63sh2n5a0qs33vpvbvb6rln96l9j50p7wykf7rgpr")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet @@ -539,6 +572,8 @@ providing the system administrator with some help in common tasks.") (arguments `(#:configure-flags (list "--disable-use-tty-group" "--enable-fs-paths-default=/run/current-system/profile/sbin" + ;; Don't try to chown root:root mount and umount + "--disable-makeinstall-chown" ;; Install completions where our ;; bash-completion package expects them. (string-append "--with-bashcompletiondir=" @@ -599,6 +634,32 @@ block devices, UUIDs, TTYs, and many other tools.") (license (list license:gpl3+ license:gpl2+ license:gpl2 license:lgpl2.0+ license:bsd-4 license:public-domain)))) +;; The patch 'util-linux-CVE-2018-7738.patch' fixes a security bug in +;; the Bash completions for `mount`. Since this bug doesn't affect +;; other programs that link against libraries from util-linux, we don't +;; need to use a graft to make the fix available. Instead, users +;; installing util-linux will get the fix in this newer version, and +;; (@ (gnu system) %base-packages) takes care to use this package. +;; This solution was suggested here: +;; +(define-public util-linux-2.31.1 + (package + (inherit util-linux) + (name "util-linux") + ;; XXX Don't update this without also updating %base-packages! + (version "2.31.1") + (source (origin + (inherit (package-source util-linux)) + (uri (string-append "mirror://kernel.org/linux/utils/" + name "/v" (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "04fzrnrr3pvqskvjn9f81y0knh0jvvqx4lmbz5pd4lfdm5pv2l8s")) + (patches + (append (origin-patches (package-source util-linux)) + (search-patches "util-linux-CVE-2018-7738.patch"))))))) + (define-public ddate (package (name "ddate") @@ -671,7 +732,7 @@ slabtop, and skill.") (define-public usbutils (package (name "usbutils") - (version "008") + (version "009") (source (origin (method url-fetch) @@ -679,7 +740,7 @@ slabtop, and skill.") "usbutils-" version ".tar.xz")) (sha256 (base32 - "132clk14j4nm8crln2jymdbbc2vhzar2j2hnxyh05m79pbq1lx24")))) + "0q3iavmak2bs9xw486w4xfbjl0hbzii93ssgpr95mxmm9kjz1gwb")))) (build-system gnu-build-system) (inputs `(("libusb" ,libusb) @@ -838,7 +899,7 @@ ext3 or ext4 partition.") (define-public zerofree (package (name "zerofree") - (version "1.1.0") + (version "1.1.1") (home-page "https://frippery.org/uml/") (source (origin (method url-fetch) @@ -846,7 +907,7 @@ ext3 or ext4 partition.") ".tgz")) (sha256 (base32 - "059g29x5r1xj6wcj4xj85l8w6qrxyl86yqbybjqqz6nxz4falxzf")))) + "0rrqfa5z103ws89vi8kfvbks1cfs74ix6n1wb6vs582vnmhwhswm")))) (build-system gnu-build-system) (arguments '(#:phases @@ -873,14 +934,15 @@ Zerofree requires the file system to be unmounted or mounted read-only.") (define-public strace (package (name "strace") - (version "4.20") + (version "4.22") + (home-page "https://strace.io") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/strace/strace/" version + (uri (string-append home-page "/files/" version "/strace-" version ".tar.xz")) (sha256 (base32 - "08y5b07vb8jc7ak5xc3x2kx1ly6xiwv1gnppcqjs81kks66i9wsv")))) + "17dkpnsjxmys1ydidm9wcvc3wscsz44fmlxw3dclspn9cj9d1306")))) (build-system gnu-build-system) (arguments '(#:phases @@ -891,7 +953,6 @@ Zerofree requires the file system to be unmounted or mounted read-only.") (("/bin/sh") (which "sh"))) #t))))) (native-inputs `(("perl" ,perl))) - (home-page "https://strace.io/") (synopsis "System call tracer for Linux") (description "strace is a system call tracer, i.e. a debugging tool which prints out a @@ -914,7 +975,7 @@ trace of all the system calls made by a another process/program.") (arguments ;; Compilation uses -Werror by default, but it fails. '(#:configure-flags '("--disable-werror"))) - (home-page "http://www.ltrace.org/") + (home-page "https://www.ltrace.org/") (synopsis "Library call tracer for Linux") (description "ltrace intercepts and records dynamic library calls which are called by @@ -925,7 +986,7 @@ intercept and print the system calls executed by the program.") (define-public alsa-lib (package (name "alsa-lib") - (version "1.1.4.1") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append @@ -933,7 +994,7 @@ intercept and print the system calls executed by the program.") version ".tar.bz2")) (sha256 (base32 - "0xjvi381105gldhv0z872a0x58sghznyx19j45lw5iyi2h68gfwi")))) + "1rhacnlj0grvfagjx5qzsnbhw7m7lyccghqs4jsv0dnsqv9qmxpl")))) (build-system gnu-build-system) (home-page "https://www.alsa-project.org/") (synopsis "The Advanced Linux Sound Architecture libraries") @@ -945,14 +1006,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-utils (package (name "alsa-utils") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/" name "-" version ".tar.bz2")) (sha256 (base32 - "17cxih9ibjp1193dyd79j50pyfa9dvrs6r9kpwrvzicjvr2110x7")))) + "1s727md6mb408y2cfwzjkx23abxhampyrjdkgpyygdhxx62x42rj")))) (build-system gnu-build-system) (arguments ;; XXX: Disable man page creation until we have DocBook. @@ -992,14 +1053,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-plugins (package (name "alsa-plugins") - (version "1.1.4") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/plugins/" name "-" version ".tar.bz2")) (sha256 (base32 - "12hsvm6rpinjkg06pa9hzndkdrbfw6wk6yk00cm8y1gbv8xiq3ak")))) + "073zpgvj4pldmzqq97l40wngvbqnvrkc8yw153mgny9kypwaazbr")))) (build-system gnu-build-system) ;; TODO: Split libavcodec and speex if possible. It looks like they can not ;; be split, there are references to both in files. @@ -1054,7 +1115,7 @@ external rate conversion.") (define-public iptables (package (name "iptables") - (version "1.6.1") + (version "1.6.2") (source (origin (method url-fetch) (uri (string-append @@ -1062,7 +1123,7 @@ external rate conversion.") version ".tar.bz2")) (sha256 (base32 - "1x8c9y340x79djsq54bc1674ryv59jfphrk4f88i7qbvbnyxghhg")))) + "0crp0lvh5m2f15pr8cw97h8yb8zjj10x95zj06j46cr68vx2vl2m")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1076,14 +1137,16 @@ external rate conversion.") #:configure-flags ; add $libdir to the RUNPATH of executables (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")))) (home-page "https://www.netfilter.org/projects/iptables/index.html") - (synopsis "Program to configure the Linux IP packet filtering rules") + (synopsis "Programs to configure Linux IP packet filtering rules") (description - "iptables is the userspace command line program used to configure the -Linux 2.4.x and later IPv4 packet filtering ruleset (firewall). It is targeted at -system administrators. Since Network Address Translation is also configured -from the packet filter ruleset, iptables is used for this, too. The iptables -package also includes ip6tables. ip6tables is used for configuring the IPv6 -packet filter.") + "@command{iptables} is the user-space command line program used to +configure the Linux 2.4.x and later IPv4 packet filtering ruleset +(@dfn{firewall}), including @dfn{NAT} (Network Address Translation). + +This package also includes @command{ip6tables}, which is used to configure the +IPv6 packet filter. + +Both commands are targeted at system administrators.") (license license:gpl2+))) (define-public ebtables @@ -1144,7 +1207,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") (define-public iproute (package (name "iproute2") - (version "4.14.1") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append @@ -1152,7 +1215,7 @@ that the Ethernet protocol is much simpler than the IP protocol.") version ".tar.xz")) (sha256 (base32 - "0rq0n7yxb0hmk0s6wx5awzjgf7ikjbibd0a5ix20ldfcmxlc0fnl")))) + "02pfalg319jpbjz273ph725br8dnkzpfvi98azi9yd6p1w128p0c")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -1195,16 +1258,6 @@ primary network configuration tools, but ifconfig is known to behave inadequately in modern network environments, and both should be deprecated.") (license license:gpl2+))) -;; There are two packages for net-tools. The first, net-tools, is more recent -;; and probably safer to use with untrusted inputs (i.e. the internet). The -;; second, net-tools-for-tests, is relatively old and buggy. It can be used in -;; package test suites and should never be referred to by a built package. Use -;; #:disallowed-references to enforce this. -;; -;; When we are able to rebuild many packages (i.e. core-updates), we can update -;; net-tools-for-tests if appropriate. -;; -;; See for more information. (define-public net-tools ;; XXX: This package is basically unmaintained, but it provides a few ;; commands not yet provided by Inetutils, such as 'route', so we have to @@ -1280,108 +1333,6 @@ network hardware types (plipconfig, slattach) and advanced aspects of IP configuration (iptunnel, ipmaddr).") (license license:gpl2+)))) -(define-public net-tools-for-tests - (hidden-package (package (inherit net-tools) - (version "1.60") - ;; Git depends on net-tools-for-tests via GnuTLS, so we can't use git-fetch - ;; here. We should find a better workaround for this problem so that we can - ;; use the latest upstream source. - (source (origin - (method url-fetch) - (uri (list (string-append - "mirror://sourceforge/net-tools/net-tools-" - version ".tar.bz2") - (string-append - "http://distro.ibiblio.org/rootlinux/rootlinux-ports" - "/base/net-tools/net-tools-1.60.tar.bz2"))) - (sha256 - (base32 - "0yvxrzk0mzmspr7sa34hm1anw6sif39gyn85w4c5ywfn8inxvr3s")) - (patches (search-patches "net-tools-bitrot.patch")))) - (build-system gnu-build-system) - (arguments - '(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1) - (srfi srfi-26)) - #:phases (alist-cons-after - 'unpack 'patch - (lambda* (#:key inputs #:allow-other-keys) - (define (apply-patch file) - (zero? (system* "patch" "-p1" "--force" - "--input" file))) - - (let ((patch.gz (assoc-ref inputs "patch"))) - (format #t "applying Debian patch set '~a'...~%" - patch.gz) - (system (string-append "gunzip < " patch.gz " > the-patch")) - (and (apply-patch "the-patch") - (for-each apply-patch - (find-files "debian/patches" - "\\.patch"))))) - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/bin")) - (mkdir-p (string-append out "/sbin")) - - ;; Pretend we have everything... - (system "yes | make config") - - ;; ... except for the things we don't have. - ;; HAVE_AFDECnet requires libdnet, which we don't have. - ;; HAVE_HWSTRIP and HAVE_HWTR require kernel headers - ;; that have been removed. - (substitute* '("config.make" "config.h") - (("^.*HAVE_(AFDECnet|HWSTRIP|HWTR)[ =]1.*$") "")))) - (alist-cons-after - 'install 'remove-redundant-commands - (lambda* (#:key outputs #:allow-other-keys) - ;; Remove commands and man pages redundant with - ;; Inetutils. - (let* ((out (assoc-ref outputs "out")) - (dup (append-map (cut find-files out <>) - '("^hostname" - "^(yp|nis|dns)?domainname")))) - (for-each delete-file dup) - #t)) - %standard-phases))) - - ;; Binaries that depend on libnet-tools.a don't declare that - ;; dependency, making it parallel-unsafe. - #:parallel-build? #f - - #:tests? #f ; no test suite - #:make-flags (let ((out (assoc-ref %outputs "out"))) - (list "CC=gcc" - (string-append "BASEDIR=" out) - (string-append "INSTALLNLSDIR=" out "/share/locale") - (string-append "mandir=/share/man"))))) - - ;; We added unzip to the net-tools package's native-inputs when - ;; switching its source from a Git checkout to a zip archive. We - ;; need to specify the native-inputs here to keep unzip out of the - ;; build of net-tools-for-tests, so that we don't have to rebuild - ;; many packages on the master branch. We can make - ;; net-tools-for-tests inherit directly from net-tools in the next - ;; core-updates cycle. - (native-inputs `(("gettext" ,gettext-minimal))) - - ;; Use the big Debian patch set (the thing does not even compile out of - ;; the box.) - ;; XXX The patch is not actually applied, due to a bug in the 'patch' phase - ;; above. However, this package variant is only used in GnuTLS's tests. It - ;; will be adjusted when convenient for the build farm. - ;; See for more information. - (inputs `(("patch" ,(origin - (method url-fetch) - (uri - "http://ftp.de.debian.org/debian/pool/main/n/net-tools/net-tools_1.60-24.2.diff.gz") - (sha256 - (base32 - "0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p"))))))))) - (define-public libcap (package (name "libcap") @@ -1526,7 +1477,7 @@ transparently through a bridge.") (mkdir-p dest) (zero? (system* "tar" "xf" (assoc-ref inputs "libnl3-doc") "--strip-components=1" "-C" dest)))))))) - (home-page "http://www.infradead.org/~tgr/libnl/") + (home-page "https://www.infradead.org/~tgr/libnl/") (synopsis "NetLink protocol library suite") (description "The libnl suite is a collection of libraries providing APIs to netlink @@ -1542,7 +1493,7 @@ configuration and monitoring interfaces.") (define-public iw (package (name "iw") - (version "4.9") + (version "4.14") (source (origin (method url-fetch) (uri (string-append @@ -1550,7 +1501,7 @@ configuration and monitoring interfaces.") version ".tar.xz")) (sha256 (base32 - "1klpvv98bnx1zm6aqalnri2vd7w80scmdaxr2qnblb6mz82whk1j")))) + "12ddd6vh6vs97135bnlyr0szv7hvpbnmfh48584frzab0z0725ph")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libnl" ,libnl))) @@ -1739,15 +1690,12 @@ user-space processes.") "0hsn8l1iblvx27bpd4dvnvnbh9ri3sv2f9xzpsnfz3379kb7skgj")))) (build-system cmake-build-system) (native-inputs - `(("python" ,python) - ("python-pytest" ,python-pytest))) + `(("python" ,python))) (inputs `(("fuse" ,fuse))) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - ;; Borrowed from the Makefile - (lambda _ (zero? (system* "python3" "-m" "pytest"))))))) + ;; The tests were never actually run ("collected 0 items"), but in recent + ;; versions of pytest that causes an error. + '(#:tests? #f)) (home-page "https://github.com/rpodgorny/unionfs-fuse") (synopsis "User-space union file system") (description @@ -1835,7 +1783,7 @@ file system is as easy as logging into the server with an SSH client.") (define-public archivemount (package (name "archivemount") - (version "0.8.7") + (version "0.8.9") (source (origin (method url-fetch) @@ -1843,11 +1791,11 @@ file system is as easy as logging into the server with an SSH client.") "archivemount-" version ".tar.gz")) (sha256 (base32 - "1diiw6pnlnrnikn6l5ld92dx59lhrxjlqms8885vwbynsjl5q127")))) + "0v4si1ri6lhnq9q87gkx7fsh6lv6xz4bynknwndqncpvfp5cy1jg")))) (build-system gnu-build-system) - (inputs `(("fuse", fuse) - ("libarchive", libarchive))) - (native-inputs `(("pkg-config", pkg-config))) + (inputs `(("fuse" ,fuse) + ("libarchive" ,libarchive))) + (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://www.cybernoia.de/software/archivemount") (synopsis "Tool for mounting archive files with FUSE") (description "archivemount is a FUSE-based file system for Unix variants, @@ -2058,30 +2006,50 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2.2") + (version "3.2.4") (source (origin (method url-fetch) - (uri (string-append - "http://dev.gentoo.org/~blueness/eudev/eudev-" - version ".tar.gz")) + (uri (string-append "https://github.com/gentoo/eudev/archive/v" + version ".zip")) + (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "0qqgbgpm5wdllk0s04pf80nwc8pr93xazwri1bylm1f15zn5ck1y")) + "1r1ag0snarygrj5qqxi2xdq9w6g3sfjd5jx1b0fl7zmqlsz3vvxx")) (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'install 'build-hwdb - (lambda* (#:key outputs #:allow-other-keys) - ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and - ;; similar tools to display product names. - (let ((out (assoc-ref outputs "out"))) - (zero? (system* (string-append out "/bin/udevadm") - "hwdb" "--update")))))))) + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "man/make.sh" + (("/usr/bin/xsltproc") + (string-append (assoc-ref inputs "xsltproc") + "/bin/xsltproc"))) + ;; Manual pages are regenerated here. + (zero? (system* "./autogen.sh")))) + (add-after 'install 'build-hwdb + (lambda* (#:key outputs #:allow-other-keys) + ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and + ;; similar tools to display product names. + (let ((out (assoc-ref outputs "out"))) + (zero? (system* (string-append out "/bin/udevadm") + "hwdb" "--update")))))) + #:configure-flags (list "--enable-manpages"))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gperf" ,gperf) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ;; For tests. ("perl" ,perl) - ("gperf" ,gperf))) + ("python" ,python-wrapper) + ;; For documentation. + ("docbook-xml" ,docbook-xml-4.2) + ("docbook-xsl" ,docbook-xsl) + ("libxml2" ,libxml2) ;for $XML_CATALOG_FILES + ("xsltproc" ,libxslt))) (inputs ;; When linked against libblkid, eudev can populate /dev/disk/by-label ;; and similar; it also installs the '60-persistent-storage.rules' file, @@ -2101,14 +2069,14 @@ time.") (define-public lvm2 (package (name "lvm2") - (version "2.02.176") + (version "2.02.177") (source (origin (method url-fetch) (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2." version ".tgz")) (sha256 (base32 - "0wx4rvy4frdmb66znh2xms2j2n06sm361ki6l5ks4y1ciii87kny")) + "1wl0isn0yz5wvglwylnlqkppafwmvhliq5bd92vjqp5ir4za49a0")) (modules '((guix build utils))) (snippet '(begin @@ -2138,17 +2106,7 @@ time.") ;; Replace /bin/sh with the right file name. (patch-makefile-SHELL "make.tmpl") - #t)) - (add-before 'strip 'make-objects-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; Make compiled objects writable so they can be stripped. - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (file) - (chmod file #o755)) - (append - (find-files (string-append out "/lib")) - (find-files (string-append out "/sbin")))) - #t)))) + #t))) #:configure-flags (list (string-append "--sysconfdir=" (assoc-ref %outputs "out") @@ -2426,6 +2384,28 @@ you to access information from temperature, voltage, and fan speed sensors. It works with most newer systems.") (license license:gpl2+))) +(define-public iucode-tool + (package + (name "iucode-tool") + (version "2.2") + (source (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/iucode-tool/releases" + "/raw/latest/iucode-tool_" version ".tar.xz")) + (sha256 + (base32 + "0w99k1aq1xw148ffk1xykqf60rdbphb1jknw98jcmadq4pwxl44q")))) + (build-system gnu-build-system) + (home-page "https://gitlab.com/iucode-tool/iucode-tool/wikis/home") + (synopsis "Manipulate Intel microcode bundles") + (description + "@command{iucode_tool} is a utility to work with microcode packages for +Intel processors. It can convert between formats, extract specific versions, +create a firmware image suitable for the Linux kernel, and more.") + ;; cpuid.h is available for i686, x86_64, and ia64. + (supported-systems '("i686-linux" "x86_64-linux")) + (license license:gpl2+))) + (define-public i2c-tools (package (name "i2c-tools") @@ -2563,7 +2543,7 @@ particular the 'perf' command.") (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no tests - (home-page "http://ghedo.github.io/pflask/") + (home-page "https://ghedo.github.io/pflask/") (synopsis "Simple tool for creating Linux namespace containers") (description "pflask is a simple tool for creating Linux namespace containers. It can be used for running a command or even booting an OS inside @@ -2575,14 +2555,14 @@ thanks to the use of namespaces.") (define-public hdparm (package (name "hdparm") - (version "9.52") + (version "9.55") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "1djgxhfadd865dcrl6dp7dvjxpaisy7mk17mbdbglwg24ga9qhn3")))) + "1ivdvrzimaayiq03by8mcq0mhmdljndj06h012zkdpw34irnpixm")))) (build-system gnu-build-system) (arguments `(#:make-flags (let ((out (assoc-ref %outputs "out"))) @@ -2604,8 +2584,8 @@ performance benchmarking tool. @command{hdparm} provides a command line interface to various Linux kernel interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older -IDE driver subsystem. Many external USB drive enclosures with @dfn{SCSI-ATA -Command Translation} (SAT) are also supported.") +IDE driver subsystem. Many external USB drive enclosures with SCSI-ATA Command +Translation (@dfn{SAT}) are also supported.") (license (license:non-copyleft "file://LICENSE.TXT")))) (define-public rfkill @@ -2633,7 +2613,9 @@ Command Translation} (SAT) are also supported.") which is used to enable and disable wireless networking devices, typically WLAN, Bluetooth and mobile broadband.") (license (license:non-copyleft "file://COPYING" - "See COPYING in the distribution.")))) + "See COPYING in the distribution.")) + ;; rfkill is part of util-linux as of 2.31. + (properties `((superseded . ,util-linux))))) (define-public acpi (package @@ -2641,7 +2623,7 @@ WLAN, Bluetooth and mobile broadband.") (version "1.7") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/acpiclient/acpiclient/" + (uri (string-append "mirror://sourceforge/acpiclient/acpiclient/" version "/" name "-" version ".tar.gz")) (sha256 (base32 @@ -2907,15 +2889,15 @@ arrays when needed.") (define-public multipath-tools (package (name "multipath-tools") - (version "0.7.1") + (version "0.7.4") (source (origin (method url-fetch) - (uri (string-append "http://git.opensvc.com/?p=multipath-tools/" + (uri (string-append "https://git.opensvc.com/?p=multipath-tools/" ".git;a=snapshot;h=" version ";sf=tgz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0w0rgi3lqksaki30yvd4l5rgjqb0d7js1sh7masl8aw6xbrsm26p")) + "02lk453wa2gfxkl8zmdws15nkcibln2yw76zm779pkngkhggl6w8")) (modules '((guix build utils))) (snippet '(begin @@ -3034,7 +3016,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.47") + (version "5.49") (source (origin (method url-fetch) (uri (string-append @@ -3042,7 +3024,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "1j22hfjz0fp4pgclgz9mfcwjbr4wqgah3gd2qhfg4r6msmybyxfg")))) + "15ffsaz7l3fgdg03l7g1xx9jw7xgs6pc548zxqsxawsca5x1sc1k")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -3056,16 +3038,14 @@ Bluetooth audio output devices like headphones or loudspeakers.") (string-append "--with-udevdir=" out "/lib/udev"))) #:phases (modify-phases %standard-phases - ,@(if (string=? (%current-system) "armhf-linux") - ;; This test fails unpredictably. - ;; TODO: skip it for all architectures. - `((add-before 'check 'skip-wonky-test - (lambda _ - (substitute* "unit/test-gatt.c" - (("tester_init\\(&argc, &argv\\);") "return 77;")) - #t))) - `()) - + ;; Test unit/test-gatt fails unpredictably. Seems to be a timing + ;; issue (discussion on upstream mailing list: + ;; https://marc.info/?t=149578476300002&r=1&w=2) + (add-before 'check 'skip-wonky-test + (lambda _ + (substitute* "unit/test-gatt.c" + (("tester_init\\(&argc, &argv\\);") "return 77;")) + #t)) (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3104,7 +3084,7 @@ is flexible, efficient and uses a modular implementation.") (define-public fuse-exfat (package (name "fuse-exfat") - (version "1.2.7") + (version "1.2.8") (source (origin (method url-fetch) (uri (string-append @@ -3112,7 +3092,7 @@ is flexible, efficient and uses a modular implementation.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "0df0ccnd0dgwc6rvk9qmrz0nfb8whc5s3wg9qnw1mzbrh4rcvhw2")))) + "1jwnxw0bg9v5ij8xvbg4xpjr50nykq8a1lmc2xkblz204rq7wd8z")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -3134,6 +3114,7 @@ write access to exFAT devices.") (uri (string-append "http://www.nico.schottelius.org/software/gpm/archives/gpm-" version ".tar.bz2")) + (patches (search-patches "gpm-glibc-2.26.patch")) (sha256 (base32 "13d426a8h403ckpc8zyf7s2p5rql0lqbg2bv0454x0pvgbfbf4gh")))) @@ -3173,7 +3154,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.14") + (version "4.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3181,7 +3162,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1bwirg6hz6gyfj5r3xkj4lfwadvl9pxlccf916fsmdn27fy5q289")))) + "1palnddw3d50kyflwk1j4xapbc6jniid6j5i9dsr8l8a7nkv7ich")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" @@ -3191,10 +3172,12 @@ and copy/paste text in the console and in xterm.") (lambda _ (zero? (system* "make" "static")))) (add-after 'install 'install-bash-completion (lambda* (#:key outputs #:allow-other-keys) - (install-file "btrfs-completion" - (string-append (assoc-ref outputs "out") - "/etc/bash_completion.d")) - #t)) + (let* ((out (assoc-ref outputs "out")) + (bashcomp (string-append out "/etc/bash_completion.d"))) + (mkdir-p bashcomp) + (copy-file "btrfs-completion" + (string-append bashcomp "/btrfs")) + #t))) (add-after 'install 'install-static (let ((staticbin (string-append (assoc-ref %outputs "static") "/bin"))) @@ -3436,11 +3419,8 @@ The package provides additional NTFS tools.") ;; Upstream uses the "ninja" build system and encourage distros ;; to do the same for consistency. They also recommend using the ;; "Release" build type. - #:configure-flags (list "-GNinja" - ;; Defaults to "lib64" on 64-bit archs. - (string-append "-DCMAKE_INSTALL_LIBDIR=" - (assoc-ref %outputs "out") "/lib") - "-DCMAKE_BUILD_TYPE=Release") + #:build-type "Release" + #:configure-flags (list "-GNinja") #:phases (modify-phases %standard-phases (replace 'build @@ -3489,16 +3469,30 @@ The following service daemons are also provided: (define-public rng-tools (package (name "rng-tools") - (version "5") + (version "6.1") (source (origin (method url-fetch) - (uri (string-append - "http://downloads.sourceforge.net/sourceforge/gkernel/" - "rng-tools-" version ".tar.gz")) + (uri (string-append "https://github.com/nhorman/rng-tools/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "13h7lc8wl9khhvkr0i3bl5j9bapf8anhqis1lcnwxg1vc2v058b0")))) + "00ywsknjpc9jd9kfmz2syk9l0xkiiwyx5qhl5zvhhc69v6682i31")))) (build-system gnu-build-system) + (arguments + `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. + #:configure-flags '("--without-nistbeacon") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("libsysfs" ,sysfsutils))) (synopsis "Random number generator daemon") (description "Monitor a hardware random number generator, and supply entropy @@ -3549,7 +3543,7 @@ such as frequency and voltage scaling.") (define-public haveged (package (name "haveged") - (version "1.9.1") + (version "1.9.2") (source (origin (method url-fetch) @@ -3557,7 +3551,7 @@ such as frequency and voltage scaling.") version ".tar.gz")) (sha256 (base32 - "059pxlfd4l5dqhd6r3lynzfz4wby2f17294fy17pi9j2jpnn68ww")))) + "0w5ypz6451msckivjriwyw8djydlwffam7x23xh626s2vzdrlzgp")))) (build-system gnu-build-system) (home-page "http://www.issihosts.com/haveged") (synopsis "Entropy source for the Linux random number generator") @@ -3668,7 +3662,7 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (("^DOCBOOKTOMAN.*$") "DOCBOOKTOMAN = true\n")) #t))))) - (home-page "http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/") + (home-page "https://www.kernel.org/pub/linux/utils/kernel/module-init-tools/") (synopsis "Tools for loading and managing Linux kernel modules") (description "Tools for loading and managing Linux kernel modules, such as `modprobe', @@ -3728,7 +3722,7 @@ are exceeded.") (inputs `(("acl" ,acl) ("libuuid" ,util-linux) - ("lzo", lzo) + ("lzo" ,lzo) ("zlib" ,zlib))) (build-system gnu-build-system) (arguments @@ -3748,7 +3742,7 @@ of flash storage.") (define-public libseccomp (package (name "libseccomp") - (version "2.3.2") + (version "2.3.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/seccomp/libseccomp/" @@ -3756,7 +3750,7 @@ of flash storage.") "/libseccomp-" version ".tar.gz")) (sha256 (base32 - "18dwfxzsw3agiy2dxbflrkhmjgvlji0wwkk636nabh2ng41qrp1x")))) + "0mdiyfljrkfl50q1m3ws8yfcyfjwf1zgkvcva8ffcwncji18zhkz")))) (build-system gnu-build-system) (native-inputs `(("which" ,which))) @@ -3773,7 +3767,7 @@ developers.") (define-public radeontop (package (name "radeontop") - (version "1.0") + (version "1.1") (home-page "https://github.com/clbr/radeontop/") (source (origin (method url-fetch) @@ -3781,7 +3775,7 @@ developers.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1z38nibirqxrbsfyhfcrnzlcw16cqjp4ds6qnjfxalwayf9fm5x9")))) + "1fv06j5c99imvzkac3j40lgjhr5b2i77fnyffhlvj92bli1fm1c6")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -3815,7 +3809,7 @@ under OpenGL graphics workloads.") (define-public efivar (package (name "efivar") - (version "30") + (version "34") (source (origin (method url-fetch) (uri (string-append "https://github.com/rhinstaller/" name @@ -3823,13 +3817,14 @@ under OpenGL graphics workloads.") "-" version ".tar.bz2")) (sha256 (base32 - "12qjnm44yi55ffqxjpgrxy82s89yjziy84w2rfjjknsd8flj0mqz")))) + "09a31y6sl3b33myy42gl9k732k1f440ycd07l6ac5d5l53kk8zhv")))) (build-system gnu-build-system) (arguments `(;; Tests require a UEFI system and is not detected in the chroot. #:tests? #f #:make-flags (list (string-append "prefix=" %output) (string-append "libdir=" %output "/lib") + "CC_FOR_BUILD=gcc" (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) #:phases (modify-phases %standard-phases @@ -3971,7 +3966,7 @@ Light is the successor of lightscript.") (define-public tlp (package (name "tlp") - (version "1.0") + (version "1.1") (source (origin (method url-fetch) (uri (string-append @@ -3981,7 +3976,7 @@ Light is the successor of lightscript.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1v3qpj9kp4rxwqapayd0i9419wwv4bikyrzjvqn0r9xkgnr1f9v4")))) + "068hzmh90x600saynbl7iwg1pm0ywldn4jazyxx5y1fixs8s1qbn")))) (inputs `(("bash" ,bash) ("dbus" ,dbus) ("ethtool" ,ethtool) @@ -4016,7 +4011,8 @@ Light is the successor of lightscript.") (setenv "TLP_CONF" "/etc/tlp") (setenv "TLP_SHCPL" (string-append out "/share/bash-completion/completions")) - (setenv "TLP_MAN" (string-append out "/share/man"))))) + (setenv "TLP_MAN" (string-append out "/share/man")) + (setenv "TLP_META" (string-append out "/share/metainfo"))))) (delete 'check) ; no tests (add-before 'install 'fix-installation (lambda _ @@ -4024,7 +4020,8 @@ Light is the successor of lightscript.") (substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#")))) (replace 'install (lambda _ - (zero? (system* "make" "install-tlp" "install-man")))) + (invoke "make" "install-tlp" "install-man") + #t)) (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) @@ -4120,7 +4117,7 @@ re-use code and to avoid re-inventing the wheel.") (define-public libnftnl (package (name "libnftnl") - (version "1.0.8") + (version "1.0.9") (source (origin (method url-fetch) @@ -4128,7 +4125,7 @@ re-use code and to avoid re-inventing the wheel.") "libnftnl-" version ".tar.bz2")) (sha256 (base32 - "0f10cfiyl4c0f8k3brxfrw28x7a6qvrakaslg4jgqncwxycxggg6")))) + "0d9nkdbdck8sg6msysqyv3m9kjr9sjif5amf26dfa0g3mqjdihgy")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -4145,7 +4142,7 @@ used by nftables.") (define-public nftables (package (name "nftables") - (version "0.8") + (version "0.8.1") (source (origin (method url-fetch) @@ -4153,15 +4150,15 @@ used by nftables.") "/files/nftables-" version ".tar.bz2")) (sha256 (base32 - "16iq9x0qxikdhp1nan500rk33ycqddl1k57876m4dfv3n7kqhnrz")))) + "1i1gfy8l7qyhc5vlrpp63s0n5kybmc9pi4dywiq8rmkhrrnddsla")))) (build-system gnu-build-system) - (inputs `(("bison", bison) - ("flex", flex) - ("gmp", gmp) - ("libmnl", libmnl) - ("libnftnl", libnftnl) - ("readline", readline))) - (native-inputs `(("pkg-config", pkg-config))) + (inputs `(("bison" ,bison) + ("flex" ,flex) + ("gmp" ,gmp) + ("libmnl" ,libmnl) + ("libnftnl" ,libnftnl) + ("readline" ,readline))) + (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://www.nftables.org") (synopsis "Userspace utility for Linux packet filtering") (description "nftables is the project that aims to replace the existing @@ -4267,7 +4264,7 @@ userspace queueing component and the logging subsystem.") "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind}, and @code{binfmt_misc}. This means that users don't need any privileges or setup to do things like using an arbitrary directory as the new root -filesystem, making files accessible somewhere else in the file system +file system, making files accessible somewhere else in the file system hierarchy, or executing programs built for another CPU architecture transparently through QEMU user-mode. Also, developers can use PRoot as a generic process instrumentation engine thanks to its extension mechanism. @@ -4354,10 +4351,10 @@ NexGen, Rise, and SiS CPUs.") (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://github.com/JasonFerrara/jmtpfs") - (synopsis "Use a FUSE filesystem to access data over MTP") - (description "jmtpfs uses FUSE (filesystem in userspace) to provide access + (synopsis "Use a FUSE file system to access data over MTP") + (description "jmtpfs uses FUSE (file system in userspace) to provide access to data over the Media Transfer Protocol (MTP). Unprivileged users can mount -the MTP device as a filesystem.") +the MTP device as a file system.") (license license:gpl3))) (define-public procenv @@ -4374,6 +4371,7 @@ the MTP device as a filesystem.") (base32 "0dvscyf47i3j5ay0amncqmqw9kd916689r2pqdvpnsrhp6j46zp1")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-silent-rules"))) + (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("expat" ,expat) ("libcap" ,libcap) ("check" ,check) ("groff" ,groff) ; for tests ("libselinux" ,libselinux))) @@ -4423,10 +4421,11 @@ libraries, which are often integrated directly into libfabric.") (package (name "psm") (version "3.3.20170428") + (home-page "https://github.com/intel/psm") (source (origin (method git-fetch) - (uri (git-reference (url "http://github.com/01org/psm") + (uri (git-reference (url home-page) (commit "604758e76dc31e68d1de736ccf5ddf16cb22355b"))) (file-name (string-append "psm-" version ".tar.gz")) (sha256 @@ -4452,7 +4451,6 @@ libraries, which are often integrated directly into libfabric.") (substitute* "Makefile" (("/lib64") "/lib")) #t))))) - (home-page "https://github.com/01org/psm") (synopsis "Intel Performance Scaled Messaging (PSM) Libraries") (description "The PSM Messaging API, or PSM API, is Intel's low-level user-level @@ -4462,3 +4460,104 @@ interfaces in parallel environments.") ;; Only Intel-compatable processors are supported. (supported-systems '("i686-linux" "x86_64-linux")) (license (list license:bsd-2 license:gpl2)))) ;dual + +(define-public snapscreenshot + (package + (name "snapscreenshot") + (version "1.0.14.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://bisqwit.iki.fi/src/arch/" + name "-" version ".tar.bz2")) + (sha256 + (base32 "0gzvqsbf6a2sbd1mqvj1lbm57i2bm5k0cr6ncr821d1f32gw03mk")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "BINDIR=" out "/bin") + (string-append "MANDIR=" out "/share/man"))) + #:tests? #f ; no test suite + #:phases + (modify-phases %standard-phases + (delete 'configure) ; ./configure is a snarky no-op + (add-before 'install 'fix-ownership + ;; Install binaries owned by ‘root’ instead of the nonexistent ‘bin’. + (lambda _ + (substitute* "depfun.mak" + ((" -o bin -g bin ") " ")) + #t)) + (add-before 'install 'create-output-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/share/man/man1")) + #t)))))) + (home-page "https://bisqwit.iki.fi/source/snapscreenshot.html") + (synopsis "Take screenshots of one or more Linux text consoles") + (description + "snapscreenshot saves a screenshot of one or more Linux text consoles as a +Targa (@dfn{.tga}) image. It can be used by anyone with read access to the +relevant @file{/dev/vcs*} file(s).") + (license license:gpl2))) + +(define-public fbcat + (package + (name "fbcat") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/jwilk/fbcat/releases/download/" + version "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0pj9hxmwhbz6kmd7847yx2jh1scl9l25zgndyi8s9vlzdkq2q8d7")))) + (build-system gnu-build-system) + (inputs + ;; The ‘fbgrab’ wrapper can use one of several PPM-to-PNG converters. We + ;; choose netpbm simply because it's the smallest. It still adds ~94 MiB + ;; to an otherwise tiny package, so we put ‘fbgrab’ in its own output. + `(("pnmtopng" ,netpbm))) + (outputs (list "out" "fbgrab")) + (arguments + `(#:make-flags + (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-after 'build 'qualify-references + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((pnmtopng (assoc-ref inputs "pnmtopng")) + (out (assoc-ref outputs "out"))) + (substitute* "fbgrab" + (("fbcat" all) + (string-append out "/bin/" all)) + (("pnmtopng" all) + (string-append pnmtopng "/bin/" all))) + #t))) + (add-after 'install 'split-fbgrab-output + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out:fbgrab (assoc-ref outputs "fbgrab"))) + (for-each (lambda (file) + (let ((old (string-append out "/" file)) + (new (string-append out:fbgrab "/" file))) + (mkdir-p (dirname new)) + (rename-file old new))) + (list "bin/fbgrab" + "share/man/man1/fbgrab.1")) + #t)))))) + (home-page "https://jwilk.net/software/fbcat") + (synopsis "Take a screenshot of the contents of the Linux framebuffer") + (description + "fbcat saves the contents of the Linux framebuffer (@file{/dev/fb*}), or +a dump therof. It supports a wide range of drivers and pixel formats. +@command{fbcat} can take screenshots of virtually any application that can be +made to write its output to the framebuffer, including (but not limited to) +text-mode or graphical applications that don't use a display server. + +Also included is @command{fbgrab}, a wrapper around @command{fbcat} that +emulates the behaviour of Gunnar Monell's older fbgrab utility.") + (license license:gpl2)))