services: avahi: Add Avahi to the system profile.
[guix.git] / gnu / packages / networking.scm
blob0a7cde0b0d3ad0a328afd609a4aaa336defbbc44
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
4 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2015 Stefan Reichör <stefan@xsteve.at>
6 ;;;
7 ;;; This file is part of GNU Guix.
8 ;;;
9 ;;; GNU Guix is free software; you can redistribute it and/or modify it
10 ;;; under the terms of the GNU General Public License as published by
11 ;;; the Free Software Foundation; either version 3 of the License, or (at
12 ;;; your option) any later version.
13 ;;;
14 ;;; GNU Guix is distributed in the hope that it will be useful, but
15 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ;;; GNU General Public License for more details.
18 ;;;
19 ;;; You should have received a copy of the GNU General Public License
20 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
22 (define-module (gnu packages networking)
23   #:use-module ((guix licenses) #:prefix license:)
24   #:use-module (guix packages)
25   #:use-module (guix download)
26   #:use-module (guix build-system gnu)
27   #:use-module (gnu packages tls)
28   #:use-module (gnu packages ncurses))
30 (define-public miredo
31   (package
32     (name "miredo")
33     (version "1.2.6")
34     (source (origin
35               (method url-fetch)
36               (uri (string-append "http://www.remlab.net/files/miredo/miredo-"
37                                   version ".tar.xz"))
38               (sha256
39                (base32
40                 "0j9ilig570snbmj48230hf7ms8kvcwi2wblycqrmhh85lksd49ps"))))
41     (build-system gnu-build-system)
42     (arguments
43      '(#:phases
44        (modify-phases %standard-phases
45          ;; The checkconf test in src/ requires network access.
46          (add-before
47           'check 'disable-checkconf-test
48           (lambda _
49             (substitute* "src/Makefile"
50               (("^TESTS = .*") "TESTS = \n")))))))
51     (home-page "http://www.remlab.net/miredo/")
52     (synopsis "Teredo IPv6 tunneling software")
53     (description
54      "Miredo is an implementation (client, relay, server) of the Teredo
55 specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts
56 residing in IPv4-only networks, even when they are behind a NAT device.")
57     (license license:gpl2+)))
59 (define-public socat
60   (package
61     (name "socat")
62     (version "1.7.2.4")
63     (source (origin
64               (method url-fetch)
65               (uri (string-append
66                     "http://www.dest-unreach.org/socat/download/socat-"
67                     version ".tar.bz2"))
68               (sha256
69                (base32
70                 "028yjka2zr6j1i8pmfmvzqki8ajczdl1hnry1x31xbbg3j83jxsb"))))
71     (build-system gnu-build-system)
72     (arguments '(#:tests? #f))                    ;no 'check' phase
73     (inputs `(("openssl" ,openssl)))
74     (home-page "http://www.dest-unreach.org/socat/")
75     (synopsis
76      "Open bidirectional communication channels from the command line")
77     (description
78      "socat is a relay for bidirectional data transfer between two independent
79 data channels---files, pipes, devices, sockets, etc.  It can create
80 \"listening\" sockets, named pipes, and pseudo terminals.
82 socat can be used, for instance, as TCP port forwarder, as a shell interface
83 to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial
84 line, to logically connect serial lines on different computers, or to
85 establish a relatively secure environment (su and chroot) for running client
86 or server shell scripts with network connections.")
87     (license license:gpl2)))
89 (define-public zeromq
90   (package
91     (name "zeromq")
92     (version "4.0.5")
93     (source (origin
94               (method url-fetch)
95               (uri (string-append "http://download.zeromq.org/zeromq-"
96                                   version ".tar.gz"))
97               (sha256
98                (base32
99                 "0arl8fy8d03xd5h0mgda1s5bajwg8iyh1kk4hd1420rpcxgkrj9v"))))
100     (build-system gnu-build-system)
101     (home-page "http://zeromq.org")
102     (synopsis "Library for message-based applications")
103     (description
104      "The 0MQ lightweight messaging kernel is a library which extends the
105 standard socket interfaces with features traditionally provided by specialized
106 messaging middle-ware products.  0MQ sockets provide an abstraction of
107 asynchronous message queues, multiple messaging patterns, message
108 filtering (subscriptions), seamless access to multiple transport protocols and
109 more.")
110     (license license:lgpl3+)))
112 (define-public libndp
113   (package
114     (name "libndp")
115     (version "1.5")
116     (source (origin
117               (method url-fetch)
118               (uri (string-append "http://libndp.org/files/"
119                                   name "-" version ".tar.gz"))
120               (sha256
121                (base32
122                 "15f743hjc7yy2sv3hzvfc27s1gny4mh5aww59vn195fff2midwgs"))))
123     (build-system gnu-build-system)
124     (home-page "http://libndp.org/")
125     (synopsis "Library for Neighbor Discovery Protocol")
126     (description
127      "libndp contains a library which provides a wrapper for IPv6 Neighbor
128 Discovery Protocol.  It also provides a tool named ndptool for sending and
129 receiving NDP messages.")
130     (license license:lgpl2.1+)))
132 (define-public ethtool
133   (package
134     (name "ethtool")
135     (version "4.0")
136     (source (origin
137               (method url-fetch)
138               (uri (string-append "mirror://kernel.org/software/network/"
139                                   name "/" name "-" version ".tar.xz"))
140               (sha256
141                (base32
142                 "1zzcwn6pk8qfasalqkxg8vrhacksfa50xsq4xifw7yfjqyn8fj4h"))))
143     (build-system gnu-build-system)
144     (home-page "https://www.kernel.org/pub/software/network/ethtool/")
145     (synopsis "Display or change Ethernet device settings")
146     (description
147      "ethtool can be used to query and change settings such as speed,
148 auto-negotiation and checksum offload on many network devices, especially
149 Ethernet devices.")
150     (license license:gpl2)))
152 (define-public ifstatus
153   (package
154     (name "ifstatus")
155     (version "1.1.0")
156     (source (origin
157               (method url-fetch)
158               (uri (string-append "mirror://sourceforge/ifstatus/ifstatus-v"
159                                   version ".tar.gz"))
160               (sha256
161                (base32
162                 "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c"))
163               (modules '((guix build utils)))
164               (snippet
165                '(substitute* "Main.h"
166                   (("#include <stdio.h>")
167                    "#include <stdio.h>\n#include <stdlib.h>")))))
168     (build-system gnu-build-system)
169     (arguments
170      '(#:tests? #f                                ; no "check" target
171        #:phases
172        (modify-phases %standard-phases
173          (delete 'configure)             ; no configure script
174          (replace 'install
175                   (lambda* (#:key outputs #:allow-other-keys)
176                     (let* ((out (assoc-ref outputs "out"))
177                            (bin (string-append out "/bin")))
178                       (mkdir-p bin)
179                       (copy-file "ifstatus"
180                                  (string-append bin "/ifstatus"))))))))
181     (inputs `(("ncurses" ,ncurses)))
182     (home-page "http://ifstatus.sourceforge.net/graphic/index.html")
183     (synopsis "Text based network interface status monitor")
184     (description
185      "IFStatus is a simple, easy-to-use program for displaying commonly
186 needed/wanted real-time traffic statistics of multiple network
187 interfaces, with a simple and efficient view on the command line.  It is
188 intended as a substitute for the PPPStatus and EthStatus projects.")
189     (license license:gpl2+)))