1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

gnu: liblinphone: Update to 5.3.57.

* gnu/packages/patches/liblinphone-jsoncpp.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/linphone.scm (liblinphone): Update to 5.3.57.
[source]: Apply patch.
[configure-flags]: Use gexps.  Remove -DENABLE_FLEXIAPI=NO.  Replace
-DENABLE_STATIC=NO with -DBUILD_SHARED_LIBS=ON.
[phases] {separate-outputs}: Adjust for renamed test commands.
[native-inputs]: Add pkg-config.
[inputs]: Move belle-sip, lime, libxml2, mediastreamer2, ortp
and sqlite to...
[propagated-inputs]: ... here.  Add jsoncpp.

Change-Id: Ied23a4d60212f0e45a13ff42701106cdb3d154be
This commit is contained in:
Maxim Cournoyer
2024-06-08 23:34:47 -04:00
committed by Maxim Cournoyer
parent 7b73fdca02
commit 9c910fb9b6
3 changed files with 113 additions and 21 deletions

View File

@@ -1770,6 +1770,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/liblinphone-jsoncpp.patch \
%D%/packages/patches/libphonenumber-reproducible-build.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \

View File

@@ -46,6 +46,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages telephony)
#:use-module (gnu packages tls)
@@ -733,7 +734,7 @@ device.")
(define-public liblinphone
(package
(name "liblinphone")
(version "5.2.50")
(version "5.3.57")
(source
(origin
(method git-fetch)
@@ -742,37 +743,41 @@ device.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1lvbva234rmck57cxgswgqqvnq8r58i0ls4qgpymrxdfj74rinxj"))))
(base32 "1f3hcbdkd8nqvjm5avylz226a8in360yiafcsxpa69wvh1a03i4h"))
(patches (search-patches "liblinphone-jsoncpp.patch"))))
(outputs '("out" "tester"))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ; Tests require networking
#:configure-flags
'(list "-DENABLE_FLEXIAPI=NO" ;requires jsoncpp, but it cannot be found
"-DENABLE_STATIC=NO"
"-DENABLE_DOC=NO" ;requires unpackaged javasphinx
"-DENABLE_LDAP=YES"
"-DENABLE_STRICT=NO")
#~(list "-DBUILD_SHARED_LIBS=ON"
"-DENABLE_DOC=NO" ;requires unpackaged javasphinx
"-DENABLE_LDAP=YES"
"-DENABLE_STRICT=NO")
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'separate-outputs
(lambda* (#:key outputs #:allow-other-keys)
(let ((tester-name (string-append #$name "_tester")))
(let ((tester-name (string-append #$name "-tester")))
(for-each mkdir-p
(list (string-append #$output:tester "/bin")
(string-append #$output:tester "/share")))
(rename-file (string-append #$output "/bin/" tester-name)
(string-append #$output:tester "/bin/" tester-name))
(rename-file (string-append #$output "/bin/groupchat_benchmark")
(string-append #$output:tester "/bin/groupchat_benchmark"))
(rename-file (string-append #$output "/share/" tester-name)
(string-append #$output:tester "/share/" tester-name))))))))
(rename-file
(string-append #$output "/bin/" tester-name)
(string-append #$output:tester "/bin/" tester-name))
(rename-file
(string-append #$output "/bin/liblinphone-groupchat-benchmark")
(string-append #$output:tester "/bin/liblinphone-groupchat-benchmark"))
(rename-file
(string-append #$output "/share/" tester-name)
(string-append #$output:tester "/share/" tester-name))))))))
(native-inputs
(list graphviz
doxygen
gettext-minimal
perl
pkg-config
python-wrapper
python-pystache
python-six
@@ -780,20 +785,24 @@ device.")
(inputs
(list bctoolbox
belcard
belle-sip
belr
bzrtp
lime
libnotify
libxml2
mediastreamer2
openldap-for-linphone
ortp
soci
sqlite
xsd
zlib
zxing-cpp-1.2a))
zxing-cpp))
(propagated-inputs
;; The following libraries are "required" by the LibLinphoneConfig.cmake
;; CMake module.
(list belle-sip
jsoncpp
mediastreamer2
libxml2
lime
ortp
sqlite))
(synopsis "Belledonne Communications Softphone Library")
(description "Liblinphone is a high-level SIP library integrating
all calling and instant messaging features into an unified

View File

@@ -0,0 +1,82 @@
diff --git a/cmake/FindJsonCPP.cmake b/cmake/FindJsonCPP.cmake
index 59e971a58..18260fde8 100644
--- a/cmake/FindJsonCPP.cmake
+++ b/cmake/FindJsonCPP.cmake
@@ -39,10 +39,11 @@
# JsonCPP_FOUND - The jsoncpp library has been found
# JsonCPP_TARGET - The name of the CMake target for the jsoncpp library
+if(TARGET jsoncpp_lib OR TARGET jsoncpp_static OR TARGET PkgConfig::jsoncpp)
-if(TARGET jsoncpp_lib OR TARGET jsoncpp_static)
-
- if(TARGET jsoncpp_lib)
+ if(TARGET PkgConfig::jsoncpp)
+ set(JsonCPP_TARGET PkgConfig::jsoncpp)
+ elseif(TARGET jsoncpp_lib)
set(JsonCPP_TARGET jsoncpp_lib)
else()
set(JsonCPP_TARGET jsoncpp_static)
@@ -57,24 +58,50 @@ if(TARGET jsoncpp_lib OR TARGET jsoncpp_static)
mark_as_advanced(JsonCPP_TARGET)
else()
-
- set(_OPTIONS "CONFIG")
+ find_package(PkgConfig QUIET)
+
+ set(_OPTIONS1 "CONFIG")
+ set(_OPTIONS2 "IMPORTED_TARGET") # for pkg_check_modules fallback
+
if(JsonCPP_FIND_REQUIRED)
- list(APPEND _OPTIONS "REQUIRED")
- endif()
- if(JsonCPP_FIND_QUIETLY)
- list(APPEND _OPTIONS "QUIET")
+ if(PKG_CONFIG_FOUND)
+ list(APPEND _OPTIONS2 "REQUIRED")
+ else()
+ list(APPEND _OPTIONS1 "REQUIRED")
+ endif()
endif()
- if(JsonCPP_FIND_VERSION)
- list(PREPEND _OPTIONS "${jsoncpp_FIND_VERSION}")
+ if(JsonCPP_FIND_QUIETLY)
+ list(APPEND _OPTIONS1 "QUIET")
+ list(APPEND _OPTIONS2 "QUIET")
endif()
- if(JsonCPP_FIND_EXACT)
- list(APPEND _OPTIONS "EXACT")
+ if(PKG_CONFIG_FOUND)
+ if(JsonCPP_FIND_VERSION)
+ if(JsonCPP_FIND_EXACT)
+ list(APPEND _OPTIONS2 "jsoncpp=${JsonCPP_FIND_VERSION}")
+ else()
+ list(APPEND _OPTIONS2 "jsoncpp>=${JsonCPP_FIND_VERSION}")
+ endif()
+ else()
+ list(APPEND _OPTIONS2 "jsoncpp")
+ endif()
+ else()
+ if(JsonCPP_FIND_VERSION)
+ list(PREPEND _OPTIONS1 "${jsoncpp_FIND_VERSION}")
+ endif()
+ if(JsonCPP_FIND_EXACT)
+ list(APPEND _OPTIONS1 "EXACT")
+ endif()
endif()
- find_package(jsoncpp ${_OPTIONS})
+ find_package(jsoncpp ${_OPTIONS1})
+
+ if(NOT JsonCPP_FOUND)
+ pkg_check_modules(jsoncpp ${_OPTIONS2})
+ endif()
- if(TARGET jsoncpp_lib)
+ if(TARGET PkgConfig::jsoncpp)
+ set(JsonCPP_TARGET jsoncpp)
+ elseif(TARGET jsoncpp_lib)
set(JsonCPP_TARGET jsoncpp_lib)
else()
set(JsonCPP_TARGET jsoncpp_static)