gnu: jami: Always remove contrib tarballs from the sources of Jami.
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>
Thu, 6 Aug 2020 03:23:22 +0000 (23:23 -0400)
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>
Thu, 6 Aug 2020 04:01:50 +0000 (00:01 -0400)
The origin used as the "sfl-patches" input contained bundled library tarballs,
and weighed 217 MiB.  After this change, it weighs 3.3 MiB.

* gnu/packages/jami.scm (jami-source): Rename #:without-daemon to
\#:keep-contrib-patches.  Delete the daemon/contrib/tarballs sub-directory even
when keeping the patches.  Delete extraneous code.
(%sfl-patches, %jami-sources): New variables.
(pjproject-jami, ffmpeg-jami, libring): Adjust to use the above variables.

gnu/packages/jami.scm

index 1972109..c47293b 100644 (file)
 
 (define %jami-version "20200710.1.6bd18d2")
 
-(define* (jami-source #:key without-daemon)
+(define* (jami-source #:key keep-contrib-patches?)
+  "Return an origin object of the tarball release sources archive of Jami.
+When KEEP-CONTRIB-PATCHES? is #t, do not completely remove the contrib
+subdirectory, which contains patches to be applied to some of the dependencies
+of Jami."
   (origin
     (method url-fetch)
     (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
                         ".tar.gz"))
     (modules '((guix build utils)))
     (snippet
-     (if without-daemon
-         '(begin
+     `(begin
+        ;; Delete over 200 MiB of bundled tarballs.  The contrib directory
+        ;; contains the custom patches for pjproject and other libraries used
+        ;; by Savoir-faire Linux.
+        (if ,keep-contrib-patches?
+            (delete-file-recursively "daemon/contrib/tarballs")
             (delete-file-recursively "daemon/contrib"))
-         #f))
+        ;; Remove code from unused Jami clients.
+        (for-each delete-file-recursively '("client-android"
+                                            "client-macosx"
+                                            "client-uwp"
+                                            "client-windows"))
+        #t))
     (sha256
      (base32
       "0lg61jv39x7kc9lq30by246xb6gcgp1rzj49ak7ff8nqpfzyfvva"))))
 
-;; Savoir-Faire Linux modifies many libraries to add features
+(define %sfl-patches (jami-source #:keep-contrib-patches? #t))
+
+(define %jami-sources (jami-source))
+
+;; Savoir-faire Linux modifies many libraries to add features
 ;; to Jami. This procedure makes applying patches to a given
 ;; package easy.
 (define jami-apply-dependency-patches
     (inherit pjproject)
     (name "pjproject-jami")
     (native-inputs
-     `(("sfl-patches" ,(jami-source))
+     `(("sfl-patches" ,%sfl-patches)
        ,@(package-native-inputs pjproject)))
     (arguments
      (substitute-keyword-arguments (package-arguments pjproject)
     (inherit ffmpeg)
     (name "ffmpeg-jami")
     (native-inputs
-     `(("sfl-patches" ,(jami-source))
+     `(("sfl-patches" ,%sfl-patches)
        ("libiconv" ,libiconv)
        ,@(package-native-inputs ffmpeg)))
     (supported-systems '("x86_64-linux" "i686-linux"
   (package
     (name "libring")
     (version %jami-version)
-    (source (jami-source #:without-daemon #t))
+    (source %jami-sources)
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)