Update `HACKING'.
[jackhill/guix/guix.git] / distro / packages / gsasl.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (distro packages gsasl)
20 #:use-module (distro)
21 #:use-module ((distro packages compression)
22 #:renamer (symbol-prefix-proc 'guix:))
23 #:use-module (distro packages gnutls)
24 #:use-module (distro packages libidn)
25 #:use-module (distro packages nettle)
26 #:use-module (distro packages shishi)
27 #:use-module (guix licenses)
28 #:use-module (guix packages)
29 #:use-module (guix download)
30 #:use-module (guix build-system gnu))
31
32 (define-public libntlm
33 (package
34 (name "libntlm")
35 (version "1.3")
36 (source (origin
37 (method url-fetch)
38 (uri (string-append "http://www.nongnu.org/libntlm/releases/libntlm-" version
39 ".tar.gz"))
40 (sha256 (base32
41 "101pr110ardcj2di940g6vaqifsaxc44h6hjn81l63dvmkj5a6ga"))))
42 (build-system gnu-build-system)
43 (synopsis "Libntlm, a library that implements NTLM authentication")
44 (description
45 "Libntlm is a library that implements NTLM authentication")
46 (license lgpl2.1+)
47 (home-page "http://www.nongnu.org/libntlm/")))
48
49 (define-public gss
50 (package
51 (name "gss")
52 (version "1.0.2")
53 (source (origin
54 (method url-fetch)
55 (uri (string-append "mirror://gnu/gss/gss-" version
56 ".tar.gz"))
57 (sha256 (base32
58 "1qa8lbkzi6ilfggx7mchfzjnchvhwi68rck3jf9j4425ncz7zsd9"))))
59 (build-system gnu-build-system)
60 (inputs `(("nettle" ,nettle)
61 ("shishi" ,shishi)
62 ("zlib" ,guix:zlib)
63 ))
64 (synopsis "GNU GSS (Generic Security Service), a free implementatio of RFC 2743/2744")
65 (description
66 "GNU GSS is an implementation of the Generic Security Service Application
67 Program Interface (GSS-API). GSS-API is used by network servers to provide
68 security services, e.g., to authenticate SMTP/IMAP clients against
69 SMTP/IMAP servers. GSS consists of a library and a manual.")
70 (license gpl3+)
71 (home-page "http://www.gnu.org/software/gss/")))
72
73 (define-public gsasl
74 (package
75 (name "gsasl")
76 (version "1.8.0")
77 (source (origin
78 (method url-fetch)
79 (uri (string-append "mirror://gnu/gsasl/gsasl-" version
80 ".tar.gz"))
81 (sha256 (base32
82 "1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii"))))
83 (build-system gnu-build-system)
84 (inputs `(("libidn" ,libidn)
85 ("libntlm" ,libntlm)
86 ("gnutls" ,gnutls)
87 ("gss" ,gss)
88 ("zlib" ,guix:zlib)
89 ))
90 (synopsis "GNU SASL, an implementation of the Simple Authentication and Security Layer framework")
91 (description
92 "GNU SASL is an implementation of the Simple Authentication and Security
93 Layer framework and a few common SASL mechanisms. SASL is used by network
94 servers (e.g., IMAP, SMTP) to request authentication from clients, and in
95 clients to authenticate against servers.
96
97 GNU SASL consists of a library (libgsasl), a command line utility (gsasl)
98 to access the library from the shell, and a manual. The library includes
99 support for the framework (with authentication functions and application
100 data privacy and integrity functions) and at least partial support for the
101 CRAM-MD5, EXTERNAL, GSSAPI, ANONYMOUS, PLAIN, SECURID, DIGEST-MD5,
102 SCRAM-SHA-1, SCRAM-SHA-1-PLUS, LOGIN, and NTLM mechanisms.
103
104 The library is portable because it does not do network communication by
105 itself, but rather leaves it up to the calling application. The library is
106 flexible with regards to the authorization infrastructure used, as it
107 utilises callbacks into the application to decide whether an user is
108 authorised or not.
109
110 The gsasl package distribution includes the library part as well,
111 so there is no need to install two packages.")
112 (license gpl3+)
113 (home-page "http://www.gnu.org/software/gsasl/")))