summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-11-18 02:42:56 +0000
committerSam James <sam@gentoo.org>2022-11-18 02:42:56 +0000
commitf5a9dda8c78d73cd1d9395f3682ae78a1f691ce0 (patch)
tree153b042da361cf96afadb8f1d1ecd2d42adcda9f /gnome-base/libgtop
parentdev-lang/rust-bin: keyword 1.65.0 for ~sparc (diff)
downloadgentoo-f5a9dda8c78d73cd1d9395f3682ae78a1f691ce0.tar.gz
gentoo-f5a9dda8c78d73cd1d9395f3682ae78a1f691ce0.tar.bz2
gentoo-f5a9dda8c78d73cd1d9395f3682ae78a1f691ce0.zip
gnome-base/libgtop: fix build w/ clang 15
Closes: https://bugs.gentoo.org/871051 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'gnome-base/libgtop')
-rw-r--r--gnome-base/libgtop/files/2.40.0-clang.patch135
-rw-r--r--gnome-base/libgtop/libgtop-2.40.0-r2.ebuild46
2 files changed, 181 insertions, 0 deletions
diff --git a/gnome-base/libgtop/files/2.40.0-clang.patch b/gnome-base/libgtop/files/2.40.0-clang.patch
new file mode 100644
index 000000000000..f36783e98d65
--- /dev/null
+++ b/gnome-base/libgtop/files/2.40.0-clang.patch
@@ -0,0 +1,135 @@
+https://bugs.gentoo.org/871051
+https://gitlab.gnome.org/GNOME/libgtop/-/commit/7e9fed1513a7937b62bae641b76cee405c6add5a
+https://gitlab.gnome.org/GNOME/libgtop/-/commit/df6393ac0cd785727329a97f731a4067334c0ace
+
+From 7e9fed1513a7937b62bae641b76cee405c6add5a Mon Sep 17 00:00:00 2001
+From: Avinash Sonawane <rootkea@gmail.com>
+Date: Mon, 20 Dec 2021 13:16:44 +0530
+Subject: [PATCH] Use correct format specifiers
+
+--- a/src/daemon/io.c
++++ b/src/daemon/io.c
+@@ -27,7 +27,7 @@ void
+ do_output (int s, glibtop_response *resp, off_t offset,
+ size_t data_size, const void *data)
+ {
+- glibtop_debug ("Really writing %d bytes at offset %lu.",
++ glibtop_debug ("Really writing %zu bytes at offset %lu.",
+ sizeof (glibtop_response), offset);
+
+ resp->offset = offset;
+@@ -42,7 +42,7 @@ do_output (int s, glibtop_response *resp, off_t offset,
+ }
+
+ if (resp->data_size) {
+- glibtop_debug ("Writing %d bytes of data.", resp->data_size);
++ glibtop_debug ("Writing %lu bytes of data.", resp->data_size);
+
+ if (s == 0) {
+ if (write (1, data, resp->data_size) < 0)
+@@ -84,7 +84,7 @@ do_read (int s, void *ptr, size_t total_size)
+ tmp_ptr += nread;
+ ptr = tmp_ptr;
+
+- glibtop_debug ("READ (%d): %d - %d - %d",
++ glibtop_debug ("READ (%d): %zu - %zu - %zu",
+ nread, already_read, remaining, total_size);
+ }
+
+--- a/src/daemon/main.c
++++ b/src/daemon/main.c
+@@ -49,7 +49,7 @@ handle_parent_connection (int s)
+ glibtop_server_features);
+
+ if (enable_debug)
+- syslog_message (LOG_DEBUG, "SIZEOF: %u - %u - %u - %u - %u - %u",
++ syslog_message (LOG_DEBUG, "SIZEOF: %zu - %zu - %zu - %zu - %zu - %zu",
+ sizeof (glibtop_command), sizeof (glibtop_response),
+ sizeof (glibtop_mountentry), sizeof (glibtop_union),
+ sizeof (glibtop_sysdeps),
+@@ -58,12 +58,12 @@ handle_parent_connection (int s)
+ while (do_read (s, cmnd, sizeof (glibtop_command))) {
+ if (enable_debug)
+ syslog_message (LOG_DEBUG,
+- "Parent (%d) received command %llu from client.",
++ "Parent (%d) received command %lu from client.",
+ getpid (), cmnd->command);
+
+ if (cmnd->data_size >= BUFSIZ) {
+ syslog_message (LOG_WARNING,
+- "Client sent %llu bytes, but buffer is %lu",
++ "Client sent %lu bytes, but buffer is %lu",
+ cmnd->data_size, (unsigned long)BUFSIZ);
+ return;
+ }
+@@ -74,7 +74,7 @@ handle_parent_connection (int s)
+
+ if (cmnd->data_size) {
+ if (enable_debug)
+- syslog_message (LOG_DEBUG, "Client has %llu bytes of data.",
++ syslog_message (LOG_DEBUG, "Client has %lu bytes of data.",
+ cmnd->data_size);
+
+ do_read (s, parameter, cmnd->data_size);
+@@ -244,7 +244,7 @@ handle_parent_connection (int s)
+ 0, NULL);
+ break;
+ default:
+- syslog_message (LOG_ERR, "Parent received unknown command %llu.",
++ syslog_message (LOG_ERR, "Parent received unknown command %lu.",
+ cmnd->command);
+ break;
+ }
+--- a/src/daemon/slave.c
++++ b/src/daemon/slave.c
+@@ -42,10 +42,10 @@ handle_slave_connection (int input, int output)
+
+ while (do_read (input, cmnd, sizeof (glibtop_command))) {
+ glibtop_debug ("Slave %d received command "
+- "%llu from client.", getpid (), cmnd->command);
++ "%lu from client.", getpid (), cmnd->command);
+
+ if (cmnd->data_size >= BUFSIZ)
+- glibtop_error ("Client sent %llu bytes, "
++ glibtop_error ("Client sent %lu bytes, "
+ "but buffer is %lu",
+ cmnd->size, (unsigned long)BUFSIZ);
+
+@@ -54,7 +54,7 @@ handle_slave_connection (int input, int output)
+ memset (parameter, 0, sizeof (parameter));
+
+ if (cmnd->data_size) {
+- glibtop_debug ("Client has %llu bytes of data.",
++ glibtop_debug ("Client has %lu bytes of data.",
+ cmnd->data_size);
+
+ do_read (input, parameter, cmnd->data_size);
+@@ -261,7 +261,7 @@ handle_slave_command (glibtop_command *cmnd, glibtop_response *resp,
+ break;
+ #endif
+ default:
+- glibtop_error ("Child received unknown command %llu",
++ glibtop_error ("Child received unknown command %lu",
+ cmnd->command);
+ break;
+ }
+GitLab
+From df6393ac0cd785727329a97f731a4067334c0ace Mon Sep 17 00:00:00 2001
+From: Avinash Sonawane <rootkea@gmail.com>
+Date: Mon, 20 Dec 2021 13:33:42 +0530
+Subject: [PATCH] Pass correct parameter
+
+--- a/src/daemon/main.c
++++ b/src/daemon/main.c
+@@ -226,8 +226,9 @@ handle_parent_connection (int s)
+ 0, NULL);
+ break;
+ case GLIBTOP_CMND_PROC_IO:
++ memcpy (&pid, parameter, sizeof (pid_t));
+ glibtop_get_proc_io_l
+- (server, &resp->u.data.proc_io, parameter);
++ (server, &resp->u.data.proc_io, pid);
+ do_output (s, resp, _offset_data (proc_io),
+ 0, NULL);
+ break;
+GitLab
diff --git a/gnome-base/libgtop/libgtop-2.40.0-r2.ebuild b/gnome-base/libgtop/libgtop-2.40.0-r2.ebuild
new file mode 100644
index 000000000000..4f35b7e77763
--- /dev/null
+++ b/gnome-base/libgtop/libgtop-2.40.0-r2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+GNOME2_EAUTORECONF="yes"
+inherit flag-o-matic gnome2
+
+DESCRIPTION="A library that provides top functionality to applications"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/libgtop"
+SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="2/11" # libgtop soname version
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="+introspection"
+
+RDEPEND="
+ >=dev-libs/glib-2.26:2
+ introspection? ( >=dev-libs/gobject-introspection-0.6.7:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-util/gtk-doc-am-1.4
+ >=sys-devel/gettext-0.19.6
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${WORKDIR}"/patches # patches from master (not stable branch) that seem safe and fix potential eautoreconf problems
+ "${FILESDIR}"/${PV}-sandbox-workaround.patch # requires suid handling in ebuild - https://gitlab.gnome.org/GNOME/libgtop/issues/48
+ "${FILESDIR}"/${PV}-clang.patch
+)
+
+src_configure() {
+ # Add explicit stdc, bug #628256
+ append-cflags "-std=c99"
+
+ gnome2_src_configure \
+ --disable-static \
+ $(use_enable introspection)
+}
+
+src_install() {
+ gnome2_src_install
+ chmod 4755 "${ED}"/usr/bin/libgtop_server2 || die
+}