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 Sun Nov 15 12:16:24 UTC 2015 - vbabka@suse.com

View File

@ -1,7 +1,7 @@
# #
# spec file for package quassel # 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 # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # 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 Patch1: Fix-build-with-Qt-5.5.patch
# PATCH-FIX-UPSTREAM Fix-rejoining-parted-channels.patch # PATCH-FIX-UPSTREAM Fix-rejoining-parted-channels.patch
Patch2: 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: cmake >= 2.8.10
BuildRequires: extra-cmake-modules BuildRequires: extra-cmake-modules
BuildRequires: fdupes 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 making communication with your peers not only convenient, but also ubiquitous
available. 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 %package core
Summary: Modern, cross-platform, distributed IRC client Summary: Modern, cross-platform, distributed IRC client
@ -163,6 +183,7 @@ This contains common parts shared by %{name} and %{name}-client
%patch0 -p1 %patch0 -p1
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1
%build %build
FAKE_BUILDDATE=$(LC_ALL=C date -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y') 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 %cmake_kf5 -d build -- -DUSE_QT5=ON -DWITH_WEBKIT=ON -DWITH_KDE=ON
make %{?_smp_mflags} make %{?_smp_mflags}
cd ..
%cmake_kf5 -d build-qt5 -- -DUSE_QT5=ON -DWITH_WEBKIT=ON -DWITH_KDE=OFF
make %{?_smp_mflags}
%install %install
%kf5_makeinstall -C build %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} %fdupes %{buildroot}
install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name}core install -d -m 755 %{buildroot}%{_localstatedir}/lib/%{name}core
install -d -m 755 %{buildroot}%{_sbindir} install -d -m 755 %{buildroot}%{_sbindir}
@ -209,6 +242,22 @@ install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.
%postun base %postun base
%icon_theme_cache_postun %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 %files mono
%defattr(-,root,root) %defattr(-,root,root)
%doc AUTHORS ChangeLog README %doc AUTHORS ChangeLog README
@ -218,7 +267,15 @@ install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.
%files client %files client
%defattr(-,root,root) %defattr(-,root,root)
%doc AUTHORS ChangeLog README %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 %{_bindir}/%{name}client
%files core %files core
@ -235,6 +292,7 @@ install -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.
%files base %files base
%defattr(-,root,root) %defattr(-,root,root)
%{_datadir}/applications/%{name}client.desktop
%{_datadir}/pixmaps/%{name}.png %{_datadir}/pixmaps/%{name}.png
%dir %{_datadir}/%{name} %dir %{_datadir}/%{name}
%{_datadir}/%{name} %{_datadir}/%{name}