diff --git a/cmake/LibsystemdExternalProject.cmake b/cmake/LibsystemdExternalProject.cmake index 09dd102..40911c2 100644 --- a/cmake/LibsystemdExternalProject.cmake +++ b/cmake/LibsystemdExternalProject.cmake @@ -46,7 +46,7 @@ ExternalProject_Add(LibsystemdBuildProject GIT_SHALLOW 1 UPDATE_COMMAND "" CONFIGURE_COMMAND ${CMAKE_COMMAND} -E remove /* - COMMAND ${MESON} --prefix= --buildtype=${LIBSYSTEMD_BUILD_TYPE} -Dstatic-libsystemd=pic -Dselinux=false ${LIBSYSTEMD_EXTRA_CONFIG_OPTS} + COMMAND ${MESON} --prefix= --buildtype=${LIBSYSTEMD_BUILD_TYPE} -Drootprefix= -Dstatic-libsystemd=pic -Dselinux=false ${LIBSYSTEMD_EXTRA_CONFIG_OPTS} BUILD_COMMAND ${BUILD_VERSION_H} COMMAND ${NINJA} -C libsystemd.a BUILD_ALWAYS 0 diff --git a/tests/integrationtests/DBusStandardInterfacesTests.cpp b/tests/integrationtests/DBusStandardInterfacesTests.cpp index a291be3..6381587 100644 --- a/tests/integrationtests/DBusStandardInterfacesTests.cpp +++ b/tests/integrationtests/DBusStandardInterfacesTests.cpp @@ -201,7 +201,13 @@ TEST_F(SdbusTestObject, EmitsInterfacesAddedSignalForAllObjectInterfaces) , const std::map>& interfacesAndProperties ) { EXPECT_THAT(objectPath, Eq(OBJECT_PATH)); +#if LIBSYSTEMD_VERSION<=250 EXPECT_THAT(interfacesAndProperties, SizeIs(5)); // INTERFACE_NAME + 4 standard interfaces +#else + // Since systemd v251, ObjectManager standard interface is not listed among the interfaces + // if the object does not have object manager functionality explicitly enabled. + EXPECT_THAT(interfacesAndProperties, SizeIs(4)); // INTERFACE_NAME + 3 standard interfaces +#endif #if LIBSYSTEMD_VERSION<=244 // Up to sd-bus v244, all properties are added to the list, i.e. `state', `action', and `blocking' in this case. EXPECT_THAT(interfacesAndProperties.at(INTERFACE_NAME), SizeIs(3)); @@ -248,7 +254,13 @@ TEST_F(SdbusTestObject, EmitsInterfacesRemovedSignalForAllObjectInterfaces) , const std::vector& interfaces ) { EXPECT_THAT(objectPath, Eq(OBJECT_PATH)); +#if LIBSYSTEMD_VERSION<=250 ASSERT_THAT(interfaces, SizeIs(5)); // INTERFACE_NAME + 4 standard interfaces +#else + // Since systemd v251, ObjectManager standard interface is not listed among the interfaces + // if the object does not have object manager functionality explicitly enabled. + ASSERT_THAT(interfaces, SizeIs(4)); // INTERFACE_NAME + 3 standard interfaces +#endif signalReceived = true; };