File nextcloud-client.spec of Package nextcloud-client

#
# spec file for package nextcloud-client
#
# 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
# 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 soname  libnextcloudsync
%define sover   0
Name:           nextcloud-client
Version:        2.2.4
Release:        0
Summary:        Nextcloud desktop synchronisation client
License:        GPL-2.0+ and LGPL-3.0+
Group:          Productivity/Networking/File-Sharing
Url:            https://nextcloud.com/
Source:         nextcloudclient-%{version}.tar.xz
Source1:        sysctl-sync-inotify.conf
# PATCH-FIX-OPENSUSE nextcloud-client-fix-rpath.patch sor.alexei@meowr.ru -- Fix RPATH.
Patch0:         nextcloud-client-fix-rpath.patch
# PATCH-FIX-OPENSUSE nextcloud-client-fix-nemo-appname.patch sor.alexei@meowr.ru -- Fix Nemo extension appname.
Patch1:         nextcloud-client-fix-nemo-appname.patch
# PATCH-FIX-OPENSUSE nextcloud-client-fix-ru-typo.patch sor.alexei@meowr.ru -- Fix Russian localisation.
Patch2:         nextcloud-client-fix-ru-typo.patch
BuildRequires:  cmake >= 2.8.0
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  glibc-devel
BuildRequires:  gobject-introspection-devel
BuildRequires:  hicolor-icon-theme
BuildRequires:  pkgconfig
BuildRequires:  python
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(sqlite3)
Recommends:     %{name}-lang
Suggests:       %{name}-doc = %{version}
%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120100 && 0%{?is_opensuse})
BuildRequires:  libqt5-linguist-devel
BuildRequires:  python3-Sphinx
BuildRequires:  qtkeychain-qt5-devel
BuildRequires:  pkgconfig(Qt5Concurrent)
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5DBus)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(Qt5Network)
BuildRequires:  pkgconfig(Qt5PrintSupport)
BuildRequires:  pkgconfig(Qt5WebKit)
BuildRequires:  pkgconfig(Qt5WebKitWidgets)
BuildRequires:  pkgconfig(Qt5Xml)
%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120200 && 0%{?is_opensuse})
BuildRequires:  kio-devel
%endif
%else
BuildRequires:  libqt4-linguist
BuildRequires:  python-Sphinx
BuildRequires:  qtkeychain-devel
BuildRequires:  pkgconfig(QtCore)
BuildRequires:  pkgconfig(QtDBus)
BuildRequires:  pkgconfig(QtGui)
BuildRequires:  pkgconfig(QtNetwork)
BuildRequires:  pkgconfig(QtWebKit)
BuildRequires:  pkgconfig(QtXml)
%endif

%description
The Nextcloud Desktop Client is a tool to synchronise files from
the Nextcloud Server with your computer.

Nextcloud client enables you to connect to your private
Nextcloud Server. With it you can create directories in your home
directory, and keep the contents of those directories synced with
the server. Simply copy a file into the directory and the desktop
synchronisation client does the rest.

%lang_package

%package doc
Summary:        Documentation for nextcloud-client
Group:          Documentation/HTML
BuildArch:      noarch

%description doc
The Nextcloud Desktop Client is a tool to synchronise files from
the Nextcloud Server with your computer.

This package contains the documentation.

%package -n %{soname}%{sover}
Summary:        The Nextcloud synchronisation library
Group:          System/Libraries

%description -n %{soname}%{sover}
The Nextcloud Desktop Client synchronisation library.

%package -n %{soname}-devel
Summary:        Development files for the Nextcloud synchronisation library
Group:          Development/Libraries/C and C++
Requires:       %{soname}%{sover} = %{version}

%description -n %{soname}-devel
Development files for the Nextcloud Desktop Client synchronisation
library.

%if 0%{?suse_version} > 1310 && !(0%{?sle_version} < 130000 && !0%{?is_opensuse})
%package -n caja-extension-nextcloud
Summary:        Caja overlay icons
Group:          Productivity/File utilities
Requires:       %{name} = %{version}
Requires:       caja
Requires:       python-caja
Supplements:    packageand(%{name}:caja)
BuildArch:      noarch

%description -n caja-extension-nextcloud
This package provides overlay icons to visualise the
synchronisation state in the Caja file manager.
%endif

%package -n nautilus-extension-nextcloud
Summary:        Nautilus overlay icons
Group:          Productivity/File utilities
Requires:       %{name} = %{version}
Requires:       nautilus
Requires:       python-nautilus
Supplements:    packageand(%{name}:nautilus)
BuildArch:      noarch

%description -n nautilus-extension-nextcloud
This package provides overlay icons to visualise the
synchronisation state in the Nautilus file manager.

%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120200 && 0%{?is_opensuse})
%package -n nemo-extension-nextcloud
Summary:        Nemo overlay icons
Group:          Productivity/File utilities
Requires:       %{name} = %{version}
Requires:       nemo
Requires:       python-nemo
Supplements:    packageand(%{name}:nemo)
BuildArch:      noarch

%description -n nemo-extension-nextcloud
This package provides overlay icons to visualise the
synchronisation state in the Nemo file manager.

%package -n %{name}-dolphin
Summary:        Dolphin overlay icons
Group:          Productivity/File utilities
Requires:       %{name} = %{version}
Requires:       dolphin
Supplements:    packageand(%{name}:dolphin)

%description -n %{name}-dolphin
This package provides the necessary plugin libraries for the
Dolphin filemanager to display overlay icons.
%endif

%prep
%setup -q -n nextcloudclient-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
cp -f %{SOURCE1} sysctl-sync-inotify.conf

