1
0
mirror of https://github.com/systemd/systemd synced 2025-10-03 18:54:45 +02:00

Compare commits

...

156 Commits

Author SHA1 Message Date
Yu Watanabe
41c14f9d43 udev/spawn: continue to read stdout even if the result buffer is full
Previously, when the stdout of a spawned process (e.g. dmi_memory_id) is
truncated, the event source was not re-enabled, that will cause the process
to remain in a write-blocked state if the stdout buffer is full, and the
process will time out:
```
Spawned process 'dmi_memory_id' [1116] timed out after 2min 59s, killing.
Process 'dmi_memory_id' terminated by signal KILL.
```

The solution is to continue enabling the event source so that on_spawn_io()
can continue reading the stdout buffer. When the result buffer is full, the
local `buf` variable will be used to drain remaining stdout.

Co-authored-by: Deli Zhang <deli.zhang@cloud.com>
(cherry picked from commit 406d8cb029db9801585e6779e9cefc29bf4b79e4)
2025-08-05 12:18:43 +01:00
Luca Boccassi
fdf432a3e2 hwdb: update to main@{2025-08-04}
git restore -s origin/main hwdb.d/ test/hwdb.d
git checkout hwdb.d/meson.build
2025-08-04 19:52:06 +01:00
Daan De Meyer
8b53006a2f test: Fix typing error in integration-test-wrapper.py
(cherry picked from commit beecd4e3446c1159d85e148f12e1a58f6878c4f2)
2025-08-04 19:52:06 +01:00
Lennart Poettering
404e780e43 journal-file: let's make journal_file_copy_entry() robust against concurrent writing of the source
As usual, we need to protect ourselves against concurrent modification
of journal files. We a pretty good at that these days when reading
journal files. But journal_file_copy_entry() so far wasn't too good with
that. journal_file_append_data() so far returned EINVAL when you pass
invalid data to it. Since we pass the source data as-is in there, it's
going to fail if the journal source file is slightly invalid due to a
concurrent update.

Hence, we need to validate data gracefully here that we think comes from
a safe place, because actually it doesn't, it's directly copied from an
unsafe journal file.

Hence, let's introduce a clear error code here, and look for it in
journal_file_copy_entry(), and handle it gracefully.

Pretty sure this fixes #33372, but it's a race, so I don't know for
sure. If this remains reproducible we need to look at this again.

Fixes: #33372
(cherry picked from commit 9151a60a4e0c36bcf06463a78ad3e81b9bcbf47c)
2025-08-04 19:50:36 +01:00
Lennart Poettering
758ece3aaf compress: get rid of a bunch of 'else'
(cherry picked from commit e74c1e1cac587fb5832ab46d709913c0f3792ff0)
2025-08-04 19:50:36 +01:00
Lennart Poettering
2da9cc0d13 journal: replace a bunch of assert() with friendlier checks
We should not rely that data stored in the journal files remains
entirely untouched at all times. Because we unallocate files, data might
go away any time. Hence, never assert() on any expectations on what the
file contains. Instead, handle it more gracefully as a corruption issue,
and return EBADMSG.

Fixes: #35229 #32436
(cherry picked from commit 5ee8b3edb385b216eb4f3316323ae1287824971a)
2025-08-04 19:50:36 +01:00
Lennart Poettering
fb4d33dea4 journal: add 'const' at one more place
(cherry picked from commit 813facd3ba59865c127ebaf5eb8e8884e7ccb689)
2025-08-04 19:50:36 +01:00
Lennart Poettering
9fee00f713 journal: determine compression once, not twice
This is just paranoia: let's determine the compression to use once,
instead of twice, after all te data is in journal files which might be
corrupted any time, and it would be weird if we came to different
results here each time.

(cherry picked from commit b16cb30edd9b008f8d3dcacb6b6abe8009fa5315)
2025-08-04 19:50:36 +01:00
Lennart Poettering
2e64ec5c57 journal: use EBADMSG for invalid data in file mmap
We must assume that any data in the mmap can change anytime because the
file is deallocated or similar. Let's strictly use EBADMSG for reporting
invalid file contents though (as opposed to using EINVAL if our own code
passes a wrong parameter somwhere).

(cherry picked from commit 7d52a608438948b523681653550bc2e90ee9dc9b)
2025-08-04 19:50:36 +01:00
Lennart Poettering
1047105007 terminal-util: switch from TCSADRAIN to TCSANOW for all tcsetattr() calls
TCSADRAIN means tcsetattr() will become blocking (waiting for ability to
write out queued bytes), which is problematic, if the referenced TTY is
dead for some reason.

Since all these calls just modify *input* parameters anyway (i.e. mostly
local echo, and canonical mode), forcing out queued output is kinda
pointless anyway, hence just don't do it: leave it in the queue and just
change the flags we want to change.

The tcsetattr(3) man page kinda hints that we want to use TCSANOW here,
because it documents for TCSADRAIN:

"This option should be used when changing parameters that affect
output."

Which one can read so that TCSADRAIN should not be used if it doesn't
affect output, which is the case here.

This probably fixes: #37854

(cherry picked from commit f789b17e87b675acf1638a1801d9b16a377742e0)
2025-08-04 19:50:36 +01:00
Luca Boccassi
f50ffbe8eb ukify: fix parsing uname version with '+'
Debian started using '+' in the kernel uname version, which fails the
regex in ukify. Fix it.

(cherry picked from commit 6cc01c8cc48f4d5408fc43046cc8655170e8694b)
2025-08-04 19:50:36 +01:00
Yu Watanabe
0766ae3221 network/bridge-vlan: allow to configure bridge vlan on stacked bridge master interface
Fixes #38157.

(cherry picked from commit 78738adf88ad288a6af37a1998adc749ac6b5f2d)
2025-08-04 19:50:36 +01:00
Mike Yuan
8d5fe6f1b7 journalctl: track more closely whether we're within --until= range
Follow-up for 81fb5375b3b3bfc22d023d7908ad9eee4b3c1ffb

The offending commit fails to account for the case where
we have fewer lines before --until= than what's specified
in --lines=. Aside from that, if --grep= + --lines=+N are used,
we might also seek forward in the middle of the loop,
breaking the --until= boundary.

Let's turn the logic around then. Context.until_safe will
be set iff we're certain that there's enough to output,
and it gets reset whenever we seek forward.

Fixes #38121
Replaces #38122

(cherry picked from commit f11e882721f81c3379eb0902dad2ffb9d9a72175)
2025-08-04 19:50:36 +01:00
Mike Yuan
fe70740487 networkctl-config-file: validate args are valid filenames
... as opposed to full paths

Fixes #38288

(cherry picked from commit a6da6c9050e9965c1459efc231f0595c76bb41f0)
2025-08-04 19:50:36 +01:00
Zbigniew Jędrzejewski-Szmek
b1c01d6e05 meson: adjust indentation
(cherry picked from commit 13bdaad1d4ed665655c115664fb2d74577f2147d)
2025-08-04 17:46:24 +01:00
Zbigniew Jędrzejewski-Szmek
41625e466d meson: drop explicit custom_target names
[1] says:
> Since 0.60.0 the name argument is optional and defaults to the basename of
> the first output
We specify >= 0.62 as the supported version, so drop the duplicate name in all cases
where it is the same as outputs[0], i.e. almost all cases.

[1] https://mesonbuild.com/Reference-manual_functions.html#custom_target

(cherry picked from commit 7d247d3cb875e1778e6cc81dbf255b13092b29e0)
2025-08-04 17:43:21 +01:00
Zbigniew Jędrzejewski-Szmek
728c50bb59 man: drop inadvertently added -x, make shellcheck clean
aecb6eaed7d39d73f296c86a882c644b18b7e634 added -x most likely for debugging,
drop it. Also, adjust quoting to make the generated scripts liked by shellcheck.

(cherry picked from commit e11041d30f7be2ea18b0ea1a95f5f7ab8c4bcae8)
2025-08-04 17:37:34 +01:00
Yu Watanabe
97db82d490 man: fix @BUILD_ROOT@ insertion
@BUILD_ROOT@ is replaced with the _quoted_ build path. Hence, if
@BUILD_ROOT@ is quoted, the result is doubly quoted, and the script does
not work if the path contains spaces.

Fixes #37953.

(cherry picked from commit aecb6eaed7d39d73f296c86a882c644b18b7e634)
2025-08-04 17:37:22 +01:00
Yu Watanabe
027635da7d mkosi: update mkosi commit reference to 655baf24474a6f0732ec1b82a71c2f6fe4eeeb49
* 655baf2447 mkosi-initrd: move udev rules files for dm and md
* dec7c3e754 mkosi-vm: Drop tpm_tis change
* 021e3af926 shim: fix log message of installed binary
* 07c24a7d42 mkosi-initrd/vm: ensure TPM2 core modules are installed in the initrd

(cherry picked from commit 1afcf37a73e16d0a829634307374b65c5bf3e440)
2025-08-04 17:20:38 +01:00
Graham Clinch
04795cbe78 Correct order for implied time & date specifications.
The text now reads as:
[if] time specification is omitted, 00:00:00 is implied
[if] date specification is omitted, *-*-* is implied

(cherry picked from commit 9753ab34cdcd4068a0bc0b8e49dedef493fb7f20)
2025-08-04 17:20:32 +01:00
Fabian Vogt
2562ee4ed3 virt: Actually use DMI detection on RISC-V as well
When booting Linux with ACPI in QEMU, the device tree is not used and
the DT based detection will not work. DMI values are accurate though
and indicate QEMU.

While detect_vm_dmi_vendor() was enabled for RISC-V in a previous commit,
it missed detect_vm_dmi(), so it was never actually used. Fix that.

Signed-off-by: Fabian Vogt <fvogt@suse.de>
(cherry picked from commit f305c8f4a7d65b758b3392798495a712f6b2c0e3)
2025-08-04 17:20:22 +01:00
Yu Watanabe
671fcff62d TEST-13-NSPAWN: wait for a few seconds after markers found
Otherwise, the scope that the nspawn container belonging to may be
removed before the grandchild process of the machined exits and it may
be SIGKILLed.
```
[  100.829613] systemd-machined[678]: Successfully forked off '(sd-bindmnt)' as PID 2962.
[  100.833366] systemd-nspawn[2953]: Inner child finished, invoking payload.
[  100.836111] (sd-bindmnt)[2962]: Skipping PR_SET_MM, as we don't have privileges.
[  100.836401] (sd-bindmnt)[2962]: Successfully forked off '(sd-bindmnt-inner)' as PID 2964.
[  100.846498] (sd-bindmnt)[2962]: (sd-bindmnt-inner) terminated by signal KILL.
[  100.848846] systemd[1]: machine-TEST\x2d13\x2dNSPAWN.machinectl\x2dbind.7ye.scope: cgroup is empty
[  100.849303] systemd[1]: machine-TEST\x2d13\x2dNSPAWN.machinectl\x2dbind.7ye.scope: Deactivated successfully.
[  100.849317] systemd[1]: machine-TEST\x2d13\x2dNSPAWN.machinectl\x2dbind.7ye.scope: Changed running -> dead
[  100.849752] systemd[1]: machine-TEST\x2d13\x2dNSPAWN.machinectl\x2dbind.7ye.scope: Consumed 91ms CPU time, 1.3M memory peak.
[  100.850399] systemd-machined[678]: (sd-bindmnt) failed with exit status 1.
[  100.850414] systemd-machined[678]: Child failed.
[  100.854574] systemd-machined[678]: Failed to mount /tmp/marker-varlink on /tmp/marker-varlink in the namespace of machine 'TEST-13-NSPAWN.machinectl-bind.7ye': Protocol error
```

Hopefully fixes #38434.

(cherry picked from commit 7b20a5cbf33f0ec29613e29c69803310e51a3212)
2025-08-04 17:19:57 +01:00
Luca Boccassi
a9ddd6f8ec journald: add debug logs around offlining/archiving/rotating/varlink operations
It is not easy to understand what happens to a journal file
even with debug logs enabled. Add more dbg messages around operations
started by users to make it possible to follow the flow of operations.

(cherry picked from commit 8cc1748ddcbccbe442761416f012da4d746afd3a)
2025-08-04 17:18:14 +01:00
Luca Boccassi
3c7acb6c0d test: run test-journal-append binary with info level logging
It is ran thousands of times so the logs are overwhelming otherwise

(cherry picked from commit 090b23e051a14162a2a35ed05fd2059dc7fe34d6)
2025-08-04 17:07:38 +01:00
Yu Watanabe
927a2b4f24 TEST-64-UDEV-STORAGE: add stress tests for creating/removing device node symlinks
For issue #37823.

(cherry picked from commit fdb86005755ab0e6764696e1c862ec25bf1bca60)
2025-08-04 17:07:14 +01:00
Yu Watanabe
66dc5e9dfc TEST-64-UDEV-STORAGE: several cleanups
- drop unused variables,
- adjust number of partitions, interations, and timeout,
- clear partitions on each test case finished,
- check if unnecessary devlinks are removed,
- several coding style cleanups.

(cherry picked from commit 35e4cfa83db1348157f0dd33a3cfc880c369b932)
2025-08-04 17:07:14 +01:00
Yu Watanabe
4a8dfc39da TEST-64-UDEV-STORAGE: several fixlets for check_device_units()
To suppress the following warnings in case check_device_unit() failed e.g.
when the device is already removed:
```
sed: couldn't write 130 items to stdout: Broken pipe
awk: write failure (Broken pipe)
awk: close failed on file "/dev/stdout" (Broken pipe)
```

(cherry picked from commit 453cbbe47b4e268f239f75d7c19f2ddef495bd81)
2025-08-04 17:07:14 +01:00
Yu Watanabe
004c6a0cf4 udev/node: check the target device node of devlink on removal
If the removal of the devlink is requested due to this is a 'remove' event,
it is trivial that the devlink will not be owned by this device anymore.
Let's read the devlink and if it points to our device node, then we need
to update the devlink. If it points to another device node, then it is already
owned by another device, hence we should not touch it and keep it as is.

Fixes #37823.

(cherry picked from commit 453e1375d0606a212433e137c7f204279a8ecc35)
2025-08-04 17:07:03 +01:00
Yu Watanabe
d01d605cfe udev/node: split out link_search_and_update() and reduce indentation
No functional change, just refactoring and preparation for later change.

(cherry picked from commit 239c9a2e5fd9cd6d0163886fa8cd667cfd946432)
2025-08-04 16:56:17 +01:00
Luca Boccassi
c41ba1a6ae ukify: fix hwids section reproducibility
When there are multiple json files the glob list output is
not stable. Sort it before use.

Follow-up for 0333b9d5892983efc690d444fb8783624a1ef476

(cherry picked from commit 3ddb2ee1721f568c3b9340e2dc78bd5b78bf397c)
2025-08-04 16:54:13 +01:00
Yu Watanabe
3d2b8c8f16 test: several cleanups for DeferReactivation=
- move to TEST-07-PID1, as it is a timer setting,
- rename the timer and service, to emphasize they are for testing
  DeferReactivation=,
- use timeout command to wait for the timer being triggered several times,
- stop the timer when not necessary,
- accept 9 seconds as delta, as there are fluctuations.

Fixes the following failure:
```
TEST-74-AUX-UTILS.sh[422]: + last=
TEST-74-AUX-UTILS.sh[422]: + read -r time
TEST-74-AUX-UTILS.sh[422]: + '[' -n '' ']'
TEST-74-AUX-UTILS.sh[422]: + last=1753779616
TEST-74-AUX-UTILS.sh[422]: + read -r time
TEST-74-AUX-UTILS.sh[422]: + '[' -n 1753779616 ']'
TEST-74-AUX-UTILS.sh[422]: + delta=9
TEST-74-AUX-UTILS.sh[422]: + '[' 9 -lt 10 ']'
TEST-74-AUX-UTILS.sh[422]: + echo 'Timer fired too early: 9 < 10'
```

Fixes #38403.

