diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 334 |
1 files changed, 166 insertions, 168 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e28f09fda9..a3b3ab262e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 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, 2017, 2018 Mark H Weaver <mhw@netris.org> @@ -158,13 +158,13 @@ defconfig. Return the appropriate make target if applicable, otherwise return (define-public linux-libre-headers (package (name "linux-libre-headers") - (version "4.9.59") + (version "4.14.26") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0z8hq8a6ic38xh33idzl0k0yi4isgd7ncl2g1d6mzf9ixw5krhvc")))) + "1m2zr17wpasg5riysbaa4g5i492jzr93py2jm088ki818s4a9cm3")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments @@ -184,29 +184,29 @@ defconfig. Return the appropriate make target if applicable, otherwise return (%current-system))))) (setenv "ARCH" arch) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")) - (and (zero? (system* "make" defconfig)) - (zero? (system* "make" "mrproper" "headers_check")))))) + (invoke "make" defconfig) + (invoke "make" "mrproper" "headers_check")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (and (zero? (system* "make" - (string-append "INSTALL_HDR_PATH=" out) - "headers_install")) - (begin - (mkdir (string-append out "/include/config")) - (call-with-output-file - (string-append out - "/include/config/kernel.release") - (lambda (p) - (format p "~a-default~%" ,version))) - - ;; Remove the '.install' and '..install.cmd' files; the - ;; latter contains store paths, which pulls in bootstrap - ;; binaries in the build environment, and prevents bit - ;; reproducibility for the bootstrap binaries. - (for-each delete-file (find-files out "\\.install")) - - #t)))))) + (invoke "make" + (string-append "INSTALL_HDR_PATH=" out) + "headers_install") + + (mkdir (string-append out "/include/config")) + (call-with-output-file + (string-append out + "/include/config/kernel.release") + (lambda (p) + (format p "~a-default~%" ,version))) + + ;; Remove the '.install' and '..install.cmd' files; the + ;; latter contains store paths, which pulls in bootstrap + ;; binaries in the build environment, and prevents bit + ;; reproducibility for the bootstrap binaries. + (for-each delete-file (find-files out "\\.install")) + + #t)))) #:allowed-references () #:tests? #f)) (home-page "https://www.gnu.org/software/linux-libre/") @@ -555,7 +555,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.31") + (version "2.32") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -563,14 +563,15 @@ providing the system administrator with some help in common tasks.") name "-" version ".tar.xz")) (sha256 (base32 - "12nw108xjhm63sh2n5a0qs33vpvbvb6rln96l9j50p7wykf7rgpr")) + "0d2758kjll5xqm5fpp3sww1h66aahx161sf2b60jxqv4qymrfwvc")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet - ;; We take the 'logger' program from GNU Inetutils and 'kill' - ;; from GNU Coreutils. + ;; We take 'nologin' from Shadow, the 'logger' program from + ;; GNU Inetutils and 'kill' from GNU Coreutils. '(begin (substitute* "configure" + (("build_nologin=yes") "build_nologin=no") (("build_logger=yes") "build_logger=no") (("build_kill=yes") "build_kill=no")) #t)))) @@ -642,32 +643,6 @@ block devices, UUIDs, TTYs, and many other tools.") (license (list license:gpl3+ license:gpl2+ license:gpl2 license:lgpl2.0+ license:bsd-4 license:public-domain)))) -;; The patch 'util-linux-CVE-2018-7738.patch' fixes a security bug in -;; the Bash completions for `mount`. Since this bug doesn't affect -;; other programs that link against libraries from util-linux, we don't -;; need to use a graft to make the fix available. Instead, users -;; installing util-linux will get the fix in this newer version, and -;; (@ (gnu system) %base-packages) takes care to use this package. -;; This solution was suggested here: -;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=30827#13> -(define-public util-linux-2.31.1 - (package - (inherit util-linux) - (name "util-linux") - ;; XXX Don't update this without also updating %base-packages! - (version "2.31.1") - (source (origin - (inherit (package-source util-linux)) - (uri (string-append "mirror://kernel.org/linux/utils/" - name "/v" (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "04fzrnrr3pvqskvjn9f81y0knh0jvvqx4lmbz5pd4lfdm5pv2l8s")) - (patches - (append (origin-patches (package-source util-linux)) - (search-patches "util-linux-CVE-2018-7738.patch"))))))) - (define-public ddate (package (name "ddate") @@ -822,18 +797,18 @@ slabtop, and skill.") (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)))))))) + (invoke "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 @@ -876,7 +851,8 @@ slabtop, and skill.") (with-directory-excursion bin (copy-file e2fsck "e2fsck") (remove-store-references "e2fsck") - (chmod "e2fsck" #o555)))))) + (chmod "e2fsck" #o555)) + #t)))) (home-page (package-home-page e2fsprogs)) (synopsis "Statically-linked e2fsck command from e2fsprogs") (description "This package provides statically-linked e2fsck command taken @@ -1310,7 +1286,8 @@ inadequately in modern network environments, and both should be deprecated.") ;; think about adding them later. (substitute* '("config.make" "config.h") (("^.*HAVE_(AFDECnet|HWSTRIP|HWTR|SELINUX|AFBLUETOOTH)[ =]1.*$") - ""))))) + "")) + #t))) (add-after 'install 'remove-redundant-commands (lambda* (#:key outputs #:allow-other-keys) ;; Remove commands and man pages redundant with Inetutils. @@ -1362,7 +1339,8 @@ configuration (iptunnel, ipmaddr).") (substitute* "Make.Rules" (("LDFLAGS := #-g") (string-append "LDFLAGS := -Wl,-rpath=" - %output "/lib")))))) + %output "/lib"))) + #t))) #:tests? #f ; no 'check' target #:make-flags (list "lib=lib" (string-append "prefix=" @@ -1398,7 +1376,7 @@ Linux-based operating systems.") (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (add-before 'bootstrap 'patch-stuff (lambda _ ;; Fix "field ‘ip6’ has incomplete type" errors. (substitute* "libbridge/libbridge.h" @@ -1411,7 +1389,7 @@ Linux-based operating systems.") (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;") "$(MAKE) $(MFLAGS) -C $$x || exit 1;")) - (zero? (system* "autoreconf" "-vf"))))) + #t))) #:tests? #f)) ; no 'check' target (home-page @@ -1719,16 +1697,19 @@ UnionFS-FUSE additionally supports copy-on-write.") (source (origin (inherit (package-source fuse)) (modules '((guix build utils))) (snippet - ;; Normally libfuse invokes mount(8) so that /etc/mtab is - ;; updated. Change calls to 'mtab_needs_update' to 0 so that - ;; it doesn't do that, allowing us to remove the dependency on - ;; util-linux (something that is useful in initrds.) - '(substitute* '("lib/mount_util.c" - "util/mount_util.c") - (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") - "0") - (("/bin/") - ""))))))) + '(begin + ;; Normally libfuse invokes mount(8) so that /etc/mtab is + ;; updated. Change calls to 'mtab_needs_update' to 0 so + ;; that it doesn't do that, allowing us to remove the + ;; dependency on util-linux (something that is useful in + ;; initrds.) + (substitute* '("lib/mount_util.c" + "util/mount_util.c") + (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)") + "0") + (("/bin/") + "")) + #t)))))) (define-public unionfs-fuse/static (package (inherit unionfs-fuse) @@ -1737,11 +1718,13 @@ UnionFS-FUSE additionally supports copy-on-write.") (source (origin (inherit (package-source unionfs-fuse)) (modules '((guix build utils))) (snippet - ;; Add -ldl to the libraries, because libfuse.a needs that. - '(substitute* "src/CMakeLists.txt" - (("target_link_libraries(.*)\\)" _ libs) - (string-append "target_link_libraries" - libs " dl)")))))) + '(begin + ;; Add -ldl to the libraries, because libfuse.a needs that. + (substitute* "src/CMakeLists.txt" + (("target_link_libraries(.*)\\)" _ libs) + (string-append "target_link_libraries" + libs " dl)"))) + #t)))) (arguments '(#:tests? #f #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static") @@ -1903,7 +1886,8 @@ system.") (substitute* '("src/unicode_start" "src/unicode_stop") ;; Assume the Coreutils are in $PATH. (("/usr/bin/tty") - "tty")))))) + "tty")) + #t)))) (build-system gnu-build-system) (arguments '(#:phases @@ -1916,7 +1900,8 @@ system.") (("gzip") (string-append gzip "/bin/gzip")) (("bzip2") - (string-append bzip2 "/bin/bzip2")))))) + (string-append bzip2 "/bin/bzip2"))) + #t))) (add-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) ;; Make sure these programs find their comrades. @@ -1925,7 +1910,8 @@ system.") (for-each (lambda (prog) (wrap-program (string-append bin "/" prog) `("PATH" ":" prefix (,bin)))) - '("unicode_start" "unicode_stop")))))))) + '("unicode_start" "unicode_stop")) + #t)))))) (inputs `(("check" ,check) ("gzip" ,gzip) ("bzip2" ,bzip2) @@ -1969,7 +1955,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") (define-public kmod (package (name "kmod") - (version "24") + (version "25") (source (origin (method url-fetch) (uri @@ -1977,7 +1963,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") "kmod-" version ".tar.xz")) (sha256 (base32 - "15xkkkzvca9flvkm48gkh8y8f13vlm3sl7nz9ydc7b3jy4fqs2v1")) + "1kgixs4m3jvwk7fb3d18n6j77qhgi9qfv4csj35rs5ancr4ycrbi")) (patches (search-patches "kmod-module-directory.patch")))) (build-system gnu-build-system) (native-inputs @@ -1986,19 +1972,20 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") `(("xz" ,xz) ("zlib" ,zlib))) (arguments - `(#:tests? #f ; FIXME: Investigate test failures + `(#:tests? #f ; FIXME: Investigate test failures #:configure-flags '("--with-xz" "--with-zlib") - #:phases (alist-cons-after - 'install 'install-modprobe&co - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (for-each (lambda (tool) - (symlink "kmod" - (string-append bin "/" tool))) - '("insmod" "rmmod" "lsmod" "modprobe" - "modinfo" "depmod")))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-modprobe&co + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (for-each (lambda (tool) + (symlink "kmod" + (string-append bin "/" tool))) + '("insmod" "rmmod" "lsmod" "modprobe" + "modinfo" "depmod")) + #t)))))) (home-page "https://www.kernel.org/") (synopsis "Kernel module tools") (description "Kmod is a set of tools to handle common tasks with Linux @@ -2014,7 +2001,7 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2.4") + (version "3.2.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/gentoo/eudev/archive/v" @@ -2022,27 +2009,26 @@ from the module-init-tools project.") (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "1r1ag0snarygrj5qqxi2xdq9w6g3sfjd5jx1b0fl7zmqlsz3vvxx")) + "0c9l3m3mr1nvrvlcnzh5gjdg9p9k7hh0jk04wh596cbmbass2nhd")) (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'configure 'bootstrap + (add-before 'bootstrap 'patch-file-names (lambda* (#:key inputs #:allow-other-keys) (substitute* "man/make.sh" (("/usr/bin/xsltproc") (string-append (assoc-ref inputs "xsltproc") "/bin/xsltproc"))) - ;; Manual pages are regenerated here. - (zero? (system* "./autogen.sh")))) + #t)) (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")))))) + (invoke (string-append out "/bin/udevadm") + "hwdb" "--update"))))) #:configure-flags (list "--enable-manpages"))) (native-inputs `(("autoconf" ,autoconf) @@ -2095,7 +2081,8 @@ time.") (("confdir = .*$") "confdir = @sysconfdir@\n") (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@") - "DEFAULT_SYS_DIR = @sysconfdir@")))) + "DEFAULT_SYS_DIR = @sysconfdir@")) + #t)) (patches (search-patches "lvm2-static-link.patch")))) (build-system gnu-build-system) (native-inputs @@ -2213,6 +2200,11 @@ interface.") (arguments '(#:phases (modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'gzip-determinism + (lambda _ + (substitute* "Makefile" + (("gzip") "gzip --no-name")) + #t)) (add-before 'build 'no-werror-no-ldconfig (lambda _ @@ -2280,10 +2272,17 @@ compliance.") "1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip")) ;; We're building 'regulatory.bin' by ourselves. - (snippet '(delete-file "regulatory.bin")))) + (snippet '(begin + (delete-file "regulatory.bin") + #t)))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'gzip-determinism + (lambda _ + (substitute* "Makefile" + (("gzip") "gzip --no-name")) + #t)) (delete 'configure)) ;; The 'all' target of the makefile depends on $(REGDB_CHANGED), which @@ -2713,7 +2712,8 @@ also contains the libsysfs library.") "includedir = @includedir@")) (substitute* "configure" (("includedir='(\\$\\{prefix\\}/include)'" all orig) - (string-append "includedir='" orig "/sysfs'"))))))) + (string-append "includedir='" orig "/sysfs'"))) + #t)))) (synopsis "System utilities based on Linux sysfs (version 1.x)"))) (define-public cpufrequtils @@ -3130,16 +3130,15 @@ write access to exFAT devices.") (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; The tarball was not generated with 'make dist' so we ;; need to bootstrap things ourselves. (substitute* "autogen.sh" (("/bin/sh") (which "sh"))) - (and (zero? (system* "./autogen.sh")) - (begin - (patch-makefile-SHELL "Makefile.include.in") - #t))))) + (invoke "./autogen.sh") + (patch-makefile-SHELL "Makefile.include.in") + #t))) ;; Make sure programs find libgpm.so. #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" @@ -3163,7 +3162,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.14.1") + (version "4.15.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3171,14 +3170,15 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1palnddw3d50kyflwk1j4xapbc6jniid6j5i9dsr8l8a7nkv7ich")))) + "15izak6jg6pqr6ha9447cdrdj9k6kfiarvwlrj53cpvrsv02l437")) + (patches (search-patches "btrfs-progs-e-value-block.patch")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" (arguments '(#:phases (modify-phases %standard-phases (add-after 'build 'build-static - (lambda _ (zero? (system* "make" "static")))) + (lambda _ (invoke "make" "static"))) (add-after 'install 'install-bash-completion (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3191,9 +3191,9 @@ and copy/paste text in the console and in xterm.") (let ((staticbin (string-append (assoc-ref %outputs "static") "/bin"))) (lambda _ - (zero? (system* "make" - (string-append "bindir=" staticbin) - "install-static")))))) + (invoke "make" + (string-append "bindir=" staticbin) + "install-static"))))) #:test-target "test" #:parallel-tests? #f)) ; tests fail when run in parallel (inputs `(("e2fsprogs" ,e2fsprogs) @@ -3212,7 +3212,9 @@ and copy/paste text in the console and in xterm.") ("docbook-xsl" ,docbook-xsl) ;; For tests. ("acl" ,acl) - ("which" ,which))) + ("which" ,which) + ;; The tests need 'grep' with perl regexp support. + ("grep" ,grep))) (home-page "https://btrfs.wiki.kernel.org/") (synopsis "Create and manage btrfs copy-on-write file systems") (description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux @@ -3245,7 +3247,8 @@ repair and easy administration.") (mkdir-p (dirname target)) (copy-file source target) (remove-store-references target) - (chmod target #o555))))) + (chmod target #o555) + #t)))) (home-page (package-home-page btrfs-progs)) (synopsis "Statically-linked btrfs command from btrfs-progs") (description "This package provides the statically-linked @command{btrfs} @@ -3265,12 +3268,6 @@ from the btrfs-progs package. It is meant to be used in initrds.") (base32 "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3298,14 +3295,16 @@ disks and SD cards. This package provides the userland utilities.") '(#:phases (modify-phases %standard-phases (add-after 'unpack 'enter-subdirectory (lambda _ - (chdir "tools/laptop/freefall"))) + (chdir "tools/laptop/freefall") + #t)) (delete 'configure) (add-before 'build 'increase-timeout (lambda _ ;; The default of 2 seconds is too low: it assumes an ;; open lid and AC power without actually checking. (substitute* "freefall.c" - (("alarm\\(2\\)") "alarm(5)"))))) + (("alarm\\(2\\)") "alarm(5)")) + #t))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:tests? #f)) ;no tests @@ -3334,9 +3333,10 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (modules '((guix build utils))) ;; Fix erroneous man page location in Makefile leading to ;; a compilation failure. - (snippet - '(substitute* "CMakeLists.txt" - (("thinkfan\\.1") "src/thinkfan.1"))))) + (snippet '(begin + (substitute* "CMakeLists.txt" + (("thinkfan\\.1") "src/thinkfan.1")) + #t)))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) @@ -3387,11 +3387,12 @@ from userspace.") (base32 "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy")) (modules '((guix build utils))) - (snippet - ;; Install under $prefix. - '(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") - (("/sbin") - "@sbindir@"))))) + (snippet '(begin + ;; Install under $prefix. + (substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in") + (("/sbin") + "@sbindir@")) + #t)))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux) ("fuse" ,fuse))) ;libuuid @@ -3434,11 +3435,11 @@ The package provides additional NTFS tools.") (modify-phases %standard-phases (replace 'build (lambda _ - (zero? (system* "ninja" - "-j" (number->string (parallel-job-count)))))) + (invoke "ninja" + "-j" (number->string (parallel-job-count))))) (replace 'install (lambda _ - (zero? (system* "ninja" "install"))))))) + (invoke "ninja" "install")))))) (native-inputs `(("ninja" ,ninja) ("pkg-config" ,pkg-config) @@ -3490,12 +3491,7 @@ The following service daemons are also provided: (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. - #:configure-flags '("--without-nistbeacon") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'bootstrap - (lambda _ - (zero? (system* "sh" "autogen.sh"))))))) + #:configure-flags '("--without-nistbeacon"))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -3692,9 +3688,12 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet - ;; The snapshots lack a .git directory, breaking ‘git describe’. - `(substitute* "Makefile" - (("\"unknown\"") (string-append "\"v" ,version "\"")))))) + `(begin + ;; The snapshots lack a .git directory, + ;; breaking ‘git describe’. + (substitute* "Makefile" + (("\"unknown\"") (string-append "\"v" ,version "\""))) + #t)))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -4242,24 +4241,23 @@ userspace queueing component and the logging subsystem.") (setenv "PATH" (string-append (getenv "PATH") ":/bin")) - (zero? (system* "make" "check" "-C" "tests" - ;;"V=1" - "-j" (number->string n)))))) + (invoke "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))) - (let ((man1 (string-append out - "/share/man/man1"))) - (mkdir-p man1) - (copy-file "doc/proot/man.1" - (string-append man1 "/proot.1")) - #t)))))))) + (let* ((out (assoc-ref outputs "out")) + (man1 (string-append out "/share/man/man1"))) + ;; TODO: 'make install-care' (does not even + ;; build currently.) + (invoke "make" "-C" "src" "install" + (string-append "PREFIX=" out)) + + (mkdir-p man1) + (copy-file "doc/proot/man.1" + (string-append man1 "/proot.1")) + #t)))))) (native-inputs `(("which" ,which) ;; For 'mcookie', used by some of the tests. |