summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2021-04-27 14:16:15 -0400
committerMike Gilbert <floppym@gentoo.org>2021-04-27 14:16:15 -0400
commitf2b7897598ade571e055da4ea58e25340c259a0d (patch)
treefec807dd027c38370076b8a864fcbe7c73fecd8f /sys-apps/systemd
parentdev-ruby/puppetdb-termini: 7.3.1 bump (diff)
downloadgentoo-f2b7897598ade571e055da4ea58e25340c259a0d.tar.gz
gentoo-f2b7897598ade571e055da4ea58e25340c259a0d.tar.bz2
gentoo-f2b7897598ade571e055da4ea58e25340c259a0d.zip
sys-apps/systemd: fix rfkill with linux-headers-5.12
Closes: https://bugs.gentoo.org/785955 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Diffstat (limited to 'sys-apps/systemd')
-rw-r--r--sys-apps/systemd/files/248-rfkill.patch35
-rw-r--r--sys-apps/systemd/systemd-248.ebuild1
2 files changed, 36 insertions, 0 deletions
diff --git a/sys-apps/systemd/files/248-rfkill.patch b/sys-apps/systemd/files/248-rfkill.patch
new file mode 100644
index 00000000000..12250870435
--- /dev/null
+++ b/sys-apps/systemd/files/248-rfkill.patch
@@ -0,0 +1,35 @@
+From ab1aa6368a883bce88e3162fee2bea14aacedf23 Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <luca.boccassi@microsoft.com>
+Date: Tue, 13 Apr 2021 13:17:53 +0100
+Subject: [PATCH] rfkill: add some casts to silence -Werror=sign-compare
+
+---
+ src/rfkill/rfkill.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/rfkill/rfkill.c b/src/rfkill/rfkill.c
+index e2d1a1be5fa..bff1a2886be 100644
+--- a/src/rfkill/rfkill.c
++++ b/src/rfkill/rfkill.c
+@@ -177,7 +177,7 @@ static int load_state(Context *c, const struct rfkill_event *event) {
+ ssize_t l = write(c->rfkill_fd, &we, sizeof we);
+ if (l < 0)
+ return log_error_errno(errno, "Failed to restore rfkill state for %i: %m", event->idx);
+- if (l < RFKILL_EVENT_SIZE_V1)
++ if ((size_t)l < RFKILL_EVENT_SIZE_V1) /* l cannot be < 0 here. Cast to fix -Werror=sign-compare */
+ return log_error_errno(SYNTHETIC_ERRNO(EIO),
+ "Couldn't write rfkill event structure, too short (wrote %zd of %zu bytes).",
+ l, sizeof we);
+@@ -335,9 +335,9 @@ static int run(int argc, char *argv[]) {
+ break;
+ }
+
+- if (l < RFKILL_EVENT_SIZE_V1)
+- return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short read of struct rfkill_event: (%zd < %d)",
+- l, RFKILL_EVENT_SIZE_V1);
++ if ((size_t)l < RFKILL_EVENT_SIZE_V1) /* l cannot be < 0 here. Cast to fix -Werror=sign-compare */
++ return log_error_errno(SYNTHETIC_ERRNO(EIO), "Short read of struct rfkill_event: (%zd < %zu)",
++ l, (size_t) RFKILL_EVENT_SIZE_V1); /* Casting necessary to make compiling with different kernel versions happy */
+ log_debug("Reading struct rfkill_event: got %zd bytes.", l);
+
+ /* The event structure has more fields. We only care about the first few, so it's OK if we
diff --git a/sys-apps/systemd/systemd-248.ebuild b/sys-apps/systemd/systemd-248.ebuild
index 1c671060823..3f21eb06853 100644
--- a/sys-apps/systemd/systemd-248.ebuild
+++ b/sys-apps/systemd/systemd-248.ebuild
@@ -214,6 +214,7 @@ src_prepare() {
# Add local patches here
PATCHES+=(
+ "${FILESDIR}/248-rfkill.patch"
)
if ! use vanilla; then