;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
+;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages perl)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages popt)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
version "-gnu.tar.xz")))
(define-public linux-libre-headers
- (let* ((version "4.1.18")
- (build-phase
- (lambda (arch)
- `(lambda _
- (setenv "ARCH" ,(system->linux-architecture arch))
+ (package
+ (name "linux-libre-headers")
+ (version "4.4.18")
+ (source (origin
+ (method url-fetch)
+ (uri (linux-libre-urls version))
+ (sha256
+ (base32
+ "0k8k17in7dkjd9d8zg3i8l1ax466dba6bxw28flxizzyq8znljps"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("perl" ,perl)))
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-1))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (let ((arch ,(system->linux-architecture
+ (or (%current-target-system)
+ (%current-system)))))
+ (setenv "ARCH" arch)
(format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
(and (zero? (system* "make" "defconfig"))
(zero? (system* "make" "mrproper" "headers_check"))))))
- (install-phase
- `(lambda* (#:key outputs #:allow-other-keys)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(and (zero? (system* "make"
(string-append "INSTALL_HDR_PATH=" out)
(for-each delete-file (find-files out "\\.install"))
#t))))))
- (package
- (name "linux-libre-headers")
- (version version)
- (source (origin
- (method url-fetch)
- (uri (linux-libre-urls version))
- (sha256
- (base32
- "1bddh2rg645lavhjkk9z75vflba5y0g73z2fjwgbfrj5jb44x9i7"))))
- (build-system gnu-build-system)
- (native-inputs `(("perl" ,perl)))
- (arguments
- `(#:modules ((guix build gnu-build-system)
- (guix build utils)
- (srfi srfi-1))
- #:phases (alist-replace
- 'build ,(build-phase (or (%current-target-system)
- (%current-system)))
- (alist-replace
- 'install ,install-phase
- (alist-delete 'configure %standard-phases)))
#:allowed-references ()
#:tests? #f))
+ (home-page "http://www.gnu.org/software/linux-libre")
(synopsis "GNU Linux-Libre kernel headers")
(description "Headers of the Linux-Libre kernel.")
- (license license:gpl2)
- (home-page "http://www.gnu.org/software/linux-libre/"))))
+ (license license:gpl2)))
(define %boot-logo-patch
;; Linux-Libre boot logo featuring Freedo and a gnu.
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
(define-public linux-libre
- (make-linux-libre "4.8.5"
- "124sf2jvckn0afy1zfyaqgr1679qsx3fnylw1wpl7p5298hwyf9m"
+ (make-linux-libre "4.8.10"
+ "04kwarmpz5adz64wwy0xpwzxsri7jrjkhbmjlwxsac69x9a26bkl"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.28"
- "1yn74vci0bygn5bi9mcgx1zz8xw9m3jb6j260wqsgkv1hbksa2yp"
+ (make-linux-libre "4.4.34"
+ "04ng40l2av34bcfwjs5vliv15f0m8bl0sfw08imspiplxvajd6ca"
%intel-compatible-systems
#:configuration-file kernel-config))
#:configuration-file kernel-config))
;; Avoid rebuilding kernel variants when there is a minor version bump.
-(define %linux-libre-version "4.8.5")
-(define %linux-libre-hash "124sf2jvckn0afy1zfyaqgr1679qsx3fnylw1wpl7p5298hwyf9m")
+(define %linux-libre-version "4.8.10")
+(define %linux-libre-hash "04kwarmpz5adz64wwy0xpwzxsri7jrjkhbmjlwxsac69x9a26bkl")
(define-public linux-libre-arm-generic
(make-linux-libre %linux-libre-version
(define-public linux-pam
(package
(name "linux-pam")
- (version "1.2.1")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
- (uri (list (string-append "http://www.linux-pam.org/library/Linux-PAM-"
- version ".tar.bz2")
- (string-append "mirror://kernel.org/linux/libs/pam/library/Linux-PAM-"
- version ".tar.bz2")))
+ (uri (string-append
+ "http://www.linux-pam.org/library/"
+ "Linux-PAM-" version ".tar.bz2"))
(sha256
(base32
- "1n9lnf9gjs72kbj1g354v1xhi2j27aqaah15vykh7cnkq08i4arl"))))
+ "1fyi04d5nsh8ivd0rn2y0z83ylgc0licz7kifbb6xxi2ylgfs6i4"))
+ (patches (search-patches "linux-pam-no-setfsuid.patch"))))
+
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
at login. Local and dynamic reconfiguration are its key features.")
(license license:bsd-3)))
+(define-public linux-pam-1.2
+ (package
+ (inherit linux-pam)
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.linux-pam.org/library/"
+ "Linux-PAM-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1n9lnf9gjs72kbj1g354v1xhi2j27aqaah15vykh7cnkq08i4arl"))
+ (patches (search-patches "linux-pam-no-setfsuid.patch"))))))
+
;;;
;;; Miscellaneous.
(define-public util-linux
(package
(name "util-linux")
- (version "2.27")
+ (version "2.28.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1ivdx1bhjbakf77agm9dn3wyxia1wgz9lzxgd61zqxw3xzih9gzw"))
+ "03xnaw3c7pavxvvh1vnimcr44hlhhf25whawiyv8dxsflfj4xkiy"))
(patches (search-patches "util-linux-tests.patch"))
(modules '((guix build utils)))
(snippet
(define-public procps
(package
(name "procps")
- (version "3.3.11")
+ (version "3.3.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/procps-ng/Production/"
"procps-ng-" version ".tar.xz"))
(sha256
(base32
- "1va4n0mpsq327ca9dqp4hnrpgs6821rp0f2m0jyc1bfjl9lk2jg9"))
- (patches
- (list (search-patch "procps-non-linux.patch")))))
+ "1m57w6jmry84njd5sgk5afycbglql0al80grx027kwqqcfw5mmkf"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
(srfi srfi-26))
#:phases
(modify-phases %standard-phases
+ (add-before 'check 'disable-strtod-test
+ (lambda _
+ ;; Disable the 'strtod' test, which fails on 32-bit systems.
+ ;; This is what upstream does:
+ ;; <https://gitlab.com/procps-ng/procps/commit/100afbc1491be388f1429021ff65d969f4b1e08f>.
+ (substitute* "Makefile"
+ (("^(TESTS|check_PROGRAMS) = .*$" all)
+ (string-append "# " all "\n")))
+ #t))
(add-after
'install 'post-install
;; Remove commands and man pages redudant with
("ncurses" ,ncurses)
("alsa-lib" ,alsa-lib)
("xmlto" ,xmlto)
- ("gettext" ,gnu-gettext)))
+ ("gettext" ,gettext-minimal)))
(home-page "http://www.alsa-project.org/")
(synopsis "Utilities for the Advanced Linux Sound Architecture (ALSA)")
(description
(sha256
(base32
"0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p"))))))
- (native-inputs `(("gettext" ,gnu-gettext)))
+ (native-inputs `(("gettext" ,gettext-minimal)))
(synopsis "Tools for controlling the network subsystem in Linux")
(description
;; The post-systemd fork, maintained by Gentoo.
(package
(name "eudev")
- (version "3.1.5")
+ (version "3.2")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p"))
+ "099w62ncq78nxpxizf910mx18hc8x4qvzw3azjd00fir89wmyjnq"))
(patches (search-patches "eudev-rules-directory.patch"))))
(build-system gnu-build-system)
(native-inputs
(("confdir = .*$")
"confdir = @sysconfdir@\n")
(("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
- "DEFAULT_SYS_DIR = @sysconfdir@"))))))
+ "DEFAULT_SYS_DIR = @sysconfdir@"))))
+ (patches (search-patches "lvm2-static-link.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
;; Command-line tools are GPLv2.
(license (list license:gpl2 license:lgpl2.1))))
+(define-public lvm2-static
+ (package
+ (inherit lvm2)
+ (name "lvm2-static")
+
+ ;; Propagate udev because libdevmapper.a depends on libudev.
+ (inputs (alist-delete "udev" (package-inputs lvm2)))
+ (propagated-inputs `(("udev" ,eudev)))
+
+ (arguments
+ (substitute-keyword-arguments (package-arguments lvm2)
+ ((#:configure-flags flags '())
+ ;; LVM2 doesn't use Libtool, hence the custom option.
+ `(cons "--enable-static_link" ,flags))))
+ (synopsis "Logical volume management for Linux (statically linked)")))
+
(define-public wireless-tools
(package
(name "wireless-tools")
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
- ("gettext" ,gnu-gettext)))
+ ("gettext" ,gettext-minimal)))
(inputs
`(("glib" ,glib)
("dbus" ,dbus)
(define-public btrfs-progs
(package
(name "btrfs-progs")
- (version "4.8.2")
+ (version "4.8.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
- "0pswcfmdnfc586770h74abp67gn2xv8fd46vxlimnmn837sj7h41"))))
+ "1wlflrygnpndppil9g12pk184f75g9qx1lkr0x1gijigglqhr9n1"))))
(build-system gnu-build-system)
(outputs '("out"
"static")) ; static versions of binaries in "out" (~16MiB!)
"DEBUG=false"
"PACKAGE_BUGREPORT=bug-guix@gnu.org"))
#:tests? #f)) ;no tests
- (native-inputs `(("gettext" ,gnu-gettext)))
+ (native-inputs `(("gettext" ,gettext-minimal)))
(inputs `(("pciutils" ,pciutils)))
(home-page (package-home-page linux-libre))
(synopsis "CPU frequency and voltage scaling tools for Linux")
(string-append "PREFIX=" %output))
#:tests? #f)) ; no tests
(native-inputs
- `(("gnu-gettext" ,gnu-gettext)
+ `(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(inputs
`(("libdrm" ,libdrm)
computations, as well as separate component statistics that are only meaningful
under OpenGL graphics workloads.")
(license license:gpl3)))
+
+(define-public efivar
+ (package
+ (name "efivar")
+ (version "30")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/rhinstaller/" name
+ "/releases/download/" version "/" name
+ "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "12qjnm44yi55ffqxjpgrxy82s89yjziy84w2rfjjknsd8flj0mqz"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(;; Tests require a UEFI system and is not detected in the chroot.
+ #:tests? #f
+ #:make-flags (list (string-append "prefix=" %output)
+ (string-append "libdir=" %output "/lib")
+ (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("popt" ,popt)))
+ (home-page "https://github.com/rhinstaller/efivar")
+ (synopsis "Tool and library to manipulate EFI variables")
+ (description "This package provides a library and a command line
+interface to the variable facility of UEFI boot firmware.")
+ (license license:lgpl2.1+)))
+
+(define-public efibootmgr
+ (package
+ (name "efibootmgr")
+ (version "14")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/rhinstaller/" name
+ "/releases/download/" version "/" name
+ "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1n3sydvpr6yl040hhf460k7mrxby7laqd9dqs6pq0js1hijc2zip"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No tests.
+ #:make-flags (list (string-append "prefix=" %output)
+ (string-append "libdir=" %output "/lib")
+ ;; Override CFLAGS to add efivar include directory.
+ (string-append "CFLAGS=-O2 -g -flto -I"
+ (assoc-ref %build-inputs "efivar")
+ "/include/efivar"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'branding
+ ;; Replace default loader path with something more familiar.
+ (lambda _
+ (substitute* "src/efibootmgr.c"
+ (("EFI\\\\\\\\redhat") ; Matches 'EFI\\redhat'.
+ "EFI\\\\gnu"))
+ #t))
+ (delete 'configure))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("efivar" ,efivar)
+ ("popt" ,popt)))
+ (home-page "https://github.com/rhinstaller/efibootmgr")
+ (synopsis "Modify the Extensible Firmware Interface (EFI) boot manager")
+ (description
+ "@code{efibootmgr} is a user-space application to modify the Intel
+Extensible Firmware Interface (EFI) Boot Manager. This application can
+create and destroy boot entries, change the boot order, change the next
+running boot option, and more.")
+ (license license:gpl2+)))