]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
add LICENSES/README.md explaining the license situation
authorLuca Boccassi <luca.boccassi@microsoft.com>
Wed, 29 Sep 2021 17:42:57 +0000 (18:42 +0100)
committerLuca Boccassi <luca.boccassi@microsoft.com>
Fri, 1 Oct 2021 16:27:34 +0000 (17:27 +0100)
LICENSES/README.md [new file with mode: 0644]
README
docs/CONTRIBUTING.md

diff --git a/LICENSES/README.md b/LICENSES/README.md
new file mode 100644 (file)
index 0000000..bbe05a0
--- /dev/null
@@ -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 11487420f7ce22589d66b5119db8ec2b28ed75b1..6a151a49e9e97bb69068b90366a3a00e680b3351 100644 (file)
--- 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
index 9c0f08cfc60d769329003a89687a4e31cfaf3568..c4d3df85bead45768a2bdcd3cb3ba9c7a463cf8f 100644 (file)
@@ -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