diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 256 |
1 files changed, 222 insertions, 34 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fde516e228..f9b8810b06 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> -;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> @@ -17,8 +17,12 @@ ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> +;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com> ;;; Copyright © 2016 ng0 <ng0@libertad.pw> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> +;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com> +;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> +;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +47,7 @@ #:use-module (gnu packages attr) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages calendar) #:use-module (gnu packages check) @@ -61,8 +66,10 @@ #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages libusb) + #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages perl) #:use-module (gnu packages pciutils) #:use-module (gnu packages pkg-config) @@ -102,6 +109,13 @@ ((string-prefix? "aarch64" arch) "arm64") (else arch)))) +(define-public (system->defconfig system) + "Some systems (notably powerpc-linux) require a special target for kernel +defconfig. Return the appropiate make target if applicable, otherwise return +\"defconfig\"." + (cond ((string-prefix? "powerpc-" system) "pmac32_defconfig") + (else "defconfig"))) + (define (linux-libre-urls version) "Return a list of URLs for Linux-Libre VERSION." (list (string-append @@ -121,13 +135,13 @@ (define-public linux-libre-headers (package (name "linux-libre-headers") - (version "4.4.18") + (version "4.4.47") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0k8k17in7dkjd9d8zg3i8l1ax466dba6bxw28flxizzyq8znljps")))) + "00zdq7swhvzbbnnhzizq6m34q5k4fycpcp215bmkbxh1ic76v7bs")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments @@ -141,11 +155,13 @@ (lambda _ (let ((arch ,(system->linux-architecture (or (%current-target-system) - (%current-system))))) + (%current-system)))) + (defconfig ,(system->defconfig + (or (%current-target-system) + (%current-system))))) (setenv "ARCH" arch) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")) - - (and (zero? (system* "make" "defconfig")) + (and (zero? (system* "make" defconfig)) (zero? (system* "make" "mrproper" "headers_check")))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -332,28 +348,33 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) +(define %linux-libre-version "4.10") +(define %linux-libre-hash "167zzgkivpqsp07did25wjqsswddzp3gifcdkq7xk00llxlmspla") + (define-public linux-libre - (make-linux-libre "4.9.4" - "12b2ncaan33zqj70qss7b4z3baxxrikb24j1hqc5rw9v8xlv8w6v" + (make-linux-libre %linux-libre-version + %linux-libre-hash + %intel-compatible-systems + #:configuration-file kernel-config)) + +(define-public linux-libre-4.9 + (make-linux-libre "4.9.11" + "1gypfg2984zr4z7hihnl3bbpxnk1mrqbynb6xd8ad2v2z04aw13q" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.43" - "1q78sza4nxwjsnwyklvrnihi0vwd4v9gglh8lms8jrl06cdp1ivy" + (make-linux-libre "4.4.50" + "0c157kk0vgrb1fsyy4q3czqdg4npgql82n6p303afy8ylh2w6d3l" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.37" - "0q79cxmrz0j5wh7z1dc103q6q6qf7rqgjl7ka8lvn4vl32pr0kq1" + (make-linux-libre "4.1.38" + "165kmzglhg63hn7y4q7r6cb2dpsljxiq1czvgyx0bkd1vd2bcvsa" %intel-compatible-systems #:configuration-file kernel-config)) -;; Avoid rebuilding kernel variants when there is a minor version bump. -(define %linux-libre-version "4.9.4") -(define %linux-libre-hash "12b2ncaan33zqj70qss7b4z3baxxrikb24j1hqc5rw9v8xlv8w6v") - (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version %linux-libre-hash @@ -454,7 +475,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.28.1") + (version "2.29.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -462,7 +483,7 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "03xnaw3c7pavxvvh1vnimcr44hlhhf25whawiyv8dxsflfj4xkiy")) + "0kzmhb2swiqk402jp0y2jsx53l42d7z4xz3bzbn2zv1lp400dr0c")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet @@ -478,7 +499,7 @@ providing the system administrator with some help in common tasks.") "static")) ; >2 MiB of static .a libraries (arguments `(#:configure-flags (list "--disable-use-tty-group" - + "--enable-fs-paths-default=/run/current-system/profile/sbin" ;; Install completions where our ;; bash-completion package expects them. (string-append "--with-bashcompletiondir=" @@ -1165,7 +1186,7 @@ advanced aspects of IP configuration (iptunnel, ipmaddr).") (define-public libcap (package (name "libcap") - (version "2.24") + (version "2.25") (source (origin (method url-fetch) (uri (string-append @@ -1173,7 +1194,7 @@ advanced aspects of IP configuration (iptunnel, ipmaddr).") "libcap2/libcap-" version ".tar.xz")) (sha256 (base32 - "0rbc9qbqs5bp9am9s9g83wxj5k4ixps2agy9dxr1v1fwg27mdr6f")))) + "0qjiqc5pknaal57453nxcbz3mn1r4hkyywam41wfcglq3v2qlg39")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -1590,14 +1611,14 @@ system.") (define-public kbd (package (name "kbd") - (version "2.0.3") + (version "2.0.4") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-" version ".tar.xz")) (sha256 (base32 - "0ppv953gn2zylcagr4z6zg5y2x93dxrml29plypg6xgbq3hrv2bs")) + "124swm93dm4ca0pifgkrand3r9gvj3019d4zkfxsj9djpvv0mnaz")) (modules '((guix build utils))) (snippet '(begin @@ -1758,14 +1779,14 @@ time.") (define-public lvm2 (package (name "lvm2") - (version "2.02.166") + (version "2.02.168") (source (origin (method url-fetch) (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2." version ".tgz")) (sha256 (base32 - "150v0mawd2swdvypcmkjd3h3s4n5i1220h6sxx94a8jvp1kb0871")) + "03b62hcsj9z37ckd8c21wwpm07s9zblq7grfh58yzcs1vp6x38r3")) (modules '((guix build utils))) (snippet '(begin @@ -2465,7 +2486,7 @@ MPEG-2 and audio over Linux IEEE 1394.") (define-public mdadm (package (name "mdadm") - (version "3.4") + (version "4.0") (source (origin (method url-fetch) (uri (string-append @@ -2473,13 +2494,14 @@ MPEG-2 and audio over Linux IEEE 1394.") version ".tar.xz")) (sha256 (base32 - "0248v9f28mrbwabl94ck22gfim29sqhkf70wrpfi52nk4x3bxl17")))) + "1ad3mma641946wn5lsllwf0lifw9lps34fv1nnkhyfpd9krffshx")))) (build-system gnu-build-system) (inputs `(("udev" ,eudev))) (arguments `(#:make-flags (let ((out (assoc-ref %outputs "out"))) - (list "INSTALL=install" + (list "CC=gcc" + "INSTALL=install" "CHECK_RUN_DIR=0" ;; TODO: tell it where to find 'sendmail' ;; (string-append "MAILCMD=" <???> "/sbin/sendmail") @@ -2656,7 +2678,7 @@ is flexible, efficient and uses a modular implementation.") (define-public fuse-exfat (package (name "fuse-exfat") - (version "1.2.5") + (version "1.2.6") (source (origin (method url-fetch) (uri (string-append @@ -2664,7 +2686,7 @@ is flexible, efficient and uses a modular implementation.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1i0sh0s6wnm4dqxli3drva871wgbbm57qjf592vnswna9hc6bvim")))) + "1rvq4hapy2anal1vg1yidv4x8rg4iw5sxfwqixkw0q2qsxb54471")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2723,7 +2745,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.9") + (version "4.9.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -2731,7 +2753,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "18y88avadn4wb3xmczd6pfcjr7ik62dw4phk6fmkms2j8vmvl9z2")))) + "1ppy2y9vypxw9awchari21yd3s2d7w2a9q3f4jq7dnjy5gyrnjj6")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of binaries in "out" (~16MiB!) @@ -2902,6 +2924,7 @@ from userspace.") (base32 "180y5y09h30ryf2vim8j30a2npwz1iv9ly5yjmh3wjdkwh2jrdyp")) (modules '((guix build utils))) + (patches (search-patches "ntfs-3g-CVE-2017-0358.patch")) (snippet ;; Install under $prefix. '(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") @@ -3116,14 +3139,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "147") + (version "148") (source (origin (method url-fetch) (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/" "mcelog.git/snapshot/v" version ".tar.gz")) (sha256 (base32 - "10xxmqpd348ifbs7w8j0m53agp28r6imv237ha3kmhp632hmyf1d")) + "1d5g09ndfsnl56vyhb5xw0zxspnh0f937biw3agqhdfbvw40j9jr")) (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet @@ -3362,3 +3385,168 @@ monitoring tools for Linux. These include @code{mpstat}, @code{iostat}, @code{tapestat}, @code{cifsiostat}, @code{pidstat}, @code{sar}, @code{sadc}, @code{sadf} and @code{sa}.") (license license:gpl2+))) + +(define-public light + (package + (name "light") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/haikarainen/" name + "/archive/v" version ".tar.gz")) + (sha256 + (base32 + "0r5gn6c0jcxknzybl6059dplxv46dpahchqq4gymrs7z8bp0hilp")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-makefile + (lambda _ + (substitute* "Makefile" (("chown") "#"))))))) + (native-inputs + `(("help2man" ,help2man))) + (home-page "https://haikarainen.github.io/light") + (synopsis "GNU/Linux application to control backlights") + (description + "Light is a program to send commands to screen backlight controllers +under GNU/Linux. Features include: + +@itemize +@item It does not rely on X. +@item Light can automatically figure out the best controller to use, making +full use of underlying hardware. +@item It is possible to set a minimum brightness value, as some controllers +set the screen to be pitch black at a vaĺue of 0 (or higher). +@end itemize + +Light is the successor of lightscript.") + (license license:gpl3+))) + +(define-public tlp + (package + (name "tlp") + (version "0.9") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/linrunner/" + (string-upcase name) + "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0xksm8ar6dbq0azbfz8qs9yyzqg1j333lyd5znc074rz8inj4yw8")))) + (inputs `(("bash" ,bash) + ("dbus" ,dbus) + ("ethtool" ,ethtool) + ("eudev" ,eudev) + ("grep" ,grep) + ("hdparm" ,hdparm) + ("inetutils" ,inetutils) + ("iw" ,iw) + ("kmod" ,kmod) + ("pciutils" ,pciutils) + ("perl" ,perl) + ("rfkill" ,rfkill) + ("sed" ,sed) + ("usbutils" ,usbutils) + ("util-linux" ,util-linux) + ("wireless-tools" ,wireless-tools))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'setenv + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "TLP_WITH_SYSTEMD" "0") + (setenv "TLP_NO_INIT" "1") + (setenv "TLP_NO_PMUTILS" "1") + (setenv "TLP_SBIN" (string-append out "/bin")) + (setenv "TLP_BIN" (string-append out "/bin")) + (setenv "TLP_TLIB" (string-append out "/share/tlp-pm")) + (setenv "TLP_ULIB" (string-append out "/lib/udev")) + (setenv "TLP_CONF" (string-append out "/etc/tlp")) + (setenv "TLP_SHCPL" + (string-append out "/share/bash-completion/completions")) + (setenv "TLP_MAN" (string-append out "/share/man"))))) + (delete 'check) + (replace 'install + (lambda _ + (system "make install-tlp install-man"))) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) + (bin-files (find-files bin ".*"))) + (define (bin-directory input-name) + (string-append (assoc-ref inputs input-name) "/bin")) + (define (sbin-directory input-name) + (string-append (assoc-ref inputs input-name) "/sbin")) + (for-each (lambda (program) + (wrap-program program + `("PATH" ":" prefix + ,(append + (map bin-directory '("bash" + "coreutils" + "dbus" + "eudev" + "grep" + "inetutils" + "kmod" + "perl" + "sed" + "usbutils" + "util-linux")) + (map sbin-directory '("ethtool" + "hdparm" + "iw" + "pciutils" + "rfkill" + "wireless-tools")))))) + bin-files))))))) + (home-page "http://linrunner.de/en/tlp/tlp.html") + (synopsis "Power management tool for Linux") + (description "TLP is a power management tool for Linux. It comes with +a default configuration already optimized for battery life. Nevertheless, +TLP is customizable to fulfil system requirements. TLP settings are applied +every time the power supply source is changed.") + + ;; 'COPYING' is a custom version that says that one file is GPLv3+ and the + ;; rest is GPLv2+. + (license (list license:gpl2+ license:gpl3+)))) + +(define-public lshw + (package + (name "lshw") + (version "B.02.18") + (source (origin + (method url-fetch) + (uri (string-append "https://www.ezix.org/software/" + "files/lshw-" version + ".tar.gz")) + (sha256 + (base32 + "0brwra4jld0d53d7jsgca415ljglmmx1l2iazpj4ndilr48yy8mf")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases (delete 'configure)) + #:tests? #f ; no tests + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + (synopsis "List hardware information") + (description + "@command{lshw} (Hardware Lister) is a small tool to provide +detailed information on the hardware configuration of the machine. +It can report exact memory configuration, firmware version, mainboard +configuration, CPU version and speed, cache configuration, bus speed, +and more on DMI-capable x86 or EFI (IA-64) systems and on some PowerPC +machines (PowerMac G4 is known to work).") + (home-page "https://www.ezix.org/project/wiki/HardwareLiSter") + (license license:gpl2+))) |