gnu: Add cl-inferior-shell.
[jackhill/guix/guix.git] / gnu / packages / upnp.scm
index a085fe9..2743ba4 100644 (file)
@@ -1,8 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
+;;; Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
+;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 
 (define-module (gnu packages upnp)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages mp3)
+  #:use-module (gnu packages photo)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xiph)
   #:use-module (guix build-system gnu)
   #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix licenses)
-  #:use-module (guix packages))
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (ice-9 match))
 
 (define-public miniupnpc
   (package
     (name "miniupnpc")
-    (version "2.1.20190625")
+    (version "2.1.20191224")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://miniupnp.tuxfamily.org/files/"
-                           name "-" version ".tar.gz"))
+                           "miniupnpc-" version ".tar.gz"))
        (sha256
-        (base32 "1yqp0d8x5ldjfma5x2vhpg1aaafdg0470ismccixww3rzpbza8w7"))))
+        (base32 "1kv6dpj93gckvwvgzxl4vdqpwnicb0c8p0xw53m2gh5naiw44ys4"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-2)))
@@ -77,70 +91,28 @@ while running behind a UPnP-enabled router or firewall.  Such applications
 include peer-to-peer applications, active-mode FTP clients, DCC file transfers
 over IRC, instant messaging, network games, and most server software.")
     (license
-     (x11-style "file://LICENSE" "See 'LICENSE' file in the distribution"))))
-
-(define-public monero-miniupnpc
-  ;; This package is the bundled version of miniupnpc used with monero.
-  ;; Monero-project has been maintaining its own version of the package since
-  ;; release 0.12.2.0.  It includes security fixes not included in upstream
-  ;; releases.
-  (let ((revision "0")
-        (commit "6a63f9954959119568fbc4af57d7b491b9428d87"))
-    (package
-      (inherit miniupnpc)
-      (name "miniupnpc-monero")
-      (version (string-append "2.1-monero-0.12.3.0-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/monero-project/miniupnp/")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "0s67zcz978iapjlq30yy9dl8qda9xhrl3jdi5f99cnbglh5gy16a"))
-                (file-name (string-append name "-" version "-checkout"))
-                (modules '((guix build utils)))
-                (snippet
-                 '(begin
-                    ;; Delete miniupnp subprojects except for miniupnpc.
-                    (for-each
-                     delete-file-recursively
-                     '("minissdpd" "miniupnpc-async" "miniupnpc-libevent"
-                       "miniupnpd" ))
-                    #t))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments miniupnpc)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'change-directory
-               (lambda _
-                 (chdir "miniupnpc")
-                 #t))
-             (add-after 'change-directory 'chmod-header-file
-               (lambda _
-                 (chmod "miniupnpc.h" #o644)
-                 #t)))))))))
+     (license:x11-style "file://LICENSE" "See 'LICENSE' file in the distribution"))))
 
 (define-public libupnp
   (package
     (name "libupnp")
-    (version "1.6.25")
+    (version "1.14.5")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20"
-                          version "/" name "-" version ".tar.bz2"))
+      (uri (string-append "https://github.com/pupnp/pupnp/releases/download"
+                          "/release-" version "/libupnp-" version".tar.bz2"))
       (sha256
-       (base32
-        "0hzsd7rvfa87b4hxg9yj4xhdfxx9sp09r9sqdl3mqhvmcyw018y5"))))
+       (base32 "16hlcpffmqd4rja57m6km1dpx3abgv91vvmb8971vfg6gd0glzr2"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (arguments
      ;; The tests require a network device capable of multicasting which is
      ;; not available in the build environment. See
      ;; https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00312.html.
      `(#:tests? #f
-       #:configure-flags '("--enable-ipv6")))
+       #:configure-flags '("--disable-static")))
     (home-page "http://pupnp.sourceforge.net")
     (synopsis "Portable SDK for UPnP Devices")
     (description
@@ -149,4 +121,49 @@ API and code for building control points, devices, and bridges that are
 compliant with Version 1.0 of the Universal Plug and Play Device Architecture
 Specification and support several operating systems like Linux, *BSD, Solaris
 and others.")
-    (license bsd-3)))
+    (license license:bsd-3)))
+
+(define-public readymedia
+  (package
+    (name "readymedia")
+    (version "1.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.code.sf.net/p/minidlna/git")
+             (commit (string-append
+                      "v" (string-replace-substring version "." "_")))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0g04lffj37wdv5bnpl5faxpnmlj6bbk8y7ziaz2wp6h82g6kb5wj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--with-os-name=Linux")      ; uname -s
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             (substitute* "Makefile.am"
+               ((".*LIBAVUTIL_LIBS.*") ""))
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)))
+    (inputs
+     `(("ffmpeg" ,ffmpeg)
+       ("flac" ,flac)
+       ("libexif" ,libexif)
+       ("libid3tag" ,libid3tag)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libvorbis" ,libvorbis)
+       ("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
+    (home-page "https://sourceforge.net/projects/minidlna/")
+    (synopsis "DLNA/UPnP-AV media server")
+    (description "ReadyMedia (formerly known as MiniDLNA) is a simple media
+server, which serves multimedia content to compatible clients on the network.
+It aims to be fully compliant with DLNA and UPnP-AV standards.")
+    (license license:gpl2)))