Debrand for AlmaLinux

This commit is contained in:
Andrew Lukoshko 2025-08-15 04:01:06 +00:00 committed by root
commit 692ee64fc8
85 changed files with 232978 additions and 2 deletions

View File

@ -0,0 +1,128 @@
From 48720c2ac6e08330c2a6d8cfcf5e02218401d27d Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <fsumsal@redhat.com>
Date: Fri, 11 Apr 2025 15:11:09 +0200
Subject: [PATCH] mkosi: use C10S repo for building RPMs
- switch to CentOS Stream repo for the RPM build
- define 'rhel' to avoid python3(pillow) BR on CentOS
- don't install systemd-standalone-* packages on CentOS, since we don't
ship them
- ditto for systemd-networkd
- reconfigure EPEL stuff and drop packages no longer shipped there
rhel-only: ci
Related: RHEL-79976
---
mkosi.conf.d/10-centos-fedora/mkosi.conf | 2 --
mkosi.conf.d/10-centos-fedora/mkosi.conf.d/10-debug.conf | 1 -
mkosi.conf.d/10-centos/mkosi.conf.d/10-epel.conf | 3 +--
mkosi.conf.d/10-centos/mkosi.conf.d/20-epel-packages.conf | 2 --
.../build/mkosi.conf.d/centos-fedora/mkosi.build.chroot | 1 +
mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.conf | 6 +++---
.../mkosi.conf.d/centos/mkosi.conf.d/epel-packages.conf | 1 -
mkosi.images/exitrd/mkosi.conf.d/10-centos-fedora.conf | 1 -
8 files changed, 5 insertions(+), 12 deletions(-)
diff --git a/mkosi.conf.d/10-centos-fedora/mkosi.conf b/mkosi.conf.d/10-centos-fedora/mkosi.conf
index 8004c089ad..90603bba14 100644
--- a/mkosi.conf.d/10-centos-fedora/mkosi.conf
+++ b/mkosi.conf.d/10-centos-fedora/mkosi.conf
@@ -12,8 +12,6 @@ VolatilePackages=
systemd-devel
systemd-journal-remote
systemd-libs
- systemd-networkd
- systemd-networkd-defaults
systemd-oomd-defaults
systemd-pam
systemd-resolved
diff --git a/mkosi.conf.d/10-centos-fedora/mkosi.conf.d/10-debug.conf b/mkosi.conf.d/10-centos-fedora/mkosi.conf.d/10-debug.conf
index 0c3707b20b..e99190355a 100644
--- a/mkosi.conf.d/10-centos-fedora/mkosi.conf.d/10-debug.conf
+++ b/mkosi.conf.d/10-centos-fedora/mkosi.conf.d/10-debug.conf
@@ -10,7 +10,6 @@ VolatilePackages=
systemd-debugsource
systemd-journal-remote-debuginfo
systemd-libs-debuginfo
- systemd-networkd-debuginfo
systemd-pam-debuginfo
systemd-resolved-debuginfo
systemd-tests-debuginfo
diff --git a/mkosi.conf.d/10-centos/mkosi.conf.d/10-epel.conf b/mkosi.conf.d/10-centos/mkosi.conf.d/10-epel.conf
index 9e92a4f226..2073c1f085 100644
--- a/mkosi.conf.d/10-centos/mkosi.conf.d/10-epel.conf
+++ b/mkosi.conf.d/10-centos/mkosi.conf.d/10-epel.conf
@@ -1,9 +1,8 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
-Release=9
+Release=10
[Distribution]
Repositories=
epel
- epel-next
diff --git a/mkosi.conf.d/10-centos/mkosi.conf.d/20-epel-packages.conf b/mkosi.conf.d/10-centos/mkosi.conf.d/20-epel-packages.conf
index 11dc96918a..08826ca191 100644
--- a/mkosi.conf.d/10-centos/mkosi.conf.d/20-epel-packages.conf
+++ b/mkosi.conf.d/10-centos/mkosi.conf.d/20-epel-packages.conf
@@ -6,8 +6,6 @@ Repositories=epel
[Content]
Packages=
dfuzzer
- dhcp-server
erofs-utils
knot
qrencode
- sbsigntools
diff --git a/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot b/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot
index e41b9b1189..1605fa1c0f 100755
--- a/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot
+++ b/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.build.chroot
@@ -96,6 +96,7 @@ CXX_LD="$( ((LLVM)) && echo lld)" \
--define "meson_build %{shrink:%{__meson} compile -C %{_vpath_builddir} -j %{_smp_build_ncpus} $( ((MESON_VERBOSE)) && echo --verbose) %{nil}}" \
--define "meson_install %{shrink:DESTDIR=%{buildroot} %{__meson} install -C %{_vpath_builddir} --no-rebuild --quiet %{nil}}" \
--define "meson_extra_configure_options $MKOSI_MESON_OPTIONS $MESON_OPTIONS" \
+ --define "rhel 10" \
$( ((WITH_DEBUG)) || echo "--define=__brp_strip %{nil}") \
--define "__brp_compress %{nil}" \
--define "__brp_mangle_shebangs %{nil}" \
diff --git a/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.conf b/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.conf
index b81649feba..31f03ca120 100644
--- a/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.conf
+++ b/mkosi.images/build/mkosi.conf.d/centos-fedora/mkosi.conf
@@ -6,9 +6,9 @@ Distribution=|fedora
[Build]
Environment=
- GIT_URL=https://src.fedoraproject.org/rpms/systemd.git
- GIT_BRANCH=rawhide
- GIT_COMMIT=433efb38f49a016733c805b2dba914c39ed99ec8
+ GIT_URL=https://gitlab.com/redhat/centos-stream/rpms/systemd/
+ GIT_BRANCH=c10s
+ GIT_COMMIT=c10s
PKG_SUBDIR=fedora
[Content]
diff --git a/mkosi.images/build/mkosi.conf.d/centos/mkosi.conf.d/epel-packages.conf b/mkosi.images/build/mkosi.conf.d/centos/mkosi.conf.d/epel-packages.conf
index 15849c5145..1d9498bf41 100644
--- a/mkosi.images/build/mkosi.conf.d/centos/mkosi.conf.d/epel-packages.conf
+++ b/mkosi.images/build/mkosi.conf.d/centos/mkosi.conf.d/epel-packages.conf
@@ -6,4 +6,3 @@ Repositories=epel
[Content]
Packages=
erofs-utils
- rpmautospec-rpm-macros
diff --git a/mkosi.images/exitrd/mkosi.conf.d/10-centos-fedora.conf b/mkosi.images/exitrd/mkosi.conf.d/10-centos-fedora.conf
index a1fa32b786..1339ebce24 100644
--- a/mkosi.images/exitrd/mkosi.conf.d/10-centos-fedora.conf
+++ b/mkosi.images/exitrd/mkosi.conf.d/10-centos-fedora.conf
@@ -1,7 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
-Distribution=|centos
Distribution=|fedora
[Content]

View File

@ -0,0 +1,41 @@
From 6cbfae911cc151ed9fef41b6625ab90ac6971521 Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <fsumsal@redhat.com>
Date: Fri, 11 Apr 2025 15:24:56 +0200
Subject: [PATCH] test: adapt TEST-22 to the downstream --purge behavior
Follow-up for bbd480dc658d26fdd35c9635a08b5380aaccdcad.
rhel-only: ci
Related: RHEL-79976
---
test/units/TEST-22-TMPFILES.18.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/units/TEST-22-TMPFILES.18.sh b/test/units/TEST-22-TMPFILES.18.sh
index c81f6bd0ef..1eb264a279 100755
--- a/test/units/TEST-22-TMPFILES.18.sh
+++ b/test/units/TEST-22-TMPFILES.18.sh
@@ -24,7 +24,7 @@ test -f /tmp/somedir/somefile
grep -q baz /tmp/somedir/somefile
grep -q qux /tmp/someotherfile
-systemd-tmpfiles --purge - <<<"$c"
+systemd-tmpfiles --purge --destroy-data - <<<"$c"
test ! -f /tmp/somedir/somefile
test ! -d /tmp/somedir/
grep -q qux /tmp/someotherfile
@@ -34,12 +34,12 @@ test ! -f /tmp/somedir/somefile
test ! -d /tmp/somedir/
grep -q qux /tmp/someotherfile
-systemd-tmpfiles --create --purge - <<<"$c"
+systemd-tmpfiles --create --destroy-data --purge - <<<"$c"
test -f /tmp/somedir/somefile
grep -q baz /tmp/somedir/somefile
grep -q qux /tmp/someotherfile
-systemd-tmpfiles --purge - <<<"$c"
+systemd-tmpfiles --purge --destroy-data - <<<"$c"
test ! -f /tmp/somedir/somefile
test ! -d /tmp/somedir/
grep -q qux /tmp/someotherfile

View File

