gnu: libjami: Fix build with GCC 14, building with sdbus-cpp v2.1.0.

* gnu/packages/patches/libjami-sdbus-cpp-v2.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/jami.scm (libjami): Apply it.
[inputs]: Replace sdbus-c++-1.4 with sdbus-c++.

Change-Id: Ib123cb84a4ffa241ae3c6bcdff0d97884732c173
This commit is contained in:
Maxim Cournoyer 2025-07-21 16:49:09 +09:00
parent 1e37255969
commit 9b9120dcad
No known key found for this signature in database
GPG key ID: 1260E46482E63562
3 changed files with 148 additions and 2 deletions

View file

@ -1761,6 +1761,7 @@ dist_patch_DATA = \
%D%/packages/patches/libgnomeui-utf8.patch \
%D%/packages/patches/libgrss-CVE-2016-2001.patch \
%D%/packages/patches/libjami-ac-config-files.patch \
%D%/packages/patches/libjami-sdbus-cpp-v2.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/libofa-ftbfs-1.diff \

View file

@ -96,7 +96,8 @@
(base32
"136hiippjfbyp4h3pf68kh3cyw6r2idjgq7vj1h9sdipc87a1a2r"))
(patches (search-patches
"libjami-ac-config-files.patch"))))
"libjami-ac-config-files.patch"
"libjami-sdbus-cpp-v2.patch"))))
(outputs '("out" "bin" "debug")) ;"bin' contains jamid
(build-system gnu-build-system)
(arguments
@ -158,7 +159,7 @@
openssl
pjproject-jami
pulseaudio
sdbus-c++-1.4.0
sdbus-c++
speex
speexdsp
webrtc-audio-processing-0.3

View file

@ -0,0 +1,144 @@
Upstream-status: <https://review.jami.net/c/jami-daemon/+/31504>
diff --git a/bin/dbus/dbuscallmanager.hpp b/bin/dbus/dbuscallmanager.hpp
index b79e0cd6f..918d8bc30 100644
--- a/bin/dbus/dbuscallmanager.hpp
+++ b/bin/dbus/dbuscallmanager.hpp
@@ -23,7 +23,7 @@ class DBusCallManager : public sdbus::AdaptorInterfaces<cx::ring::Ring::CallMana
{
public:
DBusCallManager(sdbus::IConnection& connection)
- : AdaptorInterfaces(connection, "/cx/ring/Ring/CallManager")
+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/CallManager"))
{
registerAdaptor();
registerSignalHandlers();
diff --git a/bin/dbus/dbusconfigurationmanager.hpp b/bin/dbus/dbusconfigurationmanager.hpp
index a6bb8e4e9..895c7690d 100644
--- a/bin/dbus/dbusconfigurationmanager.hpp
+++ b/bin/dbus/dbusconfigurationmanager.hpp
@@ -33,7 +33,7 @@ public:
std::vector<std::map<std::string, std::string>>,
std::map<std::string, int32_t>>;
DBusConfigurationManager(sdbus::IConnection& connection)
- : AdaptorInterfaces(connection, "/cx/ring/Ring/ConfigurationManager")
+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/ConfigurationManager"))
{
registerAdaptor();
registerSignalHandlers();
diff --git a/bin/dbus/dbusinstance.hpp b/bin/dbus/dbusinstance.hpp
index d45c033e1..184fd2c7d 100644
--- a/bin/dbus/dbusinstance.hpp
+++ b/bin/dbus/dbusinstance.hpp
@@ -28,7 +28,7 @@ class DBusInstance : public sdbus::AdaptorInterfaces<cx::ring::Ring::Instance_ad
{
public:
DBusInstance(sdbus::IConnection& connection)
- : AdaptorInterfaces(connection, "/cx/ring/Ring/Instance")
+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/Instance"))
{
registerAdaptor();
}
diff --git a/bin/dbus/dbuspluginmanagerinterface.hpp b/bin/dbus/dbuspluginmanagerinterface.hpp
index c063a9903..132674e9f 100644
--- a/bin/dbus/dbuspluginmanagerinterface.hpp
+++ b/bin/dbus/dbuspluginmanagerinterface.hpp
@@ -23,7 +23,7 @@ class DBusPluginManagerInterface : public sdbus::AdaptorInterfaces<cx::ring::Rin
{
public:
DBusPluginManagerInterface(sdbus::IConnection& connection)
- : AdaptorInterfaces(connection, "/cx/ring/Ring/PluginManagerInterface")
+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/PluginManagerInterface"))
{
registerAdaptor();
registerSignalHandlers();
diff --git a/bin/dbus/dbuspresencemanager.hpp b/bin/dbus/dbuspresencemanager.hpp
index ca8ba7f2a..27b93eee4 100644
--- a/bin/dbus/dbuspresencemanager.hpp
+++ b/bin/dbus/dbuspresencemanager.hpp
@@ -23,7 +23,7 @@ class DBusPresenceManager : public sdbus::AdaptorInterfaces<cx::ring::Ring::Pres
{
public:
DBusPresenceManager(sdbus::IConnection& connection)
- : AdaptorInterfaces(connection, "/cx/ring/Ring/PresenceManager")
+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/PresenceManager"))
{
registerAdaptor();
registerSignalHandlers();
diff --git a/bin/dbus/dbusvideomanager.hpp b/bin/dbus/dbusvideomanager.hpp
index 7fbca2492..96f73e99b 100644
--- a/bin/dbus/dbusvideomanager.hpp
+++ b/bin/dbus/dbusvideomanager.hpp
@@ -23,7 +23,7 @@ class DBusVideoManager : public sdbus::AdaptorInterfaces<cx::ring::Ring::VideoMa
{
public:
DBusVideoManager(sdbus::IConnection& connection)
- : AdaptorInterfaces(connection, "/cx/ring/Ring/VideoManager")
+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/VideoManager"))
{
registerAdaptor();
registerSignalHandlers();
diff --git a/bin/dbus/main.cpp b/bin/dbus/main.cpp
index ee8a349cc..4d7adc95e 100644
--- a/bin/dbus/main.cpp
+++ b/bin/dbus/main.cpp
@@ -180,7 +180,7 @@ main(int argc, char *argv [])
}
try {
- connection = sdbus::createSessionBusConnection("cx.ring.Ring");
+ connection = sdbus::createSessionBusConnection(sdbus::ServiceName("cx.ring.Ring"));
DBusCallManager callManager(*connection);
DBusConfigurationManager configurationManager(*connection);
DBusInstance instanceManager(*connection);
diff --git a/configure.ac b/configure.ac
index 66e52ee62..68de32497 100644
--- a/configure.ac
+++ b/configure.ac
@@ -420,7 +420,7 @@ AC_ARG_WITH([dbus],
[],
[with_dbus=yes])
AS_IF([test "x$with_dbus" = "xyes"],
- [PKG_CHECK_MODULES(SDBUSCPP, [sdbus-c++],,
+ [PKG_CHECK_MODULES(SDBUSCPP, [sdbus-c++ >= 2.0.0],,
AC_MSG_ERROR([sdbus-c++ not found]))
AC_CONFIG_FILES([bin/dbus/Makefile])
diff --git a/contrib/src/sdbus-cpp/SHA512SUMS b/contrib/src/sdbus-cpp/SHA512SUMS
index a48ebec1c..009d0b81b 100644
--- a/contrib/src/sdbus-cpp/SHA512SUMS
+++ b/contrib/src/sdbus-cpp/SHA512SUMS
@@ -1 +1 @@
-dab2c4d9a5ea6d626672a5a6ee6f3490c60c6fdd160769801a4d6b4cf3df4983fad57ff0230132a5d637ec78a55993200ce217fa89461016e101865cc2777d7d sdbus-cpp-1.2.0.tar.gz
+4247d49f0d5231e2768c0c96fa9c266bbcc340292c9c3d748f9c37ff992b82301faea798300f916e9a5c992d77adfe56186866c91a4c7d4157750ff09ba5a047 sdbus-cpp-2.1.0.tar.gz
diff --git a/contrib/src/sdbus-cpp/rules.mak b/contrib/src/sdbus-cpp/rules.mak
index 397d18d3b..d00fa97ca 100644
--- a/contrib/src/sdbus-cpp/rules.mak
+++ b/contrib/src/sdbus-cpp/rules.mak
@@ -1,4 +1,4 @@
-SDBUS_CPP_VERSION := 1.2.0
+SDBUS_CPP_VERSION := 2.1.0
SDBUS_CPP_URL := https://github.com/Kistler-Group/sdbus-cpp/archive/refs/tags/v$(SDBUS_CPP_VERSION).tar.gz
ifdef HAVE_LINUX
@@ -7,17 +7,14 @@ PKGS += sdbus-cpp
endif
endif
-ifeq ($(call need_pkg,"sdbus-c++ >= 1.2.0"),)
+ifeq ($(call need_pkg,"sdbus-c++ >= 2.0.0"),)
PKGS_FOUND += sdbus-cpp
endif
SDBUS_CPP_CMAKECONF := -D CMAKE_BUILD_TYPE=Release \
-D BUILD_SHARED_LIBS=OFF \
- -D BUILD_CODE_GEN=ON \
- -D BUILD_LIBSYSTEMD=OFF \
- -D BUILD_TESTS=OFF \
- -D BUILD_EXAMPLES=OFF \
- -D BUILD_DOC=OFF
+ -D SDBUSCPP_BUILD_CODEGEN=ON \
+ -D SDBUSCPP_BUILD_DOCS=OFF
$(TARBALLS)/sdbus-cpp-$(SDBUS_CPP_VERSION).tar.gz:
$(call download,$(SDBUS_CPP_URL))