File deepin-clone.spec of Package deepin-clone
#
# spec file for package deepin-clone
#
# Copyright (c) 2023 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/
#
%if 0%{?sle_version} && !0%{?is_opensuse}
%define distribution SUSE-Edition
%else
%define distribution openSUSE-Edition
%endif
Name: deepin-clone
Version: 5.0.15
Release: 0
License: GPL-3.0+
Summary: Disk and partition backup/restore tool
Url: https://github.com/linuxdeepin/deepin-clone
Group: Hardware/Other
Source0: https://github.com/linuxdeepin/deepin-clone/archive/%{version}/%{name}-%{version}.tar.gz
Source99: %{name}-rpmlintrc
# PATCH-FIX-UPSTREAM fix-build-on-new-dtk.patch hillwood@opensuse.org - fix build on dtk 5.6.19
# https://github.com/linuxdeepin/deepin-clone/pull/44
Patch0: fix-build-on-new-dtk.patch
BuildRequires: fdupes
BuildRequires: libqt5-linguist-devel
BuildRequires: libqt5-qtbase-devel
BuildRequires: libqt5-qtdeclarative-devel
BuildRequires: libqt5-qtmultimedia-devel
BuildRequires: libqt5-qtsvg-devel
BuildRequires: libqt5-qtx11extras-devel
BuildRequires: libqt5-qtbase-private-headers-devel
BuildRequires: deepin-gettext-tools
BuildRequires: update-desktop-files
BuildRequires: hicolor-icon-theme
BuildRequires: pkgconfig(polkit-agent-1)
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5Sql)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5X11Extras)
BuildRequires: pkgconfig(dtkcore)
BuildRequires: pkgconfig(dtkwidget)
# BuildRequires: pkgconfig(dde-file-manager)
Requires: partclone
Recommends: %{name}-lang = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
A disk and partition backup/restore tool default in Deepin Desktop
%lang_package
%prep
%autosetup -p1
sed -i 's|lrelease|lrelease-qt5|g' app/translate_generation.sh
# Fix commands path
sed -i 's|/sbin/blkid|/usr/sbin/blkid|g; s|/bin/lsblk|/usr/bin/lsblk|g; s|/sbin/sfdisk|/usr/sbin/sfdisk|g; s|/sbin/partprobe|/usr/sbin/partprobe|g' \
app/src/corelib/{ddevicediskinfo.cpp,helper.cpp}
sed -i 's|partx|/usr/sbin/partx|g' app/src/corelib/ddevicepartinfo.cpp
%build
%cmake -DDISABLE_DFM_PLUGIN=YES \
-DVERSION=%{version}-%{distribution} \
-DAPP_VERSION=%{version}-%{distribution}
%cmake_build
%install
%cmake_install
# Fix permissions
chmod +x %{buildroot}%{_bindir}/%{name}* %{buildroot}%{_sbindir}/%{name}-*
# Find languages
%find_lang %{name} --with-qt
%find_lang policy --with-qt
# Fix missing icon
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps
ln -s ../mimetypes/application-x-deepinclone-dim.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/deepin-clone.svg
# Fix categories
%suse_update_desktop_file -r -G "Deepin Clone" %{name} System HardwareSettings
%fdupes %{buildroot}
%files
%license LICENSE
%doc README.md
%{_bindir}/%{name}-*
%{_sbindir}/%{name}
%{_sbindir}/%{name}-ionice
# %{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/scalable/apps/deepin-clone.svg
%{_datadir}/icons/hicolor/scalable/mimetypes/application-x-deepinclone-dim.svg
%{_datadir}/mime/packages/deepin-clone.xml
%{_datadir}/polkit-1/actions/com.deepin.pkexec.deepin-clone.policy
%dir %{_datadir}/deepin-clone
%dir %{_datadir}/deepin-clone/translations
# File manager plugin
# %dir %{_libdir}/dde-file-manager
# %dir %{_libdir}/dde-file-manager/plugins
# %dir %{_libdir}/dde-file-manager/plugins/controllers
# %{_libdir}/dde-file-manager/plugins/controllers/libdfm-plugin-dim-file.so
%files lang -f %{name}.lang -f policy.lang
# RPM currently can not detect Asturian
%{_datadir}/deepin-clone/translations/{deepin-clone.qm,policy.qm}
%lang(ast) %{_datadir}/deepin-clone/translations/deepin-clone_ast.qm
%lang(ast) %{_datadir}/deepin-clone/translations/policy_ast.qm
%changelog