Sync from SUSE:SLFO:Main sysprof revision 870211259d20913ee5de566de08d931c

This commit is contained in:
Adrian Schröter 2024-07-22 17:46:16 +02:00
parent 39974e4ed4
commit 66b2d3f23b
8 changed files with 240 additions and 127 deletions

View File

@ -1,4 +0,0 @@
<multibuild>
<package>UI</package>
</multibuild>

View File

@ -0,0 +1,12 @@
Index: sysprof-45.1/src/libsysprof/sysprof-elf-loader.c
===================================================================
--- sysprof-45.1.orig/src/libsysprof/sysprof-elf-loader.c
+++ sysprof-45.1/src/libsysprof/sysprof-elf-loader.c
@@ -21,6 +21,7 @@
#include "config.h"
#include <fcntl.h>
+#include <unistd.h>
#include <sys/stat.h>
#include "sysprof-elf-private.h"

View File

@ -1,23 +0,0 @@
Index: sysprof-3.42.1/src/sysprofd/sysprof2.service.in
===================================================================
--- sysprof-3.42.1.orig/src/sysprofd/sysprof2.service.in
+++ sysprof-3.42.1/src/sysprofd/sysprof2.service.in
@@ -2,6 +2,18 @@
Description=Sysprof Daemon
[Service]
+# added automatically, for details please see
+# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
+ProtectSystem=full
+ProtectHome=true
+PrivateDevices=true
+ProtectHostname=true
+ProtectClock=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+ProtectControlGroups=true
+RestrictRealtime=true
+# end of automatic additions
Type=dbus
BusName=org.gnome.Sysprof2
ExecStart=@sysprofdprivdir@/sysprofd

View File

@ -1,7 +1,7 @@
Index: sysprof-3.42.1/src/sysprofd/sysprof3.service.in
Index: b/src/sysprofd/sysprof3.service.in
===================================================================
--- sysprof-3.42.1.orig/src/sysprofd/sysprof3.service.in
+++ sysprof-3.42.1/src/sysprofd/sysprof3.service.in
--- a/src/sysprofd/sysprof3.service.in
+++ b/src/sysprofd/sysprof3.service.in
@@ -2,6 +2,18 @@
Description=Sysprof Daemon

