Mirror of GNU Guix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

758 lines
30 KiB

gnu: Use synopses from the Womb. * gnu/packages/algebra.scm, gnu/packages/aspell.scm, gnu/packages/autotools.scm, gnu/packages/base.scm, gnu/packages/bash.scm, gnu/packages/bison.scm, gnu/packages/cdrom.scm, gnu/packages/cflow.scm, gnu/packages/compression.scm, gnu/packages/cpio.scm, gnu/packages/cppi.scm, gnu/packages/ddrescue.scm, gnu/packages/dejagnu.scm, gnu/packages/ed.scm, gnu/packages/emacs.scm, gnu/packages/fdisk.scm, gnu/packages/gawk.scm, gnu/packages/gcc.scm, packages/gcc.scm, b/gnu/packages/gcc.scm, 4b982 100644 s/gcc.scm, s/gcc.scm, @@ %standard-phases))))) `((gcc-libc . ,(assoc-ref inputs "libc")))) The GNU Compiler Collection") GNU Compiler Collection") n ompiler Collection includes compiler front ends for C, C++, tran, OpenMP for C/C++/Fortran, Java, and Ada, as well as gnu/packages/gdb.scm, gnu/packages/gettext.scm, gnu/packages/ghostscript.scm, gnu/packages/glib.scm, gnu/packages/global.scm, gnu/packages/gnupg.scm, gnu/packages/gnutls.scm, gnu/packages/gperf.scm, gnu/packages/gprolog.scm, gnu/packages/groff.scm, gnu/packages/grub.scm, gnu/packages/gsasl.scm, gnu/packages/guile.scm, gnu/packages/help2man.scm, gnu/packages/idutils.scm, gnu/packages/indent.scm, gnu/packages/less.scm, gnu/packages/libidn.scm, gnu/packages/libsigsegv.scm, gnu/packages/libunistring.scm, gnu/packages/linux.scm, gnu/packages/lsh.scm, gnu/packages/m4.scm, gnu/packages/mailutils.scm, gnu/packages/multiprecision.scm, gnu/packages/nano.scm, gnu/packages/ncurses.scm, gnu/packages/nettle.scm, gnu/packages/oggvorbis.scm, gnu/packages/parted.scm, gnu/packages/pth.scm, gnu/packages/readline.scm, gnu/packages/recutils.scm, gnu/packages/scheme.scm, gnu/packages/screen.scm, gnu/packages/shishi.scm, gnu/packages/smalltalk.scm, gnu/packages/system.scm, gnu/packages/texinfo.scm, gnu/packages/time.scm, gnu/packages/wdiff.scm, gnu/packages/wget.scm, gnu/packages/which.scm: Use synopses from the Womb.
9 years ago
Synchronize package descriptions with the Womb. * gnu/packages/algebra.scm, gnu/packages/aspell.scm, gnu/packages/autotools.scm, gnu/packages/base.scm, gnu/packages/bash.scm, gnu/packages/bison.scm, gnu/packages/cdrom.scm, gnu/packages/cflow.scm, gnu/packages/compression.scm, gnu/packages/cpio.scm, gnu/packages/cppi.scm, gnu/packages/ddrescue.scm, gnu/packages/dejagnu.scm, gnu/packages/ed.scm, gnu/packages/emacs.scm, gnu/packages/fdisk.scm, gnu/packages/freeipmi.scm, gnu/packages/gawk.scm, gnu/packages/gcal.scm, gnu/packages/gcc.scm, gnu/packages/gdb.scm, gnu/packages/gdbm.scm, gnu/packages/gettext.scm, gnu/packages/ghostscript.scm, gnu/packages/global.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnutls.scm, gnu/packages/gperf.scm, gnu/packages/gprolog.scm, gnu/packages/groff.scm, gnu/packages/grub.scm, gnu/packages/gsasl.scm, gnu/packages/guile.scm, gnu/packages/gv.scm, gnu/packages/help2man.scm, gnu/packages/idutils.scm, gnu/packages/indent.scm, gnu/packages/less.scm, gnu/packages/libidn.scm, gnu/packages/libsigsegv.scm, gnu/packages/libunistring.scm, gnu/packages/lightning.scm, gnu/packages/linux.scm, gnu/packages/lsh.scm, gnu/packages/m4.scm, gnu/packages/mail.scm, gnu/packages/maths.scm, gnu/packages/multiprecision.scm, gnu/packages/nano.scm, gnu/packages/ncurses.scm, gnu/packages/nettle.scm, gnu/packages/ocrad.scm, gnu/packages/oggvorbis.scm, gnu/packages/parted.scm, gnu/packages/plotutils.scm, gnu/packages/pth.scm, gnu/packages/readline.scm, gnu/packages/recutils.scm, gnu/packages/rush.scm, gnu/packages/scheme.scm, gnu/packages/screen.scm, gnu/packages/shishi.scm, gnu/packages/smalltalk.scm, gnu/packages/system.scm, gnu/packages/texinfo.scm, gnu/packages/time.scm, gnu/packages/unrtf.scm, gnu/packages/version-control.scm, gnu/packages/wdiff.scm, gnu/packages/wget.scm, gnu/packages/which.scm, gnu/packages/xnee.scm, gnu/packages/zile.scm: Change value of the 'description' field to that of the Womb.
8 years ago
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
  3. ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
  4. ;;;
  5. ;;; This file is part of GNU Guix.
  6. ;;;
  7. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  8. ;;; under the terms of the GNU General Public License as published by
  9. ;;; the Free Software Foundation; either version 3 of the License, or (at
  10. ;;; your option) any later version.
  11. ;;;
  12. ;;; GNU Guix is distributed in the hope that it will be useful, but
  13. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  14. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. ;;; GNU General Public License for more details.
  16. ;;;
  17. ;;; You should have received a copy of the GNU General Public License
  18. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  19. (define-module (gnu packages linux)
  20. #:use-module (guix licenses)
  21. #:use-module (gnu packages)
  22. #:use-module ((gnu packages compression)
  23. #:renamer (symbol-prefix-proc 'guix:))
  24. #:use-module (gnu packages flex)
  25. #:use-module (gnu packages bison)
  26. #:use-module (gnu packages libusb)
  27. #:use-module (gnu packages ncurses)
  28. #:use-module (gnu packages bdb)
  29. #:use-module (gnu packages perl)
  30. #:use-module (gnu packages pkg-config)
  31. #:use-module (gnu packages algebra)
  32. #:use-module ((gnu packages gettext)
  33. #:renamer (symbol-prefix-proc 'g:))
  34. #:use-module (gnu packages pulseaudio)
  35. #:use-module (gnu packages attr)
  36. #:use-module (gnu packages xml)
  37. #:use-module (gnu packages autotools)
  38. #:use-module (guix packages)
  39. #:use-module (guix download)
  40. #:use-module (guix build-system gnu))
  41. (define-public (system->linux-architecture arch)
  42. "Return the Linux architecture name for ARCH, a Guix system name such as
  43. \"x86_64-linux\"."
  44. (let ((arch (car (string-split arch #\-))))
  45. (cond ((string=? arch "i686") "i386")
  46. ((string-prefix? "mips" arch) "mips")
  47. ((string-prefix? "arm" arch) "arm")
  48. (else arch))))
  49. (define (linux-libre-urls version)
  50. "Return a list of URLs for Linux-Libre VERSION."
  51. (list (string-append
  52. "http://linux-libre.fsfla.org/pub/linux-libre/releases/"
  53. version "-gnu/linux-libre-" version "-gnu.tar.xz")
  54. ;; XXX: Work around <http://bugs.gnu.org/14851>.
  55. (string-append
  56. "ftp://alpha.gnu.org/gnu/guix/mirror/linux-libre-"
  57. version "-gnu.tar.xz")
  58. ;; Maybe this URL will become valid eventually.
  59. (string-append
  60. "mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
  61. version "-gnu.tar.xz")))
  62. (define-public linux-libre-headers
  63. (let* ((version "3.3.8")
  64. (build-phase
  65. (lambda (arch)
  66. `(lambda _
  67. (setenv "ARCH" ,(system->linux-architecture arch))
  68. (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
  69. (and (zero? (system* "make" "defconfig"))
  70. (zero? (system* "make" "mrproper" "headers_check"))))))
  71. (install-phase
  72. `(lambda* (#:key outputs #:allow-other-keys)
  73. (let ((out (assoc-ref outputs "out")))
  74. (and (zero? (system* "make"
  75. (string-append "INSTALL_HDR_PATH=" out)
  76. "headers_install"))
  77. (mkdir (string-append out "/include/config"))
  78. (call-with-output-file
  79. (string-append out
  80. "/include/config/kernel.release")
  81. (lambda (p)
  82. (format p "~a-default~%" ,version))))))))
  83. (package
  84. (name "linux-libre-headers")
  85. (version version)
  86. (source (origin
  87. (method url-fetch)
  88. (uri (linux-libre-urls version))
  89. (sha256
  90. (base32
  91. "0jkfh0z1s6izvdnc3njm39dhzp1cg8i06jv06izwqz9w9qsprvnl"))))
  92. (build-system gnu-build-system)
  93. (native-inputs `(("perl" ,perl)))
  94. (arguments
  95. `(#:modules ((guix build gnu-build-system)
  96. (guix build utils)
  97. (srfi srfi-1))
  98. #:phases (alist-replace
  99. 'build ,(build-phase (or (%current-target-system)
  100. (%current-system)))
  101. (alist-replace
  102. 'install ,install-phase
  103. (alist-delete 'configure %standard-phases)))
  104. #:tests? #f))
  105. (synopsis "GNU Linux-Libre kernel headers")
  106. (description "Headers of the Linux-Libre kernel.")
  107. (license gpl2)
  108. (home-page "http://www.gnu.org/software/linux-libre/"))))
  109. (define-public module-init-tools
  110. (package
  111. (name "module-init-tools")
  112. (version "3.16")
  113. (source (origin
  114. (method url-fetch)
  115. (uri (string-append
  116. "mirror://kernel.org/linux/utils/kernel/module-init-tools/module-init-tools-"
  117. version ".tar.bz2"))
  118. (sha256
  119. (base32
  120. "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"))))
  121. (build-system gnu-build-system)
  122. (arguments
  123. ;; FIXME: The upstream tarball lacks man pages, and building them would
  124. ;; require DocBook & co. We used to use Gentoo's pre-built man pages,
  125. ;; but they vanished. In the meantime, fake it.
  126. '(#:phases (alist-cons-before
  127. 'configure 'fake-docbook
  128. (lambda _
  129. (substitute* "Makefile.in"
  130. (("^DOCBOOKTOMAN.*$")
  131. "DOCBOOKTOMAN = true\n")))
  132. %standard-phases)))
  133. (home-page "http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/")
  134. (synopsis "Tools for loading and managing Linux kernel modules")
  135. (description
  136. "Tools for loading and managing Linux kernel modules, such as `modprobe',
  137. `insmod', `lsmod', and more.")
  138. (license gpl2+)))
  139. (define-public linux-libre
  140. (let* ((version "3.11")
  141. (build-phase
  142. '(lambda* (#:key system #:allow-other-keys #:rest args)
  143. (let ((arch (car (string-split system #\-))))
  144. (setenv "ARCH"
  145. (cond ((string=? arch "i686") "i386")
  146. (else arch)))
  147. (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
  148. (let ((build (assoc-ref %standard-phases 'build)))
  149. (and (zero? (system* "make" "defconfig"))
  150. (begin
  151. (format #t "enabling additional modules...~%")
  152. (substitute* ".config"
  153. (("^# CONFIG_CIFS.*$")
  154. "CONFIG_CIFS=m\n"))
  155. (zero? (system* "make" "oldconfig")))
  156. ;; Call the default `build' phase so `-j' is correctly
  157. ;; passed.
  158. (apply build #:make-flags "all" args)))))
  159. (install-phase
  160. `(lambda* (#:key inputs outputs #:allow-other-keys)
  161. (let* ((out (assoc-ref outputs "out"))
  162. (moddir (string-append out "/lib/modules"))
  163. (mit (assoc-ref inputs "module-init-tools")))
  164. (mkdir-p moddir)
  165. (for-each (lambda (file)
  166. (copy-file file
  167. (string-append out "/" (basename file))))
  168. (find-files "." "^(bzImage|System\\.map)$"))
  169. (copy-file ".config" (string-append out "/config"))
  170. (zero? (system* "make"
  171. (string-append "DEPMOD=" mit "/sbin/depmod")
  172. (string-append "MODULE_DIR=" moddir)
  173. (string-append "INSTALL_PATH=" out)
  174. (string-append "INSTALL_MOD_PATH=" out)
  175. "modules_install"))))))
  176. (package
  177. (name "linux-libre")
  178. (version version)
  179. (source (origin
  180. (method url-fetch)
  181. (uri (linux-libre-urls version))
  182. (sha256
  183. (base32
  184. "1vlk04xkvyy1kc9zz556md173rn1qzlnvhz7c9sljv4bpk3mdspl"))))
  185. (build-system gnu-build-system)
  186. (native-inputs `(("perl" ,perl)
  187. ("bc" ,bc)
  188. ("module-init-tools" ,module-init-tools)))
  189. (arguments
  190. `(#:modules ((guix build gnu-build-system)
  191. (guix build utils)
  192. (srfi srfi-1)
  193. (ice-9 match))
  194. #:phases (alist-replace
  195. 'build ,build-phase
  196. (alist-replace
  197. 'install ,install-phase
  198. (alist-delete 'configure %standard-phases)))
  199. #:tests? #f))
  200. (synopsis "100% free redistribution of a cleaned Linux kernel")
  201. (description
  202. "Linux Libre is a free (as in freedom) variant of the Linux kernel. It
  203. has been modified to remove any non-free binary blobs.")
  204. (license gpl2)
  205. (home-page "http://www.gnu.org/software/linux-libre/"))))
  206. ;;;
  207. ;;; Pluggable authentication modules (PAM).
  208. ;;;
  209. (define-public linux-pam
  210. (package
  211. (name "linux-pam")
  212. (version "1.1.6")
  213. (source
  214. (origin
  215. (method url-fetch)
  216. (uri (list (string-append "http://www.linux-pam.org/library/Linux-PAM-"
  217. version ".tar.bz2")
  218. (string-append "mirror://kernel.org/linux/libs/pam/library/Linux-PAM-"
  219. version ".tar.bz2")))
  220. (sha256
  221. (base32
  222. "1hlz2kqvbjisvwyicdincq7nz897b9rrafyzccwzqiqg53b8gf5s"))))
  223. (build-system gnu-build-system)
  224. (inputs
  225. `(("flex" ,flex)
  226. ;; TODO: optional dependencies
  227. ;; ("libxcrypt" ,libxcrypt)
  228. ;; ("cracklib" ,cracklib)
  229. ))
  230. (arguments
  231. '(;; Most users, such as `shadow', expect the headers to be under
  232. ;; `security'.
  233. #:configure-flags (list (string-append "--includedir="
  234. (assoc-ref %outputs "out")
  235. "/include/security"))
  236. ;; XXX: Tests won't run in chroot, presumably because /etc/pam.d
  237. ;; isn't available.
  238. #:tests? #f))
  239. (home-page "http://www.linux-pam.org/")
  240. (synopsis "Pluggable authentication modules for Linux")
  241. (description
  242. "A *Free* project to implement OSF's RFC 86.0.
  243. Pluggable authentication modules are small shared object files that can
  244. be used through the PAM API to perform tasks, like authenticating a user
  245. at login. Local and dynamic reconfiguration are its key features")
  246. (license bsd-3)))
  247. ;;;
  248. ;;; Miscellaneous.
  249. ;;;
  250. (define-public psmisc
  251. (package
  252. (name "psmisc")
  253. (version "22.20")
  254. (source
  255. (origin
  256. (method url-fetch)
  257. (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-"
  258. version ".tar.gz"))
  259. (sha256
  260. (base32
  261. "052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi"))))
  262. (build-system gnu-build-system)
  263. (inputs `(("ncurses" ,ncurses)))
  264. (home-page "http://psmisc.sourceforge.net/")
  265. (synopsis
  266. "set of utilities that use the proc filesystem, such as fuser, killall, and pstree")
  267. (description
  268. "This PSmisc package is a set of some small useful utilities that
  269. use the proc filesystem. We're not about changing the world, but
  270. providing the system administrator with some help in common tasks.")
  271. (license gpl2+)))
  272. (define-public util-linux
  273. (package
  274. (name "util-linux")
  275. (version "2.21")
  276. (source
  277. (origin
  278. (method url-fetch)
  279. (uri (string-append "mirror://kernel.org/linux/utils/"
  280. name "/v" version "/"
  281. name "-" version ".2" ".tar.xz"))
  282. (sha256
  283. (base32
  284. "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir"))))
  285. (build-system gnu-build-system)
  286. (arguments
  287. `(#:configure-flags '("--disable-use-tty-group")
  288. #:phases (alist-cons-after
  289. 'install 'patch-chkdupexe
  290. (lambda* (#:key outputs #:allow-other-keys)
  291. (let ((out (assoc-ref outputs "out")))
  292. (substitute* (string-append out "/bin/chkdupexe")
  293. ;; Allow 'patch-shebang' to do its work.
  294. (("@PERL@") "/bin/perl"))))
  295. %standard-phases)))
  296. (inputs `(("zlib" ,guix:zlib)
  297. ("ncurses" ,ncurses)
  298. ("perl" ,perl)))
  299. (home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
  300. (synopsis "Collection of utilities for the Linux kernel")
  301. (description
  302. "util-linux is a random collection of utilities for the Linux kernel.")
  303. ;; Note that util-linux doesn't use the same license for all the
  304. ;; code. GPLv2+ is the default license for a code without an
  305. ;; explicitly defined license.
  306. (license (list gpl3+ gpl2+ gpl2 lgpl2.0+
  307. bsd-4 public-domain))))
  308. (define-public procps
  309. (package
  310. (name "procps")
  311. (version "3.2.8")
  312. (source (origin
  313. (method url-fetch)
  314. (uri (string-append "http://procps.sourceforge.net/procps-"
  315. version ".tar.gz"))
  316. (sha256
  317. (base32
  318. "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i"))
  319. (patches (list (search-patch "procps-make-3.82.patch")))))
  320. (build-system gnu-build-system)
  321. (inputs `(("ncurses" ,ncurses)))
  322. (arguments
  323. '(#:phases (alist-replace
  324. 'configure
  325. (lambda* (#:key outputs #:allow-other-keys)
  326. ;; No `configure', just a single Makefile.
  327. (let ((out (assoc-ref outputs "out")))
  328. (substitute* "Makefile"
  329. (("/usr/") "/")
  330. (("--(owner|group) 0") "")
  331. (("ldconfig") "true")
  332. (("^LDFLAGS[[:blank:]]*:=(.*)$" _ value)
  333. ;; Add libproc to the RPATH.
  334. (string-append "LDFLAGS := -Wl,-rpath="
  335. out "/lib" value))))
  336. (setenv "CC" "gcc"))
  337. (alist-replace
  338. 'install
  339. (lambda* (#:key outputs #:allow-other-keys)
  340. (let ((out (assoc-ref outputs "out")))
  341. (and (zero?
  342. (system* "make" "install"
  343. (string-append "DESTDIR=" out)))
  344. ;; Sanity check.
  345. (zero?
  346. (system* (string-append out "/bin/ps")
  347. "--version")))))
  348. %standard-phases))
  349. ;; What did you expect? Tests?
  350. #:tests? #f))
  351. (home-page "http://procps.sourceforge.net/")
  352. (synopsis "Utilities that give information about processes")
  353. (description
  354. "procps is the package that has a bunch of small useful utilities
  355. that give information about processes using the Linux /proc file system.
  356. The package includes the programs ps, top, vmstat, w, kill, free,
  357. slabtop, and skill.")
  358. (license gpl2)))
  359. (define-public usbutils
  360. (package
  361. (name "usbutils")
  362. (version "006")
  363. (source
  364. (origin
  365. (method url-fetch)
  366. (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
  367. "usbutils-" version ".tar.xz"))
  368. (sha256
  369. (base32
  370. "03pd57vv8c6x0hgjqcbrxnzi14h8hcghmapg89p8k5zpwpkvbdfr"))))
  371. (build-system gnu-build-system)
  372. (inputs
  373. `(("libusb" ,libusb) ("pkg-config" ,pkg-config)))
  374. (home-page "http://www.linux-usb.org/")
  375. (synopsis
  376. "Tools for working with USB devices, such as lsusb")
  377. (description
  378. "Tools for working with USB devices, such as lsusb.")
  379. (license gpl2+)))
  380. (define-public e2fsprogs
  381. (package
  382. (name "e2fsprogs")
  383. (version "1.42.7")
  384. (source (origin
  385. (method url-fetch)
  386. (uri (string-append "mirror://sourceforge/e2fsprogs/e2fsprogs-"
  387. version ".tar.gz"))
  388. (sha256
  389. (base32
  390. "0ibkkvp6kan0hn0d1anq4n2md70j5gcm7mwna515w82xwyr02rfw"))))
  391. (build-system gnu-build-system)
  392. (inputs `(("util-linux" ,util-linux)
  393. ("pkg-config" ,pkg-config)))
  394. (arguments
  395. '(#:phases (alist-cons-before
  396. 'configure 'patch-shells
  397. (lambda _
  398. (substitute* "configure"
  399. (("/bin/sh (.*)parse-types.sh" _ dir)
  400. (string-append (which "sh") " " dir
  401. "parse-types.sh")))
  402. (substitute* (find-files "." "^Makefile.in$")
  403. (("#!/bin/sh")
  404. (string-append "#!" (which "sh")))))
  405. %standard-phases)
  406. ;; FIXME: Tests work by comparing the stdout/stderr of programs, that
  407. ;; they fail because we get an extra line that says "Can't check if
  408. ;; filesystem is mounted due to missing mtab file".
  409. #:tests? #f))
  410. (home-page "http://e2fsprogs.sourceforge.net/")
  411. (synopsis "Creating and checking ext2/ext3/ext4 file systems")
  412. (description
  413. "This package provides tools for manipulating ext2/ext3/ext4 file systems.")
  414. (license (list gpl2 ; programs
  415. lgpl2.0 ; libext2fs
  416. x11)))) ; libuuid
  417. (define-public strace
  418. (package
  419. (name "strace")
  420. (version "4.7")
  421. (source (origin
  422. (method url-fetch)
  423. (uri (string-append "mirror://sourceforge/strace/strace-"
  424. version ".tar.xz"))
  425. (sha256
  426. (base32
  427. "158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764"))))
  428. (build-system gnu-build-system)
  429. (inputs `(("perl" ,perl)))
  430. (home-page "http://strace.sourceforge.net/")
  431. (synopsis "System call tracer for Linux")
  432. (description
  433. "strace is a system call tracer, i.e. a debugging tool which prints out a
  434. trace of all the system calls made by a another process/program.")
  435. (license bsd-3)))
  436. (define-public alsa-lib
  437. (package
  438. (name "alsa-lib")
  439. (version "1.0.27.1")
  440. (source (origin
  441. (method url-fetch)
  442. (uri (string-append
  443. "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-"
  444. version ".tar.bz2"))
  445. (sha256
  446. (base32
  447. "0fx057746dj7rjdi0jnvx2m9b0y1lgdkh1hks87d8w32xyihf3k9"))
  448. (patches (list (search-patch "alsa-lib-mips-atomic-fix.patch")))))
  449. (build-system gnu-build-system)
  450. (home-page "http://www.alsa-project.org/")
  451. (synopsis "The Advanced Linux Sound Architecture libraries")
  452. (description
  453. "The Advanced Linux Sound Architecture (ALSA) provides audio and
  454. MIDI functionality to the Linux-based operating system.")
  455. (license lgpl2.1+)))
  456. (define-public alsa-utils
  457. (package
  458. (name "alsa-utils")
  459. (version "1.0.27.2")
  460. (source (origin
  461. (method url-fetch)
  462. (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-"
  463. version ".tar.bz2"))
  464. (sha256
  465. (base32
  466. "1sjjngnq50jv5ilwsb4zys6smifni3bd6fn28gbnhfrg14wsrgq2"))))
  467. (build-system gnu-build-system)
  468. (arguments
  469. ;; XXX: Disable man page creation until we have DocBook.
  470. '(#:configure-flags (list "--disable-xmlto"
  471. (string-append "--with-udev-rules-dir="
  472. (assoc-ref %outputs "out")
  473. "/lib/udev/rules.d"))
  474. #:phases (alist-cons-before
  475. 'install 'pre-install
  476. (lambda _
  477. ;; Don't try to mkdir /var/lib/alsa.
  478. (substitute* "Makefile"
  479. (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*")
  480. "true\n")))
  481. %standard-phases)))
  482. (inputs
  483. `(("libsamplerate" ,libsamplerate)
  484. ("ncurses" ,ncurses)
  485. ("alsa-lib" ,alsa-lib)
  486. ("xmlto" ,xmlto)
  487. ("gettext" ,g:gettext)))
  488. (home-page "http://www.alsa-project.org/")
  489. (synopsis "Utilities for the Advanced Linux Sound Architecture (ALSA)")
  490. (description
  491. "The Advanced Linux Sound Architecture (ALSA) provides audio and
  492. MIDI functionality to the Linux-based operating system.")
  493. ;; This is mostly GPLv2+ but a few files such as 'alsactl.c' are
  494. ;; GPLv2-only.
  495. (license gpl2)))
  496. (define-public iptables
  497. (package
  498. (name "iptables")
  499. (version "1.4.16.2")
  500. (source (origin
  501. (method url-fetch)
  502. (uri (string-append
  503. "http://www.netfilter.org/projects/iptables/files/iptables-"
  504. version ".tar.bz2"))
  505. (sha256
  506. (base32
  507. "0vkg5lzkn4l3i1sm6v3x96zzvnv9g7mi0qgj6279ld383mzcws24"))))
  508. (build-system gnu-build-system)
  509. (arguments '(#:tests? #f)) ; no test suite
  510. (home-page "http://www.netfilter.org/projects/iptables/index.html")
  511. (synopsis "Program to configure the Linux IP packet filtering rules")
  512. (description
  513. "iptables is the userspace command line program used to configure the
  514. Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards
  515. system administrators. Since Network Address Translation is also configured
  516. from the packet filter ruleset, iptables is used for this, too. The iptables
  517. package also includes ip6tables. ip6tables is used for configuring the IPv6
  518. packet filter.")
  519. (license gpl2+)))
  520. (define-public iproute
  521. (package
  522. (name "iproute2")
  523. (version "3.8.0")
  524. (source (origin
  525. (method url-fetch)
  526. (uri (string-append
  527. "mirror://kernel.org/linux/utils/net/iproute2/iproute2-"
  528. version ".tar.xz"))
  529. (sha256
  530. (base32
  531. "0kqy30wz2krbg4y7750hjq5218hgy2vj9pm5qzkn1bqskxs4b4ap"))))
  532. (build-system gnu-build-system)
  533. (arguments
  534. `(#:tests? #f ; no test suite
  535. #:make-flags (let ((out (assoc-ref %outputs "out")))
  536. (list "DESTDIR="
  537. (string-append "LIBDIR=" out "/lib")
  538. (string-append "SBINDIR=" out "/sbin")
  539. (string-append "CONFDIR=" out "/etc")
  540. (string-append "DOCDIR=" out "/share/doc/"
  541. ,name "-" ,version)
  542. (string-append "MANDIR=" out "/share/man")))
  543. #:phases (alist-cons-before
  544. 'install 'pre-install
  545. (lambda _
  546. ;; Don't attempt to create /var/lib/arpd.
  547. (substitute* "Makefile"
  548. (("^.*ARPDDIR.*$") "")))
  549. %standard-phases)))
  550. (inputs
  551. `(("iptables" ,iptables)
  552. ("db4" ,bdb)
  553. ("pkg-config" ,pkg-config)
  554. ("flex" ,flex)
  555. ("bison" ,bison)))
  556. (home-page
  557. "http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2")
  558. (synopsis
  559. "A collection of utilities for controlling TCP/IP networking and traffic control in Linux")
  560. (description
  561. "Iproute2 is a collection of utilities for controlling TCP/IP
  562. networking and traffic with the Linux kernel.
  563. Most network configuration manuals still refer to ifconfig and route as the
  564. primary network configuration tools, but ifconfig is known to behave
  565. inadequately in modern network environments. They should be deprecated, but
  566. most distros still include them. Most network configuration systems make use
  567. of ifconfig and thus provide a limited feature set. The /etc/net project aims
  568. to support most modern network technologies, as it doesn't use ifconfig and
  569. allows a system administrator to make use of all iproute2 features, including
  570. traffic control.
  571. iproute2 is usually shipped in a package called iproute or iproute2 and
  572. consists of several tools, of which the most important are ip and tc. ip
  573. controls IPv4 and IPv6 configuration and tc stands for traffic control. Both
  574. tools print detailed usage messages and are accompanied by a set of
  575. manpages.")
  576. (license gpl2+)))
  577. (define-public net-tools
  578. ;; XXX: This package is basically unmaintained, but it provides a few
  579. ;; commands not yet provided by Inetutils, such as 'route', so we have to
  580. ;; live with it.
  581. (package
  582. (name "net-tools")
  583. (version "1.60")
  584. (home-page "http://www.tazenda.demon.co.uk/phil/net-tools/")
  585. (source (origin
  586. (method url-fetch)
  587. (uri (string-append home-page "/" name "-"
  588. version ".tar.bz2"))
  589. (sha256
  590. (base32
  591. "0yvxrzk0mzmspr7sa34hm1anw6sif39gyn85w4c5ywfn8inxvr3s"))))
  592. (build-system gnu-build-system)
  593. (arguments
  594. '(#:phases (alist-replace
  595. 'patch
  596. (lambda* (#:key inputs #:allow-other-keys)
  597. (define (apply-patch file)
  598. (zero? (system* "patch" "-p1" "--batch"
  599. "--input" file)))
  600. (let ((patch.gz (assoc-ref inputs "patch")))
  601. (format #t "applying Debian patch set '~a'...~%"
  602. patch.gz)
  603. (system (string-append "gunzip < " patch.gz " > the-patch"))
  604. (pk 'here)
  605. (and (apply-patch "the-patch")
  606. (for-each apply-patch
  607. (find-files "debian/patches"
  608. "\\.patch")))))
  609. (alist-replace
  610. 'configure
  611. (lambda* (#:key outputs #:allow-other-keys)
  612. (let ((out (assoc-ref outputs "out")))
  613. (mkdir-p (string-append out "/bin"))
  614. (mkdir-p (string-append out "/sbin"))
  615. ;; Pretend we have everything...
  616. (system "yes | make config")
  617. ;; ... except we don't have libdnet, so remove that
  618. ;; definition.
  619. (substitute* '("config.make" "config.h")
  620. (("^.*HAVE_AFDECnet.*$") ""))))
  621. %standard-phases))
  622. ;; Binaries that depend on libnet-tools.a don't declare that
  623. ;; dependency, making it parallel-unsafe.
  624. #:parallel-build? #f
  625. #:tests? #f ; no test suite
  626. #:make-flags (list "CC=gcc"
  627. (string-append "BASEDIR="
  628. (assoc-ref %outputs "out")))))
  629. ;; Use the big Debian patch set (the thing does not even compile out of
  630. ;; the box.)
  631. (inputs `(("patch" ,(origin
  632. (method url-fetch)
  633. (uri
  634. "http://ftp.de.debian.org/debian/pool/main/n/net-tools/net-tools_1.60-24.2.diff.gz")
  635. (sha256
  636. (base32
  637. "0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p"))))))
  638. (native-inputs `(("gettext" ,g:gettext)))
  639. (synopsis "Tools for controlling the network subsystem in Linux")
  640. (description
  641. "This package includes the important tools for controlling the network
  642. subsystem of the Linux kernel. This includes arp, hostname, ifconfig,
  643. netstat, rarp and route. Additionally, this package contains utilities
  644. relating to particular network hardware types (plipconfig, slattach) and
  645. advanced aspects of IP configuration (iptunnel, ipmaddr).")
  646. (license gpl2+)))
  647. (define-public libcap
  648. (package
  649. (name "libcap")
  650. (version "2.22")
  651. (source (origin
  652. (method url-fetch)
  653. ;; Tarballs used to be available from
  654. ;; <https://www.kernel.org/pub/linux/libs/security/linux-privs/>
  655. ;; but they never came back after kernel.org was compromised.
  656. (uri (string-append
  657. "mirror://debian/pool/main/libc/libcap2/libcap2_"
  658. version ".orig.tar.gz"))
  659. (sha256
  660. (base32
  661. "07vjhkznm82p8dm4w6j8mmg7h5c70lp5s9bwwfdmgwpbixfydjp1"))))
  662. (build-system gnu-build-system)
  663. (arguments '(#:phases (alist-delete 'configure %standard-phases)
  664. #:tests? #f ; no 'check' target
  665. #:make-flags (list "lib=lib"
  666. (string-append "prefix="
  667. (assoc-ref %outputs "out"))
  668. "RAISE_SETFCAP=no")))
  669. (native-inputs `(("perl" ,perl)))
  670. (inputs `(("attr" ,attr)))
  671. (home-page "https://sites.google.com/site/fullycapable/")
  672. (synopsis "Library for working with POSIX capabilities")
  673. (description
  674. "libcap2 provides a programming interface to POSIX capabilities on
  675. Linux-based operating systems.")
  676. ;; License is BSD-3 or GPLv2, at the user's choice.
  677. (license gpl2)))
  678. (define-public bridge-utils
  679. (package
  680. (name "bridge-utils")
  681. (version "1.5")
  682. (source (origin
  683. (method url-fetch)
  684. (uri (string-append "mirror://sourceforge/bridge/bridge-utils-"
  685. version ".tar.gz"))
  686. (sha256
  687. (base32
  688. "12367cwqmi0yqphi6j8rkx97q8hw52yq2fx4k0xfclkcizxybya2"))))
  689. (build-system gnu-build-system)
  690. ;; The tarball lacks all the generated files.
  691. (native-inputs `(("autoconf" ,autoconf)
  692. ("automake" ,automake)))
  693. (arguments
  694. '(#:phases (alist-cons-before
  695. 'configure 'bootstrap
  696. (lambda _
  697. (zero? (system* "autoreconf" "-vf")))
  698. %standard-phases)
  699. #:tests? #f)) ; no 'check' target
  700. (home-page
  701. "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge")
  702. (synopsis "Manipulate Ethernet bridges")
  703. (description
  704. "Utilities for Linux's Ethernet bridging facilities. A bridge is a way
  705. to connect two Ethernet segments together in a protocol independent way.
  706. Packets are forwarded based on Ethernet address, rather than IP address (like
  707. a router). Since forwarding is done at Layer 2, all protocols can go
  708. transparently through a bridge.")
  709. (license gpl2+)))