(cherry picked from commit 922885e0a5b729a3faaba35676b37013f323d309)
2025-08-04 16:52:18 +01:00
Zbigniew Jędrzejewski-Szmek
5ca0ce26f3 TEST-71-HOSTNAME: specify job mode for the stop job (#38413)
The CI run is failing in the stop command:
```
[ 4841.936906] TEST-71-HOSTNAME.sh[140]: + stop_hostnamed
[ 4841.936906] TEST-71-HOSTNAME.sh[140]: + systemctl stop systemd-hostnamed.service
[ 4845.959747] TEST-71-HOSTNAME.sh[226]: Job for systemd-hostnamed.service canceled.
[ 4846.013286] systemd[1]: TEST-71-HOSTNAME.service: Main process exited, code=exited, status=1/FAILURE
[ 4846.013792] systemd[1]: TEST-71-HOSTNAME.service: Failed with result 'exit-code'.
[ 4846.021821] systemd[1]: Failed to start TEST-71-HOSTNAME.service - TEST-71-HOSTNAME.
```
This happens when we create the stop job, but while we're waiting for
it to finish, something triggers a start of the unit and we lose to competing
start job.

Hopefully fixes #36089.

(cherry picked from commit 57fbe401f5ef03af503a10e9c3339d646fb84dd3)
2025-08-04 16:50:29 +01:00
Zbigniew Jędrzejewski-Szmek
e1c879c492 docs/ENVIRONMENT: fix typo and adjust grammar
(cherry picked from commit b68b9f8f7f5b7590f4369d24371af7a18a8702a3)
2025-08-04 16:49:16 +01:00
Zbigniew Jędrzejewski-Szmek
805888bad5 man/systemd-boot: recommend holding space by default
https://github.com/systemd/systemd/pull/15509/files#r2234113960 complains that the
advice is still not clear enough. systemd-boot itself says
  "Menu hidden. Hold down key at bootup to show menu."
so let's do the same and tell users to hold down space as the first option.
This should work fine for 99% of people. Then invert the following advice to
try repeated pressing as the alternative option.

Also, fix the advice about --boot-loader-menu=. The whole para is about getting
the menu to show, so 0 is not a good value.

Follow-up for https://github.com/systemd/systemd/pull/15509.

(cherry picked from commit 509f701ab3b1294e6935561a2d212db48fccd7c5)
2025-08-04 16:49:09 +01:00
Zbigniew Jędrzejewski-Szmek
c5f172f9d6 man/systemd-boot: describe which keys use EFI variables
Some keys have only a transient effect, e.g. 'e', but some have a persistent
effect, e.g. 'd'. This is important informations, but the reader might be
forgiven for not finding that at all obvious when reading the descriptions of
the keys.

Also, mention in loader.conf man page that the settings there might be overriden
by EFI variables. This is another thing that is important but not obvious.

(cherry picked from commit 7a800a66561490d12483053e28c57deae6bedcd4)
2025-08-04 16:49:03 +01:00
Zbigniew Jędrzejewski-Szmek
518fa89e57 man/loader.conf: wrap some very wrong lines
(cherry picked from commit ec7e81ae3dfc4f8dedfefea6f6eccef30981c8b1)
2025-08-04 16:48:56 +01:00
Zbigniew Jędrzejewski-Szmek
caa5629c55 man: fix confusion in loader.conf
For some reason, the man page for loader.conf also mentioned type#1 entries
in passing. Except for using the same file extension, those files are in a
completely different format and with a different purpose. This mixup was
first introduced in f37d3835828c45b3a92ed12d9a6a30796c0a4a27, was then
reported in #10923, which was closed by cbae79b8d07327051c1e1f438f7086ab634b93f8,
but that didn't fix the actual issue.

Really fixes #10923.

While at it, simplify and improve the wording a bit.

(cherry picked from commit a83de23353aa9e41d59cf198f1c8fd5d56c1e97b)
2025-08-04 16:48:31 +01:00
Yu Watanabe
12b3ac3d17 TEST-03-JOBS: modernize test code and extend timeout
- use timeout command more,
- use `(! cmd)` rather than `cmd && exit 1`,
- drop unnecessary `|| exit 1`,
- extend timeout to support slow test environment.

Fixes #38395.

(cherry picked from commit 065941a92c81dde6706215cb3390b90fc06ff2ce)
2025-08-04 16:48:07 +01:00
Yu Watanabe
8f7c6b1c16 TEST-04-JOURNAL: add one more missing journalctl --sync
Fixes the following failure:
```
TEST-04-JOURNAL.sh[124]: + add_logs_filtering_override delegated-cgroup-filtering.service 01-discard-hello '~hello'
TEST-04-JOURNAL.sh[124]: + local unit=delegated-cgroup-filtering.service
TEST-04-JOURNAL.sh[124]: + local override_name=01-discard-hello
TEST-04-JOURNAL.sh[124]: + local 'log_filter=~hello'
TEST-04-JOURNAL.sh[124]: + mkdir -p /run/systemd/system/delegated-cgroup-filtering.service.d/
TEST-04-JOURNAL.sh[124]: + echo -ne '[Service]\nLogFilterPatterns=~hello'
TEST-04-JOURNAL.sh[124]: + NEEDS_RELOAD=1
TEST-04-JOURNAL.sh[1408]: ++ run_service_and_fetch_logs delegated-cgroup-filtering.service
TEST-04-JOURNAL.sh[1408]: ++ local unit=delegated-cgroup-filtering.service
TEST-04-JOURNAL.sh[1408]: ++ [[ -n 1 ]]
TEST-04-JOURNAL.sh[1408]: ++ systemctl daemon-reload
TEST-04-JOURNAL.sh[1408]: ++ NEEDS_RELOAD=
TEST-04-JOURNAL.sh[1408]: ++ systemctl start delegated-cgroup-filtering.service
TEST-04-JOURNAL.sh[1408]: ++ journalctl --sync
TEST-04-JOURNAL.sh[1408]: ++ journalctl -q -u delegated-cgroup-filtering.service -I -p notice
TEST-04-JOURNAL.sh[124]: + [[ -z Jul 28 22:41:41 H delegated_cgroup_filtering_payload.sh[1448]: child_process: hello, world!
TEST-04-JOURNAL.sh[124]: Jul 28 22:41:41 H delegated_cgroup_filtering_payload.sh[1448]: child_process: hello, people! ]]
TEST-04-JOURNAL.sh[124]: + at_exit
```

(cherry picked from commit f9b56cf3b6d781f28c4e0c3e55bc5dc0797c312c)
2025-08-04 16:45:16 +01:00
Luca Boccassi
c967103c2b test: add a secureboot test with an addon
(cherry picked from commit 5ae58ac2b93a4046fbae4e0c825b8cc9d03d10d8)
2025-08-04 16:44:29 +01:00
Luca Boccassi
847f3345e0 mkosi: enable secure boot and autoenroll by default
With GHA now fixed, just always enable SB so that we get extra
coverage

(cherry picked from commit 5ba50a7f2c7af482e08fade7eb8cf4e0f130df5c)
2025-08-04 16:44:21 +01:00
Luca Boccassi
48b404d79f test: preserve ESP when testing bootctl
(cherry picked from commit b61bff3436b1f04978983739cf5c1aeb7f618e75)
2025-08-04 16:44:03 +01:00
Luca Boccassi
2a2cbc4927 test: do not fail TEST-70-TPM2 when secure boot is enabled
[  183.037401] TEST-70-TPM2.sh[2876]: + systemd-creds decrypt --name=pcrlock.arch /tmp/fakexbootldr/loader/credentials/pcrlock.arch.cred
[  183.054755] TEST-70-TPM2.sh[3003]: Found container virtualization none.
[  183.083789] TEST-70-TPM2.sh[3003]: Reading EFI variable /sys/firmware/efi/efivars/LoaderTpm2ActivePcrBanks-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
[  183.094377] TEST-70-TPM2.sh[3003]: Detected slow EFI variable read access on LoaderTpm2ActivePcrBanks-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f: 55.799ms
[  183.095353] TEST-70-TPM2.sh[3003]: Reading EFI variable /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c.
[  183.099653] TEST-70-TPM2.sh[3003]: Credential uses fixed key for fallback use when TPM2 is absent — but TPM2 is present, and SecureBoot is enabled, refusing.

(cherry picked from commit add7a4a9f20467f12d9a791b5907c59e9d223d24)
2025-08-04 16:43:52 +01:00
Luca Boccassi
32d6e7f1f4 mkosi: update mkosi commit reference to cb1a3c90490922441548d09b09c7b76426e4bc20
* cb1a3c9049 FirmwareVariables: allow generating during image build
* 6104923534 env: export $EFI_ARCHITECTURE in hook scripts on EFI arches
* fef33f96a2 mkosi-tools: ukify moved to systemd-ukify in openSUSE
* ec4475a846 ensure builds with cache over device boundaries
* 7be5159f24 Change UnifiedKernelImages to enum and accept signed/unsigned
* 071ac4a575 mkosi-vm: install systemd-boot-efi-signed where available
* 1865be628e opensuse: Install OpenSUSE-release if another release package is not installed
* 0381b17819 qemu: Disable hpet for x86 VMs
* 4f63700eb3 mkosi-tools: install systemd-boot-tools for bootctl
* 1230ed333b man: remove duplicate 'the' in FirmwareVariables description

(cherry picked from commit 8631b0f8b9b76e861e68da93bb427c559ed215af)
2025-08-04 16:43:27 +01:00
Brett Holman
d5a02fdf07 man: correct the number of active unit states
(cherry picked from commit 04abe03189d90a8fb2de29f2d72a9c81c8014353)
2025-08-04 16:43:08 +01:00
Yu Watanabe
bf361faa77 efi-api: cast before shift
Fixes the following error when running with sanitizers:
```
TEST-87-AUX-UTILS-VM.sh[670]: + bootctl install --make-entry-directory=yes
TEST-87-AUX-UTILS-VM.sh[695]: Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed" to "/boot/EFI/systemd/systemd-bootx64.efi".
TEST-87-AUX-UTILS-VM.sh[695]: Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed" to "/boot/EFI/BOOT/BOOTX64.EFI".
TEST-87-AUX-UTILS-VM.sh[695]: Created "/boot/fedora".
TEST-87-AUX-UTILS-VM.sh[695]: Random seed file /boot/loader/random-seed successfully refreshed (32 bytes).
TEST-87-AUX-UTILS-VM.sh[695]: ../src/shared/efi-api.c:618:38: runtime error: left shift of 243 by 24 places cannot be represented in type 'int'
```

(cherry picked from commit be876c5933a5eb223565e70773746a4b49d49c9f)
2025-08-04 16:42:06 +01:00
Yu Watanabe
63e97d38aa TEST-23-UNIT-FILE: do not wait indefinitely but set a reasonable timeout
Otherwise, the test does not finish until the global timeout is reached.

This is for making the test fail earlier when something spurious happens:
```
[FAILED] Failed to start TEST-23-UNIT-FILE-short-lived.service - Shortlived Unit.
TEST-23-UNIT-FILE.sh[776]: + '[' 0 -eq 0 ']'
TEST-23-UNIT-FILE.sh[776]: + sleep .5
(snip)
58/98 systemd:integration-tests / TEST-23-UNIT-FILE  TIMEOUT  1800.52s  killed by signal 9 SIGKILL
```

(cherry picked from commit e43efecc8f43d4c0b4007630a55e75ab28032beb)
2025-08-04 16:41:52 +01:00
Yu Watanabe
c9ead09b19 TEST-87-AUX-UTILS-VM: make coredumps stored in archived journal file
Fixes the following race:
```
TEST-87-AUX-UTILS-VM.sh[839]: + coredumpctl -1
TEST-87-AUX-UTILS-VM.sh[1169]: TIME                        PID UID GID SIG     COREFILE EXE             SIZE
TEST-87-AUX-UTILS-VM.sh[1169]: Sun 2025-07-27 23:22:02 UTC 885   0   0 SIGABRT present  /tmp/test-dump 19.9K
TEST-87-AUX-UTILS-VM.sh[839]: + coredumpctl -n 1
TEST-87-AUX-UTILS-VM.sh[1172]: Journal file /var/log/journal/a8285330872602d1377cbaaf68869946/system.journal is truncated, ignoring file.
TEST-87-AUX-UTILS-VM.sh[1172]: No coredumps found.
```

(cherry picked from commit ab56a96194d102cb4ec279fc4eb181d16c1251ea)
2025-08-04 16:41:22 +01:00
Yu Watanabe
478372c77c TEST-04-JOURNAL: add test case for log filtering through syslog
For issue #38361.

(cherry picked from commit e0b5e148352955b0441e2dd134ccab1b8432bd73)
2025-08-04 16:41:22 +01:00
Yu Watanabe
76485dc46c TEST-04-JOURNAL: several cleanups
- move scripts from test/units/ to the test specific units directory,
- drop meaningless true from silent-success.service,
- call journalctl from the same bash invocation of echo.

No functional change, just refactoring and preparation for the next
commit.

(cherry picked from commit b926dda2efab4b25e59291545c4ec24b781beaff)
2025-08-04 16:41:22 +01:00
Yu Watanabe
ab28134b2f TEST-04-JOURNAL: add more test cases for LogFilterPatterns=
For issue #38361.

(cherry picked from commit 7db7b75ab3b6df43c85039db6f22b2b7f82e1dd7)
2025-08-04 16:41:22 +01:00
Lennart Poettering
7e7a50dcfc test: add sync request until all logging about the test unit is done
(cherry picked from commit 80ab0e04d38017fa9db0c4af1bdca8f83e4234e4)
2025-08-04 16:41:22 +01:00
Yu Watanabe
4172d2ac0c journal: check filtering after parsing timestamp, identifier, pid, and so on
Otherwise, filtering regex with '^' does not work.

Fixes a bug in 87a13dabbd81c2e31fd5ac7b81cce61baf23e59c (v253).
Fixes #38361.

(cherry picked from commit c60a16ba8fa2a57af23f7653fd2316c26e06c577)
2025-08-04 16:30:58 +01:00
Yu Watanabe
8685264b7a test: skip verification for racy test cases
FORMAT_LIFETIME() internally calls now(), hence we cannot provide any
reliable verifications for finite lifetime.

(cherry picked from commit 7292d676d0514150572fcc15ac68b26d900b12a7)
2025-08-04 16:27:43 +01:00
Yu Watanabe
fd0c6c5374 locale: escape invalid keymap on logging
The keymap string may come from dbus method and may contain invalid
characters.

(cherry picked from commit 0464222aed4bc025c117df9b650d62684274c6fd)
2025-08-04 16:25:03 +01:00
Yu Watanabe
514ce7b2af TEST-21-DFUZZER: suppress debugging logs from homed, nsresourced, and userdbd
(cherry picked from commit 69865ca69764ec79f84c27ececb6595d0409ad40)
2025-08-04 16:23:35 +01:00
Yu Watanabe
2136ab5a1b TEST-21-DFUZZER: enable services to be tested
Since e19e17df579823093238edb60470b29a2c5e24a6, timesyncd is disabled by
default, and fuzzing for timesyncd failed.

```
[  754.247451] TEST-21-DFUZZER.sh[658]: Bus: org.freedesktop.timesync1 (system)
[  754.247725] TEST-21-DFUZZER.sh[658]: + systemd-run --pipe --wait -- dfuzzer -b 10000 -n org.freedesktop.timesync1
[  754.282237] TEST-21-DFUZZER.sh[3236]: Running as unit: run-p3236-i3237.service
[  754.348983] TEST-21-DFUZZER.sh[3238]: [SESSION BUS]
[  754.350443] TEST-21-DFUZZER.sh[3238]: Bus not found.
[  754.350705] TEST-21-DFUZZER.sh[3238]: [SYSTEM BUS]
[  754.359249] TEST-21-DFUZZER.sh[3238]: Error while calling method 'GetConnectionUnixProcessID': GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: The connection does not exist
[  754.359520] TEST-21-DFUZZER.sh[3238]: Couldn't get the PID of the tested process
[  754.359764] TEST-21-DFUZZER.sh[3238]: Exit status: 4
[  754.386721] TEST-21-DFUZZER.sh[3236]:           Finished with result: exit-code
[  754.387331] TEST-21-DFUZZER.sh[3236]: Main processes terminated with: code=exited, status=4/NOPERMISSION
[  754.387537] TEST-21-DFUZZER.sh[3236]:                Service runtime: 74ms
[  754.387706] TEST-21-DFUZZER.sh[3236]:              CPU time consumed: 21ms
[  754.389210] TEST-21-DFUZZER.sh[3236]:                    Memory peak: 12.9M (swap: 0B)
```

Also, create dummy interface for networkd and resolved.

Fixes #37834.

(cherry picked from commit 2487f72bdc9c8c718c5ce7c46d9804de03c0f7eb)
2025-08-04 16:23:35 +01:00
Yu Watanabe
c9aa11cb73 TEST-21-DFUZZER: first test session bus, then service bus, finally system bus
(cherry picked from commit 5e2b606e4e3939b057395feaadee01ef68b43286)
2025-08-04 16:23:35 +01:00
Yu Watanabe
5c173e44b0 TEST-21-DFUZZER: update the list of destructive methods
(cherry picked from commit 951e313b9ace658b7a1d01ee9febaa26f6afe6ea)
2025-08-04 16:23:35 +01:00
Yu Watanabe
30fe94f419 TEST-64-UDEV-STORAGE: clear MD superblock on exit
Workaround for issue #38240.

(cherry picked from commit 5ad6fe9850e0ecad7415bfbdd547d07b9b1177c7)
2025-08-04 16:19:49 +01:00
Yu Watanabe
761e6285a0 TEST-46-HOMED: remove unnecessary users
Workaround for issue #38240.

(cherry picked from commit f48068a379caae0c884b1364571f0d3283aeacf1)
2025-08-04 16:19:41 +01:00
Yu Watanabe
8a356528dd TEST-46-HOMED: modernize test
- use command to check the existence of homectl,
- use timeout for waiting user,
- use 4ch indentation.

(cherry picked from commit 454edd9e7a122816b140e30e5824c07e8cd4b5ff)
2025-08-04 16:19:12 +01:00
Yu Watanabe
f7fdba8c6e TEST-64-UDEV-STORAGE: wait for partition devices being created before calling udevadm trigger
For some reasons, kernel or sfdisk once remove the created partitions
and recreated them. And if 'udevadm trigger' triggers devices currently
being removed, the udevd does not receive the triggered events, and the
command stuck.

```
[   33.150452] TEST-64-UDEV-STORAGE.sh[546]: + sfdisk --wipe=always /dev/md/mdmirpar
[   33.478336] systemd-udevd[442]: md127: Device is queued (SEQNUM=2163, ACTION=change)
[   33.480153] kernel:  md127: p1 p2 p3
[   33.483772] systemd-udevd[442]: md127p1: Device is queued (SEQNUM=2164, ACTION=add)
[   33.483914] systemd-udevd[442]: md127p2: Device is queued (SEQNUM=2165, ACTION=add)
[   33.484999] systemd-udevd[442]: md127p3: Device is queued (SEQNUM=2166, ACTION=add)
[   33.485564] systemd-udevd[442]: md127: Received inotify event of watch handle 164.
[   33.503016] TEST-64-UDEV-STORAGE.sh[546]: + SYSTEMD_LOG_LEVEL=debug
[   33.503016] TEST-64-UDEV-STORAGE.sh[546]: + timeout 30 udevadm trigger --settle --parent-match /dev/md/mdmirpar
[   33.485905] systemd-udevd[442]: Successfully forked off '(udev-synth)' as PID 3208.
[   33.486067] systemd-udevd[442]: md127: Removing watch handle 164.
[   33.489035] systemd-udevd[442]: md127p1: Device is queued (SEQNUM=2167, ACTION=remove)
[   33.489048] systemd-udevd[442]: Received inotify event about removal of watch handle 164.
[   33.489507] systemd-udevd[442]: md127p2: Device is queued (SEQNUM=2168, ACTION=remove)
[   33.496298] systemd-udevd[442]: md127p3: Device is queued (SEQNUM=2169, ACTION=remove)
[   33.500628] systemd-udevd[442]: md127: Device is queued (SEQNUM=2170, ACTION=change)
[   33.502355] systemd-udevd[442]: md127p1: Device is queued (SEQNUM=2171, ACTION=add)
[   33.509371] TEST-64-UDEV-STORAGE.sh[3211]: md127: Triggered device with action 'change'.
[   33.509371] TEST-64-UDEV-STORAGE.sh[3211]: md127p1: Triggered device with action 'change'.
[   33.509371] TEST-64-UDEV-STORAGE.sh[3211]: md127p2: Triggered device with action 'change'.
[   33.512532] systemd-udevd[442]: md127: Device is queued (SEQNUM=2172, ACTION=change, UUID=a0b75692-08ad-428a-859b-9ef8772874d7)
[   33.512666] systemd-udevd[442]: md127p1: Device is queued (SEQNUM=2173, ACTION=change, UUID=4cd75a91-aa5b-4678-878c-0420b6c2e1e9)
[   33.512796] systemd-udevd[442]: md127p2: Device is queued (SEQNUM=2174, ACTION=add)
[   33.512910] systemd-udevd[442]: md127p3: Device is queued (SEQNUM=2175, ACTION=add)
[   33.531834] TEST-64-UDEV-STORAGE.sh[3211]: md127: Got uevent without UUID, ignoring: No such file or directory
[   33.553563] TEST-64-UDEV-STORAGE.sh[3211]: md127p1: Got uevent without UUID, ignoring: No such file or directory
[   33.561262] TEST-64-UDEV-STORAGE.sh[3211]: md127p2: Got uevent without UUID, ignoring: No such file or directory
[   33.562468] TEST-64-UDEV-STORAGE.sh[3211]: md127p2: Got uevent without UUID, ignoring: No such file or directory
[   33.563143] TEST-64-UDEV-STORAGE.sh[3211]: md127p3: Got uevent without UUID, ignoring: No such file or directory
[   33.564174] TEST-64-UDEV-STORAGE.sh[3211]: md127p1: Got uevent without UUID, ignoring: No such file or directory
[   33.567614] TEST-64-UDEV-STORAGE.sh[3211]: md127p3: Got uevent without UUID, ignoring: No such file or directory
[   33.597750] TEST-64-UDEV-STORAGE.sh[3211]: md127: Got uevent without UUID, ignoring: No such file or directory
[   33.623522] TEST-64-UDEV-STORAGE.sh[3211]: md127p1: Got uevent without UUID, ignoring: No such file or directory
[   33.676268] TEST-64-UDEV-STORAGE.sh[3211]: md127p3: Got uevent without UUID, ignoring: No such file or directory
[   33.686088] TEST-64-UDEV-STORAGE.sh[3211]: md127p2: Got uevent without UUID, ignoring: No such file or directory
```

Let's wait for partition devices being actually created, and wait for
all queued events being processed. Then, call 'udevadm trigger'.

(cherry picked from commit 3ea86aa6739717fd84b4f16e1394d15c77f65775)
2025-08-04 16:17:29 +01:00
Yu Watanabe
967e69128a TEST-64-UDEV-STORAGE: enable debug logging and set timeout
For debugging the following failure:
```
41/95 systemd:integration-tests / TEST-64-UDEV-STORAGE-mdadm_basic                              TIMEOUT        1800.02s   killed by signal 15 SIGTERM
[   30.902392] TEST-64-UDEV-STORAGE.sh[517]: + sfdisk --wipe=always /dev/md/mdmirpar
[   31.326202] TEST-64-UDEV-STORAGE.sh[517]: + udevadm trigger --settle --parent-match /dev/md/mdmirpar
[  900.971338] kauditd_printk_skb: 10 callbacks suppressed
[  900.971343] audit: type=1130 audit(1743767825.783:146): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-tmpfiles-clean comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[  900.974057] audit: type=1131 audit(1743767825.786:147): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-tmpfiles-clean comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Finishing after writing 68494 entries
qemu-kvm: terminating on signal 15 from pid 131949 (/usr/bin/python3)
```

(cherry picked from commit c3c905c6c1391a917919563bd6b05c479dc0fbcb)
2025-08-04 16:17:05 +01:00
Yu Watanabe
e33bfaaa4b test: stop firewalld and friends to make them not disturb test-firewall-util
Hopefully fixes #35526.

(cherry picked from commit 7bef072ca986f8641881a15bd6ae1659883338f2)
2025-08-04 16:11:04 +01:00
Nick Labich
0855934d53 sysupdate: Prevent unnecessary failure when a transfer Path is not present
Fixes https://github.com/systemd/systemd/issues/38007

(cherry picked from commit 85e9805903d146f81551cb2c8398fb7f2345a55e)
2025-08-04 16:06:46 +01:00
Yu Watanabe
8dbeff4cd2 TEST-10-MOUNT: wait for userspace mount options being loaded
When a device is mounted with userspace options such as _netdev, even when the mount event source is
triggered, only /proc/self/mountinfo may be updated, and /run/mount/utab may not be updated yet.
Hence, the mount unit may be created/updated without the userspace options. In that case, the mount
event source will be retriggered when /run/mount/utab is updated, and the mount unit will be updated
again with the userspace options. Typically, the window between the two calls is very short, but when
the mount event source is ratelimited after the first event, processing the second event may be delayed
about 1 secound. Hence, here we need to wait for a while.

By adding a debugging logs in mount_setup_unit(), the userspace mount is
not obtained in the first event, and the second event is delayed by the ratelimit.
```
[   20.023086] H TEST-10-MOUNT.sh[446]: + mount -t ext4 -o _netdev /dev/loop1p1 /tmp/deptest
[   20.026255] H kernel: EXT4-fs (loop1p1): mounted filesystem c1fa00ea-2ba8-46b2-9002-2ac997f4cda9 r/w with ordered data mode. Quota mode: none.
[   20.026537] H TEST-10-MOUNT.sh[446]: + timeout 10 bash -c 'until systemctl -q is-active tmp-deptest.mount; do sleep .1; done'
[   20.032293] H systemd[1]: tmp-deptest.mount: mount_setup_unit: proc: yes, netdev: no
[   20.035978] H systemd[1]: Unit blockdev@dev-loop1p1.target has alias blockdev@.target.
[   20.039765] H systemd[1]: tmp-deptest.mount: Changed dead -> mounted
[   20.046598] H systemd[1]: Event source 0x7c73093e05e0 (mount-monitor-dispatch) entered rate limit state.
```

Hopefully fixes #32712.

(cherry picked from commit 3f6e7ac27a4ed431c50577c7983a4043c8d853b0)
2025-08-04 16:03:58 +01:00
Yu Watanabe
ddad448545 TEST-10-MOUNT: make cleanup function run on error
(cherry picked from commit 1edc81aa134ccf68dfe568fba2dda0d668ece59b)
2025-08-04 16:03:53 +01:00
Yu Watanabe
22852e58e5 test: move testcase_dependencies() to TEST-10-MOUNT
TEST-60-MOUNT_RATELIMIT is run on nspawn by default, and currently run
on vm only on arch mkosi. Let's move the test case to new TEST-10-MOUNT,
which always run on vm.

(cherry picked from commit 62c3f42debde313f42cafbce52562aa00d9aaed9)
2025-08-04 16:03:44 +01:00
Yu Watanabe
991fd4fa6a test: drop unnecessary line continuation
(cherry picked from commit f2e9193fcf12ce384488e79b9adef8b870e1db4c)
2025-08-04 16:03:37 +01:00
Yu Watanabe
5ef4bea7ab test: set timeout for udevadm settle/wait/lock
Otherwise, if a test in a spurious state, it consumes quite long time.
Let's fail earlier in such case.

This also drops an unnecessary calls of 'udevadm settle' in
testcase_nvme_basic() of TEST-64-UDEV-STORAGE.

(cherry picked from commit 3ff6d023202f040c3405dc7625f7b689c0505305)
2025-08-04 16:03:05 +01:00
Yu Watanabe
fd989f14eb integration-test: mention TEST_SAVE_JOURNAL in README
(cherry picked from commit 122779536254469ce55a31139985c7e5be434d79)
2025-08-04 15:58:53 +01:00
Yu Watanabe
05087c6ec3 integration-test: show journalctl command for showing saved journal when TEST_SAVE_JOURNAL=1
(cherry picked from commit 82693960784427ad8583e6a7570c2f4834a6d397)
2025-08-04 15:58:53 +01:00
Luca Boccassi
981d2ad649 vmspawn: add machine types for m68k/sparc64 and default to 'none' if unknown
Qemu has a 'none' machine that can be used for very basic booting
on weird arches, just default to that unless otherwise specified

(cherry picked from commit c1fb58cc4853319240f40ac3c9bbab49554abd1a)
2025-08-04 15:56:37 +01:00
Mike Yuan
2548191e9d TEST-07-PID1: add test case for #38320
(cherry picked from commit c8895f5b0f38f9be2f9b55de48a64efa55fd28fd)
2025-08-04 15:55:37 +01:00
Mike Yuan
4a2207cf0f core/dbus-manager: validate unit type before calling into service-specific methods
Fixes #38320

(cherry picked from commit 39a8029f4e267f1e7c128c96672f035e62d02ee7)
2025-08-04 15:55:36 +01:00
Mike Yuan
fb2d08c83a core/dbus-manager: don't ever try to dump fdstore for units not properly loaded
(cherry picked from commit 5c94f12fa6399a3d3fa572598d88e07675d64ce5)
2025-08-04 15:53:57 +01:00
Yu Watanabe
aa3be6f641 TEST-04-JOURNAL: use bash to make builtin echo command used
When non-builtin echo command is used, then the command may exit before
journald find the source of the stream, and the log filtering may not be
applied.

Hopefully fixes #37143.

(cherry picked from commit 7532bc8718eb1c90fc822c2742bc2439ab6604e9)
2025-08-04 15:52:15 +01:00
Luca Boccassi
e142b0fb3e LICENSES/README: update file paths after moves
Follow-up for 1a60b97524d8408e5f059b09ae316987c698e671

(cherry picked from commit 486fa5ece69f9cdd4e29c013936251f340c012f5)
2025-08-04 15:51:25 +01:00
Cosima Neidahl
a61000c0d9 meson: Detect ELF ABI version for bpf build on ppc64 (#38307)
On 64-bit POWER, there are multiple versions of the ELF ABI in use.

- little-endian powerpc64 is ELFv2
- big-endian powerpc64 is
  - ELFv2 when using musl
  - either ELFv1 or ELFv2 when using glibc

Previously, the BPF build was hard-coding `-D_CALL_ELF=2`, which is
ELFv2. This makes the build fail on ELFv1, similarly to the original
issue that necessitated the addition of this flag on powerpc64le.

To fix this:

1. Use ELFv1 as the default (when `_CALL_ELF` is not defined, this is
the assumption that should be made about the ABI version).
2. Check if the C compiler has `_CALL_ELF` defined, and if it does,
override the default with that.
That's technically not the *correct* compiler in this situation, but I'm
unsure how to get a compiler object for the BPF one from Meson to do the
`*_define('_CALL_ELF')` checks with, and they *should* both be targeting
the same ABI version anyway.
3. Add the ABI version to the `_CALL_ELF` definition for the BPF
compiler flags.

This makes a BPF-enabled build succeed on powerpc64 w/ ELFv1 glibc.

(cherry picked from commit f9509192512a4c4b9e3915a096333d4b6b297956)
2025-08-04 15:49:46 +01:00
James Hilliard
efd7c5c523 meson: prepend sys_root to bpf isystem
These sort of absolute include paths are generally unsafe when cross compiling.

(cherry picked from commit 28575ac014194d0040e38db3e95edc5fb8b4b96b)
2025-08-04 15:46:38 +01:00
Mike Yuan
80a6ff4b38 units/ssh-access.target: enable StopWhenUnneeded=
This combines nicely with the X_SYSTEMD_UNIT_INACTIVE= notification
we send out, to ensure when all sshd units go down the actual
status is always reflected on the target.

(cherry picked from commit 8c7dfa0ff4dc4a8c97b3b764ca642000eb63f35d)
2025-08-04 15:45:46 +01:00
Yu Watanabe
1daf45d3e4 varlink-idl: fix type of ProcessId.bootId
Fixes a bug in 0fc530d15709a4b531412fdadf3cfb5d0433b62f (v257).
Fixes #38276.

(cherry picked from commit 0c699debde1f4a3641bbba4ef8541c183153221c)
2025-08-04 15:44:59 +01:00
Yu Watanabe
8015fd3dc9 ci/build-test: install libarchive-dev
Previously, the package was not installed, hence the feature was always
disabled in the build test.

(cherry picked from commit 94ad755008a8594832ced751972a54ca305fd2c7)
2025-08-04 15:44:05 +01:00
Beniamino Galvani
8d3d57d352 sd-dhcp6-lease: fix calculation of t2
sd_dhcp6_lease_get_t2() was returning t1, and so the client was going directly
to the rebind state skipping the lease renewal.

Reported-by: Jaime Caamano <jcaamano@redhat.com>
Fixes: 394fac52d0e7 ("sd-dhcp6-client: introduce sd_dhcp6_lease_get_t1() and friends")
(cherry picked from commit 8f5eaeb143dd9e58503980ae5f63dd78c463180e)
2025-08-04 15:43:56 +01:00
Yu Watanabe
f36979b09a bootctl: do not fail when the same file is updated multiple times
In the second or later trial, copy_file_with_version_check() -> version_check()
fails with -ESRCH. Let's ignore the failure.

This also adds missing assertions in update_efi_boot_binaries(), and
drop redundant version check in update_efi_boot_binaries(), as version
will be anyway checked later.

Fixes a regression caused by 929f41c6528fb630753d4e2f588a8eb6c2f6a609.
Fixes #33392.

(cherry picked from commit 7107cfbf4f0bcb377f533f0dbc5b5a5ea41b41c0)
2025-08-04 15:43:35 +01:00
Yu Watanabe
d00ceb8795 test: add test case for issue #38265
(cherry picked from commit b92258eb229f84680b91e744e98d72429710770e)
2025-08-04 15:43:01 +01:00
Yu Watanabe
144aff77c6 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)
2025-08-04 15:42:02 +01:00
Luca Boccassi
d0e81f6497 readme: update ubuntu autopkgtest infra support channels
ubuntu is moving away from IRC

(cherry picked from commit 042138fbe711655b7cfa8e3f03edbf18a2bce5c1)
2025-08-04 15:41:02 +01:00
Zbigniew Jędrzejewski-Szmek
36a22a9f96 basic/socket-util: reserve more space for timeval/timespec messages
As reported in https://github.com/systemd/systemd/issues/38222, we get the
buffer size calculation wrong on 32-bit arm. The reporter suggested checking if
__TIMESIZE == 64, but I think it's better to just use the bigger size in all
cases. The code to guesstimate the buffer size was already tweaked a few times
and apparently it's not easy to get it right. Systemd and glibc might be
compiled with different combinations of __TIMESIZE, so the compile-time check
is not super reliable, and by using the bigger size, we don't depend on the
details of how glibc decided whether to duplicate the struct or not. The cost
is negligible, 16 bytes on stack, so let's do the easy and robust thing.

Solution based on the suggestion by UZver24.

While at it, drop the mock struct definitions. They are only used to calculate
the size, but since the types involved are 8-bit values, there are no alignment
issues and we can just calculate the size directly.

Fixes https://github.com/systemd/systemd/issues/38222.

(cherry picked from commit 0c927c98a7ba58e036a34f705c2a6b366107b6ea)
2025-08-04 15:40:14 +01:00
Sam James
743e10603a elf2efi: ignore .sframe
SFrames are a new format for stack unwinding information. Ignore it if
preset as is done for .eh_frame.

(cherry picked from commit e65455feade65c798fd1742220768eba7f81755b)
2025-08-04 15:38:21 +01:00
Matteo Croce
d67dec6708 tests: avoid apt-get asking for user input
apt needs to be called with `-y` to avoid asking for user input,
and thus blocking the script execution when ran non-interactively.

(cherry picked from commit 2e354ac7da7018fc8df355c4f362ee2ff7765f2a)
2025-08-04 15:38:06 +01:00
Lennart Poettering
59f3caf4ff repart: do not enforce 10M min size for immutable file systems by default
(cherry picked from commit f6c81cc80537c207709edd853777c1ba92284bb5)
2025-08-04 15:36:49 +01:00
DaanDeMeyer
2ca7d5e5f9 mkosi: Disable systemd-timesyncd by default
It causes quite a bit of debug log noise by repeated DNS lookups so
let's disable it by default to avoid log noise.

(cherry picked from commit e19e17df579823093238edb60470b29a2c5e24a6)
2025-08-04 15:34:27 +01:00
DaanDeMeyer
1aa50505e6 meson: Fix missing test dependencies
These test would fail when executed directly with meson test before
doing a build because the required dependencies are not declared, let's
fix that.

(cherry picked from commit 140850531877aad2401c7f83e60a3a2eac687883)
2025-08-04 15:34:09 +01:00
Linus Heckemann
04f6281432 vcs-tag.sh: use more compatible shebang
(cherry picked from commit 8a7a33ab1eb7f59da827b576368c2df3f8552074)
2025-08-04 15:32:49 +01:00
DaanDeMeyer
515f4699e0 workflows: Use hyphens in filenames instead of underscores
(cherry picked from commit 13a86b4d9ffbcf2f1300d35ce622513152078c38)
2025-08-04 15:31:56 +01:00
Luca Boccassi
25ac624d3f ci: re-enable uefi secure boot
Kernel 6.11.0-1018-azure is now in use, which has a workaround
for the HyperV bug, so this should work again in GHA

(cherry picked from commit 375d80b04a95bc460f54df26308ad4adcfce9bc4)
2025-08-04 15:30:09 +01:00
DaanDeMeyer
e35d1a1b9a core: Fix scope SIGTERM logging
KILL_TERMINATE_AND_LOG doesn't do anything at the moment, let's fix
that.

(cherry picked from commit b98d6bff23c61d536cd75435c46c58f1783e5bfd)
2025-08-04 15:29:38 +01:00
Yu Watanabe
3dfd0d1aac units: check if kmod command exists
We already check existences of quotaon in quotaon@.service and
quotacheck in systemd-quotacheck@.service.
Let's also check if kmod command exists.

Closes #38179.

(cherry picked from commit 7c208a64bab5532235a05755d72aab78675b9ec3)
2025-08-04 15:24:57 +01:00
vlefebvre
f8355daea3 uki.conf is used by the ukify tool to create an Unified Kernel Image. It
would make sense to install it only if ukify is wanted.

(cherry picked from commit 96ba43388f253cf94791bc46e1424359f836f2e3)
2025-08-04 15:22:28 +01:00
vlefebvre
f6893a829a detect-virt: add bare-metal support for GCE
Google Compute Engine are not only virtual but can be also physical
machines. Therefore checking only the dmi is not enough to detect if it
is a virtual machine. Therefore systemd-detect-virt return "google"
instead of "none" in c3-highcpu-metal machine.
SMBIOS will not help us to make the difference as for EC2 machines.
However, GCE use KVM hypervisor for these VM, we can use this
information to detect virtualization. [0]

Issue and changes has been tested on SUSE SLE-15-SP7 images with
systemd-254 for both GCE, bare-metal and VM.

[0] -
https://cloud.google.com/blog/products/gcp/7-ways-we-harden-our-kvm-hypervisor-at-google-cloud-security-in-plaintext

(cherry picked from commit fb71571d3a4efddeb44f02939304be9007301974)
2025-08-04 15:11:05 +01:00
DaanDeMeyer
25b357667f mkosi: Fix installation conditions for rpmautospec-rpm-macros
rpmautospec-rpm-macros is only in EPEL 9 so let's gate it properly
on that by splitting up the epel packages config file into two.

erofs-utils is in EPEL 9 and in CentOS Stream 10.

(cherry picked from commit 08197abb15081752db71fa967524cb76c56803c1)
2025-08-04 15:10:24 +01:00
DaanDeMeyer
1af3582591 mkosi: Drop epel-next repository for CentOS
It does not exist for CentOS Stream 10, it's only relevant for CentOS
Stream 9 in some corner cases which don't apply to us, so let's not enable
it to avoid complexity instead of only enabling it for CentOS Stream 9.

Follow up for 3800adc9e5e067e3869d95c75733368e11f4570a

(cherry picked from commit e05ba0662b889d0b3a51bb336514c5375dececbe)
2025-08-04 15:09:43 +01:00
Solar Designer
2fb0cb64c3 test-cgroup: Ignore ENOENT from cg_create()
which was the only test failure building systemd-252-51.el9 in a
container, also previously reported against 252-rc1 under Gentoo
in #25015

(cherry picked from commit 470da651109e2636c624ac27257a7a64472192f6)
2025-08-04 15:05:18 +01:00
DaanDeMeyer
842e9265cc ruff: Default to python 3.7 version
For some use cases we still want python 3.7 compat so let's default
to that and only target python 3.9 in a few specific cases.

(cherry picked from commit 88444243b80888b0d68879d9e9740249c292a0ae)
2025-08-04 15:03:55 +01:00
DaanDeMeyer
711be3b096 mkosi: Drop unnecessary [Match] sections
These are already satisfied in every path that includes pkgenv.conf.

(cherry picked from commit a4488ae6ae34612edd96212e5e4ee94bcc561b49)
2025-08-04 15:03:29 +01:00
DaanDeMeyer
422e0dc44f mkosi: Simplify centos/fedora configuration
Both EPEL 9 and 10 now have the packages we need except for dhcp-server
so let's get rid of the EPEL conditionals and simply skip the tests that
require dhcp-server on CentOS.

While we're at it, make sure we use the new Architecture=uefi match in
mkosi to simplify the uefi checks.

(cherry picked from commit 3800adc9e5e067e3869d95c75733368e11f4570a)
2025-08-04 15:03:28 +01:00
DaanDeMeyer
dd28a9ab6e mkosi: update mkosi commit reference to 184472f0f1f831ca29953546ec01fd941ff763a6
* 184472f0f1 mkosi-tools: make sure p11-kit dir exists when configuring module
* 9fb807884e mkosi-tools: Explicitly install p11-kit
* 9131877d60 Support matching against architectures with uefi support
* f1eab5a783 Rename sandbox verb to box
* d609f55d98 Fix /var/tmp directory cleanup
* 4997b9495c build(deps): bump github/codeql-action from 3.28.18 to 3.29.2

(cherry picked from commit 24a14e90500a2284c6f005f7d6987a863b24c5b1)
2025-08-04 15:03:01 +01:00
DaanDeMeyer
e398726bc4 vmspawn: Disable hpet for vmspawn x86 virtual machines
hpet is an emulated clocksource that is generally discouraged in favor
of kvm-clock or tsc for virtual machines. While vmspawn's virtual machines
already use kvm-clock, leaving hpet enabled causes qemu on the host to
consume a non-trivial amount of cpu, so let's disable the hpet feature since
we're not making use of it anyway.

(cherry picked from commit 8ba6c2b7f51ca7cdb0031e10dca8ab6bd06071a1)
2025-08-04 15:02:22 +01:00
Yu Watanabe
bc4a408804 ci: also set TEST_RUNNER environment variable in coverage test
Otherwise, integration-test-wrapper.py will fail.
```
Traceback (most recent call last):
  File "/home/runner/work/systemd/systemd/test/integration-tests/integration-test-wrapper.py", line 693, in <module>
    main()
    ~~~~^^
  File "/home/runner/work/systemd/systemd/test/integration-tests/integration-test-wrapper.py", line 677, in main
    runner = os.environ['TEST_RUNNER']
             ~~~~~~~~~~^^^^^^^^^^^^^^^
  File "<frozen os>", line 717, in __getitem__
KeyError: 'TEST_RUNNER'
```

Follow-up for c0a5801f7b034f3473c10f627d54671e1588963b.

(cherry picked from commit 0777d821ad525879990901081addc890bd11fede)
2025-08-04 15:00:46 +01:00
Zbigniew Jędrzejewski-Szmek
e06e5a735f 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)
2025-08-04 15:00:28 +01:00
Lennart Poettering
35783f84b7 cgroup: handle ENODEV on cg_read_pid() gracefully
The recently added test case TEST-07-PID1.subgroup-kill.sh surfaced a
race: if we enumerate PIDs in a cgroup, and the cgroup is unlinked at
the very same time reading will result in ENODEV. We need to handle that
gracefully. Hence let's do so.

