]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
docs: use absolute links for our pages 32324/head
authorFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 17 Apr 2024 18:54:45 +0000 (20:54 +0200)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 17 Apr 2024 19:21:23 +0000 (21:21 +0200)
Since 56b2970 has proven to be a no-go for us, as it breaks existing
links, let's embrace the trailing slash and use absolute links
everywhere for our pages. This way we'll get around browser cleverly
appending the relative link to the current location (since it ends with
a slash), and given our docs/ layout is flat it's not much of a hassle
either.

Converted using this beauty:
  $ sed -ri 's/(\[.+\]\()([A-Z_]+\))/\1\/\2/g' *.md

Resolves: #32088 (again) and #32310

32 files changed:
docs/ARCHITECTURE.md
docs/BOOT_LOADER_INTERFACE.md
docs/CGROUP_DELEGATION.md
docs/CODE_QUALITY.md
docs/CONTAINER_INTERFACE.md
docs/CONTRIBUTING.md
docs/CONTROL_GROUP_INTERFACE.md
docs/CONVERTING_TO_HOMED.md
docs/COREDUMP.md
docs/CREDENTIALS.md
docs/FAQ.md
docs/GROUP_RECORD.md
docs/HACKING.md
docs/HOME_DIRECTORY.md
docs/INCOMPATIBILITIES.md
docs/INITRD_INTERFACE.md
docs/JOURNAL_EXPORT_FORMATS.md
docs/JOURNAL_FILE_FORMAT.md
docs/PAX_CONTROL_GROUPS.md
docs/PORTABILITY_AND_STABILITY.md
docs/RANDOM_SEEDS.md
docs/ROOT_STORAGE_DAEMONS.md
docs/SEPARATE_USR_IS_BROKEN.md
docs/THE_CASE_FOR_THE_USR_MERGE.md
docs/TIPS_AND_TRICKS.md
docs/USERDB_AND_DESKTOPS.md
docs/USER_GROUP_API.md
docs/USER_RECORD.md
docs/USER_RECORD_BLOB_DIRS.md
docs/WRITING_DESKTOP_ENVIRONMENTS.md
docs/WRITING_DISPLAY_MANAGERS.md
docs/WRITING_VM_AND_CONTAINER_MANAGERS.md

index 0534c190a80e1b7f8ed38e0d458c69c3023fb985..d046f274eefb24a4857b8ce1cf87efe8ac79c100 100644 (file)
@@ -112,7 +112,7 @@ Names of meson tests include the input file name and output looks awkward if the
 Fuzzers are invoked primarily in three ways:
 firstly, each fuzzer is compiled as a normal executable and executed for each of the input samples under `test/fuzz/` as part of the test suite.
 Secondly, fuzzers may be instrumented with sanitizers and invoked as part of the test suite (if `-Dfuzz-tests=true` is configured).
-Thirdly, fuzzers are executed through fuzzing engines that tryto find new "interesting" inputs through coverage feedback and massive parallelization; see the links for oss-fuzz in [Code quality](CODE_QUALITY).
+Thirdly, fuzzers are executed through fuzzing engines that tryto find new "interesting" inputs through coverage feedback and massive 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`.
 
 ## Integration Tests
index a1f6b595680d21dfd3f1c7562cc8cb8110957ddd..4bf074df5e52cad3dbe94c4b1cbee2bd3b7c84e2 100644 (file)
@@ -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).
+  * `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.
index 0aeb6f21abe83b50f56f3717a843177411f7d416..9e2e76c5eeeb4fb7d73fcb181a634f21e80713d4 100644 (file)
@@ -29,8 +29,8 @@ This document then adds in the higher-level view from systemd.
 
 This document augments the existing documentation we already have:
 
