summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-01-05 13:46:41 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-01-09 22:10:12 -0500
commit202b16e31abc2f3d283e4d04268a9df004724387 (patch)
treece870357851236653d54b4718aab6d90d92e71aa
parent88f294cc1442ead331f964415bcf9628fcc27968 (diff)
downloadguix-202b16e31abc2f3d283e4d04268a9df004724387.tar.gz
gnu: pjproject-jami: Update and relocate.
* gnu/packages/jami.scm (pjproject-jami): Move to...
* gnu/packages/telephony.scm (pjproject-jami): ... here.  Update to latest
commit.
[arguments]: Use same configure flags as done in Jami/DhtNet projects.

Change-Id: I638364ebc94f17762ee072311b5fe439b7c6f837
-rw-r--r--gnu/packages/jami.scm36
-rw-r--r--gnu/packages/telephony.scm71
2 files changed, 70 insertions, 37 deletions
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index db120f223e..ed578bccc0 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -106,42 +106,6 @@
                             (string-append patches-directory "/" f ".patch")))
                   patches))))
 
-(define-public pjproject-jami
-  (let ((commit "e4b83585a0bdf1523e808a4fc1946ec82ac733d0")
-        (revision "3"))
-    (package
-      (inherit pjproject)
-      (name "pjproject-jami")
-      (version (git-version "2.12" revision commit))
-      (source (origin
-                (inherit (package-source pjproject))
-                ;; The Jami development team regularly issues patches to
-                ;; pjproject to extend the its functionality and fix bugs;
-                ;; they are submitted for inclusion upstream but larger
-                ;; patches take time to be reviewed and merged, hence this
-                ;; forked repository.
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/savoirfairelinux/pjproject")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0gky5idyyqxhqk959lzys5l7x1i925db773lfdpvxxmkmfizdq21"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments pjproject)
-         ((#:phases phases '%standard-phases)
-          #~(modify-phases #$phases
-              (add-after 'unpack 'apply-patches
-                (lambda _
-                  (#$jami-apply-custom-patches
-                   #:dep-name "pjproject"
-                   #:patches
-                   ;; This adds a config_site.h configuration file that sets
-                   ;; constants such as PJ_ICE_MAX_CAND that cannot be
-                   ;; configured at build time.
-                   '("0009-add-config-site")))))))))))
-
 ;; The following variables are configure flags used by ffmpeg-jami.  They're
 ;; from the jami/daemon/contrib/src/ffmpeg/rules.mak file.  We try to keep it
 ;; as close to the official Jami package as possible, to provide all the
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 3092c39b24..41e83384ec 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@@ -855,6 +855,75 @@ your calls and messages.")
 Initiation Protocol (SIP) and a multimedia framework.")
     (license license:gpl2+)))
 
+(define-public pjproject-jami
+  (let ((commit "d044ad6c5b4221648c555da16196804e4721299c")
+        (revision "0"))
+    (package
+      (inherit pjproject)
+      (name "pjproject-jami")
+      ;; The version is taken from
+      ;; <https://raw.githubusercontent.com/savoirfairelinux/pjproject/master/version.mak>.
+      (version (git-version "2.13.1" revision commit))
+      (source (origin
+                (inherit (package-source pjproject))
+                ;; The Jami development team regularly issues patches to
+                ;; pjproject to extend the its functionality and fix bugs;
+                ;; they are submitted for inclusion upstream but larger
+                ;; patches take time to be reviewed and merged, hence this
+                ;; forked repository.
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/savoirfairelinux/pjproject")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0z4d7wdpa2mlaygb283k0j8n3l6q68gn0xqd62b5ngqvkhlaf775"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments pjproject)
+         ((#:configure-flags _ ''())
+          ;; This package is tailored for DhtNet; see how it is built for its
+          ;; CI in
+          ;; <https://git.jami.net/savoirfairelinux/dhtnet/-/raw/master/Dockerfile>.
+          #~(list
+             ;; Some flags preserved flags from parent package.
+             "--with-external-srtp"
+             #$@(if (string-contains (or (%current-system)
+                                         (%current-target-system)) "linux")
+                    #~("--enable-epoll")
+                    #~())
+             "--with-gnutls"            ;disable OpenSSL checks
+             ;; -DNDEBUG is set to prevent pjproject from raising
+             ;; assertions that aren't critical, crashing
+             ;; applications as the result.
+             "CFLAGS=-DNDEBUG"
+             ;; Specify a runpath reference to itself, which is missing and
+             ;; causes the validate-runpath phase to fail.
+             (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
+             "--enable-shared"
+             "--disable-libyuv"         ;TODO: add missing package
+
+             ;; These flags are specific to DhtNet.
+             "--disable-sound"
+             "--enable-video"
+             "--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")))))))
+
 (define-public libtgvoip
   (package
     (name "libtgvoip")