gentoo/dev-util/sysprof/sysprof-48.0-r1.ebuild
Sv. Lockal 638799e8bd
dev-util/sysprof: fix compilation with Clang
Fixes the following build error:
```
/usr/lib/llvm/20/bin/clang -Isrc/sysprof/sysprof.p -Isrc/sysprof
-I../sysprof-48.0/src/sysprof -Isrc/libsysprof -I../sysprof-48.0/src/libsysprof
-Isrc/libsysprof-capture -I../sysprof-48.0/src/libsysprof-capture -Icontrib/egg
bitset -I../sysprof-48.0/contrib/eggbitset -Icontrib/elfparser -I../sysprof-48.
0/contrib/elfparser -Icontrib/linereader -I../sysprof-48.0/contrib/linereader -
I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/in
clude/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/webp -I/usr/include
/cairo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/pixman-1
-I/usr/include/graphene-1.0 -I/usr/lib64/graphene-1.0/include -I/usr/lib64/libf
fi/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include
/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -I/usr/include/libadwai
ta-1 -I/usr/include/appstream -I/usr/include/libpanel-1 -I/usr/include/gio-unix
-2.0 -I/usr/include/libdex-1 -I/usr/include/json-glib-1.0 -I/usr/include/polkit
-1 -I/var/tmp/portage/dev-util/sysprof-48.0-r1/work/sysprof-48.0-build -flto=th
in -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextr
a -std=gnu17 -DSYSPROF_COMPILATION -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L -DGL
IB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_76 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSI
ON_2_76 -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_16 -DGDK_VERSION_MAX_ALLOWED=G
DK_VERSION_4_16 -Wcast-align -Wdeclaration-after-statement -Wformat-nonliteral
-Wformat-security -Wmissing-include-dirs -Wnested-externs -Wno-missing-field-in
itializers -Wno-sign-compare -Wno-unused-parameter -Wno-cast-function-type -Wpo
inter-arith -Wredundant-decls -Wswitch-default -Wswitch-enum -Wuninitialized -W
error=format-security -Werror=format=2 -Werror=empty-body -Werror=implicit-func
tion-declaration -Werror=pointer-arith -Werror=init-self -Werror=int-conversion
-Werror=misleading-indentation -Werror=missing-include-dirs -Werror=overflow -W
error=return-type -Werror=shadow -Werror=strict-prototypes -Werror=undef -march
=native -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -Werror=odr
-Werror=strict-aliasing -pthread -mfpmath=sse -msse -msse2 -mfpmath=sse -msse -
msse2 -mfpmath=sse -msse -msse2 -MD -MQ src/sysprof/sysprof.p/sysprof-greeter.c
.o -MF src/sysprof/sysprof.p/sysprof-greeter.c.o.d -o src/sysprof/sysprof.p/sys
prof-greeter.c.o -c ../sysprof-48.0/src/sysprof/sysprof-greeter.c
../sysprof-48.0/src/sysprof/sysprof-greeter.c:629:21: error: declaration shadows
 a variable in the global scope [-Werror,-Wshadow]
  629 |       g_auto(GStrv) environ = NULL;
      |                     ^
/usr/include/unistd.h:566:15: note: previous declaration is here
  566 | extern char **environ;
      |               ^
```

Bug: https://gitlab.gnome.org/GNOME/sysprof/-/issues/150
Signed-off-by: Sv. Lockal <lockalsash@gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43398
Closes: https://github.com/gentoo/gentoo/pull/43398
Signed-off-by: Pacho Ramos <pacho@gentoo.org>
2025-08-14 14:26:48 +02:00

117 lines
2.7 KiB
Bash

# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org gnome2-utils greadme meson systemd xdg
DESCRIPTION="System-wide Linux Profiler"
HOMEPAGE="https://www.sysprof.com/"
LICENSE="GPL-3+ GPL-2+"
API_VERSION="4"
SLOT="0/${API_VERSION}"
KEYWORDS="~amd64 ~arm64 ~loong ~x86"
IUSE="gtk systemd test"
RESTRICT="!test? ( test )"
RDEPEND="
dev-libs/elfutils
>=dev-libs/glib-2.76.0:2
gtk? (
>=gui-libs/gtk-4.15:4
>=gui-libs/libadwaita-1.6.0:1
x11-libs/cairo
x11-libs/pango
)
systemd? ( sys-apps/systemd )
dev-libs/json-glib
>=dev-libs/libdex-0.9
>=gui-libs/libpanel-1.4
sys-libs/libunwind:=
>=sys-auth/polkit-0.114[daemon(+)]
>=dev-util/sysprof-common-${PV}
>=dev-util/sysprof-capture-${PV}:${API_VERSION}
"
DEPEND="
${RDEPEND}
!systemd? ( !!sys-apps/systemd )
"
BDEPEND="
dev-libs/appstream-glib
dev-util/gdbus-codegen
dev-util/itstool
>=sys-devel/gettext-0.19.8
>=sys-kernel/linux-headers-2.6.32
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-48.0-shadowed-variable.patch
)
src_prepare() {
default
xdg_environment_reset
# These are installed by dev-util/sysprof-capture
sed -i \
-e '/install: not meson.is_subproject/d' \
-e '/install.*sysprof_header_subdir/d' \
-e 's/pkgconfig\.generate/subdir_done()\npkgconfig\.generate/' \
src/libsysprof-capture/meson.build || die
}
src_configure() {
# -Dsysprofd=host currently unavailable from ebuild
local emesonargs=(
$(meson_use gtk)
-Dlibsysprof=true
-Dinstall-static=false
-Dsysprofd=bundled
-Dsystemdunitdir=$(systemd_get_systemunitdir)
# -Ddebugdir
-Dhelp=true
-Dtools=true
$(meson_use test tests)
-Dexamples=false
)
meson_src_configure
}
src_install() {
meson_src_install
# We want to ship org.gnome.Sysprof3.Profiler.xml in sysprof-common for the benefit of x11-wm/mutter
rm "${ED}"/usr/share/dbus-1/interfaces/org.gnome.Sysprof3.Profiler.xml || die
greadme_stdin <<-EOF
On many systems, especially amd64, it is typical that with a modern
toolchain -fomit-frame-pointer for gcc is the default, because
debugging is still possible thanks to gcc/gdb location list feature.
However sysprof is not able to construct call trees if frame pointers
are not present. Therefore -fno-omit-frame-pointer CFLAGS is suggested
for the libraries and applications involved in the profiling. That
means a CPU register is used for the frame pointer instead of other
purposes, which means a very minimal performance loss when there is
register pressure.
EOF
}
pkg_preinst() {
xdg_pkg_preinst
gnome2_schemas_savelist
greadme_pkg_preinst
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
greadme_pkg_postinst
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}