summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhulkoba <jacoba@neighbourhood.ie>2024-01-30 12:57:10 +0100
committerhulkoba <jacoba@neighbourhood.ie>2024-02-22 10:11:54 +0100
commit5e8ff010a1436d33bbf3c108335af6e0b4ff7a2a (patch)
tree0c0a6ed97deea834a6551512a4737b297623a6a2
parentdocs: add distributions and mastodon (diff)
downloadsystemd-5e8ff010a1436d33bbf3c108335af6e0b4ff7a2a.tar.xz
systemd-5e8ff010a1436d33bbf3c108335af6e0b4ff7a2a.zip
docs: use collections to structure the data
-rw-r--r--README.md8
-rw-r--r--docs/_booting/AUTOMATIC_BOOT_ASSESSMENT.md (renamed from docs/AUTOMATIC_BOOT_ASSESSMENT.md)0
-rw-r--r--docs/_booting/BOOT_LOADER_INTERFACE.md (renamed from docs/BOOT_LOADER_INTERFACE.md)2
-rw-r--r--docs/_booting/BOOT_LOADER_SPECIFICATION.md (renamed from docs/BOOT_LOADER_SPECIFICATION.md)0
-rw-r--r--docs/_booting/MOUNT_REQUIREMENTS.md (renamed from docs/MOUNT_REQUIREMENTS.md)0
-rw-r--r--docs/_booting/TPM2_PCR_MEASUREMENTS.md (renamed from docs/TPM2_PCR_MEASUREMENTS.md)0
-rw-r--r--docs/_concepts/BUILDING_IMAGES.md (renamed from docs/BUILDING_IMAGES.md)0
-rw-r--r--docs/_concepts/COREDUMP.md (renamed from docs/COREDUMP.md)0
-rw-r--r--docs/_concepts/CREDENTIALS.md (renamed from docs/CREDENTIALS.md)4
-rw-r--r--docs/_concepts/DESKTOP_ENVIRONMENTS.md (renamed from docs/DESKTOP_ENVIRONMENTS.md)0
-rw-r--r--docs/_concepts/DISTRO_PORTING.md (renamed from docs/DISTRO_PORTING.md)0
-rw-r--r--docs/_concepts/PORTABLE_SERVICES.md (renamed from docs/PORTABLE_SERVICES.md)0
-rw-r--r--docs/_concepts/RANDOM_SEEDS.md (renamed from docs/RANDOM_SEEDS.md)2
-rw-r--r--docs/_config.yml29
-rw-r--r--docs/_contributing/ARCHITECTURE.md (renamed from docs/ARCHITECTURE.md)2
-rw-r--r--docs/_contributing/CODE_OF_CONDUCT.md (renamed from docs/CODE_OF_CONDUCT.md)0
-rw-r--r--docs/_contributing/CODE_QUALITY.md (renamed from docs/CODE_QUALITY.md)2
-rw-r--r--docs/_contributing/CODING_STYLE.md (renamed from docs/CODING_STYLE.md)0
-rw-r--r--docs/_contributing/CONTRIBUTING.md (renamed from docs/CONTRIBUTING.md)6
-rw-r--r--docs/_contributing/HACKING.md (renamed from docs/HACKING.md)10
-rw-r--r--docs/_contributing/PORTING_TO_NEW_ARCHITECTURES.md (renamed from docs/PORTING_TO_NEW_ARCHITECTURES.md)0
-rw-r--r--docs/_contributing/RELEASE.md (renamed from docs/RELEASE.md)0
-rw-r--r--docs/_contributing/SECURITY.md (renamed from docs/SECURITY.md)0
-rw-r--r--docs/_contributing/TESTING_WITH_SANITIZERS.md (renamed from docs/TESTING_WITH_SANITIZERS.md)0
-rw-r--r--docs/_contributing/TRANSLATORS.md (renamed from docs/TRANSLATORS.md)0
-rw-r--r--docs/_data/extra_pages.json40
-rw-r--r--docs/_data/project.json42
-rw-r--r--docs/_devdocs/AUTOPGKTEST.md (renamed from docs/AUTOPGKTEST.md)0
-rw-r--r--docs/_devdocs/BACKPORTS.md (renamed from docs/BACKPORTS.md)0
-rw-r--r--docs/_devdocs/BOOT.md (renamed from docs/BOOT.md)0
-rw-r--r--docs/_devdocs/CATALOG.md (renamed from docs/CATALOG.md)0
-rw-r--r--docs/_devdocs/CONTROL_GROUP_INTERFACE.md (renamed from docs/CONTROL_GROUP_INTERFACE.md)0
-rw-r--r--docs/_devdocs/INHIBITOR_LOCKS.md (renamed from docs/INHIBITOR_LOCKS.md)0
-rw-r--r--docs/_devdocs/MINIMAL_BUILDS.md (renamed from docs/MINIMAL_BUILDS.md)0
-rw-r--r--docs/_devdocs/OPTIMIZATIONS.md (renamed from docs/OPTIMIZATIONS.md)0
-rw-r--r--docs/_devdocs/PRESET.md (renamed from docs/PRESET.md)0
-rw-r--r--docs/_devdocs/SYSLOG.md (renamed from docs/SYSLOG.md)0
-rw-r--r--docs/_devdocs/SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md (renamed from docs/SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md)0
-rw-r--r--docs/_devdocs/THE_CASE_FOR_THE_USR_MERGE.md (renamed from docs/THE_CASE_FOR_THE_USR_MERGE.md)0
-rw-r--r--docs/_devdocs/VIRTUALIZED_TESTING.md (renamed from docs/VIRTUALIZED_TESTING.md)0
-rw-r--r--docs/_devdocs/WRITING_DESKTOP_ENVIRONMENTS.md (renamed from docs/WRITING_DESKTOP_ENVIRONMENTS.md)0
-rw-r--r--docs/_devdocs/WRITING_DISPLAY_MANAGERS.md (renamed from docs/WRITING_DISPLAY_MANAGERS.md)0
-rw-r--r--docs/_devdocs/WRITING_NETWORK_CONFIGURATION_MANAGERS.md (renamed from docs/WRITING_NETWORK_CONFIGURATION_MANAGERS.md)0
-rw-r--r--docs/_devdocs/WRITING_RESOLVER_CLIENTS.md (renamed from docs/WRITING_RESOLVER_CLIENTS.md)0
-rw-r--r--docs/_devdocs/WRITING_VM_AND_CONTAINER_MANAGERS.md (renamed from docs/WRITING_VM_AND_CONTAINER_MANAGERS.md)0
-rw-r--r--docs/_groups/CONVERTING_TO_HOMED.md (renamed from docs/CONVERTING_TO_HOMED.md)8
-rw-r--r--docs/_groups/GROUP_RECORD.md (renamed from docs/GROUP_RECORD.md)2
-rw-r--r--docs/_groups/HOME_DIRECTORY.md (renamed from docs/HOME_DIRECTORY.md)2
-rw-r--r--docs/_groups/UIDS-GIDS.md (renamed from docs/UIDS-GIDS.md)0
-rw-r--r--docs/_groups/USERDB_AND_DESKTOPS.md (renamed from docs/USERDB_AND_DESKTOPS.md)10
-rw-r--r--docs/_groups/USER_GROUP_API.md (renamed from docs/USER_GROUP_API.md)4
-rw-r--r--docs/_groups/USER_NAMES.md (renamed from docs/USER_NAMES.md)0
-rw-r--r--docs/_groups/USER_RECORD.md (renamed from docs/USER_RECORD.md)8
-rw-r--r--docs/_interfaces/BLOCK_DEVICE_LOCKING.md (renamed from docs/BLOCK_DEVICE_LOCKING.md)0
-rw-r--r--docs/_interfaces/CGROUP_DELEGATION.md (renamed from docs/CGROUP_DELEGATION.md)0
-rw-r--r--docs/_interfaces/CONTAINER_INTERFACE.md (renamed from docs/CONTAINER_INTERFACE.md)0
-rw-r--r--docs/_interfaces/ELF_PACKAGE_METADATA.md (renamed from docs/ELF_PACKAGE_METADATA.md)0
-rw-r--r--docs/_interfaces/ENVIRONMENT.md (renamed from docs/ENVIRONMENT.md)0
-rw-r--r--docs/_interfaces/FILE_DESCRIPTOR_STORE.md (renamed from docs/FILE_DESCRIPTOR_STORE.md)0
-rw-r--r--docs/_interfaces/INITRD_INTERFACE.md (renamed from docs/INITRD_INTERFACE.md)4
-rw-r--r--docs/_interfaces/JOURNAL_EXPORT_FORMATS.md (renamed from docs/JOURNAL_EXPORT_FORMATS.md)4
-rw-r--r--docs/_interfaces/JOURNAL_FILE_FORMAT.md (renamed from docs/JOURNAL_FILE_FORMAT.md)2
-rw-r--r--docs/_interfaces/JOURNAL_NATIVE_PROTOCOL.md (renamed from docs/JOURNAL_NATIVE_PROTOCOL.md)0
-rw-r--r--docs/_interfaces/MEMORY_PRESSURE.md (renamed from docs/MEMORY_PRESSURE.md)0
-rw-r--r--docs/_interfaces/PASSWORD_AGENTS.md (renamed from docs/PASSWORD_AGENTS.md)0
-rw-r--r--docs/_interfaces/PORTABILITY_AND_STABILITY.md (renamed from docs/PORTABILITY_AND_STABILITY.md)12
-rw-r--r--docs/_interfaces/ROOT_STORAGE_DAEMONS.md (renamed from docs/ROOT_STORAGE_DAEMONS.md)4
-rw-r--r--docs/_interfaces/TEMPORARY_DIRECTORIES.md (renamed from docs/TEMPORARY_DIRECTORIES.md)0
-rw-r--r--docs/_interfaces/TRANSIENT-SETTINGS.md (renamed from docs/TRANSIENT-SETTINGS.md)0
-rw-r--r--docs/_networking/NETWORK_ONLINE.md (renamed from docs/NETWORK_ONLINE.md)0
-rw-r--r--docs/_networking/PREDICTABLE_INTERFACE_NAMES.md (renamed from docs/PREDICTABLE_INTERFACE_NAMES.md)0
-rw-r--r--docs/_networking/RESOLVED-VPNS.md (renamed from docs/RESOLVED-VPNS.md)0
-rw-r--r--docs/_userdocs/API_FILE_SYSTEMS.md (renamed from docs/API_FILE_SYSTEMS.md)0
-rw-r--r--docs/_userdocs/DAEMON_SOCKET_ACTIVATION.md (renamed from docs/DAEMON_SOCKET_ACTIVATION.md)0
-rw-r--r--docs/_userdocs/DEBUGGING.md (renamed from docs/DEBUGGING.md)0
-rw-r--r--docs/_userdocs/FAQ.md (renamed from docs/FAQ.md)0
-rw-r--r--docs/_userdocs/INCOMPATIBILITIES.md (renamed from docs/INCOMPATIBILITIES.md)2
-rw-r--r--docs/_userdocs/MY_SERVICE_CANT_GET_REATLIME.md (renamed from docs/MY_SERVICE_CANT_GET_REATLIME.md)0
-rw-r--r--docs/_userdocs/SEPARATE_USR_IS_BROKEN.md (renamed from docs/SEPARATE_USR_IS_BROKEN.md)0
-rw-r--r--docs/_userdocs/TIPS_AND_TRICKS.md (renamed from docs/TIPS_AND_TRICKS.md)0
-rw-r--r--docs/index.md26
-rw-r--r--meson.build14
-rwxr-xr-xtest/units/testsuite-46.sh2
83 files changed, 144 insertions, 107 deletions
diff --git a/README.md b/README.md
index c4522a2bac..b3bcf9ed94 100644
--- a/README.md
+++ b/README.md
@@ -26,13 +26,13 @@ Information about build requirements is provided in the [README file](README).
Consult our [NEWS file](NEWS) for information about what's new in the most recent systemd versions.
-Please see the [Code Map](docs/ARCHITECTURE.md) for information about this repository's layout and content.
+Please see the [Code Map](docs/_contributing/ARCHITECTURE.md) for information about this repository's layout and content.
-Please see the [Hacking guide](docs/HACKING.md) for information on how to hack on systemd and test your modifications.
+Please see the [Hacking guide](docs/_contributing/HACKING.md) for information on how to hack on systemd and test your modifications.
-Please see our [Contribution Guidelines](docs/CONTRIBUTING.md) for more information about filing GitHub Issues and posting GitHub Pull Requests.
+Please see our [Contribution Guidelines](docs/_contributing/CONTRIBUTING.md) for more information about filing GitHub Issues and posting GitHub Pull Requests.
-When preparing patches for systemd, please follow our [Coding Style Guidelines](docs/CODING_STYLE.md).
+When preparing patches for systemd, please follow our [Coding Style Guidelines](docs/_contributing/CODING_STYLE.md).
If you are looking for support, please contact our [mailing list](https://lists.freedesktop.org/mailman/listinfo/systemd-devel), join our [IRC channel #systemd on libera.chat](https://web.libera.chat/#systemd) or [Matrix channel](https://matrix.to/#/#systemd-project:matrix.org)
diff --git a/docs/AUTOMATIC_BOOT_ASSESSMENT.md b/docs/_booting/AUTOMATIC_BOOT_ASSESSMENT.md
index 2fbf86ec6a..2fbf86ec6a 100644
--- a/docs/AUTOMATIC_BOOT_ASSESSMENT.md
+++ b/docs/_booting/AUTOMATIC_BOOT_ASSESSMENT.md
diff --git a/docs/BOOT_LOADER_INTERFACE.md b/docs/_booting/BOOT_LOADER_INTERFACE.md
index f915cbacc9..a1f6b59568 100644
--- a/docs/BOOT_LOADER_INTERFACE.md
+++ b/docs/_booting/BOOT_LOADER_INTERFACE.md
@@ -78,7 +78,7 @@ variables. All EFI variables use the vendor UUID
* `1 << 1` → The boot loader honours `LoaderConfigTimeoutOneShot` when set.
* `1 << 2` → The boot loader honours `LoaderEntryDefault` when set.
* `1 << 3` → The boot loader honours `LoaderEntryOneShot` when set.
- * `1 << 4` → The boot loader supports boot counting as described in [Automatic Boot Assessment](AUTOMATIC_BOOT_ASSESSMENT.md).
+ * `1 << 4` → The boot loader supports boot counting as described in [Automatic Boot Assessment](AUTOMATIC_BOOT_ASSESSMENT).
* `1 << 5` → The boot loader supports looking for boot menu entries in the Extended Boot Loader Partition.
* `1 << 6` → The boot loader supports passing a random seed to the OS.
* `1 << 13` → The boot loader honours `menu-disabled` option when set.
diff --git a/docs/BOOT_LOADER_SPECIFICATION.md b/docs/_booting/BOOT_LOADER_SPECIFICATION.md
index 33066b2875..33066b2875 100644
--- a/docs/BOOT_LOADER_SPECIFICATION.md
+++ b/docs/_booting/BOOT_LOADER_SPECIFICATION.md
diff --git a/docs/MOUNT_REQUIREMENTS.md b/docs/_booting/MOUNT_REQUIREMENTS.md
index 9ccbd089bf..9ccbd089bf 100644
--- a/docs/MOUNT_REQUIREMENTS.md
+++ b/docs/_booting/MOUNT_REQUIREMENTS.md
diff --git a/docs/TPM2_PCR_MEASUREMENTS.md b/docs/_booting/TPM2_PCR_MEASUREMENTS.md
index 462a86b36c..462a86b36c 100644
--- a/docs/TPM2_PCR_MEASUREMENTS.md
+++ b/docs/_booting/TPM2_PCR_MEASUREMENTS.md
diff --git a/docs/BUILDING_IMAGES.md b/docs/_concepts/BUILDING_IMAGES.md
index b11afa3a36..b11afa3a36 100644
--- a/docs/BUILDING_IMAGES.md
+++ b/docs/_concepts/BUILDING_IMAGES.md
diff --git a/docs/COREDUMP.md b/docs/_concepts/COREDUMP.md
index c64579e2fd..c64579e2fd 100644
--- a/docs/COREDUMP.md
+++ b/docs/_concepts/COREDUMP.md
diff --git a/docs/CREDENTIALS.md b/docs/_concepts/CREDENTIALS.md
index 153a42be54..ed30eacf2b 100644
--- a/docs/CREDENTIALS.md
+++ b/docs/_concepts/CREDENTIALS.md
@@ -59,7 +59,7 @@ purpose. Specifically, the following features are provided:
8. Credentials are an effective way to pass parameters into services that run
with `RootImage=` or `RootDirectory=` and thus cannot read these resources
directly from the host directory tree.
- Specifically, [Portable Services](PORTABLE_SERVICES.md) may be
+ Specifically, [Portable Services](PORTABLE_SERVICES) may be
parameterized this way securely and robustly.
9. Credentials can be binary and relatively large (though currently an overall
@@ -288,7 +288,7 @@ services where they are ultimately consumed.
invokes. [`systemd-nspawn(1)`](https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html#Credentials)'s
`--set-credential=` and `--load-credential=` switches implement this, in
order to pass arbitrary credentials from host to container payload. Also see
- the [Container Interface](CONTAINER_INTERFACE.md) documentation.
+ the [Container Interface](CONTAINER_INTERFACE) documentation.
2. Quite similar, VMs can be passed credentials via SMBIOS OEM strings (example
qemu command line switch `-smbios
diff --git a/docs/DESKTOP_ENVIRONMENTS.md b/docs/_concepts/DESKTOP_ENVIRONMENTS.md
index 0a0eff6539..0a0eff6539 100644
--- a/docs/DESKTOP_ENVIRONMENTS.md
+++ b/docs/_concepts/DESKTOP_ENVIRONMENTS.md
diff --git a/docs/DISTRO_PORTING.md b/docs/_concepts/DISTRO_PORTING.md
index c95a8292a9..c95a8292a9 100644
--- a/docs/DISTRO_PORTING.md
+++ b/docs/_concepts/DISTRO_PORTING.md
diff --git a/docs/PORTABLE_SERVICES.md b/docs/_concepts/PORTABLE_SERVICES.md
index 6f5ff112d2..6f5ff112d2 100644
--- a/docs/PORTABLE_SERVICES.md
+++ b/docs/_concepts/PORTABLE_SERVICES.md
diff --git a/docs/RANDOM_SEEDS.md b/docs/_concepts/RANDOM_SEEDS.md
index 8c9b7eee56..b2712ca741 100644
--- a/docs/RANDOM_SEEDS.md
+++ b/docs/_concepts/RANDOM_SEEDS.md
@@ -384,7 +384,7 @@ This primarily leaves two kind of systems in the cold:
for an introduction why. That said, any boot loader can re-implement the
logic described above, and can pass a random seed that systemd as PID 1
will then upload into the kernel's entropy pool. For details see the
- [Boot Loader Interface](BOOT_LOADER_INTERFACE.md) documentation.
+ [Boot Loader Interface](BOOT_LOADER_INTERFACE) documentation.
11. *Why not pass the boot loader random seed via kernel command line instead
of as EFI variable?*
diff --git a/docs/_config.yml b/docs/_config.yml
index 412db1f413..3d44889f80 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -4,7 +4,32 @@ title: systemd
baseurl: "" # the subpath of your site, e.g. /blog/
url: "https://systemd.io" # the base hostname & protocol for your site
-permalink: /:title/
-
# Build settings
markdown: kramdown
+
+collections:
+ concepts:
+ title: 'Concepts'
+ output: true
+ contributing:
+ title: 'Contributing'
+ output: true
+ userdocs:
+ output: true
+ title: 'Documentation for Users and Administrators'
+ booting:
+ title: 'Booting'
+ output: true
+ interfaces:
+ title: 'Interfaces'
+ output: true
+ networking:
+ title: 'Networking'
+ output: true
+ groups:
+ title: 'Users, Groups and Home Directories'
+ output: true
+ devdocs:
+ title: 'Documentation for Developers'
+ output: true
+
diff --git a/docs/ARCHITECTURE.md b/docs/_contributing/ARCHITECTURE.md
index 33486203a6..1478ea0ef2 100644
--- a/docs/ARCHITECTURE.md
+++ b/docs/_contributing/ARCHITECTURE.md
@@ -145,7 +145,7 @@ as a normal executable and executed for each of the input samples under
with sanitizers and invoked as part of the test suite (if `-Dfuzz-tests=true`
is configured). Thirdly, fuzzers are executed through fuzzing engines that try
to find new "interesting" inputs through coverage feedback and massive
-parallelization; see the links for oss-fuzz in [Code quality](CODE_QUALITY.md).
+parallelization; see the links for oss-fuzz in [Code quality](CODE_QUALITY).
For testing and debugging, fuzzers can be executed as any other program,
including under `valgrind` or `gdb`.
diff --git a/docs/CODE_OF_CONDUCT.md b/docs/_contributing/CODE_OF_CONDUCT.md
index 8e5455d302..8e5455d302 100644
--- a/docs/CODE_OF_CONDUCT.md
+++ b/docs/_contributing/CODE_OF_CONDUCT.md
diff --git a/docs/CODE_QUALITY.md b/docs/_contributing/CODE_QUALITY.md
index 0f983bd299..166b307b66 100644
--- a/docs/CODE_QUALITY.md
+++ b/docs/_contributing/CODE_QUALITY.md
@@ -75,7 +75,7 @@ available functionality:
15. Each PR is automatically tested with [Address Sanitizer](https://clang.llvm.org/docs/AddressSanitizer.html)
and [Undefined Behavior Sanitizer](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html).
- See [Testing systemd using sanitizers](TESTING_WITH_SANITIZERS.md)
+ See [Testing systemd using sanitizers](TESTING_WITH_SANITIZERS)
for more information.
16. Fossies provides [source code misspelling reports](https://fossies.org/features.html#codespell).
diff --git a/docs/CODING_STYLE.md b/docs/_contributing/CODING_STYLE.md
index 0e76122734..0e76122734 100644
--- a/docs/CODING_STYLE.md
+++ b/docs/_contributing/CODING_STYLE.md
diff --git a/docs/CONTRIBUTING.md b/docs/_contributing/CONTRIBUTING.md
index e0f7c1d3ee..f599972243 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/_contributing/CONTRIBUTING.md
@@ -29,13 +29,13 @@ For older versions that are still supported by your distribution please use resp
## Security vulnerability reports
-See [reporting of security vulnerabilities](SECURITY.md).
+See [reporting of security vulnerabilities](SECURITY).
## Posting Pull Requests
* Make sure to post PRs only relative to a recent tip of the `main` branch.
-* Follow our [Coding Style](CODING_STYLE.md) when contributing code. This is a requirement for all code we merge.
-* Please make sure to test your change before submitting the PR. See the [Hacking guide](HACKING.md) for details on how to do this.
+* Follow our [Coding Style](CODING_STYLE) when contributing code. This is a requirement for all code we merge.
+* Please make sure to test your change before submitting the PR. See the [Hacking guide](HACKING) for details on how to do this.
* Make sure to run the test suite locally, before posting your PR. We use a CI system, meaning we don't even look at your PR if the build and tests don't pass.
* If you need to update the code in an existing PR, force-push into the same branch, overriding old commits with new versions.
* After you have pushed a new version, add a comment explaining the latest changes. If you are a member of the systemd project on GitHub, remove the `reviewed/needs-rework`/`ci-fails/needs-rework`/`needs-rebase` labels.
diff --git a/docs/HACKING.md b/docs/_contributing/HACKING.md
index bd792092f7..270c39b587 100644
--- a/docs/HACKING.md
+++ b/docs/_contributing/HACKING.md
@@ -11,8 +11,8 @@ We welcome all contributions to systemd. If you notice a bug or a missing
feature, please feel invited to fix it, and submit your work as a
[GitHub Pull Request (PR)](https://github.com/systemd/systemd/pull/new).
-Please make sure to follow our [Coding Style](CODING_STYLE.md) when submitting
-patches. Also have a look at our [Contribution Guidelines](CONTRIBUTING.md).
+Please make sure to follow our [Coding Style](CODING_STYLE) when submitting
+patches. Also have a look at our [Contribution Guidelines](CONTRIBUTING).
When adding new functionality, tests should be added. For shared functionality
(in `src/basic/` and `src/shared/`) unit tests should be sufficient. The general
@@ -23,7 +23,7 @@ test executable. For features at a higher level, tests in `src/test/` are very
strongly recommended. If that is not possible, integration tests in `test/` are
encouraged.
-Please also have a look at our list of [code quality tools](CODE_QUALITY.md) we
+Please also have a look at our list of [code quality tools](CODE_QUALITY) we
have setup for systemd, to ensure our codebase stays in good shape.
Please always test your work before submitting a PR. For many of the components
@@ -148,7 +148,7 @@ distribution and can be disabled by setting `-Dmode=release`.
## Sanitizers in mkosi
-See [Testing systemd using sanitizers](TESTING_WITH_SANITIZERS.md) for more information
+See [Testing systemd using sanitizers](TESTING_WITH_SANITIZERS) for more information
on how to build with sanitizers enabled in mkosi.
## Fuzzers
@@ -211,7 +211,7 @@ done
```
If you find a bug that impacts the security of systemd, please follow the
-guidance in [CONTRIBUTING.md](CONTRIBUTING.md) on how to report a security vulnerability.
+guidance in [CONTRIBUTING.md](CONTRIBUTING) on how to report a security vulnerability.
For more details on building fuzzers and integrating with OSS-Fuzz, visit:
diff --git a/docs/PORTING_TO_NEW_ARCHITECTURES.md b/docs/_contributing/PORTING_TO_NEW_ARCHITECTURES.md
index a4dc6c29dd..a4dc6c29dd 100644
--- a/docs/PORTING_TO_NEW_ARCHITECTURES.md
+++ b/docs/_contributing/PORTING_TO_NEW_ARCHITECTURES.md
diff --git a/docs/RELEASE.md b/docs/_contributing/RELEASE.md
index b712ba6b07..b712ba6b07 100644
--- a/docs/RELEASE.md
+++ b/docs/_contributing/RELEASE.md
diff --git a/docs/SECURITY.md b/docs/_contributing/SECURITY.md
index a44b90de89..a44b90de89 100644
--- a/docs/SECURITY.md
+++ b/docs/_contributing/SECURITY.md
diff --git a/docs/TESTING_WITH_SANITIZERS.md b/docs/_contributing/TESTING_WITH_SANITIZERS.md
index 39920c64d0..39920c64d0 100644
--- a/docs/TESTING_WITH_SANITIZERS.md
+++ b/docs/_contributing/TESTING_WITH_SANITIZERS.md
diff --git a/docs/TRANSLATORS.md b/docs/_contributing/TRANSLATORS.md
index 2f578cc6f5..2f578cc6f5 100644
--- a/docs/TRANSLATORS.md
+++ b/docs/_contributing/TRANSLATORS.md
diff --git a/docs/_data/extra_pages.json b/docs/_data/extra_pages.json
index a393bb067a..908e3a83dc 100644
--- a/docs/_data/extra_pages.json
+++ b/docs/_data/extra_pages.json
@@ -1,45 +1,5 @@
[
{
- "category": "Project",
- "title": "mkosi Project - Build Bespoke OS Images",
- "url": "https://mkosi.systemd.io/"
- },
- {
- "category": "Project",
- "title": "Brand",
- "url": "https://brand.systemd.io/"
- },
- {
- "category": "Project",
- "title": "Mailing List",
- "url": "https://lists.freedesktop.org/mailman/listinfo/systemd-devel"
- },
- {
- "category": "Project",
- "title": "Mastodon",
- "url": "https://mastodon.social/@pid_eins"
- },
- {
- "category": "Project",
- "title": "Releases",
- "url": "https://github.com/systemd/systemd/releases"
- },
- {
- "category": "Project",
- "title": "GitHub Project Page",
- "url": "https://github.com/systemd/systemd"
- },
- {
- "category": "Project",
- "title": "Issues",
- "url": "https://github.com/systemd/systemd/issues"
- },
- {
- "category": "Project",
- "title": "Pull Requests",
- "url": "https://github.com/systemd/systemd/pulls"
- },
- {
"category": "Manual Pages",
"title": "Index",
"url": "https://www.freedesktop.org/software/systemd/man/"
diff --git a/docs/_data/project.json b/docs/_data/project.json
new file mode 100644
index 0000000000..606c784483
--- /dev/null
+++ b/docs/_data/project.json
@@ -0,0 +1,42 @@
+[
+ {
+ "category": "Project",
+ "title": "mkosi Project - Build Bespoke OS Images",
+ "url": "https://mkosi.systemd.io/"
+ },
+ {
+ "collection": "project",
+ "title": "Brand",
+ "url": "https://brand.systemd.io/"
+ },
+ {
+ "collection": "project",
+ "title": "Mailing List",
+ "url": "https://lists.freedesktop.org/mailman/listinfo/systemd-devel"
+ },
+ {
+ "collection": "project",
+ "title": "Mastodon",
+ "url": "https://mastodon.social/@pid_eins"
+ },
+ {
+ "collection": "project",
+ "title": "Releases",
+ "url": "https://github.com/systemd/systemd/releases"
+ },
+ {
+ "collection": "project",
+ "title": "GitHub Project Page",
+ "url": "https://github.com/systemd/systemd"
+ },
+ {
+ "collection": "project",
+ "title": "Issues",
+ "url": "https://github.com/systemd/systemd/issues"
+ },
+ {
+ "collection": "project",
+ "title": "Pull Requests",
+ "url": "https://github.com/systemd/systemd/pulls"
+ }
+]
diff --git a/docs/AUTOPGKTEST.md b/docs/_devdocs/AUTOPGKTEST.md
index 393b74e6b9..393b74e6b9 100644
--- a/docs/AUTOPGKTEST.md
+++ b/docs/_devdocs/AUTOPGKTEST.md
diff --git a/docs/BACKPORTS.md b/docs/_devdocs/BACKPORTS.md
index 6fbb57dd88..6fbb57dd88 100644
--- a/docs/BACKPORTS.md
+++ b/docs/_devdocs/BACKPORTS.md
diff --git a/docs/BOOT.md b/docs/_devdocs/BOOT.md
index 98bcc2ef3d..98bcc2ef3d 100644
--- a/docs/BOOT.md
+++ b/docs/_devdocs/BOOT.md
diff --git a/docs/CATALOG.md b/docs/_devdocs/CATALOG.md
index fa5e7b091e..fa5e7b091e 100644
--- a/docs/CATALOG.md
+++ b/docs/_devdocs/CATALOG.md
diff --git a/docs/CONTROL_GROUP_INTERFACE.md b/docs/_devdocs/CONTROL_GROUP_INTERFACE.md
index 1b9728e1b0..1b9728e1b0 100644
--- a/docs/CONTROL_GROUP_INTERFACE.md
+++ b/docs/_devdocs/CONTROL_GROUP_INTERFACE.md
diff --git a/docs/INHIBITOR_LOCKS.md b/docs/_devdocs/INHIBITOR_LOCKS.md
index 61efdc2029..61efdc2029 100644
--- a/docs/INHIBITOR_LOCKS.md
+++ b/docs/_devdocs/INHIBITOR_LOCKS.md
diff --git a/docs/MINIMAL_BUILDS.md b/docs/_devdocs/MINIMAL_BUILDS.md
index faa4f2de07..faa4f2de07 100644
--- a/docs/MINIMAL_BUILDS.md
+++ b/docs/_devdocs/MINIMAL_BUILDS.md
diff --git a/docs/OPTIMIZATIONS.md b/docs/_devdocs/OPTIMIZATIONS.md
index 3c8ac4815a..3c8ac4815a 100644
--- a/docs/OPTIMIZATIONS.md
+++ b/docs/_devdocs/OPTIMIZATIONS.md
diff --git a/docs/PRESET.md b/docs/_devdocs/PRESET.md
index a2ae323961..a2ae323961 100644
--- a/docs/PRESET.md
+++ b/docs/_devdocs/PRESET.md
diff --git a/docs/SYSLOG.md b/docs/_devdocs/SYSLOG.md
index 35c6225edb..35c6225edb 100644
--- a/docs/SYSLOG.md
+++ b/docs/_devdocs/SYSLOG.md
diff --git a/docs/SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md b/docs/_devdocs/SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md
index 574df93e00..574df93e00 100644
--- a/docs/SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md
+++ b/docs/_devdocs/SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.md
diff --git a/docs/THE_CASE_FOR_THE_USR_MERGE.md b/docs/_devdocs/THE_CASE_FOR_THE_USR_MERGE.md
index 2cdb6db210..2cdb6db210 100644
--- a/docs/THE_CASE_FOR_THE_USR_MERGE.md
+++ b/docs/_devdocs/THE_CASE_FOR_THE_USR_MERGE.md
diff --git a/docs/VIRTUALIZED_TESTING.md b/docs/_devdocs/VIRTUALIZED_TESTING.md
index 94a56064aa..94a56064aa 100644
--- a/docs/VIRTUALIZED_TESTING.md
+++ b/docs/_devdocs/VIRTUALIZED_TESTING.md
diff --git a/docs/WRITING_DESKTOP_ENVIRONMENTS.md b/docs/_devdocs/WRITING_DESKTOP_ENVIRONMENTS.md
index b50c857051..b50c857051 100644
--- a/docs/WRITING_DESKTOP_ENVIRONMENTS.md
+++ b/docs/_devdocs/WRITING_DESKTOP_ENVIRONMENTS.md
diff --git a/docs/WRITING_DISPLAY_MANAGERS.md b/docs/_devdocs/WRITING_DISPLAY_MANAGERS.md
index efdbccc751..efdbccc751 100644
--- a/docs/WRITING_DISPLAY_MANAGERS.md
+++ b/docs/_devdocs/WRITING_DISPLAY_MANAGERS.md
diff --git a/docs/WRITING_NETWORK_CONFIGURATION_MANAGERS.md b/docs/_devdocs/WRITING_NETWORK_CONFIGURATION_MANAGERS.md
index 61b24dc759..61b24dc759 100644
--- a/docs/WRITING_NETWORK_CONFIGURATION_MANAGERS.md
+++ b/docs/_devdocs/WRITING_NETWORK_CONFIGURATION_MANAGERS.md
diff --git a/docs/WRITING_RESOLVER_CLIENTS.md b/docs/_devdocs/WRITING_RESOLVER_CLIENTS.md
index 9a08721257..9a08721257 100644
--- a/docs/WRITING_RESOLVER_CLIENTS.md
+++ b/docs/_devdocs/WRITING_RESOLVER_CLIENTS.md
diff --git a/docs/WRITING_VM_AND_CONTAINER_MANAGERS.md b/docs/_devdocs/WRITING_VM_AND_CONTAINER_MANAGERS.md
index 4d1b649df3..4d1b649df3 100644
--- a/docs/WRITING_VM_AND_CONTAINER_MANAGERS.md
+++ b/docs/_devdocs/WRITING_VM_AND_CONTAINER_MANAGERS.md
diff --git a/docs/CONVERTING_TO_HOMED.md b/docs/_groups/CONVERTING_TO_HOMED.md
index 06fc66f195..5416a22276 100644
--- a/docs/CONVERTING_TO_HOMED.md
+++ b/docs/_groups/CONVERTING_TO_HOMED.md
@@ -16,10 +16,10 @@ it might be desirable to convert an existing, traditional user account to a
Before continuing, please read up on these basic concepts:
-* [Home Directories](HOME_DIRECTORY.md)
-* [JSON User Records](USER_RECORD.md)
-* [JSON Group Records](GROUP_RECORD.md)
-* [User/Group Record Lookup API via Varlink](USER_GROUP_API.md)
+* [Home Directories](HOME_DIRECTORY)
+* [JSON User Records](USER_RECORD)
+* [JSON Group Records](GROUP_RECORD)
+* [User/Group Record Lookup API via Varlink](USER_GROUP_API)
## Caveat
diff --git a/docs/GROUP_RECORD.md b/docs/_groups/GROUP_RECORD.md
index c9d51cef9d..f463b0a2a7 100644
--- a/docs/GROUP_RECORD.md
+++ b/docs/_groups/GROUP_RECORD.md
@@ -8,7 +8,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
# JSON Group Records
Long story short: JSON Group Records are to `struct group` what
-[JSON User Records](USER_RECORD.md) are to `struct passwd`.
+[JSON User Records](USER_RECORD) are to `struct passwd`.
Conceptually, much of what applies to JSON user records also applies to JSON
group records. They also consist of seven sections, with similar properties and
diff --git a/docs/HOME_DIRECTORY.md b/docs/_groups/HOME_DIRECTORY.md
index f6e061bd2b..f1b7fafed9 100644
--- a/docs/HOME_DIRECTORY.md
+++ b/docs/_groups/HOME_DIRECTORY.md
@@ -19,7 +19,7 @@ mechanism used.
Inside of the home directory a file `~/.identity` contains the JSON formatted
user record of the user. It follows the format defined in
-[`JSON User Records`](USER_RECORD.md). It is recommended to bring the
+[`JSON User Records`](USER_RECORD). It is recommended to bring the
record into 'normalized' form (i.e. all objects should contain their fields
sorted alphabetically by their key) before storing it there, though this is not
required nor enforced. Since the user record is cryptographically signed, the
diff --git a/docs/UIDS-GIDS.md b/docs/_groups/UIDS-GIDS.md
index e84f0378ec..e84f0378ec 100644
--- a/docs/UIDS-GIDS.md
+++ b/docs/_groups/UIDS-GIDS.md
diff --git a/docs/USERDB_AND_DESKTOPS.md b/docs/_groups/USERDB_AND_DESKTOPS.md
index 9006eeb5ec..3a3da1317a 100644
--- a/docs/USERDB_AND_DESKTOPS.md
+++ b/docs/_groups/USERDB_AND_DESKTOPS.md
@@ -21,10 +21,10 @@ are recommended. A few areas where that applies are discussed below.
Before reading on, please read up on the basic concepts, specifically:
-* [Home Directories](HOME_DIRECTORY.md)
-* [JSON User Records](USER_RECORD.md)
-* [JSON Group Records](GROUP_RECORD.md)
-* [User/Group Record Lookup API via Varlink](USER_GROUP_API.md)
+* [Home Directories](HOME_DIRECTORY)
+* [JSON User Records](USER_RECORD)
+* [JSON Group Records](GROUP_RECORD)
+* [User/Group Record Lookup API via Varlink](USER_GROUP_API)
## Support for Suspending Home Directory Access during System Suspend
@@ -147,7 +147,7 @@ solution only.
In case you wonder, there's no automatic mechanism for converting existing
users registered in `/etc/passwd` or LDAP to users managed by
`systemd-homed`. There's documentation for doing this manually though, see
-[Converting Existing Users to systemd-homed managed Users](CONVERTING_TO_HOMED.md).
+[Converting Existing Users to systemd-homed managed Users](CONVERTING_TO_HOMED).
## Future Additions
diff --git a/docs/USER_GROUP_API.md b/docs/_groups/USER_GROUP_API.md
index 45e3c9da27..567b8178f2 100644
--- a/docs/USER_GROUP_API.md
+++ b/docs/_groups/USER_GROUP_API.md
@@ -7,8 +7,8 @@ SPDX-License-Identifier: LGPL-2.1-or-later
# User/Group Record Lookup API via Varlink
-JSON User/Group Records (as described in the [JSON User Records](USER_RECORD.md)
-and [JSON Group Records](GROUP_RECORD.md) documents) that are defined on the
+JSON User/Group Records (as described in the [JSON User Records](USER_RECORD)
+and [JSON Group Records](GROUP_RECORD) documents) that are defined on the
local system may be queried with a [Varlink](https://varlink.org/) API. This
API takes both the role of what
[`getpwnam(3)`](https://man7.org/linux/man-pages/man3/getpwnam.3.html) and
diff --git a/docs/USER_NAMES.md b/docs/_groups/USER_NAMES.md
index 74c24b5157..74c24b5157 100644
--- a/docs/USER_NAMES.md
+++ b/docs/_groups/USER_NAMES.md
diff --git a/docs/USER_RECORD.md b/docs/_groups/USER_RECORD.md
index f28106797e..b88a67e66b 100644
--- a/docs/USER_RECORD.md
+++ b/docs/_groups/USER_RECORD.md
@@ -15,7 +15,7 @@ pairs, encoded as JSON. Specifically:
1. [`systemd-homed.service`](https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html)
manages `human` user home directories and embeds these JSON records
directly in the home directory images
- (see [Home Directories](HOME_DIRECTORY.md) for details).
+ (see [Home Directories](HOME_DIRECTORY) for details).
2. [`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html)
processes these JSON records for users that log in, and applies various
@@ -72,7 +72,7 @@ the following extensions are envisioned:
4. Default parameters for backup applications and similar
Similar to JSON User Records there are also
-[JSON Group Records](GROUP_RECORD.md) that encapsulate UNIX groups.
+[JSON Group Records](GROUP_RECORD) that encapsulate UNIX groups.
JSON User Records are not suitable for storing all identity information about
the user, such as binary data or large unstructured blobs of text. These parts
@@ -80,7 +80,7 @@ of a user's identity should be stored in the [Blob Directories](USER_RECORD_BLOB
JSON User Records may be transferred or written to disk in various protocols
and formats. To inquire about such records defined on the local system use the
-[User/Group Lookup API via Varlink](USER_GROUP_API.md). User/group records may
+[User/Group Lookup API via Varlink](USER_GROUP_API). User/group records may
also be dropped in number of drop-in directories as files. See
[`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/nss-systemd.html)
for details.
@@ -218,7 +218,7 @@ object. The following fields are currently defined:
UNIX user name. This field is the only mandatory field, all others are
optional. Corresponds with the `pw_name` field of `struct passwd` and the
`sp_namp` field of `struct spwd` (i.e. the shadow user record stored in
-`/etc/shadow`). See [User/Group Name Syntax](USER_NAMES.md) for
+`/etc/shadow`). See [User/Group Name Syntax](USER_NAMES) for
the (relaxed) rules the various systemd components enforce on user/group names.
`realm` → The "realm" a user is defined in. This concept allows distinguishing
diff --git a/docs/BLOCK_DEVICE_LOCKING.md b/docs/_interfaces/BLOCK_DEVICE_LOCKING.md
index a6e3374bc7..a6e3374bc7 100644
--- a/docs/BLOCK_DEVICE_LOCKING.md
+++ b/docs/_interfaces/BLOCK_DEVICE_LOCKING.md
diff --git a/docs/CGROUP_DELEGATION.md b/docs/_interfaces/CGROUP_DELEGATION.md
index 4210a75767..4210a75767 100644
--- a/docs/CGROUP_DELEGATION.md
+++ b/docs/_interfaces/CGROUP_DELEGATION.md
diff --git a/docs/CONTAINER_INTERFACE.md b/docs/_interfaces/CONTAINER_INTERFACE.md
index dcecdecc3e..dcecdecc3e 100644
--- a/docs/CONTAINER_INTERFACE.md
+++ b/docs/_interfaces/CONTAINER_INTERFACE.md
diff --git a/docs/ELF_PACKAGE_METADATA.md b/docs/_interfaces/ELF_PACKAGE_METADATA.md
index 6cb3f785b4..6cb3f785b4 100644
--- a/docs/ELF_PACKAGE_METADATA.md
+++ b/docs/_interfaces/ELF_PACKAGE_METADATA.md
diff --git a/docs/ENVIRONMENT.md b/docs/_interfaces/ENVIRONMENT.md
index eab1ce23e4..eab1ce23e4 100644
--- a/docs/ENVIRONMENT.md
+++ b/docs/_interfaces/ENVIRONMENT.md
diff --git a/docs/FILE_DESCRIPTOR_STORE.md b/docs/_interfaces/FILE_DESCRIPTOR_STORE.md
index 206dda7038..206dda7038 100644
--- a/docs/FILE_DESCRIPTOR_STORE.md
+++ b/docs/_interfaces/FILE_DESCRIPTOR_STORE.md
diff --git a/docs/INITRD_INTERFACE.md b/docs/_interfaces/INITRD_INTERFACE.md
index 4e856f8917..0461ae2607 100644
--- a/docs/INITRD_INTERFACE.md
+++ b/docs/_interfaces/INITRD_INTERFACE.md
@@ -40,7 +40,7 @@ Arch Linux initrds.
line options, for example `--log-level=` and similar.
* Storage daemons run from the initrd should follow the guide on
- [systemd and Storage Daemons for the Root File System](ROOT_STORAGE_DAEMONS.md)
+ [systemd and Storage Daemons for the Root File System](ROOT_STORAGE_DAEMONS)
to survive properly from the boot initrd all the way to the point where
systemd jumps back into the initrd for shutdown.
@@ -67,4 +67,4 @@ systemd. Here are a few terse notes:
* The switch-root operation will result in a killing spree of all running
processes. Some processes might need to be excluded from that, see the guide
- on [systemd and Storage Daemons for the Root File System](ROOT_STORAGE_DAEMONS.md).
+ on [systemd and Storage Daemons for the Root File System](ROOT_STORAGE_DAEMONS).
diff --git a/docs/JOURNAL_EXPORT_FORMATS.md b/docs/_interfaces/JOURNAL_EXPORT_FORMATS.md
index 2c4078aed9..e1eb0d36d1 100644
--- a/docs/JOURNAL_EXPORT_FORMATS.md
+++ b/docs/_interfaces/JOURNAL_EXPORT_FORMATS.md
@@ -11,7 +11,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
_Note that this document describes the binary serialization format of journals only, as used for transfer across the network.
For interfacing with web technologies there's the Journal JSON Format, described below.
-The binary format on disk is documented as the [Journal File Format](JOURNAL_FILE_FORMAT.md)._
+The binary format on disk is documented as the [Journal File Format](JOURNAL_FILE_FORMAT)._
_Before reading on, please make sure you are aware of the [basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html), in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry (though usually hasn't)._
@@ -124,7 +124,7 @@ _SOURCE_REALTIME_TIMESTAMP=1423944916372858
_Note that this section describes the JSON serialization format of the journal only, as used for interfacing with web technologies.
For binary transfer of journal data across the network there's the Journal Export Format described above.
-The binary format on disk is documented as [Journal File Format](JOURNAL_FILE_FORMAT.md)._
+The binary format on disk is documented as [Journal File Format](JOURNAL_FILE_FORMAT)._
_Before reading on, please make sure you are aware of the [basic properties of journal entries](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html), in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry (though usually hasn't)._
diff --git a/docs/JOURNAL_FILE_FORMAT.md b/docs/_interfaces/JOURNAL_FILE_FORMAT.md
index a3edb56c88..e0737c5933 100644
--- a/docs/JOURNAL_FILE_FORMAT.md
+++ b/docs/_interfaces/JOURNAL_FILE_FORMAT.md
@@ -46,7 +46,7 @@ _Or, to put this in other words: this low-level document is probably not what
you want to use as base of your project. You want our [C
API](https://www.freedesktop.org/software/systemd/man/sd-journal.html) instead!
And if you really don't want the C API, then you want the
-[Journal Export Format or Journal JSON Format](JOURNAL_EXPORT_FORMATS.md)
+[Journal Export Format or Journal JSON Format](JOURNAL_EXPORT_FORMATS)
instead! This document is primarily for your entertainment and education.
Thank you!_
diff --git a/docs/JOURNAL_NATIVE_PROTOCOL.md b/docs/_interfaces/JOURNAL_NATIVE_PROTOCOL.md
index ce00d7e1ae..ce00d7e1ae 100644
--- a/docs/JOURNAL_NATIVE_PROTOCOL.md
+++ b/docs/_interfaces/JOURNAL_NATIVE_PROTOCOL.md
diff --git a/docs/MEMORY_PRESSURE.md b/docs/_interfaces/MEMORY_PRESSURE.md
index 69c23eccb2..69c23eccb2 100644
--- a/docs/MEMORY_PRESSURE.md
+++ b/docs/_interfaces/MEMORY_PRESSURE.md
diff --git a/docs/PASSWORD_AGENTS.md b/docs/_interfaces/PASSWORD_AGENTS.md
index 29bd949077..29bd949077 100644
--- a/docs/PASSWORD_AGENTS.md
+++ b/docs/_interfaces/PASSWORD_AGENTS.md
diff --git a/docs/PORTABILITY_AND_STABILITY.md b/docs/_interfaces/PORTABILITY_AND_STABILITY.md
index 2854857d2b..abdc3dc658 100644
--- a/docs/PORTABILITY_AND_STABILITY.md
+++ b/docs/_interfaces/PORTABILITY_AND_STABILITY.md
@@ -83,9 +83,9 @@ And now, here's the list of (hopefully) all APIs that we have introduced with sy
| [hostnamed](https://www.freedesktop.org/software/systemd/man/org.freedesktop.hostname1.html) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially |
| [localed](https://www.freedesktop.org/software/systemd/man/org.freedesktop.locale1.html) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially |
| [timedated](https://www.freedesktop.org/software/systemd/man/org.freedesktop.timedate1.html) | D-Bus | yes | yes | GNOME | yes | [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially |
-| [initrd interface](INITRD_INTERFACE.md) | Environment, flag files | yes | yes | mkosi, dracut, ArchLinux | yes | ArchLinux | no |
-| [Container interface](CONTAINER_INTERFACE.md) | Environment, Mounts | yes | yes | libvirt/LXC | yes | - | no |
-| [Boot Loader interface](BOOT_LOADER_INTERFACE.md) | EFI variables | yes | yes | gummiboot | yes | - | no |
+| [initrd interface](INITRD_INTERFACE) | Environment, flag files | yes | yes | mkosi, dracut, ArchLinux | yes | ArchLinux | no |
+| [Container interface](CONTAINER_INTERFACE) | Environment, Mounts | yes | yes | libvirt/LXC | yes | - | no |
+| [Boot Loader interface](BOOT_LOADER_INTERFACE) | EFI variables | yes | yes | gummiboot | yes | - | no |
| [Service bus API](https://www.freedesktop.org/software/systemd/man/org.freedesktop.systemd1.html) | D-Bus | yes | yes | system-config-services | no | - | no |
| [logind](https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html) | D-Bus | yes | yes | GNOME | no | - | no |
| [sd-bus.h API](https://www.freedesktop.org/software/systemd/man/sd-bus.html) | C Library | yes | yes | - | maybe | - | maybe |
@@ -102,15 +102,15 @@ And now, here's the list of (hopefully) all APIs that we have introduced with sy
| [$XDG_RUNTIME_DIR](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) | Environment | yes | yes | glib, GNOME | yes | - | no |
| [$LISTEN_FDS $LISTEN_PID FD Passing](https://www.freedesktop.org/software/systemd/man/sd_listen_fds.html) | Environment | yes | yes | numerous (via sd-daemon.h) | yes | - | no |
| [$NOTIFY_SOCKET Daemon Notifications](https://www.freedesktop.org/software/systemd/man/sd_notify.html) | Environment | yes | yes | a few, including udev | yes | - | no |
-| [argv&#91;0&#93;&#91;0&#93;='@' Logic](ROOT_STORAGE_DAEMONS.md) | `/proc` marking | yes | yes | mdadm | yes | - | no |
+| [argv&#91;0&#93;&#91;0&#93;='@' Logic](ROOT_STORAGE_DAEMONS) | `/proc` marking | yes | yes | mdadm | yes | - | no |
| [Unit file format](https://www.freedesktop.org/software/systemd/man/systemd.unit.html) | File format | yes | yes | numerous | no | - | no |
| [Network](https://www.freedesktop.org/software/systemd/man/systemd.network.html) & [Netdev file format](https://www.freedesktop.org/software/systemd/man/systemd.netdev.html) | File format | yes | yes | no | no | - | no |
| [Link file format](https://www.freedesktop.org/software/systemd/man/systemd.link.html) | File format | yes | yes | no | no | - | no |
-| [Journal File Format](JOURNAL_FILE_FORMAT.md) | File format | yes | yes | - | maybe | - | no |
+| [Journal File Format](JOURNAL_FILE_FORMAT) | File format | yes | yes | - | maybe | - | no |
| [Journal Export Format](JOURNAL_EXPORT_FORMATS.md#journal-export-format) | File format | yes | yes | - | yes | - | no |
| [Journal JSON Format](JOURNAL_EXPORT_FORMATS.md#journal-json-format) | File format | yes | yes | - | yes | - | no |
| [Cooperation in cgroup tree](https://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups) | Treaty | yes | yes | libvirt | yes | libvirt | no |
-| [Password Agents](PASSWORD_AGENTS.md) | Socket+Files | yes | yes | - | yes | - | no |
+| [Password Agents](PASSWORD_AGENTS) | Socket+Files | yes | yes | - | yes | - | no |
| [udev multi-seat properties](https://www.freedesktop.org/software/systemd/man/sd-login.html) | udev Property | yes | yes | X11, gdm | no | - | no |
| udev session switch ACL properties | udev Property | no | no | - | no | - | no |
| [CLI of systemctl,...](https://www.freedesktop.org/software/systemd/man/systemctl.html) | CLI | yes | yes | numerous | no | - | no |
diff --git a/docs/ROOT_STORAGE_DAEMONS.md b/docs/_interfaces/ROOT_STORAGE_DAEMONS.md
index 1ffebd6498..69812c9055 100644
--- a/docs/ROOT_STORAGE_DAEMONS.md
+++ b/docs/_interfaces/ROOT_STORAGE_DAEMONS.md
@@ -106,7 +106,7 @@ to find a different solution to your problem._
The recommended way to distinguish between run-from-initrd and run-from-rootfs
for a daemon is to check for `/etc/initrd-release` (which exists on all modern
-initrd implementations, see the [initrd Interface](INITRD_INTERFACE.md) for
+initrd implementations, see the [initrd Interface](INITRD_INTERFACE) for
details) which when exists results in `argv[0][0]` being set to `@`, and
otherwise doesn't. Something like this:
@@ -191,4 +191,4 @@ few additional notes for supporting these setups:
program consult this blog story: [Socket
Activation](https://0pointer.de/blog/projects/socket-activation.html)
-* Consider having a look at the [initrd Interface of systemd](INITRD_INTERFACE.md).
+* Consider having a look at the [initrd Interface of systemd](INITRD_INTERFACE).
diff --git a/docs/TEMPORARY_DIRECTORIES.md b/docs/_interfaces/TEMPORARY_DIRECTORIES.md
index bc9cb7bc45..bc9cb7bc45 100644
--- a/docs/TEMPORARY_DIRECTORIES.md
+++ b/docs/_interfaces/TEMPORARY_DIRECTORIES.md
diff --git a/docs/TRANSIENT-SETTINGS.md b/docs/_interfaces/TRANSIENT-SETTINGS.md
index 15f1cbc47c..15f1cbc47c 100644
--- a/docs/TRANSIENT-SETTINGS.md
+++ b/docs/_interfaces/TRANSIENT-SETTINGS.md
diff --git a/docs/NETWORK_ONLINE.md b/docs/_networking/NETWORK_ONLINE.md
index b249eb4402..b249eb4402 100644
--- a/docs/NETWORK_ONLINE.md
+++ b/docs/_networking/NETWORK_ONLINE.md
diff --git a/docs/PREDICTABLE_INTERFACE_NAMES.md b/docs/_networking/PREDICTABLE_INTERFACE_NAMES.md
index 9d79f8f409..9d79f8f409 100644
--- a/docs/PREDICTABLE_INTERFACE_NAMES.md
+++ b/docs/_networking/PREDICTABLE_INTERFACE_NAMES.md
diff --git a/docs/RESOLVED-VPNS.md b/docs/_networking/RESOLVED-VPNS.md
index dbf43f9a38..dbf43f9a38 100644
--- a/docs/RESOLVED-VPNS.md
+++ b/docs/_networking/RESOLVED-VPNS.md
diff --git a/docs/API_FILE_SYSTEMS.md b/docs/_userdocs/API_FILE_SYSTEMS.md
index a7e350b7aa..a7e350b7aa 100644
--- a/docs/API_FILE_SYSTEMS.md
+++ b/docs/_userdocs/API_FILE_SYSTEMS.md
diff --git a/docs/DAEMON_SOCKET_ACTIVATION.md b/docs/_userdocs/DAEMON_SOCKET_ACTIVATION.md
index 797deaefd0..797deaefd0 100644
--- a/docs/DAEMON_SOCKET_ACTIVATION.md
+++ b/docs/_userdocs/DAEMON_SOCKET_ACTIVATION.md
diff --git a/docs/DEBUGGING.md b/docs/_userdocs/DEBUGGING.md
index 1d3d829a3f..1d3d829a3f 100644
--- a/docs/DEBUGGING.md
+++ b/docs/_userdocs/DEBUGGING.md
diff --git a/docs/FAQ.md b/docs/_userdocs/FAQ.md
index 5239dbb0e5..5239dbb0e5 100644
--- a/docs/FAQ.md
+++ b/docs/_userdocs/FAQ.md
diff --git a/docs/INCOMPATIBILITIES.md b/docs/_userdocs/INCOMPATIBILITIES.md
index a7a2c1b827..be256deaf2 100644
--- a/docs/INCOMPATIBILITIES.md
+++ b/docs/_userdocs/INCOMPATIBILITIES.md
@@ -13,7 +13,7 @@ systemd provides a fair degree of compatibility with the behavior exposed by the
* 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](http://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](http://0pointer.de/public/systemd-man/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".
diff --git a/docs/MY_SERVICE_CANT_GET_REATLIME.md b/docs/_userdocs/MY_SERVICE_CANT_GET_REATLIME.md
index eee389ad70..eee389ad70 100644
--- a/docs/MY_SERVICE_CANT_GET_REATLIME.md
+++ b/docs/_userdocs/MY_SERVICE_CANT_GET_REATLIME.md
diff --git a/docs/SEPARATE_USR_IS_BROKEN.md b/docs/_userdocs/SEPARATE_USR_IS_BROKEN.md
index aa821f4a72..aa821f4a72 100644
--- a/docs/SEPARATE_USR_IS_BROKEN.md
+++ b/docs/_userdocs/SEPARATE_USR_IS_BROKEN.md
diff --git a/docs/TIPS_AND_TRICKS.md b/docs/_userdocs/TIPS_AND_TRICKS.md
index d9a106a922..d9a106a922 100644
--- a/docs/TIPS_AND_TRICKS.md
+++ b/docs/_userdocs/TIPS_AND_TRICKS.md
diff --git a/docs/index.md b/docs/index.md
index 3c05c93550..cd3916ca32 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -12,17 +12,27 @@ systemd provides aggressive parallelization capabilities, uses socket and D-Bus
Other parts include a logging daemon, utilities to control basic system configuration like the hostname, date, locale, maintain a list of logged-in users and running containers and virtual machines, system accounts, runtime directories and settings, and daemons to manage simple network configuration, network time synchronization, log forwarding, and name resolution.
---
+## Project
+{% for page in site.data.project %}
+* [{{ page.title }}]({{ page.url | relative_url }}){% endfor %}
+
+<!-- Collections -->
+{% for c in site.collections %}
+<!-- hide autegenerated posts collection -->
+{% if c.label != "posts" %}
+## {{ c.title }}
+{% for item in site[c.label] %}
+* [{{ item.title }}]({{ item.url | relative_url }}){% endfor %}
+{% endif %}
+{% endfor %}
-{% assign by_category = site.pages | group_by:"category" %}
-{% assign extra_pages = site.data.extra_pages | group_by:"category" %}
-{% assign merged = by_category | concat: extra_pages | sort:"name" %}
+<!-- external pages -->
+{% assign external_pages = site.data.extra_pages | group_by:"category" %}
-{% for pair in merged %}
- {% if pair.name != "" %}
-## {{ pair.name }}
-{% assign sorted = pair.items | sort:"title" %}{% for page in sorted %}
+{% for category in external_pages %}
+## {{ category.name }}
+{% assign sorted = category.items | sort:"title" %}{% for page in sorted %}
* [{{ page.title }}]({{ page.url | relative_url }}){% endfor %}
- {% endif %}
{% endfor %}
## See also
diff --git a/meson.build b/meson.build
index bf9b8c7e74..7b6f0716fe 100644
--- a/meson.build
+++ b/meson.build
@@ -2513,13 +2513,13 @@ install_data('LICENSE.GPL2',
'LICENSE.LGPL2.1',
'NEWS',
'README',
- 'docs/CODING_STYLE.md',
- 'docs/DISTRO_PORTING.md',
- 'docs/ENVIRONMENT.md',
- 'docs/HACKING.md',
- 'docs/TRANSIENT-SETTINGS.md',
- 'docs/TRANSLATORS.md',
- 'docs/UIDS-GIDS.md',
+ 'docs/_contributing/CODING_STYLE.md',
+ 'docs/_concepts/DISTRO_PORTING.md',
+ 'docs/_interfaces/ENVIRONMENT.md',
+ 'docs/_contributing/HACKING.md',
+ 'docs/_interfaces/TRANSIENT-SETTINGS.md',
+ 'docs/_contributing/TRANSLATORS.md',
+ 'docs/_groups/UIDS-GIDS.md',
install_dir : docdir)
install_subdir('LICENSES',
diff --git a/test/units/testsuite-46.sh b/test/units/testsuite-46.sh
index d097ccdac8..52f92c5f57 100755
--- a/test/units/testsuite-46.sh
+++ b/test/units/testsuite-46.sh
@@ -305,7 +305,7 @@ homectl remove blob-user
export PAGER=
# Create a couple of user/group records to test io.systemd.DropIn
-# See docs/USER_RECORD.md and docs/GROUP_RECORD.md
+# See docs/_groups/USER_RECORD.md and docs/_groups/GROUP_RECORD.md
mkdir -p /run/userdb/
cat >"/run/userdb/dropingroup.group" <<\EOF
{