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
openSUSE Build Service is sponsored by