Merge branch 'staging' into core-updates
[jackhill/guix/guix.git] / gnu / packages / avahi.scm
index 14073b3..8a01272 100644 (file)
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,8 +24,9 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
-  #:use-module (gnu packages gdbm)
+  #:use-module (gnu packages dbm)
   #:use-module (gnu packages libdaemon)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages xml))
 (define-public avahi
   (package
     (name "avahi")
-    (version "0.6.31")
-    (home-page "http://avahi.org")
+    (version "0.7")
+    (home-page "https://avahi.org")
     (source (origin
              (method url-fetch)
              (uri (string-append home-page "/download/avahi-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3"))))
+               "0128n7jlshw4bpx0vg8lwj8qwdisjxi7mvniwfafgnkzzrfrpaap"))
+             (patches (search-patches "avahi-localstatedir.patch"
+                                      "avahi-CVE-2018-1000845.patch"))))
+    ;; Hide a duplicate of the CVE fixed above.
+    (properties `((lint-hidden-cve . ("CVE-2017-6519"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--with-distro=none"
                            "--disable-xmltoman"
                            "--enable-tests"
                            "--disable-qt3" "--disable-qt4"
-                           "--disable-gtk" "--disable-gtk3")
-       #:patches (list (assoc-ref %build-inputs "patch/localstatedir"))))
+                           "--disable-gtk" "--disable-gtk3"
+                           "--enable-compat-libdns_sd")))
     (inputs
      `(("expat" ,expat)
        ("glib" ,glib)
        ("dbus" ,dbus)
-       ("libdaemon" ,libdaemon)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
        ("gdbm" ,gdbm)
-
-       ("patch/localstatedir"
-        ,(search-patch "avahi-localstatedir.patch"))))
-    (synopsis "Avahi, an mDNS/DNS-SD implementation")
+       ("libcap" ,libcap)            ;to enable chroot support in avahi-daemon
+       ("libdaemon" ,libdaemon)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Implementation of mDNS/DNS-SD protocols")
     (description
      "Avahi is a system which facilitates service discovery on a local
 network.  It is an implementation of the mDNS (for \"Multicast DNS\") and
 DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
     (license lgpl2.1+)))
+
+(define-public nss-mdns
+  (package
+    (name "nss-mdns")
+    (version "0.14.1")
+    (home-page "https://github.com/lathiat/nss-mdns")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append home-page "/releases/download/v" version "/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "134wdr0n9cm5ab4g6dwq76lvzqns9dcylr470i2xxjimnw0l22d2"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; The Avahi daemon socket is expected by 'configure.ac' to be at
+     ;; "$(localstatedir)/run/avahi-daemon/socket", but nowadays it lives in
+     ;; /run/avahi-daemon/socket.  Remove the "$(localstatedir)" bit.
+     '(#:configure-flags '("AVAHI_SOCKET=/run/avahi-daemon/socket")))
+    (synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in")
+    (description
+     "Nss-mdns is a plug-in for the GNU C Library's Name Service Switch
+(@dfn{NSS}) that resolves host names via multicast DNS (@dfn{mDNS}).  It is
+most often used in home and other small networks without a local name server,
+to resolve host names in the @samp{.local} top-level domain.")
+    (license lgpl2.1+)))