From 839bb42f0cc80dbdbcd101fffadd47ead93409d2 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 3 Aug 2020 02:01:19 -0400 Subject: gnu: pjproject: Fix problem in pkg-config file. * gnu/packages/patches/pjproject-correct-the-cflags-field.patch: Add patch. * gnu/packages/patches/pjproject-fix-pkg-config-ldflags.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Register the new patches. * gnu/packages/telephony.scm (pjproject): Use them. * gnu/packages/jami.scm (pjproject-jami): Remove a patch from pjproject-jami that is already applied against pjproject. --- gnu/packages/jami.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 85a06026ed..6dbde4078b 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -171,7 +171,8 @@ "0007-pj_ice_sess" "0008-fix_ioqueue_ipv6_sendto" "0009-add-config-site" - "0010-fix-pkgconfig" + ;; Note: The base pjproject is already patched with + ;; "0010-fix-pkgconfig". "0011-fix-tcp-death-detection" "0012-fix-turn-shutdown-crash")) #t))) -- cgit 1.4.1 From a5b44d999f26828932be910f6b8113608b6e266c Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 1 Aug 2020 02:54:38 -0400 Subject: gnu: pjproject-jami: Reuse more of the base pjproject. Now that the base pjproject is built as a shared library, the cost of adding dependencies shared with Jami is minimal. The pjproject-jami now differs only by its added patches. * gnu/packages/jami.scm (pjproject-jami)[arguments]: Use the substitute-keyword-arguments macro to reuse the base pjproject package arguments, adding only the 'apply-patches phase. --- gnu/packages/jami.scm | 78 ++++++--------------------------------------------- 1 file changed, 8 insertions(+), 70 deletions(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 6dbde4078b..1972109829 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2020 Vincent Legoll ;;; Copyright © 2019, 2020 Jan Wielkiewicz +;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +35,6 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) - #:use-module (gnu packages hurd) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) @@ -108,57 +108,12 @@ `(("sfl-patches" ,(jami-source)) ,@(package-native-inputs pjproject))) (arguments - `(#:tests? #f - ;; See ring-project/daemon/contrib/src/pjproject/rules.mak. - #:configure-flags - (list "--disable-oss" - "--disable-sound" - "--disable-video" - ;; The following flag is Linux specific. - ,@(if (hurd-triplet? (or (%current-system) - (%current-target-system))) - '() - '("--enable-epoll")) - "--enable-ext-sound" - "--disable-speex-aec" - "--disable-g711-codec" - "--disable-l16-codec" - "--disable-gsm-codec" - "--disable-g722-codec" - "--disable-g7221-codec" - "--disable-speex-codec" - "--disable-ilbc-codec" - "--disable-opencore-amr" - "--disable-silk" - "--disable-sdl" - "--disable-ffmpeg" - "--disable-v4l2" - "--disable-openh264" - "--disable-resample" - "--disable-libwebrtc" - "--with-gnutls" - "--with-external-srtp" - ;; We need -fPIC or else we get the following error when linking - ;; against pjproject-jami: - ;; relocation R_X86_64_32S against `.rodata' can not be used when - ;; making a shared object; - ;; -DNDEBUG is needed to prevent assertion from happening and - ;; stopping the daemon. - "CFLAGS=-fPIC -DNDEBUG" - "CXXFLAGS=-fPIC -DNDEBUG") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) - (add-after 'unpack 'apply-patches - (lambda* (#:key inputs #:allow-other-keys) - (let ((jami-apply-dependency-patches ,jami-apply-dependency-patches)) - ;; Comes from - ;; "ring-project/daemon/contrib/src/pjproject/rules.mak". - ;; WARNING: These amount for huge changes in pjproject. - (jami-apply-dependency-patches + (substitute-keyword-arguments (package-arguments pjproject) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-after 'make-source-files-writable 'apply-patches + (lambda* (#:key inputs #:allow-other-keys) + (,jami-apply-dependency-patches #:inputs inputs #:dep-name "pjproject" #:patches @@ -175,24 +130,7 @@ ;; "0010-fix-pkgconfig". "0011-fix-tcp-death-detection" "0012-fix-turn-shutdown-crash")) - #t))) - ;; TODO: We could use substitute-keyword-arguments instead of - ;; repeating the phases from pjproject, but somehow it does - ;; not work. - (add-before 'build 'build-dep - (lambda _ (invoke "make" "dep"))) - (add-before 'patch-source-shebangs 'autoconf - (lambda _ - (invoke "autoconf" "-v" "-f" "-i" "-o" - "aconfigure" "aconfigure.ac"))) - (add-before 'autoconf 'disable-some-tests - ;; Three of the six test programs fail due to missing network - ;; access. - (lambda _ - (substitute* "Makefile" - (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test") - "selftest: pjlib-test pjlib-util-test pjmedia-test")) - #t))))))) + #t)))))))) ;; The following variables are configure flags used by ffmpeg-jami. They're ;; from the ring-project/daemon/contrib/src/ffmpeg/rules.mak file. We try to -- cgit 1.4.1 From 0531ea982bf298f440ae922ff3d2e8be6b1a242d Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 5 Aug 2020 23:23:22 -0400 Subject: gnu: jami: Always remove contrib tarballs from the sources of Jami. 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 | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) (limited to 'gnu/packages/jami.scm') diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 1972109829..c47293b5c1 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -65,7 +65,11 @@ (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_" @@ -73,15 +77,28 @@ ".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 @@ -105,7 +122,7 @@ (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) @@ -352,7 +369,7 @@ (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" @@ -387,7 +404,7 @@ (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) -- cgit 1.4.1