BIN
sysprof-3.48.0.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
sysprof-45.1.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,138 @@
-------------------------------------------------------------------
Wed Jan 17 12:28:01 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Move wronly places obsoletes:
+ Obsoletes sysprof-ui < 3.49 from main to -gtk package.
+ Obsoletes sysprof-capture-devel-static from main to -devel
package.
-------------------------------------------------------------------
Mon Dec 4 15:01:54 UTC 2023 - Yifan Jiang <yfjiang@suse.com>
- Add explicitly-include-unistd.patch and specify higher version of
gcc to build on SLE/Leap.
-------------------------------------------------------------------
Tue Oct 24 18:16:15 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 45.1:
+ Be more defensive against oddly formed container JSON
definitions
+ Limit maximum number of marks rendered in marks visualizer row
+ Fallback to software perf counters which fixes Sysprof on Asahi
+ Improve Rust demangler
-------------------------------------------------------------------
Sun Sep 17 00:57:11 UTC 2023 - Luciano Santos <luc14n0@opensuse.org>
- Update to version 45.0:
+ Ignore swapper/# scheduler details to better show activity.
+ Update some subsystem name extraction.
+ Updated translations.
-------------------------------------------------------------------
Sat Sep 2 21:10:19 UTC 2023 - Luciano Santos <luc14n0@opensuse.org>
- Update to version 45.rc:
+ A Rust demangler is provided which can demangle some newer
style Rust symbols.
+ The C++ and Rust legacy demanger has improved to handle some
scenarios where <> and :: should be used.
+ The D-Bus section has gained support for search filtering.
+ A busy indicator is now show when callgraphs are being
generated or updated to reflect changing view options.
+ Improvements to sysprof-cli and sysprof-agent to support recent
capture features.
+ sysprof-cli can now specify capture buffer size in number of
pages to help in situations where you want to avoid disk
spillage.
+ Zoom controls now stay sticky to the left.
+ SysprofCollector will now try much harder for the peer to
process the mmap ring buffer before bailing so that the leak
collector is less likely to drop records.
+ Sysprof now uses gtktimsort to sort records for a significant
speed improvement when loading large captures.
+ Window titles now include document title.
+ Reduction in number of samples to normalize for various charts
which results in faster loading times. You can continue to zoom
in to get better details.
+ A new scheduler details instrument is provided, which uses
tracepoints to track when processes were running and on what
CPU.
+ A new flamegraph is added for viewing profiling results. It is
powered by the same callgraph seen in the callgraph view, which
means changes to the callgraph can influence the flamegraph.
Colorization is provided by stack categorization in callgraphs.
+ Categorization of Kernel symbols has been fixed.
+ Callgraphs are now sorted incrementally to help keep the UI
responsive while loading the document.
+ Accounting of weights for callgraphs has been improved to avoid
double counting summary values when recursion is used.
+ A fix for a crash when pivoting to a new root in the callgraph.
+ A new option to merge similar processes when generating
callgraphs.
+ A new option to filter out kernel processes has been added.
This feature is quite rudimentary and involves commandline
sniffing. Improvements are requested by those seeking more
comprehensive filtering.
+ Improvements to locating and symbolizing Flatpak processes.
+ The files section has gained search filter support.
- Changes from version 45.beta:
+ Sysprof has largely been redesigned and rewriten from the
ground up this cycle to provide better GTK 4 integration and
more advanced features.
+ libsysprof-capture: This library is our static library used by
many applications and libraries to augment capture collection.
It is still installed as libsysprof-capture-4.a as a static
library for consumers. The ABI is the same, however some new
data types have been added.
+ libsysprof:
- This library has been rewritten around a new document model
for captures, which has allowed for many new indexing
performance improvements as well as simpler data-binding in
the user interface.
- Additionally, a new SysprofProfiler API has been added. It
has been much simplified and allows for easier implementation
of instruments in a race free manner.
- The library heavily builds upon libdex for Futures which I
created this past window to simplify features in GNOME
Builder.
+ sysprof-cli and sysprof-agent: These tools both provide similar
features albeit from a different standpoint. They have both
been updated to use the new profiler interface in libsysprof.
+ sysprofd: Very minimal changes have been made to sysprofd to
help ensure that the application and libraries can still work
on systems with an older sysprofd installed on the host.
+ Sysprof: The application has been completely redesigned and is
now window focused rather than tabs. The constraint of tabs was
becoming too cumbersome to maintain.
- Add libdex-1 and libpanel-1 pkgconfig() BuildRequires, as new
introduced dependencies.
- Add fdupes BuildRequires and call its macro on %install directive
against the datadir.
- Split out the sysprof shared library as libsysprof-6-6 now that
it's being versioned (6.0.0).
- Drop deprecated sysprof-ui libraries and their development files;
and add sysprof-ui < 3.49 Obsoletes tag.
- Drop multibuild facilities now. It is not worth it anymore with
the recent changes brought by this release.
- Drop harden_sysprof2.service.patch. The file it patches
(sysprof2.service) no longer exists.
- Drop no longer needed auto dependencies.
- Merge sysprof-capture-devel-static into devel sub-package due to
compilation issues with other packages that require both
sysprof-4 and sysprof-capture-4 pkgconfig modules. Those packages
expect to have header files from both sysprof-4 and
sysprof-capture-4 libraries (all header files were being packaged
into sysprof-devel packages, even sysprof-capture*.h ones), but
we can split them -- between sysprof-devel and
sysprof-capture-static devel -- because build scripts from
packages that only require sysprof-capture-4 libraries expect to
find sysprof-4 headers too, without requiring sysprof-4.
- Add sysprof-capture-devel-static < 3.49 Obsoletes tag.
-------------------------------------------------------------------
Thu May 18 12:08:37 UTC 2023 - Jiri Srain <jsrain@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file
# spec file for package sysprof
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2016 Bjørn Lie, Bryne, Norway.
#
# All modifications and additions to the file contributed by third parties
@ -17,51 +17,46 @@
#
%define flavor @BUILD_FLAVOR@%nil
%if "%{flavor}" == "UI"
%define enable_gtk true
%define _name_suffix -ui
%else
%define enable_gtk false
%define _name_suffix %nil
%endif
%define apiver 6
%define sover 6
%define glib_version 2.76.0
%define sover 4
%define ui_sover 5
Name: sysprof%{_name_suffix}
Version: 3.48.0
Name: sysprof
Version: 45.1
Release: 0
Summary: A system-wide Linux profiler
License: GPL-3.0-or-later AND LGPL-3.0-or-later
Group: Development/Tools/Debuggers
URL: https://wiki.gnome.org/Apps/Sysprof
Source0: https://download.gnome.org/sources/sysprof/3.48/sysprof-%{version}.tar.xz
Patch0: harden_sysprof2.service.patch
Patch1: harden_sysprof3.service.patch
Source0: https://download.gnome.org/sources/sysprof/45/sysprof-%{version}.tar.xz
Patch0: harden_sysprof3.service.patch
Patch1: explicitly-include-unistd.patch
BuildRequires: c++_compiler
%if 0%{?sle_version} && 0%{?sle_version} < 160000
BuildRequires: gcc11
BuildRequires: gcc11-c++
%endif
BuildRequires: fdupes
BuildRequires: hicolor-icon-theme
BuildRequires: itstool
BuildRequires: meson >= 0.59.0
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(gio-2.0) >= 2.50.0
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.50.0
BuildRequires: pkgconfig(glib-2.0) >= 2.73.0
BuildRequires: pkgconfig(gio-2.0) >= %{glib_version}
BuildRequires: pkgconfig(gio-unix-2.0) >= %{glib_version}
BuildRequires: pkgconfig(glib-2.0) >= %{glib_version}
BuildRequires: pkgconfig(gtk4) >= 4.10
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libadwaita-1) >= 1.4.alpha
BuildRequires: pkgconfig(libdazzle-1.0) >= 3.30.0
BuildRequires: pkgconfig(libdex-1) >= 0.3
BuildRequires: pkgconfig(libpanel-1) >= 1.3.0
BuildRequires: pkgconfig(libsystemd) >= 222
BuildRequires: pkgconfig(libunwind-generic)
BuildRequires: pkgconfig(polkit-gobject-1) >= 0.105
BuildRequires: pkgconfig(systemd)
%if "%{flavor}" == "UI"
BuildRequires: hicolor-icon-theme
BuildRequires: sysprof-capture-devel-static
BuildRequires: sysprof-devel
BuildRequires: pkgconfig(gtk4) >= 4.6
BuildRequires: pkgconfig(libadwaita-1)
BuildRequires: pkgconfig(libdazzle-1.0) >= 3.30.0
Requires: hicolor-icon-theme
%endif
%{?systemd_ordering}
%description
@ -69,119 +64,117 @@ Sysprof is a sampling CPU profiler for Linux that collects accurate,
high-precision data and provides efficient access to the sampled
calltrees.
%package gtk
Summary: Sysprof binary with GUI support
Obsoletes: sysprof-ui < 3.49
%description gtk
Sysprof is a sampling CPU profiler for Linux that collects accurate,
high-precision data and provides efficient access to the sampled
calltrees.
This package provides the sysprof binary with GUI support.
%package -n libsysprof-%{apiver}-%{sover}
Summary: Sysprof Shared Library
%description -n libsysprof-%{apiver}-%{sover}
The libsysprof-%{apiver}-%{sover} package contains the Sysprof shared
library.
%package devel
Summary: Development files for %{name}
Group: Development/Tools/Debuggers
Requires: %{name} = %{version}
Requires: libsysprof-%{apiver}-%{sover} = %{version}
Obsoletes: sysprof-capture-devel-static < 3.49
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%package capture-devel-static
Summary: Library to read and write syspref's capture format
Group: Development/Tools/Debuggers
%description capture-devel-static
This static library allows external tooling to read and write the
syspref's capture format.
The %{name}-devel package contains header files for developing
applications that use %{name}.
%lang_package
%prep
%autosetup -p1 -n sysprof-%{version}
%setup -q -n sysprof-%{version}
%patch -P 0 -p1
%if 0%{?sle_version} && 0%{?sle_version} < 160000
%patch -P 1 -p1
%endif
%build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%meson -Dgtk=%{enable_gtk} -Dtests=false
%if 0%{?sle_version} && 0%{?sle_version} < 160000
export CC=gcc-11
export CXX=g++-11
%endif
%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
%meson -Dgtk=true -Dtests=false
%meson_build
%install
%meson_install
%if "%{flavor}" == "UI"
%suse_update_desktop_file org.gnome.Sysprof Profiling
for file in $(rpm -qla "*sysprof*"); do
[ -f %{buildroot}${file} ] && rm %{buildroot}${file}
done
rm -rf %{buildroot}%{_datadir}/locale/*/LC_MESSAGES/sysprof.mo %{buildroot}/%{_datadir}/help/*/sysprof
%else
%find_lang %{name} %{?no_lang_C}
%endif
%fdupes %{buildroot}%{_datadir}
%check
%meson_test
%if "%{flavor}" == ""
%pre
%service_add_pre sysprof3.service
%service_add_pre sysprof2.service
%preun
%service_del_preun sysprof3.service
%service_del_preun sysprof2.service
%endif
%post
/sbin/ldconfig
%if "%{flavor}" == ""
%service_add_post sysprof3.service
%service_add_post sysprof2.service
%endif
%postun
/sbin/ldconfig
%if "%{flavor}" == ""
%service_del_postun sysprof3.service
%service_del_postun sysprof2.service
%endif
%ldconfig_scriptlets -n libsysprof-%{apiver}-%{sover}
%files
%license COPYING
%doc NEWS README.md
%if "%{flavor}" == "UI"
%{_bindir}/sysprof-agent
%{_bindir}/sysprof-cli
%{_datadir}/dbus-1/interfaces/org.gnome.Sysprof.Agent.xml
%{_datadir}/dbus-1/interfaces/org.gnome.Sysprof3.Profiler.xml
%{_datadir}/dbus-1/interfaces/org.gnome.Sysprof3.Service.xml
%dir %{_datadir}/dbus-1/system.d
%{_datadir}/dbus-1/system.d/org.gnome.Sysprof3.conf
%{_datadir}/dbus-1/system-services/org.gnome.Sysprof3.service
%{_datadir}/polkit-1/actions/org.gnome.sysprof3.policy
%{_libdir}/libsysprof-memory-%{apiver}.so
%{_libdir}/libsysprof-speedtrack-%{apiver}.so
%{_libdir}/libsysprof-tracer-%{apiver}.so
%{_libexecdir}/sysprofd
%{_unitdir}/sysprof3.service
%dir %{_datadir}/help/C/sysprof
%doc %{_datadir}/help/C/sysprof/*
%files gtk
%{_bindir}/sysprof
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/*/*
%{_datadir}/metainfo/org.gnome.Sysprof.appdata.xml
%{_datadir}/mime/packages/sysprof-mime.xml
%{_libdir}/libsysprof-ui-%{ui_sover}.so
%else
%{_bindir}/sysprof-agent
%{_bindir}/sysprof-cli
%{_datadir}/dbus-1/interfaces/org.gnome.Sysprof.Agent.xml
%{_datadir}/dbus-1/interfaces/org.gnome.Sysprof2.xml
%{_datadir}/dbus-1/interfaces/org.gnome.Sysprof3.Profiler.xml
%{_datadir}/dbus-1/interfaces/org.gnome.Sysprof3.Service.xml
%dir %{_datadir}/dbus-1/system.d
%{_datadir}/dbus-1/system.d/org.gnome.Sysprof2.conf
%{_datadir}/dbus-1/system.d/org.gnome.Sysprof3.conf
%{_datadir}/dbus-1/system-services/org.gnome.Sysprof2.service
%{_datadir}/dbus-1/system-services/org.gnome.Sysprof3.service
%{_datadir}/polkit-1/actions/org.gnome.sysprof3.policy
%{_libdir}/libsysprof-%{sover}.so
%{_libdir}/libsysprof-memory-%{sover}.so
%{_libdir}/libsysprof-speedtrack-%{sover}.so
%{_libexecdir}/sysprofd
%{_unitdir}/sysprof2.service
%{_unitdir}/sysprof3.service
%dir %{_datadir}/help/C/sysprof
%doc %{_datadir}/help/C/sysprof/*
%endif
%files -n libsysprof-%{apiver}-%{sover}
%{_libdir}/libsysprof-%{apiver}.so.%{sover}
%{_libdir}/libsysprof-%{apiver}.so.%{sover}.?.?
%files devel
%doc AUTHORS
%if "%{flavor}" == "UI"
%{_includedir}/sysprof-ui-%{ui_sover}/
%{_libdir}/pkgconfig/sysprof-ui-%{ui_sover}.pc
%else
%{_includedir}/sysprof-%{sover}/
%{_libdir}/pkgconfig/sysprof-%{sover}.pc
%files capture-devel-static
%{_libdir}/libsysprof-capture-%{sover}.a
%{_libdir}/pkgconfig/sysprof-capture-%{sover}.pc
%{_libdir}/libsysprof-%{apiver}.so
%{_libdir}/pkgconfig/sysprof-%{apiver}.pc
%{_libdir}/libsysprof-capture-4.a
%{_libdir}/pkgconfig/sysprof-capture-4.pc
%{_includedir}/sysprof-%{apiver}/
%files lang -f %{name}.lang
%endif
%changelog