Subject: [PATCH 23/30] gnu: pjproject, pjproject-jami: Remove broken pjproject package. Make pjproject-jami package stand-alone by moving package code from pjproject into it.

From: Jan Wielkiewicz <[email-masked]>
Date: Fri, 17 Apr 2020 02:34:26 +0200

---
 gnu/packages/jami.scm      | 67 +++++++++++++++++++++++++++--
 gnu/packages/telephony.scm | 88 --------------------------------------
 2 files changed, 63 insertions(+), 92 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index f67ef45072..61236ff9a0 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -95,11 +95,66 @@
 
 (define-public pjproject-jami
   (package
-    (inherit pjproject)
     (name "pjproject-jami")
+    (version "2.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pjsip/pjproject.git")
+             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
+       (modules '((guix build utils)))
+       (patches
+	(search-patches "pjproject-fix.patch"))
+       (snippet
+        '(begin
+           (let ((third-party-directories
+                  ;; Things we don't need:
+                  ;; BaseClasses - contains libraries from Windows SDK
+                  ;; we don't need it, at least not now.
+                  (list "BaseClasses" "g7221" "ilbc" "milenage"
+                        "speex" "threademulation" "yuv" "bdsound"
+                        "gsm" "mp3" "resample" "srtp" "webrtc"
+                        ;; Keep only resample, build and README.txt.
+                        "build/baseclasses" "build/g7221" "build/gsm"
+                        "build/ilbc" "build/milenage" "build/resample"
+                        "build/samplerate" "build/speex" "build/srtp"
+                        "build/webrtc" "build/yuv")))
+             ;; Keep only Makefiles related to resample.
+             (for-each (lambda (directory)
+                         (delete-file-recursively
+                          (string-append "third_party/" directory)))
+                       third-party-directories)
+             #t)
+           (let ((third-party-dirs
+                  (list "gsm" "ilbc" "speex" "g7221" "srtp"
+                        "portaudio" "resample")))
+             (for-each
+              (lambda (dirs)
+                (substitute* "third_party/build/os-linux.mak"
+                  (((string-append "DIRS += " dirs)) "")))
+              third-party-dirs))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("portaudio" ,portaudio)))
+    (propagated-inputs
+     ;; These packages are referenced in the Libs field of the pkg-config
+     ;; file that will be installed by pjproject.
+     `(("speex" ,speex)
+       ("libsrtp" ,libsrtp)
+       ("gnutls" ,gnutls)
+       ("resample", resample)
+       ("util-linux" ,util-linux)))
     (native-inputs
-     `(("savoir-faire-linux-patches" ,(jami-source))
-       ,@(package-native-inputs pjproject)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)
+       ("savoir-faire-linux-patches" ,(jami-source))))
     (arguments
      `(#:tests? #f
        ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
@@ -183,7 +238,11 @@
              (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)))))
+    (home-page "https://www.pjsip.org")
+    (synopsis "SIP (protocol) stack used by Jami")
+    (description "Pjsip is a C library implementing the SIP protocol. This version is highly modified for use in GNU Jami.")
+    (license license:gpl2+)))
 
 (define-public ffmpeg-jami
   (package
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 64a5827795..b3d2b8bc70 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -644,94 +644,6 @@ phone to IP phone communication or in a network using a SIP proxy to route your
 calls and messages")
     (license license:gpl2+)))
 
-(define-public pjproject
-  (package
-    (name "pjproject")
-    (version "2.9")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/pjsip/pjproject.git")
-             (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
-       (modules '((guix build utils)))
-       (patches
-	(search-patches "pjproject-fix.patch"))
-       (snippet
-        '(begin
-           (let ((third-party-directories
-                  ;; Things we don't need:
-                  ;; BaseClasses - contains libraries from Windows SDK
-                  ;; we don't need it, at least not now.
-                  (list "BaseClasses" "g7221" "ilbc" "milenage"
-                        "speex" "threademulation" "yuv" "bdsound"
-                        "gsm" "mp3" "resample" "srtp" "webrtc"
-                        ;; Keep only resample, build and README.txt.
-                        "build/baseclasses" "build/g7221" "build/gsm"
-                        "build/ilbc" "build/milenage" "build/resample"
-                        "build/samplerate" "build/speex" "build/srtp"
-                        "build/webrtc" "build/yuv")))
-             ;; Keep only Makefiles related to resample.
-             (for-each (lambda (directory)
-                         (delete-file-recursively
-                          (string-append "third_party/" directory)))
-                       third-party-directories)
-             #t)
-           (let ((third-party-dirs
-                  (list "gsm" "ilbc" "speex" "g7221" "srtp"
-                        "portaudio" "resample")))
-             (for-each
-              (lambda (dirs)
-                (substitute* "third_party/build/os-linux.mak"
-                  (((string-append "DIRS += " dirs)) "")))
-              third-party-dirs))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("portaudio" ,portaudio)))
-    (propagated-inputs
-     ;; These packages are referenced in the Libs field of the pkg-config
-     ;; file that will be installed by pjproject.
-     `(("speex" ,speex)
-       ("libsrtp" ,libsrtp)
-       ("gnutls" ,gnutls)
-       ("resample", resample)
-       ("util-linux" ,util-linux)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("libtool" ,libtool)))
-    (arguments
-     `( ;; FIXME make: No rule to make target
-       ;; 'pjlib-test-unknown-[something]-gnu'.
-       #:tests? #f
-                ;; #:test-target "selftest"
-       #:phases
-       (modify-phases %standard-phases
-         (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)))))
-    (home-page "https://www.pjsip.org")
-    (synopsis "Session Initiation Protocol (SIP) stack")
-    (description "PJProject provides an implementation of the Session
-Initiation Protocol (SIP) and a multimedia framework.")
-    (license license:gpl2+)))
-
 (define-public libtgvoip
   (package
     (name "libtgvoip")
-- 
2.26.1