summaryrefslogtreecommitdiff
path: root/libre/quassel
diff options
context:
space:
mode:
Diffstat (limited to 'libre/quassel')
-rw-r--r--libre/quassel/0001-qtui-Set-desktop-file-name.patch50
-rw-r--r--libre/quassel/PKGBUILD135
-rw-r--r--libre/quassel/quassel.conf2
-rw-r--r--libre/quassel/quassel.service14
-rw-r--r--libre/quassel/quassel.sysusers1
-rw-r--r--libre/quassel/quassel.tmpfiles1
-rw-r--r--libre/quassel/search-duck.patch26
7 files changed, 229 insertions, 0 deletions
diff --git a/libre/quassel/0001-qtui-Set-desktop-file-name.patch b/libre/quassel/0001-qtui-Set-desktop-file-name.patch
new file mode 100644
index 000000000..e82bb8d82
--- /dev/null
+++ b/libre/quassel/0001-qtui-Set-desktop-file-name.patch
@@ -0,0 +1,50 @@
+From 919ac3d7184faee0ccfa7fe65c6635a7dcf5d234 Mon Sep 17 00:00:00 2001
+Message-Id: <919ac3d7184faee0ccfa7fe65c6635a7dcf5d234.1553291431.git.jan.steffens@gmail.com>
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@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
+
diff --git a/libre/quassel/PKGBUILD b/libre/quassel/PKGBUILD
new file mode 100644
index 000000000..e8cd70257
--- /dev/null
+++ b/libre/quassel/PKGBUILD
@@ -0,0 +1,135 @@
+# Maintainer: bill-auger <bill-auger@programmer.net>
+# Maintainer (arch): Jaroslav Lichtblau <svetlemodry@archlinux.org>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgbase=quassel
+pkgname=('quassel-core'
+ 'quassel-client'
+ 'quassel-client-small'
+ 'quassel-monolithic')
+pkgver=0.13.1
+pkgrel=2
+pkgrel+=.parabola1
+pkgdesc="Next-generation distributed IRC client"
+arch=('x86_64')
+url="https://quassel-irc.org/"
+license=('GPL')
+makedepends=('qt5-base' 'qt5-tools' 'qt5-webkit' '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
+ search-duck.patch
+ $pkgbase.service
+ $pkgbase.sysusers
+ $pkgbase.tmpfiles
+ $pkgbase.conf)
+sha256sums=('48efee9778743b1db9f44efb91d1c913104db01190c57f2ff57483c39a97e855'
+ '695ff3b605ea62ccfdf9ec4b9e6ffa74f3e2c0ac81402d51a74d263c47886c92'
+ '3d90a7edfa2b2e27e5f56b25f7583585efbcd35219c04a3bf138d9fe9bb9eab2'
+ '5dbe20290f3361b9b7a74a52905137e76b656976febf2d31082a2276f9dcde7f'
+ '3c72441a99e2668c6a8a751fa07beeb44f937576c8a1b5f615e4a55f841d93d9'
+ '2afd4340c7713f6533e5d175a86b28fd118ecd907776c2b10925d1a4fb31cdca'
+ 'f3031ea8217e01ba42cea14606169e3e27affa5918968ffd5a03c21ae92fe2b8')
+
+prepare() {
+ cd $pkgbase-$pkgver
+ patch -Np1 -i ../0001-qtui-Set-desktop-file-name.patch
+ patch -Np1 -i ../search-duck.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_WEBKIT=OFF \
+ -DWITH_WEBENGINE=OFF
+
+ _build monolithic \
+ -DWANT_CORE=OFF \
+ -DWANT_QTCLIENT=OFF \
+ -DWITH_WEBKIT=ON \
+ -DWITH_WEBENGINE=OFF \
+ -DWITH_KDE=ON
+
+ _build client \
+ -DWANT_CORE=OFF \
+ -DWANT_MONO=OFF \
+ -DWITH_WEBKIT=ON \
+ -DWITH_WEBENGINE=OFF \
+ -DWITH_KDE=ON
+
+ _build client-small \
+ -DWANT_CORE=OFF \
+ -DWANT_MONO=OFF \
+ -DWITH_WEBKIT=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-webkit' 'qt5-multimedia' 'knotifyconfig'
+ 'hicolor-icon-theme')
+conflicts=('quassel-monolithic' 'quassel-client-small')
+
+ _install client
+}
+
+package_quassel-client-small() {
+pkgdesc="Next-generation distributed IRC client - client only, reduced deps"
+depends=('qt5-base' 'qt5-svg' 'sonnet' 'hicolor-icon-theme')
+conflicts=('quassel-monolithic' 'quassel-client')
+replaces=('quassel-remote')
+
+ _install client-small
+}
+
+package_quassel-monolithic() {
+pkgdesc="Next-generation distributed IRC client - monolithic"
+depends=('qt5-base' 'qt5-webkit' 'qt5-multimedia' 'qt5-script' 'qca-qt5'
+ 'knotifyconfig' 'libldap' 'hicolor-icon-theme')
+optdepends=('postgresql: PostgreSQL database support')
+conflicts=('quassel-client' 'quassel-client-small')
+
+ _install monolithic
+}
diff --git a/libre/quassel/quassel.conf b/libre/quassel/quassel.conf
new file mode 100644
index 000000000..6b667d8d4
--- /dev/null
+++ b/libre/quassel/quassel.conf
@@ -0,0 +1,2 @@
+QUASSEL_USER=quassel
+LISTEN=127.0.0.1
diff --git a/libre/quassel/quassel.service b/libre/quassel/quassel.service
new file mode 100644
index 000000000..b23c61af2
--- /dev/null
+++ b/libre/quassel/quassel.service
@@ -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
diff --git a/libre/quassel/quassel.sysusers b/libre/quassel/quassel.sysusers
new file mode 100644
index 000000000..ea4fdf0f0
--- /dev/null
+++ b/libre/quassel/quassel.sysusers
@@ -0,0 +1 @@
+u quassel - - /var/lib/quassel
diff --git a/libre/quassel/quassel.tmpfiles b/libre/quassel/quassel.tmpfiles
new file mode 100644
index 000000000..b10c730d3
--- /dev/null
+++ b/libre/quassel/quassel.tmpfiles
@@ -0,0 +1 @@
+d /var/lib/quassel - quassel quassel - -
diff --git a/libre/quassel/search-duck.patch b/libre/quassel/search-duck.patch
new file mode 100644
index 000000000..9fc77b724
--- /dev/null
+++ b/libre/quassel/search-duck.patch
@@ -0,0 +1,26 @@
+diff --git a/src/qtui/chatviewsettings.h b/src/qtui/chatviewsettings.h
+index 838891b..4d28926 100644
+--- a/src/qtui/chatviewsettings.h
++++ b/src/qtui/chatviewsettings.h
+@@ -104,7 +104,7 @@ public:
+ */
+ inline void enableSenderBrackets(bool enabled) { setLocalValue("ShowSenderBrackets", enabled); }
+
+- inline QString webSearchUrlFormatString() { return localValue("WebSearchUrlFormat", "https://www.google.com/search?q=%s").toString(); }
++ inline QString webSearchUrlFormatString() { return localValue("WebSearchUrlFormat", "https://duckduckgo.com/?q=%s").toString(); }
+ inline void setWebSearchUrlFormatString(const QString &format) { setLocalValue("WebSearchUrlFormat", format); }
+ };
+
+diff --git a/src/qtui/settingspages/chatviewsettingspage.ui b/src/qtui/settingspages/chatviewsettingspage.ui
+index 99f568a..7d13fff 100644
+--- a/src/qtui/settingspages/chatviewsettingspage.ui
++++ b/src/qtui/settingspages/chatviewsettingspage.ui
+@@ -244,7 +244,7 @@
+ <string notr="true">WebSearchUrlFormat</string>
+ </property>
+ <property name="defaultValue" stdset="0">
+- <string>https://www.google.com/search?q=%s</string>
++ <string>https://duckduckgo.com/?q=%s</string>
+ </property>
+ </widget>
+ </item>