-* [The New Control Group Interfaces](CONTROL_GROUP_INTERFACE)
-* [Writing VM and Container Managers](WRITING_VM_AND_CONTAINER_MANAGERS)
+* [The New Control Group Interfaces](/CONTROL_GROUP_INTERFACE)
+* [Writing VM and Container Managers](/WRITING_VM_AND_CONTAINER_MANAGERS)
 
 These wiki documents are not as up to date as they should be, currently, but
 the basic concepts still fully apply. You should read them too, if you do something
index 166b307b66b1a4e5422dd3105ee922566fe6efd2..4caf38f7e86ba1496732422787871b5d11b62159 100644 (file)
@@ -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)
+    See [Testing systemd using sanitizers](/TESTING_WITH_SANITIZERS)
     for more information.
 
 16. Fossies provides [source code misspelling reports](https://fossies.org/features.html#codespell).
index fee6ccbab3fd20971648957a6a94519e6bbb6a01..e64953c8b40e1fcf8fa4ef787f65b6400556fada 100644 (file)
@@ -7,7 +7,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
 
 # The Container Interface
 
-Also consult [Writing Virtual Machine or Container Managers](WRITING_VM_AND_CONTAINER_MANAGERS).
+Also consult [Writing Virtual Machine or Container Managers](/WRITING_VM_AND_CONTAINER_MANAGERS).
 
 systemd has a number of interfaces for interacting with container managers,
 when systemd is used inside of an OS container. If you work on a container
index ea5efceeb2609be91337689634722993a9af3aa7..c247102d105f06c35d4c118650d2e73d12b36bfd 100644 (file)
@@ -33,13 +33,13 @@ For older versions that are still supported by your distribution please use resp
 
 ## Security vulnerability reports
 
-See [reporting of security vulnerabilities](SECURITY).
+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) 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.
+* 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.
index 5e461d7f1511902ac51de2225954d2a3ec6093df..c82a2c330a590e3d1ae12b0ce594b5b24e563c1a 100644 (file)
@@ -12,7 +12,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
 Starting with version 205 systemd provides a number of interfaces that may be used to create and manage labelled groups of processes for the purpose of monitoring and controlling them and their resource usage.
 This is built on top of the Linux kernel Control Groups ("cgroups") facility.
 
-Previously, the kernel's cgroups API was exposed directly as shared application API, following the rules of the [Pax Control Groups](PAX_CONTROL_GROUPS) document.
+Previously, the kernel's cgroups API was exposed directly as shared application API, following the rules of the [Pax Control Groups](/PAX_CONTROL_GROUPS) document.
 However, the kernel cgroup interface has been reworked into an API that requires that each individual cgroup is managed by a single writer only.
 
 With this change the main cgroup tree becomes private property of that userspace component and is no longer a shared resource.
@@ -56,7 +56,7 @@ On systemd systems use the systemd APIs as described below. At this time we are
 
 ### What's the timeframe of this? Do I need to care now?
 
-In the short-term future writing directly to the control group tree from applications should still be OK, as long as the [Pax Control Groups](PAX_CONTROL_GROUPS) document is followed. In the medium-term future it will still be supported to alter/read individual attributes of cgroups directly, but no longer to create/delete cgroups without using the systemd API. In the longer-term future altering/reading attributes will also be unavailable to userspace applications, unless done via systemd's APIs (either D-Bus based IPC APIs or shared library APIs for _passive_ operations).
+In the short-term future writing directly to the control group tree from applications should still be OK, as long as the [Pax Control Groups](/PAX_CONTROL_GROUPS) document is followed. In the medium-term future it will still be supported to alter/read individual attributes of cgroups directly, but no longer to create/delete cgroups without using the systemd API. In the longer-term future altering/reading attributes will also be unavailable to userspace applications, unless done via systemd's APIs (either D-Bus based IPC APIs or shared library APIs for _passive_ operations).
 
 It is recommended to use the new systemd APIs described below in any case. Note that the kernel cgroup interface is currently being reworked (available when the "sane_behaviour" kernel option is used). This will change the cgroupfs interface. By using systemd's APIs this change is abstracted away and invisible to applications.
 
