summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-04-05 22:24:19 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-04-05 22:49:23 -0400
commitfe6ccb855234111cfe2460bb2469bc7b766e534e (patch)
tree68540314c99e6d272c15ee947ecc31a7d87ef5e1
parent6978df6abbb3fc6c755b36821f50d5e03e751ca1 (diff)
downloadguix-fe6ccb855234111cfe2460bb2469bc7b766e534e.tar.gz
gnu: mediastreamer2: Move the tester files and HTML doc to separate outputs.
The tester binary generated gets installed with about 20 MiB of data files,
and the HTML documentation weighs another 500 KiB or so.  Move them to
separate outputs.

* gnu/packages/patches/mediastreamer-srtp2.patch: Rename to...
* gnu/packages/patches/mediastreamer2-srtp2.patch: ...this, to please 'guix
lint'.
* gnu/local.mk (dist_patch_DATA): Adapt.
* gnu/packages/linphone.scm (mediastreamer2)[patches]: Likewise.
[outputs]: Add the "doc" and "tester" outputs.
[phases]: Add a phase to move the HTML doc and tester binary and data to the
'doc' and 'tester' outputs, respectively.
[description]: Remove the unicode characters surrounding the word 'powerful'.
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/linphone.scm42
-rw-r--r--gnu/packages/patches/mediastreamer2-srtp2.patch (renamed from gnu/packages/patches/mediastreamer-srtp2.patch)0
3 files changed, 36 insertions, 8 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index debf1f67c3..4f61783472 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1196,7 +1196,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
   %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
-  %D%/packages/patches/mediastreamer-srtp2.patch		\
+  %D%/packages/patches/mediastreamer2-srtp2.patch		\
   %D%/packages/patches/mesa-skip-disk-cache-test.patch		\
   %D%/packages/patches/mescc-tools-boot.patch			\
   %D%/packages/patches/meson-for-build-rpath.patch		\
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index ab223700d5..50d75a4a95 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;;
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -324,8 +325,8 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
                        "mediastreamer/mediastreamer-" version ".tar.gz"))
        (sha256
         (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k"))
-       (patches
-        (list (search-patch "mediastreamer-srtp2.patch")))))
+       (patches (search-patches "mediastreamer2-srtp2.patch"))))
+    (outputs '("out" "doc" "tester"))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
@@ -335,7 +336,33 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
         "-DENABLE_STRICT=NO"            ; Would otherwise treat warnings as err
         "-DENABLE_BV16=NO"              ; Not available
         "-DCMAKE_C_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\""
-        "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"")))
+        "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'separate-outputs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
+                    (tester (assoc-ref outputs "tester"))
+                    (tester-name (string-append ,name "_tester")))
+               ;; Copy the tester executable.
+               (mkdir-p (string-append tester "/bin"))
+               (rename-file (string-append out "/bin/" tester-name)
+                            (string-append tester "/bin/" tester-name))
+               ;; Copy the tester data files.
+               (copy-recursively (string-append out "/share/" tester-name)
+                                 (string-append tester "/share/" tester-name))
+               (delete-file-recursively (string-append out "/share/"
+                                                       tester-name))
+               ;; Copy the HTML documentation.
+               (copy-recursively (string-append out "/share/doc/"
+                                                ,name "-" ,version "/html")
+                                 (string-append doc "/share/doc/"
+                                                ,name "-" ,version "/html"))
+               (delete-file-recursively (string-append out "/share/doc/"
+                                                       ,name "-" ,version
+                                                       "/html"))
+               #t))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)
@@ -368,10 +395,11 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
        ("xv" ,libxv)
        ("zrtp", bzrtp)))
     (synopsis "Belledonne Communications Streaming Engine")
-    (description "Mediastreamer is a powerful and lightweight streaming
-engine for telephony applications.  This media processing and streaming toolkit
-is responsible for receiving and sending all multimedia streams in Linphone,
-including media capture, encoding and decoding, and rendering.")
+    (description "Mediastreamer2 is a powerful and lightweight
+streaming engine for telephony applications.  This media processing
+and streaming toolkit is responsible for receiving and sending all
+multimedia streams in Linphone, including media capture, encoding and
+decoding, and rendering.")
     (home-page "https://gitlab.linphone.org/BC/public/mediastreamer2")
     (license license:gpl2+)))
 
diff --git a/gnu/packages/patches/mediastreamer-srtp2.patch b/gnu/packages/patches/mediastreamer2-srtp2.patch
index f6d494facb..f6d494facb 100644
--- a/gnu/packages/patches/mediastreamer-srtp2.patch
+++ b/gnu/packages/patches/mediastreamer2-srtp2.patch