gnu: dbus-glib: Propagate inputs dbus and glib.
[jackhill/guix/guix.git] / gnu / packages / linux.scm
CommitLineData
233e7676 1;;; GNU Guix --- Functional package management for GNU
fb9b7ce2 2;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
66269d47 3;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
233e7676 4;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
bdac3d4b 5;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
31aa4379 6;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
e1e27737 7;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
fd76c904 8;;;
233e7676 9;;; This file is part of GNU Guix.
fd76c904 10;;;
233e7676 11;;; GNU Guix is free software; you can redistribute it and/or modify it
fd76c904
LC
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
233e7676 16;;; GNU Guix is distributed in the hope that it will be useful, but
fd76c904
LC
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
233e7676 22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
fd76c904 23
1ffa7090 24(define-module (gnu packages linux)
023fef7d
LC
25 #:use-module ((guix licenses)
26 #:hide (zlib))
59a43334 27 #:use-module (gnu packages)
f61e0e79 28 #:use-module (gnu packages compression)
3b027388 29 #:use-module (gnu packages gcc)
1ffa7090 30 #:use-module (gnu packages flex)
90a0048f 31 #:use-module (gnu packages bison)
9f533d60 32 #:use-module (gnu packages admin)
d7d42d6b 33 #:use-module (gnu packages gperf)
1ffa7090
LC
34 #:use-module (gnu packages libusb)
35 #:use-module (gnu packages ncurses)
d7d42d6b 36 #:use-module (gnu packages pciutils)
5f96f303 37 #:use-module (gnu packages databases)
1ffa7090
LC
38 #:use-module (gnu packages perl)
39 #:use-module (gnu packages pkg-config)
7c0dbe78 40 #:use-module (gnu packages python)
b1fb4b23 41 #:use-module (gnu packages slang)
e7b38500 42 #:use-module (gnu packages algebra)
1dba6407 43 #:use-module (gnu packages gettext)
db288efa 44 #:use-module (gnu packages glib)
17b293a0 45 #:use-module (gnu packages pulseaudio)
c762e82e 46 #:use-module (gnu packages attr)
17b293a0 47 #:use-module (gnu packages xml)
215b6431 48 #:use-module (gnu packages autotools)
f57d2639 49 #:use-module (gnu packages texinfo)
b10e9ff6 50 #:use-module (gnu packages check)
30016044 51 #:use-module (gnu packages maths)
ce0614dd 52 #:use-module (gnu packages base)
30016044 53 #:use-module (gnu packages rrdtool)
b62fe07f 54 #:use-module (gnu packages elf)
b087d413 55 #:use-module (gnu packages gtk)
d7ece67a
LC
56 #:use-module (gnu packages docbook)
57 #:use-module (gnu packages asciidoc)
eb7c43c3
DT
58 #:use-module (gnu packages readline)
59 #:use-module (gnu packages calendar)
02b80c3f
NK
60 #:use-module (guix packages)
61 #:use-module (guix download)
dc2d59af 62 #:use-module (guix utils)
7c0dbe78 63 #:use-module (guix build-system gnu)
220193ad 64 #:use-module (guix build-system cmake)
e102f940 65 #:use-module (guix build-system python)
a94546ec
LC
66 #:use-module (guix build-system trivial)
67 #:use-module (srfi srfi-26)
68 #:use-module (ice-9 match))
fd76c904 69
aaf4cb20
LC
70(define-public (system->linux-architecture arch)
71 "Return the Linux architecture name for ARCH, a Guix system name such as
72\"x86_64-linux\"."
618cea69
NK
73 (let ((arch (car (string-split arch #\-))))
74 (cond ((string=? arch "i686") "i386")
75 ((string-prefix? "mips" arch) "mips")
aaf4cb20 76 ((string-prefix? "arm" arch) "arm")
618cea69
NK
77 (else arch))))
78
6023cc74
LC
79(define (linux-libre-urls version)
80 "Return a list of URLs for Linux-Libre VERSION."
81 (list (string-append
82 "http://linux-libre.fsfla.org/pub/linux-libre/releases/"
83 version "-gnu/linux-libre-" version "-gnu.tar.xz")
84
85 ;; XXX: Work around <http://bugs.gnu.org/14851>.
86 (string-append
87 "ftp://alpha.gnu.org/gnu/guix/mirror/linux-libre-"
88 version "-gnu.tar.xz")
89
90 ;; Maybe this URL will become valid eventually.
91 (string-append
92 "mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
93 version "-gnu.tar.xz")))
94
80fe5c60 95(define-public linux-libre-headers
e081385a 96 (let* ((version "3.14.37")
80fe5c60 97 (build-phase
618cea69
NK
98 (lambda (arch)
99 `(lambda _
100 (setenv "ARCH" ,(system->linux-architecture arch))
101 (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
45298f8f 102
618cea69
NK
103 (and (zero? (system* "make" "defconfig"))
104 (zero? (system* "make" "mrproper" "headers_check"))))))
80fe5c60
LC
105 (install-phase
106 `(lambda* (#:key outputs #:allow-other-keys)
107 (let ((out (assoc-ref outputs "out")))
108 (and (zero? (system* "make"
109 (string-append "INSTALL_HDR_PATH=" out)
110 "headers_install"))
111 (mkdir (string-append out "/include/config"))
112 (call-with-output-file
113 (string-append out
114 "/include/config/kernel.release")
115 (lambda (p)
dfb52abb 116 (format p "~a-default~%" ,version))))))))
80fe5c60
LC
117 (package
118 (name "linux-libre-headers")
dfb52abb 119 (version version)
80fe5c60
LC
120 (source (origin
121 (method url-fetch)
6023cc74 122 (uri (linux-libre-urls version))
80fe5c60
LC
123 (sha256
124 (base32
e081385a 125 "1blxr2bsvfqi9khj4cpspv434bmx252zak2wsbi2mgl60zh77gza"))))
80fe5c60
LC
126 (build-system gnu-build-system)
127 (native-inputs `(("perl" ,perl)))
128 (arguments
129 `(#:modules ((guix build gnu-build-system)
130 (guix build utils)
56c092ce 131 (srfi srfi-1))
80fe5c60 132 #:phases (alist-replace
fb6c2fa8
LC
133 'build ,(build-phase (or (%current-target-system)
134 (%current-system)))
80fe5c60
LC
135 (alist-replace
136 'install ,install-phase
56c092ce 137 (alist-delete 'configure %standard-phases)))
80fe5c60
LC
138 #:tests? #f))
139 (synopsis "GNU Linux-Libre kernel headers")
140 (description "Headers of the Linux-Libre kernel.")
38bbd61d 141 (license gpl2)
80fe5c60
LC
142 (home-page "http://www.gnu.org/software/linux-libre/"))))
143
b4fcb735
LC
144(define-public module-init-tools
145 (package
146 (name "module-init-tools")
147 (version "3.16")
148 (source (origin
149 (method url-fetch)
150 (uri (string-append
151 "mirror://kernel.org/linux/utils/kernel/module-init-tools/module-init-tools-"
152 version ".tar.bz2"))
153 (sha256
154 (base32
d3bbe992
LC
155 "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"))
156 (patches
157 (list (search-patch "module-init-tools-moduledir.patch")))))
b4fcb735 158 (build-system gnu-build-system)
b4fcb735 159 (arguments
5c413a9c
LC
160 ;; FIXME: The upstream tarball lacks man pages, and building them would
161 ;; require DocBook & co. We used to use Gentoo's pre-built man pages,
162 ;; but they vanished. In the meantime, fake it.
b4fcb735 163 '(#:phases (alist-cons-before
5c413a9c
LC
164 'configure 'fake-docbook
165 (lambda _
166 (substitute* "Makefile.in"
167 (("^DOCBOOKTOMAN.*$")
168 "DOCBOOKTOMAN = true\n")))
b4fcb735
LC
169 %standard-phases)))
170 (home-page "http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/")
171 (synopsis "Tools for loading and managing Linux kernel modules")
172 (description
173 "Tools for loading and managing Linux kernel modules, such as `modprobe',
174`insmod', `lsmod', and more.")
175 (license gpl2+)))
176
ac47a7c2
LC
177(define %boot-logo-patch
178 ;; Linux-Libre boot logo featuring Freedo and a gnu.
179 (origin
180 (method url-fetch)
181 (uri (string-append "http://www.fsfla.org/svn/fsfla/software/linux-libre/"
74dde9e9 182 "lemote/gnewsense/branches/3.16/100gnu+freedo.patch"))
ac47a7c2
LC
183 (sha256
184 (base32
185 "1hk9swxxc80bmn2zd2qr5ccrjrk28xkypwhl4z0qx4hbivj7qm06"))))
186
a94546ec
LC
187(define (kernel-config system)
188 "Return the absolute file name of the Linux-Libre build configuration file
1650dd8a 189for SYSTEM, or #f if there is no configuration for SYSTEM."
a94546ec
LC
190 (define (lookup file)
191 (let ((file (string-append "gnu/packages/" file)))
192 (search-path %load-path file)))
193
194 (match system
195 ("i686-linux"
196 (lookup "linux-libre-i686.conf"))
197 ("x86_64-linux"
198 (lookup "linux-libre-x86_64.conf"))
199 (_
1650dd8a 200 #f)))
a94546ec 201
beacfcab 202(define-public linux-libre
5a768308 203 (let* ((version "4.0.4")
beacfcab 204 (build-phase
ac47a7c2
LC
205 '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
206 ;; Apply the neat patch.
9a224ac2 207 (system* "patch" "-p1" "--force"
ac47a7c2
LC
208 "-i" (assoc-ref inputs "patch/freedo+gnu"))
209
beacfcab
LC
210 (let ((arch (car (string-split system #\-))))
211 (setenv "ARCH"
212 (cond ((string=? arch "i686") "i386")
213 (else arch)))
214 (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
215
a94546ec
LC
216 (let ((build (assoc-ref %standard-phases 'build))
217 (config (assoc-ref inputs "kconfig")))
1650dd8a
LC
218
219 ;; Use the architecture-specific config if available, and
220 ;; 'defconfig' otherwise.
221 (if config
222 (begin
223 (copy-file config ".config")
224 (chmod ".config" #o666))
225 (system* "make" "defconfig"))
a94546ec
LC
226
227 ;; Appending works even when the option wasn't in the
228 ;; file. The last one prevails if duplicated.
229 (let ((port (open-file ".config" "a")))
230 (display (string-append "CONFIG_NET_9P=m\n"
231 "CONFIG_NET_9P_VIRTIO=m\n"
232 "CONFIG_VIRTIO_BLK=m\n"
233 "CONFIG_VIRTIO_NET=m\n"
234 ;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
235 "CONFIG_DEVPTS_MULTIPLE_INSTANCES=y\n"
236 "CONFIG_VIRTIO_PCI=m\n"
237 "CONFIG_VIRTIO_BALLOON=m\n"
238 "CONFIG_VIRTIO_MMIO=m\n"
239 "CONFIG_FUSE_FS=m\n"
240 "CONFIG_CIFS=m\n"
241 "CONFIG_9P_FS=m\n")
242 port)
243 (close-port port))
244
245 (zero? (system* "make" "oldconfig"))
246
247 ;; Call the default `build' phase so `-j' is correctly
248 ;; passed.
249 (apply build #:make-flags "all" args))))
beacfcab
LC
250 (install-phase
251 `(lambda* (#:key inputs outputs #:allow-other-keys)
252 (let* ((out (assoc-ref outputs "out"))
253 (moddir (string-append out "/lib/modules"))
254 (mit (assoc-ref inputs "module-init-tools")))
255 (mkdir-p moddir)
256 (for-each (lambda (file)
257 (copy-file file
258 (string-append out "/" (basename file))))
259 (find-files "." "^(bzImage|System\\.map)$"))
260 (copy-file ".config" (string-append out "/config"))
261 (zero? (system* "make"
262 (string-append "DEPMOD=" mit "/sbin/depmod")
263 (string-append "MODULE_DIR=" moddir)
264 (string-append "INSTALL_PATH=" out)
265 (string-append "INSTALL_MOD_PATH=" out)
cda3d81e 266 "INSTALL_MOD_STRIP=1"
beacfcab
LC
267 "modules_install"))))))
268 (package
269 (name "linux-libre")
dfb52abb 270 (version version)
beacfcab
LC
271 (source (origin
272 (method url-fetch)
6023cc74 273 (uri (linux-libre-urls version))
beacfcab
LC
274 (sha256
275 (base32
5a768308 276 "1czjhyczzaz1dvhy9lrlxlk6gf45wcw3rnpcmh697dxgf37clmzp"))))
beacfcab
LC
277 (build-system gnu-build-system)
278 (native-inputs `(("perl" ,perl)
e7b38500 279 ("bc" ,bc)
ac47a7c2 280 ("module-init-tools" ,module-init-tools)
a94546ec 281 ("patch/freedo+gnu" ,%boot-logo-patch)
1650dd8a
LC
282
283 ,@(let ((conf (kernel-config (or (%current-target-system)
284 (%current-system)))))
285 (if conf
286 `(("kconfig" ,conf))
287 '()))))
3b027388
LC
288
289 ;; XXX: Work around an ICE with our patched GCC 4.8.3 while compiling
290 ;; 'drivers/staging/vt6656/michael.o': <http://hydra.gnu.org/build/96389/>.
291 (inputs `(("gcc" ,gcc-4.9)))
292
beacfcab
LC
293 (arguments
294 `(#:modules ((guix build gnu-build-system)
295 (guix build utils)
296 (srfi srfi-1)
297 (ice-9 match))
298 #:phases (alist-replace
299 'build ,build-phase
300 (alist-replace
301 'install ,install-phase
302 (alist-delete 'configure %standard-phases)))
303 #:tests? #f))
f50d2669 304 (synopsis "100% free redistribution of a cleaned Linux kernel")
a22dc0c4 305 (description
79c311b8
LC
306 "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.
307It has been modified to remove all non-free binary blobs.")
beacfcab
LC
308 (license gpl2)
309 (home-page "http://www.gnu.org/software/linux-libre/"))))
310
c84d0eca
LC
311\f
312;;;
313;;; Pluggable authentication modules (PAM).
314;;;
315
fd76c904
LC
316(define-public linux-pam
317 (package
318 (name "linux-pam")
319 (version "1.1.6")
320 (source
321 (origin
322 (method url-fetch)
323 (uri (list (string-append "http://www.linux-pam.org/library/Linux-PAM-"
324 version ".tar.bz2")
325 (string-append "mirror://kernel.org/linux/libs/pam/library/Linux-PAM-"
326 version ".tar.bz2")))
327 (sha256
328 (base32
329 "1hlz2kqvbjisvwyicdincq7nz897b9rrafyzccwzqiqg53b8gf5s"))))
330 (build-system gnu-build-system)
c4c4cc05 331 (native-inputs
fd76c904
LC
332 `(("flex" ,flex)
333
334 ;; TODO: optional dependencies
335 ;; ("libxcrypt" ,libxcrypt)
336 ;; ("cracklib" ,cracklib)
337 ))
338 (arguments
c134056a
LC
339 '(;; Most users, such as `shadow', expect the headers to be under
340 ;; `security'.
341 #:configure-flags (list (string-append "--includedir="
342 (assoc-ref %outputs "out")
343 "/include/security"))
344
345 ;; XXX: Tests won't run in chroot, presumably because /etc/pam.d
346 ;; isn't available.
347 #:tests? #f))
fd76c904
LC
348 (home-page "http://www.linux-pam.org/")
349 (synopsis "Pluggable authentication modules for Linux")
350 (description
351 "A *Free* project to implement OSF's RFC 86.0.
352Pluggable authentication modules are small shared object files that can
353be used through the PAM API to perform tasks, like authenticating a user
354at login. Local and dynamic reconfiguration are its key features")
4a44e743 355 (license bsd-3)))
686f14e8 356
c84d0eca
LC
357\f
358;;;
359;;; Miscellaneous.
360;;;
361
686f14e8
LC
362(define-public psmisc
363 (package
364 (name "psmisc")
365 (version "22.20")
366 (source
367 (origin
368 (method url-fetch)
369 (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-"
370 version ".tar.gz"))
371 (sha256
372 (base32
373 "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi"))))
374 (build-system gnu-build-system)
375 (inputs `(("ncurses" ,ncurses)))
376 (home-page "http://psmisc.sourceforge.net/")
377 (synopsis
35b9e423 378 "Small utilities that use the proc filesystem")
686f14e8
LC
379 (description
380 "This PSmisc package is a set of some small useful utilities that
35b9e423 381use the proc filesystem. We're not about changing the world, but
686f14e8 382providing the system administrator with some help in common tasks.")
4a44e743 383 (license gpl2+)))
02b80c3f
NK
384
385(define-public util-linux
386 (package
387 (name "util-linux")
9f533d60 388 (version "2.25.2")
5a6a3ba4
LC
389 (source (origin
390 (method url-fetch)
391 (uri (string-append "mirror://kernel.org/linux/utils/"
9f533d60
LC
392 name "/v" (version-major+minor version) "/"
393 name "-" version ".tar.xz"))
5a6a3ba4
LC
394 (sha256
395 (base32
9f533d60
LC
396 "1miwwdq1zwvhf0smrxx3fjddq3mz22s8rc5cw54s7x3kbdqpyig0"))
397 (patches (list (search-patch "util-linux-tests.patch")))
9d77da2a
LC
398 (modules '((guix build utils)))
399 (snippet
ec2da92c
LC
400 ;; We take the 'logger' program from GNU Inetutils and 'kill'
401 ;; from GNU Coreutils.
9f533d60 402 '(substitute* "configure"
ec2da92c
LC
403 (("build_logger=yes") "build_logger=no")
404 (("build_kill=yes") "build_kill=no")))))
02b80c3f
NK
405 (build-system gnu-build-system)
406 (arguments
29ec55ee
LC
407 `(#:configure-flags (list "--disable-use-tty-group"
408 "--enable-ddate"
409
410 ;; Install completions where our
411 ;; bash-completion package expects them.
412 (string-append "--with-bashcompletiondir="
413 (assoc-ref %outputs "out")
414 "/etc/bash_completion.d"))
9f533d60
LC
415 #:phases (alist-cons-before
416 'check 'pre-check
417 (lambda* (#:key inputs outputs #:allow-other-keys)
418 (let ((out (assoc-ref outputs "out"))
419 (net (assoc-ref inputs "net-base")))
420 ;; Change the test to refer to the right file.
421 (substitute* "tests/ts/misc/mcookie"
422 (("/etc/services")
423 (string-append net "/etc/services")))
424 #t))
02b80c3f 425 %standard-phases)))
f61e0e79 426 (inputs `(("zlib" ,zlib)
c4c4cc05
JD
427 ("ncurses" ,ncurses)))
428 (native-inputs
9f533d60
LC
429 `(("perl" ,perl)
430 ("net-base" ,net-base))) ;for tests
02b80c3f 431 (home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
35ec07c7 432 (synopsis "Collection of utilities for the Linux kernel")
02b80c3f 433 (description
35b9e423 434 "Util-linux is a random collection of utilities for the Linux kernel.")
fe8ccfcc 435
02b80c3f 436 ;; Note that util-linux doesn't use the same license for all the
fe8ccfcc 437 ;; code. GPLv2+ is the default license for a code without an
02b80c3f 438 ;; explicitly defined license.
fe8ccfcc
LC
439 (license (list gpl3+ gpl2+ gpl2 lgpl2.0+
440 bsd-4 public-domain))))
5d5c4278 441
e47e3eff
LC
442(define-public procps
443 (package
444 (name "procps")
445 (version "3.2.8")
446 (source (origin
447 (method url-fetch)
0e259d7e
TUBK
448 ;; A mirror://sourceforge URI doesn't work, presumably becuase
449 ;; the SourceForge project is misconfigured.
e47e3eff
LC
450 (uri (string-append "http://procps.sourceforge.net/procps-"
451 version ".tar.gz"))
452 (sha256
453 (base32
01eafd38
LC
454 "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i"))
455 (patches (list (search-patch "procps-make-3.82.patch")))))
e47e3eff 456 (build-system gnu-build-system)
01eafd38 457 (inputs `(("ncurses" ,ncurses)))
e47e3eff 458 (arguments
80393eed
LC
459 '(#:modules ((guix build utils)
460 (guix build gnu-build-system)
461 (srfi srfi-1)
462 (srfi srfi-26))
463 #:phases (alist-replace
e47e3eff
LC
464 'configure
465 (lambda* (#:key outputs #:allow-other-keys)
466 ;; No `configure', just a single Makefile.
467 (let ((out (assoc-ref outputs "out")))
468 (substitute* "Makefile"
469 (("/usr/") "/")
470 (("--(owner|group) 0") "")
471 (("ldconfig") "true")
472 (("^LDFLAGS[[:blank:]]*:=(.*)$" _ value)
473 ;; Add libproc to the RPATH.
474 (string-append "LDFLAGS := -Wl,-rpath="
475 out "/lib" value))))
476 (setenv "CC" "gcc"))
477 (alist-replace
478 'install
479 (lambda* (#:key outputs #:allow-other-keys)
480 (let ((out (assoc-ref outputs "out")))
481 (and (zero?
482 (system* "make" "install"
483 (string-append "DESTDIR=" out)))
484
80393eed
LC
485 ;; Remove commands and man pages redundant with
486 ;; Coreutils.
487 (let ((dup (append-map (cut find-files out <>)
488 '("^kill" "^uptime"))))
489 (for-each delete-file dup)
490 #t)
491
e47e3eff
LC
492 ;; Sanity check.
493 (zero?
494 (system* (string-append out "/bin/ps")
495 "--version")))))
496 %standard-phases))
497
498 ;; What did you expect? Tests?
499 #:tests? #f))
500 (home-page "http://procps.sourceforge.net/")
35ec07c7 501 (synopsis "Utilities that give information about processes")
e47e3eff 502 (description
35b9e423 503 "Procps is the package that has a bunch of small useful utilities
e47e3eff
LC
504that give information about processes using the Linux /proc file system.
505The package includes the programs ps, top, vmstat, w, kill, free,
506slabtop, and skill.")
507 (license gpl2)))
508
5d5c4278
NK
509(define-public usbutils
510 (package
511 (name "usbutils")
512 (version "006")
513 (source
514 (origin
515 (method url-fetch)
516 (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
517 "usbutils-" version ".tar.xz"))
518 (sha256
519 (base32
520 "03pd57vv8c6x0hgjqcbrxnzi14h8hcghmapg89p8k5zpwpkvbdfr"))))
521 (build-system gnu-build-system)
522 (inputs
c4c4cc05
JD
523 `(("libusb" ,libusb)))
524 (native-inputs
525 `(("pkg-config" ,pkg-config)))
5d5c4278
NK
526 (home-page "http://www.linux-usb.org/")
527 (synopsis
528 "Tools for working with USB devices, such as lsusb")
529 (description
530 "Tools for working with USB devices, such as lsusb.")
4050e5d6 531 (license gpl2+)))
0750452a
LC
532
533(define-public e2fsprogs
534 (package
535 (name "e2fsprogs")
183eaf87 536 (version "1.42.12")
0750452a
LC
537 (source (origin
538 (method url-fetch)
539 (uri (string-append "mirror://sourceforge/e2fsprogs/e2fsprogs-"
540 version ".tar.gz"))
541 (sha256
542 (base32
183eaf87 543 "0v0qcfyls0dlrjy8gx9m3s2wbkp5z3lbsr5hb7x8kp8f3bclcy71"))
7c594a2c
LC
544 (modules '((guix build utils)))
545 (snippet
546 '(substitute* "MCONFIG.in"
547 (("INSTALL_SYMLINK = /bin/sh")
548 "INSTALL_SYMLINK = sh")))))
0750452a 549 (build-system gnu-build-system)
c4c4cc05 550 (inputs `(("util-linux" ,util-linux)))
f57d2639 551 (native-inputs `(("pkg-config" ,pkg-config)
7c594a2c 552 ("texinfo" ,texinfo))) ;for the libext2fs Info manual
0750452a 553 (arguments
c44ed26c
LC
554 '(;; util-linux is not the preferred source for some of the libraries and
555 ;; commands, so disable them (see, e.g.,
ddfc2fd8 556 ;; <http://git.buildroot.net/buildroot/commit/?id=e1ffc2f791b336339909c90559b7db40b455f172>.)
c44ed26c
LC
557 #:configure-flags '("--disable-libblkid"
558 "--disable-libuuid" "--disable-uuidd"
559 "--disable-fsck"
7c594a2c
LC
560
561 ;; Install libext2fs et al.
562 "--enable-elf-shlibs")
563
564 #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
565 (assoc-ref %outputs "out")
566 "/lib"))
ddfc2fd8
LC
567
568 #:phases (alist-cons-before
0750452a
LC
569 'configure 'patch-shells
570 (lambda _
571 (substitute* "configure"
572 (("/bin/sh (.*)parse-types.sh" _ dir)
573 (string-append (which "sh") " " dir
574 "parse-types.sh")))
575 (substitute* (find-files "." "^Makefile.in$")
576 (("#!/bin/sh")
577 (string-append "#!" (which "sh")))))
1c975f60
LC
578 (alist-cons-after
579 'install 'install-libs
853c2f18
LC
580 (lambda* (#:key outputs #:allow-other-keys)
581 (let* ((out (assoc-ref outputs "out"))
582 (lib (string-append out "/lib")))
583 (and (zero? (system* "make" "install-libs"))
584
585 ;; Make the .a writable so that 'strip' works.
586 ;; Failing to do that, due to debug symbols, we
587 ;; retain a reference to the final
588 ;; linux-libre-headers, which refer to the
589 ;; bootstrap binaries.
590 (let ((archives (find-files lib "\\.a$")))
591 (for-each (lambda (file)
592 (chmod file #o666))
593 archives)
594 #t))))
1c975f60 595 %standard-phases))
0750452a
LC
596
597 ;; FIXME: Tests work by comparing the stdout/stderr of programs, that
598 ;; they fail because we get an extra line that says "Can't check if
599 ;; filesystem is mounted due to missing mtab file".
600 #:tests? #f))
601 (home-page "http://e2fsprogs.sourceforge.net/")
35ec07c7 602 (synopsis "Creating and checking ext2/ext3/ext4 file systems")
0750452a
LC
603 (description
604 "This package provides tools for manipulating ext2/ext3/ext4 file systems.")
605 (license (list gpl2 ; programs
606 lgpl2.0 ; libext2fs
607 x11)))) ; libuuid
d8482ad0 608
e48977e7
LC
609(define e2fsprogs/static
610 (static-package
611 (package (inherit e2fsprogs)
612 (arguments
613 ;; Do not build shared libraries.
614 (substitute-keyword-arguments (package-arguments e2fsprogs)
615 ((#:configure-flags _)
616 '(list "--disable-blkid"))
617 ((#:make-flags _)
618 '(list)))))))
619
e102f940
LC
620(define-public e2fsck/static
621 (package
622 (name "e2fsck-static")
0997771a 623 (version (package-version e2fsprogs))
e102f940
LC
624 (build-system trivial-build-system)
625 (source #f)
626 (arguments
627 `(#:modules ((guix build utils))
628 #:builder
629 (begin
630 (use-modules (guix build utils)
631 (ice-9 ftw)
632 (srfi srfi-26))
633
634 (let ((source (string-append (assoc-ref %build-inputs "e2fsprogs")
635 "/sbin"))
636 (bin (string-append (assoc-ref %outputs "out") "/sbin")))
637 (mkdir-p bin)
638 (with-directory-excursion bin
639 (for-each (lambda (file)
640 (copy-file (string-append source "/" file)
641 file)
642 (remove-store-references file)
643 (chmod file #o555))
644 (scandir source (cut string-prefix? "fsck." <>))))))))
e48977e7 645 (inputs `(("e2fsprogs" ,e2fsprogs/static)))
e102f940
LC
646 (synopsis "Statically-linked fsck.* commands from e2fsprogs")
647 (description
648 "This package provides statically-linked command of fsck.ext[234] taken
649from the e2fsprogs package. It is meant to be used in initrds.")
0997771a
LC
650 (home-page (package-home-page e2fsprogs))
651 (license (package-license e2fsprogs))))
e102f940 652
1c975f60
LC
653(define-public zerofree
654 (package
655 (name "zerofree")
656 (version "1.0.3")
657 (home-page "http://intgat.tigress.co.uk/rmy/uml/")
658 (source (origin
659 (method url-fetch)
660 (uri (string-append home-page name "-" version
661 ".tgz"))
662 (sha256
663 (base32
664 "1xncw3dn2cp922ly42m96p6fh7jv8ysg6bwqbk5xvw701f3dmkrs"))))
665 (build-system gnu-build-system)
666 (arguments
667 '(#:phases (alist-replace
668 'install
669 (lambda* (#:key outputs #:allow-other-keys)
670 (let* ((out (assoc-ref outputs "out"))
671 (bin (string-append out "/bin")))
672 (mkdir-p bin)
673 (copy-file "zerofree"
674 (string-append bin "/zerofree"))
675 (chmod (string-append bin "/zerofree")
676 #o555)
677 #t))
678 (alist-delete 'configure %standard-phases))
679 #:tests? #f)) ;no tests
680 (inputs `(("libext2fs" ,e2fsprogs)))
681 (synopsis "Zero non-allocated regions in ext2/ext3/ext4 file systems")
682 (description
683 "The zerofree command scans the free blocks in an ext2 file system and
684fills any non-zero blocks with zeroes. This is a useful way to make disk
685images more compressible.")
686 (license gpl2)))
687
d8482ad0
LC
688(define-public strace
689 (package
690 (name "strace")
691 (version "4.7")
692 (source (origin
693 (method url-fetch)
694 (uri (string-append "mirror://sourceforge/strace/strace-"
695 version ".tar.xz"))
696 (sha256
697 (base32
698 "158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764"))))
699 (build-system gnu-build-system)
c4c4cc05 700 (native-inputs `(("perl" ,perl)))
d8482ad0
LC
701 (home-page "http://strace.sourceforge.net/")
702 (synopsis "System call tracer for Linux")
703 (description
704 "strace is a system call tracer, i.e. a debugging tool which prints out a
705trace of all the system calls made by a another process/program.")
706 (license bsd-3)))
ba04571a 707
e1e27737
TUBK
708(define-public ltrace
709 (package
710 (name "ltrace")
711 (version "0.7.3")
712 (source (origin
713 (method url-fetch)
714 (uri (string-append "http://www.ltrace.org/ltrace_" version
715 ".orig.tar.bz2"))
716 (sha256
717 (base32
718 "00wmbdghqbz6x95m1mcdd3wd46l6hgcr4wggdp049dbifh3qqvqf"))))
719 (build-system gnu-build-system)
720 (inputs `(("libelf" ,libelf)))
721 (arguments
722 ;; Compilation uses -Werror by default, but it fails.
723 '(#:configure-flags '("--disable-werror")))
724 (home-page "http://www.ltrace.org/")
725 (synopsis "Library call tracer for Linux")
726 (description
727 "ltrace intercepts and records dynamic library calls which are called by
728an executed process and the signals received by that process. It can also
729intercept and print the system calls executed by the program.")
730 (license gpl2+)))
731
ba04571a
LC
732(define-public alsa-lib
733 (package
734 (name "alsa-lib")
735 (version "1.0.27.1")
736 (source (origin
737 (method url-fetch)
738 (uri (string-append
739 "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-"
740 version ".tar.bz2"))
741 (sha256
742 (base32
bcd94e19
MW
743 "0fx057746dj7rjdi0jnvx2m9b0y1lgdkh1hks87d8w32xyihf3k9"))
744 (patches (list (search-patch "alsa-lib-mips-atomic-fix.patch")))))
ba04571a
LC
745 (build-system gnu-build-system)
746 (home-page "http://www.alsa-project.org/")
747 (synopsis "The Advanced Linux Sound Architecture libraries")
748 (description
749 "The Advanced Linux Sound Architecture (ALSA) provides audio and
750MIDI functionality to the Linux-based operating system.")
751 (license lgpl2.1+)))
10afdf50 752
17b293a0
LC
753(define-public alsa-utils
754 (package
755 (name "alsa-utils")
756 (version "1.0.27.2")
757 (source (origin
758 (method url-fetch)
759 (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-"
760 version ".tar.bz2"))
761 (sha256
762 (base32
763 "1sjjngnq50jv5ilwsb4zys6smifni3bd6fn28gbnhfrg14wsrgq2"))))
764 (build-system gnu-build-system)
765 (arguments
766 ;; XXX: Disable man page creation until we have DocBook.
767 '(#:configure-flags (list "--disable-xmlto"
f2817d43
LC
768
769 ;; The udev rule is responsible for restoring
770 ;; the volume.
17b293a0
LC
771 (string-append "--with-udev-rules-dir="
772 (assoc-ref %outputs "out")
773 "/lib/udev/rules.d"))
774 #:phases (alist-cons-before
775 'install 'pre-install
776 (lambda _
777 ;; Don't try to mkdir /var/lib/alsa.
778 (substitute* "Makefile"
779 (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*")
780 "true\n")))
781 %standard-phases)))
782 (inputs
783 `(("libsamplerate" ,libsamplerate)
784 ("ncurses" ,ncurses)
785 ("alsa-lib" ,alsa-lib)
786 ("xmlto" ,xmlto)
1dba6407 787 ("gettext" ,gnu-gettext)))
17b293a0
LC
788 (home-page "http://www.alsa-project.org/")
789 (synopsis "Utilities for the Advanced Linux Sound Architecture (ALSA)")
790 (description
791 "The Advanced Linux Sound Architecture (ALSA) provides audio and
792MIDI functionality to the Linux-based operating system.")
793
794 ;; This is mostly GPLv2+ but a few files such as 'alsactl.c' are
795 ;; GPLv2-only.
796 (license gpl2)))
797
10afdf50
LC
798(define-public iptables
799 (package
800 (name "iptables")
801 (version "1.4.16.2")
802 (source (origin
803 (method url-fetch)
804 (uri (string-append
805 "http://www.netfilter.org/projects/iptables/files/iptables-"
806 version ".tar.bz2"))
807 (sha256
808 (base32
809 "0vkg5lzkn4l3i1sm6v3x96zzvnv9g7mi0qgj6279ld383mzcws24"))))
810 (build-system gnu-build-system)
50c26d9e
SB
811 (arguments
812 '(#:tests? #f ; no test suite
813 #:configure-flags ; add $libdir to the RUNPATH of executables
814 (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
10afdf50
LC
815 (home-page "http://www.netfilter.org/projects/iptables/index.html")
816 (synopsis "Program to configure the Linux IP packet filtering rules")
817 (description
818 "iptables is the userspace command line program used to configure the
819Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards
820system administrators. Since Network Address Translation is also configured
821from the packet filter ruleset, iptables is used for this, too. The iptables
822package also includes ip6tables. ip6tables is used for configuring the IPv6
823packet filter.")
824 (license gpl2+)))
90a0048f
LC
825
826(define-public iproute
827 (package
828 (name "iproute2")
5fd7f3e0 829 (version "3.12.0")
90a0048f
LC
830 (source (origin
831 (method url-fetch)
832 (uri (string-append
833 "mirror://kernel.org/linux/utils/net/iproute2/iproute2-"
834 version ".tar.xz"))
835 (sha256
836 (base32
5fd7f3e0 837 "04gi11gh087bg2nlxhj0lxrk8l9qxkpr88nsiil23917bm3h1xj4"))))
90a0048f
LC
838 (build-system gnu-build-system)
839 (arguments
840 `(#:tests? #f ; no test suite
841 #:make-flags (let ((out (assoc-ref %outputs "out")))
842 (list "DESTDIR="
843 (string-append "LIBDIR=" out "/lib")
844 (string-append "SBINDIR=" out "/sbin")
845 (string-append "CONFDIR=" out "/etc")
846 (string-append "DOCDIR=" out "/share/doc/"
847 ,name "-" ,version)
848 (string-append "MANDIR=" out "/share/man")))
849 #:phases (alist-cons-before
850 'install 'pre-install
851 (lambda _
852 ;; Don't attempt to create /var/lib/arpd.
853 (substitute* "Makefile"
854 (("^.*ARPDDIR.*$") "")))
855 %standard-phases)))
856 (inputs
857 `(("iptables" ,iptables)
c4c4cc05
JD
858 ("db4" ,bdb)))
859 (native-inputs
860 `(("pkg-config" ,pkg-config)
90a0048f
LC
861 ("flex" ,flex)
862 ("bison" ,bison)))
863 (home-page
864 "http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2")
865 (synopsis
9e771e3b 866 "Utilities for controlling TCP/IP networking and traffic in Linux")
90a0048f
LC
867 (description
868 "Iproute2 is a collection of utilities for controlling TCP/IP
869networking and traffic with the Linux kernel.
870
871Most network configuration manuals still refer to ifconfig and route as the
872primary network configuration tools, but ifconfig is known to behave
873inadequately in modern network environments. They should be deprecated, but
874most distros still include them. Most network configuration systems make use
875of ifconfig and thus provide a limited feature set. The /etc/net project aims
876to support most modern network technologies, as it doesn't use ifconfig and
877allows a system administrator to make use of all iproute2 features, including
878traffic control.
879
880iproute2 is usually shipped in a package called iproute or iproute2 and
881consists of several tools, of which the most important are ip and tc. ip
882controls IPv4 and IPv6 configuration and tc stands for traffic control. Both
883tools print detailed usage messages and are accompanied by a set of
884manpages.")
885 (license gpl2+)))
85e0dc6a
LC
886
887(define-public net-tools
888 ;; XXX: This package is basically unmaintained, but it provides a few
889 ;; commands not yet provided by Inetutils, such as 'route', so we have to
890 ;; live with it.
891 (package
892 (name "net-tools")
893 (version "1.60")
894 (home-page "http://www.tazenda.demon.co.uk/phil/net-tools/")
895 (source (origin
896 (method url-fetch)
897 (uri (string-append home-page "/" name "-"
898 version ".tar.bz2"))
899 (sha256
900 (base32
177088a3
LC
901 "0yvxrzk0mzmspr7sa34hm1anw6sif39gyn85w4c5ywfn8inxvr3s"))
902 (patches
903 (list (search-patch "net-tools-bitrot.patch")))))
85e0dc6a
LC
904 (build-system gnu-build-system)
905 (arguments
c9e0a44e
LC
906 '(#:modules ((guix build gnu-build-system)
907 (guix build utils)
908 (srfi srfi-1)
909 (srfi srfi-26))
910 #:phases (alist-cons-after
cd143df0 911 'unpack 'patch
85e0dc6a
LC
912 (lambda* (#:key inputs #:allow-other-keys)
913 (define (apply-patch file)
9a224ac2 914 (zero? (system* "patch" "-p1" "--force"
85e0dc6a
LC
915 "--input" file)))
916
917 (let ((patch.gz (assoc-ref inputs "patch")))
918 (format #t "applying Debian patch set '~a'...~%"
919 patch.gz)
920 (system (string-append "gunzip < " patch.gz " > the-patch"))
85e0dc6a
LC
921 (and (apply-patch "the-patch")
922 (for-each apply-patch
923 (find-files "debian/patches"
924 "\\.patch")))))
925 (alist-replace
926 'configure
927 (lambda* (#:key outputs #:allow-other-keys)
928 (let ((out (assoc-ref outputs "out")))
929 (mkdir-p (string-append out "/bin"))
930 (mkdir-p (string-append out "/sbin"))
931
932 ;; Pretend we have everything...
933 (system "yes | make config")
934
a153ff80
MW
935 ;; ... except for the things we don't have.
936 ;; HAVE_AFDECnet requires libdnet, which we don't have.
937 ;; HAVE_HWSTRIP and HAVE_HWTR require kernel headers
938 ;; that have been removed.
85e0dc6a 939 (substitute* '("config.make" "config.h")
a153ff80 940 (("^.*HAVE_(AFDECnet|HWSTRIP|HWTR)[ =]1.*$") ""))))
c9e0a44e
LC
941 (alist-cons-after
942 'install 'remove-redundant-commands
943 (lambda* (#:key outputs #:allow-other-keys)
944 ;; Remove commands and man pages redundant with
945 ;; Inetutils.
946 (let* ((out (assoc-ref outputs "out"))
947 (dup (append-map (cut find-files out <>)
948 '("^hostname"
949 "^(yp|nis|dns)?domainname"))))
950 (for-each delete-file dup)
951 #t))
952 %standard-phases)))
85e0dc6a
LC
953
954 ;; Binaries that depend on libnet-tools.a don't declare that
955 ;; dependency, making it parallel-unsafe.
956 #:parallel-build? #f
957
958 #:tests? #f ; no test suite
0d55c356
MW
959 #:make-flags (let ((out (assoc-ref %outputs "out")))
960 (list "CC=gcc"
961 (string-append "BASEDIR=" out)
962 (string-append "INSTALLNLSDIR=" out "/share/locale")
963 (string-append "mandir=/share/man")))))
85e0dc6a
LC
964
965 ;; Use the big Debian patch set (the thing does not even compile out of
966 ;; the box.)
967 (inputs `(("patch" ,(origin
968 (method url-fetch)
969 (uri
970 "http://ftp.de.debian.org/debian/pool/main/n/net-tools/net-tools_1.60-24.2.diff.gz")
971 (sha256
972 (base32
973 "0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p"))))))
1dba6407 974 (native-inputs `(("gettext" ,gnu-gettext)))
85e0dc6a
LC
975
976 (synopsis "Tools for controlling the network subsystem in Linux")
977 (description
978 "This package includes the important tools for controlling the network
979subsystem of the Linux kernel. This includes arp, hostname, ifconfig,
980netstat, rarp and route. Additionally, this package contains utilities
981relating to particular network hardware types (plipconfig, slattach) and
982advanced aspects of IP configuration (iptunnel, ipmaddr).")
983 (license gpl2+)))
c762e82e
LC
984
985(define-public libcap
986 (package
987 (name "libcap")
988 (version "2.22")
989 (source (origin
990 (method url-fetch)
991
992 ;; Tarballs used to be available from
993 ;; <https://www.kernel.org/pub/linux/libs/security/linux-privs/>
994 ;; but they never came back after kernel.org was compromised.
995 (uri (string-append
996 "mirror://debian/pool/main/libc/libcap2/libcap2_"
997 version ".orig.tar.gz"))
998 (sha256
999 (base32
1000 "07vjhkznm82p8dm4w6j8mmg7h5c70lp5s9bwwfdmgwpbixfydjp1"))))
1001 (build-system gnu-build-system)
6d889daf
SB
1002 (arguments '(#:phases
1003 (modify-phases %standard-phases
1004 (replace 'configure
1005 ;; Add $libdir to the RUNPATH of executables.
1006 (lambda _
1007 (substitute* "Make.Rules"
1008 (("LDFLAGS := #-g")
1009 (string-append "LDFLAGS := -Wl,-rpath="
1010 %output "/lib"))))))
c762e82e
LC
1011 #:tests? #f ; no 'check' target
1012 #:make-flags (list "lib=lib"
1013 (string-append "prefix="
1014 (assoc-ref %outputs "out"))
1015 "RAISE_SETFCAP=no")))
1016 (native-inputs `(("perl" ,perl)))
1017 (inputs `(("attr" ,attr)))
1018 (home-page "https://sites.google.com/site/fullycapable/")
1019 (synopsis "Library for working with POSIX capabilities")
1020 (description
35b9e423 1021 "Libcap2 provides a programming interface to POSIX capabilities on
c762e82e
LC
1022Linux-based operating systems.")
1023
1024 ;; License is BSD-3 or GPLv2, at the user's choice.
1025 (license gpl2)))
215b6431
LC
1026
1027(define-public bridge-utils
1028 (package
1029 (name "bridge-utils")
1030 (version "1.5")
1031 (source (origin
1032 (method url-fetch)
1033 (uri (string-append "mirror://sourceforge/bridge/bridge-utils-"
1034 version ".tar.gz"))
1035 (sha256
1036 (base32
1037 "12367cwqmi0yqphi6j8rkx97q8hw52yq2fx4k0xfclkcizxybya2"))))
1038 (build-system gnu-build-system)
1039
1040 ;; The tarball lacks all the generated files.
1041 (native-inputs `(("autoconf" ,autoconf)
1042 ("automake" ,automake)))
1043 (arguments
722ec722
MW
1044 '(#:phases (alist-cons-after
1045 'unpack 'bootstrap
215b6431 1046 (lambda _
e5c8e4f3
DT
1047 ;; Fix "field ‘ip6’ has incomplete type" errors.
1048 (substitute* "libbridge/libbridge.h"
1049 (("#include <linux/if_bridge.h>")
1050 "#include <linux/in6.h>\n#include <linux/if_bridge.h>"))
1051
1052 ;; Ensure that the entire build fails if one of the
1053 ;; sub-Makefiles fails.
1054 (substitute* "Makefile.in"
1055 (("\\$\\(MAKE\\) \\$\\(MFLAGS\\) -C \\$\\$x ;")
1056 "$(MAKE) $(MFLAGS) -C $$x || exit 1;"))
1057
215b6431
LC
1058 (zero? (system* "autoreconf" "-vf")))
1059 %standard-phases)
1060 #:tests? #f)) ; no 'check' target
1061
1062 (home-page
1063 "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge")
1064 (synopsis "Manipulate Ethernet bridges")
1065 (description
1066 "Utilities for Linux's Ethernet bridging facilities. A bridge is a way
1067to connect two Ethernet segments together in a protocol independent way.
1068Packets are forwarded based on Ethernet address, rather than IP address (like
1069a router). Since forwarding is done at Layer 2, all protocols can go
1070transparently through a bridge.")
1071 (license gpl2+)))
3cc20675
LC
1072
1073(define-public libnl
1074 (package
1075 (name "libnl")
bdac3d4b 1076 (version "3.2.25")
3cc20675
LC
1077 (source (origin
1078 (method url-fetch)
1079 (uri (string-append
1080 "http://www.infradead.org/~tgr/libnl/files/libnl-"
1081 version ".tar.gz"))
1082 (sha256
1083 (base32
bdac3d4b 1084 "1icfrv8yihcb74as1gcgmp0wfpdq632q2zvbvqqvjms9cy87bswb"))))
3cc20675
LC
1085 (build-system gnu-build-system)
1086 (native-inputs `(("flex" ,flex) ("bison" ,bison)))
1087 (home-page "http://www.infradead.org/~tgr/libnl/")
1088 (synopsis "NetLink protocol library suite")
1089 (description
1090 "The libnl suite is a collection of libraries providing APIs to netlink
1091protocol based Linux kernel interfaces. Netlink is an IPC mechanism primarly
1092between the kernel and user space processes. It was designed to be a more
1093flexible successor to ioctl to provide mainly networking related kernel
1094configuration and monitoring interfaces.")
1095
1096 ;; Most files are LGPLv2.1-only, but some are GPLv2-only (like
1097 ;; 'nl-addr-add.c'), so the result is GPLv2-only.
1098 (license gpl2)))
023fef7d 1099
65cd77db
MW
1100(define-public iw
1101 (package
1102 (name "iw")
1103 (version "3.17")
1104 (source (origin
1105 (method url-fetch)
1106 (uri (string-append
1107 "https://www.kernel.org/pub/software/network/iw/iw-"
1108 version ".tar.xz"))
1109 (sha256
1110 (base32
1111 "14zsapqhivk0ws5z21y1ys2c2czi05mzk7bl2yb7qxcfrnsjx9j8"))))
1112 (build-system gnu-build-system)
1113 (native-inputs `(("pkg-config" ,pkg-config)))
1114 (inputs `(("libnl" ,libnl)))
1115 (arguments
1116 `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
1117 "CC=gcc")
1118 #:phases (alist-delete 'configure %standard-phases)))
1119 (home-page "http://wireless.kernel.org/en/users/Documentation/iw")
1120 (synopsis "Tool for configuring wireless devices")
1121 (description
1122 "iw is a new nl80211 based CLI configuration utility for wireless
1123devices. It replaces 'iwconfig', which is deprecated.")
1124 (license isc)))
1125
023fef7d
LC
1126(define-public powertop
1127 (package
1128 (name "powertop")
1129 (version "2.5")
1130 (source
1131 (origin
1132 (method url-fetch)
1133 (uri (string-append
1134 "https://01.org/powertop/sites/default/files/downloads/powertop-"
1135 version ".tar.gz"))
1136 (sha256
1137 (base32
1138 "02rwqbpasdayl201v0549gbp2f82rd0hqiv3i111r7npanjhhb4b"))))
1139 (build-system gnu-build-system)
1140 (inputs
1141 ;; TODO: Add pciutils.
f61e0e79 1142 `(("zlib" ,zlib)
023fef7d
LC
1143 ;; ("pciutils" ,pciutils)
1144 ("ncurses" ,ncurses)
1145 ("libnl" ,libnl)))
c4c4cc05
JD
1146 (native-inputs
1147 `(("pkg-config" ,pkg-config)))
023fef7d
LC
1148 (home-page "https://01.org/powertop/")
1149 (synopsis "Analyze power consumption on Intel-based laptops")
1150 (description
1151 "PowerTOP is a Linux tool to diagnose issues with power consumption and
1152power management. In addition to being a diagnostic tool, PowerTOP also has
1153an interactive mode where the user can experiment various power management
1154settings for cases where the operating system has not enabled these
1155settings.")
1156 (license gpl2)))
6869e5c9
LC
1157
1158(define-public aumix
1159 (package
1160 (name "aumix")
1161 (version "2.9.1")
1162 (source (origin
1163 (method url-fetch)
1164 (uri (string-append
1165 "http://www.jpj.net/~trevor/aumix/releases/aumix-"
1166 version ".tar.bz2"))
1167 (sha256
1168 (base32
1169 "0a8fwyxnc5qdxff8sl2sfsbnvgh6pkij4yafiln0fxgg6bal7knj"))))
1170 (build-system gnu-build-system)
1171 (inputs `(("ncurses" ,ncurses)))
1172 (home-page "http://www.jpj.net/~trevor/aumix.html")
1173 (synopsis "Audio mixer for X and the console")
1174 (description
1175 "Aumix adjusts an audio mixer from X, the console, a terminal,
1176the command line or a script.")
1177 (license gpl2+)))
7c0dbe78
SHT
1178
1179(define-public iotop
1180 (package
1181 (name "iotop")
1182 (version "0.6")
1183 (source
1184 (origin
1185 (method url-fetch)
1186 (uri (string-append "http://guichaz.free.fr/iotop/files/iotop-"
1187 version ".tar.gz"))
1188 (sha256 (base32
1189 "1kp8mqg2pbxq4xzpianypadfxcsyfgwcaqgqia6h9fsq6zyh4z0s"))))
1190 (build-system python-build-system)
1191 (arguments
35cebf01 1192 ;; The setup.py script expects python-2.
7c0dbe78 1193 `(#:python ,python-2
35cebf01 1194 ;; There are currently no checks in the package.
7c0dbe78
SHT
1195 #:tests? #f))
1196 (native-inputs `(("python" ,python-2)))
1197 (home-page "http://guichaz.free.fr/iotop/")
1198 (synopsis
1199 "Displays the IO activity of running processes")
1200 (description
1201 "Iotop is a Python program with a top like user interface to show the
1202processes currently causing I/O.")
35cebf01 1203 (license gpl2+)))
e30835e2
LC
1204
1205(define-public fuse
1206 (package
1207 (name "fuse")
1208 (version "2.9.3")
1209 (source (origin
1210 (method url-fetch)
1211 (uri (string-append "mirror://sourceforge/fuse/fuse-"
1212 version ".tar.gz"))
1213 (sha256
1214 (base32
4de02f36
MW
1215 "071r6xjgssy8vwdn6m28qq1bqxsd2bphcd2mzhq0grf5ybm87sqb"))
1216 (patches (list (search-patch "fuse-CVE-2015-3202.patch")))))
e30835e2 1217 (build-system gnu-build-system)
b148bd71 1218 (inputs `(("util-linux" ,util-linux)))
e30835e2
LC
1219 (arguments
1220 '(#:configure-flags (list (string-append "MOUNT_FUSE_PATH="
1221 (assoc-ref %outputs "out")
1222 "/sbin")
1223 (string-append "INIT_D_PATH="
1224 (assoc-ref %outputs "out")
1225 "/etc/init.d")
9a4efac9
LC
1226
1227 ;; The rule makes /dev/fuse 666.
e30835e2
LC
1228 (string-append "UDEV_RULES_PATH="
1229 (assoc-ref %outputs "out")
9a4efac9 1230 "/lib/udev/rules.d"))
b148bd71
LC
1231 #:phases (alist-cons-before
1232 'build 'set-file-names
1233 (lambda* (#:key inputs #:allow-other-keys)
1234 ;; libfuse calls out to mount(8) and umount(8). Make sure
1235 ;; it refers to the right ones.
1236 (substitute* '("lib/mount_util.c" "util/mount_util.c")
1237 (("/bin/(u?)mount" _ maybe-u)
1238 (string-append (assoc-ref inputs "util-linux")
1239 "/bin/" maybe-u "mount")))
1240 (substitute* '("util/mount.fuse.c")
1241 (("/bin/sh")
bd663902
LC
1242 (which "sh")))
1243
1244 ;; This hack leads libfuse to search for 'fusermount' in
1245 ;; $PATH, where it may find a setuid-root binary, instead of
1246 ;; trying solely $out/sbin/fusermount and failing because
1247 ;; it's not setuid.
1248 (substitute* "lib/Makefile"
1249 (("-DFUSERMOUNT_DIR=[[:graph:]]+")
1250 "-DFUSERMOUNT_DIR=\\\"/var/empty\\\"")))
b148bd71 1251 %standard-phases)))
e30835e2
LC
1252 (home-page "http://fuse.sourceforge.net/")
1253 (synopsis "Support file systems implemented in user space")
1254 (description
1255 "As a consequence of its monolithic design, file system code for Linux
1256normally goes into the kernel itself---which is not only a robustness issue,
1257but also an impediment to system extensibility. FUSE, for \"file systems in
1258user space\", is a kernel module and user-space library that tries to address
1259part of this problem by allowing users to run file system implementations as
1260user-space processes.")
1261 (license (list lgpl2.1 ; library
1262 gpl2+)))) ; command-line utilities
220193ad
LC
1263
1264(define-public unionfs-fuse
1265 (package
1266 (name "unionfs-fuse")
1267 (version "0.26")
1268 (source (origin
1269 (method url-fetch)
1270 (uri (string-append
1271 "http://podgorny.cz/unionfs-fuse/releases/unionfs-fuse-"
1272 version ".tar.xz"))
1273 (sha256
1274 (base32
1275 "0qpnr4czgc62vsfnmv933w62nq3xwcbnvqch72qakfgca75rsp4d"))))
1276 (build-system cmake-build-system)
1277 (inputs `(("fuse" ,fuse)))
1278 (arguments '(#:tests? #f)) ; no tests
1279 (home-page "http://podgorny.cz/moin/UnionFsFuse")
1280 (synopsis "User-space union file system")
1281 (description
1282 "UnionFS-FUSE is a flexible union file system implementation in user
1283space, using the FUSE library. Mounting a union file system allows you to
1284\"aggregate\" the contents of several directories into a single mount point.
1285UnionFS-FUSE additionally supports copy-on-write.")
1286 (license bsd-3)))
ed748588 1287
0b7a0c20
LC
1288(define fuse-static
1289 (package (inherit fuse)
1290 (name "fuse-static")
1291 (source (origin (inherit (package-source fuse))
1292 (modules '((guix build utils)))
1293 (snippet
1294 ;; Normally libfuse invokes mount(8) so that /etc/mtab is
1295 ;; updated. Change calls to 'mtab_needs_update' to 0 so that
1296 ;; it doesn't do that, allowing us to remove the dependency on
1297 ;; util-linux (something that is useful in initrds.)
1298 '(substitute* '("lib/mount_util.c"
1299 "util/mount_util.c")
1300 (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)")
1301 "0")
1302 (("/bin/")
1303 "")))))))
1304
ed748588
LC
1305(define-public unionfs-fuse/static
1306 (package (inherit unionfs-fuse)
1307 (synopsis "User-space union file system (statically linked)")
1308 (name (string-append (package-name unionfs-fuse) "-static"))
1309 (source (origin (inherit (package-source unionfs-fuse))
1310 (modules '((guix build utils)))
1311 (snippet
1312 ;; Add -ldl to the libraries, because libfuse.a needs that.
1313 '(substitute* "src/CMakeLists.txt"
1314 (("target_link_libraries(.*)\\)" _ libs)
1315 (string-append "target_link_libraries"
1316 libs " dl)"))))))
1317 (arguments
1318 '(#:tests? #f
1456cff1
LC
1319 #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static")
1320 #:phases (alist-cons-after
1321 'install 'post-install
1322 (lambda* (#:key outputs #:allow-other-keys)
1323 (let* ((out (assoc-ref outputs "out"))
1324 (exe (string-append out "/bin/unionfs")))
1325 ;; By default, 'unionfs' keeps references to
1326 ;; $glibc/share/locale and similar stuff. Remove them.
1327 (remove-store-references exe)))
1328 %standard-phases)))
0b7a0c20 1329 (inputs `(("fuse" ,fuse-static)))))
67b66003 1330
db288efa
LC
1331(define-public sshfs-fuse
1332 (package
1333 (name "sshfs-fuse")
1334 (version "2.5")
1335 (source (origin
1336 (method url-fetch)
1337 (uri (string-append "mirror://sourceforge/fuse/sshfs-fuse-"
1338 version ".tar.gz"))
1339 (sha256
1340 (base32
1341 "0gp6qr33l2p0964j0kds0dfmvyyf5lpgsn11daf0n5fhwm9185z9"))))
1342 (build-system gnu-build-system)
1343 (inputs
1344 `(("fuse" ,fuse)
1345 ("glib" ,glib)))
1346 (native-inputs
1347 `(("pkg-config" ,pkg-config)))
1348 (home-page "http://fuse.sourceforge.net/sshfs.html")
1349 (synopsis "Mount remote file systems over SSH")
1350 (description
1351 "This is a file system client based on the SSH File Transfer Protocol.
1352Since most SSH servers already support this protocol it is very easy to set
1353up: on the server side there's nothing to do; on the client side mounting the
1354file system is as easy as logging into the server with an SSH client.")
1355 (license gpl2+)))
1356
67b66003
LC
1357(define-public numactl
1358 (package
1359 (name "numactl")
1360 (version "2.0.9")
1361 (source (origin
1362 (method url-fetch)
1363 (uri (string-append
1364 "ftp://oss.sgi.com/www/projects/libnuma/download/numactl-"
1365 version
1366 ".tar.gz"))
1367 (sha256
1368 (base32
1369 "073myxlyyhgxh1w3r757ajixb7s2k69czc3r0g12c3scq7k3784w"))))
1370 (build-system gnu-build-system)
1371 (arguments
1372 '(#:phases (alist-replace
1373 'configure
1374 (lambda* (#:key outputs #:allow-other-keys)
1375 ;; There's no 'configure' script, just a raw makefile.
1376 (substitute* "Makefile"
1377 (("^prefix := .*$")
1378 (string-append "prefix := " (assoc-ref outputs "out")
1379 "\n"))
1380 (("^libdir := .*$")
1381 ;; By default the thing tries to install under
1382 ;; $prefix/lib64 when on a 64-bit platform.
1383 (string-append "libdir := $(prefix)/lib\n"))))
1384 %standard-phases)
1385
1386 #:make-flags (list
1387 ;; By default the thing tries to use 'cc'.
1388 "CC=gcc"
1389
1390 ;; Make sure programs have an RPATH so they can find
1391 ;; libnuma.so.
1392 (string-append "LDLIBS=-Wl,-rpath="
1393 (assoc-ref %outputs "out") "/lib"))
1394
1395 ;; There's a 'test' target, but it requires NUMA support in the kernel
1396 ;; to run, which we can't assume to have.
1397 #:tests? #f))
1398 (home-page "http://oss.sgi.com/projects/libnuma/")
1399 (synopsis "Tools for non-uniform memory access (NUMA) machines")
1400 (description
1401 "NUMA stands for Non-Uniform Memory Access, in other words a system whose
1402memory is not all in one place. The numactl program allows you to run your
1403application program on specific CPU's and memory nodes. It does this by
1404supplying a NUMA memory policy to the operating system before running your
1405program.
1406
1407The package contains other commands, such as numademo, numastat and memhog.
1408The numademo command provides a quick overview of NUMA performance on your
1409system.")
1410 (license (list gpl2 ; programs
1411 lgpl2.1)))) ; library
b10e9ff6
LC
1412
1413(define-public kbd
1414 (package
1415 (name "kbd")
710b4928 1416 (version "2.0.2")
b10e9ff6
LC
1417 (source (origin
1418 (method url-fetch)
1419 (uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-"
710b4928 1420 version ".tar.xz"))
b10e9ff6
LC
1421 (sha256
1422 (base32
710b4928 1423 "04mrms12nm5sas0nxs94yrr3hz7gmqhnmfgb9ff34bh1jszxmzcx"))
c8f60748
LC
1424 (modules '((guix build utils)))
1425 (snippet
f2cdcafb
LC
1426 '(begin
1427 (substitute* "tests/Makefile.in"
1428 ;; The '%: %.in' rule incorrectly uses @VERSION@.
1429 (("@VERSION@")
1430 "[@]VERSION[@]"))
1431 (substitute* '("src/unicode_start" "src/unicode_stop")
1432 ;; Assume the Coreutils are in $PATH.
1433 (("/usr/bin/tty")
1434 "tty"))))))
b10e9ff6
LC
1435 (build-system gnu-build-system)
1436 (arguments
1437 '(#:phases (alist-cons-before
1438 'build 'pre-build
1439 (lambda* (#:key inputs #:allow-other-keys)
1440 (let ((gzip (assoc-ref %build-inputs "gzip"))
1441 (bzip2 (assoc-ref %build-inputs "bzip2")))
1442 (substitute* "src/libkeymap/findfile.c"
1443 (("gzip")
1444 (string-append gzip "/bin/gzip"))
1445 (("bzip2")
1446 (string-append bzip2 "/bin/bzip2")))))
f2cdcafb
LC
1447 (alist-cons-after
1448 'install 'post-install
1449 (lambda* (#:key outputs #:allow-other-keys)
1450 ;; Make sure these programs find their comrades.
1451 (let* ((out (assoc-ref outputs "out"))
1452 (bin (string-append out "/bin")))
1453 (for-each (lambda (prog)
1454 (wrap-program (string-append bin "/" prog)
1455 `("PATH" ":" prefix (,bin))))
1456 '("unicode_start" "unicode_stop"))))
1457 %standard-phases))))
b10e9ff6 1458 (inputs `(("check" ,check)
f61e0e79
LC
1459 ("gzip" ,gzip)
1460 ("bzip2" ,bzip2)
b10e9ff6
LC
1461 ("pam" ,linux-pam)))
1462 (native-inputs `(("pkg-config" ,pkg-config)))
1463 (home-page "ftp://ftp.kernel.org/pub/linux/utils/kbd/")
1464 (synopsis "Linux keyboard utilities and keyboard maps")
1465 (description
1466 "This package contains keytable files and keyboard utilities compatible
1467for systems using the Linux kernel. This includes commands such as
1468'loadkeys', 'setfont', 'kbdinfo', and 'chvt'.")
1469 (license gpl2+)))
de0b620e
LC
1470
1471(define-public inotify-tools
1472 (package
1473 (name "inotify-tools")
1474 (version "3.13")
1475 (source (origin
1476 (method url-fetch)
1477 (uri (string-append
1478 "mirror://sourceforge/inotify-tools/inotify-tools/"
1479 version "/inotify-tools-" version ".tar.gz"))
1480 (sha256
1481 (base32
1482 "0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6"))))
1483 (build-system gnu-build-system)
1484 (home-page "http://inotify-tools.sourceforge.net/")
1485 (synopsis "Monitor file accesses")
1486 (description
1487 "The inotify-tools packages provides a C library and command-line tools
1488to use Linux' inotify mechanism, which allows file accesses to be monitored.")
1489 (license gpl2+)))
e062d542
AE
1490
1491(define-public kmod
1492 (package
1493 (name "kmod")
1494 (version "17")
1495 (source (origin
1496 (method url-fetch)
1497 (uri
1498 (string-append "mirror://kernel.org/linux/utils/kernel/kmod/"
1499 "kmod-" version ".tar.xz"))
1500 (sha256
1501 (base32
528b6a3d
LC
1502 "1yid3a9b64a60ybj66fk2ysrq5klnl0ijl4g624cl16y8404g9rv"))
1503 (patches (list (search-patch "kmod-module-directory.patch")))))
e062d542
AE
1504 (build-system gnu-build-system)
1505 (native-inputs
1506 `(("pkg-config" ,pkg-config)))
1507 (inputs
f61e0e79
LC
1508 `(("xz" ,xz)
1509 ("zlib" ,zlib)))
e062d542
AE
1510 (arguments
1511 `(#:tests? #f ; FIXME: Investigate test failures
4a8b4c25
LC
1512 #:configure-flags '("--with-xz" "--with-zlib")
1513 #:phases (alist-cons-after
1514 'install 'install-modprobe&co
1515 (lambda* (#:key outputs #:allow-other-keys)
1516 (let* ((out (assoc-ref outputs "out"))
1517 (bin (string-append out "/bin")))
1518 (for-each (lambda (tool)
1519 (symlink "kmod"
1520 (string-append bin "/" tool)))
1521 '("insmod" "rmmod" "lsmod" "modprobe"
1522 "modinfo" "depmod"))))
1523 %standard-phases)))
e062d542
AE
1524 (home-page "https://www.kernel.org/")
1525 (synopsis "Kernel module tools")
35b9e423 1526 (description "Kmod is a set of tools to handle common tasks with Linux
e062d542
AE
1527kernel modules like insert, remove, list, check properties, resolve
1528dependencies and aliases.
1529
1530These tools are designed on top of libkmod, a library that is shipped with
1531kmod. The aim is to be compatible with tools, configurations and indices
1532from the module-init-tools project.")
1533 (license gpl2+))) ; library under lgpl2.1+
d7d42d6b 1534
7fa715e7
LC
1535(define-public eudev
1536 ;; The post-systemd fork, maintained by Gentoo.
fe32c7f7 1537 (package
7fa715e7 1538 (name "eudev")
b6e5e1b7 1539 (version "2.1.1")
7fa715e7
LC
1540 (source (origin
1541 (method url-fetch)
1542 (uri (string-append
1543 "http://dev.gentoo.org/~blueness/eudev/eudev-"
1544 version ".tar.gz"))
1545 (sha256
1546 (base32
b6e5e1b7 1547 "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva"))
eb564fc3
LC
1548 (patches (list (search-patch "eudev-rules-directory.patch")))
1549 (modules '((guix build utils)))
1550 (snippet
1551 ;; 'configure' checks uses <linux/btrfs.h> as an indication of
1552 ;; whether Linux headers are available, but it doesn't actually
1553 ;; use it, and our 'linux-libre-headers' package doesn't
1554 ;; provide it. So just remove that.
1555 '(substitute* "configure"
1556 (("linux/btrfs\\.h")
1557 "")))))
fe32c7f7
MW
1558 (build-system gnu-build-system)
1559 (native-inputs
1560 `(("pkg-config" ,pkg-config)
1561 ("gperf" ,gperf)
1562 ("glib" ,glib "bin") ; glib-genmarshal, etc.
1563 ("perl" ,perl) ; for the tests
1564 ("python" ,python-2))) ; ditto
1565 (inputs
1566 `(("kmod" ,kmod)
1567 ("pciutils" ,pciutils)
1568 ("usbutils" ,usbutils)
1569 ("util-linux" ,util-linux)
1570 ("glib" ,glib)
1571 ("gobject-introspection" ,gobject-introspection)))
dc2d59af 1572 (arguments
fe32c7f7
MW
1573 `(#:configure-flags (list "--enable-libkmod"
1574
1575 (string-append
1576 "--with-pci-ids-path="
1577 (assoc-ref %build-inputs "pciutils")
1578 "/share/pci.ids.gz")
1579
1580 "--with-firmware-path=/no/firmware"
1581
1582 ;; Work around undefined reference to
1583 ;; 'mq_getattr' in sc-daemon.c.
31aa4379
FB
1584 "LDFLAGS=-lrt")
1585 #:phases
1586 (alist-cons-before
1587 'build 'pre-build
1588 ;; The program 'g-ir-scanner' (part of the package
1589 ;; 'gobject-introspection'), to generate .gir files, makes some
1590 ;; library pre-processing. During that phase it looks for the C
1591 ;; compiler as either 'cc' or as defined by the environment variable
1592 ;; 'CC' (with code in 'giscanner/dumper.py').
1593 (lambda* _
1594 (setenv "CC" "gcc"))
1595 %standard-phases)))
fe32c7f7
MW
1596 (home-page "http://www.gentoo.org/proj/en/eudev/")
1597 (synopsis "Userspace device management")
1598 (description "Udev is a daemon which dynamically creates and removes
1599device nodes from /dev/, handles hotplug events and loads drivers at boot
1600time.")
1601 (license gpl2+)))
7fa715e7 1602
66269d47
LC
1603(define-public lvm2
1604 (package
1605 (name "lvm2")
1606 (version "2.02.109")
1607 (source (origin
1608 (method url-fetch)
1609 (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
1610 version ".tgz"))
1611 (sha256
1612 (base32
1613 "1rv5ivg0l1w3nwzwdkqixm96h5bzg7ib4rr196ysb2lw42jmpjbv"))
1614 (modules '((guix build utils)))
1615 (snippet
1616 '(begin
1617 (use-modules (guix build utils))
1618
1619 ;; Honor sysconfdir.
1620 (substitute* "make.tmpl.in"
1621 (("confdir = .*$")
1622 "confdir = @sysconfdir@\n")
1623 (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
1624 "DEFAULT_SYS_DIR = @sysconfdir@"))))))
1625 (build-system gnu-build-system)
1626 (native-inputs
1627 `(("pkg-config" ,pkg-config)
1628 ("procps" ,procps))) ;tests use 'pgrep'
1629 (inputs
8fcaf8b1 1630 `(("udev" ,eudev)))
66269d47
LC
1631 (arguments
1632 '(#:phases (alist-cons-after
1633 'configure 'set-makefile-shell
1634 (lambda _
1635 ;; Use 'sh', not 'bash', so that '. lib/utils.sh' works as
1636 ;; expected.
1637 (setenv "SHELL" (which "sh"))
1638
1639 ;; Replace /bin/sh with the right file name.
1640 (patch-makefile-SHELL "make.tmpl"))
1641 %standard-phases)
1642
1643 #:configure-flags (list (string-append "--sysconfdir="
1644 (assoc-ref %outputs "out")
1645 "/etc/lvm")
1646 "--enable-udev_sync"
f2817d43
LC
1647 "--enable-udev_rules"
1648
1649 ;; Make sure programs such as 'dmsetup' can
1650 ;; find libdevmapper.so.
1651 (string-append "LDFLAGS=-Wl,-rpath="
1652 (assoc-ref %outputs "out")
1653 "/lib"))
66269d47
LC
1654
1655 ;; The tests use 'mknod', which requires root access.
1656 #:tests? #f))
1657 (home-page "http://sourceware.org/lvm2/")
1658 (synopsis "Logical volume management for Linux")
1659 (description
1660 "LVM2 is the logical volume management tool set for Linux-based systems.
1661This package includes the user-space libraries and tools, including the device
1662mapper. Kernel components are part of Linux-libre.")
1663
1664 ;; Libraries (liblvm2, libdevmapper) are LGPLv2.1.
1665 ;; Command-line tools are GPLv2.
1666 (license (list gpl2 lgpl2.1))))
1667
000f7559
DT
1668(define-public wireless-tools
1669 (package
1670 (name "wireless-tools")
1671 (version "30.pre9")
1672 (source (origin
1673 (method url-fetch)
1674 (uri (string-append "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools."
1675 version ".tar.gz"))
1676 (sha256
1677 (base32
ec01f22d
SB
1678 "0qscyd44jmhs4k32ggp107hlym1pcyjzihiai48xs7xzib4wbndb"))
1679 (modules '((guix build utils)))
1680 (snippet
1681 ;; Install the manual pages in the right place.
1682 '(substitute* "Makefile"
1683 (("INSTALL_MAN= .*")
1684 "INSTALL_MAN= $(PREFIX)/share/man")))))
000f7559
DT
1685 (build-system gnu-build-system)
1686 (arguments
1687 `(#:phases (alist-replace
1688 'configure
1689 (lambda* (#:key outputs #:allow-other-keys)
1690 (setenv "PREFIX" (assoc-ref outputs "out")))
1691 %standard-phases)
1692 #:tests? #f))
1693 (synopsis "Tools for manipulating Linux Wireless Extensions")
fb9b7ce2
LC
1694 (description "Wireless Tools are used to manipulate the now-deprecated
1695Linux Wireless Extensions; consider using 'iw' instead. The Wireless
1696Extension was an interface allowing you to set Wireless LAN specific
1697parameters and get the specific stats. It is deprecated in favor the nl80211
1698interface.")
000f7559
DT
1699 (home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html")
1700 (license gpl2+)))
30016044
MW
1701
1702(define-public lm-sensors
1703 (package
1704 (name "lm-sensors")
1705 (version "3.3.5")
1706 (source (origin
1707 (method url-fetch)
1708 (uri (string-append
1709 "http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-"
1710 version ".tar.bz2"))
1711 (sha256
1712 (base32
1713 "1ksgrynxgrq590nb2fwxrl1gwzisjkqlyg3ljfd1al0ibrk6mbjx"))
1714 (patches (list (search-patch "lm-sensors-hwmon-attrs.patch")))))
1715 (build-system gnu-build-system)
1716 (inputs `(("rrdtool" ,rrdtool)
1717 ("perl" ,perl)
1718 ("kmod" ,kmod)
1719 ("gnuplot" ,gnuplot)))
1720 (native-inputs `(("pkg-config" ,pkg-config)
1721 ("flex" ,flex)
1722 ("bison" ,bison)
1723 ("which" ,which)))
1724 (arguments
1725 `(#:tests? #f ; no 'check' target
1726 #:make-flags (list (string-append "PREFIX=" %output)
1727 (string-append "ETCDIR=" %output "/etc")
1728 (string-append "MANDIR=" %output "/share/man"))
1729 #:phases
1730 (alist-delete
1731 'configure
1732 (alist-cons-before
1733 'build 'patch-exec-paths
1734 (lambda* (#:key inputs outputs #:allow-other-keys)
1735 (substitute* "prog/detect/sensors-detect"
1736 (("`uname")
1737 (string-append "`" (assoc-ref inputs "coreutils")
1738 "/bin/uname"))
1739 (("(`|\")modprobe" all open-quote)
1740 (string-append open-quote
1741 (assoc-ref inputs "kmod")
1742 "/bin/modprobe")))
1743 (substitute* '("prog/pwm/pwmconfig"
1744 "prog/pwm/fancontrol")
1745 (("gnuplot")
1746 (string-append (assoc-ref inputs "gnuplot")
1747 "/bin/gnuplot"))
1748 (("cat ")
1749 (string-append (assoc-ref inputs "coreutils")
1750 "/bin/cat "))
1751 (("egrep ")
1752 (string-append (assoc-ref inputs "grep")
1753 "/bin/egrep "))
1754 (("sed -e")
1755 (string-append (assoc-ref inputs "sed")
1756 "/bin/sed -e"))
1757 (("cut -d")
1758 (string-append (assoc-ref inputs "coreutils")
1759 "/bin/cut -d"))
1760 (("sleep ")
1761 (string-append (assoc-ref inputs "coreutils")
1762 "/bin/sleep "))
1763 (("readlink -f")
1764 (string-append (assoc-ref inputs "coreutils")
1765 "/bin/readlink -f"))))
1766 %standard-phases))))
1767 (home-page "http://www.lm-sensors.org/")
1768 (synopsis "Utilities to read temperature/voltage/fan sensors")
1769 (description
35b9e423 1770 "Lm-sensors is a hardware health monitoring package for Linux. It allows
30016044
MW
1771you to access information from temperature, voltage, and fan speed sensors.
1772It works with most newer systems.")
1773 (license gpl2+)))
b087d413 1774
f5b2a53d
RW
1775(define-public i2c-tools
1776 (package
1777 (name "i2c-tools")
1778 (version "3.1.1")
1779 (source (origin
1780 (method url-fetch)
1781 (uri (string-append
1782 "http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-"
1783 version ".tar.bz2"))
1784 (sha256
1785 (base32
1786 "000pvg995qy1b15ks59gd0klri55hb33kqpg5czy84hw1pbdgm0l"))))
1787 (build-system gnu-build-system)
1788 (arguments
1789 `(#:tests? #f ; no 'check' target
1790 #:make-flags (list (string-append "prefix=" %output)
1791 "CC=gcc")
1792 ;; no configure script
1793 #:phases (alist-delete 'configure %standard-phases)))
bccf27cb
RW
1794 (inputs
1795 `(("perl" ,perl)))
f5b2a53d
RW
1796 (home-page "http://www.lm-sensors.org/wiki/I2CTools")
1797 (synopsis "I2C tools for Linux")
1798 (description
1799 "The i2c-tools package contains a heterogeneous set of I2C tools for
1800Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,
1801EEPROM decoding scripts, EEPROM programming tools, and a python module for
1802SMBus access.")
1803 (license gpl2+)))
1804
b087d413
MW
1805(define-public xsensors
1806 (package
1807 (name "xsensors")
1808 (version "0.70")
1809 (source (origin
1810 (method url-fetch)
1811 (uri (string-append
1812 "http://www.linuxhardware.org/xsensors/xsensors-"
1813 version ".tar.gz"))
1814 (sha256
1815 (base32
1816 "1siplsfgvcxamyqf44h71jx6jdfmvhfm7mh0y1q8ps4zs6pj2zwh"))))
1817 (build-system gnu-build-system)
1818 (inputs `(("lm-sensors" ,lm-sensors)
1819 ("gtk" ,gtk+-2)))
1820 (native-inputs `(("pkg-config" ,pkg-config)))
1821 (arguments
1822 `(#:phases (alist-cons-before
1823 'configure 'enable-deprecated
1824 (lambda _
1825 (substitute* "src/Makefile.in"
1826 (("-DGDK_DISABLE_DEPRECATED") "")
1827 (("-DGTK_DISABLE_DEPRECATED") "")))
1828 (alist-cons-before
1829 'configure 'remove-Werror
1830 (lambda _
1831 (substitute* '("configure" "src/Makefile.in")
1832 (("-Werror") "")))
1833 %standard-phases))))
1834 (home-page "http://www.linuxhardware.org/xsensors/")
1835 (synopsis "Hardware health information viewer")
1836 (description
35b9e423 1837 "Xsensors reads data from the libsensors library regarding hardware
b087d413
MW
1838health such as temperature, voltage and fan speed and displays the information
1839in a digital read-out.")
1840 (license gpl2+)))
b62fe07f
LC
1841
1842(define-public perf
1843 (package
1844 (name "perf")
1845 (version (package-version linux-libre))
1846 (source (package-source linux-libre))
1847 (build-system gnu-build-system)
1848 (arguments
1849 '(#:phases (alist-replace
1850 'configure
1851 (lambda* (#:key inputs #:allow-other-keys)
1852 (setenv "SHELL_PATH" (which "bash"))
1853 (chdir "tools/perf"))
1854 %standard-phases)
1855 #:make-flags (list (string-append "DESTDIR="
1856 (assoc-ref %outputs "out"))
2af29d23
LC
1857 "WERROR=0"
1858
1859 ;; By default, 'config/Makefile' uses lib64 on
1860 ;; x86_64. Work around that.
1861 "lib=lib")
b62fe07f
LC
1862 #:tests? #f)) ;no tests
1863 (native-inputs
1864 `(("pkg-config" ,pkg-config)
1865 ("bison" ,bison)
1866 ("flex" ,flex)
1867
1868 ;; There are build scripts written in these languages.
1869 ("perl" ,perl)
1870 ("python" ,python-2)))
1871 (inputs
b1fb4b23 1872 `(("slang" ,slang) ;for the interactive TUI
b62fe07f 1873 ;; ("newt" ,newt)
6c030d10 1874 ("python" ,python-2) ;'perf' links against libpython
b62fe07f
LC
1875 ("elfutils" ,elfutils)
1876
d7ece67a
LC
1877 ;; Documentation.
1878 ("libxml2" ,libxml2) ;for $XML_CATALOG_FILES
1879 ("libxslt" ,libxslt)
1880 ("docbook-xml" ,docbook-xml)
1881 ("docbook-xsl" ,docbook-xsl)
1882 ("xmlto" ,xmlto)
1883 ("asciidoc" ,asciidoc)))
b62fe07f
LC
1884 (home-page "https://perf.wiki.kernel.org/")
1885 (synopsis "Linux profiling with performance counters")
1886 (description
1887 "perf is a tool suite for profiling using hardware performance counters,
1888with support in the Linux kernel. perf can instrument CPU performance
1889counters, tracepoints, kprobes, and uprobes (dynamic tracing). It is capable
1890of lightweight profiling. This package contains the user-land tools and in
1891particular the 'perf' command.")
1892 (license (package-license linux-libre))))
c09e60e4
DT
1893
1894(define-public pflask
1895 (package
1896 (name "pflask")
1897 (version "0.2")
1898 (source (origin
1899 (method url-fetch)
1900 (uri (string-append "https://github.com/ghedo/pflask/archive/v"
1901 version ".tar.gz"))
f586c877 1902 (file-name (string-append name "-" version ".tar.gz"))
c09e60e4
DT
1903 (sha256
1904 (base32
1905 "1g8fjj67dfkc2s0852l9vqi1pm61gp4rxbpzbzg780f5s5hd1fys"))))
1906 (build-system cmake-build-system)
1907 (arguments
1908 '(#:tests? #f)) ; no tests
1909 (home-page "http://ghedo.github.io/pflask/")
1910 (synopsis "Simple tool for creating Linux namespace containers")
1911 (description "pflask is a simple tool for creating Linux namespace
1912containers. It can be used for running a command or even booting an OS inside
1913an isolated container, created with the help of Linux namespaces. It is
1914similar in functionality to chroot, although pflask provides better isolation
1915thanks to the use of namespaces.")
1916 (license bsd-2)))
288084d5
MW
1917
1918(define-public hdparm
1919 (package
1920 (name "hdparm")
1921 (version "9.45")
1922 (source (origin
1923 (method url-fetch)
1924 (uri (string-append "mirror://sourceforge/" name "/"
1925 name "-" version ".tar.gz"))
1926 (sha256
1927 (base32
1928 "0sc6yf3k6sd7n6a2ig2my9fjlqpak3znlyw7jw4cz5d9asm1rc13"))))
1929 (build-system gnu-build-system)
1930 (arguments
1931 `(#:make-flags (let ((out (assoc-ref %outputs "out")))
1932 (list (string-append "binprefix=" out)
1933 (string-append "manprefix=" out)
1934 "CC=gcc"))
1935 #:phases (alist-delete 'configure %standard-phases)
1936 #:tests? #f)) ; no test suite
1937 (home-page "http://sourceforge.net/projects/hdparm/")
1938 (synopsis "tune hard disk parameters for high performance")
1939 (description
1940 "Get/set device parameters for Linux SATA/IDE drives. It's primary use
1941is for enabling irq-unmasking and IDE multiplemode.")
166191b3 1942 (license (non-copyleft "file://LICENSE.TXT"))))
288084d5 1943
57a516d3
LC
1944(define-public acpid
1945 (package
1946 (name "acpid")
1947 (version "2.0.23")
1948 (source (origin
1949 (method url-fetch)
1950 (uri (string-append "mirror://sourceforge/acpid2/acpid-"
1951 version ".tar.xz"))
1952 (sha256
1953 (base32
1954 "1vl7c6vc724v4jwki17czgj6lnrknnj1a6llm8gkl32i2gnam5j3"))))
1955 (build-system gnu-build-system)
1956 (home-page "http://sourceforge.net/projects/acpid2/")
1957 (synopsis "Daemon for delivering ACPI events to user-space programs")
1958 (description
1959 "acpid is designed to notify user-space programs of Advanced
1960Configuration and Power Interface (ACPI) events. acpid should be started
1961during the system boot, and will run as a background process. When an ACPI
1962event is received from the kernel, acpid will examine the list of rules
1963specified in /etc/acpi/events and execute the rules that match the event.")
1964 (license gpl2+)))
37f5caec
TUBK
1965
1966(define-public sysfsutils
1967 (package
1968 (name "sysfsutils")
1969 (version "2.1.0")
1970 (source
1971 (origin
1972 (method url-fetch)
1973 (uri
1974 (string-append
1975 "mirror://sourceforge/linux-diag/sysfsutils/" version "/sysfsutils-"
1976 version ".tar.gz"))
1977 (sha256
1978 (base32 "12i0ip11xbfcjzxz4r10cvz7mbzgq1hfcdn97w6zz7sm3wndwrg8"))))
1979 (build-system gnu-build-system)
1980 (home-page "http://linux-diag.sourceforge.net/Sysfsutils.html")
1981 (synopsis "System utilities based on Linux sysfs")
1982 (description
1983 "These are a set of utilites built upon sysfs, a virtual filesystem in
1984Linux kernel versions 2.5+ that exposes a system's device tree. The package
1985also contains the libsysfs library.")
1986 ;; The library is under lgpl2.1+ (all files say "or any later version").
1987 ;; The rest is mostly gpl2, with a few files indicating gpl2+.
1988 (license (list gpl2 gpl2+ lgpl2.1+))))
a9a1a40b
TUBK
1989
1990(define-public sysfsutils-1
1991 (package
1992 (inherit sysfsutils)
1993 (version "1.3.0")
1994 (source
1995 (origin
1996 (method url-fetch)
1997 (uri
1998 (string-append
1999 "mirror://sourceforge/linux-diag/sysfsutils/sysfsutils-" version
2000 "/sysfsutils-" version ".tar.gz"))
2001 (sha256
2002 (base32 "0kdhs07fm8263pxwd5blwn2x211cg4fk63fyf9ijcdkvzmwxrqq3"))
2003 (modules '((guix build utils)))
2004 (snippet
2005 '(begin
2006 (substitute* "Makefile.in"
2007 (("includedir = /usr/include/sysfs")
2008 "includedir = @includedir@"))
2009 (substitute* "configure"
2010 (("includedir='(\\$\\{prefix\\}/include)'" all orig)
2011 (string-append "includedir='" orig "/sysfs'")))))))
0e396872
MW
2012 ;; XXX sysfsutils-1.3.0's config.guess fails on mips64el
2013 (arguments `(#:configure-flags
2014 '(,@(if (%current-target-system)
2015 '()
2016 (let ((triplet
2017 (nix-system->gnu-triplet (%current-system))))
2018 (list (string-append "--build=" triplet)))))))
a9a1a40b 2019 (synopsis "System utilities based on Linux sysfs (version 1.x)")))
e6caa52d
TUBK
2020
2021(define-public cpufrequtils
2022 (package
2023 (name "cpufrequtils")
2024 (version "0.3")
2025 (source
2026 (origin
2027 (method url-fetch)
2028 (uri
2029 (string-append
2030 "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils-"
2031 version ".tar.gz"))
2032 (sha256
2033 (base32 "0qfqv7nqmjfr3p0bwrdlxkiqwqr7vmx053cadaa548ybqbghxmvm"))
2034 (patches (list (search-patch "cpufrequtils-fix-aclocal.patch")))))
2035 (build-system gnu-build-system)
2036 (native-inputs
2037 `(("sysfsutils" ,sysfsutils-1)))
2038 (arguments
2039 '(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
2040 (assoc-ref %outputs "out") "/lib"))))
2041 (home-page "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/")
2042 (synopsis "Utilities to get and set CPU frequency on Linux")
2043 (description
2044 "The cpufrequtils suite contains utilities to retreive CPU frequency
2045information, and set the CPU frequency if supported, using the cpufreq
2046capabilities of the Linux kernel.")
2047 (license gpl2)))
0a588bf9
SB
2048
2049(define-public libraw1394
2050 (package
2051 (name "libraw1394")
2052 (version "2.1.0")
2053 (source (origin
2054 (method url-fetch)
2055 (uri (string-append
2056 "mirror://kernel.org/linux/libs/ieee1394/"
2057 name "-" version ".tar.xz"))
2058 (sha256
2059 (base32
2060 "0kwnf4ha45c04mhc4yla672aqmvqqihxix1gvblns5cd2pc2cc8b"))))
2061 (build-system gnu-build-system)
2062 (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
2063 (synopsis "Interface library for the Linux IEEE1394 drivers")
2064 (description
2065 "Libraw1394 is the only supported interface to the kernel side raw1394 of
2066the Linux IEEE-1394 subsystem, which provides direct access to the connected
20671394 buses to user space. Through libraw1394/raw1394, applications can directly
2068send to and receive from other nodes without requiring a kernel driver for the
2069protocol in question.")
2070 (license lgpl2.1+)))
68e3c29d
SB
2071
2072(define-public libavc1394
2073 (package
2074 (name "libavc1394")
2075 (version "0.5.4")
2076 (source (origin
2077 (method url-fetch)
2078 (uri (string-append "mirror://sourceforge/libavc1394/"
2079 name "-" version ".tar.gz"))
2080 (sha256
2081 (base32
2082 "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw"))))
2083 (build-system gnu-build-system)
2084 (native-inputs
2085 `(("pkg-config" ,pkg-config)))
2086 (propagated-inputs
2087 `(("libraw1394" ,libraw1394))) ; required by libavc1394.pc
2088 (home-page "http://sourceforge.net/projects/libavc1394/")
2089 (synopsis "AV/C protocol library for IEEE 1394")
2090 (description
2091 "Libavc1394 is a programming interface to the AV/C specification from
2092the 1394 Trade Assocation. AV/C stands for Audio/Video Control.")
2093 (license lgpl2.1+)))
3f7bf86a
SB
2094
2095(define-public libiec61883
2096 (package
2097 (name "libiec61883")
2098 (version "1.2.0")
2099 (source (origin
2100 (method url-fetch)
2101 (uri (string-append
2102 "mirror://kernel.org/linux/libs/ieee1394/"
2103 name "-" version ".tar.xz"))
2104 (sha256
2105 (base32
2106 "17ph458zya2l8dr2xwqnzy195qd9swrir31g78qkgb3g4xz2rq6i"))))
2107 (build-system gnu-build-system)
2108 (native-inputs
2109 `(("pkg-config" ,pkg-config)))
2110 (propagated-inputs
2111 `(("libraw1394" ,libraw1394))) ; required by libiec61883.pc
2112 (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
2113 (synopsis "Isochronous streaming media library for IEEE 1394")
2114 (description
2115 "The libiec61883 library provides a higher level API for streaming DV,
2116MPEG-2 and audio over Linux IEEE 1394.")
2117 (license lgpl2.1+)))
69159125
MW
2118
2119(define-public mdadm
2120 (package
2121 (name "mdadm")
2122 (version "3.3.2")
2123 (source (origin
2124 (method url-fetch)
2125 (uri (string-append
2126 "mirror://kernel.org/linux/utils/raid/mdadm/mdadm-"
2127 version ".tar.xz"))
2128 (sha256
2129 (base32
2130 "132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg"))))
2131 (build-system gnu-build-system)
2132 (inputs
2133 `(("udev" ,eudev)))
2134 (arguments
2135 `(#:make-flags (let ((out (assoc-ref %outputs "out")))
2136 (list "INSTALL=install"
2137 "CHECK_RUN_DIR=0"
2138 ;; TODO: tell it where to find 'sendmail'
2139 ;; (string-append "MAILCMD=" <???> "/sbin/sendmail")
2140 (string-append "BINDIR=" out "/sbin")
2141 (string-append "MANDIR=" out "/share/man")
2142 (string-append "UDEVDIR=" out "/lib/udev")))
2143 #:phases (alist-cons-before
2144 'build 'patch-program-paths
2145 (lambda* (#:key inputs #:allow-other-keys)
2146 (let ((coreutils (assoc-ref inputs "coreutils")))
2147 (substitute* "udev-md-raid-arrays.rules"
2148 (("/usr/bin/(readlink|basename)" all program)
2149 (string-append coreutils "/bin/" program)))))
2150 (alist-delete 'configure %standard-phases))
2151 ;;tests must be done as root
2152 #:tests? #f))
2153 (home-page "http://neil.brown.name/blog/mdadm")
2154 (synopsis "Tool for managing Linux Software RAID arrays")
2155 (description
2156 "mdadm is a tool for managing Linux Software RAID arrays. It can create,
2157assemble, report on, and monitor arrays. It can also move spares between raid
2158arrays when needed.")
2159 (license gpl2+)))
01ccdfb6
SB
2160
2161(define-public libaio
2162 (package
2163 (name "libaio")
2164 (version "0.3.110")
2165 (source (origin
2166 (method url-fetch)
2167 (uri (list
2168 (string-append "mirror://debian/pool/main/liba/libaio/"
2169 name "_" version ".orig.tar.gz")
2170 (string-append "https://fedorahosted.org/releases/l/i/libaio/"
2171 name "-" version ".tar.gz")))
2172 (sha256
2173 (base32
2174 "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0"))))
2175 (build-system gnu-build-system)
2176 (arguments
2177 '(#:make-flags
2178 (list "CC=gcc" (string-append "prefix=" %output))
2179 #:test-target "partcheck" ; need root for a full 'check'
2180 #:phases
2181 (alist-delete 'configure %standard-phases))) ; no configure script
2182 (home-page "http://lse.sourceforge.net/io/aio.html")
2183 (synopsis "Linux-native asynchronous I/O access library")
2184 (description
2185 "This library enables userspace to use Linux kernel asynchronous I/O
2186system calls, important for the performance of databases and other advanced
2187applications.")
2188 (license lgpl2.1+)))
eb7c43c3
DT
2189
2190(define-public bluez
2191 (package
2192 (name "bluez")
2193 (version "5.30")
2194 (source (origin
2195 (method url-fetch)
2196 (uri (string-append
2197 "https://www.kernel.org/pub/linux/bluetooth/bluez-"
2198 version ".tar.xz"))
2199 (sha256
2200 (base32
2201 "0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy"))))
2202 (build-system gnu-build-system)
2203 (arguments
2204 '(#:configure-flags
2205 (let ((out (assoc-ref %outputs "out")))
2206 (list "--disable-systemd"
2207 ;; Install dbus/udev files to the correct location.
2208 (string-append "--with-dbusconfdir=" out "/etc")
2209 (string-append "--with-udevdir=" out "/lib/udev")))))
2210 (native-inputs
2211 `(("pkg-config" ,pkg-config)
2212 ("gettext" ,gnu-gettext)))
2213 (inputs
2214 `(("glib" ,glib)
2215 ("dbus" ,dbus)
2216 ("eudev" ,eudev)
2217 ("libical" ,libical)
2218 ("readline" ,readline)))
2219 (home-page "http://www.bluez.org/")
2220 (synopsis "Linux Bluetooth protocol stack")
2221 (description
2222 "BlueZ provides support for the core Bluetooth layers and protocols. It
2223is flexible, efficient and uses a modular implementation.")
2224 (license gpl2+)))