summaryrefslogtreecommitdiff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm410
1 files changed, 296 insertions, 114 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 83921a786a..6e3b43ae66 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -33,7 +33,7 @@
;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
-;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2020, 2021 Brice Waegeneire <brice@waegenei.re>
@@ -47,7 +47,6 @@
;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2020 David Dashyan <mail@davie.li>
@@ -164,7 +163,8 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
- #:use-module (ice-9 match))
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 regex))
(define-public (system->linux-architecture arch)
"Return the Linux architecture name for ARCH, a Guix system name such as
@@ -355,15 +355,28 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-5.12-version "5.12.12")
+(define-public linux-libre-5.13-version "5.13.2")
+(define deblob-scripts-5.13
+ (linux-libre-deblob-scripts
+ linux-libre-5.13-version
+ (base32 "1mhc215a1y8bxip2f0sqmyl0rf7cgw22cmg26hg9x0pfm9li2c95")
+ (base32 "1hkbkyy3myraczaj982z72m0p1yxjwigqhsz2kx9g74qkap0xy9d")))
+(define-public linux-libre-5.13-pristine-source
+ (let ((version linux-libre-5.13-version)
+ (hash (base32 "0dx9khk7fh003xyb3xix0kc0rmjncg7ric5p830zhadnrw4hv563")))
+ (make-linux-libre-source version
+ (%upstream-linux-source version hash)
+ deblob-scripts-5.13)))
+
+(define-public linux-libre-5.12-version "5.12.17")
(define deblob-scripts-5.12
(linux-libre-deblob-scripts
linux-libre-5.12-version
(base32 "1vdsr9y4gckknrbqcjyfakwva3k0vb5zcivzk3k1s9mh7qp9dils")
- (base32 "1p1jzrci97sipjdx3h0vmdnw35z2vyvczinxmp65xi1ja7ww0g14")))
+ (base32 "1kb98sbn6lgf5cpd2f8mav93hxh0aywybfjzxx35294ipll1264y")))
(define-public linux-libre-5.12-pristine-source
(let ((version linux-libre-5.12-version)
- (hash (base32 "1a1ymbgkp8ngrkf7cfjrn56zb9qz1mm1j1pmd60g85ln7nyb4ai1")))
+ (hash (base32 "1ghyqxfxslxzr7273vj2yn14pkdnkja3wk50xxhavpvf87i8c40j")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.12)))
@@ -371,20 +384,20 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.10-version "5.10.45")
+(define-public linux-libre-5.10-version "5.10.50")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
linux-libre-5.10-version
(base32 "1rmnx1px4sizs2lq831yd2g9dyflg0vmykz3cv9443x2a2vwy81f")
- (base32 "1zsr02zmpx3968277sy8pfs2mdlgh86ifymwyj0r56wnhzf5q6hk")))
+ (base32 "1fdvjhc048nk8v27bgir0fdjqm8hn4yfdgd3mdjird4ary80ywb2")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "01rmw5rnxyybr8sh0v9rgamrg71ign2nr7m0ilrq9704k6dj9dzj")))
+ (hash (base32 "0dmlpy9k7am99495bxcm46i4y6g34d1fzdkzz3wgzb4mgmx35nlb")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.127")
+(define-public linux-libre-5.4-version "5.4.132")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
linux-libre-5.4-version
@@ -392,12 +405,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "1gr89x1ymxaslp9fqcchaa7939yvhxy67z3pgskmx6z2vrd9pgd0")))
+ (hash (base32 "1vq0dmrn7gl2vprm08l8by5ja3xjgggrcd38vqg7b7jpnfzssrl4")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.195")
+(define-public linux-libre-4.19-version "4.19.197")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
linux-libre-4.19-version
@@ -405,12 +418,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "02rdy5mdmwxli0cin5n7ab492y9fs01hhqxrjq6b4idwv5baa42m")))
+ (hash (base32 "10kj442qaky6rpl65k5rrvd3p6mdgz4p321zvf4s312ixfdja0g6")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.237")
+(define-public linux-libre-4.14-version "4.14.239")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
linux-libre-4.14-version
@@ -418,12 +431,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "0kib9p61hhwjbr8zhir9aw86qik7k6bm95503n3k09ayyachajpq")))
+ (hash (base32 "167zwm3giizv42m0xjz71xnb2swlwiaw0xw0dg8j8mb74hz1drx0")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.273")
+(define-public linux-libre-4.9-version "4.9.275")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
linux-libre-4.9-version
@@ -431,12 +444,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
- (hash (base32 "0jjarv3xfkc21j1xhgch53w8wm6rq3xw1i03rjw9fv5i9k4x6qsw")))
+ (hash (base32 "08mz7mzmhk5n1gwadrc5fw8s40jk0rayvdpjcricl4sv56574lb6")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
-(define-public linux-libre-4.4-version "4.4.273")
+(define-public linux-libre-4.4-version "4.4.275")
(define deblob-scripts-4.4
(linux-libre-deblob-scripts
linux-libre-4.4-version
@@ -444,7 +457,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
- (hash (base32 "1pd39cak0zhda3m9nvn9yxgd070wxvckaha5wl8pi7c8i6jfpclb")))
+ (hash (base32 "1aiwq6019sibsw5smj6ii28cr64dv24c19k4n8c09nakhmhcg94i")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
@@ -477,6 +490,14 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(patches (append (origin-patches source)
patches))))
+(define-public linux-libre-5.13-source
+ (source-with-patches linux-libre-5.13-pristine-source
+ (list %boot-logo-patch
+ %linux-libre-arm-export-__sync_icache_dcache-patch
+ ;; Pinebook Pro patch to fix LCD display
+ (search-patch
+ "linux-libre-arm64-generic-pinebook-lcd.patch"))))
+
(define-public linux-libre-5.12-source
(source-with-patches linux-libre-5.12-pristine-source
(list %boot-logo-patch
@@ -595,6 +616,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(description "Headers of the Linux-Libre kernel.")
(license license:gpl2)))
+(define-public linux-libre-headers-5.13
+ (make-linux-libre-headers* linux-libre-5.13-version
+ linux-libre-5.13-source))
+
(define-public linux-libre-headers-5.12
(make-linux-libre-headers* linux-libre-5.12-version
linux-libre-5.12-source))
@@ -894,6 +919,12 @@ It has been modified to remove all non-free binary blobs.")
;;; Generic kernel packages.
;;;
+(define-public linux-libre-5.13
+ (make-linux-libre* linux-libre-5.13-version
+ linux-libre-5.13-source
+ '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
+ #:configuration-file kernel-config))
+
(define-public linux-libre-5.12
(make-linux-libre* linux-libre-5.12-version
linux-libre-5.12-source
@@ -1185,6 +1216,120 @@ It grants direct and undocumented access to your hardware that may cause damage
and should be used with caution, especially on untested models.")
(license license:gpl3+))) ; see README.md (no licence headers)
+(define-public corefreq
+ (package
+ (name "corefreq")
+ (version "1.86.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cyring/CoreFreq")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1k8pyxcahc78kcc8q1h76dr91i1r33jciqhgkajkz3xa28qx8mhn"))))
+ (build-system linux-module-build-system)
+ (outputs (list "out" "linux-module"))
+ (arguments
+ `(#:imported-modules ((guix build gnu-build-system)
+ ,@%linux-module-build-system-modules)
+ #:modules ((guix build linux-module-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:)
+ (guix build utils))
+ #:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ "OPTIM_LVL=3"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'untangle-module-targets
+ ;; Having to build everything in one pass would complicate the
+ ;; definition. Let each build system handle what it's good at.
+ (lambda _
+ (substitute* "Makefile"
+ ((".*MAKE.*KERNELDIR.*") ""))))
+ (add-after 'build 'gnu:build
+ (assoc-ref gnu:%standard-phases 'build))
+ (add-after 'install 'gnu:install
+ (assoc-ref gnu:%standard-phases 'install))
+ (add-after 'install 'separate-module
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Adding INSTALL_MOD_PATH= to #:make-flags would still create an
+ ;; empty <out>/lib/modules directory, so just do it all by hand.
+ (let* ((out (assoc-ref outputs "out"))
+ (module (assoc-ref outputs "linux-module")))
+ (mkdir-p (string-append module "/lib"))
+ (rename-file (string-append out "/lib/modules")
+ (string-append module "/lib/modules")))))
+ (add-after 'install 'install-README
+ ;; There is no proper documentation. Provide something.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/"
+ ,name "-" ,version)))
+ (install-file "README.md" doc)))))))
+ (home-page "https://github.com/cyring/CoreFreq")
+ (synopsis
+ "Measure performance data & tweak low-level settings on x86-64 CPUs")
+ (description
+ "CoreFreq is a CPU monitor that reports low-level processor settings and
+performance data with notably high precision by using a loadable Linux kernel
+module. Unlike most similar tools, it can be used to modify some settings if
+supported by the hardware and at your own risk. It's designed for 64-bit x86
+Intel processors (Atom, Core2, Nehalem, SandyBridge, and newer) and compatible
+architectures like AMD@tie{}Zen and Hygon@tie{}Dhyana.
+
+Supported processor features include:
+@enumerate
+@item time spent in C-states, including C1/C3 Auto- and UnDemotion;
+@item core temperatures, voltage, and tweaking thermal limits;
+@item core frequencies, ratios, and base clock rate;
+@item enabling, disabling, and testing SpeedStep (EIST), Turbo Boost, and
+Hyper-Threading or SMT;
+@item enabling or disabling data cache prefetching;
+@item kernel assembly code to keep as near as possible readings of performance
+counters such as the @acronym{TSC, Time Stamp Counter}, @acronym{UCC, Unhalted
+Core Cycles}, and @acronym{URC, Unhalted Reference Cycles};
+@item the number of instructions per cycle or second (IPS, IPC, and CPI);
+@item memory controller geometry and RAM timings;
+@item running processes' CPU affinity.
+@end enumerate
+
+This package provides the @command{corefreqd} data collection daemon, the
+@command{corefreq-cli} client to visualise and control it in real time, and the
+@code{corefreqk} kernel module in its own separate output. Read the included
+@file{README.md} before loading it.")
+ (supported-systems (list "x86_64-linux"))
+ (license license:gpl2)))
+
+(define-public librem-ec-acpi-linux-module
+ (package
+ (name "librem-ec-acpi-linux-module")
+ (version "0.9.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://source.puri.sm/nicole.faerber/librem-ec-acpi-dkms")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qnbfj60i8nn2ahgj2zp5ixd79bb0wl1ld36x3igws2f3c0f5pfi"))))
+ (build-system linux-module-build-system)
+ (arguments
+ `(#:tests? #f)) ; no test suite
+ (home-page "https://source.puri.sm/nicole.faerber/librem-ec-acpi-dkms")
+ (synopsis "Linux kernel module to control the Librem Embedded Controller")
+ (description
+ "This is the Linux kernel @acronym{ACPI, Advanced Configuration and Power
+Interface} platform driver for the @acronym{EC, Embedded Controller} firmware
+on Purism Librem laptop computers. It allows user-space control over the
+battery charging thresholds, keyboard backlight, fans and thermal monitors,
+and the notification, WiFi, and Bluetooth LED.")
+ (license license:gpl2)))
+
(define-public rtl8812au-aircrack-ng-linux-module
(let ((commit "059e06a51be025fde5b2bec6565540b3d9981b0b")
(revision "4"))
@@ -1269,23 +1414,26 @@ network adapters.")
(define-public vhba-module
(package
(name "vhba-module")
- (version "20200106")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://downloads.sourceforge.net/cdemu/vhba-module/vhba-module-"
- version ".tar.bz2"))
- (sha256
- (base32
- "10rlvsfj0fw6n0qmwcnvhimqnsnhi7n55lyl7fq1pkwggf5218sr"))))
+ (version "20210418")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://downloads.sourceforge.net/cdemu/vhba-module/vhba-module-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "119zgav6caialmf3hr096wkf72l9h76sqc9w5dhx26kj4yp85g8q"))))
(build-system linux-module-build-system)
(arguments
- ;; TODO: No tests?
- `(#:tests? #f))
+ `(#:tests? #f)) ; no test suite
(home-page "https://cdemu.sourceforge.io/")
- (synopsis "Kernel module that emulates SCSI devices")
- (description "VHBA module provides a Virtual (SCSI) HBA, which is the link
-between the CDemu userspace daemon and linux kernel.")
+ (synopsis "Linux kernel module that emulates SCSI devices")
+ (description
+ "The @acronym{VHBA, Virtual SCSI Host Bus Adapter} module is the link
+between the CDemu user-space daemon and the kernel Linux. It acts as a
+low-level SCSI driver that emulates a virtual SCSI adapter which can have
+multiple virtual devices attached to it. Its typical use with CDEmu is to
+emulate optical devices such as DVD and CD-ROM drives.")
(license license:gpl2+)))
(define-public bbswitch-module
@@ -1509,14 +1657,14 @@ at login. Local and dynamic reconfiguration are its key features.")
(define-public powerstat
(package
(name "powerstat")
- (version "0.02.25")
+ (version "0.02.26")
(source
(origin
(method url-fetch)
(uri (string-append "https://kernel.ubuntu.com/~cking/tarballs/"
"powerstat/powerstat-" version ".tar.gz"))
(sha256
- (base32 "0dmixbxm4qd08ds26i0wvxwyy8nrjzfjj2q9ylx35564g4wh58qb"))))
+ (base32 "18m85k83hryj05vix63fay1hh0sb9h87hy5r7g1dqg2y9i8lzgxk"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -1525,12 +1673,6 @@ at login. Local and dynamic reconfiguration are its key features.")
#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'respect-$prefix
- ;; https://bugs.launchpad.net/ubuntu/+source/powerstat/+bug/1877744
- (lambda _
- (substitute* "Makefile"
- (("DIR=/usr/") "DIR=$(prefix)/"))
- #t))
(delete 'configure)))) ; no configure script
(home-page "https://kernel.ubuntu.com/~cking/powerstat/")
(synopsis "Measure system power consumption")
@@ -2501,7 +2643,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
(define-public iproute
(package
(name "iproute2")
- (version "5.12.0")
+ (version "5.13.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2509,7 +2651,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
version ".tar.xz"))
(sha256
(base32
- "0vrjbzhwzcvaxyyhkr2ii89w2vznzwp2pfgk7w72mviniawqs9lx"))))
+ "0dhvdybfm33q9lz73sfnc24pxy2r42xywzb1gdgydjfafhvyb8kj"))))
(build-system gnu-build-system)
(arguments
`( ;; There is a test suite, but it wants network namespaces and sudo.
@@ -2978,7 +3120,9 @@ processes currently causing I/O.")
"1ddlq6kzxilccgbvxjfx80jx6kamgw4sv49phks2zhlcc1frvrnh"))
(patches (search-patches "fuse-overlapping-headers.patch"))))
(build-system gnu-build-system)
- (inputs `(("util-linux" ,util-linux)))
+ (inputs
+ `(("bash-minimal" ,bash-minimal)
+ ("util-linux" ,util-linux)))
(arguments
'(#:configure-flags (list (string-append "MOUNT_FUSE_PATH="
(assoc-ref %outputs "out")
@@ -3001,9 +3145,9 @@ processes currently causing I/O.")
(("/bin/(u?)mount" _ maybe-u)
(string-append (assoc-ref inputs "util-linux")
"/bin/" maybe-u "mount")))
- (substitute* '("util/mount.fuse.c")
- (("/bin/sh")
- (which "sh")))
+ (substitute* "util/mount.fuse.c"
+ (("/bin/sh" command)
+ (string-append (assoc-ref inputs "bash-minimal") command)))
;; This hack leads libfuse to search for 'fusermount' in
;; $PATH, where it may find a setuid-root binary, instead of
@@ -3011,8 +3155,7 @@ processes currently causing I/O.")
;; it's not setuid.
(substitute* "lib/Makefile"
(("-DFUSERMOUNT_DIR=[[:graph:]]+")
- "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))
- #t)))))
+ "-DFUSERMOUNT_DIR=\\\"/var/empty\\\"")))))))
(supported-systems (delete "i586-gnu" %supported-systems))
(home-page "https://github.com/libfuse/libfuse")
(synopsis "Support file systems implemented in user space")
@@ -3602,7 +3745,7 @@ devices that can inject events directly into the input subsystem.")
(define-public interception-tools
(package
(name "interception-tools")
- (version "0.6.4")
+ (version "0.6.6")
(home-page "https://gitlab.com/interception/linux/tools")
(source (origin
(method git-fetch)
@@ -3612,7 +3755,7 @@ devices that can inject events directly into the input subsystem.")
(file-name (git-file-name name version))
(sha256
(base32
- "121jy40ynkbzlqnx7g0dqwvkb7dm2ahcy6vwrz6ylsyd0jmi6s5a"))))
+ "0k9h14a9d65nwvv7pj0kigjgzfv453mm3r4svnxfg1h5lccmy8jj"))))
(build-system cmake-build-system)
(inputs
`(("boost" ,boost)
@@ -5134,7 +5277,7 @@ and copy/paste text in the console and in xterm.")
(define-public btrfs-progs
(package
(name "btrfs-progs")
- (version "5.12.1")
+ (version "5.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
@@ -5142,7 +5285,7 @@ and copy/paste text in the console and in xterm.")
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
- "0n9p8zaz4nrkgc20cp6zj7gp4ib4hd4lbyph74f4pysllkz4c24m"))))
+ "0hsqbv7kvw5j2669xmp226cf7mgdfyq6xg8vjhm5w9ix43922aaf"))))
(build-system gnu-build-system)
(outputs '("out"
"static")) ; static versions of the binaries in "out"
@@ -5855,7 +5998,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
(package
(name "rng-tools")
(home-page "https://github.com/nhorman/rng-tools")
- (version "6.12")
+ (version "6.13")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
@@ -5863,7 +6006,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
(file-name (git-file-name name version))
(sha256
(base32
- "0z4j3kqh9k3zsrx6257hwh4fa51vqg79c6dnfrj6lhpcll0wh0hm"))))
+ "0m4895f44a668r0z7md5ifq7syndsb2by2dfhk794vmhprsk1406"))))
(build-system gnu-build-system)
(arguments
`(;; Disable support for various hardware entropy sources as they need
@@ -6486,6 +6629,8 @@ set the screen to be pitch black at a value of 0 (or higher).
(delete 'configure)
(add-after 'unpack 'adjust-udev-rules
(lambda _
+ (substitute* "Makefile"
+ (("INSTALL_UDEV_RULES=0") "INSTALL_UDEV_RULES=1"))
(substitute* "90-brightnessctl.rules"
(("/bin/") "/run/current-system/profile/bin/"))
#t)))))
@@ -6738,7 +6883,9 @@ userspace queueing component and the logging subsystem.")
(define-public proot
(package
(name "proot")
- (version "5.1.0")
+ ;; The last stable release was made in 2015, and fails to build for
+ ;; the aarch64 platform.
+ (version "5.2.0-alpha")
(source
(origin
(method git-fetch)
@@ -6747,32 +6894,33 @@ userspace queueing component and the logging subsystem.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0azsqis99gxldmbcg43girch85ysg4hwzf0h1b44bmapnsm89fbz"))
- (patches (search-patches "proot-test-fhs.patch"))))
+ (base32 "09vp806y4hqfq2fn2hpi873rh4j6a3c572ph4mkirx1n32wj8srl"))))
(build-system gnu-build-system)
+ ;; The powerpc64le-linux and mips64el-linux architectures are not
+ ;; supported (see:
+ ;; https://github.com/proot-me/proot/blob/master/src/arch.h#L51).
+ (supported-systems '("x86_64-linux" "i686-linux"
+ "armhf-linux" "aarch64-linux" "i586-gnu"))
(arguments
- '(#:make-flags '("-C" "src")
-
+ ;; Disable the test suite on ARM platforms, as there are too many
+ ;; failures to keep track of (see for example:
+ ;; https://github.com/proot-me/proot/issues/263).
+ `(#:tests? ,(not (string-match "^(arm|aarch64)"
+ (or (%current-target-system)
+ (%current-system))))
+ #:make-flags '("-C" "src")
#:phases (modify-phases %standard-phases
- (delete 'configure)
- (add-before 'build 'set-shell-file-name
+ (add-after 'unpack 'patch-sources
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "src" "\\.[ch]$")
(("\"/bin/sh\"")
- (string-append "\""
- (assoc-ref inputs "bash")
+ (string-append "\"" (assoc-ref inputs "bash")
"/bin/sh\"")))
- #t))
- (add-before 'check 'fix-fhs-assumptions-in-tests
- (lambda _
- (substitute* "tests/test-c6b77b77.mk"
- (("/bin/bash") (which "bash"))
- (("/usr/bin/test") (which "test")))
- (substitute* '("tests/test-16573e73.c")
- (("/bin/([a-z-]+)" _ program)
- (which program)))
- (substitute* (find-files "tests" "\\.sh$")
+ (substitute* "src/GNUmakefile"
+ (("/bin/echo") (which "echo")))
+
+ (substitute* (find-files "test" "\\.sh$")
;; Some of the tests try to "bind-mount" /bin/true.
(("-b /bin/true:")
(string-append "-b " (which "true") ":"))
@@ -6782,30 +6930,65 @@ userspace queueing component and the logging subsystem.")
(("/bin/sh") (which "sh"))
;; Others assume /etc/fstab exists.
(("/etc/fstab") "/etc/passwd"))
-
- (substitute* "tests/GNUmakefile"
+ (substitute* "test/GNUmakefile"
(("-b /bin:") "-b /gnu:"))
+ (substitute* "test/test-c6b77b77.mk"
+ (("/bin/bash") (which "bash"))
+ (("/usr/bin/test") (which "test")))
+ (substitute* "test/test-16573e73.c"
+ (("/bin/([a-z-]+)" _ program)
+ (which program)))
+ (substitute* "test/test-d2175fc3.sh"
+ (("\\^/bin/true\\$") "$(which true)"))
+ (substitute* "test/test-5467b986.sh"
+ (("-w /usr") "-w /gnu")
+ (("-w usr") "-w gnu")
+ (("/usr/share") "/gnu/store")
+ (("share") "store"))
+ (substitute* "test/test-092c5e26.sh"
+ (("-q echo ")
+ "-q $(which echo) "))
+
+ ;; The following tests are known to fail (see:
+ ;; https://github.com/proot-me/proot/issues/184).
+ (delete-file "test/test-0228fbe7.sh")
+ (delete-file "test/test-2db65cd2.sh")
+
+ ;; This one fails with "bind: Address already in use"
+ ;; (see: https://github.com/proot-me/proot/issues/260).
+ (delete-file "test/test-ssssssss.c")
+
+ ;; This one fails on a waitpid call that returns 1 (see:
+ ;; https://github.com/proot-me/proot/issues/261).
+ (delete-file "test/test-ptrace01.c")
;; XXX: This test fails in an obscure corner case, just
;; skip it.
- (delete-file "tests/test-kkkkkkkk.c")
+ (delete-file "test/test-kkkkkkkk.c")
- #t))
- (replace 'check
+ ;; The socket tests requires networking.
+ (for-each delete-file
+ (find-files "test" "test-socket.*\\.sh$"))))
+ (delete 'configure)
+ (add-after 'build 'build-manpage
(lambda _
- (let ((n (parallel-job-count)))
- ;; For some reason we get lots of segfaults with
- ;; seccomp support (x86_64, Linux-libre 4.11.0).
- (setenv "PROOT_NO_SECCOMP" "1")
-
- ;; Most of the tests expect "/bin" to be in $PATH so
- ;; they can run things that live in $ROOTFS/bin.
- (setenv "PATH"
- (string-append (getenv "PATH") ":/bin"))
-
- (invoke "make" "check" "-C" "tests"
- ;;"V=1"
- "-j" (number->string n)))))
+ (with-directory-excursion "doc"
+ (invoke "make" "proot/man.1" "SUFFIX=.py"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (let ((n (parallel-job-count)))
+ ;; There are lots of segfaults with seccomp support
+ ;; (x86_64, Linux-libre 4.11.0) (see:
+ ;; https://github.com/proot-me/proot/issues/106).
+ (setenv "PROOT_NO_SECCOMP" "1")
+ ;; Most of the tests expect "/bin" to be in $PATH so
+ ;; they can run things that live in $ROOTFS/bin.
+ (setenv "PATH"
+ (string-append (getenv "PATH") ":/bin"))
+ (invoke "make" "check" "-C" "test"
+ ;;"V=1"
+ "-j" (number->string n))))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
;; The 'install' rule does nearly nothing.
@@ -6815,25 +6998,22 @@ userspace queueing component and the logging subsystem.")
;; build currently.)
(invoke "make" "-C" "src" "install"
(string-append "PREFIX=" out))
-
(mkdir-p man1)
(copy-file "doc/proot/man.1"
- (string-append man1 "/proot.1"))
- #t))))))
+ (string-append man1 "/proot.1"))))))))
(native-inputs `(("which" ,which)
-
;; For 'mcookie', used by some of the tests.
("util-linux" ,util-linux)
-
;; XXX: Choose the old coreutils because its 'stat'
;; program does not use statx(2) when running 'stat -c
- ;; %a' or similar, which PRoot doesn't properly support.
+ ;; %a' or similar, which PRoot doesn't properly support
+ ;; (see: https://github.com/proot-me/proot/issues/262).
("coreutils-old" ,coreutils-8.30)
-
- ;; XXX: 'test-c6b77b77.sh' runs 'make' and that leads
- ;; make 4.3 to segfault.
- ("make-old" ,gnu-make-4.2)))
- (inputs `(("talloc" ,talloc)))
+ ("pkg-config" ,pkg-config)
+ ;; For rst2man, used to generate the manual page.
+ ("python-docutils" ,python-docutils)))
+ (inputs `(("libarchive" ,libarchive)
+ ("talloc" ,talloc)))
(home-page "https://github.com/proot-me/PRoot")
(synopsis "Unprivileged chroot, bind mount, and binfmt_misc")
(description
@@ -6938,7 +7118,7 @@ the MTP device as a file system.")
(define-public procenv
(package
(name "procenv")
- (version "0.55")
+ (version "0.58")
(source
(origin
(method git-fetch)
@@ -6947,7 +7127,7 @@ the MTP device as a file system.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "13fnr4gfj2xlxghw93m5gsxzlwzv3s6jv9hja0w0pb23hlncbmhy"))))
+ (base32 "137n630qzml4yraqzp2fij8nzn8341nf8d58yzfhk8ddlzi60sfm"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -6960,7 +7140,8 @@ the MTP device as a file system.")
("libcap" ,libcap)
("libselinux" ,libselinux)))
(synopsis "Utility to show process environment")
- (description "Procenv is a command-line tool that displays as much detail about
+ (description
+ "Procenv is a command-line tool that displays as much detail about
itself and its environment as possible. It can be used as a test
tool, to understand the type of environment a process runs in, and for
comparing system environments.")
@@ -7710,7 +7891,7 @@ of Linux application development.")
(define-public ell
(package
(name "ell")
- (version "0.40")
+ (version "0.41")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7719,7 +7900,7 @@ of Linux application development.")
(file-name (git-file-name name version))
(sha256
(base32
- "1zzpbfdpmfldd7w0h7mwbq0mfqgqwz54nqbq0rmbqlqqpwlkrgb2"))))
+ "14scs8vqpcf2810gvabsplg9yzh9y4sz47407bjy6vd604z3w8ah"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -7750,14 +7931,14 @@ platforms, it is not limited to resource-constrained systems.")
(define-public lttng-ust
(package
(name "lttng-ust")
- (version "2.11.0")
+ (version "2.12.2")
(source (origin
(method url-fetch)
(uri (string-append "https://lttng.org/files/lttng-ust/"
"lttng-ust-" version ".tar.bz2"))
(sha256
(base32
- "1n646yz7882svf5a4ay3vqiiz3qjn3pgkkij9kk22871wp7q0ck8"))))
+ "1iwz6p79zvibj8sl8qqw84lcir9a8z1ylq77hhnwg26anrjg1l5w"))))
(build-system gnu-build-system)
(inputs
`(("liburcu" ,liburcu)
@@ -8101,7 +8282,7 @@ kernel side implementation.")
(define-public erofs-utils
(package
(name "erofs-utils")
- (version "1.2.1")
+ (version "1.3")
(source
(origin
(method git-fetch)
@@ -8110,7 +8291,7 @@ kernel side implementation.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1vb4mxsb59g29x7l22cffsqa8x743sra4j5zbmx89hjwpwm9vvcg"))))
+ (base32 "0sqiw05zbxr6l0g9gn3whkc4qc5km2qvfg4lnm08nppwskm8yaw8"))))
(build-system gnu-build-system)
(inputs
`(("lz4" ,lz4)
@@ -8121,8 +8302,9 @@ kernel side implementation.")
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(home-page "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/")
- (synopsis "User-space tools for EROFS file system")
- (description "EROFS (Enhanced Read-Only File System) is a compressed,
+ (synopsis "User-space tools for the EROFS file system")
+ (description
+ "@acronym{EROFS, The Enhanced Read-Only File System} is a compressed,
read-only file system optimized for resource-scarce devices. This package
provides user-space tools for creating EROFS file systems.")
(license license:gpl2+)))