From 9c910fb9b6f10281de21ebf921c44b55f2c4f59e Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sat, 8 Jun 2024 23:34:47 -0400 Subject: [PATCH] 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 --- gnu/local.mk | 1 + gnu/packages/linphone.scm | 51 +++++++----- .../patches/liblinphone-jsoncpp.patch | 82 +++++++++++++++++++ 3 files changed, 113 insertions(+), 21 deletions(-) create mode 100644 gnu/packages/patches/liblinphone-jsoncpp.patch diff --git a/gnu/local.mk b/gnu/local.mk index f8cf1495c096277cb444218f49d4c1f2fc102a87..daad880fcb2fd82b24d143c5eaafa9d8d4c7e39b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -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 \ diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 81bc0cfa35f15b4bbae428cca8ae147565cce050..5e110b315bb70122b2de0bb00fbb382213c1951b 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -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 diff --git a/gnu/packages/patches/liblinphone-jsoncpp.patch b/gnu/packages/patches/liblinphone-jsoncpp.patch new file mode 100644 index 0000000000000000000000000000000000000000..d012b078706ea6ed3c745c994eed4a10da9d617a --- /dev/null +++ b/gnu/packages/patches/liblinphone-jsoncpp.patch @@ -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)