File deepin-system-monitor.spec of Package deepin-system-monitor

#
# spec file for package deepin-system-monitor
#
# 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/
#


%if 0%{?is_opensuse}
    %define  distribution  openSUSE-Edition
%else
    %define  distribution  SUSE-Edition
%endif

%define    procps_version    %(rpm -q --queryformat '%%{VERSION}' procps-devel)
# %define    commit            78d9ea12147f0017679a90f3beae799d211f45d2
# %define    shortcommit       78d9ea1

Name:           deepin-system-monitor
Version:        6.5.14
Release:        0
Summary:        A user-friendly system monitor
License:        GPL-3.0-or-later
Group:          System/GUI/Other
URL:            https://github.com/linuxdeepin/deepin-system-monitor
Source0:        https://github.com/linuxdeepin/deepin-system-monitor/archive/%{version}/%{name}-%{version}.tar.gz
# Source0:        https://github.com/linuxdeepin/deepin-system-monitor/archive/%{commit}/%{name}-%{shortcommit}.tar.gz
Source1:        %{name}.appdata.xml
Source2:        %{name}.svg
# PATCH-FIX-UPSTREAN fix-return-type-errors.patch hillwood@opensuse.org
Patch0:         fix-return-type-errors.patch
# PATCH-FIX-UPSTREAN fix-libdir.patch hillwood@opensuse.org - Do not hardcode libdir
Patch1:         fix-libdir.patch
Patch2:         002-support-gcc-14.patch
%ifarch ppc ppc64 ppc64le s390 s390x
BuildRequires:  deepin-desktop-base
%else
BuildRequires:  deepin-manual
%endif
BuildRequires:  deepin-dock-devel > 6.0.37
BuildRequires:  appstream-glib
BuildRequires:  deepin-daemon
BuildRequires:  deepin-gettext-tools
BuildRequires:  desktop-file-utils
BuildRequires:  dtkcore
BuildRequires:  fdupes
BuildRequires:  gmock
BuildRequires:  gtest
BuildRequires:  hicolor-icon-theme
BuildRequires:  libcap-devel
BuildRequires:  libpcap-devel
BuildRequires:  qt6-tools-linguist
BuildRequires:  ncurses-devel
BuildRequires:  procps-devel
BuildRequires:  update-desktop-files
BuildRequires:  cmake(KWayland)
BuildRequires:  cmake(Qt6LinguistTools)
BuildRequires:  pkgconfig(Qt6Concurrent)
BuildRequires:  pkgconfig(Qt6DBus)
BuildRequires:  pkgconfig(Qt6Gui)
BuildRequires:  pkgconfig(Qt6Multimedia)
BuildRequires:  pkgconfig(Qt6Network)
BuildRequires:  pkgconfig(Qt6Svg)
BuildRequires:  pkgconfig(Qt6Widgets)
BuildRequires:  pkgconfig(Qt6Xml)
BuildRequires:  pkgconfig(dde-dock)
BuildRequires:  pkgconfig(dtk6core)
BuildRequires:  pkgconfig(dtk6gui)
BuildRequires:  pkgconfig(dtk6widget) >= 5.0.0
BuildRequires:  pkgconfig(gsettings-qt)
BuildRequires:  pkgconfig(icu-i18n)
BuildRequires:  pkgconfig(libnl-3.0)
BuildRequires:  pkgconfig(libnl-route-3.0)
BuildRequires:  pkgconfig(libudev)
BuildRequires:  pkgconfig(polkit-qt6-1)
BuildRequires:  pkgconfig(wayland-client)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcb)
BuildRequires:  pkgconfig(xcb-icccm)
BuildRequires:  pkgconfig(xcb-util)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xtst)
%if 0%{?suse_version} < 1600
BuildRequires:  -rpmlint-mini
BuildRequires:  -rpmlint-Factory
%endif
Requires:       /usr/bin/pkexec
Requires:       hicolor-icon-theme
Requires:       deepin-integration-qt6
Recommends:     %{name}-lang

%description
deepin-system-monitor is a simple process and system monitor for the Deepin
Desktop.

%lang_package

%prep
%autosetup -p1 -n %{name}-%{version}
sed -i "s|share/dde-dock|/dde-dock|" deepin-system-monitor-plugin/CMakeLists.txt
%if 0%{?suse_version} > 1500
sed -i "s|KF5/KWayland|KF5/KWayland/KWayland|" deepin-system-monitor-main/gui/xwin_kill_preview_widget.h
%endif

%build
%cmake -DVERSION=%{version}-%{distribution} \
       -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir}
%cmake_build

%install
%cmake_install
install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml
install -Dm644 %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg

%find_lang %{name} --with-qt
# %find_lang %{name}-daemon --with-qt
%find_lang %{name}-plugin --with-qt
%find_lang %{name}-plugin-popup --with-qt

%suse_update_desktop_file -r %{name} QT System Monitor

%fdupes %{buildroot}%{_datadir}

%pre
%service_add_pre %{name}-system-server.service

%post
%service_add_post %{name}-system-server.service

%preun
%service_del_preun %{name}-system-server.service

%postun
%service_del_postun %{name}-system-server.service

%files
%license LICENSE
%doc README.md README.zh_CN.md CHANGELOG.md
%{_bindir}/%{name}
%{_bindir}/%{name}-*
%{_prefix}/lib/deepin-daemon/deepin-system-monitor-system-server
%dir %{_libdir}/dde-dock
%dir %{_libdir}/dde-dock/plugins
%{_libdir}/deepin-service-manager
%{_libdir}/dde-dock/plugins/lib%{name}-plugin.so
# %config %{_sysconfdir}/xdg/autostart/%{name}-daemon.desktop
%{_datadir}/deepin-service-manager
%{_datadir}/appdata/%{name}.appdata.xml
%{_datadir}/applications/%{name}.desktop
%dir %{_datadir}/polkit-1
%dir %{_datadir}/polkit-1/actions
%{_datadir}/polkit-1/actions/com.deepin.pkexec.%{name}.policy
%{_datadir}/deepin-manual/manual-assets/application/%{name}
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/glib-2.0/schemas/com.deepin.*.xml
%{_datadir}/dbus-1/services/com.deepin.*.service
%dir %{_datadir}/dsg
%dir %{_datadir}/dsg/configs
%{_datadir}/dsg/configs/org.deepin.system-monitor
%{_unitdir}/%{name}-system-server.service
%{_datadir}/dbus-1/system-services/org.deepin.SystemMonitorSystemServer.service
%{_datadir}/dbus-1/system.d/org.deepin.SystemMonitorSystemServer.conf
%dir %{_datadir}/deepin-log-viewer
%dir %{_datadir}/deepin-log-viewer/deepin-log.conf.d
%{_datadir}/deepin-log-viewer/deepin-log.conf.d/org.deepin.system-monitor.json
%{_datadir}/polkit-1/actions/org.deepin.deepin-system-monitor-system-server.policy
%dir %{_datadir}/dde-dock
%dir %{_datadir}/dde-dock/icons
%dir %{_datadir}/dde-dock/icons/dcc-setting
%{_datadir}/dde-dock/icons/dcc-setting/dcc-system-monitor.dci

%files lang -f %{name}.lang -f %{name}-plugin.lang -f %{name}-plugin-popup.lang
# RPM currently can not handle Asturian
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}-*
%dir %{_datadir}/%{name}/translations
%dir %{_datadir}/%{name}-*/translations
%{_datadir}/%{name}/translations/%{name}.qm
%lang(ast) %{_datadir}/%{name}/translations/%{name}_ast.qm

%changelog
openSUSE Build Service is sponsored by