summary refs log tree commit diff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm97
1 files changed, 95 insertions, 2 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 0708b5cb81..0bc9fbcb5e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -23,8 +23,10 @@
   #:use-module ((gnu packages compression)
                 #:renamer (symbol-prefix-proc 'guix:))
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages bdb)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (guix packages)
@@ -78,12 +80,18 @@
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
-                  (srfi srfi-1))
+                  (srfi srfi-1)
+                  ,@(if (%current-target-system)
+                        '((guix build gnu-cross-build))
+                        '()))
        #:phases (alist-replace
                  'build ,(build-phase (%current-system))
                  (alist-replace
                   'install ,install-phase
-                  (alist-delete 'configure %standard-phases)))
+                  (alist-delete 'configure
+                                ,(if (%current-target-system)
+                                     '%standard-cross-phases
+                                     '%standard-phases))))
        #:tests? #f))
     (synopsis "GNU Linux-Libre kernel headers")
     (description "Headers of the Linux-Libre kernel.")
@@ -449,3 +457,88 @@ trace of all the system calls made by a another process/program.")
      "The Advanced Linux Sound Architecture (ALSA) provides audio and
 MIDI functionality to the Linux-based operating system.")
     (license lgpl2.1+)))
+
+(define-public iptables
+  (package
+    (name "iptables")
+    (version "1.4.16.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://www.netfilter.org/projects/iptables/files/iptables-"
+                   version ".tar.bz2"))
+             (sha256
+              (base32
+               "0vkg5lzkn4l3i1sm6v3x96zzvnv9g7mi0qgj6279ld383mzcws24"))))
+    (build-system gnu-build-system)
+    (arguments '(#:tests? #f))                    ; no test suite
+    (home-page "http://www.netfilter.org/projects/iptables/index.html")
+    (synopsis "Program to configure the Linux IP packet filtering rules")
+    (description
+     "iptables is the userspace command line program used to configure the
+Linux 2.4.x and later IPv4 packet filtering ruleset.  It is targeted towards
+system administrators.  Since Network Address Translation is also configured
+from the packet filter ruleset, iptables is used for this, too.  The iptables
+package also includes ip6tables.  ip6tables is used for configuring the IPv6
+packet filter.")
+    (license gpl2+)))
+
+(define-public iproute
+  (package
+    (name "iproute2")
+    (version "3.8.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://kernel.org/linux/utils/net/iproute2/iproute2-"
+                   version ".tar.xz"))
+             (sha256
+              (base32
+               "0kqy30wz2krbg4y7750hjq5218hgy2vj9pm5qzkn1bqskxs4b4ap"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                                ; no test suite
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list "DESTDIR="
+                            (string-append "LIBDIR=" out "/lib")
+                            (string-append "SBINDIR=" out "/sbin")
+                            (string-append "CONFDIR=" out "/etc")
+                            (string-append "DOCDIR=" out "/share/doc/"
+                                           ,name "-" ,version)
+                            (string-append "MANDIR=" out "/share/man")))
+       #:phases (alist-cons-before
+                 'install 'pre-install
+                 (lambda _
+                   ;; Don't attempt to create /var/lib/arpd.
+                   (substitute* "Makefile"
+                     (("^.*ARPDDIR.*$") "")))
+                 %standard-phases)))
+    (inputs
+     `(("iptables" ,iptables)
+       ("db4" ,bdb)
+       ("pkg-config" ,pkg-config)
+       ("flex" ,flex)
+       ("bison" ,bison)))
+    (home-page
+     "http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2")
+    (synopsis
+     "A collection of utilities for controlling TCP/IP networking and traffic control in Linux")
+    (description
+     "Iproute2 is a collection of utilities for controlling TCP/IP
+networking and traffic with the Linux kernel.
+
+Most network configuration manuals still refer to ifconfig and route as the
+primary network configuration tools, but ifconfig is known to behave
+inadequately in modern network environments.  They should be deprecated, but
+most distros still include them.  Most network configuration systems make use
+of ifconfig and thus provide a limited feature set.  The /etc/net project aims
+to support most modern network technologies, as it doesn't use ifconfig and
+allows a system administrator to make use of all iproute2 features, including
+traffic control.
+
+iproute2 is usually shipped in a package called iproute or iproute2 and
+consists of several tools, of which the most important are ip and tc.  ip
+controls IPv4 and IPv6 configuration and tc stands for traffic control.  Both
+tools print detailed usage messages and are accompanied by a set of
+manpages.")
+    (license gpl2+)))