File swift-im.spec of Package swift-im

# spec file for package swift-im
# Copyright (c) 2020 SUSE LLC
# 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

%define _name swift
%if 0%{?sle_version} == 120300 || 0%{?sle_version} == 120200
%define _flags V=1 swiften_dll=1 test=none optimize=1 debug=0 cc=gcc-6 cxx=g++-6 cxxflags='%{optflags}'
%define _flags V=1 swiften_dll=1 test=none optimize=1 debug=0 cxxflags='%{optflags}'
Name:           swift-im
Version:        4.0.2
Release:        0
Summary:        XMPP client
License:        GPL-3.0-only
Group:          Productivity/Networking/Talk/Clients
Source2:        %{name}.keyring
Patch0:         swift-4.0-qt5.11-includes.patch
Patch1:         swift-im-boost-tribool.patch
Patch2:         0001-Fix-build-with-Qt-5.15.patch
Patch3:         0001-Avoid-deprecated-boost-endianess-include.patch
BuildRequires:  desktop-file-utils
BuildRequires:  docbook-dtds
BuildRequires:  fdupes
BuildRequires:  hicolor-icon-theme
BuildRequires:  libboost_atomic-devel
BuildRequires:  libboost_date_time-devel
BuildRequires:  libboost_filesystem-devel
BuildRequires:  libboost_headers-devel
BuildRequires:  libboost_program_options-devel
BuildRequires:  libboost_regex-devel
BuildRequires:  libboost_serialization-devel
BuildRequires:  libboost_system-devel
BuildRequires:  libboost_thread-devel
BuildRequires:  libminiupnpc-devel
BuildRequires:  lua53
BuildRequires:  pkgconfig
BuildRequires:  python2-base
BuildRequires:  python2-xml
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5DBus)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(Qt5Multimedia)
BuildRequires:  pkgconfig(Qt5Network)
BuildRequires:  pkgconfig(Qt5Svg)
BuildRequires:  pkgconfig(Qt5UiTools)
BuildRequires:  pkgconfig(Qt5WebKit)
BuildRequires:  pkgconfig(Qt5WebKitWidgets)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(Qt5X11Extras)
BuildRequires:  pkgconfig(avahi-client)
BuildRequires:  pkgconfig(expat)
BuildRequires:  pkgconfig(gconf-2.0)
BuildRequires:  pkgconfig(hunspell)
BuildRequires:  pkgconfig(libedit)
BuildRequires:  pkgconfig(libidn)
BuildRequires:  pkgconfig(libxml-2.0)
BuildRequires:  pkgconfig(libxslt)
BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(python)
BuildRequires:  pkgconfig(xscrnsaver)
BuildRequires:  pkgconfig(zlib)
%if 0%{?sle_version} == 120300 || 0%{?sle_version} == 120200
BuildRequires:  -gcc
BuildRequires:  -gcc-c++
BuildRequires:  gcc6
BuildRequires:  gcc6-c++

Swift is a Jabber/XMPP instant messaging chat application.

# -------------------------------- swiften ---------------------------

%package -n libSwiften4
Summary:        XMPP client/server library
Group:          System/Libraries

%description -n libSwiften4
Swiften is a C++ library for implementing XMPP applications.

# ------------------------------ swiften-devel -----------------------

%package -n swiften-devel
Summary:        Development files for the Swiften XMPP client/server library
Group:          Development/Libraries/C and C++
Requires:       libSwiften4 = %{version}

%description -n swiften-devel
Swiften is a C++ library for implementing XMPP applications.

%autosetup -p1 -n swift-%{version}

# Remove 3rd party libraries
# Following ones are used from distro:
find 3rdParty/Boost/src -delete
find 3rdParty/Expat/src -delete
find 3rdParty/LibIDN -delete
find 3rdParty/Lua -delete
find 3rdParty/ZLib -delete
find 3rdParty/OpenSSL -delete
find 3rdParty/DocBook -delete
# P2P
find 3rdParty/LibMiniUPnPc -delete
find 3rdParty/LibNATPMP -delete
# DNS (they use it on Android)
find 3rdParty/Unbound -delete
find 3rdParty/Ldns -delete
# Only for developers
find 3rdParty/LCov -delete
# Not used by swift yet
find 3rdParty/Breakpad/src -delete
find 3rdParty/SQLite -delete
# They use scons in a way that doesnt allow us to use our CppUnit
# find 3rdParty/CppUnit -delete
# Needed for tests
# find 3rdParty/HippoMocks -delete

./scons %{_flags} Swift Swiften %{?_smp_mflags} boost_bundled_enable=false

./scons %{_flags} \
    SWIFT_INSTALLDIR=%{buildroot}%{_prefix} \
    SWIFTEN_INSTALLDIR=%{buildroot}%{_prefix} \
    SWIFTEN_LIBDIR=%{buildroot}%{_libdir} \

%fdupes %{buildroot}%{_prefix}
%suse_update_desktop_file -r %{_name} Network InstantMessaging

%post -n libSwiften4 -p /sbin/ldconfig
%postun -n libSwiften4 -p /sbin/ldconfig

%license COPYING
%dir %{_datadir}/%{_name}
%dir %{_datadir}/%{_name}/sounds
%dir %{_datadir}/%{_name}/translations

%files -n libSwiften4

%files -n swiften-devel

openSUSE Build Service is sponsored by