feat: add various system and theme icons, configuration files, and support assets

This commit is contained in:
jschantli committed 2026-10-03 08:14:42 -07:00
1 parent 848dac4264
commit 54baea79f4
15893 files changed
+781426 -2

No files matched your search

@@ -0,0 +1,94 @@
---
title: Porting systemd To New Distributions
category: Concepts
layout: default
SPDX-License-Identifier: LGPL-2.1-or-later
---
# Porting systemd To New Distributions
## HOWTO
You need to make the follow changes to adapt systemd to your
distribution:
1. Find the right configure parameters for:
* `-Dsysvinit-path=`
* `-Dsysvrcnd-path=`
* `-Drc-local=`
* `-Dloadkeys-path=`
* `-Dsetfont-path=`
* `-Dtty-gid=`
* `-Dntp-servers=`
* `-Ddns-servers=`
* `-Dsupport-url=`
2. Try it out.
Play around (as an ordinary user) with
`/usr/lib/systemd/systemd --test --system` for a test run
of systemd without booting. This will read the unit files and
print the initial transaction it would execute during boot-up.
This will also inform you about ordering loops and suchlike.
## Compilation options
The default configuration does not enable any optimization or hardening
options. This is suitable for development and testing, but not for end-user
installations.
For deployment, optimization (`-O2` or `-O3` compiler options), link time
optimization (`-Db_lto=true` meson option), and hardening (e.g.
`-D_FORTIFY_SOURCE=2`, `-fstack-protector-strong`, `-fstack-clash-protection`,
`-fcf-protection`, `-pie` compiler options, and `-z relro`, `-z now`,
`--as-needed` linker options) are recommended. The most appropriate set of
options depends on the architecture and distribution specifics so no default is
provided.
## NTP Pool
By default, systemd-timesyncd uses the Google Public NTP servers
`time[1-4].google.com`, if no other NTP configuration is available.
They serve time that uses a
[leap second smear](https://developers.google.com/time/smear)
and can be up to .5s off from servers that use stepped leap seconds.
If you prefer to use leap second steps, please register your own
vendor pool at ntp.org and make it the built-in default by
passing `-Dntp-servers=` to meson. Registering vendor
pools is [free](http://www.pool.ntp.org/en/vendors.html).
Use `-Dntp-servers=` to direct systemd-timesyncd to different fallback
NTP servers.
## DNS Servers
By default, systemd-resolved uses Cloudflare and Google Public DNS servers
`1.1.1.1`, `8.8.8.8`, `1.0.0.1`, `8.8.4.4`, `2606:4700:4700::1111`, `2001:4860:4860::8888`, `2606:4700:4700::1001`, `2001:4860:4860::8844`
as fallback, if no other DNS configuration is available.
Use `-Ddns-servers=` to direct systemd-resolved to different fallback
DNS servers.
## PAM
The default PAM config shipped by systemd is really bare bones.
It does not include many modules your distro might want to enable
to provide a more seamless experience. For example, limits set in
`/etc/security/limits.conf` will not be read unless you load `pam_limits`.
Make sure you add modules your distro expects from user services.
Pass `-Dpamconfdir=no` to meson to avoid installing this file and
instead install your own.
## Contributing Upstream
We generally no longer accept distribution-specific patches to
systemd upstream. If you have to make changes to systemd's source code
to make it work on your distribution, unless your code is generic
enough to be generally useful, we are unlikely to merge it. Please
always consider adopting the upstream defaults. If that is not
possible, please maintain the relevant patches downstream.
Thank you for understanding.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
../libsystemd-shared/NEWS.Debian.gz
Binary file not shown.
@@ -0,0 +1,81 @@
---
title: Notes for Translators
category: Contributing
layout: default
SPDX-License-Identifier: LGPL-2.1-or-later
---
# Notes for Translators
systemd depends on the `gettext` package for multilingual support.
You'll find the i18n files in the `po/` directory.
The build system (meson/ninja) can be used to generate a template (`*.pot`),
which can be used to create new translations.
It can also merge the template into the existing translations (`*.po`), to pick
up new strings in need of translation.
Finally, it is able to compile the translations (to `*.gmo` files), so that
they can be used by systemd software. (This step is also useful to confirm the
syntax of the `*.po` files is correct.)
## Creating a New Translation
To create a translation to a language not yet available, start by creating the
initial template:
```
$ ninja -C build/ systemd-pot
```
This will generate file `po/systemd.pot` in the source tree.
Then simply copy it to a new `${lang_code}.po` file, where
`${lang_code}` is the two-letter code for a language
(possibly followed by a two-letter uppercase country code), according to the
ISO 639 standard.
In short:
```
$ cp po/systemd.pot po/${lang_code}.po
```
Then edit the new `po/${lang_code}.po` file (for example,
using the `poedit` GUI editor.)
## Updating an Existing Translation
Start by updating the `*.po` files from the latest template:
```
$ ninja -C build/ systemd-update-po
```
This will touch all the `*.po` files, so you'll want to pay attention when
creating a git commit from this change, to only include the one translation
you're actually updating.
Edit the `*.po` file, looking for empty translations and translations marked as
"fuzzy" (which means the merger found a similar message that needs to be
reviewed as it's expected not to match exactly.)
You can use any text editor to update the `*.po` files, but a good choice is
the `poedit` editor, a graphical application specifically designed for this
purpose.
Once you're done, create a git commit for the update of the `po/*.po` file you
touched. Remember to undo the changes to the other `*.po` files (for instance,
using `git checkout -- po/` after you commit the changes you do want to keep.)
## Recompiling Translations
You can recompile the `*.po` files using the following command:
```
$ ninja -C build/ systemd-gmo
```
The resulting files will be saved in the `build/po/` directory.
Binary file not shown.