@@ -219,7 +219,7 @@ To acquire a list of currently running units, use the `ListUnits()` call on the
 
 ### VM and Container Managers
 
-Use these APIs to register any kind of process workload with systemd to be placed in a resource controlled cgroup. Note however that for containers and virtual machines it is better to use the [`machined`](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.machine1.html) interfaces since they provide integration with "ps" and similar tools beyond what mere cgroup registration provides. Also see [Writing VM and Container Managers](WRITING_VM_AND_CONTAINER_MANAGERS) for details.
+Use these APIs to register any kind of process workload with systemd to be placed in a resource controlled cgroup. Note however that for containers and virtual machines it is better to use the [`machined`](https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.machine1.html) interfaces since they provide integration with "ps" and similar tools beyond what mere cgroup registration provides. Also see [Writing VM and Container Managers](/WRITING_VM_AND_CONTAINER_MANAGERS) for details.
 
 ### Reading Accounting Information
 
index d2841a5a7ec0724e62fbb9ad041a7c3125a2c8af..a31ff5a37e50931185b09707245157d5236c0ec4 100644 (file)
@@ -17,10 +17,10 @@ Below is a brief guide how to do that.
 
 Before continuing, please read up on these basic concepts:
 
-* [Home Directories](HOME_DIRECTORY)
-* [JSON User Records](USER_RECORD)
-* [JSON Group Records](GROUP_RECORD)
-* [User/Group Record Lookup API via Varlink](USER_GROUP_API)
+* [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
 
index 925e3eb6c0b7832dd69d413d897e26d0b0fea843..d2354792d9711532a8f1a17f38272c1831d08084 100644 (file)
@@ -68,7 +68,7 @@ specified service unit, and thus can take benefit of regular service resource
 management and sandboxing.
 
 The `systemd-coredump` handler will extract a backtrace and
-[ELF packaging metadata](ELF_PACKAGE_METADATA) from any coredumps it
+[ELF packaging metadata](/ELF_PACKAGE_METADATA) from any coredumps it
 receives and log both.
 The information about coredumps stored in the journal can be enumerated and queried with the
 [`coredumpctl`](https://www.freedesktop.org/software/systemd/man/coredumpctl.html)
index 070ef42cf0fd649b4c47e562a29df0aa7d1cfbba..fd87c8598a73f38ba02f92b540ce1b4ff8c0bd8e 100644 (file)
@@ -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) 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.
    [`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) 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
index 83ea743ad9146ac72cbfcdfd2bd9ff65d9c35d4b..3b03726c9decabf96fdf10ed65b00f44c23374b9 100644 (file)
@@ -7,7 +7,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Frequently Asked Questions
 
-Also check out the [Tips & Tricks](TIPS_AND_TRICKS)!
+Also check out the [Tips & Tricks](/TIPS_AND_TRICKS)!
 
 **Q: How do I change the current runlevel?**
 
@@ -104,12 +104,12 @@ A: Use:
 
 **Q: Whenever my service tries to acquire RT scheduling for one of its threads this is refused with EPERM even though my service is running with full privileges. This works fine on my non-systemd system!**
 
-A: By default, systemd places all systemd daemons in their own cgroup in the "cpu" hierarchy. Unfortunately, due to a kernel limitation, this has the effect of disallowing RT entirely for the service. See [My Service Can't Get Realtime!](MY_SERVICE_CANT_GET_REATLIME) for a longer discussion and what to do about this.
+A: By default, systemd places all systemd daemons in their own cgroup in the "cpu" hierarchy. Unfortunately, due to a kernel limitation, this has the effect of disallowing RT entirely for the service. See [My Service Can't Get Realtime!](/MY_SERVICE_CANT_GET_REATLIME) for a longer discussion and what to do about this.
 
 **Q: My service is ordered after `network.target` but at boot it is still called before the network is up. What's going on?**
 
-A: That's a long story, and that's why we have a wiki page of its own about this: [Running Services After the Network is up](NETWORK_ONLINE)
+A: That's a long story, and that's why we have a wiki page of its own about this: [Running Services After the Network is up](/NETWORK_ONLINE)
 
 **Q: My systemd system always comes up with `/tmp` as a tiny `tmpfs`. How do I get rid of this?**
 
-A: That's also a long story, please have a look on [API File Systems](API_FILE_SYSTEMS)
+A: That's also a long story, please have a look on [API File Systems](/API_FILE_SYSTEMS)
index aa51286d0ef69b80ddce24557cb6523360edf040..c055e49d43657e5aca27164d863bddb7cfa44b2e 100644 (file)
@@ -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) 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
index 82b64349847133e3bf6e9628ddc4a6c56645c881..de67c703f5a3eebcf7ea5be645b40c7f2600472f 100644 (file)
@@ -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) when submitting patches.
-Also have a look at our [Contribution Guidelines](CONTRIBUTING).
+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.
@@ -155,7 +155,7 @@ Those are not useful when compiling for distribution and can be disabled by sett
 
 ## Sanitizers in mkosi
 
-See [Testing systemd using sanitizers](TESTING_WITH_SANITIZERS) for more information on how to build with sanitizers enabled in mkosi.
+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) on how to report a security vulnerability.
+please follow the guidance in [CONTRIBUTING.md](/CONTRIBUTING) on how to report a security vulnerability.
 
 For more details on building fuzzers and integrating with OSS-Fuzz, visit:
 
index 9977b42e9aabe5f1bd8d8d3b6ad53b090e429639..2efabaeb928d18091ac0d545056a697be7ca47ce 100644 (file)
@@ -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).
+It follows the format defined in [`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.
index 647d6b88005c907035b72d3e0d7dcdf37a39074a..332f1ef3d931cef6bd5190a4177df7ed3898cef8 100644 (file)
@@ -17,7 +17,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](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".
index 64465430ce7c8c65ac1a3c2c8591dbbff631c693..402b6a93b7af32c87cc63b92244d44ea8a501f17 100644 (file)
@@ -26,7 +26,7 @@ Arch Linux initrds.
 
 * It's highly recommended that the initrd also mounts `/usr/` (if split off) as
   appropriate and passes it pre-mounted to the main system, to avoid the
-  problems described in [Booting without /usr is Broken](SEPARATE_USR_IS_BROKEN).
+  problems described in [Booting without /usr is Broken](/SEPARATE_USR_IS_BROKEN).
 
 * If the executable `/run/initramfs/shutdown` exists systemd will use it to
   jump back into the initrd on shutdown. `/run/initramfs/` should be a usable
@@ -39,7 +39,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)
+  [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.
 
@@ -66,4 +66,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).
+  on [systemd and Storage Daemons for the Root File System](/ROOT_STORAGE_DAEMONS).
index 83336784b1c3842962e4831136b321545e558007..0da5252432bae1f6cfd61ef6e4e2cd508994ab5a 100644 (file)
@@ -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)._
+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)._
 
