;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
+;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 David Craven <david@craven.ch>
+;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages linux)
- #:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages attr)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages calendar)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages compression)
- #:use-module (gnu packages gcc)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages documentation)
+ #:use-module (gnu packages elf)
#:use-module (gnu packages flex)
- #:use-module (gnu packages bison)
- #:use-module (gnu packages admin)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
- #:use-module (gnu packages pciutils)
- #:use-module (gnu packages databases)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages pciutils)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages rrdtool)
#:use-module (gnu packages slang)
- #:use-module (gnu packages algebra)
- #:use-module (gnu packages gettext)
- #:use-module (gnu packages glib)
- #:use-module (gnu packages pulseaudio)
- #:use-module (gnu packages attr)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages autotools)
#:use-module (gnu packages texinfo)
- #:use-module (gnu packages check)
- #:use-module (gnu packages maths)
- #:use-module (gnu packages base)
- #:use-module (gnu packages rrdtool)
- #:use-module (gnu packages elf)
- #:use-module (gnu packages gtk)
- #:use-module (gnu packages docbook)
- #:use-module (gnu packages documentation)
- #:use-module (gnu packages readline)
- #:use-module (gnu packages calendar)
#:use-module (gnu packages tls)
- #:use-module (gnu packages freedesktop)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix utils)
- #:use-module (guix build-system gnu)
+ #:use-module (gnu packages xml)
#: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 licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
(define-public (system->linux-architecture arch)
"Return the Linux architecture name for ARCH, a Guix system name such as
-\"x86_64-linux\"."
+\"x86_64-linux\" or a target triplet such as \"arm-linux-gnueabihf\"."
(let ((arch (car (string-split arch #\-))))
(cond ((string=? arch "i686") "i386")
((string-prefix? "mips" arch) "mips")
version "-gnu.tar.xz")))
(define-public linux-libre-headers
- (let* ((version "3.14.37")
+ (let* ((version "4.1.18")
(build-phase
(lambda (arch)
`(lambda _
(uri (linux-libre-urls version))
(sha256
(base32
- "1blxr2bsvfqi9khj4cpspv434bmx252zak2wsbi2mgl60zh77gza"))))
+ "1bddh2rg645lavhjkk9z75vflba5y0g73z2fjwgbfrj5jb44x9i7"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)))
(arguments
(source (origin
(method url-fetch)
(uri (string-append
- "mirror://kernel.org/linux/utils/kernel/module-init-tools/module-init-tools-"
- version ".tar.bz2"))
+ "mirror://kernel.org/linux/utils/kernel/module-init-tools/"
+ "module-init-tools-" version ".tar.bz2"))
(sha256
(base32
"0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"))
`insmod', `lsmod', and more.")
(license license:gpl2+)))
+(define-public libnfsidmap
+ (package
+ (name "libnfsidmap")
+ (version "0.25")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.citi.umich.edu/projects/nfsv4/linux/"
+ name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kzgwxzh83qi97rblcm9qj80cdvnv8kml2plz0q103j0hifj8vb5"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list
+ (string-append "--with-pluginpath="
+ (assoc-ref %outputs "out")
+ "/lib/libnfsidmap"))))
+ (home-page
+ "http://www.citi.umich.edu/projects/nfsv4/crossrealm/libnfsidmap_config.html")
+ (synopsis
+ "NFSv4 support library for name/ID mapping")
+ (description "Libnfsidmap is a library holding mulitiple methods of
+mapping names to ids and visa versa, mainly for NFSv4. It provides an
+extensible array of mapping functions, currently consisting of two choices:
+the default @code{nsswitch} and the experimental @code{umich_ldap}.")
+ (license (license:non-copyleft "file://COPYING"
+ "See COPYING in the distribution."))))
+
(define %boot-logo-patch
;; Linux-Libre boot logo featuring Freedo and a gnu.
(origin
(search-path %load-path file)))
(define-public linux-libre
- (let* ((version "4.6.2")
- (build-phase
- '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
+ (package
+ (name "linux-libre")
+ (version "4.7.3")
+ (source (origin
+ (method url-fetch)
+ (uri (linux-libre-urls version))
+ (sha256
+ (base32
+ "18sy1vh4x66hsk0qbq8g5299my082d530zm8c7xnbakq7350igi6"))
+ (patches (origin-patches %boot-logo-patch))))
+ (build-system gnu-build-system)
+ (supported-systems '("x86_64-linux" "i686-linux"))
+ (native-inputs
+ `(("perl" ,perl)
+ ("bc" ,bc)
+ ("openssl" ,openssl)
+ ("module-init-tools" ,module-init-tools)
+
+ ,@(let ((conf (kernel-config
+ (or (%current-target-system)
+ (%current-system))
+ #:variant (version-major+minor version))))
+ (if conf
+ `(("kconfig" ,conf))
+ '()))))
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-1)
+ (ice-9 match))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs native-inputs target #:allow-other-keys)
;; Avoid introducing timestamps
(setenv "KCONFIG_NOTIMESTAMP" "1")
(setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
- ;; Apply the neat patch.
- (system* "patch" "-p1" "--force"
- "-i" (assoc-ref inputs "patch/freedo+gnu"))
+ ;; Set ARCH and CROSS_COMPILE
+ (let ((arch ,(system->linux-architecture
+ (or (%current-target-system)
+ (%current-system)))))
+ (setenv "ARCH" arch)
+ (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
- (let ((arch (car (string-split system #\-))))
- (setenv "ARCH"
- (cond ((string=? arch "i686") "i386")
- ((string=? arch "mips64el") "mips")
- (else arch)))
- (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
+ (when target
+ (setenv "CROSS_COMPILE" (string-append target "-"))
+ (format #t "`CROSS_COMPILE' set to `~a'~%"
+ (getenv "CROSS_COMPILE"))))
(let ((build (assoc-ref %standard-phases 'build))
(config (assoc-ref inputs "kconfig")))
port)
(close-port port))
- (zero? (system* "make" "oldconfig"))
-
- ;; Call the default `build' phase so `-j' is correctly
- ;; passed.
- (apply build #:make-flags "all" args))))
- (install-phase
- `(lambda* (#:key inputs outputs #:allow-other-keys)
+ (zero? (system* "make" "oldconfig")))))
+ (replace 'install
+ (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(moddir (string-append out "/lib/modules"))
- (mit (assoc-ref inputs "module-init-tools")))
+ (mit (assoc-ref (or native-inputs inputs) "module-init-tools")))
(mkdir-p moddir)
(for-each (lambda (file)
(copy-file file
(string-append "INSTALL_MOD_PATH=" out)
"INSTALL_MOD_STRIP=1"
"modules_install"))))))
- (package
- (name "linux-libre")
- (version version)
- (source (origin
- (method url-fetch)
- (uri (linux-libre-urls version))
- (sha256
- (base32
- "1sq75sbs85kwngq8l0n5v5v1z973l71by98k3wbw1mfq3g0s323b"))))
- (build-system gnu-build-system)
- (supported-systems '("x86_64-linux" "i686-linux"))
- (native-inputs `(("perl" ,perl)
- ("bc" ,bc)
- ("openssl" ,openssl)
- ("module-init-tools" ,module-init-tools)
- ("patch/freedo+gnu" ,%boot-logo-patch)
-
- ,@(let ((conf (kernel-config
- (or (%current-target-system)
- (%current-system))
- #:variant (version-major+minor version))))
- (if conf
- `(("kconfig" ,conf))
- '()))))
- (arguments
- `(#:modules ((guix build gnu-build-system)
- (guix build utils)
- (srfi srfi-1)
- (ice-9 match))
- #:phases (alist-replace
- 'build ,build-phase
- (alist-replace
- 'install ,install-phase
- (alist-delete 'configure %standard-phases)))
#:tests? #f))
+ (home-page "http://www.gnu.org/software/linux-libre/")
(synopsis "100% free redistribution of a cleaned Linux kernel")
(description
"GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.
It has been modified to remove all non-free binary blobs.")
- (license license:gpl2)
- (home-page "http://www.gnu.org/software/linux-libre/"))))
+ (license license:gpl2)))
(define-public linux-libre-4.4
(package
(inherit linux-libre)
- (version "4.4.13")
+ (version "4.4.20")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
- "1qcgnprgl9hy4g51bkx4bjs1cdsyy9kpwqymxggwghrzdid41x9l"))))
+ "1fi0pyyzcf643vdsss0d9ld6jqyxw0k76r0a5vpd4mv3dcl37yyq"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
(define-public linux-libre-4.1
(package
(inherit linux-libre)
- (version "4.1.27")
+ (version "4.1.32")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
- "0bbp782gdj8kz986a8hfygdrj7is0c8wgbb2mpb9gqhkfxcg74kf"))))
+ "0lkksxpxsw6b8vcgbivn2kp6xbml69yx8frrsfrk49sqigz0xds6"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
(("build_kill=yes") "build_kill=no"))
#t))))
(build-system gnu-build-system)
+ (outputs '("out"
+ "static")) ; >2 MiB of static .a libraries
(arguments
`(#:configure-flags (list "--disable-use-tty-group"
- ;; Do not build .a files to save 2 MiB.
- "--disable-static"
-
;; Install completions where our
;; bash-completion package expects them.
(string-append "--with-bashcompletiondir="
(substitute* "tests/ts/misc/mcookie"
(("/etc/services")
(string-append net "/etc/services")))
+ #t)))
+ (add-after
+ 'install 'move-static-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (static (assoc-ref outputs "static")))
+ (mkdir-p (string-append static "/lib"))
+ (with-directory-excursion out
+ (for-each (lambda (file)
+ (rename-file file
+ (string-append static "/"
+ file)))
+ (find-files "lib" "\\.a$")))
#t))))))
(inputs `(("zlib" ,zlib)
("ncurses" ,ncurses)))
"procps-ng-" version ".tar.xz"))
(sha256
(base32
- "1va4n0mpsq327ca9dqp4hnrpgs6821rp0f2m0jyc1bfjl9lk2jg9"))))
+ "1va4n0mpsq327ca9dqp4hnrpgs6821rp0f2m0jyc1bfjl9lk2jg9"))
+ (patches
+ (list (search-patch "procps-non-linux.patch")))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/extundelete/"
- version "/extundelete-" version ".tar.bz2"))
+ "extundelete/" version "/extundelete-"
+ version ".tar.bz2"))
(sha256
(base32
"1x0r7ylxlp9lbj3d7sqf6j2a222dwy2nfpff05jd6mkh4ihxvyd1"))))
(version "4.7")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/strace/strace-"
- version ".tar.xz"))
+ (uri (string-append "mirror://sourceforge/strace/strace/" version
+ "/strace-" version ".tar.xz"))
(sha256
(base32
"158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764"))))
(define-public alsa-utils
(package
(name "alsa-utils")
- (version "1.1.0")
+ (version "1.1.2")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.alsa-project.org/pub/utils/"
name "-" version ".tar.bz2"))
(sha256
(base32
- "1wa88wvqcfhak9x3y65wzzwxmmyxb5bv2gyj7lnm653fnwsk271v"))))
+ "0wcha78c2sm8qqk5r3w83cvm8fp6fb1zpd35kmcm24kxhz007xks"))))
(build-system gnu-build-system)
(arguments
;; XXX: Disable man page creation until we have DocBook.
(string-append "--with-udev-rules-dir="
(assoc-ref %outputs "out")
"/lib/udev/rules.d"))
- #:phases (alist-cons-before
- 'install 'pre-install
- (lambda _
- ;; Don't try to mkdir /var/lib/alsa.
- (substitute* "Makefile"
- (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*")
- "true\n")))
- %standard-phases)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'install 'pre-install
+ (lambda _
+ ;; Don't try to mkdir /var/lib/alsa.
+ (substitute* "Makefile"
+ (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*")
+ "true\n")))))))
(inputs
`(("libsamplerate" ,libsamplerate)
("ncurses" ,ncurses)
(synopsis "Program to configure the Linux IP packet filtering rules")
(description
"iptables is the userspace command line program used to configure the
-Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards
+Linux 2.4.x and later IPv4 packet filtering ruleset (firewall). It is targeted at
system administrators. Since Network Address Translation is also configured
from the packet filter ruleset, iptables is used for this, too. The iptables
package also includes ip6tables. ip6tables is used for configuring the IPv6
(version "1.5")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/bridge/bridge-utils-"
- version ".tar.gz"))
+ (uri (string-append "mirror://sourceforge/bridge/bridge/"
+ "bridge-utils-" version ".tar.gz"))
(sha256
(base32
"12367cwqmi0yqphi6j8rkx97q8hw52yq2fx4k0xfclkcizxybya2"))))
(define-public sshfs-fuse
(package
(name "sshfs-fuse")
- (version "2.5")
+ (version "2.8")
(source (origin
(method url-fetch)
- (uri (let ((version-with-underscores
- (string-join (string-split version #\.) "_")))
- (string-append "https://github.com/libfuse/sshfs/releases/"
- "download/sshfs_" version-with-underscores
- "/sshfs-fuse-" version ".tar.gz")))
+ (uri (string-append "https://github.com/libfuse/sshfs/releases/"
+ "download/sshfs_" version
+ "/sshfs-" version ".tar.gz"))
(sha256
(base32
- "0gp6qr33l2p0964j0kds0dfmvyyf5lpgsn11daf0n5fhwm9185z9"))))
+ "08mdd4rs7yys7hmyig6i08qlid76p17xlvrh64k7wsrfs1s92s3z"))))
(build-system gnu-build-system)
(inputs
`(("fuse" ,fuse)
(define-public kmod
(package
(name "kmod")
- (version "17")
+ (version "22")
(source (origin
(method url-fetch)
(uri
"kmod-" version ".tar.xz"))
(sha256
(base32
- "1yid3a9b64a60ybj66fk2ysrq5klnl0ijl4g624cl16y8404g9rv"))
+ "10lzfkmnpq6a43a3gkx7x633njh216w0bjwz31rv8a1jlgg1sfxs"))
(patches (search-patches "kmod-module-directory.patch"))))
(build-system gnu-build-system)
(native-inputs
(version "3.3.5")
(source (origin
(method url-fetch)
- (uri (string-append
- "ftp://ftp.netroedge.com/pub/lm-sensors/lm_sensors-"
- version ".tar.bz2"))
+ (uri (list (string-append
+ "ftp://ftp.netroedge.com/pub/lm-sensors/"
+ "lm_sensors-" version ".tar.bz2")
+ (string-append
+ "http://pkgs.fedoraproject.org/repo/pkgs/"
+ "lm_sensors/lm_sensors-3.3.5.tar.bz2/"
+ "da506dedceb41822e64865f6ba34828a/"
+ "lm_sensors-3.3.5.tar.bz2")))
(sha256
(base32
"1ksgrynxgrq590nb2fwxrl1gwzisjkqlyg3ljfd1al0ibrk6mbjx"))
(version "9.45")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/" name "/"
+ (uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version ".tar.gz"))
(sha256
(base32
(version "1.7")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/acpiclient/"
- name "-" version ".tar.gz"))
+ (uri (string-append "mirror://sourceforge/acpiclient/acpiclient/"
+ version "/" name "-" version ".tar.gz"))
(sha256
(base32
"01ahldvf0gc29dmbd5zi4rrnrw2i1ajnf30sx2vyaski3jv099fp"))))
(version "0.5.4")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/libavc1394/"
+ (uri (string-append "mirror://sourceforge/libavc1394/libavc1394/"
name "-" version ".tar.gz"))
(sha256
(base32
(substitute* "udev-md-raid-arrays.rules"
(("/usr/bin/(readlink|basename)" all program)
(string-append coreutils "/bin/" program)))))
- (alist-delete 'configure %standard-phases))
+ (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)))
;;tests must be done as root
#:tests? #f))
(home-page "http://neil.brown.name/blog/mdadm")
(define-public btrfs-progs
(package
(name "btrfs-progs")
- (version "4.5.3")
+ (version "4.7.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
- "1lzbw275xgv69v4z8hmsf3jnip38116hxhkpv0madk8wv049drz6"))))
+ "03z6zgvjb94jk0q1xx2hicznfxj5c8xyyw5xqmh05rpz8ghwk6zl"))))
(build-system gnu-build-system)
+ (outputs '("out"
+ "static")) ; static versions of binaries in "out" (~16MiB!)
(arguments
- '(#:test-target "test"
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'build 'build-static
+ (lambda _ (zero? (system* "make" "static"))))
+ (add-after 'install 'install-static
+ (let ((staticbin (string-append (assoc-ref %outputs "static")
+ "/bin")))
+ (lambda _
+ (zero? (system* "make"
+ (string-append "bindir=" staticbin)
+ "install-static"))))))
+ #:test-target "test"
#:parallel-tests? #f)) ; tests fail when run in parallel
(inputs `(("e2fsprogs" ,e2fsprogs)
("libblkid" ,util-linux)
+ ("libblkid:static" ,util-linux "static")
("libuuid" ,util-linux)
+ ("libuuid:static" ,util-linux "static")
("zlib" ,zlib)
("lzo" ,lzo)))
(native-inputs `(("pkg-config" ,pkg-config)
;; For building documentation
("libxml2" ,libxml2)
("docbook-xml" ,docbook-xml)
- ("docbook-xsl" ,docbook-xsl)))
+ ("docbook-xsl" ,docbook-xsl)
+ ;; For tests
+ ("which" ,which)))
(home-page "https://btrfs.wiki.kernel.org/")
(synopsis "Create and manage btrfs copy-on-write file systems")
(description "Btrfs is a copy-on-write (CoW) filesystem for Linux aimed at
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/thinkfan/"
- version "/thinkfan-" version ".tar.gz"))
+ "/thinkfan-" version ".tar.gz"))
(sha256
(base32
"0nz4c48f0i0dljpk5y33c188dnnwg8gz82s4grfl8l64jr4n675n"))
commonly found on Microsoft Windows. It is implemented as a FUSE file system.
The package provides additional NTFS tools.")
(license license:gpl2+)))
+
+(define-public rng-tools
+ (package
+ (name "rng-tools")
+ (version "5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://downloads.sourceforge.net/sourceforge/gkernel/"
+ "rng-tools-" version ".tar.gz"))
+ (sha256
+ (base32
+ "13h7lc8wl9khhvkr0i3bl5j9bapf8anhqis1lcnwxg1vc2v058b0"))))
+ (build-system gnu-build-system)
+ (synopsis "Random number generator daemon")
+ (description
+ "Monitor a hardware random number generator, and supply entropy
+from that to the system kernel's @file{/dev/random} machinery.")
+ (home-page "http://sourceforge.net/projects/gkernel")
+ ;; The source package is offered under the GPL2+, but the files
+ ;; 'rngd_rdrand.c' and 'rdrand_asm.S' are only available under the GPL2.
+ (license (list license:gpl2 license:gpl2+))))
+
+(define-public cpupower
+ (package
+ (name "cpupower")
+ (version (package-version linux-libre))
+ (source (package-source linux-libre))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'enter-subdirectory
+ (lambda _
+ (chdir "tools/power/cpupower")))
+ (delete 'configure)
+ (add-before 'build 'fix-makefiles
+ (lambda _
+ (substitute* "Makefile"
+ (("/usr/") "/")
+ (("/bin/(install|pwd)" _ command) command))
+ (substitute* "bench/Makefile"
+ (("\\$\\(CC\\) -o") "$(CC) $(LDFLAGS) -o")))))
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list (string-append "DESTDIR=" out)
+ (string-append "LDFLAGS=-Wl,-rpath=" out "/lib")
+ "docdir=/share/doc/cpupower"
+ "confdir=$(docdir)/examples"
+ ;; The Makefile recommends the following changes
+ "DEBUG=false"
+ "PACKAGE_BUGREPORT=bug-guix@gnu.org"))
+ #:tests? #f)) ;no tests
+ (native-inputs `(("gettext" ,gnu-gettext)))
+ (inputs `(("pciutils" ,pciutils)))
+ (home-page (package-home-page linux-libre))
+ (synopsis "CPU frequency and voltage scaling tools for Linux")
+ (description
+ "cpupower is a set of user-space tools that use the cpufreq feature of the
+Linux kernel to retrieve and control processor features related to power saving,
+such as frequency and voltage scaling.")
+ (license license:gpl2)))
+
+(define-public haveged
+ (package
+ (name "haveged")
+ (version "1.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.issihosts.com/haveged/haveged-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "059pxlfd4l5dqhd6r3lynzfz4wby2f17294fy17pi9j2jpnn68ww"))))
+ (build-system gnu-build-system)
+ (home-page "http://www.issihosts.com/haveged")
+ (synopsis "Entropy source for the Linux random number generator")
+ (description
+ "haveged generates an unpredictable stream of random numbers for use by
+Linux's @file{/dev/random} and @file{/dev/urandom} devices. The kernel's
+standard mechanisms for filling the entropy pool may not be sufficient for
+systems with high needs or limited user interaction, such as headless servers.
+@command{haveged} runs as a privileged daemon, harvesting randomness from the
+indirect effects of hardware events on hidden processor state using the HArdware
+Volatile Entropy Gathering and Expansion (HAVEGE) algorithm. It tunes itself to
+its environment and provides the same built-in test suite for the output stream
+as used on certified hardware security devices.")
+ (license (list (license:non-copyleft "file://nist/mconf.h")
+ (license:non-copyleft "file://nist/packtest.c")
+ license:public-domain ; nist/dfft.c
+ license:gpl3+)))) ; everything else
+
+(define-public ecryptfs-utils
+ (package
+ (name "ecryptfs-utils")
+ (version "111")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/ecryptfs/trunk/"
+ version "/+download/ecryptfs-utils_"
+ version ".orig.tar.gz"))
+ (sha256
+ (base32
+ "0zwq19siiwf09h7lwa7n7mgmrr8cxifp45lmwgcfr8c1gviv6b0i"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list "--disable-pywrap")))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("perl" ,perl) ; for pod2man
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("keyutils" ,keyutils)
+ ("linux-pam" ,linux-pam)
+ ("nss" ,nss)))
+ (home-page "http://ecryptfs.org/")
+ (synopsis "eCryptfs cryptographic file system utilities")
+ (description
+ "eCryptfs is a POSIX-compliant stacked cryptographic file system for Linux.
+Each file's cryptographic meta-data is stored inside the file itself, along
+with the encrypted contents. This allows individual encrypted files to be
+copied between hosts and still be decrypted with the proper key. eCryptfs is a
+native Linux file system, and has been part of the Linux kernel since version
+2.6.19. This package contains the userland utilities to manage it.")
+ ;; The files src/key_mod/ecryptfs_key_mod_{openssl,pkcs11_helper,tspi}.c
+ ;; grant additional permission to link with OpenSSL.
+ (license license:gpl2+)))