gnu: linux-libre: Deblob the linux-libre source tarball ourselves.
* gnu/packages/linux.scm (linux-libre-deblob-scripts, deblob-scripts-5.2) (deblob-scripts-4.19, deblob-scripts-4.14, deblob-scripts-4.9) (deblob-scripts-4.4, computed-origin-method, %upstream-linux-source) (source-with-patches, make-linux-libre-source, linux-libre-5.2-version) (linux-libre-5.2-pristine-source, linux-libre-5.2-source) (linux-libre-4.19-pristine-source, linux-libre-4.19-source) (linux-libre-4.14-pristine-source, linux-libre-4.14-source) (linux-libre-4.9-pristine-source, linux-libre-4.9-source) (linux-libre-4.4-pristine-source, linux-libre-4.4-source) (linux-libre-pristine-source, linux-libre-source) (linux-libre-headers-4.9, linux-libre-headers-4.4) (make-linux-libre-headers*, make-linux-libre*): New variables. (%linux-libre-version): Rename to ... (linux-libre-version): ... this, and make it equal to linux-libre-5.2-version. (%linux-libre-4.19-version, %linux-libre-4.14-version) (%linux-libre-4.9-version, %linux-libre-4.4-version): Rename to ... (linux-libre-4.19-version, linux-libre-4.14-version) (linux-libre-4.9-version, linux-libre-4.4-version): ... these. (%linux-libre-4.19-hash, %linux-libre-4.19-patches) (%linux-libre-4.14-hash, %linux-libre-4.14-patches) (%linux-libre-hash, %linux-libre-5.2-patches): Remove variables. (make-linux-libre-headers, make-linux-libre): Reformulate in terms of make-linux-libre-headers* and make-linux-libre*, respectively. (linux-libre-5.2, linux-libre-4.19, linux-libre-4.14, linux-libre-4.9) (linux-libre-4.4, linux-libre-arm-veyron, linux-libre-arm-generic) (linux-libre-arm-generic-4.19, linux-libre-arm-generic-4.14) (linux-libre-arm-omap2plus, linux-libre-arm-omap2plus-4.19) (linux-libre-arm-omap2plus-4.14): Adapt and use make-linux-libre*. (linux-libre-headers-5.2, linux-libre-headers-4.19) (linux-libre-headers-4.14): Adapt and use make-linux-libre-headers*.
This commit is contained in:
parent
2f4698d7d1
commit
1ad9c105c2
|
@ -127,6 +127,9 @@
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix monads)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-2)
|
#:use-module (srfi srfi-2)
|
||||||
|
@ -155,6 +158,174 @@ defconfig. Return the appropriate make target if applicable, otherwise return
|
||||||
((string-prefix? "powerpc64le-" system) "ppc64_defconfig")
|
((string-prefix? "powerpc64le-" system) "ppc64_defconfig")
|
||||||
(else "defconfig")))
|
(else "defconfig")))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Kernel source code deblobbing.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (linux-libre-deblob-scripts version
|
||||||
|
deblob-hash
|
||||||
|
deblob-check-hash)
|
||||||
|
(list (version-major+minor version)
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://linux-libre.fsfla.org"
|
||||||
|
"/pub/linux-libre/releases/" version "-gnu/"
|
||||||
|
"deblob-" (version-major+minor version)))
|
||||||
|
(sha256 deblob-hash))
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://linux-libre.fsfla.org"
|
||||||
|
"/pub/linux-libre/releases/" version "-gnu/"
|
||||||
|
"deblob-check"))
|
||||||
|
(sha256 deblob-check-hash))))
|
||||||
|
|
||||||
|
(define deblob-scripts-5.2
|
||||||
|
(linux-libre-deblob-scripts
|
||||||
|
"5.2.1"
|
||||||
|
(base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa")
|
||||||
|
(base32 "030cccchli7vnzvxcw261spyzsgnq0m113bjsz8y4vglf6gaz4n9")))
|
||||||
|
|
||||||
|
(define deblob-scripts-4.19
|
||||||
|
(linux-libre-deblob-scripts
|
||||||
|
"4.19.59"
|
||||||
|
(base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
|
||||||
|
(base32 "07z1bsyny8lldncfh27lb16mgx9r38nswx4vmd24c7n4xva12k2s")))
|
||||||
|
|
||||||
|
(define deblob-scripts-4.14
|
||||||
|
(linux-libre-deblob-scripts
|
||||||
|
"4.14.133"
|
||||||
|
(base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
|
||||||
|
(base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n")))
|
||||||
|
|
||||||
|
(define deblob-scripts-4.9
|
||||||
|
(linux-libre-deblob-scripts
|
||||||
|
"4.9.185"
|
||||||
|
(base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
|
||||||
|
(base32 "1gmjn5cwxydg6qb47wcmahwkv37npsjx4papynzkkdxyidmrccya")))
|
||||||
|
|
||||||
|
(define deblob-scripts-4.4
|
||||||
|
(linux-libre-deblob-scripts
|
||||||
|
"4.4.185"
|
||||||
|
(base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
|
||||||
|
(base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10")))
|
||||||
|
|
||||||
|
(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)))
|
||||||
|
|
||||||
|
(define (make-linux-libre-source version
|
||||||
|
upstream-source
|
||||||
|
deblob-scripts)
|
||||||
|
"Return a 'computed' origin that generates a Linux-libre tarball from the
|
||||||
|
corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||||
|
(match deblob-scripts
|
||||||
|
((deblob-version (? origin? deblob) (? origin? deblob-check))
|
||||||
|
(unless (string=? deblob-version (version-major+minor version))
|
||||||
|
;; The deblob script cannot be expected to work properly on a
|
||||||
|
;; different version (major+minor) of Linux, even if no errors
|
||||||
|
;; are signaled during execution.
|
||||||
|
(error "deblob major+minor version mismatch"))
|
||||||
|
(origin
|
||||||
|
(method computed-origin-method)
|
||||||
|
(file-name (string-append "linux-libre-" version "-guix.tar.xz"))
|
||||||
|
(sha256 #f)
|
||||||
|
(uri
|
||||||
|
(delay
|
||||||
|
(with-imported-modules '((guix build utils))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (guix build utils)
|
||||||
|
(srfi srfi-1)
|
||||||
|
(ice-9 match)
|
||||||
|
(ice-9 ftw))
|
||||||
|
(let ((dir (string-append "linux-" #$version)))
|
||||||
|
|
||||||
|
(mkdir "/tmp/bin")
|
||||||
|
(set-path-environment-variable
|
||||||
|
"PATH" '("bin")
|
||||||
|
(list "/tmp"
|
||||||
|
#+(canonical-package bash)
|
||||||
|
#+(canonical-package coreutils)
|
||||||
|
#+(canonical-package diffutils)
|
||||||
|
#+(canonical-package findutils)
|
||||||
|
#+(canonical-package patch)
|
||||||
|
#+(canonical-package xz)
|
||||||
|
#+(canonical-package sed)
|
||||||
|
#+(canonical-package grep)
|
||||||
|
#+(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))
|
||||||
|
|
||||||
|
(with-directory-excursion "/tmp/bin"
|
||||||
|
|
||||||
|
(copy-file #+deblob "deblob")
|
||||||
|
(chmod "deblob" #o755)
|
||||||
|
(substitute* "deblob"
|
||||||
|
(("/bin/sh") (which "sh")))
|
||||||
|
|
||||||
|
(copy-file #+deblob-check "deblob-check")
|
||||||
|
(chmod "deblob-check" #o755)
|
||||||
|
(substitute* "deblob-check"
|
||||||
|
(("/bin/sh") (which "sh"))
|
||||||
|
(("/bin/sed") (which "sed"))
|
||||||
|
(("/usr/bin/python") (which "python"))))
|
||||||
|
|
||||||
|
(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)
|
||||||
|
(and (not (member name '("." "..")))
|
||||||
|
(file-is-directory? name))))
|
||||||
|
((unpacked-dir)
|
||||||
|
(unless (string=? dir unpacked-dir)
|
||||||
|
(rename-file unpacked-dir dir)))
|
||||||
|
(dirs
|
||||||
|
(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" "cfa" #$output
|
||||||
|
;; Avoid non-determinism in the archive.
|
||||||
|
"--mtime=@0"
|
||||||
|
"--owner=root:0"
|
||||||
|
"--group=root:0"
|
||||||
|
"--sort=name"
|
||||||
|
"--hard-dereference"
|
||||||
|
dir))))))))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Kernel sources.
|
||||||
|
;;;
|
||||||
|
|
||||||
(define (linux-libre-urls version)
|
(define (linux-libre-urls version)
|
||||||
"Return a list of URLs for Linux-Libre VERSION."
|
"Return a list of URLs for Linux-Libre VERSION."
|
||||||
(list (string-append
|
(list (string-append
|
||||||
|
@ -171,14 +342,121 @@ defconfig. Return the appropriate make target if applicable, otherwise return
|
||||||
"mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
|
"mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
|
||||||
version "-gnu.tar.xz")))
|
version "-gnu.tar.xz")))
|
||||||
|
|
||||||
(define (make-linux-libre-headers version hash)
|
(define (%upstream-linux-source version hash)
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://kernel.org"
|
||||||
|
"/linux/kernel/v" (version-major version) ".x/"
|
||||||
|
"linux-" version ".tar.xz"))
|
||||||
|
(sha256 hash)))
|
||||||
|
|
||||||
|
(define-public linux-libre-5.2-version "5.2.1")
|
||||||
|
(define-public linux-libre-5.2-pristine-source
|
||||||
|
(let ((version linux-libre-5.2-version)
|
||||||
|
(hash (base32 "01k5v3kdwk65cfx6bw4cl32jbfvf976jbya7q4a8lab3km7fi09m")))
|
||||||
|
(make-linux-libre-source version
|
||||||
|
(%upstream-linux-source version hash)
|
||||||
|
deblob-scripts-5.2)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.19-version "4.19.59")
|
||||||
|
(define-public linux-libre-4.19-pristine-source
|
||||||
|
(let ((version linux-libre-4.19-version)
|
||||||
|
(hash (base32 "0nxkr196q0b1hs3a3zavpsjp0jgbqmcwdf0y0f3hbpirshjiid5q")))
|
||||||
|
(make-linux-libre-source version
|
||||||
|
(%upstream-linux-source version hash)
|
||||||
|
deblob-scripts-4.19)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.14-version "4.14.133")
|
||||||
|
(define-public linux-libre-4.14-pristine-source
|
||||||
|
(let ((version linux-libre-4.14-version)
|
||||||
|
(hash (base32 "005pg4f8l2qz8g6hd71pj567z91hwjwdwb37h4dbb3fj6kjl965y")))
|
||||||
|
(make-linux-libre-source version
|
||||||
|
(%upstream-linux-source version hash)
|
||||||
|
deblob-scripts-4.14)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.9-version "4.9.185")
|
||||||
|
(define-public linux-libre-4.9-pristine-source
|
||||||
|
(let ((version linux-libre-4.9-version)
|
||||||
|
(hash (base32 "16z3ijfzffpkp4mj42j3j8zbnpba1a67kd5cdqwb28spf32a66vc")))
|
||||||
|
(make-linux-libre-source version
|
||||||
|
(%upstream-linux-source version hash)
|
||||||
|
deblob-scripts-4.9)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.4-version "4.4.185")
|
||||||
|
(define-public linux-libre-4.4-pristine-source
|
||||||
|
(let ((version linux-libre-4.4-version)
|
||||||
|
(hash (base32 "1ll694m5193dmwn8ys4sf2p6a6njd5pm38v862ih1iw7l3vj0l3s")))
|
||||||
|
(make-linux-libre-source version
|
||||||
|
(%upstream-linux-source version hash)
|
||||||
|
deblob-scripts-4.4)))
|
||||||
|
|
||||||
|
(define %boot-logo-patch
|
||||||
|
;; Linux-Libre boot logo featuring Freedo and a gnu.
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "http://www.fsfla.org/svn/fsfla/software/linux-libre/"
|
||||||
|
"lemote/gnewsense/branches/3.16/100gnu+freedo.patch"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1hk9swxxc80bmn2zd2qr5ccrjrk28xkypwhl4z0qx4hbivj7qm06"))))
|
||||||
|
|
||||||
|
(define %linux-libre-arm-export-__sync_icache_dcache-patch
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://salsa.debian.org/kernel-team/linux"
|
||||||
|
"/raw/34a7d9011fcfcfa38b68282fd2b1a8797e6834f0"
|
||||||
|
"/debian/patches/bugfix/arm/"
|
||||||
|
"arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch"))
|
||||||
|
(file-name "linux-libre-arm-export-__sync_icache_dcache.patch")
|
||||||
|
(sha256
|
||||||
|
(base32 "1ifnfhpakzffn4b8n7x7w5cps9mzjxlkcfz9zqak2vaw8nzvl39f"))))
|
||||||
|
|
||||||
|
(define (source-with-patches source patches)
|
||||||
|
(origin
|
||||||
|
(inherit source)
|
||||||
|
(patches (append (origin-patches source)
|
||||||
|
patches))))
|
||||||
|
|
||||||
|
(define-public linux-libre-5.2-source
|
||||||
|
(source-with-patches linux-libre-5.2-pristine-source
|
||||||
|
(list %boot-logo-patch
|
||||||
|
%linux-libre-arm-export-__sync_icache_dcache-patch)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.19-source
|
||||||
|
(source-with-patches linux-libre-4.19-pristine-source
|
||||||
|
(list %boot-logo-patch
|
||||||
|
%linux-libre-arm-export-__sync_icache_dcache-patch)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.14-source
|
||||||
|
(source-with-patches linux-libre-4.14-pristine-source
|
||||||
|
(list %boot-logo-patch)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.9-source
|
||||||
|
(source-with-patches linux-libre-4.9-pristine-source
|
||||||
|
(list %boot-logo-patch)))
|
||||||
|
|
||||||
|
(define-public linux-libre-4.4-source
|
||||||
|
(source-with-patches linux-libre-4.4-pristine-source
|
||||||
|
(list %boot-logo-patch)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Kernel headers.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (make-linux-libre-headers version hash-string)
|
||||||
|
(make-linux-libre-headers* version
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (linux-libre-urls version))
|
||||||
|
(sha256 (base32 hash-string)))))
|
||||||
|
|
||||||
|
(define (make-linux-libre-headers* version source)
|
||||||
(package
|
(package
|
||||||
(name "linux-libre-headers")
|
(name "linux-libre-headers")
|
||||||
(version version)
|
(version version)
|
||||||
(source (origin
|
(source source)
|
||||||
(method url-fetch)
|
|
||||||
(uri (linux-libre-urls version))
|
|
||||||
(sha256 (base32 hash))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs `(("perl" ,perl)
|
(native-inputs `(("perl" ,perl)
|
||||||
,@(if (version>=? version "4.16")
|
,@(if (version>=? version "4.16")
|
||||||
|
@ -232,27 +510,38 @@ defconfig. Return the appropriate make target if applicable, otherwise return
|
||||||
(description "Headers of the Linux-Libre kernel.")
|
(description "Headers of the Linux-Libre kernel.")
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define %boot-logo-patch
|
(define-public linux-libre-headers-5.2
|
||||||
;; Linux-Libre boot logo featuring Freedo and a gnu.
|
(make-linux-libre-headers* linux-libre-5.2-version
|
||||||
(origin
|
linux-libre-5.2-source))
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "http://www.fsfla.org/svn/fsfla/software/linux-libre/"
|
|
||||||
"lemote/gnewsense/branches/3.16/100gnu+freedo.patch"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1hk9swxxc80bmn2zd2qr5ccrjrk28xkypwhl4z0qx4hbivj7qm06"))))
|
|
||||||
|
|
||||||
(define %linux-libre-arm-export-__sync_icache_dcache-patch
|
(define-public linux-libre-headers-4.19
|
||||||
(origin
|
(make-linux-libre-headers* linux-libre-4.19-version
|
||||||
(method url-fetch)
|
linux-libre-4.19-source))
|
||||||
(uri (string-append
|
|
||||||
"https://salsa.debian.org/kernel-team/linux"
|
(define-public linux-libre-headers-4.14
|
||||||
"/raw/34a7d9011fcfcfa38b68282fd2b1a8797e6834f0"
|
(make-linux-libre-headers* linux-libre-4.14-version
|
||||||
"/debian/patches/bugfix/arm/"
|
linux-libre-4.14-source))
|
||||||
"arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch"))
|
|
||||||
(file-name "linux-libre-arm-export-__sync_icache_dcache.patch")
|
(define-public linux-libre-headers-4.9
|
||||||
(sha256
|
(make-linux-libre-headers* linux-libre-4.9-version
|
||||||
(base32 "1ifnfhpakzffn4b8n7x7w5cps9mzjxlkcfz9zqak2vaw8nzvl39f"))))
|
linux-libre-4.9-source))
|
||||||
|
|
||||||
|
(define-public linux-libre-headers-4.4
|
||||||
|
(make-linux-libre-headers* linux-libre-4.4-version
|
||||||
|
linux-libre-4.4-source))
|
||||||
|
|
||||||
|
;; The following package is used in the early bootstrap, and thus must be kept
|
||||||
|
;; stable and with minimal build requirements.
|
||||||
|
(define-public linux-libre-headers-4.14.67
|
||||||
|
(make-linux-libre-headers "4.14.67"
|
||||||
|
"050zvdxjy6sc64q75pr1gxsmh49chwav2pwxz8xlif39bvahnrpg"))
|
||||||
|
|
||||||
|
(define-public linux-libre-headers linux-libre-headers-4.14.67)
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Kernel configurations.
|
||||||
|
;;;
|
||||||
|
|
||||||
(define* (kernel-config arch #:key variant)
|
(define* (kernel-config arch #:key variant)
|
||||||
"Return the absolute file name of the Linux-Libre build configuration file
|
"Return the absolute file name of the Linux-Libre build configuration file
|
||||||
|
@ -295,7 +584,12 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
|
||||||
options)
|
options)
|
||||||
"\n"))
|
"\n"))
|
||||||
|
|
||||||
(define* (make-linux-libre version hash supported-systems
|
|
||||||
|
;;;
|
||||||
|
;;; Kernel package utilities.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define* (make-linux-libre version hash-string supported-systems
|
||||||
#:key
|
#:key
|
||||||
;; A function that takes an arch and a variant.
|
;; A function that takes an arch and a variant.
|
||||||
;; See kernel-config for an example.
|
;; See kernel-config for an example.
|
||||||
|
@ -304,16 +598,32 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
|
||||||
(defconfig "defconfig")
|
(defconfig "defconfig")
|
||||||
(extra-options %default-extra-linux-options)
|
(extra-options %default-extra-linux-options)
|
||||||
(patches (list %boot-logo-patch)))
|
(patches (list %boot-logo-patch)))
|
||||||
|
(make-linux-libre* version
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (linux-libre-urls version))
|
||||||
|
(sha256 (base32 hash-string))
|
||||||
|
(patches patches))
|
||||||
|
supported-systems
|
||||||
|
#:extra-version extra-version
|
||||||
|
#:configuration-file configuration-file
|
||||||
|
#:defconfig defconfig
|
||||||
|
#:extra-options extra-options))
|
||||||
|
|
||||||
|
(define* (make-linux-libre* version source supported-systems
|
||||||
|
#:key
|
||||||
|
;; A function that takes an arch and a variant.
|
||||||
|
;; See kernel-config for an example.
|
||||||
|
(extra-version #f)
|
||||||
|
(configuration-file #f)
|
||||||
|
(defconfig "defconfig")
|
||||||
|
(extra-options %default-extra-linux-options))
|
||||||
(package
|
(package
|
||||||
(name (if extra-version
|
(name (if extra-version
|
||||||
(string-append "linux-libre-" extra-version)
|
(string-append "linux-libre-" extra-version)
|
||||||
"linux-libre"))
|
"linux-libre"))
|
||||||
(version version)
|
(version version)
|
||||||
(source (origin
|
(source source)
|
||||||
(method url-fetch)
|
|
||||||
(uri (linux-libre-urls version))
|
|
||||||
(sha256 (base32 hash))
|
|
||||||
(patches patches)))
|
|
||||||
(supported-systems supported-systems)
|
(supported-systems supported-systems)
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -425,133 +735,105 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
|
||||||
It has been modified to remove all non-free binary blobs.")
|
It has been modified to remove all non-free binary blobs.")
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define %linux-libre-version "5.2.1")
|
|
||||||
(define %linux-libre-hash "1qj3zsjynz45p97n6sngdbh4xfd1jks3hbn85nmhzds6sxgg4c54")
|
;;;
|
||||||
|
;;; Generic kernel packages.
|
||||||
(define %linux-libre-5.2-patches
|
;;;
|
||||||
(list %boot-logo-patch
|
|
||||||
%linux-libre-arm-export-__sync_icache_dcache-patch))
|
|
||||||
|
|
||||||
(define-public linux-libre-5.2
|
(define-public linux-libre-5.2
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre* linux-libre-5.2-version
|
||||||
%linux-libre-hash
|
linux-libre-5.2-source
|
||||||
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
|
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
|
||||||
#:patches %linux-libre-5.2-patches
|
#:configuration-file kernel-config))
|
||||||
#:configuration-file kernel-config))
|
|
||||||
|
|
||||||
(define-public linux-libre-headers-5.2
|
(define-public linux-libre-version linux-libre-5.2-version)
|
||||||
(make-linux-libre-headers %linux-libre-version
|
(define-public linux-libre-pristine-source linux-libre-5.2-pristine-source)
|
||||||
%linux-libre-hash))
|
(define-public linux-libre-source linux-libre-5.2-source)
|
||||||
|
(define-public linux-libre linux-libre-5.2)
|
||||||
(define %linux-libre-4.19-version "4.19.59")
|
|
||||||
(define %linux-libre-4.19-hash "1c9qfw1mnz68ki48kg1brmv47wmsdvq41ip6202rlnmwgncj5yrw")
|
|
||||||
|
|
||||||
(define %linux-libre-4.19-patches
|
|
||||||
(list %boot-logo-patch
|
|
||||||
%linux-libre-arm-export-__sync_icache_dcache-patch))
|
|
||||||
|
|
||||||
(define-public linux-libre-4.19
|
(define-public linux-libre-4.19
|
||||||
(make-linux-libre %linux-libre-4.19-version
|
(make-linux-libre* linux-libre-4.19-version
|
||||||
%linux-libre-4.19-hash
|
linux-libre-4.19-source
|
||||||
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
|
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
|
||||||
#:patches %linux-libre-4.19-patches
|
#:configuration-file kernel-config))
|
||||||
#:configuration-file kernel-config))
|
|
||||||
|
|
||||||
(define-public linux-libre-headers-4.19
|
|
||||||
(make-linux-libre-headers %linux-libre-4.19-version
|
|
||||||
%linux-libre-4.19-hash))
|
|
||||||
|
|
||||||
(define %linux-libre-4.14-version "4.14.133")
|
|
||||||
(define %linux-libre-4.14-hash "16ay2x0r5i96lg4rgcg151352igvwxa7wh98kwdsjbckiw7fhn08")
|
|
||||||
|
|
||||||
(define-public linux-libre-4.14
|
(define-public linux-libre-4.14
|
||||||
(make-linux-libre %linux-libre-4.14-version
|
(make-linux-libre* linux-libre-4.14-version
|
||||||
%linux-libre-4.14-hash
|
linux-libre-4.14-source
|
||||||
'("x86_64-linux" "i686-linux" "armhf-linux")
|
'("x86_64-linux" "i686-linux" "armhf-linux")
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
(define-public linux-libre-headers-4.14
|
|
||||||
(make-linux-libre-headers %linux-libre-4.14-version
|
|
||||||
%linux-libre-4.14-hash))
|
|
||||||
|
|
||||||
(define-public linux-libre-4.9
|
(define-public linux-libre-4.9
|
||||||
(make-linux-libre "4.9.185"
|
(make-linux-libre* linux-libre-4.9-version
|
||||||
"1byz9cxvslm45nv01abhzvrm2isdskx5k11gi5rpa39r7lx6bmjp"
|
linux-libre-4.9-source
|
||||||
'("x86_64-linux" "i686-linux")
|
'("x86_64-linux" "i686-linux")
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
(define-public linux-libre-4.4
|
(define-public linux-libre-4.4
|
||||||
(make-linux-libre "4.4.185"
|
(make-linux-libre* linux-libre-4.4-version
|
||||||
"0df22wqj1nwqp60v8341qcmjhwmdr0hgfraishpc7hic8aqdr4p7"
|
linux-libre-4.4-source
|
||||||
'("x86_64-linux" "i686-linux")
|
'("x86_64-linux" "i686-linux")
|
||||||
#:configuration-file kernel-config
|
#:configuration-file kernel-config
|
||||||
#:extra-options
|
#:extra-options
|
||||||
(append
|
(append
|
||||||
`(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
|
`(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
|
||||||
;; This option was removed upstream in version 4.7.
|
;; This option was removed upstream in version 4.7.
|
||||||
("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t))
|
("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t))
|
||||||
%default-extra-linux-options)))
|
%default-extra-linux-options)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Specialized kernel variants.
|
||||||
|
;;;
|
||||||
|
|
||||||
(define-public linux-libre-arm-veyron
|
(define-public linux-libre-arm-veyron
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre* linux-libre-version
|
||||||
%linux-libre-hash
|
linux-libre-source
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-5.2-patches
|
#:configuration-file kernel-config-veyron
|
||||||
#:configuration-file kernel-config-veyron
|
#:extra-version "arm-veyron"))
|
||||||
#:extra-version "arm-veyron"))
|
|
||||||
|
|
||||||
(define-public linux-libre-headers-4.14.67
|
|
||||||
(make-linux-libre-headers "4.14.67"
|
|
||||||
"050zvdxjy6sc64q75pr1gxsmh49chwav2pwxz8xlif39bvahnrpg"))
|
|
||||||
|
|
||||||
(define-public linux-libre-headers linux-libre-headers-4.14.67)
|
|
||||||
(define-public linux-libre linux-libre-5.2)
|
|
||||||
|
|
||||||
(define-public linux-libre-arm-generic
|
(define-public linux-libre-arm-generic
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre* linux-libre-version
|
||||||
%linux-libre-hash
|
linux-libre-source
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-5.2-patches
|
#:defconfig "multi_v7_defconfig"
|
||||||
#:defconfig "multi_v7_defconfig"
|
#:extra-version "arm-generic"))
|
||||||
#:extra-version "arm-generic"))
|
|
||||||
|
|
||||||
(define-public linux-libre-arm-generic-4.19
|
(define-public linux-libre-arm-generic-4.19
|
||||||
(make-linux-libre %linux-libre-4.19-version
|
(make-linux-libre* linux-libre-4.19-version
|
||||||
%linux-libre-4.19-hash
|
linux-libre-4.19-source
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-4.19-patches
|
#:defconfig "multi_v7_defconfig"
|
||||||
#:defconfig "multi_v7_defconfig"
|
#:extra-version "arm-generic"))
|
||||||
#:extra-version "arm-generic"))
|
|
||||||
|
|
||||||
(define-public linux-libre-arm-generic-4.14
|
(define-public linux-libre-arm-generic-4.14
|
||||||
(make-linux-libre %linux-libre-4.14-version
|
(make-linux-libre* linux-libre-4.14-version
|
||||||
%linux-libre-4.14-hash
|
linux-libre-4.14-source
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:defconfig "multi_v7_defconfig"
|
#:defconfig "multi_v7_defconfig"
|
||||||
#:extra-version "arm-generic"))
|
#:extra-version "arm-generic"))
|
||||||
|
|
||||||
(define-public linux-libre-arm-omap2plus
|
(define-public linux-libre-arm-omap2plus
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre* linux-libre-version
|
||||||
%linux-libre-hash
|
linux-libre-source
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-5.2-patches
|
#:defconfig "omap2plus_defconfig"
|
||||||
#:defconfig "omap2plus_defconfig"
|
#:extra-version "arm-omap2plus"))
|
||||||
#:extra-version "arm-omap2plus"))
|
|
||||||
|
|
||||||
(define-public linux-libre-arm-omap2plus-4.19
|
(define-public linux-libre-arm-omap2plus-4.19
|
||||||
(make-linux-libre %linux-libre-4.19-version
|
(make-linux-libre* linux-libre-4.19-version
|
||||||
%linux-libre-4.19-hash
|
linux-libre-4.19-source
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-4.19-patches
|
#:defconfig "omap2plus_defconfig"
|
||||||
#:defconfig "omap2plus_defconfig"
|
#:extra-version "arm-omap2plus"))
|
||||||
#:extra-version "arm-omap2plus"))
|
|
||||||
|
|
||||||
(define-public linux-libre-arm-omap2plus-4.14
|
(define-public linux-libre-arm-omap2plus-4.14
|
||||||
(make-linux-libre %linux-libre-4.14-version
|
(make-linux-libre* linux-libre-4.14-version
|
||||||
%linux-libre-4.14-hash
|
linux-libre-4.14-source
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:defconfig "omap2plus_defconfig"
|
#:defconfig "omap2plus_defconfig"
|
||||||
#:extra-version "arm-omap2plus"))
|
#:extra-version "arm-omap2plus"))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
Loading…
Reference in New Issue