@@ -136,7 +136,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)._
+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)._
 
index 50c3e325048ff7bc87e91bd08f02093d77989c9d..7d3b0396ffdd109a5950c69e1ae93469415ffb5f 100644 (file)
@@ -44,7 +44,7 @@ Due to its stream-based nature it is not indexed.
 _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) instead!
+[Journal Export Format or Journal JSON Format](/JOURNAL_EXPORT_FORMATS) instead!
 This document is primarily for your entertainment and education.
 Thank you!_
 
index 2d132714279ccdfbdaf137aaa74811d944110984..4b2374a053e61f6d60f4a9e4266dbc3f5abccd39 100644 (file)
@@ -16,7 +16,7 @@ The cgroups tree can no longer be considered a shared resource.
 Instead, a management daemon of some kind needs to arbitrate access to it, and it needs to actively propagate changes between the entities it manages.
 More specifically, on systemd systems this management daemon is systemd itself, accessible via a number of bus APIs.
 This means instead of dealing directly with the low-level interfaces of the cgroup file system, please use systemd's high-level APIs as a replacement, see the
-[New Control Group Interfaces](CONTROL_GROUP_INTERFACE)
+[New Control Group Interfaces](/CONTROL_GROUP_INTERFACE)
 for details. They offer similar functionality.**
 
 Are you writing an application interfacing with the cgroups tree?
