import CS systemd-252-51.el9
This commit is contained in:
parent
a34de4e57d
commit
6cd67ea240
@ -0,0 +1,33 @@
|
||||
From ebb65ff6498d81a846aa9d583b9a970562c3ae02 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 1 Oct 2024 11:30:18 +0200
|
||||
Subject: [PATCH] man: using WantedBy=default.target is not a good idea
|
||||
|
||||
We had several users, that wrote their unit files with
|
||||
WantedBy=default.target because it should be started "every time".
|
||||
But for example in Fedora/CentOS/RHEL, this often breaks for
|
||||
example selinux relabels (where we just want to do a relabel and reboot).
|
||||
|
||||
(cherry picked from commit 67b6404b80cf8078f3d9ec6d4c2f34ac25b15077)
|
||||
|
||||
Resolves: RHEL-36531
|
||||
---
|
||||
man/systemd.special.xml | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
|
||||
index 1620895511..0c1f03ecf3 100644
|
||||
--- a/man/systemd.special.xml
|
||||
+++ b/man/systemd.special.xml
|
||||
@@ -229,6 +229,11 @@
|
||||
names like <varname>single</varname>, <varname>rescue</varname>, <varname>1</varname>,
|
||||
<varname>3</varname>, <varname>5</varname>, …; see
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
|
||||
+
|
||||
+ <para>For typical unit files please set <literal>WantedBy=</literal> to a regular target (like
|
||||
+ <filename>multi-user.target</filename> or <filename>graphical.target</filename>),
|
||||
+ instead of <filename>default.target</filename>, since such a service will also be run on special
|
||||
+ boots like on system update, emergency boot…</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
@ -0,0 +1,47 @@
|
||||
From 855452031835240ca981fe74faa3fce8f32642b7 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Thu, 4 Jan 2024 13:40:00 +0100
|
||||
Subject: [PATCH] logind: tighten for which classes of sessions we do
|
||||
stop-on-idle
|
||||
|
||||
We only want to do this for fully set up, interactive sessions, i.e.
|
||||
user and user-early, but not for any others, hence restrict the rules a
|
||||
bit.
|
||||
|
||||
Follow-up for: 508b4786e8592e82eb4832549f74aaa54335d14c
|
||||
|
||||
(cherry picked from commit ad23439eae718ac3634f260be0d29e01445983a8)
|
||||
|
||||
Related: RHEL-24340
|
||||
---
|
||||
src/login/logind-session.c | 2 +-
|
||||
src/login/logind-session.h | 3 +++
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/login/logind-session.c b/src/login/logind-session.c
|
||||
index af5817e2b6..8c8dd0d43e 100644
|
||||
--- a/src/login/logind-session.c
|
||||
+++ b/src/login/logind-session.c
|
||||
@@ -735,7 +735,7 @@ static int session_setup_stop_on_idle_timer(Session *s) {
|
||||
|
||||
assert(s);
|
||||
|
||||
- if (s->manager->stop_idle_session_usec == USEC_INFINITY || IN_SET(s->class, SESSION_GREETER, SESSION_LOCK_SCREEN))
|
||||
+ if (s->manager->stop_idle_session_usec == USEC_INFINITY || !SESSION_CLASS_CAN_STOP_ON_IDLE(s->class))
|
||||
return 0;
|
||||
|
||||
r = sd_event_add_time_relative(
|
||||
diff --git a/src/login/logind-session.h b/src/login/logind-session.h
|
||||
index 4c28607986..5ee059aa4f 100644
|
||||
--- a/src/login/logind-session.h
|
||||
+++ b/src/login/logind-session.h
|
||||
@@ -27,6 +27,9 @@ typedef enum SessionClass {
|
||||
_SESSION_CLASS_INVALID = -EINVAL,
|
||||
} SessionClass;
|
||||
|
||||
+/* Which sessions classes should be subject to stop-in-idle */
|
||||
+#define SESSION_CLASS_CAN_STOP_ON_IDLE(class) (IN_SET((class), SESSION_USER))
|
||||
+
|
||||
typedef enum SessionType {
|
||||
SESSION_UNSPECIFIED,
|
||||
SESSION_TTY,
|
35
SOURCES/1045-Fix-configuration-for-Packit-1.0.0.patch
Normal file
35
SOURCES/1045-Fix-configuration-for-Packit-1.0.0.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From bb607f5183dd812ccd3645cf6ca8f5dfad2cb7cd Mon Sep 17 00:00:00 2001
|
||||
From: packit-public-repos-bot
|
||||
<125959684+packit-public-repos-bot@users.noreply.github.com>
|
||||
Date: Wed, 11 Dec 2024 11:57:20 +0100
|
||||
Subject: [PATCH] Fix configuration for Packit 1.0.0
|
||||
|
||||
This commit fixes the configuration for the forthcoming Packit 1.0.0.
|
||||
See [our blog post](https://packit.dev/posts/packit_1_0_0_action_required) for more details.
|
||||
- Job type `build` has been changed to `copr_build`.
|
||||
- Job type `production_build` has been changed to `upstream_koji_build`.
|
||||
- Key `upstream_project_name` has been changed to `upstream_package_name`.
|
||||
- Key `synced_files` has been changed to `files_to_sync`.
|
||||
|
||||
Please review and merge me before January 2025 otherwise packit-service jobs will fail because of an invalid configuration.
|
||||
|
||||
rhel-only: ci
|
||||
|
||||
Resolves: RHEL-70884
|
||||
---
|
||||
.packit.yml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.packit.yml b/.packit.yml
|
||||
index 9697a0df84..17bc9d1db8 100644
|
||||
--- a/.packit.yml
|
||||
+++ b/.packit.yml
|
||||
@@ -4,7 +4,7 @@
|
||||
# Docs: https://packit.dev/docs/
|
||||
|
||||
specfile_path: .packit_rpm/systemd.spec
|
||||
-synced_files:
|
||||
+files_to_sync:
|
||||
- .packit.yaml
|
||||
- src: .packit_rpm/systemd.spec
|
||||
dest: systemd.spec
|
@ -0,0 +1,55 @@
|
||||
From faf449e8176b05f281d69ce013d9aedf3a22eb21 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Macku <jamacku@redhat.com>
|
||||
Date: Fri, 3 Jan 2025 09:33:26 +0100
|
||||
Subject: [PATCH] udev/net_id: introduce naming scheme for RHEL-9.6
|
||||
|
||||
rhel-only: policy
|
||||
|
||||
Resolves: RHEL-25515
|
||||
---
|
||||
man/systemd.net-naming-scheme.xml | 6 ++++++
|
||||
src/shared/netif-naming-scheme.c | 1 +
|
||||
src/shared/netif-naming-scheme.h | 1 +
|
||||
3 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/man/systemd.net-naming-scheme.xml b/man/systemd.net-naming-scheme.xml
|
||||
index 83293e5636..f2077ed02d 100644
|
||||
--- a/man/systemd.net-naming-scheme.xml
|
||||
+++ b/man/systemd.net-naming-scheme.xml
|
||||
@@ -513,6 +513,12 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
+ <varlistentry>
|
||||
+ <term><constant>rhel-9.6</constant></term>
|
||||
+
|
||||
+ <listitem><para>Same as naming scheme <constant>rhel-9.5</constant>.</para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
</variablelist>
|
||||
|
||||
<para>By default <constant>rhel-9.0</constant> is used.</para>
|
||||
diff --git a/src/shared/netif-naming-scheme.c b/src/shared/netif-naming-scheme.c
|
||||
index 9f0c783300..360a603581 100644
|
||||
--- a/src/shared/netif-naming-scheme.c
|
||||
+++ b/src/shared/netif-naming-scheme.c
|
||||
@@ -45,6 +45,7 @@ static const NamingScheme naming_schemes[] = {
|
||||
{ "rhel-9.3", NAMING_RHEL_9_3 },
|
||||
{ "rhel-9.4", NAMING_RHEL_9_4 },
|
||||
{ "rhel-9.5", NAMING_RHEL_9_5 },
|
||||
+ { "rhel-9.6", NAMING_RHEL_9_6 },
|
||||
/* … add more schemes here, as the logic to name devices is updated … */
|
||||
|
||||
EXTRA_NET_NAMING_MAP
|
||||
diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h
|
||||
index 5bc071f8db..c533d0f37f 100644
|
||||
--- a/src/shared/netif-naming-scheme.h
|
||||
+++ b/src/shared/netif-naming-scheme.h
|
||||
@@ -74,6 +74,7 @@ typedef enum NamingSchemeFlags {
|
||||
NAMING_RHEL_9_3 = NAMING_RHEL_9_0 | NAMING_SR_IOV_R,
|
||||
NAMING_RHEL_9_4 = NAMING_RHEL_9_3,
|
||||
NAMING_RHEL_9_5 = NAMING_RHEL_9_4 & ~NAMING_BRIDGE_MULTIFUNCTION_SLOT,
|
||||
+ NAMING_RHEL_9_6 = NAMING_RHEL_9_5,
|
||||
|
||||
EXTRA_NET_NAMING_SCHEMES
|
||||
|
@ -0,0 +1,24 @@
|
||||
From b037a49a6b4946a1b006a4ca7326cf421833e549 Mon Sep 17 00:00:00 2001
|
||||
From: Renan Guilherme <japareaggae@gmail.com>
|
||||
Date: Wed, 7 Aug 2024 18:57:18 -0400
|
||||
Subject: [PATCH] hwdb: Fix accelerometer mount matrix for ASUS T100TAS
|
||||
|
||||
(cherry picked from commit 3a576084e2dcac9ecdace7afb89231b819bc100e)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 1e3af6f358..80547834d2 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -152,6 +152,7 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnM80TA:*
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA:*
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TAF:*
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TAM:*
|
||||
+sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TAS:*
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
@ -0,0 +1,31 @@
|
||||
From b124550f352c2cb197686117f576f7c4042c20aa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= <filip.lewinski@3mdeb.com>
|
||||
Date: Wed, 28 Aug 2024 19:33:43 +0200
|
||||
Subject: [PATCH] hwdb.d/60-keyboard.hwdb: add Clevo mic mute quirk for V5x
|
||||
dGPU
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
|
||||
(cherry picked from commit 8c7b1401640bcda13ece799a063782e0a608476e)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 15c0d4ca31..a5e170adb9 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -341,6 +341,9 @@ evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV54x_6x_TU:*
|
||||
KEYBOARD_KEY_f7=f21 # Touchpad Toggle
|
||||
KEYBOARD_KEY_f8=f21 # Touchpad Toggle
|
||||
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV5xTNC_TND_TNE:*
|
||||
+ KEYBOARD_KEY_81=f20 # Fn+4; Mic Mute
|
||||
+
|
||||
###########################################################
|
||||
# Compal
|
||||
###########################################################
|
@ -0,0 +1,32 @@
|
||||
From edd50c274cfec926764f87d5d5552d3da5028474 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Fri, 30 Aug 2024 13:08:40 +0900
|
||||
Subject: [PATCH] hwdb: add entry for Dell AlpsPS/2 ALPS DualPoint TouchPad
|
||||
|
||||
Closes #34133.
|
||||
|
||||
(cherry picked from commit 16d70515e11697d24f9b12fd803f51386b6183d2)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-evdev.hwdb | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
|
||||
index 0b70a82093..372ae682ed 100644
|
||||
--- a/hwdb.d/60-evdev.hwdb
|
||||
+++ b/hwdb.d/60-evdev.hwdb
|
||||
@@ -255,6 +255,13 @@ evdev:input:b0003v0ED1p7821*
|
||||
# Dell
|
||||
#########################################
|
||||
|
||||
+# Dell AlpsPS/2 ALPS DualPoint TouchPad
|
||||
+evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*:svnDellInc.*:pnLatitudeE7440*:
|
||||
+ EVDEV_ABS_00=:::28
|
||||
+ EVDEV_ABS_01=:::28
|
||||
+ EVDEV_ABS_35=:::28
|
||||
+ EVDEV_ABS_36=:::28
|
||||
+
|
||||
# Dell Vostro 1510
|
||||
evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnDellInc.:pnVostro1510:*
|
||||
EVDEV_ABS_00=::14
|
@ -0,0 +1,42 @@
|
||||
From 09c1776dd1b3d87dd9c5873634ab95b48ee20b65 Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Thu, 5 Sep 2024 15:09:58 +0200
|
||||
Subject: [PATCH] hwdb: Mark Apple Wireless keyboards as not having NumLock LED
|
||||
|
||||
Mark those Apple Wireless keyboards as not having a NumLock key:
|
||||
https://en.wikipedia.org/wiki/Apple_Wireless_Keyboard
|
||||
|
||||
You can see that they don't have a NumLock LED because they didn't even
|
||||
have a NumLock in the first place:
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0fea6fe7d5ef1b5fa5f78048d4729f85181c04ca
|
||||
|
||||
(cherry picked from commit 5a11437e2e39a0dfff53cc5b48f6637177e64fc5)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index a5e170adb9..a72f619e7c 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -2291,6 +2291,18 @@ evdev:input:b0003v05FEp1010*
|
||||
#
|
||||
# Presence of a LED is implicit when the property is absent.
|
||||
|
||||
+# Apple Wireless keyboards
|
||||
+evdev:input:b0005v05aCp022C*
|
||||
+evdev:input:b0005v05aCp022D*
|
||||
+evdev:input:b0005v05aCp022E*
|
||||
+evdev:input:b0005v05aCp0239*
|
||||
+evdev:input:b0005v05aCp023A*
|
||||
+evdev:input:b0005v05aCp023B*
|
||||
+evdev:input:b0005v05aCp0255*
|
||||
+evdev:input:b0005v05aCp0256*
|
||||
+evdev:input:b0005v05aCp0257*
|
||||
+ KEYBOARD_LED_NUMLOCK=0
|
||||
+
|
||||
# Logitech K750
|
||||
evdev:input:b0003v046Dp4002*
|
||||
KEYBOARD_LED_NUMLOCK=0
|
@ -0,0 +1,27 @@
|
||||
From 9ce665e76a78d2995496253cae30750bb00a0557 Mon Sep 17 00:00:00 2001
|
||||
From: Yanqing Jing <michael.origin.j@gmail.com>
|
||||
Date: Mon, 9 Sep 2024 20:18:40 +0800
|
||||
Subject: [PATCH] update keyboard hwdb to add acer Predator PHN16-72
|
||||
|
||||
(cherry picked from commit d8b4be38ddc5e7cb1dc5e6da9b6e247d6a3d9ffd)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index a72f619e7c..3bf4860e1d 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -231,6 +231,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-71:*
|
||||
KEYBOARD_KEY_f5=prog1 # "predator sense" button
|
||||
KEYBOARD_KEY_66=micmute # Microphone mute button
|
||||
|
||||
+# Predator PHN16-72
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-72:*
|
||||
+ KEYBOARD_KEY_66=micmute # Microphone mute button
|
||||
+
|
||||
# Nitro AN515-58
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
|
||||
KEYBOARD_KEY_8a=f20 # Microphone mute button
|
102
SOURCES/1052-hwdb-death-to-tabs.patch
Normal file
102
SOURCES/1052-hwdb-death-to-tabs.patch
Normal file
@ -0,0 +1,102 @@
|
||||
From 7944aaf1e79888ed511b8d036af1be4f3f654139 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 10 Sep 2024 10:09:24 +0200
|
||||
Subject: [PATCH] hwdb: death to tabs!
|
||||
|
||||
Some tabs snuck in here, but we don't like tabs in our codebase. Fix
|
||||
them.
|
||||
|
||||
(cherry picked from commit 5446e39e0eb48274d78e09555bc4f0e9b20f110b)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 30 +++++++++++++++---------------
|
||||
1 file changed, 15 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 3bf4860e1d..5a08931636 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -223,7 +223,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pn*:*
|
||||
|
||||
# Swift SF314-511
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnSwiftSF314-511:pvr*
|
||||
- KEYBOARD_KEY_8a=f20 # Fn+F12, microphone mute
|
||||
+ KEYBOARD_KEY_8a=f20 # Fn+F12, microphone mute
|
||||
|
||||
# Predator PHN16-71
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-71:*
|
||||
@@ -263,7 +263,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pnM17xR3:*
|
||||
# Aquarius Cmp NS483
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAquarius*:pnCmp*NS483*:*
|
||||
KEYBOARD_KEY_56=backslash
|
||||
- KEYBOARD_KEY_76=f21 # Touchpad Toggle
|
||||
+ KEYBOARD_KEY_76=f21 # Touchpad Toggle
|
||||
|
||||
###########################################################
|
||||
# Asus
|
||||
@@ -980,7 +980,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnJP-IK:pnLEAPW502:pvr*
|
||||
|
||||
# LE14U/LE15U
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnKVADRA*:pn*LE1*U*:*
|
||||
- KEYBOARD_KEY_76=f21 # Fn+F1 Toggle touchpad, sends meta+ctrl+toggle
|
||||
+ KEYBOARD_KEY_76=f21 # Fn+F1 Toggle touchpad, sends meta+ctrl+toggle
|
||||
|
||||
###########################################################
|
||||
# Lenovo
|
||||
@@ -1908,9 +1908,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
|
||||
# Galaxy Book (2021) NP750XDA-KD4SE
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn750XDA:pvr*
|
||||
KEYBOARD_KEY_81=!esc
|
||||
- KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||
- KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
|
||||
- KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
|
||||
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||
+ KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
|
||||
+ KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
|
||||
|
||||
|
||||
###########################################################
|
||||
@@ -2035,13 +2035,13 @@ evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:
|
||||
|
||||
# Portege Z830 ACPI quickstart buttons
|
||||
evdev:name:Quickstart Button 1:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
|
||||
- KEYBOARD_KEY_1=prog1 # TOSHIBA eco button
|
||||
+ KEYBOARD_KEY_1=prog1 # TOSHIBA eco button
|
||||
|
||||
evdev:name:Quickstart Button 2:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
|
||||
- KEYBOARD_KEY_1=prog2 # TOSHIBA Presentation button
|
||||
+ KEYBOARD_KEY_1=prog2 # TOSHIBA Presentation button
|
||||
|
||||
evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
|
||||
- KEYBOARD_KEY_1=f21 # Touchpad toggle
|
||||
+ KEYBOARD_KEY_1=f21 # Touchpad toggle
|
||||
|
||||
###########################################################
|
||||
# VIA
|
||||
@@ -2074,11 +2074,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINET:pnP325J:*
|
||||
# Home: LeftCtrl + Esc -> LeftMeta (ignore LeftCtrl, map Esc to LeftMeta)
|
||||
# Back: Backspace -> back (map backspace to back)
|
||||
evdev:name:FTSC1000:00 2808:509C Keyboard:dmi:*:svnXiaomiInc:pnMipad2:*
|
||||
- KEYBOARD_KEY_700e0=unknown # LeftCtrl -> ignore
|
||||
- KEYBOARD_KEY_700e3=unknown # LeftMeta -> ignore
|
||||
- KEYBOARD_KEY_70016=menu # S -> menu
|
||||
- KEYBOARD_KEY_70029=leftmeta # Esc -> LeftMeta (Windows key / Win8 tablets home)
|
||||
- KEYBOARD_KEY_7002a=back # Backspace -> back
|
||||
+ KEYBOARD_KEY_700e0=unknown # LeftCtrl -> ignore
|
||||
+ KEYBOARD_KEY_700e3=unknown # LeftMeta -> ignore
|
||||
+ KEYBOARD_KEY_70016=menu # S -> menu
|
||||
+ KEYBOARD_KEY_70029=leftmeta # Esc -> LeftMeta (Windows key / Win8 tablets home)
|
||||
+ KEYBOARD_KEY_7002a=back # Backspace -> back
|
||||
|
||||
###########################################################
|
||||
# Zepto
|
||||
@@ -2190,7 +2190,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViewSonic:pnVPAD10:*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJPW1[12]F11X*:pvr*:*
|
||||
# Vaio FE14 (VJFE41F11X, VJE42F11X, VJFE44F11X, VJFE54F11X)
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE*:pvr*:*
|
||||
- KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
|
||||
+ KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
|
||||
|
||||
###########################################################
|
||||
# Positivo
|
@ -0,0 +1,38 @@
|
||||
From c333e0d4f173f7a6a31ff554ebc3e254aa7a8a70 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Filip=20Lewi=C5=84ski?= <filip.lewinski@3mdeb.com>
|
||||
Date: Fri, 30 Aug 2024 09:38:46 +0200
|
||||
Subject: [PATCH] hwdb.d/60-keyboard.hwdb: add Clevo mic mute quirk for V5x
|
||||
iGPU, NV41PZ
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Filip Lewiński <filip.lewinski@3mdeb.com>
|
||||
(cherry picked from commit c3563dc6d999cbc0da30c15e6e9d109021d2bd8e)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 5a08931636..27be239bc6 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -340,12 +340,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNotebook:pnW65_67SZ:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS50_70MU:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4XMB,ME,MZ:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS5x_NS7xPU:*
|
||||
-evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:*
|
||||
-evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV54x_6x_TU:*
|
||||
KEYBOARD_KEY_f7=f21 # Touchpad Toggle
|
||||
KEYBOARD_KEY_f8=f21 # Touchpad Toggle
|
||||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV5xTNC_TND_TNE:*
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:*
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV54x_6x_TU:*
|
||||
+ KEYBOARD_KEY_f7=f21 # Touchpad Toggle
|
||||
+ KEYBOARD_KEY_f8=f21 # Touchpad Toggle
|
||||
KEYBOARD_KEY_81=f20 # Fn+4; Mic Mute
|
||||
|
||||
###########################################################
|
27
SOURCES/1054-Add-ACCEL_MOUNT_MATRIX-for-Chuwi-Hi10-Max.patch
Normal file
27
SOURCES/1054-Add-ACCEL_MOUNT_MATRIX-for-Chuwi-Hi10-Max.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From baf1f8ef3c3e3ba2650f6ce0a8ee243f9cc18fd2 Mon Sep 17 00:00:00 2001
|
||||
From: Gregory Arenius <gregory@arenius.com>
|
||||
Date: Fri, 13 Sep 2024 16:13:58 -0700
|
||||
Subject: [PATCH] Add ACCEL_MOUNT_MATRIX for Chuwi Hi10 Max.
|
||||
|
||||
(cherry picked from commit 3f3dc6ab84e1f3cc5371d48ed910044d39f5c033)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 80547834d2..d88aea4928 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -299,6 +299,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10X:*
|
||||
sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIINNOVATIONLIMITED:pnHi10Go:*
|
||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0,-1, 0; 0, 0, 1
|
||||
|
||||
+# Chuwi Hi10 Max
|
||||
+sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10Max:*
|
||||
+ ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
+
|
||||
# Chuwi Hi12
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnP02BD6_HI-122LP:*
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnDefaultstring:pnDefaultstring:*
|
@ -0,0 +1,32 @@
|
||||
From a18ab708f0525334e123f64a039b6e44fccc64d7 Mon Sep 17 00:00:00 2001
|
||||
From: Matthieu CHARETTE <matthieu.charette@gmail.com>
|
||||
Date: Sat, 14 Sep 2024 16:36:13 +0200
|
||||
Subject: [PATCH] Add HUAWEI MateBook D 15 AMD ACCEL properties
|
||||
|
||||
(cherry picked from commit 8ee3d4df80369eee1210dcec680a03994c08a217)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index d88aea4928..3e32c327e6 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -607,6 +607,15 @@ sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2Detachab
|
||||
sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPProTablet408:*:rn8048:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
+#########################################
|
||||
+# HUAWEI
|
||||
+#########################################
|
||||
+
|
||||
+# HUAWEI MateBook D 15 AMD
|
||||
+sensor:modalias:acpi:SMO8840*:dmi:*:svnHUAWEI:pnBOHK-WAX9X:*
|
||||
+ ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
+ ACCEL_LOCATION=base
|
||||
+
|
||||
#########################################
|
||||
# I.T.Works
|
||||
#########################################
|
@ -0,0 +1,33 @@
|
||||
From 95ac4e7be856343240147eda6d1479a61e0e020f Mon Sep 17 00:00:00 2001
|
||||
From: Celeste Liu <CoelacanthusHex@gmail.com>
|
||||
Date: Mon, 16 Sep 2024 00:31:41 +0800
|
||||
Subject: [PATCH] hwdb: add Kensington SlimBlade Pro trackball (Bluetooth mode)
|
||||
|
||||
Wired and 2.4G dongle connectivity is covered by general trackball rule,
|
||||
but with Bluetooth connectivity Kensington SlimBlade Pro uses the name
|
||||
"SlimBlade Pro" which doesn't contain "[Tt]rack[Bb]all". We need to
|
||||
process it specially.
|
||||
|
||||
Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
|
||||
(cherry picked from commit 6573f0c82c09001b5f24e44df2cbe40f6f584624)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/70-mouse.hwdb | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
|
||||
index 20079d6350..fcd9acd2b4 100644
|
||||
--- a/hwdb.d/70-mouse.hwdb
|
||||
+++ b/hwdb.d/70-mouse.hwdb
|
||||
@@ -310,6 +310,10 @@ mouse:bluetooth:v047dp8019:name:Expert Wireless TB Mouse:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
MOUSE_DPI=400@125
|
||||
|
||||
+# Kensington SlimBlade Pro trackball (via Bluetooth)
|
||||
+mouse:bluetooth:v047dp80d4:name:SlimBlade Pro:*
|
||||
+ ID_INPUT_TRACKBALL=1
|
||||
+
|
||||
##########################################
|
||||
# Lenovo
|
||||
##########################################
|
@ -0,0 +1,29 @@
|
||||
From 463403b1c7eb8499dfe4c3bdf91255cc461db650 Mon Sep 17 00:00:00 2001
|
||||
From: Marius Hoch <mail@mariushoch.de>
|
||||
Date: Wed, 18 Sep 2024 12:07:00 +0200
|
||||
Subject: [PATCH] hwdb: Add accel orientation quirk for the IdeaPad Duet 3
|
||||
10IGL5-LTE
|
||||
|
||||
Signed-off-by: Marius Hoch <mail@mariushoch.de>
|
||||
(cherry picked from commit ff831e7c50350f92a86848b881fa320d528c1bd7)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 3e32c327e6..2adc5abc1f 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -760,8 +760,9 @@ sensor:modalias:i2c:bmc150_accel:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
|
||||
sensor:modalias:acpi:ACCL0001*:dmi:*:svnLENOVO:pn60072:pvr851*:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
-# IdeaPad Duet 3 10IGL5 (82AT)
|
||||
+# IdeaPad Duet 3 10IGL5 (82AT) and 10IGL5-LTE (82HK)
|
||||
sensor:modalias:acpi:SMO8B30*:dmi:*:svnLENOVO*:pn82AT:*
|
||||
+sensor:modalias:acpi:SMO8B30*:dmi:*:svnLENOVO*:pn82HK:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
@ -0,0 +1,31 @@
|
||||
From 0b19839b5097be84b2948f7e5d96b08de7269a5c Mon Sep 17 00:00:00 2001
|
||||
From: JoseskVolpe <78318343+JoseskVolpe@users.noreply.github.com>
|
||||
Date: Thu, 19 Sep 2024 19:36:44 +0000
|
||||
Subject: [PATCH] hwdb: add keymaps for Acer Nitro 5 AN515-47 (#34493)
|
||||
|
||||
This fixes the microphone mute key and NitroSense key for Acer Nitro 5 AN515-47,
|
||||
so they can be recognized by desktop environments.
|
||||
|
||||
(cherry picked from commit 3135a21be422f3c33e445bf249dc5df1a74f9dc0)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 27be239bc6..56bae850e1 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -235,6 +235,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-71:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-72:*
|
||||
KEYBOARD_KEY_66=micmute # Microphone mute button
|
||||
|
||||
+# Nitro AN515-47
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-47:pvr*
|
||||
+ KEYBOARD_KEY_66=micmute # Microphone mute button
|
||||
+ KEYBOARD_KEY_f5=prog1 # NitroSense button
|
||||
+
|
||||
# Nitro AN515-58
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
|
||||
KEYBOARD_KEY_8a=f20 # Microphone mute button
|
@ -0,0 +1,31 @@
|
||||
From 385756ed56a52c189d5378c2d509b615d3ee4aad Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 1 Oct 2024 18:15:28 +0200
|
||||
Subject: [PATCH] hwdb: make key map match comment for one laptop
|
||||
|
||||
No idea what the right fix is here, the commnt says "touchpad off" but
|
||||
uses "f22" which is touchpad "on".
|
||||
|
||||
let's trust the comment, because it's more literal, and assume this was
|
||||
a mistake.
|
||||
|
||||
(cherry picked from commit d8b1d43758d2815a34b24ade858b98d4cbb048f6)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 56bae850e1..038ce29da2 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -674,7 +674,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:
|
||||
|
||||
# Pavilion 13 x360 (Tablet mode and SYSRQ key)
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*13*x360*:*
|
||||
- KEYBOARD_KEY_d7=!f22 # touchpad off
|
||||
+ KEYBOARD_KEY_d7=!f23 # touchpad off
|
||||
KEYBOARD_KEY_d9=unknown
|
||||
KEYBOARD_KEY_d2=sysrq # Fn+Print = SYSRQ
|
||||
|
@ -0,0 +1,50 @@
|
||||
From a842b197e797c8faa54485f8f937f9d811b0aa84 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 10 Sep 2024 16:57:41 +0200
|
||||
Subject: [PATCH] hwdb: there's KEY_BRIGHTNESS_AUTO these days, hence hook it
|
||||
up where a FIXME suggests that
|
||||
|
||||
(cherry picked from commit 81f1aad8ce42a16b1e80ac3525501eb18d32238a)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 038ce29da2..7afc13ebc6 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -408,12 +408,12 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
|
||||
KEYBOARD_KEY_89=ejectclosecd # Fn+F10 Eject CD
|
||||
KEYBOARD_KEY_8a=suspend # Fn+F1 hibernate
|
||||
KEYBOARD_KEY_8b=switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle")
|
||||
- KEYBOARD_KEY_8c=unknown # Fn+Right Auto Brightness
|
||||
+ KEYBOARD_KEY_8c=brightness_auto # Fn+Right Auto Brightness
|
||||
KEYBOARD_KEY_8f=switchvideomode # Fn+F7 aspect ratio
|
||||
KEYBOARD_KEY_90=previoussong # Front panel previous song
|
||||
KEYBOARD_KEY_91=prog1 # Wi-Fi Catcher (Dell-specific)
|
||||
KEYBOARD_KEY_92=media # MediaDirect button (house icon)
|
||||
- KEYBOARD_KEY_93=unknown # FIXME Fn+Left Auto Brightness
|
||||
+ KEYBOARD_KEY_93=brightness_auto # Fn+Left Auto Brightness
|
||||
KEYBOARD_KEY_95=camera # Shutter button - Takes a picture if optional camera available
|
||||
KEYBOARD_KEY_97=email # Tablet email button
|
||||
KEYBOARD_KEY_98=f21 # FIXME: Tablet screen rotation
|
||||
@@ -644,7 +644,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*:*
|
||||
KEYBOARD_KEY_8c=media # music
|
||||
KEYBOARD_KEY_8e=dvd
|
||||
KEYBOARD_KEY_b1=help
|
||||
- KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness
|
||||
+ KEYBOARD_KEY_b3=brightness_auto # Auto brightness
|
||||
KEYBOARD_KEY_d7=wlan
|
||||
KEYBOARD_KEY_92=brightnessdown # Fn+F7 (Fn+F9 on 6730b)
|
||||
KEYBOARD_KEY_97=brightnessup # Fn+F8 (Fn+F10 on 6730b)
|
||||
@@ -747,7 +747,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
|
||||
KEYBOARD_KEY_97=brightnessup
|
||||
KEYBOARD_KEY_d8=!f23 # touchpad off
|
||||
KEYBOARD_KEY_d9=!f22 # touchpad on
|
||||
- KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness
|
||||
+ KEYBOARD_KEY_b3=brightness_auto # Auto brightness
|
||||
|
||||
# TX2
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:*
|
@ -0,0 +1,80 @@
|
||||
From be90d03e498266e6a60986536fbd24843a07b16f Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 10 Sep 2024 17:14:52 +0200
|
||||
Subject: [PATCH] hwdb: use KEY_ROTATE_DISPLAY for various cases of display
|
||||
rotation keys
|
||||
|
||||
The keycode is reletively new. Let's fix some "FIXMEs" and actually make
|
||||
use of the keycode wherever it appears appropriate according to
|
||||
commentary.
|
||||
|
||||
(cherry picked from commit 427403baa6c3ff256c2cbb855d68c3d01776949d)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 7afc13ebc6..c9baa1ebf8 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -190,7 +190,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311RN-31*:pvr*
|
||||
|
||||
# Travelmate C300
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:*
|
||||
- KEYBOARD_KEY_67=f24 # FIXME: rotate screen
|
||||
+ KEYBOARD_KEY_67=rotate_display # rotate screen
|
||||
KEYBOARD_KEY_68=up
|
||||
KEYBOARD_KEY_69=down
|
||||
KEYBOARD_KEY_6b=fn
|
||||
@@ -416,7 +416,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
|
||||
KEYBOARD_KEY_93=brightness_auto # Fn+Left Auto Brightness
|
||||
KEYBOARD_KEY_95=camera # Shutter button - Takes a picture if optional camera available
|
||||
KEYBOARD_KEY_97=email # Tablet email button
|
||||
- KEYBOARD_KEY_98=f21 # FIXME: Tablet screen rotation
|
||||
+ KEYBOARD_KEY_98=rotate_display # Tablet screen rotation
|
||||
KEYBOARD_KEY_99=nextsong # Front panel next song
|
||||
KEYBOARD_KEY_9a=setup # Tablet tools button
|
||||
KEYBOARD_KEY_9b=switchvideomode # Display toggle button
|
||||
@@ -486,7 +486,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDellInc.:pnDellSystemXPSL702X:*
|
||||
# Dell XPS12 9Q33
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:*
|
||||
KEYBOARD_KEY_88=wlan
|
||||
- KEYBOARD_KEY_65=direction # Screen Rotate
|
||||
+ KEYBOARD_KEY_65=rotate_display # Screen Rotate
|
||||
|
||||
# Dell Pro Rugged microphone mute
|
||||
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnDellProRugged*:*
|
||||
@@ -1068,11 +1068,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*T*:rvn*
|
||||
KEYBOARD_KEY_66=screenlock
|
||||
KEYBOARD_KEY_67=cyclewindows # bezel circular arrow
|
||||
KEYBOARD_KEY_68=setup # bezel setup / menu
|
||||
- KEYBOARD_KEY_6c=direction # rotate screen
|
||||
+ KEYBOARD_KEY_6c=rotate_display # rotate screen
|
||||
|
||||
# ThinkPad X6 Tablet
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet*:rvn*
|
||||
- KEYBOARD_KEY_6c=direction # rotate
|
||||
+ KEYBOARD_KEY_6c=rotate_display # rotate
|
||||
KEYBOARD_KEY_68=leftmeta # toolbox
|
||||
KEYBOARD_KEY_6b=esc # escape
|
||||
KEYBOARD_KEY_6d=right # right on d-pad
|
||||
@@ -1083,7 +1083,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet*:rvn*
|
||||
|
||||
# ThinkPad X41 Tablet
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:*
|
||||
- KEYBOARD_KEY_6c=direction # rotate
|
||||
+ KEYBOARD_KEY_6c=rotate_display # rotate
|
||||
KEYBOARD_KEY_68=leftmeta # toolbox
|
||||
KEYBOARD_KEY_6b=esc # escape
|
||||
KEYBOARD_KEY_69=enter # enter on d-pad
|
||||
@@ -1551,7 +1551,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Prestige*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
|
||||
KEYBOARD_KEY_91=prog1 # Fn+F7 Creation Center, sometime F7
|
||||
- KEYBOARD_KEY_f2=prog2 # Fn+F12 Screen rotation
|
||||
+ KEYBOARD_KEY_f2=rotate_display # Fn+F12 Screen rotation
|
||||
KEYBOARD_KEY_8d=prog3 # Fn+A Change True Color selections
|
||||
KEYBOARD_KEY_8c=prog4 # Fn+Z Launch True Color
|
||||
KEYBOARD_KEY_f5=fn_esc # Fn+esc Toggle the behaviour of Fn keys
|
@ -0,0 +1,69 @@
|
||||
From d6816303fd9e6a3e70b6939e263729feb72dfcb2 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 10 Sep 2024 17:19:12 +0200
|
||||
Subject: [PATCH] hwbd: use newer KEY_PICKUP_PHONE, KEY_HANGUP_PHONE,
|
||||
KEY_SELECTIVE_SCREENSHOT, KEY_NOTIFICATION_CENTER keycodes where appropriate
|
||||
|
||||
According to kernel commit cd80ec795156346236e9b1cd9f5cbff5a9bbd212
|
||||
these were added expressly for these thinkpads, hence use them now.
|
||||
|
||||
(cherry picked from commit ca5f27037b262143ab387ad9916edccfaad2c780)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 20 ++++++++++----------
|
||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index c9baa1ebf8..b4848fafd8 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -804,8 +804,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:*
|
||||
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
|
||||
KEYBOARD_KEY_6d=displaytoggle # Display icon
|
||||
- KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go
|
||||
- KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel
|
||||
+ KEYBOARD_KEY_66=pickup_phone # Pickup phone button
|
||||
+ KEYBOARD_KEY_65=hangup_phone # Hangup phone button
|
||||
|
||||
# HP ZBook 15 G2
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
|
||||
@@ -869,8 +869,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
|
||||
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
|
||||
KEYBOARD_KEY_6d=displaytoggle # Display icon
|
||||
- KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go
|
||||
- KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel
|
||||
+ KEYBOARD_KEY_66=pickup_phone # Pickup phone button
|
||||
+ KEYBOARD_KEY_65=hangup_phone # Hangup phone button
|
||||
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
|
||||
KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
|
||||
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
|
||||
@@ -1013,11 +1013,11 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
|
||||
KEYBOARD_KEY_17=prog1
|
||||
KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute
|
||||
KEYBOARD_KEY_45=bookmarks
|
||||
- KEYBOARD_KEY_46=prog2 # Fn + PrtSc, on Windows: Snipping tool
|
||||
+ KEYBOARD_KEY_46=selective_screenshot # Fn + PrtSc, on Windows: Snipping tool
|
||||
KEYBOARD_KEY_4a=prog3 # Fn + Right shift, on Windows: No idea
|
||||
- KEYBOARD_KEY_4b=chat # Fn + F9, on Windows: Notifications panel key
|
||||
- KEYBOARD_KEY_4c=connect # Fn + F10, on Windows: Answer (Teams) call
|
||||
- KEYBOARD_KEY_4d=cancel # Fn + F11, on Windows: Hangup/decline (Teams) call
|
||||
+ KEYBOARD_KEY_4b=notification_center # Fn + F9, on Windows: Notifications panel key
|
||||
+ KEYBOARD_KEY_4c=pickup_phone # Fn + F10, on Windows: Answer (Teams) call
|
||||
+ KEYBOARD_KEY_4d=hangup_phone # Fn + F11, on Windows: Hangup/decline (Teams) call
|
||||
|
||||
# ThinkPad Keyboard with TrackPoint
|
||||
evdev:input:b0003v17EFp6009*
|
||||
@@ -1203,8 +1203,8 @@ evdev:input:b0003v046Dp00*
|
||||
KEYBOARD_KEY_c102b=cyclewindows # Empty window icon
|
||||
KEYBOARD_KEY_c102c=fn # Fn key
|
||||
KEYBOARD_KEY_c102d=www # www text + magnifierglass icon
|
||||
- KEYBOARD_KEY_c1031=connect # Pickup phone button → connect → XF86Go
|
||||
- KEYBOARD_KEY_c1032=cancel # Hangup phone button → cancel → Cancel
|
||||
+ KEYBOARD_KEY_c1031=pickup_phone # Pickup phone button
|
||||
+ KEYBOARD_KEY_c1032=hangup_phone # Hangup phone button
|
||||
KEYBOARD_KEY_c1041=help # Help text or icon (Fn + F1)
|
||||
KEYBOARD_KEY_c1042=wordprocessor # Word icon (Fn + F2)
|
||||
KEYBOARD_KEY_c1043=spreadsheet # Excel icon (Fn + F3)
|
@ -0,0 +1,53 @@
|
||||
From 6c22ed6cc2a08c7b70e21cb219b3d831ebde414c Mon Sep 17 00:00:00 2001
|
||||
From: Joshua Grisham <josh@joshuagrisham.com>
|
||||
Date: Mon, 7 Oct 2024 03:41:30 +0200
|
||||
Subject: [PATCH] hwdb: add SCAI SKU prefix for Samsung keyboard mapping
|
||||
(#34648)
|
||||
|
||||
(cherry picked from commit db7903e4d40d7a7a0815e6c12d8e4c9aeaa56680)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 21 +++++++++++----------
|
||||
1 file changed, 11 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index b4848fafd8..798529cd10 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -1844,11 +1844,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:*
|
||||
KEYBOARD_KEY_a8=! # Fn Lock - Function lock on
|
||||
KEYBOARD_KEY_a9=! # Fn Lock - Function lock off
|
||||
|
||||
-evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550X*:*
|
||||
- KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||
- KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume up
|
||||
- KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume down
|
||||
-
|
||||
# Series 7 / 9
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*350V*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*670Z*:*
|
||||
@@ -1912,12 +1907,18 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
|
||||
KEYBOARD_KEY_ad=leftmeta
|
||||
|
||||
-# Galaxy Book (2021) NP750XDA-KD4SE
|
||||
-evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn750XDA:pvr*
|
||||
+# Notebook and Galaxy Book series (SKU Number: SCAI-*)
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:sku*SCAI*:*
|
||||
KEYBOARD_KEY_81=!esc
|
||||
- KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||
- KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
|
||||
- KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
|
||||
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||
+ KEYBOARD_KEY_76=f21 # Fn+F5 Touchpad toggle
|
||||
+ KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
|
||||
+ KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
|
||||
+ KEYBOARD_KEY_ac=unknown # Fn+F9 multi-level keyboard backlight toggle - handled by samsung-galaxybook
|
||||
+ KEYBOARD_KEY_9f=unknown # Fn+F10 Camera and microphone toggle - handled by samsung-galaxybook
|
||||
+ KEYBOARD_KEY_a8=!unknown # Fn+F12 Fn lock On - handled by hardware
|
||||
+ KEYBOARD_KEY_a9=!unknown # Fn+F12 Fn lock Off - handled by hardware
|
||||
+ KEYBOARD_KEY_8f=!battery # Notification that battery has met charge control end threshold
|
||||
|
||||
|
||||
###########################################################
|
519
SOURCES/1064-tree-wide-drop-doubled-empty-lines.patch
Normal file
519
SOURCES/1064-tree-wide-drop-doubled-empty-lines.patch
Normal file
@ -0,0 +1,519 @@
|
||||
From cd96f11f946868f1339ef2d6572659f42fe084ac Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Mon, 7 Oct 2024 12:47:57 +0900
|
||||
Subject: [PATCH] tree-wide: drop doubled empty lines
|
||||
|
||||
(cherry picked from commit f769518c9ac6ca6bef063092ddc0e1718a67f540)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 2 --
|
||||
src/analyze/analyze-plot.c | 1 -
|
||||
src/basic/confidential-virt.c | 1 -
|
||||
src/basic/filesystems.c | 1 -
|
||||
src/basic/recurse-dir.c | 1 -
|
||||
src/basic/xattr-util.h | 1 -
|
||||
src/core/load-fragment.c | 1 -
|
||||
src/core/socket.c | 1 -
|
||||
src/cryptenroll/cryptenroll.c | 1 -
|
||||
src/home/homectl.c | 1 -
|
||||
src/home/homed-manager.c | 1 -
|
||||
src/home/homework-fscrypt.c | 1 -
|
||||
src/hostname/hostnamectl.c | 1 -
|
||||
src/integritysetup/integrity-util.c | 1 -
|
||||
src/integritysetup/integrity-util.h | 1 -
|
||||
src/libsystemd-network/sd-dhcp-client.c | 1 -
|
||||
src/libsystemd/sd-bus/bus-message.c | 1 -
|
||||
src/libsystemd/sd-event/sd-event.c | 1 -
|
||||
src/network/netdev/ipoib.c | 1 -
|
||||
src/network/networkd-neighbor.c | 1 -
|
||||
src/nss-systemd/userdb-glue.c | 1 -
|
||||
src/partition/repart.c | 1 -
|
||||
src/resolve/resolved-dns-answer.c | 1 -
|
||||
src/resolve/resolved-dns-question.c | 2 --
|
||||
src/resolve/resolved-dns-rr.c | 1 -
|
||||
src/resolve/resolved-mdns.c | 1 -
|
||||
src/resolve/test-dnssec.c | 1 -
|
||||
src/shared/bpf-compat.h | 1 -
|
||||
src/shared/bpf-program.c | 1 -
|
||||
src/shared/creds-util.c | 1 -
|
||||
src/shared/id128-print.c | 1 -
|
||||
src/shared/userdb.c | 1 -
|
||||
src/systemctl/systemctl-util.c | 1 -
|
||||
src/sysupdate/sysupdate.c | 1 -
|
||||
src/test/test-barrier.c | 1 -
|
||||
src/test/test-bpf-devices.c | 1 -
|
||||
src/test/test-execute.c | 1 -
|
||||
src/test/test-install-root.c | 1 -
|
||||
38 files changed, 40 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 798529cd10..4d5f6b4beb 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -1435,7 +1435,6 @@ evdev:input:b0003v046DpC309*
|
||||
KEYBOARD_KEY_c01b6=images # My Pictures (F11)
|
||||
KEYBOARD_KEY_c01b7=audio # My Music (F12)
|
||||
|
||||
-
|
||||
###########################################################
|
||||
# Maxdata
|
||||
###########################################################
|
||||
@@ -1920,7 +1919,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:sku*SCAI*:*
|
||||
KEYBOARD_KEY_a9=!unknown # Fn+F12 Fn lock Off - handled by hardware
|
||||
KEYBOARD_KEY_8f=!battery # Notification that battery has met charge control end threshold
|
||||
|
||||
-
|
||||
###########################################################
|
||||
# SONY
|
||||
###########################################################
|
||||
diff --git a/src/analyze/analyze-plot.c b/src/analyze/analyze-plot.c
|
||||
index 8aca691b3d..151d715c06 100644
|
||||
--- a/src/analyze/analyze-plot.c
|
||||
+++ b/src/analyze/analyze-plot.c
|
||||
@@ -28,7 +28,6 @@
|
||||
svg("</text>\n"); \
|
||||
} while (false)
|
||||
|
||||
-
|
||||
typedef struct HostInfo {
|
||||
char *hostname;
|
||||
char *kernel_name;
|
||||
diff --git a/src/basic/confidential-virt.c b/src/basic/confidential-virt.c
|
||||
index 0929e0e745..30ecd20317 100644
|
||||
--- a/src/basic/confidential-virt.c
|
||||
+++ b/src/basic/confidential-virt.c
|
||||
@@ -16,7 +16,6 @@
|
||||
#include "string-table.h"
|
||||
#include "utf8.h"
|
||||
|
||||
-
|
||||
#if defined(__x86_64__)
|
||||
|
||||
static void cpuid(uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx) {
|
||||
diff --git a/src/basic/filesystems.c b/src/basic/filesystems.c
|
||||
index 0f71f8e07c..fd6007cd8b 100644
|
||||
--- a/src/basic/filesystems.c
|
||||
+++ b/src/basic/filesystems.c
|
||||
@@ -12,7 +12,6 @@ const char *fs_type_to_string(statfs_f_type_t magic) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-
|
||||
int fs_type_from_string(const char *name, const statfs_f_type_t **ret) {
|
||||
const struct FilesystemMagic *fs_magic;
|
||||
|
||||
diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c
|
||||
index d16ca98f67..8b9f3df7d5 100644
|
||||
--- a/src/basic/recurse-dir.c
|
||||
+++ b/src/basic/recurse-dir.c
|
||||
@@ -420,7 +420,6 @@ int recurse_dir(
|
||||
statx_mask != 0 ? &sx : NULL, /* only pass sx if user asked for it */
|
||||
userdata);
|
||||
|
||||
-
|
||||
if (r == RECURSE_DIR_LEAVE_DIRECTORY)
|
||||
break;
|
||||
if (!IN_SET(r, RECURSE_DIR_SKIP_ENTRY, RECURSE_DIR_CONTINUE))
|
||||
diff --git a/src/basic/xattr-util.h b/src/basic/xattr-util.h
|
||||
index 0eb745a7a3..5c4bc02bc8 100644
|
||||
--- a/src/basic/xattr-util.h
|
||||
+++ b/src/basic/xattr-util.h
|
||||
@@ -25,7 +25,6 @@ static inline int fd_getcrtime(int fd, usec_t *ret) {
|
||||
return fd_getcrtime_at(fd, NULL, 0, ret);
|
||||
}
|
||||
|
||||
-
|
||||
int listxattr_at_malloc(int fd, const char *path, int flags, char **ret);
|
||||
static inline int listxattr_malloc(const char *path, char **ret) {
|
||||
return listxattr_at_malloc(AT_FDCWD, path, AT_SYMLINK_FOLLOW, ret);
|
||||
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
|
||||
index 0b5c8acee4..26f42a9cf6 100644
|
||||
--- a/src/core/load-fragment.c
|
||||
+++ b/src/core/load-fragment.c
|
||||
@@ -170,7 +170,6 @@ int config_parse_cpu_shares(
|
||||
assert(lvalue);
|
||||
assert(rvalue);
|
||||
|
||||
-
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0,
|
||||
"Unit uses %s=; please use CPUWeight= instead. Support for %s= will be removed soon.",
|
||||
lvalue, lvalue);
|
||||
diff --git a/src/core/socket.c b/src/core/socket.c
|
||||
index 2a8aa54f7f..65b07e70fd 100644
|
||||
--- a/src/core/socket.c
|
||||
+++ b/src/core/socket.c
|
||||
@@ -641,7 +641,6 @@ static void socket_dump(Unit *u, FILE *f, const char *prefix) {
|
||||
"%sFlushPending: %s\n",
|
||||
prefix, yes_no(s->flush_pending));
|
||||
|
||||
-
|
||||
if (s->priority >= 0)
|
||||
fprintf(f,
|
||||
"%sPriority: %i\n",
|
||||
diff --git a/src/cryptenroll/cryptenroll.c b/src/cryptenroll/cryptenroll.c
|
||||
index d2fffdad24..3f57b125ea 100644
|
||||
--- a/src/cryptenroll/cryptenroll.c
|
||||
+++ b/src/cryptenroll/cryptenroll.c
|
||||
@@ -360,7 +360,6 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Multiple operations specified at once, refusing.");
|
||||
|
||||
-
|
||||
r = parse_path_argument(optarg, /* suppress_root= */ false, &arg_tpm2_device_key);
|
||||
if (r < 0)
|
||||
return r;
|
||||
diff --git a/src/home/homectl.c b/src/home/homectl.c
|
||||
index 87a1c6883f..8534953f2c 100644
|
||||
--- a/src/home/homectl.c
|
||||
+++ b/src/home/homectl.c
|
||||
@@ -158,7 +158,6 @@ static int list_homes(int argc, char *argv[], void *userdata) {
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
|
||||
-
|
||||
r = table_add_cell(table, &cell, TABLE_STRING, state);
|
||||
if (r < 0)
|
||||
return table_log_add_error(r);
|
||||
diff --git a/src/home/homed-manager.c b/src/home/homed-manager.c
|
||||
index 61ef979049..cd8bee9145 100644
|
||||
--- a/src/home/homed-manager.c
|
||||
+++ b/src/home/homed-manager.c
|
||||
@@ -1950,7 +1950,6 @@ static int manager_rebalance_calculate(Manager *m) {
|
||||
1 * USEC_PER_MINUTE,
|
||||
15 * USEC_PER_MINUTE);
|
||||
|
||||
-
|
||||
log_debug("Rebalancing interval set to %s.", FORMAT_TIMESPAN(m->rebalance_interval_usec, USEC_PER_MSEC));
|
||||
|
||||
/* Let's suppress small resizes, growing/shrinking file systems isn't free after all */
|
||||
diff --git a/src/home/homework-fscrypt.c b/src/home/homework-fscrypt.c
|
||||
index 455a4c88fc..96cf901124 100644
|
||||
--- a/src/home/homework-fscrypt.c
|
||||
+++ b/src/home/homework-fscrypt.c
|
||||
@@ -94,7 +94,6 @@ static int fscrypt_slot_try_one(
|
||||
const uint8_t match_key_descriptor[static FS_KEY_DESCRIPTOR_SIZE],
|
||||
void **ret_decrypted, size_t *ret_decrypted_size) {
|
||||
|
||||
-
|
||||
_cleanup_(EVP_CIPHER_CTX_freep) EVP_CIPHER_CTX *context = NULL;
|
||||
_cleanup_(erase_and_freep) void *decrypted = NULL;
|
||||
uint8_t key_descriptor[FS_KEY_DESCRIPTOR_SIZE];
|
||||
diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c
|
||||
index bb014973fb..924684685c 100644
|
||||
--- a/src/hostname/hostnamectl.c
|
||||
+++ b/src/hostname/hostnamectl.c
|
||||
@@ -398,7 +398,6 @@ static int show_status(int argc, char **argv, void *userdata) {
|
||||
return show_all_names(bus);
|
||||
}
|
||||
|
||||
-
|
||||
static int set_simple_string_internal(sd_bus *bus, sd_bus_error *error, const char *target, const char *method, const char *value) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error e = SD_BUS_ERROR_NULL;
|
||||
int r;
|
||||
diff --git a/src/integritysetup/integrity-util.c b/src/integritysetup/integrity-util.c
|
||||
index c2d2f950de..410133b377 100644
|
||||
--- a/src/integritysetup/integrity-util.c
|
||||
+++ b/src/integritysetup/integrity-util.c
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "path-util.h"
|
||||
#include "percent-util.h"
|
||||
|
||||
-
|
||||
static int supported_integrity_algorithm(char *user_supplied) {
|
||||
if (!STR_IN_SET(user_supplied, "crc32", "crc32c", "sha1", "sha256", "hmac-sha256"))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unsupported integrity algorithm (%s)", user_supplied);
|
||||
diff --git a/src/integritysetup/integrity-util.h b/src/integritysetup/integrity-util.h
|
||||
index b27975c7db..359d2556a4 100644
|
||||
--- a/src/integritysetup/integrity-util.h
|
||||
+++ b/src/integritysetup/integrity-util.h
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "cryptsetup-util.h"
|
||||
#include "time-util.h"
|
||||
|
||||
-
|
||||
int parse_integrity_options(
|
||||
const char *options,
|
||||
uint32_t *ret_activate_flags,
|
||||
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
|
||||
index a106f7f3b8..698427ec17 100644
|
||||
--- a/src/libsystemd-network/sd-dhcp-client.c
|
||||
+++ b/src/libsystemd-network/sd-dhcp-client.c
|
||||
@@ -1003,7 +1003,6 @@ static int client_append_common_discover_request_options(sd_dhcp_client *client,
|
||||
return r;
|
||||
}
|
||||
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
|
||||
index d9c52d64c0..213b276e33 100644
|
||||
--- a/src/libsystemd/sd-bus/bus-message.c
|
||||
+++ b/src/libsystemd/sd-bus/bus-message.c
|
||||
@@ -4118,7 +4118,6 @@ static int message_parse_fields(sd_bus_message *m) {
|
||||
if (m->reply_cookie != 0)
|
||||
return -EBADMSG;
|
||||
|
||||
-
|
||||
if (!streq(signature, "u"))
|
||||
return -EBADMSG;
|
||||
|
||||
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
|
||||
index 165abfc314..f15115c57f 100644
|
||||
--- a/src/libsystemd/sd-event/sd-event.c
|
||||
+++ b/src/libsystemd/sd-event/sd-event.c
|
||||
@@ -1553,7 +1553,6 @@ _public_ int sd_event_add_child_pidfd(
|
||||
sd_event_child_handler_t callback,
|
||||
void *userdata) {
|
||||
|
||||
-
|
||||
_cleanup_(source_freep) sd_event_source *s = NULL;
|
||||
pid_t pid;
|
||||
int r;
|
||||
diff --git a/src/network/netdev/ipoib.c b/src/network/netdev/ipoib.c
|
||||
index 5dd9286d57..a584d788fc 100644
|
||||
--- a/src/network/netdev/ipoib.c
|
||||
+++ b/src/network/netdev/ipoib.c
|
||||
@@ -149,7 +149,6 @@ int config_parse_ipoib_pkey(
|
||||
return 0;
|
||||
}
|
||||
|
||||
-
|
||||
const NetDevVTable ipoib_vtable = {
|
||||
.object_size = sizeof(IPoIB),
|
||||
.sections = NETDEV_COMMON_SECTIONS "IPoIB\0",
|
||||
diff --git a/src/network/networkd-neighbor.c b/src/network/networkd-neighbor.c
|
||||
index f0f78b9c4a..94b18367ae 100644
|
||||
--- a/src/network/networkd-neighbor.c
|
||||
+++ b/src/network/networkd-neighbor.c
|
||||
@@ -593,7 +593,6 @@ void network_drop_invalid_neighbors(Network *network) {
|
||||
neighbor_free(neighbor);
|
||||
}
|
||||
|
||||
-
|
||||
int config_parse_neighbor_address(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
diff --git a/src/nss-systemd/userdb-glue.c b/src/nss-systemd/userdb-glue.c
|
||||
index c69667d660..3d49ad4755 100644
|
||||
--- a/src/nss-systemd/userdb-glue.c
|
||||
+++ b/src/nss-systemd/userdb-glue.c
|
||||
@@ -346,7 +346,6 @@ enum nss_status userdb_getgrgid(
|
||||
size_t buflen,
|
||||
int *errnop) {
|
||||
|
||||
-
|
||||
_cleanup_(group_record_unrefp) GroupRecord *g = NULL;
|
||||
_cleanup_strv_free_ char **members = NULL;
|
||||
bool from_nss;
|
||||
diff --git a/src/partition/repart.c b/src/partition/repart.c
|
||||
index 553d92e730..eeb31a6160 100644
|
||||
--- a/src/partition/repart.c
|
||||
+++ b/src/partition/repart.c
|
||||
@@ -2669,7 +2669,6 @@ static int context_dump(Context *context, const char *node, bool late) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
-
|
||||
static bool context_changed(const Context *context) {
|
||||
assert(context);
|
||||
|
||||
diff --git a/src/resolve/resolved-dns-answer.c b/src/resolve/resolved-dns-answer.c
|
||||
index 3d42b0d000..d03b836d35 100644
|
||||
--- a/src/resolve/resolved-dns-answer.c
|
||||
+++ b/src/resolve/resolved-dns-answer.c
|
||||
@@ -651,7 +651,6 @@ void dns_answer_order_by_scope(DnsAnswer *a, bool prefer_link_local) {
|
||||
if (dns_resource_record_is_link_local_address(item->rr) != prefer_link_local)
|
||||
*p++ = dns_answer_item_ref(item);
|
||||
|
||||
-
|
||||
assert((size_t) (p - items) == n);
|
||||
|
||||
ordered_set_clear(a->items);
|
||||
diff --git a/src/resolve/resolved-dns-question.c b/src/resolve/resolved-dns-question.c
|
||||
index 8f5ebb4590..947cfa2795 100644
|
||||
--- a/src/resolve/resolved-dns-question.c
|
||||
+++ b/src/resolve/resolved-dns-question.c
|
||||
@@ -72,7 +72,6 @@ int dns_question_add(DnsQuestion *q, DnsResourceKey *key, DnsQuestionFlags flags
|
||||
if (!q)
|
||||
return -ENOSPC;
|
||||
|
||||
-
|
||||
DNS_QUESTION_FOREACH_ITEM(item, q) {
|
||||
r = dns_resource_key_equal(item->key, key);
|
||||
if (r < 0)
|
||||
@@ -184,7 +183,6 @@ int dns_question_contains_key(DnsQuestion *q, const DnsResourceKey *k) {
|
||||
if (!q)
|
||||
return 0;
|
||||
|
||||
-
|
||||
for (j = 0; j < q->n_keys; j++) {
|
||||
r = dns_resource_key_equal(q->items[j].key, k);
|
||||
if (r != 0)
|
||||
diff --git a/src/resolve/resolved-dns-rr.c b/src/resolve/resolved-dns-rr.c
|
||||
index d47cdbbd8e..ce40bb749e 100644
|
||||
--- a/src/resolve/resolved-dns-rr.c
|
||||
+++ b/src/resolve/resolved-dns-rr.c
|
||||
@@ -2019,7 +2019,6 @@ int dns_resource_record_to_json(DnsResourceRecord *rr, JsonVariant **ret) {
|
||||
JSON_BUILD_PAIR("algorithm", JSON_BUILD_UNSIGNED(rr->dnskey.algorithm)),
|
||||
JSON_BUILD_PAIR("dnskey", JSON_BUILD_BASE64(rr->dnskey.key, rr->dnskey.key_size))));
|
||||
|
||||
-
|
||||
case DNS_TYPE_RRSIG:
|
||||
return json_build(ret,
|
||||
JSON_BUILD_OBJECT(
|
||||
diff --git a/src/resolve/resolved-mdns.c b/src/resolve/resolved-mdns.c
|
||||
index 8d51017b5d..a8f4952a40 100644
|
||||
--- a/src/resolve/resolved-mdns.c
|
||||
+++ b/src/resolve/resolved-mdns.c
|
||||
@@ -236,7 +236,6 @@ static bool sender_on_local_subnet(DnsScope *s, DnsPacket *p) {
|
||||
return false;
|
||||
}
|
||||
|
||||
-
|
||||
static int mdns_scope_process_query(DnsScope *s, DnsPacket *p) {
|
||||
_cleanup_(dns_answer_unrefp) DnsAnswer *full_answer = NULL;
|
||||
_cleanup_(dns_packet_unrefp) DnsPacket *reply = NULL;
|
||||
diff --git a/src/resolve/test-dnssec.c b/src/resolve/test-dnssec.c
|
||||
index d325b533ea..6b0ab66ae7 100644
|
||||
--- a/src/resolve/test-dnssec.c
|
||||
+++ b/src/resolve/test-dnssec.c
|
||||
@@ -387,7 +387,6 @@ TEST(dnssec_verify_rfc6605_example2) {
|
||||
0xab, 0xf0, 0x8f, 0xe6, 0x95, 0x53, 0x60, 0x17, 0xa5, 0xbf, 0xa9, 0x32, 0x37, 0xee, 0x6e, 0x34,
|
||||
};
|
||||
|
||||
-
|
||||
_cleanup_(dns_resource_record_unrefp) DnsResourceRecord *dnskey = NULL, *ds = NULL, *a = NULL,
|
||||
*rrsig = NULL;
|
||||
_cleanup_(dns_answer_unrefp) DnsAnswer *answer = NULL;
|
||||
diff --git a/src/shared/bpf-compat.h b/src/shared/bpf-compat.h
|
||||
index 9ccb7d8205..20725e600b 100644
|
||||
--- a/src/shared/bpf-compat.h
|
||||
+++ b/src/shared/bpf-compat.h
|
||||
@@ -15,7 +15,6 @@
|
||||
* compile time is that we can then load either the old or the new symbols at runtime
|
||||
* regardless of the version we were compiled with */
|
||||
|
||||
-
|
||||
/* declare the struct for libbpf <= 0.6.0 -- it causes no harm on newer versions */
|
||||
struct bpf_map_create_opts;
|
||||
|
||||
diff --git a/src/shared/bpf-program.c b/src/shared/bpf-program.c
|
||||
index 31fa4448b0..7f8ab1de2c 100644
|
||||
--- a/src/shared/bpf-program.c
|
||||
+++ b/src/shared/bpf-program.c
|
||||
@@ -138,7 +138,6 @@ int bpf_program_new_from_bpffs_path(const char *path, BPFProgram **ret) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
-
|
||||
int bpf_program_add_instructions(BPFProgram *p, const struct bpf_insn *instructions, size_t count) {
|
||||
|
||||
assert(p);
|
||||
diff --git a/src/shared/creds-util.c b/src/shared/creds-util.c
|
||||
index 027ad96640..3937cfd751 100644
|
||||
--- a/src/shared/creds-util.c
|
||||
+++ b/src/shared/creds-util.c
|
||||
@@ -319,7 +319,6 @@ int get_credential_host_secret(CredentialSecretFlags flags, void **ret, size_t *
|
||||
return log_debug_errno(errno,
|
||||
"Failed to open %s/%s: %m", dirname, filename);
|
||||
|
||||
-
|
||||
r = make_credential_host_secret(dfd, machine_id, flags, dirname, filename, ret, ret_size);
|
||||
if (r == -EEXIST) {
|
||||
log_debug_errno(r, "Credential secret %s/%s appeared while we were creating it, rereading.",
|
||||
diff --git a/src/shared/id128-print.c b/src/shared/id128-print.c
|
||||
index f232767adf..1a74b75573 100644
|
||||
--- a/src/shared/id128-print.c
|
||||
+++ b/src/shared/id128-print.c
|
||||
@@ -47,7 +47,6 @@ int id128_pretty_print_sample(const char *name, sd_id128_t id) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
-
|
||||
int id128_pretty_print(sd_id128_t id, Id128PrettyPrintMode mode) {
|
||||
assert(mode >= 0);
|
||||
assert(mode < _ID128_PRETTY_PRINT_MODE_MAX);
|
||||
diff --git a/src/shared/userdb.c b/src/shared/userdb.c
|
||||
index de7eef687e..3f64ec8942 100644
|
||||
--- a/src/shared/userdb.c
|
||||
+++ b/src/shared/userdb.c
|
||||
@@ -918,7 +918,6 @@ int groupdb_by_name(const char *name, UserDBFlags flags, GroupRecord **ret) {
|
||||
return r;
|
||||
}
|
||||
|
||||
-
|
||||
if (!FLAGS_SET(flags, USERDB_EXCLUDE_NSS) && !(iterator && iterator->nss_covered)) {
|
||||
r = userdb_iterator_block_nss_systemd(iterator);
|
||||
if (r >= 0) {
|
||||
diff --git a/src/systemctl/systemctl-util.c b/src/systemctl/systemctl-util.c
|
||||
index b333850bec..1f8fda8ac1 100644
|
||||
--- a/src/systemctl/systemctl-util.c
|
||||
+++ b/src/systemctl/systemctl-util.c
|
||||
@@ -658,7 +658,6 @@ int unit_exists(LookupPaths *lp, const char *unit) {
|
||||
return !streq_ptr(info.load_state, "not-found") || !streq_ptr(info.active_state, "inactive");
|
||||
}
|
||||
|
||||
-
|
||||
int append_unit_dependencies(sd_bus *bus, char **names, char ***ret) {
|
||||
_cleanup_strv_free_ char **with_deps = NULL;
|
||||
|
||||
diff --git a/src/sysupdate/sysupdate.c b/src/sysupdate/sysupdate.c
|
||||
index 944ac41a41..9faa53dce7 100644
|
||||
--- a/src/sysupdate/sysupdate.c
|
||||
+++ b/src/sysupdate/sysupdate.c
|
||||
@@ -499,7 +499,6 @@ static int context_show_version(Context *c, const char *version) {
|
||||
FLAGS_SET(us->flags, UPDATE_INSTALLED|UPDATE_PROTECTED) ? ansi_highlight() : "", yes_no(FLAGS_SET(us->flags, UPDATE_INSTALLED|UPDATE_PROTECTED)), ansi_normal(),
|
||||
us->flags & UPDATE_OBSOLETE ? ansi_highlight_red() : "", yes_no(us->flags & UPDATE_OBSOLETE), ansi_normal());
|
||||
|
||||
-
|
||||
t = table_new("type", "path", "ptuuid", "ptflags", "mtime", "mode", "size", "tries-done", "tries-left", "noauto", "ro", "growfs", "sha256");
|
||||
if (!t)
|
||||
return log_oom();
|
||||
diff --git a/src/test/test-barrier.c b/src/test/test-barrier.c
|
||||
index 50ceb3a355..ba06c1710d 100644
|
||||
--- a/src/test/test-barrier.c
|
||||
+++ b/src/test/test-barrier.c
|
||||
@@ -422,7 +422,6 @@ TEST_BARRIER(barrier_pending_exit,
|
||||
}),
|
||||
TEST_BARRIER_WAIT_SUCCESS(pid2));
|
||||
|
||||
-
|
||||
static int intro(void) {
|
||||
if (!slow_tests_enabled())
|
||||
return log_tests_skipped("slow tests are disabled");
|
||||
diff --git a/src/test/test-bpf-devices.c b/src/test/test-bpf-devices.c
|
||||
index e175483734..2b90ffa7b8 100644
|
||||
--- a/src/test/test-bpf-devices.c
|
||||
+++ b/src/test/test-bpf-devices.c
|
||||
@@ -248,7 +248,6 @@ static void test_policy_empty(bool add_mismatched, const char *cgroup_path, BPFP
|
||||
assert_se(wrong == 0);
|
||||
}
|
||||
|
||||
-
|
||||
int main(int argc, char *argv[]) {
|
||||
_cleanup_free_ char *cgroup = NULL, *parent = NULL;
|
||||
_cleanup_(rmdir_and_freep) char *controller_path = NULL;
|
||||
diff --git a/src/test/test-execute.c b/src/test/test-execute.c
|
||||
index e6bd21b6b9..1f838e5c91 100644
|
||||
--- a/src/test/test-execute.c
|
||||
+++ b/src/test/test-execute.c
|
||||
@@ -332,7 +332,6 @@ static void test_exec_execsearchpath_environment_files(Manager *m) {
|
||||
|
||||
(void) unlink("/tmp/test-exec_environmentfile.conf");
|
||||
|
||||
-
|
||||
r = write_string_file("/tmp/test-exec_execsearchpath_environmentfile-set.conf", path_set, WRITE_STRING_FILE_CREATE);
|
||||
|
||||
assert_se(r == 0);
|
||||
diff --git a/src/test/test-install-root.c b/src/test/test-install-root.c
|
||||
index 2868ab07b2..1002818227 100644
|
||||
--- a/src/test/test-install-root.c
|
||||
+++ b/src/test/test-install-root.c
|
||||
@@ -1271,5 +1271,4 @@ static int intro(void) {
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
-
|
||||
DEFINE_TEST_MAIN_WITH_INTRO(LOG_INFO, intro);
|
@ -0,0 +1,59 @@
|
||||
From a52769d2eb64fb56655fad549621667d5a7c0f0d Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 9 Oct 2024 09:14:12 +0200
|
||||
Subject: [PATCH] hwdb: move key 66/65 handling from specific to generic HP
|
||||
laptop coverage
|
||||
|
||||
This takes the idea from #18595 and implements it based on our current
|
||||
hwdb: the original PR suggested the keys 66/65 are a generic HP thing,
|
||||
and not limited to specific laptops. The current specific laptop entries
|
||||
do not contradict that claim.
|
||||
|
||||
Hence, let's move them from the specific sections matching some HP
|
||||
laptops to the generic section matching all.
|
||||
|
||||
This uses the correct key names, which have long been fixed (which used
|
||||
to be a problem our CI was tripped off by).
|
||||
|
||||
This is not tested, but I think fairly risk-less, and should allow us to
|
||||
get rid of a really old PR.
|
||||
|
||||
Replaces: #18595
|
||||
(cherry picked from commit 93b078c3dd40b10eed34a77d514b1db7493b17cf)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 4d5f6b4beb..f1af5771f5 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -637,6 +637,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHaierComputer:pn7G-Series:*
|
||||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*:*
|
||||
+ KEYBOARD_KEY_66=pickup_phone # Pickup phone button
|
||||
+ KEYBOARD_KEY_65=hangup_phone # Hangup phone button
|
||||
KEYBOARD_KEY_81=fn_esc
|
||||
KEYBOARD_KEY_89=battery # Fn+F8
|
||||
KEYBOARD_KEY_8a=screenlock # Fn+F6
|
||||
@@ -804,8 +806,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:*
|
||||
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
|
||||
KEYBOARD_KEY_6d=displaytoggle # Display icon
|
||||
- KEYBOARD_KEY_66=pickup_phone # Pickup phone button
|
||||
- KEYBOARD_KEY_65=hangup_phone # Hangup phone button
|
||||
|
||||
# HP ZBook 15 G2
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
|
||||
@@ -869,8 +869,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
|
||||
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
|
||||
KEYBOARD_KEY_6d=displaytoggle # Display icon
|
||||
- KEYBOARD_KEY_66=pickup_phone # Pickup phone button
|
||||
- KEYBOARD_KEY_65=hangup_phone # Hangup phone button
|
||||
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
|
||||
KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
|
||||
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
|
@ -0,0 +1,26 @@
|
||||
From 93e9aedaa75a3fff50f36c85147f53f75c3f289f Mon Sep 17 00:00:00 2001
|
||||
From: Lucas Adriano Salles <83602841+luc-salles@users.noreply.github.com>
|
||||
Date: Fri, 11 Oct 2024 12:58:14 -0400
|
||||
Subject: [PATCH] hwdb: fix key toggle touchpad and programmable buttom for
|
||||
Positivo V142N (#34725)
|
||||
|
||||
(cherry picked from commit c2f3cb2676f70823afe7f0fcff8720023dedfab4)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index f1af5771f5..b8bd7f0fb5 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -2231,6 +2231,8 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
|
||||
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnK142*
|
||||
# Positivo Motion (N14ZP6, N14ZP7)
|
||||
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14ZP[67]*
|
||||
+# Positivo Motion (V142N)
|
||||
+evdev:name:SINO WEALTH USB KEYBOARD:dmi:bvn*:bvr*:svnPositivoInformaticaSA:pn*:pvr*:rvn*:rnV142N*
|
||||
# Positivo Motion (N14EP6)
|
||||
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:br*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14EP6*
|
||||
# Positivo Motion (CW14Q01P) (CW14Q01P-V2)
|
27
SOURCES/1067-hwdb-add-Stream-Deck-Neo-34903.patch
Normal file
27
SOURCES/1067-hwdb-add-Stream-Deck-Neo-34903.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 07526e0d54567ac239d8f1fea6b1c82aa8194ae8 Mon Sep 17 00:00:00 2001
|
||||
From: Sascha Mester <121475971+mettbroetchen43@users.noreply.github.com>
|
||||
Date: Sat, 26 Oct 2024 17:27:29 +0200
|
||||
Subject: [PATCH] hwdb: add Stream Deck Neo (#34903)
|
||||
|
||||
(cherry picked from commit f2eccaab343601ad687f17cd56201374fc603148)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/70-av-production.hwdb | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
|
||||
index 91c757bcb1..f7cc349822 100644
|
||||
--- a/hwdb.d/70-av-production.hwdb
|
||||
+++ b/hwdb.d/70-av-production.hwdb
|
||||
@@ -71,6 +71,10 @@ usb:v0FD9p006D*
|
||||
usb:v0FD9p0080*
|
||||
ID_AV_PRODUCTION_CONTROLLER=1
|
||||
|
||||
+# Stream Deck Neo
|
||||
+usb:v0FD9p009A*
|
||||
+ ID_AV_PRODUCTION_CONTROLLER=1
|
||||
+
|
||||
# Stream Deck Plus
|
||||
usb:v0FD9p0084*
|
||||
ID_AV_PRODUCTION_CONTROLLER=1
|
490
SOURCES/1068-hwdb-update-autosuspend-rules.patch
Normal file
490
SOURCES/1068-hwdb-update-autosuspend-rules.patch
Normal file
@ -0,0 +1,490 @@
|
||||
From f234d1e7f1f924eda9f108b8b561d2b59d58e336 Mon Sep 17 00:00:00 2001
|
||||
From: Luca Boccassi <bluca@debian.org>
|
||||
Date: Wed, 16 Aug 2023 02:08:08 +0100
|
||||
Subject: [PATCH] hwdb: update autosuspend rules
|
||||
|
||||
ninja -C build update-hwdb-autosuspend
|
||||
|
||||
(cherry picked from commit 2f72e94984fc2994ab2705e384f92e15cc026264)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
tools/chromiumos/gen_autosuspend_rules.py | 303 +++++++++++++---------
|
||||
1 file changed, 182 insertions(+), 121 deletions(-)
|
||||
|
||||
diff --git a/tools/chromiumos/gen_autosuspend_rules.py b/tools/chromiumos/gen_autosuspend_rules.py
|
||||
index d6fbcdad7c..321eb9c895 100644
|
||||
--- a/tools/chromiumos/gen_autosuspend_rules.py
|
||||
+++ b/tools/chromiumos/gen_autosuspend_rules.py
|
||||
@@ -20,131 +20,135 @@ USB_IDS = []
|
||||
# Host Controllers and internal hubs
|
||||
USB_IDS += [
|
||||
# Linux Host Controller (UHCI) (most older x86 boards)
|
||||
- '1d6b:0001',
|
||||
+ "1d6b:0001",
|
||||
# Linux Host Controller (EHCI) (all boards)
|
||||
- '1d6b:0002',
|
||||
+ "1d6b:0002",
|
||||
# Linux Host Controller (XHCI) (most newer boards)
|
||||
- '1d6b:0003',
|
||||
+ "1d6b:0003",
|
||||
# SMSC (Internal HSIC Hub) (most Exynos boards)
|
||||
- '0424:3503',
|
||||
+ "0424:3503",
|
||||
# Intel (Rate Matching Hub) (all x86 boards)
|
||||
- '05e3:0610',
|
||||
+ "05e3:0610",
|
||||
# Intel (Internal Hub?) (peppy, falco)
|
||||
- '8087:0024',
|
||||
+ "8087:0024",
|
||||
# Genesys Logic (Internal Hub) (rambi)
|
||||
- '8087:8000',
|
||||
+ "8087:8000",
|
||||
# Microchip (Composite HID + CDC) (kefka)
|
||||
- '04d8:0b28',
|
||||
+ "04d8:0b28",
|
||||
]
|
||||
|
||||
# Webcams
|
||||
USB_IDS += [
|
||||
# Chicony (zgb)
|
||||
- '04f2:b1d8',
|
||||
+ "04f2:b1d8",
|
||||
# Chicony (mario)
|
||||
- '04f2:b262',
|
||||
+ "04f2:b262",
|
||||
# Chicony (stout)
|
||||
- '04f2:b2fe',
|
||||
+ "04f2:b2fe",
|
||||
# Chicony (butterfly)
|
||||
- '04f2:b35f',
|
||||
+ "04f2:b35f",
|
||||
# Chicony (rambi)
|
||||
- '04f2:b443',
|
||||
+ "04f2:b443",
|
||||
# Chicony (glados)
|
||||
- '04f2:b552',
|
||||
+ "04f2:b552",
|
||||
# LiteOn (spring)
|
||||
- '058f:b001',
|
||||
+ "058f:b001",
|
||||
# Foxlink? (butterfly)
|
||||
- '05c8:0351',
|
||||
+ "05c8:0351",
|
||||
# Foxlink? (butterfly)
|
||||
- '05c8:0355',
|
||||
+ "05c8:0355",
|
||||
# Cheng Uei? (falco)
|
||||
- '05c8:036e',
|
||||
+ "05c8:036e",
|
||||
# SuYin (parrot)
|
||||
- '064e:d251',
|
||||
+ "064e:d251",
|
||||
# Realtek (falco)
|
||||
- '0bda:571c',
|
||||
+ "0bda:571c",
|
||||
# IMC Networks (squawks)
|
||||
- '13d3:5657',
|
||||
+ "13d3:5657",
|
||||
# Sunplus (parrot)
|
||||
- '1bcf:2c17',
|
||||
+ "1bcf:2c17",
|
||||
# (C-13HDO10B39N) (alex)
|
||||
- '2232:1013',
|
||||
+ "2232:1013",
|
||||
# (C-10HDP11538N) (lumpy)
|
||||
- '2232:1017',
|
||||
+ "2232:1017",
|
||||
# (Namuga) (link)
|
||||
- '2232:1033',
|
||||
+ "2232:1033",
|
||||
# (C-03FFM12339N) (daisy)
|
||||
- '2232:1037',
|
||||
+ "2232:1037",
|
||||
# (C-10HDO13531N) (peach)
|
||||
- '2232:1056',
|
||||
+ "2232:1056",
|
||||
# (NCM-G102) (samus)
|
||||
- '2232:6001',
|
||||
+ "2232:6001",
|
||||
# Acer (stout)
|
||||
- '5986:0299',
|
||||
+ "5986:0299",
|
||||
]
|
||||
|
||||
# Bluetooth Host Controller
|
||||
USB_IDS += [
|
||||
# Hon-hai (parrot)
|
||||
- '0489:e04e',
|
||||
+ "0489:e04e",
|
||||
# Hon-hai (peppy)
|
||||
- '0489:e056',
|
||||
+ "0489:e056",
|
||||
# Hon-hai (Kahlee)
|
||||
- '0489:e09f',
|
||||
+ "0489:e09f",
|
||||
# QCA6174A (delan)
|
||||
- '0489:e0a2',
|
||||
+ "0489:e0a2",
|
||||
# LiteOn (parrot)
|
||||
- '04ca:3006',
|
||||
+ "04ca:3006",
|
||||
# LiteOn (aleena)
|
||||
- '04ca:3016',
|
||||
+ "04ca:3016",
|
||||
# LiteOn (scarlet)
|
||||
- '04ca:301a',
|
||||
+ "04ca:301a",
|
||||
# Realtek (blooglet)
|
||||
- '0bda:b00c',
|
||||
+ "0bda:b00c",
|
||||
# Atheros (stumpy, stout)
|
||||
- '0cf3:3004',
|
||||
+ "0cf3:3004",
|
||||
# Atheros (AR3011) (mario, alex, zgb)
|
||||
- '0cf3:3005',
|
||||
+ "0cf3:3005",
|
||||
# Atheros (stumyp)
|
||||
- '0cf3:3007',
|
||||
+ "0cf3:3007",
|
||||
# Atheros (butterfly)
|
||||
- '0cf3:311e',
|
||||
+ "0cf3:311e",
|
||||
# Atheros (scarlet)
|
||||
- '0cf3:e300',
|
||||
+ "0cf3:e300",
|
||||
# Marvell (rambi)
|
||||
- '1286:2046',
|
||||
+ "1286:2046",
|
||||
# Marvell (gru)
|
||||
- '1286:204e',
|
||||
+ "1286:204e",
|
||||
# Intel (rambi, samus)
|
||||
- '8087:07dc',
|
||||
+ "8087:07dc",
|
||||
# Intel (strago, glados)
|
||||
- '8087:0a2a',
|
||||
+ "8087:0a2a",
|
||||
# Intel (octopus)
|
||||
- '8087:0aaa',
|
||||
+ "8087:0aaa",
|
||||
# Intel (hatch)
|
||||
- '8087:0026',
|
||||
+ "8087:0026",
|
||||
# Intel (atlas)
|
||||
- '8087:0025',
|
||||
+ "8087:0025",
|
||||
]
|
||||
|
||||
# WWAN (LTE)
|
||||
USB_IDS += [
|
||||
# Huawei (ME936) (kip)
|
||||
- '12d1:15bb',
|
||||
+ "12d1:15bb",
|
||||
# Fibocom (L850-GL) (coral, nautilus, sarien)
|
||||
- '2cb7:0007',
|
||||
+ "2cb7:0007",
|
||||
# Fibocom (NL668, NL652)
|
||||
- '2cb7:01a0',
|
||||
+ "2cb7:01a0",
|
||||
+ # Fibocom (FM101-GL) (mbim)
|
||||
+ "2cb7:01a2",
|
||||
+ # Fibocom (FM101-GL) (adb)
|
||||
+ "2cb7:01a4",
|
||||
]
|
||||
|
||||
# Mass Storage
|
||||
USB_IDS += [
|
||||
# Genesys (SD card reader) (lumpy, link, peppy)
|
||||
- '05e3:0727',
|
||||
+ "05e3:0727",
|
||||
# Realtek (SD card reader) (mario, alex)
|
||||
- '0bda:0138',
|
||||
+ "0bda:0138",
|
||||
# Realtek (SD card reader) (helios)
|
||||
- '0bda:0136',
|
||||
+ "0bda:0136",
|
||||
# Realtek (SD card reader) (falco)
|
||||
'0bda:0177',
|
||||
# Realtek (SD card reader) (pirrha)
|
||||
@@ -154,33 +158,39 @@ USB_IDS += [
|
||||
# Security Key
|
||||
USB_IDS += [
|
||||
# Yubico.com
|
||||
- '1050:0211',
|
||||
+ "1050:0211",
|
||||
# Yubico.com (HID firmware)
|
||||
- '1050:0200',
|
||||
+ "1050:0200",
|
||||
# Google Titan key
|
||||
- '18d1:5026',
|
||||
+ "18d1:5026",
|
||||
]
|
||||
|
||||
# USB Audio devices
|
||||
USB_IDS += [
|
||||
# Google USB-C to 3.5mm Digital Headphone Jack Adapter 'Mir'
|
||||
- '18d1:5025',
|
||||
+ "18d1:5025",
|
||||
# Google USB-C to 3.5mm Digital Headphone Jack Adapter 'Mir' (HID only)
|
||||
- '18d1:5029',
|
||||
+ "18d1:5029",
|
||||
# Google USB-C to 3.5mm Digital Headphone Jack Adapter 2018 'Condor'
|
||||
- '18d1:5034',
|
||||
+ "18d1:5034",
|
||||
# Google Pixel USB-C Earbuds 'Blackbird'
|
||||
- '18d1:5033',
|
||||
+ "18d1:5033",
|
||||
# Libratone Q Adapt In-Ear USB-C Earphones, Made for Google
|
||||
- '03eb:2433',
|
||||
+ "03eb:2433",
|
||||
# Moshi USB-C to 3.5 mm Adapter/Charger, Made for Google
|
||||
- '282b:48f0',
|
||||
+ "282b:48f0",
|
||||
# Moshi USB-C to 3.5 mm Adapter/Charger, Made for Google (HID only)
|
||||
- '282b:0026',
|
||||
+ "282b:0026",
|
||||
# AiAiAi TMA-2 C60 Cable, Made for Google
|
||||
- '0572:1a08',
|
||||
+ "0572:1a08",
|
||||
# Apple USB-C to 3.5mm Headphone Jack Adapter
|
||||
- '05ac:110a',
|
||||
+ "05ac:110a",
|
||||
+]
|
||||
+
|
||||
+# RGB Keyboard
|
||||
+USB_IDS += [
|
||||
+ # Google Prism
|
||||
+ "18d1:5022",
|
||||
]
|
||||
|
||||
# List of PCI devices (vendorid:deviceid) for which it is safe to enable
|
||||
@@ -190,102 +200,149 @@ PCI_IDS = []
|
||||
# Intel
|
||||
PCI_IDS += [
|
||||
# Host bridge
|
||||
- '8086:590c',
|
||||
+ "8086:590c",
|
||||
# i915
|
||||
- '8086:591e',
|
||||
+ "8086:591e",
|
||||
# proc_thermal
|
||||
- '8086:1903',
|
||||
+ "8086:1903",
|
||||
# SPT PCH xHCI controller
|
||||
- '8086:9d2f',
|
||||
+ "8086:9d2f",
|
||||
# CNP PCH xHCI controller
|
||||
- '8086:9ded',
|
||||
+ "8086:9ded",
|
||||
# intel_pmc_core
|
||||
- '8086:9d21',
|
||||
+ "8086:9d21",
|
||||
# i801_smbus
|
||||
- '8086:9d23',
|
||||
+ "8086:9d23",
|
||||
# iwlwifi
|
||||
- '8086:095a',
|
||||
+ "8086:095a",
|
||||
# GMM
|
||||
- '8086:1911',
|
||||
+ "8086:1911",
|
||||
# Thermal
|
||||
- '8086:9d31',
|
||||
+ "8086:9d31",
|
||||
# MME
|
||||
- '8086:9d3a',
|
||||
+ "8086:9d3a",
|
||||
# CrOS EC
|
||||
- '8086:9d4b',
|
||||
+ "8086:9d4b",
|
||||
# PCH SPI
|
||||
- '8086:9d24',
|
||||
+ "8086:9d24",
|
||||
# SATA
|
||||
- '8086:02d3',
|
||||
+ "8086:02d3",
|
||||
# RAM memory
|
||||
- '8086:02ef',
|
||||
+ "8086:02ef",
|
||||
# ISA bridge
|
||||
- '8086:0284',
|
||||
+ "8086:0284",
|
||||
# Communication controller
|
||||
- '8086:02e0',
|
||||
+ "8086:02e0",
|
||||
# Network controller
|
||||
- '8086:02f0',
|
||||
+ "8086:02f0",
|
||||
# Serial bus controller
|
||||
- '8086:02a4',
|
||||
+ "8086:02a4",
|
||||
# USB controller
|
||||
- '8086:02ed',
|
||||
+ "8086:02ed",
|
||||
+ # JSL xHCI controller
|
||||
+ "8086:4ded",
|
||||
# Volteer xHCI controller
|
||||
- '8086:a0ed',
|
||||
+ "8086:a0ed",
|
||||
+ # Brya xHCI controller
|
||||
+ "8086:51ed",
|
||||
+ # ADL-N PCH xHCI controller
|
||||
+ "8086:54ed",
|
||||
# Graphics
|
||||
- '8086:9b41',
|
||||
+ "8086:9b41",
|
||||
# DSP
|
||||
- '8086:02f9',
|
||||
+ "8086:02f9",
|
||||
# Host bridge
|
||||
- '8086:9b61',
|
||||
+ "8086:9b61",
|
||||
# Host bridge
|
||||
- '8086:9b71',
|
||||
+ "8086:9b71",
|
||||
# PCI Bridge
|
||||
- '8086:02b0',
|
||||
+ "8086:02b0",
|
||||
# i915 (atlas)
|
||||
- '8086:591c',
|
||||
+ "8086:591c",
|
||||
# iwlwifi (atlas)
|
||||
- '8086:2526',
|
||||
+ "8086:2526",
|
||||
# i915 (kefka)
|
||||
- '8086:22b1',
|
||||
+ "8086:22b1",
|
||||
# proc_thermal (kefka)
|
||||
- '8086:22dc',
|
||||
+ "8086:22dc",
|
||||
# xchi_hdc (kefka)
|
||||
- '8086:22b5',
|
||||
+ "8086:22b5",
|
||||
# snd_hda (kefka)
|
||||
- '8086:2284',
|
||||
+ "8086:2284",
|
||||
# pcieport (kefka)
|
||||
- '8086:22c8',
|
||||
- '8086:22cc',
|
||||
+ "8086:22c8",
|
||||
+ "8086:22cc",
|
||||
# lpc_ich (kefka)
|
||||
- '8086:229c',
|
||||
+ "8086:229c",
|
||||
# iosf_mbi_pci (kefka)
|
||||
- '8086:2280',
|
||||
+ "8086:2280",
|
||||
+ # Host bridge (nami)
|
||||
+ "8086:5904",
|
||||
+ "8086:5914",
|
||||
+ # Graphics (nami)
|
||||
+ "8086:5906",
|
||||
+ "8086:5917",
|
||||
+ # ISA bridge (nami)
|
||||
+ "8086:9d4e",
|
||||
+ # wifi 7265 (nami)
|
||||
+ "8086:095b",
|
||||
+ # Graphics (brya)
|
||||
+ "8086:46a8",
|
||||
+ # Core 12G GNA (brya)
|
||||
+ "8086:464f",
|
||||
+ # PCH Shared SRAM (brya)
|
||||
+ "8086:51ef",
|
||||
+ # PCH eSPI (brya)
|
||||
+ "8086:5182",
|
||||
+ "8086:4601",
|
||||
+ # Core 12G DTT (brya)
|
||||
+ "8086:461d",
|
||||
+ # Wifi (Brya)
|
||||
+ "8086:51f0",
|
||||
+ # PCH SPI (brya)
|
||||
+ "8086:51a4",
|
||||
]
|
||||
|
||||
# Samsung
|
||||
PCI_IDS += [
|
||||
# NVMe KUS030205M-B001
|
||||
- '144d:a806',
|
||||
+ "144d:a806",
|
||||
# NVMe MZVLB256HAHQ
|
||||
- '144d:a808',
|
||||
+ "144d:a808",
|
||||
+ # NVMe MZ9LQ256HBJD-00BH1 (brya)
|
||||
+ "144d:a809",
|
||||
]
|
||||
|
||||
# Lite-on
|
||||
PCI_IDS += [
|
||||
# 3C07110288
|
||||
- '14a4:9100',
|
||||
+ "14a4:9100",
|
||||
]
|
||||
|
||||
# Seagate
|
||||
PCI_IDS += [
|
||||
# ZP256CM30011
|
||||
- '7089:5012',
|
||||
+ "7089:5012",
|
||||
]
|
||||
|
||||
# Kingston
|
||||
PCI_IDS += [
|
||||
# RBUSNS8154P3128GJ3
|
||||
- '2646:5008',
|
||||
+ "2646:5008",
|
||||
+]
|
||||
+
|
||||
+# Genesys Logic
|
||||
+PCI_IDS += [
|
||||
+ # SD Host Controller (brya)
|
||||
+ "17a0:9755",
|
||||
+]
|
||||
+
|
||||
+# Phison
|
||||
+PCI_IDS += [
|
||||
+ # E13 NVMe Controller (redrix)
|
||||
+ '1987:5013',
|
||||
+ # E18 PCIe4 NVMe Controller (vell)
|
||||
+ '1987:5018',
|
||||
]
|
||||
|
||||
# Do not edit below this line. #################################################
|
||||
@@ -322,20 +379,24 @@ LABEL="autosuspend_end"
|
||||
|
||||
|
||||
def main():
|
||||
- pci_rules = ''
|
||||
- for dev_ids in PCI_IDS:
|
||||
- vendor, device = dev_ids.split(':')
|
||||
- pci_rules += ('ATTR{vendor}=="0x%s", ATTR{device}=="0x%s", '
|
||||
- 'GOTO="autosuspend_enable"\n' % (vendor, device))
|
||||
+ pci_rules = ""
|
||||
+ for dev_ids in PCI_IDS:
|
||||
+ vendor, device = dev_ids.split(":")
|
||||
+ pci_rules += (
|
||||
+ 'ATTR{vendor}=="0x%s", ATTR{device}=="0x%s", '
|
||||
+ 'GOTO="autosuspend_enable"\n' % (vendor, device)
|
||||
+ )
|
||||
|
||||
- usb_rules = ''
|
||||
- for dev_ids in USB_IDS:
|
||||
- vid, pid = dev_ids.split(':')
|
||||
- usb_rules += ('ATTR{idVendor}=="%s", ATTR{idProduct}=="%s", '
|
||||
- 'GOTO="autosuspend_enable"\n' % (vid, pid))
|
||||
+ usb_rules = ""
|
||||
+ for dev_ids in USB_IDS:
|
||||
+ vid, pid = dev_ids.split(":")
|
||||
+ usb_rules += (
|
||||
+ 'ATTR{idVendor}=="%s", ATTR{idProduct}=="%s", '
|
||||
+ 'GOTO="autosuspend_enable"\n' % (vid, pid)
|
||||
+ )
|
||||
|
||||
- print(UDEV_RULE % {'pci_rules': pci_rules, 'usb_rules': usb_rules})
|
||||
+ print(UDEV_RULE % {"pci_rules": pci_rules, "usb_rules": usb_rules})
|
||||
|
||||
|
||||
-if __name__ == '__main__':
|
||||
- main()
|
||||
+if __name__ == "__main__":
|
||||
+ main()
|
@ -0,0 +1,132 @@
|
||||
From c32906f21385498337c1eed0421ef4a3ac2cd746 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 1 Nov 2024 10:14:09 +0100
|
||||
Subject: [PATCH] hwdb: import newest autosuspend rules from chromeos
|
||||
|
||||
(cherry picked from commit 2e4432507b68e0fe6c89f1900f6f4af0087c6fd5)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 14 +++++++++++++-
|
||||
tools/chromiumos/gen_autosuspend_rules.py | 12 ++++++++++--
|
||||
2 files changed, 23 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
|
||||
index ea656123f9..813343d08d 100644
|
||||
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
|
||||
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
|
||||
@@ -83,6 +83,9 @@ usb:v1C7Ap0571*
|
||||
|
||||
# Supported by libfprint driver egismoc
|
||||
usb:v1C7Ap0582*
|
||||
+usb:v1C7Ap0583*
|
||||
+usb:v1C7Ap0586*
|
||||
+usb:v1C7Ap0587*
|
||||
usb:v1C7Ap05A1*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
@@ -160,6 +163,7 @@ usb:v04F3p0C88*
|
||||
usb:v04F3p0C8C*
|
||||
usb:v04F3p0C8D*
|
||||
usb:v04F3p0C99*
|
||||
+usb:v04F3p0C9F*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
@@ -181,6 +185,8 @@ usb:v10A5pA305*
|
||||
usb:v10A5pDA04*
|
||||
usb:v10A5pD805*
|
||||
usb:v10A5pD205*
|
||||
+usb:v10A5p9524*
|
||||
+usb:v10A5p9544*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
@@ -204,6 +210,7 @@ usb:v27C6p63AC*
|
||||
usb:v27C6p63BC*
|
||||
usb:v27C6p63CC*
|
||||
usb:v27C6p6496*
|
||||
+usb:v27C6p650A*
|
||||
usb:v27C6p650C*
|
||||
usb:v27C6p6582*
|
||||
usb:v27C6p6584*
|
||||
@@ -213,6 +220,8 @@ usb:v27C6p6594*
|
||||
usb:v27C6p659A*
|
||||
usb:v27C6p659C*
|
||||
usb:v27C6p6A94*
|
||||
+usb:v27C6p6512*
|
||||
+usb:v27C6p689A*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
@@ -223,6 +232,7 @@ usb:v298Dp1010*
|
||||
|
||||
# Supported by libfprint driver realtek
|
||||
usb:v0BDAp5813*
|
||||
+usb:v0BDAp5816*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
@@ -232,6 +242,7 @@ usb:v06CBp00DF*
|
||||
usb:v06CBp00F9*
|
||||
usb:v06CBp00FC*
|
||||
usb:v06CBp00C2*
|
||||
+usb:v06CBp00C4*
|
||||
usb:v06CBp0100*
|
||||
usb:v06CBp00F0*
|
||||
usb:v06CBp0103*
|
||||
@@ -244,6 +255,8 @@ usb:v06CBp015F*
|
||||
usb:v06CBp0104*
|
||||
usb:v06CBp0173*
|
||||
usb:v06CBp0106*
|
||||
+usb:v06CBp019D*
|
||||
+usb:v06CBp00C6*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
@@ -340,7 +353,6 @@ usb:v06CBp00A8*
|
||||
usb:v06CBp00B7*
|
||||
usb:v06CBp00BB*
|
||||
usb:v06CBp00BE*
|
||||
-usb:v06CBp00C4*
|
||||
usb:v06CBp00CB*
|
||||
usb:v06CBp00C9*
|
||||
usb:v06CBp00D8*
|
||||
diff --git a/tools/chromiumos/gen_autosuspend_rules.py b/tools/chromiumos/gen_autosuspend_rules.py
|
||||
index 321eb9c895..dfb27c4823 100644
|
||||
--- a/tools/chromiumos/gen_autosuspend_rules.py
|
||||
+++ b/tools/chromiumos/gen_autosuspend_rules.py
|
||||
@@ -131,6 +131,8 @@ USB_IDS += [
|
||||
USB_IDS += [
|
||||
# Huawei (ME936) (kip)
|
||||
"12d1:15bb",
|
||||
+ # Quectel (EM060)
|
||||
+ "2c7c:0128",
|
||||
# Fibocom (L850-GL) (coral, nautilus, sarien)
|
||||
"2cb7:0007",
|
||||
# Fibocom (NL668, NL652)
|
||||
@@ -139,6 +141,12 @@ USB_IDS += [
|
||||
"2cb7:01a2",
|
||||
# Fibocom (FM101-GL) (adb)
|
||||
"2cb7:01a4",
|
||||
+ # Rolling Wireless (RW101)
|
||||
+ "33f8:01a2",
|
||||
+ # Rolling Wireless (RW135)
|
||||
+ "33f8:0115",
|
||||
+ # NetPrisma (LCUK54)
|
||||
+ "3731:0100",
|
||||
]
|
||||
|
||||
# Mass Storage
|
||||
@@ -340,9 +348,9 @@ PCI_IDS += [
|
||||
# Phison
|
||||
PCI_IDS += [
|
||||
# E13 NVMe Controller (redrix)
|
||||
- '1987:5013',
|
||||
+ "1987:5013",
|
||||
# E18 PCIe4 NVMe Controller (vell)
|
||||
- '1987:5018',
|
||||
+ "1987:5018",
|
||||
]
|
||||
|
||||
# Do not edit below this line. #################################################
|
328589
SOURCES/1070-update-hwdb.patch
Normal file
328589
SOURCES/1070-update-hwdb.patch
Normal file
File diff suppressed because it is too large
Load Diff
282994
SOURCES/1071-Update-hwdb.patch
Normal file
282994
SOURCES/1071-Update-hwdb.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,29 @@
|
||||
From 002ab63145afe73d0231e599c1f8afc011193f96 Mon Sep 17 00:00:00 2001
|
||||
From: Vursc <vursc@vursc.org>
|
||||
Date: Thu, 7 Nov 2024 15:13:56 +0000
|
||||
Subject: [PATCH] hwdb: fix broken numpad paren keys on Lenovo Thinkbook 16 G6+
|
||||
2024
|
||||
|
||||
(cherry picked from commit eb03dffd9794ac7ebfa1995ca9fdf72987b05535)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index b8bd7f0fb5..236a145dc5 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -1149,6 +1149,11 @@ evdev:name:SIPODEV Lenovo HID Device:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IG
|
||||
evdev:name:SIPODEV Lenovo HID Device Consumer Control:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
|
||||
KEYBOARD_KEY_c00ff=fn_esc # Fn+Tab (FnLk toggle)
|
||||
|
||||
+# Lenovo Thinkbook 16 G6+ 2024
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn21LG:pvr*
|
||||
+ KEYBOARD_KEY_0a=!9
|
||||
+ KEYBOARD_KEY_0b=!0
|
||||
+
|
||||
###########################################################
|
||||
# LG
|
||||
###########################################################
|
247208
SOURCES/1073-Update-hwdb.patch
Normal file
247208
SOURCES/1073-Update-hwdb.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,32 @@
|
||||
From c00d6d3c324d52798a163e00d84824af5515b9ed Mon Sep 17 00:00:00 2001
|
||||
From: Xuanjun Wen <41050170+wenxuanjun@users.noreply.github.com>
|
||||
Date: Wed, 20 Nov 2024 01:20:01 +0800
|
||||
Subject: [PATCH] hwdb: add new Cube Mix Plus (i18D) rotation info
|
||||
|
||||
Added rotation information for the new version of Cube Mix Plus (i18D).
|
||||
|
||||
(cherry picked from commit a526b9ddfc03a290f20a65c0a73792e73029f1b8)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 2adc5abc1f..28d23da631 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -376,11 +376,12 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svncube:pni1-TF:*
|
||||
sensor:modalias:acpi:SMO8500*:dmi:*:svncube:pni7:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
-# Cube i7 Stylus, i7 Stylus I8L Model, i7 Book (i16) and Mix Plus (i18B)
|
||||
+# Cube i7 Stylus, i7 Stylus I8L Model, i7 Book (i16) and Mix Plus (i18B/i18D)
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni7Stylus:*
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni8-L:*
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni16:*
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni18B:*
|
||||
+sensor:modalias:acpi:KIOX000A*:dmi:*:svnALLDOCUBE:pni18D:*
|
||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
|
||||
|
||||
# Cube iWork 10 Flagship
|
@ -0,0 +1,31 @@
|
||||
From 6f384e12732a835a84a609f5e526d2cf9e808ea1 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Zimmermann <tobias@the-resc.com>
|
||||
Date: Wed, 20 Nov 2024 23:16:21 +0100
|
||||
Subject: [PATCH] hwdb: Add quirk for Logitech MX Keys for Mac
|
||||
|
||||
The KEY_102ND and KEY_GRAVE keys are switched on the
|
||||
Logitech MX Keys for Mac, so switch them back
|
||||
|
||||
(cherry picked from commit f70e5620b6ac319beac1d5ce26331bdc48d25daa)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 236a145dc5..6cc059123a 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -1438,6 +1438,11 @@ evdev:input:b0003v046DpC309*
|
||||
KEYBOARD_KEY_c01b6=images # My Pictures (F11)
|
||||
KEYBOARD_KEY_c01b7=audio # My Music (F12)
|
||||
|
||||
+# Logitech MX Keys for Mac
|
||||
+evdev:input:b0003v046Dp4092*
|
||||
+ KEYBOARD_KEY_70035=102nd # '<' key
|
||||
+ KEYBOARD_KEY_70064=grave # '^' key
|
||||
+
|
||||
###########################################################
|
||||
# Maxdata
|
||||
###########################################################
|
@ -0,0 +1,34 @@
|
||||
From edd6e10a4510c9d715359f539afbf63240cf40d0 Mon Sep 17 00:00:00 2001
|
||||
From: Marco Tomaschett <marco@entekadesign.com>
|
||||
Date: Fri, 22 Nov 2024 13:08:06 -0500
|
||||
Subject: [PATCH] hwdb: add support for PineTab2 to 60-sensor.hwdb (#35304)
|
||||
|
||||
Add accelerometer support for PineTab2
|
||||
|
||||
(cherry picked from commit bc4a027f9cb66d56fd1305f41bed25751305fc27)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 28d23da631..3c4bb81671 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -953,6 +953,15 @@ sensor:modalias:acpi:MXC6655*:dmi:*:svnDefaultstring*:pnP612F:*
|
||||
sensor:modalias:acpi:SMO8500*:dmi:*:svnPEAQ:pnPEAQPMMC1010MD99187:*
|
||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
|
||||
|
||||
+#########################################
|
||||
+# Pine64
|
||||
+#########################################
|
||||
+
|
||||
+# PineTab2
|
||||
+
|
||||
+sensor:modalias:of:NaccelerometerT_null_Csilan,sc7a20:*
|
||||
+ ACCEL_MOUNT_MATRIX=0, 0, -1; 1, 0, 0; 0, -1, 0
|
||||
+
|
||||
#########################################
|
||||
# Pipo
|
||||
#########################################
|
31
SOURCES/1077-hwdb-add-entry-for-Chuwi-Hi10-X1-35331.patch
Normal file
31
SOURCES/1077-hwdb-add-entry-for-Chuwi-Hi10-X1-35331.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 20d56d6bf568611f89569a4a1153aee051c1ce03 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=E7=99=BD=E4=B8=80=E7=99=BE?=
|
||||
<72658127+bai-yi-bai@users.noreply.github.com>
|
||||
Date: Sun, 24 Nov 2024 15:30:33 +0800
|
||||
Subject: [PATCH] hwdb: add entry for Chuwi Hi10 X1 (#35331)
|
||||
|
||||
https://www.chuwi.com/product/items/chuwi-hi10-x1.html
|
||||
Rotated -90 degrees in the Z axis.
|
||||
|
||||
(cherry picked from commit 8c18851e7e4563c26ad2b91b4bc3423d2d73b120)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 3c4bb81671..02f4041475 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -295,6 +295,10 @@ sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10X:*
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10X:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
+# Chuwi Hi10 X1
|
||||
+sensor:modalias:acpi:NSA2513*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10X1:*
|
||||
+ ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
|
||||
+
|
||||
# Chuwi Hi10 Go
|
||||
sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIINNOVATIONLIMITED:pnHi10Go:*
|
||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0,-1, 0; 0, 0, 1
|
6662
SOURCES/1078-hwdb-update.patch
Normal file
6662
SOURCES/1078-hwdb-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
116
SOURCES/1079-hwdb-Make-3D-mice-work-out-of-the-box.patch
Normal file
116
SOURCES/1079-hwdb-Make-3D-mice-work-out-of-the-box.patch
Normal file
@ -0,0 +1,116 @@
|
||||
From 662acac8d35ae2939b999a96136629e6b2bb0ebf Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Fri, 29 Nov 2024 22:20:29 +0100
|
||||
Subject: [PATCH] hwdb: Make 3D mice work out-of-the-box
|
||||
|
||||
According to https://en.wikipedia.org/wiki/3Dconnexion, 3D mice are:
|
||||
human interface devices for manipulating and navigating
|
||||
computer-generated 3D imagery. These devices are often referred to as
|
||||
3D motion controllers, 3D navigation devices, 6DOF devices (six
|
||||
degrees of freedom) or a 3D mouse.
|
||||
|
||||
Applications that want to support 3D mice on Linux are expected to
|
||||
either use spacenavd and its library, or consume the HID output
|
||||
directly.
|
||||
|
||||
This patch makes it possible for a number of applications that use 3D
|
||||
mice directly to work out of the box, such as PrusaSlicer and its
|
||||
derivatives.
|
||||
|
||||
(cherry picked from commit e1c681919243daaca35053826686009260f34eaf)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/70-mouse.hwdb | 38 +++++++++++++++++++++++++++++++++++++
|
||||
hwdb.d/parse_hwdb.py | 1 +
|
||||
rules.d/70-uaccess.rules.in | 4 ++++
|
||||
3 files changed, 43 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
|
||||
index fcd9acd2b4..6e2a588a5d 100644
|
||||
--- a/hwdb.d/70-mouse.hwdb
|
||||
+++ b/hwdb.d/70-mouse.hwdb
|
||||
@@ -41,6 +41,7 @@
|
||||
# udevadm info /dev/input/eventXX.
|
||||
#
|
||||
# Allowed properties are:
|
||||
+# ID_INPUT_3D_MOUSE
|
||||
# ID_INPUT_TRACKBALL
|
||||
# MOUSE_DPI
|
||||
# MOUSE_WHEEL_CLICK_ANGLE
|
||||
@@ -49,6 +50,15 @@
|
||||
# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL
|
||||
#
|
||||
#########################################
|
||||
+# ID_INPUT_3D_MOUSE #
|
||||
+#########################################
|
||||
+#
|
||||
+# Specified if the device is a 3D mouse[1]. This gives access to the
|
||||
+# hidraw device node to applications that consume its events directly.
|
||||
+#
|
||||
+# [1]: See https://en.wikipedia.org/wiki/3Dconnexion for definition
|
||||
+#
|
||||
+#########################################
|
||||
# ID_INPUT_TRACKBALL #
|
||||
#########################################
|
||||
#
|
||||
@@ -143,6 +153,34 @@ mouse:*:name:*trackball*:*
|
||||
mouse:*:name:*TrackBall*:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
|
||||
+##########################################
|
||||
+# 3D Connexion
|
||||
+##########################################
|
||||
+# From https://github.com/FreeSpacenav/spacenavd/blob/39856625a6de1e8c4b57c5938e1bf29d13cf1a9f/src/dev.c#L63
|
||||
+mouse:usb:v046dpc603:name:*
|
||||
+mouse:usb:v046dpc605:name:*
|
||||
+mouse:usb:v046dpc606:name:*
|
||||
+mouse:usb:v046dpc621:name:*
|
||||
+mouse:usb:v046dpc623:name:*
|
||||
+mouse:usb:v046dpc625:name:*
|
||||
+mouse:usb:v046dpc626:name:*
|
||||
+mouse:usb:v046dpc627:name:*
|
||||
+mouse:usb:v046dpc628:name:*
|
||||
+mouse:usb:v046dpc629:name:*
|
||||
+mouse:usb:v046dpc62b:name:*
|
||||
+mouse:usb:v046dpc640:name:*
|
||||
+mouse:usb:v256fpc62e:name:*
|
||||
+mouse:usb:v256fpc62f:name:*
|
||||
+mouse:usb:v256fpc631:name:*
|
||||
+mouse:usb:v256fpc632:name:*
|
||||
+mouse:usb:v256fpc633:name:*
|
||||
+mouse:usb:v256fpc635:name:*
|
||||
+mouse:usb:v256fpc636:name:*
|
||||
+ ID_INPUT_3D_MOUSE=1
|
||||
+
|
||||
+mouse:bluetooth:v256fpc63a:name:*
|
||||
+ ID_INPUT_3D_MOUSE=1
|
||||
+
|
||||
##########################################
|
||||
# Apple
|
||||
##########################################
|
||||
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
|
||||
index b2580c8dcf..b4de194ba4 100755
|
||||
--- a/hwdb.d/parse_hwdb.py
|
||||
+++ b/hwdb.d/parse_hwdb.py
|
||||
@@ -155,6 +155,7 @@ def property_grammar():
|
||||
('MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL', INTEGER),
|
||||
('MOUSE_WHEEL_CLICK_COUNT', INTEGER),
|
||||
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
|
||||
+ ('ID_INPUT_3D_MOUSE', Or((Literal('0'), Literal('1')))),
|
||||
('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))),
|
||||
('ID_AUTOSUSPEND_DELAY_MS', INTEGER),
|
||||
('ID_AV_PRODUCTION_CONTROLLER', Or((Literal('0'), Literal('1')))),
|
||||
diff --git a/rules.d/70-uaccess.rules.in b/rules.d/70-uaccess.rules.in
|
||||
index 796e384e57..58cf32826a 100644
|
||||
--- a/rules.d/70-uaccess.rules.in
|
||||
+++ b/rules.d/70-uaccess.rules.in
|
||||
@@ -101,4 +101,8 @@ SUBSYSTEM=="usb", ENV{ID_AV_PRODUCTION_CONTROLLER}=="1", TAG+="uaccess"
|
||||
SUBSYSTEM=="usb", ENV{ID_HARDWARE_WALLET}=="1", TAG+="uaccess"
|
||||
SUBSYSTEM=="hidraw", ENV{ID_HARDWARE_WALLET}=="1", TAG+="uaccess"
|
||||
|
||||
+# 3D mice
|
||||
+# As defined in https://en.wikipedia.org/wiki/3Dconnexion
|
||||
+SUBSYSTEM=="hidraw", ENV{ID_INPUT_3D_MOUSE}=="1", TAG+="uaccess"
|
||||
+
|
||||
LABEL="uaccess_end"
|
35
SOURCES/1080-hwdb-Add-Chuwi-MiniBook-X-trackpad-fuzz.patch
Normal file
35
SOURCES/1080-hwdb-Add-Chuwi-MiniBook-X-trackpad-fuzz.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From 47d16a8a1b53b0bfd8120006b923a61c231d5988 Mon Sep 17 00:00:00 2001
|
||||
From: Greg Heartsfield <scsibug@imap.cc>
|
||||
Date: Mon, 9 Dec 2024 10:32:15 -0600
|
||||
Subject: [PATCH] hwdb: Add Chuwi MiniBook X trackpad fuzz
|
||||
|
||||
This adds X/Y fuzz for the Chuwi MiniBook X trackpad. There is
|
||||
significant trackpad jitter without this setting applied.
|
||||
|
||||
(cherry picked from commit 86b236fe99fa942df39aea5f0a6bde84c6aea7aa)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-evdev.hwdb | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
|
||||
index 372ae682ed..65170ae1ce 100644
|
||||
--- a/hwdb.d/60-evdev.hwdb
|
||||
+++ b/hwdb.d/60-evdev.hwdb
|
||||
@@ -251,6 +251,15 @@ evdev:input:b0003v0ED1p7821*
|
||||
EVDEV_ABS_00=::2271
|
||||
EVDEV_ABS_01=::5080
|
||||
|
||||
+#########################################
|
||||
+# Chuwi
|
||||
+#########################################
|
||||
+
|
||||
+# Chuwi MiniBook X
|
||||
+evdev:name:XXXX0000:05 0911:5288 Touchpad:dmi:*:pnMiniBookX:*
|
||||
+ EVDEV_ABS_00=:::8
|
||||
+ EVDEV_ABS_01=:::8
|
||||
+
|
||||
#########################################
|
||||
# Dell
|
||||
#########################################
|
2143
SOURCES/1081-Update-hwdb.patch
Normal file
2143
SOURCES/1081-Update-hwdb.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,25 @@
|
||||
From 885105292cd1a80cce8816192efc50bd7afcaa3f Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 4 Sep 2024 17:13:00 +0200
|
||||
Subject: [PATCH] hwdb: disable inclusion of the PCI domain in MANA network
|
||||
interface naming
|
||||
|
||||
(cherry picked from commit 9311c28b3407fbad69d0b747129b03ce1c7a6309)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/20-net-ifname.hwdb | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/20-net-ifname.hwdb b/hwdb.d/20-net-ifname.hwdb
|
||||
index 2408dc172f..ba136860a8 100644
|
||||
--- a/hwdb.d/20-net-ifname.hwdb
|
||||
+++ b/hwdb.d/20-net-ifname.hwdb
|
||||
@@ -3,3 +3,7 @@
|
||||
# Dell iDRAC Virtual USB NIC
|
||||
usb:v413CpA102*
|
||||
ID_NET_NAME_FROM_DATABASE=idrac
|
||||
+
|
||||
+# Disable inclusion of PCI domain in interface names on Azure MANA
|
||||
+pci:v00001414d000000BA*
|
||||
+ ID_NET_NAME_INCLUDE_DOMAIN=0
|
@ -0,0 +1,48 @@
|
||||
From da7e7e17b884f14e1720c62dd1040e0e0a3310fb Mon Sep 17 00:00:00 2001
|
||||
From: Soumyadeep Ghosh <soumyadeepghosh2004@zohomail.in>
|
||||
Date: Thu, 12 Dec 2024 18:50:33 +0530
|
||||
Subject: [PATCH] hwdb: move down touchpad toggle section from generic to
|
||||
product specific
|
||||
|
||||
adding `KEYBOARD_KEY_76` in generic section is causing a regression
|
||||
in MSI GF63. Moving this down fixes.
|
||||
This commit also adds a probable KEY Code for MSI GF63 touchpad toggling
|
||||
|
||||
(cherry picked from commit 1d771e69b27143a73cf8cc8a4350510ef9aa9f7a)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 6cc059123a..dba1274865 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -1512,7 +1512,6 @@ evdev:input:b0003v1532p0200*
|
||||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
|
||||
- KEYBOARD_KEY_76=f21 # Toggle touchpad, sends meta+ctrl+toggle
|
||||
KEYBOARD_KEY_91=config # MSIControl Center
|
||||
KEYBOARD_KEY_a0=mute # Fn+F9
|
||||
KEYBOARD_KEY_ae=volumedown # Fn+F7
|
||||
@@ -1531,6 +1530,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
|
||||
KEYBOARD_KEY_f8=brightnessup # Fn+F5
|
||||
KEYBOARD_KEY_f9=search
|
||||
|
||||
+# MSI GF63 toggles touchpad using Fn+F3 where the keyboard key is 29
|
||||
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGF63*:*
|
||||
+ KEYBOARD_KEY_85=f21 # Toggle touchpad, sends meta+ctrl+toggle
|
||||
+
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE60*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE70*:*
|
||||
KEYBOARD_KEY_c2=ejectcd
|
||||
@@ -1557,6 +1560,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
|
||||
# Keymaps MSI Prestige And MSI Modern FnKeys and Special keys
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Prestige*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
|
||||
+ KEYBOARD_KEY_76=f21 # Toggle touchpad, sends meta+ctrl+toggle
|
||||
KEYBOARD_KEY_91=prog1 # Fn+F7 Creation Center, sometime F7
|
||||
KEYBOARD_KEY_f2=rotate_display # Fn+F12 Screen rotation
|
||||
KEYBOARD_KEY_8d=prog3 # Fn+A Change True Color selections
|
@ -0,0 +1,50 @@
|
||||
From e4f8bf6058825819f87ebb477a1349cdbb930e66 Mon Sep 17 00:00:00 2001
|
||||
From: persmule <persmule@hardenedlinux.org>
|
||||
Date: Sun, 15 Dec 2024 21:03:57 +0800
|
||||
Subject: [PATCH] hwdb: add scancodes for HP Elitebook 2170p runnning coreboot
|
||||
|
||||
HP Elitebook 2170p's keyboard scancodes under coreboot is different
|
||||
with those under oem firmware. The scan code of backspace key of HP
|
||||
Elitebook 2170p under coreboot is 0x66, but 93b078c has
|
||||
KEYBOARD_KEY_66=pickup_phone for general HP laptops, making the
|
||||
backspace key of the HP Elitebook 2170p running coreboot unusable.
|
||||
|
||||
The committed scancodes map KEYBOARD_KEY_66 back to backspace, and
|
||||
provide all Fn-keys of HP Elitebook 2170p under coreboot.
|
||||
Their evdev string matches the default SMBIOS tables of coreboot
|
||||
for Elitebook 2170p, to avoid conflict with HP Elitebook 2170p running
|
||||
oem firmware.
|
||||
|
||||
Fixes #35469 and https://ticket.coreboot.org/issues/571
|
||||
|
||||
(cherry picked from commit 93fc2adfa414e4a1b384da56c6e7d9277661ff4b)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index dba1274865..47d863f3b7 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -739,6 +739,19 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
|
||||
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
|
||||
|
||||
+# 2170p running coreboot
|
||||
+evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook2170p:*
|
||||
+evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHP*:pn*EliteBook2170p:*
|
||||
+ KEYBOARD_KEY_66=backspace
|
||||
+ KEYBOARD_KEY_be=battery # Fn+F2
|
||||
+ KEYBOARD_KEY_d7=switchvideomode # Fn+F4
|
||||
+ KEYBOARD_KEY_a3=mute # Fn+F5
|
||||
+ KEYBOARD_KEY_a1=volumedown # Fn+F6
|
||||
+ KEYBOARD_KEY_a2=volumeup # Fn+F7
|
||||
+ KEYBOARD_KEY_a4=brightnessdown # Fn+F9
|
||||
+ KEYBOARD_KEY_c3=brightnessup # Fn+F10
|
||||
+ KEYBOARD_KEY_e3=wlan # Fn+F12
|
||||
+
|
||||
# Elitebook 2760p
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
|
||||
KEYBOARD_KEY_89=battery # Fn+F8
|
@ -0,0 +1,78 @@
|
||||
From 4d70b84f429d8fa34eceea483acbcb23e4cddb01 Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Thu, 12 Dec 2024 14:23:46 +0100
|
||||
Subject: [PATCH] hwdb: Make remote controllable lights work out-of-the-box
|
||||
|
||||
Give access to USB/Bluetooth lights such as the Logitech Litra family of
|
||||
devices.
|
||||
|
||||
The Logitech devices in particular are accessible through USB
|
||||
and Bluetooth.
|
||||
|
||||
(cherry picked from commit 106f64cbd66b8aa76333c3f11177f53e79e2cd82)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/70-lights.hwdb | 24 ++++++++++++++++++++++++
|
||||
hwdb.d/parse_hwdb.py | 1 +
|
||||
rules.d/70-uaccess.rules.in | 4 ++++
|
||||
3 files changed, 29 insertions(+)
|
||||
create mode 100644 hwdb.d/70-lights.hwdb
|
||||
|
||||
diff --git a/hwdb.d/70-lights.hwdb b/hwdb.d/70-lights.hwdb
|
||||
new file mode 100644
|
||||
index 0000000000..7811be61f5
|
||||
--- /dev/null
|
||||
+++ b/hwdb.d/70-lights.hwdb
|
||||
@@ -0,0 +1,24 @@
|
||||
+# This file is part of systemd.
|
||||
+#
|
||||
+# Database for remote controllable lights that should be accessible to the seat owner,
|
||||
+# such as Bluetooth or USB lights that are used in conjuction with the computer like
|
||||
+# streaming lights.
|
||||
+#
|
||||
+# To add local entries, copy this file to
|
||||
+# /etc/udev/hwdb.d/
|
||||
+# and add your rules there. To load the new rules execute (as root):
|
||||
+# systemd-hwdb update
|
||||
+# udevadm trigger
|
||||
+
|
||||
+################
|
||||
+# Logitech
|
||||
+################
|
||||
+# Litra Beam
|
||||
+bluetooth:v046dpc901*
|
||||
+usb:v046dpc901*
|
||||
+ ID_AV_LIGHTS=1
|
||||
+
|
||||
+# Litra Glow
|
||||
+bluetooth:v046dpc900*
|
||||
+usb:v046dpc900*
|
||||
+ ID_AV_LIGHTS=1
|
||||
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
|
||||
index b4de194ba4..bac5dcc4c8 100755
|
||||
--- a/hwdb.d/parse_hwdb.py
|
||||
+++ b/hwdb.d/parse_hwdb.py
|
||||
@@ -159,6 +159,7 @@ def property_grammar():
|
||||
('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))),
|
||||
('ID_AUTOSUSPEND_DELAY_MS', INTEGER),
|
||||
('ID_AV_PRODUCTION_CONTROLLER', Or((Literal('0'), Literal('1')))),
|
||||
+ ('ID_AV_LIGHTS', Or((Literal('0'), Literal('1')))),
|
||||
('ID_PERSIST', Or((Literal('0'), Literal('1')))),
|
||||
('ID_PDA', Or((Literal('0'), Literal('1')))),
|
||||
('ID_INPUT', id_input_setting),
|
||||
diff --git a/rules.d/70-uaccess.rules.in b/rules.d/70-uaccess.rules.in
|
||||
index 58cf32826a..7facd52537 100644
|
||||
--- a/rules.d/70-uaccess.rules.in
|
||||
+++ b/rules.d/70-uaccess.rules.in
|
||||
@@ -97,6 +97,10 @@ SUBSYSTEM=="hidraw", ENV{ID_AV_PRODUCTION_CONTROLLER}=="1", TAG+="uaccess"
|
||||
# This also allows accessing HID devices with the libusb backend of hidapi.
|
||||
SUBSYSTEM=="usb", ENV{ID_AV_PRODUCTION_CONTROLLER}=="1", TAG+="uaccess"
|
||||
|
||||
+# USB and Bluetooth controllable lights
|
||||
+SUBSYSTEM=="hidraw", ENV{ID_AV_LIGHTS}=="1", TAG+="uaccess"
|
||||
+SUBSYSTEM=="usb", ENV{ID_AV_LIGHTS}=="1", TAG+="uaccess"
|
||||
+
|
||||
# Hardware wallets
|
||||
SUBSYSTEM=="usb", ENV{ID_HARDWARE_WALLET}=="1", TAG+="uaccess"
|
||||
SUBSYSTEM=="hidraw", ENV{ID_HARDWARE_WALLET}=="1", TAG+="uaccess"
|
@ -0,0 +1,30 @@
|
||||
From 4fb0fc533a3cf74b6de1d8eb2d4210f9da94bd5e Mon Sep 17 00:00:00 2001
|
||||
From: Lucas Adriano Salles <83602841+luc-salles@users.noreply.github.com>
|
||||
Date: Mon, 16 Dec 2024 11:10:42 -0400
|
||||
Subject: [PATCH] hwdb: fix key toggle touchpad for VAIO VJFH52 (#35645)
|
||||
|
||||
Fixes #35644.
|
||||
|
||||
(cherry picked from commit 56785120a03c9fae2dcb9dbafa974d1592d1e628)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 47d863f3b7..eea269cc6d 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -2223,6 +2223,11 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE*:pvr*:*
|
||||
KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
|
||||
|
||||
+# VAIO VJFH52
|
||||
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFH52F11X*:pvr*:*
|
||||
+ KEYBOARD_KEY_f7=f23 # Fn+F1 toggle touchpad off
|
||||
+ KEYBOARD_KEY_f8=f22 # Fn+F1 toggle touchpad on
|
||||
+
|
||||
###########################################################
|
||||
# Positivo
|
||||
###########################################################
|
@ -0,0 +1,40 @@
|
||||
From 8161524b36e83eda29b5fe29fa566ffe01b44276 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Sat, 21 Dec 2024 03:13:18 +0900
|
||||
Subject: [PATCH] hwdb: comment out the entry for Logitech MX Keys for Mac
|
||||
|
||||
This effectively reverts the commit f70e5620b6ac319beac1d5ce26331bdc48d25daa,
|
||||
as the entry seems to match multiple models.
|
||||
|
||||
Fixes #35691.
|
||||
|
||||
(cherry picked from commit 52a2b049476b374dea2efa22d39c5a1944125c47)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index eea269cc6d..89adcd9edf 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -1451,10 +1451,15 @@ evdev:input:b0003v046DpC309*
|
||||
KEYBOARD_KEY_c01b6=images # My Pictures (F11)
|
||||
KEYBOARD_KEY_c01b7=audio # My Music (F12)
|
||||
|
||||
+# The wireless receiver b0003v046Dp4092* seems to be used by multiple models.
|
||||
+# See issue #35691. Hence, the entry below cannot be enabled by default. If
|
||||
+# you're using the model below, consider copying the entry to a custom hwdb
|
||||
+# file to enable the setting.
|
||||
+#
|
||||
# Logitech MX Keys for Mac
|
||||
-evdev:input:b0003v046Dp4092*
|
||||
- KEYBOARD_KEY_70035=102nd # '<' key
|
||||
- KEYBOARD_KEY_70064=grave # '^' key
|
||||
+#evdev:input:b0003v046Dp4092*
|
||||
+# KEYBOARD_KEY_70035=102nd # '<' key
|
||||
+# KEYBOARD_KEY_70064=grave # '^' key
|
||||
|
||||
###########################################################
|
||||
# Maxdata
|
@ -0,0 +1,30 @@
|
||||
From 920014ff93fc05f9d1dd2c99fadb48e8785e5233 Mon Sep 17 00:00:00 2001
|
||||
From: richfifeg <123514542+richfifeg@users.noreply.github.com>
|
||||
Date: Mon, 30 Dec 2024 10:07:02 -0800
|
||||
Subject: [PATCH] 60-sensor.hwdb: Loosen model mask to include entire series
|
||||
|
||||
This sensor is the same for Asus's entire Q5##L series, so match accordingly.
|
||||
|
||||
Tested with my Q502LAB.
|
||||
|
||||
(cherry picked from commit 89c4fe6c211d5e9cb380329f638609dec26bed0a)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 02f4041475..3379294a08 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -164,8 +164,7 @@ sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LA:*
|
||||
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LD:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
-sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pn*Q551LB:*
|
||||
-sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pn*Q551LN:*
|
||||
+sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pn*Q5??L*:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:KXJ2109*:dmi:*:svnASUSTeK*:pnME176C:*
|
@ -0,0 +1,25 @@
|
||||
From fad6dc4391fc8e142f2907bc1be09fd53dd788bd Mon Sep 17 00:00:00 2001
|
||||
From: Michael Limiero <mike5713@gmail.com>
|
||||
Date: Thu, 2 Jan 2025 10:41:28 -0500
|
||||
Subject: [PATCH] Correct ACCEL_MOUNT_MATRIX for Chuwi Hi10 Max
|
||||
|
||||
(cherry picked from commit c76a7b7c8ca1aa50aaa60cabbaac554717c8d576)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-sensor.hwdb | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
|
||||
index 3379294a08..8d6a670900 100644
|
||||
--- a/hwdb.d/60-sensor.hwdb
|
||||
+++ b/hwdb.d/60-sensor.hwdb
|
||||
@@ -304,7 +304,7 @@ sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIINNOVATIONLIMITED:pnHi10Go:*
|
||||
|
||||
# Chuwi Hi10 Max
|
||||
sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10Max:*
|
||||
- ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
+ ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
# Chuwi Hi12
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnP02BD6_HI-122LP:*
|
@ -0,0 +1,31 @@
|
||||
From dd3f33f683ce7fb9649817edeb7f83b954ac5ece Mon Sep 17 00:00:00 2001
|
||||
From: Chris Mayo <aklhfex@gmail.com>
|
||||
Date: Thu, 2 Jan 2025 19:22:10 +0000
|
||||
Subject: [PATCH] hwdb: Add macro keys for HP 430 Programmable Wireless Keypad
|
||||
|
||||
(cherry picked from commit 0726d988ec214e19e57929e411988bbedc7409cc)
|
||||
|
||||
Resolves: RHEL-49810
|
||||
---
|
||||
hwdb.d/60-keyboard.hwdb | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
|
||||
index 89adcd9edf..069cd891d7 100644
|
||||
--- a/hwdb.d/60-keyboard.hwdb
|
||||
+++ b/hwdb.d/60-keyboard.hwdb
|
||||
@@ -923,6 +923,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteDragonfly13.5inchG3NotebookPC:pvr*
|
||||
KEYBOARD_KEY_c8=pageup
|
||||
KEYBOARD_KEY_d0=pagedown
|
||||
|
||||
+# HP 430 Programmable Wireless Keypad
|
||||
+evdev:input:b0005v03F0p854Ae044C*
|
||||
+ KEYBOARD_KEY_700f3=macro1
|
||||
+ KEYBOARD_KEY_700f4=macro2
|
||||
+ KEYBOARD_KEY_700fc=macro3
|
||||
+ KEYBOARD_KEY_700fd=macro4
|
||||
+ KEYBOARD_KEY_700fe=macro5
|
||||
+
|
||||
##########################################################
|
||||
# Huawei
|
||||
##########################################################
|
@ -0,0 +1,61 @@
|
||||
From abe0be8631e7a07ff542442a4a7433ebdfc85b87 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 9 Jan 2024 11:28:04 +0100
|
||||
Subject: [PATCH] journal: again create user journals for users with high uids
|
||||
|
||||
This effectively reverts a change in 115d5145a257c1a27330acf9f063b5f4d910ca4d
|
||||
'journald: move uid_for_system_journal() to uid-alloc-range.h', which slipped
|
||||
in an additional check of uid_is_container(uid). The problem is that that change
|
||||
is not backwards-compatible at all and very hard for users to handle.
|
||||
There is no common agreement on mappings of high-range uids. Systemd declares
|
||||
ownership of a large range for container uids in https://systemd.io/UIDS-GIDS/,
|
||||
but this is only a recent change and various sites allocated those ranges
|
||||
in a different way, in particular FreeIPA uses (used?) uids from this range
|
||||
for human users. On big sites with lots of users changing uids is obviously a
|
||||
hard problem. We generally assume that uids cannot be "freed" and/or changed
|
||||
and/or reused safely, so we shouldn't demand the same from others.
|
||||
|
||||
This is somewhat similar to the situation with SYSTEM_ALLOC_UID_MIN /
|
||||
SYSTEM_UID_MAX, which we tried to define to a fixed value in our code, causing
|
||||
huge problems for existing systems with were created with a different
|
||||
definition and couldn't be easily updated. For that case, we added a
|
||||
configuration time switch and we now parse /etc/login.defs to actually use the
|
||||
value that is appropriate for the local system.
|
||||
|
||||
Unfortunately, login.defs doesn't have a concept of container allocation ranges
|
||||
(and we don't have code to parse and use those nonexistent names either), so we
|
||||
can't tell users to adjust logind.defs to work around the changed definition.
|
||||
|
||||
login.defs has SUB_UID_{MIN,MAX}, but those aren't really the same thing,
|
||||
because they are used to define where the add allocations for subuids, which is
|
||||
generally a much smaller range. Maybe we should talk with other folks about
|
||||
the appropriate allocation ranges and define some new settings in login.defs.
|
||||
But this would require discussion and coordination with other projects first.
|
||||
|
||||
Actualy, it seems that this change was needed at all. The code in the container
|
||||
does not log to the outside journal. It talks to its own journald, which does
|
||||
journal splitting using its internal logic based on shifted uids. So let's
|
||||
revert the change to fix user systems.
|
||||
|
||||
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2251843.
|
||||
|
||||
Upstream PR: https://github.com/systemd/systemd/pull/30846
|
||||
|
||||
rhel-only: bugfix
|
||||
|
||||
Resolves: RHEL-70103
|
||||
---
|
||||
src/basic/uid-alloc-range.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/basic/uid-alloc-range.c b/src/basic/uid-alloc-range.c
|
||||
index 8b3741e438..507ca8a17e 100644
|
||||
--- a/src/basic/uid-alloc-range.c
|
||||
+++ b/src/basic/uid-alloc-range.c
|
||||
@@ -127,5 +127,5 @@ bool uid_for_system_journal(uid_t uid) {
|
||||
|
||||
/* Returns true if the specified UID shall get its data stored in the system journal. */
|
||||
|
||||
- return uid_is_system(uid) || uid_is_dynamic(uid) || uid == UID_NOBODY || uid_is_container(uid);
|
||||
+ return uid_is_system(uid) || uid_is_dynamic(uid) || uid == UID_NOBODY;
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
From e60e2e0344001483c85424698546e9465614befb Mon Sep 17 00:00:00 2001
|
||||
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
||||
Date: Wed, 6 Dec 2023 16:24:21 +0100
|
||||
Subject: [PATCH] install: don't translate unit instances to paths when
|
||||
reenabling them
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
For unit instances install_info_discover() returns path to the template,
|
||||
which then generates confusing errors when passed to
|
||||
do_unit_file_enable():
|
||||
|
||||
~# build/systemctl --root=/tmp/systemctl-test.N9ysbz reenable templ1@two.service
|
||||
Unit name: templ1@two.service; p: /etc/systemd/system/templ1@.service
|
||||
Removed "/tmp/systemctl-test.N9ysbz/etc/systemd/system/services.target.wants/templ1@two.service".
|
||||
Failed to reenable templ1@.service, destination unit services.target is a non-template unit.
|
||||
|
||||
This can also be seen with a different reproducer using getty@.service
|
||||
and a simple bind mount to / - there's no error this time, but it tries
|
||||
to create a symlink for the default instance (from DefaultInstance=tty1),
|
||||
which is also incorrect:
|
||||
|
||||
~# SYSTEMD_LOG_LEVEL=debug systemctl --root /mnt/bindroot/ reenable getty@test.service
|
||||
Symlink /mnt/bindroot/etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service already exists
|
||||
|
||||
Follow-up to: 29a7c59abbe
|
||||
Resolves upstream issue #24740
|
||||
|
||||
(cherry picked from commit fe6e0cfa19dd1de4ac599ae207182fd556adcfa7)
|
||||
|
||||
Resolves: RHEL-5956
|
||||
---
|
||||
src/shared/install.c | 2 +-
|
||||
test/test-systemctl-enable.sh | 30 +++++++++++++++++++++++++++++-
|
||||
2 files changed, 30 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/shared/install.c b/src/shared/install.c
|
||||
index 8d4aa5ab2c..eaad368d1c 100644
|
||||
--- a/src/shared/install.c
|
||||
+++ b/src/shared/install.c
|
||||
@@ -2875,7 +2875,7 @@ static int normalize_linked_files(
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EISDIR),
|
||||
"Unexpected path to a directory \"%s\", refusing.", *a);
|
||||
|
||||
- if (!is_path(*a)) {
|
||||
+ if (!is_path(*a) && !unit_name_is_valid(*a, UNIT_NAME_INSTANCE)) {
|
||||
r = install_info_discover(&ctx, lp, n, SEARCH_LOAD|SEARCH_FOLLOW_CONFIG_SYMLINKS, &i, NULL, NULL);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to discover unit \"%s\", operating on name: %m", n);
|
||||
diff --git a/test/test-systemctl-enable.sh b/test/test-systemctl-enable.sh
|
||||
index 7d5667f297..a0a183e92b 100644
|
||||
--- a/test/test-systemctl-enable.sh
|
||||
+++ b/test/test-systemctl-enable.sh
|
||||
@@ -97,7 +97,7 @@ test ! -e "$root/etc/systemd/system/test1-badalias.target"
|
||||
test ! -e "$root/etc/systemd/system/test1-badalias.socket"
|
||||
test -h "$root/etc/systemd/system/test1-goodalias2.service"
|
||||
|
||||
-: '-------aliases in reeanble----------------------------------'
|
||||
+: '-------aliases in reeanable----------------------------------'
|
||||
( ! "$systemctl" --root="$root" reenable test1 )
|
||||
test -h "$root/etc/systemd/system/default.target.wants/test1.service"
|
||||
test ! -e "$root/etc/systemd/system/test1-goodalias.service"
|
||||
@@ -246,6 +246,29 @@ islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
|
||||
islink "$root/etc/systemd/system/link1.path" "/link1.path"
|
||||
islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
|
||||
|
||||
+: '-------link instance and enable-------------------------------------'
|
||||
+cat >"$root/link-instance@.service" <<EOF
|
||||
+[Service]
|
||||
+ExecStart=true
|
||||
+[Install]
|
||||
+WantedBy=services.target
|
||||
+EOF
|
||||
+
|
||||
+"$systemctl" --root="$root" link '/link-instance@.service'
|
||||
+islink "$root/etc/systemd/system/link-instance@.service" "/link-instance@.service"
|
||||
+
|
||||
+"$systemctl" --root="$root" enable 'link-instance@first.service'
|
||||
+islink "$root/etc/systemd/system/link-instance@first.service" "/link-instance@.service"
|
||||
+islink "$root/etc/systemd/system/services.target.wants/link-instance@first.service" "/link-instance@.service"
|
||||
+
|
||||
+SYSTEMD_LOG_LEVEL=debug "$systemctl" --root="$root" reenable 'link-instance@first.service'
|
||||
+islink "$root/etc/systemd/system/link-instance@first.service" "/link-instance@.service"
|
||||
+islink "$root/etc/systemd/system/services.target.wants/link-instance@first.service" "/link-instance@.service"
|
||||
+
|
||||
+"$systemctl" --root="$root" disable 'link-instance@first.service'
|
||||
+test ! -h "$root/etc/systemd/system/link-instance@first.service"
|
||||
+test ! -h "$root/etc/systemd/system/services.target.wants/link-instance@first.service"
|
||||
+
|
||||
: '-------manual link------------------------------------------'
|
||||
cat >"$root/link3.suffix" <<EOF
|
||||
[Install]
|
||||
@@ -314,6 +337,11 @@ test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
|
||||
islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
|
||||
islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
|
||||
|
||||
+"$systemctl" --root="$root" reenable 'templ1@two.service'
|
||||
+test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
|
||||
+islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
|
||||
+islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
|
||||
+
|
||||
"$systemctl" --root="$root" disable 'templ1@one.service'
|
||||
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
|
||||
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service"
|
27
SOURCES/1093-test-systemctl-enable-fix-typo.patch
Normal file
27
SOURCES/1093-test-systemctl-enable-fix-typo.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From ac5e85a76bd19211db88b7d924d9fe210fee4faf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 15 Dec 2023 16:01:35 +0100
|
||||
Subject: [PATCH] test-systemctl-enable: fix typo
|
||||
|
||||
Follow-up for fe6e0cfa19dd1de4ac599ae207182fd556adcfa7.
|
||||
|
||||
(cherry picked from commit 88cc9cc7bc0d12b2a424cc8e88fc8699efc3ed04)
|
||||
|
||||
Related: RHEL-5956
|
||||
---
|
||||
test/test-systemctl-enable.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/test-systemctl-enable.sh b/test/test-systemctl-enable.sh
|
||||
index a0a183e92b..7d82c38613 100644
|
||||
--- a/test/test-systemctl-enable.sh
|
||||
+++ b/test/test-systemctl-enable.sh
|
||||
@@ -97,7 +97,7 @@ test ! -e "$root/etc/systemd/system/test1-badalias.target"
|
||||
test ! -e "$root/etc/systemd/system/test1-badalias.socket"
|
||||
test -h "$root/etc/systemd/system/test1-goodalias2.service"
|
||||
|
||||
-: '-------aliases in reeanable----------------------------------'
|
||||
+: '-------aliases in reenable----------------------------------'
|
||||
( ! "$systemctl" --root="$root" reenable test1 )
|
||||
test -h "$root/etc/systemd/system/default.target.wants/test1.service"
|
||||
test ! -e "$root/etc/systemd/system/test1-goodalias.service"
|
@ -0,0 +1,44 @@
|
||||
From b29215773c179d29cbd009fa5dbe608537842eee Mon Sep 17 00:00:00 2001
|
||||
From: Chengen Du <chengen.du@canonical.com>
|
||||
Date: Mon, 12 Aug 2024 11:41:52 +0800
|
||||
Subject: [PATCH] udev: Handle PTP device symlink properly on udev action
|
||||
'change'
|
||||
|
||||
PTP device symlink creation rules are currently executed only when the
|
||||
udev action is 'add'. If a user reloads the rules and runs the udevadm
|
||||
trigger command to reapply changes, the symlink may be deleted, which
|
||||
can prevent the chronyd service from restarting properly.
|
||||
|
||||
Signed-off-by: Chengen Du <chengen.du@canonical.com>
|
||||
(cherry picked from commit 6bd12be3fa7761f190e17efdbdbff4440da7528b)
|
||||
|
||||
Resolves: RHEL-59088
|
||||
---
|
||||
rules.d/50-udev-default.rules.in | 7 +++----
|
||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/rules.d/50-udev-default.rules.in b/rules.d/50-udev-default.rules.in
|
||||
index ab29f6a17f..3543a0ee0d 100644
|
||||
--- a/rules.d/50-udev-default.rules.in
|
||||
+++ b/rules.d/50-udev-default.rules.in
|
||||
@@ -21,6 +21,9 @@ ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}"
|
||||
|
||||
SUBSYSTEM=="net", IMPORT{builtin}="net_driver"
|
||||
|
||||
+SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK+="ptp_kvm"
|
||||
+SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK+="ptp_hyperv"
|
||||
+
|
||||
ACTION!="add", GOTO="default_end"
|
||||
|
||||
SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666"
|
||||
@@ -109,10 +112,6 @@ KERNEL=="vhost-net", GROUP="kvm", MODE="{{DEV_KVM_MODE}}", OPTIONS+="static_node
|
||||
|
||||
KERNEL=="udmabuf", GROUP="kvm"
|
||||
|
||||
-SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK += "ptp_kvm"
|
||||
-
|
||||
-SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK += "ptp_hyperv"
|
||||
-
|
||||
SUBSYSTEM!="dmi", GOTO="dmi_end"
|
||||
ENV{ID_SYS_VENDOR_IS_RUBBISH}!="1", ENV{ID_VENDOR}="$attr{sys_vendor}"
|
||||
ENV{ID_SYSFS_ATTRIBUTE_MODEL}=="", ENV{ID_PRODUCT_NAME_IS_RUBBISH}!="1", ENV{ID_MODEL}="$attr{product_name}"
|
@ -0,0 +1,26 @@
|
||||
From 79d0bc06110b46171990990afb5e1cdd56920324 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Sekletar <msekleta@redhat.com>
|
||||
Date: Mon, 6 Jan 2025 10:44:25 +0100
|
||||
Subject: [PATCH] systemctl: print warning about missing /proc only as debug
|
||||
message
|
||||
|
||||
rhel-only: bugfix
|
||||
|
||||
Resolves: RHEL-3906
|
||||
---
|
||||
src/systemctl/systemctl.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
|
||||
index 3f2b0029ca..883a5b75f4 100644
|
||||
--- a/src/systemctl/systemctl.c
|
||||
+++ b/src/systemctl/systemctl.c
|
||||
@@ -1156,7 +1156,7 @@ static int run(int argc, char *argv[]) {
|
||||
goto finish;
|
||||
|
||||
if (proc_mounted() == 0)
|
||||
- log_full(arg_no_warn ? LOG_DEBUG : LOG_WARNING,
|
||||
+ log_full(LOG_DEBUG,
|
||||
"%s%s/proc/ is not mounted. This is not a supported mode of operation. Please fix\n"
|
||||
"your invocation environment to mount /proc/ and /sys/ properly. Proceeding anyway.\n"
|
||||
"Your mileage may vary.",
|
@ -0,0 +1,36 @@
|
||||
From 834137e727d27a0fa1247a5233db033a9074265b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 17 Oct 2023 16:45:52 +0100
|
||||
Subject: [PATCH] repart: avoid use of uninitialized TPM2B_PUBLIC data
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The 'TPM2B public' struct is only initialized if the public key
|
||||
is non-NULL, however, it is unconditionally passed to
|
||||
tpm2_calculate_sealing_policy, resulting in use of uninitialized
|
||||
data. If the uninitialized data is lucky enough to be all zeroes,
|
||||
this results eventually results in an error message from
|
||||
tpm2_calculate_name about an unsupported nameAlg field value.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
(cherry picked from commit a3ad5c3140b941d3703c63c902e58f4e2d295829)
|
||||
|
||||
Resolves: RHEL-56793
|
||||
---
|
||||
src/partition/repart.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/partition/repart.c b/src/partition/repart.c
|
||||
index eeb31a6160..5db931e7bc 100644
|
||||
--- a/src/partition/repart.c
|
||||
+++ b/src/partition/repart.c
|
||||
@@ -3073,7 +3073,7 @@ static int partition_encrypt(
|
||||
}
|
||||
|
||||
TPM2B_DIGEST policy = TPM2B_DIGEST_MAKE(NULL, TPM2_SHA256_DIGEST_SIZE);
|
||||
- r = tpm2_calculate_sealing_policy(arg_tpm2_hash_pcr_values, arg_tpm2_n_hash_pcr_values, &public, /* use_pin= */ false, &policy);
|
||||
+ r = tpm2_calculate_sealing_policy(arg_tpm2_hash_pcr_values, arg_tpm2_n_hash_pcr_values, pubkey ? &public : NULL, /* use_pin= */ false, &policy);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Could not calculate sealing policy digest: %m");
|
||||
|
@ -0,0 +1,25 @@
|
||||
From af3b1477daca2bd53c371275ef7c3022dca3011f Mon Sep 17 00:00:00 2001
|
||||
From: Jan Macku <jamacku@redhat.com>
|
||||
Date: Tue, 14 Jan 2025 14:20:53 +0100
|
||||
Subject: [PATCH] ci: use ubuntu 22:04 for deploy of man pages
|
||||
|
||||
rhel-only: ci
|
||||
|
||||
Related: RHEL-70884
|
||||
---
|
||||
.github/workflows/deploy-man-pages.yml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/.github/workflows/deploy-man-pages.yml b/.github/workflows/deploy-man-pages.yml
|
||||
index 9739228a87..82fab81072 100644
|
||||
--- a/.github/workflows/deploy-man-pages.yml
|
||||
+++ b/.github/workflows/deploy-man-pages.yml
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
- runs-on: ubuntu-latest
|
||||
+ runs-on: ubuntu-22.04
|
||||
|
||||
permissions:
|
||||
pages: write
|
27
SOURCES/1098-man-tmpfiles-fix-off-by-one-in-example.patch
Normal file
27
SOURCES/1098-man-tmpfiles-fix-off-by-one-in-example.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 77109fd5481a622121a9ca20e19d76fc97125e47 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Wed, 17 May 2023 11:16:56 +0200
|
||||
Subject: [PATCH] man/tmpfiles: fix off-by-one in example
|
||||
|
||||
Reported and diagnosed by gitterman. Fixes #26617.
|
||||
|
||||
(cherry picked from commit f90360eb7417e083650034ad819790df0c389bd1)
|
||||
|
||||
Resolves: RHEL-74015
|
||||
---
|
||||
man/tmpfiles.d.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
|
||||
index fe2a1dadab..379ac9c34f 100644
|
||||
--- a/man/tmpfiles.d.xml
|
||||
+++ b/man/tmpfiles.d.xml
|
||||
@@ -644,7 +644,7 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
|
||||
<para>For example:<programlisting>
|
||||
# Files created and modified, and directories accessed more than
|
||||
# an hour ago in "/tmp/foo/bar", are subject to time-based cleanup.
|
||||
-d /tmp/foo/bar - - - - bmA:1h -</programlisting></para>
|
||||
+d /tmp/foo/bar - - - bmA:1h -</programlisting></para>
|
||||
|
||||
<para>Note that while the aging algorithm is run a 'shared' BSD file lock (see <citerefentry
|
||||
project='man-pages'><refentrytitle>flock</refentrytitle><manvolnum>2</manvolnum></citerefentry>) is
|
@ -0,0 +1,36 @@
|
||||
From 6f792eb8679a20dd1e604bcd9cd18566658c3ff3 Mon Sep 17 00:00:00 2001
|
||||
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
||||
Date: Wed, 18 Sep 2024 12:54:51 +0200
|
||||
Subject: [PATCH] test: drop removed SCSI passthrough feature
|
||||
|
||||
This feature has been deprecated since QEMU 5.0 and finally removed in
|
||||
QEMU 9.1 [0] which now causes issues when running the storage tests on
|
||||
latest Arch:
|
||||
|
||||
------ testcase_long_sysfs_path: BEGIN ------
|
||||
...
|
||||
qemu-system-x86_64: -device virtio-blk-pci,drive=drive0,scsi=off,bus=pci_bridge25: Property 'virtio-blk-pci.scsi' not found
|
||||
E: qemu failed with exit code 1
|
||||
|
||||
[0] https://github.com/qemu/qemu/commit/a271b8d7b2f39275a05e49deb7c8edc20b7a8279
|
||||
|
||||
(cherry picked from commit cd57920fbf6a8f7769a82cfc9bebc12965de0199)
|
||||
|
||||
Related: RHEL-70884
|
||||
---
|
||||
test/TEST-64-UDEV-STORAGE/test.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/TEST-64-UDEV-STORAGE/test.sh b/test/TEST-64-UDEV-STORAGE/test.sh
|
||||
index f93b92e3c3..3911926b02 100755
|
||||
--- a/test/TEST-64-UDEV-STORAGE/test.sh
|
||||
+++ b/test/TEST-64-UDEV-STORAGE/test.sh
|
||||
@@ -474,7 +474,7 @@ EOF
|
||||
qemu_opts+=("-device pci-bridge,id=pci_bridge$brid,bus=pci_bridge$((brid-1)),chassis_nr=$((64+brid))")
|
||||
done
|
||||
|
||||
- qemu_opts+=("-device virtio-blk-pci,drive=drive0,scsi=off,bus=pci_bridge$brid")
|
||||
+ qemu_opts+=("-device virtio-blk-pci,drive=drive0,bus=pci_bridge$brid")
|
||||
|
||||
KERNEL_APPEND="systemd.setenv=TEST_FUNCTION_NAME=${FUNCNAME[0]} ${USER_KERNEL_APPEND:-}"
|
||||
QEMU_OPTIONS="${qemu_opts[*]} ${USER_QEMU_OPTIONS:-}"
|
@ -0,0 +1,53 @@
|
||||
From ef5d328d13eae49e415c8968d0625fa29ff2daf4 Mon Sep 17 00:00:00 2001
|
||||
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
||||
Date: Mon, 15 May 2023 19:45:13 +0200
|
||||
Subject: [PATCH] nspawn: call json_dispatch() with a correct pointer
|
||||
|
||||
Otherwise hilarity ensues:
|
||||
|
||||
AddressSanitizer:DEADLYSIGNAL
|
||||
=================================================================
|
||||
==722==ERROR: AddressSanitizer: SEGV on unknown address 0xffffffff00000000 (pc 0x7f8d50ca9ffb bp 0x7fff11b0d4a0 sp 0x7fff11b0cc30 T0)
|
||||
==722==The signal is caused by a READ memory access.
|
||||
#0 0x7f8d50ca9ffb in __interceptor_strcmp.part.0 (/lib64/libasan.so.8+0xa9ffb)
|
||||
#1 0x7f8d4f9cf5a1 in strcmp_ptr ../src/fundamental/string-util-fundamental.h:33
|
||||
#2 0x7f8d4f9cf5f8 in streq_ptr ../src/fundamental/string-util-fundamental.h:46
|
||||
#3 0x7f8d4f9d74d2 in free_and_strdup ../src/basic/string-util.c:948
|
||||
#4 0x49139a in free_and_strdup_warn ../src/basic/string-util.h:197
|
||||
#5 0x4923eb in oci_absolute_path ../src/nspawn/nspawn-oci.c:139
|
||||
#6 0x7f8d4f6bd359 in json_dispatch ../src/shared/json.c:4395
|
||||
#7 0x4a8831 in oci_hooks_array ../src/nspawn/nspawn-oci.c:2089
|
||||
#8 0x7f8d4f6bd359 in json_dispatch ../src/shared/json.c:4395
|
||||
#9 0x4a8b56 in oci_hooks ../src/nspawn/nspawn-oci.c:2112
|
||||
#10 0x7f8d4f6bd359 in json_dispatch ../src/shared/json.c:4395
|
||||
#11 0x4aa298 in oci_load ../src/nspawn/nspawn-oci.c:2197
|
||||
#12 0x446cec in load_oci_bundle ../src/nspawn/nspawn.c:4744
|
||||
#13 0x44ffa7 in run ../src/nspawn/nspawn.c:5477
|
||||
#14 0x4552fb in main ../src/nspawn/nspawn.c:5920
|
||||
#15 0x7f8d4e04a50f in __libc_start_call_main (/lib64/libc.so.6+0x2750f)
|
||||
#16 0x7f8d4e04a5c8 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x275c8)
|
||||
#17 0x40d284 in _start (/usr/bin/systemd-nspawn+0x40d284)
|
||||
AddressSanitizer can not provide additional info.
|
||||
SUMMARY: AddressSanitizer: SEGV (/lib64/libasan.so.8+0xa9ffb) in __interceptor_strcmp.part.0
|
||||
==722==ABORTING
|
||||
|
||||
(cherry picked from commit f4e5c042c9a5659a5eebb4c91c0f1132f02a2c59)
|
||||
|
||||
Related: RHEL-55266
|
||||
---
|
||||
src/nspawn/nspawn-oci.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/nspawn/nspawn-oci.c b/src/nspawn/nspawn-oci.c
|
||||
index 02142a9352..117a31e6b2 100644
|
||||
--- a/src/nspawn/nspawn-oci.c
|
||||
+++ b/src/nspawn/nspawn-oci.c
|
||||
@@ -2083,7 +2083,7 @@ static int oci_hooks_array(const char *name, JsonVariant *v, JsonDispatchFlags f
|
||||
.timeout = USEC_INFINITY,
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, userdata);
|
||||
+ r = json_dispatch(e, table, oci_unexpected, flags, new_item);
|
||||
if (r < 0) {
|
||||
free(new_item->path);
|
||||
strv_free(new_item->args);
|
@ -0,0 +1,944 @@
|
||||
From a92665de198ca2ace3f5835f6c819b6e669cbb77 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 1 Nov 2023 18:36:12 +0100
|
||||
Subject: [PATCH] varlink,json: introduce new varlink_dispatch() helper
|
||||
|
||||
varlink_dispatch() is a simple wrapper around json_dispatch() that
|
||||
returns clean, standards-compliant InvalidParameter error back to
|
||||
clients, if the specified JSON cannot be parsed properly.
|
||||
|
||||
For this json_dispatch() is extended to return the offending field's
|
||||
name. Because it already has quite a few parameters, I then renamed
|
||||
json_dispatch() to json_dispatch_full() and made json_dispatch() a
|
||||
wrapper around it that passes the new argument as NULL. While doing so I
|
||||
figured we should also get rid of the bad= argument in the short
|
||||
wrapper, since it's only used in the OCI code.
|
||||
|
||||
To simplify the OCI code this adds a second wrapper oci_dispatch()
|
||||
around json_dispatch_full(), that fills in bad= the way we want.
|
||||
|
||||
Net result: instead of one json_dispatch() call there are now:
|
||||
|
||||
1. json_dispatch_full() for the fully feature mother of all dispathers.
|
||||
2. json_dispatch() for the simpler version that you want to use most of
|
||||
the time.
|
||||
3. varlink_dispatch() that generates nice Varlink errors
|
||||
4. oci_dispatch() that does the OCI specific error handling
|
||||
|
||||
And that's all there is.
|
||||
|
||||
(cherry picked from commit f1b622a00ce614654fcdff309a2394cfae3b3a88)
|
||||
|
||||
Related: RHEL-55266
|
||||
---
|
||||
src/core/core-varlink.c | 12 ++++----
|
||||
src/fuzz/fuzz-bootspec.c | 2 +-
|
||||
src/home/homed-varlink.c | 12 ++++----
|
||||
src/machine/machined-varlink.c | 12 ++++----
|
||||
src/nspawn/nspawn-oci.c | 54 ++++++++++++++++++----------------
|
||||
src/nss-resolve/nss-resolve.c | 18 ++++++------
|
||||
src/oom/oomd-manager.c | 2 +-
|
||||
src/resolve/resolvectl.c | 4 +--
|
||||
src/resolve/resolved-varlink.c | 8 ++---
|
||||
src/shared/group-record.c | 10 +++----
|
||||
src/shared/json.c | 41 ++++++++++++++++++++++++--
|
||||
src/shared/json.h | 3 +-
|
||||
src/shared/user-record.c | 18 ++++++------
|
||||
src/shared/userdb.c | 6 ++--
|
||||
src/shared/varlink.c | 20 +++++++++++++
|
||||
src/shared/varlink.h | 3 ++
|
||||
src/userdb/userwork.c | 12 ++++----
|
||||
17 files changed, 150 insertions(+), 87 deletions(-)
|
||||
|
||||
diff --git a/src/core/core-varlink.c b/src/core/core-varlink.c
|
||||
index 843271593d..776a3eebab 100644
|
||||
--- a/src/core/core-varlink.c
|
||||
+++ b/src/core/core-varlink.c
|
||||
@@ -281,8 +281,8 @@ static int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, Var
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, "io.systemd.DynamicUser"))
|
||||
@@ -388,8 +388,8 @@ static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, Va
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, "io.systemd.DynamicUser"))
|
||||
@@ -464,8 +464,8 @@ static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, Var
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, "io.systemd.DynamicUser"))
|
||||
diff --git a/src/fuzz/fuzz-bootspec.c b/src/fuzz/fuzz-bootspec.c
|
||||
index c08f76c14a..c6d24e7b55 100644
|
||||
--- a/src/fuzz/fuzz-bootspec.c
|
||||
+++ b/src/fuzz/fuzz-bootspec.c
|
||||
@@ -98,7 +98,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||
if (r < 0)
|
||||
return 0;
|
||||
|
||||
- r = json_dispatch(v, data_dispatch, NULL, 0, &config);
|
||||
+ r = json_dispatch(v, data_dispatch, 0, &config);
|
||||
if (r < 0)
|
||||
return 0;
|
||||
|
||||
diff --git a/src/home/homed-varlink.c b/src/home/homed-varlink.c
|
||||
index 540a612554..1cef25f563 100644
|
||||
--- a/src/home/homed-varlink.c
|
||||
+++ b/src/home/homed-varlink.c
|
||||
@@ -90,8 +90,8 @@ int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, VarlinkMet
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, m->userdb_service))
|
||||
@@ -204,8 +204,8 @@ int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, VarlinkMe
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, m->userdb_service))
|
||||
@@ -270,8 +270,8 @@ int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, VarlinkMet
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, m->userdb_service))
|
||||
diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c
|
||||
index ec625ad7b4..8b230b0078 100644
|
||||
--- a/src/machine/machined-varlink.c
|
||||
+++ b/src/machine/machined-varlink.c
|
||||
@@ -156,8 +156,8 @@ static int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, Var
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, "io.systemd.Machine"))
|
||||
@@ -321,8 +321,8 @@ static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, Va
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, "io.systemd.Machine"))
|
||||
@@ -366,8 +366,8 @@ static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, Var
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!streq_ptr(p.service, "io.systemd.Machine"))
|
||||
diff --git a/src/nspawn/nspawn-oci.c b/src/nspawn/nspawn-oci.c
|
||||
index 117a31e6b2..7fbc4dd6f0 100644
|
||||
--- a/src/nspawn/nspawn-oci.c
|
||||
+++ b/src/nspawn/nspawn-oci.c
|
||||
@@ -84,6 +84,10 @@ static int oci_unexpected(const char *name, JsonVariant *v, JsonDispatchFlags fl
|
||||
"Unexpected OCI element '%s' of type '%s'.", name, json_variant_type_to_string(json_variant_type(v)));
|
||||
}
|
||||
|
||||
+static int oci_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchFlags flags, void *userdata) {
|
||||
+ return json_dispatch_full(v, table, oci_unexpected, flags, userdata, /* reterr_bad_field= */ NULL);
|
||||
+}
|
||||
+
|
||||
static int oci_unsupported(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
|
||||
return json_log(v, flags, SYNTHETIC_ERRNO(EOPNOTSUPP),
|
||||
"Unsupported OCI element '%s' of type '%s'.", name, json_variant_type_to_string(json_variant_type(v)));
|
||||
@@ -122,7 +126,7 @@ static int oci_console_size(const char *name, JsonVariant *v, JsonDispatchFlags
|
||||
{}
|
||||
};
|
||||
|
||||
- return json_dispatch(v, table, oci_unexpected, flags, userdata);
|
||||
+ return oci_dispatch(v, table, flags, userdata);
|
||||
}
|
||||
|
||||
static int oci_absolute_path(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -251,7 +255,7 @@ static int oci_rlimits(const char *name, JsonVariant *v, JsonDispatchFlags flags
|
||||
{}
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(e, table, flags, &data);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -319,7 +323,7 @@ static int oci_capabilities(const char *name, JsonVariant *v, JsonDispatchFlags
|
||||
Settings *s = ASSERT_PTR(userdata);
|
||||
int r;
|
||||
|
||||
- r = json_dispatch(v, table, oci_unexpected, flags, &s->full_capabilities);
|
||||
+ r = oci_dispatch(v, table, flags, &s->full_capabilities);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -402,7 +406,7 @@ static int oci_user(const char *name, JsonVariant *v, JsonDispatchFlags flags, v
|
||||
{}
|
||||
};
|
||||
|
||||
- return json_dispatch(v, table, oci_unexpected, flags, userdata);
|
||||
+ return oci_dispatch(v, table, flags, userdata);
|
||||
}
|
||||
|
||||
static int oci_process(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -423,7 +427,7 @@ static int oci_process(const char *name, JsonVariant *v, JsonDispatchFlags flags
|
||||
{}
|
||||
};
|
||||
|
||||
- return json_dispatch(v, table, oci_unexpected, flags, userdata);
|
||||
+ return oci_dispatch(v, table, flags, userdata);
|
||||
}
|
||||
|
||||
static int oci_root(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -436,7 +440,7 @@ static int oci_root(const char *name, JsonVariant *v, JsonDispatchFlags flags, v
|
||||
{}
|
||||
};
|
||||
|
||||
- r = json_dispatch(v, table, oci_unexpected, flags, s);
|
||||
+ r = oci_dispatch(v, table, flags, s);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -536,7 +540,7 @@ static int oci_mounts(const char *name, JsonVariant *v, JsonDispatchFlags flags,
|
||||
CustomMount *m;
|
||||
_cleanup_(cleanup_oci_mount_data) oci_mount_data data = {};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(e, table, flags, &data);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -631,7 +635,7 @@ static int oci_namespaces(const char *name, JsonVariant *v, JsonDispatchFlags fl
|
||||
{}
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(e, table, flags, &data);
|
||||
if (r < 0) {
|
||||
free(data.path);
|
||||
return r;
|
||||
@@ -729,7 +733,7 @@ static int oci_uid_gid_mappings(const char *name, JsonVariant *v, JsonDispatchFl
|
||||
|
||||
assert_se(e = json_variant_by_index(v, 0));
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(e, table, flags, &data);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -858,7 +862,7 @@ static int oci_devices(const char *name, JsonVariant *v, JsonDispatchFlags flags
|
||||
.mode = 0644,
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, node);
|
||||
+ r = oci_dispatch(e, table, flags, node);
|
||||
if (r < 0)
|
||||
goto fail_element;
|
||||
|
||||
@@ -1008,7 +1012,7 @@ static int oci_cgroup_devices(const char *name, JsonVariant *v, JsonDispatchFlag
|
||||
{}
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(e, table, flags, &data);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1190,7 +1194,7 @@ static int oci_cgroup_memory(const char *name, JsonVariant *v, JsonDispatchFlags
|
||||
Settings *s = userdata;
|
||||
int r;
|
||||
|
||||
- r = json_dispatch(v, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(v, table, flags, &data);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1306,7 +1310,7 @@ static int oci_cgroup_cpu(const char *name, JsonVariant *v, JsonDispatchFlags fl
|
||||
Settings *s = userdata;
|
||||
int r;
|
||||
|
||||
- r = json_dispatch(v, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(v, table, flags, &data);
|
||||
if (r < 0) {
|
||||
cpu_set_reset(&data.cpu_set);
|
||||
return r;
|
||||
@@ -1388,7 +1392,7 @@ static int oci_cgroup_block_io_weight_device(const char *name, JsonVariant *v, J
|
||||
|
||||
_cleanup_free_ char *path = NULL;
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(e, table, flags, &data);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1445,7 +1449,7 @@ static int oci_cgroup_block_io_throttle(const char *name, JsonVariant *v, JsonDi
|
||||
|
||||
_cleanup_free_ char *path = NULL;
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &data);
|
||||
+ r = oci_dispatch(e, table, flags, &data);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1482,7 +1486,7 @@ static int oci_cgroup_block_io(const char *name, JsonVariant *v, JsonDispatchFla
|
||||
{}
|
||||
};
|
||||
|
||||
- return json_dispatch(v, table, oci_unexpected, flags, userdata);
|
||||
+ return oci_dispatch(v, table, flags, userdata);
|
||||
}
|
||||
|
||||
static int oci_cgroup_pids(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -1497,7 +1501,7 @@ static int oci_cgroup_pids(const char *name, JsonVariant *v, JsonDispatchFlags f
|
||||
uint64_t m;
|
||||
int r;
|
||||
|
||||
- r = json_dispatch(v, table, oci_unexpected, flags, &k);
|
||||
+ r = oci_dispatch(v, table, flags, &k);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1540,7 +1544,7 @@ static int oci_resources(const char *name, JsonVariant *v, JsonDispatchFlags fla
|
||||
{}
|
||||
};
|
||||
|
||||
- return json_dispatch(v, table, oci_unexpected, flags, userdata);
|
||||
+ return oci_dispatch(v, table, flags, userdata);
|
||||
}
|
||||
|
||||
static bool sysctl_key_valid(const char *s) {
|
||||
@@ -1801,7 +1805,7 @@ static int oci_seccomp_args(const char *name, JsonVariant *v, JsonDispatchFlags
|
||||
.op = 0,
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, p);
|
||||
+ r = oci_dispatch(e, table, flags, p);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1834,7 +1838,7 @@ static int oci_seccomp_syscalls(const char *name, JsonVariant *v, JsonDispatchFl
|
||||
.action = UINT32_MAX,
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, &rule);
|
||||
+ r = oci_dispatch(e, table, flags, &rule);
|
||||
if (r < 0)
|
||||
goto fail_rule;
|
||||
|
||||
@@ -1901,7 +1905,7 @@ static int oci_seccomp(const char *name, JsonVariant *v, JsonDispatchFlags flags
|
||||
if (!sc)
|
||||
return json_log(v, flags, SYNTHETIC_ERRNO(ENOMEM), "Couldn't allocate seccomp object.");
|
||||
|
||||
- r = json_dispatch(v, table, oci_unexpected, flags, sc);
|
||||
+ r = oci_dispatch(v, table, flags, sc);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -2026,7 +2030,7 @@ static int oci_linux(const char *name, JsonVariant *v, JsonDispatchFlags flags,
|
||||
{}
|
||||
};
|
||||
|
||||
- return json_dispatch(v, table, oci_unexpected, flags, userdata);
|
||||
+ return oci_dispatch(v, table, flags, userdata);
|
||||
}
|
||||
|
||||
static int oci_hook_timeout(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -2083,7 +2087,7 @@ static int oci_hooks_array(const char *name, JsonVariant *v, JsonDispatchFlags f
|
||||
.timeout = USEC_INFINITY,
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, table, oci_unexpected, flags, new_item);
|
||||
+ r = oci_dispatch(e, table, flags, new_item);
|
||||
if (r < 0) {
|
||||
free(new_item->path);
|
||||
strv_free(new_item->args);
|
||||
@@ -2106,7 +2110,7 @@ static int oci_hooks(const char *name, JsonVariant *v, JsonDispatchFlags flags,
|
||||
{}
|
||||
};
|
||||
|
||||
- return json_dispatch(v, table, oci_unexpected, flags, userdata);
|
||||
+ return oci_dispatch(v, table, flags, userdata);
|
||||
}
|
||||
|
||||
static int oci_annotations(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -2191,7 +2195,7 @@ int oci_load(FILE *f, const char *bundle, Settings **ret) {
|
||||
if (!s->bundle)
|
||||
return log_oom();
|
||||
|
||||
- r = json_dispatch(oci, table, oci_unexpected, 0, s);
|
||||
+ r = oci_dispatch(oci, table, 0, s);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
diff --git a/src/nss-resolve/nss-resolve.c b/src/nss-resolve/nss-resolve.c
|
||||
index 0226752275..350bbffb04 100644
|
||||
--- a/src/nss-resolve/nss-resolve.c
|
||||
+++ b/src/nss-resolve/nss-resolve.c
|
||||
@@ -272,7 +272,7 @@ enum nss_status _nss_resolve_gethostbyname4_r(
|
||||
goto not_found;
|
||||
}
|
||||
|
||||
- r = json_dispatch(rparams, resolve_hostname_reply_dispatch_table, NULL, json_dispatch_flags, &p);
|
||||
+ r = json_dispatch(rparams, resolve_hostname_reply_dispatch_table, json_dispatch_flags, &p);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
if (json_variant_is_blank_object(p.addresses))
|
||||
@@ -282,7 +282,7 @@ enum nss_status _nss_resolve_gethostbyname4_r(
|
||||
JSON_VARIANT_ARRAY_FOREACH(entry, p.addresses) {
|
||||
AddressParameters q = {};
|
||||
|
||||
- r = json_dispatch(entry, address_parameters_dispatch_table, NULL, json_dispatch_flags, &q);
|
||||
+ r = json_dispatch(entry, address_parameters_dispatch_table, json_dispatch_flags, &q);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
@@ -320,7 +320,7 @@ enum nss_status _nss_resolve_gethostbyname4_r(
|
||||
JSON_VARIANT_ARRAY_FOREACH(entry, p.addresses) {
|
||||
AddressParameters q = {};
|
||||
|
||||
- r = json_dispatch(entry, address_parameters_dispatch_table, NULL, json_dispatch_flags, &q);
|
||||
+ r = json_dispatch(entry, address_parameters_dispatch_table, json_dispatch_flags, &q);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
@@ -428,7 +428,7 @@ enum nss_status _nss_resolve_gethostbyname3_r(
|
||||
goto not_found;
|
||||
}
|
||||
|
||||
- r = json_dispatch(rparams, resolve_hostname_reply_dispatch_table, NULL, json_dispatch_flags, &p);
|
||||
+ r = json_dispatch(rparams, resolve_hostname_reply_dispatch_table, json_dispatch_flags, &p);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
if (json_variant_is_blank_object(p.addresses))
|
||||
@@ -438,7 +438,7 @@ enum nss_status _nss_resolve_gethostbyname3_r(
|
||||
JSON_VARIANT_ARRAY_FOREACH(entry, p.addresses) {
|
||||
AddressParameters q = {};
|
||||
|
||||
- r = json_dispatch(entry, address_parameters_dispatch_table, NULL, json_dispatch_flags, &q);
|
||||
+ r = json_dispatch(entry, address_parameters_dispatch_table, json_dispatch_flags, &q);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
@@ -484,7 +484,7 @@ enum nss_status _nss_resolve_gethostbyname3_r(
|
||||
JSON_VARIANT_ARRAY_FOREACH(entry, p.addresses) {
|
||||
AddressParameters q = {};
|
||||
|
||||
- r = json_dispatch(entry, address_parameters_dispatch_table, NULL, json_dispatch_flags, &q);
|
||||
+ r = json_dispatch(entry, address_parameters_dispatch_table, json_dispatch_flags, &q);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
@@ -640,7 +640,7 @@ enum nss_status _nss_resolve_gethostbyaddr2_r(
|
||||
goto not_found;
|
||||
}
|
||||
|
||||
- r = json_dispatch(rparams, resolve_address_reply_dispatch_table, NULL, json_dispatch_flags, &p);
|
||||
+ r = json_dispatch(rparams, resolve_address_reply_dispatch_table, json_dispatch_flags, &p);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
if (json_variant_is_blank_object(p.names))
|
||||
@@ -651,7 +651,7 @@ enum nss_status _nss_resolve_gethostbyaddr2_r(
|
||||
JSON_VARIANT_ARRAY_FOREACH(entry, p.names) {
|
||||
_cleanup_(name_parameters_destroy) NameParameters q = {};
|
||||
|
||||
- r = json_dispatch(entry, name_parameters_dispatch_table, NULL, json_dispatch_flags, &q);
|
||||
+ r = json_dispatch(entry, name_parameters_dispatch_table, json_dispatch_flags, &q);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
@@ -692,7 +692,7 @@ enum nss_status _nss_resolve_gethostbyaddr2_r(
|
||||
JSON_VARIANT_ARRAY_FOREACH(entry, p.names) {
|
||||
_cleanup_(name_parameters_destroy) NameParameters q = {};
|
||||
|
||||
- r = json_dispatch(entry, name_parameters_dispatch_table, NULL, json_dispatch_flags, &q);
|
||||
+ r = json_dispatch(entry, name_parameters_dispatch_table, json_dispatch_flags, &q);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
diff --git a/src/oom/oomd-manager.c b/src/oom/oomd-manager.c
|
||||
index 4a43807b87..66c41c1cfa 100644
|
||||
--- a/src/oom/oomd-manager.c
|
||||
+++ b/src/oom/oomd-manager.c
|
||||
@@ -72,7 +72,7 @@ static int process_managed_oom_message(Manager *m, uid_t uid, JsonVariant *param
|
||||
if (!json_variant_is_object(c))
|
||||
continue;
|
||||
|
||||
- r = json_dispatch(c, dispatch_table, NULL, 0, &message);
|
||||
+ r = json_dispatch(c, dispatch_table, 0, &message);
|
||||
if (r == -ENOMEM)
|
||||
return r;
|
||||
if (r < 0)
|
||||
diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
|
||||
index e22e06d054..0782e48e04 100644
|
||||
--- a/src/resolve/resolvectl.c
|
||||
+++ b/src/resolve/resolvectl.c
|
||||
@@ -2598,7 +2598,7 @@ static int monitor_rkey_from_json(JsonVariant *v, DnsResourceKey **ret_key) {
|
||||
assert(v);
|
||||
assert(ret_key);
|
||||
|
||||
- r = json_dispatch(v, dispatch_table, NULL, 0, NULL);
|
||||
+ r = json_dispatch(v, dispatch_table, 0, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -2697,7 +2697,7 @@ static void monitor_query_dump(JsonVariant *v) {
|
||||
{}
|
||||
};
|
||||
|
||||
- r = json_dispatch(v, dispatch_table, NULL, 0, NULL);
|
||||
+ r = json_dispatch(v, dispatch_table, 0, NULL);
|
||||
if (r < 0)
|
||||
return (void) log_warning("Received malformed monitor message, ignoring.");
|
||||
|
||||
diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c
|
||||
index 8ba5eb9833..1c5ce8315c 100644
|
||||
--- a/src/resolve/resolved-varlink.c
|
||||
+++ b/src/resolve/resolved-varlink.c
|
||||
@@ -312,8 +312,8 @@ static int vl_method_resolve_hostname(Varlink *link, JsonVariant *parameters, Va
|
||||
if (FLAGS_SET(flags, VARLINK_METHOD_ONEWAY))
|
||||
return -EINVAL;
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (p.ifindex < 0)
|
||||
@@ -492,8 +492,8 @@ static int vl_method_resolve_address(Varlink *link, JsonVariant *parameters, Var
|
||||
if (FLAGS_SET(flags, VARLINK_METHOD_ONEWAY))
|
||||
return -EINVAL;
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
if (p.ifindex < 0)
|
||||
diff --git a/src/shared/group-record.c b/src/shared/group-record.c
|
||||
index 2f12ac1c22..728471b2b6 100644
|
||||
--- a/src/shared/group-record.c
|
||||
+++ b/src/shared/group-record.c
|
||||
@@ -50,7 +50,7 @@ static int dispatch_privileged(const char *name, JsonVariant *variant, JsonDispa
|
||||
{},
|
||||
};
|
||||
|
||||
- return json_dispatch(variant, privileged_dispatch_table, NULL, flags, userdata);
|
||||
+ return json_dispatch(variant, privileged_dispatch_table, flags, userdata);
|
||||
}
|
||||
|
||||
static int dispatch_binding(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -78,7 +78,7 @@ static int dispatch_binding(const char *name, JsonVariant *variant, JsonDispatch
|
||||
if (!m)
|
||||
return 0;
|
||||
|
||||
- return json_dispatch(m, binding_dispatch_table, NULL, flags, userdata);
|
||||
+ return json_dispatch(m, binding_dispatch_table, flags, userdata);
|
||||
}
|
||||
|
||||
static int dispatch_per_machine(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -131,7 +131,7 @@ static int dispatch_per_machine(const char *name, JsonVariant *variant, JsonDisp
|
||||
if (!matching)
|
||||
continue;
|
||||
|
||||
- r = json_dispatch(e, per_machine_dispatch_table, NULL, flags, userdata);
|
||||
+ r = json_dispatch(e, per_machine_dispatch_table, flags, userdata);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@@ -164,7 +164,7 @@ static int dispatch_status(const char *name, JsonVariant *variant, JsonDispatchF
|
||||
if (!m)
|
||||
return 0;
|
||||
|
||||
- return json_dispatch(m, status_dispatch_table, NULL, flags, userdata);
|
||||
+ return json_dispatch(m, status_dispatch_table, flags, userdata);
|
||||
}
|
||||
|
||||
static int group_record_augment(GroupRecord *h, JsonDispatchFlags json_flags) {
|
||||
@@ -230,7 +230,7 @@ int group_record_load(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- r = json_dispatch(h->json, group_dispatch_table, NULL, json_flags, h);
|
||||
+ r = json_dispatch(h->json, group_dispatch_table, json_flags, h);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
diff --git a/src/shared/json.c b/src/shared/json.c
|
||||
index eda7bb1956..e346bb0a01 100644
|
||||
--- a/src/shared/json.c
|
||||
+++ b/src/shared/json.c
|
||||
@@ -4227,7 +4227,13 @@ static void *dispatch_userdata(const JsonDispatch *p, void *userdata) {
|
||||
return SIZE_TO_PTR(p->offset);
|
||||
}
|
||||
|
||||
-int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallback bad, JsonDispatchFlags flags, void *userdata) {
|
||||
+int json_dispatch_full(
|
||||
+ JsonVariant *v,
|
||||
+ const JsonDispatch table[],
|
||||
+ JsonDispatchCallback bad,
|
||||
+ JsonDispatchFlags flags,
|
||||
+ void *userdata,
|
||||
+ const char **reterr_bad_field) {
|
||||
size_t m;
|
||||
int r, done = 0;
|
||||
bool *found;
|
||||
@@ -4238,6 +4244,9 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
if (flags & JSON_PERMISSIVE)
|
||||
return 0;
|
||||
|
||||
+ if (reterr_bad_field)
|
||||
+ *reterr_bad_field = NULL;
|
||||
+
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -4260,7 +4269,7 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
streq_ptr(json_variant_string(key), p->name))
|
||||
break;
|
||||
|
||||
- if (p->name) { /* Found a matching entry! :-) */
|
||||
+ if (p->name) { /* Found a matching entry! 🙂 */
|
||||
JsonDispatchFlags merged_flags;
|
||||
|
||||
merged_flags = flags | p->flags;
|
||||
@@ -4275,6 +4284,9 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
if (merged_flags & JSON_PERMISSIVE)
|
||||
continue;
|
||||
|
||||
+ if (reterr_bad_field)
|
||||
+ *reterr_bad_field = p->name;
|
||||
+
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -4284,6 +4296,9 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
if (merged_flags & JSON_PERMISSIVE)
|
||||
continue;
|
||||
|
||||
+ if (reterr_bad_field)
|
||||
+ *reterr_bad_field = p->name;
|
||||
+
|
||||
return -ENOTUNIQ;
|
||||
}
|
||||
|
||||
@@ -4295,13 +4310,16 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
if (merged_flags & JSON_PERMISSIVE)
|
||||
continue;
|
||||
|
||||
+ if (reterr_bad_field)
|
||||
+ *reterr_bad_field = json_variant_string(key);
|
||||
+
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
done ++;
|
||||
|
||||
- } else { /* Didn't find a matching entry! :-( */
|
||||
+ } else { /* Didn't find a matching entry! ☹️ */
|
||||
|
||||
if (bad) {
|
||||
r = bad(json_variant_string(key), value, flags, userdata);
|
||||
@@ -4309,6 +4327,9 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
if (flags & JSON_PERMISSIVE)
|
||||
continue;
|
||||
|
||||
+ if (reterr_bad_field)
|
||||
+ *reterr_bad_field = json_variant_string(key);
|
||||
+
|
||||
return r;
|
||||
} else
|
||||
done ++;
|
||||
@@ -4319,6 +4340,9 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
if (flags & JSON_PERMISSIVE)
|
||||
continue;
|
||||
|
||||
+ if (reterr_bad_field)
|
||||
+ *reterr_bad_field = json_variant_string(key);
|
||||
+
|
||||
return -EADDRNOTAVAIL;
|
||||
}
|
||||
}
|
||||
@@ -4333,6 +4357,9 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
if ((merged_flags & JSON_PERMISSIVE))
|
||||
continue;
|
||||
|
||||
+ if (reterr_bad_field)
|
||||
+ *reterr_bad_field = p->name;
|
||||
+
|
||||
return -ENXIO;
|
||||
}
|
||||
}
|
||||
@@ -4340,6 +4367,14 @@ int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallba
|
||||
return done;
|
||||
}
|
||||
|
||||
+int json_dispatch(
|
||||
+ JsonVariant *v,
|
||||
+ const JsonDispatch table[],
|
||||
+ JsonDispatchFlags flags,
|
||||
+ void *userdata) {
|
||||
+ return json_dispatch_full(v, table, NULL, flags, userdata, NULL);
|
||||
+}
|
||||
+
|
||||
int json_dispatch_boolean(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
bool *b = ASSERT_PTR(userdata);
|
||||
|
||||
diff --git a/src/shared/json.h b/src/shared/json.h
|
||||
index 5993e05299..e62c71a249 100644
|
||||
--- a/src/shared/json.h
|
||||
+++ b/src/shared/json.h
|
||||
@@ -363,7 +363,8 @@ typedef struct JsonDispatch {
|
||||
JsonDispatchFlags flags;
|
||||
} JsonDispatch;
|
||||
|
||||
-int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallback bad, JsonDispatchFlags flags, void *userdata);
|
||||
+int json_dispatch_full(JsonVariant *v, const JsonDispatch table[], JsonDispatchCallback bad, JsonDispatchFlags flags, void *userdata, const char **reterr_bad_field);
|
||||
+int json_dispatch(JsonVariant *v, const JsonDispatch table[], JsonDispatchFlags flags, void *userdata);
|
||||
|
||||
int json_dispatch_string(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
int json_dispatch_const_string(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
diff --git a/src/shared/user-record.c b/src/shared/user-record.c
|
||||
index 84cbdb1d30..1c37444349 100644
|
||||
--- a/src/shared/user-record.c
|
||||
+++ b/src/shared/user-record.c
|
||||
@@ -653,7 +653,7 @@ static int dispatch_secret(const char *name, JsonVariant *variant, JsonDispatchF
|
||||
{},
|
||||
};
|
||||
|
||||
- return json_dispatch(variant, secret_dispatch_table, NULL, flags, userdata);
|
||||
+ return json_dispatch(variant, secret_dispatch_table, flags, userdata);
|
||||
}
|
||||
|
||||
static int dispatch_pkcs11_uri(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -782,7 +782,7 @@ static int dispatch_pkcs11_key(const char *name, JsonVariant *variant, JsonDispa
|
||||
k = h->pkcs11_encrypted_key + h->n_pkcs11_encrypted_key;
|
||||
*k = (Pkcs11EncryptedKey) {};
|
||||
|
||||
- r = json_dispatch(e, pkcs11_key_dispatch_table, NULL, flags, k);
|
||||
+ r = json_dispatch(e, pkcs11_key_dispatch_table, flags, k);
|
||||
if (r < 0) {
|
||||
pkcs11_encrypted_key_done(k);
|
||||
return r;
|
||||
@@ -916,7 +916,7 @@ static int dispatch_fido2_hmac_salt(const char *name, JsonVariant *variant, Json
|
||||
.client_pin = -1,
|
||||
};
|
||||
|
||||
- r = json_dispatch(e, fido2_hmac_salt_dispatch_table, NULL, flags, k);
|
||||
+ r = json_dispatch(e, fido2_hmac_salt_dispatch_table, flags, k);
|
||||
if (r < 0) {
|
||||
fido2_hmac_salt_done(k);
|
||||
return r;
|
||||
@@ -956,7 +956,7 @@ static int dispatch_recovery_key(const char *name, JsonVariant *variant, JsonDis
|
||||
k = h->recovery_key + h->n_recovery_key;
|
||||
*k = (RecoveryKey) {};
|
||||
|
||||
- r = json_dispatch(e, recovery_key_dispatch_table, NULL, flags, k);
|
||||
+ r = json_dispatch(e, recovery_key_dispatch_table, flags, k);
|
||||
if (r < 0) {
|
||||
recovery_key_done(k);
|
||||
return r;
|
||||
@@ -1038,7 +1038,7 @@ static int dispatch_privileged(const char *name, JsonVariant *variant, JsonDispa
|
||||
{},
|
||||
};
|
||||
|
||||
- return json_dispatch(variant, privileged_dispatch_table, NULL, flags, userdata);
|
||||
+ return json_dispatch(variant, privileged_dispatch_table, flags, userdata);
|
||||
}
|
||||
|
||||
static int dispatch_binding(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
@@ -1077,7 +1077,7 @@ static int dispatch_binding(const char *name, JsonVariant *variant, JsonDispatch
|
||||
if (!m)
|
||||
return 0;
|
||||
|
||||
- return json_dispatch(m, binding_dispatch_table, NULL, flags, userdata);
|
||||
+ return json_dispatch(m, binding_dispatch_table, flags, userdata);
|
||||
}
|
||||
|
||||
int per_machine_id_match(JsonVariant *ids, JsonDispatchFlags flags) {
|
||||
@@ -1276,7 +1276,7 @@ static int dispatch_per_machine(const char *name, JsonVariant *variant, JsonDisp
|
||||
if (!matching)
|
||||
continue;
|
||||
|
||||
- r = json_dispatch(e, per_machine_dispatch_table, NULL, flags, userdata);
|
||||
+ r = json_dispatch(e, per_machine_dispatch_table, flags, userdata);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@@ -1325,7 +1325,7 @@ static int dispatch_status(const char *name, JsonVariant *variant, JsonDispatchF
|
||||
if (!m)
|
||||
return 0;
|
||||
|
||||
- return json_dispatch(m, status_dispatch_table, NULL, flags, userdata);
|
||||
+ return json_dispatch(m, status_dispatch_table, flags, userdata);
|
||||
}
|
||||
|
||||
int user_record_build_image_path(UserStorage storage, const char *user_name_and_realm, char **ret) {
|
||||
@@ -1615,7 +1615,7 @@ int user_record_load(UserRecord *h, JsonVariant *v, UserRecordLoadFlags load_fla
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
- r = json_dispatch(h->json, user_dispatch_table, NULL, json_flags, h);
|
||||
+ r = json_dispatch(h->json, user_dispatch_table, json_flags, h);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
diff --git a/src/shared/userdb.c b/src/shared/userdb.c
|
||||
index 3f64ec8942..4ea4ac4d72 100644
|
||||
--- a/src/shared/userdb.c
|
||||
+++ b/src/shared/userdb.c
|
||||
@@ -189,7 +189,7 @@ static int userdb_on_query_reply(
|
||||
|
||||
assert_se(!iterator->found_user);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &user_data);
|
||||
+ r = json_dispatch(parameters, dispatch_table, 0, &user_data);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
@@ -246,7 +246,7 @@ static int userdb_on_query_reply(
|
||||
|
||||
assert_se(!iterator->found_group);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &group_data);
|
||||
+ r = json_dispatch(parameters, dispatch_table, 0, &group_data);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
@@ -302,7 +302,7 @@ static int userdb_on_query_reply(
|
||||
assert(!iterator->found_user_name);
|
||||
assert(!iterator->found_group_name);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &membership_data);
|
||||
+ r = json_dispatch(parameters, dispatch_table, 0, &membership_data);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
diff --git a/src/shared/varlink.c b/src/shared/varlink.c
|
||||
index 4d2cfee491..49593aa05a 100644
|
||||
--- a/src/shared/varlink.c
|
||||
+++ b/src/shared/varlink.c
|
||||
@@ -1771,6 +1771,26 @@ int varlink_notifyb(Varlink *v, ...) {
|
||||
return varlink_notify(v, parameters);
|
||||
}
|
||||
|
||||
+int varlink_dispatch(Varlink *v, JsonVariant *parameters, const JsonDispatch table[], void *userdata) {
|
||||
+ const char *bad_field = NULL;
|
||||
+ int r;
|
||||
+
|
||||
+ assert_return(v, -EINVAL);
|
||||
+ assert_return(table, -EINVAL);
|
||||
+
|
||||
+ /* A wrapper around json_dispatch_full() that returns a nice InvalidParameter error if we hit a problem with some field. */
|
||||
+
|
||||
+ r = json_dispatch_full(parameters, table, /* bad= */ NULL, /* flags= */ 0, userdata, &bad_field);
|
||||
+ if (r < 0) {
|
||||
+ if (bad_field)
|
||||
+ return varlink_errorb(v, VARLINK_ERROR_INVALID_PARAMETER,
|
||||
+ JSON_BUILD_OBJECT(JSON_BUILD_PAIR("parameter", JSON_BUILD_STRING(bad_field))));
|
||||
+ return r;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
int varlink_bind_reply(Varlink *v, VarlinkReply callback) {
|
||||
assert_return(v, -EINVAL);
|
||||
|
||||
diff --git a/src/shared/varlink.h b/src/shared/varlink.h
|
||||
index 9518cd9098..e51ccd9107 100644
|
||||
--- a/src/shared/varlink.h
|
||||
+++ b/src/shared/varlink.h
|
||||
@@ -107,6 +107,9 @@ int varlink_error_errno(Varlink *v, int error);
|
||||
int varlink_notify(Varlink *v, JsonVariant *parameters);
|
||||
int varlink_notifyb(Varlink *v, ...);
|
||||
|
||||
+/* Parsing incoming data via json_dispatch() and generate a nice error on parse errors */
|
||||
+int varlink_dispatch(Varlink *v, JsonVariant *parameters, const JsonDispatch table[], void *userdata);
|
||||
+
|
||||
/* Bind a disconnect, reply or timeout callback */
|
||||
int varlink_bind_reply(Varlink *v, VarlinkReply reply);
|
||||
|
||||
diff --git a/src/userdb/userwork.c b/src/userdb/userwork.c
|
||||
index 21a869df1b..569dba3285 100644
|
||||
--- a/src/userdb/userwork.c
|
||||
+++ b/src/userdb/userwork.c
|
||||
@@ -147,8 +147,8 @@ static int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, Var
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
r = userdb_flags_from_service(link, p.service, &userdb_flags);
|
||||
@@ -283,8 +283,8 @@ static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, Va
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
r = userdb_flags_from_service(link, p.service, &userdb_flags);
|
||||
@@ -366,8 +366,8 @@ static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, Var
|
||||
|
||||
assert(parameters);
|
||||
|
||||
- r = json_dispatch(parameters, dispatch_table, NULL, 0, &p);
|
||||
- if (r < 0)
|
||||
+ r = varlink_dispatch(link, parameters, dispatch_table, &p);
|
||||
+ if (r != 0)
|
||||
return r;
|
||||
|
||||
r = userdb_flags_from_service(link, p.service, &userdb_flags);
|
285
SOURCES/1102-json-add-json_dispatch_const_user_group_name.patch
Normal file
285
SOURCES/1102-json-add-json_dispatch_const_user_group_name.patch
Normal file
@ -0,0 +1,285 @@
|
||||
From ea5380d15cd5e479b45a5ea18d36feea665ae6be Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Mon, 30 Sep 2024 17:33:05 +0200
|
||||
Subject: [PATCH] json: add json_dispatch_const_user_group_name()
|
||||
|
||||
This is the same as json_dispatch_user_group_name() but fills in the
|
||||
string as "const char*" to the JSON field. Or in other words, it's what
|
||||
sd_json_dispatch_const_string() is to sd_json_dispatch_string().
|
||||
|
||||
Note this drops the SD_JSON_STRICT flags from various dispatch tables
|
||||
for these fields, and replaces this by SD_JSON_RELAX, i.e. the opposite
|
||||
behaviour. As #34558 correctly suggests we should validate user names
|
||||
in lookup functions using the lax rules, rather than the strict ones,
|
||||
since clients not knowing the rules might ask us for arbitrary
|
||||
resolution.
|
||||
|
||||
(SD_JSON_RELAX internally translates to valid_user_group_name() with the
|
||||
VALID_USER_RELAX flag).
|
||||
|
||||
See: #34558
|
||||
(cherry picked from commit 0376ef36a1ff3768ad0c833f215064e34b40b86c)
|
||||
|
||||
Related: RHEL-55266
|
||||
---
|
||||
src/core/core-varlink.c | 18 +++++++++---------
|
||||
src/home/homed-varlink.c | 21 +++++++++++----------
|
||||
src/machine/machined-varlink.c | 18 +++++++++---------
|
||||
src/shared/json.c | 21 ++++++++++++++++++++-
|
||||
src/shared/json.h | 1 +
|
||||
src/userdb/userwork.c | 21 +++++++++++----------
|
||||
6 files changed, 61 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/src/core/core-varlink.c b/src/core/core-varlink.c
|
||||
index 776a3eebab..d9457cfecc 100644
|
||||
--- a/src/core/core-varlink.c
|
||||
+++ b/src/core/core-varlink.c
|
||||
@@ -263,9 +263,9 @@ static int manager_varlink_send_managed_oom_initial(Manager *m) {
|
||||
static int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -370,9 +370,9 @@ static bool group_match_lookup_parameters(LookupParameters *p, const char *name,
|
||||
static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -453,9 +453,9 @@ static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, Va
|
||||
static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), JSON_SAFE },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
diff --git a/src/home/homed-varlink.c b/src/home/homed-varlink.c
|
||||
index 1cef25f563..7b769fd189 100644
|
||||
--- a/src/home/homed-varlink.c
|
||||
+++ b/src/home/homed-varlink.c
|
||||
@@ -1,12 +1,13 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
+#include "format-util.h"
|
||||
#include "group-record.h"
|
||||
#include "homed-varlink.h"
|
||||
+#include "json.h"
|
||||
#include "strv.h"
|
||||
#include "user-record-util.h"
|
||||
#include "user-record.h"
|
||||
#include "user-util.h"
|
||||
-#include "format-util.h"
|
||||
|
||||
typedef struct LookupParameters {
|
||||
const char *user_name;
|
||||
@@ -73,9 +74,9 @@ static bool home_user_match_lookup_parameters(LookupParameters *p, Home *h) {
|
||||
int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -188,9 +189,9 @@ static bool home_group_match_lookup_parameters(LookupParameters *p, Home *h) {
|
||||
int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -257,9 +258,9 @@ int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, VarlinkMe
|
||||
int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), JSON_SAFE },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c
|
||||
index 8b230b0078..e1a5b1b2ab 100644
|
||||
--- a/src/machine/machined-varlink.c
|
||||
+++ b/src/machine/machined-varlink.c
|
||||
@@ -138,9 +138,9 @@ static int user_lookup_name(Manager *m, const char *name, uid_t *ret_uid, char *
|
||||
static int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -303,9 +303,9 @@ static int group_lookup_name(Manager *m, const char *name, gid_t *ret_gid, char
|
||||
static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -355,9 +355,9 @@ static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, Va
|
||||
static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), JSON_SAFE },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), JSON_SAFE },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
diff --git a/src/shared/json.c b/src/shared/json.c
|
||||
index e346bb0a01..dc3b79c3f5 100644
|
||||
--- a/src/shared/json.c
|
||||
+++ b/src/shared/json.c
|
||||
@@ -4613,7 +4613,7 @@ int json_dispatch_uid_gid(const char *name, JsonVariant *variant, JsonDispatchFl
|
||||
}
|
||||
|
||||
int json_dispatch_user_group_name(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
- char **s = userdata;
|
||||
+ char **s = ASSERT_PTR(userdata);
|
||||
const char *n;
|
||||
int r;
|
||||
|
||||
@@ -4636,6 +4636,25 @@ int json_dispatch_user_group_name(const char *name, JsonVariant *variant, JsonDi
|
||||
return 0;
|
||||
}
|
||||
|
||||
+int json_dispatch_const_user_group_name(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
+ const char **s = ASSERT_PTR(userdata), *n;
|
||||
+
|
||||
+ if (json_variant_is_null(variant)) {
|
||||
+ *s = NULL;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (!json_variant_is_string(variant))
|
||||
+ return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a string.", strna(name));
|
||||
+
|
||||
+ n = json_variant_string(variant);
|
||||
+ if (!valid_user_group_name(n, FLAGS_SET(flags, JSON_RELAX) ? VALID_USER_RELAX : 0))
|
||||
+ return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a valid user/group name.", strna(name));
|
||||
+
|
||||
+ *s = n;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
int json_dispatch_id128(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata) {
|
||||
sd_id128_t *uuid = userdata;
|
||||
int r;
|
||||
diff --git a/src/shared/json.h b/src/shared/json.h
|
||||
index e62c71a249..e353b7bb19 100644
|
||||
--- a/src/shared/json.h
|
||||
+++ b/src/shared/json.h
|
||||
@@ -380,6 +380,7 @@ int json_dispatch_uint16(const char *name, JsonVariant *variant, JsonDispatchFla
|
||||
int json_dispatch_int16(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
int json_dispatch_uid_gid(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
int json_dispatch_user_group_name(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
+int json_dispatch_const_user_group_name(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
int json_dispatch_id128(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
int json_dispatch_unsupported(const char *name, JsonVariant *variant, JsonDispatchFlags flags, void *userdata);
|
||||
|
||||
diff --git a/src/userdb/userwork.c b/src/userdb/userwork.c
|
||||
index 569dba3285..7c8b49c588 100644
|
||||
--- a/src/userdb/userwork.c
|
||||
+++ b/src/userdb/userwork.c
|
||||
@@ -9,12 +9,13 @@
|
||||
#include "fd-util.h"
|
||||
#include "group-record.h"
|
||||
#include "io-util.h"
|
||||
+#include "json.h"
|
||||
#include "main-func.h"
|
||||
#include "process-util.h"
|
||||
#include "strv.h"
|
||||
#include "time-util.h"
|
||||
-#include "user-record-nss.h"
|
||||
#include "user-record.h"
|
||||
+#include "user-record-nss.h"
|
||||
#include "user-util.h"
|
||||
#include "userdb.h"
|
||||
#include "varlink.h"
|
||||
@@ -131,9 +132,9 @@ static int userdb_flags_from_service(Varlink *link, const char *service, UserDBF
|
||||
static int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), 0 },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "uid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, uid), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -267,9 +268,9 @@ static int build_group_json(Varlink *link, GroupRecord *gr, JsonVariant **ret) {
|
||||
static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), 0 },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "gid", JSON_VARIANT_UNSIGNED, json_dispatch_uid_gid, offsetof(LookupParameters, gid), 0 },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -352,9 +353,9 @@ static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, Va
|
||||
|
||||
static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
- { "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, user_name), 0 },
|
||||
- { "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, group_name), 0 },
|
||||
- { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
+ { "userName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, user_name), JSON_RELAX },
|
||||
+ { "groupName", JSON_VARIANT_STRING, json_dispatch_const_user_group_name, offsetof(LookupParameters, group_name), JSON_RELAX },
|
||||
+ { "service", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(LookupParameters, service), 0 },
|
||||
{}
|
||||
};
|
||||
|
@ -0,0 +1,137 @@
|
||||
From 3c1844015ff471ca28b7359624323948cc1303f5 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 15 Oct 2024 13:40:24 +0200
|
||||
Subject: [PATCH] sd-varlink: add new sd_varlink_error_is_invalid_parameter()
|
||||
helper
|
||||
|
||||
(cherry picked from commit 12641ecd67875b7bf18db06c0afa40c37d804750)
|
||||
|
||||
Related: RHEL-55266
|
||||
---
|
||||
src/shared/varlink.c | 20 +++++++++++++++
|
||||
src/shared/varlink.h | 2 ++
|
||||
src/test/test-varlink.c | 56 ++++++++++++++++++++++++++++++++++++++++-
|
||||
3 files changed, 77 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/varlink.c b/src/shared/varlink.c
|
||||
index 49593aa05a..0f5db09cea 100644
|
||||
--- a/src/shared/varlink.c
|
||||
+++ b/src/shared/varlink.c
|
||||
@@ -2687,3 +2687,23 @@ int varlink_server_deserialize_one(VarlinkServer *s, const char *value, FDSet *f
|
||||
LIST_PREPEND(sockets, s->sockets, TAKE_PTR(ss));
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+int varlink_error_is_invalid_parameter(const char *error, JsonVariant *parameter, const char *name) {
|
||||
+
|
||||
+ /* Returns true if the specified error result is an invalid parameter error for the parameter 'name' */
|
||||
+
|
||||
+ if (!streq_ptr(error, VARLINK_ERROR_INVALID_PARAMETER))
|
||||
+ return false;
|
||||
+
|
||||
+ if (!name)
|
||||
+ return true;
|
||||
+
|
||||
+ if (!json_variant_is_object(parameter))
|
||||
+ return false;
|
||||
+
|
||||
+ JsonVariant *e = json_variant_by_key(parameter, "parameter");
|
||||
+ if (!e || !json_variant_is_string(e))
|
||||
+ return false;
|
||||
+
|
||||
+ return streq(json_variant_string(e), name);
|
||||
+}
|
||||
diff --git a/src/shared/varlink.h b/src/shared/varlink.h
|
||||
index e51ccd9107..a4170737db 100644
|
||||
--- a/src/shared/varlink.h
|
||||
+++ b/src/shared/varlink.h
|
||||
@@ -161,6 +161,8 @@ unsigned varlink_server_current_connections(VarlinkServer *s);
|
||||
|
||||
int varlink_server_set_description(VarlinkServer *s, const char *description);
|
||||
|
||||
+int varlink_error_is_invalid_parameter(const char *error, JsonVariant *parameter, const char *name);
|
||||
+
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(Varlink *, varlink_unref);
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(Varlink *, varlink_close_unref);
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(Varlink *, varlink_flush_close_unref);
|
||||
diff --git a/src/test/test-varlink.c b/src/test/test-varlink.c
|
||||
index 634baf1ae8..13f772cf4e 100644
|
||||
--- a/src/test/test-varlink.c
|
||||
+++ b/src/test/test-varlink.c
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "json.h"
|
||||
#include "rm-rf.h"
|
||||
#include "strv.h"
|
||||
+#include "tests.h"
|
||||
#include "tmpfile-util.h"
|
||||
#include "user-util.h"
|
||||
#include "varlink.h"
|
||||
@@ -184,7 +185,7 @@ static int block_fd_handler(sd_event_source *s, int fd, uint32_t revents, void *
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int main(int argc, char *argv[]) {
|
||||
+TEST(chat) {
|
||||
_cleanup_(sd_event_source_unrefp) sd_event_source *block_event = NULL;
|
||||
_cleanup_(varlink_server_unrefp) VarlinkServer *s = NULL;
|
||||
_cleanup_(varlink_flush_close_unrefp) Varlink *c = NULL;
|
||||
@@ -234,6 +235,59 @@ int main(int argc, char *argv[]) {
|
||||
assert_se(sd_event_loop(e) >= 0);
|
||||
|
||||
assert_se(pthread_join(t, NULL) == 0);
|
||||
+}
|
||||
+
|
||||
+static int method_invalid(Varlink *link, JsonVariant *parameters, VarlinkMethodFlags flags, void *userdata) {
|
||||
+ int r;
|
||||
+
|
||||
+ JsonDispatch table[] = {
|
||||
+ { "iexist", JSON_VARIANT_STRING, json_dispatch_const_string, 0, JSON_MANDATORY },
|
||||
+ {}
|
||||
+ };
|
||||
+
|
||||
+ const char *p = NULL;
|
||||
+
|
||||
+ r = varlink_dispatch(link, parameters, table, &p);
|
||||
+ if (r != 0)
|
||||
+ return r;
|
||||
|
||||
+ assert_not_reached();
|
||||
+}
|
||||
+
|
||||
+static int reply_invalid(Varlink *link, JsonVariant *parameters, const char *error_id, VarlinkReplyFlags flags, void *userdata) {
|
||||
+ assert(varlink_error_is_invalid_parameter(error_id, parameters, "idontexist"));
|
||||
+ assert(sd_event_exit(varlink_get_event(link), EXIT_SUCCESS) >= 0);
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+TEST(invalid_parameter) {
|
||||
+ _cleanup_(sd_event_unrefp) sd_event *e = NULL;
|
||||
+ assert_se(sd_event_default(&e) >= 0);
|
||||
+
|
||||
+ _cleanup_(varlink_server_unrefp) VarlinkServer *s = NULL;
|
||||
+ assert_se(varlink_server_new(&s, 0) >= 0);
|
||||
+
|
||||
+ assert_se(varlink_server_attach_event(s, e, 0) >= 0);
|
||||
+
|
||||
+ assert_se(varlink_server_bind_method(s, "foo.mytest.Invalid", method_invalid) >= 0);
|
||||
+
|
||||
+ int connfd[2];
|
||||
+ assert_se(socketpair(AF_UNIX, SOCK_STREAM|SOCK_NONBLOCK|SOCK_CLOEXEC, 0, connfd) >= 0);
|
||||
+ assert_se(varlink_server_add_connection(s, connfd[0], /* ret= */ NULL) >= 0);
|
||||
+
|
||||
+ _cleanup_(varlink_unrefp) Varlink *c = NULL;
|
||||
+ assert_se(varlink_connect_fd(&c, connfd[1]) >= 0);
|
||||
+
|
||||
+ assert_se(varlink_attach_event(c, e, 0) >= 0);
|
||||
+
|
||||
+ assert_se(varlink_bind_reply(c, reply_invalid) >= 0);
|
||||
+
|
||||
+ assert_se(varlink_invokeb(c, "foo.mytest.Invalid", JSON_BUILD_OBJECT(
|
||||
+ JSON_BUILD_PAIR_STRING("iexist", "foo"),
|
||||
+ JSON_BUILD_PAIR_STRING("idontexist", "bar"))) >= 0);
|
||||
+
|
||||
+
|
||||
+ assert_se(sd_event_loop(e) >= 0);
|
||||
+}
|
||||
+
|
||||
+DEFINE_TEST_MAIN(LOG_DEBUG);
|
@ -0,0 +1,39 @@
|
||||
From ba1ea0689633b7e61f50277dcfdec80ff50eb746 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 15 Oct 2024 13:59:57 +0200
|
||||
Subject: [PATCH] userdb: return ESRCH if userdb service refuses a user/group
|
||||
name as invalid
|
||||
|
||||
if a userdb service refuse a user/group name as invalid, let's turn this
|
||||
into ESRCH client-side following that there definitely is no user/group
|
||||
record for a completely invalid user/group name.
|
||||
|
||||
Replaces: #34558
|
||||
(cherry picked from commit 69cc4ee134f420dcdd6aac08446bd852d8739694)
|
||||
|
||||
Resolves: RHEL-55266
|
||||
---
|
||||
src/shared/userdb.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/shared/userdb.c b/src/shared/userdb.c
|
||||
index 4ea4ac4d72..ceb285c8d8 100644
|
||||
--- a/src/shared/userdb.c
|
||||
+++ b/src/shared/userdb.c
|
||||
@@ -159,9 +159,15 @@ static int userdb_on_query_reply(
|
||||
if (error_id) {
|
||||
log_debug("Got lookup error: %s", error_id);
|
||||
|
||||
+ /* Convert various forms of record not found into -ESRCH, since NSS typically doesn't care,
|
||||
+ * about the details. Note that if a userName specification is refused as invalid parameter,
|
||||
+ * we also turn this into -ESRCH following the logic that there cannot be a user record for a
|
||||
+ * completely invalid user name. */
|
||||
if (STR_IN_SET(error_id,
|
||||
"io.systemd.UserDatabase.NoRecordFound",
|
||||
- "io.systemd.UserDatabase.ConflictingRecordFound"))
|
||||
+ "io.systemd.UserDatabase.ConflictingRecordFound") ||
|
||||
+ varlink_error_is_invalid_parameter(error_id, parameters, "userName") ||
|
||||
+ varlink_error_is_invalid_parameter(error_id, parameters, "groupName"))
|
||||
r = -ESRCH;
|
||||
else if (streq(error_id, "io.systemd.UserDatabase.ServiceNotAvailable"))
|
||||
r = -EHOSTDOWN;
|
274
SOURCES/1105-test-rename-assert.sh-to-util.sh.patch
Normal file
274
SOURCES/1105-test-rename-assert.sh-to-util.sh.patch
Normal file
@ -0,0 +1,274 @@
|
||||
From 372af57b902d95dfbc1b5f785010862e4b1eb396 Mon Sep 17 00:00:00 2001
|
||||
From: Frantisek Sumsal <frantisek@sumsal.cz>
|
||||
Date: Tue, 16 May 2023 19:09:13 +0200
|
||||
Subject: [PATCH] test: rename assert.sh to util.sh
|
||||
|
||||
So we can extend it with additional utility functions without making it
|
||||
confusing.
|
||||
|
||||
No functional change.
|
||||
|
||||
(cherry picked from commit cb153b4fe9046590eb8efba66b67a0db899cb96d)
|
||||
|
||||
Related: RHEL-55301
|
||||
---
|
||||
test/units/testsuite-17.02.sh | 4 ++--
|
||||
test/units/testsuite-17.07.sh | 4 ++--
|
||||
test/units/testsuite-17.08.sh | 4 ++--
|
||||
test/units/testsuite-17.09.sh | 4 ++--
|
||||
test/units/testsuite-17.12.sh | 4 ++--
|
||||
test/units/testsuite-26.sh | 4 ++--
|
||||
test/units/testsuite-35.sh | 4 ++--
|
||||
test/units/testsuite-45.sh | 4 ++--
|
||||
test/units/testsuite-58.sh | 4 ++--
|
||||
test/units/testsuite-60.sh | 4 ++--
|
||||
test/units/testsuite-65.sh | 4 ++--
|
||||
test/units/testsuite-71.sh | 4 ++--
|
||||
test/units/testsuite-73.sh | 4 ++--
|
||||
test/units/testsuite-75.sh | 4 ++--
|
||||
test/units/testsuite-76.sh | 4 ++--
|
||||
test/units/{assert.sh => util.sh} | 2 +-
|
||||
16 files changed, 31 insertions(+), 31 deletions(-)
|
||||
rename test/units/{assert.sh => util.sh} (95%)
|
||||
|
||||
diff --git a/test/units/testsuite-17.02.sh b/test/units/testsuite-17.02.sh
|
||||
index 82f9fd1f62..22b1552653 100755
|
||||
--- a/test/units/testsuite-17.02.sh
|
||||
+++ b/test/units/testsuite-17.02.sh
|
||||
@@ -7,8 +7,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
mkdir -p /run/udev/rules.d/
|
||||
|
||||
diff --git a/test/units/testsuite-17.07.sh b/test/units/testsuite-17.07.sh
|
||||
index 549107af10..50dc16b14b 100755
|
||||
--- a/test/units/testsuite-17.07.sh
|
||||
+++ b/test/units/testsuite-17.07.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
wait_service_active() {(
|
||||
set +ex
|
||||
diff --git a/test/units/testsuite-17.08.sh b/test/units/testsuite-17.08.sh
|
||||
index f740b337f7..3502538fd4 100755
|
||||
--- a/test/units/testsuite-17.08.sh
|
||||
+++ b/test/units/testsuite-17.08.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
# This is a test for issue #24518.
|
||||
|
||||
diff --git a/test/units/testsuite-17.09.sh b/test/units/testsuite-17.09.sh
|
||||
index 01ac5f1709..c3914d9356 100755
|
||||
--- a/test/units/testsuite-17.09.sh
|
||||
+++ b/test/units/testsuite-17.09.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
# This is a test for issue #24987.
|
||||
|
||||
diff --git a/test/units/testsuite-17.12.sh b/test/units/testsuite-17.12.sh
|
||||
index df74d356ee..ccc91bfe46 100755
|
||||
--- a/test/units/testsuite-17.12.sh
|
||||
+++ b/test/units/testsuite-17.12.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
create_link_file() {
|
||||
name=${1?}
|
||||
diff --git a/test/units/testsuite-26.sh b/test/units/testsuite-26.sh
|
||||
index debee91dde..340e02a561 100755
|
||||
--- a/test/units/testsuite-26.sh
|
||||
+++ b/test/units/testsuite-26.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
: >/failed
|
||||
|
||||
diff --git a/test/units/testsuite-35.sh b/test/units/testsuite-35.sh
|
||||
index 1863c535a4..18c50279e2 100755
|
||||
--- a/test/units/testsuite-35.sh
|
||||
+++ b/test/units/testsuite-35.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
cleanup_test_user() (
|
||||
set +ex
|
||||
diff --git a/test/units/testsuite-45.sh b/test/units/testsuite-45.sh
|
||||
index 7e757e4b00..c85e17da7b 100755
|
||||
--- a/test/units/testsuite-45.sh
|
||||
+++ b/test/units/testsuite-45.sh
|
||||
@@ -4,8 +4,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
restore_timezone() {
|
||||
if [[ -f /tmp/timezone.bak ]]; then
|
||||
diff --git a/test/units/testsuite-58.sh b/test/units/testsuite-58.sh
|
||||
index f41069ee04..850111b319 100755
|
||||
--- a/test/units/testsuite-58.sh
|
||||
+++ b/test/units/testsuite-58.sh
|
||||
@@ -8,8 +8,8 @@ if ! command -v systemd-repart &>/dev/null; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
export SYSTEMD_LOG_LEVEL=debug
|
||||
export PAGER=cat
|
||||
diff --git a/test/units/testsuite-60.sh b/test/units/testsuite-60.sh
|
||||
index a29364568d..920f5019d2 100755
|
||||
--- a/test/units/testsuite-60.sh
|
||||
+++ b/test/units/testsuite-60.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
teardown_test_dependencies() (
|
||||
set +eux
|
||||
diff --git a/test/units/testsuite-65.sh b/test/units/testsuite-65.sh
|
||||
index 0fb143bde7..4e12511a1f 100755
|
||||
--- a/test/units/testsuite-65.sh
|
||||
+++ b/test/units/testsuite-65.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
# shellcheck disable=SC2016
|
||||
set -eux
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
# On RHEL9 we don't have the `util.sh` script, so we need to define the `runas` function here
|
||||
runas() {
|
||||
diff --git a/test/units/testsuite-71.sh b/test/units/testsuite-71.sh
|
||||
index 2382cccb3a..49efa4f982 100755
|
||||
--- a/test/units/testsuite-71.sh
|
||||
+++ b/test/units/testsuite-71.sh
|
||||
@@ -4,8 +4,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
restore_hostname() {
|
||||
if [[ -e /tmp/hostname.bak ]]; then
|
||||
diff --git a/test/units/testsuite-73.sh b/test/units/testsuite-73.sh
|
||||
index f9e2dce1bf..279507af31 100755
|
||||
--- a/test/units/testsuite-73.sh
|
||||
+++ b/test/units/testsuite-73.sh
|
||||
@@ -4,8 +4,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
enable_debug() {
|
||||
mkdir -p /run/systemd/system/systemd-localed.service.d
|
||||
diff --git a/test/units/testsuite-75.sh b/test/units/testsuite-75.sh
|
||||
index ddd86d09bb..370a91863f 100755
|
||||
--- a/test/units/testsuite-75.sh
|
||||
+++ b/test/units/testsuite-75.sh
|
||||
@@ -11,8 +11,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
: >/failed
|
||||
|
||||
diff --git a/test/units/testsuite-76.sh b/test/units/testsuite-76.sh
|
||||
index cb571f8b97..0436afec65 100755
|
||||
--- a/test/units/testsuite-76.sh
|
||||
+++ b/test/units/testsuite-76.sh
|
||||
@@ -3,8 +3,8 @@
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
-# shellcheck source=test/units/assert.sh
|
||||
-. "$(dirname "$0")"/assert.sh
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
|
||||
export SYSTEMD_LOG_LEVEL=debug
|
||||
|
||||
diff --git a/test/units/assert.sh b/test/units/util.sh
|
||||
similarity index 95%
|
||||
rename from test/units/assert.sh
|
||||
rename to test/units/util.sh
|
||||
index 2f4d93ab8c..00b8c5e393 100755
|
||||
--- a/test/units/assert.sh
|
||||
+++ b/test/units/util.sh
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
-# utility functions for shell tests
|
||||
+# Utility functions for shell tests
|
||||
|
||||
assert_true() {(
|
||||
set +ex
|
@ -0,0 +1,89 @@
|
||||
From 14a2f6dd75ef4eefd0a7791a7c086e72a141bc69 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Phibel <rphibel@googlemail.com>
|
||||
Date: Tue, 23 May 2023 16:09:40 +0200
|
||||
Subject: [PATCH] core: Don't GC unit if it is in cgroup_empty_queue
|
||||
|
||||
The gc_unit_queue is dispatched before the cgroup_empty_queue. Because
|
||||
of this, when we enter in on_cgroup_empty_event, the unit in
|
||||
cgroup_empty_queue may already have been freed and we don't clean up the
|
||||
corresponding cgroup. With this change, we prevent the unit from being
|
||||
garbage collected if it is in the cgroup_empty_queue.
|
||||
|
||||
(cherry picked from commit 8db998981a4fefd0122bcf5f965726b63c9045c2)
|
||||
|
||||
Resolves: RHEL-55301
|
||||
---
|
||||
src/core/unit.c | 3 ++
|
||||
test/units/testsuite-19.cleanup-slice.sh | 49 ++++++++++++++++++++++++
|
||||
2 files changed, 52 insertions(+)
|
||||
create mode 100755 test/units/testsuite-19.cleanup-slice.sh
|
||||
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index f109d16eb3..08f87851d9 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -417,6 +417,9 @@ bool unit_may_gc(Unit *u) {
|
||||
if (u->perpetual)
|
||||
return false;
|
||||
|
||||
+ if (u->in_cgroup_empty_queue)
|
||||
+ return false;
|
||||
+
|
||||
if (sd_bus_track_count(u->bus_track) > 0)
|
||||
return false;
|
||||
|
||||
diff --git a/test/units/testsuite-19.cleanup-slice.sh b/test/units/testsuite-19.cleanup-slice.sh
|
||||
new file mode 100755
|
||||
index 0000000000..5d63160334
|
||||
--- /dev/null
|
||||
+++ b/test/units/testsuite-19.cleanup-slice.sh
|
||||
@@ -0,0 +1,49 @@
|
||||
+#!/usr/bin/env bash
|
||||
+# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
+set -eux
|
||||
+set -o pipefail
|
||||
+
|
||||
+# shellcheck source=test/units/util.sh
|
||||
+. "$(dirname "$0")"/util.sh
|
||||
+
|
||||
+export SYSTEMD_LOG_LEVEL=debug
|
||||
+
|
||||
+# Create service with KillMode=none inside a slice
|
||||
+cat <<EOF >/run/systemd/system/test19cleanup.service
|
||||
+[Unit]
|
||||
+Description=Test 19 cleanup Service
|
||||
+[Service]
|
||||
+Slice=test19cleanup.slice
|
||||
+Type=exec
|
||||
+ExecStart=sleep infinity
|
||||
+KillMode=none
|
||||
+EOF
|
||||
+cat <<EOF >/run/systemd/system/test19cleanup.slice
|
||||
+[Unit]
|
||||
+Description=Test 19 cleanup Slice
|
||||
+EOF
|
||||
+
|
||||
+# Start service
|
||||
+systemctl start test19cleanup.service
|
||||
+assert_rc 0 systemd-cgls /test19cleanup.slice
|
||||
+
|
||||
+pid=$(systemctl show --property MainPID --value test19cleanup)
|
||||
+ps "$pid"
|
||||
+
|
||||
+# Stop slice
|
||||
+# The sleep process will not be killed because of KillMode=none
|
||||
+# Since there is still a process running under it, the /test19cleanup.slice cgroup won't be removed
|
||||
+systemctl stop test19cleanup.slice
|
||||
+
|
||||
+ps "$pid"
|
||||
+
|
||||
+# Kill sleep process manually
|
||||
+kill -s TERM "$pid"
|
||||
+while kill -0 "$pid" 2>/dev/null; do sleep 0.1; done
|
||||
+
|
||||
+timeout 30 bash -c 'while systemd-cgls /test19cleanup.slice/test19cleanup.service >& /dev/null; do sleep .5; done'
|
||||
+assert_rc 1 systemd-cgls /test19cleanup.slice/test19cleanup.service
|
||||
+
|
||||
+# Check that empty cgroup /test19cleanup.slice has been removed
|
||||
+timeout 30 bash -c 'while systemd-cgls /test19cleanup.slice >& /dev/null; do sleep .5; done'
|
||||
+assert_rc 1 systemd-cgls /test19cleanup.slice
|
@ -0,0 +1,62 @@
|
||||
From 250b4c9364ee455034ff93a2ac379268963a39a9 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Phibel <rphibel@googlemail.com>
|
||||
Date: Thu, 25 May 2023 19:49:11 +0200
|
||||
Subject: [PATCH] core: Handle cgroup pruning in on_cgroup_empty_event
|
||||
|
||||
This change removes the pruning of cgroups for FAILED/INACTIVE units
|
||||
from per-unit-type handlers and moves it in on_cgroup_empty_event.
|
||||
|
||||
(cherry picked from commit 380dd177798507ced9cde580c04539f54bb980c8)
|
||||
|
||||
Related: RHEL-55301
|
||||
---
|
||||
src/core/cgroup.c | 4 +++-
|
||||
src/core/scope.c | 5 -----
|
||||
src/core/service.c | 3 +--
|
||||
3 files changed, 4 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
|
||||
index c44966839c..fa3e7fca05 100644
|
||||
--- a/src/core/cgroup.c
|
||||
+++ b/src/core/cgroup.c
|
||||
@@ -3007,7 +3007,9 @@ static int on_cgroup_empty_event(sd_event_source *s, void *userdata) {
|
||||
|
||||
unit_add_to_gc_queue(u);
|
||||
|
||||
- if (UNIT_VTABLE(u)->notify_cgroup_empty)
|
||||
+ if (IN_SET(unit_active_state(u), UNIT_INACTIVE, UNIT_FAILED))
|
||||
+ unit_prune_cgroup(u);
|
||||
+ else if (UNIT_VTABLE(u)->notify_cgroup_empty)
|
||||
UNIT_VTABLE(u)->notify_cgroup_empty(u);
|
||||
|
||||
return 0;
|
||||
diff --git a/src/core/scope.c b/src/core/scope.c
|
||||
index e2fc4cc995..087ac2853a 100644
|
||||
--- a/src/core/scope.c
|
||||
+++ b/src/core/scope.c
|
||||
@@ -628,11 +628,6 @@ static void scope_notify_cgroup_empty_event(Unit *u) {
|
||||
|
||||
if (IN_SET(s->state, SCOPE_RUNNING, SCOPE_ABANDONED, SCOPE_STOP_SIGTERM, SCOPE_STOP_SIGKILL))
|
||||
scope_enter_dead(s, SCOPE_SUCCESS);
|
||||
-
|
||||
- /* If the cgroup empty notification comes when the unit is not active, we must have failed to clean
|
||||
- * up the cgroup earlier and should do it now. */
|
||||
- if (IN_SET(s->state, SCOPE_DEAD, SCOPE_FAILED))
|
||||
- unit_prune_cgroup(u);
|
||||
}
|
||||
|
||||
static void scope_notify_cgroup_oom_event(Unit *u, bool managed_oom) {
|
||||
diff --git a/src/core/service.c b/src/core/service.c
|
||||
index 902948905f..433df0afe3 100644
|
||||
--- a/src/core/service.c
|
||||
+++ b/src/core/service.c
|
||||
@@ -3446,8 +3446,7 @@ static void service_notify_cgroup_empty_event(Unit *u) {
|
||||
|
||||
/* If the cgroup empty notification comes when the unit is not active, we must have failed to clean
|
||||
* up the cgroup earlier and should do it now. */
|
||||
- case SERVICE_DEAD:
|
||||
- case SERVICE_FAILED:
|
||||
+ case SERVICE_AUTO_RESTART:
|
||||
unit_prune_cgroup(u);
|
||||
break;
|
||||
|
50
SOURCES/1108-Fix-failing-test.patch
Normal file
50
SOURCES/1108-Fix-failing-test.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 0b3c0a40c1d4a6be0c259795248f963d1ac17e9f Mon Sep 17 00:00:00 2001
|
||||
From: Richard Phibel <rphibel@googlemail.com>
|
||||
Date: Tue, 30 May 2023 00:45:09 +0200
|
||||
Subject: [PATCH] Fix failing test
|
||||
|
||||
In test-execute, only the unit was started, not the slice. Because of
|
||||
that the slice cgroup was pruned even if it was still needed. From what
|
||||
I can tell, this is because, in the test, we don't have all the
|
||||
mechanics that starts the slice for a service. To fix the issue the
|
||||
slice is started manually.
|
||||
|
||||
(cherry picked from commit fc6172b1d844fb2e93cb1180810eba561aead3b8)
|
||||
|
||||
Related: RHEL-55301
|
||||
---
|
||||
src/test/test-execute.c | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/src/test/test-execute.c b/src/test/test-execute.c
|
||||
index 1f838e5c91..20d6035cee 100644
|
||||
--- a/src/test/test-execute.c
|
||||
+++ b/src/test/test-execute.c
|
||||
@@ -207,6 +207,17 @@ static bool is_inaccessible_available(void) {
|
||||
return true;
|
||||
}
|
||||
|
||||
+static void start_parent_slices(Unit *unit) {
|
||||
+ Unit *slice;
|
||||
+
|
||||
+ slice = UNIT_GET_SLICE(unit);
|
||||
+ if (slice) {
|
||||
+ start_parent_slices(slice);
|
||||
+ int r = unit_start(slice, NULL);
|
||||
+ assert_se(r >= 0 || r == -EALREADY);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void _test(const char *file, unsigned line, const char *func,
|
||||
Manager *m, const char *unit_name, int status_expected, int code_expected) {
|
||||
Unit *unit;
|
||||
@@ -214,6 +225,9 @@ static void _test(const char *file, unsigned line, const char *func,
|
||||
assert_se(unit_name);
|
||||
|
||||
assert_se(manager_load_startable_unit_or_warn(m, unit_name, NULL, &unit) >= 0);
|
||||
+ /* We need to start the slices as well otherwise the slice cgroups might be pruned
|
||||
+ * in on_cgroup_empty_event. */
|
||||
+ start_parent_slices(unit);
|
||||
assert_se(unit_start(unit, NULL) >= 0);
|
||||
check_main_result(file, line, func, m, unit, status_expected, code_expected);
|
||||
}
|
46
SOURCES/1109-unit-don-t-gc-unit-in-oom-queue.patch
Normal file
46
SOURCES/1109-unit-don-t-gc-unit-in-oom-queue.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From 3f9329109403b981a01e64b41c0fcca02920bb23 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Thu, 8 Jun 2023 11:11:28 +0200
|
||||
Subject: [PATCH] unit: don't gc unit in oom queue
|
||||
|
||||
This is a follow-up for 8db998981a4fefd0122bcf5f965726b63c9045c2, and
|
||||
follows a similar logic: a pending OOM event really trumps everything:
|
||||
we should not GC a unit while it is pending.
|
||||
|
||||
(cherry picked from commit 935f80428fd3220c83163cc4b5a637873e68babb)
|
||||
|
||||
Related: RHEL-55301
|
||||
---
|
||||
src/core/cgroup.c | 2 ++
|
||||
src/core/unit.c | 5 ++++-
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
|
||||
index fa3e7fca05..7d6b1119be 100644
|
||||
--- a/src/core/cgroup.c
|
||||
+++ b/src/core/cgroup.c
|
||||
@@ -3184,6 +3184,8 @@ static int on_cgroup_oom_event(sd_event_source *s, void *userdata) {
|
||||
}
|
||||
|
||||
(void) unit_check_oom(u);
|
||||
+ unit_add_to_gc_queue(u);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index 08f87851d9..4360351bd9 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -417,7 +417,10 @@ bool unit_may_gc(Unit *u) {
|
||||
if (u->perpetual)
|
||||
return false;
|
||||
|
||||
- if (u->in_cgroup_empty_queue)
|
||||
+ /* if we saw a cgroup empty event for this unit, stay around until we processed it so that we remove
|
||||
+ * the empty cgroup if possible. Similar, process any pending OOM events if they are already queued
|
||||
+ * before we release the unit. */
|
||||
+ if (u->in_cgroup_empty_queue || u->in_cgroup_oom_queue)
|
||||
return false;
|
||||
|
||||
if (sd_bus_track_count(u->bus_track) > 0)
|
@ -0,0 +1,81 @@
|
||||
From 31f8d699974e114868a90b49141d4130287a499d Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Thu, 8 Jun 2023 11:11:49 +0200
|
||||
Subject: [PATCH] core: do not GC units/jobs that are in the D-Bus queue
|
||||
|
||||
Let's make sure that D-Bus messages are always sent out when pending,
|
||||
before we might GC a unit/job.
|
||||
|
||||
This is kinda a follow-up for 8db998981a4fefd0122bcf5f965726b63c9045c2,
|
||||
and a similar logic really applies: GC should only be done if we
|
||||
processed everything else, generated evertyhing else and really don't
|
||||
need it anymore.
|
||||
|
||||
(cherry picked from commit af05bb971731fe7280e4e85fde71c2e671772c18)
|
||||
|
||||
Related: RHEL-55301
|
||||
---
|
||||
src/core/dbus-job.c | 3 +++
|
||||
src/core/dbus-unit.c | 3 +++
|
||||
src/core/job.c | 4 ++++
|
||||
src/core/unit.c | 4 ++++
|
||||
4 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/src/core/dbus-job.c b/src/core/dbus-job.c
|
||||
index 9792a5c44a..c88d8c2dd5 100644
|
||||
--- a/src/core/dbus-job.c
|
||||
+++ b/src/core/dbus-job.c
|
||||
@@ -241,6 +241,9 @@ void bus_job_send_change_signal(Job *j) {
|
||||
if (j->in_dbus_queue) {
|
||||
LIST_REMOVE(dbus_queue, j->manager->dbus_job_queue, j);
|
||||
j->in_dbus_queue = false;
|
||||
+
|
||||
+ /* The job might be good to be GC once its pending signals have been sent */
|
||||
+ job_add_to_gc_queue(j);
|
||||
}
|
||||
|
||||
r = bus_foreach_bus(j->manager, j->bus_track, j->sent_dbus_new_signal ? send_changed_signal : send_new_signal, j);
|
||||
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c
|
||||
index b45b3fdb53..9d3c3be4e9 100644
|
||||
--- a/src/core/dbus-unit.c
|
||||
+++ b/src/core/dbus-unit.c
|
||||
@@ -1629,6 +1629,9 @@ void bus_unit_send_change_signal(Unit *u) {
|
||||
if (u->in_dbus_queue) {
|
||||
LIST_REMOVE(dbus_queue, u->manager->dbus_unit_queue, u);
|
||||
u->in_dbus_queue = false;
|
||||
+
|
||||
+ /* The unit might be good to be GC once its pending signals have been sent */
|
||||
+ unit_add_to_gc_queue(u);
|
||||
}
|
||||
|
||||
if (!u->id)
|
||||
diff --git a/src/core/job.c b/src/core/job.c
|
||||
index 032554a0ac..bd3a741ffd 100644
|
||||
--- a/src/core/job.c
|
||||
+++ b/src/core/job.c
|
||||
@@ -1407,6 +1407,10 @@ bool job_may_gc(Job *j) {
|
||||
if (!UNIT_VTABLE(j->unit)->gc_jobs)
|
||||
return false;
|
||||
|
||||
+ /* Make sure to send out pending D-Bus events before we unload the unit */
|
||||
+ if (j->in_dbus_queue)
|
||||
+ return false;
|
||||
+
|
||||
if (sd_bus_track_count(j->bus_track) > 0)
|
||||
return false;
|
||||
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index 4360351bd9..03eb3aaecf 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -423,6 +423,10 @@ bool unit_may_gc(Unit *u) {
|
||||
if (u->in_cgroup_empty_queue || u->in_cgroup_oom_queue)
|
||||
return false;
|
||||
|
||||
+ /* Make sure to send out D-Bus events before we unload the unit */
|
||||
+ if (u->in_dbus_queue)
|
||||
+ return false;
|
||||
+
|
||||
if (sd_bus_track_count(u->bus_track) > 0)
|
||||
return false;
|
||||
|
Binary file not shown.
@ -12,10 +12,6 @@
|
||||
%global system_unit_dir %{pkgdir}/system
|
||||
%global user_unit_dir %{pkgdir}/user
|
||||
|
||||
# defining macros needed by SELinux
|
||||
%global selinuxtype targeted
|
||||
%global modulename systemd-container-coredump
|
||||
|
||||
# Bootstrap may be needed to break intercircular dependencies with
|
||||
# cryptsetup, e.g. when re-building cryptsetup on a json-c SONAME-bump.
|
||||
%bcond_with bootstrap
|
||||
@ -25,7 +21,7 @@
|
||||
Name: systemd
|
||||
Url: https://systemd.io
|
||||
Version: 252
|
||||
Release: 46%{?dist}
|
||||
Release: 51%{?dist}
|
||||
# For a breakdown of the licensing, see README
|
||||
License: LGPLv2+ and MIT and GPLv2+
|
||||
Summary: System and Service Manager
|
||||
@ -74,8 +70,6 @@ Source25: rc.local
|
||||
%global rhel_nns_version 0.5
|
||||
Source26: https://gitlab.com/mschmidt2/rhel-net-naming-sysattrs/-/archive/v%{rhel_nns_version}/rhel-net-naming-sysattrs-v%{rhel_nns_version}.tar.gz
|
||||
|
||||
Source27: %{modulename}.pp.bz2
|
||||
|
||||
%if 0
|
||||
GIT_DIR=../../src/systemd/.git git format-patch-ab --no-signature -M -N v235..v235-stable
|
||||
i=1; for j in 00*patch; do printf "Patch%04d: %s\n" $i $j; i=$((i+1));done|xclip
|
||||
@ -1131,6 +1125,74 @@ Patch1039: 1039-efi-add-helper-API-for-detecting-confidential-virtua.patch
|
||||
Patch1040: 1040-efi-don-t-pull-kernel-cmdline-from-SMBIOS-in-a-confi.patch
|
||||
Patch1041: 1041-Fix-detection-of-TDX-confidential-VM-on-Azure-platfo.patch
|
||||
Patch1042: 1042-ukify-Skip-test-on-architectures-without-UEFI.patch
|
||||
Patch1043: 1043-man-using-WantedBy-default.target-is-not-a-good-idea.patch
|
||||
Patch1044: 1044-logind-tighten-for-which-classes-of-sessions-we-do-s.patch
|
||||
Patch1045: 1045-Fix-configuration-for-Packit-1.0.0.patch
|
||||
Patch1046: 1046-udev-net_id-introduce-naming-scheme-for-RHEL-9.6.patch
|
||||
Patch1047: 1047-hwdb-Fix-accelerometer-mount-matrix-for-ASUS-T100TAS.patch
|
||||
Patch1048: 1048-hwdb.d-60-keyboard.hwdb-add-Clevo-mic-mute-quirk-for.patch
|
||||
Patch1049: 1049-hwdb-add-entry-for-Dell-AlpsPS-2-ALPS-DualPoint-Touc.patch
|
||||
Patch1050: 1050-hwdb-Mark-Apple-Wireless-keyboards-as-not-having-Num.patch
|
||||
Patch1051: 1051-update-keyboard-hwdb-to-add-acer-Predator-PHN16-72.patch
|
||||
Patch1052: 1052-hwdb-death-to-tabs.patch
|
||||
Patch1053: 1053-hwdb.d-60-keyboard.hwdb-add-Clevo-mic-mute-quirk-for.patch
|
||||
Patch1054: 1054-Add-ACCEL_MOUNT_MATRIX-for-Chuwi-Hi10-Max.patch
|
||||
Patch1055: 1055-Add-HUAWEI-MateBook-D-15-AMD-ACCEL-properties.patch
|
||||
Patch1056: 1056-hwdb-add-Kensington-SlimBlade-Pro-trackball-Bluetoot.patch
|
||||
Patch1057: 1057-hwdb-Add-accel-orientation-quirk-for-the-IdeaPad-Due.patch
|
||||
Patch1058: 1058-hwdb-add-keymaps-for-Acer-Nitro-5-AN515-47-34493.patch
|
||||
Patch1059: 1059-hwdb-make-key-map-match-comment-for-one-laptop.patch
|
||||
Patch1060: 1060-hwdb-there-s-KEY_BRIGHTNESS_AUTO-these-days-hence-ho.patch
|
||||
Patch1061: 1061-hwdb-use-KEY_ROTATE_DISPLAY-for-various-cases-of-dis.patch
|
||||
Patch1062: 1062-hwbd-use-newer-KEY_PICKUP_PHONE-KEY_HANGUP_PHONE-KEY.patch
|
||||
Patch1063: 1063-hwdb-add-SCAI-SKU-prefix-for-Samsung-keyboard-mappin.patch
|
||||
Patch1064: 1064-tree-wide-drop-doubled-empty-lines.patch
|
||||
Patch1065: 1065-hwdb-move-key-66-65-handling-from-specific-to-generi.patch
|
||||
Patch1066: 1066-hwdb-fix-key-toggle-touchpad-and-programmable-buttom.patch
|
||||
Patch1067: 1067-hwdb-add-Stream-Deck-Neo-34903.patch
|
||||
Patch1068: 1068-hwdb-update-autosuspend-rules.patch
|
||||
Patch1069: 1069-hwdb-import-newest-autosuspend-rules-from-chromeos.patch
|
||||
Patch1070: 1070-update-hwdb.patch
|
||||
Patch1071: 1071-Update-hwdb.patch
|
||||
Patch1072: 1072-hwdb-fix-broken-numpad-paren-keys-on-Lenovo-Thinkboo.patch
|
||||
Patch1073: 1073-Update-hwdb.patch
|
||||
Patch1074: 1074-hwdb-add-new-Cube-Mix-Plus-i18D-rotation-info.patch
|
||||
Patch1075: 1075-hwdb-Add-quirk-for-Logitech-MX-Keys-for-Mac.patch
|
||||
Patch1076: 1076-hwdb-add-support-for-PineTab2-to-60-sensor.hwdb-3530.patch
|
||||
Patch1077: 1077-hwdb-add-entry-for-Chuwi-Hi10-X1-35331.patch
|
||||
Patch1078: 1078-hwdb-update.patch
|
||||
Patch1079: 1079-hwdb-Make-3D-mice-work-out-of-the-box.patch
|
||||
Patch1080: 1080-hwdb-Add-Chuwi-MiniBook-X-trackpad-fuzz.patch
|
||||
Patch1081: 1081-Update-hwdb.patch
|
||||
Patch1082: 1082-hwdb-disable-inclusion-of-the-PCI-domain-in-MANA-net.patch
|
||||
Patch1083: 1083-hwdb-move-down-touchpad-toggle-section-from-generic-.patch
|
||||
Patch1084: 1084-hwdb-add-scancodes-for-HP-Elitebook-2170p-runnning-c.patch
|
||||
Patch1085: 1085-hwdb-Make-remote-controllable-lights-work-out-of-the.patch
|
||||
Patch1086: 1086-hwdb-fix-key-toggle-touchpad-for-VAIO-VJFH52-35645.patch
|
||||
Patch1087: 1087-hwdb-comment-out-the-entry-for-Logitech-MX-Keys-for-.patch
|
||||
Patch1088: 1088-60-sensor.hwdb-Loosen-model-mask-to-include-entire-s.patch
|
||||
Patch1089: 1089-Correct-ACCEL_MOUNT_MATRIX-for-Chuwi-Hi10-Max.patch
|
||||
Patch1090: 1090-hwdb-Add-macro-keys-for-HP-430-Programmable-Wireless.patch
|
||||
Patch1091: 1091-journal-again-create-user-journals-for-users-with-hi.patch
|
||||
Patch1092: 1092-install-don-t-translate-unit-instances-to-paths-when.patch
|
||||
Patch1093: 1093-test-systemctl-enable-fix-typo.patch
|
||||
Patch1094: 1094-udev-Handle-PTP-device-symlink-properly-on-udev-acti.patch
|
||||
Patch1095: 1095-systemctl-print-warning-about-missing-proc-only-as-d.patch
|
||||
Patch1096: 1096-repart-avoid-use-of-uninitialized-TPM2B_PUBLIC-data.patch
|
||||
Patch1097: 1097-ci-use-ubuntu-22-04-for-deploy-of-man-pages.patch
|
||||
Patch1098: 1098-man-tmpfiles-fix-off-by-one-in-example.patch
|
||||
Patch1099: 1099-test-drop-removed-SCSI-passthrough-feature.patch
|
||||
Patch1100: 1100-nspawn-call-json_dispatch-with-a-correct-pointer.patch
|
||||
Patch1101: 1101-varlink-json-introduce-new-varlink_dispatch-helper.patch
|
||||
Patch1102: 1102-json-add-json_dispatch_const_user_group_name.patch
|
||||
Patch1103: 1103-sd-varlink-add-new-sd_varlink_error_is_invalid_param.patch
|
||||
Patch1104: 1104-userdb-return-ESRCH-if-userdb-service-refuses-a-user.patch
|
||||
Patch1105: 1105-test-rename-assert.sh-to-util.sh.patch
|
||||
Patch1106: 1106-core-Don-t-GC-unit-if-it-is-in-cgroup_empty_queue.patch
|
||||
Patch1107: 1107-core-Handle-cgroup-pruning-in-on_cgroup_empty_event.patch
|
||||
Patch1108: 1108-Fix-failing-test.patch
|
||||
Patch1109: 1109-unit-don-t-gc-unit-in-oom-queue.patch
|
||||
Patch1110: 1110-core-do-not-GC-units-jobs-that-are-in-the-D-Bus-queu.patch
|
||||
|
||||
# Downstream-only patches (9000–9999)
|
||||
|
||||
@ -1199,7 +1261,6 @@ BuildRequires: git-core
|
||||
%if 0%{?have_gnu_efi}
|
||||
BuildRequires: gnu-efi gnu-efi-devel
|
||||
%endif
|
||||
BuildRequires: selinux-policy-devel
|
||||
BuildRequires: libfido2-devel
|
||||
|
||||
Requires(post): coreutils
|
||||
@ -1207,11 +1268,6 @@ Requires(post): sed
|
||||
Requires(post): acl
|
||||
Requires(post): grep
|
||||
|
||||
# selinux
|
||||
Requires(post): libselinux-utils
|
||||
Requires(post): policycoreutils
|
||||
Requires(post): selinux-policy
|
||||
|
||||
# systemd-machine-id-setup requires libssl
|
||||
Requires(post): openssl-libs
|
||||
Requires(pre): coreutils
|
||||
@ -1711,9 +1767,6 @@ install -m 0644 -D -t %{buildroot}%{_rpmconfigdir}/fileattrs/ %{SOURCE22}
|
||||
install -m 0755 -D -t %{buildroot}%{_rpmconfigdir}/ %{SOURCE23}
|
||||
install -m 0755 -D -t %{buildroot}%{_rpmconfigdir}/ %{SOURCE24}
|
||||
|
||||
# install policy modules
|
||||
install -m 0644 -D -t %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/ %{SOURCE27}
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
# Split files in build root into rpms. See split-files.py for the
|
||||
@ -1771,9 +1824,10 @@ getent group cdrom &>/dev/null || groupadd -r -g 11 cdrom &>/dev/null || :
|
||||
getent group utmp &>/dev/null || groupadd -r -g 22 utmp &>/dev/null || :
|
||||
getent group tape &>/dev/null || groupadd -r -g 33 tape &>/dev/null || :
|
||||
getent group dialout &>/dev/null || groupadd -r -g 18 dialout &>/dev/null || :
|
||||
getent group input &>/dev/null || groupadd -r input &>/dev/null || :
|
||||
getent group input &>/dev/null || groupadd -r -g 104 input &>/dev/null || :
|
||||
getent group kvm &>/dev/null || groupadd -r -g 36 kvm &>/dev/null || :
|
||||
getent group render &>/dev/null || groupadd -r render &>/dev/null || :
|
||||
getent group render &>/dev/null || groupadd -r -g 105 render &>/dev/null || :
|
||||
getent group sgx &>/dev/null || groupadd -r -g 106 sgx &>/dev/null || :
|
||||
getent group systemd-journal &>/dev/null || groupadd -r -g 190 systemd-journal 2>&1 || :
|
||||
|
||||
getent group systemd-coredump &>/dev/null || groupadd -r systemd-coredump 2>&1 || :
|
||||
@ -1816,9 +1870,6 @@ chmod g+s /{run,var}/log/journal/{,${machine_id}} &>/dev/null || :
|
||||
# Apply ACL to the journal directory
|
||||
setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/ &>/dev/null || :
|
||||
|
||||
# Install our own selinux-policy module that allows systemd-coredump access to containers
|
||||
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{modulename}.pp.bz2
|
||||
|
||||
[ $1 -eq 1 ] || exit 0
|
||||
|
||||
# We reset the enablement of all services upon initial installation
|
||||
@ -1881,7 +1932,7 @@ fi
|
||||
|
||||
%{?ldconfig:%postun libs -p %ldconfig}
|
||||
|
||||
%global udev_services systemd-udev{d,-settle,-trigger}.service systemd-udevd-{control,kernel}.socket %{?have_gnu_efi:systemd-boot-update.service}
|
||||
%global udev_services systemd-udev{d,-settle,-trigger}.service systemd-udevd-{control,kernel}.socket %{?have_gnu_efi:systemd-boot-update.service} systemd-pstore.service
|
||||
|
||||
%post udev
|
||||
# Move old stuff around in /var/lib
|
||||
@ -1963,7 +2014,6 @@ systemd-hwdb update &>/dev/null || :
|
||||
%global _docdir_fmt %{name}
|
||||
|
||||
%files -f %{name}.lang -f .file-list-main
|
||||
%{_datadir}/selinux/packages/%{selinuxtype}/%{modulename}.pp.*
|
||||
%doc %{_pkgdocdir}
|
||||
%exclude %{_pkgdocdir}/LICENSE.*
|
||||
%license LICENSE.GPL2 LICENSE.LGPL2.1
|
||||
@ -1983,7 +2033,6 @@ systemd-hwdb update &>/dev/null || :
|
||||
%ghost %dir %attr(0755,-,-) /etc/systemd/system/system-update.target.wants
|
||||
%ghost %dir %attr(0755,-,-) /etc/systemd/system/timers.target.wants
|
||||
%ghost %dir %attr(0755,-,-) /var/lib/rpm-state/systemd
|
||||
%ghost %verify(not md5 size mode mtime) %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{modulename}
|
||||
|
||||
%files libs -f .file-list-libs
|
||||
%license LICENSE.LGPL2.1
|
||||
@ -2021,6 +2070,85 @@ systemd-hwdb update &>/dev/null || :
|
||||
%{_prefix}/lib/dracut/modules.d/70rhel-net-naming-sysattrs/*
|
||||
|
||||
%changelog
|
||||
* Tue Jan 28 2025 systemd maintenance team <systemd-maint@redhat.com> - 252-51
|
||||
- ci: use ubuntu 22:04 for deploy of man pages (RHEL-70884)
|
||||
- man/tmpfiles: fix off-by-one in example (RHEL-74015)
|
||||
- test: drop removed SCSI passthrough feature (RHEL-70884)
|
||||
- nspawn: call json_dispatch() with a correct pointer (RHEL-55266)
|
||||
- varlink,json: introduce new varlink_dispatch() helper (RHEL-55266)
|
||||
- json: add json_dispatch_const_user_group_name() (RHEL-55266)
|
||||
- sd-varlink: add new sd_varlink_error_is_invalid_parameter() helper (RHEL-55266)
|
||||
- userdb: return ESRCH if userdb service refuses a user/group name as invalid (RHEL-55266)
|
||||
- test: rename assert.sh to util.sh (RHEL-55301)
|
||||
- core: Don't GC unit if it is in cgroup_empty_queue (RHEL-55301)
|
||||
- core: Handle cgroup pruning in on_cgroup_empty_event (RHEL-55301)
|
||||
- Fix failing test (RHEL-55301)
|
||||
- unit: don't gc unit in oom queue (RHEL-55301)
|
||||
- core: do not GC units/jobs that are in the D-Bus queue (RHEL-55301)
|
||||
|
||||
* Tue Jan 14 2025 systemd maintenance team <systemd-maint@redhat.com> - 252-50
|
||||
- journal: again create user journals for users with high uids (RHEL-70103)
|
||||
- install: don't translate unit instances to paths when reenabling them (RHEL-5956)
|
||||
- test-systemctl-enable: fix typo (RHEL-5956)
|
||||
- udev: Handle PTP device symlink properly on udev action 'change' (RHEL-59088)
|
||||
- systemctl: print warning about missing /proc only as debug message (RHEL-3906)
|
||||
- repart: avoid use of uninitialized TPM2B_PUBLIC data (RHEL-56793)
|
||||
|
||||
* Tue Jan 07 2025 systemd maintenance team <systemd-maint@redhat.com> - 252-49
|
||||
- logind: tighten for which classes of sessions we do stop-on-idle (RHEL-24340)
|
||||
- Fix configuration for Packit 1.0.0 (RHEL-70884)
|
||||
- udev/net_id: introduce naming scheme for RHEL-9.6 (RHEL-25515)
|
||||
- hwdb: Fix accelerometer mount matrix for ASUS T100TAS (RHEL-49810)
|
||||
- hwdb.d/60-keyboard.hwdb: add Clevo mic mute quirk for V5x dGPU (RHEL-49810)
|
||||
- hwdb: add entry for Dell AlpsPS/2 ALPS DualPoint TouchPad (RHEL-49810)
|
||||
- hwdb: Mark Apple Wireless keyboards as not having NumLock LED (RHEL-49810)
|
||||
- update keyboard hwdb to add acer Predator PHN16-72 (RHEL-49810)
|
||||
- hwdb: death to tabs! (RHEL-49810)
|
||||
- hwdb.d/60-keyboard.hwdb: add Clevo mic mute quirk for V5x iGPU, NV41PZ (RHEL-49810)
|
||||
- Add ACCEL_MOUNT_MATRIX for Chuwi Hi10 Max. (RHEL-49810)
|
||||
- Add HUAWEI MateBook D 15 AMD ACCEL properties (RHEL-49810)
|
||||
- hwdb: add Kensington SlimBlade Pro trackball (Bluetooth mode) (RHEL-49810)
|
||||
- hwdb: Add accel orientation quirk for the IdeaPad Duet 3 10IGL5-LTE (RHEL-49810)
|
||||
- hwdb: add keymaps for Acer Nitro 5 AN515-47 (#34493) (RHEL-49810)
|
||||
- hwdb: make key map match comment for one laptop (RHEL-49810)
|
||||
- hwdb: there's KEY_BRIGHTNESS_AUTO these days, hence hook it up where a FIXME suggests that (RHEL-49810)
|
||||
- hwdb: use KEY_ROTATE_DISPLAY for various cases of display rotation keys (RHEL-49810)
|
||||
- hwbd: use newer KEY_PICKUP_PHONE, KEY_HANGUP_PHONE, KEY_SELECTIVE_SCREENSHOT, KEY_NOTIFICATION_CENTER keycodes where appropriate (RHEL-49810)
|
||||
- hwdb: add SCAI SKU prefix for Samsung keyboard mapping (#34648) (RHEL-49810)
|
||||
- tree-wide: drop doubled empty lines (RHEL-49810)
|
||||
- hwdb: move key 66/65 handling from specific to generic HP laptop coverage (RHEL-49810)
|
||||
- hwdb: fix key toggle touchpad and programmable buttom for Positivo V142N (#34725) (RHEL-49810)
|
||||
- hwdb: add Stream Deck Neo (#34903) (RHEL-49810)
|
||||
- hwdb: update autosuspend rules (RHEL-49810)
|
||||
- hwdb: import newest autosuspend rules from chromeos (RHEL-49810)
|
||||
- update hwdb (RHEL-49810)
|
||||
- Update hwdb (RHEL-49810)
|
||||
- hwdb: fix broken numpad paren keys on Lenovo Thinkbook 16 G6+ 2024 (RHEL-49810)
|
||||
- Update hwdb (RHEL-49810)
|
||||
- hwdb: add new Cube Mix Plus (i18D) rotation info (RHEL-49810)
|
||||
- hwdb: Add quirk for Logitech MX Keys for Mac (RHEL-49810)
|
||||
- hwdb: add support for PineTab2 to 60-sensor.hwdb (#35304) (RHEL-49810)
|
||||
- hwdb: add entry for Chuwi Hi10 X1 (#35331) (RHEL-49810)
|
||||
- hwdb: update (RHEL-49810)
|
||||
- hwdb: Make 3D mice work out-of-the-box (RHEL-49810)
|
||||
- hwdb: Add Chuwi MiniBook X trackpad fuzz (RHEL-49810)
|
||||
- Update hwdb (RHEL-49810)
|
||||
- hwdb: disable inclusion of the PCI domain in MANA network interface naming (RHEL-49810)
|
||||
- hwdb: move down touchpad toggle section from generic to product specific (RHEL-49810)
|
||||
- hwdb: add scancodes for HP Elitebook 2170p runnning coreboot (RHEL-49810)
|
||||
- hwdb: Make remote controllable lights work out-of-the-box (RHEL-49810)
|
||||
- hwdb: fix key toggle touchpad for VAIO VJFH52 (#35645) (RHEL-49810)
|
||||
- hwdb: comment out the entry for Logitech MX Keys for Mac (RHEL-49810)
|
||||
- 60-sensor.hwdb: Loosen model mask to include entire series (RHEL-49810)
|
||||
- Correct ACCEL_MOUNT_MATRIX for Chuwi Hi10 Max (RHEL-49810)
|
||||
- hwdb: Add macro keys for HP 430 Programmable Wireless Keypad (RHEL-49810)
|
||||
|
||||
* Tue Oct 15 2024 systemd maintenance team <systemd-maint@redhat.com> - 252-48
|
||||
- man: using WantedBy=default.target is not a good idea (RHEL-36531)
|
||||
|
||||
* Tue Sep 10 2024 systemd maintenance team <systemd-maint@redhat.com> - 252-47
|
||||
- get rid of SELinux policy module (RHEL-58179)
|
||||
|
||||
* Fri Aug 30 2024 systemd maintenance team <systemd-maint@redhat.com> - 252-46
|
||||
- ukify: Skip test on architectures without UEFI (RHEL-56019)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user