File psi+.spec of Package psi+

#
# spec file for package psi+
#
# Copyright (c) 2017 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/
#


%define __builder ninja

%define version_unconverted 1.2.109+0

Name:           psi+
Url:            https://github.com/psi-plus
Version:        1.2.109+0
Release:        0
Summary:        Jabber client using Qt
License:        GPL-2.0+
Group:          Productivity/Networking/Talk/Clients
Source0:        psi+-%{version}.tar.xz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  cmake >= 3.1
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  hunspell-devel
BuildRequires:  libidn-devel
BuildRequires:  libotr-devel
BuildRequires:  libproxy-devel
BuildRequires:  cmake(Qt5Concurrent)
BuildRequires:  cmake(Qt5Core)
BuildRequires:  cmake(Qt5DBus)
BuildRequires:  cmake(Qt5Gui)
BuildRequires:  cmake(Qt5LinguistTools)
BuildRequires:  cmake(Qt5Multimedia)
BuildRequires:  cmake(Qt5PrintSupport)
BuildRequires:  cmake(Qt5Svg)
BuildRequires:  cmake(Qt5WebKit)
BuildRequires:  cmake(Qt5WebKitWidgets)
BuildRequires:  cmake(Qt5X11Extras)
BuildRequires:  cmake(Qt5Xml)
BuildRequires:  pkgconfig(qca2-qt5)
BuildRequires:  libXScrnSaver-devel
BuildRequires:  libtidy-devel
BuildRequires:  ninja
BuildRequires:  openssl-devel
BuildRequires:  update-desktop-files
BuildRequires:  xz
BuildRequires:  zlib-devel
Recommends:     %{name}-lang
Requires:       %{name}-data = %{version}
Obsoletes:      psi
Obsoletes:      psi+ > 20100101

%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 data
Summary:        Data for Psi+
Group:          Productivity/Networking/Talk/Clients
BuildArch:      noarch
Provides:       %{name}-icons = %{version}
Obsoletes:      %{name}-icons > 20100101
Provides:       %{name}-sounds = %{version}
Obsoletes:      %{name}-sounds > 20100101
Provides:       %{name}-themes = %{version}
Obsoletes:      %{name}-themes > 20100101

%description data
Icons, sounds, and themes for Psi+.

%package plugins-devel
Summary:        Headers for Psi plugins
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}

%description plugins-devel
Headers and qmake project include files for developing Psi+ plugins.

%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-imagepreviewplugin
Summary:        Plugin for Psi
Group:          Productivity/Networking/Talk/Clients
Requires:       %{name} = %{version}

%description plugins-imagepreviewplugin
This plugin shows the preview image for an image URL.

%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-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-httpuploadplugin
Summary:        Plugin for Psi
Group:          Productivity/Networking/Talk/Clients
Requires:       %{name} = %{version}

%description plugins-httpuploadplugin
This plugin allows uploading images and other files via XEP-0363.

%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-enummessagesplugin
Summary:        Plugin for Psi
Group:          Productivity/Networking/Talk/Clients
Requires:       %{name} = %{version}

%description plugins-enummessagesplugin
The plugin is designed to enumerate messages, adding the messages numbers in
chat logs and notification of missed messages.

Supports per contact on / off message enumeration via the buttons on the chats
toolbar.

%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-messagefilterplugin
Summary:        Plugin for Psi
Group:          Productivity/Networking/Talk/Clients
Requires:       %{name} = %{version}

%description plugins-messagefilterplugin
A Psi plugin for filtering messages.

%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-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

%build
%cmake \
	-DENABLE_PLUGINS=ON

#%%make_jobs won't work -- overriden by qmake's -- opencode it
ninja -v %{?_smp_mflags}

%install
%cmake_install

%suse_update_desktop_file psi-plus

# plugins-devel
install -d %{buildroot}%{_datadir}/psi-plus/plugins/include/
install -m 0644 -t %{buildroot}%{_datadir}/psi-plus/plugins/ src/plugins/plugins.pri
install -m 0644 -t %{buildroot}%{_datadir}/psi-plus/plugins/include/ src/plugins/include/*
sed -e 's:target.path.*:target.path = %pluginspath:' src/plugins/psiplugin.pri > %{buildroot}%{_datadir}/psi-plus/plugins/psiplugin.pri

%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-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-gnupgplugin
%defattr(-,root,root)
%{pluginspath}/libgnupgplugin.so

%files plugins-gomokugameplugin
%defattr(-,root,root)
%{pluginspath}/libgomokugameplugin.so

%files plugins-httpuploadplugin
%defattr(-,root,root)
%{pluginspath}/libhttpuploadplugin.so

%files plugins-imageplugin
%defattr(-,root,root)
%{pluginspath}/libimageplugin.so

%files plugins-imagepreviewplugin
%defattr(-,root,root)
%{pluginspath}/libimagepreviewplugin.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-enummessagesplugin
%defattr(-,root,root)
%{pluginspath}/libenummessagesplugin.so

%files plugins-messagefilterplugin
%defattr(-,root,root)
%{pluginspath}/libmessagefilterplugin.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}/pixmaps/psi-plus.png
%{_datadir}/applications/psi-plus.desktop
%dir %{_datadir}/psi-plus/
%{_datadir}/psi-plus/certs
%dir %{_libdir}/psi-plus
%dir %{_libdir}/psi-plus/plugins

%files data
%defattr(-,root,root)
%dir %{iconspath}/
%dir %{iconspath}/activities
%{iconspath}/activities/default
%dir %{iconspath}/affiliations
%{iconspath}/affiliations/default
%dir %{iconspath}/clients
%{iconspath}/clients/default
%dir %{iconspath}/moods
%{iconspath}/moods/default
%dir %{iconspath}/roster
%{iconspath}/roster/default
%{iconspath}/roster/crystal-gadu.jisp
%{iconspath}/roster/crystal-icq.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/client_icons.txt
%{_datadir}/psi-plus/sound
%{_datadir}/psi-plus/themes

%files plugins-devel
%defattr(-,root,root)
%dir %{_datadir}/psi-plus/plugins/
%{_datadir}/psi-plus/plugins/include/
%{_datadir}/psi-plus/plugins/*.pri

%changelog
openSUSE Build Service is sponsored by