Date: Wednesday, April 21, 2021 @ 21:23:27 Author: eschwartz Revision: 920715
archrelease: copy trunk to community-x86_64 Added: quassel/repos/community-x86_64/0001-qtui-Set-desktop-file-name.patch (from rev 920714, quassel/trunk/0001-qtui-Set-desktop-file-name.patch) quassel/repos/community-x86_64/PKGBUILD (from rev 920714, quassel/trunk/PKGBUILD) quassel/repos/community-x86_64/quassel-0.13.1-qt5.14.patch (from rev 920714, quassel/trunk/quassel-0.13.1-qt5.14.patch) quassel/repos/community-x86_64/quassel.conf (from rev 920714, quassel/trunk/quassel.conf) quassel/repos/community-x86_64/quassel.service (from rev 920714, quassel/trunk/quassel.service) quassel/repos/community-x86_64/quassel.sysusers (from rev 920714, quassel/trunk/quassel.sysusers) quassel/repos/community-x86_64/quassel.tmpfiles (from rev 920714, quassel/trunk/quassel.tmpfiles) Deleted: quassel/repos/community-x86_64/0001-qtui-Set-desktop-file-name.patch quassel/repos/community-x86_64/PKGBUILD quassel/repos/community-x86_64/quassel-0.13.1-qt5.14.patch quassel/repos/community-x86_64/quassel.conf quassel/repos/community-x86_64/quassel.service quassel/repos/community-x86_64/quassel.sysusers quassel/repos/community-x86_64/quassel.tmpfiles ---------------------------------------+ 0001-qtui-Set-desktop-file-name.patch | 100 +++++------ PKGBUILD | 270 ++++++++++++++++---------------- quassel-0.13.1-qt5.14.patch | 236 +++++++++++++-------------- quassel.conf | 4 quassel.service | 28 +-- quassel.sysusers | 2 quassel.tmpfiles | 2 7 files changed, 321 insertions(+), 321 deletions(-) Deleted: 0001-qtui-Set-desktop-file-name.patch =================================================================== --- 0001-qtui-Set-desktop-file-name.patch 2021-04-21 21:22:55 UTC (rev 920714) +++ 0001-qtui-Set-desktop-file-name.patch 2021-04-21 21:23:27 UTC (rev 920715) @@ -1,50 +0,0 @@ -From 919ac3d7184faee0ccfa7fe65c6635a7dcf5d234 Mon Sep 17 00:00:00 2001 -Message-Id: <919ac3d7184faee0ccfa7fe65c6635a7dcf5d234.1553291431.git.jan.steff...@gmail.com> -From: "Jan Alexander Steffens (heftig)" <jan.steff...@gmail.com> -Date: Fri, 22 Mar 2019 22:37:22 +0100 -Subject: [PATCH] qtui: Set desktop file name - -The XCB platform plugin defaults the WM class to the executable name, -which already matches our desktop file name. Unfortunately, the Wayland -platform plugin prepends the inverted organization domain, resulting in -an app ID of "org.quassel-irc.quasselclient", thus breaking the -association. - -Set the desktop file name explicitly so the Wayland platform doesn't get -confused. ---- - src/qtui/monoapplication.cpp | 3 +++ - src/qtui/qtuiapplication.cpp | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git a/src/qtui/monoapplication.cpp b/src/qtui/monoapplication.cpp -index 809f1147..3f60523f 100644 ---- a/src/qtui/monoapplication.cpp -+++ b/src/qtui/monoapplication.cpp -@@ -32,6 +32,9 @@ MonolithicApplication::MonolithicApplication(int &argc, char **argv) - : QtUiApplication(argc, argv) - { - Quassel::setRunMode(Quassel::Monolithic); -+#if QT_VERSION >= 0x050700 -+ QGuiApplication::setDesktopFileName(Quassel::buildInfo().applicationName + ".desktop"); -+#endif - } - - -diff --git a/src/qtui/qtuiapplication.cpp b/src/qtui/qtuiapplication.cpp -index e5b0b773..989a1961 100644 ---- a/src/qtui/qtuiapplication.cpp -+++ b/src/qtui/qtuiapplication.cpp -@@ -92,6 +92,9 @@ QtUiApplication::QtUiApplication(int &argc, char **argv) - #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) - QGuiApplication::setFallbackSessionManagementEnabled(false); - #endif -+#if QT_VERSION >= 0x050700 -+ QGuiApplication::setDesktopFileName(Quassel::buildInfo().clientApplicationName + ".desktop"); -+#endif - } - - --- -2.21.0 - Copied: quassel/repos/community-x86_64/0001-qtui-Set-desktop-file-name.patch (from rev 920714, quassel/trunk/0001-qtui-Set-desktop-file-name.patch) =================================================================== --- 0001-qtui-Set-desktop-file-name.patch (rev 0) +++ 0001-qtui-Set-desktop-file-name.patch 2021-04-21 21:23:27 UTC (rev 920715) @@ -0,0 +1,50 @@ +From 919ac3d7184faee0ccfa7fe65c6635a7dcf5d234 Mon Sep 17 00:00:00 2001 +Message-Id: <919ac3d7184faee0ccfa7fe65c6635a7dcf5d234.1553291431.git.jan.steff...@gmail.com> +From: "Jan Alexander Steffens (heftig)" <jan.steff...@gmail.com> +Date: Fri, 22 Mar 2019 22:37:22 +0100 +Subject: [PATCH] qtui: Set desktop file name + +The XCB platform plugin defaults the WM class to the executable name, +which already matches our desktop file name. Unfortunately, the Wayland +platform plugin prepends the inverted organization domain, resulting in +an app ID of "org.quassel-irc.quasselclient", thus breaking the +association. + +Set the desktop file name explicitly so the Wayland platform doesn't get +confused. +--- + src/qtui/monoapplication.cpp | 3 +++ + src/qtui/qtuiapplication.cpp | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/src/qtui/monoapplication.cpp b/src/qtui/monoapplication.cpp +index 809f1147..3f60523f 100644 +--- a/src/qtui/monoapplication.cpp ++++ b/src/qtui/monoapplication.cpp +@@ -32,6 +32,9 @@ MonolithicApplication::MonolithicApplication(int &argc, char **argv) + : QtUiApplication(argc, argv) + { + Quassel::setRunMode(Quassel::Monolithic); ++#if QT_VERSION >= 0x050700 ++ QGuiApplication::setDesktopFileName(Quassel::buildInfo().applicationName + ".desktop"); ++#endif + } + + +diff --git a/src/qtui/qtuiapplication.cpp b/src/qtui/qtuiapplication.cpp +index e5b0b773..989a1961 100644 +--- a/src/qtui/qtuiapplication.cpp ++++ b/src/qtui/qtuiapplication.cpp +@@ -92,6 +92,9 @@ QtUiApplication::QtUiApplication(int &argc, char **argv) + #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) + QGuiApplication::setFallbackSessionManagementEnabled(false); + #endif ++#if QT_VERSION >= 0x050700 ++ QGuiApplication::setDesktopFileName(Quassel::buildInfo().clientApplicationName + ".desktop"); ++#endif + } + + +-- +2.21.0 + Deleted: PKGBUILD =================================================================== --- PKGBUILD 2021-04-21 21:22:55 UTC (rev 920714) +++ PKGBUILD 2021-04-21 21:23:27 UTC (rev 920715) @@ -1,135 +0,0 @@ -# Maintainer: Jaroslav Lichtblau <svetlemo...@archlinux.org> -# Contributor: Vesa Kaihlavirta <ve...@iki.fi> - -pkgbase=quassel -pkgname=('quassel-core' - 'quassel-client' - 'quassel-client-small' - 'quassel-monolithic') -pkgver=0.13.1 -pkgrel=4 -pkgdesc="Next-generation distributed IRC client" -arch=('x86_64') -url="https://quassel-irc.org/" -license=('GPL') -makedepends=('qt5-base' 'qt5-tools' 'qt5-webengine' 'qca-qt5' 'qt5-script' - 'qt5-multimedia' 'knotifyconfig' 'sonnet' 'libldap' 'cmake' - 'extra-cmake-modules' 'python' 'hicolor-icon-theme') -source=(https://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2 - 0001-qtui-Set-desktop-file-name.patch - quassel-0.13.1-qt5.14.patch - $pkgbase.service - $pkgbase.sysusers - $pkgbase.tmpfiles - $pkgbase.conf) -sha256sums=('48efee9778743b1db9f44efb91d1c913104db01190c57f2ff57483c39a97e855' - '695ff3b605ea62ccfdf9ec4b9e6ffa74f3e2c0ac81402d51a74d263c47886c92' - '3d43f498df04db59a5199e0a81b8fd7ac37ef46fffb0c69ab5a17bcafb6d8c65' - '5dbe20290f3361b9b7a74a52905137e76b656976febf2d31082a2276f9dcde7f' - '3c72441a99e2668c6a8a751fa07beeb44f937576c8a1b5f615e4a55f841d93d9' - '2afd4340c7713f6533e5d175a86b28fd118ecd907776c2b10925d1a4fb31cdca' - 'f3031ea8217e01ba42cea14606169e3e27affa5918968ffd5a03c21ae92fe2b8') - -prepare() { - cd $pkgbase-$pkgver - patch -Np1 -i ../0001-qtui-Set-desktop-file-name.patch - patch -Np1 -i ../quassel-0.13.1-qt5.14.patch -} - -_build() ( - cmake -H$pkgbase-$pkgver -Bbuild-$1 \ - -DCMAKE_INSTALL_PREFIX=/usr/ \ - -DCMAKE_BUILD_TYPE=None \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-suggest-override" \ - -DHAVE_SSL=ON \ - "${@:2}" \ - -Wno-dev - cmake --build build-$1 -) - -_install() { - DESTDIR="${pkgdir}" cmake --build build-$1 --target install -} - -build() { - _build core \ - -DWANT_QTCLIENT=OFF \ - -DWANT_MONO=OFF \ - -DWITH_BUNDLED_ICONS=OFF \ - -DWITH_WEBENGINE=OFF - - _build monolithic \ - -DWANT_CORE=OFF \ - -DWANT_QTCLIENT=OFF \ - -DWITH_KDE=ON - - _build client \ - -DWANT_CORE=OFF \ - -DWANT_MONO=OFF \ - -DWITH_KDE=ON - - _build client-small \ - -DWANT_CORE=OFF \ - -DWANT_MONO=OFF \ - -DWITH_WEBENGINE=OFF \ - -DCMAKE_DISABLE_FIND_PACKAGE_dbusmenu-qt5=ON \ - -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Multimedia=ON \ - -DCMAKE_DISABLE_FIND_PACKAGE_Phonon4Qt5=ON -} - -package_quassel-core() { -pkgdesc="Next-generation distributed IRC client - core only" -depends=('icu' 'qca-qt5' 'qt5-script' 'libldap') -optdepends=('postgresql: PostgreSQL database support') -backup=(etc/conf.d/quassel) - - _install core - - # Remove unneeded pixmap icons - rm -r "${pkgdir}"/usr/share - - install -Dm644 $pkgbase.sysusers \ - "${pkgdir}"/usr/lib/sysusers.d/$pkgbase.conf - install -Dm644 $pkgbase.tmpfiles \ - "${pkgdir}"/usr/lib/tmpfiles.d/$pkgbase.conf - install -Dm644 $pkgbase.service \ - "${pkgdir}"/usr/lib/systemd/system/$pkgbase.service - install -Dm644 $pkgbase.conf \ - "${pkgdir}"/etc/conf.d/$pkgbase -} - -package_quassel-client() { -pkgdesc="Next-generation distributed IRC client - client only" -depends=('qt5-base' 'qt5-webengine' 'qt5-multimedia' 'knotifyconfig' - 'hicolor-icon-theme') -optdepends=('perl: for builtin /exec scripts') -conflicts=('quassel-monolithic' 'quassel-client-small') - - _install client - install -Dm644 $pkgbase-$pkgver/data/quasselclient.appdata.xml "$pkgdir/usr/share/metainfo/quasselclient.appdata.xml" -} - -package_quassel-client-small() { -pkgdesc="Next-generation distributed IRC client - client only, reduced deps" -depends=('qt5-base' 'qt5-svg' 'sonnet' 'hicolor-icon-theme') -optdepends=('perl: for builtin /exec scripts') -conflicts=('quassel-monolithic' 'quassel-client') -replaces=('quassel-remote') - - _install client-small - - # Ignore package by AppStream to avoid duplicated IDs - echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/quasselclient.desktop" -} - -package_quassel-monolithic() { -pkgdesc="Next-generation distributed IRC client - monolithic" -depends=('qt5-base' 'qt5-webengine' 'qt5-multimedia' 'qt5-script' 'qca-qt5' - 'knotifyconfig' 'libldap' 'hicolor-icon-theme') -optdepends=('perl: for builtin /exec scripts') -optdepends=('postgresql: PostgreSQL database support') -conflicts=('quassel-client' 'quassel-client-small') - - _install monolithic - install -Dm644 $pkgbase-$pkgver/data/quassel.appdata.xml "$pkgdir/usr/share/metainfo/quassel.appdata.xml" -} Copied: quassel/repos/community-x86_64/PKGBUILD (from rev 920714, quassel/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2021-04-21 21:23:27 UTC (rev 920715) @@ -0,0 +1,135 @@ +# Maintainer: Jaroslav Lichtblau <svetlemo...@archlinux.org> +# Contributor: Vesa Kaihlavirta <ve...@iki.fi> + +pkgbase=quassel +pkgname=('quassel-core' + 'quassel-client' + 'quassel-client-small' + 'quassel-monolithic') +pkgver=0.13.1 +pkgrel=5 +pkgdesc="Next-generation distributed IRC client" +arch=('x86_64') +url="https://quassel-irc.org/" +license=('GPL') +makedepends=('qt5-base' 'qt5-tools' 'qt5-webengine' 'qca-qt5' 'qt5-script' + 'qt5-multimedia' 'knotifyconfig' 'sonnet' 'libldap' 'cmake' + 'extra-cmake-modules' 'python' 'hicolor-icon-theme') +source=(https://quassel-irc.org/pub/$pkgbase-$pkgver.tar.bz2 + 0001-qtui-Set-desktop-file-name.patch + quassel-0.13.1-qt5.14.patch + $pkgbase.service + $pkgbase.sysusers + $pkgbase.tmpfiles + $pkgbase.conf) +sha256sums=('48efee9778743b1db9f44efb91d1c913104db01190c57f2ff57483c39a97e855' + '695ff3b605ea62ccfdf9ec4b9e6ffa74f3e2c0ac81402d51a74d263c47886c92' + '3d43f498df04db59a5199e0a81b8fd7ac37ef46fffb0c69ab5a17bcafb6d8c65' + '5dbe20290f3361b9b7a74a52905137e76b656976febf2d31082a2276f9dcde7f' + '3c72441a99e2668c6a8a751fa07beeb44f937576c8a1b5f615e4a55f841d93d9' + '2afd4340c7713f6533e5d175a86b28fd118ecd907776c2b10925d1a4fb31cdca' + 'f3031ea8217e01ba42cea14606169e3e27affa5918968ffd5a03c21ae92fe2b8') + +prepare() { + cd $pkgbase-$pkgver + patch -Np1 -i ../0001-qtui-Set-desktop-file-name.patch + patch -Np1 -i ../quassel-0.13.1-qt5.14.patch +} + +_build() ( + cmake -H$pkgbase-$pkgver -Bbuild-$1 \ + -DCMAKE_INSTALL_PREFIX=/usr/ \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-suggest-override" \ + -DHAVE_SSL=ON \ + "${@:2}" \ + -Wno-dev + cmake --build build-$1 +) + +_install() { + DESTDIR="${pkgdir}" cmake --build build-$1 --target install +} + +build() { + _build core \ + -DWANT_QTCLIENT=OFF \ + -DWANT_MONO=OFF \ + -DWITH_BUNDLED_ICONS=OFF \ + -DWITH_WEBENGINE=OFF + + _build monolithic \ + -DWANT_CORE=OFF \ + -DWANT_QTCLIENT=OFF \ + -DWITH_KDE=ON + + _build client \ + -DWANT_CORE=OFF \ + -DWANT_MONO=OFF \ + -DWITH_KDE=ON + + _build client-small \ + -DWANT_CORE=OFF \ + -DWANT_MONO=OFF \ + -DWITH_WEBENGINE=OFF \ + -DCMAKE_DISABLE_FIND_PACKAGE_dbusmenu-qt5=ON \ + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Multimedia=ON \ + -DCMAKE_DISABLE_FIND_PACKAGE_Phonon4Qt5=ON +} + +package_quassel-core() { +pkgdesc="Next-generation distributed IRC client - core only" +depends=('icu' 'qca-qt5' 'qt5-script' 'libldap') +optdepends=('postgresql: PostgreSQL database support') +backup=(etc/conf.d/quassel) + + _install core + + # Remove unneeded pixmap icons + rm -r "${pkgdir}"/usr/share + + install -Dm644 $pkgbase.sysusers \ + "${pkgdir}"/usr/lib/sysusers.d/$pkgbase.conf + install -Dm644 $pkgbase.tmpfiles \ + "${pkgdir}"/usr/lib/tmpfiles.d/$pkgbase.conf + install -Dm644 $pkgbase.service \ + "${pkgdir}"/usr/lib/systemd/system/$pkgbase.service + install -Dm644 $pkgbase.conf \ + "${pkgdir}"/etc/conf.d/$pkgbase +} + +package_quassel-client() { +pkgdesc="Next-generation distributed IRC client - client only" +depends=('qt5-base' 'qt5-webengine' 'qt5-multimedia' 'knotifyconfig' + 'hicolor-icon-theme') +optdepends=('perl: for builtin /exec scripts') +conflicts=('quassel-monolithic' 'quassel-client-small') + + _install client + install -Dm644 $pkgbase-$pkgver/data/quasselclient.appdata.xml "$pkgdir/usr/share/metainfo/quasselclient.appdata.xml" +} + +package_quassel-client-small() { +pkgdesc="Next-generation distributed IRC client - client only, reduced deps" +depends=('qt5-base' 'qt5-svg' 'sonnet' 'hicolor-icon-theme') +optdepends=('perl: for builtin /exec scripts') +conflicts=('quassel-monolithic' 'quassel-client') +replaces=('quassel-remote') + + _install client-small + + # Ignore package by AppStream to avoid duplicated IDs + echo 'X-AppStream-Ignore=true' >> "$pkgdir/usr/share/applications/quasselclient.desktop" +} + +package_quassel-monolithic() { +pkgdesc="Next-generation distributed IRC client - monolithic" +depends=('qt5-base' 'qt5-webengine' 'qt5-multimedia' 'qt5-script' 'qca-qt5' + 'knotifyconfig' 'libldap' 'hicolor-icon-theme') +optdepends=('perl: for builtin /exec scripts' + 'postgresql: PostgreSQL database support') +conflicts=('quassel-client' 'quassel-client-small') + + _install monolithic + install -Dm644 $pkgbase-$pkgver/data/quassel.appdata.xml "$pkgdir/usr/share/metainfo/quassel.appdata.xml" +} Deleted: quassel-0.13.1-qt5.14.patch =================================================================== --- quassel-0.13.1-qt5.14.patch 2021-04-21 21:22:55 UTC (rev 920714) +++ quassel-0.13.1-qt5.14.patch 2021-04-21 21:23:27 UTC (rev 920715) @@ -1,118 +0,0 @@ -commit c90702bdbc43fc542d7df6d5ec4b321912ca0035 -Author: Manuel Nickschas <sputn...@quassel-irc.org> -Date: Tue Jan 7 18:34:54 2020 +0100 - - common: Disable enum type stream operators for Qt >= 5.14 - - Starting from version 5.14, Qt provides stream operators for enum - types, which collide with the ones we ship in types.h. Disable - Quassel's stream operators when compiling against Qt 5.14 or later. - - Add a unit test that ensures that enum serialization honors the width - of the underlying type. - -diff --git a/src/common/types.h b/src/common/types.h -index 467d9fb2..c4b9f364 100644 ---- a/src/common/types.h -+++ b/src/common/types.h -@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress) - typedef QList<MsgId> MsgIdList; - typedef QList<BufferId> BufferIdList; - -+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) - /** - * Catch-all stream serialization operator for enum types. - * -@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) { - value = static_cast<T>(v); - return in; - } -+#endif - - // Exceptions - -diff --git a/src/common/typestest.cpp b/src/common/typestest.cpp -new file mode 100644 -index 00000000..04031c29 ---- /dev/null -+++ b/src/common/typestest.cpp -@@ -0,0 +1,79 @@ -+/*************************************************************************** -+ * Copyright (C) 2005-2020 by the Quassel Project * -+ * de...@quassel-irc.org * -+ * * -+ * This program is free software; you can redistribute it and/or modify * -+ * it under the terms of the GNU General Public License as published by * -+ * the Free Software Foundation; either version 2 of the License, or * -+ * (at your option) version 3. * -+ * * -+ * This program is distributed in the hope that it will be useful, * -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of * -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -+ * GNU General Public License for more details. * -+ * * -+ * You should have received a copy of the GNU General Public License * -+ * along with this program; if not, write to the * -+ * Free Software Foundation, Inc., * -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * -+ ***************************************************************************/ -+ -+#include <cstdint> -+ -+#include <QByteArray> -+#include <QDataStream> -+#include <QObject> -+ -+#include "testglobal.h" -+#include "types.h" -+ -+using namespace ::testing; -+ -+class EnumHolder -+{ -+ Q_GADGET -+ -+public: -+ enum class Enum16 : uint16_t {}; -+ enum class Enum32 : uint32_t {}; -+ -+ enum class EnumQt16 : uint16_t {}; -+ Q_ENUM(EnumQt16) -+ enum class EnumQt32 : uint32_t {}; -+ Q_ENUM(EnumQt32) -+}; -+ -+// Verify that enums are (de)serialized as their underlying type -+TEST(TypesTest, enumSerialization) -+{ -+ QByteArray data; -+ QDataStream out(&data, QIODevice::WriteOnly); -+ -+ // Serialize -+ out << EnumHolder::Enum16(0xabcd); -+ ASSERT_THAT(data.size(), Eq(2)); -+ out << EnumHolder::Enum32(0x123456); -+ ASSERT_THAT(data.size(), Eq(6)); -+ out << EnumHolder::EnumQt16(0x4321); -+ ASSERT_THAT(data.size(), Eq(8)); -+ out << EnumHolder::Enum32(0xfedcba); -+ ASSERT_THAT(data.size(), Eq(12)); -+ ASSERT_THAT(out.status(), Eq(QDataStream::Status::Ok)); -+ -+ // Deserialize -+ QDataStream in(data); -+ EnumHolder::Enum16 enum16; -+ EnumHolder::Enum32 enum32; -+ EnumHolder::EnumQt16 enumQt16; -+ EnumHolder::EnumQt32 enumQt32; -+ in >> enum16 >> enum32 >> enumQt16 >> enumQt32; -+ ASSERT_THAT(in.status(), Eq(QDataStream::Status::Ok)); -+ EXPECT_TRUE(in.atEnd()); -+ -+ EXPECT_THAT((int)enum16, Eq(0xabcd)); -+ EXPECT_THAT((int)enum32, Eq(0x123456)); -+ EXPECT_THAT((int)enumQt16, Eq(0x4321)); -+ EXPECT_THAT((int)enumQt32, Eq(0xfedcba)); -+} -+ -+#include "typestest.moc" Copied: quassel/repos/community-x86_64/quassel-0.13.1-qt5.14.patch (from rev 920714, quassel/trunk/quassel-0.13.1-qt5.14.patch) =================================================================== --- quassel-0.13.1-qt5.14.patch (rev 0) +++ quassel-0.13.1-qt5.14.patch 2021-04-21 21:23:27 UTC (rev 920715) @@ -0,0 +1,118 @@ +commit c90702bdbc43fc542d7df6d5ec4b321912ca0035 +Author: Manuel Nickschas <sputn...@quassel-irc.org> +Date: Tue Jan 7 18:34:54 2020 +0100 + + common: Disable enum type stream operators for Qt >= 5.14 + + Starting from version 5.14, Qt provides stream operators for enum + types, which collide with the ones we ship in types.h. Disable + Quassel's stream operators when compiling against Qt 5.14 or later. + + Add a unit test that ensures that enum serialization honors the width + of the underlying type. + +diff --git a/src/common/types.h b/src/common/types.h +index 467d9fb2..c4b9f364 100644 +--- a/src/common/types.h ++++ b/src/common/types.h +@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress) + typedef QList<MsgId> MsgIdList; + typedef QList<BufferId> BufferIdList; + ++#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) + /** + * Catch-all stream serialization operator for enum types. + * +@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) { + value = static_cast<T>(v); + return in; + } ++#endif + + // Exceptions + +diff --git a/src/common/typestest.cpp b/src/common/typestest.cpp +new file mode 100644 +index 00000000..04031c29 +--- /dev/null ++++ b/src/common/typestest.cpp +@@ -0,0 +1,79 @@ ++/*************************************************************************** ++ * Copyright (C) 2005-2020 by the Quassel Project * ++ * de...@quassel-irc.org * ++ * * ++ * This program is free software; you can redistribute it and/or modify * ++ * it under the terms of the GNU General Public License as published by * ++ * the Free Software Foundation; either version 2 of the License, or * ++ * (at your option) version 3. * ++ * * ++ * This program is distributed in the hope that it will be useful, * ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of * ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * ++ * GNU General Public License for more details. * ++ * * ++ * You should have received a copy of the GNU General Public License * ++ * along with this program; if not, write to the * ++ * Free Software Foundation, Inc., * ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ++ ***************************************************************************/ ++ ++#include <cstdint> ++ ++#include <QByteArray> ++#include <QDataStream> ++#include <QObject> ++ ++#include "testglobal.h" ++#include "types.h" ++ ++using namespace ::testing; ++ ++class EnumHolder ++{ ++ Q_GADGET ++ ++public: ++ enum class Enum16 : uint16_t {}; ++ enum class Enum32 : uint32_t {}; ++ ++ enum class EnumQt16 : uint16_t {}; ++ Q_ENUM(EnumQt16) ++ enum class EnumQt32 : uint32_t {}; ++ Q_ENUM(EnumQt32) ++}; ++ ++// Verify that enums are (de)serialized as their underlying type ++TEST(TypesTest, enumSerialization) ++{ ++ QByteArray data; ++ QDataStream out(&data, QIODevice::WriteOnly); ++ ++ // Serialize ++ out << EnumHolder::Enum16(0xabcd); ++ ASSERT_THAT(data.size(), Eq(2)); ++ out << EnumHolder::Enum32(0x123456); ++ ASSERT_THAT(data.size(), Eq(6)); ++ out << EnumHolder::EnumQt16(0x4321); ++ ASSERT_THAT(data.size(), Eq(8)); ++ out << EnumHolder::Enum32(0xfedcba); ++ ASSERT_THAT(data.size(), Eq(12)); ++ ASSERT_THAT(out.status(), Eq(QDataStream::Status::Ok)); ++ ++ // Deserialize ++ QDataStream in(data); ++ EnumHolder::Enum16 enum16; ++ EnumHolder::Enum32 enum32; ++ EnumHolder::EnumQt16 enumQt16; ++ EnumHolder::EnumQt32 enumQt32; ++ in >> enum16 >> enum32 >> enumQt16 >> enumQt32; ++ ASSERT_THAT(in.status(), Eq(QDataStream::Status::Ok)); ++ EXPECT_TRUE(in.atEnd()); ++ ++ EXPECT_THAT((int)enum16, Eq(0xabcd)); ++ EXPECT_THAT((int)enum32, Eq(0x123456)); ++ EXPECT_THAT((int)enumQt16, Eq(0x4321)); ++ EXPECT_THAT((int)enumQt32, Eq(0xfedcba)); ++} ++ ++#include "typestest.moc" Deleted: quassel.conf =================================================================== --- quassel.conf 2021-04-21 21:22:55 UTC (rev 920714) +++ quassel.conf 2021-04-21 21:23:27 UTC (rev 920715) @@ -1,2 +0,0 @@ -QUASSEL_USER=quassel -LISTEN=127.0.0.1 Copied: quassel/repos/community-x86_64/quassel.conf (from rev 920714, quassel/trunk/quassel.conf) =================================================================== --- quassel.conf (rev 0) +++ quassel.conf 2021-04-21 21:23:27 UTC (rev 920715) @@ -0,0 +1,2 @@ +QUASSEL_USER=quassel +LISTEN=127.0.0.1 Deleted: quassel.service =================================================================== --- quassel.service 2021-04-21 21:22:55 UTC (rev 920714) +++ quassel.service 2021-04-21 21:23:27 UTC (rev 920715) @@ -1,14 +0,0 @@ -[Unit] -Description=Quassel Core -After=network.target postgresql.service -Wants=postgresql.service - -[Service] -User=quassel -Group=quassel -PIDFile=/var/run/quassel.pid -EnvironmentFile=/etc/conf.d/quassel -ExecStart=/usr/bin/quasselcore --configdir=/var/lib/quassel - -[Install] -WantedBy=multi-user.target Copied: quassel/repos/community-x86_64/quassel.service (from rev 920714, quassel/trunk/quassel.service) =================================================================== --- quassel.service (rev 0) +++ quassel.service 2021-04-21 21:23:27 UTC (rev 920715) @@ -0,0 +1,14 @@ +[Unit] +Description=Quassel Core +After=network.target postgresql.service +Wants=postgresql.service + +[Service] +User=quassel +Group=quassel +PIDFile=/var/run/quassel.pid +EnvironmentFile=/etc/conf.d/quassel +ExecStart=/usr/bin/quasselcore --configdir=/var/lib/quassel + +[Install] +WantedBy=multi-user.target Deleted: quassel.sysusers =================================================================== --- quassel.sysusers 2021-04-21 21:22:55 UTC (rev 920714) +++ quassel.sysusers 2021-04-21 21:23:27 UTC (rev 920715) @@ -1 +0,0 @@ -u quassel - - /var/lib/quassel Copied: quassel/repos/community-x86_64/quassel.sysusers (from rev 920714, quassel/trunk/quassel.sysusers) =================================================================== --- quassel.sysusers (rev 0) +++ quassel.sysusers 2021-04-21 21:23:27 UTC (rev 920715) @@ -0,0 +1 @@ +u quassel - - /var/lib/quassel Deleted: quassel.tmpfiles =================================================================== --- quassel.tmpfiles 2021-04-21 21:22:55 UTC (rev 920714) +++ quassel.tmpfiles 2021-04-21 21:23:27 UTC (rev 920715) @@ -1 +0,0 @@ -d /var/lib/quassel - quassel quassel - - Copied: quassel/repos/community-x86_64/quassel.tmpfiles (from rev 920714, quassel/trunk/quassel.tmpfiles) =================================================================== --- quassel.tmpfiles (rev 0) +++ quassel.tmpfiles 2021-04-21 21:23:27 UTC (rev 920715) @@ -0,0 +1 @@ +d /var/lib/quassel - quassel quassel - -