File owncloud-client.spec of Package owncloud-client

#
# spec file for package owncloud-client
#
# Copyright (c) 2024 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 https://bugs.opensuse.org/
#


# The minimum required version of qtkeychain
%define keychain_version 0.12.0
# old rpm without /usr/etc
%if 0%{?suse_version} && 0%{?suse_version} <= 1500
%global _distconfdir /etc
%endif

Name:           owncloud-client
Version:        5.3.1
Release:        0
Summary:        The ownCloud synchronization client
License:        GPL-2.0-only AND GPL-3.0-only
Group:          Productivity/Networking/Other
URL:            https://owncloud.com/desktop-app
Source0:        ownCloud_os-%{version}.tar.xz
Source2:        69-sync-inotify.conf
Source3:        README.source
Source4:        ownCloud.conf
# PATCH-FIX-UPSTREAM
Patch0:         owncloud-qt68.patch

BuildRequires:  cmake >= 2.8.11
BuildRequires:  extra-cmake-modules

BuildRequires:  hicolor-icon-theme
BuildRequires:  pkgconfig
BuildRequires:  qt6-core-private-devel
BuildRequires:  qt6-gui-private-devel
BuildRequires:  qt6-widgets-private-devel
BuildRequires:  update-desktop-files
BuildRequires:  cmake(KDSingleApplication-qt6)
BuildRequires:  cmake(LibreGraphAPI)
BuildRequires:  cmake(Qt6Concurrent)
BuildRequires:  cmake(Qt6Core)
BuildRequires:  cmake(Qt6DBus)
BuildRequires:  cmake(Qt6Gui)
BuildRequires:  cmake(Qt6Keychain) >= %{keychain_version}
BuildRequires:  cmake(Qt6LinguistTools)
BuildRequires:  cmake(Qt6Network)
BuildRequires:  cmake(Qt6Sql)
BuildRequires:  cmake(Qt6Test)
BuildRequires:  cmake(Qt6Xml)
BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(sqlite3)
BuildRequires:  pkgconfig(zlib)
Requires:       libowncloudsync0 = %{version}
Requires:       owncloud-extensions-resources
Requires:       qt6-sql-sqlite
Suggests:       %{name}-nautilus
Suggests:       %{name}-nemo
Suggests:       owncloud-dolphin
Supplements:    (%{name} and nautilus)
Obsoletes:      libocsync-devel
Obsoletes:      libocsync-devel-doc
Obsoletes:      libocsync-doc
Obsoletes:      libocsync-plugin-owncloud
Obsoletes:      libocsync0
Obsoletes:      owncloud-client-l10n

%description
The ownCloud sync client - github.com/owncloud/client

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

ownCloud gives you anytime and anywhere access to the files you
need, whether through this desktop application, our mobile apps,
the web interface, or other WebDAV clients. With it, you can
easily view and share documents and information in a secure,
flexible and controlled architecture. You can extend ownCloud
with plug-ins from the community, or that you build yourself.

%package -n %{name}-doc
Summary:        Documentation for ownCloud
Group:          Development/Libraries/C and C++
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description -n %{name}-doc
Documentation for the ownCloud desktop application.

%package -n libowncloudsync0
Summary:        The ownCloud synchronization library
Group:          Development/Libraries/C and C++
Requires:       libqt6keychain1 >= %{keychain_version}

%description -n libowncloudsync0
The ownCloud synchronization library. It implements the ownCloud
sync algorithm that keeps a local directory in sync with the
content on your cloud.

%package -n libowncloudsync-devel
Summary:        Development files for the ownCloud synchronization library
Group:          Development/Libraries/C and C++
Requires:       libowncloudsync0 = %{version}

%description -n libowncloudsync-devel
Development files for the ownCloud synchronization library. It
implements the ownCloud sync algorithm that keeps a local directory
in sync with the content on your cloud.

%prep
%autosetup -p1 -n ownCloud_os-%{version}

%build
%cmake_qt6 -DKDE_SKIP_RPATH_SETTINGS=ON -DKDE_INSTALL_SYSCONFDIR=%{_distconfdir}
%{qt6_build}

%install
%{qt6_install}

# Copy the source README here to be picked up by doc macro
cp %{SOURCE3} .

# https://github.com/owncloud/client/issues/4107
install -m 0644 -D %{SOURCE2} %{buildroot}/%{_sysctldir}/69-sync-inotify.conf
# do not allow to call home
install -m 0644 -D %{SOURCE4} -t %{buildroot}%{_distconfdir}/ownCloud/

# remove the icons that this version of the source tarball still contains
rm %{buildroot}%{_datadir}/icons/hicolor/*/apps/ownCloud_*png

%suse_update_desktop_file -n owncloud

%ldconfig_scriptlets -n libowncloudsync0

%files
%{_bindir}/owncloud
%{_bindir}/owncloudcmd
%{_datadir}/applications/owncloud.desktop
%{_datadir}/applications/owncloudcmd.desktop
%{_datadir}/mime/packages/owncloud.xml
%{_libdir}/qt6/plugins/owncloudsync_vfs_*.so
%{_datadir}/icons/hicolor/*/apps/owncloud.png

%doc CONTRIBUTING.md README.md
%license COPYING COPYING.documentation

%config %{_distconfdir}/ownCloud
# https://github.com/owncloud/client/issues/4107
%{_sysctldir}/69-sync-inotify.conf

%files -n libowncloudsync0
%{_libdir}/libowncloudsync.so.*
%{_libdir}/libowncloud_csync.so.*
%{_libdir}/libowncloudResources.so.*

%files -n libowncloudsync-devel
%{_libdir}/libowncloudsync.so
%{_libdir}/libowncloud_csync.so
%{_libdir}/libowncloudResources.so
%dir %{_libdir}/cmake/ownCloud
%{_libdir}/cmake/ownCloud/ownCloud*.cmake
%{_includedir}/ownCloud

%changelog
openSUSE Build Service is sponsored by