profiles: Gracefully deal with packages containing an etc/ symlink.
[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
5df4f48e 203 (let* ((version "4.0.3")
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
5df4f48e 276 "111mr9c007yzq5pkn9j8nfy4w6rr94bs6krb8iinrlb9chnyixlj"))))
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
1215 "071r6xjgssy8vwdn6m28qq1bqxsd2bphcd2mzhq0grf5ybm87sqb"))))
1216 (build-system gnu-build-system)
b148bd71 1217 (inputs `(("util-linux" ,util-linux)))
e30835e2
LC
1218 (arguments
1219 '(#:configure-flags (list (string-append "MOUNT_FUSE_PATH="
1220 (assoc-ref %outputs "out")
1221 "/sbin")
1222 (string-append "INIT_D_PATH="
1223 (assoc-ref %outputs "out")
1224 "/etc/init.d")
9a4efac9
LC
1225
1226 ;; The rule makes /dev/fuse 666.
e30835e2
LC
1227 (string-append "UDEV_RULES_PATH="
1228 (assoc-ref %outputs "out")
9a4efac9 1229 "/lib/udev/rules.d"))
b148bd71
LC
1230 #:phases (alist-cons-before
1231 'build 'set-file-names
1232 (lambda* (#:key inputs #:allow-other-keys)
1233 ;; libfuse calls out to mount(8) and umount(8). Make sure
1234 ;; it refers to the right ones.
1235 (substitute* '("lib/mount_util.c" "util/mount_util.c")
1236 (("/bin/(u?)mount" _ maybe-u)
1237 (string-append (assoc-ref inputs "util-linux")
1238 "/bin/" maybe-u "mount")))
1239 (substitute* '("util/mount.fuse.c")
1240 (("/bin/sh")
bd663902
LC
1241 (which "sh")))
1242
1243 ;; This hack leads libfuse to search for 'fusermount' in
1244 ;; $PATH, where it may find a setuid-root binary, instead of
1245 ;; trying solely $out/sbin/fusermount and failing because
1246 ;; it's not setuid.
1247 (substitute* "lib/Makefile"
1248 (("-DFUSERMOUNT_DIR=[[:graph:]]+")
1249 "-DFUSERMOUNT_DIR=\\\"/var/empty\\\"")))
b148bd71 1250 %standard-phases)))
e30835e2
LC
1251 (home-page "http://fuse.sourceforge.net/")
1252 (synopsis "Support file systems implemented in user space")
1253 (description
1254 "As a consequence of its monolithic design, file system code for Linux
1255normally goes into the kernel itself---which is not only a robustness issue,
1256but also an impediment to system extensibility. FUSE, for \"file systems in
1257user space\", is a kernel module and user-space library that tries to address
1258part of this problem by allowing users to run file system implementations as
1259user-space processes.")
1260 (license (list lgpl2.1 ; library
1261 gpl2+)))) ; command-line utilities
220193ad
LC
1262
1263(define-public unionfs-fuse
1264 (package
1265 (name "unionfs-fuse")
1266 (version "0.26")
1267 (source (origin
1268 (method url-fetch)
1269 (uri (string-append
1270 "http://podgorny.cz/unionfs-fuse/releases/unionfs-fuse-"
1271 version ".tar.xz"))
1272 (sha256
1273 (base32
1274 "0qpnr4czgc62vsfnmv933w62nq3xwcbnvqch72qakfgca75rsp4d"))))
1275 (build-system cmake-build-system)
1276 (inputs `(("fuse" ,fuse)))
1277 (arguments '(#:tests? #f)) ; no tests
1278 (home-page "http://podgorny.cz/moin/UnionFsFuse")
1279 (synopsis "User-space union file system")
1280 (description
1281 "UnionFS-FUSE is a flexible union file system implementation in user
1282space, using the FUSE library. Mounting a union file system allows you to
1283\"aggregate\" the contents of several directories into a single mount point.
1284UnionFS-FUSE additionally supports copy-on-write.")
1285 (license bsd-3)))
ed748588 1286
0b7a0c20
LC
1287(define fuse-static
1288 (package (inherit fuse)
1289 (name "fuse-static")
1290 (source (origin (inherit (package-source fuse))
1291 (modules '((guix build utils)))
1292 (snippet
1293 ;; Normally libfuse invokes mount(8) so that /etc/mtab is
1294 ;; updated. Change calls to 'mtab_needs_update' to 0 so that
1295 ;; it doesn't do that, allowing us to remove the dependency on
1296 ;; util-linux (something that is useful in initrds.)
1297 '(substitute* '("lib/mount_util.c"
1298 "util/mount_util.c")
1299 (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)")
1300 "0")
1301 (("/bin/")
1302 "")))))))
1303
ed748588
LC
1304(define-public unionfs-fuse/static
1305 (package (inherit unionfs-fuse)
1306 (synopsis "User-space union file system (statically linked)")
1307 (name (string-append (package-name unionfs-fuse) "-static"))
1308 (source (origin (inherit (package-source unionfs-fuse))
1309 (modules '((guix build utils)))
1310 (snippet
1311 ;; Add -ldl to the libraries, because libfuse.a needs that.
1312 '(substitute* "src/CMakeLists.txt"
1313 (("target_link_libraries(.*)\\)" _ libs)
1314 (string-append "target_link_libraries"
1315 libs " dl)"))))))
1316 (arguments
1317 '(#:tests? #f
1456cff1
LC
1318 #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static")
1319 #:phases (alist-cons-after
1320 'install 'post-install
1321 (lambda* (#:key outputs #:allow-other-keys)
1322 (let* ((out (assoc-ref outputs "out"))
1323 (exe (string-append out "/bin/unionfs")))
1324 ;; By default, 'unionfs' keeps references to
1325 ;; $glibc/share/locale and similar stuff. Remove them.
1326 (remove-store-references exe)))
1327 %standard-phases)))
0b7a0c20 1328 (inputs `(("fuse" ,fuse-static)))))
67b66003 1329
db288efa
LC
1330(define-public sshfs-fuse
1331 (package
1332 (name "sshfs-fuse")
1333 (version "2.5")
1334 (source (origin
1335 (method url-fetch)
1336 (uri (string-append "mirror://sourceforge/fuse/sshfs-fuse-"
1337 version ".tar.gz"))
1338 (sha256
1339 (base32
1340 "0gp6qr33l2p0964j0kds0dfmvyyf5lpgsn11daf0n5fhwm9185z9"))))
1341 (build-system gnu-build-system)
1342 (inputs
1343 `(("fuse" ,fuse)
1344 ("glib" ,glib)))
1345 (native-inputs
1346 `(("pkg-config" ,pkg-config)))
1347 (home-page "http://fuse.sourceforge.net/sshfs.html")
1348 (synopsis "Mount remote file systems over SSH")
1349 (description
1350 "This is a file system client based on the SSH File Transfer Protocol.
1351Since most SSH servers already support this protocol it is very easy to set
1352up: on the server side there's nothing to do; on the client side mounting the
1353file system is as easy as logging into the server with an SSH client.")
1354 (license gpl2+)))
1355
67b66003
LC
1356(define-public numactl
1357 (package
1358 (name "numactl")
1359 (version "2.0.9")
1360 (source (origin
1361 (method url-fetch)
1362 (uri (string-append
1363 "ftp://oss.sgi.com/www/projects/libnuma/download/numactl-"
1364 version
1365 ".tar.gz"))
1366 (sha256
1367 (base32
1368 "073myxlyyhgxh1w3r757ajixb7s2k69czc3r0g12c3scq7k3784w"))))
1369 (build-system gnu-build-system)
1370 (arguments
1371 '(#:phases (alist-replace
1372 'configure
1373 (lambda* (#:key outputs #:allow-other-keys)
1374 ;; There's no 'configure' script, just a raw makefile.
1375 (substitute* "Makefile"
1376 (("^prefix := .*$")
1377 (string-append "prefix := " (assoc-ref outputs "out")
1378 "\n"))
1379 (("^libdir := .*$")
1380 ;; By default the thing tries to install under
1381 ;; $prefix/lib64 when on a 64-bit platform.
1382 (string-append "libdir := $(prefix)/lib\n"))))
1383 %standard-phases)
1384
1385 #:make-flags (list
1386 ;; By default the thing tries to use 'cc'.
1387 "CC=gcc"
1388
1389 ;; Make sure programs have an RPATH so they can find
1390 ;; libnuma.so.
1391 (string-append "LDLIBS=-Wl,-rpath="
1392 (assoc-ref %outputs "out") "/lib"))
1393
1394 ;; There's a 'test' target, but it requires NUMA support in the kernel
1395 ;; to run, which we can't assume to have.
1396 #:tests? #f))
1397 (home-page "http://oss.sgi.com/projects/libnuma/")
1398 (synopsis "Tools for non-uniform memory access (NUMA) machines")
1399 (description
1400 "NUMA stands for Non-Uniform Memory Access, in other words a system whose
1401memory is not all in one place. The numactl program allows you to run your
1402application program on specific CPU's and memory nodes. It does this by
1403supplying a NUMA memory policy to the operating system before running your
1404program.
1405
1406The package contains other commands, such as numademo, numastat and memhog.
1407The numademo command provides a quick overview of NUMA performance on your
1408system.")
1409 (license (list gpl2 ; programs
1410 lgpl2.1)))) ; library
b10e9ff6
LC
1411
1412(define-public kbd
1413 (package
1414 (name "kbd")
710b4928 1415 (version "2.0.2")
b10e9ff6
LC
1416 (source (origin
1417 (method url-fetch)
1418 (uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-"
710b4928 1419 version ".tar.xz"))
b10e9ff6
LC
1420 (sha256
1421 (base32
710b4928 1422 "04mrms12nm5sas0nxs94yrr3hz7gmqhnmfgb9ff34bh1jszxmzcx"))
c8f60748
LC
1423 (modules '((guix build utils)))
1424 (snippet
f2cdcafb
LC
1425 '(begin
1426 (substitute* "tests/Makefile.in"
1427 ;; The '%: %.in' rule incorrectly uses @VERSION@.
1428 (("@VERSION@")
1429 "[@]VERSION[@]"))
1430 (substitute* '("src/unicode_start" "src/unicode_stop")
1431 ;; Assume the Coreutils are in $PATH.
1432 (("/usr/bin/tty")
1433 "tty"))))))
b10e9ff6
LC
1434 (build-system gnu-build-system)
1435 (arguments
1436 '(#:phases (alist-cons-before
1437 'build 'pre-build
1438 (lambda* (#:key inputs #:allow-other-keys)
1439 (let ((gzip (assoc-ref %build-inputs "gzip"))
1440 (bzip2 (assoc-ref %build-inputs "bzip2")))
1441 (substitute* "src/libkeymap/findfile.c"
1442 (("gzip")
1443 (string-append gzip "/bin/gzip"))
1444 (("bzip2")
1445 (string-append bzip2 "/bin/bzip2")))))
f2cdcafb
LC
1446 (alist-cons-after
1447 'install 'post-install
1448 (lambda* (#:key outputs #:allow-other-keys)
1449 ;; Make sure these programs find their comrades.
1450 (let* ((out (assoc-ref outputs "out"))
1451 (bin (string-append out "/bin")))
1452 (for-each (lambda (prog)
1453 (wrap-program (string-append bin "/" prog)
1454 `("PATH" ":" prefix (,bin))))
1455 '("unicode_start" "unicode_stop"))))
1456 %standard-phases))))
b10e9ff6 1457 (inputs `(("check" ,check)
f61e0e79
LC
1458 ("gzip" ,gzip)
1459 ("bzip2" ,bzip2)
b10e9ff6
LC
1460 ("pam" ,linux-pam)))
1461 (native-inputs `(("pkg-config" ,pkg-config)))
1462 (home-page "ftp://ftp.kernel.org/pub/linux/utils/kbd/")
1463 (synopsis "Linux keyboard utilities and keyboard maps")
1464 (description
1465 "This package contains keytable files and keyboard utilities compatible
1466for systems using the Linux kernel. This includes commands such as
1467'loadkeys', 'setfont', 'kbdinfo', and 'chvt'.")
1468 (license gpl2+)))
de0b620e
LC
1469
1470(define-public inotify-tools
1471 (package
1472 (name "inotify-tools")
1473 (version "3.13")
1474 (source (origin
1475 (method url-fetch)
1476 (uri (string-append
1477 "mirror://sourceforge/inotify-tools/inotify-tools/"
1478 version "/inotify-tools-" version ".tar.gz"))
1479 (sha256
1480 (base32
1481 "0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6"))))
1482 (build-system gnu-build-system)
1483 (home-page "http://inotify-tools.sourceforge.net/")
1484 (synopsis "Monitor file accesses")
1485 (description
1486 "The inotify-tools packages provides a C library and command-line tools
1487to use Linux' inotify mechanism, which allows file accesses to be monitored.")
1488 (license gpl2+)))
e062d542
AE
1489
1490(define-public kmod
1491 (package
1492 (name "kmod")
1493 (version "17")
1494 (source (origin
1495 (method url-fetch)
1496 (uri
1497 (string-append "mirror://kernel.org/linux/utils/kernel/kmod/"
1498 "kmod-" version ".tar.xz"))
1499 (sha256
1500 (base32
528b6a3d
LC
1501 "1yid3a9b64a60ybj66fk2ysrq5klnl0ijl4g624cl16y8404g9rv"))
1502 (patches (list (search-patch "kmod-module-directory.patch")))))
e062d542
AE
1503 (build-system gnu-build-system)
1504 (native-inputs
1505 `(("pkg-config" ,pkg-config)))
1506 (inputs
f61e0e79
LC
1507 `(("xz" ,xz)
1508 ("zlib" ,zlib)))
e062d542
AE
1509 (arguments
1510 `(#:tests? #f ; FIXME: Investigate test failures
4a8b4c25
LC
1511 #:configure-flags '("--with-xz" "--with-zlib")
1512 #:phases (alist-cons-after
1513 'install 'install-modprobe&co
1514 (lambda* (#:key outputs #:allow-other-keys)
1515 (let* ((out (assoc-ref outputs "out"))
1516 (bin (string-append out "/bin")))
1517 (for-each (lambda (tool)
1518 (symlink "kmod"
1519 (string-append bin "/" tool)))
1520 '("insmod" "rmmod" "lsmod" "modprobe"
1521 "modinfo" "depmod"))))
1522 %standard-phases)))
e062d542
AE
1523 (home-page "https://www.kernel.org/")
1524 (synopsis "Kernel module tools")
35b9e423 1525 (description "Kmod is a set of tools to handle common tasks with Linux
e062d542
AE
1526kernel modules like insert, remove, list, check properties, resolve
1527dependencies and aliases.
1528
1529These tools are designed on top of libkmod, a library that is shipped with
1530kmod. The aim is to be compatible with tools, configurations and indices
1531from the module-init-tools project.")
1532 (license gpl2+))) ; library under lgpl2.1+
d7d42d6b 1533
7fa715e7
LC
1534(define-public eudev
1535 ;; The post-systemd fork, maintained by Gentoo.
fe32c7f7 1536 (package
7fa715e7 1537 (name "eudev")
b6e5e1b7 1538 (version "2.1.1")
7fa715e7
LC
1539 (source (origin
1540 (method url-fetch)
1541 (uri (string-append
1542 "http://dev.gentoo.org/~blueness/eudev/eudev-"
1543 version ".tar.gz"))
1544 (sha256
1545 (base32
b6e5e1b7 1546 "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva"))
eb564fc3
LC
1547 (patches (list (search-patch "eudev-rules-directory.patch")))
1548 (modules '((guix build utils)))
1549 (snippet
1550 ;; 'configure' checks uses <linux/btrfs.h> as an indication of
1551 ;; whether Linux headers are available, but it doesn't actually
1552 ;; use it, and our 'linux-libre-headers' package doesn't
1553 ;; provide it. So just remove that.
1554 '(substitute* "configure"
1555 (("linux/btrfs\\.h")
1556 "")))))
fe32c7f7
MW
1557 (build-system gnu-build-system)
1558 (native-inputs
1559 `(("pkg-config" ,pkg-config)
1560 ("gperf" ,gperf)
1561 ("glib" ,glib "bin") ; glib-genmarshal, etc.
1562 ("perl" ,perl) ; for the tests
1563 ("python" ,python-2))) ; ditto
1564 (inputs
1565 `(("kmod" ,kmod)
1566 ("pciutils" ,pciutils)
1567 ("usbutils" ,usbutils)
1568 ("util-linux" ,util-linux)
1569 ("glib" ,glib)
1570 ("gobject-introspection" ,gobject-introspection)))
dc2d59af 1571 (arguments
fe32c7f7
MW
1572 `(#:configure-flags (list "--enable-libkmod"
1573
1574 (string-append
1575 "--with-pci-ids-path="
1576 (assoc-ref %build-inputs "pciutils")
1577 "/share/pci.ids.gz")
1578
1579 "--with-firmware-path=/no/firmware"
1580
1581 ;; Work around undefined reference to
1582 ;; 'mq_getattr' in sc-daemon.c.
31aa4379
FB
1583 "LDFLAGS=-lrt")
1584 #:phases
1585 (alist-cons-before
1586 'build 'pre-build
1587 ;; The program 'g-ir-scanner' (part of the package
1588 ;; 'gobject-introspection'), to generate .gir files, makes some
1589 ;; library pre-processing. During that phase it looks for the C
1590 ;; compiler as either 'cc' or as defined by the environment variable
1591 ;; 'CC' (with code in 'giscanner/dumper.py').
1592 (lambda* _
1593 (setenv "CC" "gcc"))
1594 %standard-phases)))
fe32c7f7
MW
1595 (home-page "http://www.gentoo.org/proj/en/eudev/")
1596 (synopsis "Userspace device management")
1597 (description "Udev is a daemon which dynamically creates and removes
1598device nodes from /dev/, handles hotplug events and loads drivers at boot
1599time.")
1600 (license gpl2+)))
7fa715e7 1601
66269d47
LC
1602(define-public lvm2
1603 (package
1604 (name "lvm2")
1605 (version "2.02.109")
1606 (source (origin
1607 (method url-fetch)
1608 (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
1609 version ".tgz"))
1610 (sha256
1611 (base32
1612 "1rv5ivg0l1w3nwzwdkqixm96h5bzg7ib4rr196ysb2lw42jmpjbv"))
1613 (modules '((guix build utils)))
1614 (snippet
1615 '(begin
1616 (use-modules (guix build utils))
1617
1618 ;; Honor sysconfdir.
1619 (substitute* "make.tmpl.in"
1620 (("confdir = .*$")
1621 "confdir = @sysconfdir@\n")
1622 (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
1623 "DEFAULT_SYS_DIR = @sysconfdir@"))))))
1624 (build-system gnu-build-system)
1625 (native-inputs
1626 `(("pkg-config" ,pkg-config)
1627 ("procps" ,procps))) ;tests use 'pgrep'
1628 (inputs
8fcaf8b1 1629 `(("udev" ,eudev)))
66269d47
LC
1630 (arguments
1631 '(#:phases (alist-cons-after
1632 'configure 'set-makefile-shell
1633 (lambda _
1634 ;; Use 'sh', not 'bash', so that '. lib/utils.sh' works as
1635 ;; expected.
1636 (setenv "SHELL" (which "sh"))
1637
1638 ;; Replace /bin/sh with the right file name.
1639 (patch-makefile-SHELL "make.tmpl"))
1640 %standard-phases)
1641
1642 #:configure-flags (list (string-append "--sysconfdir="
1643 (assoc-ref %outputs "out")
1644 "/etc/lvm")
1645 "--enable-udev_sync"
f2817d43
LC
1646 "--enable-udev_rules"
1647
1648 ;; Make sure programs such as 'dmsetup' can
1649 ;; find libdevmapper.so.
1650 (string-append "LDFLAGS=-Wl,-rpath="
1651 (assoc-ref %outputs "out")
1652 "/lib"))
66269d47
LC
1653
1654 ;; The tests use 'mknod', which requires root access.
1655 #:tests? #f))
1656 (home-page "http://sourceware.org/lvm2/")
1657 (synopsis "Logical volume management for Linux")
1658 (description
1659 "LVM2 is the logical volume management tool set for Linux-based systems.
1660This package includes the user-space libraries and tools, including the device
1661mapper. Kernel components are part of Linux-libre.")
1662
1663 ;; Libraries (liblvm2, libdevmapper) are LGPLv2.1.
1664 ;; Command-line tools are GPLv2.
1665 (license (list gpl2 lgpl2.1))))
1666
000f7559
DT
1667(define-public wireless-tools
1668 (package
1669 (name "wireless-tools")
1670 (version "30.pre9")
1671 (source (origin
1672 (method url-fetch)
1673 (uri (string-append "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools."
1674 version ".tar.gz"))
1675 (sha256
1676 (base32
ec01f22d
SB
1677 "0qscyd44jmhs4k32ggp107hlym1pcyjzihiai48xs7xzib4wbndb"))
1678 (modules '((guix build utils)))
1679 (snippet
1680 ;; Install the manual pages in the right place.
1681 '(substitute* "Makefile"
1682 (("INSTALL_MAN= .*")
1683 "INSTALL_MAN= $(PREFIX)/share/man")))))
000f7559
DT
1684 (build-system gnu-build-system)
1685 (arguments
1686 `(#:phases (alist-replace
1687 'configure
1688 (lambda* (#:key outputs #:allow-other-keys)
1689 (setenv "PREFIX" (assoc-ref outputs "out")))
1690 %standard-phases)
1691 #:tests? #f))
1692 (synopsis "Tools for manipulating Linux Wireless Extensions")
fb9b7ce2
LC
1693 (description "Wireless Tools are used to manipulate the now-deprecated
1694Linux Wireless Extensions; consider using 'iw' instead. The Wireless
1695Extension was an interface allowing you to set Wireless LAN specific
1696parameters and get the specific stats. It is deprecated in favor the nl80211
1697interface.")
000f7559
DT
1698 (home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html")
1699 (license gpl2+)))
30016044
MW
1700
1701(define-public lm-sensors
1702 (package
1703 (name "lm-sensors")
1704 (version "3.3.5")
1705 (source (origin
1706 (method url-fetch)
1707 (uri (string-append
1708 "http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-"
1709 version ".tar.bz2"))
1710 (sha256
1711 (base32
1712 "1ksgrynxgrq590nb2fwxrl1gwzisjkqlyg3ljfd1al0ibrk6mbjx"))
1713 (patches (list (search-patch "lm-sensors-hwmon-attrs.patch")))))
1714 (build-system gnu-build-system)
1715 (inputs `(("rrdtool" ,rrdtool)
1716 ("perl" ,perl)
1717 ("kmod" ,kmod)
1718 ("gnuplot" ,gnuplot)))
1719 (native-inputs `(("pkg-config" ,pkg-config)
1720 ("flex" ,flex)
1721 ("bison" ,bison)
1722 ("which" ,which)))
1723 (arguments
1724 `(#:tests? #f ; no 'check' target
1725 #:make-flags (list (string-append "PREFIX=" %output)
1726 (string-append "ETCDIR=" %output "/etc")
1727 (string-append "MANDIR=" %output "/share/man"))
1728 #:phases
1729 (alist-delete
1730 'configure
1731 (alist-cons-before
1732 'build 'patch-exec-paths
1733 (lambda* (#:key inputs outputs #:allow-other-keys)
1734 (substitute* "prog/detect/sensors-detect"
1735 (("`uname")
1736 (string-append "`" (assoc-ref inputs "coreutils")
1737 "/bin/uname"))
1738 (("(`|\")modprobe" all open-quote)
1739 (string-append open-quote
1740 (assoc-ref inputs "kmod")
1741 "/bin/modprobe")))
1742 (substitute* '("prog/pwm/pwmconfig"
1743 "prog/pwm/fancontrol")
1744 (("gnuplot")
1745 (string-append (assoc-ref inputs "gnuplot")
1746 "/bin/gnuplot"))
1747 (("cat ")
1748 (string-append (assoc-ref inputs "coreutils")
1749 "/bin/cat "))
1750 (("egrep ")
1751 (string-append (assoc-ref inputs "grep")
1752 "/bin/egrep "))
1753 (("sed -e")
1754 (string-append (assoc-ref inputs "sed")
1755 "/bin/sed -e"))
1756 (("cut -d")
1757 (string-append (assoc-ref inputs "coreutils")
1758 "/bin/cut -d"))
1759 (("sleep ")
1760 (string-append (assoc-ref inputs "coreutils")
1761 "/bin/sleep "))
1762 (("readlink -f")
1763 (string-append (assoc-ref inputs "coreutils")
1764 "/bin/readlink -f"))))
1765 %standard-phases))))
1766 (home-page "http://www.lm-sensors.org/")
1767 (synopsis "Utilities to read temperature/voltage/fan sensors")
1768 (description
35b9e423 1769 "Lm-sensors is a hardware health monitoring package for Linux. It allows
30016044
MW
1770you to access information from temperature, voltage, and fan speed sensors.
1771It works with most newer systems.")
1772 (license gpl2+)))
b087d413 1773
f5b2a53d
RW
1774(define-public i2c-tools
1775 (package
1776 (name "i2c-tools")
1777 (version "3.1.1")
1778 (source (origin
1779 (method url-fetch)
1780 (uri (string-append
1781 "http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-"
1782 version ".tar.bz2"))
1783 (sha256
1784 (base32
1785 "000pvg995qy1b15ks59gd0klri55hb33kqpg5czy84hw1pbdgm0l"))))
1786 (build-system gnu-build-system)
1787 (arguments
1788 `(#:tests? #f ; no 'check' target
1789 #:make-flags (list (string-append "prefix=" %output)
1790 "CC=gcc")
1791 ;; no configure script
1792 #:phases (alist-delete 'configure %standard-phases)))
bccf27cb
RW
1793 (inputs
1794 `(("perl" ,perl)))
f5b2a53d
RW
1795 (home-page "http://www.lm-sensors.org/wiki/I2CTools")
1796 (synopsis "I2C tools for Linux")
1797 (description
1798 "The i2c-tools package contains a heterogeneous set of I2C tools for
1799Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers,
1800EEPROM decoding scripts, EEPROM programming tools, and a python module for
1801SMBus access.")
1802 (license gpl2+)))
1803
b087d413
MW
1804(define-public xsensors
1805 (package
1806 (name "xsensors")
1807 (version "0.70")
1808 (source (origin
1809 (method url-fetch)
1810 (uri (string-append
1811 "http://www.linuxhardware.org/xsensors/xsensors-"
1812 version ".tar.gz"))
1813 (sha256
1814 (base32
1815 "1siplsfgvcxamyqf44h71jx6jdfmvhfm7mh0y1q8ps4zs6pj2zwh"))))
1816 (build-system gnu-build-system)
1817 (inputs `(("lm-sensors" ,lm-sensors)
1818 ("gtk" ,gtk+-2)))
1819 (native-inputs `(("pkg-config" ,pkg-config)))
1820 (arguments
1821 `(#:phases (alist-cons-before
1822 'configure 'enable-deprecated
1823 (lambda _
1824 (substitute* "src/Makefile.in"
1825 (("-DGDK_DISABLE_DEPRECATED") "")
1826 (("-DGTK_DISABLE_DEPRECATED") "")))
1827 (alist-cons-before
1828 'configure 'remove-Werror
1829 (lambda _
1830 (substitute* '("configure" "src/Makefile.in")
1831 (("-Werror") "")))
1832 %standard-phases))))
1833 (home-page "http://www.linuxhardware.org/xsensors/")
1834 (synopsis "Hardware health information viewer")
1835 (description
35b9e423 1836 "Xsensors reads data from the libsensors library regarding hardware
b087d413
MW
1837health such as temperature, voltage and fan speed and displays the information
1838in a digital read-out.")
1839 (license gpl2+)))
b62fe07f
LC
1840
1841(define-public perf
1842 (package
1843 (name "perf")
1844 (version (package-version linux-libre))
1845 (source (package-source linux-libre))
1846 (build-system gnu-build-system)
1847 (arguments
1848 '(#:phases (alist-replace
1849 'configure
1850 (lambda* (#:key inputs #:allow-other-keys)
1851 (setenv "SHELL_PATH" (which "bash"))
1852 (chdir "tools/perf"))
1853 %standard-phases)
1854 #:make-flags (list (string-append "DESTDIR="
1855 (assoc-ref %outputs "out"))
2af29d23
LC
1856 "WERROR=0"
1857
1858 ;; By default, 'config/Makefile' uses lib64 on
1859 ;; x86_64. Work around that.
1860 "lib=lib")
b62fe07f
LC
1861 #:tests? #f)) ;no tests
1862 (native-inputs
1863 `(("pkg-config" ,pkg-config)
1864 ("bison" ,bison)
1865 ("flex" ,flex)
1866
1867 ;; There are build scripts written in these languages.
1868 ("perl" ,perl)
1869 ("python" ,python-2)))
1870 (inputs
b1fb4b23 1871 `(("slang" ,slang) ;for the interactive TUI
b62fe07f 1872 ;; ("newt" ,newt)
6c030d10 1873 ("python" ,python-2) ;'perf' links against libpython
b62fe07f
LC
1874 ("elfutils" ,elfutils)
1875
d7ece67a
LC
1876 ;; Documentation.
1877 ("libxml2" ,libxml2) ;for $XML_CATALOG_FILES
1878 ("libxslt" ,libxslt)
1879 ("docbook-xml" ,docbook-xml)
1880 ("docbook-xsl" ,docbook-xsl)
1881 ("xmlto" ,xmlto)
1882 ("asciidoc" ,asciidoc)))
b62fe07f
LC
1883 (home-page "https://perf.wiki.kernel.org/")
1884 (synopsis "Linux profiling with performance counters")
1885 (description
1886 "perf is a tool suite for profiling using hardware performance counters,
1887with support in the Linux kernel. perf can instrument CPU performance
1888counters, tracepoints, kprobes, and uprobes (dynamic tracing). It is capable
1889of lightweight profiling. This package contains the user-land tools and in
1890particular the 'perf' command.")
1891 (license (package-license linux-libre))))
c09e60e4
DT
1892
1893(define-public pflask
1894 (package
1895 (name "pflask")
1896 (version "0.2")
1897 (source (origin
1898 (method url-fetch)
1899 (uri (string-append "https://github.com/ghedo/pflask/archive/v"
1900 version ".tar.gz"))
f586c877 1901 (file-name (string-append name "-" version ".tar.gz"))
c09e60e4
DT
1902 (sha256
1903 (base32
1904 "1g8fjj67dfkc2s0852l9vqi1pm61gp4rxbpzbzg780f5s5hd1fys"))))
1905 (build-system cmake-build-system)
1906 (arguments
1907 '(#:tests? #f)) ; no tests
1908 (home-page "http://ghedo.github.io/pflask/")
1909 (synopsis "Simple tool for creating Linux namespace containers")
1910 (description "pflask is a simple tool for creating Linux namespace
1911containers. It can be used for running a command or even booting an OS inside
1912an isolated container, created with the help of Linux namespaces. It is
1913similar in functionality to chroot, although pflask provides better isolation
1914thanks to the use of namespaces.")
1915 (license bsd-2)))
288084d5
MW
1916
1917(define-public hdparm
1918 (package
1919 (name "hdparm")
1920 (version "9.45")
1921 (source (origin
1922 (method url-fetch)
1923 (uri (string-append "mirror://sourceforge/" name "/"
1924 name "-" version ".tar.gz"))
1925 (sha256
1926 (base32
1927 "0sc6yf3k6sd7n6a2ig2my9fjlqpak3znlyw7jw4cz5d9asm1rc13"))))
1928 (build-system gnu-build-system)
1929 (arguments
1930 `(#:make-flags (let ((out (assoc-ref %outputs "out")))
1931 (list (string-append "binprefix=" out)
1932 (string-append "manprefix=" out)
1933 "CC=gcc"))
1934 #:phases (alist-delete 'configure %standard-phases)
1935 #:tests? #f)) ; no test suite
1936 (home-page "http://sourceforge.net/projects/hdparm/")
1937 (synopsis "tune hard disk parameters for high performance")
1938 (description
1939 "Get/set device parameters for Linux SATA/IDE drives. It's primary use
1940is for enabling irq-unmasking and IDE multiplemode.")
166191b3 1941 (license (non-copyleft "file://LICENSE.TXT"))))
288084d5 1942
57a516d3
LC
1943(define-public acpid
1944 (package
1945 (name "acpid")
1946 (version "2.0.23")
1947 (source (origin
1948 (method url-fetch)
1949 (uri (string-append "mirror://sourceforge/acpid2/acpid-"
1950 version ".tar.xz"))
1951 (sha256
1952 (base32
1953 "1vl7c6vc724v4jwki17czgj6lnrknnj1a6llm8gkl32i2gnam5j3"))))
1954 (build-system gnu-build-system)
1955 (home-page "http://sourceforge.net/projects/acpid2/")
1956 (synopsis "Daemon for delivering ACPI events to user-space programs")
1957 (description
1958 "acpid is designed to notify user-space programs of Advanced
1959Configuration and Power Interface (ACPI) events. acpid should be started
1960during the system boot, and will run as a background process. When an ACPI
1961event is received from the kernel, acpid will examine the list of rules
1962specified in /etc/acpi/events and execute the rules that match the event.")
1963 (license gpl2+)))
37f5caec
TUBK
1964
1965(define-public sysfsutils
1966 (package
1967 (name "sysfsutils")
1968 (version "2.1.0")
1969 (source
1970 (origin
1971 (method url-fetch)
1972 (uri
1973 (string-append
1974 "mirror://sourceforge/linux-diag/sysfsutils/" version "/sysfsutils-"
1975 version ".tar.gz"))
1976 (sha256
1977 (base32 "12i0ip11xbfcjzxz4r10cvz7mbzgq1hfcdn97w6zz7sm3wndwrg8"))))
1978 (build-system gnu-build-system)
1979 (home-page "http://linux-diag.sourceforge.net/Sysfsutils.html")
1980 (synopsis "System utilities based on Linux sysfs")
1981 (description
1982 "These are a set of utilites built upon sysfs, a virtual filesystem in
1983Linux kernel versions 2.5+ that exposes a system's device tree. The package
1984also contains the libsysfs library.")
1985 ;; The library is under lgpl2.1+ (all files say "or any later version").
1986 ;; The rest is mostly gpl2, with a few files indicating gpl2+.
1987 (license (list gpl2 gpl2+ lgpl2.1+))))
a9a1a40b
TUBK
1988
1989(define-public sysfsutils-1
1990 (package
1991 (inherit sysfsutils)
1992 (version "1.3.0")
1993 (source
1994 (origin
1995 (method url-fetch)
1996 (uri
1997 (string-append
1998 "mirror://sourceforge/linux-diag/sysfsutils/sysfsutils-" version
1999 "/sysfsutils-" version ".tar.gz"))
2000 (sha256
2001 (base32 "0kdhs07fm8263pxwd5blwn2x211cg4fk63fyf9ijcdkvzmwxrqq3"))
2002 (modules '((guix build utils)))
2003 (snippet
2004 '(begin
2005 (substitute* "Makefile.in"
2006 (("includedir = /usr/include/sysfs")
2007 "includedir = @includedir@"))
2008 (substitute* "configure"
2009 (("includedir='(\\$\\{prefix\\}/include)'" all orig)
2010 (string-append "includedir='" orig "/sysfs'")))))))
0e396872
MW
2011 ;; XXX sysfsutils-1.3.0's config.guess fails on mips64el
2012 (arguments `(#:configure-flags
2013 '(,@(if (%current-target-system)
2014 '()
2015 (let ((triplet
2016 (nix-system->gnu-triplet (%current-system))))
2017 (list (string-append "--build=" triplet)))))))
a9a1a40b 2018 (synopsis "System utilities based on Linux sysfs (version 1.x)")))
e6caa52d
TUBK
2019
2020(define-public cpufrequtils
2021 (package
2022 (name "cpufrequtils")
2023 (version "0.3")
2024 (source
2025 (origin
2026 (method url-fetch)
2027 (uri
2028 (string-append
2029 "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils-"
2030 version ".tar.gz"))
2031 (sha256
2032 (base32 "0qfqv7nqmjfr3p0bwrdlxkiqwqr7vmx053cadaa548ybqbghxmvm"))
2033 (patches (list (search-patch "cpufrequtils-fix-aclocal.patch")))))
2034 (build-system gnu-build-system)
2035 (native-inputs
2036 `(("sysfsutils" ,sysfsutils-1)))
2037 (arguments
2038 '(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
2039 (assoc-ref %outputs "out") "/lib"))))
2040 (home-page "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/")
2041 (synopsis "Utilities to get and set CPU frequency on Linux")
2042 (description
2043 "The cpufrequtils suite contains utilities to retreive CPU frequency
2044information, and set the CPU frequency if supported, using the cpufreq
2045capabilities of the Linux kernel.")
2046 (license gpl2)))
0a588bf9
SB
2047
2048(define-public libraw1394
2049 (package
2050 (name "libraw1394")
2051 (version "2.1.0")
2052 (source (origin
2053 (method url-fetch)
2054 (uri (string-append
2055 "mirror://kernel.org/linux/libs/ieee1394/"
2056 name "-" version ".tar.xz"))
2057 (sha256
2058 (base32
2059 "0kwnf4ha45c04mhc4yla672aqmvqqihxix1gvblns5cd2pc2cc8b"))))
2060 (build-system gnu-build-system)
2061 (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
2062 (synopsis "Interface library for the Linux IEEE1394 drivers")
2063 (description
2064 "Libraw1394 is the only supported interface to the kernel side raw1394 of
2065the Linux IEEE-1394 subsystem, which provides direct access to the connected
20661394 buses to user space. Through libraw1394/raw1394, applications can directly
2067send to and receive from other nodes without requiring a kernel driver for the
2068protocol in question.")
2069 (license lgpl2.1+)))
68e3c29d
SB
2070
2071(define-public libavc1394
2072 (package
2073 (name "libavc1394")
2074 (version "0.5.4")
2075 (source (origin
2076 (method url-fetch)
2077 (uri (string-append "mirror://sourceforge/libavc1394/"
2078 name "-" version ".tar.gz"))
2079 (sha256
2080 (base32
2081 "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw"))))
2082 (build-system gnu-build-system)
2083 (native-inputs
2084 `(("pkg-config" ,pkg-config)))
2085 (propagated-inputs
2086 `(("libraw1394" ,libraw1394))) ; required by libavc1394.pc
2087 (home-page "http://sourceforge.net/projects/libavc1394/")
2088 (synopsis "AV/C protocol library for IEEE 1394")
2089 (description
2090 "Libavc1394 is a programming interface to the AV/C specification from
2091the 1394 Trade Assocation. AV/C stands for Audio/Video Control.")
2092 (license lgpl2.1+)))
3f7bf86a
SB
2093
2094(define-public libiec61883
2095 (package
2096 (name "libiec61883")
2097 (version "1.2.0")
2098 (source (origin
2099 (method url-fetch)
2100 (uri (string-append
2101 "mirror://kernel.org/linux/libs/ieee1394/"
2102 name "-" version ".tar.xz"))
2103 (sha256
2104 (base32
2105 "17ph458zya2l8dr2xwqnzy195qd9swrir31g78qkgb3g4xz2rq6i"))))
2106 (build-system gnu-build-system)
2107 (native-inputs
2108 `(("pkg-config" ,pkg-config)))
2109 (propagated-inputs
2110 `(("libraw1394" ,libraw1394))) ; required by libiec61883.pc
2111 (home-page "https://ieee1394.wiki.kernel.org/index.php/Main_Page")
2112 (synopsis "Isochronous streaming media library for IEEE 1394")
2113 (description
2114 "The libiec61883 library provides a higher level API for streaming DV,
2115MPEG-2 and audio over Linux IEEE 1394.")
2116 (license lgpl2.1+)))
69159125
MW
2117
2118(define-public mdadm
2119 (package
2120 (name "mdadm")
2121 (version "3.3.2")
2122 (source (origin
2123 (method url-fetch)
2124 (uri (string-append
2125 "mirror://kernel.org/linux/utils/raid/mdadm/mdadm-"
2126 version ".tar.xz"))
2127 (sha256
2128 (base32
2129 "132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg"))))
2130 (build-system gnu-build-system)
2131 (inputs
2132 `(("udev" ,eudev)))
2133 (arguments
2134 `(#:make-flags (let ((out (assoc-ref %outputs "out")))
2135 (list "INSTALL=install"
2136 "CHECK_RUN_DIR=0"
2137 ;; TODO: tell it where to find 'sendmail'
2138 ;; (string-append "MAILCMD=" <???> "/sbin/sendmail")
2139 (string-append "BINDIR=" out "/sbin")
2140 (string-append "MANDIR=" out "/share/man")
2141 (string-append "UDEVDIR=" out "/lib/udev")))
2142 #:phases (alist-cons-before
2143 'build 'patch-program-paths
2144 (lambda* (#:key inputs #:allow-other-keys)
2145 (let ((coreutils (assoc-ref inputs "coreutils")))
2146 (substitute* "udev-md-raid-arrays.rules"
2147 (("/usr/bin/(readlink|basename)" all program)
2148 (string-append coreutils "/bin/" program)))))
2149 (alist-delete 'configure %standard-phases))
2150 ;;tests must be done as root
2151 #:tests? #f))
2152 (home-page "http://neil.brown.name/blog/mdadm")
2153 (synopsis "Tool for managing Linux Software RAID arrays")
2154 (description
2155 "mdadm is a tool for managing Linux Software RAID arrays. It can create,
2156assemble, report on, and monitor arrays. It can also move spares between raid
2157arrays when needed.")
2158 (license gpl2+)))
01ccdfb6
SB
2159
2160(define-public libaio
2161 (package
2162 (name "libaio")
2163 (version "0.3.110")
2164 (source (origin
2165 (method url-fetch)
2166 (uri (list
2167 (string-append "mirror://debian/pool/main/liba/libaio/"
2168 name "_" version ".orig.tar.gz")
2169 (string-append "https://fedorahosted.org/releases/l/i/libaio/"
2170 name "-" version ".tar.gz")))
2171 (sha256
2172 (base32
2173 "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0"))))
2174 (build-system gnu-build-system)
2175 (arguments
2176 '(#:make-flags
2177 (list "CC=gcc" (string-append "prefix=" %output))
2178 #:test-target "partcheck" ; need root for a full 'check'
2179 #:phases
2180 (alist-delete 'configure %standard-phases))) ; no configure script
2181 (home-page "http://lse.sourceforge.net/io/aio.html")
2182 (synopsis "Linux-native asynchronous I/O access library")
2183 (description
2184 "This library enables userspace to use Linux kernel asynchronous I/O
2185system calls, important for the performance of databases and other advanced
2186applications.")
2187 (license lgpl2.1+)))
eb7c43c3
DT
2188
2189(define-public bluez
2190 (package
2191 (name "bluez")
2192 (version "5.30")
2193 (source (origin
2194 (method url-fetch)
2195 (uri (string-append
2196 "https://www.kernel.org/pub/linux/bluetooth/bluez-"
2197 version ".tar.xz"))
2198 (sha256
2199 (base32
2200 "0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy"))))
2201 (build-system gnu-build-system)
2202 (arguments
2203 '(#:configure-flags
2204 (let ((out (assoc-ref %outputs "out")))
2205 (list "--disable-systemd"
2206 ;; Install dbus/udev files to the correct location.
2207 (string-append "--with-dbusconfdir=" out "/etc")
2208 (string-append "--with-udevdir=" out "/lib/udev")))))
2209 (native-inputs
2210 `(("pkg-config" ,pkg-config)
2211 ("gettext" ,gnu-gettext)))
2212 (inputs
2213 `(("glib" ,glib)
2214 ("dbus" ,dbus)
2215 ("eudev" ,eudev)
2216 ("libical" ,libical)
2217 ("readline" ,readline)))
2218 (home-page "http://www.bluez.org/")
2219 (synopsis "Linux Bluetooth protocol stack")
2220 (description
2221 "BlueZ provides support for the core Bluetooth layers and protocols. It
2222is flexible, efficient and uses a modular implementation.")
2223 (license gpl2+)))