~ruther/guix-local

9c910fb9b6f10281de21ebf921c44b55f2c4f59e — Maxim Cournoyer 1 year, 10 months ago 7b73fdc
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
3 files changed, 113 insertions(+), 21 deletions(-)

M gnu/local.mk
M gnu/packages/linphone.scm
A gnu/packages/patches/liblinphone-jsoncpp.patch
M gnu/local.mk => gnu/local.mk +1 -0
@@ 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 		\

M gnu/packages/linphone.scm => gnu/packages/linphone.scm +30 -21
@@ 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

A gnu/packages/patches/liblinphone-jsoncpp.patch => gnu/packages/patches/liblinphone-jsoncpp.patch +82 -0
@@ 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)