Skip to content

Commit

Permalink
gnome-base/libgtop: fix build w/ clang 15
Browse files Browse the repository at this point in the history
Closes: https://bugs.gentoo.org/871051
Signed-off-by: Sam James <[email protected]>
  • Loading branch information
thesamesam committed Nov 18, 2022
1 parent 0c3d8aa commit f5a9dda
Show file tree
Hide file tree
Showing 2 changed files with 181 additions and 0 deletions.
135 changes: 135 additions & 0 deletions gnome-base/libgtop/files/2.40.0-clang.patch
Original file line number Diff line number Diff line change
@@ -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 <[email protected]>
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 <[email protected]>
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
46 changes: 46 additions & 0 deletions gnome-base/libgtop/libgtop-2.40.0-r2.ebuild
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit f5a9dda

Please sign in to comment.