;;; Copyright © 2016, 2017 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, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
+;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; 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>
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages netpbm)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages perl)
#:use-module (gnu packages xorg)
#:use-module (gnu packages groff)
#:use-module (gnu packages selinux)
+ #:use-module (gnu packages swig)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#: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)
((string-prefix? "arm" arch) "arm")
((string-prefix? "aarch64" arch) "arm64")
((string-prefix? "alpha" arch) "alpha")
+ ((string-prefix? "powerpc" arch) "powerpc") ;including "powerpc64le"
(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. Return the appropriate make target if applicable, otherwise return
\"defconfig\"."
(cond ((string-prefix? "powerpc-" system) "pmac32_defconfig")
+ ((string-prefix? "powerpc64le-" system) "ppc64_defconfig")
(else "defconfig")))
(define (linux-libre-urls version)
"Return a list of URLs for Linux-Libre VERSION."
(list (string-append
- "http://linux-libre.fsfla.org/pub/linux-libre/releases/"
+ "https://linux-libre.fsfla.org/pub/linux-libre/releases/"
version "-gnu/linux-libre-" version "-gnu.tar.xz")
;; XXX: Work around <http://bugs.gnu.org/14851>.
(setenv "EXTRA_VERSION" ,extra-version)
(let ((build (assoc-ref %standard-phases 'build))
- (config (assoc-ref inputs "kconfig")))
+ (config (assoc-ref (or native-inputs inputs) "kconfig")))
;; Use a custom kernel configuration file or a default
;; configuration file.
(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$"))
(license license:gpl2)))
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
+(define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
-(define %linux-libre-version "4.12.2")
-(define %linux-libre-hash "12jqvkp7vyhmqahkk2yv6qdfxan9r6y1999hcbmjl4z6qkv38pc3")
+(define %linux-libre-version "4.14.8")
+(define %linux-libre-hash "0y8nggpdgfqfx6dy5k39vj552k5mxamwjn6mldwrhs2aqpsrbwr3")
+
+;; linux-libre configuration for armhf-linux is derived from Debian armmp. It
+;; supports qemu "virt" machine and possibly a large number of ARM boards.
+;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define-public linux-libre
(make-linux-libre %linux-libre-version
%linux-libre-hash
- %intel-compatible-systems
+ %linux-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.38"
- "13pfawwnf46yqsrx3k5mj4pa7cs2x4v23qi8ncpxz0vqzgz9xxrd"
+ (make-linux-libre "4.9.71"
+ "0z4m77zbndlqy43bgl1xhklpjilbvrhbfbcppc55z3f61qwjf0mc"
%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.107"
+ "0pfzv15c1qj7a77n8cdmsi77yhlbzv35y7qa03j0b96ajwjsclsp"
%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.48"
+ "13ii6ixcm46hzk1ns6n4hrrv4dyc0n3wvj2qhmxi178akdcgbn8a"
%intel-compatible-systems
#:configuration-file kernel-config))
#:defconfig "multi_v7_defconfig"
#:extra-version "arm-generic"))
+(define-public linux-libre-arm-omap2plus
+ (make-linux-libre %linux-libre-version
+ %linux-libre-hash
+ '("armhf-linux")
+ #:defconfig "omap2plus_defconfig"
+ #:extra-version "arm-omap2plus"))
+
\f
;;;
;;; Pluggable authentication modules (PAM).
(define-public util-linux
(package
(name "util-linux")
- (version "2.29.2")
+ (version "2.30.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1qz81w8vzrmy8xn9yx7ls4amkbgwx6vr62pl6kv9g7r0g3ba9kmc"))
+ "0hdq2fz405a89fyha4bgwg0rx8b65inxq17w8fg8qhmcj4x3dr0v"))
(patches (search-patches "util-linux-tests.patch"))
(modules '((guix build utils)))
(snippet
(build-system gnu-build-system)
(inputs
`(("libusb" ,libusb)
- ("eudev" ,eudev-with-hwdb)))
+ ("eudev" ,eudev)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.linux-usb.org/")
(define-public e2fsprogs
(package
(name "e2fsprogs")
- (version "1.43.4")
+ (version "1.43.6")
(source (origin
(method url-fetch)
(uri (string-append
name "-" version ".tar.xz"))
(sha256
(base32
- "092absr4vrlqrkdf9nwh4ykj40ab6hhwrkdr6sjsccd54c8z5csl"))))
+ "00ilv65dzcgiap435j89xk86shf7rrav3wsik7cahy789qijdcn9"))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux)))
(native-inputs `(("pkg-config" ,pkg-config)
(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
(package
(name "strace")
- (version "4.18")
+ (version "4.20")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/strace/strace/" version
"/strace-" version ".tar.xz"))
(sha256
(base32
- "026agy9nq238nx3ynhmi8h3vx96yra4xacfsm2ybs9k23ry8ibc9"))))
+ "08y5b07vb8jc7ak5xc3x2kx1ly6xiwv1gnppcqjs81kks66i9wsv"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(define-public alsa-lib
(package
(name "alsa-lib")
- (version "1.1.3")
+ (version "1.1.4.1")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.bz2"))
(sha256
(base32
- "174n2psp0328xcy2f1ayls67598bxli6q9cf00d2qnac3012aa3i"))))
+ "0xjvi381105gldhv0z872a0x58sghznyx19j45lw5iyi2h68gfwi"))))
(build-system gnu-build-system)
(home-page "https://www.alsa-project.org/")
(synopsis "The Advanced Linux Sound Architecture libraries")
(define-public iproute
(package
(name "iproute2")
- (version "4.12.0")
+ (version "4.14.1")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.xz"))
(sha256
(base32
- "0zdxdsxyaazl85xhwskvsmpyzwf5qp21cvjsi1lw3xnrc914q2if"))))
+ "0rq0n7yxb0hmk0s6wx5awzjgf7ikjbibd0a5ix20ldfcmxlc0fnl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
(synopsis
"Utilities for controlling TCP/IP networking and traffic in Linux")
(description
- "Iproute2 is a collection of utilities for controlling TCP/IP
-networking and traffic with the Linux kernel.
+ "Iproute2 is a collection of utilities for controlling TCP/IP networking
+and traffic with the Linux kernel. The most important of these are
+@command{ip}, which configures IPv4 and IPv6, and @command{tc} for traffic
+control.
Most network configuration manuals still refer to ifconfig and route as the
primary network configuration tools, but ifconfig is known to behave
-inadequately in modern network environments. They should be deprecated, but
-most distros still include them. Most network configuration systems make use
-of ifconfig and thus provide a limited feature set. The /etc/net project aims
-to support most modern network technologies, as it doesn't use ifconfig and
-allows a system administrator to make use of all iproute2 features, including
-traffic control.
-
-iproute2 is usually shipped in a package called iproute or iproute2 and
-consists of several tools, of which the most important are @command{ip} and
-@command{tc}. @command{ip} controls IPv4 and IPv6 configuration and
-@command{tc} stands for traffic control. Both tools print detailed usage
-messages and are accompanied by a set of manpages.")
+inadequately in modern network environments, and both should be deprecated.")
(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 <https://bugs.gnu.org/27811> 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 url-fetch)
+ (uri (string-append "https://sourceforge.net/code-snapshots/git/"
+ "n/ne/net-tools/code.git/net-tools-code-"
+ commit ".zip"))
+ (file-name (string-append name "-" version ".zip"))
+ (sha256
+ (base32
+ "0hz9fda9d78spp774b6rr5xaxav7cm4h0qcpxf70rvdbrf6qx7vy"))))
+ (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)
+ ("unzip" ,unzip)))
+ (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
(string-append "INSTALLNLSDIR=" out "/share/locale")
(string-append "mandir=/share/man")))))
+ ;; We added unzip to the net-tools package's native-inputs when
+ ;; switching its source from a Git checkout to a zip archive. We
+ ;; need to specify the native-inputs here to keep unzip out of the
+ ;; build of net-tools-for-tests, so that we don't have to rebuild
+ ;; many packages on the master branch. We can make
+ ;; net-tools-for-tests inherit directly from net-tools in the next
+ ;; core-updates cycle.
+ (native-inputs `(("gettext" ,gettext-minimal)))
+
;; 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 <https://bugs.gnu.org/27811> 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
(native-inputs `(("autoconf" ,autoconf)
("automake" ,automake)))
(arguments
- '(#:phases (alist-cons-after
- 'unpack 'bootstrap
- (lambda _
- ;; Fix "field ‘ip6’ has incomplete type" errors.
- (substitute* "libbridge/libbridge.h"
- (("#include <linux/if_bridge.h>")
- "#include <linux/in6.h>\n#include <linux/if_bridge.h>"))
-
- ;; Ensure that the entire build fails if one of the
- ;; sub-Makefiles fails.
- (substitute* "Makefile.in"
- (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;")
- "$(MAKE) $(MFLAGS) -C $$x || exit 1;"))
-
- (zero? (system* "autoreconf" "-vf")))
- %standard-phases)
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _
+ ;; Fix "field ‘ip6’ has incomplete type" errors.
+ (substitute* "libbridge/libbridge.h"
+ (("#include <linux/if_bridge.h>")
+ "#include <linux/in6.h>\n#include <linux/if_bridge.h>"))
+
+ ;; Ensure that the entire build fails if one of the
+ ;; sub-Makefiles fails.
+ (substitute* "Makefile.in"
+ (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;")
+ "$(MAKE) $(MFLAGS) -C $$x || exit 1;"))
+
+ (zero? (system* "autoreconf" "-vf")))))
#:tests? #f)) ; no 'check' target
(home-page
(define-public libnl
(package
(name "libnl")
- (version "3.3.0")
+ (version "3.4.0")
(source (origin
(method url-fetch)
(uri (string-append
"/libnl-" version ".tar.gz"))
(sha256
(base32
- "1r3lw3hjvqxi5zqyq2w1qadm3gisd9nlf71dkl4yplacmssnhm3h"))))
+ "1gzm444rnsib64dddv0cwlpzy1q4bycjqhp1i5pxpikimqvpca5p"))))
(build-system gnu-build-system)
- (native-inputs `(("flex" ,flex) ("bison" ,bison)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("pkg-config" ,pkg-config)
+ ("swig" ,swig)
+ ("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 "1m5cnzviv31gjnz6fz5rgyl6ah4dbp2akm49j9973sgwl36gs8jx"))))))
+ (inputs
+ `(("python-2" ,python-2)
+ ("python-3" ,python-3)))
+ (outputs '("out" "doc" "python2" "python3"))
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-1))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-python
+ (lambda* (#:key outputs #:allow-other-keys)
+ (define (python-inst python)
+ (let ((ldflags (format #f "LDFLAGS=-Wl,-rpath=~a/lib"
+ (assoc-ref %outputs "out")))
+ (pyout (assoc-ref %outputs python)))
+ (and
+ (zero? (system (format #f "~a ~a setup.py build"
+ ldflags python pyout)))
+ (zero?
+ (system (format #f "~a ~a setup.py install --prefix=~a"
+ ldflags python pyout)))
+ (zero? (system* python "setup.py" "clean")))))
+ (with-directory-excursion "./python"
+ (every python-inst '("python2" "python3")))))
+ (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
(arguments
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc")
- #:phases (alist-delete 'configure %standard-phases)))
+ #:phases (modify-phases %standard-phases (delete 'configure))))
(home-page "https://wireless.wiki.kernel.org/")
(synopsis "Tool for configuring wireless devices")
(description
(define-public powertop
(package
(name "powertop")
- (version "2.8")
+ (version "2.9")
(source
(origin
(method url-fetch)
(uri (string-append
- "https://01.org/sites/default/files/downloads/powertop/powertop-"
+ "https://01.org/sites/default/files/downloads/powertop/powertop-v"
version ".tar.gz"))
(sha256
(base32
- "0nlwazxbnn0k6q5f5b09wdhw0f194lpzkp3l7vxansqhfczmcyx8"))))
+ "0l4jjlf05li2mc6g8nrss3h435wjhmnqd8m7v3kha3x0x7cbfzxa"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(string-append "UDEV_RULES_PATH="
(assoc-ref %outputs "out")
"/lib/udev/rules.d"))
- #:phases (alist-cons-before
- 'build 'set-file-names
- (lambda* (#:key inputs #:allow-other-keys)
- ;; libfuse calls out to mount(8) and umount(8). Make sure
- ;; it refers to the right ones.
- (substitute* '("lib/mount_util.c" "util/mount_util.c")
- (("/bin/(u?)mount" _ maybe-u)
- (string-append (assoc-ref inputs "util-linux")
- "/bin/" maybe-u "mount")))
- (substitute* '("util/mount.fuse.c")
- (("/bin/sh")
- (which "sh")))
-
- ;; This hack leads libfuse to search for 'fusermount' in
- ;; $PATH, where it may find a setuid-root binary, instead of
- ;; trying solely $out/sbin/fusermount and failing because
- ;; it's not setuid.
- (substitute* "lib/Makefile"
- (("-DFUSERMOUNT_DIR=[[:graph:]]+")
- "-DFUSERMOUNT_DIR=\\\"/var/empty\\\"")))
- %standard-phases)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'set-file-names
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; libfuse calls out to mount(8) and umount(8). Make sure
+ ;; it refers to the right ones.
+ (substitute* '("lib/mount_util.c" "util/mount_util.c")
+ (("/bin/(u?)mount" _ maybe-u)
+ (string-append (assoc-ref inputs "util-linux")
+ "/bin/" maybe-u "mount")))
+ (substitute* '("util/mount.fuse.c")
+ (("/bin/sh")
+ (which "sh")))
+
+ ;; This hack leads libfuse to search for 'fusermount' in
+ ;; $PATH, where it may find a setuid-root binary, instead of
+ ;; trying solely $out/sbin/fusermount and failing because
+ ;; it's not setuid.
+ (substitute* "lib/Makefile"
+ (("-DFUSERMOUNT_DIR=[[:graph:]]+")
+ "-DFUSERMOUNT_DIR=\\\"/var/empty\\\""))
+ #t)))))
(home-page "https://github.com/libfuse/libfuse")
(synopsis "Support file systems implemented in user space")
(description
(arguments
'(#:tests? #f
#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static")
- #:phases (alist-cons-after
- 'install 'post-install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (exe (string-append out "/bin/unionfs")))
- ;; By default, 'unionfs' keeps references to
- ;; $glibc/share/locale and similar stuff. Remove them.
- (remove-store-references exe)
-
- ;; 'unionfsctl' has references to glibc as well. Since
- ;; we don't need it, remove it.
- (delete-file (string-append out "/bin/unionfsctl"))
- #t))
- %standard-phases)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (exe (string-append out "/bin/unionfs")))
+ ;; By default, 'unionfs' keeps references to
+ ;; $glibc/share/locale and similar stuff. Remove them.
+ (remove-store-references exe)
+
+ ;; 'unionfsctl' has references to glibc as well. Since
+ ;; we don't need it, remove it.
+ (delete-file (string-append out "/bin/unionfsctl"))
+ #t))))))
(inputs `(("fuse" ,fuse-static)))))
(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/"
".tar.gz"))
(sha256
(base32
- "1pp5wsl1jx11apkv2fpp559miifqhi8ka400npy5awp9ghlf3la6"))))
+ "00fir2iykdx11g8nv5gijg0zjrp2g3ldypnv0yi6lq3h5pg5v13h"))))
(build-system gnu-build-system)
(inputs
`(("fuse" ,fuse)
;; The post-systemd fork, maintained by Gentoo.
(package
(name "eudev")
- (version "3.2.1")
+ (version "3.2.2")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "06gyyl90n85x8i7lfhns514y1kg1ians13l467admyzy3kjxkqsp"))
- (patches (search-patches "eudev-rules-directory.patch"
- "eudev-conflicting-declaration.patch"))))
+ "0qqgbgpm5wdllk0s04pf80nwc8pr93xazwri1bylm1f15zn5ck1y"))
+ (patches (search-patches "eudev-rules-directory.patch"))))
(build-system gnu-build-system)
+ (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"))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl)
(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"))))))))))
+ (deprecated-package "eudev-with-hwdb" eudev))
(define-public lvm2
(package
(name "lvm2")
- (version "2.02.171")
+ (version "2.02.176")
(source (origin
(method url-fetch)
(uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
version ".tgz"))
(sha256
(base32
- "0r4r9fsvpj9hjmf0zz7h4prz12r6y16jhjhsvk1sbfpsl88sf5dq"))
+ "0wx4rvy4frdmb66znh2xms2j2n06sm361ki6l5ks4y1ciii87kny"))
(modules '((guix build utils)))
(snippet
'(begin
("flex" ,flex)
("bison" ,bison)
("which" ,which)))
+ (outputs '("lib" ;avoid perl in closure
+ "out"))
(arguments
`(#:tests? #f ; no 'check' target
#:make-flags (list (string-append "PREFIX=" %output)
- (string-append "ETCDIR=" %output "/etc")
- (string-append "MANDIR=" %output "/share/man"))
+ (string-append "ETCDIR=" (assoc-ref %outputs "lib") "/etc")
+ (string-append "INCLUDEDIR="
+ (assoc-ref %outputs "lib") "/include")
+ (string-append "MANDIR=" %output "/share/man")
+ (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib"))
#:phases
- (alist-delete
- 'configure
- (alist-cons-before
- 'build 'patch-exec-paths
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "prog/detect/sensors-detect"
- (("`uname")
- (string-append "`" (assoc-ref inputs "coreutils")
- "/bin/uname"))
- (("(`|\")modprobe" all open-quote)
- (string-append open-quote
- (assoc-ref inputs "kmod")
- "/bin/modprobe")))
- (substitute* '("prog/pwm/pwmconfig"
- "prog/pwm/fancontrol")
- (("gnuplot")
- (string-append (assoc-ref inputs "gnuplot")
- "/bin/gnuplot"))
- (("cat ")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/cat "))
- (("egrep ")
- (string-append (assoc-ref inputs "grep")
- "/bin/egrep "))
- (("sed -e")
- (string-append (assoc-ref inputs "sed")
- "/bin/sed -e"))
- (("cut -d")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/cut -d"))
- (("sleep ")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/sleep "))
- (("readlink -f")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/readlink -f"))))
- %standard-phases))))
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'patch-exec-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "prog/detect/sensors-detect"
+ (("`uname")
+ (string-append "`" (assoc-ref inputs "coreutils")
+ "/bin/uname"))
+ (("(`|\")modprobe" all open-quote)
+ (string-append open-quote
+ (assoc-ref inputs "kmod")
+ "/bin/modprobe")))
+ (substitute* '("prog/pwm/pwmconfig"
+ "prog/pwm/fancontrol")
+ (("gnuplot")
+ (string-append (assoc-ref inputs "gnuplot")
+ "/bin/gnuplot"))
+ (("cat ")
+ (string-append (assoc-ref inputs "coreutils")
+ "/bin/cat "))
+ (("egrep ")
+ (string-append (assoc-ref inputs "grep")
+ "/bin/egrep "))
+ (("sed -e")
+ (string-append (assoc-ref inputs "sed")
+ "/bin/sed -e"))
+ (("cut -d")
+ (string-append (assoc-ref inputs "coreutils")
+ "/bin/cut -d"))
+ (("sleep ")
+ (string-append (assoc-ref inputs "coreutils")
+ "/bin/sleep "))
+ (("readlink -f")
+ (string-append (assoc-ref inputs "coreutils")
+ "/bin/readlink -f")))
+ #t)))))
(home-page "http://jdelvare.nerim.net/devel.html#lmsensors")
(synopsis "Utilities to read temperature/voltage/fan sensors")
(description
#:make-flags (list (string-append "prefix=" %output)
"CC=gcc")
;; no configure script
- #:phases (alist-delete 'configure %standard-phases)))
+ #:phases (modify-phases %standard-phases (delete 'configure))))
(inputs
`(("perl" ,perl)))
(home-page "http://jdelvare.nerim.net/devel.html#i2ctools")
(base32
"1siplsfgvcxamyqf44h71jx6jdfmvhfm7mh0y1q8ps4zs6pj2zwh"))))
(build-system gnu-build-system)
- (inputs `(("lm-sensors" ,lm-sensors)
+ (inputs `(("lm-sensors" ,lm-sensors "lib")
("gtk" ,gtk+-2)))
(native-inputs `(("pkg-config" ,pkg-config)))
(arguments
- `(#:phases (alist-cons-before
- 'configure 'enable-deprecated
- (lambda _
- (substitute* "src/Makefile.in"
- (("-DGDK_DISABLE_DEPRECATED") "")
- (("-DGTK_DISABLE_DEPRECATED") "")))
- (alist-cons-before
- 'configure 'remove-Werror
- (lambda _
- (substitute* '("configure" "src/Makefile.in")
- (("-Werror") "")))
- %standard-phases))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'enable-deprecated
+ (lambda _
+ (substitute* "src/Makefile.in"
+ (("-DGDK_DISABLE_DEPRECATED") "")
+ (("-DGTK_DISABLE_DEPRECATED") ""))
+ #t))
+ (add-before 'configure 'remove-Werror
+ (lambda _
+ (substitute* '("configure" "src/Makefile.in")
+ (("-Werror") ""))
+ #t)))))
(home-page "http://www.linuxhardware.org/xsensors/")
(synopsis "Hardware health information viewer")
(description
(source (package-source linux-libre))
(build-system gnu-build-system)
(arguments
- '(#:phases (alist-replace
- 'configure
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "SHELL_PATH" (which "bash"))
- (chdir "tools/perf"))
- %standard-phases)
- #:make-flags (list (string-append "DESTDIR="
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "SHELL_PATH" (which "bash"))
+ (chdir "tools/perf")
+ #t)))
+ #:make-flags (list (string-append "prefix="
(assoc-ref %outputs "out"))
"WERROR=0"
("python" ,python-2) ;'perf' links against libpython
("elfutils" ,elfutils)
("libiberty" ,libiberty) ;used alongside BDF for symbol demangling
+ ("libunwind" ,libunwind) ;better stack walking
+ ("numactl" ,numactl) ;for 'perf bench numa mem'
;; Documentation.
("libxml2" ,libxml2) ;for $XML_CATALOG_FILES
(string-append "BINDIR=" out "/sbin")
(string-append "MANDIR=" out "/share/man")
(string-append "UDEVDIR=" out "/lib/udev")))
- #:phases (alist-cons-before
- 'build 'patch-program-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((coreutils (assoc-ref inputs "coreutils")))
- (substitute* "udev-md-raid-arrays.rules"
- (("/usr/bin/(readlink|basename)" all program)
- (string-append coreutils "/bin/" program)))))
- (alist-cons-before
- 'build 'remove-W-error
- (lambda _
- ;; We cannot build with -Werror on i686 due to a
- ;; 'sign-compare' warning in util.c.
- (substitute* "Makefile"
- (("-Werror") ""))
- #t)
- (alist-delete 'configure %standard-phases)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-program-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((coreutils (assoc-ref inputs "coreutils")))
+ (substitute* "udev-md-raid-arrays.rules"
+ (("/usr/bin/(readlink|basename)" all program)
+ (string-append coreutils "/bin/" program))))
+ #t))
+ (add-before 'build 'remove-W-error
+ (lambda _
+ ;; We cannot build with -Werror on i686 due to a
+ ;; 'sign-compare' warning in util.c.
+ (substitute* "Makefile"
+ (("-Werror") ""))
+ #t))
+ (delete 'configure))
;;tests must be done as root
#:tests? #f))
(home-page "http://neil.brown.name/blog/mdadm")
(list "CC=gcc" (string-append "prefix=" %output))
#:test-target "partcheck" ; need root for a full 'check'
#:phases
- (alist-delete 'configure %standard-phases))) ; no configure script
+ (modify-phases %standard-phases (delete 'configure)))) ; no configure script
(home-page "http://lse.sourceforge.net/io/aio.html")
(synopsis "Linux-native asynchronous I/O access library")
(description
(define-public bluez
(package
(name "bluez")
- (version "5.45")
+ (version "5.47")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.xz"))
(sha256
(base32
- "1sb4aflgyrl7apricjipa8wx95qm69yja0lmn2f19g560c3v1b2c"))))
+ "1j22hfjz0fp4pgclgz9mfcwjbr4wqgah3gd2qhfg4r6msmybyxfg"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
+ `(#:configure-flags
(let ((out (assoc-ref %outputs "out")))
(list "--sysconfdir=/etc"
"--localstatedir=/var"
(string-append "--with-udevdir=" out "/lib/udev")))
#:phases
(modify-phases %standard-phases
+ ,@(if (string=? (%current-system) "armhf-linux")
+ ;; This test fails unpredictably.
+ ;; TODO: skip it for all architectures.
+ `((add-before 'check 'skip-wonky-test
+ (lambda _
+ (substitute* "unit/test-gatt.c"
+ (("tester_init\\(&argc, &argv\\);") "return 77;"))
+ #t)))
+ `())
+
(add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
- (add-before 'configure 'bootstrap
+ (add-after 'unpack '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")
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.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
- "0vcp9a0a35chhjhq291kvirqhd4i9w5f4zql4y5n81kbwcrxil6h"))))
+ "1bwirg6hz6gyfj5r3xkj4lfwadvl9pxlccf916fsmdn27fy5q289"))))
(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
(lambda _ (zero? (system* "make" "static"))))
+ (add-after 'install 'install-bash-completion
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "btrfs-completion"
+ (string-append (assoc-ref outputs "out")
+ "/etc/bash_completion.d"))
+ #t))
(add-after 'install 'install-static
(let ((staticbin (string-append (assoc-ref %outputs "static")
"/bin")))
("libblkid:static" ,util-linux "static")
("libuuid" ,util-linux)
("libuuid:static" ,util-linux "static")
+ ("lzo" ,lzo)
("zlib" ,zlib)
- ("lzo" ,lzo)))
+ ("zstd" ,zstd)))
(native-inputs `(("pkg-config" ,pkg-config)
("asciidoc" ,asciidoc)
("xmlto" ,xmlto)
("libxml2" ,libxml2)
("docbook-xsl" ,docbook-xsl)
;; For tests.
+ ("acl" ,acl)
("which" ,which)))
(home-page "https://btrfs.wiki.kernel.org/")
(synopsis "Create and manage btrfs copy-on-write file systems")
from the btrfs-progs package. It is meant to be used in initrds.")
(license (package-license btrfs-progs))))
+(define-public f2fs-tools
+ (package
+ (name "f2fs-tools")
+ (version "1.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk"
+ "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz"))
+ (sha256
+ (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)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libuuid" ,util-linux)))
+ (home-page "https://f2fs.wiki.kernel.org/")
+ (synopsis "Userland tools for f2fs")
+ (description
+ "F2FS, the Flash-Friendly File System, is a modern file system
+designed to be fast and durable on flash devices such as solid-state
+disks and SD cards. This package provides the userland utilities.")
+ ;; The formatting utility, libf2fs and include/f2fs_fs.h is dual
+ ;; GPL2/LGPL2.1, everything else is GPL2 only. See 'COPYING'.
+ (license (list license:gpl2 license:lgpl2.1))))
+
(define-public freefall
(package
(name "freefall")
(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")
"--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
(define-public rng-tools
(package
(name "rng-tools")
- (version "5")
+ (version "6.1")
(source (origin
(method url-fetch)
- (uri (string-append
- "http://downloads.sourceforge.net/sourceforge/gkernel/"
- "rng-tools-" version ".tar.gz"))
+ (uri (string-append "https://github.com/nhorman/rng-tools/"
+ "archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "13h7lc8wl9khhvkr0i3bl5j9bapf8anhqis1lcnwxg1vc2v058b0"))))
+ "00ywsknjpc9jd9kfmz2syk9l0xkiiwyx5qhl5zvhhc69v6682i31"))))
(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")))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libsysfs" ,sysfsutils)))
(synopsis "Random number generator daemon")
(description
"Monitor a hardware random number generator, and supply entropy
;; FIXME: The upstream tarball lacks man pages, and building them would
;; require DocBook & co. We used to use Gentoo's pre-built man pages,
;; but they vanished. In the meantime, fake it.
- '(#:phases (alist-cons-before
- 'configure 'fake-docbook
- (lambda _
- (substitute* "Makefile.in"
- (("^DOCBOOKTOMAN.*$")
- "DOCBOOKTOMAN = true\n")))
- %standard-phases)))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fake-docbook
+ (lambda _
+ (substitute* "Makefile.in"
+ (("^DOCBOOKTOMAN.*$")
+ "DOCBOOKTOMAN = true\n"))
+ #t)))))
(home-page "http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/")
(synopsis "Tools for loading and managing Linux kernel modules")
(description
(define-public mcelog
(package
(name "mcelog")
- (version "153")
+ (version "154")
(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
- "0q40d60p1klzg0aznvxhxgjlddwcxfj2q59s4q86sf9ild6rcdhl"))
+ "07628cr05f50m7lsvw26wxlnb7qcl0x6rymdpp5spqzhz91l58p3"))
(file-name (string-append name "-" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
;; The tests will only run as root on certain supported CPU models.
#:tests? #f))
(supported-systems (list "i686-linux" "x86_64-linux"))
- (home-page "http://mcelog.org/")
+ (home-page "https://mcelog.org/")
(synopsis "Machine check monitor for x86 Linux systems")
(description
"The mcelog daemon is required by the Linux kernel to log memory, I/O, CPU,
(define-public libnftnl
(package
(name "libnftnl")
- (version "1.0.7")
+ (version "1.0.8")
(source
(origin
(method url-fetch)
"libnftnl-" version ".tar.bz2"))
(sha256
(base32
- "10irjrylcfkbp11617yr19vpfhgl54w0kw02jhj0i1abqv5nxdlv"))))
+ "0f10cfiyl4c0f8k3brxfrw28x7a6qvrakaslg4jgqncwxycxggg6"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public nftables
(package
(name "nftables")
- (version "0.7")
+ (version "0.8")
(source
(origin
(method url-fetch)
"/files/nftables-" version ".tar.bz2"))
(sha256
(base32
- "0hzdqigdx4i6jbpxbdyq4zy4p4waqn8l6vvz7685ikh1v0wr4qzy"))))
+ "16iq9x0qxikdhp1nan500rk33ycqddl1k57876m4dfv3n7kqhnrz"))))
(build-system gnu-build-system)
(inputs `(("bison", bison)
("flex", flex)
(define-public procenv
(package
(name "procenv")
- (version "0.49")
+ (version "0.50")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0brzf6185hb76imw107cl21c8lzwiywkxi3jknihrk86bvvicd0d"))))
+ (base32 "0dvscyf47i3j5ay0amncqmqw9kd916689r2pqdvpnsrhp6j46zp1"))))
(build-system gnu-build-system)
(arguments `(#:configure-flags '("--disable-silent-rules")))
(inputs `(("expat" ,expat) ("libcap" ,libcap) ("check" ,check)
comparing system environments.")
(home-page "http://github.com/jamesodhunt/procenv/")
(license license:gpl3+)))
+
+(define-public libfabric
+ (package
+ (name "libfabric")
+ (version "1.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://github.com/ofiwg/libfabric/releases/download/v"
+ version "/libfabric-" version ".tar.bz2"))
+ (sha256
+ (base32 "19l2m1frna1l765z4j7wl8hp4rb9wrh0hy5496685hd183hmy5pv"))))
+ (build-system gnu-build-system)
+ (inputs `(("rdma-core" ,rdma-core)
+ ,@(match (%current-system)
+ ((member (package-supported-systems psm))
+ `(("psm" ,psm)))
+ (_ `()))
+ ("libnl" ,libnl)))
+ (home-page "https://ofiwg.github.io/libfabric/")
+ (synopsis "Open Fabric Interfaces")
+ (description
+ "OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric
+communication services to applications. OFI is best described as a collection
+of libraries and applications used to export fabric services. The key
+components of OFI are: application interfaces, provider libraries, kernel
+services, daemons, and test applications.
+
+Libfabric is a core component of OFI. It is the library that defines and
+exports the user-space API of OFI, and is typically the only software that
+applications deal with directly. It works in conjunction with provider
+libraries, which are often integrated directly into libfabric.")
+ (license (list license:bsd-2 license:gpl2)))) ;dual
+
+(define-public psm
+ (package
+ (name "psm")
+ (version "3.3.20170428")
+ (home-page "https://github.com/intel/psm")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit "604758e76dc31e68d1de736ccf5ddf16cb22355b")))
+ (file-name (string-append "psm-" version ".tar.gz"))
+ (sha256
+ (base32 "0nsb325dmhn5ia3d2cnksqr0gdvrrx2hmvlylfgvmaqdpq76zm85"))
+ (patches (search-patches
+ "psm-arch.patch" ; uname -p returns "unknown" on Debian 9
+ "psm-ldflags.patch" ; build shared lib with LDFLAGS
+ "psm-repro.patch")))) ; reproducibility
+ (build-system gnu-build-system)
+ (inputs `(("libuuid" ,util-linux)))
+ (arguments
+ '(#:make-flags `("PSM_USE_SYS_UUID=1" "CC=gcc" "WERROR="
+ ,(string-append "INSTALL_PREFIX=" %output)
+ ,(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+ #:tests? #f
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'patch-/usr/include
+ (lambda _
+ (substitute* "Makefile"
+ (("\\$\\{DESTDIR}/usr/include")
+ (string-append %output "/include")))
+ (substitute* "Makefile"
+ (("/lib64") "/lib"))
+ #t)))))
+ (synopsis "Intel Performance Scaled Messaging (PSM) Libraries")
+ (description
+ "The PSM Messaging API, or PSM API, is Intel's low-level user-level
+communications interface for the True Scale family of products. PSM users are
+enabled with mechanisms necessary to implement higher level communications
+interfaces in parallel environments.")
+ ;; Only Intel-compatable processors are supported.
+ (supported-systems '("i686-linux" "x86_64-linux"))
+ (license (list license:bsd-2 license:gpl2)))) ;dual
+
+(define-public snapscreenshot
+ (package
+ (name "snapscreenshot")
+ (version "1.0.14.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://bisqwit.iki.fi/src/arch/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32 "0gzvqsbf6a2sbd1mqvj1lbm57i2bm5k0cr6ncr821d1f32gw03mk"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list (string-append "BINDIR=" out "/bin")
+ (string-append "MANDIR=" out "/share/man")))
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; ./configure is a snarky no-op
+ (add-before 'install 'fix-ownership
+ ;; Install binaries owned by ‘root’ instead of the nonexistent ‘bin’.
+ (lambda _
+ (substitute* "depfun.mak"
+ ((" -o bin -g bin ") " "))
+ #t))
+ (add-before 'install 'create-output-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/share/man/man1"))
+ #t))))))
+ (home-page "http://bisqwit.iki.fi/source/snapscreenshot.html")
+ (synopsis "Take screenshots of one or more Linux text consoles")
+ (description
+ "snapscreenshot saves a screenshot of one or more Linux text consoles as a
+Targa (@dfn{.tga}) image. It can be used by anyone with read access to the
+relevant @file{/dev/vcs*} file(s).")
+ (license license:gpl2)))
+
+(define-public fbcat
+ (package
+ (name "fbcat")
+ (version "0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jwilk/fbcat/releases/download/"
+ version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1dla1na3nf3s4xy0p6w0v54zipg1x8c14yqsw8w9qjzhchr4caxw"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ ;; For building the man pages.
+ `(("docbook-xml" ,docbook-xml)
+ ("docbook-xsl" ,docbook-xsl)
+ ("xsltproc" ,libxslt)))
+ (inputs
+ ;; The ‘fbgrab’ wrapper can use one of several PPM-to-PNG converters. We
+ ;; choose netpbm simply because it's the smallest. It still adds ~94 MiB
+ ;; to an otherwise tiny package, so we put ‘fbgrab’ in its own output.
+ `(("pnmtopng" ,netpbm)))
+ (outputs (list "out" "fbgrab"))
+ (arguments
+ `(#:make-flags (list "CC=gcc")
+ #:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-docbook-location
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "doc/Makefile"
+ (("http://docbook.sourceforge.net/release/xsl/current")
+ (string-append (assoc-ref inputs "docbook-xsl")
+ "/xml/xsl/docbook-xsl-"
+ ,(package-version docbook-xsl))))
+ #t))
+ (delete 'configure) ; no configure script
+ (add-after 'build 'build-documentation
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (zero? (apply system* "make" "-C" "doc"
+ make-flags))))
+ (add-after 'build 'qualify-references
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((pnmtopng (assoc-ref inputs "pnmtopng"))
+ (out (assoc-ref outputs "out")))
+ (substitute* "fbgrab"
+ (("fbcat" all)
+ (string-append out "/bin/" all))
+ (("pnmtopng" all)
+ (string-append pnmtopng "/bin/" all)))
+ #t)))
+ (replace 'install
+ ;; The Makefile lacks an ‘install’ target. Install files manually.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (out:fbgrab (assoc-ref outputs "fbgrab")))
+ (install-file "fbcat" (string-append out "/bin"))
+ (install-file "doc/fbcat.1"
+ (string-append out "/share/man/man1"))
+ (install-file "fbgrab" (string-append out:fbgrab "/bin"))
+ (install-file "doc/fbgrab.1"
+ (string-append out:fbgrab "/share/man/man1"))
+ #t))))))
+ (home-page "https://jwilk.net/software/fbcat")
+ (synopsis "Take a screenshot of the contents of the Linux framebuffer")
+ (description
+ "fbcat saves the contents of the Linux framebuffer (@file{/dev/fb*}), or
+a dump therof. It supports a wide range of drivers and pixel formats.
+@command{fbcat} can take screenshots of virtually any application that can be
+made to write its output to the framebuffer, including (but not limited to)
+text-mode or graphical applications that don't use a display server.
+
+Also included is @command{fbgrab}, a wrapper around @command{fbcat} that
+emulates the behaviour of Gunnar Monell's older fbgrab utility.")
+ (license license:gpl2)))