X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/4ca80a2b95bdcc4034c4189b8d43a63d094ef3bd..3b5b14d381e3817dbc30bc2ef882c9c0bfc2a997:/gnu/packages/linux.scm diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 27ad8873a7..1210cde256 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -48,6 +48,7 @@ ;;; Copyright © 2020 John Soo ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Anders Thuné +;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,6 +91,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages file) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -194,56 +196,17 @@ defconfig. Return the appropriate make target if applicable, otherwise return (uri (string-append "https://linux-libre.fsfla.org" "/pub/linux-libre/releases/" version "-gnu/" "deblob-" (version-major+minor version))) + (file-name (string-append "linux-libre-deblob-" + version)) (sha256 deblob-hash)) (origin (method url-fetch) (uri (string-append "https://linux-libre.fsfla.org" "/pub/linux-libre/releases/" version "-gnu/" "deblob-check")) + (file-name (string-append "linux-libre-deblob-check-" version)) (sha256 deblob-check-hash)))) -(define deblob-scripts-5.8 - (linux-libre-deblob-scripts - "5.8" - (base32 "07z7sglyrfh0706icqqf3shadf638pvyid9386r661ds5lbsa2mw") - (base32 "1nzf1wzva52bm41j2ba0m1vr0cpfwnybdwv5ff6km49l0gziaqx7"))) - -(define deblob-scripts-5.7 - (linux-libre-deblob-scripts - "5.7.14" - (base32 "1gharhw104wxp9dxjkzzvsqc2xn44mc9yvacc3v7jh7b6bb0a64a") - (base32 "1n198gx18rxc7xflgiwya43inkwayc91pgb129kngfza8sm6v8ks"))) - -(define deblob-scripts-5.4 - (linux-libre-deblob-scripts - "5.4.57" - (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25") - (base32 "10qb890is4z58vr8czh3xx69q62l3b3j38y410kgiw8nii3zx5lr"))) - -(define deblob-scripts-4.19 - (linux-libre-deblob-scripts - "4.19.138" - (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy") - (base32 "1w2wgxblpq09i33qmqgw5v3r5rm9vkkygr6m0sgv4zgczk9s29wr"))) - -(define deblob-scripts-4.14 - (linux-libre-deblob-scripts - "4.14.193" - (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6") - (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) - -(define deblob-scripts-4.9 - (linux-libre-deblob-scripts - "4.9.231" - (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg") - (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) - -(define deblob-scripts-4.4 - (linux-libre-deblob-scripts - "4.4.231" - (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw") - (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) - (define* (computed-origin-method gexp-promise hash-algo hash #:optional (name "source") #:key (system (%current-system)) @@ -281,6 +244,9 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (srfi srfi-1) (ice-9 match) (ice-9 ftw)) + + (setvbuf (current-output-port) 'line) + (let ((dir (string-append "linux-" #$version))) (mkdir "/tmp/bin") @@ -298,11 +264,8 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." #+(canonical-package bzip2) #+(canonical-package gzip) #+(canonical-package tar) - ;; The comments in the 'deblob-check' script - ;; claim that it supports Python 2 and 3, but - ;; in fact it fails when run in Python 3 as - ;; of version 5.1.3. - #+python-2)) + #+(canonical-package gawk) + #+python-wrapper)) (with-directory-excursion "/tmp/bin" @@ -321,12 +284,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (if (file-is-directory? #+upstream-source) (begin (format #t "Copying upstream linux source...~%") - (force-output) (invoke "cp" "--archive" #+upstream-source dir) (invoke "chmod" "--recursive" "u+w" dir)) (begin (format #t "Unpacking upstream linux tarball...~%") - (force-output) (invoke "tar" "xf" #$upstream-source) (match (scandir "." (lambda (name) @@ -339,13 +300,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (error "multiple directories found" dirs))))) (with-directory-excursion dir - (setenv "PYTHON" (which "python")) (format #t "Running deblob script...~%") - (force-output) (invoke "/tmp/bin/deblob")) (format #t "~%Packing new Linux-libre tarball...~%") - (force-output) (invoke "tar" "cvfa" #$output ;; Avoid non-determinism in the archive. "--mtime=@0" @@ -353,7 +311,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." "--group=root:0" "--sort=name" "--hard-dereference" - dir)))))))))) + dir) + + (format #t "~%Scanning the generated tarball for blobs...~%") + (invoke "/tmp/bin/deblob-check" "--use-awk" "--list-blobs" + #$output)))))))))) ;;; @@ -385,58 +347,85 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (sha256 hash))) -(define-public linux-libre-5.8-version "5.8.1") +;; The current "stable" kernel. That is, the most recently released major +;; version. +(define-public linux-libre-5.8-version "5.8.10") +(define deblob-scripts-5.8 + (linux-libre-deblob-scripts + linux-libre-5.8-version + (base32 "07z7sglyrfh0706icqqf3shadf638pvyid9386r661ds5lbsa2mw") + (base32 "0j6jba5fcddqlb42f95gjl78jisfla4nswqila074gglcrbnl9q7"))) (define-public linux-libre-5.8-pristine-source (let ((version linux-libre-5.8-version) - (hash (base32 "09574qbcrncb34dx9pd65iqs06758zim4nkncnjzmxwgjgza9lpq"))) + (hash (base32 "1wjsdc93xilag0pk205m2q0ixmpp93ql5qj0fm3qlqddgxm14vlx"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.8))) -(define-public linux-libre-5.7-version "5.7.15") -(define-public linux-libre-5.7-pristine-source - (let ((version linux-libre-5.7-version) - (hash (base32 "04jj7vmwd1fjpfnwrhnc92qnskj7i150dyxvilfmkg3ki521gsqf"))) - (make-linux-libre-source version - (%upstream-linux-source version hash) - deblob-scripts-5.7))) - -(define-public linux-libre-5.4-version "5.4.58") +;; The "longterm" kernels — the older releases with long-term upstream support. +;; Here are the support timelines: +;; +(define-public linux-libre-5.4-version "5.4.64") +(define deblob-scripts-5.4 + (linux-libre-deblob-scripts + "5.4.63" + (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25") + (base32 "1b3q88i2qfdxyvpi9f7jds0qlb8hfpw87mgia096ax6822c2cmyb"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0iqnn98hj3lq1avlrbjv9qdyfwffv01vd0a465xkhxck26py4bvh"))) + (hash (base32 "1vymhl6p7i06gfgpw9iv75bvga5sj5kgv46i1ykqiwv6hj9w5lxr"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.139") +(define-public linux-libre-4.19-version "4.19.144") +(define deblob-scripts-4.19 + (linux-libre-deblob-scripts + "4.19.143" + (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy") + (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "01anspwh3vskmcqf4xclx0jx6h0h33zfgmmvrzxq17wlzqhvyklw"))) + (hash (base32 "0jnj65bdy5y9lcj5zhrn4iaszpww8z41ac66j00l75sd931l1g9k"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.193") +(define-public linux-libre-4.14-version "4.14.197") +(define deblob-scripts-4.14 + (linux-libre-deblob-scripts + "4.14.196" + (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6") + (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "00wziff12xphafyspb02rnjim5a15zywnhdk70ks9q9h8hfv83qb"))) + (hash (base32 "029h46yki2hxdbn7afmnf3yar1pnwrpszx76irsa5mf8gnrasyp0"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.232") +(define-public linux-libre-4.9-version "4.9.235") +(define deblob-scripts-4.9 + (linux-libre-deblob-scripts + linux-libre-4.9-version + (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg") + (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "0q2gpkazfw93r79aq21kv1y3hwxawl0swyvd3nd73p254gl75x2q"))) + (hash (base32 "1hqcb3zw4546h6x5xy2mywdznha8813lx15mxbgfbvwm4qhsc9g6"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.232") +(define-public linux-libre-4.4-version "4.4.235") +(define deblob-scripts-4.4 + (linux-libre-deblob-scripts + linux-libre-4.4-version + (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw") + (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "0d7x30sy9c27n9bqf5f5mf64c6j5iljnw1gm7g8z00xgvrjqibjf"))) + (hash (base32 "0w5pkv936zb0shjgnpv17gcp5n8f91djznzq54p6j1bl5q2qdyqd"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -474,11 +463,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (list %boot-logo-patch %linux-libre-arm-export-__sync_icache_dcache-patch))) -(define-public linux-libre-5.7-source - (source-with-patches linux-libre-5.7-pristine-source - (list %boot-logo-patch - %linux-libre-arm-export-__sync_icache_dcache-patch))) - (define-public linux-libre-5.4-source (source-with-patches linux-libre-5.4-pristine-source (list %boot-logo-patch @@ -582,10 +566,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (make-linux-libre-headers* linux-libre-5.8-version linux-libre-5.8-source)) -(define-public linux-libre-headers-5.7 - (make-linux-libre-headers* linux-libre-5.7-version - linux-libre-5.7-source)) - (define-public linux-libre-headers-5.4 (make-linux-libre-headers* linux-libre-5.4-version linux-libre-5.4-source)) @@ -637,6 +617,26 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." ("CONFIG_USER_NS" . #t) ("CONFIG_PID_NS" . #t) ("CONFIG_NET_NS" . #t) + ;; Various options needed for elogind service: + ;; https://issues.guix.gnu.org/43078 + ("CONFIG_CGROUP_FREEZER" . #t) + ("CONFIG_BLK_CGROUP" . #t) + ("CONFIG_CGROUP_WRITEBACK" . #t) + ("CONFIG_CGROUP_SCHED" . #t) + ("CONFIG_CGROUP_PIDS" . #t) + ("CONFIG_CGROUP_FREEZER" . #t) + ("CONFIG_CGROUP_DEVICE" . #t) + ("CONFIG_CGROUP_CPUACCT" . #t) + ("CONFIG_CGROUP_PERF" . #t) + ("CONFIG_SOCK_CGROUP_DATA" . #t) + ("CONFIG_BLK_CGROUP_IOCOST" . #t) + ("CONFIG_CGROUP_NET_PRIO" . #t) + ("CONFIG_CGROUP_NET_CLASSID" . #t) + ("CONFIG_MEMCG" . #t) + ("CONFIG_MEMCG_SWAP" . #t) + ("CONFIG_MEMCG_KMEM" . #t) + ("CONFIG_CPUSETS" . #t) + ("CONFIG_PROC_PID_CPUSET" . #t) ;; Modules required for initrd: ("CONFIG_NET_9P" . m) ("CONFIG_NET_9P_VIRTIO" . m) @@ -853,16 +853,16 @@ It has been modified to remove all non-free binary blobs.") ;;; Generic kernel packages. ;;; -(define-public linux-libre-5.7 - (make-linux-libre* linux-libre-5.7-version - linux-libre-5.7-source +(define-public linux-libre-5.8 + (make-linux-libre* linux-libre-5.8-version + linux-libre-5.8-source '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux") #:configuration-file kernel-config)) -(define-public linux-libre-version linux-libre-5.7-version) -(define-public linux-libre-pristine-source linux-libre-5.7-pristine-source) -(define-public linux-libre-source linux-libre-5.7-source) -(define-public linux-libre linux-libre-5.7) +(define-public linux-libre-version linux-libre-5.8-version) +(define-public linux-libre-pristine-source linux-libre-5.8-pristine-source) +(define-public linux-libre-source linux-libre-5.8-source) +(define-public linux-libre linux-libre-5.8) (define-public linux-libre-5.4 (make-linux-libre* linux-libre-5.4-version @@ -973,18 +973,6 @@ It has been modified to remove all non-free binary blobs.") '("aarch64-linux") #:defconfig "defconfig" #:extra-version "arm64-generic" - #:extra-options - (append - `(;; needed to fix the RTC on rockchip platforms - ("CONFIG_RTC_DRV_RK808" . #t)) - %default-extra-linux-options))) - -(define-public linux-libre-arm64-generic-5.8 - (make-linux-libre* linux-libre-5.8-version - linux-libre-5.8-source - '("aarch64-linux") - #:defconfig "defconfig" - #:extra-version "arm64-generic" #:extra-options (append `(;; needed to fix the RTC on rockchip platforms @@ -3224,8 +3212,8 @@ from the module-init-tools project.") (string-append "PREFIX=" prefix) (string-append "SYSCONFDIR=" prefix "/etc"))) #:test-target "test")) - (native-inputs `(("go" ,go) ;for the test suite - ("pandoc" ,ghc-pandoc))) ;to generate the manpage + (native-inputs `(("go" ,go) ;for the test suite + ("pandoc" ,pandoc))) ;to generate the manpage (home-page "https://github.com/rfjakob/earlyoom") (synopsis "Simple out of memory (OOM) daemon for the Linux kernel") (description "Early OOM is a minimalist out of memory (OOM) daemon that @@ -3371,16 +3359,16 @@ devices that can inject events directly into the input subsystem.") (define-public lvm2 (package (name "lvm2") - (version "2.03.09") + (version "2.03.10") (source (origin (method url-fetch) - (uri (list (string-append "ftp://sourceware.org/pub/lvm2/LVM2." + (uri (list (string-append "https://sourceware.org/ftp/lvm2/LVM2." version ".tgz") (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2." version ".tgz"))) (sha256 (base32 - "0xdr9qbqw6kja267wmx6ajnfv1nhw056gpxx9v2qmfh3bj6qnfn0")) + "1l0fkn9abrgk5mfn6jfh9qhdr86b59l1c5pk6lp8jh0491d69las")) (modules '((guix build utils))) (snippet '(begin @@ -3656,7 +3644,7 @@ compliance.") (define-public wireless-regdb (package (name "wireless-regdb") - (version "2019.06.03") + (version "2020.04.29") (source (origin (method url-fetch) (uri (string-append @@ -3664,7 +3652,7 @@ compliance.") "wireless-regdb-" version ".tar.xz")) (sha256 (base32 - "1gslvh0aqdkv48jyr2ddq153mw28i7qz2ybrjj9qvkk3dgc7x4fd")) + "0yicda474ygahv8da18h1p4yf42s6x2f208mlwcw4xsrxld07zc9")) ;; We're building 'regulatory.bin' by ourselves. (snippet '(begin @@ -5943,17 +5931,17 @@ running boot option, and more.") (define-public sysstat (package (name "sysstat") - (version "12.3.1") + (version "12.4.0") (source (origin (method url-fetch) (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/" "sysstat-" version ".tar.xz")) (sha256 (base32 - "1hf1sy7akribmgavadqccxpy49yv0zfb3m81d2bj6jf8pyzwcrbq")))) + "05idnvkhvzaynj9awx7q54x1v42jblzrxq0fn5zd1v4mjwrnqmbq")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; No test suite. + `(#:tests? #f ; no test suite. ;; Without this flag, it tries to install the man pages with group 'root' ;; and fails because /etc/passwd lacks an entry for the root user. #:configure-flags @@ -6928,7 +6916,7 @@ IP addresses and routes, and configure IPsec.") (define-public xfsprogs (package (name "xfsprogs") - (version "5.2.1") + (version "5.7.0") (source (origin (method url-fetch) (uri (string-append @@ -6936,7 +6924,7 @@ IP addresses and routes, and configure IPsec.") "xfsprogs-" version ".tar.gz")) (sha256 (base32 - "0q5xd4gb9g83h82mg68cx616ifzl8qkzzlgg5xna698117ph3wky")))) + "0bssrfhnw5mhybgaa6d8wp87izi3c9cjpjy7vicm6y76mf7kl8p9")))) (build-system gnu-build-system) (outputs (list "out" "python")) (arguments @@ -7210,7 +7198,7 @@ of Linux application development.") (package (inherit pipewire) (name "pipewire") - (version "0.3.7") + (version "0.3.10") (source (origin (method git-fetch) (uri (git-reference @@ -7219,12 +7207,15 @@ of Linux application development.") (file-name (git-file-name name version)) (sha256 (base32 - "04l66p0wj553gp2zf3vwwh6jbr1vkf6wrq4za9zlm9dn144am4j2")))) + "1y293sfhhmzbgnlvs46bpiyimlii5nk71f8115qxs8sviwlsdr3w")))) (arguments - '(#:configure-flags '("-Dsystemd=false") + '(#:configure-flags + (list (string-append "-Dudevrulesdir=" (assoc-ref %outputs "out") + "/lib/udev/rules.d") + "-Dsystemd=false") #:phases (modify-phases %standard-phases - ;; Skip shrink-runpath, otherwise validate-runpath fails + ;; Skip shrink-runpath, otherwise validate-runpath fails. (delete 'shrink-runpath)))) (inputs (append (package-inputs pipewire) @@ -7528,3 +7519,30 @@ tracing (uprobes), and tracepoints. The bpftrace language is inspired by awk and C, and predecessor tracers such as DTrace and SystemTap. bpftrace was created by Alastair Robertson.") (license license:asl2.0))) + +(define-public ttyebus-linux-module + (let ((revision "0") + (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f")) + (package + (name "ttyebus-linux-module") + (version (git-version "1.5" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/eBUS/ttyebus.git") + (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1i66xjs9vln5cca6wx7aiiw7jihrlsk9hjdqyczp36fvm1b1bani")))) + (supported-systems '("armhf-linux" "aarch64-linux")) + (build-system linux-module-build-system) + (arguments + `(#:tests? #f)) + (home-page "https://github.com/eBUS/ttyebus") + (synopsis "Low-latency Raspberry Pi UART driver") + (description "This package provides a Linux kernel module that will +provide a serial device @code{/dev/ttyebus} with almost no latency upon +receiving. It is dedicated to the PL011 UART of the Raspberry Pi.") + (license license:gpl3+))))