;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 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 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018 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@infotropique.org>
#: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")
("bc" ,bc)
("openssl" ,openssl)
("kmod" ,kmod)
+ ;; On x86, build with GCC-7 for full retpoline support.
+ ;; FIXME: Remove this when our default compiler has retpoline support.
+ ,@(match (system->linux-architecture
+ (or (%current-target-system) (%current-system)))
+ ((or "x86_64" "i386")
+ `(("gcc" ,gcc-7)))
+ (_
+ '()))
,@(match (and configuration-file
(configuration-file
(system->linux-architecture
(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.14.1")
-(define %linux-libre-hash "1irfz3bdfvwa929hgv9v36wbzzji1dn4jb5wr26pbbh5hyhcvxiy")
+(define %linux-libre-version "4.14.15")
+(define %linux-libre-hash "0s94d51bym3zipxf40xjzq943b7b2x4ba1gp3j7l5npj5nr2xiy8")
;; linux-libre configuration for armhf-linux is derived from Debian armmp. It
;; supports qemu "virt" machine and possibly a large number of ARM boards.
#:configuration-file kernel-config))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.64"
- "0mhzc8904cdnaxil8xlxmv3rd86lypi13ig9i9321jjbmv4cn849"
+ (make-linux-libre "4.9.78"
+ "12j7nxz92krq2ax7rii4pr6y1pr37n7ml692kqifpzpbzqm5yb9k"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.100"
- "0lqb6bxpa3play8hz9k1d54xzlm8m58xh6rlfcvmwcs8qjkvpm6g"
+ (make-linux-libre "4.4.113"
+ "17l5gw99ph312k0x4d3f08zlsp1ljr6c1mp0xvqp1257gnz84bgb"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.1
- (make-linux-libre "4.1.46"
- "0bg1vplfksgsnxqdxdp2n0b5lv2j299nv52s8hpja5ckp396jkhk"
+ (make-linux-libre "4.1.49"
+ "0dklmqj6ayjlkz97b811zdvpgb3yppahinji9l9jmkz4ssi7a1gs"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public usbutils
(package
(name "usbutils")
- (version "008")
+ (version "009")
(source
(origin
(method url-fetch)
"usbutils-" version ".tar.xz"))
(sha256
(base32
- "132clk14j4nm8crln2jymdbbc2vhzar2j2hnxyh05m79pbq1lx24"))))
+ "0q3iavmak2bs9xw486w4xfbjl0hbzii93ssgpr95mxmm9kjz1gwb"))))
(build-system gnu-build-system)
(inputs
`(("libusb" ,libusb)
(arguments
;; Compilation uses -Werror by default, but it fails.
'(#:configure-flags '("--disable-werror")))
- (home-page "http://www.ltrace.org/")
+ (home-page "https://www.ltrace.org/")
(synopsis "Library call tracer for Linux")
(description
"ltrace intercepts and records dynamic library calls which are called by
(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/")
+ (home-page "https://www.infradead.org/~tgr/libnl/")
(synopsis "NetLink protocol library suite")
(description
"The libnl suite is a collection of libraries providing APIs to netlink
(define-public iw
(package
(name "iw")
- (version "4.9")
+ (version "4.14")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.xz"))
(sha256
(base32
- "1klpvv98bnx1zm6aqalnri2vd7w80scmdaxr2qnblb6mz82whk1j"))))
+ "12ddd6vh6vs97135bnlyr0szv7hvpbnmfh48584frzab0z0725ph"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("libnl" ,libnl)))
It works with most newer systems.")
(license license:gpl2+)))
+(define-public iucode-tool
+ (package
+ (name "iucode-tool")
+ (version "2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://gitlab.com/iucode-tool/releases"
+ "/raw/latest/iucode-tool_" version ".tar.xz"))
+ (sha256
+ (base32
+ "0w99k1aq1xw148ffk1xykqf60rdbphb1jknw98jcmadq4pwxl44q"))))
+ (build-system gnu-build-system)
+ (home-page "https://gitlab.com/iucode-tool/iucode-tool/wikis/home")
+ (synopsis "Manipulate Intel microcode bundles")
+ (description
+ "@command{iucode_tool} is a utility to work with microcode packages for
+Intel processors. It can convert between formats, extract specific versions,
+create a firmware image suitable for the Linux kernel, and more.")
+ ;; cpuid.h is available for i686, x86_64, and ia64.
+ (supported-systems '("i686-linux" "x86_64-linux"))
+ (license license:gpl2+)))
+
(define-public i2c-tools
(package
(name "i2c-tools")
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no tests
- (home-page "http://ghedo.github.io/pflask/")
+ (home-page "https://ghedo.github.io/pflask/")
(synopsis "Simple tool for creating Linux namespace containers")
(description "pflask is a simple tool for creating Linux namespace
containers. It can be used for running a command or even booting an OS inside
(define-public hdparm
(package
(name "hdparm")
- (version "9.52")
+ (version "9.53")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version ".tar.gz"))
(sha256
(base32
- "1djgxhfadd865dcrl6dp7dvjxpaisy7mk17mbdbglwg24ga9qhn3"))))
+ "1rb5086gp4l1h1fn2nk10ziqxjxigsd0c1zczahwc5k9vy8zawr6"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (let ((out (assoc-ref %outputs "out")))
@command{hdparm} provides a command line interface to various Linux kernel
interfaces provided by the SATA/ATA/SAS @code{libata} subsystem, and the older
-IDE driver subsystem. Many external USB drive enclosures with @dfn{SCSI-ATA
-Command Translation} (SAT) are also supported.")
+IDE driver subsystem. Many external USB drive enclosures with SCSI-ATA Command
+Translation (@dfn{SAT}) are also supported.")
(license (license:non-copyleft "file://LICENSE.TXT"))))
(define-public rfkill
(version "1.7")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/acpiclient/acpiclient/"
+ (uri (string-append "mirror://sourceforge/acpiclient/acpiclient/"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
(define-public btrfs-progs
(package
(name "btrfs-progs")
- (version "4.14")
+ (version "4.14.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
- "1bwirg6hz6gyfj5r3xkj4lfwadvl9pxlccf916fsmdn27fy5q289"))))
+ "1palnddw3d50kyflwk1j4xapbc6jniid6j5i9dsr8l8a7nkv7ich"))))
(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
(("^DOCBOOKTOMAN.*$")
"DOCBOOKTOMAN = true\n"))
#t)))))
- (home-page "http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/")
+ (home-page "https://www.kernel.org/pub/linux/utils/kernel/module-init-tools/")
(synopsis "Tools for loading and managing Linux kernel modules")
(description
"Tools for loading and managing Linux kernel modules, such as `modprobe',
(define-public libnftnl
(package
(name "libnftnl")
- (version "1.0.8")
+ (version "1.0.9")
(source
(origin
(method url-fetch)
"libnftnl-" version ".tar.bz2"))
(sha256
(base32
- "0f10cfiyl4c0f8k3brxfrw28x7a6qvrakaslg4jgqncwxycxggg6"))))
+ "0d9nkdbdck8sg6msysqyv3m9kjr9sjif5amf26dfa0g3mqjdihgy"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public nftables
(package
(name "nftables")
- (version "0.8")
+ (version "0.8.1")
(source
(origin
(method url-fetch)
"/files/nftables-" version ".tar.bz2"))
(sha256
(base32
- "16iq9x0qxikdhp1nan500rk33ycqddl1k57876m4dfv3n7kqhnrz"))))
+ "1i1gfy8l7qyhc5vlrpp63s0n5kybmc9pi4dywiq8rmkhrrnddsla"))))
(build-system gnu-build-system)
(inputs `(("bison", bison)
("flex", flex)
"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
+file system, 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.
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://github.com/JasonFerrara/jmtpfs")
- (synopsis "Use a FUSE filesystem to access data over MTP")
- (description "jmtpfs uses FUSE (filesystem in userspace) to provide access
+ (synopsis "Use a FUSE file system to access data over MTP")
+ (description "jmtpfs uses FUSE (file system in userspace) to provide access
to data over the Media Transfer Protocol (MTP). Unprivileged users can mount
-the MTP device as a filesystem.")
+the MTP device as a file system.")
(license license:gpl3)))
(define-public procenv
(package
(name "psm")
(version "3.3.20170428")
+ (home-page "https://github.com/intel/psm")
(source
(origin
(method git-fetch)
- (uri (git-reference (url "http://github.com/01org/psm")
+ (uri (git-reference (url home-page)
(commit "604758e76dc31e68d1de736ccf5ddf16cb22355b")))
(file-name (string-append "psm-" version ".tar.gz"))
(sha256
(substitute* "Makefile"
(("/lib64") "/lib"))
#t)))))
- (home-page "https://github.com/01org/psm")
(synopsis "Intel Performance Scaled Messaging (PSM) Libraries")
(description
"The PSM Messaging API, or PSM API, is Intel's low-level user-level
;; 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 "https://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.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jwilk/fbcat/releases/download/"
+ version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0pj9hxmwhbz6kmd7847yx2jh1scl9l25zgndyi8s9vlzdkq2q8d7"))))
+ (build-system gnu-build-system)
+ (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"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (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)))
+ (add-after 'install 'split-fbgrab-output
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (out:fbgrab (assoc-ref outputs "fbgrab")))
+ (for-each (lambda (file)
+ (let ((old (string-append out "/" file))
+ (new (string-append out:fbgrab "/" file)))
+ (mkdir-p (dirname new))
+ (rename-file old new)))
+ (list "bin/fbgrab"
+ "share/man/man1/fbgrab.1"))
+ #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)))