diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 272 |
1 files changed, 216 insertions, 56 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5d96364892..5b6466c848 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,13 +1,13 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> -;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> +;;; 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 © 2016 Christopher Allan Webber <cwebber@dustycloud.org> -;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> @@ -17,6 +17,8 @@ ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> +;;; Copyright © 2016 ng0 <ng0@libertad.pw> +;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,6 +74,8 @@ #:use-module (gnu packages slang) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) @@ -242,13 +246,15 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." ("bc" ,bc) ("openssl" ,openssl) ("kmod" ,kmod) - ,@(if configuration-file - `(("kconfig" ,(configuration-file - (system->linux-architecture - (or (%current-target-system) - (%current-system))) - #:variant (version-major+minor version)))) - '()))) + ,@(match (and configuration-file + (configuration-file + (system->linux-architecture + (or (%current-target-system) (%current-system))) + #:variant (version-major+minor version))) + (#f ;no config for this platform + '()) + ((? string? config) + `(("kconfig" ,config)))))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) @@ -327,26 +333,26 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define-public linux-libre - (make-linux-libre "4.8.14" - "06rh1j2m4x6kv7prgg2pakw81b7w75dxrl31ch1psf44yqy51q6q" + (make-linux-libre "4.9.3" + "1jd2rz58lcha9ac35glr26lc6hfi49fvpiwshgpd6ygf4irrs82w" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.38" - "038mzv5dj7cj5vywiafniai2f56wh7k2yirv0ac61nvg2v25r2jk" + (make-linux-libre "4.4.42" + "1jd43yvycizgqdmwp9rpj7gpjy37mah8jlqaiskjb0hivyk495yz" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.36" - "0wy7xpqjwn1aprbzrbqgjskcg8qj2mczkv3rcisxf8gcdifz61qh" + (make-linux-libre "4.1.37" + "0q79cxmrz0j5wh7z1dc103q6q6qf7rqgjl7ka8lvn4vl32pr0kq1" %intel-compatible-systems #:configuration-file kernel-config)) ;; Avoid rebuilding kernel variants when there is a minor version bump. -(define %linux-libre-version "4.8.14") -(define %linux-libre-hash "06rh1j2m4x6kv7prgg2pakw81b7w75dxrl31ch1psf44yqy51q6q") +(define %linux-libre-version "4.9.3") +(define %linux-libre-hash "1jd2rz58lcha9ac35glr26lc6hfi49fvpiwshgpd6ygf4irrs82w") (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version @@ -579,7 +585,7 @@ slabtop, and skill.") (define-public usbutils (package (name "usbutils") - (version "006") + (version "008") (source (origin (method url-fetch) @@ -587,10 +593,11 @@ slabtop, and skill.") "usbutils-" version ".tar.xz")) (sha256 (base32 - "03pd57vv8c6x0hgjqcbrxnzi14h8hcghmapg89p8k5zpwpkvbdfr")))) + "132clk14j4nm8crln2jymdbbc2vhzar2j2hnxyh05m79pbq1lx24")))) (build-system gnu-build-system) (inputs - `(("libusb" ,libusb))) + `(("libusb" ,libusb) + ("eudev" ,eudev-with-hwdb))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://www.linux-usb.org/") @@ -615,9 +622,15 @@ slabtop, and skill.") "1ix0b83zgw5n0p2grh2961c6796m92yr2jqc2sbr23x3lfsp8r71")) (modules '((guix build utils))) (snippet - '(substitute* "MCONFIG.in" - (("INSTALL_SYMLINK = /bin/sh") - "INSTALL_SYMLINK = sh"))))) + '(begin + (substitute* "MCONFIG.in" + (("INSTALL_SYMLINK = /bin/sh") + "INSTALL_SYMLINK = sh")) + + ;; Do not include a timestamp in libext2fs.info.gz. + (substitute* "doc/Makefile.in" + (("gzip -9") + "gzip -9n")))))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) @@ -634,6 +647,11 @@ slabtop, and skill.") "--disable-libuuid" "--disable-uuidd" "--disable-fsck" + ;; Use symlinks instead of hard links for + ;; 'fsck.extN' etc. This makes the resulting nar + ;; smaller and is preserved across copies. + "--enable-symlink-install" + ;; Install libext2fs et al. "--enable-elf-shlibs") @@ -699,6 +717,8 @@ slabtop, and skill.") (version (package-version e2fsprogs)) (build-system trivial-build-system) (source #f) + (inputs + `(("e2fsprogs" ,e2fsprogs/static))) (arguments `(#:modules ((guix build utils)) #:builder @@ -707,23 +727,18 @@ slabtop, and skill.") (ice-9 ftw) (srfi srfi-26)) - (let ((source (string-append (assoc-ref %build-inputs "e2fsprogs") - "/sbin")) + (let ((e2fsck (string-append (assoc-ref %build-inputs "e2fsprogs") + "/sbin/e2fsck")) (bin (string-append (assoc-ref %outputs "out") "/sbin"))) (mkdir-p bin) (with-directory-excursion bin - (for-each (lambda (file) - (copy-file (string-append source "/" file) - file) - (remove-store-references file) - (chmod file #o555)) - (scandir source (cut string-prefix? "fsck." <>)))))))) - (inputs `(("e2fsprogs" ,e2fsprogs/static))) - (synopsis "Statically-linked fsck.* commands from e2fsprogs") - (description - "This package provides statically-linked command of fsck.ext[234] taken -from the e2fsprogs package. It is meant to be used in initrds.") + (copy-file e2fsck "e2fsck") + (remove-store-references "e2fsck") + (chmod "e2fsck" #o555)))))) (home-page (package-home-page e2fsprogs)) + (synopsis "Statically-linked e2fsck command from e2fsprogs") + (description "This package provides statically-linked e2fsck command taken +from the e2fsprogs package. It is meant to be used in initrds.") (license (package-license e2fsprogs)))) (define-public extundelete @@ -850,14 +865,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-utils (package (name "alsa-utils") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/" name "-" version ".tar.bz2")) (sha256 (base32 - "0wcha78c2sm8qqk5r3w83cvm8fp6fb1zpd35kmcm24kxhz007xks")))) + "0z0nnqp1707bm02dys2d16m88lsg5nd26bqaf14rl3za9sjifwhj")))) (build-system gnu-build-system) (arguments ;; XXX: Disable man page creation until we have DocBook. @@ -876,7 +891,8 @@ MIDI functionality to the Linux-based operating system.") ;; Don't try to mkdir /var/lib/alsa. (substitute* "Makefile" (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*") - "true\n"))))))) + "true\n")) + #t))))) (inputs `(("libsamplerate" ,libsamplerate) ("ncurses" ,ncurses) @@ -893,6 +909,68 @@ MIDI functionality to the Linux-based operating system.") ;; GPLv2-only. (license license:gpl2))) +(define-public alsa-plugins + (package + (name "alsa-plugins") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.alsa-project.org/pub/plugins/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1w81z5jlwqhd1l2m7qrq69lc4k9dnrg1wn52jsl2hrf3hbhd394f")))) + (build-system gnu-build-system) + ;; TODO: Split libavcodec and speex if possible. It looks like they can not + ;; be split, there are references to both in files. + ;; TODO: Remove OSS related plugins, they add support to run native + ;; ALSA applications on OSS however we do not offer OSS and OSS is + ;; obsolete. + (outputs '("out" "pulseaudio")) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'split + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Distribute the binaries to the various outputs. + (let* ((out (assoc-ref outputs "out")) + (pua (assoc-ref outputs "pulseaudio")) + (pualib (string-append pua "/lib/alsa-lib")) + (puaconf (string-append pua "/share/alsa/alsa.conf.d"))) + (mkdir-p puaconf) + (mkdir-p pualib) + (chdir (string-append out "/share")) + (for-each (lambda (file) + (rename-file file (string-append puaconf "/" (basename file)))) + (find-files out "\\.(conf|example)")) + (for-each (lambda (file) + (rename-file file (string-append pualib "/" (basename file)))) + (find-files out ".*pulse\\.(la|so)")) + (chdir "..") + ;; We have moved the files to output pulsaudio, the + ;; directory is now empty. + (delete-file-recursively (string-append out "/share")) + #t)))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("speex" ,speex) ; libspeexdsp resampling plugin + ("libsamplerate" ,libsamplerate) ; libsamplerate resampling plugin + ("ffmpeg" ,ffmpeg) ; libavcodec resampling plugin, a52 plugin + ("pulseaudio" ,pulseaudio))) ; PulseAudio plugin + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.alsa-project.org/") + (synopsis "Plugins for the Advanced Linux Sound Architecture (ALSA)") + (description + "The Advanced Linux Sound Architecture (ALSA) provides audio and +MIDI functionality to the Linux-based operating system. This package enhances ALSA +by providing additional plugins which include: upmixing, downmixing, jackd and +pulseaudio support for native alsa applications, format conversion (s16 to a52), and +external rate conversion.") + (license (list license:gpl2+ + ;; `rate/rate_samplerate.c': LGPL v2.1 or later. + license:lgpl2.1+)))) + (define-public iptables (package (name "iptables") @@ -1589,7 +1667,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") (define-public kmod (package (name "kmod") - (version "22") + (version "23") (source (origin (method url-fetch) (uri @@ -1597,7 +1675,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") "kmod-" version ".tar.xz")) (sha256 (base32 - "10lzfkmnpq6a43a3gkx7x633njh216w0bjwz31rv8a1jlgg1sfxs")) + "0mc12sx06p8il1ym3hdmgxxb37apn9yv7xij26gddjdfkx8xa0yk")) (patches (search-patches "kmod-module-directory.patch")))) (build-system gnu-build-system) (native-inputs @@ -1662,6 +1740,21 @@ device nodes from /dev/, handles hotplug events and loads drivers at boot time.") (license license:gpl2+))) +(define-public eudev-with-hwdb + ;; TODO: Merge with 'eudev'. + (package + (inherit eudev) + (name "eudev-with-hwdb") + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'install 'build-hwdb + (lambda* (#:key outputs #:allow-other-keys) + ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and + ;; similar tools to display product names. + (let ((out (assoc-ref outputs "out"))) + (zero? (system* (string-append out "/bin/udevadm") + "hwdb" "--update")))))))))) + (define-public lvm2 (package (name "lvm2") @@ -1866,7 +1959,7 @@ compliance.") (define-public wireless-regdb (package (name "wireless-regdb") - (version "2016.05.02") + (version "2016.06.10") (source (origin (method url-fetch) (uri (string-append @@ -1874,7 +1967,7 @@ compliance.") "wireless-regdb-" version ".tar.xz")) (sha256 (base32 - "07n6gcwfbddz3awbdflv3dhxjszsqq2lrdwih0a0ahcliac4qry9")) + "1dxqy7a7zpzya30ff00s8k1qgrlndrwys99gc0r8yg0vab1z3vfg")) ;; We're building 'regulatory.bin' by ourselves. (snippet '(delete-file "regulatory.bin")))) @@ -2147,7 +2240,7 @@ thanks to the use of namespaces.") "CC=gcc")) #:phases (alist-delete 'configure %standard-phases) #:tests? #f)) ; no test suite - (home-page "http://sourceforge.net/projects/hdparm/") + (home-page "https://sourceforge.net/projects/hdparm/") (synopsis "Tune hard disk parameters for high performance") (description "Get/set device parameters for Linux SATA/IDE drives. It's primary use @@ -2213,7 +2306,7 @@ about ACPI devices.") (base32 "1vl7c6vc724v4jwki17czgj6lnrknnj1a6llm8gkl32i2gnam5j3")))) (build-system gnu-build-system) - (home-page "http://sourceforge.net/projects/acpid2/") + (home-page "https://sourceforge.net/projects/acpid2/") (synopsis "Daemon for delivering ACPI events to user-space programs") (description "acpid is designed to notify user-space programs of Advanced @@ -2302,7 +2395,7 @@ capabilities of the Linux kernel.") (define-public libraw1394 (package (name "libraw1394") - (version "2.1.0") + (version "2.1.2") (source (origin (method url-fetch) (uri (string-append @@ -2310,7 +2403,7 @@ capabilities of the Linux kernel.") name "-" version ".tar.xz")) (sha256 (base32 - "0kwnf4ha45c04mhc4yla672aqmvqqihxix1gvblns5cd2pc2cc8b")))) + "0pm5b415j1qdzyw38wdv8h7ff4yx20831z1727mpsb6jc6bwdk03")))) (build-system gnu-build-system) (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page") (synopsis "Interface library for the Linux IEEE1394 drivers") @@ -2338,7 +2431,7 @@ protocol in question.") `(("pkg-config" ,pkg-config))) (propagated-inputs `(("libraw1394" ,libraw1394))) ; required by libavc1394.pc - (home-page "http://sourceforge.net/projects/libavc1394/") + (home-page "https://sourceforge.net/projects/libavc1394/") (synopsis "AV/C protocol library for IEEE 1394") (description "Libavc1394 is a programming interface to the AV/C specification from @@ -2630,7 +2723,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.8.5") + (version "4.9") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -2638,7 +2731,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1vq83a8sz8dnshbyaghacqvcwv2n1kh53yjv87rxx9dc4b0b2iyj")))) + "18y88avadn4wb3xmczd6pfcjr7ik62dw4phk6fmkms2j8vmvl9z2")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of binaries in "out" (~16MiB!) @@ -2665,11 +2758,11 @@ and copy/paste text in the console and in xterm.") (native-inputs `(("pkg-config" ,pkg-config) ("asciidoc" ,asciidoc) ("xmlto" ,xmlto) - ;; For building documentation + ;; For building documentation. ("libxml2" ,libxml2) ("docbook-xml" ,docbook-xml) ("docbook-xsl" ,docbook-xsl) - ;; For tests + ;; For tests. ("which" ,which))) (home-page "https://btrfs.wiki.kernel.org/") (synopsis "Create and manage btrfs copy-on-write file systems") @@ -2680,6 +2773,36 @@ easy administration.") ;; GPL2: Everything else. (license (list license:gpl2 license:gpl2+)))) +(define-public btrfs-progs/static + (package + (name "btrfs-progs-static") + (version (package-version btrfs-progs)) + (source #f) + (build-system trivial-build-system) + (inputs + `(("btrfs-progs:static" ,btrfs-progs "static"))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 ftw) + (srfi srfi-26)) + + (let* ((btrfs (assoc-ref %build-inputs "btrfs-progs:static")) + (out (assoc-ref %outputs "out")) + (source (string-append btrfs "/bin/btrfs.static")) + (target (string-append out "/bin/btrfs"))) + (mkdir-p (dirname target)) + (copy-file source target) + (remove-store-references target) + (chmod target #o555))))) + (home-page (package-home-page btrfs-progs)) + (synopsis "Statically-linked btrfs command from btrfsprogs") + (description "This package provides statically-linked command of btrfs taken +from the btrfsprogs package. It is meant to be used in initrds.") + (license (package-license btrfs-progs)))) + (define-public freefall (package (name "freefall") @@ -2819,7 +2942,7 @@ The package provides additional NTFS tools.") (description "Monitor a hardware random number generator, and supply entropy from that to the system kernel's @file{/dev/random} machinery.") - (home-page "http://sourceforge.net/projects/gkernel") + (home-page "https://sourceforge.net/projects/gkernel") ;; The source package is offered under the GPL2+, but the files ;; 'rngd_rdrand.c' and 'rdrand_asm.S' are only available under the GPL2. (license (list license:gpl2 license:gpl2+)))) @@ -2993,14 +3116,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "144") + (version "147") (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 - "03jyhsl0s59sfqykj5p6gkb03k4w1h9ay31yxym1dnzis5sq99pa")) + "10xxmqpd348ifbs7w8j0m53agp28r6imv237ha3kmhp632hmyf1d")) (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet @@ -3202,3 +3325,40 @@ Extensible Firmware Interface (EFI) Boot Manager. This application can create and destroy boot entries, change the boot order, change the next running boot option, and more.") (license license:gpl2+))) + +(define-public sysstat + (package + (name "sysstat") + (version "11.4.2") + (source (origin + (method url-fetch) + (uri (string-append "http://perso.orange.fr/sebastien.godard/" + "sysstat-" version ".tar.xz")) + (sha256 + (base32 + "0f8gk1hma3bk198ziwrhh5jhisnbbgc1v4rxhny58n0zjzw0gm0z")))) + (build-system gnu-build-system) + (arguments + `(#: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 + (list "--disable-file-attr" + (string-append "conf_dir=" (assoc-ref %outputs "out") "/etc")) + #:phases + (modify-phases %standard-phases + ;; The build process tries to create '/var/lib/sa', so we skip that + ;; instruction. + (add-after 'build 'skip-touching-var + (lambda _ + (substitute* "Makefile" + (("mkdir -p \\$\\(DESTDIR\\)\\$\\(SA_DIR\\)") + "")) + #t))))) + (home-page "http://sebastien.godard.pagesperso-orange.fr/") + (synopsis "Performance monitoring tools for Linux") + (description "The sysstat utilities are a collection of performance +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+))) |