;;; 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 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)
(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")
(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.
(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.13.8")
-(define %linux-libre-hash "0qi2n5lczqwq2v0q5zl08ac3x4lixpj1dmb0kza6hsllmx8hbybw")
+(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.57"
- "02ldxzbazdbhvgkwxl6xblkwj75s5cm33fpm77kv394w35jan3by"
+ (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.93"
- "1llpqkm7vvwi5fm92y4n6qrc89ps7kdfl83s7m38a2yivm3kgzr6"
+ (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.45"
- "1ifpyyq86x0imjdfb9vm7m8dbnkw82a7bqczx166zrssc1fc677l"
+ (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 strace
(package
(name "strace")
- (version "4.19")
+ (version "4.20")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/strace/strace/" version
"/strace-" version ".tar.xz"))
(sha256
(base32
- "10bjh2mrkvx41fk60b2iqv5b5k4r7a3qdsx04iyg904jqb3fp4vw"))))
+ "08y5b07vb8jc7ak5xc3x2kx1ly6xiwv1gnppcqjs81kks66i9wsv"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(define-public iproute
(package
(name "iproute2")
- (version "4.13.0")
+ (version "4.14.1")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.xz"))
(sha256
(base32
- "0l2w84cwr54gaw3cbxijf614l76hx8mgcz57v81rwl68z3nq3yww"))))
+ "0rq0n7yxb0hmk0s6wx5awzjgf7ikjbibd0a5ix20ldfcmxlc0fnl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite
(define-public lvm2
(package
(name "lvm2")
- (version "2.02.174")
+ (version "2.02.176")
(source (origin
(method url-fetch)
(uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
version ".tgz"))
(sha256
(base32
- "12qa2yfxnbjdx7kgxqqaglni50b46l5cp1rwjb24mccc830cwvpv"))
+ "0wx4rvy4frdmb66znh2xms2j2n06sm361ki6l5ks4y1ciii87kny"))
(modules '((guix build utils)))
(snippet
'(begin
(define-public btrfs-progs
(package
(name "btrfs-progs")
- (version "4.13.3")
+ (version "4.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
- "10yp0b4pwrw5mcd81yn3d0d87fnqpp4si5d25dfhl6n2640dnnw0"))))
+ "1bwirg6hz6gyfj5r3xkj4lfwadvl9pxlccf916fsmdn27fy5q289"))))
(build-system gnu-build-system)
(outputs '("out"
"static")) ; static versions of the binaries in "out"
(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
(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)
(base32 "19l2m1frna1l765z4j7wl8hp4rb9wrh0hy5496685hd183hmy5pv"))))
(build-system gnu-build-system)
(inputs `(("rdma-core" ,rdma-core)
- ;; TODO: add psm, psm(2).
+ ,@(match (%current-system)
+ ((member (package-supported-systems psm))
+ `(("psm" ,psm)))
+ (_ `()))
("libnl" ,libnl)))
(home-page "https://ofiwg.github.io/libfabric/")
(synopsis "Open Fabric Interfaces")
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)))