Accepting request 358217 from KDE:Extra

- Allow building kde and non-kde based quassel version
- Move quasselclient desktop to base so both variants don't have to
  rename the file
- Introduce quasselclient-qt5 subpackage
- Use update-alternatives to switch between kde/qt5 versions

- Apply patch for bnc#958928 CVE-2015-8547:
  * CVE-2015-8547.patch

OBS-URL: https://build.opensuse.org/request/show/358217
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/quassel?expand=0&rev=31
This commit is contained in:
Dominique Leuenberger 2016-02-08 08:48:27 +00:00 committed by Git OBS Bridge
commit 9d2e7ddb30
3 changed files with 98 additions and 3 deletions

22
CVE-2015-8547.patch Normal file
View File

@ -0,0 +1,22 @@
From 476aaa050f26d6a31494631d172724409e4c569b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Konstantin=20Bl=C3=A4si?= <kblaesi@gmail.com>
Date: Wed, 21 Oct 2015 03:26:02 +0200
Subject: [PATCH] Fixes a crash of the core when executing "/op *" in a query.
---
src/core/coreuserinputhandler.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/coreuserinputhandler.cpp b/src/core/coreuserinputhandler.cpp
index 7887a92..73aac48 100644
--- a/src/core/coreuserinputhandler.cpp
+++ b/src/core/coreuserinputhandler.cpp
@@ -228,7 +228,7 @@ void CoreUserInputHandler::doMode(const BufferInfo &bufferInfo, const QChar& add
if (!isNumber || maxModes == 0) maxModes = 1;
QStringList nickList;
- if (nicks == "*") { // All users in channel
+ if (nicks == "*" && bufferInfo.type() == BufferInfo::ChannelBuffer) { // All users in channel
const QList<IrcUser*> users = network()->ircChannel(bufferInfo.bufferName())->ircUsers();
foreach(IrcUser *user, users) {
if ((addOrRemove == '+' && !network()->ircChannel(bufferInfo.bufferName())->userModes(user).contains(mode))

View File

@ -1,3 +1,18 @@
-------------------------------------------------------------------
Sun Feb 7 10:04:26 UTC 2016 - tchvatal@suse.com
- Allow building kde and non-kde based quassel version
- Move quasselclient desktop to base so both variants don't have to
rename the file
- Introduce quasselclient-qt5 subpackage
- Use update-alternatives to switch between kde/qt5 versions
-------------------------------------------------------------------
Mon Dec 14 12:14:48 UTC 2015 - tchvatal@suse.com
- Apply patch for bnc#958928 CVE-2015-8547:
* CVE-2015-8547.patch
-------------------------------------------------------------------
Sun Nov 15 12:16:24 UTC 2015 - vbabka@suse.com

View File

@ -1,7 +1,7 @@
#
# spec file for package quassel
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -35,6 +35,8 @@ Patch0: quassel-set-required-libs-and-flags.patch
Patch1: Fix-build-with-Qt-5.5.patch
# PATCH-FIX-UPSTREAM Fix-rejoining-parted-channels.patch
Patch2: Fix-rejoining-parted-channels.patch
# PATCH-FIX-UPSTREAM: fix CVE-2015-8547
Patch3: CVE-2015-8547.patch
BuildRequires: cmake >= 2.8.10
BuildRequires: extra-cmake-modules
BuildRequires: fdupes
@ -118,7 +120,25 @@ Linux®, Windows®, and MacOS X® as well as Qtopia-based cell phones and PDAs),
making communication with your peers not only convenient, but also ubiquitous
available.
This is the quassel client only
This is the quassel KDE client only
%package client-qt5
Summary: Modern, cross-platform, distributed IRC client
Group: Productivity/Networking/IRC
Requires: %{name}-base = %{version}
Provides: %{name}_ui = %{version}
%description client-qt5
Quassel IRC is a modern, cross-platform, distributed IRC client, meaning that
one (or multiple) client(s) can attach to and detach from a central core --
much like the popular combination of screen and a text-based IRC client such
as WeeChat, but graphical. In addition to this uniqe feature, we aim to bring
a pleasurable, comfortable chatting experience to all major platforms (including
Linux®, Windows®, and MacOS as well as Qtopia-based cell phones and PDAs),
making communication with your peers not only convenient, but also ubiquitous
available.
This is the quassel Qt5 client only
%package core
Summary: Modern, cross-platform, distributed IRC client
@ -163,6 +183,7 @@ This contains common parts shared by %{name} and %{name}-client
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
FAKE_BUILDDATE=$(LC_ALL=C date -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y')
@ -172,9 +193,21 @@ sed -i "s/__TIME__/\"$FAKE_BUILDTIME\"/" src/common/main.cpp src/common/quassel.
%cmake_kf5 -d build -- -DUSE_QT5=ON -DWITH_WEBKIT=ON -DWITH_KDE=ON
make %{?_smp_mflags}
cd ..
%cmake_kf5 -d build-qt5 -- -DUSE_QT5=ON -DWITH_WEBKIT=ON -DWITH_KDE=OFF
make %{?_smp_mflags}
%install
%kf5_makeinstall -C build
# Allow client qt5/kde co-install
mv %{buildroot}%{_bindir}/quasselclient %{buildroot}%{_bindir}/quasselclient-kde
install build-qt5/quasselclient %{buildroot}%{_bindir}/quasselclient-qt5
# Alternatives
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
touch %{buildroot}%{_sysconfdir}/alternatives/quasselclient
ln -sf %{_sysconfdir}/alternatives/quasselclient %{buildroot}%{_bindir}/quasselclient
%fdupes %{buildroot}
install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name}core
install -d -m 755 %{buildroot}%{_sbindir}
@ -209,6 +242,22 @@ install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.
%postun base
%icon_theme_cache_postun
%post client
update-alternatives --install %{_bindir}/quasselclient quasselclient %{_bindir}/quasselclient-kde 20
%postun client
if [ $1 -eq 0 ] ; then
update-alternatives --remove quasselclient %{_bindir}/quasselclient-kde
fi
%post client-qt5
update-alternatives --install %{_bindir}/quasselclient quasselclient %{_bindir}/quasselclient-qt5 10
%postun client-qt5
if [ $1 -eq 0 ] ; then
update-alternatives --remove quasselclient %{_bindir}/quasselclient-qt5
fi
%files mono
%defattr(-,root,root)
%doc AUTHORS ChangeLog README
@ -218,7 +267,15 @@ install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.
%files client
%defattr(-,root,root)
%doc AUTHORS ChangeLog README
%{_datadir}/applications/%{name}client.desktop
%{_bindir}/%{name}client-kde
%ghost %{_sysconfdir}/alternatives/quasselclient
%{_bindir}/%{name}client
%files client-qt5
%defattr(-,root,root)
%doc AUTHORS ChangeLog README
%{_bindir}/%{name}client-qt5
%ghost %{_sysconfdir}/alternatives/quasselclient
%{_bindir}/%{name}client
%files core
@ -235,6 +292,7 @@ install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.
%files base
%defattr(-,root,root)
%{_datadir}/applications/%{name}client.desktop
%{_datadir}/pixmaps/%{name}.png
%dir %{_datadir}/%{name}
%{_datadir}/%{name}