Noticed while looking at:

https://github.com/systemd/systemd/actions/runs/16143084441/job/45554929264?pr=38120
(cherry picked from commit 726183627bf5aae68d537bfaa3cf8307bbc4d1f0)
2025-08-04 14:59:48 +01:00
Fabian Vogt
5a70dc3a19 units/initrd-cleanup.service: Conflict with emergency.target
This is very similar to 327cd2d3db703555f8d572b4cd055fbe55e1068b:

If emergency.target is started while initrd-cleanup.service/start is queued,
the initrd-cleanup job did not get canceled. In parallel to the emergency
units, it eventually runs the service, which in turn isolates and starts
initrd-switch-root.target. This stops the emergency units and effectively
starts the initrd boot process again, which likely fails again like the
initial attempt. The system is thus stuck in a loop, never really reaching
emergency.target.

This can be triggered if a service in between initrd-parse-etc.service
and initrd.target fails.

With this conflict added, starting emergency.target automatically cancels
initrd-cleanup.service/start, avoiding the loop.

(cherry picked from commit e21cd6db9cd21c4b1882b67c5f1ad648b9b45b05)
2025-08-04 14:58:07 +01:00
Yu Watanabe
1b84de59a1 man: mention relative PIDFile= in user service is prefixed with $XDG_RUNTIME_DIR
(cherry picked from commit 293cc8866da4c98d426519988d4c5c24144ed77d)
2025-08-04 14:56:56 +01:00
Yu Watanabe
6e6bdae90f core: allow to use PIDFile= in user session services
Fixes #38108.

Co-authored-by: 铝箔 <38349409+Sodium-Aluminate@users.noreply.github.com>
(cherry picked from commit 7e269126778875e7e8927d795132109fb9a9b3a1)
2025-08-04 14:56:56 +01:00
Lennart Poettering
a998c69721 test: invoke systemd-nspawn properly from a session
Let's not run user code outside of user context, that's not how things
are deployed, and means we cannot test the session setup properly

(cherry picked from commit 14354d70e176e5a9695c39ab9b3466ec44706591)
2025-08-04 14:56:05 +01:00
Lennart Poettering
f7f6a7a98c vmspawn: tighten parser of EXIT_STATUS=
The EXIT_STATUS is supposed to encapuslate an ANSI C process exit
status, which is 8bit unsigned. Hence parse it as such, do not accept
negative values, or values > 255.

(cherry picked from commit 5279acb58d9df0b136f4d2931e7b88c1c09a966a)
2025-08-04 14:54:57 +01:00
Lennart Poettering
03b75bdf5d man: also use title case in systemd.service(5)
Follow-up for: 172dd81e92198d4903a52001e20f0da7f0b9d8b2

(cherry picked from commit bb176bdb51c10fcee12f9f9fbe6f22e8f97e9ebf)
2025-08-04 14:53:19 +01:00
AsciiWolf
52f71132e1 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)
2025-08-04 14:50:52 +01:00
Luca Boccassi
82f3be942f meson: call qemu with -machine virt on aarch64
'qemu-system-aarch64 -device help' fails when no machine is specified.
Use the 'virt' type which seems to be what everyone uses for VMs.

(cherry picked from commit 163e6662042a853b448802bb195504dca49d7bbe)
2025-08-04 14:50:10 +01:00
Luca Boccassi
d25a3b2334 meson: do not reference variable unless feature that defines it is enabled
SYSTEMD_LANGUAGE_FALLBACK_MAP is used by the localed test, and
language_fallback_map is defined by the localed meson.
If the feature is disabled, the test is not built so the env var
is not needed, and the meson variable is not defined so the build
fails.

(cherry picked from commit ec0bbbd2a994979992b2e9dcde7b97e89ccf5b31)
2025-08-04 14:50:02 +01:00
DaanDeMeyer
3433b3726d ask-password-api: Add more debug logging
(cherry picked from commit 5fe08a12e662e10ef9de325c52ce216a86c10b98)
2025-08-04 14:49:41 +01:00
Luca Boccassi
2d868e611d ci: use -p and -f when creating dirs/removing files in mkosi job btrfs setup
It failed at least once:

mkdir: cannot create directory ‘/mnt/mkosi’: File exists
(cherry picked from commit a06e64d8847f328b204c65236bf937eeb7831f3d)
2025-08-04 14:48:23 +01:00
Gabríel Arthúr Pétursson
db3bbabf48 man: Fix typo in name of sd_id128_to_uuid_string
(cherry picked from commit cd12611a88b03d87aa6ca845a243a1c412acae07)
2025-08-04 14:48:00 +01:00
Luca Boccassi
4f7eba7662 test: /lib64 is not guaranteed to exist, do not try to copy it if not
(cherry picked from commit 4bffb45bb74ca34f9dc90dab7710898fcd9a097d)
2025-08-04 14:47:44 +01:00
Luca Boccassi
b51210792e test: bump machinectl timeouts from 10s to 30s
Nested arm64 VMs are very slow, bump the timeouts

(cherry picked from commit a1000c075b5338e17c64ecf233c478ae59bf4fd0)
2025-08-04 14:47:43 +01:00
Luca Boccassi
5a0231287f test: do not fail if scsi_debug module not available
On Debian it's only built on amd64 kernels, so skip test cases if it
cannot be loaded

(cherry picked from commit b6be8bf2c638ac93c982c95230ed33a408236a4e)
2025-08-04 14:47:15 +01:00
Zbigniew Jędrzejewski-Szmek
22ed6440ac test-dirent-util: remove strange whitespace
(cherry picked from commit 269dcf01156920b676616825eb698330c2de59ba)
2025-08-04 14:46:27 +01:00
Zbigniew Jędrzejewski-Szmek
78421f6186 tests: use log_tests_skipped more, use shorter form
Also change order to handle errors before 0 in one case.

(cherry picked from commit eb5b854150ec1d7b5613cc2ae470239c58345a68)
2025-08-04 14:46:27 +01:00
Luca Boccassi
1e1b54ad6d 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)
2025-08-04 14:26:02 +01:00
Luca Boccassi
c75647c693 ci: also install llvm-<version>
On some architectures that's not pulled in by default, it ships llvm-ar
which is needed by meson

(cherry picked from commit d7095eea4f333b01a065e610441d37bc88a1c1e7)
2025-08-04 14:24:29 +01:00
Luca Boccassi
cc0738ac9e ci: install packages available only on x86_64/arm64 on those arches only
(cherry picked from commit 14a6b5feceb5fb324c110a23649892b6331f5ccc)
2025-08-04 14:24:20 +01:00
Luca Boccassi
e433a4294a mkosi: libclang-rt-dev is not available on s390x
Doesn't seem intentional, so use a regex for now:
https://bugs.debian.org/1108683

(cherry picked from commit 5d9881b89cdfcff89a68f005becf67136876007d)
2025-08-04 14:24:11 +01:00
Luca Boccassi
4dc006fca9 mkosi: move efi packages to conditional drop-in
(cherry picked from commit 71f9082c7bc8592b7605cc9c737cee044d1824fe)
2025-08-04 14:24:01 +01:00
Yu Watanabe
554f52ce10 openssl-util: allow to build with openssl without UI support
When OpenSSL is built without UI support, OPENSSL_NO_UI_CONSOLE is
defined. Or, even openssl is built with UI support, people may want to
build systemd without using OpenSSL's UI feature by specifying
-Dc_args='-DOPENSSL_NO_UI_CONSOLE=1'. This adds support for such cases.

Not tested, but hopefully, now systemd can be built with other ssl library,
like BoringSSL, which deos not support UIs.

Closes #38024.

(cherry picked from commit d1d16c624d029de4cace33b7c5dc59983b9739dc)
2025-08-04 14:21:56 +01:00
Frede Braendstrup
081b086c96 fix: UnsetProperty example in systemd.link.xml
(cherry picked from commit f1a00fcb976337d0292d1c527f11de9ba1538b5c)
2025-08-04 14:20:26 +01:00
Yu Watanabe
192beebe6a test-local-addresses: enable IPv6 on the test interface
If IPv6 is disabled by default, we need to explicitly enable IPv6 on the
interface. Otherwise, adding an IPv6 address or route will fail.

(cherry picked from commit 16eaed02bc29f54e6ddf173b4ac95c6cf31ee5ff)
2025-08-04 14:19:57 +01:00
Yu Watanabe
c973a96b83 test-local-addresses: use ASSERT_OK() and friends
(cherry picked from commit 11ad2b716911a9af6823ad07ed46cfd11d36b084)
2025-08-04 14:19:48 +01:00
Luca Boccassi
b9a6d1078b macro: EDG compiler frontends doesn't support enum types
It declares STDC_VERSION 202311L but still doesn't support this feature:

https://en.cppreference.com/w/c/compiler_support/23

The EDG frontend is used by intellisense, which is the default
engine in VSCode, so parsing is currently broken and tons of
spurious errors are shown. Skip this feature when this
compiler frontend is used.

Follow-up for 92100f14c3b054903053559ed831a1b25033046c

(cherry picked from commit e01ca3afdb297fe879eaabd02901ad2a4b547d0c)
2025-08-04 14:17:37 +01:00
Luca Boccassi
71411cdade sd-common: do not fail preprocessor when intellisense is parsing the header
Just like coverity or clang analyzer, intellisense will parse _sd-common.h and
fail because of the #error so skip it like the others

(cherry picked from commit 942cb8a7c0861245ac0c734289d6ae7840bde080)
2025-08-04 14:17:37 +01:00
Myrrh Periwinkle
0b7c24a40e logind: use manager_get_session_by_leader in manager_get_session_by_pidref
(cherry picked from commit e523d9e9c40bd25fb55e589de7eec323dcfd37ae)
2025-08-04 14:17:37 +01:00
Daan De Meyer
e00ef5377c libsystemd: Skip _sd-common.h include check when __clang_analyzer__ is defined
This check doesn't work properly when tools such as clang-tidy are
analyzing headers. Since we don't care about the check in that case,
skip it if __clang_analyzer__ is defined similar to how we skip it as
well if __COVERITY__ is defined.

(cherry picked from commit 84104ad613c5035ed7d3811d97fbb15362b94f7f)
2025-08-04 14:13:20 +01:00
Myrrh Periwinkle
f1f93821f3 logind: Don't match non-leader processes for utmp TTY determination
This ensures we don't erroneously assign pseudoterminals created by
terminal emulators that use utempter to register themselves in utmp when
run under a GUI session that doesn't have a TTY assigned.

(cherry picked from commit 1a088b564aae220241ca2ef7f0d4ec732f97e29c)
2025-08-04 14:10:35 +01:00
Lennart Poettering
e10d0d7f66 logind: pick up tty info from utmp only for tty sessions
Let's tighten the rules for picking up TTY information from utmp: let's
do so only for TTY session, nothing else. Apparently people have issues
with graphical sessions with certain terminal emulators that install
entries in utmp for each emulator window.

Alternative for: #38027

(cherry picked from commit bd578c2d66286a874c1bddf6ea7203e38fa16fa9)
2025-08-04 14:10:35 +01:00
Lennart Poettering
42f2f76482 logind: use memdup_suffix0() where appropiate
memdup_suffix0() is the call of choice when we are dealing with an input
that might not be NUL terminated. strndup() assumes NUL termination.

(cherry picked from commit d3f04a6fa541280a8a205a3d4d2313a043b7a32d)
2025-08-04 14:08:48 +01:00
Yu Watanabe
696af692ff TEST-17-UDEV: check the exit code at last
Otherwise, it is hard to debug when the test failed.

(cherry picked from commit bb60dd27a6ca2134f5afd996d4a072a73718e635)
2025-08-04 14:01:55 +01:00
Zbigniew Jędrzejewski-Szmek
3466d535f0 meson: quote paths in generated systemd-runtest.env
Looking at aecb6eaed7d39d73f296c86a882c644b18b7e634, it seems that we
want build paths with spaces to be supported. Let's use 'printf %q' here
to make that work. Also, use capture:true to make the command less complicated.

(cherry picked from commit 0a580dee6bb6c63d587527fc630f1642deea99b5)
2025-08-04 14:00:44 +01:00
Lennart Poettering
12a455db36 resolved: don't wait for TLS close_notify replies unnecessarily
This is based on #35764 by Guruswamy Basavaiah, but covers further code
paths.

This ensures that when we initiate a TLS shutdown we'll write out our
own close_notify message, but not wait for the close_notify reply from
the server side anymore.

Replaces: #35764
(cherry picked from commit 4b6dbd4ea5d08bf2013f3590ec828399f0e8b66c)
2025-08-04 13:59:27 +01:00
Fleuria
c244217309 timer: Do not recalculate monotonic elapse time on clock change
The only clock change that affects monotonic timers is suspend causing
CLOCK_MONOTONIC to fall behind CLOCK_BOOTTIME. However, monotonic timers
that use CLOCK_BOOTTIME are not intended to have their elapse time
changed after a suspend. Hence condition the calculation of monotonic
timers’ elapse times on the cause not being a clock change.

Fixes #29245

(cherry picked from commit bed9d2587c852c6dad5b2959a6313c8590e5d6a6)
2025-08-04 13:59:07 +01:00
Lennart Poettering
f6d6c1ce6e boot: downgrade log messages about invalid timeouts
We correctly handle invalid timeouts being stored in EFI variables, but
because we deal with this gracefully we should downgrade the log level
to warning, and say "ignoring" in the log message.

Inspired by #34084

(cherry picked from commit 76a71fb64d6b62be90e35aeca2ee19baeb2d813c)
2025-08-04 13:57:35 +01:00
Daan De Meyer
1cd87b4870 mkosi: update mkosi commit reference to 0d1143150835b21c1bfe64428df5f45b558280b1
* b2fe7ba6b1 Do not use return in finally
* b4f3088535 Ensure directories exist before running sync scripts
* e83e7036b0 mkosi-obs: also allow enrolling additional certs in KEK
* b6432fbc29 initrd: Copy /etc/pki/rpm-gpg into sandbox tree
* 44b96b93c8 Partially revert "resources: add systemd-boot-efi"
* 7a22260179 Check that keys are both in context.cli and history
* 6570b21a4b fix: Remove `erofs-utils` from initrd
* ff61c5022a mkosi-initrd: Add atkbd and i8042 modules to the default initrd modules
* eaa37f7c6c Generate initrds outside of umask context manager
* de09209520 ci: Drop differential shellcheck
* d07c6b93c9 build(deps): bump github/codeql-action from 3.28.16 to 3.28.18
* 9a12fb1bef Check that commit exists in config_parse_minimum_version()
* 9e5b4f8932 kmod: factor out comparison and also count empty directories as invalid
* 39ed5ef6c2 apt: support including additional configuration for reprepro

(cherry picked from commit 5a6c4e3339c40b117c25bb4dd2a20a2d6c0fcc6b)
2025-08-04 13:57:22 +01:00
Daan De Meyer
10bce0209f tools: Fix fetch-mkosi changelog generation
(cherry picked from commit 1095865d2613f4589848a1c05e0f47ff959a134e)
2025-08-04 13:57:13 +01:00
Zbigniew Jędrzejewski-Szmek
8b7b34c2a6 docs/TPM2_PCR_MEASUREMENTS: fix typo
(cherry picked from commit 85b84437c854b963d1dfe1dd2405ee90a74d2df5)
2025-08-04 13:57:07 +01:00
Zbigniew Jędrzejewski-Szmek
03ad588e25 docs/TPM2_PCR_MEASUREMENTS: link to the PCR registry page
(cherry picked from commit ab7e55f19547fb04662d4330d00ae72044634acf)
2025-08-04 13:56:59 +01:00
Daan De Meyer
b8cea2e46a nspawn: Allow bpf() syscall if CAP_BPF is retained
CAP_BPF is closely associated with the bpf() syscall so it makes sense
to allow the latter if the former is retained.

(cherry picked from commit 9cb6d2bf859f0b28953d18ae647ca19e81a1b55a)
2025-08-04 13:43:31 +01:00
218 changed files with 13568 additions and 3496 deletions

View File

@ -27,6 +27,7 @@ PACKAGES=(
isc-dhcp-client
itstool
kbd
libarchive-dev
libblkid-dev
libbpf-dev
libcap-dev
@ -43,7 +44,6 @@ PACKAGES=(
libqrencode-dev
libssl-dev
libtss2-dev
libxen-dev
libxkbcommon-dev
libxtables-dev
libzstd-dev
@ -70,6 +70,10 @@ LINKER="${LINKER:?}"
CRYPTOLIB="${CRYPTOLIB:?}"
RELEASE="$(lsb_release -cs)"
if [ "$(uname -m)" = "aarch64" ] || [ "$(uname -m)" = "x86_64" ]; then
PACKAGES+=(libxen-dev)
fi
# Note: As we use postfixed clang/gcc binaries, we need to override $AR
# as well, otherwise meson falls back to ar from binutils which
# doesn't work with LTO
@ -96,7 +100,7 @@ if [[ "$COMPILER" == clang ]]; then
sudo tee /etc/apt/sources.list.d/llvm-toolchain.list
fi
PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "python3-lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION")
PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "python3-lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION" "llvm-$COMPILER_VERSION")
elif [[ "$COMPILER" == gcc ]]; then
CC="gcc-$COMPILER_VERSION"
CXX="g++-$COMPILER_VERSION"
@ -110,7 +114,11 @@ elif [[ "$COMPILER" == gcc ]]; then
sudo add-apt-repository -y --no-update ppa:ubuntu-toolchain-r/test
fi
PACKAGES+=("gcc-$COMPILER_VERSION" "gcc-$COMPILER_VERSION-multilib")
PACKAGES+=("gcc-$COMPILER_VERSION")
if [ "$(uname -m)" = "x86_64" ]; then
# Only needed for ia32 EFI builds
PACKAGES+=("gcc-$COMPILER_VERSION-multilib")
fi
else
fatal "Unknown compiler: $COMPILER"
fi

View File

@ -35,4 +35,4 @@ jobs:
- name: Repository checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Build check
run: .github/workflows/build_test.sh
run: .github/workflows/build-test.sh

View File

@ -50,7 +50,7 @@ jobs:
languages: ${{ matrix.language }}
config-file: ./.github/codeql-config.yml
- run: sudo -E .github/workflows/unit_tests.sh SETUP
- run: sudo -E .github/workflows/unit-tests.sh SETUP
- name: Autobuild
uses: github/codeql-action/autobuild@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d

View File

