Date: Sunday, May 15, 2022 @ 16:52:25 Author: archange Revision: 1207472
upgpkg: dbus-c++ 0.9.0-10 Add patch for GCC12 compat. >From >https://github.com/pkgw/dbus-cplusplus/commit/a0b9ef3b469ca23c6a3229d8abb967cbbddcee38 Added: dbus-c++/trunk/template-operators.patch Modified: dbus-c++/trunk/PKGBUILD --------------------------+ PKGBUILD | 11 +++-- template-operators.patch | 88 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 4 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-05-15 16:38:18 UTC (rev 1207471) +++ PKGBUILD 2022-05-15 16:52:25 UTC (rev 1207472) @@ -7,10 +7,10 @@ _pkgname="lib${pkgname}" _upstream="dbus-cplusplus" pkgver=0.9.0 -pkgrel=9 +pkgrel=10 pkgdesc="A C++ API for D-BUS" +arch=('x86_64') url="http://dbus-cplusplus.sourceforge.net/" -arch=('x86_64') license=('LGPL2.1') depends=('dbus' 'gcc-libs' 'glib2' 'glibc') provides=('libdbus-c++-1.so' 'libdbus-c++-glib-1.so') @@ -17,11 +17,13 @@ source=("https://sourceforge.net/projects/${_upstream}/files/${pkgname}/${pkgver}/${_pkgname}-${pkgver}.tar.gz" 'gcc47.patch' 'disable-threading.patch' - 'fix-writechar.patch') + 'fix-writechar.patch' + 'template-operators.patch') sha512sums=('7acebbb4254b2886cc0f05c5ddeeeac0b5863c5552d32249463b89380b0b95b8225c80bd98b8c7fcaada42ab770b5eff41b15390cd0d78bf1ee322ac6c2de319' 'd8618e1eafd25be074ffecf958fbc04f1b2a844c865ec2d795565809a5d11e7f60c1a8c3a6d952b1485af6b199753b36c06f1759a5559274eed55cf5e6585e20' '94d95089ea84af1438191285955bf0866a7d7cbe535ac7fb8282ef6fb96c4ee052f439fb8c9d0b18b9ebec65d39cc45754bb48192ffb46c3d0c4ed6b1b6693a6' - 'df0a3a80d139877eaea5f352da5dfa2bc0407360ddfb59301707c77bd4329ecd986f366f27bbdd7e4ce385125c6ec46fcf115854aa01d97cf11dff905cd9a385') + 'df0a3a80d139877eaea5f352da5dfa2bc0407360ddfb59301707c77bd4329ecd986f366f27bbdd7e4ce385125c6ec46fcf115854aa01d97cf11dff905cd9a385' + 'af8e6281e6eb9c94cae7e8feaf8a8d7b653e4b394f9cc72fa381f647bc9c891906007dd06f55c89449396c5efd84656fe71ff453c7023cabfaad15a23f0b8a86') prepare() { cd "${_pkgname}-${pkgver}" @@ -28,6 +30,7 @@ patch -Np0 -i "${srcdir}/gcc47.patch" patch -Np1 -i "${srcdir}/disable-threading.patch" patch -Np1 -i "${srcdir}/fix-writechar.patch" + patch -Np1 -i "${srcdir}/template-operators.patch" autoreconf -vfi } Added: template-operators.patch =================================================================== --- template-operators.patch (rev 0) +++ template-operators.patch 2022-05-15 16:52:25 UTC (rev 1207472) @@ -0,0 +1,88 @@ +commit a0b9ef3b469ca23c6a3229d8abb967cbbddcee38 +Author: Peter Williams <pe...@newton.cx> +Date: Sat Dec 19 21:12:46 2015 -0500 + + Fix some weird template/operator issues on OS X. + + I frankly don't understand at all what's going on here. These fixes + derive from: + + https://chromium.googlesource.com/chromiumos/third_party/dbus-cplusplus/+/c3f69f6be02e31521474dce7eadf6ba4f4a7ce94 + https://chromium.googlesource.com/chromiumos/third_party/dbus-cplusplus/+/7104857773f790a549d399715482fa23d9b736cd + + Except I've dropped some changes that break the OS X build for me. Frankly, if + it compiles, that's good enough for me. + +diff --git a/include/dbus-c++/types.h b/include/dbus-c++/types.h +index 044e72b..7b3108f 100644 +--- a/include/dbus-c++/types.h ++++ b/include/dbus-c++/types.h +@@ -89,13 +89,7 @@ public: + } + + template <typename T> +- operator T() const +- { +- T cast; +- MessageIter ri = _msg.reader(); +- ri >> cast; +- return cast; +- } ++ operator T() const; + + private: + +@@ -316,7 +310,7 @@ struct type< Struct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, + } + }; + +-} /* namespace DBus */ ++extern DXXAPI DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Variant &val); + + inline DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Invalid &) + { +@@ -551,6 +545,8 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Signature + return ++iter; + } + ++extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); ++ + template<typename E> + inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, std::vector<E>& val) + { +@@ -644,7 +640,16 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Struct<T1, + return ++iter; + } + +-extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); ++template <typename T> ++inline DBus::Variant::operator T() const ++{ ++ T cast; ++ DBus::MessageIter ri = _msg.reader(); ++ ri >> cast; ++ return cast; ++} ++ ++} /* namespace DBus */ + + #endif//__DBUSXX_TYPES_H + +diff --git a/src/types.cpp b/src/types.cpp +index d414a3e..70f9ac0 100644 +--- a/src/types.cpp ++++ b/src/types.cpp +@@ -34,7 +34,7 @@ + #include "message_p.h" + #include "internalerror.h" + +-using namespace DBus; ++namespace DBus { + + Variant::Variant() + : _msg(CallMessage()) // dummy message used as temporary storage for variant data +@@ -104,3 +104,4 @@ MessageIter &operator >> (MessageIter &iter, Variant &val) + return ++iter; + } + ++} /* namespace DBus */