From 7fe57498de875396d989813fc2068442cf2c24ab Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Wed, 29 Sep 2021 18:42:57 +0100 Subject: [PATCH] add LICENSES/README.md explaining the license situation --- LICENSES/README.md | 61 ++++++++++++++++++++++++++++++++++++++++++++ README | 7 +---- docs/CONTRIBUTING.md | 2 +- 3 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 LICENSES/README.md 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