git: 24ffa701a8b0 - main - devel/sdbus-cpp: improve basu support

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Tue, 05 Sep 2023 09:00:05 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=24ffa701a8b0a7896202c33e6419af161b823434

commit 24ffa701a8b0a7896202c33e6419af161b823434
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-09-05 08:30:03 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-09-05 08:58:49 +0000

    devel/sdbus-cpp: improve basu support
    
    - Enable LIBSYSTEMD_VERSION>=240 code
    - Avoid breaking libsystemd support
---
 devel/sdbus-cpp/Makefile         |   2 +-
 devel/sdbus-cpp/files/patch-basu | 228 +++++++++++++++++++++++++--------------
 2 files changed, 149 insertions(+), 81 deletions(-)

diff --git a/devel/sdbus-cpp/Makefile b/devel/sdbus-cpp/Makefile
index 623c2cd39ac0..cb594b5ae465 100644
--- a/devel/sdbus-cpp/Makefile
+++ b/devel/sdbus-cpp/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	sdbus-cpp
 DISTVERSIONPREFIX=	v
 DISTVERSION=	1.3.0
-PORTREVISION=	1
+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 c0fd46fa455d..79391ccc797b 100644
--- a/devel/sdbus-cpp/files/patch-basu
+++ b/devel/sdbus-cpp/files/patch-basu
@@ -2,219 +2,287 @@ libsystemd is Linux-only, so replace with basu
 
 --- CMakeLists.txt.orig	2023-08-20 09:45:44 UTC
 +++ CMakeLists.txt
-@@ -12,13 +12,13 @@ include(GNUInstallDirs) # Installation directories for
- # PERFORMING CHECKS & PREPARING THE DEPENDENCIES
- #-------------------------------
- 
--set(LIBSYSTEMD "libsystemd")
-+set(LIBSYSTEMD "basu")
- 
- option(BUILD_LIBSYSTEMD "Build libsystemd static library and incorporate it into libsdbus-c++" OFF)
- 
- 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(WARNING "libsystemd not found, checking for libelogind instead")
-         pkg_check_modules(Systemd IMPORTED_TARGET GLOBAL libelogind>=236)
-@@ -36,8 +36,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
---- 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());
  }