@ -0,0 +1,87 @@
From 7219f966aa968984b27a5f497de04f4bc9e5be85 Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <fsumsal@redhat.com>
Date: Fri, 11 Apr 2025 15:33:24 +0200
Subject: [PATCH] mkosi: reconfigure the CI for CentOS Stream 10
Skip TEST-60 in a VM, since it's currently very flaky there.
rhel-only: ci
Related: RHEL-79976
---
.github/workflows/mkosi.yml | 28 ++++++++++------------------
1 file changed, 10 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml
index 7a764e82a7..02a8e82c6e 100644
--- a/.github/workflows/mkosi.yml
+++ b/.github/workflows/mkosi.yml
@@ -48,43 +48,35 @@ jobs:
ci:
runs-on: ubuntu-24.04
concurrency:
- group: ${{ github.workflow }}-${{ matrix.distro }}-${{ matrix.release }}-${{ github.ref }}
+ group: ${{ github.workflow }}-${{ toJSON(matrix) }}-${{ github.ref }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
include:
- - distro: fedora
- release: "41"
+ - distro: centos
+ release: "10"
sanitizers: ""
llvm: 0
cflags: "-Og"
relabel: yes
vm: 0
skip: TEST-21-DFUZZER
- - distro: fedora
- release: rawhide
- sanitizers: address,undefined
- llvm: 1
- cflags: "-Og"
- relabel: yes
- vm: 0
- distro: centos
- release: "9"
+ release: "10"
sanitizers: ""
llvm: 0
cflags: "-Og"
relabel: yes
- vm: 0
- skip: TEST-21-DFUZZER
+ vm: 1
+ skip: "TEST-21-DFUZZER TEST-60-MOUNT-RATELIMIT"
- distro: centos
release: "10"
- sanitizers: ""
- llvm: 0
+ sanitizers: address,undefined
+ llvm: 1
cflags: "-Og"
relabel: yes
vm: 0
- skip: TEST-21-DFUZZER
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -183,7 +175,7 @@ jobs:
sudo --preserve-env mkosi sandbox -- \
env \
TEST_PREFER_QEMU=${{ matrix.vm }} \
- TEST_SKIP=${{ matrix.skip }} \
+ TEST_SKIP="${{ matrix.skip }}" \
meson test \
-C build \
--no-rebuild \
@@ -195,7 +187,7 @@ jobs:
- name: Archive failed test journals
uses: actions/upload-artifact@v4
- if: failure() && (github.repository == 'systemd/systemd' || github.repository == 'systemd/systemd-stable')
+ if: failure() && (github.repository == 'systemd/systemd' || github.repository == 'redhat-plumbers/systemd-rhel10')
with:
name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-failed-test-journals
path: |

View File

@ -0,0 +1,179 @@
From b343298bafe31010256a45351aea1496e41a6382 Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <fsumsal@redhat.com>
Date: Mon, 14 Apr 2025 14:32:43 +0200
Subject: [PATCH] test: skip tests for components not shipped in RHEL 10
rhel-only: ci
Related: RHEL-79976
---
test/meson.build | 16 +++++++-------
test/units/TEST-21-DFUZZER.sh | 18 ++--------------
test/units/TEST-65-ANALYZE.sh | 25 ++++++++++++----------
test/units/TEST-74-AUX-UTILS.networkctl.sh | 5 +++++
test/units/TEST-74-AUX-UTILS.ssh.sh | 5 +++++
5 files changed, 34 insertions(+), 35 deletions(-)
diff --git a/test/meson.build b/test/meson.build
index 5545a56c23..8775a3a3df 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -323,7 +323,7 @@ foreach dirname : [
'TEST-05-RLIMITS',
'TEST-06-SELINUX',
'TEST-07-PID1',
- 'TEST-08-INITRD',
+# 'TEST-08-INITRD', # we don't ship standalone systemd-shutdown
'TEST-09-REBOOT',
'TEST-13-NSPAWN',
'TEST-15-DROPIN',
@@ -337,8 +337,8 @@ foreach dirname : [
'TEST-24-CRYPTSETUP',
'TEST-25-IMPORT',
'TEST-26-SYSTEMCTL',
- 'TEST-29-PORTABLE',
- 'TEST-30-ONCLOCKCHANGE',
+# 'TEST-29-PORTABLE', # we don't ship systemd-portabled and friends
+# 'TEST-30-ONCLOCKCHANGE', # we don't ship systemd-timesyncd
'TEST-31-DEVICE-ENUMERATION',
'TEST-32-OOMPOLICY',
'TEST-34-DYNAMICUSERMIGRATE',
@@ -347,8 +347,8 @@ foreach dirname : [
'TEST-38-FREEZER',
'TEST-43-PRIVATEUSER-UNPRIV',
'TEST-44-LOG-NAMESPACE',
- 'TEST-45-TIMEDATE',
- 'TEST-46-HOMED',
+# 'TEST-45-TIMEDATE', # we don't ship systemd-timesyncd
+# 'TEST-46-HOMED', # we don't ship systemd-homed
'TEST-50-DISSECT',
'TEST-52-HONORFIRSTSHUTDOWN',
'TEST-53-ISSUE-16347',
@@ -370,7 +370,7 @@ foreach dirname : [
'TEST-72-SYSUPDATE',
'TEST-73-LOCALE',
'TEST-74-AUX-UTILS',
- 'TEST-75-RESOLVED',
+# 'TEST-75-RESOLVED', # we dont't ship systemd-networkd
'TEST-76-SYSCTL',
'TEST-78-SIGQUEUE',
'TEST-79-MEMPRESS',
@@ -378,8 +378,8 @@ foreach dirname : [
'TEST-81-GENERATORS',
'TEST-82-SOFTREBOOT',
'TEST-83-BTRFS',
- 'TEST-84-STORAGETM',
- 'TEST-85-NETWORK',
+# 'TEST-84-STORAGETM', # we don't ship systemd-storagetm
+# 'TEST-85-NETWORK', # we don't ship systemd-networkd
'TEST-86-MULTI-PROFILE-UKI',
]
subdir(dirname)
diff --git a/test/units/TEST-21-DFUZZER.sh b/test/units/TEST-21-DFUZZER.sh
index 08ebfd91eb..9fae9131f9 100755
--- a/test/units/TEST-21-DFUZZER.sh
+++ b/test/units/TEST-21-DFUZZER.sh
@@ -57,13 +57,13 @@ cat /etc/dfuzzer.conf
# TODO
# * check for possibly newly introduced buses?
BUS_LIST=(
- org.freedesktop.home1
+# org.freedesktop.home1
org.freedesktop.hostname1
org.freedesktop.import1
org.freedesktop.locale1
org.freedesktop.login1
org.freedesktop.machine1
- org.freedesktop.portable1
+# org.freedesktop.portable1
org.freedesktop.resolve1
org.freedesktop.systemd1
org.freedesktop.timedate1
@@ -76,20 +76,6 @@ if tail -n +1 /proc/pressure/{cpu,io,memory}; then
)
fi
-# Some services require specific conditions:
-# - systemd-timesyncd can't run in a container
-# - systemd-networkd can run in a container if it has CAP_NET_ADMIN capability
-if ! systemd-detect-virt --container; then
- BUS_LIST+=(
- org.freedesktop.network1
- org.freedesktop.timesync1
- )
-elif busctl introspect org.freedesktop.network1 / &>/dev/null; then
- BUS_LIST+=(
- org.freedesktop.network1
- )
-fi
-
SESSION_BUS_LIST=(
org.freedesktop.systemd1
)
diff --git a/test/units/TEST-65-ANALYZE.sh b/test/units/TEST-65-ANALYZE.sh
index 2fa368a678..e03f6c17c8 100755
--- a/test/units/TEST-65-ANALYZE.sh
+++ b/test/units/TEST-65-ANALYZE.sh
@@ -882,17 +882,20 @@ systemd-analyze security --threshold=90 --offline=true \
--security-policy=/tmp/testfile.json \
--root=/tmp/img/ testfile.service
-# The strict profile adds a lot of sanboxing options
-systemd-analyze security --threshold=25 --offline=true \
- --security-policy=/tmp/testfile.json \
- --profile=strict \
- --root=/tmp/img/ testfile.service
-
-# The trusted profile doesn't add any sanboxing options
-(! systemd-analyze security --threshold=25 --offline=true \
- --security-policy=/tmp/testfile.json \
- --profile=/usr/lib/systemd/portable/profile/trusted/service.conf \
- --root=/tmp/img/ testfile.service)
+# We don't ship systemd-portable in RHEL 10, hence there are no profiles we could use in the tests below
+if [[ -e /usr/lib/systemd/portable/profile ]]; then
+ # The strict profile adds a lot of sanboxing options
+ systemd-analyze security --threshold=25 --offline=true \
+ --security-policy=/tmp/testfile.json \
+ --profile=strict \
+ --root=/tmp/img/ testfile.service
+
+ # The trusted profile doesn't add any sanboxing options
+ (! systemd-analyze security --threshold=25 --offline=true \
+ --security-policy=/tmp/testfile.json \
+ --profile=/usr/lib/systemd/portable/profile/trusted/service.conf \
+ --root=/tmp/img/ testfile.service)
+fi
(! systemd-analyze security --threshold=50 --offline=true \
--security-policy=/tmp/testfile.json \
diff --git a/test/units/TEST-74-AUX-UTILS.networkctl.sh b/test/units/TEST-74-AUX-UTILS.networkctl.sh
index 3d402a7182..7ed08a982f 100755
--- a/test/units/TEST-74-AUX-UTILS.networkctl.sh
+++ b/test/units/TEST-74-AUX-UTILS.networkctl.sh
@@ -7,6 +7,11 @@ set -o pipefail
# shellcheck source=test/units/util.sh
. "$(dirname "$0")"/util.sh
+if ! systemctl -q list-unit-files systemd-networkd.service; then
+ echo "Missing systemd-networkd.service, skipping the test"
+ exit 0
+fi
+
at_exit() {
systemctl stop systemd-networkd
diff --git a/test/units/TEST-74-AUX-UTILS.ssh.sh b/test/units/TEST-74-AUX-UTILS.ssh.sh
index 18848e1220..8114250738 100755
--- a/test/units/TEST-74-AUX-UTILS.ssh.sh
+++ b/test/units/TEST-74-AUX-UTILS.ssh.sh
@@ -8,6 +8,11 @@ if ! command -v ssh &> /dev/null || ! command -v sshd &> /dev/null ; then
exit 0
fi
+if [[ ! -e /etc/ssh/ssh_config.d/20-systemd-ssh-proxy.conf ]]; then
+ echo "Necessary configuration not found, skipping the test"
+ exit 0
+fi
+
systemctl -q is-active sshd-unix-local.socket
if test -e /dev/vsock ; then

View File

@ -0,0 +1,75 @@
From 7b8223ba2881a2aae20ba3bdb540db57371583fe Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <fsumsal@redhat.com>
Date: Tue, 15 Apr 2025 12:37:54 +0200
Subject: [PATCH] ci: add a unique identifier to each GH Actions job
As the current identifier is not unique enough for our set of jobs.
rhel-only: ci
Related: RHEL-79976
---
.github/workflows/mkosi.yml | 6 +++++-
test/integration-test-wrapper.py | 5 ++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml
index 02a8e82c6e..6ddfaf1a87 100644
--- a/.github/workflows/mkosi.yml
+++ b/.github/workflows/mkosi.yml
@@ -62,6 +62,7 @@ jobs:
relabel: yes
vm: 0
skip: TEST-21-DFUZZER
+ identifier: regular-nspawn
- distro: centos
release: "10"
sanitizers: ""
@@ -70,6 +71,7 @@ jobs:
relabel: yes
vm: 1
skip: "TEST-21-DFUZZER TEST-60-MOUNT-RATELIMIT"
+ identifier: regular-vm
- distro: centos
release: "10"
sanitizers: address,undefined
@@ -77,6 +79,7 @@ jobs:
cflags: "-Og"
relabel: yes
vm: 0
+ identifier: sanitizers
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -176,6 +179,7 @@ jobs:
env \
TEST_PREFER_QEMU=${{ matrix.vm }} \
TEST_SKIP="${{ matrix.skip }}" \
+ JOB_IDENTIFIER=${{ matrix.identifier }} \
meson test \
-C build \
--no-rebuild \
@@ -189,7 +193,7 @@ jobs:
uses: actions/upload-artifact@v4
if: failure() && (github.repository == 'systemd/systemd' || github.repository == 'redhat-plumbers/systemd-rhel10')
with:
- name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-failed-test-journals
+ name: ci-mkosi-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.distro }}-${{ matrix.release }}-${{ matrix.identifier }}-failed-test-journals
path: |
build/test/journal/*.journal
build/meson-logs/*
diff --git a/test/integration-test-wrapper.py b/test/integration-test-wrapper.py
index 79348bbf62..3e0cbbb678 100755
--- a/test/integration-test-wrapper.py
+++ b/test/integration-test-wrapper.py
@@ -560,9 +560,8 @@ def main() -> None:
id = os.environ['GITHUB_RUN_ID']
workflow = os.environ['GITHUB_WORKFLOW']
iteration = os.environ['GITHUB_RUN_ATTEMPT']
- artifact = (
- f'ci-{workflow}-{id}-{iteration}-{summary.distribution}-{summary.release}-failed-test-journals'
- )
+ identifier = os.environ['JOB_IDENTIFIER']
+ artifact = f'ci-{workflow}-{id}-{iteration}-{summary.distribution}-{summary.release}-{identifier}-failed-test-journals' # noqa: E501
ops += [f'gh run download {id} --name {artifact} -D ci/{artifact}']
journal_file = Path(f'ci/{artifact}/test/journal/{name}.journal')

View File

@ -0,0 +1,24 @@
From 3c3b5aab17ca6dbd94357c7abcebbd1011844553 Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <fsumsal@redhat.com>
Date: Tue, 15 Apr 2025 16:17:01 +0200
Subject: [PATCH] test: limit logging when running TEST-21-DFUZZER
To speed things up.
rhel-only: ci
Related: RHEL-79976
---
test/TEST-21-DFUZZER/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/test/TEST-21-DFUZZER/meson.build b/test/TEST-21-DFUZZER/meson.build
index 932f0c5f0e..231915cb9c 100644
--- a/test/TEST-21-DFUZZER/meson.build
+++ b/test/TEST-21-DFUZZER/meson.build
@@ -6,5 +6,6 @@ integration_tests += [
'timeout' : 3600,
'priority' : 50,
'vm' : true,
+ 'cmdline' : integration_test_template['cmdline'] + ['systemd.log_level=info'],
},
]

View File

@ -0,0 +1,33 @@
From fdebd2be914ce55ec4244c99adc93fc7f046c08f Mon Sep 17 00:00:00 2001
From: Frantisek Sumsal <fsumsal@redhat.com>
Date: Wed, 18 Jun 2025 14:10:52 +0200
Subject: [PATCH] man: mention RHEL documentation in systemctl's man page
Resolves: RHEL-97762
rhel-only: doc
---
man/systemctl.xml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/man/systemctl.xml b/man/systemctl.xml
index fe15bd3722..322505e615 100644
--- a/man/systemctl.xml
+++ b/man/systemctl.xml
@@ -2978,6 +2978,16 @@ EOF
</variablelist>
</refsect1>
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ For examples how to use systemctl in comparison with old service and chkconfig commands please see:
+ <ulink url="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_systemd_unit_files_to_customize_and_optimize_your_system/managing-systemd#managing-system-services-with-systemctl">
+ Managing System Services
+ </ulink>
+ </para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para><simplelist type="inline">

View File

@ -0,0 +1,79 @@
From 58316e895bd8874d40d8b65ca1cdc737835f153e Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Thu, 13 Feb 2025 19:38:45 +0000
Subject: [PATCH] ukify: switch from zstd to zstandard
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The zstd library does not support stream decompression, and it
requires the zstd header to contain extra metadata, that the kernel
build does not append:
$ file -k vmlinuz-6.13+unreleased-cloud-arm64
vmlinuz-6.13+unreleased-cloud-arm64: PE32+ executable (EFI application) Aarch64 (stripped to external PDB), for MS Windows, 2 sections\012- data
$ ukify build --linux vmlinuz-6.13+unreleased-cloud-arm64 --initrd /boot/initrd.img-6.12.12-amd64 --output uki
Kernel version not specified, starting autodetection 😖.
Real-Mode Kernel Header magic not found
+ readelf --notes vmlinuz-6.13+unreleased-cloud-arm64
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
Traceback (most recent call last):
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 2508, in <module>
main()
~~~~^^
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 2497, in main
make_uki(opts)
~~~~~~~~^^^^^^
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 1326, in make_uki
opts.uname = Uname.scrape(linux, opts=opts)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 382, in scrape
version = func(filename, opts=opts)
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 372, in scrape_generic
text = maybe_decompress(filename)
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 219, in maybe_decompress
return get_zboot_kernel(f)
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 199, in get_zboot_kernel
return cast(bytes, zstd.uncompress(f.read(size)))
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
zstd.Error: Input data invalid or missing content size in frame header.
This appears to be by design:
https://github.com/sergey-dryabzhinsky/python-zstd/issues/53
Switch to python3-zstandard, which works.
(cherry picked from commit fbc6fecf1adbd34bd541c04d04ceef2695caa80a)
Related: RHEL-97625
---
src/ukify/ukify.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/ukify/ukify.py b/src/ukify/ukify.py
index b246fe13ca..bd7145d895 100755
--- a/src/ukify/ukify.py
+++ b/src/ukify/ukify.py
@@ -176,8 +176,8 @@ def get_zboot_kernel(f: IO[bytes]) -> bytes:
elif comp_type.startswith(b'xzkern'):
raise NotImplementedError('xzkern decompression not implemented')
elif comp_type.startswith(b'zstd22'):
- zstd = try_import('zstd')
- return cast(bytes, zstd.uncompress(f.read(size)))
+ zstd = try_import('zstandard')
+ return cast(bytes, zstd.ZstdDecompressor().stream_reader(f.read(size)).read())
raise NotImplementedError(f'unknown compressed type: {comp_type!r}')
@@ -207,8 +207,8 @@ def maybe_decompress(filename: Union[str, Path]) -> bytes:
return cast(bytes, gzip.open(f).read())
if start.startswith(b'\x28\xb5\x2f\xfd'):
- zstd = try_import('zstd')
- return cast(bytes, zstd.uncompress(f.read()))
+ zstd = try_import('zstandard')
+ return cast(bytes, zstd.ZstdDecompressor().stream_reader(f.read()).read())
if start.startswith(b'\x02\x21\x4c\x18'):
lz4 = try_import('lz4.frame', 'lz4')

View File

@ -0,0 +1,55 @@
From 563ef6e7052aa04783e619cab02006caecb528cf Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Thu, 13 Feb 2025 19:43:00 +0000
Subject: [PATCH] ukify: fix zboot parsing with zstd
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The header starts with 'zstd', not 'zstd22':
$ ukify build --linux vmlinuz-6.13+unreleased-cloud-arm64 --initrd /boot/initrd.img-6.12.12-amd64 --output uki
Kernel version not specified, starting autodetection 😖.
Real-Mode Kernel Header magic not found
+ readelf --notes vmlinuz-6.13+unreleased-cloud-arm64
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
Traceback (most recent call last):
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 2510, in <module>
main()
~~~~^^
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 2499, in main
make_uki(opts)
~~~~~~~~^^^^^^
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 1328, in make_uki
opts.uname = Uname.scrape(linux, opts=opts)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 384, in scrape
version = func(filename, opts=opts)
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 374, in scrape_generic
text = maybe_decompress(filename)
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 221, in maybe_decompress
return get_zboot_kernel(f)
File "/home/bluca/git/systemd/src/ukify/ukify.py", line 201, in get_zboot_kernel
raise NotImplementedError(f'unknown compressed type: {comp_type!r}')
NotImplementedError: unknown compressed type: b'zstd\x00\x00'
(cherry picked from commit a6d51ae582c863c01c581f1e31492910d53b0427)
Related: RHEL-97625
---
src/ukify/ukify.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ukify/ukify.py b/src/ukify/ukify.py
index bd7145d895..cf35daf821 100755
--- a/src/ukify/ukify.py
+++ b/src/ukify/ukify.py
@@ -175,7 +175,7 @@ def get_zboot_kernel(f: IO[bytes]) -> bytes:
raise NotImplementedError('lzo decompression not implemented')
elif comp_type.startswith(b'xzkern'):
raise NotImplementedError('xzkern decompression not implemented')
- elif comp_type.startswith(b'zstd22'):
+ elif comp_type.startswith(b'zstd'):
zstd = try_import('zstandard')
return cast(bytes, zstd.ZstdDecompressor().stream_reader(f.read(size)).read())

View File

@ -0,0 +1,61 @@
From c164b0ced4b387779a93434717bea4623db8d41c Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Thu, 13 Feb 2025 19:44:12 +0000
Subject: [PATCH] ukify: if the specified kernel is not a valid PE file try to
decompress it
On some distros on some architectures (e.g.: Ubuntu arm64) the kernel is shipped as
a gzipped file, which the UEFI firmware does not understand.
If pefile fails to parse it, try to decompress it.
(cherry picked from commit 0dd03215f1e402092f6c6da213708045e445a9ed)
Related: RHEL-97625
---
src/ukify/ukify.py | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/ukify/ukify.py b/src/ukify/ukify.py
index cf35daf821..45ce8e017c 100755
--- a/src/ukify/ukify.py
+++ b/src/ukify/ukify.py
@@ -1110,7 +1110,22 @@ def make_uki(opts: UkifyConfig) -> None:
sign_kernel = opts.sign_kernel
linux = opts.linux
- if opts.linux and sign_args_present:
+ # On some distros, on some architectures, the vmlinuz is a gzip file, so we need to decompress it
+ # if it's not a valid PE file, as it will fail to be booted by the firmware.
+ if linux:
+ try:
+ pefile.PE(linux, fast_load=True)
+ except pefile.PEFormatError:
+ try:
+ decompressed = maybe_decompress(linux)
+ except NotImplementedError:
+ print(f'{linux} is not a valid PE file and cannot be decompressed either', file=sys.stderr)
+ else:
+ print(f'{linux} is compressed and cannot be loaded by UEFI, decompressing', file=sys.stderr)
+ linux = Path(tempfile.NamedTemporaryFile(prefix='linux-decompressed').name)
+ linux.write_bytes(decompressed)
+
+ if linux and sign_args_present:
assert opts.signtool is not None
signtool = SignTool.from_string(opts.signtool)
@@ -1120,12 +1135,12 @@ def make_uki(opts: UkifyConfig) -> None:
if sign_kernel:
linux_signed = tempfile.NamedTemporaryFile(prefix='linux-signed')
+ signtool.sign(os.fspath(linux), os.fspath(Path(linux_signed.name)), opts=opts)
linux = Path(linux_signed.name)
- signtool.sign(os.fspath(opts.linux), os.fspath(linux), opts=opts)
- if opts.uname is None and opts.linux is not None:
+ if opts.uname is None and linux is not None:
print('Kernel version not specified, starting autodetection 😖.', file=sys.stderr)
- opts.uname = Uname.scrape(opts.linux, opts=opts)
+ opts.uname = Uname.scrape(linux, opts=opts)
uki = UKI(opts.stub)
initrd = join_initrds(opts.initrd)

View File

@ -0,0 +1,63 @@
From 26ad2bbf3555f03534b0ecf5f69bfeea22dcfb6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 9 Jul 2025 23:02:28 +0200
Subject: [PATCH] ukify: fix version detection for aarch64 zboot kernels with
gzip or lzma compression
Fixes https://github.com/systemd/systemd/issues/34780. The number in the header
is the size of the *compressed* data, so for gzip we'd read the initial part of
the decompressed data (equal to the size of the compressed data) and not find
the version string. Later on, Fedora switched to zstd compression, and there we
correctly use the number as the size of the compressed data, so we stopped
hitting the issue, but we should still fix it for older kernels.
I verified that the fix works for gzip-compressed kernels. I also made the same
change for the code for lzma compression. I'm pretty sure it is the right thing,
even though I don't have such a kernel at hand to test.
>>> ukify.Uname.scrape('/lib/modules/6.12.0-0.rc2.24.fc42.aarch64/vmlinuz')
Real-Mode Kernel Header magic not found
+ readelf --notes /lib/modules/6.12.0-0.rc2.24.fc42.aarch64/vmlinuz
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
Found uname version: 6.12.0-0.rc2.24.fc42.aarch64
(cherry picked from commit 85830b0d62ac215952774cf07157c113f2f92cae)
Resolves: RHEL-97625
---
src/ukify/ukify.py | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/ukify/ukify.py b/src/ukify/ukify.py
index 45ce8e017c..b9f2664031 100755
--- a/src/ukify/ukify.py
+++ b/src/ukify/ukify.py
@@ -164,20 +164,24 @@ def get_zboot_kernel(f: IO[bytes]) -> bytes:
f.seek(start)
if comp_type.startswith(b'gzip'):
gzip = try_import('gzip')
- return cast(bytes, gzip.open(f).read(size))
+ data = f.read(size)
+ return cast(bytes, gzip.decompress(data))
elif comp_type.startswith(b'lz4'):
lz4 = try_import('lz4.frame', 'lz4')
- return cast(bytes, lz4.frame.decompress(f.read(size)))
+ data = f.read(size)
+ return cast(bytes, lz4.frame.decompress(data))
elif comp_type.startswith(b'lzma'):
lzma = try_import('lzma')
- return cast(bytes, lzma.open(f).read(size))
+ data = f.read(size)
+ return cast(bytes, lzma.decompress(data))
elif comp_type.startswith(b'lzo'):
raise NotImplementedError('lzo decompression not implemented')
elif comp_type.startswith(b'xzkern'):
raise NotImplementedError('xzkern decompression not implemented')
elif comp_type.startswith(b'zstd'):
zstd = try_import('zstandard')
- return cast(bytes, zstd.ZstdDecompressor().stream_reader(f.read(size)).read())
+ data = f.read(size)
+ return cast(bytes, zstd.ZstdDecompressor().stream_reader(data).read())
raise NotImplementedError(f'unknown compressed type: {comp_type!r}')

View File

@ -0,0 +1,87 @@
From 720ab82b4b8d0a06ee6cae84d7b058c6827e53e7 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Fri, 4 Jul 2025 01:06:54 +0100
Subject: [PATCH] ukify: when decompressing kernel before signing, call verify
on decompressed file
Otherwise it will fail as it's an archive, not a PE file:
Invalid DOS header magic
Can't open image /boot/vmlinuz.old
/boot/vmlinuz.old is compressed and cannot be loaded by UEFI, decompressing
+ sbverify --list /boot/vmlinuz.old
=========================== short test summary info ============================
FAILED ../src/ukify/test/test_ukify.py::test_efi_signing_sbsign[3650] - subprocess.CalledProcessError: Command '['sbverify', '--list', PosixPath('/boot/vmlinuz.old')]' returned non-zero exit status 1.
FAILED ../src/ukify/test/test_ukify.py::test_efi_signing_sbsign[None] - subprocess.CalledProcessError: Command '['sbverify', '--list', PosixPath('/boot/vmlinuz.old')]' returned non-zero exit status 1.
FAILED ../src/ukify/test/test_ukify.py::test_inspect - subprocess.CalledProcessError: Command '['sbverify', '--list', PosixPath('/boot/vmlinuz.old')]' returned non-zero exit status 1.
Follow-up for 0dd03215f1e402092f6c6da213708045e445a9ed
(cherry picked from commit 60bda55f5b407a258be79b28b3a826b5122aa8da)
Related: RHEL-97625
---
src/ukify/ukify.py | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/ukify/ukify.py b/src/ukify/ukify.py
index b9f2664031..da3ceeed24 100755
--- a/src/ukify/ukify.py
+++ b/src/ukify/ukify.py
@@ -467,7 +467,7 @@ class SignTool:
raise NotImplementedError()
@staticmethod
- def verify(opts: UkifyConfig) -> bool:
+ def verify(input_f: Path, opts: UkifyConfig) -> bool:
raise NotImplementedError()
@staticmethod
@@ -503,11 +503,11 @@ class PeSign(SignTool):
subprocess.check_call(cmd)
@staticmethod
- def verify(opts: UkifyConfig) -> bool:
- assert opts.linux is not None
+ def verify(input_f: Path, opts: UkifyConfig) -> bool:
+ assert input_f is not None
tool = find_tool('pesign', opts=opts)
- cmd = [tool, '-i', opts.linux, '-S']
+ cmd = [tool, '-i', input_f, '-S']
print('+', shell_join(cmd), file=sys.stderr)
info = subprocess.check_output(cmd, text=True)
@@ -535,11 +535,11 @@ class SbSign(SignTool):
subprocess.check_call(cmd)
@staticmethod
- def verify(opts: UkifyConfig) -> bool:
- assert opts.linux is not None
+ def verify(input_f: Path, opts: UkifyConfig) -> bool:
+ assert input_f is not None
tool = find_tool('sbverify', opts=opts)
- cmd = [tool, '--list', opts.linux]
+ cmd = [tool, '--list', input_f]
print('+', shell_join(cmd), file=sys.stderr)
info = subprocess.check_output(cmd, text=True)
@@ -587,7 +587,7 @@ class SystemdSbSign(SignTool):
subprocess.check_call(cmd)
@staticmethod
- def verify(opts: UkifyConfig) -> bool:
+ def verify(input_f: Path, opts: UkifyConfig) -> bool:
raise NotImplementedError('systemd-sbsign cannot yet verify if existing PE binaries are signed')
@@ -1135,7 +1135,7 @@ def make_uki(opts: UkifyConfig) -> None:
if sign_kernel is None:
# figure out if we should sign the kernel
- sign_kernel = signtool.verify(opts)
+ sign_kernel = signtool.verify(linux, opts)
if sign_kernel:
linux_signed = tempfile.NamedTemporaryFile(prefix='linux-signed')

View File

@ -0,0 +1,58 @@
From 9190cba3b74c6cd9354e3a177baef2f46e923b9f Mon Sep 17 00:00:00 2001
From: Jan Macku <jamacku@redhat.com>
Date: Thu, 12 Jun 2025 13:59:11 +0200
Subject: [PATCH] udev/net_id: introduce naming scheme for RHEL-10.1
rhel-only: policy
Resolves: RHEL-44419
---
man/systemd.net-naming-scheme.xml | 9 +++++++++
src/shared/netif-naming-scheme.c | 1 +
src/shared/netif-naming-scheme.h | 1 +
3 files changed, 11 insertions(+)
diff --git a/man/systemd.net-naming-scheme.xml b/man/systemd.net-naming-scheme.xml
index d2dc5fe7bb..7cf9b159e4 100644
--- a/man/systemd.net-naming-scheme.xml
+++ b/man/systemd.net-naming-scheme.xml
@@ -558,6 +558,15 @@
<xi:include href="version-info.xml" xpointer="rhel-10.0"/>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><constant>rhel-10.1</constant></term>
+
+ <listitem><para>Same as naming scheme <constant>rhel-10.0</constant>.</para>
+
+ <xi:include href="version-info.xml" xpointer="rhel-10.1"/>
+ </listitem>
+ </varlistentry>
</variablelist>
<para>By default <constant>rhel-10.0</constant> is used.</para>
diff --git a/src/shared/netif-naming-scheme.c b/src/shared/netif-naming-scheme.c
index 5211eebc22..de951c38db 100644
--- a/src/shared/netif-naming-scheme.c
+++ b/src/shared/netif-naming-scheme.c
@@ -45,6 +45,7 @@ static const NamingScheme naming_schemes[] = {
{ "rhel-9.6", NAMING_RHEL_9_6 },
{ "rhel-10.0-beta", NAMING_RHEL_10_0_BETA },
{ "rhel-10.0", NAMING_RHEL_10_0 },
+ { "rhel-10.1", NAMING_RHEL_10_1 },
/* … add more schemes here, as the logic to name devices is updated … */
EXTRA_NET_NAMING_MAP
diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h
index a82f2f04d3..8ef92d2333 100644
--- a/src/shared/netif-naming-scheme.h
+++ b/src/shared/netif-naming-scheme.h
@@ -88,6 +88,7 @@ typedef enum NamingSchemeFlags {
NAMING_RHEL_10_0_BETA = NAMING_V255,
NAMING_RHEL_10_0 = NAMING_V257,
+ NAMING_RHEL_10_1 = NAMING_RHEL_10_0,
EXTRA_NET_NAMING_SCHEMES

View File

@ -0,0 +1,58 @@
From da5fb00ba080e94b491bb0eb3598a440b34ba0fd Mon Sep 17 00:00:00 2001
From: Jan Macku <jamacku@redhat.com>
Date: Thu, 12 Jun 2025 14:02:44 +0200
Subject: [PATCH] udev/net_id: introduce naming scheme for RHEL-9.7
rhel-only: policy
Resolves: RHEL-44419
---
man/systemd.net-naming-scheme.xml | 9 +++++++++
src/shared/netif-naming-scheme.c | 1 +
src/shared/netif-naming-scheme.h | 1 +
3 files changed, 11 insertions(+)
diff --git a/man/systemd.net-naming-scheme.xml b/man/systemd.net-naming-scheme.xml
index 7cf9b159e4..d997b46133 100644
--- a/man/systemd.net-naming-scheme.xml
+++ b/man/systemd.net-naming-scheme.xml
@@ -651,6 +651,15 @@
<xi:include href="version-info.xml" xpointer="rhel-9.6"/>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><constant>rhel-9.7</constant></term>
+
+ <listitem><para>Same as naming scheme <constant>rhel-9.5</constant>.</para>
+
+ <xi:include href="version-info.xml" xpointer="rhel-9.7"/>
+ </listitem>
+ </varlistentry>
</variablelist>
</refsect2>
diff --git a/src/shared/netif-naming-scheme.c b/src/shared/netif-naming-scheme.c
index de951c38db..4929808d4d 100644
--- a/src/shared/netif-naming-scheme.c
+++ b/src/shared/netif-naming-scheme.c
@@ -43,6 +43,7 @@ static const NamingScheme naming_schemes[] = {
{ "rhel-9.4", NAMING_RHEL_9_4 },
{ "rhel-9.5", NAMING_RHEL_9_5 },
{ "rhel-9.6", NAMING_RHEL_9_6 },
+ { "rhel-9.7", NAMING_RHEL_9_7 },
{ "rhel-10.0-beta", NAMING_RHEL_10_0_BETA },
{ "rhel-10.0", NAMING_RHEL_10_0 },
{ "rhel-10.1", NAMING_RHEL_10_1 },
diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h
index 8ef92d2333..e8ea61b6cc 100644
--- a/src/shared/netif-naming-scheme.h
+++ b/src/shared/netif-naming-scheme.h
@@ -85,6 +85,7 @@ typedef enum NamingSchemeFlags {
NAMING_RHEL_9_4 = NAMING_RHEL_9_3,
NAMING_RHEL_9_5 = NAMING_RHEL_9_4 & ~NAMING_BRIDGE_MULTIFUNCTION_SLOT,
NAMING_RHEL_9_6 = NAMING_RHEL_9_5,
+ NAMING_RHEL_9_7 = NAMING_RHEL_9_5,
NAMING_RHEL_10_0_BETA = NAMING_V255,
NAMING_RHEL_10_0 = NAMING_V257,

View File

@ -0,0 +1,37 @@
From ba15d9e3ef0a9f076c8f7f0dff01ea79013eb138 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Sun, 20 Jul 2025 02:12:00 +0900
Subject: [PATCH] sd-event: drop inotify event from buffer when no event source
is triggered
Even when we receive an inotify event, there is no relevant event source
exists. In that case, we need to drop the event from the buffer,
otherwise we cannot escape from the loop.
Fixes #38265.
(cherry picked from commit 064b9b2bb3544707171662f548677259c3d6aa7f)
Resolves: RHEL-104555
---
src/libsystemd/sd-event/sd-event.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
index 7aea7d2581..f5a38b31d1 100644
--- a/src/libsystemd/sd-event/sd-event.c
+++ b/src/libsystemd/sd-event/sd-event.c
@@ -4023,9 +4023,12 @@ static int event_inotify_data_process(sd_event *e, struct inotify_data *d) {
}
}
- /* Something pending now? If so, let's finish, otherwise let's read more. */
+ /* Something pending now? If so, let's finish. */
if (d->n_pending > 0)
return 1;
+
+ /* otherwise, drop the event and let's read more */
+ event_inotify_data_drop(e, d, sz);
}
return 0;

View File

@ -0,0 +1,65 @@
From 4a0f6f15050d2d54db3aa189883c878715cbb47b Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Sun, 20 Jul 2025 01:27:10 +0900
Subject: [PATCH] test: add test case for issue #38265
(cherry picked from commit b92258eb229f84680b91e744e98d72429710770e)
Related: RHEL-104555
---
src/libsystemd/sd-event/test-event.c | 35 ++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/src/libsystemd/sd-event/test-event.c b/src/libsystemd/sd-event/test-event.c
index 57dee392d7..4849de0229 100644
--- a/src/libsystemd/sd-event/test-event.c
+++ b/src/libsystemd/sd-event/test-event.c
@@ -11,6 +11,7 @@
#include "alloc-util.h"
#include "exec-util.h"
#include "fd-util.h"
+#include "fileio.h"
#include "fs-util.h"
#include "log.h"
#include "macro.h"
@@ -827,6 +828,40 @@ TEST(inotify_process_buffered_data) {
assert_se(sd_event_wait(e, 0) == 0);
}
+static int inotify_handler_issue_38265(sd_event_source *s, const struct inotify_event *event, void *userdata) {
+ log_debug("Inotify event: mask=0x%x name=%s", event->mask, event->name);
+ return 0;
+}
+
+TEST(inotify_issue_38265) {
+ _cleanup_(rm_rf_physical_and_freep) char *t = NULL;
+ _cleanup_(sd_event_source_unrefp) sd_event_source *a = NULL, *b = NULL;
+ _cleanup_(sd_event_unrefp) sd_event *e = NULL;
+ _cleanup_free_ char *p = NULL;
+
+ /* For issue #38265. */
+
+ ASSERT_OK(mkdtemp_malloc("/tmp/test-inotify-XXXXXX", &t));
+
+ ASSERT_OK(sd_event_default(&e));
+
+ /* Create inode data that watches IN_MODIFY */
+ ASSERT_OK(sd_event_add_inotify(e, &a, t, IN_CREATE | IN_MODIFY, inotify_handler_issue_38265, NULL));
+ ASSERT_OK(sd_event_add_inotify(e, &b, t, IN_CREATE, inotify_handler_issue_38265, NULL));
+
+ /* Then drop the event source that is interested in IN_MODIFY */
+ ASSERT_NULL(a = sd_event_source_unref(a));
+
+ /* Trigger IN_MODIFY (of course with IN_CREATE) */
+ ASSERT_NOT_NULL(p = path_join(t, "hoge"));
+ ASSERT_OK(write_string_file(p, "aaa", WRITE_STRING_FILE_CREATE));
+
+ for (unsigned i = 1; i < 5; i++) {
+ log_debug("Running event loop cycle %u to process inotify events...", i);
+ ASSERT_OK(sd_event_run(e, USEC_PER_MSEC));
+ }
+}
+
TEST(fork) {
_cleanup_(sd_event_unrefp) sd_event *e = NULL;
int r;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
From deddab3df06ee01349b59b680da4224ccd3752c5 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:47:06 +0200
Subject: [PATCH] core: output log cycle path in one log message, not many
Fixes: #35642
(cherry picked from commit 201647e3f2ff04fbaebc1901431b7ff610f995fb)
Related: RHEL-106260
---
src/core/transaction.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 7fc0459cd4..9c911aef13 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -394,13 +394,22 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
unit_ids = merge_unit_ids(j->manager->unit_log_field, array); /* ignore error */
- STRV_FOREACH_PAIR(unit_id, job_type, array)
- /* logging for j not k here to provide a consistent narrative */
+ size_t m = strv_length(array);
+
+ _cleanup_free_ char *cycle_path_text = strdup("Found ordering cycle");
+ if (m > 0) {
+ (void) strextendf(&cycle_path_text, " on %s/%s", array[0], array[1]);
+ if (m > 2)
+ (void) strextendf(&cycle_path_text, "; has dependency on %s/%s", array[2], array[3]);
+ }
+
+ STRV_FOREACH_PAIR(unit_id, job_type, strv_skip(array, 4))
+ (void) strextendf(&cycle_path_text, ", %s/%s", *unit_id, *job_type);
+
+ /* logging for j not k here to provide a consistent narrative */
+ if (cycle_path_text)
log_struct(LOG_WARNING,
- LOG_UNIT_MESSAGE(j->unit,
- "Found %s on %s/%s",
- unit_id == array ? "ordering cycle" : "dependency",
- *unit_id, *job_type),
+ LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
LOG_ITEM("%s", strna(unit_ids)));
if (delete) {

View File

@ -0,0 +1,70 @@
From 652516802305e9cfef7fccfd059cdf9fbeb6e050 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:47:25 +0200
Subject: [PATCH] core: make log cycle messages recognizable via message IDs
(cherry picked from commit 5bbad6244ffc3849511c6ca652a27f1af550c599)
Resolves: RHEL-106260
---
src/core/transaction.c | 5 +++++
src/systemd/sd-messages.h | 9 +++++++++
2 files changed, 14 insertions(+)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 9c911aef13..a96f37e148 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -3,6 +3,8 @@
#include <fcntl.h>
#include <unistd.h>
+#include "sd-messages.h"
+
#include "alloc-util.h"
#include "ansi-color.h"
#include "bus-common-errors.h"
@@ -410,6 +412,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
if (cycle_path_text)
log_struct(LOG_WARNING,
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
+ LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
LOG_ITEM("%s", strna(unit_ids)));
if (delete) {
@@ -420,6 +423,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
"Job %s/%s deleted to break ordering cycle starting with %s/%s",
delete->unit->id, job_type_to_string(delete->type),
j->unit->id, job_type_to_string(j->type)),
+ LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
LOG_ITEM("%s", strna(unit_ids)));
if (log_get_show_color())
@@ -439,6 +443,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
log_struct(LOG_ERR,
LOG_UNIT_MESSAGE(j->unit, "Unable to break cycle starting with %s/%s",
j->unit->id, job_type_to_string(j->type)),
+ LOG_MESSAGE_ID(SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR),
LOG_ITEM("%s", strna(unit_ids)));
return sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC,
diff --git a/src/systemd/sd-messages.h b/src/systemd/sd-messages.h
index 441f4e6888..562b29ccc6 100644
--- a/src/systemd/sd-messages.h
+++ b/src/systemd/sd-messages.h
@@ -280,6 +280,15 @@ _SD_BEGIN_DECLARATIONS;
#define SD_MESSAGE_SYSCTL_CHANGED SD_ID128_MAKE(9c,f5,6b,8b,af,95,46,cf,94,78,78,3a,8d,e4,21,13)
#define SD_MESSAGE_SYSCTL_CHANGED_STR SD_ID128_MAKE_STR(9c,f5,6b,8b,af,95,46,cf,94,78,78,3a,8d,e4,21,13)
+#define SD_MESSAGE_UNIT_ORDERING_CYCLE SD_ID128_MAKE(f2,7a,3f,94,40,6a,47,83,b9,46,a9,bc,84,9e,94,52)
+#define SD_MESSAGE_UNIT_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(f2,7a,3f,94,40,6a,47,83,b9,46,a9,bc,84,9e,94,52)
+
+#define SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE SD_ID128_MAKE(50,84,36,75,42,f7,47,2d,bc,6a,94,12,5d,5d,eb,ce)
+#define SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(50,84,36,75,42,f7,47,2d,bc,6a,94,12,5d,5d,eb,ce)
+
+#define SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE SD_ID128_MAKE(b3,11,2d,da,d1,90,45,53,8c,76,68,5b,a5,91,8a,80)
+#define SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(b3,11,2d,da,d1,90,45,53,8c,76,68,5b,a5,91,8a,80)
+
_SD_END_DECLARATIONS;
#endif

View File

@ -0,0 +1,41 @@
From 9b048d56df524fc5df5f37e056d5370b67a97484 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:48:39 +0200
Subject: [PATCH] core: change ordering cycle log message log levels
Let's downgrade the log message about our attempts to deal with an
ordering cycle to warning, because this is a "positive" thing, we try to
improve an earlier error.
OTOH increase the log level when we first log about the cycle to error,
since that highlights the actual problem.
(cherry picked from commit fe458ad68e2813823c381c4010bad201f5e2c2be)
Related: RHEL-106260
---
src/core/transaction.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index a96f37e148..638367ebd4 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -410,7 +410,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
/* logging for j not k here to provide a consistent narrative */
if (cycle_path_text)
- log_struct(LOG_WARNING,
+ log_struct(LOG_ERR,
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
LOG_ITEM("%s", strna(unit_ids)));
@@ -418,7 +418,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
if (delete) {
const char *status;
/* logging for j not k here to provide a consistent narrative */
- log_struct(LOG_ERR,
+ log_struct(LOG_WARNING,
LOG_UNIT_MESSAGE(j->unit,
"Job %s/%s deleted to break ordering cycle starting with %s/%s",
delete->unit->id, job_type_to_string(delete->type),

View File

@ -0,0 +1,25 @@
From e9542cd13edc7f2b326ffdc52f4e99acce3a4f7e Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:51:45 +0200
Subject: [PATCH] core: cast log_oom() got void
(cherry picked from commit 6650e21349273a5274ce00d689ed881d2976a6e7)
Related: RHEL-106260
---
src/core/transaction.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 638367ebd4..cb5c59de5c 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -383,7 +383,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
/* For logging below */
if (strv_push_pair(&array, k->unit->id, (char*) job_type_to_string(k->type)) < 0)
- log_oom();
+ (void) log_oom_warning();
if (!delete && hashmap_contains(tr->jobs, k->unit) && !job_matters_to_anchor(k))
/* Ok, we can drop this one, so let's do so. */

View File

@ -0,0 +1,26 @@
From fc5d0ad3eec296edfb9f4394e5cc50b3bef8d6d8 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 19 Jun 2025 10:15:35 +0200
Subject: [PATCH] core: when removing a job from a transaction, include in
structured log message which
(cherry picked from commit becbd2ec4e00aafb656ebc4b2977c1f62adc2ee8)
Related: RHEL-106260
---
src/core/transaction.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index cb5c59de5c..5ad43ea378 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -424,6 +424,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
delete->unit->id, job_type_to_string(delete->type),
j->unit->id, job_type_to_string(j->type)),
LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
+ LOG_ITEM("DELETED_UNIT=%s", delete->unit->id),
+ LOG_ITEM("DELETED_TYPE=%s", job_type_to_string(delete->type)),
LOG_ITEM("%s", strna(unit_ids)));
if (log_get_show_color())

View File

@ -0,0 +1,73 @@
From 36fceffc4931e58a139f67b0c49ae07ff9c93c19 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 19 Jun 2025 10:15:49 +0200
Subject: [PATCH] catalog: add entries for the order cycle log messages
Fixes: #35642
(cherry picked from commit e4003f2d9cb93d09d99b87a3d2f68cb0889ecbe8)
Related: RHEL-106260
---
catalog/systemd.catalog.in | 52 ++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/catalog/systemd.catalog.in b/catalog/systemd.catalog.in
index ef6fb49ae5..decd1d7f03 100644
--- a/catalog/systemd.catalog.in
+++ b/catalog/systemd.catalog.in
@@ -806,3 +806,55 @@ systemd-networkd, has been changed by another, unrelated process
and will likely result in problems later on.
Value changed to "@NEWVALUE@", which should be "@OURVALUE@".
+
+-- f27a3f94406a4783b946a9bc849e9452
+Subject: Unit ordering cycle found
+Defined-By: systemd
+Support: %SUPPORT_URL%
+Documentation: man:systemd(1)
+
+A unit transaction was initiated that contains an ordering cycle, i.e. some
+unit that was requested to be started (either directly, or indirectly due to a
+requirement dependency such as Wants= or Requires=) is ordered before some
+other unit (via After=/Before=), but that latter unit is also ordered before
+the former by some dependency (either directly or indirectly).
+
+Ordering cycles consist of at least two units, but might involve many
+more. They generally indicate a bug in the unit definitions, as a unit
+conceptually cannot be run both before and after some other unit, it must be
+strictly ordered either before or after.
+
+The ordering cycle is shown in the log message. An attempt will be made to
+remove unit jobs from the transaction in order to make the transaction succeed
+at least partially. Note that such cycle breaking is not going to correct the
+issue, it is just an attempt to make the outcome less problematic.
+
+The correct fix is to analyze the cycle in question and then break the cycle at
+the right place by removing the right After= or Before= lines from one or more
+of the involved unit files.
+
+-- 5084367542f7472dbc6a94125d5debce
+Subject: Unit job deleted due to an ordering cycle
+Defined-By: systemd
+Support: %SUPPORT_URL%
+Documentation: man:systemd(1)
+
+In order to address an ordering cycle between units that have been added to a
+transaction a job has been removed from the transaction.
+
+The removed job is '@DELETED_TYPE@' for unit @DELETED_UNIT@.
+
+The removal of the job is done in order to minimize the negative effect of an
+ordering cycle — it is not going to fix the underlying problem, which is a bug
+in the involved unit files. The deleted job might be fundamental for the other
+units in the transaction to operate, which hence might fail.
+
+-- b3112ddad19045538c76685ba5918a80
+Subject: Unable to break ordering cycle between units
+Defined-By: systemd
+Support: %SUPPORT_URL%
+Documentation: man:systemd(1)
+
+It has been attempted to break an ordering cycle between units for which jobs
+have been enqueued as part of a transaction, but this was not successful. The
+transaction will fail.

View File

@ -0,0 +1,119 @@
From b2cbc7591414472269260470798e3d0feccdb1f9 Mon Sep 17 00:00:00 2001
From: "Todd C. Miller" <Todd.Miller@sudo.ws>
Date: Tue, 6 May 2025 16:39:14 -0600
Subject: [PATCH] flush_ports: flush POSIX message queues properly
On Linux, read() on a message queue descriptor returns the message
queue statistics, not the actual message queue data. We need to use
mq_receive() to drain the queues instead.
Fixes a problem where a POSIX message queue socket unit with messages
in the queue at shutdown time could result in a hang on reboot/shutdown.
(cherry picked from commit ffb6adb76367d5ab7d43937ccaac5947717b5b78)
Resolves: RHEL-100553
---
src/basic/socket-util.c | 49 +++++++++++++++++++++++++++++++++++++++++
src/basic/socket-util.h | 1 +
src/core/socket.c | 8 +++++--
3 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
index 94089323b4..5c8c788846 100644
--- a/src/basic/socket-util.c
+++ b/src/basic/socket-util.c
@@ -5,6 +5,7 @@
#include <arpa/inet.h>
#include <errno.h>
#include <limits.h>
+#include <mqueue.h>
#include <netdb.h>
#include <netinet/ip.h>
#include <poll.h>
@@ -1296,6 +1297,54 @@ int flush_accept(int fd) {
}
}
+ssize_t flush_mqueue(int fd) {
+ _cleanup_free_ char *buf = NULL;
+ struct mq_attr attr;
+ ssize_t count = 0;
+ int r;
+
+ assert(fd >= 0);
+
+ /* Similar to flush_fd() but flushes all messages from a POSIX message queue. */
+
+ for (;;) {
+ ssize_t l;
+
+ r = fd_wait_for_event(fd, POLLIN, /* timeout= */ 0);
+ if (r < 0) {
+ if (r == -EINTR)
+ continue;
+
+ return r;
+ }
+ if (r == 0)
+ return count;
+
+ if (!buf) {
+ /* Buffer must be at least as large as mq_msgsize. */
+ if (mq_getattr(fd, &attr) < 0)
+ return -errno;
+
+ buf = malloc(attr.mq_msgsize);
+ if (!buf)
+ return -ENOMEM;
+ }
+
+ l = mq_receive(fd, buf, attr.mq_msgsize, /* msg_prio = */ NULL);
+ if (l < 0) {
+ if (errno == EINTR)
+ continue;
+
+ if (errno == EAGAIN)
+ return count;
+
+ return -errno;
+ }
+
+ count += l;
+ }
+}
+
struct cmsghdr* cmsg_find(struct msghdr *mh, int level, int type, socklen_t length) {
struct cmsghdr *cmsg;
diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h
index 874e559a4b..013edf0d4f 100644
--- a/src/basic/socket-util.h
+++ b/src/basic/socket-util.h
@@ -197,6 +197,7 @@ int receive_many_fds(int transport_fd, int **ret_fds_array, size_t *ret_n_fds_ar
ssize_t next_datagram_size_fd(int fd);
int flush_accept(int fd);
+ssize_t flush_mqueue(int fd);
#define CMSG_FOREACH(cmsg, mh) \
for ((cmsg) = CMSG_FIRSTHDR(mh); (cmsg); (cmsg) = CMSG_NXTHDR((mh), (cmsg)))
diff --git a/src/core/socket.c b/src/core/socket.c
index 6599527515..1e224b2407 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -2295,8 +2295,12 @@ static void flush_ports(Socket *s) {
if (p->fd < 0)
continue;
- (void) flush_accept(p->fd);
- (void) flush_fd(p->fd);
+ if (p->type == SOCKET_MQUEUE)
+ (void) flush_mqueue(p->fd);
+ else {
+ (void) flush_accept(p->fd);
+ (void) flush_fd(p->fd);
+ }
}
}

View File

@ -0,0 +1,225 @@
From fbd8517cc066d75c255b6f0cf0af14cde0a430f5 Mon Sep 17 00:00:00 2001
From: Li Tian <litian@redhat.com>
Date: Tue, 8 Jul 2025 14:44:35 +0800
Subject: [PATCH] Add --entry-type=type1|type2 option to kernel-install.
Both kernel-core and kernel-uki-virt call kernel-install upon removal. Need an additional argument to avoid complete removal for both traditional kernel and UKI.
Signed-off-by: Li Tian <litian@redhat.com>
(cherry picked from commit b6d499768394297b1d313cdc72dab0720dc315f6)
Resolves: RHEL-103354
---
shell-completion/bash/kernel-install | 14 ++++++++++
src/kernel-install/50-depmod.install | 5 ++++
src/kernel-install/90-loaderentry.install.in | 5 ++++
src/kernel-install/kernel-install.c | 29 ++++++++++++++++++++
src/kernel-install/test-kernel-install.sh | 7 +++++
src/shared/bootspec.c | 2 +-
src/shared/bootspec.h | 1 +
7 files changed, 62 insertions(+), 1 deletion(-)
diff --git a/shell-completion/bash/kernel-install b/shell-completion/bash/kernel-install
index d3a9d9bbd8..a7714ad188 100644
--- a/shell-completion/bash/kernel-install
+++ b/shell-completion/bash/kernel-install
@@ -21,6 +21,15 @@ _kernel_install() {
local comps
local MACHINE_ID
local cur=${COMP_WORDS[COMP_CWORD]}
+ local prev=${COMP_WORDS[COMP_CWORD-1]}
+ local entry_types="type1 type2 all"
+
+ case "$prev" in
+ --entry-type)
+ COMPREPLY=( $(compgen -W "$entry_types" -- "$cur") )
+ return 0
+ ;;
+ esac
case $COMP_CWORD in
1)
@@ -42,6 +51,11 @@ _kernel_install() {
;;
esac
+ if [[ "${COMP_WORDS[1]}" == "remove" ]] && [[ $cur == -* ]]; then
+ COMPREPLY=( $(compgen -W '--entry-type' -- "$cur") )
+ return 0
+ fi
+
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
return 0
}
diff --git a/src/kernel-install/50-depmod.install b/src/kernel-install/50-depmod.install
index 08247c735b..aa2bb31a51 100755
--- a/src/kernel-install/50-depmod.install
+++ b/src/kernel-install/50-depmod.install
@@ -33,6 +33,11 @@ case "$COMMAND" in
exec depmod -a "$KERNEL_VERSION"
;;
remove)
+ [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type2" ] || \
+ [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type1" ] && \
+ [ -d "/lib/modules/$KERNEL_VERSION/kernel" ] && \
+ echo "Multiple entry types exist, not removing modules.dep or associated files." && \
+ exit 0
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing /lib/modules/${KERNEL_VERSION}/modules.dep and associated files"
exec rm -f \
diff --git a/src/kernel-install/90-loaderentry.install.in b/src/kernel-install/90-loaderentry.install.in
index 832a82794c..44d45f6921 100755
--- a/src/kernel-install/90-loaderentry.install.in
+++ b/src/kernel-install/90-loaderentry.install.in
@@ -45,6 +45,11 @@ LOADER_ENTRY="$BOOT_ROOT/loader/entries/$ENTRY_TOKEN-$KERNEL_VERSION.conf"
case "$COMMAND" in
remove)
+ if [ -f "/lib/modules/$KERNEL_VERSION/vmlinuz" ] && [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type2" ]; then
+ [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
+ echo "BOOT_ENTRY_TYPE=type2, not removing loader entries."
+ exit 0
+ fi
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing ${LOADER_ENTRY%.conf}*.conf"
exec rm -f \
diff --git a/src/kernel-install/kernel-install.c b/src/kernel-install/kernel-install.c
index f059f5dc76..4aecce20ff 100644
--- a/src/kernel-install/kernel-install.c
+++ b/src/kernel-install/kernel-install.c
@@ -5,6 +5,7 @@
#include <sys/utsname.h>
#include "boot-entry.h"
+#include "bootspec.h"
#include "build.h"
#include "chase.h"
#include "conf-files.h"
@@ -84,6 +85,7 @@ typedef struct Context {
Action action;
sd_id128_t machine_id;
bool machine_id_is_random;
+ BootEntryType entry_type;
KernelImageType kernel_image_type;
Layout layout;
char *layout_other;
@@ -423,6 +425,20 @@ static int context_set_initrds(Context *c, char* const* strv) {
return context_set_path_strv(c, strv, "command line", "initrds", &c->initrds);
}
+static int context_set_entry_type(Context *c, const char *s) {
+ assert(c);
+ BootEntryType e;
+ if (isempty(s) || streq(s, "all")) {
+ c->entry_type = _BOOT_ENTRY_TYPE_INVALID;
+ return 0;
+ }
+ e = boot_entry_type_from_string(s);
+ if (e < 0)
+ return log_error_errno(e, "Invalid entry type: %s", s);
+ c->entry_type = e;
+ return 1;
+}
+
static int context_load_environment(Context *c) {
assert(c);
@@ -977,6 +993,7 @@ static int context_build_environment(Context *c) {
"KERNEL_INSTALL_LAYOUT", context_get_layout(c),
"KERNEL_INSTALL_INITRD_GENERATOR", strempty(c->initrd_generator),
"KERNEL_INSTALL_UKI_GENERATOR", strempty(c->uki_generator),
+ "KERNEL_INSTALL_BOOT_ENTRY_TYPE", boot_entry_type_to_string(c->entry_type),
"KERNEL_INSTALL_STAGING_AREA", c->staging_area);
if (r < 0)
return log_error_errno(r, "Failed to build environment variables for plugins: %m");
@@ -1490,6 +1507,9 @@ static int help(void) {
" --root=PATH Operate on an alternate filesystem root\n"
" --image=PATH Operate on disk image as filesystem root\n"
" --image-policy=POLICY Specify disk image dissection policy\n"
+ " --entry-type=type1|type2|all\n"
+ " Operate only on the specified bootloader\n"
+ " entry type\n"
"\n"
"This program may also be invoked as 'installkernel':\n"
" installkernel [OPTIONS...] VERSION VMLINUZ [MAP] [INSTALLATION-DIR]\n"
@@ -1519,6 +1539,7 @@ static int parse_argv(int argc, char *argv[], Context *c) {
ARG_ROOT,
ARG_IMAGE,
ARG_IMAGE_POLICY,
+ ARG_BOOT_ENTRY_TYPE,
};
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
@@ -1534,6 +1555,7 @@ static int parse_argv(int argc, char *argv[], Context *c) {
{ "image", required_argument, NULL, ARG_IMAGE },
{ "image-policy", required_argument, NULL, ARG_IMAGE_POLICY },
{ "no-legend", no_argument, NULL, ARG_NO_LEGEND },
+ { "entry-type", required_argument, NULL, ARG_BOOT_ENTRY_TYPE },
{}
};
int t, r;
@@ -1617,6 +1639,12 @@ static int parse_argv(int argc, char *argv[], Context *c) {
return r;
break;
+ case ARG_BOOT_ENTRY_TYPE:
+ r = context_set_entry_type(c, optarg);
+ if (r < 0)
+ return r;
+ break;
+
case '?':
return -EINVAL;
@@ -1644,6 +1672,7 @@ static int run(int argc, char* argv[]) {
.action = _ACTION_INVALID,
.kernel_image_type = KERNEL_IMAGE_TYPE_UNKNOWN,
.layout = _LAYOUT_INVALID,
+ .entry_type = _BOOT_ENTRY_TYPE_INVALID,
.entry_token_type = BOOT_ENTRY_TOKEN_AUTO,
};
_cleanup_(loop_device_unrefp) LoopDevice *loop_device = NULL;
diff --git a/src/kernel-install/test-kernel-install.sh b/src/kernel-install/test-kernel-install.sh
index 51d618e650..7da8285969 100755
--- a/src/kernel-install/test-kernel-install.sh
+++ b/src/kernel-install/test-kernel-install.sh
@@ -97,6 +97,13 @@ test ! -e "$entry"
test ! -e "$BOOT_ROOT/the-token/1.1.1/linux"
test ! -e "$BOOT_ROOT/the-token/1.1.1/initrd"
+# Test --entry-type options
+"$kernel_install" -v add 1.1.1 "$D/sources/linux" "$D/sources/initrd"
+"$kernel_install" -v remove 1.1.1 --entry-type=type1
+test ! -e "$entry"
+test ! -e "$BOOT_ROOT/the-token/1.1.1/linux"
+test ! -e "$BOOT_ROOT/the-token/1.1.1/initrd"
+
# Invoke kernel-install as installkernel
ln -s --relative -v "$kernel_install" "$D/sources/installkernel"
"$D/sources/installkernel" -v 1.1.2 "$D/sources/linux" System.map /somedirignored
diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
index 12d2a9d147..3c2388e56a 100644
--- a/src/shared/bootspec.c
+++ b/src/shared/bootspec.c
@@ -33,7 +33,7 @@ static const char* const boot_entry_type_table[_BOOT_ENTRY_TYPE_MAX] = {
[BOOT_ENTRY_LOADER_AUTO] = "Automatic",
};
-DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type, BootEntryType);
+DEFINE_STRING_TABLE_LOOKUP(boot_entry_type, BootEntryType);
static const char* const boot_entry_type_json_table[_BOOT_ENTRY_TYPE_MAX] = {
[BOOT_ENTRY_CONF] = "type1",
diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h
index 95675214b2..eb5ff915fb 100644
--- a/src/shared/bootspec.h
+++ b/src/shared/bootspec.h
@@ -100,6 +100,7 @@ typedef struct BootConfig {
const char* boot_entry_type_to_string(BootEntryType) _const_;
const char* boot_entry_type_json_to_string(BootEntryType) _const_;
+BootEntryType boot_entry_type_from_string(const char *s) _pure_;
const char* boot_entry_source_to_string(BootEntrySource) _const_;
const char* boot_entry_source_json_to_string(BootEntrySource) _const_;

View File

@ -0,0 +1,42 @@
From 73f380b7cda558a3ada56144bdc03baa1c497faa Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 11 Jul 2025 11:18:09 +0900
Subject: [PATCH] kernel-install: regroup options in help meesage
And slightly updates the description.
Follow-up for b6d499768394297b1d313cdc72dab0720dc315f6.
(cherry picked from commit 19d4040d71da15d0a91d0be854e5125fa6042870)
Resolves: RHEL-103354
---
src/kernel-install/kernel-install.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/kernel-install/kernel-install.c b/src/kernel-install/kernel-install.c
index 4aecce20ff..a01be27129 100644
--- a/src/kernel-install/kernel-install.c
+++ b/src/kernel-install/kernel-install.c
@@ -1499,17 +1499,17 @@ static int help(void) {
" --boot-path=PATH Path to the $BOOT partition\n"
" --make-entry-directory=yes|no|auto\n"
" Create $BOOT/ENTRY-TOKEN/ directory\n"
+ " --entry-type=type1|type2|all\n"
+ " Operate only on the specified bootloader\n"
+ " entry type\n"
" --entry-token=machine-id|os-id|os-image-id|auto|literal:…\n"
- " Entry token to use for this installation\n"
+ " Entry token to be used for this installation\n"
" --no-pager Do not pipe inspect output into a pager\n"
" --json=pretty|short|off Generate JSON output\n"
" --no-legend Do not show the headers and footers\n"
" --root=PATH Operate on an alternate filesystem root\n"
" --image=PATH Operate on disk image as filesystem root\n"
" --image-policy=POLICY Specify disk image dissection policy\n"
- " --entry-type=type1|type2|all\n"
- " Operate only on the specified bootloader\n"
- " entry type\n"
"\n"
"This program may also be invoked as 'installkernel':\n"
" installkernel [OPTIONS...] VERSION VMLINUZ [MAP] [INSTALLATION-DIR]\n"

View File

@ -0,0 +1,38 @@
From 376d2c2ffa0cbfa76c34d3bf32439ceb17cbe1a2 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 11 Jul 2025 11:10:00 +0900
Subject: [PATCH] kernel-install: do not mix || and &&
This also slightly updates log message, and make it shown only when
verbose mode is enabled.
Follow-up for b6d499768394297b1d313cdc72dab0720dc315f6.
(cherry picked from commit 9026f17907553b42257e9cc26969143795ae0f44)
Resolves: RHEL-103354
---
src/kernel-install/50-depmod.install | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/kernel-install/50-depmod.install b/src/kernel-install/50-depmod.install
index aa2bb31a51..3ce8046e6a 100755
--- a/src/kernel-install/50-depmod.install
+++ b/src/kernel-install/50-depmod.install
@@ -33,11 +33,12 @@ case "$COMMAND" in
exec depmod -a "$KERNEL_VERSION"
;;
remove)
- [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type2" ] || \
- [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type1" ] && \
- [ -d "/lib/modules/$KERNEL_VERSION/kernel" ] && \
- echo "Multiple entry types exist, not removing modules.dep or associated files." && \
+ if [ -n "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" ] && [ -d "/lib/modules/$KERNEL_VERSION/kernel" ]; then
+ [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
+ echo "Multiple entry types may exist, not removing modules.dep or associated files."
exit 0
+ fi
+
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing /lib/modules/${KERNEL_VERSION}/modules.dep and associated files"
exec rm -f \

View File

@ -0,0 +1,43 @@
From b6cf66d2ea477872d69eeee90e576bae918142a8 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 11 Jul 2025 11:33:06 +0900
Subject: [PATCH] man/kernel-install: mention --entry-type= option in the man
page
Follow-up for b6d499768394297b1d313cdc72dab0720dc315f6.
(cherry picked from commit a87b6c2c5a59561d79f40b166b416545449108db)
Resolves: RHEL-103354
---
man/kernel-install.xml | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/man/kernel-install.xml b/man/kernel-install.xml
index f3468bbde0..d786534ba8 100644
--- a/man/kernel-install.xml
+++ b/man/kernel-install.xml
@@ -284,6 +284,23 @@
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>--entry-type=type1|type2|all</option></term>
+
+ <listitem>
+ <para>
+ Controls the type of entries handled by the command. This is typically useful when multiple types
+ of boot entries with the same kernel version are installed, and only one should be removed. When
+ <literal>type1</literal> or <literal>type2</literal> is specified, each plugin is invoked with
+ <varname>$KERNEL_INSTALL_BOOT_ENTRY_TYPE</varname> environment variable with the specified
+ value. When <literal>all</literal> is specified, the environment variable will not be set.
+ Defaults to <literal>all</literal>.
+ </para>
+
+ <xi:include href="version-info.xml" xpointer="v258"/>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><option>--entry-token=</option></term>

View File

@ -0,0 +1,68 @@
From 03f89bc52b6e605d8de274576688bb1f0d10fed1 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 7 Jul 2025 15:52:17 +0200
Subject: [PATCH] bootspec: rename boot_entry_type_to_string() to
boot_entry_type_description_to_string()
This helper does not translate BootEntryType to a string matching the
enum's value names, but instead returns a human readable descriptive
string. Let's make it clearer what this, by including "description" in
the name.
(cherry picked from commit 199989e168ee070849e1c13ad3c450093c3ad64d)
Resolves: RHEL-103354
---
src/shared/bootspec.c | 4 ++--
src/shared/bootspec.h | 2 +-
src/vmspawn/vmspawn.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
index 3c2388e56a..f19699ddda 100644
--- a/src/shared/bootspec.c
+++ b/src/shared/bootspec.c
@@ -26,7 +26,7 @@
#include "uki.h"
#include "unaligned.h"
-static const char* const boot_entry_type_table[_BOOT_ENTRY_TYPE_MAX] = {
+static const char* const boot_entry_type_description_table[_BOOT_ENTRY_TYPE_MAX] = {
[BOOT_ENTRY_CONF] = "Boot Loader Specification Type #1 (.conf)",
[BOOT_ENTRY_UNIFIED] = "Boot Loader Specification Type #2 (.efi)",
[BOOT_ENTRY_LOADER] = "Reported by Boot Loader",
@@ -1810,7 +1810,7 @@ int show_boot_entry(
assert(e);
printf(" type: %s\n",
- boot_entry_type_to_string(e->type));
+ boot_entry_type_description_to_string(e->type));
printf(" title: %s%s%s",
ansi_highlight(), boot_entry_title(e), ansi_normal());
diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h
index eb5ff915fb..0f0a015f1a 100644
--- a/src/shared/bootspec.h
+++ b/src/shared/bootspec.h
@@ -98,7 +98,7 @@ typedef struct BootConfig {
.selected_entry = -1, \
}
-const char* boot_entry_type_to_string(BootEntryType) _const_;
+const char* boot_entry_type_description_to_string(BootEntryType) _const_;
const char* boot_entry_type_json_to_string(BootEntryType) _const_;
BootEntryType boot_entry_type_from_string(const char *s) _pure_;
diff --git a/src/vmspawn/vmspawn.c b/src/vmspawn/vmspawn.c
index 70e5a31265..2a5bc4a8c4 100644
--- a/src/vmspawn/vmspawn.c
+++ b/src/vmspawn/vmspawn.c
@@ -1239,7 +1239,7 @@ static int discover_boot_entry(const char *root, char **ret_linux, char ***ret_i
if (!boot_entry)
return log_error_errno(SYNTHETIC_ERRNO(ENOENT), "Failed to discover any boot entries.");
- log_debug("Discovered boot entry %s (%s)", boot_entry->id, boot_entry_type_to_string(boot_entry->type));
+ log_debug("Discovered boot entry %s (%s)", boot_entry->id, boot_entry_type_description_to_string(boot_entry->type));
_cleanup_free_ char *linux_kernel = NULL;
_cleanup_strv_free_ char **initrds = NULL;

View File

@ -0,0 +1,28 @@
From b4f9fb5e51c13eb3e7abd75cfb9343fe23dafad6 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 7 Jul 2025 15:54:17 +0200
Subject: [PATCH] bootspec: include 'UKI' in descriptive name for type #2
I am pretty sure that "UKI" is the best known name for type #2 boot
loader spec entries, hence we really should put it in the name.
(cherry picked from commit a1c7aa6a95956f6827b250a9fec9d584077e2a37)
Resolves: RHEL-103354
---
src/shared/bootspec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
index f19699ddda..0d52764f60 100644
--- a/src/shared/bootspec.c
+++ b/src/shared/bootspec.c
@@ -28,7 +28,7 @@
static const char* const boot_entry_type_description_table[_BOOT_ENTRY_TYPE_MAX] = {
[BOOT_ENTRY_CONF] = "Boot Loader Specification Type #1 (.conf)",
- [BOOT_ENTRY_UNIFIED] = "Boot Loader Specification Type #2 (.efi)",
+ [BOOT_ENTRY_UNIFIED] = "Boot Loader Specification Type #2 (UKI, .efi)",
[BOOT_ENTRY_LOADER] = "Reported by Boot Loader",
[BOOT_ENTRY_LOADER_AUTO] = "Automatic",
};

View File

@ -0,0 +1,185 @@
From 2271500d8db755310633132ee50aeda7c1561d0c Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 7 Jul 2025 18:10:13 +0200
Subject: [PATCH] bootspec: rename BootEntryType values
So we exposed different names for the entry types in JSON than we named
our enum values. Which is very confusing. Let's unify that. Given that
the JSON fields are externally visible let's stick to that naming, even
though I think "unified" and "conf" would have been more descriptive.
This ensures we follow our usual logic that the enum identifiers and the
strings they map to use the same naming.
(cherry picked from commit 9880c7f103cde943a40aa9eec8e70c40708ecb45)
Resolves: RHEL-103354
---
src/shared/bootspec.c | 32 ++++++++++++++++----------------
src/shared/bootspec.h | 10 +++++-----
src/vmspawn/vmspawn.c | 10 +++++-----
3 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
index 0d52764f60..d561e9265f 100644
--- a/src/shared/bootspec.c
+++ b/src/shared/bootspec.c
@@ -27,22 +27,22 @@
#include "unaligned.h"
static const char* const boot_entry_type_description_table[_BOOT_ENTRY_TYPE_MAX] = {
- [BOOT_ENTRY_CONF] = "Boot Loader Specification Type #1 (.conf)",
- [BOOT_ENTRY_UNIFIED] = "Boot Loader Specification Type #2 (UKI, .efi)",
- [BOOT_ENTRY_LOADER] = "Reported by Boot Loader",
- [BOOT_ENTRY_LOADER_AUTO] = "Automatic",
+ [BOOT_ENTRY_TYPE1] = "Boot Loader Specification Type #1 (.conf)",
+ [BOOT_ENTRY_TYPE2] = "Boot Loader Specification Type #2 (UKI, .efi)",
+ [BOOT_ENTRY_LOADER] = "Reported by Boot Loader",
+ [BOOT_ENTRY_AUTO] = "Automatic",
};
DEFINE_STRING_TABLE_LOOKUP(boot_entry_type, BootEntryType);
-static const char* const boot_entry_type_json_table[_BOOT_ENTRY_TYPE_MAX] = {
- [BOOT_ENTRY_CONF] = "type1",
- [BOOT_ENTRY_UNIFIED] = "type2",
- [BOOT_ENTRY_LOADER] = "loader",
- [BOOT_ENTRY_LOADER_AUTO] = "auto",
+static const char* const boot_entry_type_table[_BOOT_ENTRY_TYPE_MAX] = {
+ [BOOT_ENTRY_TYPE1] = "type1",
+ [BOOT_ENTRY_TYPE2] = "type2",
+ [BOOT_ENTRY_LOADER] = "loader",
+ [BOOT_ENTRY_AUTO] = "auto",
};
-DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type_json, BootEntryType);
+DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type, BootEntryType);
static const char* const boot_entry_source_table[_BOOT_ENTRY_SOURCE_MAX] = {
[BOOT_ENTRY_ESP] = "EFI System Partition",
@@ -313,7 +313,7 @@ static int boot_entry_load_type1(
const char *fname,
BootEntry *ret) {
- _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_CONF, source);
+ _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_TYPE1, source);
char *c;
int r;
@@ -752,7 +752,7 @@ static int boot_entry_load_unified(
if (r < 0)
return log_error_errno(r, "Failed to extract file name from '%s': %m", path);
- _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_UNIFIED, source);
+ _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_TYPE2, source);
r = boot_filename_extract_tries(fname, &tmp.id, &tmp.tries_left, &tmp.tries_done);
if (r < 0)
@@ -1607,7 +1607,7 @@ int boot_config_augment_from_loader(
return log_oom();
config->entries[config->n_entries++] = (BootEntry) {
- .type = startswith(*i, "auto-") ? BOOT_ENTRY_LOADER_AUTO : BOOT_ENTRY_LOADER,
+ .type = startswith(*i, "auto-") ? BOOT_ENTRY_AUTO : BOOT_ENTRY_LOADER,
.id = TAKE_PTR(c),
.title = TAKE_PTR(t),
.path = TAKE_PTR(p),
@@ -1827,7 +1827,7 @@ int show_boot_entry(
if (e->type == BOOT_ENTRY_LOADER)
printf(" %s(reported/absent)%s",
ansi_highlight_red(), ansi_normal());
- else if (!e->reported_by_loader && e->type != BOOT_ENTRY_LOADER_AUTO)
+ else if (!e->reported_by_loader && e->type != BOOT_ENTRY_AUTO)
printf(" %s(not reported/new)%s",
ansi_highlight_green(), ansi_normal());
}
@@ -1854,7 +1854,7 @@ int show_boot_entry(
/* Let's urlify the link to make it easy to view in an editor, but only if it is a text
* file. Unified images are binary ELFs, and EFI variables are not pure text either. */
- if (e->type == BOOT_ENTRY_CONF)
+ if (e->type == BOOT_ENTRY_TYPE1)
(void) terminal_urlify_path(e->path, text, &link);
printf(" source: %s (on the %s)\n",
@@ -1929,7 +1929,7 @@ int boot_entry_to_json(const BootConfig *c, size_t i, sd_json_variant **ret) {
r = sd_json_variant_merge_objectbo(
&v,
- SD_JSON_BUILD_PAIR("type", SD_JSON_BUILD_STRING(boot_entry_type_json_to_string(e->type))),
+ SD_JSON_BUILD_PAIR("type", SD_JSON_BUILD_STRING(boot_entry_type_to_string(e->type))),
SD_JSON_BUILD_PAIR("source", SD_JSON_BUILD_STRING(boot_entry_source_json_to_string(e->source))),
SD_JSON_BUILD_PAIR_CONDITION(!!e->id, "id", SD_JSON_BUILD_STRING(e->id)),
SD_JSON_BUILD_PAIR_CONDITION(!!e->path, "path", SD_JSON_BUILD_STRING(e->path)),
diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h
index 0f0a015f1a..bd6307603d 100644
--- a/src/shared/bootspec.h
+++ b/src/shared/bootspec.h
@@ -13,10 +13,10 @@
#include "string-util.h"
typedef enum BootEntryType {
- BOOT_ENTRY_CONF, /* Boot Loader Specification Type #1 entries: *.conf files */
- BOOT_ENTRY_UNIFIED, /* Boot Loader Specification Type #2 entries: *.efi files */
- BOOT_ENTRY_LOADER, /* Additional entries augmented from LoaderEntries EFI variable (regular entries) */
- BOOT_ENTRY_LOADER_AUTO, /* Additional entries augmented from LoaderEntries EFI variable (special "automatic" entries) */
+ BOOT_ENTRY_TYPE1, /* Boot Loader Specification Type #1 entries: *.conf files */
+ BOOT_ENTRY_TYPE2, /* Boot Loader Specification Type #2 entries: *.efi files (UKIs) */
+ BOOT_ENTRY_LOADER, /* Additional entries augmented from LoaderEntries EFI variable (regular entries) */
+ BOOT_ENTRY_AUTO, /* Additional entries augmented from LoaderEntries EFI variable (special "automatic" entries) */
_BOOT_ENTRY_TYPE_MAX,
_BOOT_ENTRY_TYPE_INVALID = -EINVAL,
} BootEntryType;
@@ -99,7 +99,7 @@ typedef struct BootConfig {
}
const char* boot_entry_type_description_to_string(BootEntryType) _const_;
-const char* boot_entry_type_json_to_string(BootEntryType) _const_;
+const char* boot_entry_type_to_string(BootEntryType) _const_;
BootEntryType boot_entry_type_from_string(const char *s) _pure_;
const char* boot_entry_source_to_string(BootEntrySource) _const_;
diff --git a/src/vmspawn/vmspawn.c b/src/vmspawn/vmspawn.c
index 2a5bc4a8c4..159e8ba663 100644
--- a/src/vmspawn/vmspawn.c
+++ b/src/vmspawn/vmspawn.c
@@ -1216,7 +1216,7 @@ static int discover_boot_entry(const char *root, char **ret_linux, char ***ret_i
const BootEntry *boot_entry = boot_config_default_entry(&config);
- if (boot_entry && !IN_SET(boot_entry->type, BOOT_ENTRY_UNIFIED, BOOT_ENTRY_CONF))
+ if (boot_entry && !IN_SET(boot_entry->type, BOOT_ENTRY_TYPE1, BOOT_ENTRY_TYPE2))
boot_entry = NULL;
/* If we cannot determine a default entry search for UKIs (Type #2 EFI Unified Kernel Images)
@@ -1224,14 +1224,14 @@ static int discover_boot_entry(const char *root, char **ret_linux, char ***ret_i
* https://uapi-group.org/specifications/specs/boot_loader_specification */
if (!boot_entry)
FOREACH_ARRAY(entry, config.entries, config.n_entries)
- if (entry->type == BOOT_ENTRY_UNIFIED) {
+ if (entry->type == BOOT_ENTRY_TYPE2) { /* UKI */
boot_entry = entry;
break;
}
if (!boot_entry)
FOREACH_ARRAY(entry, config.entries, config.n_entries)
- if (entry->type == BOOT_ENTRY_CONF) {
+ if (entry->type == BOOT_ENTRY_TYPE1) { /* .conf */
boot_entry = entry;
break;
}
@@ -1243,11 +1243,11 @@ static int discover_boot_entry(const char *root, char **ret_linux, char ***ret_i
_cleanup_free_ char *linux_kernel = NULL;
_cleanup_strv_free_ char **initrds = NULL;
- if (boot_entry->type == BOOT_ENTRY_UNIFIED) {
+ if (boot_entry->type == BOOT_ENTRY_TYPE2) { /* UKI */
linux_kernel = path_join(boot_entry->root, boot_entry->kernel);
if (!linux_kernel)
return log_oom();
- } else if (boot_entry->type == BOOT_ENTRY_CONF) {
+ } else if (boot_entry->type == BOOT_ENTRY_TYPE1) { /* .conf */
linux_kernel = path_join(boot_entry->root, boot_entry->kernel);
if (!linux_kernel)
return log_oom();

View File

@ -0,0 +1,58 @@
From 53c6a73be9d57fcb9ee593c570a9408b63a89851 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 7 Jul 2025 18:25:22 +0200
Subject: [PATCH] bootspec: rename boot_entry_source_to_string() to
boot_entry_source_description_to_string()
Similar to the previous changes, let's make clear this string table
contains *descriptive*, i.e. meaningful human-readable strings.
(cherry picked from commit 2030922e2ddb0aed335c8c4202a0c86f36c4d31d)
Resolves: RHEL-103354
---
src/shared/bootspec.c | 6 +++---
src/shared/bootspec.h | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
index d561e9265f..5da8f64fa6 100644
--- a/src/shared/bootspec.c
+++ b/src/shared/bootspec.c
@@ -44,12 +44,12 @@ static const char* const boot_entry_type_table[_BOOT_ENTRY_TYPE_MAX] = {
DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type, BootEntryType);
-static const char* const boot_entry_source_table[_BOOT_ENTRY_SOURCE_MAX] = {
+static const char* const boot_entry_source_description_table[_BOOT_ENTRY_SOURCE_MAX] = {
[BOOT_ENTRY_ESP] = "EFI System Partition",
[BOOT_ENTRY_XBOOTLDR] = "Extended Boot Loader Partition",
};
-DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source, BootEntrySource);
+DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source_description, BootEntrySource);
static const char* const boot_entry_source_json_table[_BOOT_ENTRY_SOURCE_MAX] = {
[BOOT_ENTRY_ESP] = "esp",
@@ -1859,7 +1859,7 @@ int show_boot_entry(
printf(" source: %s (on the %s)\n",
link ?: text ?: e->path,
- boot_entry_source_to_string(e->source));
+ boot_entry_source_description_to_string(e->source));
}
if (e->tries_left != UINT_MAX) {
printf(" tries: %u left", e->tries_left);
diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h
index bd6307603d..5c9d24e78a 100644
--- a/src/shared/bootspec.h
+++ b/src/shared/bootspec.h
@@ -102,7 +102,7 @@ const char* boot_entry_type_description_to_string(BootEntryType) _const_;
const char* boot_entry_type_to_string(BootEntryType) _const_;
BootEntryType boot_entry_type_from_string(const char *s) _pure_;
-const char* boot_entry_source_to_string(BootEntrySource) _const_;
+const char* boot_entry_source_description_to_string(BootEntrySource) _const_;
const char* boot_entry_source_json_to_string(BootEntrySource) _const_;
BootEntry* boot_config_find_entry(BootConfig *config, const char *id);

View File

@ -0,0 +1,76 @@
From ebc7ea083afdfe257703d5312a03f345f142652e Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 7 Jul 2025 18:26:59 +0200
Subject: [PATCH] bootspec: boot_entry_source_to_json_string() to
boot_entry_source_to_string()
As with the previous changes for BootEntryType, let's also clean up the
naming for BootEntrySource.
(cherry picked from commit 1e7ba4780d5e887788742430feafc768e5cc7e49)
Resolves: RHEL-103354
---
src/shared/bootspec.c | 10 +++++-----
src/shared/bootspec.h | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
index 5da8f64fa6..a7e868b397 100644
--- a/src/shared/bootspec.c
+++ b/src/shared/bootspec.c
@@ -33,7 +33,7 @@ static const char* const boot_entry_type_description_table[_BOOT_ENTRY_TYPE_MAX]
[BOOT_ENTRY_AUTO] = "Automatic",
};
-DEFINE_STRING_TABLE_LOOKUP(boot_entry_type, BootEntryType);
+DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type_description, BootEntryType);
static const char* const boot_entry_type_table[_BOOT_ENTRY_TYPE_MAX] = {
[BOOT_ENTRY_TYPE1] = "type1",
@@ -42,7 +42,7 @@ static const char* const boot_entry_type_table[_BOOT_ENTRY_TYPE_MAX] = {
[BOOT_ENTRY_AUTO] = "auto",
};
-DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type, BootEntryType);
+DEFINE_STRING_TABLE_LOOKUP(boot_entry_type, BootEntryType);
static const char* const boot_entry_source_description_table[_BOOT_ENTRY_SOURCE_MAX] = {
[BOOT_ENTRY_ESP] = "EFI System Partition",
@@ -51,12 +51,12 @@ static const char* const boot_entry_source_description_table[_BOOT_ENTRY_SOURCE_
DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source_description, BootEntrySource);
-static const char* const boot_entry_source_json_table[_BOOT_ENTRY_SOURCE_MAX] = {
+static const char* const boot_entry_source_table[_BOOT_ENTRY_SOURCE_MAX] = {
[BOOT_ENTRY_ESP] = "esp",
[BOOT_ENTRY_XBOOTLDR] = "xbootldr",
};
-DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source_json, BootEntrySource);
+DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source, BootEntrySource);
static void boot_entry_addons_done(BootEntryAddons *addons) {
assert(addons);
@@ -1930,7 +1930,7 @@ int boot_entry_to_json(const BootConfig *c, size_t i, sd_json_variant **ret) {
r = sd_json_variant_merge_objectbo(
&v,
SD_JSON_BUILD_PAIR("type", SD_JSON_BUILD_STRING(boot_entry_type_to_string(e->type))),
- SD_JSON_BUILD_PAIR("source", SD_JSON_BUILD_STRING(boot_entry_source_json_to_string(e->source))),
+ SD_JSON_BUILD_PAIR("source", SD_JSON_BUILD_STRING(boot_entry_source_to_string(e->source))),
SD_JSON_BUILD_PAIR_CONDITION(!!e->id, "id", SD_JSON_BUILD_STRING(e->id)),
SD_JSON_BUILD_PAIR_CONDITION(!!e->path, "path", SD_JSON_BUILD_STRING(e->path)),
SD_JSON_BUILD_PAIR_CONDITION(!!e->root, "root", SD_JSON_BUILD_STRING(e->root)),
diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h
index 5c9d24e78a..348324c069 100644
--- a/src/shared/bootspec.h
+++ b/src/shared/bootspec.h
@@ -103,7 +103,7 @@ const char* boot_entry_type_to_string(BootEntryType) _const_;
BootEntryType boot_entry_type_from_string(const char *s) _pure_;
const char* boot_entry_source_description_to_string(BootEntrySource) _const_;
-const char* boot_entry_source_json_to_string(BootEntrySource) _const_;
+const char* boot_entry_source_to_string(BootEntrySource) _const_;
BootEntry* boot_config_find_entry(BootConfig *config, const char *id);

View File

@ -0,0 +1,36 @@
From ab7cce412e3cf91fbec08fc19454fe2964c0d26e Mon Sep 17 00:00:00 2001
From: Li Tian <litian@redhat.com>
Date: Sun, 13 Jul 2025 18:59:10 +0800
Subject: [PATCH] 90-uki-copy.install: Skip removing UKI related when
BOOT_ENTRY_TYPE=type1
Commit b6d499768394
("Add --entry-type=type1|type2 option to kernel-install.")
Skip removing UKI related contents when BOOT_ENTRY_TYPE=type1
Signed-off-by: Li Tian <litian@redhat.com>
(cherry picked from commit 9e3c496bd3c892c84c71610d10d3b481245522e8)
Resolves: RHEL-103354
---
src/kernel-install/90-uki-copy.install | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/kernel-install/90-uki-copy.install b/src/kernel-install/90-uki-copy.install
index 04bf5d1752..ebc97c0028 100755
--- a/src/kernel-install/90-uki-copy.install
+++ b/src/kernel-install/90-uki-copy.install
@@ -33,6 +33,11 @@ UKI_DIR="$BOOT_ROOT/EFI/Linux"
case "$COMMAND" in
remove)
+ if [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type1" ]; then
+ [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
+ echo "BOOT_ENTRY_TYPE=type1, not removing UKI related."
+ exit 0
+ fi
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing $UKI_DIR/$ENTRY_TOKEN-$KERNEL_VERSION*.efi and extras"
exec rm -rf \

View File

@ -0,0 +1,27 @@
From 6cfbc693e21426a12e7a3ba11e239e09b1cda8b2 Mon Sep 17 00:00:00 2001
From: Matthew Schwartz <matthew.schwartz@linux.dev>
Date: Sat, 8 Feb 2025 12:14:53 -0800
Subject: [PATCH] hwdb: add front button support for MSI Claw 7 AI+ A2VM
(cherry picked from commit 88a0a543144c6e8002a0d582570e171159a5a675)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index f9cdb26be5..dc50f1cf8c 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1573,8 +1573,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_97=unknown # Lid close
KEYBOARD_KEY_98=unknown # Lid open
-# MSI Claw, MSI Claw 8
+# MSI Claw A1M, MSI Claw 7 AI+ A2VM, MSI Claw 8 AI+ A2VM
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClawA1M:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClaw7AI+A2VM:*
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClaw8AI+A2VM:*
KEYBOARD_KEY_b9=f15 # Right Face Button
KEYBOARD_KEY_ba=f16 # Left Face Button

View File

@ -0,0 +1,90 @@
From 17ee5d7b0315f0064993de73f1a80dfd0b0f8707 Mon Sep 17 00:00:00 2001
From: Enrico Tagliavini <enrico.tagliavini@gmail.com>
Date: Sun, 9 Feb 2025 14:44:46 +0100
Subject: [PATCH] hwdb: add accel orientation and location for the BMAX Y14
The BMAX MaxBook Y14 has 2 acceleromenter sensors, one seems to be in
the display, the other in the base. With the default ACCEL_MOUNT_MATRIX
monitor-sensor would report the display to be rotate of 180 degrees
compared to its real position, i.e. upside down when normal and vice
versa. Left up and right up are also swapped.
Correcting the ACCEL_MOUNT_MATRIX for the display sensor solves the
issue and monitor-sensor reports the correct values.
For the Y13 model the Z axis value was also inverted. For the Y14 to
work correctly, this is not necessary, but I'm not sure how to double
check this.
Sensors info:
P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX010A:00/iio:device0
M: iio:device0
R: 0
U: iio
T: iio_device
D: c 237:0
N: iio:device0
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX010A:00/iio:device0
E: SUBSYSTEM=iio
E: DEVNAME=/dev/iio:device0
E: DEVTYPE=iio_device
E: MAJOR=237
E: MINOR=0
E: USEC_INITIALIZED=25931869
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
P: /devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-3/i2c-KIOX020A:00/iio:device1
M: iio:device1
R: 1
U: iio
T: iio_device
D: c 237:1
N: iio:device1
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-3/i2c-KIOX020A:00/iio:device1
E: SUBSYSTEM=iio
E: DEVNAME=/dev/iio:device1
E: DEVTYPE=iio_device
E: MAJOR=237
E: MINOR=1
E: USEC_INITIALIZED=26000295
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
accel-display
acpi:KIOX010A:KIOX010A:
dmi:bvnAmericanMegatrendsInternational,LLC.:bvr5.00_002:bd05/13/2024:br5.27:efr1.1:svnAMI:pnIntel:pvrDefaultstring:rvnAMI:rnIntel:rvrDefaultstring:cvnDefaultstring:ct31:cvrDefaultstring:skuH8Y6:
accel-base
acpi:KIOX020A:KIOX020A:
(cherry picked from commit 1740bbc98b44a5debce667571235418311136a04)
Resolves: RHEL-72701
---
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 869f9221a4..b1e029dc14 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -242,6 +242,11 @@ sensor:modalias:acpi:KIOX010A:*:dmi:*:svnAMI:*:skuH2M6:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
ACCEL_LOCATION=display
+# BMAX MaxBook Y14
+sensor:modalias:acpi:KIOX010A:*:dmi:*:svnAMI:*:skuH8Y6:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
+ ACCEL_LOCATION=display
+
#########################################
# BUSH
#########################################

View File

@ -0,0 +1,24 @@
From ded58c7505a55576bb9c42ac30ec7ccaf65d9569 Mon Sep 17 00:00:00 2001
From: fishears <f1she4rs@gmail.com>
Date: Fri, 14 Feb 2025 13:45:36 +0000
Subject: [PATCH] hwdb.d: add support for Akoya P15645
(cherry picked from commit 8ac7e25aabaaa8f316d6b4d382c49b13fc3a6622)
Resolves: RHEL-72701
---
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 dc50f1cf8c..34e302910a 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1471,6 +1471,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMAXDATA:pnPro*7000*:*
evdev:atkbd:dmi:bvn*:bvr*:svnMEDION*:pnS3409*:*
evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnAkoya*:*
evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnP6669*:*
+evdev:atkbd:dmi:bvn*:bvr*:svnMEDION*:pnP15645MD61587*:*
KEYBOARD_KEY_a0=!mute
KEYBOARD_KEY_ae=!volumedown
KEYBOARD_KEY_b0=!volumeup

View File

@ -0,0 +1,73 @@
From 36612285af4cb5ac9540751650ef43ecb7a863ed Mon Sep 17 00:00:00 2001
From: Volodymyr Shkriabets <vshcryabets@gmail.com>
Date: Sat, 15 Feb 2025 00:39:50 +0000
Subject: [PATCH] hwdb.d: add ANP09 Intel n100 tablet sensor configuration
(#36390)
I propose fix for ACCEL_MOUNT_MATRIX for popular on China markets Intel
n100 7" tablet. I can't find any information about manufacturer.
P:
/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00
M: i2c-BOSC0200:00
R: 00
J: +i2c:i2c-BOSC0200:00
U: i2c
V: bmc150_accel_i2c
E:
DEVPATH=/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00
E: SUBSYSTEM=i2c
E: DRIVER=bmc150_accel_i2c
E: MODALIAS=acpi:BOSC0200:BOSC0200:
E: USEC_INITIALIZED=3546649
E: ID_VENDOR_FROM_DATABASE=BOS
P:
/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00/iio:device0
M: iio:device0
R: 0
J: c238:0
U: iio
T: iio_device
D: c 238:0
N: iio:device0
L: 0
E:
DEVPATH=/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00/iio:device0
E: SUBSYSTEM=iio
E: DEVNAME=/dev/iio:device0
E: DEVTYPE=iio_device
E: MAJOR=238
E: MINOR=0
E: USEC_INITIALIZED=3556556
E: ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, -1
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
DMI tablet string
dmi:bvnAmericanMegatrendsInternational,LLC.:bvrANP09_INTEL001:bd08/16/2024:br5.27:efr0.0:svn:pn:pvrDefaultstring:rvn:rn:rvrDefaultstring:cvnDefaultstring:ct10:cvrDefaultstring:sku:
(cherry picked from commit f6209ca4d79cbdb801a7231cd8e62a4a0925f77a)
Resolves: RHEL-72701
---
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 b1e029dc14..7e0e9ed47c 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -1231,3 +1231,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnWortmann_AG:pnTERRA_PAD_1061:*
#########################################
sensor:modalias:acpi:BMA250E*:dmi:*:svnYOURS:pnY8W81:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+
+#########################################
+# Unknown manufacturer
+#########################################
+# ANP09 Intel N100 based 7-inch tablet
+sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInternational,LLC.:bvrANP09_INTEL001:*
+ ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, -1

View File

@ -0,0 +1,31 @@
From ff0d20de7a5c1e84148b0606c8b3b13259864ed0 Mon Sep 17 00:00:00 2001
From: KidGrimes <159489264+KidGrimes@users.noreply.github.com>
Date: Fri, 21 Feb 2025 18:27:53 -0300
Subject: [PATCH] hwdb: add axis range corrections for the Lenovo Yoga Slim 7
14ARE05
(cherry picked from commit 81cb404a92b17a87111eb555792c947934a52b3e)
Resolves: RHEL-72701
---
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 db9aa7c307..2e18f71e5b 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -772,6 +772,13 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnLENOVO:*pvrLenovoG580**
EVDEV_ABS_35=-170:2950:24
EVDEV_ABS_36=-591:700:25
+# Lenovo Yoga Slim 7 14ARE05
+evdev:name:ELAN0634:00 04F3:3124 Touchpad:dmi:*svnLENOVO:*pvrYogaSlim714ARE05**
+ EVDEV_ABS_00=::31
+ EVDEV_ABS_01=::30
+ EVDEV_ABS_35=::31
+ EVDEV_ABS_36=::30
+
#########################################
# Microsoft
#########################################

View File

@ -0,0 +1,30 @@
From 5404b3a5a4f0b731bbd94e24102907e3742b97ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
Date: Wed, 26 Feb 2025 23:46:42 +0100
Subject: [PATCH] hwdb: add GOLD WARRIOR SIM PhoenixRC 10411R
Fixes #36522
(cherry picked from commit 9d7b2daef05d782f301dc34b0650dab208c5b98c)
Resolves: RHEL-72701
---
hwdb.d/60-input-id.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index 6a53cc3b4c..c4c5be112d 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -51,6 +51,11 @@
# Sort by brand, model
+# GOLD WARRIOR SIM PhoenixRC 10411R
+id-input:modalias:input:b0003v1781p0898*
+ ID_INPUT_ACCELEROMETER=
+ ID_INPUT_JOYSTICK=1
+
# XP-PEN STAR 06
id-input:modalias:input:b0003v28bdp0078*
ID_INPUT_TABLET=1

View File

@ -0,0 +1,32 @@
From 65bbf0afbface16c8fd7917297efa99ee605533b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
Date: Sat, 1 Mar 2025 13:16:24 +0100
Subject: [PATCH] hwdb: add Code Mercenaries Hard- und Software GmbH Virtual RC
USB
It's official VRC USB dongle. Make it work in SDL apps, wine,
Steam, ... and fix the erratic mouse events when the dongle is in use.
(cherry picked from commit d8af5c262cac79e5866b7d5c45cf7a78c755b2cd)
Resolves: RHEL-72701
---
hwdb.d/60-input-id.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index c4c5be112d..823d856c31 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -51,6 +51,11 @@
# Sort by brand, model
+# Code Mercenaries Hard- und Software GmbH Virtual RC USB
+id-input:modalias:input:b0003v07C0p1125*
+ ID_INPUT_MOUSE=
+ ID_INPUT_JOYSTICK=1
+
# GOLD WARRIOR SIM PhoenixRC 10411R
id-input:modalias:input:b0003v1781p0898*
ID_INPUT_ACCELEROMETER=

View File

@ -0,0 +1,27 @@
From ce7da0cca953bb034581f66c8ffec2fa9e4cd8bb Mon Sep 17 00:00:00 2001
From: Chris Grant <grantgj@gmail.com>
Date: Sun, 2 Mar 2025 01:14:22 +1300
Subject: [PATCH] hwdb: Add accel orientation quirk for the GPD Pocket 4
(cherry picked from commit 5bc576225a3d34bc5f4571e96112b19daacb37cb)
Resolves: RHEL-72701
---
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 7e0e9ed47c..385c4300ef 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -590,6 +590,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/25/201
sensor:modalias:acpi:MXC6655*:dmi:*:svnGPD:pnG1621-02:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+# GPD Pocket 4
+sensor:modalias:acpi:MXC6655*:dmi:*:svnGPD:pnG1628-04:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+
# GPD WinMax2
sensor:modalias:acpi:BMI0160*:dmi:*:svnGPD:pnG1619*:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,28 @@
From c963fd10c76aecf72411be3b765fcf9cfa295d7b Mon Sep 17 00:00:00 2001
From: Harrison Vanderbyl <33416119+harrisonvanderbyl@users.noreply.github.com>
Date: Tue, 4 Mar 2025 15:15:23 +1100
Subject: [PATCH] hwdb: add rotation profile matrix for Rog Ally X (2024)
(#36591)
(cherry picked from commit 7fff71328e36b734be6b7e17eb7998dcb754bb13)
Resolves: RHEL-72701
---
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 385c4300ef..9561fefa89 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -189,6 +189,10 @@ sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LAB:*
sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*TP412UA:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
+# ASUS ROG Ally X (2024)
+sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*RC72LA:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, -1
+
sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:pn*BR1100FKA:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, -1

View File

@ -0,0 +1,43 @@
From 905c9b4450352c844807a517e3ad10371fb998b6 Mon Sep 17 00:00:00 2001
From: Sonia Zorba <zonia3000@gmail.com>
Date: Tue, 18 Mar 2025 02:25:51 +0200
Subject: [PATCH] hwdb: fix backspace not working on HP Pavilion laptop
(#36777)
PR #34685 moved the handling of keys 66/65 from specific models to
generic HP laptops.
Key 66 has been linked to the `pickup_phone` function; however, this
action key is not available on all HP laptop models, particularly older
versions. On my HP Pavilion laptop, key 66 is mapped to the `backspace`
function, which caused the backspace key to stop working after the
change.
The following PR fixes the issue on my **HP Pavilion Laptop 15-eg0xxx**.
I have placed the modifications under the Pavilion section, but I cannot
guarantee that this solution will apply to all Pavilion models.
Additionally, I have included a line that checks for "HP" instead of
solely searching for "Hewlett-Packard," as my model is simply labeled as
HP.
(cherry picked from commit 147511c643886543a79aa8d036380ea86c38cfa4)
Resolves: RHEL-72701
---
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 34e302910a..f758d202d1 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -649,6 +649,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:*
# Pavilion
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
+ KEYBOARD_KEY_66=backspace
KEYBOARD_KEY_88=media # FIXME: quick play
KEYBOARD_KEY_b7=print
KEYBOARD_KEY_d8=!touchpad_off # touchpad off

View File

@ -0,0 +1,35 @@
From 5c6b501ff577c3487cc00e73173ecddf8e2e9fae Mon Sep 17 00:00:00 2001
From: Werner Sembach <wse@tuxedocomputers.com>
Date: Wed, 2 Apr 2025 18:47:12 +0200
Subject: [PATCH] hwdb/keyboard: Map FN key on TUXEDO NB02 devices
Map the FN key of TUXEDO NB02 devices that produces a scancode unrecognized by
the Linux kernel.
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
(cherry picked from commit c47f16ea9633cd69f60e555abcbdb3e9000e1aef)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index f758d202d1..31664216fa 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2062,6 +2062,14 @@ evdev:name:Quickstart Button 2:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
KEYBOARD_KEY_1=touchpad_toggle # Touchpad toggle
+###########################################################
+# TUXEDO Computers
+###########################################################
+
+# TUXEDO Computers notebooks with board_vendor NB02
+evdev:atkbd:dmi:*:svnTUXEDO:*:rvnNB02:*
+ KEYBOARD_KEY_f8=fn
+
###########################################################
# VIA
###########################################################

View File

@ -0,0 +1,31 @@
From ecbc1826be931212ca60142ee09e6ce45cc62705 Mon Sep 17 00:00:00 2001
From: Werner Sembach <wse@tuxedocomputers.com>
Date: Thu, 24 Apr 2025 23:29:53 +0200
Subject: [PATCH] hwdb/keyboard: Map FN key on TUXEDO InfinityFlex 14 Gen1
Map the FN key of TUXEDO InfinityFlex 14 Gen1 that wrongly produces the F23
scancode by default.
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
(cherry picked from commit d2502f55a2d9dc13f82cc1551a0639843fefb69e)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 31664216fa..36bcdc9c3e 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2070,6 +2070,10 @@ evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
evdev:atkbd:dmi:*:svnTUXEDO:*:rvnNB02:*
KEYBOARD_KEY_f8=fn
+# TUXEDO InfinityFlex 14 Gen1
+evdev:atkbd:dmi:*:svnTUXEDO:*:rnDN50Z-140HC-YD:*
+ KEYBOARD_KEY_6e=fn
+
###########################################################
# VIA
###########################################################

View File

@ -0,0 +1,28 @@
From 26b707119bfef29e97783656bfd0df6bf0a774b1 Mon Sep 17 00:00:00 2001
From: Marcos Alano <mhalano@users.noreply.github.com>
Date: Fri, 18 Apr 2025 05:43:26 -0300
Subject: [PATCH] hwdb: add G-Mode key support (#37175)
Add G-Mode key, usually Fn+F9.
Closes #30824
(cherry picked from commit ae042183832bae0eecdb32877c568d5c9d67e646)
Resolves: RHEL-72701
---
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 36bcdc9c3e..9e00d7cd83 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -383,6 +383,7 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-T
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
+ KEYBOARD_KEY_68=prog2 # G-Mode (Dell-specific)
KEYBOARD_KEY_81=playpause # Play/Pause
KEYBOARD_KEY_82=stopcd # Stop
KEYBOARD_KEY_83=previoussong # Previous song

View File

@ -0,0 +1,25 @@
From 51ecd9cfb577bc9f3ba1697a27620e979e895523 Mon Sep 17 00:00:00 2001
From: Marcos Alano <marcoshalano@gmail.com>
Date: Thu, 8 May 2025 07:28:16 -0300
Subject: [PATCH] Add emulated release to G-Mode key
(cherry picked from commit fb8149234aa70b9f7132cee0ffe4b58f410f947e)
Resolves: RHEL-72701
---
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 9e00d7cd83..781856b0df 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -383,7 +383,7 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-T
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
- KEYBOARD_KEY_68=prog2 # G-Mode (Dell-specific)
+ KEYBOARD_KEY_68=!prog2 # G-Mode (Dell-specific)
KEYBOARD_KEY_81=playpause # Play/Pause
KEYBOARD_KEY_82=stopcd # Stop
KEYBOARD_KEY_83=previoussong # Previous song

View File

@ -0,0 +1,34 @@
From cf166a03eb02cfa1dab6e5418cab3a0c7d708329 Mon Sep 17 00:00:00 2001
From: Kurt Borja <kuurtb@gmail.com>
Date: Thu, 8 May 2025 04:37:55 -0300
Subject: [PATCH] hwdb: keyboard: Add Alienware special keys
Add Alienware *Performance mode* toggle key and *Macro* keys.
Signed-off-by: Kurt Borja <kuurtb@gmail.com>
(cherry picked from commit 15450ba214ea1f3277a2d2e24bcce5956ee651af)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 781856b0df..210af0f5fc 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -247,8 +247,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Alienware/Dell reserves these keys; safe to apply on all their devices
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
+ KEYBOARD_KEY_68=!prog3 # Fn+f1 Performance mode toggle
KEYBOARD_KEY_81=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_8a=ejectcd
+ KEYBOARD_KEY_92=macro1 # Fn+f2
+ KEYBOARD_KEY_93=macro2 # Fn+f3
+ KEYBOARD_KEY_94=macro3 # Fn+f4
+ KEYBOARD_KEY_95=macro4 # Fn+f5
+ KEYBOARD_KEY_96=macro5 # Fn+f6
KEYBOARD_KEY_bf=!prog1 # graphics amplifier, cable plug-in event
KEYBOARD_KEY_c1=!prog2 # graphics amplifier, undock-button event
KEYBOARD_KEY_c2=!power # graphics amplifier, surprise undock event

View File

@ -0,0 +1,61 @@
From 9d60ed7a45175b1e8f8f4437c47ef30de543e329 Mon Sep 17 00:00:00 2001
From: Ryan Thompson <ryan.thompson@nuand.com>
Date: Mon, 12 May 2025 18:05:20 -0500
Subject: [PATCH] hwdb: add bladeRF SDR devices
Add hwdb entries for bladeRF 1.x, legacy 1.x, and 2.0 micro devices to
enable non-root access through preexisting ID_SOFTWARE_RADIO tag.
References #20561
(cherry picked from commit 951e8cb06037d5b67c0ac86f56bcbd73f4fb2d7b)
Resolves: RHEL-72701
---
hwdb.d/70-software-radio.hwdb | 24 ++++++++++++++++++++++++
hwdb.d/meson.build | 1 +
2 files changed, 25 insertions(+)
create mode 100644 hwdb.d/70-software-radio.hwdb
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
new file mode 100644
index 0000000000..c6afcffdc3
--- /dev/null
+++ b/hwdb.d/70-software-radio.hwdb
@@ -0,0 +1,24 @@
+# This file is part of systemd.
+#
+# Database for software-defined radio devices that should be accessible to the seat owner.
+#
+# To add local entries, copy this file to
+# /etc/udev/hwdb.d/
+# and add your rules there. To load the new rules execute (as root):
+# systemd-hwdb update
+# udevadm trigger
+
+################
+# 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
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index b69b6d8f25..5498d486dd 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -34,6 +34,7 @@ hwdb_files_test = files(
'70-mouse.hwdb',
'70-pda.hwdb',
'70-pointingstick.hwdb',
+ '70-software-radio.hwdb',
'70-sound-card.hwdb',
'70-touchpad.hwdb',
'80-ieee1394-unit-function.hwdb')

View File

@ -0,0 +1,24 @@
From 7630745836edd53a37caceeba4a24c105b31b201 Mon Sep 17 00:00:00 2001
From: Ryan Thompson <ryan.thompson@nuand.com>
Date: Mon, 12 May 2025 19:37:16 -0500
Subject: [PATCH] hwdb: append ID_SOFTWARE_RADIO to hwdb parser
(cherry picked from commit eea9ba8409efd5f8540d9e83a5096ac0a34d6a9f)
Resolves: RHEL-72701
---
hwdb.d/parse_hwdb.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index bac5dcc4c8..7dd996e1ee 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -177,6 +177,7 @@ def property_grammar():
('ID_INPUT_TRACKBALL', id_input_setting),
('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
+ ('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
('POINTINGSTICK_SENSITIVITY', INTEGER),
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),

View File

@ -0,0 +1,148 @@
From 7ba44ada413135376146f026d44a89dccd35aa52 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 14 May 2025 17:31:57 +0200
Subject: [PATCH] hwdb.d: reword and simplify boilerplate texts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Let's keep things simple and uniform. We put a dot at the
end of some commands… This is obviously correct, but might confuse
some poor user.
(cherry picked from commit 16acf66cf6985a87a5650cb1fa7b56be42505c62)
Resolves: RHEL-72701
---
hwdb.d/60-autosuspend.hwdb | 5 ++---
hwdb.d/60-evdev.hwdb | 5 ++---
hwdb.d/60-input-id.hwdb | 5 ++---
hwdb.d/60-keyboard.hwdb | 5 ++---
hwdb.d/60-sensor.hwdb | 3 +--
hwdb.d/70-joystick.hwdb | 5 ++---
hwdb.d/70-touchpad.hwdb | 2 +-
7 files changed, 12 insertions(+), 18 deletions(-)
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb
index 1bdc041bb9..af7d8ba567 100644
--- a/hwdb.d/60-autosuspend.hwdb
+++ b/hwdb.d/60-autosuspend.hwdb
@@ -14,13 +14,12 @@
# systemd-hwdb update
# udevadm trigger /dev/…
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
# udevadm info
-# the device.
+# for the device.
#
# Allowed properties are:
# ID_AUTOSUSPEND=1
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 2e18f71e5b..47f1c2d2d2 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -38,12 +38,11 @@
# where /dev/input/eventXX is the device in question. If in doubt, simply use
# /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
#
# Allowed properties are:
# EVDEV_ABS_<axis>=<min>:<max>:<res>:<fuzz>:<flat>
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index 823d856c31..88fec6e043 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -14,12 +14,11 @@
# where /dev/input/eventXX is the device in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
#
# This file must only be used where the input_id builtin assigns the wrong
# properties or lacks the assignment of some properties. This is almost always
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 210af0f5fc..0ed4478399 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -51,12 +51,11 @@
# where /dev/input/eventXX is the keyboard in question. If in doubt, simply use
# /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
# ######################### KEY MAPPING ######################################
#
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 9561fefa89..b25dda8959 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -27,8 +27,7 @@
# udevadm trigger -v -p DEVNAME=/dev/iio:deviceXXX
# where /dev/iio:deviceXXX is the device in question.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
diff --git a/hwdb.d/70-joystick.hwdb b/hwdb.d/70-joystick.hwdb
index 8e942c8c1b..e2008676e9 100644
--- a/hwdb.d/70-joystick.hwdb
+++ b/hwdb.d/70-joystick.hwdb
@@ -18,12 +18,11 @@
# where /dev/input/eventXX is the joystick in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
#
# Permitted keys:
# Specify if a joystick is a built-in one or external:
diff --git a/hwdb.d/70-touchpad.hwdb b/hwdb.d/70-touchpad.hwdb
index 262bca3a19..83089bba28 100644
--- a/hwdb.d/70-touchpad.hwdb
+++ b/hwdb.d/70-touchpad.hwdb
@@ -26,7 +26,7 @@
# udevadm info /dev/input/eventXX.
#
# Permitted keys:
-# Specify if a touchpad is a built-in one or external:
+# Specify whether a touchpad is a built-in one or external:
# ID_INPUT_TOUCHPAD_INTEGRATION=internal|external
touchpad:i8042:*

View File

@ -0,0 +1,195 @@
From e41194c5e3f8f55b2ce493dd1f114ad65f425d6b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 14 May 2025 17:44:25 +0200
Subject: [PATCH] hwdb.d: update/expand boilerplate on various hwdb files
We don't want to encourage people to copy the whole files. The
boilerplate text that recommends an override file rather than a
full copy appeared first in 0213a26f656d72ac83eb201f2104726fcfe60eaa,
but was added in other places in 57bb707d48131f4daad2b1b746eab586eb66b4f3.
Directly inspired by 951e8cb06037d5b67c0ac86f56bcbd73f4fb2d7b, but
the wrong boilerplate was added in other places too.
(cherry picked from commit 97f7b74f97d20daf13021eb748399ecafd15f520)
Resolves: RHEL-72701
---
hwdb.d/70-av-production.hwdb | 20 ++++++++++++++++----
hwdb.d/70-hardware-wallets.hwdb | 20 ++++++++++++++++----
hwdb.d/70-lights.hwdb | 24 ++++++++++++++++++------
hwdb.d/70-software-radio.hwdb | 21 +++++++++++++++++----
hwdb.d/70-sound-card.hwdb | 20 ++++++++++++++++----
5 files changed, 83 insertions(+), 22 deletions(-)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index f7cc349822..dc3fddf0e0 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -3,13 +3,25 @@
# Database for AV production controllers that should be accessible to the seat owner.
#
# This covers DJ tables, music-oriented key pads, and streaming-oriented key pads
-# such as Elgato Stream Deck
+# such as Elgato Stream Deck.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-av-production-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_AV_PRODUCTION_CONTROLLER=1
################
# Ableton
diff --git a/hwdb.d/70-hardware-wallets.hwdb b/hwdb.d/70-hardware-wallets.hwdb
index 77d8bfa92d..24983f3f92 100644
--- a/hwdb.d/70-hardware-wallets.hwdb
+++ b/hwdb.d/70-hardware-wallets.hwdb
@@ -1,12 +1,24 @@
# This file is part of systemd.
#
# Database for Hardware Wallets that should be accessible to the seat owner.
-##
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+#
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-hardware-wallets-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_HARDWARE_WALLET=1
################
# Trezor Hardware Wallets
diff --git a/hwdb.d/70-lights.hwdb b/hwdb.d/70-lights.hwdb
index 7811be61f5..70c152c8b8 100644
--- a/hwdb.d/70-lights.hwdb
+++ b/hwdb.d/70-lights.hwdb
@@ -1,14 +1,26 @@
# This file is part of systemd.
#
-# Database for remote controllable lights that should be accessible to the seat owner,
-# such as Bluetooth or USB lights that are used in conjuction with the computer like
-# streaming lights.
+# Database for remote controllable lights that should be accessible to the seat
+# owner, such as Bluetooth or USB lights that are used in conjuction with the
+# computer like streaming lights.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-lights-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_AV_LIGHTS=1
################
# Logitech
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index c6afcffdc3..3b578d464f 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -1,12 +1,25 @@
# This file is part of systemd.
#
-# Database for software-defined radio devices that should be accessible to the seat owner.
+# Database for software-defined radio devices that should be accessible to the
+# seat owner.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-software-radio-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_SOFTWARE_RADIO=1
################
# Nuand
diff --git a/hwdb.d/70-sound-card.hwdb b/hwdb.d/70-sound-card.hwdb
index a7ea8c64ee..762993dbf0 100644
--- a/hwdb.d/70-sound-card.hwdb
+++ b/hwdb.d/70-sound-card.hwdb
@@ -1,12 +1,24 @@
# This file is part of systemd.
#
-# Database of sound hardware that gets misdetected
+# Database of sound hardware that gets misdetected.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-sound-card-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# SOUND_FORM_FACTOR
###########################################################
# Corsair

View File

@ -0,0 +1,108 @@
From 430627048f2a0a429392e433a02ec48ede0441f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 14 May 2025 17:59:34 +0200
Subject: [PATCH] hwdb: say that settings can be also set to 0
We recommend that users create overriddes. This creates the problem that there
is no syntax to unset a property. Thus, the user needs to just set the property
to "something else" in the override file. But then the blurb saying that
"VAR=1" (or "VAR=0" in some cases) is the only allowed value can be confusing.
Say that both 0 and 1 can be set, since this documentation is also intended
for end users.
In our files, we generally don't want the override values anywhere. But we
have a test which checks the rvalue, which should be enough.
(cherry picked from commit 9282a85ed73e294bb67c4935ce65d588ed9315c7)
Resolves: RHEL-72701
---
hwdb.d/60-autosuspend.hwdb | 4 ++--
hwdb.d/60-seat.hwdb | 2 +-
hwdb.d/70-av-production.hwdb | 2 +-
hwdb.d/70-hardware-wallets.hwdb | 2 +-
hwdb.d/70-lights.hwdb | 2 +-
hwdb.d/70-software-radio.hwdb | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb
index af7d8ba567..f564c6aed9 100644
--- a/hwdb.d/60-autosuspend.hwdb
+++ b/hwdb.d/60-autosuspend.hwdb
@@ -22,9 +22,9 @@
# for the device.
#
# Allowed properties are:
-# ID_AUTOSUSPEND=1
+# ID_AUTOSUSPEND=0|1
# ID_AUTOSUSPEND_DELAY_MS=####
-# ID_PERSIST=0
+# ID_PERSIST=0|1
#
# ID_AUTOSUSPEND_DELAY_MS adjusts the delay for autosuspend to something
# different than the kernel default of 2000ms.
diff --git a/hwdb.d/60-seat.hwdb b/hwdb.d/60-seat.hwdb
index 927ea025a2..4b1fc2c1bb 100644
--- a/hwdb.d/60-seat.hwdb
+++ b/hwdb.d/60-seat.hwdb
@@ -8,7 +8,7 @@
# device, and not the (parent) PCI device, is tagged with 'master-of-seat'.
#
# Allowed properties are:
-# ID_TAG_MASTER_OF_SEAT=1
+# ID_TAG_MASTER_OF_SEAT=0|1
#########################################
# eXtreme Graphic Innovation (XGI)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index dc3fddf0e0..fee74729c4 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -21,7 +21,7 @@
# for the device.
#
# Allowed properties are:
-# ID_AV_PRODUCTION_CONTROLLER=1
+# ID_AV_PRODUCTION_CONTROLLER=0|1
################
# Ableton
diff --git a/hwdb.d/70-hardware-wallets.hwdb b/hwdb.d/70-hardware-wallets.hwdb
index 24983f3f92..94fe332872 100644
--- a/hwdb.d/70-hardware-wallets.hwdb
+++ b/hwdb.d/70-hardware-wallets.hwdb
@@ -18,7 +18,7 @@
# for the device.
#
# Allowed properties are:
-# ID_HARDWARE_WALLET=1
+# ID_HARDWARE_WALLET=0|1
################
# Trezor Hardware Wallets
diff --git a/hwdb.d/70-lights.hwdb b/hwdb.d/70-lights.hwdb
index 70c152c8b8..a7753710ed 100644
--- a/hwdb.d/70-lights.hwdb
+++ b/hwdb.d/70-lights.hwdb
@@ -20,7 +20,7 @@
# for the device.
#
# Allowed properties are:
-# ID_AV_LIGHTS=1
+# ID_AV_LIGHTS=0|1
################
# Logitech
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 3b578d464f..cbe1539861 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -19,7 +19,7 @@
# for the device.
#
# Allowed properties are:
-# ID_SOFTWARE_RADIO=1
+# ID_SOFTWARE_RADIO=0|1
################
# Nuand

View File

@ -0,0 +1,35 @@
From 699ad61a1b45ecb17689386c47328c1ec2d43a41 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nuno=20S=C3=A1?= <nuno.sa@analog.com>
Date: Thu, 15 May 2025 09:46:16 +0100
Subject: [PATCH] hwdb: add Analog Devices PLUTO SDR
Add hwdb entries for ADI PLUTO. Note that when in DFU (Device Firmware
mode) mode, the pid is different. Thus, the two entries.
We also want to make sure that no AT commands are sent to us and so we
set 'ID_MM_DEVICE_IGNORE=1'.
(cherry picked from commit ab8e0c6c7c2884ab7a112d76ae8f4c2d8bdd63c0)
Resolves: RHEL-72701
---
hwdb.d/70-software-radio.hwdb | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index cbe1539861..1e5aa1dc87 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -35,3 +35,12 @@ usb:v1D50p6066*
# bladeRF 2.0 micro
usb:v2CF0p5250*
ID_SOFTWARE_RADIO=1
+
+# ADI pluto SDR
+usb:v0456pB673*
+ ID_SOFTWARE_RADIO=1
+ ID_MM_DEVICE_IGNORE=1
+
+# ADI pluto DFU
+usb:v0456pB674*
+ ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,24 @@
From 4d70762de03e56650cd56b811b7e650f986140e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nuno=20S=C3=A1?= <nuno.sa@analog.com>
Date: Thu, 15 May 2025 09:48:30 +0100
Subject: [PATCH] hwdb: append ID_MM_DEVICE_IGNORE to hwdb parser
(cherry picked from commit 42957adf5ce9adee0a5850de7498646f15ccd3b9)
Resolves: RHEL-72701
---
hwdb.d/parse_hwdb.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 7dd996e1ee..60022e3095 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -178,6 +178,7 @@ def property_grammar():
('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
+ ('ID_MM_DEVICE_IGNORE', Or((Literal('0'), Literal('1')))),
('POINTINGSTICK_SENSITIVITY', INTEGER),
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),

201820
0410-hwdb-run-update-hwdb.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,177 @@
From 1c894d539f1cd07f5b120fe128b04ab03de1a389 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Thu, 15 May 2025 10:47:40 +0200
Subject: [PATCH] hwdb: run "update-hwdb-autosuspend"
As usual, mostly additions and a few removals.
(cherry picked from commit 7bd6626a43a69493523600b1862e5909ed8ae319)
Resolves: RHEL-72701
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 51 ++++++++++++++++---
1 file changed, 44 insertions(+), 7 deletions(-)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index 813343d08d..d5b7b01fbe 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -162,8 +162,11 @@ usb:v04F3p0C82*
usb:v04F3p0C88*
usb:v04F3p0C8C*
usb:v04F3p0C8D*
+usb:v04F3p0C98*
usb:v04F3p0C99*
+usb:v04F3p0C9D*
usb:v04F3p0C9F*
+usb:v04F3p0CA3*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -176,6 +179,9 @@ usb:v1C7Ap0603*
usb:v2808p9E48*
usb:v2808pD979*
usb:v2808pA959*
+usb:v2808pA99A*
+usb:v2808pA57A*
+usb:v2808pA78A*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -187,6 +193,7 @@ usb:v10A5pD805*
usb:v10A5pD205*
usb:v10A5p9524*
usb:v10A5p9544*
+usb:v10A5pC844*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -200,6 +207,7 @@ usb:v27C6p609C*
usb:v27C6p60A2*
usb:v27C6p60A4*
usb:v27C6p60BC*
+usb:v27C6p60C2*
usb:v27C6p6304*
usb:v27C6p631C*
usb:v27C6p633C*
@@ -238,25 +246,29 @@ usb:v0BDAp5816*
# Supported by libfprint driver synaptics
usb:v06CBp00BD*
+usb:v06CBp00C2*
+usb:v06CBp00C4*
+usb:v06CBp00C6*
usb:v06CBp00DF*
+usb:v06CBp00F0*
usb:v06CBp00F9*
usb:v06CBp00FC*
-usb:v06CBp00C2*
-usb:v06CBp00C4*
usb:v06CBp0100*
-usb:v06CBp00F0*
usb:v06CBp0103*
+usb:v06CBp0104*
+usb:v06CBp0106*
+usb:v06CBp0107*
+usb:v06CBp0108*
usb:v06CBp0123*
usb:v06CBp0124*
usb:v06CBp0126*
usb:v06CBp0129*
-usb:v06CBp0168*
usb:v06CBp015F*
-usb:v06CBp0104*
+usb:v06CBp0168*
+usb:v06CBp016C*
usb:v06CBp0173*
-usb:v06CBp0106*
+usb:v06CBp0174*
usb:v06CBp019D*
-usb:v06CBp00C6*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -325,7 +337,10 @@ usb:v138Ap0091*
ID_PERSIST=0
# Known unsupported devices
+usb:v0A5Cp5802*
usb:v047Dp00F2*
+usb:v047Dp8054*
+usb:v047Dp8055*
usb:v04E8p730B*
usb:v04F3p036B*
usb:v04F3p0C00*
@@ -333,16 +348,25 @@ usb:v04F3p0C4C*
usb:v04F3p0C57*
usb:v04F3p0C5E*
usb:v04F3p0C5A*
+usb:v04F3p0C60*
usb:v04F3p0C6C*
usb:v04F3p0C70*
usb:v04F3p0C72*
usb:v04F3p0C77*
+usb:v04F3p0C7C*
+usb:v04F3p0C7F*
+usb:v04F3p0C80*
+usb:v04F3p0C85*
+usb:v04F3p0C90*
usb:v04F3p2706*
usb:v04F3p3032*
usb:v04F3p3057*
usb:v04F3p3104*
usb:v04F3p310D*
usb:v04F3p3128*
+usb:v04F3p0C8A*
+usb:v05BAp000E*
+usb:v06CBp0051*
usb:v06CBp0081*
usb:v06CBp0088*
usb:v06CBp008A*
@@ -362,6 +386,7 @@ usb:v06CBp00E4*
usb:v06CBp00E7*
usb:v06CBp00E9*
usb:v06CBp00FD*
+usb:v06CBp00FF*
usb:v0A5Cp5801*
usb:v0A5Cp5805*
usb:v0A5Cp5834*
@@ -381,6 +406,8 @@ usb:v0BDAp5812*
usb:v10A5p0007*
usb:v10A5p9200*
usb:v10A5p9800*
+usb:v10A5pA120*
+usb:v10A5pA900*
usb:v10A5pE340*
usb:v1188p9545*
usb:v138Ap0007*
@@ -401,7 +428,11 @@ usb:v16D1p1027*
usb:v1C7Ap0300*
usb:v1C7Ap0575*
usb:v1C7Ap0576*
+usb:v1C7Ap0584*
usb:v1C7Ap0577*
+usb:v1C7Ap057E*
+usb:v2541p0236*
+usb:v2541p9711*
usb:v27C6p5042*
usb:v27C6p5110*
usb:v27C6p5117*
@@ -430,11 +461,17 @@ usb:v27C6p5740*
usb:v27C6p5E0A*
usb:v27C6p581A*
usb:v27C6p589A*
+usb:v27C6p5F10*
usb:v27C6p6382*
usb:v2808p9338*
+usb:v2808p9348*
usb:v2808p93A9*
+usb:v2808pA658*
+usb:v2808pC652*
usb:v298Dp2020*
usb:v298Dp2033*
+usb:v2DF0p0003*
+usb:v3274p8012*
usb:v3538p0930*
ID_AUTOSUSPEND=1
ID_PERSIST=0

View File

@ -0,0 +1,26 @@
From 29710e390b32086a8846ab24c553c75f0d866c98 Mon Sep 17 00:00:00 2001
From: AsciiWolf <drusek@redhat.com>
Date: Fri, 16 May 2025 12:14:36 +0200
Subject: [PATCH] hwdb: add missing PLUTO SDR vendor name
(cherry picked from commit b2ef1818e68c455e08fb74421e37f325cea5a419)
Resolves: RHEL-72701
---
hwdb.d/70-software-radio.hwdb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 1e5aa1dc87..1347f284e6 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -36,6 +36,9 @@ usb:v1D50p6066*
usb:v2CF0p5250*
ID_SOFTWARE_RADIO=1
+#################
+# Analog Devices
+#################
# ADI pluto SDR
usb:v0456pB673*
ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,47 @@
From e5896b9a98dd7431058f325460018bc5a4cb6f03 Mon Sep 17 00:00:00 2001
From: AsciiWolf <drusek@redhat.com>
Date: Thu, 22 May 2025 13:04:07 +0200
Subject: [PATCH] hwdb: add Ettus Research SDR devices
(cherry picked from commit 9dad00ef94e6207642f04496c56a4123a396530c)
Resolves: RHEL-72701
---
hwdb.d/70-software-radio.hwdb | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 1347f284e6..4bf7301251 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -47,3 +47,30 @@ usb:v0456pB673*
# ADI pluto DFU
usb:v0456pB674*
ID_SOFTWARE_RADIO=1
+
+#################
+# Ettus Research
+#################
+# USRP1
+usb:vFFFEp0002*
+ ID_SOFTWARE_RADIO=1
+
+# B100
+usb:v2500p0002*
+ ID_SOFTWARE_RADIO=1
+
+# B200
+usb:v2500p0020*
+ ID_SOFTWARE_RADIO=1
+
+usb:v2500p0021*
+ ID_SOFTWARE_RADIO=1
+
+usb:v2500p0022*
+ ID_SOFTWARE_RADIO=1
+
+usb:v3923p7813*
+ ID_SOFTWARE_RADIO=1
+
+usb:v3923p7814*
+ ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,227 @@
From 0e73ebacce06ad13919fe5722f382ab281c00855 Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Fri, 23 May 2025 14:28:16 +0200
Subject: [PATCH] hwdb: add RTL-SDR devices
(cherry picked from commit f6f8c6e9fd79dd90600035d11884584be0a404b0)
Resolves: RHEL-72701
---
hwdb.d/70-software-radio.hwdb | 183 ++++++++++++++++++++++++++++++++--
1 file changed, 177 insertions(+), 6 deletions(-)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 4bf7301251..74510bc4ee 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -21,9 +21,9 @@
# Allowed properties are:
# ID_SOFTWARE_RADIO=0|1
-################
+##########################################
# Nuand
-################
+##########################################
# bladeRF 1.x
usb:v2CF0p5246*
ID_SOFTWARE_RADIO=1
@@ -36,9 +36,9 @@ usb:v1D50p6066*
usb:v2CF0p5250*
ID_SOFTWARE_RADIO=1
-#################
+##########################################
# Analog Devices
-#################
+##########################################
# ADI pluto SDR
usb:v0456pB673*
ID_SOFTWARE_RADIO=1
@@ -48,9 +48,9 @@ usb:v0456pB673*
usb:v0456pB674*
ID_SOFTWARE_RADIO=1
-#################
+##########################################
# Ettus Research
-#################
+##########################################
# USRP1
usb:vFFFEp0002*
ID_SOFTWARE_RADIO=1
@@ -74,3 +74,174 @@ usb:v3923p7813*
usb:v3923p7814*
ID_SOFTWARE_RADIO=1
+
+##########################################
+# RTL-SDR
+##########################################
+# original RTL2832U vid/pid (hama nano, for example)
+usb:v0BDAp2832*
+ ID_SOFTWARE_RADIO=1
+
+# RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.
+usb:v0BDAp2838*
+ ID_SOFTWARE_RADIO=1
+
+# DigitalNow Quad DVB-T PCI-E card (4x FC0012?)
+usb:v0413p6680*
+ ID_SOFTWARE_RADIO=1
+
+# Leadtek WinFast DTV Dongle mini D (FC0012)
+usb:v0413p6F0F*
+ ID_SOFTWARE_RADIO=1
+
+# Genius TVGo DVB-T03 USB dongle (Ver. B)
+usb:v0458p707F*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Cinergy T Stick Black (rev 1) (FC0012)
+usb:v0CCDp00A9*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec NOXON rev 1 (FC0013)
+usb:v0CCDp00B3*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Deutschlandradio DAB Stick (FC0013)
+usb:v0CCDp00B4*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec NOXON DAB Stick - Radio Energy (FC0013)
+usb:v0CCDp00B5*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Media Broadcast DAB Stick (FC0013)
+usb:v0CCDp00B7*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec BR DAB Stick (FC0013)
+usb:v0CCDp00B8*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec WDR DAB Stick (FC0013)
+usb:v0CCDp00B9*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec MuellerVerlag DAB Stick (FC0013)
+usb:v0CCDp00C0*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Fraunhofer DAB Stick (FC0013)
+usb:v0CCDp00C6*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Cinergy T Stick RC (Rev.3) (E4000)
+usb:v0CCDp00D3*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec T Stick PLUS (E4000)
+usb:v0CCDp00D7*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec NOXON rev 2 (E4000)
+usb:v0CCDp00E0*
+ ID_SOFTWARE_RADIO=1
+
+# PixelView PV-DT235U(RN) (FC0012)
+usb:v1554p5020*
+ ID_SOFTWARE_RADIO=1
+
+# Astrometa DVB-T/DVB-T2 (R828D)
+usb:v15F4p0131*
+ ID_SOFTWARE_RADIO=1
+
+# HanfTek DAB+FM+DVB-T
+usb:v15F4p0133*
+ ID_SOFTWARE_RADIO=1
+
+# Compro Videomate U620F (E4000)
+usb:v185Bp0620*
+ ID_SOFTWARE_RADIO=1
+
+# Compro Videomate U650F (E4000)
+usb:v185Bp0650*
+ ID_SOFTWARE_RADIO=1
+
+# Compro Videomate U680F (E4000)
+usb:v185Bp0680*
+ ID_SOFTWARE_RADIO=1
+
+# GIGABYTE GT-U7300 (FC0012)
+usb:v1B80pD393*
+ ID_SOFTWARE_RADIO=1
+
+# DIKOM USB-DVBT HD
+usb:v1B80pD394*
+ ID_SOFTWARE_RADIO=1
+
+# Peak 102569AGPK (FC0012)
+usb:v1B80pD395*
+ ID_SOFTWARE_RADIO=1
+
+# KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)
+usb:v1B80pD397*
+ ID_SOFTWARE_RADIO=1
+
+# Zaapa ZT-MINDVBZP (FC0012)
+usb:v1B80pD398*
+ ID_SOFTWARE_RADIO=1
+
+# SVEON STV20 DVB-T USB & FM (FC0012)
+usb:v1B80pD39D*
+ ID_SOFTWARE_RADIO=1
+
+# Twintech UT-40 (FC0013)
+usb:v1B80pD3A4*
+ ID_SOFTWARE_RADIO=1
+
+# ASUS U3100MINI_PLUS_V2 (FC0013)
+usb:v1B80pD3A8*
+ ID_SOFTWARE_RADIO=1
+
+# SVEON STV27 DVB-T USB & FM (FC0013)
+usb:v1B80pD3AF*
+ ID_SOFTWARE_RADIO=1
+
+# SVEON STV21 DVB-T USB & FM
+usb:v1B80pD3B0*
+ ID_SOFTWARE_RADIO=1
+
+# Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)
+usb:v1D19p1101*
+ ID_SOFTWARE_RADIO=1
+
+# Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)
+usb:v1D19p1102*
+ ID_SOFTWARE_RADIO=1
+
+# Dexatek DK 5217 DVB-T Dongle (FC2580)
+usb:v1D19p1103*
+ ID_SOFTWARE_RADIO=1
+
+# MSI DigiVox Micro HD (FC2580)
+usb:v1D19p1104*
+ ID_SOFTWARE_RADIO=1
+
+# Sweex DVB-T USB (FC0012)
+usb:v1F4DpA803*
+ ID_SOFTWARE_RADIO=1
+
+# GTek T803 (FC0012)
+usb:v1F4DpB803*
+ ID_SOFTWARE_RADIO=1
+
+# Lifeview LV5TDeluxe (FC0012)
+usb:v1F4DpC803*
+ ID_SOFTWARE_RADIO=1
+
+# MyGica TD312 (FC0012)
+usb:v1F4DpD286*
+ ID_SOFTWARE_RADIO=1
+
+# PROlectrix DV107669 (FC0012)
+usb:v1F4DpD803*
+ ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,36 @@
From 358e85bf3197281a756054ae748f240f42a98068 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Sat, 24 May 2025 00:13:02 +0900
Subject: [PATCH] hwdb: merge entries for Ettus Research B200
Follow-up for 9dad00ef94e6207642f04496c56a4123a396530c.
(cherry picked from commit c2fcfda20f2336bcb9bd2cc01938f9211f3c9a29)
Resolves: RHEL-72701
---
hwdb.d/70-software-radio.hwdb | 8 --------
1 file changed, 8 deletions(-)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 74510bc4ee..b005309101 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -61,17 +61,9 @@ usb:v2500p0002*
# B200
usb:v2500p0020*
- ID_SOFTWARE_RADIO=1
-
usb:v2500p0021*
- ID_SOFTWARE_RADIO=1
-
usb:v2500p0022*
- ID_SOFTWARE_RADIO=1
-
usb:v3923p7813*
- ID_SOFTWARE_RADIO=1
-
usb:v3923p7814*
ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,86 @@
From e893739032fe4422b039ce4ce697ca4c0a17b5c9 Mon Sep 17 00:00:00 2001
From: tuxmainy <magic-github@damage.devloop.de>
Date: Mon, 26 May 2025 20:50:04 +0000
Subject: [PATCH] hwdb: make Saitek PLC Pro Flight Rudder Pedals a joystick
(#37601)
Fuzzy logic on joystick vs. advanced keyboard detection thinks the
rudders are a keyboard. Adding this forces udev to use this device as
joystick.
```
P: /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:06A3:0763.000D/input/input22/event3
M: event3
R: 3
U: input
D: c 13:67
N: input/event3
L: 0
S: input/by-id/usb-Saitek_Saitek_Pro_Flight_Rudder_Pedals-event-joystick
S: input/by-path/pci-0000:00:14.0-usbv2-0:3:1.0-event-joystick
S: input/by-path/pci-0000:00:14.0-usb-0:3:1.0-event-joystick
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:06A3:0763.000D/input/input22/event3
E: DEVNAME=/dev/input/event3
E: MAJOR=13
E: MINOR=67
E: SUBSYSTEM=input
E: USEC_INITIALIZED=10981053700
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_BUS=usb
E: ID_MODEL=Saitek_Pro_Flight_Rudder_Pedals
E: ID_MODEL_ENC=Saitek\x20Pro\x20Flight\x20Rudder\x20Pedals
E: ID_MODEL_ID=0763
E: ID_SERIAL=Saitek_Saitek_Pro_Flight_Rudder_Pedals
E: ID_VENDOR=Saitek
E: ID_VENDOR_ENC=Saitek
E: ID_VENDOR_ID=06a3
E: ID_REVISION=0101
E: ID_TYPE=hid
E: ID_USB_MODEL=Saitek_Pro_Flight_Rudder_Pedals
E: ID_USB_MODEL_ENC=Saitek\x20Pro\x20Flight\x20Rudder\x20Pedals
E: ID_USB_MODEL_ID=0763
E: ID_USB_SERIAL=Saitek_Saitek_Pro_Flight_Rudder_Pedals
E: ID_USB_VENDOR=Saitek
E: ID_USB_VENDOR_ENC=Saitek
E: ID_USB_VENDOR_ID=06a3
E: ID_USB_REVISION=0101
E: ID_USB_TYPE=hid
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH_WITH_USB_REVISION=pci-0000:00:14.0-usbv2-0:3:1.0
E: ID_PATH=pci-0000:00:14.0-usb-0:3:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_1_0
E: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_3_1_0
E: LIBINPUT_DEVICE_GROUP=3/6a3/763:usb-0000:00:14.0-3
E: DEVLINKS=/dev/input/by-id/usb-Saitek_Saitek_Pro_Flight_Rudder_Pedals-event-joystick /dev/input/by-path/pci-0000:00:14.0-usbv2-0:3:1.0-event-joystick /dev/input/by-path/pci-0000:00:14.>
E: TAGS=:seat:uaccess:
E: CURRENT_TAGS=:seat:uaccess:
```
```
Bus 001 Device 013: ID 06a3:0763 Saitek PLC Pro Flight Rudder Pedals
```
Closes #34642.
(cherry picked from commit 554d5882b7eb9b6e3a9a918513c6c2c59617f5cd)
Resolves: RHEL-72701
---
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 88fec6e043..6730ac9efa 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -102,3 +102,7 @@ id-input:modalias:input:b0003v26CEp01A2*
ID_INPUT_JOYSTICK=
ID_INPUT_KEY=
ID_INPUT=
+
+# Saitek PLC Pro Flight Rudder Pedals
+id-input:modalias:input:b0003v06A3p0763*
+ ID_INPUT_JOYSTICK=1

View File

@ -0,0 +1,33 @@
From 4f4bf0b3e917c2463999f42acfe86c08e0886941 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Moczulski?= <Michalmoczulski1a@gmail.com>
Date: Mon, 2 Jun 2025 22:12:07 +0200
Subject: [PATCH] hwdb: fix touchpad for ASUS X1504ZA (#37696)
Added udev rule generated by `libinput measure fuzz --fuzz=8`, which
fixes my touchpad.
(cherry picked from commit f1851809516dc40497d22e658074992cfd28fccc)
Resolves: RHEL-72701
---
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 47f1c2d2d2..145b10e63a 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -219,6 +219,13 @@ evdev:name:ELAN1401:00 04F3:30DC Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnZenBook
EVDEV_ABS_35=:::8
EVDEV_ABS_36=:::8
+# ASUS X1504ZA
+evdev:name:ASUP1301:00 093A:2009 Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.*:pvr1.0*:
+ EVDEV_ABS_00=:::8
+ EVDEV_ABS_01=:::8
+ EVDEV_ABS_35=:::8
+ EVDEV_ABS_36=:::8
+
#########################################
# Avita
#########################################

View File

@ -0,0 +1,65 @@
From b938e57279bcb1d7c6bd6594160e40739ec4f6d9 Mon Sep 17 00:00:00 2001
From: tytan652 <tytan652@tytanium.xyz>
Date: Thu, 5 Jun 2025 11:26:58 +0200
Subject: [PATCH] hwdb: add support for Loupedeck devices
Razer has partnered with Loupedeck to develop some devices.
Add support for the following devices:
- Loupedeck CT
- Loupedeck Live
- Loupedeck Live S
- Razer Stream Controller
- Razer Stream Controller X
(cherry picked from commit 1c814f35000c239c6078c072eef02f2e1c82e5cc)
Resolves: RHEL-72701
---
hwdb.d/70-av-production.hwdb | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index fee74729c4..e423bd600e 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -121,6 +121,21 @@ usb:v06F8pB107*
usb:v0C26p001E*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# Loupedeck
+####################
+# CT
+usb:v2EC2p0003*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Live
+usb:v2EC2p0004*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Live S
+usb:v2EC2p0006*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
#####################
# Native Instruments
#####################
@@ -200,6 +215,17 @@ usb:v17CCp1130*
usb:v2B73p0005*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# Razer
+####################
+# Stream Controller
+usb:v1532p0D06*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Stream Controller X
+usb:v1532p0D09*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
####################
# SunSDR
####################

View File

@ -0,0 +1,27 @@
From 0abb3e28097dcbab1cd776085146a3df00486f87 Mon Sep 17 00:00:00 2001
From: SoloSaravanan <SoloSaravanan@proton.me>
Date: Thu, 5 Jun 2025 18:36:23 +0530
Subject: [PATCH] hwdb: Acer Nitro ANV15-51 Mic Toggle
(cherry picked from commit 4344ef73a03415a9e4e1866e05039804971b1358)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 0ed4478399..22772e7bfa 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -240,6 +240,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
KEYBOARD_KEY_8a=micmute # Microphone mute button
KEYBOARD_KEY_55=power
+# Nitro ANV15-51
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
+ KEYBOARD_KEY_66=micmute # Microphone mute button
+
###########################################################
# Alienware
###########################################################

View File

@ -0,0 +1,67 @@
From 8a4ae2c9d1f7f651d553f8e65b7ad5cacbd931d1 Mon Sep 17 00:00:00 2001
From: Craig McLure <craig@mclure.net>
Date: Tue, 10 Jun 2025 05:52:18 +0100
Subject: [PATCH] hwdb: Added Beacn and TC-Helicon Audio controllers (#37798)
This adds the TC-Helicon and Beacn audio devices as AV production hardware,
so that user-space can communicate with them and monitor their inputs.
(cherry picked from commit 89c8d8bdd1aacf8a65571749c1410d1a9218d1db)
Resolves: RHEL-72701
---
hwdb.d/70-av-production.hwdb | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index e423bd600e..aa23af6add 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -30,6 +30,29 @@
usb:v2982p1967*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# Beacn
+####################
+# Beacn Mic
+usb:v33AEp0001*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Studio
+usb:v33AEp0003*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Studio (PC2 Port)
+usb:v33AEp4003*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Mix
+usb:v33AEp0004*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Mix Create
+usb:v33AEp0007*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
################
# Contour
################
@@ -233,6 +256,17 @@ usb:v1532p0D09*
usb:v1FC9p0003*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# TC-Helicon
+####################
+# GoXLR
+usb:v1220p8FE4*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# GoXLR Mini
+usb:v1220p8FE0*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
####################
# Xencelabs
####################

View File

@ -0,0 +1,26 @@
From be33eaca1c3803b0312cd0b878af89fdfe04cd00 Mon Sep 17 00:00:00 2001
From: Oliver Schramm <oliver.schramm97@gmail.com>
Date: Sun, 22 Jun 2025 13:51:51 +0200
Subject: [PATCH] hwdb: Add support for Lenovo IdeaPad Slim 5 series
Signed-off-by: Oliver Schramm <oliver.schramm97@gmail.com>
(cherry picked from commit 16fe095178230ff276ac44958d7295d73eb35652)
Resolves: RHEL-72701
---
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 22772e7bfa..5882ffd9e3 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1115,6 +1115,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
# Lenovo IdeaPad Flex 5
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:*:pvrIdeaPadFlex5*
+# Lenovo IdeaPad Slim 5
+evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:*:pvrIdeaPadSlim5*
# Lenovo Yoga S940 (9th gen)
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn81Q7*:pvrLenovoYogaS940:*
# Lenovo ThinkBook 16G6IRL

View File

@ -0,0 +1,113 @@
From 40246eefdcebe55464aebc2e47250416ec730360 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Sat, 21 Jun 2025 20:01:18 +0200
Subject: [PATCH] hwdb: Add hwbd definitions for maker tools
As originally added back in 2016 in 68ea57b21d4d ("Added support
for 3D printers to uaccess (ID_MAKER_TOOL)").
The first devices added would be 3D printers compatible with Flashprint
from Flashforge, as listed in this connector plugin:
https://github.com/Mrnt/OctoPrint-FlashForge/blob/master/octoprint_flashforge/__init__.py#L28
See https://github.com/flathub/com.flashforge.FlashPrint/issues/59
(cherry picked from commit 3dcb56f5e0fe4d937a003bf89496a27b52c5c69e)
Resolves: RHEL-72701
---
hwdb.d/70-maker-tools.hwdb | 72 ++++++++++++++++++++++++++++++++++++++
hwdb.d/parse_hwdb.py | 1 +
2 files changed, 73 insertions(+)
create mode 100644 hwdb.d/70-maker-tools.hwdb
diff --git a/hwdb.d/70-maker-tools.hwdb b/hwdb.d/70-maker-tools.hwdb
new file mode 100644
index 0000000000..acbd61de02
--- /dev/null
+++ b/hwdb.d/70-maker-tools.hwdb
@@ -0,0 +1,72 @@
+# This file is part of systemd.
+#
+# Database for maker tools, like CNCs, laser cutters, 3D printers,
+# or any other so called "maker tools" and and that should be
+# accessible to the seat owner.
+#
+# Permitted keys:
+# Specify if a device is a maker tool
+# ID_MAKER_TOOL=1|0
+
+###########################################################
+# Dremel
+###########################################################
+# Dremel IdeaBuilder 3D20
+usb:v2A89p8889*
+ ID_MAKER_TOOL=1
+
+# Dremel IdeaBuilder 3D45
+usb:v2A89p888D*
+ ID_MAKER_TOOL=1
+
+###########################################################
+# Flashforge
+###########################################################
+# Flashforge Dreamer
+usb:v2B71p0001*
+ ID_MAKER_TOOL=1
+
+# Flashforge Finder v1
+usb:v2B71p0002*
+ ID_MAKER_TOOL=1
+
+# Flashforge Guider II
+usb:v2B71p0004*
+ ID_MAKER_TOOL=1
+
+# Flashforge Inventor
+usb:v2B71p0005*
+ ID_MAKER_TOOL=1
+
+# Flashforge Finder v2
+usb:v2B71p0007*
+ ID_MAKER_TOOL=1
+
+# Flashforge Guider IIs
+usb:v2B71p0009*
+ ID_MAKER_TOOL=1
+
+# Flashforge Dreamer NX
+usb:v2B71p000A*
+ ID_MAKER_TOOL=1
+
+# Flashforge Creator Max
+usb:v2B71p00E7*
+ ID_MAKER_TOOL=1
+
+# Flashforge Finder v2.12
+usb:v2B71p00EE*
+ ID_MAKER_TOOL=1
+
+# FlashForge Creator Pro 2
+usb:v2B71p000E*
+ ID_MAKER_TOOL=1
+
+###########################################################
+# PowerSpec
+###########################################################
+# PowerSpec Ultra 3DPrinter
+usb:v0315p0001*
+usb:v2B71p00F6*
+usb:v2B71p00FF
+ ID_MAKER_TOOL=1
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 60022e3095..9a599e735c 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -176,6 +176,7 @@ def property_grammar():
('ID_INPUT_TOUCHSCREEN', id_input_setting),
('ID_INPUT_TRACKBALL', id_input_setting),
('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
+ ('ID_MAKER_TOOL', Or((Literal('0'), Literal('1')))),
('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
('ID_MM_DEVICE_IGNORE', Or((Literal('0'), Literal('1')))),

View File

@ -0,0 +1,32 @@
From 99385284bc2e06a595028ae2a258e61db5783253 Mon Sep 17 00:00:00 2001
From: Andy Shevchenko <andy.shevchenko@gmail.com>
Date: Fri, 27 Jun 2025 01:08:45 +0300
Subject: [PATCH] hwdb: Add accel orientation quirk for the Microtech e-tab Pro
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
(cherry picked from commit 318c4f7b810e8271b9a418fba9a526ff28a942ca)
Resolves: RHEL-72701
---
hwdb.d/60-sensor.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index b25dda8959..8f6afb88bc 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -866,6 +866,14 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:rvnMETAPHYUNI:rnMetawillBook01:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
ACCEL_LOCATION=display
+#########################################
+# Microtech
+#########################################
+
+# Microtech e-tab Pro
+sensor:modalias:acpi:KIOX000A*:dmi:*:svnMicrotech:pne-tabPro:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+
#########################################
# MPMAN
#########################################

View File

@ -0,0 +1,26 @@
From fec6c6f13c3bfad1b8d04df08717ba5bf6dd98fc Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Sat, 5 Jul 2025 23:32:09 +0200
Subject: [PATCH] hwdb: add 70-maker-tools.hwdb to meson.build
The hwdb file was not added there in 3dcb56f5e0fe4d937a003bf89496a27b52c5c69e for some reason
(cherry picked from commit cdbc500faa7cc95eee4c7ac5344127c5e1709e71)
Resolves: RHEL-72701
---
hwdb.d/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index 5498d486dd..d8a2fd9ea4 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -31,6 +31,7 @@ hwdb_files_test = files(
'70-cameras.hwdb',
'70-hardware-wallets.hwdb',
'70-joystick.hwdb',
+ '70-maker-tools.hwdb',
'70-mouse.hwdb',
'70-pda.hwdb',
'70-pointingstick.hwdb',

View File

@ -0,0 +1,23 @@
From 60d36bafa478bdd97f2bb6c39e398c597cbefa31 Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Sat, 5 Jul 2025 23:44:08 +0200
Subject: [PATCH] hwdb: fix typo in 70-maker-tools.hwdb
(cherry picked from commit 225de2729da2b51531083fa0f88351b192db7b23)
Resolves: RHEL-72701
---
hwdb.d/70-maker-tools.hwdb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hwdb.d/70-maker-tools.hwdb b/hwdb.d/70-maker-tools.hwdb
index acbd61de02..86b738bfaa 100644
--- a/hwdb.d/70-maker-tools.hwdb
+++ b/hwdb.d/70-maker-tools.hwdb
@@ -68,5 +68,5 @@ usb:v2B71p000E*
# PowerSpec Ultra 3DPrinter
usb:v0315p0001*
usb:v2B71p00F6*
-usb:v2B71p00FF
+usb:v2B71p00FF*
ID_MAKER_TOOL=1

21435
0426-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
From 4fa518dc1f4edb9f81b9bc9ef41f7a421119d800 Mon Sep 17 00:00:00 2001
From: luc-salles <lucasadrianosalles4@hotmail.com>
Date: Wed, 23 Jul 2025 11:30:26 -0400
Subject: [PATCH] Fix Positivo K116J search key and www shortcut
(cherry picked from commit 53b1d3fd48586e0a6129a08729da2e7b81986f06)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 5882ffd9e3..6955e56381 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2287,6 +2287,11 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
KEYBOARD_KEY_7006d=prog3 # Programmable button
KEYBOARD_KEY_7006e=prog4 # Programmable button
+# Positivo (K116J)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnK116J*
+ KEYBOARD_KEY_69=www
+ KEYBOARD_KEY_6e=search
+
###########################################################
# Multilaser
###########################################################

View File

@ -0,0 +1,29 @@
From b24a4a2a8d909c8f814bdcd3517c2927cdddf79e Mon Sep 17 00:00:00 2001
From: SoloSaravanan <SoloSaravanan@proton.me>
Date: Wed, 30 Jul 2025 10:37:56 +0530
Subject: [PATCH] hwdb: Acer Nitro ANV15-51 Nitro Sense Toggle
This fixes Acer Nitro ANV15-51 Nitro sense toggle
Event: time 1753852156.475850, -------------- SYN_REPORT ------------
Event: time 1753852156.565054, type 4 (EV_MSC), code 4 (MSC_SCAN), value f5
Event: time 1753852156.565054, type 1 (EV_KEY), code 148 (KEY_PROG1), value 0
(cherry picked from commit 2c1881f42cbe4bed7b02749dfff7f9f58f507f00)
Resolves: RHEL-72701
---
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 6955e56381..b48b001917 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -243,6 +243,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Nitro ANV15-51
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
KEYBOARD_KEY_66=micmute # Microphone mute button
+ KEYBOARD_KEY_f5=prog1 # NitroSense button
###########################################################
# Alienware

View File

@ -0,0 +1,267 @@
From 60e1de1a06a7472b89aee500d933df151f6767c5 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 1 Aug 2025 05:08:06 +0900
Subject: [PATCH] hwdb: several cleanups
- drop trailing spaces,
- replace tabs with spaces,
- align comments.
(cherry picked from commit c574e32fb9498179b4d164a3152cc3ba36812df2)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 100 ++++++++++++++++++++--------------------
hwdb.d/60-sensor.hwdb | 8 ++--
2 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index b48b001917..0ac71d64f7 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -155,8 +155,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspireA317-33:*
# Acer Aspire One AO532h
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO532h:*
KEYBOARD_KEY_84=bluetooth
- KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
- KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
# Acer Aspire One AOD270 (Atom N2600) and its Packard Bell Dot SC rebrand
evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
@@ -165,8 +165,8 @@ evdev:name:Acer WMI hotkeys:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
evdev:atkbd:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01_CT:*
- KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
- KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
# Predator PT314-52s
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PT314-52s:pvr*
@@ -243,7 +243,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Nitro ANV15-51
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
KEYBOARD_KEY_66=micmute # Microphone mute button
- KEYBOARD_KEY_f5=prog1 # NitroSense button
+ KEYBOARD_KEY_f5=prog1 # NitroSense button
###########################################################
# Alienware
@@ -304,10 +304,10 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:100003:dmi:*:svnASUSTeKCOMPUTERINC
# All four of these buttons generate a multi-scancode sequence
# consisting of Left_Meta, Right_Ctrl and another scancode.
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAYANEO:pnKUN:pvr*
- KEYBOARD_KEY_18=f15 # LC (next to the left shoulder button)
- KEYBOARD_KEY_20=f16 # RC (next to the right shoulder button)
- KEYBOARD_KEY_28=f17 # Ayaneo (lower-right corner of screen)
- KEYBOARD_KEY_30=f18 # Touchpad Mode (top-right corner of screen)
+ KEYBOARD_KEY_18=f15 # LC (next to the left shoulder button)
+ KEYBOARD_KEY_20=f16 # RC (next to the right shoulder button)
+ KEYBOARD_KEY_28=f17 # Ayaneo (lower-right corner of screen)
+ KEYBOARD_KEY_30=f18 # Touchpad Mode (top-right corner of screen)
# Most AYANEO devices expose an AT Translated Set 2 Keyboard
# for either three or four additional buttons not available
@@ -316,10 +316,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAYANEO:pnKUN:pvr*
# depend on the model, but the final scancode is always the
# same.
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYANEO:*
- KEYBOARD_KEY_66=f15 # LC (All models)
- KEYBOARD_KEY_67=f16 # RC (All models)
- KEYBOARD_KEY_68=f17 # Ayaneo (All models)
- KEYBOARD_KEY_69=f18 # Touchpad Mode (Kun only)
+ KEYBOARD_KEY_66=f15 # LC (All models)
+ KEYBOARD_KEY_67=f16 # RC (All models)
+ KEYBOARD_KEY_68=f17 # Ayaneo (All models)
+ KEYBOARD_KEY_69=f18 # Touchpad Mode (Kun only)
###########################################################
# BenQ
@@ -433,10 +433,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:*
# Dell Inspiron 11 3168
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron11-3168:pvr*
- KEYBOARD_KEY_c7=!home # Fn-LeftArrow
- KEYBOARD_KEY_cf=!end # Fn-RightArrow
- KEYBOARD_KEY_c9=!pageup # Fn-UpArrow
- KEYBOARD_KEY_d1=!pagedown # Fn-DownArrow
+ KEYBOARD_KEY_c7=!home # Fn-LeftArrow
+ KEYBOARD_KEY_cf=!end # Fn-RightArrow
+ KEYBOARD_KEY_c9=!pageup # Fn-UpArrow
+ KEYBOARD_KEY_d1=!pagedown # Fn-DownArrow
# Dell Inspiron 1520 and Latitude 2110
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:*
@@ -505,7 +505,7 @@ evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
# Dell Professional Sound Bar AE515
evdev:input:b0003v413CpA506*
- KEYBOARD_KEY_b002f=micmute # Mic mute toggle
+ KEYBOARD_KEY_b002f=micmute # Mic mute toggle
###########################################################
# Everex
@@ -704,10 +704,10 @@ evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx3602-in-1*:*
# HP Elite x2 1013 G3
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
- KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
+ KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
KEYBOARD_KEY_64=calendar
- KEYBOARD_KEY_81=micmute # Microphone mute button
- KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
+ KEYBOARD_KEY_81=micmute # Microphone mute button
+ KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
KEYBOARD_KEY_92=brightnessdown
KEYBOARD_KEY_97=brightnessup
@@ -742,14 +742,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook2170p:*
evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHP*:pn*EliteBook2170p:*
KEYBOARD_KEY_66=backspace
- KEYBOARD_KEY_be=battery # Fn+F2
- KEYBOARD_KEY_d7=switchvideomode # Fn+F4
- KEYBOARD_KEY_a3=mute # Fn+F5
- KEYBOARD_KEY_a1=volumedown # Fn+F6
- KEYBOARD_KEY_a2=volumeup # Fn+F7
- KEYBOARD_KEY_a4=brightnessdown # Fn+F9
- KEYBOARD_KEY_c3=brightnessup # Fn+F10
- KEYBOARD_KEY_e3=wlan # Fn+F12
+ KEYBOARD_KEY_be=battery # Fn+F2
+ KEYBOARD_KEY_d7=switchvideomode # Fn+F4
+ KEYBOARD_KEY_a3=mute # Fn+F5
+ KEYBOARD_KEY_a1=volumedown # Fn+F6
+ KEYBOARD_KEY_a2=volumeup # Fn+F7
+ KEYBOARD_KEY_a4=brightnessdown # Fn+F9
+ KEYBOARD_KEY_c3=brightnessup # Fn+F10
+ KEYBOARD_KEY_e3=wlan # Fn+F12
# Elitebook 2760p
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
@@ -1127,8 +1127,8 @@ evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn21KH*:pvrThinkBook16G6IRL:*
KEYBOARD_KEY_b0=!volumeup
evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
- KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
- KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
+ KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
+ KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
# Lenovo Y50-70
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr*
@@ -1274,10 +1274,10 @@ evdev:input:b0003v046Dp0056*
evdev:input:b0003v046Dp0057*
KEYBOARD_KEY_c1041=battery # Battery icon (Fn + F1)
-#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
-#KEYBOARD_KEY_c101e=scrollup # Button above scrollwheel (see note above)
-#KEYBOARD_KEY_c1022=scrollleft # Left click on scroll-wheel (see note above)
-#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
+#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
+#KEYBOARD_KEY_c101e=scrollup # Button above scrollwheel (see note above)
+#KEYBOARD_KEY_c1022=scrollleft # Left click on scroll-wheel (see note above)
+#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
# MX3200 keyboard (27 MHz, modelnumber Y-RAV80)
evdev:input:b0003v046Dp005C*
@@ -1802,7 +1802,7 @@ evdev:input:b0003v258Ap001E*
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*:rvnQuanta:rn30B7:rvr65.2B:*
- KEYBOARD_KEY_88=media # "quick play
+ KEYBOARD_KEY_88=media # quick play
###########################################################
# Redmi
@@ -1842,17 +1842,17 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*200E[45]*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*356V[45]*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*355V[45]*:pvr*
- KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch control setting
- KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
- KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
- KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
- KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
- KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
- KEYBOARD_KEY_a0=!mute # Fn+F6 mute
- KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
- KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
- KEYBOARD_KEY_b3=!prog2 # Fn+F11 toggle fan/cool mode
- KEYBOARD_KEY_d5=!wlan # Fn+F12 toggle wifi
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch control setting
+ KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
+ KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
+ KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
+ KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
+ KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
+ KEYBOARD_KEY_a0=!mute # Fn+F6 mute
+ KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
+ KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
+ KEYBOARD_KEY_b3=!prog2 # Fn+F11 toggle fan/cool mode
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 toggle wifi
# Series 5
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*530U*:*
@@ -2290,8 +2290,8 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
# Positivo (K116J)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnK116J*
- KEYBOARD_KEY_69=www
- KEYBOARD_KEY_6e=search
+ KEYBOARD_KEY_69=www
+ KEYBOARD_KEY_6e=search
###########################################################
# Multilaser
@@ -2332,7 +2332,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:*
# The layout must be an xkb compatible layout (defined with XKB_FIXED_LAYOUT),
# with an accompanying variant (defined with XKB_FIXED_VARIANT) if necessary.
-# Yubico Yubico Yubikey II"
+# Yubico Yubico Yubikey II
evdev:input:b0003v1050p0010*
# Yubico Yubikey NEO OTP+CCID
evdev:input:b0003v1050p0111*
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 8f6afb88bc..d242025bd2 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -157,7 +157,7 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA:*
# Asus Transformer Mini T103HAF
sensor:modalias:platform:HID-SENSOR-200073*:dmi:*svn*ASUSTeK*:pnT103HAF:*
- ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
+ ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnTP201SA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pn*E205SA:*
@@ -524,7 +524,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnEVE*:pnEveV:*
# Exo
#########################################
-# EXO Wings 2in1 w1125
+# EXO Wings 2in1 w1125
sensor:modalias:acpi:SMO8500*:dmi:*:svnEXO*:pnWings:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
@@ -654,7 +654,7 @@ sensor:modalias:acpi:SMO8840*:dmi:*:svnHUAWEI:pnBOHK-WAX9X:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.E.M.:pnTW891:pvrTobefilledbyO.E.M.:rvnTobefilledbyO.E.M.:rnTW891:rvr1.0:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
-# I.T.Works TW701 7" windows tablet, same hw as Trekstor ST70416-6
+# I.T.Works TW701 7 inch windows tablet, same hw as Trekstor ST70416-6
sensor:modalias:acpi:BMA250*:dmi:*:bvritWORKS.G.WI71C.JGBMRB*:*:svnInsyde:pni71c:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
@@ -908,7 +908,7 @@ sensor:modalias:acpi:KIOX010A*:dmi:*:svnCompletElectroServSA:pnMY8312:*
# Nuvision (TMax)
#########################################
-# Nuvision/TMAX 8" Windows signature edition. TM800W560L
+# Nuvision/TMAX 8 inch Windows signature edition. TM800W560L
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTMAX:pnTM800W560L:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

View File

@ -0,0 +1,46 @@
From 7f5bb484b24d2620e14839c67bd9b24d2e7d1c58 Mon Sep 17 00:00:00 2001
From: RocketDev <ma2014119@outlook.com>
Date: Fri, 1 Aug 2025 01:31:11 +0800
Subject: [PATCH] hwdb: disable Asus ROG keyboards sending poweroff
Asus ROG keyboards seems to send power off key code when keyboard wake
up. Reserve the key codes could suppress this problem.
Devices added: ROG Falchion & ROG Scope
Based on the work by Jon Nettleton:
https://gist.github.com/jnettlet/afb20a048b8720f3b4eb8506d8b05643
(cherry picked from commit 6428c0f48028e09bf5b750fb3fd1f4a3dac7e24e)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 0ac71d64f7..86535bc41b 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -285,6 +285,21 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
+# Asus ROG series
+# Prevents the keyboard from sending POWER and SLEEP key presses
+# when the keyboard goes to sleep.
+evdev:input:b*v0B05p*e0111*
+ KEYBOARD_KEY_10081=reserved
+ KEYBOARD_KEY_10082=reserved
+ KEYBOARD_KEY_70070=reserved
+ KEYBOARD_KEY_70071=reserved
+ KEYBOARD_KEY_70072=reserved
+ KEYBOARD_KEY_70073=reserved
+ KEYBOARD_KEY_70074=reserved
+ KEYBOARD_KEY_70075=reserved
+ KEYBOARD_KEY_70076=reserved
+ KEYBOARD_KEY_70077=reserved
+
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*

2782
0431-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
From a31ce4b63f452baca9a8ce39cb58a2b3db6e4ce4 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Mon, 4 Aug 2025 12:25:07 +0100
Subject: [PATCH] hwdb: update autosuspend rules
ninja -C build update-hwdb-autosuspend
(cherry picked from commit ff08fca8df34aa39c9c6641098110b00472af318)
Resolves: RHEL-72701
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index d5b7b01fbe..eb25c6bd1e 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -259,6 +259,8 @@ usb:v06CBp0104*
usb:v06CBp0106*
usb:v06CBp0107*
usb:v06CBp0108*
+usb:v06CBp0109*
+usb:v06CBp010A*
usb:v06CBp0123*
usb:v06CBp0124*
usb:v06CBp0126*
@@ -269,6 +271,7 @@ usb:v06CBp016C*
usb:v06CBp0173*
usb:v06CBp0174*
usb:v06CBp019D*
+usb:v06CBp019F*
ID_AUTOSUSPEND=1
ID_PERSIST=0

View File

@ -0,0 +1,24 @@
From 32e47d2f87868cd1cfc7b8ba7f93c4f11290fda8 Mon Sep 17 00:00:00 2001
From: novenary <novenary@kwak.zip>
Date: Wed, 6 Aug 2025 10:42:49 +0300
Subject: [PATCH] hwdb: set touchpad resolution for ThinkPad T14 Gen2a
(cherry picked from commit 98f5d7f33a10cf057bf9bb954975128cc20c5bbc)
Resolves: RHEL-72701
---
hwdb.d/60-evdev.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 145b10e63a..23caebe4b9 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -749,6 +749,7 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoU41-70:*
# Lenovo Thinkpad T490 and T14/P14s Gen1/2
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT490:*
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:*pvrThinkPadP14sGen1:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen2a:*
EVDEV_ABS_00=::44

View File

@ -0,0 +1,45 @@
From 05e9a11ae62168a8e3cc7cd3fe8531a4fff70197 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Thu, 7 Aug 2025 00:01:12 +0900
Subject: [PATCH] Revert "hwdb: disable Asus ROG keyboards sending poweroff"
This reverts commit 6428c0f48028e09bf5b750fb3fd1f4a3dac7e24e.
The rule seems to match not only keyboard itself but other devices.
Let's revert the change, and consider better way later.
Fixes #38502.
(cherry picked from commit 33275ce383745f0538a01adb2d13e080f0da5e8b)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 86535bc41b..0ac71d64f7 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -285,21 +285,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
-# Asus ROG series
-# Prevents the keyboard from sending POWER and SLEEP key presses
-# when the keyboard goes to sleep.
-evdev:input:b*v0B05p*e0111*
- KEYBOARD_KEY_10081=reserved
- KEYBOARD_KEY_10082=reserved
- KEYBOARD_KEY_70070=reserved
- KEYBOARD_KEY_70071=reserved
- KEYBOARD_KEY_70072=reserved
- KEYBOARD_KEY_70073=reserved
- KEYBOARD_KEY_70074=reserved
- KEYBOARD_KEY_70075=reserved
- KEYBOARD_KEY_70076=reserved
- KEYBOARD_KEY_70077=reserved
-
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*

View File

@ -0,0 +1,35 @@
From 6c4b4f7d494af02cc6446c72c1958f84e94df8bb Mon Sep 17 00:00:00 2001
From: Vasiliy Kovalev <kovalev@altlinux.org>
Date: Sun, 10 Aug 2025 10:24:19 +0300
Subject: [PATCH] hwdb: Add launch emoji keyboard mapping for Asus M1607KA
By default, pressing Fn+F8 maps the scancode to KEY_BLUETOOTH (in evtest,
MSC_SCAN 7e -> KEY_BLUETOOTH). Windows/the manufacturer may intercept the
same scancode to execute "Launch Emoji keyboard."
On Linux, we get the "raw" KEY_BLUETOOTH code, which is unacceptable.
prog1 is already reserved by default for launching MyAsus (a Windows
application) with the Fn+F12 combination, so we will use prog2.
Signed-off-by: Vasiliy Kovalev <kovalev@altlinux.org>
(cherry picked from commit 8557ea5daa1205489e77467f6acdad47b9338c28)
Resolves: RHEL-72701
---
hwdb.d/60-keyboard.hwdb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 0ac71d64f7..3a2add4486 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -285,6 +285,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
+evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*M1607KA*:*
+ KEYBOARD_KEY_7e=prog2 # Fn+F8, launch emoji keyboard
+
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*

View File

@ -0,0 +1,39 @@
From b6469c6e10fec5b31e27ddd37318e26bf146f993 Mon Sep 17 00:00:00 2001
From: Marcos Alano <marcoshalano@gmail.com>
Date: Sat, 9 Aug 2025 07:52:27 -0300
Subject: [PATCH] Enable KEY_PERFORMANCE key present on Linux 6.17
Note, this change does not require the kernel running on the host is
equal or newer than 6.17. But systemd-udevd needs to be built with the
kernel headers with KEY_PERFORMANCE, and the relevant kernel header is
already updated by the previous commit.
(cherry picked from commit d5f65056ee5dea588c168ce64c0dbbc0344d60c8)
Resolves: RHEL-72701
---
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 3a2add4486..465d527817 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -251,7 +251,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
# Alienware/Dell reserves these keys; safe to apply on all their devices
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
- KEYBOARD_KEY_68=!prog3 # Fn+f1 Performance mode toggle
+ KEYBOARD_KEY_68=!performance # Fn+f1 Performance mode toggle
KEYBOARD_KEY_81=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_8a=ejectcd
KEYBOARD_KEY_92=macro1 # Fn+f2
@@ -396,7 +396,7 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-T
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
- KEYBOARD_KEY_68=!prog2 # G-Mode (Dell-specific)
+ KEYBOARD_KEY_68=!performance # G-Mode (Dell-specific)
KEYBOARD_KEY_81=playpause # Play/Pause
KEYBOARD_KEY_82=stopcd # Stop
KEYBOARD_KEY_83=previoussong # Previous song

View File

@ -0,0 +1,27 @@
From 93ad1b9d0ad9b9bde311da7ffb73c7dfa47d4ec4 Mon Sep 17 00:00:00 2001
From: madroach <christopher@gmerlin.de>
Date: Mon, 5 May 2025 14:34:33 +0200
Subject: [PATCH] hwdb: add HP 150 Wired Mouse (#37341)
(cherry picked from commit a2bd93c2e8a2fb00d50be0da17876bcb2271cdfb)
Resolves: RHEL-72701
---
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 6e2a588a5d..d054aeffe6 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -329,6 +329,10 @@ mouse:usb:v093ap2510:name:PIXART USB OPTICAL MOUSE:*
mouse:usb:v03f0p0641:name:PixArt HP X1200 USB Optical Mouse:*
MOUSE_DPI=1100@125
+# HP 150 Wired Mouse
+mouse:usb:v03f0p6a41:name:PixArt HP USB Optical Mouse:
+ MOUSE_DPI=1700@132
+
##########################################
# IBM
##########################################

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: 11%{?dist}.alma.1
Release: 12%{?dist}.alma.1
%global stable %(c="%version"; [ "$c" = "${c#*.*}" ]; echo $?)
@ -463,6 +463,90 @@ Patch0350: 0350-fuzz-journal-remote-use-ASSERT_OK-and-friends.patch
Patch0351: 0351-logs-show-skip-journal-entry-with-an-invalid-timesta.patch
Patch0352: 0352-man-mention-that-rhel-9.0-net-naming-scheme-is-the-s.patch
Patch0353: 0353-backlight-Drop-support-for-actual_brightness.patch
Patch0354: 0354-mkosi-use-C10S-repo-for-building-RPMs.patch
Patch0355: 0355-test-adapt-TEST-22-to-the-downstream-purge-behavior.patch
Patch0356: 0356-mkosi-reconfigure-the-CI-for-CentOS-Stream-10.patch
Patch0357: 0357-test-skip-tests-for-components-not-shipped-in-RHEL-1.patch
Patch0358: 0358-ci-add-a-unique-identifier-to-each-GH-Actions-job.patch
Patch0359: 0359-test-limit-logging-when-running-TEST-21-DFUZZER.patch
Patch0360: 0360-man-mention-RHEL-documentation-in-systemctl-s-man-pa.patch
Patch0361: 0361-ukify-switch-from-zstd-to-zstandard.patch
Patch0362: 0362-ukify-fix-zboot-parsing-with-zstd.patch
Patch0363: 0363-ukify-if-the-specified-kernel-is-not-a-valid-PE-file.patch
Patch0364: 0364-ukify-fix-version-detection-for-aarch64-zboot-kernel.patch
Patch0365: 0365-ukify-when-decompressing-kernel-before-signing-call-.patch
Patch0366: 0366-udev-net_id-introduce-naming-scheme-for-RHEL-10.1.patch
Patch0367: 0367-udev-net_id-introduce-naming-scheme-for-RHEL-9.7.patch
Patch0368: 0368-sd-event-drop-inotify-event-from-buffer-when-no-even.patch
Patch0369: 0369-test-add-test-case-for-issue-38265.patch
Patch0370: 0370-tree-wide-check-more-log-message-format-in-log_struc.patch
Patch0371: 0371-core-output-log-cycle-path-in-one-log-message-not-ma.patch
Patch0372: 0372-core-make-log-cycle-messages-recognizable-via-messag.patch
Patch0373: 0373-core-change-ordering-cycle-log-message-log-levels.patch
Patch0374: 0374-core-cast-log_oom-got-void.patch
Patch0375: 0375-core-when-removing-a-job-from-a-transaction-include-.patch
Patch0376: 0376-catalog-add-entries-for-the-order-cycle-log-messages.patch
Patch0377: 0377-flush_ports-flush-POSIX-message-queues-properly.patch
Patch0378: 0378-Add-entry-type-type1-type2-option-to-kernel-install.patch
Patch0379: 0379-kernel-install-regroup-options-in-help-meesage.patch
Patch0380: 0380-kernel-install-do-not-mix-and.patch
Patch0381: 0381-man-kernel-install-mention-entry-type-option-in-the-.patch
Patch0382: 0382-bootspec-rename-boot_entry_type_to_string-to-boot_en.patch
Patch0383: 0383-bootspec-include-UKI-in-descriptive-name-for-type-2.patch
Patch0384: 0384-bootspec-rename-BootEntryType-values.patch
Patch0385: 0385-bootspec-rename-boot_entry_source_to_string-to-boot_.patch
Patch0386: 0386-bootspec-boot_entry_source_to_json_string-to-boot_en.patch
Patch0387: 0387-90-uki-copy.install-Skip-removing-UKI-related-when-B.patch
Patch0388: 0388-hwdb-add-front-button-support-for-MSI-Claw-7-AI-A2VM.patch
Patch0389: 0389-hwdb-add-accel-orientation-and-location-for-the-BMAX.patch
Patch0390: 0390-hwdb.d-add-support-for-Akoya-P15645.patch
Patch0391: 0391-hwdb.d-add-ANP09-Intel-n100-tablet-sensor-configurat.patch
Patch0392: 0392-hwdb-add-axis-range-corrections-for-the-Lenovo-Yoga-.patch
Patch0393: 0393-hwdb-add-GOLD-WARRIOR-SIM-PhoenixRC-10411R.patch
Patch0394: 0394-hwdb-add-Code-Mercenaries-Hard-und-Software-GmbH-Vir.patch
Patch0395: 0395-hwdb-Add-accel-orientation-quirk-for-the-GPD-Pocket-.patch
Patch0396: 0396-hwdb-add-rotation-profile-matrix-for-Rog-Ally-X-2024.patch
Patch0397: 0397-hwdb-fix-backspace-not-working-on-HP-Pavilion-laptop.patch
Patch0398: 0398-hwdb-keyboard-Map-FN-key-on-TUXEDO-NB02-devices.patch
Patch0399: 0399-hwdb-keyboard-Map-FN-key-on-TUXEDO-InfinityFlex-14-G.patch
Patch0400: 0400-hwdb-add-G-Mode-key-support-37175.patch
Patch0401: 0401-Add-emulated-release-to-G-Mode-key.patch
Patch0402: 0402-hwdb-keyboard-Add-Alienware-special-keys.patch
Patch0403: 0403-hwdb-add-bladeRF-SDR-devices.patch
Patch0404: 0404-hwdb-append-ID_SOFTWARE_RADIO-to-hwdb-parser.patch
Patch0405: 0405-hwdb.d-reword-and-simplify-boilerplate-texts.patch
Patch0406: 0406-hwdb.d-update-expand-boilerplate-on-various-hwdb-fil.patch
Patch0407: 0407-hwdb-say-that-settings-can-be-also-set-to-0.patch
Patch0408: 0408-hwdb-add-Analog-Devices-PLUTO-SDR.patch
Patch0409: 0409-hwdb-append-ID_MM_DEVICE_IGNORE-to-hwdb-parser.patch
Patch0410: 0410-hwdb-run-update-hwdb.patch
Patch0411: 0411-hwdb-run-update-hwdb-autosuspend.patch
Patch0412: 0412-hwdb-add-missing-PLUTO-SDR-vendor-name.patch
Patch0413: 0413-hwdb-add-Ettus-Research-SDR-devices.patch
Patch0414: 0414-hwdb-add-RTL-SDR-devices.patch
Patch0415: 0415-hwdb-merge-entries-for-Ettus-Research-B200.patch
Patch0416: 0416-hwdb-make-Saitek-PLC-Pro-Flight-Rudder-Pedals-a-joys.patch
Patch0417: 0417-hwdb-fix-touchpad-for-ASUS-X1504ZA-37696.patch
Patch0418: 0418-hwdb-add-support-for-Loupedeck-devices.patch
Patch0419: 0419-hwdb-Acer-Nitro-ANV15-51-Mic-Toggle.patch
Patch0420: 0420-hwdb-Added-Beacn-and-TC-Helicon-Audio-controllers-37.patch
Patch0421: 0421-hwdb-Add-support-for-Lenovo-IdeaPad-Slim-5-series.patch
Patch0422: 0422-hwdb-Add-hwbd-definitions-for-maker-tools.patch
Patch0423: 0423-hwdb-Add-accel-orientation-quirk-for-the-Microtech-e.patch
Patch0424: 0424-hwdb-add-70-maker-tools.hwdb-to-meson.build.patch
Patch0425: 0425-hwdb-fix-typo-in-70-maker-tools.hwdb.patch
Patch0426: 0426-hwdb-update.patch
Patch0427: 0427-Fix-Positivo-K116J-search-key-and-www-shortcut.patch
Patch0428: 0428-hwdb-Acer-Nitro-ANV15-51-Nitro-Sense-Toggle.patch
Patch0429: 0429-hwdb-several-cleanups.patch
Patch0430: 0430-hwdb-disable-Asus-ROG-keyboards-sending-poweroff.patch
Patch0431: 0431-hwdb-update.patch
Patch0432: 0432-hwdb-update-autosuspend-rules.patch
Patch0433: 0433-hwdb-set-touchpad-resolution-for-ThinkPad-T14-Gen2a.patch
Patch0434: 0434-Revert-hwdb-disable-Asus-ROG-keyboards-sending-power.patch
Patch0435: 0435-hwdb-Add-launch-emoji-keyboard-mapping-for-Asus-M160.patch
Patch0436: 0436-Enable-KEY_PERFORMANCE-key-present-on-Linux-6.17.patch
Patch0437: 0437-hwdb-add-HP-150-Wired-Mouse-37341.patch
# Downstream-only patches (90009999)
%endif
@ -1409,9 +1493,95 @@ rm -f .file-list-*
rm -f %{name}.lang
%changelog
* Thu Apr 17 2025 Andrew Lukoshko <alukoshko@almalinux.org> - 257-11.alma.1
* Fri Aug 15 2025 Andrew Lukoshko <alukoshko@almalinux.org> - 257-12.alma.1
- Debrand for AlmaLinux
* Wed Aug 13 2025 systemd maintenance team <systemd-maint@redhat.com> - 257-12
- mkosi: use C10S repo for building RPMs (RHEL-79976)
- test: adapt TEST-22 to the downstream --purge behavior (RHEL-79976)
- mkosi: reconfigure the CI for CentOS Stream 10 (RHEL-79976)
- test: skip tests for components not shipped in RHEL 10 (RHEL-79976)
- ci: add a unique identifier to each GH Actions job (RHEL-79976)
- test: limit logging when running TEST-21-DFUZZER (RHEL-79976)
- man: mention RHEL documentation in systemctl's man page (RHEL-97762)
- ukify: switch from zstd to zstandard (RHEL-97625)
- ukify: fix zboot parsing with zstd (RHEL-97625)
- ukify: if the specified kernel is not a valid PE file try to decompress it (RHEL-97625)
- ukify: fix version detection for aarch64 zboot kernels with gzip or lzma compression (RHEL-97625)
- ukify: when decompressing kernel before signing, call verify on decompressed file (RHEL-97625)
- udev/net_id: introduce naming scheme for RHEL-10.1 (RHEL-44419)
- udev/net_id: introduce naming scheme for RHEL-9.7 (RHEL-44419)
- sd-event: drop inotify event from buffer when no event source is triggered (RHEL-104555)
- test: add test case for issue #38265 (RHEL-104555)
- tree-wide: check more log message format in log_struct() and friends (RHEL-106260)
- core: output log cycle path in one log message, not many (RHEL-106260)
- core: make log cycle messages recognizable via message IDs (RHEL-106260)
- core: change ordering cycle log message log levels (RHEL-106260)
- core: cast log_oom() got void (RHEL-106260)
- core: when removing a job from a transaction, include in structured log message which (RHEL-106260)
- catalog: add entries for the order cycle log messages (RHEL-106260)
- flush_ports: flush POSIX message queues properly (RHEL-100553)
- Add --entry-type=type1|type2 option to kernel-install. (RHEL-103354)
- kernel-install: regroup options in help meesage (RHEL-103354)
- kernel-install: do not mix || and && (RHEL-103354)
- man/kernel-install: mention --entry-type= option in the man page (RHEL-103354)
- bootspec: rename boot_entry_type_to_string() to boot_entry_type_description_to_string() (RHEL-103354)
- bootspec: include 'UKI' in descriptive name for type #2 (RHEL-103354)
- bootspec: rename BootEntryType values (RHEL-103354)
- bootspec: rename boot_entry_source_to_string() to boot_entry_source_description_to_string() (RHEL-103354)
- bootspec: boot_entry_source_to_json_string() to boot_entry_source_to_string() (RHEL-103354)
- 90-uki-copy.install: Skip removing UKI related when BOOT_ENTRY_TYPE=type1 (RHEL-103354)
- hwdb: add front button support for MSI Claw 7 AI+ A2VM (RHEL-72701)
- hwdb: add accel orientation and location for the BMAX Y14 (RHEL-72701)
- hwdb.d: add support for Akoya P15645 (RHEL-72701)
- hwdb.d: add ANP09 Intel n100 tablet sensor configuration (#36390) (RHEL-72701)
- hwdb: add axis range corrections for the Lenovo Yoga Slim 7 14ARE05 (RHEL-72701)
- hwdb: add GOLD WARRIOR SIM PhoenixRC 10411R (RHEL-72701)
- hwdb: add Code Mercenaries Hard- und Software GmbH Virtual RC USB (RHEL-72701)
- hwdb: Add accel orientation quirk for the GPD Pocket 4 (RHEL-72701)
- hwdb: add rotation profile matrix for Rog Ally X (2024) (#36591) (RHEL-72701)
- hwdb: fix backspace not working on HP Pavilion laptop (#36777) (RHEL-72701)
- hwdb/keyboard: Map FN key on TUXEDO NB02 devices (RHEL-72701)
- hwdb/keyboard: Map FN key on TUXEDO InfinityFlex 14 Gen1 (RHEL-72701)
- hwdb: add G-Mode key support (#37175) (RHEL-72701)
- Add emulated release to G-Mode key (RHEL-72701)
- hwdb: keyboard: Add Alienware special keys (RHEL-72701)
- hwdb: add bladeRF SDR devices (RHEL-72701)
- hwdb: append ID_SOFTWARE_RADIO to hwdb parser (RHEL-72701)
- hwdb.d: reword and simplify boilerplate texts (RHEL-72701)
- hwdb.d: update/expand boilerplate on various hwdb files (RHEL-72701)
- hwdb: say that settings can be also set to 0 (RHEL-72701)
- hwdb: add Analog Devices PLUTO SDR (RHEL-72701)
- hwdb: append ID_MM_DEVICE_IGNORE to hwdb parser (RHEL-72701)
- hwdb: run "update-hwdb" (RHEL-72701)
- hwdb: run "update-hwdb-autosuspend" (RHEL-72701)
- hwdb: add missing PLUTO SDR vendor name (RHEL-72701)
- hwdb: add Ettus Research SDR devices (RHEL-72701)
- hwdb: add RTL-SDR devices (RHEL-72701)
- hwdb: merge entries for Ettus Research B200 (RHEL-72701)
- hwdb: make Saitek PLC Pro Flight Rudder Pedals a joystick (#37601) (RHEL-72701)
- hwdb: fix touchpad for ASUS X1504ZA (#37696) (RHEL-72701)
- hwdb: add support for Loupedeck devices (RHEL-72701)
- hwdb: Acer Nitro ANV15-51 Mic Toggle (RHEL-72701)
- hwdb: Added Beacn and TC-Helicon Audio controllers (#37798) (RHEL-72701)
- hwdb: Add support for Lenovo IdeaPad Slim 5 series (RHEL-72701)
- hwdb: Add hwbd definitions for maker tools (RHEL-72701)
- hwdb: Add accel orientation quirk for the Microtech e-tab Pro (RHEL-72701)
- hwdb: add 70-maker-tools.hwdb to meson.build (RHEL-72701)
- hwdb: fix typo in 70-maker-tools.hwdb (RHEL-72701)
- hwdb: update (RHEL-72701)
- Fix Positivo K116J search key and www shortcut (RHEL-72701)
- hwdb: Acer Nitro ANV15-51 Nitro Sense Toggle (RHEL-72701)
- hwdb: several cleanups (RHEL-72701)
- hwdb: disable Asus ROG keyboards sending poweroff (RHEL-72701)
- hwdb: update (RHEL-72701)
- hwdb: update autosuspend rules (RHEL-72701)
- hwdb: set touchpad resolution for ThinkPad T14 Gen2a (RHEL-72701)
- Revert "hwdb: disable Asus ROG keyboards sending poweroff" (RHEL-72701)
- hwdb: Add launch emoji keyboard mapping for Asus M1607KA (RHEL-72701)
- Enable KEY_PERFORMANCE key present on Linux 6.17 (RHEL-72701)
- hwdb: add HP 150 Wired Mouse (#37341) (RHEL-72701)
* Tue Apr 15 2025 systemd maintenance team <systemd-maint@redhat.com> - 257-11
- fuzz-journal-remote: use ASSERT_OK() and friends (RHEL-79976)
- logs-show: skip journal entry with an invalid timestamp (RHEL-79976)