mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 17:09:10 -07:00
dev-cpp/sdbus-c++: New package
Including older 0.9.0 version for msalsdk-dbusclient. Signed-off-by: James Le Cuirot <chewi@gentoo.org>
This commit is contained in:
3
dev-cpp/sdbus-c++/Manifest
Normal file
3
dev-cpp/sdbus-c++/Manifest
Normal file
@@ -0,0 +1,3 @@
|
||||
DIST sdbus-c++-0.9.0.tar.gz 198979 BLAKE2B 31cda7ce97aad05f93a015ca0f8bd93aa095f6abb6bc513343767c7221d2aeacc96ee2b6a1b0ecf50850f17506fc97aa3a9fead0332687d57bdbddf806502826 SHA512 8695d3efac5654cb28998cdd69c16f251654b2c95e0dc2a2f5a4b01b24dae7b04e1a1f2e9bc9fb96b99f099dd4a130ca980cb672f74829565fd0d48162a581c5
|
||||
DIST sdbus-c++-1.1.0.tar.gz 201532 BLAKE2B 3dac74cb7fc6717db9d25463ddfb9122db54edcd3bc9d1e71d18c132ede1efaf12b514f335c3978f51277afff7e6ab5533cfd02241759f7e3d24cede8aa29c6d SHA512 ba6230c0d1019875d92a92f793278c528a01692dc70e7acee8bb289af5dae65c1ad7b1c139f859cb7a960c7b48501178bfdf755163c2bc4d3766e67f3aa9b883
|
||||
DIST systemd-stable-250.4.tar.gz 11132786 BLAKE2B 8fdfe1bad76e572dc1be0955f3d1c4080f2beb81a2f9670f80827899f5406ab8ed8675400c2f5e8ccef44cf1bceff42ceae12a42e1b67d46c0deb523e6495f25 SHA512 307ed0920da660b6c45d909fea66864fb98db8b2f6905d629fb2012fc4bf64dd25fd61168c22bf4098200be541be9b0e815fbde98806a99c85cb33d49d8b63d0
|
||||
58
dev-cpp/sdbus-c++/files/sdbus-c++-gtest-1.11.patch
Normal file
58
dev-cpp/sdbus-c++/files/sdbus-c++-gtest-1.11.patch
Normal file
@@ -0,0 +1,58 @@
|
||||
From 7f437a6e06d2ec3abd3e2fd1101ab6aab386bc44 Mon Sep 17 00:00:00 2001
|
||||
From: Stanislav Angelovic <stanislav.angelovic@siemens.com>
|
||||
Date: Thu, 27 Jan 2022 13:38:19 +0100
|
||||
Subject: [PATCH] fix(tests): printer for std::chrono in googletest v1.11.0
|
||||
|
||||
---
|
||||
tests/CMakeLists.txt | 2 +-
|
||||
tests/integrationtests/Defs.h | 22 ++++++++++------------
|
||||
2 files changed, 11 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||
index fbf198c..ec42e55 100644
|
||||
--- a/tests/CMakeLists.txt
|
||||
+++ b/tests/CMakeLists.txt
|
||||
@@ -19,7 +19,7 @@ if (NOT TARGET GTest::gmock)
|
||||
if (NOT TARGET GTest::gmock)
|
||||
include(FetchContent)
|
||||
|
||||
- message("Fetching googletest...")
|
||||
+ message("Fetching googletest v${GOOGLETEST_VERSION}...")
|
||||
FetchContent_Declare(googletest
|
||||
GIT_REPOSITORY ${GOOGLETEST_GIT_REPO}
|
||||
GIT_TAG release-${GOOGLETEST_VERSION}
|
||||
diff --git a/tests/integrationtests/Defs.h b/tests/integrationtests/Defs.h
|
||||
index 2f129a4..2bfc7c9 100644
|
||||
--- a/tests/integrationtests/Defs.h
|
||||
+++ b/tests/integrationtests/Defs.h
|
||||
@@ -56,20 +56,18 @@ const bool DEFAULT_BLOCKING_VALUE{true};
|
||||
|
||||
constexpr const double DOUBLE_VALUE{3.24L};
|
||||
|
||||
-/** Duration stream operator for human readable gtest value output.
|
||||
- *
|
||||
- * Note that the conversion to double is lossy if the input type has 64 or more bits.
|
||||
- * This is ok for our integration tests because they don't have very
|
||||
- * accurate timing requirements.
|
||||
- *
|
||||
- * @return human readable duration in seconds
|
||||
- */
|
||||
+}}
|
||||
+
|
||||
+namespace testing::internal {
|
||||
+
|
||||
+// Printer for std::chrono::duration types.
|
||||
+// This is a workaround, since it's not a good thing to add this to std namespace.
|
||||
template< class Rep, class Period >
|
||||
-static std::ostream& operator<<(std::ostream& os, const std::chrono::duration<Rep, Period>& d)
|
||||
-{
|
||||
+void PrintTo(const ::std::chrono::duration<Rep, Period>& d, ::std::ostream* os) {
|
||||
auto seconds = std::chrono::duration_cast<std::chrono::duration<double>>(d);
|
||||
- return os << seconds.count() << " s";
|
||||
+ *os << seconds.count() << "s";
|
||||
+}
|
||||
+
|
||||
}
|
||||
-}}
|
||||
|
||||
#endif /* SDBUS_CPP_INTEGRATIONTESTS_DEFS_H_ */
|
||||
10
dev-cpp/sdbus-c++/files/sdbus-c++-static-libsystemd.patch
Normal file
10
dev-cpp/sdbus-c++/files/sdbus-c++-static-libsystemd.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
systemd does not include pkg-config dependencies for static linking.
|
||||
|
||||
diff -Naur a/src/libsystemd/libsystemd.pc.in b/src/libsystemd/libsystemd.pc.in
|
||||
--- a/src/libsystemd/libsystemd.pc.in 2022-01-18 11:35:43.000000000 +0000
|
||||
+++ b/src/libsystemd/libsystemd.pc.in 2022-03-05 21:24:47.139338880 +0000
|
||||
@@ -18,3 +18,4 @@
|
||||
Version: {{PROJECT_VERSION}}
|
||||
Libs: -L${libdir} -lsystemd
|
||||
Cflags: -I${includedir}
|
||||
+Requires: libcap
|
||||
12
dev-cpp/sdbus-c++/metadata.xml
Normal file
12
dev-cpp/sdbus-c++/metadata.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>chewi@gentoo.org</email>
|
||||
<name>James Le Cuirot</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="systemd">Use external libsystemd instead of statically-linked build</flag>
|
||||
<flag name="tools">Install interface stub code generator</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
115
dev-cpp/sdbus-c++/sdbus-c++-0.9.0.ebuild
Normal file
115
dev-cpp/sdbus-c++/sdbus-c++-0.9.0.ebuild
Normal file
@@ -0,0 +1,115 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit meson cmake
|
||||
|
||||
SDP="systemd-stable-250.4"
|
||||
DESCRIPTION="High-level C++ D-Bus library"
|
||||
HOMEPAGE="https://github.com/Kistler-Group/sdbus-cpp"
|
||||
SRC_URI="https://github.com/Kistler-Group/sdbus-cpp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
!systemd? ( https://github.com/systemd/systemd/archive/v${SDP##*-}/${SDP}.tar.gz )"
|
||||
LICENSE="LGPL-2.1+ Nokia-Qt-LGPL-Exception-1.1" # Nothing to do with Qt but exception text is exactly the same.
|
||||
SLOT="0/0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="doc systemd test tools"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
!systemd? ( sys-libs/libcap )
|
||||
systemd? ( >=sys-apps/systemd-236:= )
|
||||
tools? ( dev-libs/expat )
|
||||
"
|
||||
|
||||
# util-linux is needed for libmount when building libsystemd, but sdbus-c++
|
||||
# doesn't need it when subsequently linking libsystemd statically.
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
!systemd? ( sys-apps/util-linux )
|
||||
test? ( >=dev-cpp/gtest-1.10.0 )
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen[dot] )
|
||||
"
|
||||
|
||||
S="${WORKDIR}/sdbus-cpp-${PV}"
|
||||
SDS="${WORKDIR}/${SDP}"
|
||||
SDB="${WORKDIR}/systemd-build"
|
||||
|
||||
src_prepare() {
|
||||
if ! use systemd; then
|
||||
pushd "${SDS}" || die
|
||||
eapply "${FILESDIR}"/${PN}-static-libsystemd.patch
|
||||
popd || die
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if ! use systemd; then
|
||||
EMESON_SOURCE=${SDS} \
|
||||
BUILD_DIR=${SDB} \
|
||||
meson_src_configure \
|
||||
--prefix "${WORKDIR}" \
|
||||
--includedir "${SDP}/src" \
|
||||
-Drootlibdir="${SDB}" \
|
||||
-Dselinux=false \
|
||||
-Dstatic-libsystemd=pic
|
||||
|
||||
# systemd doesn't generate the needed pkg-config file during configure.
|
||||
BUILD_DIR=${SDB} \
|
||||
meson_src_compile libsystemd.pc
|
||||
|
||||
# Need this present otherwise CMake generates the wrong linker args.
|
||||
touch "${SDB}"/libsystemd.a || die
|
||||
fi
|
||||
|
||||
local mycmakeargs=(
|
||||
-DBUILD_CODE_GEN=$(usex tools)
|
||||
-DBUILD_DOC=yes
|
||||
-DBUILD_DOXYGEN_DOC=$(usex doc)
|
||||
-DBUILD_LIBSYSTEMD=no
|
||||
-DBUILD_TESTS=$(usex test)
|
||||
)
|
||||
|
||||
PKG_CONFIG_PATH=${SDB}/src/libsystemd:${PKG_CONFIG_PATH} \
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if ! use systemd; then
|
||||
BUILD_DIR=${SDB} \
|
||||
meson_src_compile version.h systemd:static_library
|
||||
fi
|
||||
|
||||
cmake_src_compile all $(usev doc)
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if ! cmp -s {"${S}"/tests/integrationtests/files,/etc/dbus-1/system.d}/org.sdbuscpp.integrationtests.conf; then
|
||||
ewarn "Not running the tests as a D-Bus configuration file has not been"
|
||||
ewarn "installed yet or has changed since. The tests can be run after"
|
||||
ewarn "the package has been merged."
|
||||
return
|
||||
elif [[ ! -S /run/dbus/system_bus_socket ]]; then
|
||||
ewarn "Not running the tests as the system-wide D-Bus daemon is unavailable."
|
||||
return
|
||||
fi
|
||||
|
||||
cmake_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
rm -v "${ED}"/usr/share/doc/${PF}/COPYING || die
|
||||
|
||||
if use test; then
|
||||
# Delete installed test binaries.
|
||||
rm -rv "${ED}"/opt || die
|
||||
fi
|
||||
}
|
||||
119
dev-cpp/sdbus-c++/sdbus-c++-1.1.0.ebuild
Normal file
119
dev-cpp/sdbus-c++/sdbus-c++-1.1.0.ebuild
Normal file
@@ -0,0 +1,119 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit meson cmake
|
||||
|
||||
SDP="systemd-stable-250.4"
|
||||
DESCRIPTION="High-level C++ D-Bus library"
|
||||
HOMEPAGE="https://github.com/Kistler-Group/sdbus-cpp"
|
||||
SRC_URI="https://github.com/Kistler-Group/sdbus-cpp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
!systemd? ( https://github.com/systemd/systemd/archive/v${SDP##*-}/${SDP}.tar.gz )"
|
||||
LICENSE="LGPL-2.1+ Nokia-Qt-LGPL-Exception-1.1" # Nothing to do with Qt but exception text is exactly the same.
|
||||
SLOT="0/1"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="doc systemd test tools"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
!systemd? ( sys-libs/libcap )
|
||||
systemd? ( >=sys-apps/systemd-236:= )
|
||||
tools? ( dev-libs/expat )
|
||||
"
|
||||
|
||||
# util-linux is needed for libmount when building libsystemd, but sdbus-c++
|
||||
# doesn't need it when subsequently linking libsystemd statically.
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
!systemd? ( sys-apps/util-linux )
|
||||
test? ( >=dev-cpp/gtest-1.10.0 )
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen[dot] )
|
||||
"
|
||||
|
||||
S="${WORKDIR}/sdbus-cpp-${PV}"
|
||||
SDS="${WORKDIR}/${SDP}"
|
||||
SDB="${WORKDIR}/systemd-build"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-gtest-1.11.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if ! use systemd; then
|
||||
pushd "${SDS}" || die
|
||||
eapply "${FILESDIR}"/${PN}-static-libsystemd.patch
|
||||
popd || die
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if ! use systemd; then
|
||||
EMESON_SOURCE=${SDS} \
|
||||
BUILD_DIR=${SDB} \
|
||||
meson_src_configure \
|
||||
--prefix "${WORKDIR}" \
|
||||
--includedir "${SDP}/src" \
|
||||
-Drootlibdir="${SDB}" \
|
||||
-Dselinux=false \
|
||||
-Dstatic-libsystemd=pic
|
||||
|
||||
# systemd doesn't generate the needed pkg-config file during configure.
|
||||
BUILD_DIR=${SDB} \
|
||||
meson_src_compile libsystemd.pc
|
||||
|
||||
# Need this present otherwise CMake generates the wrong linker args.
|
||||
touch "${SDB}"/libsystemd.a || die
|
||||
fi
|
||||
|
||||
local mycmakeargs=(
|
||||
-DBUILD_CODE_GEN=$(usex tools)
|
||||
-DBUILD_DOC=yes
|
||||
-DBUILD_DOXYGEN_DOC=$(usex doc)
|
||||
-DBUILD_LIBSYSTEMD=no
|
||||
-DBUILD_TESTS=$(usex test)
|
||||
)
|
||||
|
||||
PKG_CONFIG_PATH=${SDB}/src/libsystemd:${PKG_CONFIG_PATH} \
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if ! use systemd; then
|
||||
BUILD_DIR=${SDB} \
|
||||
meson_src_compile version.h systemd:static_library
|
||||
fi
|
||||
|
||||
cmake_src_compile all $(usev doc)
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if ! cmp -s {"${S}"/tests/integrationtests/files,/etc/dbus-1/system.d}/org.sdbuscpp.integrationtests.conf; then
|
||||
ewarn "Not running the tests as a D-Bus configuration file has not been"
|
||||
ewarn "installed yet or has changed since. The tests can be run after"
|
||||
ewarn "the package has been merged."
|
||||
return
|
||||
elif [[ ! -S /run/dbus/system_bus_socket ]]; then
|
||||
ewarn "Not running the tests as the system-wide D-Bus daemon is unavailable."
|
||||
return
|
||||
fi
|
||||
|
||||
cmake_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
rm -v "${ED}"/usr/share/doc/${PF}/COPYING || die
|
||||
|
||||
if use test; then
|
||||
# Delete installed test binaries.
|
||||
rm -rv "${ED}"/opt || die
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user