summaryrefslogtreecommitdiff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm284
1 files changed, 199 insertions, 85 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 958d111403..75da0d420f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -80,6 +80,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages rrdtool)
+ #:use-module (gnu packages samba)
#:use-module (gnu packages slang)
#:use-module (gnu packages storage)
#:use-module (gnu packages texinfo)
@@ -353,8 +354,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.10.13")
-(define %linux-libre-hash "0sl3w4id3amahv42xg2ac0lqhxn5dih2vm7wyxnfja4c3g4hshn4")
+(define %linux-libre-version "4.11")
+(define %linux-libre-hash "0j1bzzq9iq5i1zm7gnig8v0clr8wq303kvcdsaifc0r0ggz1mx1n")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@@ -363,14 +364,14 @@ 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.25"
- "15vcphpz40n75jwhbpbwiqvgxsdn05n6nbfg5cksyy24f9fpd35k"
+ (make-linux-libre "4.9.27"
+ "1b39zijjkv21kya359y4g88w5ff110v95pvc4wfvc83dvik9hny5"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.64"
- "02fvsklimzgkhsjg3i6mjhf09b4kvgwr2cg2nak5li3fpjmw1y35"
+ (make-linux-libre "4.4.67"
+ "1nadmrd26llc17ipig7bx7rf2gwns94g86a3ilcvgdk17hq5riss"
%intel-compatible-systems
#:configuration-file kernel-config))
@@ -467,7 +468,7 @@ at login. Local and dynamic reconfiguration are its key features.")
(define-public psmisc
(package
(name "psmisc")
- (version "22.20")
+ (version "22.21")
(source
(origin
(method url-fetch)
@@ -475,10 +476,10 @@ at login. Local and dynamic reconfiguration are its key features.")
version ".tar.gz"))
(sha256
(base32
- "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi"))))
+ "0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)))
- (home-page "http://psmisc.sourceforge.net/")
+ (home-page "https://gitlab.com/psmisc/psmisc")
(synopsis
"Small utilities that use the proc file system")
(description
@@ -646,7 +647,7 @@ slabtop, and skill.")
(define-public e2fsprogs
(package
(name "e2fsprogs")
- (version "1.42.13")
+ (version "1.43.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -655,79 +656,66 @@ slabtop, and skill.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1ix0b83zgw5n0p2grh2961c6796m92yr2jqc2sbr23x3lfsp8r71"))
- (modules '((guix build utils)))
- (snippet
- '(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"))))))
+ "092absr4vrlqrkdf9nwh4ykj40ab6hhwrkdr6sjsccd54c8z5csl"))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux)))
(native-inputs `(("pkg-config" ,pkg-config)
- ("texinfo" ,texinfo))) ;for the libext2fs Info manual
+ ("texinfo" ,texinfo) ;for the libext2fs Info manual
+
+ ;; For tests.
+ ("perl" ,perl)
+ ("procps" ,procps)))
(arguments
- '(;; Parallel building reliably yields a failure like this:
- ;; "make[2]: *** No rule to make target '../lib/libss.so', needed by
- ;; 'debugfs'. Stop."
- #:parallel-build? #f
- ;; util-linux is the preferred source for some of the libraries and
+ '(;; util-linux is the preferred source for some of the libraries and
;; commands, so disable them (see, e.g.,
;; <http://git.buildroot.net/buildroot/commit/?id=e1ffc2f791b33633>.)
- #:configure-flags '("--disable-libblkid"
- "--disable-libuuid" "--disable-uuidd"
- "--disable-fsck"
+ #:configure-flags (list "--disable-libblkid"
+ "--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"
+ ;; 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")
+ (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out")
+ "/lib")
- #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
- (assoc-ref %outputs "out")
- "/lib"))
+ ;; Install libext2fs et al.
+ "--enable-elf-shlibs")
- #:phases (alist-cons-before
- 'configure 'patch-shells
- (lambda _
- (substitute* "configure"
- (("/bin/sh (.*)parse-types.sh" _ dir)
- (string-append (which "sh") " " dir
- "parse-types.sh")))
- (substitute* (find-files "." "^Makefile.in$")
- (("#!/bin/sh")
- (string-append "#!" (which "sh")))))
- (alist-cons-after
- 'install 'install-libs
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib")))
- (and (zero? (system* "make" "install-libs"))
-
- ;; Make the .a writable so that 'strip' works.
- ;; Failing to do that, due to debug symbols, we
- ;; retain a reference to the final
- ;; linux-libre-headers, which refer to the
- ;; bootstrap binaries.
- (let ((archives (find-files lib "\\.a$")))
- (for-each (lambda (file)
- (chmod file #o666))
- archives)
- #t))))
- %standard-phases))
-
- ;; FIXME: Tests work by comparing the stdout/stderr of programs, that
- ;; they fail because we get an extra line that says "Can't check if
- ;; file system is mounted due to missing mtab file".
- #:tests? #f))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-shells
+ (lambda _
+ (substitute* "configure"
+ (("/bin/sh (.*)parse-types.sh" _ dir)
+ (string-append (which "sh") " " dir
+ "parse-types.sh")))
+ (substitute* "MCONFIG.in"
+ (("INSTALL_SYMLINK = /bin/sh")
+ "INSTALL_SYMLINK = sh"))
+ (substitute* (find-files "." "^Makefile.in$")
+ (("#!/bin/sh")
+ (string-append "#!" (which "sh"))))
+ #t))
+ (add-after 'install 'install-libs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (and (zero? (system* "make" "install-libs"))
+
+ ;; Make the .a writable so that 'strip' works.
+ ;; Failing to do that, due to debug symbols, we
+ ;; retain a reference to the final
+ ;; linux-libre-headers, which refer to the
+ ;; bootstrap binaries.
+ (let ((archives (find-files lib "\\.a$")))
+ (for-each (lambda (file)
+ (chmod file #o666))
+ archives)
+ #t))))))))
(home-page "http://e2fsprogs.sourceforge.net/")
(synopsis "Creating and checking ext2/ext3/ext4 file systems")
(description
@@ -1697,7 +1685,7 @@ system.")
("bzip2" ,bzip2)
("pam" ,linux-pam)))
(native-inputs `(("pkg-config" ,pkg-config)))
- (home-page "ftp://ftp.kernel.org/pub/linux/utils/kbd/")
+ (home-page "http://kbd-project.org/")
(synopsis "Linux keyboard utilities and keyboard maps")
(description
"This package contains keytable files and keyboard utilities compatible
@@ -1820,14 +1808,14 @@ time.")
(define-public lvm2
(package
(name "lvm2")
- (version "2.02.168")
+ (version "2.02.171")
(source (origin
(method url-fetch)
(uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
version ".tgz"))
(sha256
(base32
- "03b62hcsj9z37ckd8c21wwpm07s9zblq7grfh58yzcs1vp6x38r3"))
+ "0r4r9fsvpj9hjmf0zz7h4prz12r6y16jhjhsvk1sbfpsl88sf5dq"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1883,7 +1871,7 @@ time.")
;; The tests use 'mknod', which requires root access.
#:tests? #f))
- (home-page "http://sourceware.org/lvm2/")
+ (home-page "https://sourceware.org/lvm2/")
(synopsis "Logical volume management for Linux")
(description
"LVM2 is the logical volume management tool set for Linux-based systems.
@@ -2286,14 +2274,14 @@ thanks to the use of namespaces.")
(define-public hdparm
(package
(name "hdparm")
- (version "9.51")
+ (version "9.52")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version ".tar.gz"))
(sha256
(base32
- "14ax5lyzhigx58ing7adbfyzisv0fqajbmzphg149rnb3s4xiyhs"))))
+ "1djgxhfadd865dcrl6dp7dvjxpaisy7mk17mbdbglwg24ga9qhn3"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (let ((out (assoc-ref %outputs "out")))
@@ -2699,9 +2687,7 @@ Linux Device Mapper multipathing driver:
(method url-fetch)
(uri (list
(string-append "mirror://debian/pool/main/liba/libaio/"
- name "_" version ".orig.tar.gz")
- (string-append "https://fedorahosted.org/releases/l/i/libaio/"
- name "-" version ".tar.gz")))
+ name "_" version ".orig.tar.gz")))
(sha256
(base32
"0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0"))))
@@ -3658,7 +3644,7 @@ Light is the successor of lightscript.")
(arguments
`(#:phases
(modify-phases %standard-phases
- (delete 'configure)
+ (delete 'configure) ; no configure script
(add-before 'build 'setenv
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@@ -3673,10 +3659,14 @@ Light is the successor of lightscript.")
(setenv "TLP_SHCPL"
(string-append out "/share/bash-completion/completions"))
(setenv "TLP_MAN" (string-append out "/share/man")))))
- (delete 'check)
+ (delete 'check) ; no tests
+ (add-before 'install 'fix-installation
+ (lambda _
+ ;; Stop the Makefile from trying to create system directories.
+ (substitute* "Makefile" (("\\[ -f \\$\\(_CONF\\) \\]") "#"))))
(replace 'install
(lambda _
- (system "make install-tlp install-man")))
+ (zero? (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"))
@@ -3793,3 +3783,127 @@ programming interface to the in-kernel nf_tables subsystem. The library
libnftnl has been previously known as libnftables. This library is currently
used by nftables.")
(license license:gpl2+)))
+
+(define-public proot
+ (package
+ (name "proot")
+ (version "5.1.0")
+ (home-page "https://github.com/proot-me/PRoot")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11h30i83vdhc3khlj6hrh3a21sbmmz8nhfv09vkf6b9bcs1biz2h"))
+ (patches (search-patches "proot-test-fhs.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags '("-C" "src")
+
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'set-shell-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "src" "\\.[ch]$")
+ (("\"/bin/sh\"")
+ (string-append "\""
+ (assoc-ref inputs "bash")
+ "/bin/sh\"")))
+ #t))
+ (add-before 'check 'fix-fhs-assumptions-in-tests
+ (lambda _
+ (substitute* "tests/test-c6b77b77.mk"
+ (("/bin/bash") (which "bash"))
+ (("/usr/bin/test") (which "test")))
+ (substitute* '("tests/test-16573e73.c")
+ (("/bin/([a-z-]+)" _ program)
+ (which program)))
+
+ (substitute* (find-files "tests" "\\.sh$")
+ ;; Some of the tests try to "bind-mount" /bin/true.
+ (("-b /bin/true:")
+ (string-append "-b " (which "true") ":"))
+ ;; Likewise for /bin.
+ (("-b /bin:") "-b /gnu:")
+ ;; Others try to run /bin/sh.
+ (("/bin/sh") (which "sh"))
+ ;; Others assume /etc/fstab exists.
+ (("/etc/fstab") "/etc/passwd"))
+
+ (substitute* "tests/GNUmakefile"
+ (("-b /bin:") "-b /gnu:"))
+
+ ;; XXX: This test fails in an obscure corner case, just
+ ;; skip it.
+ (delete-file "tests/test-kkkkkkkk.c")
+
+ #t))
+ (replace 'check
+ (lambda _
+ (let ((n (parallel-job-count)))
+ ;; For some reason we get lots of segfaults with
+ ;; seccomp support (x86_64, Linux-libre 4.11.0).
+ (setenv "PROOT_NO_SECCOMP" "1")
+
+ ;; Most of the tests expect "/bin" to be in $PATH so
+ ;; they can run things that live in $ROOTFS/bin.
+ (setenv "PATH"
+ (string-append (getenv "PATH") ":/bin"))
+
+ (zero? (system* "make" "check" "-C" "tests"
+ ;;"V=1"
+ "-j" (number->string n))))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; The 'install' rule does nearly nothing.
+ (let ((out (assoc-ref outputs "out")))
+ (and (zero?
+ ;; TODO: 'make install-care' (does not even
+ ;; build currently.)
+ (system* "make" "-C" "src" "install"
+ (string-append "PREFIX=" out)))
+ (begin
+ (install-file "doc/proot/man.1"
+ (string-append out "/share"
+ "/man/man1"))
+ #t))))))))
+ (native-inputs `(("which" ,which)
+
+ ;; For 'mcookie', used by some of the tests.
+ ("util-linux" ,util-linux)))
+ (inputs `(("talloc" ,talloc)))
+ (synopsis "Unprivileged chroot, bind mount, and binfmt_misc")
+ (description
+ "PRoot is a user-space implementation of @code{chroot}, @code{mount --bind},
+and @code{binfmt_misc}. This means that users don't need any privileges or
+setup to do things like using an arbitrary directory as the new root
+filesystem, making files accessible somewhere else in the file system
+hierarchy, or executing programs built for another CPU architecture
+transparently through QEMU user-mode. Also, developers can use PRoot as a
+generic process instrumentation engine thanks to its extension mechanism.
+Technically PRoot relies on @code{ptrace}, an unprivileged system-call
+available in the kernel Linux.")
+ (license license:gpl2+)))
+
+(define-public proot-static
+ (package
+ (inherit proot)
+ (name "proot-static")
+ (synopsis
+ "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)")
+ (inputs `(("talloc" ,talloc/static)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments proot)
+ ((#:make-flags flags)
+ `(cons "LDFLAGS = -ltalloc -static -static-libgcc" ,flags))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'strip 'remove-store-references
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (with-directory-excursion out
+ (remove-store-references "bin/proot")
+ #t))))))
+ ((#:allowed-references _ '("out"))
+ '("out"))))))