aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2023-09-05 08:30:03 +0000
committerJan Beich <jbeich@FreeBSD.org>2023-09-23 01:14:55 +0000
commit27e43ce40d2d77a623219eff26f02f5384ebe1eb (patch)
tree94d23b314e4f370fb6b69de56ab349530c5e3b61
parent1eaa07968ecc306e6f705c7213ac7e67a3b7e86a (diff)
downloadports-27e43ce40d2d77a623219eff26f02f5384ebe1eb.tar.gz
ports-27e43ce40d2d77a623219eff26f02f5384ebe1eb.zip
devel/sdbus-cpp: improve basu support
- Enable LIBSYSTEMD_VERSION>=240 code - Avoid breaking libsystemd support (cherry picked from commit 24ffa701a8b0a7896202c33e6419af161b823434)
-rw-r--r--devel/sdbus-cpp/Makefile1
-rw-r--r--devel/sdbus-cpp/files/patch-basu234
2 files changed, 150 insertions, 85 deletions
diff --git a/devel/sdbus-cpp/Makefile b/devel/sdbus-cpp/Makefile
index 84e2c4ba2054..b80a4ce59a77 100644
--- a/devel/sdbus-cpp/Makefile
+++ b/devel/sdbus-cpp/Makefile
@@ -1,6 +1,7 @@
PORTNAME= sdbus-cpp
DISTVERSIONPREFIX= v
DISTVERSION= 1.3.0
+PORTREVISION= 2
CATEGORIES= devel
MAINTAINER= jbeich@FreeBSD.org
diff --git a/devel/sdbus-cpp/files/patch-basu b/devel/sdbus-cpp/files/patch-basu
index 6688ad309939..79391ccc797b 100644
--- a/devel/sdbus-cpp/files/patch-basu
+++ b/devel/sdbus-cpp/files/patch-basu
@@ -1,224 +1,288 @@
libsystemd is Linux-only, so replace with basu
---- CMakeLists.txt.orig 2021-12-22 12:17:31 UTC
+--- CMakeLists.txt.orig 2023-08-20 09:45:44 UTC
+++ CMakeLists.txt
-@@ -16,7 +16,7 @@ option(BUILD_LIBSYSTEMD "Build libsystemd static libra
-
- if(NOT BUILD_LIBSYSTEMD)
- find_package(PkgConfig REQUIRED)
-- pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL libsystemd>=236)
-+ pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL basu)
- if(NOT TARGET PkgConfig::Systemd)
- message(FATAL_ERROR "libsystemd of version at least 236 is required, but was not found "
- "(if you have systemd in your OS, you may want to install package containing pkgconfig "
-@@ -25,8 +25,7 @@ if(NOT BUILD_LIBSYSTEMD)
- "and incorporate libsystemd as embedded library within sdbus-c++)")
+@@ -26,6 +26,11 @@ if(NOT BUILD_LIBSYSTEMD)
+ set(LIBSYSTEMD "libelogind")
+ string(REPLACE "." ";" VERSION_LIST ${Systemd_VERSION})
+ list(GET VERSION_LIST 0 Systemd_VERSION)
++ else()
++ pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL basu)
++ set(LIBSYSTEMD "basu")
++ # https://git.sr.ht/~emersion/basu/commit/d4d185d29a26
++ set(Systemd_VERSION "240")
+ endif()
endif()
- add_library(Systemd::Libsystemd ALIAS PkgConfig::Systemd)
-- string(REGEX MATCHALL "([0-9]+)" SYSTEMD_VERSION_LIST "${Systemd_VERSION}")
-- list(GET SYSTEMD_VERSION_LIST 0 LIBSYSTEMD_VERSION)
-+ set(LIBSYSTEMD_VERSION "239")
- message(STATUS "Building with libsystemd v${LIBSYSTEMD_VERSION}")
- else()
- # Build static libsystemd library as an external project
---- pkgconfig/sdbus-c++.pc.in.orig 2021-10-25 07:02:37 UTC
-+++ pkgconfig/sdbus-c++.pc.in
-@@ -5,7 +5,7 @@ Description: C++ library on top of sd-bus, a systemd D
-
- Name: @PROJECT_NAME@
- Description: C++ library on top of sd-bus, a systemd D-Bus library
--Requires: libsystemd
-+Requires: basu
- Version: @SDBUSCPP_VERSION@
- Libs: -L${libdir} -l@PROJECT_NAME@
- Cflags: -I${includedir}
---- src/Connection.cpp.orig 2021-10-25 07:02:37 UTC
+ if(NOT TARGET PkgConfig::Systemd)
+--- src/Connection.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/Connection.cpp
-@@ -30,7 +30,7 @@
+@@ -31,7 +31,13 @@
#include <sdbus-c++/Message.h>
#include <sdbus-c++/Error.h>
#include "ScopeGuard.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <unistd.h>
#include <poll.h>
#include <sys/eventfd.h>
---- src/Connection.h.orig 2021-10-25 07:02:37 UTC
+--- src/Connection.h.orig 2023-08-20 09:45:44 UTC
+++ src/Connection.h
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,13 @@
#include "IConnection.h"
#include "ScopeGuard.h"
#include "ISdBus.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <memory>
#include <thread>
#include <string>
---- src/Error.cpp.orig 2021-10-25 07:02:37 UTC
+--- src/Error.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/Error.cpp
-@@ -25,7 +25,7 @@
+@@ -25,7 +25,13 @@
*/
#include <sdbus-c++/Error.h>
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include "ScopeGuard.h"
namespace sdbus
---- src/Flags.cpp.orig 2021-10-25 07:02:37 UTC
+--- src/Flags.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/Flags.cpp
-@@ -25,7 +25,7 @@
+@@ -25,7 +25,13 @@
*/
#include <sdbus-c++/Flags.h>
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
namespace sdbus
{
---- src/IConnection.h.orig 2022-08-09 07:50:33 UTC
+--- src/IConnection.h.orig 2023-08-20 09:45:44 UTC
+++ src/IConnection.h
-@@ -28,7 +28,7 @@
+@@ -28,7 +28,13 @@
#define SDBUS_CXX_INTERNAL_ICONNECTION_H_
#include <sdbus-c++/IConnection.h>
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <string>
#include <memory>
#include <functional>
---- src/ISdBus.h.orig 2021-10-25 07:02:37 UTC
+--- src/ISdBus.h.orig 2023-08-20 09:45:44 UTC
+++ src/ISdBus.h
-@@ -28,7 +28,7 @@
+@@ -28,7 +28,13 @@
#ifndef SDBUS_CXX_ISDBUS_H
#define SDBUS_CXX_ISDBUS_H
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
namespace sdbus::internal {
---- src/Message.cpp.orig 2021-10-25 07:02:37 UTC
+--- src/Message.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/Message.cpp
-@@ -31,7 +31,7 @@
+@@ -31,7 +31,13 @@
#include "ISdBus.h"
#include "IConnection.h"
#include "ScopeGuard.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <cassert>
namespace sdbus {
---- src/Object.cpp.orig 2021-10-25 07:02:37 UTC
+--- src/Object.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/Object.cpp
-@@ -34,7 +34,7 @@
- #include "ScopeGuard.h"
+@@ -35,7 +35,13 @@
#include "IConnection.h"
+ #include "Utils.h"
#include "VTableUtils.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <utility>
#include <cassert>
---- src/Object.h.orig 2021-10-25 07:02:37 UTC
+--- src/Object.h.orig 2023-08-20 09:45:44 UTC
+++ src/Object.h
-@@ -29,7 +29,7 @@
+@@ -29,7 +29,13 @@
#include <sdbus-c++/IObject.h>
#include "IConnection.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <string>
#include <map>
#include <vector>
---- src/Proxy.cpp.orig 2021-10-25 07:02:37 UTC
+--- src/Proxy.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/Proxy.cpp
-@@ -31,7 +31,7 @@
+@@ -32,7 +32,13 @@
#include "sdbus-c++/IConnection.h"
#include "sdbus-c++/Error.h"
#include "ScopeGuard.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <cassert>
#include <chrono>
#include <utility>
---- src/Proxy.h.orig 2021-10-25 07:02:37 UTC
+--- src/Proxy.h.orig 2023-08-20 09:45:44 UTC
+++ src/Proxy.h
-@@ -29,7 +29,7 @@
+@@ -29,7 +29,13 @@
#include <sdbus-c++/IProxy.h>
#include "IConnection.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <string>
#include <memory>
#include <map>
---- src/SdBus.cpp.orig 2021-10-25 07:02:37 UTC
+--- src/SdBus.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/SdBus.cpp
-@@ -178,7 +178,8 @@ int SdBus::sd_bus_open_system(sd_bus **ret)
+@@ -224,7 +224,12 @@ int SdBus::sd_bus_open_system_remote(sd_bus **ret, con
int SdBus::sd_bus_open_system_remote(sd_bus **ret, const char *host)
{
-- return ::sd_bus_open_system_remote(ret, host);
++#if __has_include(<systemd/sd-bus.h>) || __has_include(<elogind/sd-bus.h>)
+ return ::sd_bus_open_system_remote(ret, host);
++#else
+ // Removed in https://git.sr.ht/~emersion/basu/commit/01d33b244eb6
+ return -EOPNOTSUPP;
++#endif
}
int SdBus::sd_bus_request_name(sd_bus *bus, const char *name, uint64_t flags)
---- src/Types.cpp.orig 2021-10-25 07:02:37 UTC
+--- src/Types.cpp.orig 2023-08-20 09:45:44 UTC
+++ src/Types.cpp
-@@ -27,7 +27,7 @@
+@@ -27,7 +27,13 @@
#include <sdbus-c++/Types.h>
#include <sdbus-c++/Error.h>
#include "MessageUtils.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <cassert>
namespace sdbus {
---- src/Utils.h.orig 2022-08-09 07:50:33 UTC
+--- src/Utils.h.orig 2023-08-20 09:45:44 UTC
+++ src/Utils.h
-@@ -28,7 +28,7 @@
+@@ -28,7 +28,13 @@
#define SDBUS_CXX_INTERNAL_UTILS_H_
#include <sdbus-c++/Error.h>
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#if LIBSYSTEMD_VERSION>=246
#define SDBUS_CHECK_OBJECT_PATH(_PATH) \
---- src/VTableUtils.c.orig 2021-10-25 07:02:37 UTC
+--- src/VTableUtils.c.orig 2023-08-20 09:45:44 UTC
+++ src/VTableUtils.c
-@@ -25,7 +25,7 @@
+@@ -25,7 +25,13 @@
*/
#include "VTableUtils.h"
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
sd_bus_vtable createVTableStartItem(uint64_t flags)
{
---- src/VTableUtils.h.orig 2021-10-25 07:02:37 UTC
+--- src/VTableUtils.h.orig 2023-08-20 09:45:44 UTC
+++ src/VTableUtils.h
-@@ -27,7 +27,7 @@
+@@ -27,7 +27,13 @@
#ifndef SDBUS_CXX_INTERNAL_VTABLEUTILS_H_
#define SDBUS_CXX_INTERNAL_VTABLEUTILS_H_
--#include <systemd/sd-bus.h>
++#if __has_include(<systemd/sd-bus.h>)
+ #include <systemd/sd-bus.h>
++#elif __has_include(<elogind/sd-bus.h>)
++#include <elogind/sd-bus.h>
++#else
+#include <basu/sd-bus.h>
++#endif
#include <stdbool.h>
#ifdef __cplusplus
---- tests/integrationtests/DBusStandardInterfacesTests.cpp.orig 2021-10-25 07:02:37 UTC
+--- tests/integrationtests/DBusStandardInterfacesTests.cpp.orig 2023-08-20 09:45:44 UTC
+++ tests/integrationtests/DBusStandardInterfacesTests.cpp
-@@ -65,8 +65,8 @@ TEST_F(SdbusTestObject, AnswersMachineUuidViaPeerInter
+@@ -65,8 +65,14 @@ TEST_F(SdbusTestObject, AnswersMachineUuidViaPeerInter
// a non-systemd Linux), org.freedesktop.DBus.Peer.GetMachineId() will not work. To solve
// this, you can create /etc/machine-id yourself as symlink to /var/lib/dbus/machine-id,
// and then org.freedesktop.DBus.Peer.GetMachineId() will start to work.
-- if (::access("/etc/machine-id", F_OK) == -1)
-- GTEST_SKIP() << "/etc/machine-id file does not exist, GetMachineId() will not work";
-+ if (::access("/var/lib/dbus/machine-id", F_OK) == -1)
-+ GTEST_SKIP() << "/var/lib/dbus/machine-id file does not exist, GetMachineId() will not work";
++#if __has_include(<systemd/sd-bus.h>)
+ if (::access("/etc/machine-id", F_OK) == -1)
+ GTEST_SKIP() << "/etc/machine-id file does not exist, GetMachineId() will not work";
++#else
++ if (::access("/etc/machine-id", F_OK) == -1 &&
++ ::access("/var/lib/dbus/machine-id", F_OK) == -1)
++ GTEST_SKIP() << "/etc/machine-id and /var/lib/dbus/machine-id file do not exist, GetMachineId() will not work";
++#endif
ASSERT_NO_THROW(m_proxy->GetMachineId());
}