summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/CODING_STYLE.md17
1 files changed, 10 insertions, 7 deletions
diff --git a/docs/CODING_STYLE.md b/docs/CODING_STYLE.md
index b8337fd097..abcdaab4ac 100644
--- a/docs/CODING_STYLE.md
+++ b/docs/CODING_STYLE.md
@@ -431,12 +431,13 @@
want to call it "big endian" right-away.
- You might wonder what kind of common code belongs in `src/shared/` and what
- belongs in `src/basic/`. The split is like this: anything that uses public APIs
- we expose (i.e. any of the sd-bus, sd-login, sd-id128, ... APIs) must be
- located in `src/shared/`. All stuff that only uses external libraries from
- other projects (such as glibc's APIs), or APIs from `src/basic/` itself should
- be placed in `src/basic/`. Conversely, `src/libsystemd/` may only use symbols
- from `src/basic`, but not from `src/shared/`.
+ belongs in `src/basic/`. The split is like this: anything that is used to
+ implement the public shared object we provide (sd-bus, sd-login, sd-id128,
+ nss-systemd, nss-mymachines, nss-resolve, nss-myhostname, pam_systemd), must
+ be located in `src/basic` (those objects are not allowed to link to
+ libsystemd-shared.so). Conversly, anything which is shared between multiple
+ components and does not need to be in `src/basic/`, should be in
+ `src/shared/`.
To summarize:
@@ -449,7 +450,9 @@
- may not use any code outside of `src/basic/`, `src/libsystemd/`
`src/shared/`
- - may be used by all code in the tree, except for code in `src/basic/`, `src/libsystemd/`
+ - may be used by all code in the tree, except for code in `src/basic/`,
+ `src/libsystemd/`, `src/nss-*`, `src/login/pam_systemd.*`, and files under
+ `src/journal/` that end up in `libjournal-client.a` convenience library.
- may not use any code outside of `src/basic/`, `src/libsystemd/`, `src/shared/`
- Our focus is on the GNU libc (glibc), not any other libcs. If other libcs are