;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#: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)
"/pub/linux-libre/releases/" version "-gnu/"
"deblob-" (version-major+minor version)))
(file-name (string-append "linux-libre-deblob-"
- (version-major+minor version)))
+ 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-major+minor version)))
+ (file-name (string-append "linux-libre-deblob-check-" version))
(sha256 deblob-check-hash))))
-(define deblob-scripts-5.8
- (linux-libre-deblob-scripts
- "5.8.4"
- (base32 "07z7sglyrfh0706icqqf3shadf638pvyid9386r661ds5lbsa2mw")
- (base32 "0j6jba5fcddqlb42f95gjl78jisfla4nswqila074gglcrbnl9q7")))
-
-(define deblob-scripts-5.7
- (linux-libre-deblob-scripts
- "5.7.16"
- (base32 "1gharhw104wxp9dxjkzzvsqc2xn44mc9yvacc3v7jh7b6bb0a64a")
- (base32 "19mzampqx6j85fbdnl347wsy8zw2fnm189llsjc7jwfm10qc2kms")))
-
-(define deblob-scripts-5.4
- (linux-libre-deblob-scripts
- "5.4.59"
- (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25")
- (base32 "1b3q88i2qfdxyvpi9f7jds0qlb8hfpw87mgia096ax6822c2cmyb")))
-
-(define deblob-scripts-4.19
- (linux-libre-deblob-scripts
- "4.19.140"
- (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
- (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
-
-(define deblob-scripts-4.14
- (linux-libre-deblob-scripts
- "4.14.195"
- (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
- (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
-
-(define deblob-scripts-4.9
- (linux-libre-deblob-scripts
- "4.9.234"
- (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
- (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
-
-(define deblob-scripts-4.4
- (linux-libre-deblob-scripts
- "4.4.234"
- (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
- (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
-
(define* (computed-origin-method gexp-promise hash-algo hash
#:optional (name "source")
#:key (system (%current-system))
(srfi srfi-1)
(ice-9 match)
(ice-9 ftw))
+
+ (setvbuf (current-output-port) 'line)
+
(let ((dir (string-append "linux-" #$version)))
(mkdir "/tmp/bin")
#+(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"
(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)
(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"
"--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))))))))))
\f
;;;
(sha256 hash)))
-(define-public linux-libre-5.8-version "5.8.4")
+;; 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 "15hyz92wsk6fxqr1rq0k77qw76jka2igpc9xviwa0j4a5qrr43fv")))
+ (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.17")
-(define-public linux-libre-5.7-pristine-source
- (let ((version linux-libre-5.7-version)
- (hash (base32 "09ajavdyvr0025rwvwfp9yv2z8q779nan1i6dck2kkdxr48kd36c")))
- (make-linux-libre-source version
- (%upstream-linux-source version hash)
- deblob-scripts-5.7)))
-
-(define-public linux-libre-5.4-version "5.4.60")
+;; 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.4-version "5.4.66")
+(define deblob-scripts-5.4
+ (linux-libre-deblob-scripts
+ linux-libre-5.4-version
+ (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25")
+ (base32 "1b3q88i2qfdxyvpi9f7jds0qlb8hfpw87mgia096ax6822c2cmyb")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "08x2a78n23371k7l5p677mihnl58dpjh7r7bvyiwj3y4hlisplmd")))
+ (hash (base32 "1cnsrz21kcf0h7krpv9p1a7n59mybr5ii0jdi3yc3x3lcwvk06gz")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.141")
+(define-public linux-libre-4.19-version "4.19.146")
+(define deblob-scripts-4.19
+ (linux-libre-deblob-scripts
+ linux-libre-4.19-version
+ (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
+ (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "0511vb9rfpy5l6cz69v0v97rw2rk2pscc4hkz2pfmgikagm1shm4")))
+ (hash (base32 "0jl17yk3fpz0sx203l9l1fj5bly3jgsyr8hy5qa6py99fbk0qnim")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.195")
+(define-public linux-libre-4.14-version "4.14.198")
+(define deblob-scripts-4.14
+ (linux-libre-deblob-scripts
+ linux-libre-4.14-version
+ (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
+ (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "08d08la3h48fbdlr3h8zbvdghydx3x9cwb4yrnm0n93hhrwjhkrr")))
+ (hash (base32 "00xmij2l4qmx1s07hplxkn9ddlwiyalh2l5fqdk6d8v031cbmyhy")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.234")
+(define-public linux-libre-4.9-version "4.9.236")
+(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 "1qw26x2qc29yr094c7scw68m9yz4j0b2c4f92rvi3s31s928avvm")))
+ (hash (base32 "1ma2z0nvby4qyxzi3vxa28f0wvlnl74njk6cryjrqaksq6161qp7")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
-(define-public linux-libre-4.4-version "4.4.234")
+(define-public linux-libre-4.4-version "4.4.236")
+(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 "123354h05fip161rzlxc8h0cn5lh0d1gz06gc5b7zyz9i2lxv539")))
+ (hash (base32 "1v1mx16x1crnxf4pix0bhw40lq89n7wpd66gjc2mhxi75h6x6i80")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
(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
(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))
("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)
(define-public linux-libre-source linux-libre-5.8-source)
(define-public linux-libre linux-libre-5.8)
-(define-public linux-libre-5.7
- (make-linux-libre* linux-libre-5.7-version
- linux-libre-5.7-source
- '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
- #:configuration-file kernel-config))
-
(define-public linux-libre-5.4
(make-linux-libre* linux-libre-5.4-version
linux-libre-5.4-source
(define-public wireless-regdb
(package
(name "wireless-regdb")
- (version "2019.06.03")
+ (version "2020.04.29")
(source (origin
(method url-fetch)
(uri (string-append
"wireless-regdb-" version ".tar.xz"))
(sha256
(base32
- "1gslvh0aqdkv48jyr2ddq153mw28i7qz2ybrjj9qvkk3dgc7x4fd"))
+ "0yicda474ygahv8da18h1p4yf42s6x2f208mlwcw4xsrxld07zc9"))
;; We're building 'regulatory.bin' by ourselves.
(snippet '(begin
(define-public xfsprogs
(package
(name "xfsprogs")
- (version "5.2.1")
+ (version "5.7.0")
(source (origin
(method url-fetch)
(uri (string-append
"xfsprogs-" version ".tar.gz"))
(sha256
(base32
- "0q5xd4gb9g83h82mg68cx616ifzl8qkzzlgg5xna698117ph3wky"))))
+ "0bssrfhnw5mhybgaa6d8wp87izi3c9cjpjy7vicm6y76mf7kl8p9"))))
(build-system gnu-build-system)
(outputs (list "out" "python"))
(arguments
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+))))