1
0
mirror of https://github.com/systemd/systemd synced 2026-03-14 17:14:49 +01:00

Compare commits

...

12 Commits

Author SHA1 Message Date
Thorsten Kukuk
a40d934007 getty: remove --issue-file parameter
agetty from util-linux is meanwhile following the configuration file
specification for /etc/issue. The usage of "--issue-file" breaks this
on distributions with current util-linux.
2026-02-03 21:00:19 +09:00
Yu Watanabe
4e5ceed9c5
ssh-generator: several cleanups (#40556) 2026-02-03 20:59:18 +09:00
Zbigniew Jędrzejewski-Szmek
65040d0876
Followups for the recent chagnes to stability statements (#40540) 2026-02-03 12:50:39 +01:00
Zbigniew Jędrzejewski-Szmek
2cbea2dd75 docs: update old man page links to the official location 2026-02-03 12:49:37 +01:00
Zbigniew Jędrzejewski-Szmek
d905ac0da1 docs/INCOMPATIBILITIES: describe the new meson option 2026-02-03 12:49:37 +01:00
Yu Watanabe
0375558799
github/linter: disable ENABLE_GITHUB_PULL_REQUEST_SUMMARY_COMMENT and update super-linter to 8.4.0 (#40554) 2026-02-03 17:44:10 +09:00
Yu Watanabe
9b011d3f5e ssh-generator: drop unused variable 2026-02-03 16:50:00 +09:00
Yu Watanabe
9666541a56 ssh-generator: drop redundant check
The loop STRV_FOREACH() below does nothing if the strv is empty.
2026-02-03 16:50:00 +09:00
Yu Watanabe
70510c2c90 ssh-generator: fix memleak 2026-02-03 16:50:00 +09:00
Yu Watanabe
65b50ae2c8 sd-bus: do not log in higher than LOG_DEBUG from library
Follow-up for 6c8de404c98fb9b965cba68360c2db1e3f55b776.

This also adds full stop to the log message, and make "vs" followed by
dot for consistency to other messages.
2026-02-03 16:49:46 +09:00
dependabot[bot]
8e217c4690 build(deps): bump super-linter/super-linter in the actions group
Bumps the actions group with 1 update: [super-linter/super-linter](https://github.com/super-linter/super-linter).


Updates `super-linter/super-linter` from 8.3.2 to 8.4.0
- [Release notes](https://github.com/super-linter/super-linter/releases)
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md)
- [Commits](d5b0a2ab11...12562e48d7)

---
updated-dependencies:
- dependency-name: super-linter/super-linter
  dependency-version: 8.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 09:04:13 +09:00
Yu Watanabe
90c71778d2 github/linter: disable ENABLE_GITHUB_PULL_REQUEST_SUMMARY_COMMENT for super-linter
Since super-linter 8.4.0, it is enabled by default and requires GITHUB_TOKEN.
We do not provide GITHUB_TOKEN for the action, then it fails with the following:
```
Failed to get [GITHUB_TOKEN]. Terminating because status reports were explicitly enabled,
but GITHUB_TOKEN was not provided.
```

Also, even if GITHUB_TOKEN is set, the feature provides annoying
messages in each PR. See https://github.com/super-linter/super-linter/issues/7458
So, let's disable the feature.
2026-02-03 08:59:46 +09:00
11 changed files with 30 additions and 26 deletions

View File

@ -29,7 +29,7 @@ jobs:
fetch-depth: 0
- name: Lint Code Base
uses: super-linter/super-linter/slim@d5b0a2ab116623730dd094f15ddc1b6b25bf7b99
uses: super-linter/super-linter/slim@12562e48d7059cf666c43a4ecb0d3b5a2b31bd9e
env:
DEFAULT_BRANCH: main
MULTI_STATUS: false
@ -37,6 +37,7 @@ jobs:
VALIDATE_GITHUB_ACTIONS: true
LINTER_RULES_PATH: .github/linters
GITHUB_ACTIONS_CONFIG_FILE: actionlint.yml
ENABLE_GITHUB_PULL_REQUEST_SUMMARY_COMMENT: false
- uses: systemd/mkosi@e3642f81d3a7f8f9310c0c734b2ba9dd41e50e14

2
README
View File

@ -259,7 +259,7 @@ REQUIREMENTS:
During runtime, you need the following additional
dependencies:
util-linux >= v2.27.1 required (including but not limited to: mount,
util-linux >= v2.41 required (including but not limited to: mount,
umount, swapon, swapoff, sulogin,
agetty, fsck)
dbus >= 1.4.0 (strictly speaking optional, but recommended)

4
TODO
View File

@ -116,10 +116,6 @@ Deprecations and removals:
* Consider removing root=gpt-auto, and push people to use root=dissect instead.
* Once
https://github.com/util-linux/util-linux/commit/508fb0e7ac103b68531a59db2a4473897853ab52
has hit the prominent distributions, revert --issue-file= hack in units/*getty*service.in
Features:
* Maybe introducean InodeRef structure inspired by PidRef, which references a

View File

@ -188,7 +188,7 @@ manager, please consider supporting the following interfaces.
activation work. The protocol to hand sockets from systemd to services is
hence the same as from the container manager to the container systemd. For
further details see the explanations of
[sd_listen_fds(1)](https://0pointer.de/public/systemd-man/sd_listen_fds.html)
[sd_listen_fds(1)](https://www.freedesktop.org/software/systemd/man/latest/sd_listen_fds.html)
and the [blog story for service
developers](https://0pointer.de/blog/projects/socket-activation.html).

View File

@ -7,7 +7,16 @@ SPDX-License-Identifier: LGPL-2.1-or-later
# Compatibility with SysV
Since systemd v260, support for SysV functionalities has been removed. The documentation below is preserved for historical references only.
Since systemd v260, support for SysV functionality has been removed.
The documentation below is preserved for historical reference only.
A few interfaces are optionally kept for backward compatibility.
When systemd is compiled with the `-Dcompat-sysv-interfaces=true` setting,
legacy interfaces are provided,
e.g. the `runlevelX.target` aliases,
and lock directories in under `/var` and `/run`.
This option may be extended to cover other deprecated interfaces in the future.
## Pre v260 state
@ -21,7 +30,7 @@ Many of the incompatibilities are specific to distribution-specific extensions o
* LSB header dependency information matters. The SysV implementations on many distributions did not use the dependency information encoded in LSB init script headers, or used them only in very limited ways. Due to that they are often incorrect or incomplete. systemd however fully interprets these headers and follows them closely at runtime (and not at installation time like some implementations).
* Timeouts apply to all init script operations in systemd. While on SysV systems a hanging init script could freeze the system on systemd all init script operations are subject to a timeout of 5min.
* Services are executed in completely clean execution contexts, no context of the invoking user session is inherited. Not even $HOME or similar are set. Init scripts depending on these will not work correctly.
* Services cannot read from stdin, as this will be connected to /dev/null. That means interactive init scripts are not supported (i.e. Debian's X-Interactive in the LSB header is not supported either.) Thankfully most distributions do not support interaction in init scripts anyway. If you need interaction to ask disk or SSL passphrases please consider using the minimal password querying framework systemd supports. ([details](/PASSWORD_AGENTS), [manual page](https://0pointer.de/public/systemd-man/systemd-ask-password.html))
* Services cannot read from stdin, as this will be connected to /dev/null. That means interactive init scripts are not supported (i.e. Debian's X-Interactive in the LSB header is not supported either.) Thankfully most distributions do not support interaction in init scripts anyway. If you need interaction to ask disk or SSL passphrases please consider using the minimal password querying framework systemd supports. ([details](/PASSWORD_AGENTS), [manual page](https://www.freedesktop.org/software/systemd/man/latest/systemd-ask-password.html))
* Additional verbs for init scripts are not supported. If your init script traditionally supported additional verbs for your init script simply move them to an auxiliary script.
* Additional parameters to the standard verbs (i.e. to "start", "stop" and "status") are not supported. This was an extension of SysV that never was standardized officially, and is not supported in systemd.
* Overriding the "restart" verb is not supported. This verb is always implemented by systemd itself, and consists of a "stop" followed by a "start".

View File

@ -4206,21 +4206,21 @@ static int message_parse_fields(sd_bus_message *m, bool got_ctrunc) {
* we also accept fewer fds than declared. Any attempt to actually use a truncated fd will fail later
* when sd_bus_message_read_basic() finds the fd index out of range. Too many fds is always wrong. */
if (m->n_fds > n_unix_fds_declared)
return log_error_errno(SYNTHETIC_ERRNO(EBADMSG),
"Received a bus message with too many fds: %" PRIu32 " received vs. %" PRIu32 " declared",
return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG),
"Received a bus message with too many fds: %" PRIu32 " received vs. %" PRIu32 " declared.",
m->n_fds, n_unix_fds_declared);
if (m->n_fds < n_unix_fds_declared) {
if (!got_ctrunc)
return log_error_errno(SYNTHETIC_ERRNO(EBADMSG),
"Received a bus message with too few fds: %" PRIu32 " received vs. %" PRIu32 " declared",
return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG),
"Received a bus message with too few fds: %" PRIu32 " received vs. %" PRIu32 " declared.",
m->n_fds, n_unix_fds_declared);
log_error("Received a bus message with MSG_CTRUNC set with %" PRIu32 " fds received vs %" PRIu32 " declared",
log_debug("Received a bus message with MSG_CTRUNC set with %" PRIu32 " fds received vs. %" PRIu32 " declared.",
m->n_fds, n_unix_fds_declared);
} else if (got_ctrunc)
return log_error_errno(SYNTHETIC_ERRNO(EBADMSG),
return log_debug_errno(SYNTHETIC_ERRNO(EBADMSG),
"Received a bus message with truncated control data, refusing.");
switch (m->header->type) {

View File

@ -33,10 +33,11 @@
* The first two provide a nice way for hosts to connect to containers and VMs they invoke via the usual SSH
* logic, but without waiting for networking or suchlike. The third allows the same for local clients. */
static const char *arg_dest = NULL;
static bool arg_auto = true;
static char **arg_listen_extra = NULL;
STATIC_DESTRUCTOR_REGISTER(arg_listen_extra, strv_freep);
static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
int r;
@ -355,9 +356,6 @@ static int add_extra_sockets(
assert(sshd_binary);
assert(generated_sshd_template_unit);
if (strv_isempty(arg_listen_extra))
return 0;
STRV_FOREACH(i, arg_listen_extra) {
_cleanup_free_ char *service = NULL, *socket = NULL;
@ -445,7 +443,7 @@ static int parse_credentials(void) {
static int run(const char *dest, const char *dest_early, const char *dest_late) {
int r;
assert_se(arg_dest = dest);
assert(dest);
r = proc_cmdline_parse(parse_proc_cmdline_item, /* userdata= */ NULL, /* flags= */ 0);
if (r < 0)

View File

@ -17,7 +17,7 @@ Before=getty.target
ConditionPathExists=/dev/console
[Service]
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM}
ExecStart=-{{AGETTY}} --noreset --noclear --keep-baud 115200,57600,38400,9600 - ${TERM}
Type=idle
Restart=always
UtmpIdentifier=cons

View File

@ -22,7 +22,7 @@ Conflicts=rescue.service
Before=rescue.service
[Service]
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM}
ExecStart=-{{AGETTY}} --noreset --noclear - ${TERM}
Type=idle
Restart=always
RestartSec=0

View File

@ -31,7 +31,7 @@ Before=rescue.service
ConditionPathExists=/dev/tty0
[Service]
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM}
ExecStart=-{{AGETTY}} --noreset --noclear - ${TERM}
Type=idle
Restart=always
RestartSec=0

View File

@ -27,7 +27,7 @@ Conflicts=rescue.service
Before=rescue.service
[Service]
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM}
ExecStart=-{{AGETTY}} --noreset --noclear --keep-baud 115200,57600,38400,9600 - ${TERM}
Type=idle
Restart=always
UtmpIdentifier=%I