Commit Graph
1187 Commits
Author SHA1 Message Date
Daan De Meyer 1743f0370f HACKING: Drop run0 from mkosi boot invocation
mkosi will itself use run0 or sudo when not running as root to invoke
systemd-nspawn, so no need to do it in HACKING.md.
2025-01-24 17:29:58 +01:00
Daan De Meyer 798b9fb7eb HACKING: Move OBS section further down
HACKING.md should first and foremost tell someone how to hack on
systemd, installing packages from OBS isn't the most likely section
a new contributor will be interested in, so let's move it further
down.
2025-01-24 17:28:15 +01:00
Lennart Poettering 72b932aac0 user-record: add fields for setting limits on /tmp/ and /dev/shm/ 2025-01-23 22:16:24 +01:00
Lennart Poettering 16ea491528 docs: mention the two other userdb services we ship these days 2025-01-23 21:13:41 +01:00
Yu Watanabe ef199874ae mkosi: Update to latest (#36114) 2025-01-23 09:00:39 +09:00
Daan De Meyer 94558e6fc7 mkosi: Update to latest
With the latest mkosi, mkosi takes care of making sure it is
available within mkosi sandbox so we get rid of all the --preserve-env=
options when we invoke mkosi sandbox with sudo as these are not
required anymore. It also doesn't matter anymore if mkosi is installed
in /usr on the host so we get rid of the documentation around that as
well.
2025-01-22 22:25:51 +01:00
Luca Boccassi a41f67b041 docs: mention packages in HACKING.md 2025-01-22 20:50:08 +00:00
Lennart Poettering e2e1f38f5a user-record: add support for alias user names to user record 2025-01-21 09:58:50 +01:00
Mike Yuan 9cd064aa9f meson: bump C std to gnu17
GCC 8.4 (our baseline) defaults to gnu17 already.
2025-01-17 19:46:37 +00:00
Zbigniew Jędrzejewski-Szmek 6ed73883c6 docs/HACKING: use 'run0' to indicate which commands require privileges 2025-01-16 22:22:28 +01:00
Daan De Meyer e9b9fc080f ci: Stop archiving packages
This takes up a lot of storage space and we're almost hitting the
limit so since nobody's actually using these and we just started
doing nightly builds in OBS, let's drop this and point people towards
OBS for nightly packages in the future.
2025-01-15 15:32:14 +00:00
Silvio Knizek 6731769320 docs: fix markup (#35995) 2025-01-14 15:19:56 +01:00
Zbigniew Jędrzejewski-Szmek ad7e0fdbf9 Extend elf package metadata to pe/coff files (#35681) 2025-01-11 13:12:39 +01:00
Lennart Poettering ec0c10fc9d user-classification: add new "foreign" UID range
This makes the UID range configurable via build time options, but of
course it really shouldn't be changed. The default range I picked is
outside even of IPAs current (ridiculously large) allocation ranges,
hence hopefully minimizes conflicts.
2025-01-08 21:41:03 +01:00
Daan De Meyer 83c0b95f63 docs: Remove VIRTUALIZED_TESTING.md
Let's nuke this out-of-date doc in favor of HACKING.md.
2025-01-07 11:13:31 +01:00
Yu Watanabe 7a0c3923fe docs: replace link to RHEL7 document with RHEL9 documents 2025-01-07 02:05:16 +09:00
Yu Watanabe d5cdcba928 mkosi: replace deprecated settings and command with new ones
Follow-up for c008b70370.

These settings and command were deprecated by the following commit.
https://github.com/systemd/mkosi/commit/ebcd2efa03af5c04de91434634f2e4a956f7e53c
2025-01-06 12:00:43 +01:00
Alexander Krabler 8207345140 docs: Clarify requirement 2024-12-28 12:24:42 +09:00
Daan De Meyer 54b4ec8870 docs: Explicitly mention ~/.local/bin in section on installing mkosi 2024-12-25 13:54:11 +09:00
Daan De Meyer ece81f339f docs: Use meson compile instead of ninja
"ninja -C build mkosi" doesn't actually work and fails because ninja
thinks the mkosi target does not exist. "meson compile -C build mkosi"
dpes work so let's use that instead.

Fixes #35741
2024-12-25 13:52:13 +09:00
Daan De Meyer 34b5a27b0b docs: Simplify hacking documentation
Let's use "mkosi sandbox" in the docs so that users can build systemd
without having to install anything except mkosi. Using mkosi sandbox
will use tools and dependencies from the tools tree which is also used
in CI and thus has a higher chance of working from the first try compared
to whatever tools might be installed on the host system of a new contributor.
2024-12-20 20:09:36 +01:00
Daan De Meyer 3ee5cab490 docs: Move fuzzers documentation to test README.md 2024-12-20 20:09:35 +01:00
Zbigniew Jędrzejewski-Szmek bafe34ddbe docs/package-notes: extend description to support PE/COFF files
The package notes are nice standard mechanism to figure out the exact name and
version of a program or a library stored in a file, without running the code.
In the beginning this was designed for the purpose of analyzing core dumps, but
we've since started to use it more generically to identify files. The same need
to identify PE/COFF files occurs, for example for systemd-boot and other files
intended for UEFI. It has also been requested by people working on bootupd
(https://github.com/coreos/bootupd).

The text is changed to say "Executable" or "ELF or PE/COFF" wherever "ELF" was
used previously.

The description for PE/COFF files is very brief. AFAIK, we don't have the same
"note" mechanism there [1], so just a normal section is used. The alignment
rules for PE/UEFI are different and change over time, so no specific alignment
is specified.

Other requirements for the PE/COFF section are based on what ukify currently
does for the .osrel section:
  5 .osrel        00000056  000000010132f000  000000010132f000  0002b600  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA

The name ".pkgnote" is used as suggested by Daan De Meyer. This corresponds to
the ".note.package" name used for ELF. ".package" was also suggested, but I
think that is too generic and carries more risk of a conflict with a different
use.

[1] https://learn.microsoft.com/en-us/windows/win32/debug/pe-format

Also zero/0 is replaced by NUL to clarify that a single 0 byte is meant.
2024-12-19 15:38:07 +01:00
Zbigniew Jędrzejewski-Szmek 0ab04876f2 docs/package-notes: extend motivation and recommendations
We described the "how", but not the "why". And the text was a bit dated,
still mostly talking about core files. Let's make it more general
and describe why a section is used.

Add a recommendation/explanation for the debugInfoUrl field.
2024-12-19 15:35:55 +01:00
Zbigniew Jędrzejewski-Szmek 03d28cf16f docs/package-notes: minor corrections
Some small grammar cleanups, syntax highligthing,
semantic line breaks, missing version in a list.
2024-12-19 15:35:55 +01:00
Zbigniew Jędrzejewski-Szmek 6e09210459 docs: rename COREDUMP_PACKAGE_METADATA → ELF_PACKAGE_METADATA
This document is renamed without any changes in a separate commit.
Otherwise, git does not show a diff, which makes it very hard
to review what is actually changed in the text.
2024-12-19 15:35:55 +01:00
Zbigniew Jędrzejewski-Szmek cce3d43a2d docs/ELF_PACKAGE_NOTES: fix formatting
Backticks inside of a code block were displayed literally.
2024-12-19 10:36:13 +01:00
Yu Watanabe 9d8cb69e7f test: rename README.testsuite -> README.md 2024-12-12 12:02:19 +09:00
Daan De Meyer ead814a0b0 test: Remove old bash test runner
We put a timeline of 257 to remove the old bash test runner so since
we're about to release 257, let's remove the old bash test runner in
favor of the meson + mkosi test runner.
2024-12-06 18:54:10 +00:00
Tristan F.-R. 26dd4d3dd7 docs/MEMORY_PRESSURE: fix typo
corrects "focusses" -> "focuses"
2024-12-05 17:32:58 +00:00
Zbigniew Jędrzejewski-Szmek 156a77ddbc docs/CONTRIBUTING: adjust grammar, info about tests and labels
Unfortunately our CI fails pretty much constantly, so instead of saying that
"tests don't pass", weasel this into "unit tests don't pass". Also fix grammar.

Labels are adjusted automatically now, so remove that sentence.
2024-12-04 14:21:01 +00:00
Zbigniew Jędrzejewski-Szmek 4ebd6d9a10 meson: install README.logs independently of HAVE_SYSV_COMPAT
That file provides compatiblity (or more precisely the explanation for the lack
of compatibility) with syslog daemons. Those are used quite independently of
sysvinit. For example, RHEL uses rsyslog with systemd. We create
/var/log/journal, so it's no biggie to also provide /var/log/README with the
explanation. Let's keep it, since it might help some confused users, even when
compat with sysvinit is gone.
2024-11-29 14:18:15 +01:00
Luca Boccassi 088793239e docs: add reminder to run update-man-rules before tagging a release 2024-11-06 19:21:14 +00:00
Luca Boccassi 94a46c20da docs: remove 'v' prefix from meson.version
It is actually v-less
2024-11-06 19:20:00 +00:00
Zbigniew Jędrzejewski-Szmek 78ed1e973c docs/TPM2_PCR_MEASUREMENTS: drop quotes from around section titles
The section headers used quotes as if the strings were some constants. But
AFAICT, those are just normal plain-text titles. Also lowercase them, because
this is almost like a table and it's easier to read without capitalization.
2024-11-06 15:02:24 +01:00
Zbigniew Jędrzejewski-Szmek 265488414c tree-wide: use Device*T*ree spelling
We used both, in fact "Devicetree" was more common. But we have a general rule
that we capitalize all words in names and also we have a DeviceTree=
configuration setting, which we cannot change. If we use two different
spelllings, this will make it harder for people to use the correct one in
config files. So use the "DeviceTree" spelling everywhere.
2024-11-06 15:00:55 +01:00
Daan De Meyer 36c6c696a7 ask-password: Add $SYSTEMD_ASK_PASSWORD_KEYRING_TYPE
Currently ask_password_auto() will always try to store the password into
the user keyring. Let's make this configurable so that we can configure
ask_password_auto() into the session keyring. This is required when working
with user namespaces, as the user keyring is namespaced by user namespaces
which makes it impossible to share cached keys across user namespaces by using
the user namespace while this is possible with the session keyring.
2024-11-02 23:20:57 +01:00
Daan De Meyer 01d138b990 ask-password: Drop "default" for SYSTEMD_ASK_PASSWORD_KEYRING_TIMEOUT_SEC
Users can simply unset the environment variable to achieve the same effect.
2024-11-02 23:20:57 +01:00
Adrian Vovk ad03f2d5f0 user-record: Introduce selfModifiable fields
Allows the system administrator to configure what fields the user is
allowed to edit about themself, along with hard-coded defaults.
2024-11-01 10:41:46 +00:00
Daan De Meyer d9f4dad986 ask-password: Allow configuring the keyring timeout via an environment variable
In mkosi, we want an easy way to set the keyring timeout for every
tool we invoke that might use systemd-ask-password to query for a
password which is then stored in the kernel keyring. Let's make this
possible via a new $SYSTEMD_ASK_PASSWORD_KEYRING_TIMEOUT_SEC environment
variable.

Using an environment variable means we don't have to modify every separate
tool to add a CLI option allowing to specify the timeout. In mkosi specifically,
we'll set up a new session keyring for the mkosi process linked to the user keyring
so that any pins in the user keyring are used if available, and otherwise we'll query
for and store password in mkosi's session keyring with a zero timeout so that they stay
in the keyring until the mkosi process exits at which point they're removed from the
keyring.
2024-10-30 17:43:53 +01:00
Daan De Meyer 7ae96246f6 docs: Update instructions for building distribution packages in HACKING.md
When building distribution packages without building an image, the
distribution packages will only be located in mkosi.builddir/ now and
not in mkosi.output/, so update the documentation to reflect that.

Also add installation instructions for distributions other than CentOS/Fedora
while we're at it.
2024-10-30 11:16:42 +01:00
Daan De Meyer a33f453702 docs: Align some comments in HACKING.md 2024-10-30 11:16:36 +01:00
Zbigniew Jędrzejewski-Szmek 99996d5f5e Merge pull request #34245 from bluca/logind_drop_weak_delay_inhibitor
logind: drop new delay-weak inhibitor
2024-10-29 17:13:11 +01:00
Daan De Meyer c2c75d5ade docs: Mention that a local build might be required to use mkosi
Currently we need ukify with support for --profile and --join-profile
which isn't in an official release yet so mention that a local build
from source might be required.
2024-10-24 05:33:30 +09:00
Lennart Poettering f4c3bafd10 man: update PASSWORD_AGENTS spec, and introduce unpriv pw queries
Fixes: #1232 #2217
2024-10-21 14:14:13 +02:00
Zbigniew Jędrzejewski-Szmek 2c23b7054f Merge pull request #34783 from keszybz/man-nspawn-private-users
Change systemd-nspawn man page to strongly recommend private users
2024-10-18 18:44:05 +02:00
Zbigniew Jędrzejewski-Szmek 487d412327 tree-wise: use "lightweight" spelling
Both spellings were used, but the dictionary says that "lightweight"
is the standard spelling.
2024-10-18 18:43:40 +02:00
Ryan Wilson 63d4c4271c cgroup: Add ManagedOOMMemoryPressureDurationSec= override setting for units
This will allow units (scopes/slices/services) to override the default
systemd-oomd setting DefaultMemoryPressureDurationSec=.

The semantics of ManagedOOMMemoryPressureDurationSec= are:
- If >= 1 second, overrides DefaultMemoryPressureDurationSec= from oomd.conf
- If is empty, uses DefaultMemoryPressureDurationSec= from oomd.conf
- Ignored if ManagedOOMMemoryPressure= is not "kill"
- Disallowed if < 1 second

Note the corresponding dbus property is DefaultMemoryPressureDurationUSec
which is in microseconds. This is consistent with other time-based
dbus properties.
2024-10-16 20:12:38 -07:00
Yu Watanabe 23615aca62 doc: fix typo
Follow-up for b3b7cf8b7c.
2024-10-17 00:49:59 +09:00
xujing cc2030f928 pid1: add env var to override default mount rate limit interval
Similar to 24a4542c. 24a4542c can only be set 1 in 1s at most,
sometimes we may need to set to something else(such as 1 in 2s).
So it's best to let the user decide.

This also allows users to solve #34690.
2024-10-16 16:07:26 +02:00