@ -24,7 +24,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: systemd/mkosi@5e739ef1ed02a4f3b6ae64e50a8ee186cbcb21c2
- uses: systemd/mkosi@655baf24474a6f0732ec1b82a71c2f6fe4eeeb49
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
# immediately, we remove the files in the background. However, we first move them to a different location
@ -49,9 +49,6 @@ jobs:
- name: Configure
run: |
# XXX: drop after the HyperV bug that breaks secure boot KVM guests is solved
sed -i "s/'firmware'\s*:\s*'auto'/'firmware' : 'uefi'/g" test/*/meson.build
tee mkosi/mkosi.local.conf <<EOF
[Distribution]
Distribution=arch
@ -116,6 +113,8 @@ jobs:
# used in integration-test-wrapper.py to construct the `gh` command line to download the journals
# of failed tests.
sudo --preserve-env mkosi sandbox -- \
env \
TEST_RUNNER=ubuntu-24.04 \
meson test \
-C build \
--no-rebuild \

View File

@ -25,6 +25,6 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
# Reuse the setup phase of the unit test script to avoid code duplication
- name: Install build dependencies
run: sudo -E .github/workflows/unit_tests.sh SETUP
run: sudo -E .github/workflows/unit-tests.sh SETUP
- name: Build & upload the results
run: tools/coverity.sh

View File

@ -36,7 +36,7 @@ jobs:
VALIDATE_ALL_CODEBASE: false
VALIDATE_GITHUB_ACTIONS: true
- uses: systemd/mkosi@5e739ef1ed02a4f3b6ae64e50a8ee186cbcb21c2
- uses: systemd/mkosi@655baf24474a6f0732ec1b82a71c2f6fe4eeeb49
- name: Check that tabs are not used in Python code
run: sh -c '! git grep -P "\\t" -- src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py'

View File

@ -113,7 +113,7 @@ jobs:
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: systemd/mkosi@5e739ef1ed02a4f3b6ae64e50a8ee186cbcb21c2
- uses: systemd/mkosi@655baf24474a6f0732ec1b82a71c2f6fe4eeeb49
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
# immediately, we remove the files in the background. However, we first move them to a different location
@ -128,14 +128,14 @@ jobs:
run: |
truncate --size=100G btrfs.raw
mkfs.btrfs btrfs.raw
sudo mkdir /mnt/mkosi
sudo mkdir -p /mnt/mkosi
LOOP="$(sudo losetup --find --show --direct-io=on btrfs.raw)"
rm btrfs.raw
rm -f btrfs.raw
sudo mount "$LOOP" /mnt/mkosi --options compress=zstd:1,user_subvol_rm_allowed,noatime,discard=async,space_cache=v2
sudo chown "$(id -u):$(id -g)" /mnt/mkosi
mkdir /mnt/mkosi/tmp
mkdir -p /mnt/mkosi/tmp
echo "TMPDIR=/mnt/mkosi/tmp" >>"$GITHUB_ENV"
ln -s /mnt/mkosi/build build
ln -sf /mnt/mkosi/build build
- name: Configure
run: |

View File

@ -19,12 +19,11 @@ ADDITIONAL_DEPS=(
libxkbcommon-dev
libzstd-dev
python3-libevdev
python3-pefile
python3-pip
python3-pyelftools
python3-pyparsing
python3-pytest
rpm
systemd-boot-efi
zstd
)
@ -43,6 +42,11 @@ set -ex
MESON_ARGS=(-Dcryptolib=${CRYPTOLIB:-auto})
if [ "$(uname -m)" = "aarch64" ] || [ "$(uname -m)" = "x86_64" ]; then
ADDITIONAL_DEPS+=(python3-pefile)
ADDITIONAL_DEPS+=(systemd-boot-efi)
fi
# (Re)set the current oom-{score-}adj. For some reason root on GH actions is able to _decrease_
# its oom-score even after dropping all capabilities (including CAP_SYS_RESOURCE), until the
# score is explicitly changed after sudo. No idea what's going on, but it breaks

View File

@ -38,8 +38,8 @@ jobs:
sudo sed -i '/^XDG_/d' /etc/environment
# Pass only specific env variables through sudo, to avoid having
# the already existing XDG_* stuff on the "other side"
sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh SETUP
sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit-tests.sh SETUP
- name: Build & test
run: sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh RUN_${{ matrix.run_phase }}
run: sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit-tests.sh RUN_${{ matrix.run_phase }}
env:
CRYPTOLIB: ${{ matrix.cryptolib }}

View File

@ -70,8 +70,8 @@ The following exceptions apply:
- src/fundamental/sha1-fundamental.c
- src/fundamental/sha1-fundamental.h
* the following files are licensed under **BSD-3-Clause** license:
- src/boot/efi/chid.c
- src/boot/efi/chid.h
- src/boot/chid.c
- src/boot/chid.h
* Heebo fonts under docs/fonts/ are licensed under the **SIL Open Font License 1.1**,
* any files under test/ without an explicit license we assume non-copyrightable
(eg: computer-generated fuzzer data)

View File

@ -25,7 +25,6 @@ support_sed = 's~%SUPPORT_URL%~@0@~'.format(support_url)
foreach file : in_files
catalogs += custom_target(
file,
input : file + '.in',
output: file,
command : [sed, support_sed, '@INPUT@'],

View File

@ -351,12 +351,13 @@ All tools:
default is not appropriate for a given system. Defaults to `5`, accepts
positive integers.
* `$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_INTERVAL_SEC` — can be set to override the mount
units interval rate limit for parsing `/proc/self/mountinfo`. Similar to
`$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_BURST`, the interval limit maybe adjusted when
the default is not appropriate for a given system. The default value is 1 and the
default application time unit is second, and the time unit can beoverriden as usual
by specifying it explicitly, see the systemd.time(7) man page.
* `$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_INTERVAL_SEC` — can be set to override the
mount units interval rate limit for parsing `/proc/self/mountinfo`. Similar
to `$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_BURST`, the interval limit maybe
adjusted when the default is not appropriate for a given system. The default
value is 1, the default application time unit is second, and the time unit
can be overridden as usual by specifying it explicitly, see the
systemd.time(7) man page.
`systemd-remount-fs`:

View File

@ -16,6 +16,10 @@ measurements listed below are (by default) only done if a system is booted with
to systemd's UEFI-mode measurements, and if the latter are not done the former
aren't made either.
See
[Linux TPM PCR Registry](https://uapi-group.org/specifications/specs/linux_tpm_pcr_registry/)
for an overview of PCRs.
systemd will measure to PCRs 5 (`boot-loader-config`), 11 (`kernel-boot`),
12 (`kernel-config`), 13 (`sysexts`), 15 (`system-identity`).
@ -41,7 +45,7 @@ used for new, additional measurements.
## PCR Measurements Made by `systemd-boot` (UEFI)
### PCS 5, `EV_EVENT_TAG`, `loader.conf`
### PCR 5, `EV_EVENT_TAG`, `loader.conf`
The content of `systemd-boot`'s configuration file, `loader/loader.conf`, is
measured as a tagged event.

View File

@ -1,7 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
custom_target(
'README',
input : 'README.in',
output : 'README',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],

View File

@ -3,7 +3,6 @@
factory_etc_dir = factorydir / 'etc'
custom_target(
'locale.conf',
input : 'locale.conf.in',
output : 'locale.conf',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
@ -11,7 +10,6 @@ custom_target(
install_dir : factory_etc_dir)
custom_target(
'vconsole.conf',
input : 'vconsole.conf.in',
output : 'vconsole.conf',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],

File diff suppressed because it is too large Load Diff

View File

@ -228,6 +228,9 @@ acpi:ISIC*:
acpi:JMIC*:
ID_VENDOR_FROM_DATABASE=Shenzhen Jaguar Microsystems Co.,Ltd.
acpi:JPMC*:
ID_VENDOR_FROM_DATABASE=JP Morgan Chase N.A.
acpi:JSYS*:
ID_VENDOR_FROM_DATABASE=Juniper Systems, Inc.
@ -327,6 +330,9 @@ acpi:RKCP*:
acpi:ROKL*:
ID_VENDOR_FROM_DATABASE=Rockwell Automation, Inc
acpi:ROKU*:
ID_VENDOR_FROM_DATABASE=Roku, Inc.
acpi:RPIL*:
ID_VENDOR_FROM_DATABASE=Raspberry Pi

View File

@ -1,5 +1,5 @@
--- 20-acpi-vendor.hwdb.base 2025-05-15 10:42:40.716482750 +0200
+++ 20-acpi-vendor.hwdb 2025-05-15 10:42:40.720482763 +0200
--- 20-acpi-vendor.hwdb.base 2025-08-04 12:23:12.909334713 +0100
+++ 20-acpi-vendor.hwdb 2025-08-04 12:23:12.917334855 +0100
@@ -3,6 +3,8 @@
# Data imported from:
# https://uefi.org/uefi-pnp-export
@ -19,7 +19,7 @@
acpi:AMDI*:
ID_VENDOR_FROM_DATABASE=AMD
@@ -418,6 +417,9 @@
@@ -424,6 +423,9 @@
acpi:AAA*:
ID_VENDOR_FROM_DATABASE=Avolites Ltd
@ -29,7 +29,7 @@
acpi:AAE*:
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
@@ -445,6 +447,9 @@
@@ -451,6 +453,9 @@
acpi:ABO*:
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
@ -39,7 +39,7 @@
acpi:ABS*:
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
@@ -490,7 +495,7 @@
@@ -496,7 +501,7 @@
acpi:ACO*:
ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
@ -48,7 +48,7 @@
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
acpi:ACR*:
@@ -769,6 +774,9 @@
@@ -775,6 +780,9 @@
acpi:AMT*:
ID_VENDOR_FROM_DATABASE=AMT International Industry
@ -58,7 +58,7 @@
acpi:AMX*:
ID_VENDOR_FROM_DATABASE=AMX LLC
@@ -817,6 +825,9 @@
@@ -823,6 +831,9 @@
acpi:AOA*:
ID_VENDOR_FROM_DATABASE=AOpen Inc.
@ -68,7 +68,7 @@
acpi:AOE*:
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
@@ -826,6 +837,9 @@
@@ -832,6 +843,9 @@
acpi:AOT*:
ID_VENDOR_FROM_DATABASE=Alcatel
@ -78,7 +78,7 @@
acpi:APC*:
ID_VENDOR_FROM_DATABASE=American Power Conversion
@@ -1007,7 +1021,7 @@
@@ -1013,7 +1027,7 @@
ID_VENDOR_FROM_DATABASE=ALPS ALPINE CO., LTD.
acpi:AUO*:
@ -87,7 +87,7 @@
acpi:AUR*:
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
@@ -1087,6 +1101,9 @@
@@ -1093,6 +1107,9 @@
acpi:AXE*:
ID_VENDOR_FROM_DATABASE=Axell Corporation
@ -97,7 +97,7 @@
acpi:AXI*:
ID_VENDOR_FROM_DATABASE=American Magnetics
@@ -1246,6 +1263,9 @@
@@ -1252,6 +1269,9 @@
acpi:BML*:
ID_VENDOR_FROM_DATABASE=BIOMED Lab
@ -107,7 +107,7 @@
acpi:BMS*:
ID_VENDOR_FROM_DATABASE=BIOMEDISYS
@@ -1258,6 +1278,9 @@
@@ -1264,6 +1284,9 @@
acpi:BNO*:
ID_VENDOR_FROM_DATABASE=Bang & Olufsen
@ -117,7 +117,7 @@
acpi:BNS*:
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
@@ -1504,6 +1527,9 @@
@@ -1510,6 +1533,9 @@
acpi:CHA*:
ID_VENDOR_FROM_DATABASE=Chase Research PLC
@ -127,7 +127,7 @@
acpi:CHD*:
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
@@ -1669,6 +1695,9 @@
@@ -1675,6 +1701,9 @@
acpi:COD*:
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
@ -137,7 +137,7 @@
acpi:COI*:
ID_VENDOR_FROM_DATABASE=Codec Inc.
@@ -2087,7 +2116,7 @@
@@ -2093,7 +2122,7 @@
ID_VENDOR_FROM_DATABASE=Dragon Information Technology
acpi:DJE*:
@ -146,7 +146,7 @@
acpi:DJP*:
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
@@ -2440,6 +2469,9 @@
@@ -2446,6 +2475,9 @@
acpi:EIN*:
ID_VENDOR_FROM_DATABASE=Elegant Invention
@ -156,7 +156,7 @@
acpi:EKA*:
ID_VENDOR_FROM_DATABASE=MagTek Inc.
@@ -2710,6 +2742,9 @@
@@ -2716,6 +2748,9 @@
acpi:FCG*:
ID_VENDOR_FROM_DATABASE=First International Computer Ltd
@ -166,7 +166,7 @@
acpi:FCS*:
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
@@ -3086,7 +3121,7 @@
@@ -3092,7 +3127,7 @@
ID_VENDOR_FROM_DATABASE=General Standards Corporation
acpi:GSM*:
@ -175,7 +175,7 @@
acpi:GSN*:
ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc.
@@ -3196,6 +3231,9 @@
@@ -3202,6 +3237,9 @@
acpi:HEC*:
ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd.
@ -185,7 +185,7 @@
acpi:HEL*:
ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd
@@ -3331,6 +3369,9 @@
@@ -3337,6 +3375,9 @@
acpi:HSD*:
ID_VENDOR_FROM_DATABASE=HannStar Display Corp
@ -195,7 +195,7 @@
acpi:HSM*:
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
@@ -3457,6 +3498,9 @@
@@ -3463,6 +3504,9 @@
acpi:ICI*:
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
@ -205,7 +205,7 @@
acpi:ICM*:
ID_VENDOR_FROM_DATABASE=Intracom SA
@@ -3553,6 +3597,9 @@
@@ -3559,6 +3603,9 @@
acpi:IKE*:
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
@ -215,7 +215,7 @@
acpi:IKS*:
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
@@ -3601,6 +3648,9 @@
@@ -3607,6 +3654,9 @@
acpi:IMX*:
ID_VENDOR_FROM_DATABASE=arpara Technology Co., Ltd.
@ -225,7 +225,7 @@
acpi:INA*:
ID_VENDOR_FROM_DATABASE=Inventec Corporation
@@ -4129,6 +4179,9 @@
@@ -4135,6 +4185,9 @@
acpi:LAN*:
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
@ -235,7 +235,7 @@
acpi:LAS*:
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
@@ -4180,6 +4233,9 @@
@@ -4186,6 +4239,9 @@
acpi:LED*:
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
@ -245,7 +245,7 @@
acpi:LEG*:
ID_VENDOR_FROM_DATABASE=Legerity, Inc
@@ -4198,6 +4254,9 @@
@@ -4204,6 +4260,9 @@
acpi:LGD*:
ID_VENDOR_FROM_DATABASE=LG Display
@ -255,7 +255,7 @@
acpi:LGI*:
ID_VENDOR_FROM_DATABASE=Logitech Inc
@@ -4264,6 +4323,9 @@
@@ -4270,6 +4329,9 @@
acpi:LND*:
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
@ -265,7 +265,7 @@
acpi:LNK*:
ID_VENDOR_FROM_DATABASE=Link Tech Inc
@@ -4298,7 +4360,7 @@
@@ -4304,7 +4366,7 @@
ID_VENDOR_FROM_DATABASE=Design Technology
acpi:LPL*:
@ -274,7 +274,7 @@
acpi:LSC*:
ID_VENDOR_FROM_DATABASE=LifeSize Communications
@@ -4474,6 +4536,9 @@
@@ -4480,6 +4542,9 @@
acpi:MCX*:
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
@ -284,7 +284,7 @@
acpi:MDA*:
ID_VENDOR_FROM_DATABASE=Media4 Inc
@@ -4720,6 +4785,9 @@
@@ -4726,6 +4791,9 @@
acpi:MOM*:
ID_VENDOR_FROM_DATABASE=Momentum Data Systems
@ -294,7 +294,7 @@
acpi:MOS*:
ID_VENDOR_FROM_DATABASE=Moses Corporation
@@ -4960,6 +5028,9 @@
@@ -4966,6 +5034,9 @@
acpi:NAL*:
ID_VENDOR_FROM_DATABASE=Network Alchemy
@ -304,7 +304,7 @@
acpi:NAT*:
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
@@ -5500,6 +5571,9 @@
@@ -5506,6 +5577,9 @@
acpi:PCX*:
ID_VENDOR_FROM_DATABASE=PC Xperten
@ -314,7 +314,7 @@
acpi:PDM*:
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
@@ -5563,9 +5637,6 @@
@@ -5569,9 +5643,6 @@
acpi:PHE*:
ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH
@ -324,7 +324,7 @@
acpi:PHL*:
ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company
@@ -5656,9 +5727,6 @@
@@ -5662,9 +5733,6 @@
acpi:PNL*:
ID_VENDOR_FROM_DATABASE=Panelview, Inc.
@ -334,7 +334,7 @@
acpi:PNR*:
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
@@ -6136,9 +6204,6 @@
@@ -6142,9 +6210,6 @@
acpi:RTI*:
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
@ -344,7 +344,7 @@
acpi:RTL*:
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
@@ -6313,9 +6378,6 @@
@@ -6319,9 +6384,6 @@
acpi:SEE*:
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
@ -354,7 +354,7 @@
acpi:SEI*:
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
@@ -6799,6 +6861,9 @@
@@ -6805,6 +6867,9 @@
acpi:SVD*:
ID_VENDOR_FROM_DATABASE=SVD Computer
@ -364,7 +364,7 @@
acpi:SVI*:
ID_VENDOR_FROM_DATABASE=Sun Microsystems
@@ -6883,6 +6948,9 @@
@@ -6889,6 +6954,9 @@
acpi:SZM*:
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
@ -374,7 +374,7 @@
acpi:TAA*:
ID_VENDOR_FROM_DATABASE=Tandberg
@@ -6973,6 +7041,9 @@
@@ -6979,6 +7047,9 @@
acpi:TDG*:
ID_VENDOR_FROM_DATABASE=Six15 Technologies
@ -384,7 +384,7 @@
acpi:TDM*:
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
@@ -7015,6 +7086,9 @@
@@ -7021,6 +7092,9 @@
acpi:TEV*:
ID_VENDOR_FROM_DATABASE=Televés, S.A.
@ -394,7 +394,7 @@
acpi:TEZ*:
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
@@ -7144,9 +7218,6 @@
@@ -7150,9 +7224,6 @@
acpi:TNC*:
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
@ -404,7 +404,7 @@
acpi:TNM*:
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
@@ -7459,14 +7530,14 @@
@@ -7465,14 +7536,14 @@
acpi:UNC*:
ID_VENDOR_FROM_DATABASE=Unisys Corporation
@ -425,7 +425,7 @@
acpi:UNI*:
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
@@ -7501,6 +7572,9 @@
@@ -7507,6 +7578,9 @@
acpi:USA*:
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
@ -435,7 +435,7 @@
acpi:USD*:
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
@@ -7762,9 +7836,6 @@
@@ -7768,9 +7842,6 @@
acpi:WAL*:
ID_VENDOR_FROM_DATABASE=Wave Access
@ -445,7 +445,7 @@
acpi:WAV*:
ID_VENDOR_FROM_DATABASE=Wavephore
@@ -7892,7 +7963,7 @@
@@ -7898,7 +7969,7 @@
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
acpi:WYS*:
@ -454,7 +454,7 @@
acpi:WYT*:
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
@@ -7906,9 +7977,6 @@
@@ -7912,9 +7983,6 @@
acpi:XDM*:
ID_VENDOR_FROM_DATABASE=XDM Ltd.
@ -464,7 +464,7 @@
acpi:XES*:
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
@@ -7942,9 +8010,6 @@
@@ -7948,9 +8016,6 @@
acpi:XNT*:
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
@ -474,7 +474,7 @@
acpi:XQU*:
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
@@ -8011,6 +8076,9 @@
@@ -8017,6 +8082,9 @@
acpi:ZBX*:
ID_VENDOR_FROM_DATABASE=Zebax Technologies

View File

@ -395,6 +395,9 @@ pci:v*d*sv*sd*bc08sc05*
pci:v*d*sv*sd*bc08sc06*
ID_PCI_SUBCLASS_FROM_DATABASE=IOMMU
pci:v*d*sv*sd*bc08sc07*
ID_PCI_SUBCLASS_FROM_DATABASE=Root Complex Event Collector
pci:v*d*sv*sd*bc08sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=System peripheral

File diff suppressed because it is too large Load Diff

View File

@ -119,6 +119,12 @@ usb:v017C*
usb:v017Cp145F*
ID_MODEL_FROM_DATABASE=Trust Deskset
usb:v019C*
ID_VENDOR_FROM_DATABASE=mek
usb:v019Cp0042*
ID_MODEL_FROM_DATABASE=mek_42
usb:v0200*
ID_VENDOR_FROM_DATABASE=TP-Link
@ -149,6 +155,15 @@ usb:v02AD*
usb:v02ADp138C*
ID_MODEL_FROM_DATABASE=PVR Mass Storage
usb:v0300*
ID_VENDOR_FROM_DATABASE=Ajazz
usb:v0300p1010*
ID_MODEL_FROM_DATABASE=Akp153E Desktop Controller
usb:v0300p1020*
ID_MODEL_FROM_DATABASE=AKP153R Desktop Controller
usb:v0303*
ID_VENDOR_FROM_DATABASE=Mini Automation Controller
@ -228,7 +243,7 @@ usb:v03E8p8004*
ID_MODEL_FROM_DATABASE=Aox 99001
usb:v03E9*
ID_VENDOR_FROM_DATABASE=Thesys Microelectronics
ID_VENDOR_FROM_DATABASE=Melexis (formerly Thesys Microelectronics)
usb:v03EA*
ID_VENDOR_FROM_DATABASE=Data Broadcasting Corp.
@ -713,6 +728,12 @@ usb:v03F0p042A*
usb:v03F0p0441*
ID_MODEL_FROM_DATABASE=Prime [NW280AA, G8X92AA]
usb:v03F0p046B*
ID_MODEL_FROM_DATABASE=Dock G5
usb:v03F0p0483*
ID_MODEL_FROM_DATABASE=Engage Go 10 Tablet
usb:v03F0p0504*
ID_MODEL_FROM_DATABASE=DeskJet 885c
@ -740,6 +761,9 @@ usb:v03F0p051D*
usb:v03F0p052A*
ID_MODEL_FROM_DATABASE=LaserJet M1212nf MFP
usb:v03F0p0583*
ID_MODEL_FROM_DATABASE=Engage Go 10 Tablet
usb:v03F0p0601*
ID_MODEL_FROM_DATABASE=ScanJet 6300c
@ -767,6 +791,9 @@ usb:v03F0p0641*
usb:v03F0p0653*
ID_MODEL_FROM_DATABASE=DeskJet 3700 series
usb:v03F0p0683*
ID_MODEL_FROM_DATABASE=Engage Go 10 Tablet
usb:v03F0p0701*
ID_MODEL_FROM_DATABASE=ScanJet 5300c/5370c
@ -917,6 +944,9 @@ usb:v03F0p1104*
usb:v03F0p1105*
ID_MODEL_FROM_DATABASE=ScanJet 5470c/5490c
usb:v03F0p110C*
ID_MODEL_FROM_DATABASE=Pocket Media Drive
usb:v03F0p1111*
ID_MODEL_FROM_DATABASE=OfficeJet v60
@ -2981,6 +3011,9 @@ usb:v0408p3001*
usb:v0408p3008*
ID_MODEL_FROM_DATABASE=Optical Touch Screen
usb:v0408p4033*
ID_MODEL_FROM_DATABASE=HD Webcam
usb:v0408pA060*
ID_MODEL_FROM_DATABASE=HD Webcam
@ -3029,6 +3062,9 @@ usb:v0409p004F*
usb:v0409p0050*
ID_MODEL_FROM_DATABASE=7-port hub
usb:v0409p0056*
ID_MODEL_FROM_DATABASE=uPD720133 IDE bridge
usb:v0409p0058*
ID_MODEL_FROM_DATABASE=HighSpeed Hub
@ -4400,6 +4436,9 @@ usb:v041Ep4097*
usb:v041Ep4099*
ID_MODEL_FROM_DATABASE=Creative VF0800 [RealSense Camera SR300]
usb:v041Ep40A3*
ID_MODEL_FROM_DATABASE=Live! Cam V3 2K [VF-0900]
usb:v041Ep4100*
ID_MODEL_FROM_DATABASE=Nomad Jukebox 2
@ -5819,6 +5858,9 @@ usb:v043Dp010F*
usb:v043Dp0142*
ID_MODEL_FROM_DATABASE=X3650 (Printer, Scanner, Copier)
usb:v043Dp01BD*
ID_MODEL_FROM_DATABASE=S800 Series Scanner
usb:v043Dp01FA*
ID_MODEL_FROM_DATABASE=S310 series
@ -5888,6 +5930,9 @@ usb:v043Ep9A11*
usb:v043Ep9A39*
ID_MODEL_FROM_DATABASE=27UP850 - WK.AEUDCSN - External Monitor 4K
usb:v043Ep9A57*
ID_MODEL_FROM_DATABASE=UltraGear Monitor
usb:v043Ep9C01*
ID_MODEL_FROM_DATABASE=LGE Sync
@ -5963,6 +6008,9 @@ usb:v044E*
usb:v044Ep1104*
ID_MODEL_FROM_DATABASE=Japanese Keyboard
usb:v044Ep1218*
ID_MODEL_FROM_DATABASE=Electric Touchpad
usb:v044Ep2002*
ID_MODEL_FROM_DATABASE=MD-5500 Printer
@ -8153,6 +8201,12 @@ usb:v046Ap01A4*
usb:v046Ap01A6*
ID_MODEL_FROM_DATABASE=MX BOARD 2.0S FL RGB DE Keyboard
usb:v046Ap0201*
ID_MODEL_FROM_DATABASE=Smart Board 1150
usb:v046Ap0202*
ID_MODEL_FROM_DATABASE=Smart Terminal 1150
usb:v046ApB090*
ID_MODEL_FROM_DATABASE=Keyboard
@ -8495,6 +8549,9 @@ usb:v046Dp08E0*
usb:v046Dp08E1*
ID_MODEL_FROM_DATABASE=Labtec Webcam
usb:v046Dp08E4*
ID_MODEL_FROM_DATABASE=C505e HD Webcam
usb:v046Dp08E5*
ID_MODEL_FROM_DATABASE=C920 PRO HD Webcam
@ -8948,6 +9005,9 @@ usb:v046DpC092*
usb:v046DpC093*
ID_MODEL_FROM_DATABASE=M500s Optical Mouse
usb:v046DpC09D*
ID_MODEL_FROM_DATABASE=G102 LIGHTSYNC Gaming Mouse
usb:v046DpC101*
ID_MODEL_FROM_DATABASE=UltraX Media Remote
@ -9122,6 +9182,9 @@ usb:v046DpC24E*
usb:v046DpC24F*
ID_MODEL_FROM_DATABASE=G29 Driving Force Racing Wheel [PS3]
usb:v046DpC251*
ID_MODEL_FROM_DATABASE=GamePanel for Dell XPS M1730
usb:v046DpC260*
ID_MODEL_FROM_DATABASE=G29 Driving Force Racing Wheel [PS4]
@ -9161,6 +9224,9 @@ usb:v046DpC298*
usb:v046DpC299*
ID_MODEL_FROM_DATABASE=G25 Racing Wheel
usb:v046DpC29A*
ID_MODEL_FROM_DATABASE=Driving Force GT
usb:v046DpC29B*
ID_MODEL_FROM_DATABASE=G27 Racing Wheel
@ -9272,6 +9338,9 @@ usb:v046DpC336*
usb:v046DpC33A*
ID_MODEL_FROM_DATABASE=G413 Gaming Keyboard
usb:v046DpC33E*
ID_MODEL_FROM_DATABASE=G915 Mechanical Keyboard
usb:v046DpC33F*
ID_MODEL_FROM_DATABASE=G815 Mechanical Keyboard
@ -10019,6 +10088,9 @@ usb:v047CpFFFF*
usb:v047D*
ID_VENDOR_FROM_DATABASE=Kensington
usb:v047Dp00F2*
ID_MODEL_FROM_DATABASE=VeriMark Desktop
usb:v047Dp1001*
ID_MODEL_FROM_DATABASE=Mouse*in*a*Box
@ -10616,6 +10688,9 @@ usb:v0486*
usb:v0486p0185*
ID_MODEL_FROM_DATABASE=EeePC T91MT HID Touch Panel
usb:v0486p573C*
ID_MODEL_FROM_DATABASE=Xreal Light Microcontroller
usb:v0487*
ID_VENDOR_FROM_DATABASE=Stewart Connector
@ -10931,6 +11006,9 @@ usb:v0499p1037*
usb:v0499p103C*
ID_MODEL_FROM_DATABASE=MOTIF-RACK ES
usb:v0499p1045*
ID_MODEL_FROM_DATABASE=MM6
usb:v0499p1054*
ID_MODEL_FROM_DATABASE=S90XS Keyboard/Music Synthesizer
@ -11618,6 +11696,9 @@ usb:v04A9p106E*
usb:v04A9p1070*
ID_MODEL_FROM_DATABASE=S530D
usb:v04A9p1071*
ID_MODEL_FROM_DATABASE=Sony MPR-501
usb:v04A9p1072*
ID_MODEL_FROM_DATABASE=I850 Printer
@ -11627,6 +11708,9 @@ usb:v04A9p1073*
usb:v04A9p1074*
ID_MODEL_FROM_DATABASE=S330 Printer
usb:v04A9p1075*
ID_MODEL_FROM_DATABASE=Sony MPR-505
usb:v04A9p1076*
ID_MODEL_FROM_DATABASE=i70
@ -12101,6 +12185,9 @@ usb:v04A9p178D*
usb:v04A9p180B*
ID_MODEL_FROM_DATABASE=PIXMA MG3000 series
usb:v04A9p183B*
ID_MODEL_FROM_DATABASE=PIXMA MG3110 Series
usb:v04A9p1856*
ID_MODEL_FROM_DATABASE=PIXMA TS6250
@ -12122,6 +12209,9 @@ usb:v04A9p1906*
usb:v04A9p1907*
ID_MODEL_FROM_DATABASE=CanoScan LiDE 700F
usb:v04A9p1908*
ID_MODEL_FROM_DATABASE=CanoScan 9000F
usb:v04A9p1909*
ID_MODEL_FROM_DATABASE=CanoScan LiDE 110
@ -13805,6 +13895,9 @@ usb:v04B0p0436*
usb:v04B0p043F*
ID_MODEL_FROM_DATABASE=D5600
usb:v04B0p0455*
ID_MODEL_FROM_DATABASE=Z50II
usb:v04B0p0F03*
ID_MODEL_FROM_DATABASE=PD-10 Wireless Printer Adapter
@ -14663,9 +14756,15 @@ usb:v04B8p0892*
usb:v04B8p0893*
ID_MODEL_FROM_DATABASE=EP-774A
usb:v04B8p08D1*
ID_MODEL_FROM_DATABASE=L220/L360 Series
usb:v04B8p0E03*
ID_MODEL_FROM_DATABASE=Thermal Receipt Printer [TM-T20]
usb:v04B8p0E31*
ID_MODEL_FROM_DATABASE=Thermal Receipt Printer [TM-L100]
usb:v04B8p1114*
ID_MODEL_FROM_DATABASE=XP-440 [Expression Home Small-in-One Printer]
@ -14678,6 +14777,24 @@ usb:v04B8p1129*
usb:v04B8p1168*
ID_MODEL_FROM_DATABASE=Workforce WF-7820/7840 Series
usb:v04B8p1186*
ID_MODEL_FROM_DATABASE=ET-2820 Series [ET-2820 EcoTank All-in-One]
usb:v04B8p118A*
ID_MODEL_FROM_DATABASE=ET-2810/L3250 Series [EcoTank ET-2810/L3250]
usb:v04B8p118B*
ID_MODEL_FROM_DATABASE=ET-2850/L4260 Series [EcoTank ET-2850/L4260]
usb:v04B8p11B0*
ID_MODEL_FROM_DATABASE=XP-4200 Series [Expression Home XP-4200]
usb:v04B8p11B9*
ID_MODEL_FROM_DATABASE=ET-2830/L3550 Series [EcoTank ET-2830/L3550]
usb:v04B8p11C8*
ID_MODEL_FROM_DATABASE=ET-2860/L3270 Series [EcoTank ET-2860/L3270]
usb:v04B9*
ID_VENDOR_FROM_DATABASE=Rainbow Technologies, Inc.
@ -14930,6 +15047,15 @@ usb:v04BFp1304*
usb:v04BFp1305*
ID_MODEL_FROM_DATABASE=i3 Multi Sensing Module
usb:v04BFp1400*
ID_MODEL_FROM_DATABASE=Javelin Module Recovery
usb:v04BFp1401*
ID_MODEL_FROM_DATABASE=Javelin Module
usb:v04BFp1500*
ID_MODEL_FROM_DATABASE=Gas sensor demo board
usb:v04C1*
ID_VENDOR_FROM_DATABASE=U.S. Robotics (3Com)
@ -15044,9 +15170,15 @@ usb:v04C5p125A*
usb:v04C5p132E*
ID_MODEL_FROM_DATABASE=fi-7160
usb:v04C5p1526*
ID_MODEL_FROM_DATABASE=PalmSecure-F Pro
usb:v04C5p159F*
ID_MODEL_FROM_DATABASE=ScanSnap iX1500
usb:v04C5p15FF*
ID_MODEL_FROM_DATABASE=Fi-8170 Document Scanner [Ricoh fi-8170: High Performance Desktop Scanner - PFU]
usb:v04C5p200F*
ID_MODEL_FROM_DATABASE=Sigma DP2 (Mass Storage)
@ -15143,6 +15275,9 @@ usb:v04CAp3014*
usb:v04CAp3015*
ID_MODEL_FROM_DATABASE=Qualcomm Atheros QCA9377 Bluetooth
usb:v04CAp3802*
ID_MODEL_FROM_DATABASE=MediaTek Bluetooth MT7921
usb:v04CAp7022*
ID_MODEL_FROM_DATABASE=HP HD Webcam
@ -45938,6 +46073,24 @@ usb:v0E25*
usb:v0E26*
ID_VENDOR_FROM_DATABASE=J-Phone East Co., Ltd
usb:v0E2C*
ID_VENDOR_FROM_DATABASE=Materialise Motion NV
usb:v0E2Cp0012*
ID_MODEL_FROM_DATABASE=footscan pressure plate (0.5m)
usb:v0E2Cp0013*
ID_MODEL_FROM_DATABASE=footscan pressure plate (1.0m)
usb:v0E2Cp0018*
ID_MODEL_FROM_DATABASE=footscan 2D interface box
usb:v0E2Cp0020*
ID_MODEL_FROM_DATABASE=footscan pressure plate (1.5m)
usb:v0E2Cp002D*
ID_MODEL_FROM_DATABASE=footscan heavy duty pressure plate (1.0m)
usb:v0E2E*
ID_VENDOR_FROM_DATABASE=Brady Worldwide, Inc.

View File

@ -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

@ -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,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
@ -284,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*:*
@ -303,10 +319,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
@ -315,10 +331,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
@ -432,10 +448,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:*
@ -504,7 +520,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
@ -703,10 +719,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
@ -741,14 +757,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*:*
@ -1126,8 +1142,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*
@ -1273,10 +1289,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*
@ -1801,7 +1817,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
@ -1841,17 +1857,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*:*
@ -2287,6 +2303,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
###########################################################
@ -2326,7 +2347,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*

View File

@ -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
@ -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
#########################################
@ -900,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

@ -68,5 +68,5 @@ usb:v2B71p000E*
# PowerSpec Ultra 3DPrinter
usb:v0315p0001*
usb:v2B71p00F6*
usb:v2B71p00FF
usb:v2B71p00FF*
ID_MAKER_TOOL=1

View File

@ -136,3 +136,5 @@ IDEMIA,IDEM,06/26/2018
"Rockwell Automation, Inc",ROKL,04/18/2025
"JUMPtec GmbH",JUMP,04/22/2025
"Fsas Technologies Inc.",FSAS,04/30/2025
"JP Morgan Chase N.A.",JPMC,05/30/2025
"Roku, Inc.",ROKU,07/15/2025
1 Company ACPI ID Approved On Date
136 Rockwell Automation, Inc ROKL 04/18/2025
137 JUMPtec GmbH JUMP 04/22/2025
138 Fsas Technologies Inc. FSAS 04/30/2025
139 JP Morgan Chase N.A. JPMC 05/30/2025
140 Roku, Inc. ROKU 07/15/2025

File diff suppressed because it is too large Load Diff

View File

@ -872,12 +872,6 @@ C4-A1-0E (hex) Ayla Networks (Shenzhen) Co., Ltd.
Shenzhen 518000
CN
70-50-E7 (hex) Shenzhen Dangs Science and Technology CO.,Ltd.
800000-8FFFFF (base 16) Shenzhen Dangs Science and Technology CO.,Ltd.
9th Floor of GDC Building, Gaoxin Middle 3rd St.,Nanshan District
Shenzhen GuangDong 518063
CN
C4-A1-0E (hex) Connectlab SRL
D00000-DFFFFF (base 16) Connectlab SRL
via donatello 30
@ -7157,18 +7151,6 @@ F0-12-04 (hex) MetaX
Shanghai 200000
CN
2C-7A-F4 (hex) Kegao Intelligent Garden Technology(Guangdong) Co.,Ltd.
400000-4FFFFF (base 16) Kegao Intelligent Garden Technology(Guangdong) Co.,Ltd.
8/F Building D,No.39, East Keji Avenue, Shishan Town Nanhai District
Foshan Guangdong 528225
CN
2C-7A-F4 (hex) Shenzhen Yitoa Digital Technology Co., Ltd.
300000-3FFFFF (base 16) Shenzhen Yitoa Digital Technology Co., Ltd.
7th floor, Building 1, Jiancang Technology Park, Bao'an, Shenzhen, China
Shenzhen GuangDong 518000
CN
2C-7A-F4 (hex) ShangYu Auto Technology Co.,Ltd
600000-6FFFFF (base 16) ShangYu Auto Technology Co.,Ltd
No. 69 Yuanda Road, Anting Town, Jiading District, Shanghai
@ -7181,11 +7163,17 @@ F0-12-04 (hex) MetaX
Xi'An Shaanxi 710000
CN
FC-A2-DF (hex) Solink Corporation
000000-0FFFFF (base 16) Solink Corporation
110-390 March Road
Ottawa Ontario K2K 0G7
CA
2C-7A-F4 (hex) Shenzhen Yitoa Digital Technology Co., Ltd.
300000-3FFFFF (base 16) Shenzhen Yitoa Digital Technology Co., Ltd.
7th floor, Building 1, Jiancang Technology Park, Bao'an, Shenzhen, China
Shenzhen GuangDong 518000
CN
2C-7A-F4 (hex) Kegao Intelligent Garden Technology(Guangdong) Co.,Ltd.
400000-4FFFFF (base 16) Kegao Intelligent Garden Technology(Guangdong) Co.,Ltd.
8/F Building D,No.39, East Keji Avenue, Shishan Town Nanhai District
Foshan Guangdong 528225
CN
FC-A2-DF (hex) TiGHT AV
C00000-CFFFFF (base 16) TiGHT AV
@ -7193,6 +7181,120 @@ C00000-CFFFFF (base 16) TiGHT AV
Billdal 427 40
SE
FC-A2-DF (hex) PAVONE SISTEMI SRL
300000-3FFFFF (base 16) PAVONE SISTEMI SRL
Via Tiberio Bianchi 11-13-15
Concorezzo MB 20863
IT
FC-A2-DF (hex) Solink Corporation
000000-0FFFFF (base 16) Solink Corporation
110-390 March Road
Ottawa Ontario K2K 0G7
CA
FC-A2-DF (hex) Lumentum
B00000-BFFFFF (base 16) Lumentum
60/129 Moo 19, Klongnueng
Klongluang Pathumthani 12120
TH
04-58-5D (hex) Chengdu Juxun Electronic Technology Co.,Ltd
B00000-BFFFFF (base 16) Chengdu Juxun Electronic Technology Co.,Ltd
No.327 Xingye Road, Industrial East District, Xindu District, Chengdu City, China
Chengdu Sichuan 610500
CN
04-58-5D (hex) Shenzhen C & D Electronics Co., Ltd.
E00000-EFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
ShenZhen GuangDong 518000
CN
B0-CC-CE (hex) Steelco SpA
000000-0FFFFF (base 16) Steelco SpA
via Balegante 27
Riese Pio X (TV) 31039
IT
B0-CC-CE (hex) MULTI-FIELD LOW TEMPERATURE TECHNOLOGY(BEIJING) CO., LTD.
600000-6FFFFF (base 16) MULTI-FIELD LOW TEMPERATURE TECHNOLOGY(BEIJING) CO., LTD.
Room 505, 5th Floor, Building 2, No. 11, Xingke East Street, Yanqi Economic Development Zone, Huairou District, Beijing, P.R.China
北京 101400
CN
B0-CC-CE (hex) 4MOD Technology
200000-2FFFFF (base 16) 4MOD Technology
4 Rue de la Cornouaille
Nantes 44300
FR
70-50-E7 (hex) Shenzhen Dangs Science and Technology CO.,Ltd.
800000-8FFFFF (base 16) Shenzhen Dangs Science and Technology CO.,Ltd.
9th Floor of GDC Building, Gaoxin Middle 3rd St.,Nanshan District
Shenzhen GuangDong 518063
CN
B0-CC-CE (hex) Shanghai CloudPrime.ai Technology Co, Ltd
800000-8FFFFF (base 16) Shanghai CloudPrime.ai Technology Co, Ltd
Room 202, Building 11, No. 789, Puxing Road, Minhang District
Shanghai 200000
CN
78-78-35 (hex) Jiaxing Cyber Sensor Intelligent Technology Co., Ltd.
400000-4FFFFF (base 16) Jiaxing Cyber Sensor Intelligent Technology Co., Ltd.
Room 301, Building 9, No.89 YueMing Road
Tongxiang Zhejiang 314500
CN
78-78-35 (hex) MAICUN Information Technology(Shanghai)Co.,Ltd
600000-6FFFFF (base 16) MAICUN Information Technology(Shanghai)Co.,Ltd
Room 312,No. 2525, Chun shen Road, Minhang District
shanghai 210000
CN
FC-E4-98 (hex) SATEL Ltd
A00000-AFFFFF (base 16) SATEL Ltd
21, Balakirevsky pereulok
Moscow 105082
RU
FC-E4-98 (hex) TIH Microelectronics Technology Co. Ltd.
E00000-EFFFFF (base 16) TIH Microelectronics Technology Co. Ltd.
Room 3611, 36th Floor, Building A, Shandong Big Data Industry Base, Jinan City, Shandong Province, China
Jinan SHANDONG 250101
CN
34-B5-F3 (hex) Bethlabs(Tianjin)Technology Co.,Ltd.
A00000-AFFFFF (base 16) Bethlabs(Tianjin)Technology Co.,Ltd.
Suite 109, 24 Minhe Road, Xiqing Economic and Technological Development Zone
Tianjin Tianjin 300380
CN
34-B5-F3 (hex) ADDSOFT TECHNOLOGIES LIMITED
000000-0FFFFF (base 16) ADDSOFT TECHNOLOGIES LIMITED
647/2219, NUAPATNA, TELENGAPENTHA
CUTTACK ODISHA 754001
IN
00-6A-5E (hex) Jiangsu Alstom NUG Propulsion System Co., Ltd
700000-7FFFFF (base 16) Jiangsu Alstom NUG Propulsion System Co., Ltd
No.199 South Fenglin Rd.,WujinNational Hi-tech Development Zone
CHANGZHOU JIANGSU 213166
CN
00-6A-5E (hex) Hilti Corporation
800000-8FFFFF (base 16) Hilti Corporation
Feldkircherstrasse 100
Schaan 9494
LI
00-6A-5E (hex) Oppermann Regelgeräte GmbH
E00000-EFFFFF (base 16) Oppermann Regelgeräte GmbH
Im Spitzhau 1
Leinfelden-Echterdingen 70771
DE
B8-4C-87 (hex) Shenzhen Link-all Technology Co., Ltd
300000-3FFFFF (base 16) Shenzhen Link-all Technology Co., Ltd
Floor 5th, Block 9th, Sunny Industrial Zone, Xili Town, Nanshan District, Shenzhen, China
@ -13826,6 +13928,132 @@ FC-A2-DF (hex) Hangzhou Laizhi Technology Co.,Ltd
hangzhou zhejiang 310011
CN
04-58-5D (hex) HKC Security Ltd.
700000-7FFFFF (base 16) HKC Security Ltd.
Parkway Business Centre
Ballymount Dublin D24 WY49
IE
04-58-5D (hex) TELEPLATFORMS
A00000-AFFFFF (base 16) TELEPLATFORMS
Polbina st., 3/1
Moscow 109388
RU
D4-A0-FB (hex) Parpro System Corporation
800000-8FFFFF (base 16) Parpro System Corporation
6F, No. 478, Sec. 5, ZhongShan N. Rd.,
Taipei Select State 111005
TW
D4-A0-FB (hex) Hangteng (HK) Technology Co., Limited
900000-9FFFFF (base 16) Hangteng (HK) Technology Co., Limited
銅鑼灣 伊榮街9號欣榮商業大廈 16 樓 1602 室
HONGKONG 1
HK
B0-CC-CE (hex) Faaftech
C00000-CFFFFF (base 16) Faaftech
Rua 90, N 929, Setor Sul
Goiânia Goias 74093020
BR
B0-CC-CE (hex) MICROTEST
E00000-EFFFFF (base 16) MICROTEST
14 F.-6, No. 79, Sec. 1, Xintai 5th Rd., Xizhi Dist.
New Taipei 221432
TW
B0-CC-CE (hex) Shenzhen Xtooltech Intelligent Co.,Ltd.
400000-4FFFFF (base 16) Shenzhen Xtooltech Intelligent Co.,Ltd.
17&18/F, A2 Building, Creative City, Liuxian Avenue, Nanshan District, Shenzhen, China
Shenzhen Guangdong 518052
CN
B0-CC-CE (hex) EBI Patient Care, Inc.
700000-7FFFFF (base 16) EBI Patient Care, Inc.
484 Calle E
Guaynabo PR 00969
US
78-78-35 (hex) Skylight
A00000-AFFFFF (base 16) Skylight
101a Clay Street #144
San Francisco CA 94111
US
78-78-35 (hex) EHTech (Beijing)Co., Ltd.
200000-2FFFFF (base 16) EHTech (Beijing)Co., Ltd.
2nd Floor, Building 6 (Block D), No.5 Shengfang Road, Daxing District
Beijing 102627
CN
FC-E4-98 (hex) GIGA Copper Networks GmbH
B00000-BFFFFF (base 16) GIGA Copper Networks GmbH
Rückerstraße 10
Düsseldorf 40470
DE
FC-E4-98 (hex) Shenzhen C & D Electronics Co., Ltd.
300000-3FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
ShenZhen GuangDong 518000
CN
FC-E4-98 (hex) TScale Electronics Mfg. (Kunshan) Co., Ltd
400000-4FFFFF (base 16) TScale Electronics Mfg. (Kunshan) Co., Ltd
No. 99 Jingwei Road, Zhoushi
Kunshan 215300
CN
FC-E4-98 (hex) ART Finex Co.,Ltd.
200000-2FFFFF (base 16) ART Finex Co.,Ltd.
6-1-33,KAMIKOBATACHO,SABAE-SHI
Fukui-ken 916-0037
JP
FC-E4-98 (hex) NTCSOFT
000000-0FFFFF (base 16) NTCSOFT
A925, A926, Gwangmyeong G-Tower, 190, Soha-Ro
Gwangmyeong-Si, Gyeonggi-do 14322
KR
34-B5-F3 (hex) JENESIS(SHEN ZHEN)CO.,LTD.
600000-6FFFFF (base 16) JENESIS(SHEN ZHEN)CO.,LTD.
6th Floor, Building A, Tiange Science and Technology Park, No. 2 Luo Zu Industrial Avenue, Luo Zu Community, Shiyan Street, Bao'an District
Shenzhen Guangdong 518108
CN
34-B5-F3 (hex) Kyokuto Solutions Inc.
500000-5FFFFF (base 16) Kyokuto Solutions Inc.
5-9-3 Nishitenma Kita-ku
Osaka-shi Osaka 530-0047
JP
00-6A-5E (hex) Shenzhen Lightx Technology Co., Ltd
600000-6FFFFF (base 16) Shenzhen Lightx Technology Co., Ltd
RM 1006, 10/F PO YIP BLDG, 23 HING YIP ST, Kwun Tong, Kowloon, Hong Kong
Hong Kong 000
HK
00-6A-5E (hex) CYBERTEL BRIDGE
C00000-CFFFFF (base 16) CYBERTEL BRIDGE
9th floor, Hansin IT Tower, 272, Digital-ro,Guro-gu
Seoul 08389
KR
00-6A-5E (hex) Annapurna labs
A00000-AFFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL
00-6A-5E (hex) Beijing Lingji Innovations technology Co,LTD.
D00000-DFFFFF (base 16) Beijing Lingji Innovations technology Co,LTD.
Room 106, 1st Floor, A-1 Building, Zhongguancun Dongsheng Science and Technology Park, No. 66 Xixiaokou Road, Haidian District, Beijing
Beijing Beijing 100190
CN
B8-4C-87 (hex) Altronix , Corp
A00000-AFFFFF (base 16) Altronix , Corp
140 58th St. Bldg A, Ste 2N
@ -18512,12 +18740,6 @@ A4-58-0F (hex) Ksenia Security srl
Mail box 15123 Haifa 3508409
IL
7C-CB-E2 (hex) Aplex Technology Inc.
E00000-EFFFFF (base 16) Aplex Technology Inc.
501-5B01,Xintianxia phase 2 building,Wankecheng community,Bantian township,Longgang district
Shenzhen City Guangdong 518129
CN
7C-CB-E2 (hex) Hangzhou Haohaokaiche Technology Co.,Ltd.
900000-9FFFFF (base 16) Hangzhou Haohaokaiche Technology Co.,Ltd.
Building 7, Haichuang Park, No.998 Wenyi West Road, Yuhang District
@ -20189,12 +20411,6 @@ C4-CC-37 (hex) KAIS Co.,Ltd.
Farmingdale NY 11735
US
60-A4-34 (hex) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
200000-2FFFFF (base 16) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
Room 17337, No. 260 Jiangshu Road, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province
Hangzhou 310000
CN
C8-FF-BF (hex) Cognizant Mobility GmbH
200000-2FFFFF (base 16) Cognizant Mobility GmbH
Ingolstädter Str. 45
@ -20843,12 +21059,6 @@ A00000-AFFFFF (base 16) TECHWIN SOLUTIONS PVT LTD
NEW DELHI DELHI 110020
IN
F8-2B-E6 (hex) Maia Tech, Inc
C00000-CFFFFF (base 16) Maia Tech, Inc
77 S. Bedford Street
Burlington MA 01803
US
F8-2B-E6 (hex) Hitek Electronics Co.,Ltd
800000-8FFFFF (base 16) Hitek Electronics Co.,Ltd
203-404,397 Seokcheon-ro,Ojeong-gu,Bucheon-si,Gyeonggi-do,14449,Republic of korea
@ -20945,12 +21155,192 @@ B00000-BFFFFF (base 16) Arira Platforms, LLC
San Jose CA 95110
US
FC-A2-DF (hex) shenzhen zovoton electronic co.,ltd
600000-6FFFFF (base 16) shenzhen zovoton electronic co.,ltd
1F 4 Blok, jinrui zhonghe industrial park, huarong road, tongsheng community, dalang street, longhua district, Shenzhen city, Guangdong province, china
shenzhen guangdong 518100
CN
FC-A2-DF (hex) Beijing KSL Electromechanical Technology Development Co.,Ltd
900000-9FFFFF (base 16) Beijing KSL Electromechanical Technology Development Co.,Ltd
Room 501-1, 5th Floor, Building 23, Courtyard 6, Haiying Road, Fengtai District, Beijing, China
Beijing 100071
CN
60-A4-34 (hex) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
200000-2FFFFF (base 16) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
Room 809, Building B, No. 567 Yueming Road, Xixing Street,
Hangzhou Binjiang Distric 310000
CN
FC-A2-DF (hex) Orion Power Systems, Inc.
E00000-EFFFFF (base 16) Orion Power Systems, Inc.
2939 W. Beaver Street
Jacksonville FL 32254
US
04-58-5D (hex) VERTE Elektronik San. Ve Tic. A.Ş.
600000-6FFFFF (base 16) VERTE Elektronik San. Ve Tic. A.Ş.
Ankara Teknopark, Serhat Mahallesi, 2224. Cadde, No:1/43, (Z13) F Blok Zemin Kat Tax Office: İvedik Tax Number: 9250982676
Yenimahalle ANKARA 06374
TR
04-58-5D (hex) Rexon Technology
C00000-CFFFFF (base 16) Rexon Technology
No. 261, Renhua Rd., Dali Dist.
Taichung City 412037
TW
04-58-5D (hex) Research Laboratory of Design Automation, Ltd.
100000-1FFFFF (base 16) Research Laboratory of Design Automation, Ltd.
8 Birzhevoy Spusk
Taganrog 347900
RU
D4-A0-FB (hex) Skyfri Corp
700000-7FFFFF (base 16) Skyfri Corp
800 North State Street Suite 403
City of Dover DE 19901
US
B0-CC-CE (hex) Watermark Systems (India) Private Limited
B00000-BFFFFF (base 16) Watermark Systems (India) Private Limited
1010, Maker Chambers 5, Nariman Point, Mumbai
Mumbai Maharashtra 400021
IN
B0-CC-CE (hex) Gateview Technologies
300000-3FFFFF (base 16) Gateview Technologies
2616 Port Industrial Drive
JACKSONVILLE FL 32226
US
D4-A0-FB (hex) Snap-on Tools
C00000-CFFFFF (base 16) Snap-on Tools
19220 San Jose Ave.
City of Industry CA 91748
US
B0-CC-CE (hex) Beijing Viazijing Technology Co., Ltd.
500000-5FFFFF (base 16) Beijing Viazijing Technology Co., Ltd.
9 Xue Qing Road, Hai Dian District
Beijing 100085
CN
B0-CC-CE (hex) Xiaomi EV Technology Co., Ltd.
D00000-DFFFFF (base 16) Xiaomi EV Technology Co., Ltd.
Room 618, Floor 6, Building 5, Yard 15, Kechuang Tenth Street, Beijing Economic and Technological Development Zone, Beijing
Beijing Beijing 100176
CN
78-78-35 (hex) Ambient Life Inc.
700000-7FFFFF (base 16) Ambient Life Inc.
321 Walnut St, #325Newton MA 02460
Newton MA 02460
US
F8-2B-E6 (hex) MaiaEdge, Inc.
C00000-CFFFFF (base 16) MaiaEdge, Inc.
77 S. Bedford Street
Burlington MA 01803
US
FC-E4-98 (hex) Siretta Ltd
C00000-CFFFFF (base 16) Siretta Ltd
Basingstoke Rd, Spencers Wood, Reading
Reading RG7 1PW
GB
78-78-35 (hex) BLOOM VIEW LIMITED
900000-9FFFFF (base 16) BLOOM VIEW LIMITED
Room 1502 ,Easey Commercial Building
WANCHAI HONG KONG
HK
FC-E4-98 (hex) Changzhou Leading Weighing Technology Co., Ltd
800000-8FFFFF (base 16) Changzhou Leading Weighing Technology Co., Ltd
Builing 31, No.9 Caoxi Road, Changzhou,Jiangsu
Changzhou 213000
CN
7C-CB-E2 (hex) Aplex Technology Inc.
E00000-EFFFFF (base 16) Aplex Technology Inc.
15F-1, No.186, Jian Yi Road
Zhonghe District New Taipei City 235 -
TW
FC-E4-98 (hex) SM Instruments
500000-5FFFFF (base 16) SM Instruments
20, Yuseong-daero 1184beon-gil
Daejeon Yuseong-gu 34109
KR
34-B5-F3 (hex) WEAD GmbH
300000-3FFFFF (base 16) WEAD GmbH
Retzfeld 7
Sankt Georgen an der Gusen 4222
AT
34-B5-F3 (hex) Shanghai Sigen New Energy Technology Co., Ltd
800000-8FFFFF (base 16) Shanghai Sigen New Energy Technology Co., Ltd
Room 514 The 5th Floor, No.175 Weizhan Road China (Shanghai) Plilot Free Trade Zone
Shanghai 201306
CN
00-6A-5E (hex) Rayneo (wuxi) ltd
500000-5FFFFF (base 16) Rayneo (wuxi) ltd
No. 6 Huaqing Innovation Park, Huishan District, Wuxi City
WUXI JiangSu 214100
CN
34-B5-F3 (hex) Shenzhen Mifasuolla Smart Co.,Ltd
C00000-CFFFFF (base 16) Shenzhen Mifasuolla Smart Co.,Ltd
No. 15 Hongbu Road, Majialong Community, Nantou Subdistrict, Nanshan District
Shenzhen Guangdong 518052
CN
34-B5-F3 (hex) Digicom
D00000-DFFFFF (base 16) Digicom
The 4th floor, Building No.4, Xiangshan South Road 105#, Shijingshan, Beijing, China
BEIJING 100144
CN
34-B5-F3 (hex) Viettel Manufacturing Corporation One Member Limited Liability Company
E00000-EFFFFF (base 16) Viettel Manufacturing Corporation One Member Limited Liability Company
An Binh Hamlet, An Khanh Commune
Ha Noi Ha Noi 100000
VN
00-6A-5E (hex) Creative Communication
200000-2FFFFF (base 16) Creative Communication
113/1, Parahupur, Mughalsarai,
Mughalsarai Uttar Pradesh(UP) 232101
IN
00-6A-5E (hex) Shenzhen yeahmoo Technology Co., Ltd.
300000-3FFFFF (base 16) Shenzhen yeahmoo Technology Co., Ltd.
Room 103, 1st Floor, Building 4, Yunli Intelligent Park, No. 3 Changfa Middle Road,Yangmei Community, Bantian Street, Longgang District,
Shenzhen Guangdong Province 518100
CN
04-58-5D (hex) HDS Otomasyon Güvenlik ve Yazılım Teknolojileri Sanayi Ticaret Limited Şirketi
D00000-DFFFFF (base 16) HDS Otomasyon Güvenlik ve Yazılım Teknolojileri Sanayi Ticaret Limited Şirketi
Merkez Mahallesi Sadabad Cad. Kapı No:20
İstanbul Kağıthane 34406
TR
00-6A-5E (hex) Continental Brasil Indústria Automotiva Ltda.
B00000-BFFFFF (base 16) Continental Brasil Indústria Automotiva Ltda.
Av. Senador Adolf Schindling, 131
Guarulhos São Paulo 07042-020
BR
F4-97-9D (hex) LUXSHARE - ICT(NGHE AN) LIMITED
700000-7FFFFF (base 16) LUXSHARE - ICT(NGHE AN) LIMITED
No. 18, Road No. 03, VSIP Nghe An Industrial Park, Hung Nguyen Commune, Nghe An Province, Vietnam
Nghe An Nghe An 460000
VN
D0-14-11 (hex) P.B. Elettronica srl
100000-1FFFFF (base 16) P.B. Elettronica srl
Via Santorelli, 8
@ -27824,6 +28214,132 @@ FC-A2-DF (hex) SpacemiT
zhuhai guangdong 519000
CN
D4-A0-FB (hex) Shenzhen Dijiean Technology Co., Ltd
400000-4FFFFF (base 16) Shenzhen Dijiean Technology Co., Ltd
Floor 6,Building B,Tongxie Industrial Zone,No.80 Shilong Road,Shiyan Street,Baoan District
Shenzhen City Guangdong 518000
CN
04-58-5D (hex) Wetatronics Limited
000000-0FFFFF (base 16) Wetatronics Limited
45 Bath StreetParnell
Auckland Auckland 1052
NZ
D4-A0-FB (hex) M2MD Technologies, Inc.
000000-0FFFFF (base 16) M2MD Technologies, Inc.
525 Chestnut Rose Ln
Atlanta GA 30327
US
D4-A0-FB (hex) Corelase Oy
500000-5FFFFF (base 16) Corelase Oy
Kauhakorvenkatu 52
Tampere Pirkanmaa 33720
FI
04-58-5D (hex) JRK VISION
800000-8FFFFF (base 16) JRK VISION
A-1107, 135, Gasan digital 2-ro, Geumcheon-gu
SEOUL 08504
KR
D4-A0-FB (hex) Spatial Hover Inc
B00000-BFFFFF (base 16) Spatial Hover Inc
10415 A Westpark Dr.
Houston TX 77042
US
D4-A0-FB (hex) NEXXUS NETWORKS INDIA PRIVATE LIMITED
300000-3FFFFF (base 16) NEXXUS NETWORKS INDIA PRIVATE LIMITED
HD-592, C-001/A2 MAX TOWER SECTOR-16B We Work Berger Delhi One Noida Gautam Buddha Nagar U.P
GAUTAM BUDDHA NAGAR UTTAR PRADESH 201301
IN
D4-A0-FB (hex) Huizhou Jiemeisi Technology Co.,Ltd.
600000-6FFFFF (base 16) Huizhou Jiemeisi Technology Co.,Ltd.
NO.63, HUMEI STREET, DASHULING, XIAOJINKOU HUICHENG
Huizhou Guangdong 516023
CN
B0-CC-CE (hex) Agrisys A/S
100000-1FFFFF (base 16) Agrisys A/S
Cypresvej 3
Herning 7400
DK
78-78-35 (hex) Shandong Xintong Electronics Co., Ltd
800000-8FFFFF (base 16) Shandong Xintong Electronics Co., Ltd
No. 18 Liuyishan Road
Zibo High-tech Zone Shandong 255000
CN
78-78-35 (hex) IRISS Inc.
500000-5FFFFF (base 16) IRISS Inc.
10306 Technology Terrace
Bradenton FL 34211
US
78-78-35 (hex) ATsens
000000-0FFFFF (base 16) ATsens
TOWER GALLERY 6F,321 Hwangsaeul-ro, Bundang-gu, Seongnam-si, Gyeonggi-do
Seongnam 13590
KR
FC-E4-98 (hex) QuEL, Inc.
100000-1FFFFF (base 16) QuEL, Inc.
ON Build. 5F 4-7-14 Myojincho
Hachioji Tokyo 192-0046
JP
FC-E4-98 (hex) Infinity Electronics Ltd
D00000-DFFFFF (base 16) Infinity Electronics Ltd
167-169 Great Portland Street
London Surrey W1W 5PF
GB
D4-A0-FB (hex) Intersvyaz IT
100000-1FFFFF (base 16) Intersvyaz IT
Prospekt Pobedy, 288, room 7
Chelyabinsk 454112
RU
FC-E4-98 (hex) AVCON Information Technology Co.,Ltd.
900000-9FFFFF (base 16) AVCON Information Technology Co.,Ltd.
Building A6, Wangu Science and Technology Park, 1688 Guoquan North Road, Yangpu District
Shanghai Shanghai 021-55666588
CN
34-B5-F3 (hex) Hyatta Digital Technology Co., Ltd.
700000-7FFFFF (base 16) Hyatta Digital Technology Co., Ltd.
1405, Building A, Huizhi R&D Center, No. 287 Guangshen Road, Xixiang Street, Bao'an District
Shenzhen Guangdong 518101
CN
34-B5-F3 (hex) Aeterlink Corp.
B00000-BFFFFF (base 16) Aeterlink Corp.
13th Floor, Mitsubishi Building, 2-5-2 Marunouchi
Chiyoda-ku Tokyo 100-0005
JP
34-B5-F3 (hex) Inspired Flight
200000-2FFFFF (base 16) Inspired Flight
225 SUBURBAN RD
SAN LUIS OBISPO CA 93401
US
34-B5-F3 (hex) Shenzhen PeakVic Technology Co.,Ltd
900000-9FFFFF (base 16) Shenzhen PeakVic Technology Co.,Ltd
Room 310, 3rd Floor, Zhenhua Times Square, No. 21 Heping Road, Qinghua Community, Longhua Street, Longhua District
Shenzhen Guangdong 518000
CN
00-6A-5E (hex) Evercomm (Pty) Ltd
400000-4FFFFF (base 16) Evercomm (Pty) Ltd
363 Rivonia Boulevard, 1st Floor, Euro Centre Building, Edenburg
Johannesburg Gauteng 2128
ZA
C8-5C-E2 (hex) Fela Management AG
000000-0FFFFF (base 16) Fela Management AG
Basadingerstrasse 18
@ -34823,8 +35339,170 @@ C00000-CFFFFF (base 16) Reonel Oy
ji nan shi shandong 250031
CN
FC-A2-DF (hex) PDI COMMUNICATION SYSTEMS INC.
200000-2FFFFF (base 16) PDI COMMUNICATION SYSTEMS INC.
40 GREENWOOD LN
SPRINGBORO OH 45066
US
FC-A2-DF (hex) Annapurna labs
500000-5FFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL
FC-A2-DF (hex) BPL MEDICAL TECHNOLOGIES PRIVATE LIMITED
A00000-AFFFFF (base 16) BPL MEDICAL TECHNOLOGIES PRIVATE LIMITED
11KM BANNERGHATTA MAIN ROAD ARAKERE BANGALORE
BANGALORE KARNATAKA 560076
IN
FC-A2-DF (hex) MBio Diagnostics, Inc.
D00000-DFFFFF (base 16) MBio Diagnostics, Inc.
4550 Byrd Dr
Loveland 80538
US
04-58-5D (hex) Foxconn Brasil Industria e Comercio Ltda
200000-2FFFFF (base 16) Foxconn Brasil Industria e Comercio Ltda
Av. Marginal da Rodovia dos Bandeirantes, 800 - Distrito Industrial
Jundiaí Sao Paulo 13213-008
BR
04-58-5D (hex) Dron Edge India Private Limited
900000-9FFFFF (base 16) Dron Edge India Private Limited
A 93 SECTOR 65 NOIDA 201301
201301 Uttar Pradesh 201301
IN
04-58-5D (hex) Integrated Technical Vision Ltd
400000-4FFFFF (base 16) Integrated Technical Vision Ltd
Mykoly Hrinchenka str. 2/1
Kyiv Kyiv 03038
UA
04-58-5D (hex) REXXON GmbH
300000-3FFFFF (base 16) REXXON GmbH
Mads-Clausen-Str. 7
Flensburg Schleswig-Holstein 24939
DE
04-58-5D (hex) Sercomm Japan Corporation
500000-5FFFFF (base 16) Sercomm Japan Corporation
8F, 3-1, YuanQu St., NanKang, Taipei 115, Taiwan
Taipei 115
TW
D4-A0-FB (hex) IMPULSE CCTV NETWORKS INDIA PVT. LTD.
A00000-AFFFFF (base 16) IMPULSE CCTV NETWORKS INDIA PVT. LTD.
H.O:- 4th Floor, Tower-A1,Flat No 402Eros Sampoornam, Sec-2,Greater Noida,Gautambuddha Nagar, Uttar Pradesh, 201306
GREATER NOIDA WEST UTTAR PRADESH 201306
IN
D4-A0-FB (hex) Beijing Lingji Innovations technology Co,LTD.
200000-2FFFFF (base 16) Beijing Lingji Innovations technology Co,LTD.
Room 106, 1st Floor, A-1 Building, Zhongguancun Dongsheng Science and Technology Park, No. 66 Xixiaokou Road, Haidian District, Beijing
Beijing Beijing 100190
CN
D4-A0-FB (hex) FASTWEL ELECTRONICS INDIA PRIVATE LIMITED
D00000-DFFFFF (base 16) FASTWEL ELECTRONICS INDIA PRIVATE LIMITED
DORASWANIPALYA , NO 3, ARKER MICOLAYOUT, ARKERE , BENGALURE(BANGLORE) URBAN
BENGALURU KARNATAKA 560076
IN
D4-A0-FB (hex) GTEK GLOBAL CO.,LTD
E00000-EFFFFF (base 16) GTEK GLOBAL CO.,LTD
No3/2/13 Ta Thanh Oai, Thanh Tri district
Hanoi Vietnam 10000
VN
B0-CC-CE (hex) Shenzhen Dangs Science and Technology CO.,Ltd.
A00000-AFFFFF (base 16) Shenzhen Dangs Science and Technology CO.,Ltd.
9th Floor of GDC Building, Gaoxin Middle 3rd St.,Nanshan District
Shenzhen Guangdong 518063
CN
78-78-35 (hex) Suzhou Chena Information Technology Co., Ltd.
D00000-DFFFFF (base 16) Suzhou Chena Information Technology Co., Ltd.
3rd Floor, Building B6, No. 8 Yanghua Road, Suzhou Industrial Park
Suzhou Free Trade Zone Jiangsu Province 215000
CN
B0-CC-CE (hex) Taiv Inc
900000-9FFFFF (base 16) Taiv Inc
400-321 McDermot Ave
Winnipeg Manitoba R3A 0A3
CA
78-78-35 (hex) NEOARK Corporation
E00000-EFFFFF (base 16) NEOARK Corporation
Nakano-machi2073-1
Hachioji Tokyo 1920015
JP
78-78-35 (hex) SHENZHEN CHUANGWEI ELECTRONIC APPLIANCE TECH CO., LTD.
300000-3FFFFF (base 16) SHENZHEN CHUANGWEI ELECTRONIC APPLIANCE TECH CO., LTD.
6F Floor, Overseas Factory, Skyworth Technology Industrial Park, Tangtou Community, Shiyan Street, Bao'an District
Shenzhen Guangdong 518000
CN
78-78-35 (hex) ENQT GmbH
100000-1FFFFF (base 16) ENQT GmbH
Spaldingstrasse 210
Hamburg Hamburg 20097
DE
78-78-35 (hex) DBG Communications Technology Co.,Ltd.
C00000-CFFFFF (base 16) DBG Communications Technology Co.,Ltd.
Building A, No.5(DBG Factory), Yongda Road, Xiangshui River Industrial Area, Daya Bay, Huizhou
Huizhou Gangdong 516083
CN
78-78-35 (hex) Shanghai Intchains Technology Co., Ltd.
B00000-BFFFFF (base 16) Shanghai Intchains Technology Co., Ltd.
Building 1&2, No.333 Haiyang No.1 Road Lingang Science and Technology Park Pudon
shanghai shanghai 200120
CN
FC-E4-98 (hex) Videonetics Technology Private Limited
600000-6FFFFF (base 16) Videonetics Technology Private Limited
Videonetics Technology Private LimitedPlot No. AI/154/1, Action Area - 1A, 4th Floor, Utility Building
Kolkata West Bengal 700156
IN
FC-E4-98 (hex) E Haute Intelligent Technology Co., Ltd
700000-7FFFFF (base 16) E Haute Intelligent Technology Co., Ltd
Room 01-05, 40/F, Building C, Longhua Digital Innovation Center, Longhua District
Shenzhen Guangdong 518000
CN
00-6A-5E (hex) TRULY ELECTRONICS MFG.,LTD
000000-0FFFFF (base 16) TRULY ELECTRONICS MFG.,LTD
Truly industry cityshanwei guangdongP.R.C
shanwei guangdong 516600
CN
00-6A-5E (hex) BroadMaster Biotech Corp
100000-1FFFFF (base 16) BroadMaster Biotech Corp
No. 91 Xiyuan RD. Zhongli City
Taoyuan Select State 32057
TW
00-6A-5E (hex) Annapurna labs
900000-9FFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL
34-B5-F3 (hex) LAUMAS Elettronica s.r.l.
400000-4FFFFF (base 16) LAUMAS Elettronica s.r.l.
via I Maggio, 6 - IT01661140341
Montechiarugolo 43022
IT
34-B5-F3 (hex) Satco Europe GmbH
100000-1FFFFF (base 16) Satco Europe GmbH
Waidhauserstr. 3
Vohenstrauß 92546
DE

File diff suppressed because it is too large Load Diff

View File

@ -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',
@ -41,7 +42,6 @@ hwdb_files_test = files(
if conf.get('ENABLE_HWDB') == 1
auto_suspend_rules = custom_target(
'60-autosuspend-chromiumos.hwdb',
output : '60-autosuspend-chromiumos.hwdb',
command : make_autosuspend_rules_py,
capture : true,

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@
# The latest version can be obtained from
# http://www.linux-usb.org/usb.ids
#
# Version: 2025.04.01
# Date: 2025-04-01 20:34:02
# Version: 2025.07.26
# Date: 2025-07-26 20:34:01
#
# Vendors, devices and interfaces. Please keep sorted.
@ -59,6 +59,8 @@
0112 Card Reader
017c MLK
145f Trust Deskset
019c mek
0042 mek_42
0200 TP-Link
0201 MA180 UMTS Modem
0204 Chipsbank Microelectronics Co., Ltd
@ -69,6 +71,9 @@
0231 Sonuus Limited
02ad HUMAX Co., Ltd.
138c PVR Mass Storage
0300 Ajazz
1010 Akp153E Desktop Controller
1020 AKP153R Desktop Controller
0303 Mini Automation Controller
0324 OCZ Technology Inc
bc06 OCZ ATV USB 2.0 Flash Drive
@ -95,7 +100,7 @@
0015 ATAPI Enclosure
2123 SiPix StyleCam Deluxe
8004 Aox 99001
03e9 Thesys Microelectronics
03e9 Melexis (formerly Thesys Microelectronics)
03ea Data Broadcasting Corp.
03eb Atmel Corp.
0902 4-Port Hub
@ -257,6 +262,8 @@
0423 HS-COMBO Cardreader
042a LaserJet M1132 MFP
0441 Prime [NW280AA, G8X92AA]
046b Dock G5
0483 Engage Go 10 Tablet
0504 DeskJet 885c
0505 ScanJet 2100c
0507 DVD+RW
@ -266,6 +273,7 @@
0517 LaserJet 1000
051d Bluetooth Interface
052a LaserJet M1212nf MFP
0583 Engage Go 10 Tablet
0601 ScanJet 6300c
0604 DeskJet 840c
0605 ScanJet 2200c
@ -275,6 +283,7 @@
0624 Bluetooth Dongle
0641 X1200 Optical Mouse
0653 DeskJet 3700 series
0683 Engage Go 10 Tablet
0701 ScanJet 5300c/5370c
0704 DeskJet 825c
0705 ScanJet 4400c
@ -325,6 +334,7 @@
1102 PhotoSmart 240 series
1104 DeskJet 959c
1105 ScanJet 5470c/5490c
110c Pocket Media Drive
1111 OfficeJet v60
1116 Jornada 568 Pocket PC
1117 LaserJet 1300n
@ -1013,6 +1023,7 @@
3000 Optical dual-touch panel
3001 Optical Touch Screen
3008 Optical Touch Screen
4033 HD Webcam
a060 HD Webcam
0409 NEC Corp.
0011 PC98 Series Layout Keyboard Mouse
@ -1029,6 +1040,7 @@
004e SuperScript 1400 Series
004f Wireless Keyboard with One-touch start buttons
0050 7-port hub
0056 uPD720133 IDE bridge
0058 HighSpeed Hub
0059 HighSpeed Hub
005a HighSpeed Hub
@ -1486,6 +1498,7 @@
4095 Live! Cam Sync HD [VF0770]
4097 Live! Cam Chat HD [VF0700/VF0790]
4099 Creative VF0800 [RealSense Camera SR300]
40a3 Live! Cam V3 2K [VF-0900]
4100 Nomad Jukebox 2
4101 Nomad Jukebox 3
4102 NOMAD MuVo^2
@ -1959,6 +1972,7 @@
010d 3500-4500 series
010f 6500 series
0142 X3650 (Printer, Scanner, Copier)
01bd S800 Series Scanner
01fa S310 series
020e RICOH Aficio SP 4410SF
4303 Xerox WorkCentre Pro 412
@ -1982,6 +1996,7 @@
9a10 34UC88-B
9a11 34UC88-B
9a39 27UP850 - WK.AEUDCSN - External Monitor 4K
9a57 UltraGear Monitor
9c01 LGE Sync
043f RadiSys Corp.
0440 Eizo Nanao Corp.
@ -2007,6 +2022,7 @@
044d Siemens Nixdorf AG
044e Alps Electric Co., Ltd
1104 Japanese Keyboard
1218 Electric Touchpad
2002 MD-5500 Printer
2014 Bluetooth Device
3001 UGTZ4 Bluetooth
@ -2737,6 +2753,8 @@
0180 Strait 3.0
01a4 MC 2.1 Mouse
01a6 MX BOARD 2.0S FL RGB DE Keyboard
0201 Smart Board 1150
0202 Smart Terminal 1150
b090 Keyboard
b091 Mouse
c099 Stream Keyboard TKL
@ -2851,6 +2869,7 @@
08dd QuickCam for Notebooks
08e0 QuickCam Express
08e1 Labtec Webcam
08e4 C505e HD Webcam
08e5 C920 PRO HD Webcam
08f0 QuickCam Messenger
08f1 QuickCam Express
@ -3002,6 +3021,7 @@
c08e G MX518 Gaming Mouse (MU0053)
c092 G102/G203 LIGHTSYNC Gaming Mouse
c093 M500s Optical Mouse
c09d G102 LIGHTSYNC Gaming Mouse
c101 UltraX Media Remote
c110 Harmony 785/880/885 Remote
c111 Harmony 525 Remote
@ -3060,6 +3080,7 @@
c24d G710 Gaming Keyboard
c24e G500s Laser Gaming Mouse
c24f G29 Driving Force Racing Wheel [PS3]
c251 GamePanel for Dell XPS M1730
c260 G29 Driving Force Racing Wheel [PS4]
c262 G920 Driving Force Racing Wheel
c281 WingMan Force
@ -3073,6 +3094,7 @@
c295 Momo Force Steering Wheel
c298 Driving Force Pro
c299 G25 Racing Wheel
c29a Driving Force GT
c29b G27 Racing Wheel
c29c Speed Force Wireless Wheel for Wii
c2a0 Wingman Force Feedback Mouse
@ -3110,6 +3132,7 @@
c335 G910 Orion Spectrum Mechanical Keyboard
c336 G213 Prodigy Gaming Keyboard
c33a G413 Gaming Keyboard
c33e G915 Mechanical Keyboard
c33f G815 Mechanical Keyboard
c401 TrackMan Marble Wheel
c402 Marble Mouse (2-button)
@ -3359,6 +3382,7 @@
047c Dell Computer Corp.
ffff UPS Tower 500W LV
047d Kensington
00f2 VeriMark Desktop
1001 Mouse*in*a*Box
1002 Expert Mouse Pro
1003 Orbit TrackBall
@ -3558,6 +3582,7 @@
0485 Nokia Monitors
0486 ASUS Computers, Inc.
0185 EeePC T91MT HID Touch Panel
573c Xreal Light Microcontroller
0487 Stewart Connector
0488 Cirque Corp.
0489 Foxconn / Hon Hai
@ -3663,6 +3688,7 @@
1033 DGX-505
1037 PSR-E403
103c MOTIF-RACK ES
1045 MM6
1054 S90XS Keyboard/Music Synthesizer
160f P-105
1613 Clavinova CLP535
@ -3892,9 +3918,11 @@
106d S750 Printer
106e S820D
1070 S530D
1071 Sony MPR-501
1072 I850 Printer
1073 I550 Printer
1074 S330 Printer
1075 Sony MPR-505
1076 i70
1077 i950
107a S830D
@ -4053,6 +4081,7 @@
178a PIXMA MG3600 Series
178d PIXMA MG6853
180b PIXMA MG3000 series
183b PIXMA MG3110 Series
1856 PIXMA TS6250
1900 CanoScan LiDE 90
1901 CanoScan 8800F
@ -4060,6 +4089,7 @@
1905 CanoScan LiDE 200
1906 CanoScan 5600F
1907 CanoScan LiDE 700F
1908 CanoScan 9000F
1909 CanoScan LiDE 110
190a CanoScan LiDE 210
190d CanoScan 9000F Mark II
@ -4621,6 +4651,7 @@
0434 D610
0436 D810
043f D5600
0455 Z50II
0f03 PD-10 Wireless Printer Adapter
4000 Coolscan LS 40 ED
4001 LS 50 ED/Coolscan V ED
@ -4907,11 +4938,19 @@
0891 Stylus Office BX535WD
0892 Stylus Office BX935FWD
0893 EP-774A
08d1 L220/L360 Series
0e03 Thermal Receipt Printer [TM-T20]
0e31 Thermal Receipt Printer [TM-L100]
1114 XP-440 [Expression Home Small-in-One Printer]
1115 ES-0133 [Expression Home XP-342]
1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
1168 Workforce WF-7820/7840 Series
1186 ET-2820 Series [ET-2820 EcoTank All-in-One]
118a ET-2810/L3250 Series [EcoTank ET-2810/L3250]
118b ET-2850/L4260 Series [EcoTank ET-2850/L4260]
11b0 XP-4200 Series [Expression Home XP-4200]
11b9 ET-2830/L3550 Series [EcoTank ET-2830/L3550]
11c8 ET-2860/L3270 Series [EcoTank ET-2860/L3270]
04b9 Rainbow Technologies, Inc.
0300 SafeNet USB SuperPro/UltraPro
1000 iKey 1000 Token
@ -4996,6 +5035,9 @@
1303 i3 Micro Module
1304 i3 Module
1305 i3 Multi Sensing Module
1400 Javelin Module Recovery
1401 Javelin Module
1500 Gas sensor demo board
04c1 U.S. Robotics (3Com)
0020 56K Voice Pro
0022 56K Voice Pro
@ -5034,7 +5076,9 @@
11f3 fi-6130Z
125a PalmSecure Sensor Device - MP
132e fi-7160
1526 PalmSecure-F Pro
159f ScanSnap iX1500
15ff Fi-8170 Document Scanner [Ricoh fi-8170: High Performance Desktop Scanner - PFU]
200f Sigma DP2 (Mass Storage)
2010 Sigma DP2 (PictBridge)
201d SATA 3.0 6Gbit/s Adaptor [GROOVY]
@ -5067,6 +5111,7 @@
300f Atheros AR3012 Bluetooth
3014 Qualcomm Atheros Bluetooth
3015 Qualcomm Atheros QCA9377 Bluetooth
3802 MediaTek Bluetooth MT7921
7022 HP HD Webcam
7025 HP HD Webcam
7046 TOSHIBA Web Camera - HD
@ -15333,6 +15378,12 @@
0e23 Liou Yuane Enterprise Co., Ltd
0e25 VinChip Systems, Inc.
0e26 J-Phone East Co., Ltd
0e2c Materialise Motion NV
0012 footscan pressure plate (0.5m)
0013 footscan pressure plate (1.0m)
0018 footscan 2D interface box
0020 footscan pressure plate (1.5m)
002d footscan heavy duty pressure plate (1.0m)
0e2e Brady Worldwide, Inc.
000b BMP 51
000c BMP 61

View File

@ -1,5 +1,6 @@
#!/bin/sh
# SPDX-License-Identifier: LGPL-2.1-or-later
set -e
if [ -z "$1" ]; then
@ -8,21 +9,21 @@ if [ -z "$1" ]; then
fi
# make sure the rules have been regenerated (in case update-man-rules was just run)
ninja -C "@BUILD_ROOT@" version.h
ninja -C @BUILD_ROOT@ version.h
target="man/$1.html"
ninja -C "@BUILD_ROOT@" "$target"
ninja -C @BUILD_ROOT@ "$target"
fullname="@BUILD_ROOT@/$target"
fullname=@BUILD_ROOT@/"$target"
if [ -f "$fullname" ]; then
redirect="$(readlink "$fullname" || :)"
else
redirect=""
fi
if [ -n "$redirect" ]; then
ninja -C "@BUILD_ROOT@" "man/$redirect"
ninja -C @BUILD_ROOT@ "man/$redirect"
fullname="@BUILD_ROOT@/man/$redirect"
fullname=@BUILD_ROOT@"/man/$redirect"
fi
set -x

View File

@ -21,47 +21,50 @@
</refnamediv>
<refsynopsisdiv>
<para><filename><replaceable>ESP</replaceable>/loader/loader.conf</filename>,
<filename><replaceable>ESP</replaceable>/loader/entries/*.conf</filename>
<filename><replaceable>XBOOTLDR</replaceable>/loader/entries/*.conf</filename>
</para>
<para><filename><replaceable>ESP</replaceable>/loader/loader.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> will
read <filename><replaceable>ESP</replaceable>/loader/loader.conf</filename>, and any files with the
<literal>.conf</literal> extension under
<filename><replaceable>ESP</replaceable>/loader/entries/</filename> on the EFI system partition (ESP),
and <filename><replaceable>XBOOTLDR</replaceable>/loader/entries/</filename> on the extended boot loader
partition (XBOOTLDR) as defined by <ulink url="https://uapi-group.org/specifications/specs/boot_loader_specification">Boot Loader
Specification</ulink>.
</para>
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> reads
<filename><replaceable>ESP</replaceable>/loader/loader.conf</filename>. This file configures whether the
menu is shown and for how long, the font, audible beep, types of menu entries to show, the default
choice, and some aspects of Secure Boot enrollment and firmware handling. See the list of available
options below.</para>
<para>Each of these configuration files must consist of series of newline (i.e. ASCII code 10) separated
lines, each consisting of an option name, followed by whitespace, and the option
value. <literal>#</literal> may be used to start a comment line. Empty and comment lines are ignored. The
files use UTF-8 encoding.</para>
<para>The file uses UTF-8 encoding and consists of series of lines separated by "line feed" (i.e. ASCII
code 10). Lines that are empty or start with the comment sign (<literal>#</literal>) are ignored. Other
lines consist of an option name, followed by whitespace, and the option value.
</para>
<para>Boolean arguments may be written as
<literal>yes</literal>/<literal>y</literal>/<literal>true</literal>/<literal>t</literal>/<literal>on</literal>/<literal>1</literal> or
<literal>yes</literal>/<literal>y</literal>/<literal>true</literal>/<literal>t</literal>/<literal>on</literal>/<literal>1</literal>
or
<literal>no</literal>/<literal>n</literal>/<literal>false</literal>/<literal>f</literal>/<literal>off</literal>/<literal>0</literal>.
</para>
<para>Note: <command>systemd-boot</command> will also read boot loader entry files,
type #1 (<filename><replaceable>ESP</replaceable>/loader/entries/*.conf</filename> and
<filename><replaceable>XBOOTLDR</replaceable>/loader/entries/*.conf</filename>)
and type #2 (<filename><replaceable>ESP</replaceable>/EFI/Linux/*.uki</filename>
and <filename><replaceable>XBOOTLDR</replaceable>/EFI/Linux/*.uki</filename>).
Those files are described by the
<ulink url="https://uapi-group.org/specifications/specs/boot_loader_specification">Boot Loader
Specification</ulink>.</para>
<para>Note: the behaviour of <command>systemd-boot</command> is also influenced by EFI variables. Some of
the settings specified in this file can be overridden by those, for example the default boot menu entry
or the menu timeouts. See
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
details.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The configuration options supported by
<filename><replaceable>ESP</replaceable>/loader/entries/*.conf</filename> and
<filename><replaceable>XBOOTLDR</replaceable>/loader/entries/*.conf</filename> files are defined as part
of the <ulink url="https://uapi-group.org/specifications/specs/boot_loader_specification">Boot Loader
Specification</ulink>.</para>
<para>The following configuration are supported by the <filename>loader.conf</filename> configuration
file:</para>
<para>The following configuration are supported in <filename>loader.conf</filename>:</para>
<variablelist>
<varlistentry>
@ -254,8 +257,9 @@
<varlistentry>
<term>beep</term>
<listitem><para>Takes a boolean argument. If timeout enabled beep every second, otherwise beep n times when n-th entry in boot menu is selected (default disabled).
Currently, only x86 is supported, where it uses the PC speaker.</para>
<listitem><para>Takes a boolean argument. If timeout enabled beep every second, otherwise beep n
times when n-th entry in boot menu is selected (default disabled). Currently, only x86 is supported,
where it uses the PC speaker.</para>
<xi:include href="version-info.xml" xpointer="v251"/></listitem>
</varlistentry>
@ -379,8 +383,8 @@ sbvarsign --attr "${attr}" --key KEK.key --cert KEK.pem --output db.auth db db.e
<listitem><para>Caveat: This feature is experimental, and is likely to be changed (or removed in its
current form) in a future version of systemd.</para>
<para>Work around BitLocker requiring a recovery key when the boot loader was
updated (disabled by default).</para>
<para>Work around BitLocker requiring a recovery key when the boot loader was updated (disabled by
default).</para>
<para>Try to detect BitLocker encrypted drives along with an active TPM. If both are found and
Windows Boot Manager is selected in the boot menu, set the <literal>BootNext</literal> EFI variable

View File

@ -9,22 +9,22 @@ if [ -z "$1" ]; then
fi
# make sure the rules have been regenerated (in case update-man-rules was just run)
ninja -C "@BUILD_ROOT@" version.h
ninja -C @BUILD_ROOT@ version.h
page="$(echo "$1" | sed 's/\./\\./')"
target=$(ninja -C "@BUILD_ROOT@" -t query man/man | grep -E -m1 "man/$page\.[0-9]$" | awk '{print $2}')
target=$(ninja -C @BUILD_ROOT@ -t query man/man | grep -E -m1 "man/$page\.[0-9]$" | awk '{print $2}')
if [ -z "$target" ]; then
echo "Cannot find page $1"
exit 1
fi
ninja -C "@BUILD_ROOT@" "$target"
ninja -C @BUILD_ROOT@ "$target"
fullname="@BUILD_ROOT@/$target"
fullname=@BUILD_ROOT@/"$target"
redirect="$(sed -n -r '1 s|^\.so man[0-9]/(.*)|\1|p' "$fullname")"
if [ -n "$redirect" ]; then
ninja -C "@BUILD_ROOT@" "man/$redirect"
ninja -C @BUILD_ROOT@ "man/$redirect"
fullname="@BUILD_ROOT@/man/$redirect"
fullname=@BUILD_ROOT@"/man/$redirect"
fi
exec man "$fullname"

View File

@ -29,7 +29,6 @@ custom_html_xsl = files('custom-html.xsl')
xslt_cmd = [xsltproc, '-o', '@OUTPUT0@'] + xsltproc_flags
custom_entities_ent = custom_target(
'custom-entities.ent',
input : 'custom-entities.ent.in',
output : 'custom-entities.ent',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'])
@ -76,7 +75,6 @@ foreach tuple : manpages
if xsltproc.found()
p1 = custom_target(
man,
input : xml,
output : [man] + manaliases,
command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
@ -88,7 +86,6 @@ foreach tuple : manpages
p2 = []
foreach htmlalias : htmlaliases
link = custom_target(
htmlalias,
output : htmlalias,
command : [ln, '-fs', html, '@OUTPUT@'])
if want_html
@ -99,7 +96,6 @@ foreach tuple : manpages
endforeach
p3 = custom_target(
html,
input : xml,
output : html,
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
@ -121,7 +117,6 @@ if not have_lxml
endif
systemd_directives_xml = custom_target(
'systemd.directives.xml',
input : ['directives-template.xml', source_xml_files],
output : 'systemd.directives.xml',
depends : man_page_depends,
@ -129,7 +124,6 @@ systemd_directives_xml = custom_target(
nonindex_xml_files = source_xml_files + [systemd_directives_xml]
systemd_index_xml = custom_target(
'systemd.index.xml',
input : nonindex_xml_files,
output : 'systemd.index.xml',
command : [make_man_index_py, '@OUTPUT@'] + nonindex_xml_files)
@ -146,7 +140,6 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
mandirn = get_option('mandir') / ('man' + section)
p1 = custom_target(
man,
input : xml,
output : man,
command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
@ -158,7 +151,6 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
if html == 'systemd.index.html'
htmlalias = 'index.html'
link = custom_target(
htmlalias,
input : p2,
output : htmlalias,
command : [ln, '-fs', html, '@OUTPUT@'])
@ -170,7 +162,6 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
endif
p3 = custom_target(
html,
input : xml,
output : html,
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
@ -183,13 +174,11 @@ endforeach
# Cannot use run_target because those targets are used in depends
# Also see https://github.com/mesonbuild/meson/issues/368.
man = custom_target(
'man',
output : 'man',
depends : man_pages,
command : [echo])
html = custom_target(
'html',
output : 'html',
depends : html_pages,
command : [echo])

View File

@ -2552,9 +2552,9 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<para><varname>SubState</varname> encodes states of the same state machine that
<varname>ActiveState</varname> covers, but knows more fine-grained states that are
unit-type-specific. Where <varname>ActiveState</varname> only covers six high-level states,
unit-type-specific. Where <varname>ActiveState</varname> only covers eight high-level states,
<varname>SubState</varname> covers possibly many more low-level unit-type-specific states that are
mapped to the six high-level states. Note that multiple low-level states might map to the same
mapped to the eight high-level states. Note that multiple low-level states might map to the same
high-level state, but not vice versa. Not all high-level states have low-level counterparts on all unit
types. At this point the low-level states are not documented here, and are more likely to be extended
later on than the common high-level states explained above.</para>

View File

@ -44,7 +44,7 @@
</funcprototype>
<funcprototype>
<funcdef>char *<function>sd_id128_uuid_string</function></funcdef>
<funcdef>char *<function>sd_id128_to_uuid_string</function></funcdef>
<paramdef>sd_id128_t <parameter>id</parameter>, char <parameter>s</parameter>[static SD_ID128_UUID_STRING_MAX]</paramdef>
</funcprototype>
@ -113,7 +113,7 @@
<title>History</title>
<para><function>sd_id128_to_string()</function> and
<function>sd_id128_from_string()</function> were added in version 187.</para>
<para><function>sd_id128_uuid_string()</function> was added in version 251.</para>
<para><function>sd_id128_to_uuid_string()</function> was added in version 251.</para>
</refsect1>
<refsect1>

View File

@ -149,6 +149,8 @@
<term><keycap>d</keycap></term>
<listitem><para>Make selected entry the default</para>
<para>An EFI variable is set to allow this setting to persist.</para>
<xi:include href="version-info.xml" xpointer="v239"/></listitem>
</varlistentry>
@ -164,6 +166,8 @@
<term><keycap>t</keycap></term>
<listitem><para>Increase the timeout before default entry is booted</para>
<para>An EFI variable is set to allow this setting to persist.</para>
<xi:include href="version-info.xml" xpointer="v239"/></listitem>
</varlistentry>
@ -172,6 +176,8 @@
<term><keycap>T</keycap></term>
<listitem><para>Decrease the timeout</para>
<para>An EFI variable is set to allow this setting to persist.</para>
<xi:include href="version-info.xml" xpointer="v239"/></listitem>
</varlistentry>
@ -179,6 +185,8 @@
<term><keycap>r</keycap></term>
<listitem><para>Change screen resolution, skipping any unsupported modes.</para>
<para>An EFI variable is set to allow this setting to persist.</para>
<xi:include href="version-info.xml" xpointer="v250"/></listitem>
</varlistentry>
@ -186,6 +194,8 @@
<term><keycap>R</keycap></term>
<listitem><para>Reset screen resolution to firmware or configuration file default.</para>
<para>An EFI variable is set to allow this setting to persist.</para>
<xi:include href="version-info.xml" xpointer="v250"/></listitem>
</varlistentry>
@ -280,15 +290,15 @@
</variablelist>
<para>The boot menu is shown when a non-zero menu timeout has been configured. If the menu timeout has
been set to zero, it is sufficient to press any key — before the boot loader initializes — to bring up
the boot menu, except for the keys listed immediately above as they directly boot into the selected boot
menu item. Note that depending on the firmware implementation the time window where key presses are
accepted before the boot loader initializes might be short. If the window is missed, reboot and try
again, possibly pressing a suitable key (e.g. the space bar) continuously; on most systems it should be
possible to hit the time window after a few attempts. To avoid this problem, consider setting a non-zero
timeout, thus showing the boot menu unconditionally. Some desktop environments might offer an option to
directly boot into the boot menu, to avoid the problem altogether. Alternatively, use the command line
<command>systemctl reboot --boot-loader-menu=0</command> from the shell.</para>
been set to zero, hold down a key (<keycap>space</keycap> is recommended) before the boot loader
initializes to bring up the boot menu. Note that depending on the firmware implementation the time window
where key presses are accepted before the boot loader initializes might be short. If the window is
missed, reboot and try again, possibly repeatedly pressing a suitable key; on most systems it should be
possible to hit the time window after a few attempts. Keys other than the space bar may be used, except
for the keys listed above. If showing the menu on demand doesn't work well, consider setting a non-zero
timeout to show the boot menu unconditionally. Some desktop environments might offer an option to boot
directly into the boot menu, which also avoids the problem altogether. Alternatively, use the command
line <command>systemctl reboot --boot-loader-menu=</command> with a non-zero value from the shell.</para>
<para>In the editor, most keys simply insert themselves, but the following keys
may be used to perform additional actions:</para>
@ -389,16 +399,16 @@
<refsect1>
<title>EFI Variables</title>
<para>The following EFI variables are defined, set and read by <command>systemd-boot</command>, under the
vendor UUID <literal>4a67b082-0a4c-41cf-b6c7-440b29bb8c4f</literal>, for communication between the boot
loader and the OS:</para>
<para>The following EFI variables are defined, and may be set or read by <command>systemd-boot</command>
for communication between the boot loader and the OS. The vendor UUID
<literal>4a67b082-0a4c-41cf-b6c7-440b29bb8c4f</literal> is used in all cases.</para>
<variablelist class='efi-variables'>
<varlistentry>
<term><varname>LoaderBootCountPath</varname></term>
<listitem><para>If boot counting is enabled, contains the path to the file in whose name the boot counters are
encoded. Set by the boot
loader. <citerefentry><refentrytitle>systemd-bless-boot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
<listitem><para>If boot counting is enabled, contains the path to the file in whose name the boot
counters are encoded. Set by the boot loader.
<citerefentry><refentrytitle>systemd-bless-boot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
uses this information to mark a boot as successful as determined by the successful activation of the
<filename>boot-complete.target</filename> target unit.</para>
@ -454,13 +464,13 @@
<term><varname>LoaderEntryDefault</varname></term>
<term><varname>LoaderEntryOneShot</varname></term>
<listitem><para>The identifier of the default boot loader entry. Set primarily by the OS and read by the boot
<listitem><para>The identifier of the default boot loader entry. Can be set in the OS and the boot
loader. <varname>LoaderEntryOneShot</varname> sets the default entry for the next boot only, while
<varname>LoaderEntryDefault</varname> sets it persistently for all future
boots. <citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>set-default</option> and <option>set-oneshot</option> commands make use of these variables. The boot
loader modifies <varname>LoaderEntryDefault</varname> on request, when the <keycap>d</keycap> key is used, see
above.</para>
<varname>LoaderEntryDefault</varname> sets it persistently for all future boots.
<citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>set-default</option> and <option>set-oneshot</option> commands make use of these variables.
The boot loader modifies <varname>LoaderEntryDefault</varname> on request, when the
<keycap>d</keycap> key is used, see above.</para>
<xi:include href="version-info.xml" xpointer="v240"/></listitem>
</varlistentry>

View File

@ -413,7 +413,7 @@
<term><varname>UnsetProperty=</varname></term>
<listitem>
<para>Unset specified udev properties. This takes space separated list of
property names. Example: <programlisting>ImportProperty=HOGE BAR</programlisting>
property names. Example: <programlisting>UnsetProperty=HOGE BAR</programlisting>
This option supports simple specifier expansion, see the Specifiers section below.
This option can be specified multiple times. If an empty string is assigned, then the all previous
assignments are cleared.</para>

View File

@ -357,15 +357,17 @@
<varlistentry>
<term><varname>PIDFile=</varname></term>
<listitem><para>Takes a path referring to the PID file of the service. Usage of this option is recommended for
services where <varname>Type=</varname> is set to <option>forking</option>. The path specified typically points
to a file below <filename>/run/</filename>. If a relative path is specified it is hence prefixed with
<filename>/run/</filename>. The service manager will read the PID of the main process of the service from this
file after start-up of the service. The service manager will not write to the file configured here, although it
will remove the file after the service has shut down if it still exists. The PID file does not need to be owned
by a privileged user, but if it is owned by an unprivileged user additional safety restrictions are enforced:
the file may not be a symlink to a file owned by a different user (neither directly nor indirectly), and the
PID file must refer to a process already belonging to the service.</para>
<listitem><para>Takes a path referring to the PID file of the service. Usage of this option is
recommended for services where <varname>Type=</varname> is set to <option>forking</option>. The path
specified typically points to a file below <filename>/run/</filename>. If a relative path is
specified for system service, then it is hence prefixed with <filename>/run/</filename>, and prefixed
with <filename>$XDG_RUNTIME_DIR</filename> if specified in a user service. The service manager will
read the PID of the main process of the service from this file after start-up of the service. The
service manager will not write to the file configured here, although it will remove the file after
the service has shut down if it still exists. The PID file does not need to be owned by a privileged
user, but if it is owned by an unprivileged user additional safety restrictions are enforced: the
file may not be a symlink to a file owned by a different user (neither directly nor indirectly), and
the PID file must refer to a process already belonging to the service.</para>
<para>Note that PID files should be avoided in modern projects. Use <option>Type=notify</option>,
<option>Type=notify-reload</option> or <option>Type=simple</option> where possible, which does not
@ -1686,7 +1688,7 @@ WantedBy=multi-user.target</programlisting>
just starts one process in the background:</para>
<programlisting>[Unit]
Description=Some simple daemon
Description=My Simple Daemon
[Service]
Type=forking
@ -1712,7 +1714,7 @@ WantedBy=multi-user.target</programlisting>
The following example shows a typical DBus service:</para>
<programlisting>[Unit]
Description=Simple DBus service
Description=Simple DBus Service
[Service]
Type=dbus
@ -1751,7 +1753,7 @@ SystemdService=simple-dbus-service.service</programlisting>
daemon would look like this:</para>
<programlisting>[Unit]
Description=Simple notifying service
Description=Simple Notifying Service
[Service]
Type=notify-reload

View File

@ -247,7 +247,7 @@ tomorrow Pacific/Auckland → Thu 2012-11-23 19:00:00
decimal places.</para>
<para>Either time or date specification may be omitted, in which
case *-*-* and 00:00:00 is implied, respectively. If the
case 00:00:00 and *-*-* is implied, respectively. If the
seconds component is not specified, <literal>:00</literal> is
assumed.</para>

View File

@ -1814,9 +1814,21 @@ if conf.get('BPF_FRAMEWORK') == 1
#
# C.f. https://mesonbuild.com/Reference-tables.html#cpu-families
# and src/basic/missing_syscall_def.h.
# Start with older ABI. When define is missing, we're likely targeting that.
ppc64_elf_version = '1'
if host_machine.cpu_family() == 'ppc64'
# cc doesn't have to be bpf_compiler, but they should be targeting the same ABI
call_elf_value = cc.get_define('_CALL_ELF')
if call_elf_value != ''
ppc64_elf_version = call_elf_value
endif
endif
cpu_arch_defines = {
'ppc' : ['-D__powerpc__', '-D__TARGET_ARCH_powerpc'],
'ppc64' : ['-D__powerpc64__', '-D__TARGET_ARCH_powerpc', '-D_CALL_ELF=2'],
'ppc64' : ['-D__powerpc64__', '-D__TARGET_ARCH_powerpc', '-D_CALL_ELF=' + ppc64_elf_version],
'riscv32' : ['-D__riscv', '-D__riscv_xlen=32', '-D__TARGET_ARCH_riscv'],
'riscv64' : ['-D__riscv', '-D__riscv_xlen=64', '-D__TARGET_ARCH_riscv'],
'x86' : ['-D__i386__', '-D__TARGET_ARCH_x86'],
@ -1863,11 +1875,21 @@ if conf.get('BPF_FRAMEWORK') == 1
target_triplet_cmd = run_command('gcc', '-print-multiarch', check: false)
endif
if target_triplet_cmd.returncode() == 0
sysroot = meson.get_external_property('sys_root', '/')
target_triplet = target_triplet_cmd.stdout().strip()
bpf_o_unstripped_cmd += [
'-isystem',
'/usr/include/@0@'.format(target_triplet)
]
target_include_dir = sysroot / 'usr' / 'include'
target_triple_include_dir = target_include_dir / target_triplet
isystem_dir = ''
if fs.is_dir(target_triple_include_dir)
isystem_dir = target_triple_include_dir
elif fs.is_dir(target_include_dir)
isystem_dir = target_include_dir
endif
if isystem_dir != ''
bpf_o_unstripped_cmd += [
'-isystem', isystem_dir
]
endif
endif
bpf_o_unstripped_cmd += [
@ -2004,7 +2026,6 @@ if use_provided_vmlinux_h
message('Using provided @0@'.format(provided_vmlinux_h_path))
elif use_generated_vmlinux_h
vmlinux_h_dependency = custom_target(
'vmlinux.h',
output: 'vmlinux.h',
command : [ bpftool, 'btf', 'dump', 'file', '/sys/kernel/btf/vmlinux', 'format', 'c' ],
capture : true)
@ -2227,12 +2248,12 @@ endif
#####################################################################
runtest_env = custom_target(
'systemd-runtest.env',
output : 'systemd-runtest.env',
command : [sh, '-c',
'{ echo SYSTEMD_TEST_DATA=@0@; echo SYSTEMD_CATALOG_DIR=@1@; } >@OUTPUT@'.format(
meson.project_source_root() / 'test',
meson.project_build_root() / 'catalog')],
command : ['printf',
'SYSTEMD_TEST_DATA=%q\nSYSTEMD_CATALOG_DIR=%q\n',
meson.project_source_root() / 'test',
meson.project_build_root() / 'catalog'],
capture: true,
depends : catalogs,
build_by_default : true)
@ -2697,7 +2718,6 @@ foreach executable : ['systemd-measure', 'systemd-sbsign', 'systemd-keyutil']
endforeach
ukify = custom_target(
'ukify',
input : 'src/ukify/ukify.py',
output : 'ukify',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
@ -2848,7 +2868,6 @@ if git.found()
all_files = files(all_files.stdout().split())
custom_target(
'tags',
output : 'tags',
command : [env, 'etags', '-o', '@0@/TAGS'.format(meson.project_source_root())] + all_files)
run_target(
@ -2914,12 +2933,12 @@ if not meson.is_cross_build()
endif
meson_extract_unit_files = find_program('tools/meson-extract-unit-files.py')
custom_target('installed-unit-files.txt',
output : 'installed-unit-files.txt',
capture : true,
install : want_tests != 'no' and install_tests,
install_dir : testdata_dir,
command : [meson_extract_unit_files, meson.project_build_root()])
custom_target(
output : 'installed-unit-files.txt',
capture : true,
install : want_tests != 'no' and install_tests,
install_dir : testdata_dir,
command : [meson_extract_unit_files, meson.project_build_root()])
#####################################################################

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Config]
MinimumVersion=commit:5e739ef1ed02a4f3b6ae64e50a8ee186cbcb21c2
MinimumVersion=commit:655baf24474a6f0732ec1b82a71c2f6fe4eeeb49
Dependencies=
exitrd
initrd
@ -38,6 +38,8 @@ Incremental=yes
[Validation]
SignExpectedPcr=yes
SecureBoot=yes
SecureBootAutoEnroll=yes
[Content]
ExtraTrees=

View File

@ -1,8 +1,5 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Distribution=arch
[Build]
Environment=
GIT_URL=https://gitlab.archlinux.org/archlinux/packaging/packages/systemd.git

View File

@ -8,7 +8,6 @@ Distribution=|fedora
PrepareScripts=systemd.prepare
VolatilePackages=
systemd
systemd-boot
systemd-container
systemd-devel
systemd-journal-remote
@ -28,6 +27,8 @@ Packages=
cryptsetup
device-mapper-event
device-mapper-multipath
dfuzzer
erofs-utils
git-core
glibc-langpack-de
glibc-langpack-en
@ -39,6 +40,7 @@ Packages=
iputils
iscsi-initiator-utils
kernel-core
knot
libcap-ng-utils
man-db
nmap-ncat
@ -51,6 +53,9 @@ Packages=
polkit
procps-ng
python3-pexpect
# needed to upgrade and downgrade systemd-ukify in tests
python3-zstd
qrencode
quota
rpm
softhsm

View File

@ -0,0 +1,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Architecture=uefi
[Content]
Packages=
sbsigntools
VolatilePackages=
systemd-boot

View File

@ -1,9 +1,5 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Distribution=|centos
Distribution=|fedora
[Build]
Environment=
GIT_URL=https://src.fedoraproject.org/rpms/systemd.git

View File

@ -5,6 +5,7 @@ Distribution=centos
[Distribution]
Release=10
Repositories=epel
[Build]
Environment=

View File

@ -1,9 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Release=9
[Distribution]
Repositories=
epel
epel-next

View File

@ -1,13 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Repositories=epel
[Content]
Packages=
dfuzzer
dhcp-server
erofs-utils
knot
qrencode
sbsigntools

View File

@ -13,7 +13,6 @@ VolatilePackages=
libsystemd-shared-dbgsym
libsystemd0-dbgsym
libudev1-dbgsym
systemd-boot-dbgsym
systemd-container-dbgsym
systemd-coredump-dbgsym
systemd-cryptsetup-dbgsym

View File

@ -0,0 +1,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Environment=WITH_DEBUG=1
[Match]
Architecture=uefi
[Content]
VolatilePackages=
systemd-boot-dbgsym

View File

@ -2,13 +2,7 @@
# sbsigntool exists only on UEFI architectures
[Match]
Architecture=|x86
Architecture=|x86-64
Architecture=|arm
Architecture=|arm64
Architecture=|riscv32
Architecture=|riscv64
Architecture=|loongarch64
Architecture=uefi
[Content]
Packages=

View File

@ -1,9 +1,5 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Distribution=|debian
Distribution=|ubuntu
[Build]
Environment=
GIT_URL=https://salsa.debian.org/systemd-team/systemd.git

View File

@ -10,16 +10,11 @@ Release=rawhide
Packages=
btrfs-progs
compsize
dfuzzer
dhcp-server
dnf5
erofs-utils
f2fs-tools
# Required for systemd-networkd-tests.py (netdevsim and sch_xxx modules)
kernel-modules-extra
kernel-modules-internal
knot
qrencode
rpmautospec
sbsigntools
scsi-target-utils

View File

@ -16,7 +16,6 @@ VolatilePackages=
libsystemd0
libudev1
systemd
systemd-boot
systemd-container
systemd-devel
systemd-doc
@ -69,7 +68,6 @@ Packages=
qrencode
quota
rsync
sbsigntools
sed
shadow
softhsm

View File

@ -7,7 +7,6 @@ Environment=WITH_DEBUG=1
VolatilePackages=
libsystemd0-debuginfo
libudev1-debuginfo
systemd-boot-debuginfo
systemd-container-debuginfo
systemd-debuginfo
systemd-debugsource

View File

@ -0,0 +1,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Environment=WITH_DEBUG=1
[Match]
Architecture=uefi
[Content]
VolatilePackages=
systemd-boot-debuginfo

View File

@ -0,0 +1,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Architecture=uefi
[Content]
VolatilePackages=
systemd-boot
Packages=
sbsigntools

View File

@ -1,8 +1,5 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Match]
Distribution=opensuse
[Build]
Environment=
GIT_URL=https://github.com/bmwiedemann/openSUSE

View File

@ -29,8 +29,8 @@ disable dnf-makecache.*
# We have journald to receive audit data so let's make sure we're not running auditd as well
disable auditd.service
# systemd-timesyncd is not enabled by default in the default systemd preset so enable it here instead.
enable systemd-timesyncd.service
# systemd-timesyncd causes quite a bit of debug log noise so let's disable it by default.
disable systemd-timesyncd.service
# Enabled by default on OpenSUSE and not conditioned out in containers, so let's disable these here instead.
disable iscsi.service

View File

@ -3,3 +3,13 @@
set -e
touch -r "$BUILDROOT/usr" "$BUILDROOT/etc/.updated" "$BUILDROOT/var/.updated"
if [ -n "$EFI_ARCHITECTURE" ]; then
mkdir -p "$BUILDROOT/boot/loader/addons"
ukify build \
--stub "$BUILDROOT/usr/lib/systemd/boot/efi/addon${EFI_ARCHITECTURE}.efi.stub" \
--cmdline="addonfoobar" \
--output "$BUILDROOT/boot/loader/addons/test.addon.efi" \
--secureboot-certificate "$SRCDIR/mkosi/mkosi.crt" \
--secureboot-private-key "$SRCDIR/mkosi/mkosi.key"
fi

View File

@ -0,0 +1,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[TriggerMatch]
Repositories=epel
Release=9
[TriggerMatch]
Release=10
[Content]
Packages=erofs-utils

View File

@ -2,8 +2,7 @@
[Match]
Repositories=epel
Release=9
[Content]
Packages=
erofs-utils
rpmautospec-rpm-macros
Packages=rpmautospec-rpm-macros

View File

@ -13,5 +13,5 @@ Packages=
clangd
erofs-utils
git-core
libclang-rt-dev
?exact-name(libclang-rt-dev)
dpkg-dev

View File

@ -1,6 +1,11 @@
target-version = "py39"
target-version = "py37"
line-length = 109
lint.select = ["E", "F", "I", "UP"]
[format]
quote-style = "single"
[per-file-target-version]
"src/ukify/*.py" = "py39"
"test/**/integration-test-wrapper.py" = "py39"
"test/test-udev.py" = "py39"