index 441c77ccfb15247b9ac80ee146509d160b633462..e611c3bf7043c801023f544404f2bd3ea28b68be 100644 (file)
@@ -119,9 +119,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) | 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 |
+| [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 |
@@ -138,15 +138,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) | `/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) | File format | yes | yes | - | maybe | - | no |
+| [Journal File Format](/JOURNAL_FILE_FORMAT) | File format | yes | yes | - | maybe | - | no |
 | [Journal Export Format](JOURNAL_EXPORT_FORMATS#journal-export-format) | File format | yes | yes | - | yes | - | no |
 | [Journal JSON Format](JOURNAL_EXPORT_FORMATS#journal-json-format) | File format | yes | yes | - | yes | - | no |
-| [Cooperation in cgroup tree](PAX_CONTROL_GROUPS) | Treaty | yes | yes | libvirt | yes | libvirt | no |
-| [Password Agents](PASSWORD_AGENTS) | Socket+Files | yes | yes | - | yes | - | no |
+| [Cooperation in cgroup tree](/PAX_CONTROL_GROUPS) | Treaty | yes | yes | libvirt | yes | libvirt | 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 |
index 2dfeae4ec53e244f1912607f5efe4fb543f38ac5..49d33290c96242ff1b91a7f675f78d865edce88d 100644 (file)
@@ -366,7 +366,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) 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?*
index 69812c905591e0b49132857c151a124f2aaeb00b..41fc602772b98a6ade58c0b55be9c72e8f99581e 100644 (file)
@@ -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) 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).
+* Consider having a look at the [initrd Interface of systemd](/INITRD_INTERFACE).
index 71dfd5dee0eaeeb7462a3107bfd200fec10969a8..56129450d17ac6b540ecc37e1ac866a96de09dec 100644 (file)
@@ -86,4 +86,4 @@ The new `/usr` could also easily be shared read-only across several systems.
 Such a setup would be more efficient, can provide additional security, is more flexible to use,
 provides saner options for custom setups, and is much simpler to setup and maintain.
 
-For more information on this please continue to [The Case for the /usr Merge](THE_CASE_FOR_THE_USR_MERGE).
+For more information on this please continue to [The Case for the /usr Merge](/THE_CASE_FOR_THE_USR_MERGE).
index 1f8cbcd6cdf17e180f46d144d99d680bbeb63696..c603e143e4d90a1c9ac992fc3e2a7772afbe1e16 100644 (file)
@@ -104,7 +104,7 @@ _With all vendor-supplied OS resources in a single directory /usr they may be sh
 
 **Myth #10**: The status quo of a split /usr with mounting it without initrd is perfectly well supported right now and works.
 
-**Fact**: A split /usr without involvement of an initrd mounting it before jumping into the root file system [hasn't worked correctly since a long time](SEPARATE_USR_IS_BROKEN).
+**Fact**: A split /usr without involvement of an initrd mounting it before jumping into the root file system [hasn't worked correctly since a long time](/SEPARATE_USR_IS_BROKEN).
 
 **Myth #11**: Instead of merging / into /usr it would make a lot more sense to merge /usr into /.
 
index a63fbb593c052a6c59a348181fc8a41a6f3e9df5..208f44445217f8cbf5a648bef7c7b7e48c7afeed 100644 (file)
@@ -7,7 +7,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
 
 # Tips & Tricks
 
-Also check out the [Frequently Asked Questions](FAQ)!
+Also check out the [Frequently Asked Questions](/FAQ)!
 
 ## Listing running services
 
index 5c6720a0059ea952abd55c783f426fe90034e4e1..b9a9eace5908c13bae13a9da24a67280c07fa168 100644 (file)
@@ -20,10 +20,10 @@ A few areas where that applies are discussed below.
 
 Before reading on, please read up on the basic concepts, specifically:
 
-* [Home Directories](HOME_DIRECTORY)
-* [JSON User Records](USER_RECORD)
-* [JSON Group Records](GROUP_RECORD)
-* [User/Group Record Lookup API via Varlink](USER_GROUP_API)
+* [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
 
@@ -140,7 +140,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).
+[Converting Existing Users to systemd-homed managed Users](/CONVERTING_TO_HOMED).
 
 ## Future Additions
 
index e996527157e8dfc816392add95386398c0a8380d..d0016dbc2da19d1556e1afdf82d86efc021a9aeb 100644 (file)
@@ -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)
-and [JSON Group Records](GROUP_RECORD) 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
index 3b4fb4ae5107b55a6bf8e516495f71a6d0f68bf9..0268cc1230bc1f6acf8d747daea504a799ccabad 100644 (file)
@@ -16,7 +16,7 @@ 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) 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,15 +72,15 @@ 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) 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
-of a user's identity should be stored in the [Blob Directories](USER_RECORD_BLOB_DIRS).
+of a user's identity should be stored in the [Blob Directories](/USER_RECORD_BLOB_DIRS).
 
 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). 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.
@@ -211,7 +211,7 @@ The following fields are currently defined:
 Takes a string with a valid 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)
+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.
@@ -227,10 +227,10 @@ A user record with a realm set is never compatible (for the purpose of updates,
 see above) with a user record without one set, even if the `userName` field matches.
 
 `blobDirectory` → The absolute path to a world-readable copy of the user's blob
-directory. See [Blob Directories](USER_RECORD_BLOB_DIRS) for more details.
+directory. See [Blob Directories](/USER_RECORD_BLOB_DIRS) for more details.
 
 `blobManifest` → An object, which maps valid blob directory filenames (see
-[Blob Directories](USER_RECORD_BLOB_DIRS) for requirements) to SHA256 hashes
+[Blob Directories](/USER_RECORD_BLOB_DIRS) for requirements) to SHA256 hashes
 formatted as hex strings. This exists for the purpose of including the contents
 of the blob directory in the record's signature. Managers that support blob
 directories and utilize signed user records (like `systemd-homed`) should use
index fd030e796615fc64294cbd96012806dd9e330f40..efbc5cdde2b59aa5ad7abbecd6d3919c53926f2c 100644 (file)
@@ -8,7 +8,7 @@ SPDX-License-Identifier: LGPL-2.1-or-later
 # User Record Blob Directories
 
 The blob directories are for storing binary or unstructured data that would
-otherwise be stored in [JSON User Records](USER_RECORD). For instance,
+otherwise be stored in [JSON User Records](/USER_RECORD). For instance,
 this includes image files such as the user's avatar picture. This data,
 like most of the user record, will be made publicly available to the
 system.
index 958eebf97a854bd4eed9f5b691d6c077bc74aa5c..774308df78231d5020d95444f3e1f5d037d0f27f 100644 (file)
@@ -12,7 +12,7 @@ _Or: how to hook up your favorite desktop environment with logind_
 systemd's logind service obsoletes ConsoleKit which was previously widely used on Linux distributions.
 This provides a number of new features, but also requires updating of the Desktop Environment running on it, in a few ways.
 
-This document should be read together with [Writing Display Managers](WRITING_DISPLAY_MANAGERS) which focuses on the porting work necessary for display managers.
+This document should be read together with [Writing Display Managers](/WRITING_DISPLAY_MANAGERS) which focuses on the porting work necessary for display managers.
 
 If required it is possible to implement ConsoleKit and systemd-logind support in the same desktop environment code, detecting at runtime which interface is needed.
 The [sd_booted()](http://www.freedesktop.org/software/systemd/man/sd_booted.html) call may be used to determine at runtime whether systemd is used.
@@ -37,11 +37,11 @@ Here are the suggested changes:
 - If your session manager handles the special power, suspend, hibernate hardware keys or the laptop lid switch on its own it is welcome to do so,
   but needs to disable logind's built-in handling of these events.
   Take one or more of the _handle-power-key_, _handle-suspend-key_, _handle-hibernate-key_, _handle-lid-switch_ inhibitor locks for that.
-  See [Inhibitor Locks](INHIBITOR_LOCKS) for further details on this.
+  See [Inhibitor Locks](/INHIBITOR_LOCKS) for further details on this.
 - Before rebooting/powering-off/suspending/hibernating and when the operation is triggered by the user by clicking on some UI elements
   (or suchlike) it is recommended to show the list of currently active inhibitors for the operation, and ask the user to acknowledge the operation.
   Note that PK often allows the user to execute the operation ignoring the inhibitors.
-  Use logind's ListInhibitors() call to get a list of these inhibitors. See [Inhibitor Locks](INHIBITOR_LOCKS) for further details on this.
+  Use logind's ListInhibitors() call to get a list of these inhibitors. See [Inhibitor Locks](/INHIBITOR_LOCKS) for further details on this.
 - If your DE contains a process viewer of some kind ("system monitor") it's a good idea to show session, service and seat information for each process.
   Use sd_pid_get_session(), sd_pid_get_unit(), sd_session_get_seat() to determine these.
   For details see [sd-login(7)](http://www.freedesktop.org/software/systemd/man/sd-login.html).
index 7912cfd39cb24a5142471f44b185b113f31ae8d0..467e8a886a88a225a815aad84a9ae898fd13427a 100644 (file)
@@ -13,7 +13,7 @@ systemd's logind service obsoletes ConsoleKit which was previously widely used o
 For X11 display managers the switch to logind requires a minimal amount of porting, however brings a couple of new features:
 true automatic multi-seat support, proper tracking of session processes, (optional) automatic killing of user processes on logout, a synchronous low-level C API and much simplification.
 
-This document should be read together with [Writing Desktop Environments](WRITING_DESKTOP_ENVIRONMENTS) which focuses on the porting work necessary for desktop environments.
+This document should be read together with [Writing Desktop Environments](/WRITING_DESKTOP_ENVIRONMENTS) which focuses on the porting work necessary for desktop environments.
 
 If required it is possible to implement ConsoleKit and systemd-logind support in the same display manager, detecting at runtime which interface is needed.
 The [sd_booted()](http://www.freedesktop.org/software/systemd/man/sd_booted.html) call may be used to determine at runtime whether systemd is used.
index 86ef0c3f13f53293b9e392a6357f6a06bfa78d2a..724d3d6dafb94437913da1ec14908c33a523e6d2 100644 (file)
@@ -32,7 +32,7 @@ For more details on the APIs provided by machine consult [the bus API interface
 
 ## Guest OS Integration
 
-As container virtualization is much less comprehensive, and the guest is less isolated from the host, there are a number of interfaces defined how the container manager can set up the environment for systemd running inside a container. These Interfaces are documented in [Container Interface of systemd](CONTAINER_INTERFACE).
+As container virtualization is much less comprehensive, and the guest is less isolated from the host, there are a number of interfaces defined how the container manager can set up the environment for systemd running inside a container. These Interfaces are documented in [Container Interface of systemd](/CONTAINER_INTERFACE).
 
 VM virtualization is more comprehensive and fewer integration APIs are available.
 In fact there's only one: a VM manager may initialize the SMBIOS DMI field "Product UUUID" to a UUID uniquely identifying this virtual machine instance.