# A workaround for gh#owncloud/ownbrander#322
sed -i 's/^\(Icon\(\[.*\]\)*=\).*$/\1@APPLICATION_NAME@/' client/mirall.desktop.in

%build
nextcloud_theme="$PWD/nextcloudtheme"
pushd client
%cmake \
  -DGIT_SHA1="GITDIR-NOTFOUND"       \
  -DWITH_DOC=ON                      \
  -DCMAKE_SKIP_RPATH=OFF             \
%if 0%{?suse_version} <= 1320 && !(0%{?sle_version} >= 120100 && 0%{?is_opensuse})
  -DBUILD_WITH_QT4=ON                \
%endif
  -DOEM_THEME_DIR="$nextcloud_theme"
make %{?_smp_mflags}
make doc %{?_smp_mflags}
popd

%install
pushd client
%cmake_install
popd

mkdir -p %{buildroot}%{_docdir}/%{name}-doc/
mv -f %{buildroot}%{_datadir}/doc/client/html/ \
  %{buildroot}%{_docdir}/%{name}-doc/html/

# Properly rename mans.
mv -f %{buildroot}%{_mandir}/man1/{owncloud,nextcloud}.1
mv -f %{buildroot}%{_mandir}/man1/{owncloudcmd,nextcloudcmd}.1

%if 0%{?suse_version} > 1310 && !(0%{?sle_version} < 130000 && !0%{?is_opensuse})
# Make a Caja extension from a Nemo's one.
install -Dpm 0644 %{buildroot}%{_datadir}/{nemo,caja}-python/extensions/syncstate.py
sed -i 's/nemo/caja/g;s/Nemo/Caja/g' \
  %{buildroot}%{_datadir}/caja-python/extensions/syncstate.py
%endif

%if 0%{?suse_version} <= 1320 && !(0%{?sle_version} >= 120200 && 0%{?is_opensuse})
# There's no Nemo in openSUSE Leap 42.1 and older.
rm -rf %{buildroot}%{_datadir}/nemo-python/
%endif

# Give extensions an unconflicting name, generate bytecode.
for fm in caja nautilus nemo; do
    [ -d %{buildroot}%{_datadir}/$fm-python/ ] || continue
    mv -f %{buildroot}%{_datadir}/$fm-python/extensions/{,nextcloud}syncstate.py
    %py_compile %{buildroot}%{_datadir}/$fm-python/extensions/
done

# A workaround for gh#owncloud/client#4107
install -Dpm 0644 sysctl-sync-inotify.conf \
  %{buildroot}%{_sysconfdir}/sysctl.d/100-sync-inotify.conf

%suse_update_desktop_file nextcloud
%fdupes %{buildroot}%{_datadir}/

%post
%desktop_database_post
%icon_theme_cache_post

%postun
%desktop_database_postun
%icon_theme_cache_postun

%post -n %{soname}%{sover} -p /sbin/ldconfig

%postun -n %{soname}%{sover} -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc LICENSE
%config %{_sysconfdir}/Nextcloud/
%config %{_sysconfdir}/sysctl.d/100-sync-inotify.conf
%{_bindir}/nextcloud*
%dir %{_datadir}/nextcloud/
%{_datadir}/applications/nextcloud.desktop
%if 0%{?suse_version} <= 1320 && 0%{?sle_version} < 120200
%dir %{_datadir}/icons/hicolor/512x512/
%dir %{_datadir}/icons/hicolor/512x512/apps/
%endif
%{_datadir}/icons/hicolor/*/apps/Nextcloud*.*
%{_mandir}/man1/nextcloud*.1%{?ext_man}

%files lang
%defattr(-,root,root)
%{_datadir}/nextcloud/i18n/

%files doc
%defattr(-,root,root)
%doc %{_docdir}/%{name}-doc/

%files -n %{soname}%{sover}
%defattr(-,root,root)
%doc LICENSE
%{_libdir}/%{soname}.so.*
%dir %{_libdir}/nextcloud/
%{_libdir}/nextcloud/libocsync.so.*

%files -n %{soname}-devel
%defattr(-,root,root)
%{_includedir}/nextcloudsync/
%{_libdir}/%{soname}.so
%{_libdir}/nextcloud/libocsync.so

%if 0%{?suse_version} > 1310 && !(0%{?sle_version} < 130000 && !0%{?is_opensuse})
%files -n caja-extension-nextcloud
%defattr(-,root,root)
%dir %{_datadir}/caja-python/
%dir %{_datadir}/caja-python/extensions/
%{_datadir}/caja-python/extensions/nextcloudsyncstate.py*
%endif

%files -n nautilus-extension-nextcloud
%defattr(-,root,root)
%dir %{_datadir}/nautilus-python/
%dir %{_datadir}/nautilus-python/extensions/
%{_datadir}/nautilus-python/extensions/nextcloudsyncstate.py*

%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120200 && 0%{?is_opensuse})
%files -n nemo-extension-nextcloud
%defattr(-,root,root)
%dir %{_datadir}/nemo-python/
%dir %{_datadir}/nemo-python/extensions/
%{_datadir}/nemo-python/extensions/nextcloudsyncstate.py*

%files dolphin
%defattr(-,root,root)
%{_libdir}/libnextclouddolphinpluginhelper.so
%{_libdir}/qt5/plugins/nextclouddolphinactionplugin.so
%dir %{_libdir}/qt5/plugins/kf5/overlayicon/
%{_libdir}/qt5/plugins/kf5/overlayicon/nextclouddolphinoverlayplugin.so
%{_datadir}/kservices5/nextclouddolphinactionplugin.desktop
%endif

%changelog
openSUSE Build Service is sponsored by