File psi+.spec of Package psi+
#
# spec file for package psi+
#
# Copyright (c) 2015 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%if 0%{?suse_version} > 1320
#%%define with_qt5 1
%endif
Name: psi+
Url: https://github.com/psi-plus
Version: 20150925
Release: 0
Summary: Jabber client using Qt
License: GPL-2.0+
Group: Productivity/Networking/Talk/Clients
Source0: psi+-%{version}.tar.xz
Source1: psi-plus-l10n-1.tar.xz
Patch1: proper-activate.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: aspell-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gdb
BuildRequires: libidn-devel
BuildRequires: libotr-devel
BuildRequires: libproxy-devel
%if 0%{?with_qt5}
BuildRequires: libqt5-linguist
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Multimedia)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5Svg)
BuildRequires: pkgconfig(Qt5WebKit)
BuildRequires: pkgconfig(Qt5WebKitWidgets)
BuildRequires: pkgconfig(Qt5X11Extras)
BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(qca2-qt5)
%else
BuildRequires: libQtWebKit-devel
BuildRequires: libqca2-devel
BuildRequires: libqt4-devel >= 4.7.0
%endif
BuildRequires: libtidy-devel
BuildRequires: openssl-devel
BuildRequires: update-desktop-files
BuildRequires: xz
BuildRequires: zlib-devel
%define iconspath %{_datadir}/psi-plus/iconsets
%define pluginspath %{_libdir}/psi-plus/plugins
%description
Psi is the premiere Instant Messaging application designed for
GNU/Linux, Microsoft Windows, Apple Mac OS X. Built upon an open
protocol named Jabber, Psi is a fast and lightweight messaging client
that utilises the best in open source technologies. Psi contains all
the features necessary to chat, with no bloated extras that slow your
computer down.
%package plugins-juickplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-juickplugin
This plugin is designed to work efficiently and comfortably with the Juick
microblogging service.
%package plugins-autoreplyplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-autoreplyplugin
This plugin acts as an auto-answering machine.
%package plugins-translateplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-translateplugin
This plugin allows you to convert selected text into another language.
%package plugins-imageplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-imageplugin
This plugin is designed to send images to roster contacts.
%package plugins-jabberdiskplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-jabberdiskplugin
This plugin adds support for remote jabber disks into Psi+.
%package plugins-birthdayreminderplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-birthdayreminderplugin
This plugin is designed to show reminders of upcoming birthdays.
%package plugins-gmailserviceplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-gmailserviceplugin
Shows notifications of new messages in your Gmailbox.
%package plugins-gnupgplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-gnupgplugin
Plugin to support GnuPG end-to-end encryption.
%package plugins-gomokugameplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-gomokugameplugin
Plugin to add Gomoku game to Psi+.
%package plugins-gnome3supportplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-gnome3supportplugin
This plugin is designed to add support of GNOME 3 presence status changes.
%package plugins-screenshotplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-screenshotplugin
This plugin allows you to make screenshots and save them to your hard drive or
upload them to an FTP or HTTP server.
%package plugins-stopspamplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-stopspamplugin
This plugin is designed to block spam messages and other unwanted information
from Psi+ users.
%package plugins-conferenceloggerplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-conferenceloggerplugin
This plugin is designed to save conference logs in which the Psi+ user sits.
%package plugins-cleanerplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-cleanerplugin
This plugin is designed to clear the avatar cache, saved local copies of vCards
and history logs.
%package plugins-clientswitcherplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-clientswitcherplugin
This plugin allows Psi+ to provide a different identification. For example a
user can set Psi+ to tell others that the user is running Miranda on Windows
instead of Psi+ on Linux.
%package plugins-icqdieplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-icqdieplugin
This plugin is designed to help you transfer as many contacts as possible from
ICQ to Jabber.
%package plugins-watcherplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-watcherplugin
This plugin is designed to monitor the status of specific roster contacts, as
well as for substitution of standard sounds of incoming messages.
%package plugins-attentionplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-attentionplugin
This plugin is designed to send and receive special messages such as Attentions.
%package plugins-extendedmenuplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-extendedmenuplugin
This plugin adds more options to contact's menus.
%package plugins-extendedoptionsplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-extendedoptionsplugin
This plugin is designed to allow easy configuration of some advanced options in
Psi+.
%package plugins-storagenotesplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-storagenotesplugin
This plugin is an implementation of XEP-0049: Private XML Storage.
%package plugins-historykeeperplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-historykeeperplugin
This plugin is designed to remove the history of selected contacts when the Psi+
is closed.
%package plugins-chessplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-chessplugin
This plugin adds the chess game into Psi+.
%package plugins-otrplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-otrplugin
Off-the-Record (OTR) Messaging allows you to have private conversations over
instant messaging.
%package plugins-pepchangenotifyplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-pepchangenotifyplugin
This plugin shows popup notifications when users from your roster changes
their mood, tune or activity.
%package plugins-skinsplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-skinsplugin
This plugin is designed to create, store and apply skins to Psi+.
%package plugins-qipxstatusesplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-qipxstatusesplugin
This plugin is designed to display x-statuses of contacts using the QIP Infium
jabber client.
%package plugins-videostatusplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-videostatusplugin
This plugin is designed to set the custom status when you see the video in
selected video player.
%package plugins-captchaformsplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-captchaformsplugin
This plugin is designed to pass of captcha directly from the Psi+.
%package plugins-contentdownloaderplugin
Summary: Plugin for Psi
Group: Productivity/Networking/Talk/Clients
Requires: %{name} = %{version}
%description plugins-contentdownloaderplugin
This plugin is designed to make it easy to download and install iconsets and
other resources for Psi+.
%prep
%setup -q -b 1
%patch1 -p1
%if 0%{?with_qt5}
sed -i 's@\<lrelease\>@&-qt5@' ../psi-plus-l10n-1/update-repo.sh
%endif
# generic/antievil does not build (yet)
# generic/consoledump does not build (yet)
# generic/chess is a standalone app for chessplugin
# generic/echo does not build (yet)
# generic/noughtsandcrosses does not build (needs old Qt3 support)
# generic/null is a nop
# generic/python does not build (needs old python 2 and has invalid -I)
# generic/urlwatcher does not build (yet)
GENERIC_PLUGINS="attentionplugin autoreplyplugin birthdayreminderplugin
captchaformsplugin cleanerplugin clientswitcherplugin
conferenceloggerplugin contentdownloaderplugin extendedmenuplugin
extendedoptionsplugin gmailserviceplugin gnupgplugin gomokugameplugin
historykeeperplugin chessplugin icqdieplugin imageplugin
jabberdiskplugin juickplugin otrplugin pepchangenotifyplugin
qipxstatusesplugin screenshotplugin skinsplugin stopspamplugin
storagenotesplugin translateplugin videostatusplugin watcherplugin"
UNIX_PLUGINS="gnome3supportplugin"
PLUGINS="`echo -n $GENERIC_PLUGINS | sed 's@\<@generic/@g'`"
PLUGINS="$PLUGINS `echo -n $UNIX_PLUGINS | sed 's@\<@unix/@g'`"
%if 0%{?with_qt5}
QMAKE=qmake-qt5
%else
QMAKE=qmake
%endif
# generate Makefile for plugins
cat >src/plugins/Makefile <<EOF
SUBDIRS=$PLUGINS
PLUGINS_PATH=/usr/lib64/
INSTALL=install
all: \$(SUBDIRS)
install:
\$(INSTALL) -d \$(PLUGINS_PATH)
for DIR in \$(SUBDIRS); do \
PLUGIN="lib\`basename \$\$DIR\`.so"; \
\$(INSTALL) -m 755 \$\$DIR/\$\$PLUGIN \$(PLUGINS_PATH); \
done
\$(SUBDIRS)::
cd \$@; $QMAKE
\$(MAKE) -C \$@ \$(MAKECMDGOALS)
EOF
%build
# do not use %%configure - not real configure script
export QMAKE_CXXFLAGS="%{optflags}"
./configure --prefix=%{_prefix} --libdir=%{_libdir} \
--enable-plugins \
--enable-webkit \
--enable-whiteboarding \
%if 0%{?with_qt5}
--with-qca-inc=/usr/include/qt5/Qca-qt5/ \
--with-qca-lib=/usr/lib64 \
%endif
--debug --no-separate-debug-info
make %{?_smp_mflags}
make -C src/plugins %{?_smp_mflags}
cd %{_builddir}/psi-plus-l10n-1/
./update-repo.sh make
%install
make INSTALL_ROOT=%{buildroot} install
rm -f %{buildroot}%{_datadir}/psi-plus/{COPYING,README}
rm -f %{buildroot}%{_datadir}/psi-plus/iconsets/emoticons/utils/smiles_conv.zip
%suse_update_desktop_file psi-plus
# plugins
make -C src/plugins %{?_smp_mflags} install \
PLUGINS_PATH="%{buildroot}%{pluginspath}"
# translations
install -m 0644 -t %{buildroot}%{_datadir}/psi-plus ../psi-plus-l10n-1/out/*.qm
%fdupes $RPM_BUILD_ROOT/%{_datadir}
%files plugins-juickplugin
%defattr(-,root,root)
%{pluginspath}/libjuickplugin.so
%files plugins-autoreplyplugin
%defattr(-,root,root)
%{pluginspath}/libautoreplyplugin.so
%files plugins-captchaformsplugin
%defattr(-,root,root)
%{pluginspath}/libcaptchaformsplugin.so
%files plugins-contentdownloaderplugin
%defattr(-,root,root)
%{pluginspath}/libcontentdownloaderplugin.so
%files plugins-translateplugin
%defattr(-,root,root)
%{pluginspath}/libtranslateplugin.so
%files plugins-screenshotplugin
%defattr(-,root,root)
%{pluginspath}/libscreenshotplugin.so
%files plugins-birthdayreminderplugin
%defattr(-,root,root)
%{pluginspath}/libbirthdayreminderplugin.so
%files plugins-stopspamplugin
%defattr(-,root,root)
%{pluginspath}/libstopspamplugin.so
%files plugins-conferenceloggerplugin
%defattr(-,root,root)
%{pluginspath}/libconferenceloggerplugin.so
%files plugins-gmailserviceplugin
%defattr(-,root,root)
%{pluginspath}/libgmailserviceplugin.so
%files plugins-gnupgplugin
%defattr(-,root,root)
%{pluginspath}/libgnupgplugin.so
%files plugins-gomokugameplugin
%defattr(-,root,root)
%{pluginspath}/libgomokugameplugin.so
%files plugins-gnome3supportplugin
%defattr(-,root,root)
%{pluginspath}/libgnome3supportplugin.so
%files plugins-imageplugin
%defattr(-,root,root)
%{pluginspath}/libimageplugin.so
%files plugins-jabberdiskplugin
%defattr(-,root,root)
%{pluginspath}/libjabberdiskplugin.so
%files plugins-icqdieplugin
%defattr(-,root,root)
%{pluginspath}/libicqdieplugin.so
%files plugins-cleanerplugin
%defattr(-,root,root)
%{pluginspath}/libcleanerplugin.so
%files plugins-clientswitcherplugin
%defattr(-,root,root)
%{pluginspath}/libclientswitcherplugin.so
%files plugins-watcherplugin
%defattr(-,root,root)
%{pluginspath}/libwatcherplugin.so
%files plugins-attentionplugin
%defattr(-,root,root)
%{pluginspath}/libattentionplugin.so
%files plugins-extendedmenuplugin
%defattr(-,root,root)
%{pluginspath}/libextendedmenuplugin.so
%files plugins-extendedoptionsplugin
%defattr(-,root,root)
%{pluginspath}/libextendedoptionsplugin.so
%files plugins-storagenotesplugin
%defattr(-,root,root)
%{pluginspath}/libstoragenotesplugin.so
%files plugins-historykeeperplugin
%defattr(-,root,root)
%{pluginspath}/libhistorykeeperplugin.so
%files plugins-chessplugin
%defattr(-,root,root)
%{pluginspath}/libchessplugin.so
%files plugins-otrplugin
%defattr(-,root,root)
%{pluginspath}/libotrplugin.so
%files plugins-pepchangenotifyplugin
%defattr(-,root,root)
%{pluginspath}/libpepchangenotifyplugin.so
%files plugins-qipxstatusesplugin
%defattr(-,root,root)
%{pluginspath}/libqipxstatusesplugin.so
%files plugins-skinsplugin
%defattr(-,root,root)
%{pluginspath}/libskinsplugin.so
%files plugins-videostatusplugin
%defattr(-,root,root)
%{pluginspath}/libvideostatusplugin.so
%files
%defattr(-,root,root)
%doc ChangeLog COPYING README TODO
%{_bindir}/psi-plus
%{_datadir}/applications/psi-plus.desktop
%dir %{_datadir}/icons/hicolor/
%dir %{_datadir}/icons/hicolor/16x16
%dir %{_datadir}/icons/hicolor/16x16/apps
%dir %{_datadir}/icons/hicolor/32x32
%dir %{_datadir}/icons/hicolor/32x32/apps
%dir %{_datadir}/icons/hicolor/48x48
%dir %{_datadir}/icons/hicolor/48x48/apps
%dir %{_datadir}/icons/hicolor/64x64
%dir %{_datadir}/icons/hicolor/64x64/apps
%dir %{_datadir}/icons/hicolor/128x128
%dir %{_datadir}/icons/hicolor/128x128/apps
%{_datadir}/icons/hicolor/*/apps/psi-plus.png
%dir %{_datadir}/psi-plus/
%{_datadir}/psi-plus/certs
%dir %{iconspath}/
%dir %{iconspath}/affiliations
%{iconspath}/affiliations/default
%dir %{iconspath}/roster
%{iconspath}/roster/default
%{iconspath}/roster/crystal-aim.jisp
%{iconspath}/roster/crystal-gadu.jisp
%{iconspath}/roster/crystal-icq.jisp
%{iconspath}/roster/crystal-msn.jisp
%{iconspath}/roster/crystal-roster.jisp
%{iconspath}/roster/crystal-service.jisp
%{iconspath}/roster/crystal-sms.jisp
%{iconspath}/roster/crystal-yahoo.jisp
%{iconspath}/roster/stellar-1.jisp
%{iconspath}/roster/README
%dir %{iconspath}/system
%{iconspath}/system/default
%{iconspath}/system/README
%dir %{iconspath}/emoticons
%{iconspath}/emoticons/default
%{_datadir}/psi-plus/themes
%{_datadir}/psi-plus/sound
%{_datadir}/psi-plus/*.qm
%dir %{_libdir}/psi-plus
%dir %{_libdir}/psi-plus/plugins
%changelog