View File

@ -70,7 +70,6 @@ foreach tuple : rules_in
want = tuple.length() == 1 or tuple[1]
rule = custom_target(
tuple[0],
input : tuple[0] + '.in',
output: tuple[0],
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],

View File

@ -11,7 +11,6 @@ if bashcompletiondir == ''
endif
custom_target(
'systemctl',
input : 'systemctl.in',
output : 'systemctl',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],

View File

@ -6,7 +6,6 @@ if zshcompletiondir == ''
endif
custom_target(
'_systemctl',
input : '_systemctl.in',
output : '_systemctl',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],

View File

@ -99,6 +99,9 @@ int cg_read_pid(FILE *f, pid_t *ret, CGroupFlags flags) {
assert(f);
assert(ret);
/* NB: The kernel returns ENODEV if we tried to read from cgroup.procs of a cgroup that has been
* removed already. Callers should handle that! */
for (;;) {
errno = 0;
if (fscanf(f, "%lu", &ul) != 1) {
@ -334,6 +337,13 @@ static int cg_kill_items(
_cleanup_(pidref_done) PidRef pidref = PIDREF_NULL;
r = cg_read_pidref(f, &pidref, flags);
if (r == -ENODEV) {
/* reading from cgroup.pids will result in ENODEV if the cgroup is
* concurrently removed. Just leave in that case, because a removed cgroup
* contains no processes anymore. */
done = true;
break;
}
if (r < 0)
return RET_GATHER(ret, log_debug_errno(r, "Failed to read pidref from cgroup '%s': %m", path));
if (r == 0)

View File

@ -348,15 +348,14 @@ int decompress_blob_xz(
size_t used;
ret = sym_lzma_code(&s, LZMA_FINISH);
if (ret == LZMA_STREAM_END)
break;
else if (ret != LZMA_OK)
if (ret != LZMA_OK)
return -ENOMEM;
if (dst_max > 0 && (space - s.avail_out) >= dst_max)
break;
else if (dst_max > 0 && space == dst_max)
if (dst_max > 0 && space == dst_max)
return -ENOBUFS;
used = space - s.avail_out;
@ -483,20 +482,22 @@ int decompress_blob(
size_t* dst_size,
size_t dst_max) {
if (compression == COMPRESSION_XZ)
switch (compression) {
case COMPRESSION_XZ:
return decompress_blob_xz(
src, src_size,
dst, dst_size, dst_max);
else if (compression == COMPRESSION_LZ4)
case COMPRESSION_LZ4:
return decompress_blob_lz4(
src, src_size,
dst, dst_size, dst_max);
else if (compression == COMPRESSION_ZSTD)
case COMPRESSION_ZSTD:
return decompress_blob_zstd(
src, src_size,
dst, dst_size, dst_max);
else
default:
return -EPROTONOSUPPORT;
}
}
int decompress_startswith_xz(
@ -707,27 +708,30 @@ int decompress_startswith(
size_t prefix_len,
uint8_t extra) {
if (compression == COMPRESSION_XZ)
switch (compression) {
case COMPRESSION_XZ:
return decompress_startswith_xz(
src, src_size,
buffer,
prefix, prefix_len,
extra);
else if (compression == COMPRESSION_LZ4)
case COMPRESSION_LZ4:
return decompress_startswith_lz4(
src, src_size,
buffer,
prefix, prefix_len,
extra);
else if (compression == COMPRESSION_ZSTD)
case COMPRESSION_ZSTD:
return decompress_startswith_zstd(
src, src_size,
buffer,
prefix, prefix_len,
extra);
else
default:
return -EBADMSG;
}
}
int compress_stream_xz(int fdf, int fdt, uint64_t max_bytes, uint64_t *ret_uncompressed_size) {
@ -1291,10 +1295,10 @@ int decompress_stream(const char *filename, int fdf, int fdt, uint64_t max_bytes
if (endswith(filename, ".lz4"))
return decompress_stream_lz4(fdf, fdt, max_bytes);
else if (endswith(filename, ".xz"))
if (endswith(filename, ".xz"))
return decompress_stream_xz(fdf, fdt, max_bytes);
else if (endswith(filename, ".zst"))
if (endswith(filename, ".zst"))
return decompress_stream_zstd(fdf, fdt, max_bytes);
else
return -EPROTONOSUPPORT;
return -EPROTONOSUPPORT;
}

View File

@ -121,28 +121,24 @@ basic_sources += missing_syscall_def_h
generate_af_list = find_program('generate-af-list.sh')
af_list_txt = custom_target(
'af-list.txt',
output : 'af-list.txt',
command : [generate_af_list, cpp, config_h, missing_socket_h],
capture : true)
generate_arphrd_list = find_program('generate-arphrd-list.sh')
arphrd_list_txt = custom_target(
'arphrd-list.txt',
output : 'arphrd-list.txt',
command : [generate_arphrd_list, cpp, files('linux/if_arp.h'), config_h],
capture : true)
generate_cap_list = find_program('generate-cap-list.sh')
cap_list_txt = custom_target(
'cap-list.txt',
output : 'cap-list.txt',
command : [generate_cap_list, cpp, config_h, missing_capability_h],
capture : true)
generate_errno_list = find_program('generate-errno-list.sh')
errno_list_txt = custom_target(
'errno-list.txt',
output : 'errno-list.txt',
command : [generate_errno_list, cpp],
capture : true)
@ -155,7 +151,6 @@ foreach item : [['af', af_list_txt, 'af', ''],
fname = '@0@-from-name.gperf'.format(item[0])
gperf_file = custom_target(
fname,
input : item[1],
output : fname,
command : [generate_gperfs, item[2], item[3], '@INPUT@'],
@ -163,7 +158,6 @@ foreach item : [['af', af_list_txt, 'af', ''],
fname = '@0@-from-name.h'.format(item[0])
target1 = custom_target(
fname,
input : gperf_file,
output : fname,
command : [gperf,
@ -177,7 +171,6 @@ foreach item : [['af', af_list_txt, 'af', ''],
fname = '@0@-to-name.h'.format(item[0])
awkscript = '@0@-to-name.awk'.format(item[0])
target2 = custom_target(
fname,
input : [awkscript, item[1]],
output : fname,
command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
@ -246,7 +239,6 @@ if r.returncode() != 0
endif
filesystems_gperf_h = custom_target(
'filesystems-gperf.h',
input : 'filesystems-gperf.gperf',
output : 'filesystems-gperf.h',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
@ -254,7 +246,6 @@ filesystems_gperf_h = custom_target(
generate_filesystem_list = find_program('generate-filesystem-list.py')
fname = 'filesystem-list.h'
filesystem_list_h = custom_target(
fname,
input : 'filesystems-gperf.gperf',
output : fname,
command : [generate_filesystem_list,
@ -264,7 +255,6 @@ filesystem_list_h = custom_target(
generate_filesystem_switch_case_h = find_program('generate-filesystem-switch-case.py')
fname = 'filesystem-switch-case.h'
filesystem_switch_case_h = custom_target(
fname,
input : 'filesystems-gperf.gperf',
output : 'filesystem-switch-case.h',
command : [generate_filesystem_switch_case_h,

View File

@ -321,27 +321,14 @@ static inline int getsockopt_int(int fd, int level, int optname, int *ret) {
int socket_bind_to_ifname(int fd, const char *ifname);
int socket_bind_to_ifindex(int fd, int ifindex);
/* Define a 64-bit version of timeval/timespec in any case, even on 32-bit userspace. */
struct timeval_large {
uint64_t tvl_sec, tvl_usec;
};
struct timespec_large {
uint64_t tvl_sec, tvl_nsec;
};
/* glibc duplicates timespec/timeval on certain 32-bit arches, once in 32-bit and once in 64-bit.
* See __convert_scm_timestamps() in glibc source code. Hence, we need additional buffer space for them
* to prevent truncating control msg (recvmsg() MSG_CTRUNC). */
#define CMSG_SPACE_TIMEVAL \
((sizeof(struct timeval) == sizeof(struct timeval_large)) ? \
CMSG_SPACE(sizeof(struct timeval)) : \
CMSG_SPACE(sizeof(struct timeval)) + \
CMSG_SPACE(sizeof(struct timeval_large)))
(CMSG_SPACE(sizeof(struct timeval)) + CMSG_SPACE(2 * sizeof(uint64_t)))
#define CMSG_SPACE_TIMESPEC \
((sizeof(struct timespec) == sizeof(struct timespec_large)) ? \
CMSG_SPACE(sizeof(struct timespec)) : \
CMSG_SPACE(sizeof(struct timespec)) + \
CMSG_SPACE(sizeof(struct timespec_large)))
(CMSG_SPACE(sizeof(struct timespec)) + CMSG_SPACE(2 * sizeof(uint64_t)))
ssize_t recvmsg_safe(int sockfd, struct msghdr *msg, int flags);

View File

@ -122,18 +122,18 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) {
new_termios.c_cc[VMIN] = 1;
new_termios.c_cc[VTIME] = 0;
if (tcsetattr(fd, TCSADRAIN, &new_termios) >= 0) {
if (tcsetattr(fd, TCSANOW, &new_termios) >= 0) {
char c;
if (t != USEC_INFINITY) {
if (fd_wait_for_event(fd, POLLIN, t) <= 0) {
(void) tcsetattr(fd, TCSADRAIN, &old_termios);
(void) tcsetattr(fd, TCSANOW, &old_termios);
return -ETIMEDOUT;
}
}
r = safe_fgetc(f, &c);
(void) tcsetattr(fd, TCSADRAIN, &old_termios);
(void) tcsetattr(fd, TCSANOW, &old_termios);
if (r < 0)
return r;
if (r == 0)
@ -1915,7 +1915,7 @@ int get_default_background_color(double *ret_red, double *ret_green, double *ret
struct termios new_termios = old_termios;
termios_disable_echo(&new_termios);
if (tcsetattr(STDIN_FILENO, TCSADRAIN, &new_termios) < 0)
if (tcsetattr(STDIN_FILENO, TCSANOW, &new_termios) < 0)
return -errno;
r = loop_write(STDOUT_FILENO, ANSI_OSC "11;?" ANSI_ST, SIZE_MAX);
@ -1979,7 +1979,7 @@ int get_default_background_color(double *ret_red, double *ret_green, double *ret
}
finish:
RET_GATHER(r, RET_NERRNO(tcsetattr(STDIN_FILENO, TCSADRAIN, &old_termios)));
RET_GATHER(r, RET_NERRNO(tcsetattr(STDIN_FILENO, TCSANOW, &old_termios)));
return r;
}
@ -2106,7 +2106,7 @@ int terminal_get_size_by_dsr(
struct termios new_termios = old_termios;
termios_disable_echo(&new_termios);
if (tcsetattr(input_fd, TCSADRAIN, &new_termios) < 0)
if (tcsetattr(input_fd, TCSANOW, &new_termios) < 0)
return log_debug_errno(errno, "Failed to set new terminal settings: %m");
unsigned saved_row = 0, saved_column = 0;
@ -2209,7 +2209,7 @@ finish:
if (saved_row > 0 && saved_column > 0)
RET_GATHER(r, terminal_set_cursor_position(output_fd, saved_row, saved_column));
RET_GATHER(r, RET_NERRNO(tcsetattr(input_fd, TCSADRAIN, &old_termios)));
RET_GATHER(r, RET_NERRNO(tcsetattr(input_fd, TCSANOW, &old_termios)));
return r;
}

View File

@ -250,7 +250,7 @@ static int detect_vm_smbios(void) {
#endif /* defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch_lp64) */
static Virtualization detect_vm_dmi(void) {
#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch_lp64)
#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch_lp64) || defined(__riscv)
int r;
r = detect_vm_dmi_vendor();
@ -471,8 +471,7 @@ Virtualization detect_vm(void) {
VIRTUALIZATION_ORACLE,
VIRTUALIZATION_XEN,
VIRTUALIZATION_AMAZON,
VIRTUALIZATION_PARALLELS,
VIRTUALIZATION_GOOGLE)) {
VIRTUALIZATION_PARALLELS)) {
v = dmi;
goto finish;
}
@ -511,6 +510,10 @@ Virtualization detect_vm(void) {
hyperv = true;
else if (v == VIRTUALIZATION_VM_OTHER)
other = true;
else if (v == VIRTUALIZATION_KVM && dmi == VIRTUALIZATION_GOOGLE)
/* The DMI vendor tables in /sys/class/dmi/id don't help us distinguish between GCE
* virtual machines and bare-metal instances, so we need to look at hypervisor. */
return VIRTUALIZATION_GOOGLE;
else if (v != VIRTUALIZATION_NONE)
goto finish;
@ -523,7 +526,9 @@ Virtualization detect_vm(void) {
return dmi;
if (dmi == VIRTUALIZATION_VM_OTHER)
other = true;
else if (dmi != VIRTUALIZATION_NONE) {
else if (!IN_SET(dmi, VIRTUALIZATION_NONE, VIRTUALIZATION_GOOGLE)) {
/* At this point if GCE has been detected in dmi, do not report as a VM. It should
* be a bare-metal machine */
v = dmi;
goto finish;
}

View File

@ -1612,7 +1612,7 @@ static void config_load_defaults(Config *config, EFI_FILE *root_dir) {
if (err == EFI_SUCCESS)
config->timeout_sec = config->timeout_sec_efivar;
else if (err != EFI_NOT_FOUND)
log_error_status(err, "Error reading LoaderConfigTimeout EFI variable: %m");
log_warning_status(err, "Error reading LoaderConfigTimeout EFI variable, ignoring: %m");
err = efivar_get_timeout(u"LoaderConfigTimeoutOneShot", &config->timeout_sec);
if (err == EFI_SUCCESS) {
@ -1621,7 +1621,7 @@ static void config_load_defaults(Config *config, EFI_FILE *root_dir) {
config->force_menu = true; /* force the menu when this is set */
} else if (err != EFI_NOT_FOUND)
log_error_status(err, "Error reading LoaderConfigTimeoutOneShot EFI variable: %m");
log_warning_status(err, "Error reading LoaderConfigTimeoutOneShot EFI variable, ignoring: %m");
uint64_t value;
err = efivar_get_uint64_str16(MAKE_GUID_PTR(LOADER), u"LoaderConfigConsoleMode", &value);

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
efi_config_h_dir = meson.current_build_dir()
efi_addon = ''
efi_addon = []
libefitest = static_library(
'efitest',
@ -393,7 +393,6 @@ foreach efi_elf_binary : efi_elf_binaries
endif
exe = custom_target(
name,
output : name,
input : efi_elf_binary,
install : true,
@ -418,12 +417,12 @@ foreach efi_elf_binary : efi_elf_binaries
# This is supposed to match exactly one time
if name == 'addon@0@.efi.stub'.format(efi_arch)
efi_addon = exe.full_path()
efi_addon = [exe]
endif
test('check-alignment-@0@'.format(name),
check_efi_alignment_py,
args : exe.full_path(),
args : exe,
suite : 'boot')
endforeach

View File

@ -329,6 +329,9 @@ static int update_efi_boot_binaries(const char *esp_path, const char *source_pat
_cleanup_free_ char *p = NULL;
int r, ret = 0;
assert(esp_path);
assert(source_path);
r = chase_and_opendir("/EFI/BOOT", esp_path, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, &p, &d);
if (r == -ENOENT)
return 0;
@ -337,7 +340,6 @@ static int update_efi_boot_binaries(const char *esp_path, const char *source_pat
FOREACH_DIRENT(de, d, break) {
_cleanup_close_ int fd = -EBADF;
_cleanup_free_ char *v = NULL;
if (!endswith_no_case(de->d_name, ".efi"))
continue;
@ -354,19 +356,14 @@ static int update_efi_boot_binaries(const char *esp_path, const char *source_pat
if (r == 0)
continue;
r = get_file_version(fd, &v);
if (r == -ESRCH)
continue; /* No version information */
if (r < 0)
return r;
if (!startswith(v, "systemd-boot "))
continue;
_cleanup_free_ char *dest_path = path_join(p, de->d_name);
if (!dest_path)
return log_oom();
RET_GATHER(ret, copy_file_with_version_check(source_path, dest_path, /* force = */ false));
r = copy_file_with_version_check(source_path, dest_path, /* force = */ false);
if (IN_SET(r, -ESTALE, -ESRCH))
continue;
RET_GATHER(ret, r);
}
return ret;

View File

@ -5,19 +5,16 @@ if conf.get('BPF_FRAMEWORK') != 1
endif
restrict_fs_bpf_o_unstripped = custom_target(
'restrict-fs.bpf.unstripped.o',
input : 'restrict-fs.bpf.c',
output : 'restrict-fs.bpf.unstripped.o',
command : bpf_o_unstripped_cmd)
restrict_fs_bpf_o = custom_target(
'restrict-fs.bpf.o',
input : restrict_fs_bpf_o_unstripped,
output : 'restrict-fs.bpf.o',
command : bpf_o_cmd)
restrict_fs_skel_h = custom_target(
'restrict-fs.skel.h',
input : restrict_fs_bpf_o,
output : 'restrict-fs.skel.h',
command : skel_h_cmd,

View File

@ -5,19 +5,16 @@ if conf.get('BPF_FRAMEWORK') != 1
endif
restrict_ifaces_bpf_o_unstripped = custom_target(
'restrict-ifaces.bpf.unstripped.o',
input : 'restrict-ifaces.bpf.c',
output : 'restrict-ifaces.bpf.unstripped.o',
command : bpf_o_unstripped_cmd)
restrict_ifaces_bpf_o = custom_target(
'restrict-ifaces.bpf.o',
input : restrict_ifaces_bpf_o_unstripped,
output : 'restrict-ifaces.bpf.o',
command : bpf_o_cmd)
restrict_ifaces_skel_h = custom_target(
'restrict-ifaces.skel.h',
input : restrict_ifaces_bpf_o,
output : 'restrict-ifaces.skel.h',
command : skel_h_cmd,

View File

@ -5,19 +5,16 @@ if conf.get('BPF_FRAMEWORK') != 1
endif
socket_bind_bpf_o_unstripped = custom_target(
'socket-bind.bpf.unstripped.o',
input : 'socket-bind.bpf.c',
output : 'socket-bind.bpf.unstripped.o',
command : bpf_o_unstripped_cmd)
socket_bind_bpf_o = custom_target(
'socket-bind.bpf.o',
input : socket_bind_bpf_o_unstripped,
output : 'socket-bind.bpf.o',
command : bpf_o_cmd)
socket_bind_skel_h = custom_target(
'socket-bind.skel.h',
input : socket_bind_bpf_o,
output : 'socket-bind.skel.h',
command : skel_h_cmd,

View File

@ -763,6 +763,7 @@ static int method_generic_unit_operation(
sd_bus_message *message,
Manager *m,
sd_bus_error *error,
UnitType type,
sd_bus_message_handler_t handler,
GenericUnitOperationFlags flags) {
@ -788,6 +789,11 @@ static int method_generic_unit_operation(
if (r < 0)
return r;
if (type != _UNIT_TYPE_INVALID && u->type != type)
return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED,
"%s operation is not supported for unit type '%s'",
sd_bus_message_get_member(message), unit_type_to_string(u->type));
if (FLAGS_SET(flags, GENERIC_UNIT_VALIDATE_LOADED)) {
r = bus_unit_validate_load_state(u, error);
if (r < 0)
@ -799,7 +805,7 @@ static int method_generic_unit_operation(
static int method_enqueue_unit_job(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* We don't bother with GENERIC_UNIT_VALIDATE_LOADED here, as the job logic validates that anyway */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_enqueue_job, GENERIC_UNIT_LOAD);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_enqueue_job, GENERIC_UNIT_LOAD);
}
static int method_start_unit_replace(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@ -824,57 +830,57 @@ static int method_start_unit_replace(sd_bus_message *message, void *userdata, sd
}
static int method_kill_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* We don't bother with GENERIC_UNIT_LOAD nor GENERIC_UNIT_VALIDATE_LOADED here, as it shouldn't
* matter whether a unit is loaded for killing any processes possibly in the unit's cgroup. */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_kill, 0);
/* We don't bother with GENERIC_UNIT_LOAD or GENERIC_UNIT_VALIDATE_LOADED here, as it shouldn't
* matter whether a unit is loaded for killing any processes in the unit's cgroup. */
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_kill, /* flags = */ 0);
}
static int method_clean_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Load the unit if necessary, in order to load it, and insist on the unit being loaded to be
* cleaned */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_clean, GENERIC_UNIT_LOAD|GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_clean, GENERIC_UNIT_LOAD|GENERIC_UNIT_VALIDATE_LOADED);
}
static int method_freeze_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Only active units can be frozen, which must be properly loaded already */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_freeze, GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_freeze, GENERIC_UNIT_VALIDATE_LOADED);
}
static int method_thaw_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Same as freeze above */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_thaw, GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_thaw, GENERIC_UNIT_VALIDATE_LOADED);
}
static int method_reset_failed_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Don't load the unit (because unloaded units can't be in failed state), and don't insist on the
* unit to be loaded properly (since a failed unit might have its unit file disappeared) */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_reset_failed, 0);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_reset_failed, /* flags = */ 0);
}
static int method_set_unit_properties(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Only change properties on fully loaded units, and load them in order to set properties */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_set_properties, GENERIC_UNIT_LOAD|GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_set_properties, GENERIC_UNIT_LOAD|GENERIC_UNIT_VALIDATE_LOADED);
}
static int method_bind_mount_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Only add mounts on fully loaded units */
return method_generic_unit_operation(message, userdata, error, bus_service_method_bind_mount, GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, UNIT_SERVICE, bus_service_method_bind_mount, GENERIC_UNIT_VALIDATE_LOADED);
}
static int method_mount_image_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Only add mounts on fully loaded units */
return method_generic_unit_operation(message, userdata, error, bus_service_method_mount_image, GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, UNIT_SERVICE, bus_service_method_mount_image, GENERIC_UNIT_VALIDATE_LOADED);
}
static int method_ref_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Only allow reffing of fully loaded units, and make sure reffing a unit loads it. */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_ref, GENERIC_UNIT_LOAD|GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_ref, GENERIC_UNIT_LOAD|GENERIC_UNIT_VALIDATE_LOADED);
}
static int method_unref_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Dropping a ref OTOH should not require the unit to still be loaded. And since a reffed unit is a
* loaded unit there's no need to load the unit for unreffing it. */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_unref, 0);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_unref, /* flags = */ 0);
}
static int reply_unit_info(sd_bus_message *reply, Unit *u) {
@ -953,14 +959,14 @@ static int method_get_unit_processes(sd_bus_message *message, void *userdata, sd
/* Don't load a unit actively (since it won't have any processes if it's not loaded), but don't
* insist on the unit being loaded either (because even improperly loaded units might still have
* processes around). */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_get_processes, /* flags = */ 0);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_get_processes, /* flags = */ 0);
}
static int method_attach_processes_to_unit(sd_bus_message *message, void *userdata, sd_bus_error *error) {
/* Don't allow attaching new processes to units that aren't loaded. Don't bother with loading a unit
* for this purpose though, as an unloaded unit is a stopped unit, and we don't allow attaching
* processes to stopped units anyway. */
return method_generic_unit_operation(message, userdata, error, bus_unit_method_attach_processes, GENERIC_UNIT_VALIDATE_LOADED);
return method_generic_unit_operation(message, userdata, error, _UNIT_TYPE_INVALID, bus_unit_method_attach_processes, GENERIC_UNIT_VALIDATE_LOADED);
}
static int transient_unit_from_message(
@ -2890,7 +2896,7 @@ static int method_set_show_status(sd_bus_message *message, void *userdata, sd_bu
}
static int method_dump_unit_descriptor_store(sd_bus_message *message, void *userdata, sd_bus_error *error) {
return method_generic_unit_operation(message, userdata, error, bus_service_method_dump_file_descriptor_store, 0);
return method_generic_unit_operation(message, userdata, error, UNIT_SERVICE, bus_service_method_dump_file_descriptor_store, GENERIC_UNIT_VALIDATE_LOADED);
}
static int aux_scope_from_message(Manager *m, sd_bus_message *message, Unit **ret_scope, sd_bus_error *error) {

View File

@ -1315,10 +1315,13 @@ static int append_cgroup(sd_bus_message *reply, const char *p, Set *pids) {
/* libvirt / qemu uses threaded mode and cgroup.procs cannot be read at the lower levels.
* From https://docs.kernel.org/admin-guide/cgroup-v2.html#threads, “cgroup.procs” in a
* threaded domain cgroup contains the PIDs of all processes in the subtree and is not
* readable in the subtree proper. */
* readable in the subtree proper.
*
* We'll see ENODEV when trying to enumerate processes and the cgroup is removed at the same
* time. Handle this gracefully. */
r = cg_read_pidref(f, &pidref, /* flags = */ 0);
if (IN_SET(r, 0, -EOPNOTSUPP))
if (IN_SET(r, 0, -EOPNOTSUPP, -ENODEV))
break;
if (r < 0)
return r;

View File

@ -84,20 +84,17 @@ if conf.get('BPF_FRAMEWORK') == 1
endif
load_fragment_gperf_gperf = custom_target(
'load-fragment-gperf.gperf',
input : 'load-fragment-gperf.gperf.in',
output: 'load-fragment-gperf.gperf',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'])
load_fragment_gperf_c = custom_target(
'load-fragment-gperf.c',
input : load_fragment_gperf_gperf,
output : 'load-fragment-gperf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
awkscript = 'load-fragment-gperf-nulstr.awk'
load_fragment_gperf_nulstr_c = custom_target(
'load-fragment-gperf-nulstr.c',
input : [awkscript, load_fragment_gperf_gperf],
output : 'load-fragment-gperf-nulstr.c',
command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
@ -230,7 +227,6 @@ foreach item : in_files
dir = item[1]
custom_target(
file,
input : file + '.in',
output: file,
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
@ -239,7 +235,6 @@ foreach item : in_files
endforeach
systemd_pc = custom_target(
'systemd.pc',
input : 'systemd.pc.in',
output : 'systemd.pc',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],

View File

@ -1215,11 +1215,13 @@ static int service_load_pid_file(Service *s, bool may_warn) {
if (fstat(fileno(f), &st) < 0)
return log_unit_error_errno(UNIT(s), errno, "Failed to fstat() PID file '%s': %m", s->pid_file);
if (st.st_uid != 0)
if (st.st_uid != getuid())
return log_unit_error_errno(UNIT(s), SYNTHETIC_ERRNO(EPERM),
"New main PID "PID_FMT" from PID file does not belong to service, and PID file is not owned by root. Refusing.", pidref.pid);
"New main PID "PID_FMT" from PID file does not belong to service, and PID file is owned by "UID_FMT" (must be owned by "UID_FMT"). Refusing.",
pidref.pid, st.st_uid, getuid());
log_unit_debug(UNIT(s), "New main PID "PID_FMT" does not belong to service, accepting anyway since PID file is owned by root.", pidref.pid);
log_unit_debug(UNIT(s), "New main PID "PID_FMT" does not belong to service, accepting anyway since PID file is owned by "UID_FMT".",
pidref.pid, st.st_uid);
}
if (s->main_pid_known) {

View File

@ -476,7 +476,8 @@ static void timer_enter_waiting(Timer *t, bool time_change) {
assert_not_reached();
}
v->next_elapse = usec_add(usec_shift_clock(base, CLOCK_MONOTONIC, TIMER_MONOTONIC_CLOCK(t)), v->value);
if (!time_change)
v->next_elapse = usec_add(usec_shift_clock(base, CLOCK_MONOTONIC, TIMER_MONOTONIC_CLOCK(t)), v->value);
if (dual_timestamp_is_set(&t->last_trigger) &&
!time_change &&

View File

@ -4755,7 +4755,7 @@ static int operation_to_signal(
case KILL_TERMINATE:
case KILL_TERMINATE_AND_LOG:
*ret_noteworthy = false;
*ret_noteworthy = k == KILL_TERMINATE_AND_LOG;
return c->kill_signal;
case KILL_RESTART:

View File

@ -42,7 +42,6 @@ systemd_homed_sources = files(
)
homed_gperf_c = custom_target(
'homed_gperf.c',
input : 'homed-gperf.gperf',
output : 'homed-gperf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])

View File

@ -97,7 +97,6 @@ in_files = [
foreach tuple : in_files
file = tuple[0]
custom_target(
file,
input : file + '.in',
output: file,
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],

View File

@ -20,6 +20,7 @@ typedef struct Context {
bool has_cursor;
bool need_seek;
bool since_seeked;
bool until_safe;
bool ellipsized;
bool previous_boot_id_valid;
sd_id128_t previous_boot_id;
@ -104,10 +105,15 @@ static int seek_journal(Context *c) {
return log_error_errno(r, "Failed to seek to tail: %m");
}
if (arg_reverse)
if (arg_reverse) {
r = sd_journal_previous(j);
else /* arg_lines_needs_seek_end */
c->until_safe = true; /* can't possibly go beyond --until= if --reverse */
} else { /* arg_lines_needs_seek_end() */
r = sd_journal_previous_skip(j, arg_lines);
c->until_safe = r >= arg_lines; /* We have enough lines to output before --until= is hit.
No need to check timestamp of each journal entry */
}
} else if (arg_since_set) {
/* This is placed after arg_reverse and arg_lines. If --since is used without
@ -161,11 +167,10 @@ static int show(Context *c) {
break;
}
if (arg_until_set && !arg_reverse && (arg_lines < 0 || arg_since_set || c->has_cursor)) {
if (arg_until_set && !c->until_safe) {
/* If --lines= is set, we usually rely on the n_shown to tell us when to stop.
* However, if --since= or one of the cursor argument is set too, we may end up
* having less than --lines= to output. In this case let's also check if the entry
* is in range. */
* However, in the case where we may have less than --lines= to output let's check
* whether the individual entries are in range. */
usec_t usec;
@ -194,6 +199,11 @@ static int show(Context *c) {
return log_error_errno(r, "Failed to seek to date: %m");
c->since_seeked = true;
/* We just jumped forward, meaning there might suddenly be less than
* --lines= to show within the --until= range, hence keep a close eye on
* timestamps from now on. */
c->until_safe = false;
c->need_seek = true;
continue;
}
@ -222,6 +232,12 @@ static int show(Context *c) {
r = sd_journal_get_data(j, "MESSAGE", &message, &len);
if (r < 0) {
if (r == -ENOENT) {
/* We will skip some entries forward, meaning there might suddenly
* be less than --lines= to show within the --until= range, hence
* keep a close eye on timestamps from now on. */
if (!arg_reverse)
c->until_safe = false;
c->need_seek = true;
continue;
}
@ -236,6 +252,12 @@ static int show(Context *c) {
if (r < 0)
return r;
if (r == 0) {
/* We will skip some entries forward, meaning there might suddenly
* be less than --lines= to show within the --until= range, hence
* keep a close eye on timestamps from now on. */
if (!arg_reverse)
c->until_safe = false;
c->need_seek = true;
continue;
}

View File

@ -554,11 +554,14 @@ static int server_do_rotate(
JournalFileFlags file_flags;
int r;
assert(f);
assert(s);
if (!*f)
return -EINVAL;
log_debug("Rotating journal file %s.", (*f)->path);
file_flags =
(s->compress.enabled ? JOURNAL_COMPRESS : 0)|
(seal ? JOURNAL_SEAL : 0) |
@ -2201,6 +2204,8 @@ static int synchronize_second_half(sd_event_source *event_source, void *userdata
* messages are processed. */
server_full_sync(s, /* wait = */ true);
log_debug("Client request to sync journal completed.");
/* Let's get rid of the event source now, by marking it as non-floating again. It then has no ref
* anymore and is immediately destroyed after we return from this function, i.e. from this event
* source handler at the end. */
@ -2266,6 +2271,7 @@ static int vl_method_rotate(sd_varlink *link, sd_json_variant *parameters, sd_va
log_info("Received client request to rotate journal, rotating.");
server_full_rotate(s);
log_debug("Client request to rotate journal completed.");
return sd_varlink_reply(link, NULL);
}
@ -2282,6 +2288,7 @@ static int vl_method_flush_to_var(sd_varlink *link, sd_json_variant *parameters,
log_info("Received client request to flush runtime journal.");
server_full_flush(s);
log_debug("Client request to flush runtime journal completed.");
return sd_varlink_reply(link, NULL);
}
@ -2298,6 +2305,7 @@ static int vl_method_relinquish_var(sd_varlink *link, sd_json_variant *parameter
log_info("Received client request to relinquish %s access.", s->system_storage.path);
server_relinquish_var(s);
log_debug("Client request to relinquish %s access completed.", s->system_storage.path);
return sd_varlink_reply(link, NULL);
}

View File

@ -374,9 +374,6 @@ void server_process_syslog_message(
if (!client_context_test_priority(context, priority))
return;
if (client_context_check_keep_log(context, msg, strlen(msg)) <= 0)
return;
syslog_ts = msg;
syslog_ts_len = syslog_skip_timestamp(&msg);
if (syslog_ts_len == 0)
@ -385,6 +382,9 @@ void server_process_syslog_message(
syslog_parse_identifier(&msg, &identifier, &pid);
if (client_context_check_keep_log(context, msg, strlen(msg)) <= 0)
return;
if (s->forward_to_syslog)
forward_syslog_raw(s, priority, buf, raw_len, ucred, tv);

View File

@ -16,7 +16,6 @@ sources = files(
)
sources += custom_target(
'journald-gperf.c',
input : 'journald-gperf.gperf',
output : 'journald-gperf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])

View File

@ -12,7 +12,6 @@ executables += [
]
ukify_install = custom_target(
'60-ukify.install',
input : '60-ukify.install.in',
output : '60-ukify.install',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
@ -21,7 +20,6 @@ ukify_install = custom_target(
install_dir : kernelinstalldir)
loaderentry_install = custom_target(
'90-loaderentry.install',
input : '90-loaderentry.install.in',
output : '90-loaderentry.install',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
@ -43,8 +41,10 @@ if want_kernel_install
install_data('install.conf',
install_dir : kerneldir)
install_data('uki.conf',
install_dir : kerneldir)
if want_ukify
install_data('uki.conf',
install_dir : kerneldir)
endif
if install_sysconfdir
install_emptydir(sysconfdir / 'kernel/install.d')

View File

@ -112,7 +112,7 @@ static void dhcp6_lease_set_lifetime(sd_dhcp6_lease *lease) {
}
DEFINE_GET_TIME_FUNCTIONS(t1, lifetime_t1);
DEFINE_GET_TIME_FUNCTIONS(t2, lifetime_t1);
DEFINE_GET_TIME_FUNCTIONS(t2, lifetime_t2);
DEFINE_GET_TIME_FUNCTIONS(valid_lifetime, lifetime_valid);
static void dhcp6_lease_set_server_address(sd_dhcp6_lease *lease, const struct in6_addr *server_address) {

Some files were not shown because too many files have changed in this diff Show More