;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
#:use-module (gnu packages texinfo)
#:use-module (gnu packages check)
#:use-module (gnu packages maths)
- #:use-module (gnu packages which)
+ #: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 asciidoc)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages calendar)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
version "-gnu.tar.xz")))
(define-public linux-libre-headers
- (let* ((version "3.3.8")
+ (let* ((version "3.14.37")
(build-phase
(lambda (arch)
`(lambda _
(and (zero? (system* "make"
(string-append "INSTALL_HDR_PATH=" out)
"headers_install"))
- (mkdir (string-append out "/include/config"))
- (call-with-output-file
- (string-append out
- "/include/config/kernel.release")
- (lambda (p)
- (format p "~a-default~%" ,version))))))))
+ (begin
+ (mkdir (string-append out "/include/config"))
+ (call-with-output-file
+ (string-append out
+ "/include/config/kernel.release")
+ (lambda (p)
+ (format p "~a-default~%" ,version)))
+
+ ;; Remove the '.install' and '..install.cmd' files; the
+ ;; latter contains store paths, which pulls in bootstrap
+ ;; binaries in the build environment, and prevents bit
+ ;; reproducibility for the bootstrap binaries.
+ (for-each delete-file (find-files out "\\.install"))
+
+ #t))))))
(package
(name "linux-libre-headers")
(version version)
(uri (linux-libre-urls version))
(sha256
(base32
- "0jkfh0z1s6izvdnc3njm39dhzp1cg8i06jv06izwqz9w9qsprvnl"))))
+ "1blxr2bsvfqi9khj4cpspv434bmx252zak2wsbi2mgl60zh77gza"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)))
(arguments
(alist-replace
'install ,install-phase
(alist-delete 'configure %standard-phases)))
+ #:allowed-references ()
#:tests? #f))
(synopsis "GNU Linux-Libre kernel headers")
(description "Headers of the Linux-Libre kernel.")
#f)))
(define-public linux-libre
- (let* ((version "3.18.8")
+ (let* ((version "4.1.2")
(build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Apply the neat patch.
(uri (linux-libre-urls version))
(sha256
(base32
- "1ai2krm0svq52z4nm0qyw3q3ybfia83zvpv1f38q1wkllwq0gi6j"))))
+ "0clgjpcw1xzqa7jpm6k5fafg3wnc28mzyar3xgr4vbm6zb61fl7k"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
("bc" ,bc)
(if conf
`(("kconfig" ,conf))
'()))))
-
- ;; XXX: Work around an ICE with our patched GCC 4.8.3 while compiling
- ;; 'drivers/staging/vt6656/michael.o': <http://hydra.gnu.org/build/96389/>.
- (inputs `(("gcc" ,gcc-4.9)))
-
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(license gpl2)
(home-page "http://www.gnu.org/software/linux-libre/"))))
+(define-public linux-libre-4.0
+ (package
+ (inherit linux-libre)
+ (version "4.0.8")
+ (source (origin
+ (method url-fetch)
+ (uri (linux-libre-urls version))
+ (sha256
+ (base32
+ "1xg5ysbdpna78yaz760c1z08sczagqyy74svr3p2mv8iczqyxdca"))))))
+
\f
;;;
;;; Pluggable authentication modules (PAM).
"A *Free* project to implement OSF's RFC 86.0.
Pluggable authentication modules are small shared object files that can
be used through the PAM API to perform tasks, like authenticating a user
-at login. Local and dynamic reconfiguration are its key features")
+at login. Local and dynamic reconfiguration are its key features.")
(license bsd-3)))
-\f
+
;;;
;;; Miscellaneous.
;;;
(("build_kill=yes") "build_kill=no")))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags '("--disable-use-tty-group"
- "--enable-ddate")
- #:phases (alist-cons-before
- 'check 'pre-check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (net (assoc-ref inputs "net-base")))
- ;; Change the test to refer to the right file.
- (substitute* "tests/ts/misc/mcookie"
- (("/etc/services")
- (string-append net "/etc/services")))
- #t))
- %standard-phases)))
+ `(#:configure-flags (list "--disable-use-tty-group"
+ "--enable-ddate"
+
+ ;; Install completions where our
+ ;; bash-completion package expects them.
+ (string-append "--with-bashcompletiondir="
+ (assoc-ref %outputs "out")
+ "/etc/bash_completion.d"))
+ #:phases (modify-phases %standard-phases
+ (add-before
+ 'build 'set-umount-file-name
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Tell 'eject' the right file name of 'umount'.
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "sys-utils/eject.c"
+ (("\"/bin/umount\"")
+ (string-append "\"" out "/bin/umount\"")))
+ #t)))
+ (add-before
+ 'check 'pre-check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (net (assoc-ref inputs "net-base")))
+ ;; Change the test to refer to the right file.
+ (substitute* "tests/ts/misc/mcookie"
+ (("/etc/services")
+ (string-append net "/etc/services")))
+ #t))))))
(inputs `(("zlib" ,zlib)
("ncurses" ,ncurses)))
(native-inputs
(version "3.2.8")
(source (origin
(method url-fetch)
+ ;; A mirror://sourceforge URI doesn't work, presumably becuase
+ ;; the SourceForge project is misconfigured.
(uri (string-append "http://procps.sourceforge.net/procps-"
version ".tar.gz"))
(sha256
(string-append "#!" (which "sh")))))
(alist-cons-after
'install 'install-libs
- (lambda _
- (zero? (system* "make" "install-libs")))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (and (zero? (system* "make" "install-libs"))
+
+ ;; Make the .a writable so that 'strip' works.
+ ;; Failing to do that, due to debug symbols, we
+ ;; retain a reference to the final
+ ;; linux-libre-headers, which refer to the
+ ;; bootstrap binaries.
+ (let ((archives (find-files lib "\\.a$")))
+ (for-each (lambda (file)
+ (chmod file #o666))
+ archives)
+ #t))))
%standard-phases))
;; FIXME: Tests work by comparing the stdout/stderr of programs, that
(base32
"0vkg5lzkn4l3i1sm6v3x96zzvnv9g7mi0qgj6279ld383mzcws24"))))
(build-system gnu-build-system)
- (arguments '(#:tests? #f)) ; no test suite
+ (arguments
+ '(#:tests? #f ; no test suite
+ #:configure-flags ; add $libdir to the RUNPATH of executables
+ (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
(home-page "http://www.netfilter.org/projects/iptables/index.html")
(synopsis "Program to configure the Linux IP packet filtering rules")
(description
;; Pretend we have everything...
(system "yes | make config")
- ;; ... except we don't have libdnet, so remove that
- ;; definition.
+ ;; ... 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.
(substitute* '("config.make" "config.h")
- (("^.*HAVE_AFDECnet.*$") ""))))
+ (("^.*HAVE_(AFDECnet|HWSTRIP|HWTR)[ =]1.*$") ""))))
(alist-cons-after
'install 'remove-redundant-commands
(lambda* (#:key outputs #:allow-other-keys)
(base32
"07vjhkznm82p8dm4w6j8mmg7h5c70lp5s9bwwfdmgwpbixfydjp1"))))
(build-system gnu-build-system)
- (arguments '(#:phases (alist-delete 'configure %standard-phases)
+ (arguments '(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ ;; Add $libdir to the RUNPATH of executables.
+ (lambda _
+ (substitute* "Make.Rules"
+ (("LDFLAGS := #-g")
+ (string-append "LDFLAGS := -Wl,-rpath="
+ %output "/lib"))))))
#:tests? #f ; no 'check' target
#:make-flags (list "lib=lib"
(string-append "prefix="
'(#: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)
#:tests? #f)) ; no 'check' target
version ".tar.gz"))
(sha256
(base32
- "071r6xjgssy8vwdn6m28qq1bqxsd2bphcd2mzhq0grf5ybm87sqb"))))
+ "071r6xjgssy8vwdn6m28qq1bqxsd2bphcd2mzhq0grf5ybm87sqb"))
+ (patches (list (search-patch "fuse-CVE-2015-3202.patch")))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux)))
(arguments
(define-public kbd
(package
(name "kbd")
- (version "2.0.1")
+ (version "2.0.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-"
- version ".tar.gz"))
+ version ".tar.xz"))
(sha256
(base32
- "0c34b0za2v0934acvgnva0vaqpghmmhz4zh7k0m9jd4mbc91byqm"))
+ "04mrms12nm5sas0nxs94yrr3hz7gmqhnmfgb9ff34bh1jszxmzcx"))
(modules '((guix build utils)))
(snippet
'(begin
;; Work around undefined reference to
;; 'mq_getattr' in sc-daemon.c.
"LDFLAGS=-lrt")
- #:phases
+ #:phases
(alist-cons-before
'build 'pre-build
;; The program 'g-ir-scanner' (part of the package
(home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html")
(license gpl2+)))
+(define-public crda
+ (package
+ (name "crda")
+ (version "3.18")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kernel.org/software/network/crda/"
+ "crda-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1gydiqgb08d9gbx4l6gv98zg3pljc984m50hmn3ysxcbkxkvkz23"))
+ (patches (list (search-patch "crda-optional-gcrypt.patch")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before
+ 'build 'no-werror-no-ldconfig
+ (lambda _
+ (substitute* "Makefile"
+ (("-Werror") "")
+ (("ldconfig") "true"))
+ #t))
+ (add-before
+ 'build 'set-regulator-db-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Tell CRDA where to find our database.
+ (let ((regdb (assoc-ref inputs "wireless-regdb")))
+ (substitute* "crda.c"
+ (("\"/lib/crda/regulatory.bin\"")
+ (string-append "\"" regdb
+ "/lib/crda/regulatory.bin\"")))
+ #t))))
+ #:test-target "verify"
+ #:make-flags (let ((out (assoc-ref %outputs "out"))
+ (regdb (assoc-ref %build-inputs "wireless-regdb")))
+ (list "CC=gcc" "V=1"
+
+ ;; Disable signature-checking on 'regulatory.bin'.
+ ;; The reason is that this simplifies maintenance
+ ;; on our side (no need to manage a distro key
+ ;; pair), and we can guarantee integrity of
+ ;; 'regulatory.bin' by other means anyway, such as
+ ;; 'guix gc --verify'. See
+ ;; <https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb>
+ ;; for a discssion.
+ "USE_OPENSSL=0"
+
+ (string-append "PREFIX=" out)
+ (string-append "SBINDIR=" out "/sbin/")
+ (string-append "UDEV_RULE_DIR="
+ out "/lib/udev/rules.d")
+ (string-append "LDFLAGS=-Wl,-rpath="
+ out "/lib -L.")
+ (string-append "REG_BIN=" regdb
+ "/lib/crda/regulatory.bin")))))
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("python" ,python-2)
+ ("wireless-regdb" ,wireless-regdb)))
+ (inputs `(("libnl" ,libnl)))
+ (home-page
+ "https://wireless.wiki.kernel.org/en/developers/Regulatory/CRDA")
+ (synopsis "Central regulatory domain agent (CRDA) for WiFi")
+ (description
+ "The Central Regulatory Domain Agent (CRDA) acts as the udev helper for
+communication between the kernel Linux and user space for regulatory
+compliance.")
+ (license copyleft-next)))
+
+(define-public wireless-regdb
+ (package
+ (name "wireless-regdb")
+ (version "2015.04.06")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kernel.org/software/network/wireless-regdb/"
+ "wireless-regdb-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0czi83k311fp27z42hxjm8vi88fsbc23mhavv96lkb4pmari0jjc"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (delete 'configure))
+ #:tests? #f ;no tests
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list (string-append "PREFIX=" out)
+ (string-append "LSB_ID=GuixSD")
+ (string-append "DISTRO_PUBKEY=/dev/null")
+ (string-append "DISTRO_PRIVKEY=/dev/null")
+ (string-append "REGDB_PUBKEY=/dev/null")
+
+ ;; Leave that empty so that db2bin.py doesn't try
+ ;; to sign 'regulatory.bin'. This allows us to
+ ;; avoid managing a key pair for the whole distro.
+ (string-append "REGDB_PRIVKEY=")))))
+ (native-inputs `(("python" ,python-2)))
+ (home-page
+ "https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb")
+ (synopsis "Wireless regulatory database")
+ (description
+ "This package contains the wireless regulatory database Central
+Regulatory Database Agent (CRDA) daemon. The database contains information on
+country-specific regulations for the wireless spectrum.")
+ (license isc)))
+
(define-public lm-sensors
(package
(name "lm-sensors")
#:phases (alist-delete 'configure %standard-phases)
#:tests? #f)) ; no test suite
(home-page "http://sourceforge.net/projects/hdparm/")
- (synopsis "tune hard disk parameters for high performance")
+ (synopsis "Tune hard disk parameters for high performance")
(description
"Get/set device parameters for Linux SATA/IDE drives. It's primary use
-is for enabling irq-unmasking and IDE multiplemode.")
- (license (bsd-style "file://LICENSE.TXT"))))
+is for enabling irq-unmasking and IDE multiple-mode.")
+ (license (non-copyleft "file://LICENSE.TXT"))))
(define-public acpid
(package
(home-page "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/")
(synopsis "Utilities to get and set CPU frequency on Linux")
(description
- "The cpufrequtils suite contains utilities to retreive CPU frequency
+ "The cpufrequtils suite contains utilities to retrieve CPU frequency
information, and set the CPU frequency if supported, using the cpufreq
capabilities of the Linux kernel.")
(license gpl2)))
+
+(define-public libraw1394
+ (package
+ (name "libraw1394")
+ (version "2.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kernel.org/linux/libs/ieee1394/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0kwnf4ha45c04mhc4yla672aqmvqqihxix1gvblns5cd2pc2cc8b"))))
+ (build-system gnu-build-system)
+ (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
+ (synopsis "Interface library for the Linux IEEE1394 drivers")
+ (description
+ "Libraw1394 is the only supported interface to the kernel side raw1394 of
+the Linux IEEE-1394 subsystem, which provides direct access to the connected
+1394 buses to user space. Through libraw1394/raw1394, applications can directly
+send to and receive from other nodes without requiring a kernel driver for the
+protocol in question.")
+ (license lgpl2.1+)))
+
+(define-public libavc1394
+ (package
+ (name "libavc1394")
+ (version "0.5.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/libavc1394/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("libraw1394" ,libraw1394))) ; required by libavc1394.pc
+ (home-page "http://sourceforge.net/projects/libavc1394/")
+ (synopsis "AV/C protocol library for IEEE 1394")
+ (description
+ "Libavc1394 is a programming interface to the AV/C specification from
+the 1394 Trade Assocation. AV/C stands for Audio/Video Control.")
+ (license lgpl2.1+)))
+
+(define-public libiec61883
+ (package
+ (name "libiec61883")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kernel.org/linux/libs/ieee1394/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "17ph458zya2l8dr2xwqnzy195qd9swrir31g78qkgb3g4xz2rq6i"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("libraw1394" ,libraw1394))) ; required by libiec61883.pc
+ (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
+ (synopsis "Isochronous streaming media library for IEEE 1394")
+ (description
+ "The libiec61883 library provides a higher level API for streaming DV,
+MPEG-2 and audio over Linux IEEE 1394.")
+ (license lgpl2.1+)))
+
+(define-public mdadm
+ (package
+ (name "mdadm")
+ (version "3.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kernel.org/linux/utils/raid/mdadm/mdadm-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg"))
+ (patches (list (search-patch "mdadm-gcc-4.9-fix.patch")))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("udev" ,eudev)))
+ (arguments
+ `(#:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list "INSTALL=install"
+ "CHECK_RUN_DIR=0"
+ ;; TODO: tell it where to find 'sendmail'
+ ;; (string-append "MAILCMD=" <???> "/sbin/sendmail")
+ (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-delete 'configure %standard-phases))
+ ;;tests must be done as root
+ #:tests? #f))
+ (home-page "http://neil.brown.name/blog/mdadm")
+ (synopsis "Tool for managing Linux Software RAID arrays")
+ (description
+ "mdadm is a tool for managing Linux Software RAID arrays. It can create,
+assemble, report on, and monitor arrays. It can also move spares between raid
+arrays when needed.")
+ (license gpl2+)))
+
+(define-public libaio
+ (package
+ (name "libaio")
+ (version "0.3.110")
+ (source (origin
+ (method url-fetch)
+ (uri (list
+ (string-append "mirror://debian/pool/main/liba/libaio/"
+ name "_" version ".orig.tar.gz")
+ (string-append "https://fedorahosted.org/releases/l/i/libaio/"
+ name "-" version ".tar.gz")))
+ (sha256
+ (base32
+ "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags
+ (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
+ (home-page "http://lse.sourceforge.net/io/aio.html")
+ (synopsis "Linux-native asynchronous I/O access library")
+ (description
+ "This library enables userspace to use Linux kernel asynchronous I/O
+system calls, important for the performance of databases and other advanced
+applications.")
+ (license lgpl2.1+)))
+
+(define-public bluez
+ (package
+ (name "bluez")
+ (version "5.30")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.kernel.org/pub/linux/bluetooth/bluez-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list "--enable-library"
+ "--disable-systemd"
+ ;; Install dbus/udev files to the correct location.
+ (string-append "--with-dbusconfdir=" out "/etc")
+ (string-append "--with-udevdir=" out "/lib/udev")))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("gettext" ,gnu-gettext)))
+ (inputs
+ `(("glib" ,glib)
+ ("dbus" ,dbus)
+ ("eudev" ,eudev)
+ ("libical" ,libical)
+ ("readline" ,readline)))
+ (home-page "http://www.bluez.org/")
+ (synopsis "Linux Bluetooth protocol stack")
+ (description
+ "BlueZ provides support for the core Bluetooth layers and protocols. It
+is flexible, efficient and uses a modular implementation.")
+ (license gpl2+)))