Debrand for AlmaLinux

This commit is contained in:
Andrew Lukoshko 2026-02-12 04:11:11 +00:00 committed by root
commit 5da22fec64
77 changed files with 61010 additions and 2 deletions

View File

@ -0,0 +1,114 @@
From 3ef86b28a4933e2cc4169c3b13143999269e4bf1 Mon Sep 17 00:00:00 2001
From: Jules Lamur <contact@juleslamur.fr>
Date: Mon, 7 Apr 2025 18:49:26 +0200
Subject: [PATCH] fstab-generator: fix options in systemd.mount-extra= arg
Fixes a bug introduced by 55365b0a233ae3024411fd0815ad930e20f6a3d6 (v254).
The arguments `(rd.)systemd.mount-extra` take a value that looks like
`WHAT:WHERE[:FSTYPE[:OPTIONS]]`. The `OPTIONS` were parsed into a nulstr
where a comma-separated c-string was expected. This leads to a bug where
only the first option was taken into account by the generator.
For example, if you passed `systemd.mount-extra=/x:/y:baz:ro,defaults`
to the kernel, `systemd-fstab-generator` would translate that into a
nulstr: `ro\0defaults\0`.
Since methods processing options in the generator expected a
comma-separated c-string, they would only see the first option, `ro` in
this case.
(cherry picked from commit 06fadc4286fee6a7505a88659e5ae2e6f3ee60ba)
Resolves: RHEL-125822
---
src/fstab-generator/fstab-generator.c | 21 ++++---------------
.../hoge-withx20space.mount | 2 +-
.../dev-sdy3.swap | 2 +-
.../dev-sdy3.swap | 0
4 files changed, 6 insertions(+), 19 deletions(-)
rename test/test-fstab-generator/test-20-swap-from-cmdline.expected/{swap.target.requires => swap.target.wants}/dev-sdy3.swap (100%)
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
index 6b7445b201..590042e992 100644
--- a/src/fstab-generator/fstab-generator.c
+++ b/src/fstab-generator/fstab-generator.c
@@ -109,15 +109,15 @@ static int mount_array_add_internal(
char *in_what,
char *in_where,
const char *in_fstype,
- const char *in_options) {
+ char *in_options) {
_cleanup_free_ char *what = NULL, *where = NULL, *fstype = NULL, *options = NULL;
- int r;
/* This takes what and where. */
what = ASSERT_PTR(in_what);
where = in_where;
+ options = in_options;
fstype = strdup(isempty(in_fstype) ? "auto" : in_fstype);
if (!fstype)
@@ -126,19 +126,6 @@ static int mount_array_add_internal(
if (streq(fstype, "swap"))
where = mfree(where);
- if (!isempty(in_options)) {
- _cleanup_strv_free_ char **options_strv = NULL;
-
- r = strv_split_full(&options_strv, in_options, ",", 0);
- if (r < 0)
- return r;
-
- r = strv_make_nulstr(options_strv, &options, NULL);
- } else
- r = strv_make_nulstr(STRV_MAKE("defaults"), &options, NULL);
- if (r < 0)
- return r;
-
if (!GREEDY_REALLOC(arg_mounts, arg_n_mounts + 1))
return -ENOMEM;
@@ -168,7 +155,7 @@ static int mount_array_add(bool for_initrd, const char *str) {
if (!isempty(str))
return -EINVAL;
- return mount_array_add_internal(for_initrd, TAKE_PTR(what), TAKE_PTR(where), fstype, options);
+ return mount_array_add_internal(for_initrd, TAKE_PTR(what), TAKE_PTR(where), fstype, TAKE_PTR(options));
}
static int mount_array_add_swap(bool for_initrd, const char *str) {
@@ -186,7 +173,7 @@ static int mount_array_add_swap(bool for_initrd, const char *str) {
if (!isempty(str))
return -EINVAL;
- return mount_array_add_internal(for_initrd, TAKE_PTR(what), NULL, "swap", options);
+ return mount_array_add_internal(for_initrd, TAKE_PTR(what), NULL, "swap", TAKE_PTR(options));
}
static int write_options(FILE *f, const char *options) {
diff --git a/test/test-fstab-generator/test-19-mounts-from-cmdline.expected/hoge-withx20space.mount b/test/test-fstab-generator/test-19-mounts-from-cmdline.expected/hoge-withx20space.mount
index e9ffb4bbd9..d3797c9706 100644
--- a/test/test-fstab-generator/test-19-mounts-from-cmdline.expected/hoge-withx20space.mount
+++ b/test/test-fstab-generator/test-19-mounts-from-cmdline.expected/hoge-withx20space.mount
@@ -9,4 +9,4 @@ Before=remote-fs.target
What=//foo￾bar
Where=/hoge/with space
Type=cifs
-Options=rw
+Options=rw,seclabel
diff --git a/test/test-fstab-generator/test-20-swap-from-cmdline.expected/dev-sdy3.swap b/test/test-fstab-generator/test-20-swap-from-cmdline.expected/dev-sdy3.swap
index 3b6563d216..1b4b53c9b8 100644
--- a/test/test-fstab-generator/test-20-swap-from-cmdline.expected/dev-sdy3.swap
+++ b/test/test-fstab-generator/test-20-swap-from-cmdline.expected/dev-sdy3.swap
@@ -7,4 +7,4 @@ After=blockdev@dev-sdy3.target
[Swap]
What=/dev/sdy3
-Options=x-systemd.makefs
+Options=x-systemd.makefs,nofail
diff --git a/test/test-fstab-generator/test-20-swap-from-cmdline.expected/swap.target.requires/dev-sdy3.swap b/test/test-fstab-generator/test-20-swap-from-cmdline.expected/swap.target.wants/dev-sdy3.swap
similarity index 100%
rename from test/test-fstab-generator/test-20-swap-from-cmdline.expected/swap.target.requires/dev-sdy3.swap
rename to test/test-fstab-generator/test-20-swap-from-cmdline.expected/swap.target.wants/dev-sdy3.swap

View File

@ -0,0 +1,27 @@
From f925283662c7d00c1686121b13963150dc2acf3c Mon Sep 17 00:00:00 2001
From: Rostislav Lastochkin <remtrik@mail.ru>
Date: Sun, 17 Aug 2025 18:59:25 +0300
Subject: [PATCH] hwdb: Add Accelerometer mount matrix for Irbis TW43
(cherry picked from commit e196be154e9e7fc16b477d6cd09a58010990fb15)
Resolves: RHEL-72702
---
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 d242025bd2..559fd4151e 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -662,6 +662,10 @@ sensor:modalias:acpi:BMA250*:dmi:*:bvritWORKS.G.WI71C.JGBMRB*:*:svnInsyde:pni71c
# Irbis
#########################################
+#TW43
+sensor:modalias:acpi:BMA250E*:dmi:*:svnIRBIS:pnTW43:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, -1
+
#TW90
sensor:modalias:acpi:BOSC0200*:dmi:*:svnIRBIS:pnTW90:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,30 @@
From e7f97ca0d9ab2843eb05eb42604a37d19c49ada1 Mon Sep 17 00:00:00 2001
From: Alexander Bruy <alexander.bruy@gmail.com>
Date: Tue, 19 Aug 2025 11:05:00 +0100
Subject: [PATCH] hwdb: map FN key on TongFang X4SP4NAL laptops
(cherry picked from commit b15ff659b49eef0d256ac901af625f72febcaee3)
Resolves: RHEL-72702
---
hwdb.d/60-keyboard.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 465d527817..20c8662af4 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2015,6 +2015,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang15*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnT-bao:pnTbookair:*
KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
+###########################################################
+# TongFang
+###########################################################
+# TongFang GX4 (X4SP4NAL)
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAiStone:pnX4SP4NAL:*
+ KEYBOARD_KEY_f8=fn
+
###########################################################
# Toshiba
###########################################################

7022
0502-hwdb-update-rules.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,26 @@
From 6461bdbc4d147359b1efcc594b00cc25cd384b34 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Wed, 20 Aug 2025 13:06:08 +0100
Subject: [PATCH] hwdb: update autosuspend rules
ninja -C build update-hwdb-autosuspend
(cherry picked from commit 26f971909e2e772fb5929495fb1e0bba617aeaf3)
Resolves: RHEL-72702
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index eb25c6bd1e..6f1099318a 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -188,6 +188,7 @@ usb:v2808pA78A*
# Supported by libfprint driver fpcmoc
usb:v10A5pFFE0*
usb:v10A5pA305*
+usb:v10A5pA306*
usb:v10A5pDA04*
usb:v10A5pD805*
usb:v10A5pD205*

View File

@ -0,0 +1,36 @@
From 739b86e502b1a34ac260522fee177fc1491b9568 Mon Sep 17 00:00:00 2001
From: Christopher Head <chead@chead.ca>
Date: Wed, 20 Aug 2025 23:52:38 -0700
Subject: [PATCH] Add Razer Cobra mouse to hwdb
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The DPI values are based on the products printed documentation. The
frequency values are based on the endpoint descriptor reported by lsusb
(the mouse is a full-speed USB device and bInterval is 1 at all DPI
settings). Both sets of values are for a mouse that has *not* been
touched by the vendors configuration tool.
(cherry picked from commit bd254d371bcfa5154d67937722984e1a4a0e212a)
Resolves: RHEL-72702
---
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 d054aeffe6..da64f4837e 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -833,6 +833,10 @@ mouse:usb:v1532p0042:name:Razer Razer Abyssus:*
mouse:usb:v1532p0029:name:Razer Razer DeathAdder:*
MOUSE_DPI=3500@1000
+# Razer Cobra RZ04-03750300-R3U1
+mouse:usb:v1532p00a3:name:Razer Razer Cobra:*
+ MOUSE_DPI=400@1000 800@1000 *1600@1000 3200@1000 6400@1000
+
##########################################
# Roccat
##########################################

View File

@ -0,0 +1,27 @@
From cb9e41823e67873669f14030d78408632496be55 Mon Sep 17 00:00:00 2001
From: Jack Wu <wojackbb@gmail.com>
Date: Fri, 22 Aug 2025 17:23:46 +0800
Subject: [PATCH] hwdb: enable autosuspend for Dell DW5826e WWAN modem
(cherry picked from commit 46a688c559886230cc41018348415dda9b59b3cd)
Resolves: RHEL-72702
---
hwdb.d/60-autosuspend.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb
index f564c6aed9..0e38c0a9a4 100644
--- a/hwdb.d/60-autosuspend.hwdb
+++ b/hwdb.d/60-autosuspend.hwdb
@@ -96,6 +96,10 @@ usb:v2CB7p0007*
ID_AUTOSUSPEND=1
ID_AUTOSUSPEND_DELAY_MS=7000
+# Dell Computer Corp. DW5826e Qualcomm Snapdragon X12 Global LTE-A
+usb:v413Cp8217*
+ ID_AUTOSUSPEND=1
+
#########################################
# Wacom
#########################################

View File

@ -0,0 +1,60 @@
From 01746a1c7368214e3cbaa795bd87f64381cb65c8 Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Mon, 25 Aug 2025 11:14:28 +0200
Subject: [PATCH] hwdb: sort SDR devices by vendor name
(cherry picked from commit e8628ddb787026022c0b91a42dfeb3c782698df3)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index b005309101..61b0428363 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -21,21 +21,6 @@
# Allowed properties are:
# ID_SOFTWARE_RADIO=0|1
-##########################################
-# Nuand
-##########################################
-# bladeRF 1.x
-usb:v2CF0p5246*
- ID_SOFTWARE_RADIO=1
-
-# bladeRF 1.x (legacy)
-usb:v1D50p6066*
- ID_SOFTWARE_RADIO=1
-
-# bladeRF 2.0 micro
-usb:v2CF0p5250*
- ID_SOFTWARE_RADIO=1
-
##########################################
# Analog Devices
##########################################
@@ -67,6 +52,21 @@ usb:v3923p7813*
usb:v3923p7814*
ID_SOFTWARE_RADIO=1
+##########################################
+# Nuand
+##########################################
+# bladeRF 1.x
+usb:v2CF0p5246*
+ ID_SOFTWARE_RADIO=1
+
+# bladeRF 1.x (legacy)
+usb:v1D50p6066*
+ ID_SOFTWARE_RADIO=1
+
+# bladeRF 2.0 micro
+usb:v2CF0p5250*
+ ID_SOFTWARE_RADIO=1
+
##########################################
# RTL-SDR
##########################################

View File

@ -0,0 +1,69 @@
From 9b5f228f5ebd20eed794c527d2e37fcaded8bd09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kamil=20P=C3=A1ral?= <kamil.paral@gmail.com>
Date: Mon, 25 Aug 2025 22:00:47 +0200
Subject: [PATCH] 70-mouse.hwdb: Add Razer Basilisk V3, Asus Cerberus, +2 more
All mice were measured using mouse-dpi-tool, and the measurements match vendors
specs, with the exception of Asus Cerberus (it officially has
500/*1000/1500/2500 DPI, but my measurements were quite different, so I opted
to include the real values).
(cherry picked from commit 2f615ec1d1a597586af15e6e94c0b3503a7da108)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index da64f4837e..dc9be4f915 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -191,6 +191,14 @@ mouse:bluetooth:v256fpc63a:name:*
mouse:bluetooth:v05acp030d:name:*:*
MOUSE_DPI=1300@1000
+##########################################
+# Asus
+##########################################
+
+# Asus Cerberus
+mouse:usb:v04d9pa0d6:name:E-Signal/A-One USB Gaming Mouse:*
+ MOUSE_DPI=800@500 *1350@500 1600@500 2650@500
+
##########################################
# Cherry
##########################################
@@ -388,6 +396,10 @@ mouse:usb:v17efp6045:name:Lenovo USB Laser Mouse:*
mouse:usb:v17efp6044:name:ThinkPad USB Laser Mouse:*
MOUSE_DPI=1200@125
+# Lenovo Essential USB Mouse (SM-8823)
+mouse:usb:v17efp608d:name:PixArt Lenovo USB Optical Mouse:*
+ MOUSE_DPI=1600@125
+
##########################################
# Logitech
##########################################
@@ -675,6 +687,10 @@ mouse:usb:v046dpc517:name:Logitech USB Receiver:*
mouse:usb:v046dpc046:name:Logitech USB Optical Mouse:*
MOUSE_DPI=1000@125
+# Logitech RX1500
+mouse:usb:v046dpc061:name:Logitech USB Laser Mouse:*
+ MOUSE_DPI=1000@125
+
# Logitech M100 Optical Mouse
mouse:usb:v046dpc05a:name:Logitech USB Optical Mouse:*
MOUSE_DPI=1000@125
@@ -837,6 +853,10 @@ mouse:usb:v1532p0029:name:Razer Razer DeathAdder:*
mouse:usb:v1532p00a3:name:Razer Razer Cobra:*
MOUSE_DPI=400@1000 800@1000 *1600@1000 3200@1000 6400@1000
+# Razer Basilisk V3
+mouse:usb:v1532p0099:name:Razer Razer Basilisk V3:*
+ MOUSE_DPI=400@125 800@125 1600@125 3200@125 6400@125 400@500 800@500 1600@500 3200@500 6400@500 400@1000 800@1000 *1600@1000 3200@1000 6400@1000
+
##########################################
# Roccat
##########################################

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,79 @@
From 6ac255a57fc953a6de35c307b5b120063ab1c704 Mon Sep 17 00:00:00 2001
From: Martin Homuth-Rosemann <Ho-Ro@users.noreply.github.com>
Date: Tue, 9 Sep 2025 17:32:45 +0200
Subject: [PATCH] Add Hantek DSO-6022 oscilloscopes and compatible devices
Signed-off-by: Martin Homuth-Rosemann <Ho-Ro@users.noreply.github.com>
(cherry picked from commit 3efabf88cd8348e76d5f032dd0b4b2ded7c6f06d)
Resolves: RHEL-72702
---
hwdb.d/70-analyzers.hwdb | 55 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/hwdb.d/70-analyzers.hwdb b/hwdb.d/70-analyzers.hwdb
index 821ebcb1ca..f56ee97739 100644
--- a/hwdb.d/70-analyzers.hwdb
+++ b/hwdb.d/70-analyzers.hwdb
@@ -16,6 +16,61 @@
usb:v1209p4D69*
ID_SIGNAL_ANALYZER=1
+###########################################################
+# Hantek DSO-6022 oscilloscopes and compatible devices
+###########################################################
+# Hantek DSO-6022BE w/o FW
+usb:v04B4p6022*
+ ID_SIGNAL_ANALYZER=1
+
+# Hantek DSO-6022BE with FW
+usb:v04B5p6022*
+ ID_SIGNAL_ANALYZER=1
+
+# Hantek DSO-6022BL w/o FW
+usb:v04B4p602A*
+ ID_SIGNAL_ANALYZER=1
+
+# Hantek DSO-6022BL with FW
+usb:v04B5p602A*
+ ID_SIGNAL_ANALYZER=1
+
+# Hantek DSO-6021 w/o FW
+usb:v04B4p6021*
+ ID_SIGNAL_ANALYZER=1
+
+# Hantek DSO-6021 with FW
+usb:v04B5p6021*
+ ID_SIGNAL_ANALYZER=1
+
+# Voltcraft DSO-2020, w/o FW, becomes DSO-6022BE with FW
+usb:v04B4p2020*
+ ID_SIGNAL_ANALYZER=1
+
+# YiXingDianZiKeJi MDSO w/o FW
+usb:vD4A2p5660*
+ ID_SIGNAL_ANALYZER=1
+
+# YiXingDianZiKeJi MDSO with FW
+usb:v1D50p608E*
+ ID_SIGNAL_ANALYZER=1
+
+# BUUDAI DDS120 w/o FW
+usb:v8102p8102*
+ ID_SIGNAL_ANALYZER=1
+
+# BUUDAI DDS120 with FW
+usb:v04B5p0120*
+ ID_SIGNAL_ANALYZER=1
+
+# Instrustar isds-205b w/o FW
+usb:vD4A2p5661*
+ ID_SIGNAL_ANALYZER=1
+
+# Instrustar isds-205b with FW
+usb:v1D50p1D50*
+ ID_SIGNAL_ANALYZER=1
+
###########################################################
# Total Phase
###########################################################

View File

@ -0,0 +1,29 @@
From b69616e750d8d180a24a14caa8714b3dcdc3bbbf Mon Sep 17 00:00:00 2001
From: DeKoile <132840552+DeKoile@users.noreply.github.com>
Date: Wed, 10 Sep 2025 20:22:36 +0200
Subject: [PATCH] Update 60-sensor.hwdb - Add support for Lenovo Legion Go
This adds support for the 3D Accelerometer of the Lenovo Legion Go
(cherry picked from commit 63254ed696d129cc46752e639ae761b758d7b251)
Resolves: RHEL-72702
---
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 559fd4151e..9c85bc3357 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -778,6 +778,10 @@ sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XE:*
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80U1:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+# Legion Go
+sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnLENOVO:pn83E1:*
+ ACCEL_MOUNT_MATRIX=0,1,0;-1,0,0;0,0,1
+
# Yoga 300-11IBR, display sensor
sensor:modalias:acpi:DUAL250E*:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,34 @@
From f4ee18b08a7dad5562ba3511f19881ee0cc9c5ca Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Tue, 9 Sep 2025 11:56:18 +0200
Subject: [PATCH] hwdb: add Airspy devices
(cherry picked from commit 8fadcd15d3c50145dec1ad49b742c2eb1a690369)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 61b0428363..43ea0f2588 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -21,6 +21,17 @@
# Allowed properties are:
# ID_SOFTWARE_RADIO=0|1
+##########################################
+# Airspy
+##########################################
+# Airspy R2
+usb:v1D50p60A1*
+ ID_SOFTWARE_RADIO=1
+
+# Airspy HF+
+usb:v03EBp800C*
+ ID_SOFTWARE_RADIO=1
+
##########################################
# Analog Devices
##########################################

View File

@ -0,0 +1,56 @@
From c4cca5bb8658701f22f3c8d688811231df0e96ae Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Thu, 11 Sep 2025 00:58:46 +0200
Subject: [PATCH] hwdb: add more devices
- FUNcube Dongle Pro
- Great Scott Gadgets HackRF
- Microtelecom Perseus
(cherry picked from commit c61bdd79ef1703fa988d5f156a4bcff25f98bd90)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 43ea0f2588..7d4138fdc1 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -63,6 +63,35 @@ usb:v3923p7813*
usb:v3923p7814*
ID_SOFTWARE_RADIO=1
+##########################################
+# FUNcube
+##########################################
+# FUNcube Dongle Pro
+usb:v04D8pFB56*
+ ID_SOFTWARE_RADIO=1
+
+# FUNcube Dongle Pro+
+usb:v04D8pFB31*
+ ID_SOFTWARE_RADIO=1
+
+##########################################
+# Great Scott Gadgets
+##########################################
+# HackRF Jawbreaker
+usb:v1D50p604B*
+ ID_SOFTWARE_RADIO=1
+
+# HackRF One
+usb:v1D50p6089*
+ ID_SOFTWARE_RADIO=1
+
+##########################################
+# Microtelecom
+##########################################
+# Perseus
+usb:v04B4p325C*
+ ID_SOFTWARE_RADIO=1
+
##########################################
# Nuand
##########################################

View File

@ -0,0 +1,30 @@
From 08d191a8f240cd5ced65bef1003173e982b055f7 Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Thu, 11 Sep 2025 02:38:06 +0200
Subject: [PATCH] hwdb: add MiriSDR MSi2500 devices
(cherry picked from commit 11c58b6774134fc06fb833ea1720fc0f5ca73453)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 7d4138fdc1..9ae41601a2 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -92,6 +92,13 @@ usb:v1D50p6089*
usb:v04B4p325C*
ID_SOFTWARE_RADIO=1
+##########################################
+# MiriSDR
+##########################################
+# Mirics MSi2500 default (e.g. VTX3D card)
+usb:v1DF7p2500*
+ ID_SOFTWARE_RADIO=1
+
##########################################
# Nuand
##########################################

View File

@ -0,0 +1,28 @@
From 14a249339749efc21cf6cf468510487c731192ff Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Thu, 11 Sep 2025 16:14:18 +0200
Subject: [PATCH] hwdb: add missing Ettus Research B200 rule
https://github.com/EttusResearch/uhd/blob/master/host/utils/uhd-usrp.rules#L18
Not sure why it was missing.
(cherry picked from commit 69442f94b58dd137e3d163b0ec0187f1a5c0ae13)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 9ae41601a2..7b885cac0b 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -59,6 +59,7 @@ usb:v2500p0002*
usb:v2500p0020*
usb:v2500p0021*
usb:v2500p0022*
+usb:v2500p0023*
usb:v3923p7813*
usb:v3923p7814*
ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,30 @@
From ee5a3f14e24c9b9f2594e58deb1e429724d90e8a Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Thu, 11 Sep 2025 21:32:18 +0200
Subject: [PATCH] hwdb: add LimeSDR XTRX devices
(cherry picked from commit 56347fe7f32d0427b371e3c354486241d4e98a20)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 7b885cac0b..79e91dc5ef 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -86,6 +86,13 @@ usb:v1D50p604B*
usb:v1D50p6089*
ID_SOFTWARE_RADIO=1
+##########################################
+# LimeSDR
+##########################################
+# XTRX (USB3380)
+usb:v0525p3380*
+ ID_SOFTWARE_RADIO=1
+
##########################################
# Microtelecom
##########################################

View File

@ -0,0 +1,30 @@
From e2438bb5f5d8632f6e8f1d8a20e2e52b3c4784dd Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Mon, 15 Sep 2025 02:14:08 +0200
Subject: [PATCH] hwdb: add HydraSDR RFOne
(cherry picked from commit bb4c00001d29151fc44267776c6099711eb4362d)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 79e91dc5ef..f1723e1fa9 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -86,6 +86,13 @@ usb:v1D50p604B*
usb:v1D50p6089*
ID_SOFTWARE_RADIO=1
+##########################################
+# HydraSDR
+##########################################
+# HydraSDR RFOne
+usb:v38AFp0001*
+ ID_SOFTWARE_RADIO=1
+
##########################################
# LimeSDR
##########################################

View File

@ -0,0 +1,67 @@
From 1592be7d9b8a652c0f680bd3b6bbd8e20f7d1f02 Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Tue, 16 Sep 2025 01:06:18 +0200
Subject: [PATCH] hwdb: add SDRplay devices
Also remove duplicate MiriSDR device that is just a cheap SDRplay RSP1 copy
(cherry picked from commit 0125be8733023fedb4d97c8e79b19717708e7ade)
Resolves: RHEL-72702
---
hwdb.d/70-software-radio.hwdb | 38 ++++++++++++++++++++++++++++-------
1 file changed, 31 insertions(+), 7 deletions(-)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index f1723e1fa9..63af9c77cd 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -107,13 +107,6 @@ usb:v0525p3380*
usb:v04B4p325C*
ID_SOFTWARE_RADIO=1
-##########################################
-# MiriSDR
-##########################################
-# Mirics MSi2500 default (e.g. VTX3D card)
-usb:v1DF7p2500*
- ID_SOFTWARE_RADIO=1
-
##########################################
# Nuand
##########################################
@@ -299,3 +292,34 @@ usb:v1F4DpD286*
# PROlectrix DV107669 (FC0012)
usb:v1F4DpD803*
ID_SOFTWARE_RADIO=1
+
+##########################################
+# SDRplay
+##########################################
+# RSP1
+usb:v1DF7p2500*
+ ID_SOFTWARE_RADIO=1
+
+# RSP1A
+usb:v1DF7p3000*
+ ID_SOFTWARE_RADIO=1
+
+# RSP2/RSP2pro
+usb:v1DF7p3010*
+ ID_SOFTWARE_RADIO=1
+
+# RSPduo
+usb:v1DF7p3020*
+ ID_SOFTWARE_RADIO=1
+
+# RSPdx
+usb:v1DF7p3030*
+ ID_SOFTWARE_RADIO=1
+
+# RSP1B
+usb:v1DF7p3050*
+ ID_SOFTWARE_RADIO=1
+
+# RSPdxR2
+usb:v1DF7p3060*
+ ID_SOFTWARE_RADIO=1

4390
0518-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
From d29566a502b9af9ed13a79b1ca1be1bd2e395dd2 Mon Sep 17 00:00:00 2001
From: Lucas Adriano Salles <83602841+luc-salles@users.noreply.github.com>
Date: Thu, 2 Oct 2025 08:50:04 -0500
Subject: [PATCH] hwdb: fix calibrate rotation sensor for Positivo K116J
(#39189)
Fixes #39188.
(cherry picked from commit f8646b9a2ef3b6efd9b9e44919b736c569359299)
Resolves: RHEL-72702
---
hwdb.d/60-sensor.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 9c85bc3357..61dc4298c9 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -1054,6 +1054,11 @@ sensor:modalias:acpi:KIOX010A*:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rv
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
ACCEL_LOCATION=display
+# Positivo Duo K116J
+sensor:modalias:acpi:MDA6655*:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116J*
+ ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
+ ACCEL_LOCATION=display
+
########################################
# Predia
#########################################

View File

@ -0,0 +1,36 @@
From b39ab6f5909182def760c7996aad5fe2a0e4d8b9 Mon Sep 17 00:00:00 2001
From: Daniel Brackenbury <daniel.brackenbury@gmail.com>
Date: Tue, 7 Oct 2025 18:00:57 -0400
Subject: [PATCH] Add Nulea M501 trackball to hwdb
(cherry picked from commit 9dde7d9ae850efd3bc35a419ba4acb4427f1d5ad)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index dc9be4f915..98c0149d90 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -821,6 +821,19 @@ mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000:*
mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
MOUSE_DPI=*800@126 1600@126
+
+##########################################
+# Nulea
+##########################################
+
+# Nulea M501 Wireless Trackball (USB Receiver)
+mouse:usb:v25a7pfa61:name:Compx 2.4G Receiver Mouse:*
+ ID_INPUT_TRACKBALL=1
+
+# Nulea M501 Wireless Trackball (Bluetooth)
+mouse:bluetooth:v000ep3412:name:Nulea BT5.0 Mouse:*
+ ID_INPUT_TRACKBALL=1
+
##########################################
# Oklick
##########################################

View File

@ -0,0 +1,26 @@
From 92004bda4c2dd502d7e4ba9a10e754bae2e2d6e9 Mon Sep 17 00:00:00 2001
From: Daniel Brackenbury <daniel.brackenbury@gmail.com>
Date: Tue, 7 Oct 2025 18:04:56 -0400
Subject: [PATCH] add comment to 70-mouse.hwdb regarding generic name for Nulea
M501 USB dongle
(cherry picked from commit 6dfbaa80639d8bbbea6fc7f1976451da575da652)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index 98c0149d90..b0099ece96 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -826,6 +826,8 @@ mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
# Nulea
##########################################
+# Note: it is possible that other devices may use the same wireless dongle,
+# as such this could require revisiting if it causes issues with other mice
# Nulea M501 Wireless Trackball (USB Receiver)
mouse:usb:v25a7pfa61:name:Compx 2.4G Receiver Mouse:*
ID_INPUT_TRACKBALL=1

View File

@ -0,0 +1,31 @@
From 3b3177fd1ab1e93f01362433f75c18a2ef416b73 Mon Sep 17 00:00:00 2001
From: Daniel Brackenbury <daniel.brackenbury@gmail.com>
Date: Tue, 7 Oct 2025 18:55:57 -0400
Subject: [PATCH] remove extra space from new hwdb.d/70-mouse.hwdb entries to
fix failing test
(cherry picked from commit 2dc0e6cd734ac60b21d561bed1edc0cbb8c8d10d)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index b0099ece96..6bee17080a 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -830,11 +830,11 @@ mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
# as such this could require revisiting if it causes issues with other mice
# Nulea M501 Wireless Trackball (USB Receiver)
mouse:usb:v25a7pfa61:name:Compx 2.4G Receiver Mouse:*
- ID_INPUT_TRACKBALL=1
+ ID_INPUT_TRACKBALL=1
# Nulea M501 Wireless Trackball (Bluetooth)
mouse:bluetooth:v000ep3412:name:Nulea BT5.0 Mouse:*
- ID_INPUT_TRACKBALL=1
+ ID_INPUT_TRACKBALL=1
##########################################
# Oklick

View File

@ -0,0 +1,24 @@
From cc8154b3627e812fb5b8e6c7ba26bc4e0ad0bff0 Mon Sep 17 00:00:00 2001
From: helpvisa <daniel.brackenbury@gmail.com>
Date: Wed, 8 Oct 2025 07:18:48 -0400
Subject: [PATCH] remove bonus line
(cherry picked from commit b12cd57f6d8da94073a9cb44eaf753858a6cd5dd)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 1 -
1 file changed, 1 deletion(-)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index 6bee17080a..38e7d9e1d9 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -821,7 +821,6 @@ mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000:*
mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
MOUSE_DPI=*800@126 1600@126
-
##########################################
# Nulea
##########################################

View File

@ -0,0 +1,27 @@
From 31206d6c5d671410e38e946eaf5a589fccf64d74 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Fri, 10 Oct 2025 12:19:04 +0200
Subject: [PATCH] hwdb: drop trailing whitespace
Fixup for 63254ed696d129cc46752e639ae761b758d7b251.
(cherry picked from commit e06b9a1d5265d30061a431cadbdcfce9292c2e15)
Resolves: RHEL-72702
---
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 61dc4298c9..c325697151 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -779,7 +779,7 @@ sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80U1:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Legion Go
-sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnLENOVO:pn83E1:*
+sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnLENOVO:pn83E1:*
ACCEL_MOUNT_MATRIX=0,1,0;-1,0,0;0,0,1
# Yoga 300-11IBR, display sensor

View File

@ -0,0 +1,34 @@
From cfbb079ee81eaf50bb173909cbc27dc2f8e2faf8 Mon Sep 17 00:00:00 2001
From: Daniel Brackenbury <daniel.brackenbury@gmail.com>
Date: Fri, 10 Oct 2025 00:44:37 -0400
Subject: [PATCH] remove Nulea M501 usb entry from hwdb
conflict with other mice using same generic dongle identified (e.g. Protoarc EM11)
(cherry picked from commit 4cbfaaa5491c8d4b69ffe79b2b09061ec41fca3d)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index 38e7d9e1d9..86470bcfda 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -825,12 +825,9 @@ mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
# Nulea
##########################################
-# Note: it is possible that other devices may use the same wireless dongle,
-# as such this could require revisiting if it causes issues with other mice
-# Nulea M501 Wireless Trackball (USB Receiver)
-mouse:usb:v25a7pfa61:name:Compx 2.4G Receiver Mouse:*
- ID_INPUT_TRACKBALL=1
-
+# Note: The Nulea uses a generic USB dongle. Overriding its value would cause
+# other mice to be erroneously registered as trackballs, so only bluetooth
+# detection is added.
# Nulea M501 Wireless Trackball (Bluetooth)
mouse:bluetooth:v000ep3412:name:Nulea BT5.0 Mouse:*
ID_INPUT_TRACKBALL=1

View File

@ -0,0 +1,33 @@
From dfd4f4fb589c30ee511b1fcd74be58794b763187 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Thu, 16 Oct 2025 14:45:20 +0200
Subject: [PATCH] test/parse_hwdb: wrap Or inside an And in a Group
I now get a warning like this with python3-pyparsing-3.1.2-8.fc42:
hwdb.d/parse_hwdb.py:208: UserWarning: warn_multiple_tokens_in_named_alternation:
setting results name 'VALUE' on Or expression will return a list of all parsed
tokens in an And alternative, in prior versions only the first token was returned;
enclose contained argument in Group
('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')
(cherry picked from commit 48aec295a856476aa24b3a6f8c18caa77c5fbe37)
Resolves: RHEL-72702
---
hwdb.d/parse_hwdb.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 9a599e735c..768bd064d0 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -205,7 +205,7 @@ def property_grammar():
for name, val in props]
kbd_props = [Regex(r'KEYBOARD_KEY_[0-9a-f]+')('NAME')
- Suppress('=') -
- ('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')
+ Group('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')
]
abs_props = [Regex(r'EVDEV_ABS_[0-9a-f]{2}')('NAME')
- Suppress('=') -

View File

@ -0,0 +1,82 @@
From cdacb7a8ed9f49f2286761ad25f1432bf8665b8f Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu, 9 Oct 2025 10:55:16 +1000
Subject: [PATCH] rules: extend 60-input-id.rules to allow for bus/vid/pid/name
matches
Same approach as used in 70-mouse.rules, allow for a name-based match
optionally combined with bus/vid/pid (which the existing modalias rule
would already allow us anyway). Note that ID_BUS isn't assigned until
after this rule has run so we need to use the id/bustype attribute
directly.
Related to https://github.com/systemd/systemd/issues/36677
(cherry picked from commit 5b647b84a935abd57ff7aaa61d3a64c5c6ffd0db)
Resolves: RHEL-72702
---
hwdb.d/60-input-id.hwdb | 8 ++++++++
hwdb.d/parse_hwdb.py | 2 +-
rules.d/60-input-id.rules | 11 +++++++++++
3 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index 6730ac9efa..edc166c847 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -5,6 +5,7 @@
#
# Match string formats:
# id-input:modalias:<modalias>
+# id-input:<bus>:v<vid>p<pid>:name:<name>:*
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-input-id-local.hwdb
@@ -47,6 +48,13 @@
# id-input:modalias:input:b0003v1234pABCD*
# ID_INPUT_TOUCHPAD=1
# ID_INPUT=1
+#
+# id-input:usb:v12abp34cd:name:SomeVendor *:*
+# ID_INPUT_TOUCHPAD=1
+# ID_INPUT=1
+#
+# For technical reasons the hexadecimal vid/pid in the modalias match are
+# uppercase but lowercase in the bus/vid/pid/name match.
# Sort by brand, model
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 768bd064d0..bca18eadcd 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -75,7 +75,7 @@ UDEV_TAG = Word(string.ascii_uppercase, alphanums + '_')
TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
'evdev': ('name', 'atkbd', 'input'),
'fb': ('pci', 'vmbus'),
- 'id-input': ('modalias'),
+ 'id-input': ('modalias', 'bluetooth', 'i2c', 'usb'),
'touchpad': ('i8042', 'rmi', 'bluetooth', 'usb'),
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
'keyboard': ('name', ),
diff --git a/rules.d/60-input-id.rules b/rules.d/60-input-id.rules
index bb8a812d1b..c2bdbfdc27 100644
--- a/rules.d/60-input-id.rules
+++ b/rules.d/60-input-id.rules
@@ -5,4 +5,15 @@ ACTION=="remove", GOTO="id_input_end"
SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
SUBSYSTEM=="input", IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=id-input:modalias:"
+# id-input:<bus>:v<vid>p<pid>:name:<name>:*
+KERNELS=="input*", ATTRS{id/bustype}=="0003", \
+ IMPORT{builtin}="hwdb 'id-input:usb:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \
+ GOTO="id_input_end"
+KERNELS=="input*", ATTRS{id/bustype}=="0005", \
+ IMPORT{builtin}="hwdb 'id-input:bluetooth:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \
+ GOTO="id_input_end"
+KERNELS=="input*", ATTRS{id/bustype}=="0018", \
+ IMPORT{builtin}="hwdb 'id-input:i2c:v$attr{id/vendor}p$attr{id/product}:name:$attr{name}:'", \
+ GOTO="id_input_end"
+
LABEL="id_input_end"

View File

@ -0,0 +1,34 @@
From 405382d953a097375d3db8dbb533370175302e21 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu, 9 Oct 2025 10:56:54 +1000
Subject: [PATCH] hwdb: don't tag a named Mouse device as pointingstick
The generic kernel hid drivers split up devices based on the application
collection, appending a suffix for each collection (e.g. Touchpad,
Mouse, ...). Many i2c touchpads get a "... Mouse" event node which is
mislabelled as pointingstick by the input_id builtin, see commit
3d7ac1c655ec40f3829543072494dcdfb92dbc6b.
Closes: https://github.com/systemd/systemd/issues/36677
(cherry picked from commit c4f072aaadedd9029bf0bef2036fdab8a4a3c180)
Resolves: RHEL-72702
---
hwdb.d/60-input-id.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index edc166c847..d32bfedf59 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -58,6 +58,10 @@
# Sort by brand, model
+# Any i2c device with a Mouse suffix in the name is not a pointing stick
+id-input:i2c:*:name:*Mouse:
+ ID_INPUT_POINTINGSTICK=0
+
# Code Mercenaries Hard- und Software GmbH Virtual RC USB
id-input:modalias:input:b0003v07C0p1125*
ID_INPUT_MOUSE=

View File

@ -0,0 +1,30 @@
From 6cdeb8656460b0716727132c5448b1271f1a563f Mon Sep 17 00:00:00 2001
From: Hans de Goede <hansg@kernel.org>
Date: Mon, 20 Oct 2025 20:52:00 +0200
Subject: [PATCH] hwdb: Add V64x_V65xAU to list of Clevo models where scancode
f7+f8 get mapped to touchpad-toggle
Fn + F1 which is the shortcut for toggling the touchpad on/off sends
atkbd scancodes f7 (first press) + f8 (second press) just like on various
other Clevo models. Add the V64x_V65xAU model to the list of models where
these scancodes are mapped to touchpad-toggle.
(cherry picked from commit b8490c9e51d814287eaa146a438934432f912dfe)
Resolves: RHEL-72702
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 20c8662af4..8b5bc775fd 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -344,6 +344,7 @@ 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:pnV64x_V65xAU:*
KEYBOARD_KEY_f7=touchpad_toggle # Touchpad Toggle
KEYBOARD_KEY_f8=touchpad_toggle # Touchpad Toggle

View File

@ -0,0 +1,31 @@
From 3fc427e216a2ead5cd669800066c8e4bc6572191 Mon Sep 17 00:00:00 2001
From: Moisticules <interknet@gmail.com>
Date: Thu, 30 Oct 2025 05:44:01 +0000
Subject: [PATCH] hwdb: gpd micropc2 sensor (#39493)
This rule calibrates rotation of the screen display by adjusting matrix
of sensor for the GPD MicroPC 2
Co-authored-by: Moisticules <interknet@live.com>
(cherry picked from commit f54d72c2b6463d3ba6d418cb710db5fed80e8fc0)
Resolves: RHEL-72702
---
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 c325697151..b7ae0892ff 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -601,6 +601,10 @@ sensor:modalias:acpi:MXC6655*:dmi:*:svnGPD:pnG1628-04:*
sensor:modalias:acpi:BMI0160*:dmi:*:svnGPD:pnG1619*:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+# GPD MicroPC 2
+sensor:modalias:acpi:MXC6655*:dmi:*:svnGPD:pnG1688-*:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, -1
+
#########################################
# Hometech
########################################

View File

@ -0,0 +1,27 @@
From 074be5a0c6c69baa0fc7545cddf9f48cd23f2d09 Mon Sep 17 00:00:00 2001
From: Marcos Alano <mhalano@users.noreply.github.com>
Date: Thu, 30 Oct 2025 08:16:26 -0300
Subject: [PATCH] hwdb: add support for the Logitech MX Master 4 (#39490)
(cherry picked from commit 44ca5b800230f36a49e6758b6a92b5fc50a0f088)
Resolves: RHEL-72702
---
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 86470bcfda..efd67da555 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -611,6 +611,10 @@ mouse:usb:v046dpc548:name:Logitech USB Receiver Mouse:*
mouse:bluetooth:v046dpb035:name:MX Master 3S B Mouse:*
MOUSE_DPI=1000@142
+# Logitech MX Master 4 (via Bluetooth)
+mouse:bluetooth:v046dpb042:name:MX Master 4 Mouse:*
+ MOUSE_DPI=1000@142
+
# Logitech MX Ergo
mouse:usb:v046dp406f:name:Logitech MX Ergo:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:406f:*

View File

@ -0,0 +1,28 @@
From 427c9365ec32aef2108aac6af635ffb9cdf3ecfe Mon Sep 17 00:00:00 2001
From: Bastian Almendras <11617389+CypherNoodle@users.noreply.github.com>
Date: Thu, 13 Nov 2025 16:33:47 -0300
Subject: [PATCH] hwdb: add entry for Acer Switch One 10 (SW1-011) (#39716)
Add the correct rotation for Acer Switch One 10 (SW1-011)
(cherry picked from commit a0d1dc662a7e47b0caa81088ddae6389fabeeb20)
Resolves: RHEL-72702
---
hwdb.d/60-sensor.hwdb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index b7ae0892ff..12bfc890aa 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -103,6 +103,9 @@ sensor:modalias:acpi:SMO8500:*:dmi:*Acer*:pnOneS1002:*
sensor:modalias:acpi:KIOX0009*:dmi:*:svnAcer:pnOneS1003:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+sensor:modalias:acpi:KIOX000A*:dmi:*:svnAcer:pnSwitchOneSW1-011:*
+ ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
+
sensor:modalias:acpi:BOSC0200*:dmi:*:svnAcer*:pnSwitchSW312-31:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,34 @@
From b9f559717590db33f965a29ed245eb0a058746d1 Mon Sep 17 00:00:00 2001
From: Armin Wolf <W_Armin@gmx.de>
Date: Mon, 17 Nov 2025 04:02:28 +0100
Subject: [PATCH] keymap: Ignore brightness keys on Dell Inspiron 3505 to avoid
double events
On the Dell Inspiron 3505 both the atkbd and acpi-video input devices report
an event for pressing the brightness up / down keys, resulting in user
space seeing double events and increasing / decreasing the brightness 2 steps
for each keypress.
Fix this by adding the device to the already existing list of Dell
devices that suffer from the same problem.
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
(cherry picked from commit 2fc4278b969f95949f872e07280f4c310c9d9924)
Resolves: RHEL-72702
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 8b5bc775fd..c2976deea4 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -444,6 +444,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron11-3168:pvr*
# Dell Inspiron 1520 and Latitude 2110
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*3505:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*2110:*
KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore
KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore

18909
0534-Update-hwdb.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
From 3268cc9718218299093db703afb1b1d72d9db789 Mon Sep 17 00:00:00 2001
From: Charlie Le <20309750+CharlieQLe@users.noreply.github.com>
Date: Mon, 17 Nov 2025 08:34:03 -0500
Subject: [PATCH] hwdb: Add Elecom IST Pro trackball (#39762)
Added entries for the Elecom IST Pro via its three connection methods- a
USB cable, the included G1000 USB receiver, and Bluetooth.
The G1000 USB receiver _may_ have to be removed in the future depending
on the input devices that can connect to it. According to Elecom, the
receiver can have up to three different input devices connected such as
trackballs, mice, keyboards, etc. That said, as far as I can tell, the
IST Pro is the only released Elecom device that uses the receiver. The
non-pro model and the upcoming Elecom Huge Plus might use the same
receiver, but that should not matter as both devices are trackballs.
(cherry picked from commit 7e337327e9e789d75f2bda0c82ecd76005f48a07)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index efd67da555..e93755d860 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -267,6 +267,18 @@ mouse:usb:v056ep0155:name:ELECOM ELECOM Relacon:*
MOUSE_DPI=*500 1000 1500
MOUSE_WHEEL_CLICK_ANGLE=30
+# Elecom IST Pro (via wired usb) (M-IPT10MRSABK)
+mouse:usb:v056ep018a:name:ELECOM ELECOM IST PRO Mouse:*
+ ID_INPUT_TRACKBALL=1
+
+# Elecom IST Pro (via usb receiver) (M-IPT10MRSABK)
+mouse:usb:v056ep01a9:name:ELECOM ELECOM Bridge G1000 Mouse:*
+ ID_INPUT_TRACKBALL=1
+
+# Elecom IST Pro (via Bluetooth) (M-IPT10MRSABK)
+mouse:bluetooth:v056ep018a:name:ELECOM IST PRO Mouse:*
+ ID_INPUT_TRACKBALL=1
+
##########################################
# Fujitsu Siemens
##########################################

View File

@ -0,0 +1,36 @@
From 967ecaaccf1a2095937881ea46ff9b7a5dfa9622 Mon Sep 17 00:00:00 2001
From: Pranay Pawar <75427894+Bugaddr@users.noreply.github.com>
Date: Mon, 17 Nov 2025 21:03:42 +0530
Subject: [PATCH] hwdb: Fix keyboard backlight keys on Acer Nitro 5 AN515-58
(#39769)
Pressing Fn+F10 on Acer Nitro 5 AN515-58 incorrectly triggers display
brightness down (scancode 0xef) instead of keyboard backlight control,
causing the screen to go completely dark. Similarly, Fn+F9 (scancode
0xf0) has no function explictily stated in hwdb causing unknown keycode
debug messages.
Both keys should control the keyboard backlight as labeled on the
keyboard. Map scancodes 0xef and 0xf0 to kbdillumup and kbdillumdown
respectively to enable proper keyboard backlight control.
(cherry picked from commit 7e8f6ece84fc8925ca71381903d05ab321f2fbb0)
Resolves: RHEL-72702
---
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 c2976deea4..715d67dbb0 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -237,6 +237,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-47:pvr*
# Nitro AN515-58
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
+ KEYBOARD_KEY_ef=kbdillumup # Fn+F10
+ KEYBOARD_KEY_f0=kbdillumdown # Fn+F9
KEYBOARD_KEY_8a=micmute # Microphone mute button
KEYBOARD_KEY_55=power

View File

@ -0,0 +1,31 @@
From df825ec49e77a0ef697532bbba7d3638a74ca980 Mon Sep 17 00:00:00 2001
From: Craig McLure <craig@mclure.net>
Date: Mon, 24 Nov 2025 06:02:10 +0000
Subject: [PATCH] hwdb: Add alternative mode for Beacn Mic (#39868)
The Beacn Mic's alt-mode behaves identically to it's primary mode from a
communication perspective, it just presents a different channel
configuration to ALSA.
(cherry picked from commit ab5a79ff5d9bae48d544585c84768234e60644bd)
Resolves: RHEL-72702
---
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 aa23af6add..c130acfb8f 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -37,6 +37,10 @@ usb:v2982p1967*
usb:v33AEp0001*
ID_AV_PRODUCTION_CONTROLLER=1
+# Beacn Mic (alt mode)
+usb:v33AEp8001*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
# Beacn Studio
usb:v33AEp0003*
ID_AV_PRODUCTION_CONTROLLER=1

2257
0538-Update-hwdb.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
From 4863b227d09445698c14c7fb300793c0af4cf3db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ab=C3=ADlio=20Costa?= <abmantis@users.noreply.github.com>
Date: Sat, 29 Nov 2025 03:05:13 +0000
Subject: [PATCH] hwdb: add ProtoArc EM01 NL mouse configuration
(cherry picked from commit 2fd63f831fb1c19baaf1e2c4967cbb806567d4e2)
Resolves: RHEL-72702
---
hwdb.d/70-mouse.hwdb | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index e93755d860..ae1309cdeb 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -856,6 +856,19 @@ mouse:bluetooth:v000ep3412:name:Nulea BT5.0 Mouse:*
mouse:bluetooth:v056ep0061:name:Laser BTmouse:*
MOUSE_DPI=*800@333 1600@333
+##########################################
+# ProtoArc
+##########################################
+
+# ProtoArc EM01 NL
+mouse:usb:v25a7pfa61:name:Compx 2.4G Receiver Mouse:*
+ ID_INPUT_TRACKBALL=1
+ MOUSE_DPI=200@250 *400@250 800@250 1200@250 1600@250
+
+mouse:bluetooth:v25a7pfaa0:name:EM01 NL:*
+ ID_INPUT_TRACKBALL=1
+ MOUSE_DPI=200@150 *400@150 800@150 1200@150 1600@150
+
##########################################
# P-Active
##########################################

View File

@ -0,0 +1,27 @@
From f0eba85d74e1a95339be1353c2087e2a3605de4c Mon Sep 17 00:00:00 2001
From: Stephanie Wilde-Hobbs <github@stephanie.is>
Date: Mon, 8 Dec 2025 19:38:17 +0100
Subject: [PATCH] hwdb: add Magic Trackpad v2 USB-C (2024) to quirks (#40032)
Without being marked as an external trackpad the palm rejection triggers
too easily. Tested with a local hwdb rule.
(cherry picked from commit 6c9b778076bbb9d4a20b48a70130fb1c01eef0ca)
Resolves: RHEL-72702
---
hwdb.d/70-touchpad.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/70-touchpad.hwdb b/hwdb.d/70-touchpad.hwdb
index 83089bba28..067ad609a3 100644
--- a/hwdb.d/70-touchpad.hwdb
+++ b/hwdb.d/70-touchpad.hwdb
@@ -43,6 +43,7 @@ touchpad:bluetooth:*
# Magic Trackpad (1 and 2)
touchpad:usb:v05acp030e:*
touchpad:usb:v05acp0265:*
+touchpad:usb:v05acp0324:*
ID_INPUT_TOUCHPAD_INTEGRATION=external
###########################################################

View File

@ -0,0 +1,39 @@
From e9e9f36cc97fa78787305f8b4939a6b39b6b8154 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Wed, 10 Dec 2025 05:18:01 +0100
Subject: [PATCH] hwdb: sensor: Remove Lenovo IdeaPad D330 accel mount matrix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reading values from iio-sensor we are getting bad values. This matrix was added because the panel was a vertical one but the normal position is horizontal and the sensor is not bad oriented.
Removing the matrix ensure we have correct orientation values and prevent from misleads where the incorrect values we were getting messed up.
For example mutter actually is setting incorrect screen rotation for devices with panel orientation quirks.
I'm pretty sure that there are more devices where we have incorrectly "corrected" the sensor values when the only problem was the panel orientation.
Signed-off-by: David Santamaría Rogado <howl.nsp@gmail.com>
(cherry picked from commit a07b184e8ccbecafc1fce5a0cfffe87c6a497134)
Resolves: RHEL-72702
---
hwdb.d/60-sensor.hwdb | 4 ----
1 file changed, 4 deletions(-)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 12bfc890aa..870ef879bb 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -756,10 +756,6 @@ sensor:modalias:acpi:BMA250E*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-1030:*
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-830:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
-# IdeaPad D330-10IGM (both 81H3 and 81MD product names)
-sensor:modalias:acpi:BOSC0200*:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
- ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
-
# IdeaPad Miix 300
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrMIIX300-*:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

4320
0542-Update-hwdb.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,88 @@
From 299a32979d13bb134d02ca8fad421c75c05f9e69 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Wed, 10 Dec 2025 17:08:57 +0000
Subject: [PATCH] hwdb: update autosuspend rules
ninja -C build update-hwdb-autosuspend
(cherry picked from commit edfbd7654f0ff406c47aeb5f63d8ab3eab1041cd)
Resolves: RHEL-72702
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index 6f1099318a..0b04282b88 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -84,8 +84,10 @@ usb:v1C7Ap0571*
# Supported by libfprint driver egismoc
usb:v1C7Ap0582*
usb:v1C7Ap0583*
+usb:v1C7Ap0584*
usb:v1C7Ap0586*
usb:v1C7Ap0587*
+usb:v1C7Ap0588*
usb:v1C7Ap05A1*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -167,6 +169,7 @@ usb:v04F3p0C99*
usb:v04F3p0C9D*
usb:v04F3p0C9F*
usb:v04F3p0CA3*
+usb:v04F3p0CA8*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -178,10 +181,12 @@ usb:v1C7Ap0603*
# Supported by libfprint driver focaltech_moc
usb:v2808p9E48*
usb:v2808pD979*
+usb:v2808pA27A*
usb:v2808pA959*
usb:v2808pA99A*
usb:v2808pA57A*
usb:v2808pA78A*
+usb:v2808p1579*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -231,6 +236,7 @@ usb:v27C6p659C*
usb:v27C6p6A94*
usb:v27C6p6512*
usb:v27C6p689A*
+usb:v27C6p66A9*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -242,6 +248,7 @@ usb:v298Dp1010*
# Supported by libfprint driver realtek
usb:v0BDAp5813*
usb:v0BDAp5816*
+usb:v2541pFA03*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -268,11 +275,13 @@ usb:v06CBp0126*
usb:v06CBp0129*
usb:v06CBp015F*
usb:v06CBp0168*
+usb:v06CBp0169*
usb:v06CBp016C*
usb:v06CBp0173*
usb:v06CBp0174*
usb:v06CBp019D*
usb:v06CBp019F*
+usb:v06CBp01A0*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -432,7 +441,6 @@ usb:v16D1p1027*
usb:v1C7Ap0300*
usb:v1C7Ap0575*
usb:v1C7Ap0576*
-usb:v1C7Ap0584*
usb:v1C7Ap0577*
usb:v1C7Ap057E*
usb:v2541p0236*

View File

@ -0,0 +1,35 @@
From c025c989c4f92f314ba9fa96159c18af8e610078 Mon Sep 17 00:00:00 2001
From: 0x06 <56885523+0x000006@users.noreply.github.com>
Date: Thu, 11 Dec 2025 23:53:51 +0100
Subject: [PATCH] hwdb: Add ACCEL_MOUNT_MATRIX for variant of TERRA PAD 1061
Tested with monitor-sensor
(cherry picked from commit 85e6b9838016abe7fc78e57d7da029affc38b800)
Resolves: RHEL-72702
---
hwdb.d/60-sensor.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 870ef879bb..19940da20c 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -1254,9 +1254,16 @@ sensor:modalias:acpi:SMO8500*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd11/20/201
#########################################
# Wortmann
#########################################
+
+# Wortmann AG TERRA PAD 1061
sensor:modalias:acpi:KIOX000A*:dmi:*:svnWortmann_AG:pnTERRA_PAD_1061:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
+# Wortmann AG TERRA PAD 1061
+# This is a variant with another sensor.
+sensor:modalias:acpi:SMO8500*:dmi:*:svnWortmann_AG:pnTERRA_PAD_1061:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
+
#########################################
# Yours
#########################################

View File

@ -0,0 +1,31 @@
From e7640818468bf9edd8ed54014bced2910d3e073c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Sun, 14 Dec 2025 23:14:00 +0100
Subject: [PATCH] hwdb: sensor: Add HP OmniBook Ultra Flip 14 accel mount
matrix (#40076)
HP OmniBook Ultra Flip Laptop 14-fh0xxx tilt is inverted by default so
screen tilt-face down is up and vice versa, invert the axis then.
(cherry picked from commit 6855c4a7f74fc724f59503e47b72493cb044892e)
Resolves: RHEL-72702
---
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 19940da20c..a0379abed0 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -628,6 +628,10 @@ sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*
sensor:modalias:platform:lis3lv02d:dmi:*svn*HP*:*
ACCEL_LOCATION=base
+# HP OmniBook Ultra Flip Laptop 14-fh0xxx
+sensor:modalias:platform:HID-SENSOR-200073:dmi:*:svnHP:pnHPOmniBookUltraFlipLaptop14-fh0xxx:*
+ ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, -1
+
sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream8Tablet:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,35 @@
From bc638ff70f5e60655d1ed18da57ac414d099f36e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Sun, 14 Dec 2025 23:16:10 +0100
Subject: [PATCH] hwdb: sensor: Remove Lenovo IdeaPad Duet 3 accel mount matrix
(#40075)
Same case as IdeaPad D330, matrix applied to solve issues in wayland
compositors when is not the way because correct data is send by the
sensor.
As described in #39529, let's remove the matrix.
(cherry picked from commit a0a64f6b673e877e9d78fd31b171d75388add6fa)
Resolves: RHEL-72702
---
hwdb.d/60-sensor.hwdb | 5 -----
1 file changed, 5 deletions(-)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index a0379abed0..177aee49a9 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -803,11 +803,6 @@ 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) 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
-
#########################################
# LINX
#########################################

View File

@ -0,0 +1,28 @@
From 0c62771bd44a5c9c67b73e62c9eba187f35a42cd Mon Sep 17 00:00:00 2001
From: 0x06 <56885523+0x000006@users.noreply.github.com>
Date: Sun, 14 Dec 2025 23:19:10 +0100
Subject: [PATCH] hwdb: Fix ACCEL_MOUNT_MATRIX for Lenovo Ideapad MIIX 310-ICR
(#40067)
Tested with monitor-sensor on bvr1HCN44WW
(cherry picked from commit 8e20b9a79d2e00eedb6b55e5bc3293c783bed588)
Resolves: RHEL-72702
---
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 177aee49a9..c5446bd17d 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -768,7 +768,7 @@ sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrMIIX300-*:*
# a portrait LCD panel, versions with bvr 1HCN3?WW have a landscape panel
sensor:modalias:acpi:KIOX000A*:dmi:bvnLENOVO:bvr1HCN4?WW:*:svnLENOVO:pn80SG:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnLENOVO:bvr1HCN2?WW:*:svnLENOVO:pn80SG:*
- ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
+ ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, -1
# IdeaPad Miix 310 BIOS version bvr1HCN3?WW (variant 3)
sensor:modalias:acpi:KIOX000A*:dmi:bvnLENOVO:bvr1HCN3?WW:*:svnLENOVO:pn80SG:*

View File

@ -0,0 +1,34 @@
From c02c40417b50e54fa87530aef8a8c150fa574424 Mon Sep 17 00:00:00 2001
From: QuickSwift315490 <qs315490@outlook.com>
Date: Wed, 17 Dec 2025 21:26:47 +0800
Subject: [PATCH] hwdb: fix unstable button triggering on Mipad 2 under GNOME
(#40071)
Change unknown key mappings to reserved.
A KEY_RESERVED button is marked as reserved and passed to the kernel. This will stop the kernel from passing this keystroke event to user space.
If unknown, the key is set to KEY_UNKNOWN and the event is passed to user space, which we want to avoid.
(cherry picked from commit f9425092c62461a7164f4253f64929603d26af52)
Resolves: RHEL-72702
---
hwdb.d/60-keyboard.hwdb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 715d67dbb0..f47802a905 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2132,8 +2132,8 @@ 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_700e0=reserved # LeftCtrl -> ignore
+ KEYBOARD_KEY_700e3=reserved # 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

13965
0549-Update-hwdb.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,30 @@
From b91f9505282461d35cdcb304a0326b8f7ad22e38 Mon Sep 17 00:00:00 2001
From: smosia <0stas0@mail.ru>
Date: Sat, 27 Dec 2025 14:22:27 +0300
Subject: [PATCH] hwdb: touchpad config for Apple MacbookPro12,1 Early 2015
(cherry picked from commit 4a0743e3983a2156ffa941a2c5f889c0c0d41920)
Resolves: RHEL-72702
---
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 23caebe4b9..57b349bff3 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -132,6 +132,13 @@ evdev:input:b0003v05ACp025B*
EVDEV_ABS_35=::94
EVDEV_ABS_36=::92
+# MacbookPro12,1 (unibody, Early 2015)
+evdev:input:b0003v05ACp0273*
+ EVDEV_ABS_00=::97
+ EVDEV_ABS_01=::92
+ EVDEV_ABS_35=::97
+ EVDEV_ABS_36=::92
+
# MacBook8,1 (2015), MacBook9,1 (2016), MacBook10,1 (2017)
evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBook8,1:*
evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBook9,1:*

View File

@ -0,0 +1,30 @@
From 3b18355415f437c59809ff94f1c365a1cdfaa523 Mon Sep 17 00:00:00 2001
From: kiamvdd <kiamvdd@outlook.com>
Date: Fri, 26 Dec 2025 21:14:54 +0100
Subject: [PATCH] Add Lenovo Y50-70 touchpad to 60-evdev.hwdb
(cherry picked from commit 506b790d71aff5cd8612c3dd256872341db94ab9)
Resolves: RHEL-72702
---
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 57b349bff3..e09c221d15 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -704,6 +704,13 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapadY700-14ISK:*
EVDEV_ABS_35=::27
EVDEV_ABS_36=::29
+#Lenovo Y50-70
+evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoY50-70**
+ EVDEV_ABS_00=164:3918:37
+ EVDEV_ABS_01=120:1935:26
+ EVDEV_ABS_35=164:3918:37
+ EVDEV_ABS_36=120:1935:26
+
# Lenovo Ideapad 310S-14ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad310S-14ISK:*
EVDEV_ABS_00=113:3960:37

View File

@ -0,0 +1,30 @@
From fb20729d683b6966984555cbbfdd2d8dd18a6a90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Tue, 30 Dec 2025 01:24:38 +0100
Subject: [PATCH] quirks: sensor: add info about ACPI accel_matrix
Just inform about if an ACPI accel matrix exists, is the default one instead
the indentity matrix.
(cherry picked from commit e9b3bfb3f5979862af06e6da18ba43eeb79f0edb)
Resolves: RHEL-72702
---
hwdb.d/60-sensor.hwdb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index c5446bd17d..e1ca6af48e 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -41,7 +41,9 @@
# PROXIMITY_NEAR_LEVEL=<value>
#
# where <matrix> is a mount-matrix in the format specified in the IIO
-# subsystem[1]. The default, when unset, is equivalent to:
+# subsystem[1]. The default, when unset, is the one defined by the ACPI
+# found in /sys/bus/iio/devices/iio\:deviceXXX/in_mount_matrix or, in
+# absence of it, is equivalent to:
# ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
# eg. the identity matrix,
# and <value> is an integer value above or equal to which an object is

View File

@ -0,0 +1,39 @@
From 07854f48b03cb8dfb974f447b7d6e28b5dfacb42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Thu, 1 Jan 2026 19:52:56 +0100
Subject: [PATCH] quirks: Re-add D330 accel_matrix as identity one (#40226)
When testing to correct accelerometer values I set locally the identity
matrix to override the quirk. The values were fine but removing all the
matrices give incorrect values.
The mistake was thinking that identity matrix is the default one when no
quirks are set. It is, but only when the ACPI doesn't have another one.
Set identity matrix for this device to correct accelerometer values.
Follow-up for a07b184e8ccbecafc1fce5a0cfffe87c6a497134.
(cherry picked from commit 11adc8bad52b8860efe2c26b69f080707a69a748)
Resolves: RHEL-72702
---
hwdb.d/60-sensor.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index e1ca6af48e..54182cb504 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -762,6 +762,11 @@ sensor:modalias:acpi:BMA250E*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-1030:*
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-830:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+# IdeaPad D330-10IGM (both 81H3 and 81MD product names)
+# ACPI in_mount_matrix is 0, -1, 0; 1, 0, 0; 0, 0, 1, but the correct one is identity matrix.
+sensor:modalias:acpi:BOSC0200*:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
+ ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
+
# IdeaPad Miix 300
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrMIIX300-*:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,32 @@
From 4e584066e99f6b69ef5c03f151c2e84f41e4e643 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Sat, 3 Jan 2026 21:52:38 +0100
Subject: [PATCH] quirks: touchpad: Set Duet 3 bt touchpad internal
The touchpad is in a keyboard and touchpad combo that can be attached and
detached in a convertible device.
(cherry picked from commit 3ae637c42ac316692ce8512b1ad63e4c254e00b1)
Resolves: RHEL-72702
---
hwdb.d/70-touchpad.hwdb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hwdb.d/70-touchpad.hwdb b/hwdb.d/70-touchpad.hwdb
index 067ad609a3..d5285566f1 100644
--- a/hwdb.d/70-touchpad.hwdb
+++ b/hwdb.d/70-touchpad.hwdb
@@ -52,6 +52,12 @@ touchpad:usb:v05acp0324:*
touchpad:usb:v044ep1221:*
ID_INPUT_TOUCHPAD_INTEGRATION=external
+###########################################################
+# Lenovo IdeaPad Duet3 10IGL5 (82AT)
+###########################################################
+touchpad:bluetooth:v17efp60fa:*
+ ID_INPUT_TOUCHPAD_INTEGRATION=internal
+
###########################################################
# Logitech
###########################################################

View File

@ -0,0 +1,44 @@
From 9cd4334d3c1bed09d07f091bd692d3e6b3d0f371 Mon Sep 17 00:00:00 2001
From: "Derek J. Clark" <derekjohn.clark@gmail.com>
Date: Mon, 5 Jan 2026 19:01:30 -0800
Subject: [PATCH] hwdb: Add missing scancodes for Lenovo Legion devices
Adds missing scancodes for Lenovo Legion Go, Go S, and Go 2. When long
pressing the power button the device should issue a LEFTMETA + F16
combo. The LEFTMETA code fires properly, but the F16 is not mapped.
Go and Go S devices detect as AT Translated Set 2 Keyboard, while Go 2
detects as AT Raw Set 2 Keyboard, hence the multiple entries.
Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
(cherry picked from commit 8ea31c2307dda52cbbcd19dbe39f3cfdd7a3b8a5)
Resolves: RHEL-72702
---
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 f47802a905..82a04a8a8e 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1175,6 +1175,19 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn21LG:pvr*
KEYBOARD_KEY_0a=!9
KEYBOARD_KEY_0b=!0
+# Lenovo Legion Go & Go S
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83E1:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83L3:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83N6:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83Q2:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83Q3:*
+ KEYBOARD_KEY_67=f16 # Power button long press
+
+# Lenovo Legion Go 2
+evdev:name:AT Raw Set 2 keyboard:dmi:*:svnLENOVO:pn83N0:*
+evdev:name:AT Raw Set 2 keyboard:dmi:*:svnLENOVO:pn83N1:*
+ KEYBOARD_KEY_20=f16 # Power button long press
+
###########################################################
# LG
###########################################################

View File

@ -0,0 +1,27 @@
From 5e56183bbccb0e98e40098ce7a79e90afb4b068a Mon Sep 17 00:00:00 2001
From: "Derek J. Clark" <derekjohn.clark@gmail.com>
Date: Mon, 5 Jan 2026 20:07:21 -0800
Subject: [PATCH] hwdb: Add missing vendor names for older AYANEO devices Adds
AYADEVICE and AYA NEO vendor names. Early founders editon and 2021 models
used these DMI values instead of AYANEO
(cherry picked from commit 9573ad4e76d28b459123cfb4b5cffab474738ab3)
Resolves: RHEL-72702
---
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 82a04a8a8e..a760969574 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -320,6 +320,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAYANEO:pnKUN:pvr*
# multi-scancode sequence. The specific preceding codes
# depend on the model, but the final scancode is always the
# same.
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYA NEO:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYADEVICE:*
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYANEO:*
KEYBOARD_KEY_66=f15 # LC (All models)
KEYBOARD_KEY_67=f16 # RC (All models)

View File

@ -0,0 +1,29 @@
From 11e7db7f66e0cfc4f9c961de291b62fe2325adf0 Mon Sep 17 00:00:00 2001
From: francescoza6 <106155863+francescoza6@users.noreply.github.com>
Date: Wed, 31 Dec 2025 18:30:54 +0100
Subject: [PATCH] hwdb: add matrix for ASUS 2-in-1 T101HA
The matrix tested working in monitor-sensor (06 gen 2026),
corrects accel values and not just display output.
(cherry picked from commit fcc6b299210585f2ed3cfa4e4cdc01a0195d3fc3)
Resolves: RHEL-72702
---
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 54182cb504..d29c08a5f1 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -160,7 +160,8 @@ 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
-# Asus Transformer Mini T103HAF
+# Asus Transformer Mini T101HA & T103HAF
+sensor:modalias:platform:HID-SENSOR-200073*:dmi:*svn*ASUSTeK*:pnT101HA:*
sensor:modalias:platform:HID-SENSOR-200073*:dmi:*svn*ASUSTeK*:pnT103HAF:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1

View File

@ -0,0 +1,25 @@
From fa9c5fb503fb90c2e9f04b11cee62fea83e48a04 Mon Sep 17 00:00:00 2001
From: Dirk Su <dirk.su@canonical.com>
Date: Thu, 15 Jan 2026 10:23:56 +0800
Subject: [PATCH] hwdb: add HP EliteBoard Mic mute key mapping
(cherry picked from commit 1ef107cb221839bf29a2a9eea6f3ead4e76198bd)
Resolves: RHEL-72702
---
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 a760969574..f37c3c8bec 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -813,6 +813,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPElite*x360*:*
# HP Elite Dragonfly
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonfly*:*
+# HP EliteBoard
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBoard*:*
# HP ProBook 440 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP440G2:*
# HP ProBook

View File

@ -0,0 +1,26 @@
From a35ccdfe825b1bec3282af28a06ce2aa9bc7756a Mon Sep 17 00:00:00 2001
From: Florian Klink <flokli@flokli.de>
Date: Fri, 16 Jan 2026 13:30:05 +0200
Subject: [PATCH] hwdb: Add GPD Pocket 4 chassis quirk
See https://github.com/systemd/systemd/issues/7390#issuecomment-573607402
(cherry picked from commit f9a3f729ac35cda33586ef4d44169a7a1cfc398d)
Resolves: RHEL-72702
---
hwdb.d/20-dmi-id.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/20-dmi-id.hwdb b/hwdb.d/20-dmi-id.hwdb
index 905d6923bb..855aa90936 100644
--- a/hwdb.d/20-dmi-id.hwdb
+++ b/hwdb.d/20-dmi-id.hwdb
@@ -31,3 +31,7 @@ dmi:bvnLENOVO*
# Microsoft Surface 1's chassis type
dmi:bvnMicrosoft Corporation*:pvrSurface with Windows 8 Pro*
ID_CHASSIS=tablet
+
+# GPD Pocket 4 chassis type
+dmi:bvnAmericanMegatrendsInternational*:rvnGPD:rnG1628-04*
+ ID_CHASSIS=convertible

View File

@ -0,0 +1,180 @@
From 4a8950ebd4070af6ea1085171626113149ac9bf1 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 16 Jan 2026 23:50:35 +0900
Subject: [PATCH] hwdb: make three more hwdb files parsed by parse_hwdb.py
This also makes 70-lights.hwdb installed. The file was introduced by
106f64cbd66b8aa76333c3f11177f53e79e2cd82, but never installed.
Moreover, this makes the parser also check bluetooth modalias patterns.
(cherry picked from commit 3da9b65b304836c2c8b1812a8c328f0ce45b18f7)
Resolves: RHEL-72702
---
hwdb.d/20-dmi-id.hwdb | 12 ++++++------
hwdb.d/70-lights.hwdb | 8 ++++----
hwdb.d/meson.build | 5 +++--
hwdb.d/parse_hwdb.py | 28 +++++++++++++++++++++++-----
4 files changed, 36 insertions(+), 17 deletions(-)
diff --git a/hwdb.d/20-dmi-id.hwdb b/hwdb.d/20-dmi-id.hwdb
index 855aa90936..7bcbb31c30 100644
--- a/hwdb.d/20-dmi-id.hwdb
+++ b/hwdb.d/20-dmi-id.hwdb
@@ -9,7 +9,7 @@ dmi:*:svnSystemmanufacturer:*
dmi:*:svnSystemManufacturer:*
dmi:*:svnTobefilledbyO.E.M.:*
dmi:*:svnToBeFilledByO.E.M.:*
- ID_SYS_VENDOR_IS_RUBBISH=1
+ ID_SYS_VENDOR_IS_RUBBISH=1
dmi:*:pnDefaultstring:*
dmi:*:pnN/A:*
@@ -21,17 +21,17 @@ dmi:*:pnSystemname:*
dmi:*:pnSystemName:*
dmi:*:pnTobefilledbyO.E.M.:*
dmi:*:pnToBeFilledByO.E.M.:*
- ID_PRODUCT_NAME_IS_RUBBISH=1
+ ID_PRODUCT_NAME_IS_RUBBISH=1
# Fix "Lenovo" capitalization in /sys/class/dmi/id/sys_vendor
dmi:bvnLENOVO*
- ID_SYSFS_ATTRIBUTE_MODEL=product_version
- ID_VENDOR_FROM_DATABASE=Lenovo
+ ID_SYSFS_ATTRIBUTE_MODEL=product_version
+ ID_VENDOR_FROM_DATABASE=Lenovo
# Microsoft Surface 1's chassis type
dmi:bvnMicrosoft Corporation*:pvrSurface with Windows 8 Pro*
- ID_CHASSIS=tablet
+ ID_CHASSIS=tablet
# GPD Pocket 4 chassis type
dmi:bvnAmericanMegatrendsInternational*:rvnGPD:rnG1628-04*
- ID_CHASSIS=convertible
+ ID_CHASSIS=convertible
diff --git a/hwdb.d/70-lights.hwdb b/hwdb.d/70-lights.hwdb
index a7753710ed..af56968abd 100644
--- a/hwdb.d/70-lights.hwdb
+++ b/hwdb.d/70-lights.hwdb
@@ -26,11 +26,11 @@
# Logitech
################
# Litra Beam
-bluetooth:v046dpc901*
-usb:v046dpc901*
+bluetooth:v046DpC901*
+usb:v046DpC901*
ID_AV_LIGHTS=1
# Litra Glow
-bluetooth:v046dpc900*
-usb:v046dpc900*
+bluetooth:v046DpC900*
+usb:v046DpC900*
ID_AV_LIGHTS=1
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index d8a2fd9ea4..82cc4f3f87 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -5,7 +5,6 @@
# So we don't "test" them.
hwdb_files_notest = files(
'README',
- '20-dmi-id.hwdb',
'20-pci-vendor-model.hwdb',
'20-pci-classes.hwdb',
'20-usb-vendor-model.hwdb',
@@ -15,10 +14,11 @@ hwdb_files_notest = files(
'20-bluetooth-vendor-product.hwdb',
'20-acpi-vendor.hwdb',
'20-OUI.hwdb',
- '20-net-ifname.hwdb',
'20-vmbus-class.hwdb')
hwdb_files_test = files(
+ '20-dmi-id.hwdb',
+ '20-net-ifname.hwdb',
'60-autosuspend.hwdb',
'60-autosuspend-fingerprint-reader.hwdb',
'60-evdev.hwdb',
@@ -31,6 +31,7 @@ hwdb_files_test = files(
'70-cameras.hwdb',
'70-hardware-wallets.hwdb',
'70-joystick.hwdb',
+ '70-lights.hwdb',
'70-maker-tools.hwdb',
'70-mouse.hwdb',
'70-pda.hwdb',
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index bca18eadcd..bde098bd45 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -106,6 +106,7 @@ GENERAL_MATCHES = {'acpi',
'vmbus',
'OUI',
'ieee1394',
+ 'dmi',
}
def upperhex_word(length):
@@ -200,6 +201,16 @@ def property_grammar():
('ID_INFRARED_CAMERA', Or((Literal('0'), Literal('1')))),
('ID_CAMERA_DIRECTION', Or(('front', 'rear'))),
('SOUND_FORM_FACTOR', Or(('internal', 'webcam', 'speaker', 'headphone', 'headset', 'handset', 'microphone'))),
+ ('ID_SYS_VENDOR_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
+ ('ID_PRODUCT_NAME_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
+ ('ID_PRODUCT_VERSION_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
+ ('ID_BOARD_VERSION_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
+ ('ID_PRODUCT_SKU_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
+ ('ID_CHASSIS_ASSET_TAG_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
+ ('ID_CHASSIS', name_literal),
+ ('ID_SYSFS_ATTRIBUTE_MODEL', name_literal),
+ ('ID_NET_NAME_FROM_DATABASE', name_literal),
+ ('ID_NET_NAME_INCLUDE_DOMAIN', Or((Literal('0'), Literal('1')))),
)
fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
for name, val in props]
@@ -242,8 +253,10 @@ def check_matches(groups):
# This is a partial check. The other cases could be also done, but those
# two are most commonly wrong.
- grammars = { 'usb' : 'v' + upperhex_word(4) + Optional('p' + upperhex_word(4) + Optional(':')) + '*',
- 'pci' : 'v' + upperhex_word(8) + Optional('d' + upperhex_word(8) + Optional(':')) + '*',
+ grammars = {
+ 'bluetooth' : 'v' + upperhex_word(4) + Optional('p' + upperhex_word(4) + Optional(':')) + '*',
+ 'usb' : 'v' + upperhex_word(4) + Optional('p' + upperhex_word(4) + Optional(':')) + '*',
+ 'pci' : 'v' + upperhex_word(8) + Optional('d' + upperhex_word(8) + Optional(':')) + '*',
}
for match in matches:
@@ -252,12 +265,12 @@ def check_matches(groups):
if gr:
# we check this first to provide an easy error message
if rest[-1] not in '*:':
- error('pattern {} does not end with "*" or ":"', match)
+ error('Pattern {} does not end with "*" or ":"', match)
try:
gr.parseString(rest)
except ParseBaseException as e:
- error('Pattern {!r} is invalid: {}', rest, e)
+ error('Pattern {} is invalid: {}', match, e)
continue
matches.sort()
@@ -339,7 +352,12 @@ def print_summary(fname, groups):
error(f'{fname}: no matches or props')
if __name__ == '__main__':
- args = sys.argv[1:] or sorted(glob.glob(os.path.dirname(sys.argv[0]) + '/[678][0-9]-*.hwdb'))
+ args = sys.argv[1:] or sorted(
+ [
+ os.path.dirname(sys.argv[0]) + '/20-dmi-id.hwdb',
+ os.path.dirname(sys.argv[0]) + '/20-net-ifname.hwdb',
+ ] + glob.glob(os.path.dirname(sys.argv[0]) + '/[678][0-9]-*.hwdb')
+ )
for fname in args:
groups = parse(fname)

View File

@ -0,0 +1,37 @@
From 2673c9b4e44730bd49a657925e899d768d8c087f Mon Sep 17 00:00:00 2001
From: novenary <novenary@kwak.zip>
Date: Sun, 18 Jan 2026 13:11:19 +0200
Subject: [PATCH] hwdb: set touchpad resolution for all ThinkPad T49x chassis
laptops
Confirmed with owners of T495 and T14 Gen2i.
P14s should be identical.
(cherry picked from commit 399c8152aec8aef0ff6db8755e30321e354a6adc)
Resolves: RHEL-72702
---
hwdb.d/60-evdev.hwdb | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index e09c221d15..92b43fe1b2 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -760,12 +760,15 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoU41-70:*
EVDEV_ABS_35=117:3958:36
EVDEV_ABS_36=104:1960:26
-# Lenovo Thinkpad T490 and T14/P14s Gen1/2
+# Lenovo Thinkpad T490/T495 and T14/P14s Gen1/2 (identical chassis)
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT490:*
+evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT495:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen1:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen2a:*
+evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen2i:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen1:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen2a:*
+evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen2i:*
EVDEV_ABS_00=::44
EVDEV_ABS_01=::52
EVDEV_ABS_35=::44

View File

@ -0,0 +1,43 @@
From 310520ae804d002dc8adcf7d43e1fc7363de7593 Mon Sep 17 00:00:00 2001
From: "Derek J. Clark" <derekjohn.clark@gmail.com>
Date: Thu, 22 Jan 2026 12:52:03 -0800
Subject: [PATCH] hwdb: Update Lenovo Legion Go Models - Different BIOS
versions of the Legion Go 2 can init the keyboard device as set 1 (appears
as raw set 2) or as set 2 (appears as translated set 2). Add the Legion Go
2 to the Translated list. - While at it, specify the models in a more verbose
manner for posterity.
Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
(cherry picked from commit a68c8d9ac2b6df455fe0203a8a8f8abb588c0afb)
Resolves: RHEL-72702
---
hwdb.d/60-keyboard.hwdb | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index f37c3c8bec..41879d981f 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1179,15 +1179,19 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn21LG:pvr*
KEYBOARD_KEY_0a=!9
KEYBOARD_KEY_0b=!0
-# Lenovo Legion Go & Go S
+# Lenovo Legion Go Translated
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83E1:*
+# Lenovo Legion Go S Translated
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83L3:*
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83N6:*
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83Q2:*
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83Q3:*
+# Lenovo Legion Go 2 Translated
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83N0:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83N1:*
KEYBOARD_KEY_67=f16 # Power button long press
-# Lenovo Legion Go 2
+# Lenovo Legion Go 2 Raw
evdev:name:AT Raw Set 2 keyboard:dmi:*:svnLENOVO:pn83N0:*
evdev:name:AT Raw Set 2 keyboard:dmi:*:svnLENOVO:pn83N1:*
KEYBOARD_KEY_20=f16 # Power button long press

View File

@ -0,0 +1,85 @@
From a0cd03e50b964a6642f9e03f76055393aa055497 Mon Sep 17 00:00:00 2001
From: Sriman Achanta <68172138+srimanachanta@users.noreply.github.com>
Date: Tue, 27 Jan 2026 01:11:35 -0500
Subject: [PATCH] hwdb: Add extended SteelSeries Arctis headset device support
(#40479)
Add USB device IDs for additional SteelSeries Arctis headset models to
the sound card hardware database. This extends support for the complete
Arctis lineup including newer models.
Newly added device IDs:
- Arctis 7 P (0x12d5)
- Arctis Pro (0x1290)
- Arctis Nova 3 (0x12ec)
- Arctis Nova 3 P (0x2269)
- Arctis Nova 3 X (0x226d)
- Arctis Nova 5 (0x2232)
- Arctis Nova 5 X (0x2253)
- Arctis Nova 7 Rev2 (0x2258)
- Arctis Nova 7 Diablo (0x223a)
- Arctis Nova 7 WoW (0x227a)
- Arctis Nova 7 2 (0x22a1)
- Arctis Nova 7 Gen2 (0x227e)
- Arctis Nova 7 X Gen2 (0x229e)
- Arctis Nova Pro (0x12e0)
- Arctis Nova Pro X (0x12e5)
Also reordered existing entries for better organization.
Note, steelseries [firmware release
103.0.0](https://techblog.steelseries.com/2026/01/21/GG-notes-103.0.0.html)
was a major update for all Nova 7 (Gen 1) Family headsets with new PIDs
being issued for the devices. I only own the Nova 7 which is the only
(previously unknown) PID being added. Additional PIDs will need to be
added for those new identifiers (if any), but this should be basically
every Steelseries Headset which the kernel supports/will eventually
support.
(cherry picked from commit 50caaf267b6ac6a83a0edaffbea232275372dfdb)
Resolves: RHEL-72702
---
hwdb.d/70-sound-card.hwdb | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/hwdb.d/70-sound-card.hwdb b/hwdb.d/70-sound-card.hwdb
index 762993dbf0..4c53a861ec 100644
--- a/hwdb.d/70-sound-card.hwdb
+++ b/hwdb.d/70-sound-card.hwdb
@@ -43,18 +43,32 @@ usb:v045Ep091E*
# Arctis Headsets
usb:v1038p12B3*
usb:v1038p12B6*
-usb:v1038p12D7*
usb:v1038p1260*
-usb:v1038p12AD*
usb:v1038p1252*
usb:v1038p1280*
+usb:v1038p12D5*
+usb:v1038p12D7*
+usb:v1038p12AD*
usb:v1038p220E*
usb:v1038p2212*
usb:v1038p2216*
usb:v1038p2236*
usb:v1038p12C2*
+usb:v1038p1290*
+usb:v1038p12EC*
+usb:v1038p2269*
+usb:v1038p226D*
+usb:v1038p2232*
+usb:v1038p2253*
usb:v1038p2202*
usb:v1038p2206*
usb:v1038p220A*
-usb:v1038p1290*
+usb:v1038p2258*
+usb:v1038p223A*
+usb:v1038p227A*
+usb:v1038p22A1*
+usb:v1038p227E*
+usb:v1038p229E*
+usb:v1038p12E0*
+usb:v1038p12E5*
SOUND_FORM_FACTOR=headset

View File

@ -0,0 +1,25 @@
From c818e6d1f90bc2f5f05f6c651b08b1a82cac6619 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Thu, 29 Jan 2026 22:03:02 +0100
Subject: [PATCH] hwdb: keyboard: fix typo CAPSLOCK to NUMLOCK
(cherry picked from commit 1c8cdfceb30ee69a722c08f51c20706543bba5f2)
Resolves: RHEL-72702
---
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 41879d981f..2dd8298cf7 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2381,7 +2381,7 @@ evdev:input:b0003v05FEp1010*
######################### LACK OF MODIFIER LEDS ############################
# This section lists keyboard which do not have their own LEDs for some
# modifiers. Only Caps-Lock (KEYBOARD_LED_CAPSLOCK) and Num-Lock
-# (KEYBOARD_LED_CAPSLOCK) are currently handled and need their values set
+# (KEYBOARD_LED_NUMLOCK) are currently handled and need their values set
# to "0" to indicate the absence of LED.
#
# Presence of a LED is implicit when the property is absent.

View File

@ -0,0 +1,41 @@
From 9d798b52c260b50d37bbce328065915917e2b78a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Santamar=C3=ADa=20Rogado?= <howl.nsp@gmail.com>
Date: Thu, 29 Jan 2026 23:28:21 +0100
Subject: [PATCH] hwdb: keyboard: uppercase apple id
(cherry picked from commit 3bb9dedc05fdc9ca8f4515bca90dacbb3e89dc16)
Resolves: RHEL-72702
---
hwdb.d/60-keyboard.hwdb | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 2dd8298cf7..a942ac798a 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2387,15 +2387,15 @@ 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*
+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

View File

@ -0,0 +1,78 @@
From 674e420bf7eac9e2fca698e0ff76b9db257f8bb2 Mon Sep 17 00:00:00 2001
From: Ingo Franzki <ifranzki@linux.ibm.com>
Date: Tue, 5 Mar 2024 08:28:40 +0100
Subject: [PATCH] integritysetup: Add support for hmac-sha512
Currently the only supported integrity algorithm using HMAC is 'hmac-sha256'.
Add 'hmac-sha512' to the list of supported algorithms as well.
(cherry picked from commit 7bf1cfe3b20037f3732d8854833b00f6a3511d95)
Resolves: RHEL-27852
---
man/integritytab.xml | 6 +++---
src/integritysetup/integrity-util.c | 2 +-
src/integritysetup/integrity-util.h | 1 +
src/integritysetup/integritysetup.c | 2 ++
4 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/man/integritytab.xml b/man/integritytab.xml
index 32561e96f2..9fa34d8b0c 100644
--- a/man/integritytab.xml
+++ b/man/integritytab.xml
@@ -55,8 +55,8 @@
<para>The third field if present contains an absolute filename path to a key file or a <literal>-</literal>
to specify none. When the filename is present, the "integrity-algorithm" defaults to <literal>hmac-sha256</literal>
- with the key length derived from the number of bytes in the key file. At this time the only supported integrity algorithm
- when using key file is hmac-sha256. The maximum size of the key file is 4096 bytes.
+ with the key length derived from the number of bytes in the key file. At this time the only supported integrity algorithms
+ when using key file are hmac-sha256 and hmac-sha512. The maximum size of the key file is 4096 bytes.
</para>
<para>The fourth field, if present, is a comma-delimited list of options or a <literal>-</literal> to specify none. The following options are
@@ -125,7 +125,7 @@
</varlistentry>
<varlistentry>
- <term><option>integrity-algorithm=[crc32c|crc32|xxhash64|sha1|sha256|hmac-sha256]</option></term>
+ <term><option>integrity-algorithm=[crc32c|crc32|xxhash64|sha1|sha256|hmac-sha256|hmac-sha512]</option></term>
<listitem><para>
The algorithm used for integrity checking. The default is crc32c. Must match option used during format.
diff --git a/src/integritysetup/integrity-util.c b/src/integritysetup/integrity-util.c
index 69f55c256d..fe79fe24fd 100644
--- a/src/integritysetup/integrity-util.c
+++ b/src/integritysetup/integrity-util.c
@@ -7,7 +7,7 @@
#include "percent-util.h"
static int supported_integrity_algorithm(char *user_supplied) {
- if (!STR_IN_SET(user_supplied, "crc32", "crc32c", "xxhash64", "sha1", "sha256", "hmac-sha256"))
+ if (!STR_IN_SET(user_supplied, "crc32", "crc32c", "xxhash64", "sha1", "sha256", "hmac-sha256", "hmac-sha512"))
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unsupported integrity algorithm (%s)", user_supplied);
return 0;
}
diff --git a/src/integritysetup/integrity-util.h b/src/integritysetup/integrity-util.h
index 359d2556a4..f701b59273 100644
--- a/src/integritysetup/integrity-util.h
+++ b/src/integritysetup/integrity-util.h
@@ -15,4 +15,5 @@ int parse_integrity_options(
char **ret_integrity_alg);
#define DM_HMAC_256 "hmac(sha256)"
+#define DM_HMAC_512 "hmac(sha512)"
#define DM_MAX_KEY_SIZE 4096 /* Maximum size of key allowed for dm-integrity */
diff --git a/src/integritysetup/integritysetup.c b/src/integritysetup/integritysetup.c
index a602886cb3..674131ed54 100644
--- a/src/integritysetup/integritysetup.c
+++ b/src/integritysetup/integritysetup.c
@@ -80,6 +80,8 @@ static const char *integrity_algorithm_select(const void *key_file_buf) {
if (arg_integrity_algorithm) {
if (streq("hmac-sha256", arg_integrity_algorithm))
return DM_HMAC_256;
+ if (streq("hmac-sha512", arg_integrity_algorithm))
+ return DM_HMAC_512;
return arg_integrity_algorithm;
} else if (key_file_buf)
return DM_HMAC_256;

View File

@ -0,0 +1,84 @@
From 288e7d756a6cbf14c74f7faeaf552273fe538ad3 Mon Sep 17 00:00:00 2001
From: Ingo Franzki <ifranzki@linux.ibm.com>
Date: Mon, 4 Mar 2024 09:26:18 +0100
Subject: [PATCH] integritysetup: Add PHMAC algorithm to list of known
algorithms
Add the PHMAC integrity algorithm to the list of supported algorithms.
The PHMAC algorithm is like the regular HMAC algorithm, but it takes a wrapped key
as input. A key for the PHMAC algorithm is an opaque key blob, who's physical size
has nothing to do with the cryptographic size. Currently PHMAC is only available
for the s390x architecture.
(cherry picked from commit eb7b0d413e5f7ca35e9f6a0b211dd71a710cb60d)
Resolves: RHEL-27852
---
man/integritytab.xml | 4 ++--
src/integritysetup/integrity-util.c | 2 +-
src/integritysetup/integrity-util.h | 2 ++
src/integritysetup/integritysetup.c | 4 ++++
4 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/man/integritytab.xml b/man/integritytab.xml
index 9fa34d8b0c..d71c3a3af0 100644
--- a/man/integritytab.xml
+++ b/man/integritytab.xml
@@ -56,7 +56,7 @@
<para>The third field if present contains an absolute filename path to a key file or a <literal>-</literal>
to specify none. When the filename is present, the "integrity-algorithm" defaults to <literal>hmac-sha256</literal>
with the key length derived from the number of bytes in the key file. At this time the only supported integrity algorithms
- when using key file are hmac-sha256 and hmac-sha512. The maximum size of the key file is 4096 bytes.
+ when using key file are hmac-sha256, hmac-sha512, phmac-sha256, and hmac-sha512. The maximum size of the key file is 4096 bytes.
</para>
<para>The fourth field, if present, is a comma-delimited list of options or a <literal>-</literal> to specify none. The following options are
@@ -125,7 +125,7 @@
</varlistentry>
<varlistentry>
- <term><option>integrity-algorithm=[crc32c|crc32|xxhash64|sha1|sha256|hmac-sha256|hmac-sha512]</option></term>
+ <term><option>integrity-algorithm=[crc32c|crc32|xxhash64|sha1|sha256|hmac-sha256|hmac-sha512|phmac-sha256|phmac-sha512]</option></term>
<listitem><para>
The algorithm used for integrity checking. The default is crc32c. Must match option used during format.
diff --git a/src/integritysetup/integrity-util.c b/src/integritysetup/integrity-util.c
index fe79fe24fd..9ee55aaf43 100644
--- a/src/integritysetup/integrity-util.c
+++ b/src/integritysetup/integrity-util.c
@@ -7,7 +7,7 @@
#include "percent-util.h"
static int supported_integrity_algorithm(char *user_supplied) {
- if (!STR_IN_SET(user_supplied, "crc32", "crc32c", "xxhash64", "sha1", "sha256", "hmac-sha256", "hmac-sha512"))
+ if (!STR_IN_SET(user_supplied, "crc32", "crc32c", "xxhash64", "sha1", "sha256", "hmac-sha256", "hmac-sha512", "phmac-sha256", "phmac-sha512"))
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unsupported integrity algorithm (%s)", user_supplied);
return 0;
}
diff --git a/src/integritysetup/integrity-util.h b/src/integritysetup/integrity-util.h
index f701b59273..4225834b9b 100644
--- a/src/integritysetup/integrity-util.h
+++ b/src/integritysetup/integrity-util.h
@@ -16,4 +16,6 @@ int parse_integrity_options(
#define DM_HMAC_256 "hmac(sha256)"
#define DM_HMAC_512 "hmac(sha512)"
+#define DM_PHMAC_256 "phmac(sha256)"
+#define DM_PHMAC_512 "phmac(sha512)"
#define DM_MAX_KEY_SIZE 4096 /* Maximum size of key allowed for dm-integrity */
diff --git a/src/integritysetup/integritysetup.c b/src/integritysetup/integritysetup.c
index 674131ed54..fd8a2db9d4 100644
--- a/src/integritysetup/integritysetup.c
+++ b/src/integritysetup/integritysetup.c
@@ -82,6 +82,10 @@ static const char *integrity_algorithm_select(const void *key_file_buf) {
return DM_HMAC_256;
if (streq("hmac-sha512", arg_integrity_algorithm))
return DM_HMAC_512;
+ if (streq("phmac-sha256", arg_integrity_algorithm))
+ return DM_PHMAC_256;
+ if (streq("phmac-sha512", arg_integrity_algorithm))
+ return DM_PHMAC_512;
return arg_integrity_algorithm;
} else if (key_file_buf)
return DM_HMAC_256;

View File

@ -0,0 +1,456 @@
From 3d5ed46c6a83e4b987aac568386fd16453b215d3 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Mon, 20 Oct 2025 19:40:28 +0900
Subject: [PATCH] core: increment start limit counter only when we can start
the unit
Otherwise, e.g. requesting to start a unit that is under stopping may
enter the failed state.
This makes
- rename .can_start() -> .test_startable(), and make it allow to return
boolean and refuse to start units when it returns false,
- refuse earlier to start units that are in the deactivating state, so
several redundant conditions in .start() can be dropped,
- move checks for unit states mapped to UNIT_ACTIVATING from .start() to
.test_startable().
Fixes #39247.
(cherry picked from commit 8eefd0f4debc0bcfeea89dd39c43e3318f3f7ae7)
Resolves: RHEL-115032
---
src/core/automount.c | 6 ++--
src/core/mount.c | 23 +++++---------
src/core/path.c | 6 ++--
src/core/service.c | 24 ++++++---------
src/core/socket.c | 32 ++++++--------------
src/core/swap.c | 23 +++++---------
src/core/timer.c | 6 ++--
src/core/unit.c | 11 ++++---
src/core/unit.h | 4 +--
test/units/TEST-07-PID1.start-limit.sh | 42 ++++++++++++++++++++++++++
10 files changed, 93 insertions(+), 84 deletions(-)
create mode 100755 test/units/TEST-07-PID1.start-limit.sh
diff --git a/src/core/automount.c b/src/core/automount.c
index ac81875442..6b888c2112 100644
--- a/src/core/automount.c
+++ b/src/core/automount.c
@@ -1040,7 +1040,7 @@ static bool automount_supported(void) {
return supported;
}
-static int automount_can_start(Unit *u) {
+static int automount_test_startable(Unit *u) {
Automount *a = ASSERT_PTR(AUTOMOUNT(u));
int r;
@@ -1050,7 +1050,7 @@ static int automount_can_start(Unit *u) {
return r;
}
- return 1;
+ return true;
}
static const char* const automount_result_table[_AUTOMOUNT_RESULT_MAX] = {
@@ -1116,5 +1116,5 @@ const UnitVTable automount_vtable = {
},
},
- .can_start = automount_can_start,
+ .test_startable = automount_test_startable,
};
diff --git a/src/core/mount.c b/src/core/mount.c
index 4f7691626b..e5d02965be 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -1288,19 +1288,6 @@ static int mount_start(Unit *u) {
Mount *m = ASSERT_PTR(MOUNT(u));
int r;
- /* We cannot fulfill this request right now, try again later
- * please! */
- if (IN_SET(m->state,
- MOUNT_UNMOUNTING,
- MOUNT_UNMOUNTING_SIGTERM,
- MOUNT_UNMOUNTING_SIGKILL,
- MOUNT_CLEANING))
- return -EAGAIN;
-
- /* Already on it! */
- if (IN_SET(m->state, MOUNT_MOUNTING, MOUNT_MOUNTING_DONE))
- return 0;
-
assert(IN_SET(m->state, MOUNT_DEAD, MOUNT_FAILED));
r = unit_acquire_invocation_id(u);
@@ -2292,17 +2279,21 @@ static int mount_can_clean(Unit *u, ExecCleanMask *ret) {
return exec_context_get_clean_mask(&m->exec_context, ret);
}
-static int mount_can_start(Unit *u) {
+static int mount_test_startable(Unit *u) {
Mount *m = ASSERT_PTR(MOUNT(u));
int r;
+ /* It is already being started. */
+ if (IN_SET(m->state, MOUNT_MOUNTING, MOUNT_MOUNTING_DONE))
+ return false;
+
r = unit_test_start_limit(u);
if (r < 0) {
mount_enter_dead(m, MOUNT_FAILURE_START_LIMIT_HIT, /* flush_result = */ false);
return r;
}
- return 1;
+ return true;
}
static int mount_subsystem_ratelimited(Manager *m) {
@@ -2467,7 +2458,7 @@ const UnitVTable mount_vtable = {
},
},
- .can_start = mount_can_start,
+ .test_startable = mount_test_startable,
.notify_plymouth = true,
};
diff --git a/src/core/path.c b/src/core/path.c
index c9ea31a74e..1f8e2fe686 100644
--- a/src/core/path.c
+++ b/src/core/path.c
@@ -898,7 +898,7 @@ static void path_reset_failed(Unit *u) {
p->result = PATH_SUCCESS;
}
-static int path_can_start(Unit *u) {
+static int path_test_startable(Unit *u) {
Path *p = ASSERT_PTR(PATH(u));
int r;
@@ -908,7 +908,7 @@ static int path_can_start(Unit *u) {
return r;
}
- return 1;
+ return true;
}
static void activation_details_path_done(ActivationDetails *details) {
@@ -1042,7 +1042,7 @@ const UnitVTable path_vtable = {
.bus_set_property = bus_path_set_property,
- .can_start = path_can_start,
+ .test_startable = path_test_startable,
};
const ActivationDetailsVTable activation_details_path_vtable = {
diff --git a/src/core/service.c b/src/core/service.c
index 7d09bfc576..e1f3f2e012 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -2841,17 +2841,6 @@ static int service_start(Unit *u) {
Service *s = ASSERT_PTR(SERVICE(u));
int r;
- /* We cannot fulfill this request right now, try again later
- * please! */
- if (IN_SET(s->state,
- SERVICE_STOP, SERVICE_STOP_WATCHDOG, SERVICE_STOP_SIGTERM, SERVICE_STOP_SIGKILL, SERVICE_STOP_POST,
- SERVICE_FINAL_WATCHDOG, SERVICE_FINAL_SIGTERM, SERVICE_FINAL_SIGKILL, SERVICE_CLEANING))
- return -EAGAIN;
-
- /* Already on it! */
- if (IN_SET(s->state, SERVICE_CONDITION, SERVICE_START_PRE, SERVICE_START, SERVICE_START_POST))
- return 0;
-
if (s->state == SERVICE_AUTO_RESTART) {
/* As mentioned in unit_start(), we allow manual starts to act as "hurry up" signals
* for auto restart. We need to re-enqueue the job though, as the job type has changed
@@ -5426,10 +5415,17 @@ static const char* service_finished_job(Unit *u, JobType t, JobResult result) {
return NULL;
}
-static int service_can_start(Unit *u) {
+static int service_test_startable(Unit *u) {
Service *s = ASSERT_PTR(SERVICE(u));
int r;
+ /* First check the state, and do not increment start limit counter if the service cannot start due to
+ * that e.g. it is already being started. Note, the service states mapped to UNIT_ACTIVE,
+ * UNIT_RELOADING, UNIT_DEACTIVATING, UNIT_MAINTENANCE, and UNIT_REFRESHING are already filtered in
+ * unit_start(). Hence, here we only need to check states that mapped to UNIT_ACTIVATING. */
+ if (IN_SET(s->state, SERVICE_CONDITION, SERVICE_START_PRE, SERVICE_START, SERVICE_START_POST))
+ return false;
+
/* Make sure we don't enter a busy loop of some kind. */
r = unit_test_start_limit(u);
if (r < 0) {
@@ -5437,7 +5433,7 @@ static int service_can_start(Unit *u) {
return r;
}
- return 1;
+ return true;
}
static void service_release_resources(Unit *u) {
@@ -5695,7 +5691,7 @@ const UnitVTable service_vtable = {
.finished_job = service_finished_job,
},
- .can_start = service_can_start,
+ .test_startable = service_test_startable,
.notify_plymouth = true,
diff --git a/src/core/socket.c b/src/core/socket.c
index 1e224b2407..e52220ce3b 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -2474,25 +2474,6 @@ static int socket_start(Unit *u) {
Socket *s = ASSERT_PTR(SOCKET(u));
int r;
- /* We cannot fulfill this request right now, try again later
- * please! */
- if (IN_SET(s->state,
- SOCKET_STOP_PRE,
- SOCKET_STOP_PRE_SIGKILL,
- SOCKET_STOP_PRE_SIGTERM,
- SOCKET_STOP_POST,
- SOCKET_FINAL_SIGTERM,
- SOCKET_FINAL_SIGKILL,
- SOCKET_CLEANING))
- return -EAGAIN;
-
- /* Already on it! */
- if (IN_SET(s->state,
- SOCKET_START_PRE,
- SOCKET_START_CHOWN,
- SOCKET_START_POST))
- return 0;
-
/* Cannot run this without the service being around */
if (UNIT_ISSET(s->service)) {
Service *service = ASSERT_PTR(SERVICE(UNIT_DEREF(s->service)));
@@ -3497,17 +3478,24 @@ static int socket_can_clean(Unit *u, ExecCleanMask *ret) {
return exec_context_get_clean_mask(&s->exec_context, ret);
}
-static int socket_can_start(Unit *u) {
+static int socket_test_startable(Unit *u) {
Socket *s = ASSERT_PTR(SOCKET(u));
int r;
+ /* It is already being started. */
+ if (IN_SET(s->state,
+ SOCKET_START_PRE,
+ SOCKET_START_CHOWN,
+ SOCKET_START_POST))
+ return false;
+
r = unit_test_start_limit(u);
if (r < 0) {
socket_enter_dead(s, SOCKET_FAILURE_START_LIMIT_HIT);
return r;
}
- return 1;
+ return true;
}
static const char* const socket_exec_command_table[_SOCKET_EXEC_COMMAND_MAX] = {
@@ -3638,5 +3626,5 @@ const UnitVTable socket_vtable = {
},
},
- .can_start = socket_can_start,
+ .test_startable = socket_test_startable,
};
diff --git a/src/core/swap.c b/src/core/swap.c
index f2d1d5608c..eb596105ba 100644
--- a/src/core/swap.c
+++ b/src/core/swap.c
@@ -862,19 +862,6 @@ static int swap_start(Unit *u) {
int r;
assert(s);
-
- /* We cannot fulfill this request right now, try again later please! */
- if (IN_SET(s->state,
- SWAP_DEACTIVATING,
- SWAP_DEACTIVATING_SIGTERM,
- SWAP_DEACTIVATING_SIGKILL,
- SWAP_CLEANING))
- return -EAGAIN;
-
- /* Already on it! */
- if (s->state == SWAP_ACTIVATING)
- return 0;
-
assert(IN_SET(s->state, SWAP_DEAD, SWAP_FAILED));
if (detect_container() > 0)
@@ -1523,17 +1510,21 @@ static int swap_can_clean(Unit *u, ExecCleanMask *ret) {
return exec_context_get_clean_mask(&s->exec_context, ret);
}
-static int swap_can_start(Unit *u) {
+static int swap_test_startable(Unit *u) {
Swap *s = ASSERT_PTR(SWAP(u));
int r;
+ /* It is already being started. */
+ if (s->state == SWAP_ACTIVATING)
+ return false;
+
r = unit_test_start_limit(u);
if (r < 0) {
swap_enter_dead(s, SWAP_FAILURE_START_LIMIT_HIT);
return r;
}
- return 1;
+ return true;
}
int swap_get_priority(const Swap *s) {
@@ -1654,7 +1645,7 @@ const UnitVTable swap_vtable = {
},
},
- .can_start = swap_can_start,
+ .test_startable = swap_test_startable,
.notify_plymouth = true,
};
diff --git a/src/core/timer.c b/src/core/timer.c
index 4158a67b5e..a374236a2d 100644
--- a/src/core/timer.c
+++ b/src/core/timer.c
@@ -902,7 +902,7 @@ static int timer_can_clean(Unit *u, ExecCleanMask *ret) {
return 0;
}
-static int timer_can_start(Unit *u) {
+static int timer_test_startable(Unit *u) {
Timer *t = ASSERT_PTR(TIMER(u));
int r;
@@ -912,7 +912,7 @@ static int timer_can_start(Unit *u) {
return r;
}
- return 1;
+ return true;
}
static void activation_details_timer_serialize(ActivationDetails *details, FILE *f) {
@@ -1089,7 +1089,7 @@ const UnitVTable timer_vtable = {
.bus_set_property = bus_timer_set_property,
- .can_start = timer_can_start,
+ .test_startable = timer_test_startable,
};
const ActivationDetailsVTable activation_details_timer_vtable = {
diff --git a/src/core/unit.c b/src/core/unit.c
index 556ed0eefa..6b31599972 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -1895,7 +1895,7 @@ int unit_start(Unit *u, ActivationDetails *details) {
state = unit_active_state(u);
if (UNIT_IS_ACTIVE_OR_RELOADING(state))
return -EALREADY;
- if (state == UNIT_MAINTENANCE)
+ if (IN_SET(state, UNIT_DEACTIVATING, UNIT_MAINTENANCE))
return -EAGAIN;
/* Units that aren't loaded cannot be started */
@@ -1942,10 +1942,11 @@ int unit_start(Unit *u, ActivationDetails *details) {
if (u->freezer_state != FREEZER_RUNNING)
return -EDEADLK;
- /* Check our ability to start early so that failure conditions don't cause us to enter a busy loop. */
- if (UNIT_VTABLE(u)->can_start) {
- r = UNIT_VTABLE(u)->can_start(u);
- if (r < 0)
+ /* Check our ability to start early so that ratelimited or already starting/started units don't
+ * cause us to enter a busy loop. */
+ if (UNIT_VTABLE(u)->test_startable) {
+ r = UNIT_VTABLE(u)->test_startable(u);
+ if (r <= 0)
return r;
}
diff --git a/src/core/unit.h b/src/core/unit.h
index b6f47c76d6..c47eabdaa7 100644
--- a/src/core/unit.h
+++ b/src/core/unit.h
@@ -710,8 +710,8 @@ typedef struct UnitVTable {
bool (*supported)(void);
/* If this function is set, it's invoked first as part of starting a unit to allow start rate
- * limiting checks to occur before we do anything else. */
- int (*can_start)(Unit *u);
+ * limiting checks and unit state checks to occur before we do anything else. */
+ int (*test_startable)(Unit *u);
/* Returns > 0 if the whole subsystem is ratelimited, and new start operations should not be started
* for this unit type right now. */
diff --git a/test/units/TEST-07-PID1.start-limit.sh b/test/units/TEST-07-PID1.start-limit.sh
new file mode 100755
index 0000000000..f793d32876
--- /dev/null
+++ b/test/units/TEST-07-PID1.start-limit.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: LGPL-2.1-or-later
+set -eux
+set -o pipefail
+
+# For issue #39247.
+
+at_exit() {
+ set +e
+
+ rm -rf /run/systemd/system/systemd-resolved.service.d/
+ systemctl daemon-reload
+ systemctl restart systemd-resolved.service
+}
+
+trap at_exit EXIT
+
+mkdir -p /run/systemd/system/systemd-resolved.service.d/
+cat >/run/systemd/system/systemd-resolved.service.d/99-start-limit.conf <<EOF
+[Unit]
+StartLimitBurst=5
+StartLimitInterval=30
+
+[Service]
+ExecStopPost=sleep 10
+EOF
+
+systemctl daemon-reload
+systemctl restart systemd-resolved.service
+systemctl reset-failed systemd-resolved.service
+systemctl status --no-pager systemd-resolved.service
+systemctl show systemd-resolved.service | grep StartLimit
+
+for i in {1..5}; do
+ echo "Start #$i"
+
+ systemctl stop --no-block systemd-resolved.service
+ if ! resolvectl; then
+ journalctl -o short-monotonic --no-hostname --no-pager -u systemd-resolved.service -n 15
+ exit 1
+ fi
+done

View File

@ -0,0 +1,38 @@
From 8d5306dd2f86b3d642080b1eacceebd50028047e Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Tue, 28 Oct 2025 13:20:58 +0900
Subject: [PATCH] TEST-07-PID1: wait for systemd-resolved being stopped
As 'systemctl stop' is called with --no-block, previously systemd-resolved
might not be stopped when 'resolvectl' is called, and the DBus connection
might be closed during the call:
```
TEST-07-PID1.sh[5643]: + systemctl stop --no-block systemd-resolved.service
TEST-07-PID1.sh[5643]: + resolvectl
TEST-07-PID1.sh[5732]: Failed to get global data: Remote peer disconnected
```
Follow-up for 8eefd0f4debc0bcfeea89dd39c43e3318f3f7ae7.
Fixes https://github.com/systemd/systemd/pull/39388#issuecomment-3439277442.
(cherry picked from commit 6454fde83eef8da7391ad18a1b1a3248402f9214)
Related: RHEL-115032
---
test/units/TEST-07-PID1.start-limit.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/test/units/TEST-07-PID1.start-limit.sh b/test/units/TEST-07-PID1.start-limit.sh
index f793d32876..b512c58ff2 100755
--- a/test/units/TEST-07-PID1.start-limit.sh
+++ b/test/units/TEST-07-PID1.start-limit.sh
@@ -35,6 +35,9 @@ for i in {1..5}; do
echo "Start #$i"
systemctl stop --no-block systemd-resolved.service
+ # Wait for systemd-resolved in ExecStart= being stopped.
+ # shellcheck disable=SC2016
+ timeout 10 bash -c 'until [[ "$(systemctl show --property=MainPID --value systemd-resolved.service)" == 0 ]]; do sleep 0.1; done'
if ! resolvectl; then
journalctl -o short-monotonic --no-hostname --no-pager -u systemd-resolved.service -n 15
exit 1

View File

@ -0,0 +1,40 @@
From 82a8ae0276d91c8cf0ef92117e6f1be1b8fdad95 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Sat, 25 Oct 2025 15:34:44 +0900
Subject: [PATCH] test: extend start limit interval
As the modified service requires about ~10 seconds for stopping, the
service never hit the start limit even if we tried to restart the
service more than 5 times.
This also checks that the service is actually triggered by dbus method
call.
Follow-up for 8eefd0f4debc0bcfeea89dd39c43e3318f3f7ae7.
(cherry picked from commit 44b4caad6cc99449bbf705350939fde1ed9b1248)
Related: RHEL-115032
---
test/units/TEST-07-PID1.start-limit.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/units/TEST-07-PID1.start-limit.sh b/test/units/TEST-07-PID1.start-limit.sh
index b512c58ff2..93447452da 100755
--- a/test/units/TEST-07-PID1.start-limit.sh
+++ b/test/units/TEST-07-PID1.start-limit.sh
@@ -19,7 +19,7 @@ mkdir -p /run/systemd/system/systemd-resolved.service.d/
cat >/run/systemd/system/systemd-resolved.service.d/99-start-limit.conf <<EOF
[Unit]
StartLimitBurst=5
-StartLimitInterval=30
+StartLimitInterval=100
[Service]
ExecStopPost=sleep 10
@@ -42,4 +42,5 @@ for i in {1..5}; do
journalctl -o short-monotonic --no-hostname --no-pager -u systemd-resolved.service -n 15
exit 1
fi
+ systemctl is-active systemd-resolved.service
done

View File

@ -0,0 +1,255 @@
From c9fd30dcf2bb08bcffd64add37199b2087785d5c Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 19 Feb 2025 21:56:14 +0100
Subject: [PATCH] userdbctl: optionally show user/group data from JSON
filerather than from system
(cherry picked from commit fd0dd2d4bce00b69f8badab1a71b8929e392af5c)
Resolves: RHEL-143029
---
man/userdbctl.xml | 19 ++++++
src/userdb/userdbctl.c | 76 +++++++++++++++++++++--
test/units/TEST-74-AUX-UTILS.userdbctl.sh | 16 +++++
3 files changed, 106 insertions(+), 5 deletions(-)
create mode 100755 test/units/TEST-74-AUX-UTILS.userdbctl.sh
diff --git a/man/userdbctl.xml b/man/userdbctl.xml
index 268da7ac3d..dd51226868 100644
--- a/man/userdbctl.xml
+++ b/man/userdbctl.xml
@@ -243,6 +243,19 @@
<xi:include href="version-info.xml" xpointer="v257"/></listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>--from-file=PATH</option></term>
+ <term><option>-f</option></term>
+
+ <listitem><para>When used with the <command>user</command> or <command>group</command> command, read
+ the user definition in JSON format from the specified file, instead of querying it from the
+ system. If the path is specified as <literal>-</literal>, reads the JSON data from standard
+ input. This is useful to validate and introspect JSON user or group records quickly, and check how
+ they would be interpreted on the local system.</para>
+
+ <xi:include href="version-info.xml" xpointer="v258"/></listitem>
+ </varlistentry>
+
<xi:include href="standard-options.xml" xpointer="no-pager" />
<xi:include href="standard-options.xml" xpointer="no-legend" />
<xi:include href="standard-options.xml" xpointer="help" />
@@ -263,6 +276,9 @@
<listitem><para>List all known users records or show details of one or more specified user
records. Use <option>--output=</option> to tweak output mode.</para>
+ <para>If used in conjuntion with <option>--from-file=</option> the user record data is read in JSON
+ format from the specified file instead of querying it from the system. For details see above.</para>
+
<xi:include href="version-info.xml" xpointer="v245"/></listitem>
</varlistentry>
@@ -272,6 +288,9 @@
<listitem><para>List all known group records or show details of one or more specified group
records. Use <option>--output=</option> to tweak output mode.</para>
+ <para>If used in conjuntion with <option>--from-file=</option> the group record data is read in JSON
+ format from the specified file instead of querying it from the system. For details see above.</para>
+
<xi:include href="version-info.xml" xpointer="v245"/></listitem>
</varlistentry>
diff --git a/src/userdb/userdbctl.c b/src/userdb/userdbctl.c
index d295ca5495..0bb458eb15 100644
--- a/src/userdb/userdbctl.c
+++ b/src/userdb/userdbctl.c
@@ -44,8 +44,10 @@ static uid_t arg_uid_min = 0;
static uid_t arg_uid_max = UID_INVALID-1;
static bool arg_fuzzy = false;
static bool arg_boundaries = true;
+static sd_json_variant *arg_from_file = NULL;
STATIC_DESTRUCTOR_REGISTER(arg_services, strv_freep);
+STATIC_DESTRUCTOR_REGISTER(arg_from_file, sd_json_variant_unrefp);
static const char *user_disposition_to_color(UserDisposition d) {
assert(d >= 0);
@@ -372,7 +374,7 @@ static int display_user(int argc, char *argv[], void *userdata) {
int ret = 0, r;
if (arg_output < 0)
- arg_output = argc > 1 && !arg_fuzzy ? OUTPUT_FRIENDLY : OUTPUT_TABLE;
+ arg_output = arg_from_file || (argc > 1 && !arg_fuzzy) ? OUTPUT_FRIENDLY : OUTPUT_TABLE;
if (arg_output == OUTPUT_TABLE) {
table = table_new(" ", "name", "disposition", "uid", "gid", "realname", "home", "shell", "order");
@@ -394,7 +396,23 @@ static int display_user(int argc, char *argv[], void *userdata) {
.uid_max = arg_uid_max,
};
- if (argc > 1 && !arg_fuzzy)
+ if (arg_from_file) {
+ if (argc > 1)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No argument expected when invoked with --from-file=, refusing.");
+
+ _cleanup_(user_record_unrefp) UserRecord *ur = user_record_new();
+ if (!ur)
+ return log_oom();
+
+ r = user_record_load(ur, arg_from_file, USER_RECORD_LOAD_MASK_SECRET|USER_RECORD_LOG);
+ if (r < 0)
+ return r;
+
+ r = show_user(ur, table);
+ if (r < 0)
+ return r;
+
+ } else if (argc > 1 && !arg_fuzzy)
STRV_FOREACH(i, argv + 1) {
_cleanup_(user_record_unrefp) UserRecord *ur = NULL;
uid_t uid;
@@ -709,7 +727,7 @@ static int display_group(int argc, char *argv[], void *userdata) {
int ret = 0, r;
if (arg_output < 0)
- arg_output = argc > 1 && !arg_fuzzy ? OUTPUT_FRIENDLY : OUTPUT_TABLE;
+ arg_output = arg_from_file || (argc > 1 && !arg_fuzzy) ? OUTPUT_FRIENDLY : OUTPUT_TABLE;
if (arg_output == OUTPUT_TABLE) {
table = table_new(" ", "name", "disposition", "gid", "description", "order");
@@ -730,7 +748,23 @@ static int display_group(int argc, char *argv[], void *userdata) {
.gid_max = arg_uid_max,
};
- if (argc > 1 && !arg_fuzzy)
+ if (arg_from_file) {
+ if (argc > 1)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No argument expected when invoked with --from-file=, refusing.");
+
+ _cleanup_(group_record_unrefp) GroupRecord *gr = group_record_new();
+ if (!gr)
+ return log_oom();
+
+ r = group_record_load(gr, arg_from_file, USER_RECORD_LOAD_MASK_SECRET|USER_RECORD_LOG);
+ if (r < 0)
+ return r;
+
+ r = show_group(gr, table);
+ if (r < 0)
+ return r;
+
+ } else if (argc > 1 && !arg_fuzzy)
STRV_FOREACH(i, argv + 1) {
_cleanup_(group_record_unrefp) GroupRecord *gr = NULL;
gid_t gid;
@@ -903,6 +937,9 @@ static int display_memberships(int argc, char *argv[], void *userdata) {
_cleanup_(table_unrefp) Table *table = NULL;
int ret = 0, r;
+ if (arg_from_file)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "--from-file= not supported when showing memberships, refusing.");
+
if (arg_output < 0)
arg_output = OUTPUT_TABLE;
@@ -997,6 +1034,9 @@ static int display_services(int argc, char *argv[], void *userdata) {
_cleanup_closedir_ DIR *d = NULL;
int r;
+ if (arg_from_file)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "--from-file= not supported when showing services, refusing.");
+
d = opendir("/run/systemd/userdb/");
if (!d) {
if (errno == ENOENT) {
@@ -1063,6 +1103,9 @@ static int ssh_authorized_keys(int argc, char *argv[], void *userdata) {
assert(argc >= 2);
+ if (arg_from_file)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "--from-file= not supported when showing SSH authorized keys, refusing.");
+
if (arg_chain) {
/* If --chain is specified, the rest of the command line is the chain command */
@@ -1182,6 +1225,7 @@ static int help(int argc, char *argv[], void *userdata) {
" -R Equivalent to --disposition=regular\n"
" --boundaries=BOOL Show/hide UID/GID range boundaries in output\n"
" -B Equivalent to --boundaries=no\n"
+ " -F --from-file=PATH Read JSON record from file\n"
"\nSee the %s for details.\n",
program_invocation_short_name,
ansi_highlight(),
@@ -1230,6 +1274,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "fuzzy", no_argument, NULL, 'z' },
{ "disposition", required_argument, NULL, ARG_DISPOSITION },
{ "boundaries", required_argument, NULL, ARG_BOUNDARIES },
+ { "from-file", required_argument, NULL, 'F' },
{}
};
@@ -1260,7 +1305,7 @@ static int parse_argv(int argc, char *argv[]) {
int c;
c = getopt_long(argc, argv,
- arg_chain ? "+hjs:NISRzB" : "hjs:NISRzB", /* When --chain was used disable parsing of further switches */
+ arg_chain ? "+hjs:NISRzBF:" : "hjs:NISRzBF:", /* When --chain was used disable parsing of further switches */
options, NULL);
if (c < 0)
break;
@@ -1435,6 +1480,24 @@ static int parse_argv(int argc, char *argv[]) {
arg_boundaries = false;
break;
+ case 'F': {
+ if (isempty(optarg)) {
+ arg_from_file = sd_json_variant_unref(arg_from_file);
+ break;
+ }
+
+ _cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL;
+ const char *fn = streq(optarg, "-") ? NULL : optarg;
+ unsigned line = 0;
+ r = sd_json_parse_file(fn ? NULL : stdin, fn ?: "<stdin>", SD_JSON_PARSE_SENSITIVE, &v, &line, /* reterr_column= */ NULL);
+ if (r < 0)
+ return log_syntax(/* unit= */ NULL, LOG_ERR, fn ?: "<stdin>", line, r, "JSON parse failure.");
+
+ sd_json_variant_unref(arg_from_file);
+ arg_from_file = TAKE_PTR(v);
+ break;
+ }
+
case '?':
return -EINVAL;
@@ -1450,6 +1513,9 @@ static int parse_argv(int argc, char *argv[]) {
if (arg_disposition_mask == UINT64_MAX)
arg_disposition_mask = USER_DISPOSITION_MASK_MAX;
+ if (arg_from_file)
+ arg_boundaries = false;
+
return 1;
}
diff --git a/test/units/TEST-74-AUX-UTILS.userdbctl.sh b/test/units/TEST-74-AUX-UTILS.userdbctl.sh
new file mode 100755
index 0000000000..e4d21c2006
--- /dev/null
+++ b/test/units/TEST-74-AUX-UTILS.userdbctl.sh
@@ -0,0 +1,16 @@
+#!/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
+
+# Make sure that -F shows same data as if we'd ask directly
+userdbctl user root -j | userdbctl -F- user | cmp - <(userdbctl user root)
+userdbctl user systemd-network -j | userdbctl -F- user | cmp - <(userdbctl user systemd-network)
+userdbctl user 65534 -j | userdbctl -F- user | cmp - <(userdbctl user 65534)
+
+userdbctl group root -j | userdbctl -F- group | cmp - <(userdbctl group root)
+userdbctl group systemd-network -j | userdbctl -F- group | cmp - <(userdbctl group systemd-network)
+userdbctl group 65534 -j | userdbctl -F- group | cmp - <(userdbctl group 65534)

36
0572-man-fix-typo.patch Normal file
View File

@ -0,0 +1,36 @@
From db7763fad428efea6ed76ce688e887342919a375 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Mon, 10 Mar 2025 03:23:44 +0900
Subject: [PATCH] man: fix typo
Follow-ups for fd0dd2d4bce00b69f8badab1a71b8929e392af5c.
(cherry picked from commit e2ea2d134962f6841b29d58ac04a512277322dce)
Related: RHEL-143029
---
man/userdbctl.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/man/userdbctl.xml b/man/userdbctl.xml
index dd51226868..fb66ee2c0a 100644
--- a/man/userdbctl.xml
+++ b/man/userdbctl.xml
@@ -276,7 +276,7 @@
<listitem><para>List all known users records or show details of one or more specified user
records. Use <option>--output=</option> to tweak output mode.</para>
- <para>If used in conjuntion with <option>--from-file=</option> the user record data is read in JSON
+ <para>If used in conjunction with <option>--from-file=</option> the user record data is read in JSON
format from the specified file instead of querying it from the system. For details see above.</para>
<xi:include href="version-info.xml" xpointer="v245"/></listitem>
@@ -288,7 +288,7 @@
<listitem><para>List all known group records or show details of one or more specified group
records. Use <option>--output=</option> to tweak output mode.</para>
- <para>If used in conjuntion with <option>--from-file=</option> the group record data is read in JSON
+ <para>If used in conjunction with <option>--from-file=</option> the group record data is read in JSON
format from the specified file instead of querying it from the system. For details see above.</para>
<xi:include href="version-info.xml" xpointer="v245"/></listitem>

View File

@ -0,0 +1,50 @@
From bff1d44ba3d110b61ad087522f9baca5f531890c Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Tue, 27 Jan 2026 14:41:27 +0100
Subject: [PATCH] test: fix test with -Dnetworkd=false
User and group systemd-network are created from
sysusers.d/systemd-network.conf, which is only copied into the test
image when building with -Dnetworkd=true. This means that if
-Dnetworkd=false is used, the user and the group don't exist, which
causes the test to fail.
Use a locally created user and group to avoid that.
(cherry picked from commit a11278ce639c67d08c737b31f5b2d5dcf6a420b5)
Related: RHEL-143029
---
test/units/TEST-74-AUX-UTILS.userdbctl.sh | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/test/units/TEST-74-AUX-UTILS.userdbctl.sh b/test/units/TEST-74-AUX-UTILS.userdbctl.sh
index e4d21c2006..c6ecc4ea63 100755
--- a/test/units/TEST-74-AUX-UTILS.userdbctl.sh
+++ b/test/units/TEST-74-AUX-UTILS.userdbctl.sh
@@ -6,11 +6,23 @@ set -o pipefail
# shellcheck source=test/units/util.sh
. "$(dirname "$0")"/util.sh
+cleanup() {
+ set +e
+ userdel -r test-74-userdbctl
+ groupdel test-74-userdbctl
+}
+
+trap cleanup EXIT
+
+systemd-sysusers - <<EOF
+u test-74-userdbctl - "Test user for TEST-74-AUX-UTILS.userdbctl.sh" / /bin/bash
+EOF
+
# Make sure that -F shows same data as if we'd ask directly
userdbctl user root -j | userdbctl -F- user | cmp - <(userdbctl user root)
-userdbctl user systemd-network -j | userdbctl -F- user | cmp - <(userdbctl user systemd-network)
+userdbctl user test-74-userdbctl -j | userdbctl -F- user | cmp - <(userdbctl user test-74-userdbctl)
userdbctl user 65534 -j | userdbctl -F- user | cmp - <(userdbctl user 65534)
userdbctl group root -j | userdbctl -F- group | cmp - <(userdbctl group root)
-userdbctl group systemd-network -j | userdbctl -F- group | cmp - <(userdbctl group systemd-network)
+userdbctl group test-74-userdbctl -j | userdbctl -F- group | cmp - <(userdbctl group test-74-userdbctl)
userdbctl group 65534 -j | userdbctl -F- group | cmp - <(userdbctl group 65534)

View File

@ -0,0 +1,51 @@
From 336556b44e0db18ed59016beff852f44e91c981f Mon Sep 17 00:00:00 2001
From: Jan Macku <jamacku@redhat.com>
Date: Fri, 6 Feb 2026 14:17:54 +0100
Subject: [PATCH] ci: run apt-get update before running mkosi
This is alternative to https://github.com/systemd/mkosi/commit/8c9f6cc6586c4f3b8fedafc5a19e6bf30531ebfc
The repository metadata in the image can get out of date. Let's run
apt-get update to make sure it is fresh.
```
Err:21 https://security.ubuntu.com/ubuntu noble-updates/main amd64 libboost-thread1.83.0 amd64 1.83.0-2.1ubuntu3.1
404 Not Found [IP: 52.161.185.214 80]
E: Failed to fetch https://security.ubuntu.com/ubuntu/pool/main/b/boost1.83/libboost-thread1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb 404 Not Found [IP: 52.161.185.214 80]
Fetched 8320 kB in 2s (3488 kB/s)
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Error: Process completed with exit code 100.
```
rhel-only: ci
Related: RHEL-115001
---
.github/workflows/coverage.yml | 1 +
.github/workflows/mkosi.yml | 1 +
2 files changed, 2 insertions(+)
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 1cce9a97f3..bf918bc399 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -16,6 +16,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ - run: sudo apt-get update
- uses: systemd/mkosi@d501139032aa659fa8d34bdb850f4eb6b5f458ed
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml
index 6ddfaf1a87..fe2922ac70 100644
--- a/.github/workflows/mkosi.yml
+++ b/.github/workflows/mkosi.yml
@@ -83,6 +83,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+ - run: sudo apt-get update
- uses: systemd/mkosi@d501139032aa659fa8d34bdb850f4eb6b5f458ed
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space

View File

@ -48,7 +48,7 @@ Url: https://systemd.io
# Allow users to specify the version and release when building the rpm by
# setting the %%version_override and %%release_override macros.
Version: %{?version_override}%{!?version_override:257}
Release: 21%{?dist}.alma.1
Release: 22%{?dist}.alma.1
%global stable %(c="%version"; [ "$c" = "${c#*.*}" ]; echo $?)
@ -608,6 +608,82 @@ Patch0495: 0495-tools-ignore-root-element-explicitly-in-check-versio.patch
Patch0496: 0496-systemd-logind-Add-signal-section-in-man-systemd-log.patch
Patch0497: 0497-timer-rebase-the-next-elapse-timestamp-only-if-timer.patch
Patch0498: 0498-timer-rebase-last_trigger-timestamp-if-needed.patch
Patch0499: 0499-fstab-generator-fix-options-in-systemd.mount-extra-a.patch
Patch0500: 0500-hwdb-Add-Accelerometer-mount-matrix-for-Irbis-TW43.patch
Patch0501: 0501-hwdb-map-FN-key-on-TongFang-X4SP4NAL-laptops.patch
Patch0502: 0502-hwdb-update-rules.patch
Patch0503: 0503-hwdb-update-autosuspend-rules.patch
Patch0504: 0504-Add-Razer-Cobra-mouse-to-hwdb.patch
Patch0505: 0505-hwdb-enable-autosuspend-for-Dell-DW5826e-WWAN-modem.patch
Patch0506: 0506-hwdb-sort-SDR-devices-by-vendor-name.patch
Patch0507: 0507-70-mouse.hwdb-Add-Razer-Basilisk-V3-Asus-Cerberus-2-.patch
Patch0508: 0508-hwdb-run-update-hwdb.patch
Patch0509: 0509-Add-Hantek-DSO-6022-oscilloscopes-and-compatible-dev.patch
Patch0510: 0510-Update-60-sensor.hwdb-Add-support-for-Lenovo-Legion-.patch
Patch0511: 0511-hwdb-add-Airspy-devices.patch
Patch0512: 0512-hwdb-add-more-devices.patch
Patch0513: 0513-hwdb-add-MiriSDR-MSi2500-devices.patch
Patch0514: 0514-hwdb-add-missing-Ettus-Research-B200-rule.patch
Patch0515: 0515-hwdb-add-LimeSDR-XTRX-devices.patch
Patch0516: 0516-hwdb-add-HydraSDR-RFOne.patch
Patch0517: 0517-hwdb-add-SDRplay-devices.patch
Patch0518: 0518-hwdb-update.patch
Patch0519: 0519-hwdb-fix-calibrate-rotation-sensor-for-Positivo-K116.patch
Patch0520: 0520-Add-Nulea-M501-trackball-to-hwdb.patch
Patch0521: 0521-add-comment-to-70-mouse.hwdb-regarding-generic-name-.patch
Patch0522: 0522-remove-extra-space-from-new-hwdb.d-70-mouse.hwdb-ent.patch
Patch0523: 0523-remove-bonus-line.patch
Patch0524: 0524-hwdb-drop-trailing-whitespace.patch
Patch0525: 0525-remove-Nulea-M501-usb-entry-from-hwdb.patch
Patch0526: 0526-test-parse_hwdb-wrap-Or-inside-an-And-in-a-Group.patch
Patch0527: 0527-rules-extend-60-input-id.rules-to-allow-for-bus-vid-.patch
Patch0528: 0528-hwdb-don-t-tag-a-named-Mouse-device-as-pointingstick.patch
Patch0529: 0529-hwdb-Add-V64x_V65xAU-to-list-of-Clevo-models-where-s.patch
Patch0530: 0530-hwdb-gpd-micropc2-sensor-39493.patch
Patch0531: 0531-hwdb-add-support-for-the-Logitech-MX-Master-4-39490.patch
Patch0532: 0532-hwdb-add-entry-for-Acer-Switch-One-10-SW1-011-39716.patch
Patch0533: 0533-keymap-Ignore-brightness-keys-on-Dell-Inspiron-3505-.patch
Patch0534: 0534-Update-hwdb.patch
Patch0535: 0535-hwdb-Add-Elecom-IST-Pro-trackball-39762.patch
Patch0536: 0536-hwdb-Fix-keyboard-backlight-keys-on-Acer-Nitro-5-AN5.patch
Patch0537: 0537-hwdb-Add-alternative-mode-for-Beacn-Mic-39868.patch
Patch0538: 0538-Update-hwdb.patch
Patch0539: 0539-hwdb-add-ProtoArc-EM01-NL-mouse-configuration.patch
Patch0540: 0540-hwdb-add-Magic-Trackpad-v2-USB-C-2024-to-quirks-4003.patch
Patch0541: 0541-hwdb-sensor-Remove-Lenovo-IdeaPad-D330-accel-mount-m.patch
Patch0542: 0542-Update-hwdb.patch
Patch0543: 0543-hwdb-update-autosuspend-rules.patch
Patch0544: 0544-hwdb-Add-ACCEL_MOUNT_MATRIX-for-variant-of-TERRA-PAD.patch
Patch0545: 0545-hwdb-sensor-Add-HP-OmniBook-Ultra-Flip-14-accel-moun.patch
Patch0546: 0546-hwdb-sensor-Remove-Lenovo-IdeaPad-Duet-3-accel-mount.patch
Patch0547: 0547-hwdb-Fix-ACCEL_MOUNT_MATRIX-for-Lenovo-Ideapad-MIIX-.patch
Patch0548: 0548-hwdb-fix-unstable-button-triggering-on-Mipad-2-under.patch
Patch0549: 0549-Update-hwdb.patch
Patch0550: 0550-hwdb-touchpad-config-for-Apple-MacbookPro12-1-Early-.patch
Patch0551: 0551-Add-Lenovo-Y50-70-touchpad-to-60-evdev.hwdb.patch
Patch0552: 0552-quirks-sensor-add-info-about-ACPI-accel_matrix.patch
Patch0553: 0553-quirks-Re-add-D330-accel_matrix-as-identity-one-4022.patch
Patch0554: 0554-quirks-touchpad-Set-Duet-3-bt-touchpad-internal.patch
Patch0555: 0555-hwdb-Add-missing-scancodes-for-Lenovo-Legion-devices.patch
Patch0556: 0556-hwdb-Add-missing-vendor-names-for-older-AYANEO-devic.patch
Patch0557: 0557-hwdb-add-matrix-for-ASUS-2-in-1-T101HA.patch
Patch0558: 0558-hwdb-add-HP-EliteBoard-Mic-mute-key-mapping.patch
Patch0559: 0559-hwdb-Add-GPD-Pocket-4-chassis-quirk.patch
Patch0560: 0560-hwdb-make-three-more-hwdb-files-parsed-by-parse_hwdb.patch
Patch0561: 0561-hwdb-set-touchpad-resolution-for-all-ThinkPad-T49x-c.patch
Patch0562: 0562-hwdb-Update-Lenovo-Legion-Go-Models.patch
Patch0563: 0563-hwdb-Add-extended-SteelSeries-Arctis-headset-device-.patch
Patch0564: 0564-hwdb-keyboard-fix-typo-CAPSLOCK-to-NUMLOCK.patch
Patch0565: 0565-hwdb-keyboard-uppercase-apple-id.patch
Patch0566: 0566-integritysetup-Add-support-for-hmac-sha512.patch
Patch0567: 0567-integritysetup-Add-PHMAC-algorithm-to-list-of-known-.patch
Patch0568: 0568-core-increment-start-limit-counter-only-when-we-can-.patch
Patch0569: 0569-TEST-07-PID1-wait-for-systemd-resolved-being-stopped.patch
Patch0570: 0570-test-extend-start-limit-interval.patch
Patch0571: 0571-userdbctl-optionally-show-user-group-data-from-JSON-.patch
Patch0572: 0572-man-fix-typo.patch
Patch0573: 0573-test-fix-test-with-Dnetworkd-false.patch
Patch0574: 0574-ci-run-apt-get-update-before-running-mkosi.patch
# Downstream-only patches (90009999)
%endif
@ -1559,9 +1635,87 @@ rm -f .file-list-*
rm -f %{name}.lang
%changelog
* Fri Dec 19 2025 Andrew Lukoshko <alukoshko@almalinux.org> - 257-21.alma.1
* Thu Feb 12 2026 Andrew Lukoshko <alukoshko@almalinux.org> - 257-22.alma.1
- Debrand for AlmaLinux
* Fri Feb 06 2026 systemd maintenance team <systemd-maint@redhat.com> - 257-22
- fstab-generator: fix options in systemd.mount-extra= arg (RHEL-125822)
- hwdb: Add Accelerometer mount matrix for Irbis TW43 (RHEL-72702)
- hwdb: map FN key on TongFang X4SP4NAL laptops (RHEL-72702)
- hwdb: update rules (RHEL-72702)
- hwdb: update autosuspend rules (RHEL-72702)
- Add Razer Cobra mouse to hwdb (RHEL-72702)
- hwdb: enable autosuspend for Dell DW5826e WWAN modem (RHEL-72702)
- hwdb: sort SDR devices by vendor name (RHEL-72702)
- 70-mouse.hwdb: Add Razer Basilisk V3, Asus Cerberus, +2 more (RHEL-72702)
- hwdb: run "update-hwdb" (RHEL-72702)
- Add Hantek DSO-6022 oscilloscopes and compatible devices (RHEL-72702)
- Update 60-sensor.hwdb - Add support for Lenovo Legion Go (RHEL-72702)
- hwdb: add Airspy devices (RHEL-72702)
- hwdb: add more devices (RHEL-72702)
- hwdb: add MiriSDR MSi2500 devices (RHEL-72702)
- hwdb: add missing Ettus Research B200 rule (RHEL-72702)
- hwdb: add LimeSDR XTRX devices (RHEL-72702)
- hwdb: add HydraSDR RFOne (RHEL-72702)
- hwdb: add SDRplay devices (RHEL-72702)
- hwdb: update (RHEL-72702)
- hwdb: fix calibrate rotation sensor for Positivo K116J (#39189) (RHEL-72702)
- Add Nulea M501 trackball to hwdb (RHEL-72702)
- add comment to 70-mouse.hwdb regarding generic name for Nulea M501 USB dongle (RHEL-72702)
- remove extra space from new hwdb.d/70-mouse.hwdb entries to fix failing test (RHEL-72702)
- remove bonus line (RHEL-72702)
- hwdb: drop trailing whitespace (RHEL-72702)
- remove Nulea M501 usb entry from hwdb (RHEL-72702)
- test/parse_hwdb: wrap Or inside an And in a Group (RHEL-72702)
- rules: extend 60-input-id.rules to allow for bus/vid/pid/name matches (RHEL-72702)
- hwdb: don't tag a named Mouse device as pointingstick (RHEL-72702)
- hwdb: Add V64x_V65xAU to list of Clevo models where scancode f7+f8 get mapped to touchpad-toggle (RHEL-72702)
- hwdb: gpd micropc2 sensor (#39493) (RHEL-72702)
- hwdb: add support for the Logitech MX Master 4 (#39490) (RHEL-72702)
- hwdb: add entry for Acer Switch One 10 (SW1-011) (#39716) (RHEL-72702)
- keymap: Ignore brightness keys on Dell Inspiron 3505 to avoid double events (RHEL-72702)
- Update hwdb (RHEL-72702)
- hwdb: Add Elecom IST Pro trackball (#39762) (RHEL-72702)
- hwdb: Fix keyboard backlight keys on Acer Nitro 5 AN515-58 (#39769) (RHEL-72702)
- hwdb: Add alternative mode for Beacn Mic (#39868) (RHEL-72702)
- Update hwdb (RHEL-72702)
- hwdb: add ProtoArc EM01 NL mouse configuration (RHEL-72702)
- hwdb: add Magic Trackpad v2 USB-C (2024) to quirks (#40032) (RHEL-72702)
- hwdb: sensor: Remove Lenovo IdeaPad D330 accel mount matrix (RHEL-72702)
- Update hwdb (RHEL-72702)
- hwdb: update autosuspend rules (RHEL-72702)
- hwdb: Add ACCEL_MOUNT_MATRIX for variant of TERRA PAD 1061 (RHEL-72702)
- hwdb: sensor: Add HP OmniBook Ultra Flip 14 accel mount matrix (#40076) (RHEL-72702)
- hwdb: sensor: Remove Lenovo IdeaPad Duet 3 accel mount matrix (#40075) (RHEL-72702)
- hwdb: Fix ACCEL_MOUNT_MATRIX for Lenovo Ideapad MIIX 310-ICR (#40067) (RHEL-72702)
- hwdb: fix unstable button triggering on Mipad 2 under GNOME (#40071) (RHEL-72702)
- Update hwdb (RHEL-72702)
- hwdb: touchpad config for Apple MacbookPro12,1 Early 2015 (RHEL-72702)
- Add Lenovo Y50-70 touchpad to 60-evdev.hwdb (RHEL-72702)
- quirks: sensor: add info about ACPI accel_matrix (RHEL-72702)
- quirks: Re-add D330 accel_matrix as identity one (#40226) (RHEL-72702)
- quirks: touchpad: Set Duet 3 bt touchpad internal (RHEL-72702)
- hwdb: Add missing scancodes for Lenovo Legion devices (RHEL-72702)
- hwdb: Add missing vendor names for older AYANEO devices Adds AYADEVICE and AYA NEO vendor names. Early founders editon and 2021 models used these DMI values instead of AYANEO (RHEL-72702)
- hwdb: add matrix for ASUS 2-in-1 T101HA (RHEL-72702)
- hwdb: add HP EliteBoard Mic mute key mapping (RHEL-72702)
- hwdb: Add GPD Pocket 4 chassis quirk (RHEL-72702)
- hwdb: make three more hwdb files parsed by parse_hwdb.py (RHEL-72702)
- hwdb: set touchpad resolution for all ThinkPad T49x chassis laptops (RHEL-72702)
- hwdb: Update Lenovo Legion Go Models - Different BIOS versions of the Legion Go 2 can init the keyboard device as set 1 (appears as raw set 2) or as set 2 (appears as translated set 2). Add the Legion Go 2 to the Translated list. - While at it, specify the models in a more verbose manner for posterity. (RHEL-72702)
- hwdb: Add extended SteelSeries Arctis headset device support (#40479) (RHEL-72702)
- hwdb: keyboard: fix typo CAPSLOCK to NUMLOCK (RHEL-72702)
- hwdb: keyboard: uppercase apple id (RHEL-72702)
- integritysetup: Add support for hmac-sha512 (RHEL-27852)
- integritysetup: Add PHMAC algorithm to list of known algorithms (RHEL-27852)
- core: increment start limit counter only when we can start the unit (RHEL-115032)
- TEST-07-PID1: wait for systemd-resolved being stopped (RHEL-115032)
- test: extend start limit interval (RHEL-115032)
- userdbctl: optionally show user/group data from JSON filerather than from system (RHEL-143029)
- man: fix typo (RHEL-143029)
- test: fix test with -Dnetworkd=false (RHEL-143029)
- ci: run apt-get update before running mkosi (RHEL-115001)
* Wed Dec 17 2025 systemd maintenance team <systemd-maint@redhat.com> - 257-21
- add GUID for clock group (RHEL-113051)