summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSES/README.md61
-rw-r--r--README7
-rw-r--r--docs/CONTRIBUTING.md2
3 files changed, 63 insertions, 7 deletions
diff --git a/LICENSES/README.md b/LICENSES/README.md
new file mode 100644
index 0000000000..bbe05a06f2
--- /dev/null
+++ b/LICENSES/README.md
@@ -0,0 +1,61 @@
+# systemd Project Licensing
+
+## Main License
+
+The systemd project uses single-line references to Unique Licese Identifiers as
+defined by the Linux Foundation's SPDX project (https://spdx.org/). The line in
+each individual source file identifies the license applicable to that file.
+
+The current set of valid, predefined SPDX identifiers can be found on the SPDX
+License List at https://spdx.org/licenses/.
+
+The 'LICENSES/' directory contains all the licenses used by the sources included in
+the systemd project source tree.
+
+Unless otherwise noted, the systemd project sources are licensed under the terms
+and conditions of the **GNU Lesser General Public License v2.1 or later**.
+
+New sources that cannot be distributed under LGPL-2.1-or-later will no longer
+be accepted for inclusion in the systemd project to maintain license uniformity.
+
+## Other Licenses
+
+The following exceptions apply:
+
+ * some udev sources under src/udev/ are licensed under **GPL-2.0-or-later**, so the
+ udev binaries as a whole are also distributed under **GPL-2.0-or-later**.
+ * the header files contained in src/basic/linux/ and src/shared/linux/ are copied
+ verbatim from the Linux kernel source tree and are licensed under **GPL-2.0 WITH
+ Linux-syscall-note** and are used within the scope of the Linux-syscall-note
+ exception provisions
+ * the src/shared/initreq.h header is licensed under original license,
+ **LGPL-2.0-or-later**.
+ * the src/shared/linux/bpf_insn.h header is copied from the Linux kernel
+ source tree and is licensed under either **BSD-2-Clause** or **GPL-2.0-only**,
+ and thus is included in the systemd build under the BSD-2-Clause license.
+ * The src/basic/linux/wireguard.h header is copied from the Linux kernel
+ source tree and is licensed under either **MIT** or **GPL-2.0 WITH Linux-syscall-note**,
+ and thus is included in the systemd build under the MIT license.
+ * the following sources are licensed under the **MIT** license (in case of our
+ scripts, to facilitate copying and reuse of those helpers to other projects):
+ - hwdb.d/parse_hwdb.py
+ - man/glib-event-glue.c
+ - src/basic/linux/batman_adv.h
+ - src/basic/sparse-endian.h
+ - tools/catalog-report.py
+ * the following sources are licensed under the **CC0-1.0** license:
+ - src/basic/siphash24.c
+ - src/basic/siphash24.h
+ - src/systemctl/systemd-sysv-install.SKELETON
+ - tools/check-includes.pl
+ - all examples, code and scripts, under man/ except where otherwise noted
+ * the following sources are under **Public Domain** (LicenseRef-murmurhash2-public-domain):
+ - src/basic/MurmurHash2.c
+ - src/basic/MurmurHash2.h
+ * the following sources are under **Public Domain** (LicenseRef-lookup3-public-domain):
+ - src/libsystemd/sd-journal/lookup3.c
+ - src/libsystemd/sd-journal/lookup3.h
+ * the tools/chromiumos/gen_autosuspend_rules.py script is licensed under the
+ **BSD-3-Clause** license.
+ * any files under test/ without an explicit license we assume non-copyrightable
+ (eg: computer-generated fuzzer data)
diff --git a/README b/README
index 11487420f7..6a151a49e9 100644
--- a/README
+++ b/README
@@ -25,12 +25,7 @@ AUTHOR:
...and many others
LICENSE:
- LGPLv2.1+ for all code
- - except src/basic/MurmurHash2.c which is Public Domain
- - except src/basic/siphash24.c which is CC0 Public Domain
- - except src/journal/lookup3.c which is Public Domain
- - except src/udev/* which is (currently still) GPLv2, GPLv2+
- - except tools/chromiumos/* which is BSD-style
+ LGPL-2.1-or-later for all code, exceptions noted in LICENSES/README.md
REQUIREMENTS:
Linux kernel >= 3.13
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 9c0f08cfc6..c4d3df85be 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -37,7 +37,7 @@ See [reporting of security vulnerabilities](SECURITY.md).
* 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 about the new version (no notification is sent just for the commits, so it's easy to miss the update without an explicit comment). If you are a member of the systemd project on GitHub, remove the `reviewed/needs-rework` label.
-* If you are copying existing code from another source (eg: a compat header), please make sure the license is compatible with GPL-2.0-or-later.
+* If you are copying existing code from another source (eg: a compat header), please make sure the license is compatible with LGPL-2.1-or-later. If the license is not LGPL-2.1-or-later, please add a note to LICENSES/README.md.
## Final Words