diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 574 |
1 files changed, 375 insertions, 199 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 9778c04fb4..630314ac2a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2021, 2021-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2021, 2021-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> @@ -11,7 +11,7 @@ ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> -;;; Copyright © 2016, 2018-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2016, 2018-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> @@ -54,7 +54,7 @@ ;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> -;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021, 2023 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch> @@ -68,7 +68,8 @@ ;;; Copyright © 2022 Hunter Jozwiak <hunter.t.joz@gmail.com> ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2022 Stefan <stefan-guix@vodafonemail.de> -;;; Copyright © 2022 Demis Balbach <db@minikn.xyz> +;;; Copyright © 2022, 2023 Demis Balbach <db@minikn.xyz> +;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -481,17 +482,32 @@ 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-6.1-version "6.1.9") +(define-public linux-libre-6.2-version "6.2.7") +(define-public linux-libre-6.2-gnu-revision "gnu") +(define deblob-scripts-6.2 + (linux-libre-deblob-scripts + linux-libre-6.2-version + linux-libre-6.2-gnu-revision + (base32 "15wrksnimwb099qgqc631rp8dgv5b61l6s5kknk23frqdwkp4shp") + (base32 "0ir5vvbdh6dly5ld8mfp7285g8k88w5bb32hj4wmgyqsbfqc6rf2"))) +(define-public linux-libre-6.2-pristine-source + (let ((version linux-libre-6.2-version) + (hash (base32 "138dpmj8qr5fcji99kmi3sj34ah21bgqgzsz2lbhn37v059100s3"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-6.2))) + +(define-public linux-libre-6.1-version "6.1.20") (define-public linux-libre-6.1-gnu-revision "gnu") (define deblob-scripts-6.1 (linux-libre-deblob-scripts linux-libre-6.1-version linux-libre-6.1-gnu-revision - (base32 "0p1cg5khpp8xkfaqy0cnp1m273z3xiz0m97rkrkggz9gr2klrjym") - (base32 "1g9xqc8ajs0g2yq9xizlgr7k47x75rk3y99yicky01fm13rvfvv3"))) + (base32 "10igxhqvlh5ar98i68xf5w9ywfb9l05vg20s8yxmgc62pj72h0yi") + (base32 "0cchdhjra74zanyk14brv2l2dvxpg8dn58rn477lgfb44mcnhq33"))) (define-public linux-libre-6.1-pristine-source (let ((version linux-libre-6.1-version) - (hash (base32 "0awjynyy049px0h7li59w3zgn3z39alv6glzrmx6wf1wd62z236n"))) + (hash (base32 "1w1iy1i3bpzrs5rhvqbn2awxv5qqgng9n7jd5js66g0sq3l2sckn"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.1))) @@ -499,77 +515,77 @@ 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.15-version "5.15.91") +(define-public linux-libre-5.15-version "5.15.103") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts linux-libre-5.15-version linux-libre-5.15-gnu-revision (base32 "0vj60bra81fmbx3lz924czbhxs4dmvd4d584g9mcs80b7c4q52kg") - (base32 "1lwmax7078w5p6li1gf66m494xijy4bwa7nm5dlx0k09cfif9q2f"))) + (base32 "03hwhwbcicwyx5i30d6m715kwgrxz4h21xhk55wnawlk8zhx3r35"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "107yw7mibibhfrggm8idzn5bayjvkxaq1kv3kkm1lpxipsqjng56"))) + (hash (base32 "01fpipy8skmp4dyxgk8fk9k6hc0w0gvk7mm8f8pm7jhwcf0vlxh8"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.166") +(define-public linux-libre-5.10-version "5.10.175") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts linux-libre-5.10-version linux-libre-5.10-gnu-revision (base32 "0mw7qn77y9c6wrnw4rjvf75cpm1w6n1aqqhf8cnghcb97p2yxxrf") - (base32 "0fk954nniva8a7s423fnfn2wz9j9jdhscc4pqyvwn0wlxxbjgyap"))) + (base32 "1g4vabfswxzf9ahxc06k2ffksf84kcr2csx4m5kx680w0jqqnk80"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "1bz1sgkqniwg84wv9vcg08mksa5q533vgynsd3y0xnjv1rwa2l80"))) + (hash (base32 "1kkv63v5lc0ahkl8sjmwhqxahmwmbxcbf4mfcmkf6d7j50p5cxz2"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.230") +(define-public linux-libre-5.4-version "5.4.237") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version linux-libre-5.4-gnu-revision (base32 "1nlgk8ajb5wl3aa96h9a0pb9j5a5wmrbpk63varn557x1d00r7wj") - (base32 "1bgblfkcnrabnr9hpdl07qgps57h6bq4v5pjrxs798vq43db66va"))) + (base32 "1d6as1yk9svysh07hdybs8glvn8s9f8gwlbjl7f9m920pdam2r60"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0bz6hfhsahymys2g9s4nzf862z0zfq4346577cpvf98hrhnd6kx7"))) + (hash (base32 "09smq8jsbpqfh135snljack2wj41anx8f8i0lmjcqcq5zzhgw25p"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.271") +(define-public linux-libre-4.19-version "4.19.278") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version linux-libre-4.19-gnu-revision (base32 "06pqv050bkii0hc2v7ymny5264w1bca8db0dp1pw9mfmjg865am5") - (base32 "0g1yhzxm3ixfll6n630v7lddcyvf888sg114nimh0lkvzd180s99"))) + (base32 "1q0fgpbdwc21wj9wnjjb49dp84ch6ymd5na3iaabadwjs2nmb6bd"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "06lxh9skp9213n29ynx7a9cinz7wggaxjsz52kghdbwfnjf3yvb3"))) + (hash (base32 "0miyadgnd52cgw3bgpmx66kr1pgxh14b2f52fasy57b6wysv0lnv"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.304") +(define-public linux-libre-4.14-version "4.14.310") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version linux-libre-4.14-gnu-revision (base32 "02rxvr0gmxb3zfsyyzdmzgfq04gkdkv1cc38md0xfl0mxzdzdfyk") - (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) + (base32 "1ccggm19nl7pdcxmsm08fkqy8phz8rqfmww5ypizibdmnrmpn2v9"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "1ma9qpsx0nvi0szlivf8v5l3pjykqwrv4x6y5g0nn6bcwhsb5jv4"))) + (hash (base32 "0r91f3jj3y0cca4sfs0xa12lbrc62q2yzgval5ainwr74bk7dwlb"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) @@ -602,6 +618,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (patches (append (origin-patches source) patches)))) +(define-public linux-libre-6.2-source + (source-with-patches linux-libre-6.2-pristine-source + (list %boot-logo-patch + %linux-libre-arm-export-__sync_icache_dcache-patch))) + (define-public linux-libre-6.1-source (source-with-patches linux-libre-6.1-pristine-source (list %boot-logo-patch @@ -713,6 +734,11 @@ 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-6.2 + (make-linux-libre-headers* linux-libre-6.2-version + linux-libre-6.2-gnu-revision + linux-libre-6.2-source)) + (define-public linux-libre-headers-6.1 (make-linux-libre-headers* linux-libre-6.1-version linux-libre-6.1-gnu-revision @@ -863,10 +889,12 @@ ARCH and optionally VARIANT, or #f if there is no such configuration." ;;; Kernel package utilities. ;;; -(define (doc-supported? version) +(define (apply-infodoc-patch? version) ;; Versions older than 5.10 have different enough build scripts that the ;; infodocs patch doesn't apply. - (version>=? version "5.10")) + (and (version>=? version "5.10") + (not (version>=? version "6.2")))) ;patch applied upstream + (define* (make-linux-libre version gnu-revision hash-string supported-systems #:key @@ -879,7 +907,7 @@ ARCH and optionally VARIANT, or #f if there is no such configuration." (extra-options %default-extra-linux-options) (patches `(,%boot-logo-patch - ,@(if (doc-supported? version) + ,@(if (apply-infodoc-patch? version) (list (search-patch "linux-libre-infodocs-target.patch")) '())))) @@ -1049,6 +1077,20 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") ;;; Generic kernel packages. ;;; +(define-public linux-libre-6.2 + (make-linux-libre* linux-libre-6.2-version + linux-libre-6.2-gnu-revision + linux-libre-6.2-source + '("x86_64-linux" "i686-linux" "armhf-linux" + "aarch64-linux" "powerpc64le-linux" "riscv64-linux") + #:configuration-file kernel-config)) + +(define-public linux-libre-version linux-libre-6.2-version) +(define-public linux-libre-gnu-revision linux-libre-6.2-gnu-revision) +(define-public linux-libre-pristine-source linux-libre-6.2-pristine-source) +(define-public linux-libre-source linux-libre-6.2-source) +(define-public linux-libre linux-libre-6.2) + (define-public linux-libre-6.1 (make-linux-libre* linux-libre-6.1-version linux-libre-6.1-gnu-revision @@ -1057,12 +1099,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") "aarch64-linux" "powerpc64le-linux" "riscv64-linux") #:configuration-file kernel-config)) -(define-public linux-libre-version linux-libre-6.1-version) -(define-public linux-libre-gnu-revision linux-libre-6.1-gnu-revision) -(define-public linux-libre-pristine-source linux-libre-6.1-pristine-source) -(define-public linux-libre-source linux-libre-6.1-source) -(define-public linux-libre linux-libre-6.1) - (define-public linux-libre-5.15 (make-linux-libre* linux-libre-5.15-version linux-libre-5.15-gnu-revision @@ -1284,9 +1320,9 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") (define-public linux-libre-with-bpf (let ((base-linux-libre (make-linux-libre* - linux-libre-6.1-version - linux-libre-6.1-gnu-revision - linux-libre-6.1-source + linux-libre-6.2-version + linux-libre-6.2-gnu-revision + linux-libre-6.2-source '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "powerpc64le-linux" "riscv64-linux") #:extra-version "bpf" @@ -1354,7 +1390,7 @@ and should be used with caution, especially on untested models.") (define-public corefreq (package (name "corefreq") - (version "1.90.1") + (version "1.95.2") (source (origin (method git-fetch) @@ -1363,7 +1399,7 @@ and should be used with caution, especially on untested models.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1fpmrqjwxvjbs23r73agjs322fbi4v1013cncbfyk6lcjghxab76")))) + (base32 "108fr056zmbipiv1nsrjccn3ky0jbcwan43big34nyq1c9dqjq1x")))) (build-system linux-module-build-system) (outputs (list "out" "linux-module")) (arguments @@ -1442,7 +1478,7 @@ This package provides the @command{corefreqd} data collection daemon, the (define-public librem-ec-acpi-linux-module (package (name "librem-ec-acpi-linux-module") - (version "0.9.1") + (version "0.9.2") (source (origin (method git-fetch) @@ -1451,7 +1487,7 @@ This package provides the @command{corefreqd} data collection daemon, the (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qnbfj60i8nn2ahgj2zp5ixd79bb0wl1ld36x3igws2f3c0f5pfi")))) + (base32 "0m8hamf0550083jnk5q4hv20l8lfiardnkxbib4hhvqghpzzbxl0")))) (build-system linux-module-build-system) (arguments (list #:tests? #f)) ; no test suite @@ -1468,7 +1504,7 @@ and the notification, WiFi, and Bluetooth LED.") (define-public tuxedo-keyboard (package (name "tuxedo-keyboard") - (version "3.1.1") + (version "3.1.4") (source (origin (method git-fetch) @@ -1477,7 +1513,7 @@ and the notification, WiFi, and Bluetooth LED.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17n14yh55yrxx4qbx4ph9drbzx2ll4kdsfmlngrdgizhyzk7z7zv")))) + (base32 "00yq3bk4ss60q8zgykid6gzsi3n6grdnkk6dkdr8n42gwaprpbw7")))) (build-system linux-module-build-system) (arguments (list #:tests? #f)) ; no test suite @@ -1492,6 +1528,35 @@ backlight only models are currently not supported. The @code{tuxedo_io} module is also needed for the @code{tuxedo-control-center} (short tcc) package.") (license license:gpl3+))) +(define-public evdi + (package + (name "evdi") + (version "1.12.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DisplayLink/evdi") + (commit "bdc258b25df4d00f222fde0e3c5003bf88ef17b5"))) + (file-name (git-file-name name version)) + (patches (search-patches "evdi-fix-build-with-linux-6.2.patch")) + (sha256 + (base32 + "1yi7mbyvxm9lsx6i1xbwp2bihwgzhwxkydk1kbngw5a5kw9azpws")))) + (build-system linux-module-build-system) + (arguments + (list #:tests? #f ;no test suite + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "module")))))) + (home-page "https://github.com/DisplayLink/evdi") + (synopsis "EVDI Linux kernel module") + (description + "The @acronym{EVDI, Extensible Virtual Display Interface} is a Linux kernel module +that enables management of multiple screens, allowing user-space programs to +take control over what happens with the image.") + (license license:gpl2))) + (define-public ec (package (name "ec") @@ -1676,7 +1741,7 @@ application by hooking GStreamer into the loopback device.") (define-public xpadneo (package (name "xpadneo") - (version "0.9.1") + (version "0.9.5") (source (origin (method git-fetch) (uri (git-reference @@ -1685,7 +1750,7 @@ application by hooking GStreamer into the loopback device.") (file-name (git-file-name name version)) (sha256 (base32 - "0xr0zx134s56h4ij6c3fh8ki0h58h61minbfxcl3sgpgxkh14ism")))) + "1pq7p9sxlw1v9rnny9070b39rpwfq6rip0z92mwlw4qzinmqqgdd")))) (build-system linux-module-build-system) (arguments (list #:tests? #f ; no `check' target @@ -1852,11 +1917,14 @@ GnuPG-based password manager like @code{pass}.") #:phases #~(modify-phases %standard-phases (delete 'configure) (replace 'build - (lambda _ + (lambda* (#:key parallel-build? #:allow-other-keys) (substitute* "Documentation/Makefile" ;; Remove problematic environment check script. ((".*scripts/sphinx-pre-install.*") "")) - (invoke "make" "infodocs"))) + (invoke "make" "infodocs" + "-j" (if parallel-build? + (number->string (parallel-job-count)) + "1")))) (replace 'install (lambda _ (let* ((info-dir (string-append #$output "/share/info")) @@ -2297,14 +2365,14 @@ slabtop, tload, top, vmstat, w, watch and sysctl.") (define-public usbutils (package (name "usbutils") - (version "014") + (version "015") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/" "usbutils-" version ".tar.xz")) (sha256 - (base32 "0sgwfvr1b5w3ai1c0rmvzhk67y9vh7bq490rcxxj4q05svx9q1rs")))) + (base32 "0vnsdzx997v8ksi5dbsi2vc8b3mcm5b6jnmcdhszdyag3yxm3d63")))) (build-system gnu-build-system) (outputs (list "out" "python")) (arguments @@ -2437,7 +2505,7 @@ module.") (for-each (lambda (file) (chmod file #o666)) archives)))))))) - (home-page "http://e2fsprogs.sourceforge.net/") + (home-page "https://e2fsprogs.sourceforge.net/") (synopsis "Creating and checking ext2/ext3/ext4 file systems") (description "This package provides tools for manipulating ext2/ext3/ext4 file systems.") @@ -2502,7 +2570,7 @@ from the e2fsprogs package. It is meant to be used in initrds.") (patches (search-patches "extundelete-e2fsprogs-1.44.patch")))) (build-system gnu-build-system) (inputs (list e2fsprogs)) - (home-page "http://extundelete.sourceforge.net/") + (home-page "https://extundelete.sourceforge.net/") (synopsis "Recover deleted files from ext2/3/4 partitions") (description "Extundelete is a set of tools that can recover deleted files from an @@ -2981,7 +3049,7 @@ early boot when entropy may be low, especially in virtualised environments.") "0jp458m2b3wckr18qkln69i01152qlwz33zm49103lq8fgx0n6d4")))) (build-system gnu-build-system) (synopsis "Lists information about SCSI or NVMe devices in Linux") - (home-page "http://sg.danny.cz/scsi/lsscsi.html") + (home-page "https://sg.danny.cz/scsi/lsscsi.html") (description "@command{lsscsi} lists SCSI logical units or SCSI targets. It can also list NVMe namespaces or controllers and show the relationship between a @@ -3100,7 +3168,7 @@ inadequately in modern network environments, and both should be deprecated.") (sha256 (base32 "0hz9fda9d78spp774b6rr5xaxav7cm4h0qcpxf70rvdbrf6qx7vy")))) - (home-page "http://net-tools.sourceforge.net/") + (home-page "https://net-tools.sourceforge.net/") (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -3198,7 +3266,7 @@ configuration (iptunnel, ipmaddr).") Linux-based operating systems.") ;; License is BSD-3 or GPLv2, at the user's choice. - (license license:gpl2))) + (license (list license:bsd-3 license:gpl2)))) (define-public bridge-utils (package @@ -3895,7 +3963,7 @@ NUMA performance on your system.") ;; run (for example) ‘loadkeys en-latin9’ instead of having to find ;; and type ‘i386/colemak/en-latin9’ on a mislabelled keyboard. (files (list "share/keymaps/**"))))) - (home-page "http://kbd-project.org/") + (home-page "https://kbd-project.org/") (synopsis "Linux keyboard utilities and keyboard maps") (description "This package contains keytable files and keyboard utilities compatible @@ -4579,64 +4647,60 @@ compliance.") (define-public wireless-regdb (package (name "wireless-regdb") - (version "2020.11.20") + (version "2023.02.13") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/network/wireless-regdb/" "wireless-regdb-" version ".tar.xz")) (sha256 - (base32 - "0liagyi6ppf5w474qk9j4jz5gbvvn8mc8al1dq4b1xrgv28485ml")) + (base32 "0wrf1c7mbsklwdn7jpwzlpjxwj0vgr61qyh88lx7bi2dd6lfi0gy")) ;; We're building 'regulatory.bin' by ourselves. (snippet '(begin - (delete-file "regulatory.bin") - #t)))) + (delete-file "regulatory.bin"))))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'gzip-determinism - (lambda _ - (substitute* "Makefile" - (("gzip") "gzip --no-name")) - #t)) - (add-after 'unpack 'omit-signature - (lambda _ - (substitute* "Makefile" - ;; Signing requires a REGDB_PUBCERT and REGDB_PRIVKEY which we - ;; don't provide (see below). Disable it. - ((" regulatory\\.db\\.p7s") "") - ;; regulatory.db is built as a dependency of regulatory.db.p7s, - ;; but ‘make install’ depends only on the latter while installing - ;; both (and failing). Depend on it explicitly. - (("^install: " all) (string-append all "regulatory.db "))) - #t)) - (delete 'configure)) ; no configure script - - ;; The 'all' target of the makefile depends on $(REGDB_CHANGED), which - ;; is computed and can be equal to 'maintainer-clean'; when that - ;; happens, we can end up deleting the 'regulatory.bin' file that we - ;; just built. Thus, build things sequentially. - #:parallel-build? #f - - #:tests? #f ; no tests - #:make-flags - (let ((out (assoc-ref %outputs "out"))) - (list (string-append "PREFIX=" out) - (string-append "FIRMWARE_PATH=$(PREFIX)/lib/firmware") - - ;; Leave this empty so that db2bin.py doesn't try to sign - ;; ‘regulatory.bin’. This allows us to avoid managing a key - ;; pair for the whole distribution. - (string-append "REGDB_PRIVKEY=") - ;; Don't generate a public key for the same reason. These are - ;; used as Makefile targets and can't be the empty string. - (string-append "REGDB_PUBCERT=/dev/null") - (string-append "REGDB_PUBKEY=/dev/null"))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'gzip-determinism + (lambda _ + (substitute* "Makefile" + (("gzip") "gzip --no-name")))) + (add-after 'unpack 'omit-signature + (lambda _ + (substitute* "Makefile" + ;; Signing requires a REGDB_PUBCERT and REGDB_PRIVKEY which we + ;; don't provide (see below). Disable it. + ((" regulatory\\.db\\.p7s") "") + ;; regulatory.db is built as a dependency of regulatory.db.p7s, + ;; but ‘make install’ depends only on the latter while + ;; installing both (and failing). Depend on it explicitly. + (("^install: " all) (string-append all "regulatory.db "))))) + (delete 'configure)) ; no configure script + + ;; The 'all' target of the makefile depends on $(REGDB_CHANGED), which + ;; is computed and can be equal to 'maintainer-clean'; when that + ;; happens, we can end up deleting the 'regulatory.bin' file that we + ;; just built. Thus, build things sequentially. + #:parallel-build? #f + + #:tests? #f ; no tests + #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "FIRMWARE_PATH=$(PREFIX)/lib/firmware") + + ;; Leave this empty so that db2bin.py doesn't try to sign + ;; ‘regulatory.bin’. This allows us to avoid managing a key + ;; pair for the whole distribution. + (string-append "REGDB_PRIVKEY=") + ;; Don't generate a public key for the same reason. These are + ;; used as Makefile targets and can't be the empty string. + (string-append "REGDB_PUBCERT=/dev/null") + (string-append "REGDB_PUBKEY=/dev/null")))) (native-inputs - `(("python" ,python-wrapper))) + (list python-wrapper)) (home-page "https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb") (synopsis "Wireless regulatory database") @@ -5039,10 +5103,39 @@ 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 libnvme + (package + (name "libnvme") + (version "1.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/linux-nvme/libnvme.git") + (commit (string-append "v" version)))) + (sha256 + (base32 "1fngj5acp2sl4162xalq5simfasnika6gy0xrbi41x09wikvhn7y")) + (file-name (git-file-name name version)))) + (build-system meson-build-system) + (arguments + (list + #:configure-flags #~(list (format #f "-Dhtmldir=~a/share/doc/~a/html" + #$output #$name) + "-Ddocs-build=true" "-Ddocs=all"))) + (native-inputs (list pkg-config perl python python-sphinx)) + ;; libnvme.pc, libnvme-mi.pc lists these in Requires.private. + (propagated-inputs (list dbus json-c openssl)) + (home-page "https://github.com/linux-nvme/libnvme") + (synopsis "C Library for NVM Express on Linux") + (description "libnvme provides type definitions for NVMe specification +structures, enumerations, and bit fields, helper functions to construct, +dispatch, and decode commands and payloads, and utilities to connect, scan, +and manage nvme devices on a Linux system.") + (license license:lgpl2.1+))) + (define-public nvme-cli (package (name "nvme-cli") - (version "1.16") + (version "2.3") (home-page "https://github.com/linux-nvme/nvme-cli") (source (origin (method git-fetch) @@ -5050,22 +5143,16 @@ Translation (@dfn{SAT}) are also supported.") (url home-page) (commit (string-append "v" version)))) (sha256 - (base32 "130x5cf6kkcnyg5qd35igii249ysfjnbxp1pxfwkickmqg3d007z")) + (base32 "1f3bhxh2kr94s6glzibrmgxxgs66qyabn8plnw5y0v9cpi78b3qs")) (file-name (git-file-name name version)))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - (list #:make-flags - #~(list (string-append "CC=" #$(cc-for-target))) - #:phases - #~(modify-phases %standard-phases - (delete 'configure) ; no ./configure script - (replace 'install - (lambda _ - (invoke "make" "install-spec" "PREFIX=" - (string-append "DESTDIR=" #$output))))) - ;; The tests require sysfs, which is not accessible from from the - ;; build environment. - #:tests? #f)) + (list + #:configure-flags #~(list (format #f "-Dhtmldir=~a/share/doc/~a/html" + #$output #$name) + "-Ddocs=all"))) + (native-inputs (list pkg-config)) + (inputs (list libnvme json-c zlib)) (synopsis "NVM-Express user space tooling for Linux") (description "Nvme-cli is a utility to provide standards compliant tooling for NVM-Express drives. It was made specifically for Linux as it relies on the @@ -5157,7 +5244,7 @@ specified in /etc/acpi/events and execute the rules that match the event.") (sha256 (base32 "12i0ip11xbfcjzxz4r10cvz7mbzgq1hfcdn97w6zz7sm3wndwrg8")))) (build-system gnu-build-system) - (home-page "http://linux-diag.sourceforge.net/Sysfsutils.html") + (home-page "https://linux-diag.sourceforge.net/Sysfsutils.html") (synopsis "System utilities based on Linux sysfs") (description "These are a set of utilities built upon sysfs, a virtual file system in @@ -6584,7 +6671,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.15") + (version "6.16") (source (origin (method git-fetch) (uri (git-reference (url home-page) @@ -6592,27 +6679,32 @@ The collection contains a set of bandwidth and latency benchmark such as: (file-name (git-file-name name version)) (sha256 (base32 - "0i00if7xknpm0dhkrm60rxzyyvq0vdibq7dvsd2ncm9pg098qvwj")))) + "1rsk8nxs0j32b9hr88qk8hv029fb1q0hcrw0mfdywvm7dn2d15gn")) + (patches + (search-patches "rng-tools-revert-build-randstat.patch")) + (patch-flags '("-p0")))) (build-system gnu-build-system) (arguments - `(;; Disable support for various hardware entropy sources as they need - ;; dependencies that are not yet in Guix, and would significantly - ;; increase closure size. - #:configure-flags '("--without-nistbeacon" - "--without-pkcs11" - "--without-rtlsdr") - #:phases - (modify-phases %standard-phases - (add-before 'check 'disable-failing-test - (lambda _ - (substitute* "tests/Makefile" - ;; This test requires a hwrng, rdrand, or tpm device. - ;; Worse, it appears to fail if that isn't sufficiently random. - (("\\brngtestjitter\\.sh\\b") " "))))))) + (list + ;; Disable support for various hardware entropy sources as they need + ;; dependencies that are not yet in Guix, and would significantly + ;; increase closure size. + #:configure-flags #~(list "--without-nistbeacon" + "--without-pkcs11" + "--without-rtlsdr" + "--without-qrypt") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'disable-failing-test + (lambda _ + (substitute* "tests/Makefile" + ;; This test requires a hwrng, rdrand, or tpm device. + ;; Worse, it appears to fail if that isn't sufficiently random. + (("\\brngtestjitter\\.sh\\b") " "))))))) (native-inputs (list autoconf automake pkg-config)) (inputs - (list sysfsutils openssl)) + (list libcap sysfsutils openssl)) (synopsis "Random number generator daemon") (description "Monitor a hardware random number generator, and supply entropy @@ -7170,7 +7262,7 @@ interface to the variable facility of UEFI boot firmware.") (define-public efibootmgr (package (name "efibootmgr") - (version "17") + (version "18") (source (origin (method git-fetch) @@ -7179,16 +7271,7 @@ interface to the variable facility of UEFI boot firmware.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1niicijxg59rsmiw3rsjwy4bvi1n42dynvm01lnp9haixdzdpq03")) - (patches (search-patches "efibootmgr-remove-extra-decl.patch")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Cast the first argument to the correct type. Extracted - ;; from upstream commit e8ce9fecebd15adb4. - (substitute* '("src/efibootdump.c" "src/efibootmgr.c") - (("efidp_format_device_path\\(text_path,") - "efidp_format_device_path((unsigned char *)text_path,")))))) + (base32 "1j19m3dngcb7jl88ib32phbh5r7c02dhhakq8jk6z7y408c111hd")))) (build-system gnu-build-system) (arguments (list @@ -7203,12 +7286,12 @@ interface to the variable facility of UEFI boot firmware.") ;; nothing else is specified on the command line. "EFIDIR=gnu") #$(if (%current-target-system) - #~(list - (string-append "CC=" #$(cc-for-target)) - (string-append "PKG_CONFIG=" #$(pkg-config-for-target)) - (string-append "EXTRAINCDIRS=" - #$(this-package-input "efivar") "/include")) - #~'())) + #~(list + (string-append "CC=" #$(cc-for-target)) + (string-append "PKG_CONFIG=" #$(pkg-config-for-target)) + (string-append "EXTRAINCDIRS=" + #$(this-package-input "efivar") "/include")) + #~'())) #:phases #~(modify-phases %standard-phases (delete 'configure)))) (native-inputs (list pkg-config)) @@ -7517,7 +7600,7 @@ every time the power supply source is changed.") (define-public tlpui (package (name "tlpui") - (version "1.5.0-1") + (version "1.5.0-6") (source (origin (method git-fetch) @@ -7526,7 +7609,7 @@ every time the power supply source is changed.") (commit (string-append "tlpui-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16a6x733szsggn23ns7bj3gpvb80675plh96v4llrz0s8p3h47pg")))) + (base32 "0zxiciafq1xmb047jlyhipkkj4vaiw4jzbx71f6xgx559dy96paq")))) (build-system python-build-system) (arguments (list @@ -7537,16 +7620,31 @@ every time the power supply source is changed.") (lambda _ (substitute* "setup.py" (("/usr/") "")))) - (add-after 'unpack 'use-tlp-input - ;; Hard-code tlp-stat filename to avoid propagating "tlp". + (add-after 'unpack 'set-absolute-locations (lambda* (#:key inputs #:allow-other-keys) - (let ((tlp-stat (search-input-file inputs "/bin/tlp-stat"))) + (let ((defaults.conf + (search-input-file inputs "/share/tlp/defaults.conf")) + (lspci (search-input-file inputs "/sbin/lspci")) + (lsusb (search-input-file inputs "/bin/lsusb")) + (tlp-stat (search-input-file inputs "/bin/tlp-stat"))) (with-directory-excursion "tlpui" (substitute* '("file.py" "settingshelper.py" "statui.py") - (("which\\(\"tlp-stat\"\\)") - (string-append "'" tlp-stat "'")) (("\"tlp-stat\"") - (string-append "'" tlp-stat "'"))))))) + (string-append "'" tlp-stat "'")) + (("/usr/share/tlp/defaults.conf") + (string-append "'" defaults.conf "'"))) + (substitute* "ui_config_objects/gtkusblist.py" + (("\"lsusb\"") + (string-append "'" lsusb "'"))) + (substitute* "ui_config_objects/gtkpcilist.py" + (("\"lspci\"") + (string-append "'" lspci "'"))) + ;; Settings check if various tlp executables, lspci and + ;; usbutils are available. Skip this phase since we know + ;; for sure they are (and it avoids patching each location). + (substitute* "settingshelper.py" + (("(command_exists = ).*" _ lead) + (string-append lead "True\n"))))))) (add-before 'check 'fix-home-directory (lambda _ ;; Tests fail with "Permission denied: @@ -7557,6 +7655,13 @@ every time the power supply source is changed.") ;; Connection refused" and "Error: cannot read user ;; configuration from /etc/tlp.conf or /etc/default/tlp". (delete 'sanity-check) + ;; Skip two failing tests (out of 10) about configuration file + ;; issues. + (add-before 'check 'skip-failing-tests + (lambda _ + (substitute* "test/test_tlp_settings.py" + ((".*?windowxsize = 900.*") "") + ((".*?windowysize = 600.*") "")))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -7569,7 +7674,7 @@ every time the power supply source is changed.") (native-inputs (list `(,glib "bin") gobject-introspection python-discover)) (inputs - (list gtk+ python-pygobject tlp)) + (list gtk+ pciutils python-pygobject tlp usbutils)) (home-page "https://github.com/d4nj1/TLPUI") (synopsis "User interface for TLP written in Python") (description @@ -8210,7 +8315,7 @@ available in the kernel Linux.") (assoc-ref outputs "out")))))))) (inputs (list perl)) (supported-systems '("i686-linux" "x86_64-linux")) - (home-page "http://www.etallen.com/cpuid.html") + (home-page "https://www.etallen.com/cpuid.html") (synopsis "Dump x86 CPUID processor information") (description "cpuid dumps detailed information about the CPU(s) gathered from the CPUID instruction, and also determines the exact model of CPU(s). It @@ -8577,25 +8682,23 @@ privileges.") "062hg4r6gz7pla9df70nqs5i2a3mp1wszmp4l0g771fykhhrxsjg")))) (build-system gnu-build-system) (arguments - '(#:make-flags - `(,(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) - #:tests? #f - #:phases (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'patch-Makefiles - (lambda _ - (substitute* "Makefile" - (("/lib64") "/lib") - (("/usr") "")) - (substitute* "compat/Makefile" - (("/lib64") "/lib") - (("/usr") "")) - #t)) - (replace 'install - (lambda _ - (setenv "DESTDIR" %output) - (invoke "make" "install") - #t))))) + (list #:make-flags + #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")) + #:tests? #f + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-Makefiles + (lambda _ + (substitute* "Makefile" + (("/lib64") "/lib") + (("/usr") "")) + (substitute* "compat/Makefile" + (("/lib64") "/lib") + (("/usr") "")))) + (replace 'install + (lambda _ + (setenv "DESTDIR" #$output) + (invoke "make" "install")))))) (inputs (list rdma-core numactl)) (synopsis "Intel Performance Scaled Messaging 2 (PSM2) library") @@ -8654,7 +8757,7 @@ the OS-specific data structures needed by the kernel to setup the event. libpfm4 provides support for the @code{perf_events} interface, which was introduced in Linux 2.6.31.") - (home-page "http://perfmon2.sourceforge.net/") + (home-page "https://perfmon2.sourceforge.net/") (license license:expat))) (define-public libnfnetlink @@ -9151,7 +9254,7 @@ tools for managing PipeWire.") (define-public ell (package (name "ell") - (version "0.54") + (version "0.56") (source (origin (method git-fetch) (uri (git-reference @@ -9160,7 +9263,7 @@ tools for managing PipeWire.") (file-name (git-file-name name version)) (sha256 (base32 - "1vsv5ibiyli1cvk32l5avms6ngv6i0jxxqd5vw5kbfcp6ph94brs")))) + "084mc9377k2a61wyqnfnsgfrdvv1rinn9wzw8l8crip0hlikn938")))) (build-system gnu-build-system) (arguments ;; Tests launch dbus-daemon instances that all try to bind to @@ -9532,7 +9635,7 @@ provides user-space tools for creating EROFS file systems.") (define-public rasdaemon (package (name "rasdaemon") - (version "0.7.0") + (version "0.8.0") (source (origin (method git-fetch) @@ -9541,9 +9644,9 @@ provides user-space tools for creating EROFS file systems.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1a3ycx1g2zyshlna9fg8c9329m8wia42vkmlh2awfab0ngwi3g50")))) - (native-inputs (list autoconf automake libtool)) - (inputs (list perl perl-dbd-sqlite sqlite dmidecode kmod)) + (base32 "0m3j1hz9rqcvwmrimpakd239s0ppzaplkykhf9wyh55xmmry8z85")))) + (native-inputs (list autoconf automake libtool pkg-config)) + (inputs (list libtraceevent perl perl-dbd-sqlite sqlite dmidecode kmod)) (arguments (list #:configure-flags @@ -9553,27 +9656,25 @@ provides user-space tools for creating EROFS file systems.") "--localstatedir=/var") #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'rename-README + (lambda _ + ;; Required by autoreconf + (rename-file "README.md" "README"))) (add-before 'configure 'munge-autotools (lambda _ ;; For some reason upstream forces sysconfdir=/etc. This results ;; in EPERM during the install phase. Removing the offending ;; line lets sysconfdir correctly pick up DESTDIR. (substitute* "configure.ac" - (("^test .* sysconfdir=/etc\n$") "")) - ;; Upstream tries to create /var/lib/rasdaemon at install time. - ;; This results in EPERM on guix. Instead, the service should - ;; create this at activation time. - (substitute* "Makefile.am" - (("^\\s*\\$\\(install_sh\\) -d .*@RASSTATEDIR@.*$") "")))) - (add-after 'install 'fix-dmidecode-and-modprobe - (lambda _ - (substitute* (string-append #$output "/sbin/ras-mc-ctl") - (("find_prog \\(\"dmidecode\"\\).*$") (format #f "~s;~%" (string-append #$dmidecode "/sbin/dmidecode"))) - (("find_prog \\(\"modprobe\"\\).*$") (format #f "~s;~%" (string-append #$kmod "/bin/modprobe")))))) + (("^test .* sysconfdir=/etc\n$") "")))) (add-after 'wrap 'wrap-rasdaemon - (lambda _ - (wrap-program (string-append #$output "/sbin/ras-mc-ctl") - `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:)))))))) + (lambda* (#:key inputs #:allow-other-keys) + (let ((path (map dirname + (list (search-input-file inputs "/sbin/dmidecode") + (search-input-file inputs "/bin/modprobe"))))) + (wrap-program (string-append #$output "/sbin/ras-mc-ctl") + `("PATH" ":" prefix ,path) + `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:))))))))) (build-system gnu-build-system) (home-page "https://github.com/mchehab/rasdaemon") (synopsis "Platform Reliability, Availability, and Serviceability tools") @@ -9620,6 +9721,45 @@ older system-wide @file{/sys} interface.") license:gpl2+ ;; gpio-tools license:lgpl3+)))) ;; C++ bindings +(define-public libtraceevent + (package + (name "libtraceevent") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git") + (commit (string-append name "-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kbl11lqh8cadi6r3qqxx68idr7597l6i50pr5p5mdgsf6k2i83c")) + (modules '((guix build utils))) + (snippet + #~(begin + (substitute* "Makefile" + (("/bin/pwd") "pwd")) + (substitute* "scripts/utils.mk" + (("/bin/pwd") "pwd")))))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:make-flags + #~(list + (string-append "pkgconfig_dir=" #$output "/lib/pkgconfig") + (string-append "prefix=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/") + (synopsis "Linux kernel trace event library") + (description "This package provides library to parse raw trace event +formats.") + (license (list license:gpl2 + license:lgpl2.1)))) + (define-public libtree (package (name "libtree") @@ -9659,6 +9799,42 @@ older system-wide @file{/sys} interface.") libraries are found or why they cannot be located.") (license license:expat))) +(define-public libevdi + (package + (name "libevdi") + (version "1.12.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DisplayLink/evdi") + (commit "bdc258b25df4d00f222fde0e3c5003bf88ef17b5"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yi7mbyvxm9lsx6i1xbwp2bihwgzhwxkydk1kbngw5a5kw9azpws")))) + (build-system gnu-build-system) + (inputs (list libdrm)) + (arguments + (list #:tests? #f ;no test suite + #:make-flags #~'("CC=gcc") + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'chdir + (lambda _ + (chdir "library"))) + (replace 'install + (lambda* _ + (let* ((lib (string-append #$output "/lib"))) + (mkdir-p lib) + (install-file "libevdi.so" lib))))))) + (home-page "https://github.com/DisplayLink/evdi") + (synopsis "User-space EVDI library") + (description + "Libevdi is a library that gives applications easy access to +@acronym{EVDI, Extensible Virtual Display Interface} devices on +various operating systems.") + (license license:lgpl2.1))) + (define-public touchegg (package (name "touchegg") |