diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 616 |
1 files changed, 308 insertions, 308 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2f3ff5ffe6..8ec1adbed2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -30,12 +30,11 @@ ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018, 2020 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2018 Manuel Graf <graf@init.at> -;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; 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> ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com> @@ -221,18 +220,8 @@ defconfig. Return the appropriate make target if applicable, otherwise return (file-name (string-append "linux-libre-deblob-check-" version "-" gnu-revision)) (sha256 deblob-check-hash)))) -(define* (computed-origin-method gexp-promise hash-algo hash - #:optional (name "source") - #:key (system (%current-system)) - (guile (default-guile))) - "Return a derivation that executes the G-expression that results -from forcing GEXP-PROMISE." - (mlet %store-monad ((guile (package->derivation guile system))) - (gexp->derivation (or name "computed-origin") - (force gexp-promise) - #:graft? #f ;nothing to graft - #:system system - #:guile-for-build guile))) +;; XXXX: Workaround 'snippet' limitations +(define computed-origin-method (@@ (guix packages) computed-origin-method)) (define (make-linux-libre-source version upstream-source @@ -362,55 +351,40 @@ 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.14-version "5.14.4") +(define-public linux-libre-5.14-version "5.14.11") (define-public linux-libre-5.14-gnu-revision "gnu") (define deblob-scripts-5.14 (linux-libre-deblob-scripts linux-libre-5.14-version linux-libre-5.14-gnu-revision (base32 "00vv2a51cvw2nx8iazmiy9i4h3jj9gvvpwz9gxp2v1hcmrsxq935") - (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) + (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.14-pristine-source (let ((version linux-libre-5.14-version) - (hash (base32 "1dijf7qsjlqx893c2sxg5jrjdm8v1nv4hicvqlmp1v92s3h7kqj2"))) + (hash (base32 "0capilz3wx29pw7n2m5cn229vy9psrccmdspp27znhjkvwj0m0wk"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.14))) -(define-public linux-libre-5.13-version "5.13.17") -(define-public linux-libre-5.13-gnu-revision "gnu1") -(define deblob-scripts-5.13 - (linux-libre-deblob-scripts - linux-libre-5.13-version - linux-libre-5.13-gnu-revision - (base32 "0hj3w3vh1rj24xgl4v72mr6vaz1qzsnc5xzdfjga1zy84bw8lhkp") - (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) -(define-public linux-libre-5.13-pristine-source - (let ((version linux-libre-5.13-version) - (hash (base32 "06qa3c8wx87l4mh9h8gjcra5k5l6bcirs59s7baxdfjkxlihvrsa"))) - (make-linux-libre-source version - (%upstream-linux-source version hash) - deblob-scripts-5.13))) - ;; 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.65") +(define-public linux-libre-5.10-version "5.10.72") (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 "19d1pdsilq1ycnx1zw3vhf9mwdxbi5nmgzm0g1kj1lkkf1y4i1mv") - (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) + (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "0riyq1gdm18642fpnhpcw8hspcjqzprzhqnygjxabjjvrvdxxlzd"))) + (hash (base32 "0z2cp8gqnbv7iz8kb5ydfmk019m0gds8wwvwc6kccsk4wypkbmml"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.146") +(define-public linux-libre-5.4-version "5.4.152") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -420,12 +394,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1bjkfk24j86akm6df3c5b28viyq363drhssml7rcrl69286f92dk"))) + (hash (base32 "1may19d47d06mplpk29dpjsq31sxk8wwbwb2jspj3vay9h9wfi40"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.206") +(define-public linux-libre-4.19-version "4.19.210") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -435,12 +409,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "1h44lvzxd0cngj71bk8qba9dz7jlqj68ir6xjwfafglb81ppgsxp"))) + (hash (base32 "0cv126j4sghwgzjm9p5l1brcnxkbgggja2ai37gl8m2s99cj59wv"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.246") +(define-public linux-libre-4.14-version "4.14.250") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -450,12 +424,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "0fpgig84shpas1jc0h4s3aw9brkcq1as84gjbk4bfhc48bpi4mlw"))) + (hash (base32 "0zbf6gxm8iwf7cra310gfd0zyj8l9ckdahky9w6wb9wlznwkvd54"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.282") +(define-public linux-libre-4.9-version "4.9.286") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts @@ -465,12 +439,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "059fin4si93ya13xy831w84q496ksxidpd3kyw38918sfy4p6wk7"))) + (hash (base32 "0id62p43dmkl9ir278p0dsfg3q7m1d8rlxv0c9qi1pzalkygv8p2"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.283") +(define-public linux-libre-4.4-version "4.4.288") (define-public linux-libre-4.4-gnu-revision "gnu1") (define deblob-scripts-4.4 (linux-libre-deblob-scripts @@ -480,7 +454,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "1d9v4h4cbc4i371lhhwpxbmg88gna6xyi2ahfvv0clz60802y982"))) + (hash (base32 "028w3yzmzymy7l1nf3n1pfbg95hfi4ilphkyl00ddgj8sfm542c7"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -521,14 +495,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (search-patch "linux-libre-arm64-generic-pinebook-lcd.patch")))) -(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.10-source (source-with-patches linux-libre-5.10-pristine-source (list %boot-logo-patch @@ -644,11 +610,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." linux-libre-5.14-gnu-revision linux-libre-5.14-source)) -(define-public linux-libre-headers-5.13 - (make-linux-libre-headers* linux-libre-5.13-version - linux-libre-5.13-gnu-revision - linux-libre-5.13-source)) - (define-public linux-libre-headers-5.10 (make-linux-libre-headers* linux-libre-5.10-version linux-libre-5.10-gnu-revision @@ -957,18 +918,11 @@ It has been modified to remove all non-free binary blobs.") '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux") #:configuration-file kernel-config)) -(define-public linux-libre-5.13 - (make-linux-libre* linux-libre-5.13-version - linux-libre-5.13-gnu-revision - linux-libre-5.13-source - '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux") - #:configuration-file kernel-config)) - -(define-public linux-libre-version linux-libre-5.13-version) -(define-public linux-libre-gnu-revision linux-libre-5.13-gnu-revision) -(define-public linux-libre-pristine-source linux-libre-5.13-pristine-source) -(define-public linux-libre-source linux-libre-5.13-source) -(define-public linux-libre linux-libre-5.13) +(define-public linux-libre-version linux-libre-5.14-version) +(define-public linux-libre-gnu-revision linux-libre-5.14-gnu-revision) +(define-public linux-libre-pristine-source linux-libre-5.14-pristine-source) +(define-public linux-libre-source linux-libre-5.14-source) +(define-public linux-libre linux-libre-5.14) (define-public linux-libre-5.10 (make-linux-libre* linux-libre-5.10-version @@ -1202,9 +1156,9 @@ 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-5.13-version - linux-libre-5.13-gnu-revision - linux-libre-5.13-source + linux-libre-5.14-version + linux-libre-5.14-gnu-revision + linux-libre-5.14-source '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux") #:extra-version "bpf" @@ -1383,52 +1337,6 @@ 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 "b8167e66b4ac046b3b76c2c40008d84528e91594") - (revision "5")) - (package - (name "rtl8812au-aircrack-ng-linux-module") - (version (git-version "5.6.4.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/aircrack-ng/rtl8812au") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1940f2yz5c4q2fhcd91zfzl32fhdsgr297vzamm7nd8kdk0gymi2")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Remove bundled tarballs, APKs, word lists, speadsheets, - ;; and other unnecessary unlicenced things. - (for-each delete-file-recursively (list "android" - "docs" - "tools")) - #t)))) - (build-system linux-module-build-system) - (arguments - `(#:make-flags - (list (string-append "KSRC=" - (assoc-ref %build-inputs "linux-module-builder") - "/lib/modules/build")) - #:phases - (modify-phases %standard-phases - (replace 'build - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (apply invoke "make" make-flags)))) - #:tests? #f)) ; no test suite - (supported-systems '("x86_64-linux" "i686-linux")) - (home-page "https://github.com/aircrack-ng/rtl8812au") - (synopsis "Linux driver for Realtek USB wireless network adapters") - (description - "This is Realtek's rtl8812au Linux driver for USB 802.11n wireless -network adapters, modified by the aircrack-ng project to support monitor mode -and frame injection. It provides a @code{88XXau} kernel module that supports -RTL8812AU, RTL8821AU, and RTL8814AU chips.") - (license license:gpl2+)))) - (define-public rtl8821ce-linux-module (let ((commit "897e7c4c15dd5a0a569745dc223d969a26ff5bfc") (revision "3")) @@ -1448,15 +1356,20 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.") (build-system linux-module-build-system) (arguments `(#:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) (string-append "KSRC=" (assoc-ref %build-inputs "linux-module-builder") "/lib/modules/build")) #:phases (modify-phases %standard-phases (replace 'build - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (apply invoke "make" make-flags)))) + (lambda* (#:key (make-flags '()) (parallel-build? #t) + #:allow-other-keys) + (apply invoke "make" + `(,@(if parallel-build? + `("-j" ,(number->string (parallel-job-count))) + '()) + ,@make-flags))))) #:tests? #f)) ; no test suite (home-page "https://github.com/tomaspinho/rtl8821ce") (synopsis "Linux driver for Realtek RTL8821CE wireless network adapters") @@ -1464,6 +1377,40 @@ RTL8812AU, RTL8821AU, and RTL8814AU chips.") network adapters.") (license license:gpl2)))) +(define-public rtl8812au-aircrack-ng-linux-module + (let ((commit "b8167e66b4ac046b3b76c2c40008d84528e91594") + (revision "5")) + (package + (inherit rtl8821ce-linux-module) + (name "rtl8812au-aircrack-ng-linux-module") + (version (git-version "5.6.4.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aircrack-ng/rtl8812au") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1940f2yz5c4q2fhcd91zfzl32fhdsgr297vzamm7nd8kdk0gymi2")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled tarballs, APKs, word lists, speadsheets, + ;; and other unnecessary unlicenced things. + (for-each delete-file-recursively (list "android" + "docs" + "tools")))))) + (supported-systems '("x86_64-linux" "i686-linux")) + (home-page "https://github.com/aircrack-ng/rtl8812au") + (synopsis "Linux driver for Realtek USB wireless network adapters") + (description + "This is Realtek's rtl8812au Linux driver for USB 802.11n wireless +network adapters, modified by the aircrack-ng project to support monitor mode +and frame injection. It provides a @code{88XXau} kernel module that supports +RTL8812AU, RTL8821AU, and RTL8814AU chips.") + (license license:gpl2+)))) + (define-public vhba-module (package (name "vhba-module") @@ -3037,37 +2984,21 @@ Linux-based operating systems.") (define-public bridge-utils (package (name "bridge-utils") - (version "1.7") + (version "1.7.1") (source (origin (method url-fetch) - (uri (string-append "mirror://kernel.org/linux/kernel/people/shemminger/" + (uri (string-append "mirror://kernel.org/linux/utils/net/" "bridge-utils/bridge-utils-" version ".tar.xz")) (sha256 - (base32 "0zlrigizac2nfwgvksm92v4wafrpgxlbci3gwimc795ib7k8g6ck")))) + (base32 "03p6cmhm6cqhnfsfa1wv7frhb361y12daf7gr1h5qh51y7j8n7d6")))) (build-system gnu-build-system) ;; The tarball lacks all the generated files. (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'bootstrap 'patch-stuff - (lambda _ - ;; Fix "field ‘ip6’ has incomplete type" errors. - (substitute* "libbridge/libbridge.h" - (("#include <linux/if_bridge.h>") - "#include <linux/in6.h>\n#include <linux/if_bridge.h>")) - - ;; Ensure that the entire build fails if one of the - ;; sub-Makefiles fails. - (substitute* "Makefile.in" - (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;") - "$(MAKE) $(MFLAGS) -C $$x || exit 1;")) - - #t))) - #:tests? #f)) ; no 'check' target + '(#:tests? #f)) ; no 'check' target (home-page "https://wiki.linuxfoundation.org/networking/bridge") (synopsis "Manipulate Ethernet bridges") @@ -3441,7 +3372,7 @@ user-space processes.") (define-public unionfs-fuse (package (name "unionfs-fuse") - (version "2.1") + (version "2.2") (source (origin (method git-fetch) (uri (git-reference @@ -3450,7 +3381,7 @@ user-space processes.") (file-name (git-file-name name version)) (sha256 (base32 - "0bwx70x834qgqh53vqp18bhbxbsny80hz922rbgj8k9wj7cbfilm")))) + "1yigh8z1q6iq6yjyq7kl7vpbpjnxjld32apvjaw2bl44pqqg56hh")))) (build-system cmake-build-system) (native-inputs `(("python" ,python))) @@ -4830,7 +4761,7 @@ Translation (@dfn{SAT}) are also supported.") (define-public nvme-cli (package (name "nvme-cli") - (version "1.14") + (version "1.15") (home-page "https://github.com/linux-nvme/nvme-cli") (source (origin (method git-fetch) @@ -4838,7 +4769,7 @@ Translation (@dfn{SAT}) are also supported.") (url home-page) (commit (string-append "v" version)))) (sha256 - (base32 "0dpadz945482srqpsbfx1bh7rc499fgpyzz1flhk9g9xjbpapkzc")) + (base32 "0qr1wa163cb7z6g083nl3zcc28mmlbxh1m97pd54bp3gyrhmdhhr")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -5547,7 +5478,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "5.14") + (version "5.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -5555,7 +5486,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "0mwxhwws6scjjpfws5xp7988wwwfa46jp5y3kn6jjmjpxiqm85da")))) + "0ny5z3x8rqin0aci9qxpjc6dk5y0c1yvgk7353qnv92wai396jnm")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" @@ -5566,8 +5497,7 @@ and copy/paste text in the console and in xterm.") (substitute* "Makefile" (("\\$\\(DESTDIR\\)\\$\\(udevruledir\\)") (string-append (assoc-ref outputs "out") - "/lib/udev/rules.d"))) - #t)) + "/lib/udev/rules.d"))))) (add-after 'build 'build-static (lambda _ (invoke "make" "static"))) (add-after 'install 'install-bash-completion @@ -5576,8 +5506,7 @@ and copy/paste text in the console and in xterm.") (bashcomp (string-append out "/etc/bash_completion.d"))) (mkdir-p bashcomp) (copy-file "btrfs-completion" - (string-append bashcomp "/btrfs")) - #t))) + (string-append bashcomp "/btrfs"))))) (add-after 'install 'install-static (let ((staticbin (string-append (assoc-ref %outputs "static") "/bin"))) @@ -6105,15 +6034,14 @@ invocations of itself.") (define-public ntfs-3g (package (name "ntfs-3g") - (version "2017.3.23") + (version "2021.8.22") (source (origin (method url-fetch) (uri (string-append "https://tuxera.com/opensource/" "ntfs-3g_ntfsprogs-" version ".tgz")) - (patches (search-patches "ntfs-3g-CVE-2019-9755.patch")) (sha256 (base32 - "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy")) + "1yrf42xr92qv3pads8lzp5nyssz6875ncfgg8v3jwjyr0nm87f2m")) (modules '((guix build utils))) (snippet '(begin ;; Install under $prefix. @@ -6122,8 +6050,8 @@ invocations of itself.") "@sbindir@")) #t)))) (build-system gnu-build-system) - (inputs `(("util-linux" ,util-linux) - ("fuse" ,fuse))) ;libuuid + (inputs `(("util-linux" ,util-linux) ; libuuid + ("fuse" ,fuse))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments '(#:configure-flags (list "--disable-static" @@ -6269,7 +6197,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.13") + (version "6.14") (source (origin (method git-fetch) (uri (git-reference (url home-page) @@ -6277,7 +6205,7 @@ The collection contains a set of bandwidth and latency benchmark such as: (file-name (git-file-name name version)) (sha256 (base32 - "0m4895f44a668r0z7md5ifq7syndsb2by2dfhk794vmhprsk1406")))) + "1hrbm4y7fbzkg5j2f7vpj19ri2ff2lp77al17fhi4mv0bvdfjd9m")))) (build-system gnu-build-system) (arguments `(;; Disable support for various hardware entropy sources as they need @@ -6378,7 +6306,7 @@ cpufreq sub-system is enabled or not.") (define-public haveged (package (name "haveged") - (version "1.9.14") + (version "1.9.15") (source (origin (method git-fetch) @@ -6387,8 +6315,11 @@ cpufreq sub-system is enabled or not.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "050hmnh5s2s4mb83f4d1fk23mk27pprg840c1aagc6v1sz6x5dhq")))) + (base32 "1zb790adsmqq3r26zlaxfrk2hpgxjcjz8l73hn3hli3l3javykvd")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--disable-static"))) (home-page "https://www.issihosts.com/haveged") (synopsis "Entropy source for the Linux random number generator") (description @@ -6630,7 +6561,7 @@ of flash storage.") (define-public libseccomp (package (name "libseccomp") - (version "2.5.1") + (version "2.5.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/seccomp/libseccomp/" @@ -6638,7 +6569,7 @@ of flash storage.") "/libseccomp-" version ".tar.gz")) (sha256 (base32 - "0m8dlg1v7kflcxvajs4p76p275qwsm2abbf5mfapkakp7hw7wc7f")))) + "1pw7rd4gwqpmraipgdqkdkhnx4ql35wrn3lnjgl6pncinkgm59hp")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static") @@ -6647,8 +6578,7 @@ of flash storage.") (lambda _ ;; This test does a native system call and fails when ;; run under QEMU user-mode emulation. Just skip it. - (delete-file "tests/52-basic-load.tests") - #t))))) + (delete-file "tests/52-basic-load.tests")))))) (native-inputs `(("gperf" ,gperf) ("which" ,which))) @@ -6923,7 +6853,7 @@ interface in sysfs, which can be accomplished with the included udev rules.") (define-public tlp (package (name "tlp") - (version "1.3.1") + (version "1.4.0") (source (origin (method git-fetch) @@ -6932,7 +6862,7 @@ interface in sysfs, which can be accomplished with the included udev rules.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "14fcnaz9pw534v4d8dddqq4wcvpf1kghr8zlrk62r5lrl46sp1p5")))) + (base32 "0bnsz9bw9rj1apl80jwz39zj5mnlps3jbckihvl8bbdbrbhj6p06")))) (native-inputs `(("shellcheck" ,shellcheck))) (inputs @@ -6976,6 +6906,7 @@ interface in sysfs, which can be accomplished with the included udev rules.") (setenv "TLP_NO_INIT" "1") (setenv "TLP_NO_PMUTILS" "1") (setenv "TLP_SBIN" (string-append out "/bin")) + (setenv "TLP_BATD" (string-append out "/share/tlp/bat.d")) (setenv "TLP_BIN" (string-append out "/bin")) (setenv "TLP_TLIB" (string-append out "/share/tlp")) (setenv "TLP_FLIB" (string-append out "/share/tlp/func.d")) @@ -6983,6 +6914,8 @@ interface in sysfs, which can be accomplished with the included udev rules.") (setenv "TLP_CONFDEF" (string-append out "/share/tlp/defaults.conf")) (setenv "TLP_CONFDIR" (string-append out "/etc/tlp.d")) + (setenv "TLP_CONFREN" + (string-append out "/share/tlp/rename.conf")) (setenv "TLP_ELOD" (string-append out "/lib/elogind/system-sleep")) (setenv "TLP_SHCPL" @@ -7154,143 +7087,141 @@ userspace queueing component and the logging subsystem.") (license license:gpl2))) (define-public proot - (package - (name "proot") - ;; 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) - (uri (git-reference - (url "https://github.com/proot-me/PRoot") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (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 - ;; 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 - (add-after 'unpack 'patch-sources - (lambda* (#:key inputs #:allow-other-keys) - (substitute* (find-files "src" "\\.[ch]$") - (("\"/bin/sh\"") - (string-append "\"" (assoc-ref inputs "bash") - "/bin/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") ":")) - ;; Likewise for /bin. - (("-b /bin:") "-b /gnu:") - ;; Others try to run /bin/sh. - (("/bin/sh") (which "sh")) - ;; Others assume /etc/fstab exists. - (("/etc/fstab") "/etc/passwd")) - (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 "test/test-kkkkkkkk.c") - - ;; The socket tests requires networking. - (for-each delete-file - (find-files "test" "test-socket.*\\.sh$")))) - (delete 'configure) - (add-after 'build 'build-manpage - (lambda _ - (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. - (let* ((out (assoc-ref outputs "out")) - (man1 (string-append out "/share/man/man1"))) - ;; TODO: 'make install-care' (does not even - ;; 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")))))))) - (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 - ;; (see: https://github.com/proot-me/proot/issues/262). - ("coreutils-old" ,coreutils-8.30) - ("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 - "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind}, + (let ((revision "0") + (commit "a70023ab3db47d011265451b99a1abef7b9d7afc")) + (package + (name "proot") + ;; The last stable release was made in 2015, and fails to build for the + ;; aarch64 platform. Use the latest commit, which includes fixes for + ;; the supported ARM architectures and the test suite, among others. + (version (git-version "5.2.0-alpha" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/proot-me/PRoot") + (commit (string-append commit)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kmry3rb967phxnxjfnx310gy1d4gpmjd6fp3hbm9v9jciysxy4z")))) + (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 + ;; Disable the test suite on armhf-linux, as there are too many + ;; failures to keep track of (see for example: + ;; https://github.com/proot-me/proot/issues/286). + `(#:tests? ,(not (string-prefix? "armhf" + (or (%current-target-system) + (%current-system)))) + #:make-flags '("-C" "src") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-sources + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "src" "\\.[ch]$") + (("\"/bin/sh\"") + (string-append "\"" (assoc-ref inputs "bash") + "/bin/sh\""))) + + (substitute* "src/GNUmakefile" + (("/bin/echo") (which "echo")) + (("^VERSION = .*") + (string-append "VERSION := " ,version "\n"))) + + (substitute* (find-files "test" "\\.sh$") + ;; Some of the tests try to "bind-mount" /bin/true. + (("-b /bin/true:") + (string-append "-b " (which "true") ":")) + ;; Likewise for /bin. + (("-b /bin:") "-b /gnu:") + ;; Others try to run /bin/sh. + (("/bin/sh") (which "sh")) + ;; Others assume /etc/fstab exists. + (("/etc/fstab") "/etc/passwd")) + (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") + (delete-file "test/test-cdd39012.sh") + (delete-file "test/test-d92b57ca.sh") + + ;; 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 "test/test-kkkkkkkk.c") + + ;; This one requires Docker. + (delete-file "test/test-docker.sh") + + ;; The socket tests requires networking. + (for-each delete-file + (find-files "test" "test-socket.*\\.sh$")))) + (delete 'configure) + (add-after 'build 'build-manpage + (lambda _ + (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))) + ;; 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. + (let* ((out (assoc-ref outputs "out")) + (man1 (string-append out "/share/man/man1"))) + ;; TODO: 'make install-care' (does not even + ;; 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")))))))) + (native-inputs `(("which" ,which) + ;; For 'mcookie', used by some of the tests. + ("util-linux" ,util-linux) + ("coreutils" ,coreutils) + ("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 + "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 file system, making files accessible somewhere else in the file system @@ -7299,7 +7230,7 @@ transparently through QEMU user-mode. Also, developers can use PRoot as a generic process instrumentation engine thanks to its extension mechanism. Technically PRoot relies on @code{ptrace}, an unprivileged system-call available in the kernel Linux.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public proot-static (package @@ -7834,8 +7765,24 @@ IP addresses and routes, and configure IPsec.") (base32 "0dqf5j2sw4hq68rqvxbrsf44ygfzx9ypiyzipk4cvp9aimbvsbc6")))) (build-system meson-build-system) + ;; Install static libraries for use by the initrd's xfsprogs/static. + (outputs (list "out" "static")) (arguments - '(#:configure-flags '("-Ddistro_install=true" "-Ddefault_library=shared"))) + `(#:configure-flags + (list "-Ddistro_install=true" + "-Ddefault_library=both") + #:phases + (modify-phases %standard-phases + (add-after 'install 'separate-static + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (with-directory-excursion out + (for-each (lambda (source) + (let ((target (string-append static "/" source))) + (mkdir-p (dirname target)) + (rename-file source target))) + (find-files "lib" "\\.a$"))))))))) (home-page "https://github.com/benhoyt/inih") (synopsis "Simple .INI parser library for C") (description "The inih (INI Not Invented Here) library is a simple .INI file @@ -7861,6 +7808,8 @@ compatible with Python's ConfigParser style of .INI files, including RFC (outputs (list "out" "python")) (arguments `(#:tests? #f ; kernel/user integration tests are in package "xfstests" + #:make-flags + (list "V=1") #:phases (modify-phases %standard-phases (add-after 'install 'separate-python-output @@ -7874,8 +7823,8 @@ compatible with Python's ConfigParser style of .INI files, including RFC (string-append python script))) (list "/sbin/xfs_scrub_all"))))) (add-after 'install 'install-headers - (lambda _ - (invoke "make" "install-dev")))))) + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "install-dev" make-flags)))))) (native-inputs `(("gettext" ,gettext-minimal))) (inputs @@ -7890,6 +7839,57 @@ file systems.") ;; licensed under lgpl2.1. the other stuff is licensed under gpl2. (license (list license:gpl2 license:lgpl2.1)))) +(define-public xfsprogs/static + (package + (inherit xfsprogs) + (name "xfsprogs-static") + (outputs (list "out")) + (arguments + (substitute-keyword-arguments (package-arguments xfsprogs) + ((#:make-flags make-flags ''()) + `(cons* "LLDFLAGS=-all-static" ,make-flags)) + ((#:phases _ ''()) + `(modify-phases %standard-phases + (add-after 'install 'delete-useless-files + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively + (list "include" "lib"))))))))) + (inputs + `(("libinih:static" ,libinih "static") + ("util-linux:static" ,util-linux "static") + ,@(remove (match-lambda + ((label . _) + (member label '("python")))) + (package-inputs xfsprogs)))) + (synopsis "Statically linked XFS file system tools"))) + +(define-public xfs_repair/static + (package + (name "xfs_repair-static") + (version (package-version xfsprogs/static)) + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((xfsprogs (assoc-ref %build-inputs "xfsprogs")) + (out (assoc-ref %outputs "out")) + (sbin (string-append out "/sbin"))) + (install-file (string-append xfsprogs "/sbin/xfs_repair") sbin) + (with-directory-excursion sbin + (remove-store-references "xfs_repair")))))) + (inputs + `(("xfsprogs" ,xfsprogs/static))) + (home-page (package-home-page xfsprogs/static)) + (synopsis "Statically linked @command{xfs_repair} from xfsprogs") + (description + "This package provides a statically linked @command{xfs_repair} taken +from the xfsprogs package. It is meant to be used in initrds.") + (license (package-license xfsprogs/static)))) + (define-public genext2fs (package (name "genext2fs") |