X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/f97c67a275c2d95e512dcfa8089a7a15cda8665a..d80a47f2f53a686a0aef9ecf50d5d7f35e153a09:/gnu/packages/linux.scm diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 315f24061e..2df4c86cea 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -106,6 +106,7 @@ #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) @@ -340,7 +341,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (kmod (assoc-ref (or native-inputs inputs) "kmod"))) ;; Install kernel image, kernel configuration and link map. (for-each (lambda (file) (install-file file out)) - (find-files "." "^(\\.config|bzImage|zImage|vmlinuz|System\\.map)$")) + (find-files "." "^(\\.config|bzImage|zImage|Image|vmlinuz|System\\.map)$")) ;; Install device tree files (for-each (lambda (file) (install-file file dtbdir)) (find-files "." "\\.dtb$")) @@ -363,8 +364,8 @@ 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.12.2") -(define %linux-libre-hash "12jqvkp7vyhmqahkk2yv6qdfxan9r6y1999hcbmjl4z6qkv38pc3") +(define %linux-libre-version "4.12.8") +(define %linux-libre-hash "1p4ah15qs94id2yj6lhp6abdycvgp7lvn3ccsfs7f6n34hdij0cm") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -373,20 +374,20 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.38" - "13pfawwnf46yqsrx3k5mj4pa7cs2x4v23qi8ncpxz0vqzgz9xxrd" + (make-linux-libre "4.9.44" + "0a92bsb5d0pyhyn5ypc8ashwxixhivdadvikcpv31376j842fmj2" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.78" - "0g8pc0kam33rn2dx9fkp7w749s38qs2iykawpj0k9jm19775hn4k" + (make-linux-libre "4.4.83" + "1fv3j0w0v82aa9s9n4a4qyrxc5bpq2ag9riawlabx57a380x1n62" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.42" - "1g5jhn7cm6ixn7w8ciqm6qgxv7k1jg50v6k05hsvzvrqfpaxqlbz" + (make-linux-libre "4.1.43" + "0ycqmvczj7lm7czilnwpyp14n2lzilyx7m43rsq1qdm2m5rp4q2w" %intel-compatible-systems #:configuration-file kernel-config)) @@ -679,16 +680,17 @@ slabtop, and skill.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.43.4") + (version "1.43.5") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/people/tytso/" name "/v" version "/" name "-" version ".tar.xz")) + (patches (search-patches "e2fsprogs-32bit-quota-warnings.patch")) (sha256 (base32 - "092absr4vrlqrkdf9nwh4ykj40ab6hhwrkdr6sjsccd54c8z5csl")))) + "05ssjpmy0fpv2ik6ibm1f47wr6794nf0q50r581vygrqvsd3s7r6")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) @@ -821,36 +823,36 @@ ext3 or ext4 partition.") (define-public zerofree (package (name "zerofree") - (version "1.0.3") - (home-page "http://intgat.tigress.co.uk/rmy/uml/") + (version "1.1.0") + (home-page "https://frippery.org/uml/") (source (origin (method url-fetch) (uri (string-append home-page name "-" version ".tgz")) (sha256 (base32 - "1xncw3dn2cp922ly42m96p6fh7jv8ysg6bwqbk5xvw701f3dmkrs")))) + "059g29x5r1xj6wcj4xj85l8w6qrxyl86yqbybjqqz6nxz4falxzf")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (mkdir-p bin) - (copy-file "zerofree" - (string-append bin "/zerofree")) - (chmod (string-append bin "/zerofree") - #o555) - #t)) - (alist-delete 'configure %standard-phases)) - #:tests? #f)) ;no tests + '(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (replace 'install + ;; The Makefile lacks an ‘install’ target. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (chmod "zerofree" #o555) + (install-file "zerofree" bin) + #t)))) + #:tests? #f)) ; no tests (inputs `(("libext2fs" ,e2fsprogs))) (synopsis "Zero non-allocated regions in ext2/ext3/ext4 file systems") (description - "The zerofree command scans the free blocks in an ext2 file system and -fills any non-zero blocks with zeroes. This is a useful way to make disk -images more compressible.") + "Zerofree finds the unallocated blocks with non-zero value content in an +ext2, ext3, or ext4 file system and fills them with zeroes (or another value). +This is a simple way to make disk images more compressible. +Zerofree requires the file system to be unmounted or mounted read-only.") (license license:gpl2))) (define-public strace @@ -1187,14 +1189,96 @@ consists of several tools, of which the most important are @command{ip} and messages and are accompanied by a set of manpages.") (license license:gpl2+))) +;; There are two packages for net-tools. The first, net-tools, is more recent +;; and probably safer to use with untrusted inputs (i.e. the internet). The +;; second, net-tools-for-tests, is relatively old and buggy. It can be used in +;; package test suites and should never be referred to by a built package. Use +;; #:disallowed-references to enforce this. +;; +;; When we are able to rebuild many packages (i.e. core-updates), we can update +;; net-tools-for-tests if appropriate. +;; +;; See for more information. (define-public net-tools ;; XXX: This package is basically unmaintained, but it provides a few ;; commands not yet provided by Inetutils, such as 'route', so we have to ;; live with it. - (package - (name "net-tools") + (let ((commit "479bb4a7e11a4084e2935c0a576388f92469225b") + (revision "0")) + (package + (name "net-tools") + (version (string-append "1.60-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.code.sf.net/p/net-tools/code") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "189mdjfbd7j7j0jysy34nqn5byy9g5f6ylip1sikk7kz08vjml4s")))) + (home-page "http://net-tools.sourceforge.net/") + (build-system gnu-build-system) + (arguments + '(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/bin")) + (mkdir-p (string-append out "/sbin")) + + ;; Pretend we have everything... + (system "yes | make config") + + ;; ... except for the things we don't have. + ;; HAVE_AFDECnet requires libdnet, which we don't have. + ;; HAVE_HWSTRIP and HAVE_HWTR require kernel headers + ;; that have been removed. + ;; XXX SELINUX and AFBLUETOOTH are removed for now, but we should + ;; think about adding them later. + (substitute* '("config.make" "config.h") + (("^.*HAVE_(AFDECnet|HWSTRIP|HWTR|SELINUX|AFBLUETOOTH)[ =]1.*$") + ""))))) + (add-after 'install 'remove-redundant-commands + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove commands and man pages redundant with Inetutils. + (let* ((out (assoc-ref outputs "out")) + (dup (append-map (cut find-files out <>) + '("^hostname" + "^(yp|nis|dns)?domainname")))) + (for-each delete-file dup) + #t)))) + ;; Binaries that depend on libnet-tools.a don't declare that + ;; dependency, making it parallel-unsafe. + #:parallel-build? #f + + #:tests? #f ; no test suite + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list "CC=gcc" + (string-append "BASEDIR=" out) + (string-append "INSTALLNLSDIR=" out "/share/locale") + (string-append "mandir=/share/man"))))) + (native-inputs `(("gettext" ,gettext-minimal))) + (synopsis "Tools for controlling the network subsystem in Linux") + (description + "This package includes the important tools for controlling the network +subsystem of the Linux kernel. This includes arp, ifconfig, netstat, rarp and +route. Additionally, this package contains utilities relating to particular +network hardware types (plipconfig, slattach) and advanced aspects of IP +configuration (iptunnel, ipmaddr).") + (license license:gpl2+)))) + +(define-public net-tools-for-tests + (hidden-package (package (inherit net-tools) (version "1.60") - (home-page "http://net-tools.sourceforge.net/") + ;; Git depends on net-tools-for-tests via GnuTLS, so we can't use git-fetch + ;; here. We should find a better workaround for this problem so that we can + ;; use the latest upstream source. (source (origin (method url-fetch) (uri (list (string-append @@ -1270,23 +1354,17 @@ messages and are accompanied by a set of manpages.") ;; Use the big Debian patch set (the thing does not even compile out of ;; the box.) + ;; XXX The patch is not actually applied, due to a bug in the 'patch' phase + ;; above. However, this package variant is only used in GnuTLS's tests. It + ;; will be adjusted when convenient for the build farm. + ;; See for more information. (inputs `(("patch" ,(origin (method url-fetch) (uri "http://ftp.de.debian.org/debian/pool/main/n/net-tools/net-tools_1.60-24.2.diff.gz") (sha256 (base32 - "0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p")))))) - (native-inputs `(("gettext" ,gettext-minimal))) - - (synopsis "Tools for controlling the network subsystem in Linux") - (description - "This package includes the important tools for controlling the network -subsystem of the Linux kernel. This includes arp, ifconfig, netstat, rarp and -route. Additionally, this package contains utilities relating to particular -network hardware types (plipconfig, slattach) and advanced aspects of IP -configuration (iptunnel, ipmaddr).") - (license license:gpl2+))) + "0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p"))))))))) (define-public libcap (package @@ -1386,7 +1464,29 @@ transparently through a bridge.") (base32 "1r3lw3hjvqxi5zqyq2w1qadm3gisd9nlf71dkl4yplacmssnhm3h")))) (build-system gnu-build-system) - (native-inputs `(("flex" ,flex) ("bison" ,bison))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("libnl3-doc" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/thom311/libnl/releases/download/libnl" + (string-join (string-split version #\.) "_") + "/libnl-doc-" version ".tar.gz")) + (sha256 + (base32 "0srab805yj8wb13l64qjyp3mdbqapxg5vk46v3zlhhzpmxqw8j7r")))))) + (outputs '("out" "doc")) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-doc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((dest (string-append (assoc-ref outputs "doc") + "/share/doc/libnl"))) + (mkdir-p dest) + (zero? (system* "tar" "xf" (assoc-ref inputs "libnl3-doc") + "--strip-components=1" "-C" dest)))))))) (home-page "http://www.infradead.org/~tgr/libnl/") (synopsis "NetLink protocol library suite") (description @@ -1668,7 +1768,7 @@ UnionFS-FUSE additionally supports copy-on-write.") (define-public sshfs-fuse (package (name "sshfs-fuse") - (version "2.9") + (version "2.10") (source (origin (method url-fetch) (uri (string-append "https://github.com/libfuse/sshfs/releases/" @@ -1676,7 +1776,7 @@ UnionFS-FUSE additionally supports copy-on-write.") ".tar.gz")) (sha256 (base32 - "1pp5wsl1jx11apkv2fpp559miifqhi8ka400npy5awp9ghlf3la6")))) + "00fir2iykdx11g8nv5gijg0zjrp2g3ldypnv0yi6lq3h5pg5v13h")))) (build-system gnu-build-system) (inputs `(("fuse" ,fuse) @@ -3013,22 +3113,10 @@ applications running on the Linux console. It allows users to select items and copy/paste text in the console and in xterm.") (license license:gpl2+))) -(define-public ncurses/gpm - (package/inherit ncurses - (name "ncurses-with-gpm") - (arguments - (substitute-keyword-arguments (package-arguments ncurses) - ((#:configure-flags cf) - `(cons (string-append "--with-gpm=" - (assoc-ref %build-inputs "gpm") - "/lib/libgpm.so.2") ,cf)))) - (inputs - `(("gpm" ,gpm))))) - (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.11.1") + (version "4.12") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3036,10 +3124,10 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "0vcp9a0a35chhjhq291kvirqhd4i9w5f4zql4y5n81kbwcrxil6h")))) + "1kif8xw2dbyc70ygkp0wyq4x96p1mkwdv4430f99qllx9b410xwi")))) (build-system gnu-build-system) (outputs '("out" - "static")) ; static versions of binaries in "out" (~16MiB!) + "static")) ; static versions of the binaries in "out" (arguments '(#:phases (modify-phases %standard-phases (add-after 'build 'build-static @@ -3197,16 +3285,15 @@ from userspace.") (define-public ntfs-3g (package (name "ntfs-3g") - (version "2016.2.22") + (version "2017.3.23") (source (origin (method url-fetch) (uri (string-append "https://tuxera.com/opensource/" "ntfs-3g_ntfsprogs-" version ".tgz")) (sha256 (base32 - "180y5y09h30ryf2vim8j30a2npwz1iv9ly5yjmh3wjdkwh2jrdyp")) + "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy")) (modules '((guix build utils))) - (patches (search-patches "ntfs-3g-CVE-2017-0358.patch")) (snippet ;; Install under $prefix. '(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") @@ -3222,7 +3309,7 @@ from userspace.") "--enable-mount-helper" "--enable-posix-acls" "--enable-xattr-mappings"))) - (home-page "http://www.tuxera.com/community/open-source-ntfs-3g/") + (home-page "https://www.tuxera.com/community/open-source-ntfs-3g/") (synopsis "Read-write access to NTFS file systems") (description "NTFS-3G provides read-write access to NTFS file systems, which are