diff mbox series

[bug#66823,gnome-team,v4,3/6] gnu: Add sofia-sip.

Message ID dc7ee47dc569e6f241f90d735ce76621a7bcc47f.1698785302.git.vivien@planete-kraus.eu
State New
Headers show
Series Add Calls | expand

Commit Message

Vivien Kraus Oct. 31, 2023, 7:34 p.m. UTC
* gnu/packages/telephony.scm (sofia-sip): New variable.

Change-Id: I18dd31fa62f5cfe528d7558915135f17d49b798d
---
 gnu/packages/telephony.scm | 81 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)

Comments

Maxim Cournoyer Nov. 1, 2023, 3:09 a.m. UTC | #1
Hi Vivien:

Vivien Kraus <vivien@planete-kraus.eu> writes:

> * gnu/packages/telephony.scm (sofia-sip): New variable.

[...]

> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'patch-shebangs
> +            (lambda _
> +              (patch-shebang "autogen.sh")))
> +          (add-after 'unpack 'disable-failing-test
> +            (lambda _
> +              ;; The test failures have been reported:
> +              ;; https://github.com/freeswitch/sofia-sip/issues/234:
> +              ;; run_test_nta is disabled because it fails randomly (not for a
> +              ;; timeout-related reason).  The test suite is otherwise very
> +              ;; long, most tests backed by libcheck timeout even with a ×100
> +              ;; multiplier.  The tests are disabled here rather than put to
> +              ;; XFAIL_TESTS because it saves compilation time.

nitpick: I typically use the "Explanatory comment (see: $url)." scheme
taught to be by Ludovic as in this case URL is unambiguous (never
includes a trailing '.' for example).

Thanks for reporting the issues!
diff mbox series

Patch

diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 42158784ca..ff99b79ae4 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -51,6 +51,7 @@  (define-module (gnu packages telephony)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages sqlite)
@@ -1088,3 +1089,83 @@  (define-public sipp
     (license (list license:gpl2+        ; sipp's main license
                    license:bsd-3        ; send_packets.c, send_packets.h
                    license:zlib)))) ; md5.c, md5.h
+
+(define-public sofia-sip
+  (package
+    (name "sofia-sip")
+    (version "1.13.16")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/freeswitch/sofia-sip")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name "sofia-sip" version))
+              (sha256
+               (base32
+                "1hi9np49wcq91d1w93qi6by40qnr348hpzc2wkw3l955zh1n30lr"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      ;; run_addrinfo requires /etc/services for the 'echo' service.
+      #:make-flags #~'("XFAIL_TESTS = run_addrinfo"
+                       ;; libsofia-sip-ua/nta/Makefile.am sets
+                       ;; TESTS_ENVIRONMENT = $(SHELL), which is odd, because
+                       ;; according to the Automake manual, it should be
+                       ;; AM_TESTS_ENVIRONMENT, and it should end with a
+                       ;; semicolon.
+                       "TESTS_ENVIRONMENT = \
+export CHECK_NTA_VERBOSE=10; \
+export CHECK_NUA_VERBOSE=10; ")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-shebangs
+            (lambda _
+              (patch-shebang "autogen.sh")))
+          (add-after 'unpack 'disable-failing-test
+            (lambda _
+              ;; The test failures have been reported:
+              ;; https://github.com/freeswitch/sofia-sip/issues/234:
+              ;; run_test_nta is disabled because it fails randomly (not for a
+              ;; timeout-related reason).  The test suite is otherwise very
+              ;; long, most tests backed by libcheck timeout even with a ×100
+              ;; multiplier.  The tests are disabled here rather than put to
+              ;; XFAIL_TESTS because it saves compilation time.
+              (substitute* "libsofia-sip-ua/nta/Makefile.am"
+                (("TESTS =")
+                 "TESTS = run_test_nta_api\n# Disabled: "))
+              (substitute* "libsofia-sip-ua/nua/Makefile.am"
+                (("TESTS \\+=")
+                 "TESTS +=\n# Disabled: "))
+              ;; The glib tests both wait forever without a timeout.
+              (substitute* "libsofia-sip-ua-glib/su-glib/Makefile.am"
+                (("TESTS =")
+                 "TESTS =\n# Disabled: "))
+              ;; Another timeout failing test:
+              (substitute* "tests/Makefile.am"
+                (("TESTS = test_nua")
+                 "TESTS ="))
+              ;; This test fails for unknown reason:
+              (substitute* "tests/Makefile.am"
+                (("TESTS \\+= check_dlopen_sofia check_sofia")
+                 "TESTS += check_dlopen_sofia")))))))
+    (inputs
+     (list glib
+           openssl
+           zlib))
+    (native-inputs
+     (list autoconf
+           autoconf-archive
+           automake
+           check
+           libtool
+           pkg-config))
+    (home-page "https://sofia-sip.sourceforge.net/")
+    (synopsis "SIP user-agent library")
+    (description "Sofia-SIP is a @acronym{SIP, Session Initiation Protocol}
+User-Agent library, compliant with the
+@url{https://datatracker.ietf.org/doc/html/rfc3261, IETF RFC3261}
+specification.  It can be used as a building block for @acronym{SIP} client
+software foruses such as @acronym{VoIP, Voice over @acronym{IP, Internet
+Protocol}}, @acronym{IM, Instant Messaging}, and many other real-time and
+person-to-person communication services.")
+    (license license:lgpl2.1)))