From patchwork Tue Apr 16 21:21:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 789506 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2DB0D6BFC5 for ; Tue, 16 Apr 2024 21:21:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713302516; cv=none; b=STsUf40SLP6r9HXcFffRkEuGx6ds1k1ngTDiroYtv95Oq68Bgyl3TIBC0piBCBQDKT6QHeX1hYxvbQSKa4ZOixwvZkKiKOc5fGsb4bkzEZ8GNO6gS6ETJiRJSoXOojPAz+bia0YDapvKCPDDwwb+C8X1Wt4LTw4u8tlDQ6KSBrY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713302516; c=relaxed/simple; bh=xAZXmbVMBIeWGSejCu9C34y332qKCpXkonR1l7E7ILQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nYRxt3AnLKJLKd8YspdBdx05P4hArZCtn91aghAjj/MTv9eBw9t5HMyfiLCbMYZQGpuXNQj0+weG3uUvlN8chCOKcffvgOhGHpN6ByzKuZlPEqCMBtgLg1Dqy1Yg/d2CTp8N/Ou6UpLivBf3qHHpDE8MGPiXw/Ja5tNzNvyp6mA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=ZFOFPvgb; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="ZFOFPvgb" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-6eaf9565e6bso3078754b3a.2 for ; Tue, 16 Apr 2024 14:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1713302513; x=1713907313; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6FnuhnDWblzClbGnwvxyifqVnsb8dfnqb6lPMjZf7AY=; b=ZFOFPvgbgCTUpwuaN/xUc/clYaGjgtnQy0Q4tzVbSu1qe4PmVc2GyE8aI49+IihmMK s2yceKFAKKvAZgW84LzHxsaKztXsbei0IlZ6UaT9/FaeWejENG7ilYwMHvfIPR7lALuA JDh0vv7djzFsknu6sogF+SnmnwpokKCbaGSXzAI7vlSWlEX9OJrcvNY5dWhqsOCNLcGO k6Jq4H4SGbXkG/RZC+ftLTM4Lf30iSxhhIVBniiBYsSwIlgxTnK4DDh3/VJoB8jSsLG2 9r68WYVL/VLaQNd6MRWyjZPW2phviu0E0zoSOQwk0HeJAILakgUT9Zjp97OqmFYR86Ra ubBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713302513; x=1713907313; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6FnuhnDWblzClbGnwvxyifqVnsb8dfnqb6lPMjZf7AY=; b=Xz0iekCBZLnBL3X1MazB5KLg8t5rkrYGkpXd70+MfllDyQaPoEpyW4f2ny8SjyFd13 kzzCmocKGZr7Amao6w2Hi0HC0jkwvfmB5hgy3WCdfHw6CPiXK+5utwbOhkkIWRIphOY5 p+4EnN1E+pxbl7O3zQFPCJtYB3Zeg1qgZl8issd2o741yfC5CxGafeJrQOLLNjGwV40P 57uMg3szOOgUV1wLAY1JZ3SnEPpaxEBJ/GdLZrI9FeEzpIJASdC+icxJGQ68KTxEcCBy 19AqqCreSi/GzcTD+vqse32EDaEsrA1BrK3mgIroBg1Z5xrtp1JxLZmAO3SV/j9B/QDI upXQ== X-Gm-Message-State: AOJu0YzIA7zzU6H/bEH3J3u8rhMyEnMiYL7CbP8TiLxDjNLYWcJycIsV g41fi55YrtLOwCaiVQYpcyOtMjv3wrbeHU5kSYFaINg4HMAfm5D4NM5svzR+Reo= X-Google-Smtp-Source: AGHT+IEP5S1WPPx7pKp5LQBezOw5CsexrFcdjvA23YCraUgYG85wZJil1HmLMNmlEf2CiVDi6M7/Cw== X-Received: by 2002:a05:6a20:6d20:b0:1a7:c1a0:d33b with SMTP id fv32-20020a056a206d2000b001a7c1a0d33bmr11431862pzb.39.1713302513215; Tue, 16 Apr 2024 14:21:53 -0700 (PDT) Received: from brgl-uxlite.. ([24.75.208.145]) by smtp.gmail.com with ESMTPSA id c19-20020aa78813000000b006e6b3c4e70bsm9792840pfo.171.2024.04.16.14.21.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Apr 2024 14:21:52 -0700 (PDT) From: Bartosz Golaszewski To: Kent Gibson , Linus Walleij , Kevin Hilman , Grant Likely Cc: linux-gpio@vger.kernel.org, Bartosz Golaszewski , Walter Lozano Subject: [libgpiod][PATCH 1/2] licensing: relicense C++ bindings under LGPL-2.1-or-later Date: Tue, 16 Apr 2024 23:21:40 +0200 Message-Id: <20240416212141.6683-2-brgl@bgdev.pl> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240416212141.6683-1-brgl@bgdev.pl> References: <20240416212141.6683-1-brgl@bgdev.pl> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Bartosz Golaszewski Commit ea84f882d5d3 ("licensing: relicense C++ library code under LGPL-3.0-or-later") changed the license of C++ bindings in order to solve potential issues with code generated from templates[1], default implementations, etc. However this change makes the bindings less attractive to projects that have strict licensing restrictions and avoid GPL-3.0 code[2]. After talking to Grant Likely I decided that the best approach is to make the bindings available under LGPL-v2.1-or-later and simply let the end user decide which version's text to apply. While at it: tweak the README to also mention that examples are provided under GPL-2.0-or-later. Link: [1] https://www.spinics.net/lists/linux-gpio/msg46605.html Link: [2] https://github.com/brgl/libgpiod/issues/72 Suggested-by: Walter Lozano Suggested-by: Grant Likely Signed-off-by: Bartosz Golaszewski Acked-by: Kent Gibson --- COPYING | 11 +- LICENSES/LGPL-3.0-or-later.txt | 165 -------------------- bindings/cxx/chip-info.cpp | 2 +- bindings/cxx/chip.cpp | 2 +- bindings/cxx/edge-event-buffer.cpp | 2 +- bindings/cxx/edge-event.cpp | 2 +- bindings/cxx/exception.cpp | 2 +- bindings/cxx/gpiod.hpp | 2 +- bindings/cxx/gpiodcxx/chip-info.hpp | 2 +- bindings/cxx/gpiodcxx/chip.hpp | 2 +- bindings/cxx/gpiodcxx/edge-event-buffer.hpp | 2 +- bindings/cxx/gpiodcxx/edge-event.hpp | 2 +- bindings/cxx/gpiodcxx/exception.hpp | 2 +- bindings/cxx/gpiodcxx/info-event.hpp | 2 +- bindings/cxx/gpiodcxx/line-config.hpp | 2 +- bindings/cxx/gpiodcxx/line-info.hpp | 2 +- bindings/cxx/gpiodcxx/line-request.hpp | 2 +- bindings/cxx/gpiodcxx/line-settings.hpp | 2 +- bindings/cxx/gpiodcxx/line.hpp | 2 +- bindings/cxx/gpiodcxx/misc.hpp | 2 +- bindings/cxx/gpiodcxx/request-builder.hpp | 2 +- bindings/cxx/gpiodcxx/request-config.hpp | 2 +- bindings/cxx/gpiodcxx/timestamp.hpp | 2 +- bindings/cxx/info-event.cpp | 2 +- bindings/cxx/internal.cpp | 2 +- bindings/cxx/internal.hpp | 2 +- bindings/cxx/line-config.cpp | 2 +- bindings/cxx/line-info.cpp | 2 +- bindings/cxx/line-request.cpp | 2 +- bindings/cxx/line-settings.cpp | 2 +- bindings/cxx/line.cpp | 2 +- bindings/cxx/misc.cpp | 2 +- bindings/cxx/request-builder.cpp | 2 +- bindings/cxx/request-config.cpp | 2 +- bindings/cxx/tests/gpiosim.cpp | 2 +- bindings/cxx/tests/gpiosim.hpp | 2 +- bindings/cxx/tests/helpers.cpp | 2 +- bindings/cxx/tests/helpers.hpp | 2 +- 38 files changed, 37 insertions(+), 211 deletions(-) delete mode 100644 LICENSES/LGPL-3.0-or-later.txt diff --git a/COPYING b/COPYING index 87a9de5..84b4fc6 100644 --- a/COPYING +++ b/COPYING @@ -7,7 +7,7 @@ or any later version according with: LICENSES/LGPL-2.1-or-later.txt -gpio-tools and test suites are provided under: +gpio-tools, test suites and examples are provided under: SPDX-License-Identifier: GPL-2.0-or-later @@ -16,15 +16,6 @@ later version according with: LICENSES/GPL-2.0-or-later.txt -C++ bindings to libgpiod are provided under: - - SPDX-License-Identifier: LGPL-3.0-or-later - -Being under the terms of the GNU Lesser General Public License version 3.0 -or any later version according with: - - LICENSES/LGPL-3.0-or-later.txt - The Linux Kernel uAPI headers are provided under: SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note diff --git a/LICENSES/LGPL-3.0-or-later.txt b/LICENSES/LGPL-3.0-or-later.txt deleted file mode 100644 index 0a04128..0000000 --- a/LICENSES/LGPL-3.0-or-later.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/bindings/cxx/chip-info.cpp b/bindings/cxx/chip-info.cpp index c4f0ab5..93dd6f5 100644 --- a/bindings/cxx/chip-info.cpp +++ b/bindings/cxx/chip-info.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/chip.cpp b/bindings/cxx/chip.cpp index d6a3a43..8086839 100644 --- a/bindings/cxx/chip.cpp +++ b/bindings/cxx/chip.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/edge-event-buffer.cpp b/bindings/cxx/edge-event-buffer.cpp index c7347a2..0d5cb36 100644 --- a/bindings/cxx/edge-event-buffer.cpp +++ b/bindings/cxx/edge-event-buffer.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/edge-event.cpp b/bindings/cxx/edge-event.cpp index 5ff3af2..9ef311c 100644 --- a/bindings/cxx/edge-event.cpp +++ b/bindings/cxx/edge-event.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/exception.cpp b/bindings/cxx/exception.cpp index 6957e78..378b249 100644 --- a/bindings/cxx/exception.cpp +++ b/bindings/cxx/exception.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include "internal.hpp" diff --git a/bindings/cxx/gpiod.hpp b/bindings/cxx/gpiod.hpp index b090af4..91e41a5 100644 --- a/bindings/cxx/gpiod.hpp +++ b/bindings/cxx/gpiod.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/chip-info.hpp b/bindings/cxx/gpiodcxx/chip-info.hpp index b6bd0f8..e740e94 100644 --- a/bindings/cxx/gpiodcxx/chip-info.hpp +++ b/bindings/cxx/gpiodcxx/chip-info.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/chip.hpp b/bindings/cxx/gpiodcxx/chip.hpp index 297db3d..4d67476 100644 --- a/bindings/cxx/gpiodcxx/chip.hpp +++ b/bindings/cxx/gpiodcxx/chip.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/edge-event-buffer.hpp b/bindings/cxx/gpiodcxx/edge-event-buffer.hpp index 025517f..2482e8a 100644 --- a/bindings/cxx/gpiodcxx/edge-event-buffer.hpp +++ b/bindings/cxx/gpiodcxx/edge-event-buffer.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/edge-event.hpp b/bindings/cxx/gpiodcxx/edge-event.hpp index 4fde561..47c256a 100644 --- a/bindings/cxx/gpiodcxx/edge-event.hpp +++ b/bindings/cxx/gpiodcxx/edge-event.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/exception.hpp b/bindings/cxx/gpiodcxx/exception.hpp index e89b384..34737d2 100644 --- a/bindings/cxx/gpiodcxx/exception.hpp +++ b/bindings/cxx/gpiodcxx/exception.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/info-event.hpp b/bindings/cxx/gpiodcxx/info-event.hpp index e99cbc4..69b88b6 100644 --- a/bindings/cxx/gpiodcxx/info-event.hpp +++ b/bindings/cxx/gpiodcxx/info-event.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/line-config.hpp b/bindings/cxx/gpiodcxx/line-config.hpp index 8a3335c..58c9d87 100644 --- a/bindings/cxx/gpiodcxx/line-config.hpp +++ b/bindings/cxx/gpiodcxx/line-config.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/line-info.hpp b/bindings/cxx/gpiodcxx/line-info.hpp index 26d25a9..8b10dc4 100644 --- a/bindings/cxx/gpiodcxx/line-info.hpp +++ b/bindings/cxx/gpiodcxx/line-info.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/line-request.hpp b/bindings/cxx/gpiodcxx/line-request.hpp index dfe3e0f..fcc4e0e 100644 --- a/bindings/cxx/gpiodcxx/line-request.hpp +++ b/bindings/cxx/gpiodcxx/line-request.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/line-settings.hpp b/bindings/cxx/gpiodcxx/line-settings.hpp index bacf359..1004ccd 100644 --- a/bindings/cxx/gpiodcxx/line-settings.hpp +++ b/bindings/cxx/gpiodcxx/line-settings.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/line.hpp b/bindings/cxx/gpiodcxx/line.hpp index 5d0752a..2810571 100644 --- a/bindings/cxx/gpiodcxx/line.hpp +++ b/bindings/cxx/gpiodcxx/line.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/misc.hpp b/bindings/cxx/gpiodcxx/misc.hpp index 1e41e9b..eab8eba 100644 --- a/bindings/cxx/gpiodcxx/misc.hpp +++ b/bindings/cxx/gpiodcxx/misc.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/request-builder.hpp b/bindings/cxx/gpiodcxx/request-builder.hpp index 90cc8f0..192bd91 100644 --- a/bindings/cxx/gpiodcxx/request-builder.hpp +++ b/bindings/cxx/gpiodcxx/request-builder.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/request-config.hpp b/bindings/cxx/gpiodcxx/request-config.hpp index b099eb1..6ebbf99 100644 --- a/bindings/cxx/gpiodcxx/request-config.hpp +++ b/bindings/cxx/gpiodcxx/request-config.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/gpiodcxx/timestamp.hpp b/bindings/cxx/gpiodcxx/timestamp.hpp index 7143ab3..fcb4d8d 100644 --- a/bindings/cxx/gpiodcxx/timestamp.hpp +++ b/bindings/cxx/gpiodcxx/timestamp.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2022 Bartosz Golaszewski */ /** diff --git a/bindings/cxx/info-event.cpp b/bindings/cxx/info-event.cpp index 0b19ee9..1f6d0d7 100644 --- a/bindings/cxx/info-event.cpp +++ b/bindings/cxx/info-event.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/internal.cpp b/bindings/cxx/internal.cpp index 9f1f38f..237d5d5 100644 --- a/bindings/cxx/internal.cpp +++ b/bindings/cxx/internal.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/internal.hpp b/bindings/cxx/internal.hpp index db78af6..b64daf1 100644 --- a/bindings/cxx/internal.hpp +++ b/bindings/cxx/internal.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ #ifndef __LIBGPIOD_CXX_INTERNAL_HPP__ diff --git a/bindings/cxx/line-config.cpp b/bindings/cxx/line-config.cpp index 1179e0a..7e3dc8c 100644 --- a/bindings/cxx/line-config.cpp +++ b/bindings/cxx/line-config.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/line-info.cpp b/bindings/cxx/line-info.cpp index 9931ed0..2117f68 100644 --- a/bindings/cxx/line-info.cpp +++ b/bindings/cxx/line-info.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/line-request.cpp b/bindings/cxx/line-request.cpp index e8e0b96..f6b0a66 100644 --- a/bindings/cxx/line-request.cpp +++ b/bindings/cxx/line-request.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/line-settings.cpp b/bindings/cxx/line-settings.cpp index 30d7899..300858a 100644 --- a/bindings/cxx/line-settings.cpp +++ b/bindings/cxx/line-settings.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/line.cpp b/bindings/cxx/line.cpp index d99e8fa..d6a92c1 100644 --- a/bindings/cxx/line.cpp +++ b/bindings/cxx/line.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/misc.cpp b/bindings/cxx/misc.cpp index dde48e0..eba0b46 100644 --- a/bindings/cxx/misc.cpp +++ b/bindings/cxx/misc.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include "internal.hpp" diff --git a/bindings/cxx/request-builder.cpp b/bindings/cxx/request-builder.cpp index d11e47b..87ee2fe 100644 --- a/bindings/cxx/request-builder.cpp +++ b/bindings/cxx/request-builder.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2022 Bartosz Golaszewski #include diff --git a/bindings/cxx/request-config.cpp b/bindings/cxx/request-config.cpp index e578b15..b44b8b6 100644 --- a/bindings/cxx/request-config.cpp +++ b/bindings/cxx/request-config.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021 Bartosz Golaszewski #include diff --git a/bindings/cxx/tests/gpiosim.cpp b/bindings/cxx/tests/gpiosim.cpp index 7267e6d..4bda5a2 100644 --- a/bindings/cxx/tests/gpiosim.cpp +++ b/bindings/cxx/tests/gpiosim.cpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2022 Bartosz Golaszewski */ #include diff --git a/bindings/cxx/tests/gpiosim.hpp b/bindings/cxx/tests/gpiosim.hpp index 320ae96..8151af6 100644 --- a/bindings/cxx/tests/gpiosim.hpp +++ b/bindings/cxx/tests/gpiosim.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2022 Bartosz Golaszewski */ #ifndef __GPIOD_CXX_GPIOSIM_HPP__ diff --git a/bindings/cxx/tests/helpers.cpp b/bindings/cxx/tests/helpers.cpp index 6534fdb..eb2c3db 100644 --- a/bindings/cxx/tests/helpers.cpp +++ b/bindings/cxx/tests/helpers.cpp @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: LGPL-3.0-or-later +// SPDX-License-Identifier: LGPL-2.1-or-later // SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski #include "helpers.hpp" diff --git a/bindings/cxx/tests/helpers.hpp b/bindings/cxx/tests/helpers.hpp index 157d221..62d9827 100644 --- a/bindings/cxx/tests/helpers.hpp +++ b/bindings/cxx/tests/helpers.hpp @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski */ #ifndef __GPIOD_CXX_TEST_HELPERS_HPP__ From patchwork Tue Apr 16 21:21:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 790352 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFBE06EB4B for ; Tue, 16 Apr 2024 21:21:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713302516; cv=none; b=X905qxGwp+kpcoRoKRf2eBDj4Oy8nSwP37TmeBeSxOYnbOw5ujpnOWNunON4cnV9AqiYncRH0HdDJEc8Qrk85Q+ZQGGO2sZ8z7sA5joRGaO/R8sB23rtJAtpxswqWAAKHCdL4WL8Bo9GEKYygFcWSNSs5WNZ0phAxgbal2Jdd+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713302516; c=relaxed/simple; bh=ogo6wVhlo9Cw7QEj66KZ0dUW+xuSZ/FeZsU99GRdCw4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=E5xalWf/g2BLGmipKEOHy7OgHwORantZGYE2h4yoMOvufQZrGjthAs2hfSuinEUZXrJQQxyUQYru8WS8wJBDRTW36WUDABhNaKEanKiiqhu8mtgvrbs350dhl8DXWYsypfLOQqk5a7Z5OfQdlJBDAoXshLvzweegZsF+qjvYf7M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=hbXEizj0; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="hbXEizj0" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-6ed267f2936so3899553b3a.3 for ; Tue, 16 Apr 2024 14:21:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1713302514; x=1713907314; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9AegF1Pguh+130A0C7jC8SfQQKeiXn5tzZ820ncx6Uo=; b=hbXEizj07Xlom88v/9zeUd4PZy2wbqvO2rVo12hfXc2MAxUZIXZoFGhhgjprobsYQL TzEO+ytyT0wBOuBTxg5j1JYH6Wa3wCOLK4SnJf1Js+6ctyTKT+bt40Gvil8s3E+lIIvA qJvVFk7e3wWpz07gVkoOkBNNSmHxjyQgEW4DpNOljpc6C3hW43RqQ2++bDVQuOU6FjgX 5Mw47/l4NXItA3uSfIfDyRh0BOPjHID/nLWySET0RagufwwXqLvBgpzt5H12FQ4heqsX KSqr6CqIJb/6DSqm9DUI4OZa82lLxnm7wDSGvmQMjBXPIk4CEZVKwCp2dKaqpqVPoFQn o6BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713302514; x=1713907314; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9AegF1Pguh+130A0C7jC8SfQQKeiXn5tzZ820ncx6Uo=; b=bv1FH5JnnLNbLRz/34oJv3XsGvBt2cGlbHEmnA1gcB+a+cBgjVBPDC06jdoEz/ov+C b08QgHxguIMRYhovsRfq0kvifcCdsD4137vca05mw8Ctvi7CEq3I+47SR8UpZ9nP9iAu QJugRiCGV7RWtW9uXmb0Cv159D4yCPTRX73UIQeqL6qEfFYSw7HVMiciUQ0zXkLDxpvy YuqcH328Ez/zCt1bU/W+3xjiIjkrcB+Tt8XXE9RpuEN/Vcd9GbxAlzfWvw8C/Ps6gaHU 7l8BngrqkKRRlOp1b+fpYze5zNkXK5OC/ssMsRpJl/iSwszpGfxOSJay2Q78qvdCuLo4 20xQ== X-Gm-Message-State: AOJu0YzmNbpK3SLpuSg/zhtUPYF/PV4LddQIOjh0wVcOfrmqITiERZcN zYpEZmEZIo8JQ1BYXW1oxSa6EQkxPmpG0JtKMZAzjwXTCzG0ZBez9jdquEpdrciV9VrKmh2PmHD /7W4= X-Google-Smtp-Source: AGHT+IFX66m3YVGFXZKWPm0L7cfQGFYFibAudxGSyR27RIUSrV9GPvRnhwjuuoLPBfscha3XaKwBpA== X-Received: by 2002:a05:6a21:3a81:b0:1aa:4d10:db46 with SMTP id zv1-20020a056a213a8100b001aa4d10db46mr3455036pzb.36.1713302513997; Tue, 16 Apr 2024 14:21:53 -0700 (PDT) Received: from brgl-uxlite.. ([24.75.208.145]) by smtp.gmail.com with ESMTPSA id c19-20020aa78813000000b006e6b3c4e70bsm9792840pfo.171.2024.04.16.14.21.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Apr 2024 14:21:53 -0700 (PDT) From: Bartosz Golaszewski To: Kent Gibson , Linus Walleij , Kevin Hilman , Grant Likely Cc: linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [libgpiod][PATCH 2/2] doc: add a file explaining the contribution process in detail Date: Tue, 16 Apr 2024 23:21:41 +0200 Message-Id: <20240416212141.6683-3-brgl@bgdev.pl> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240416212141.6683-1-brgl@bgdev.pl> References: <20240416212141.6683-1-brgl@bgdev.pl> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Bartosz Golaszewski Add a separate document explaining the contribution process for libgpiod with emphasis on the Developer's Certificate of Origin. I based the text of this document on the one written by Grant Likely[1] and adjusted it for libgpiod. [1] https://github.com/glikely/obs-ptz/blob/main/CONTRIBUTING.md Suggested-by: Grant Likely Signed-off-by: Bartosz Golaszewski --- CONTRIBUTING.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++ README | 2 ++ 2 files changed, 90 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..79b3d80 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,88 @@ +Contributing +============ + +Master copy of this project is hosted at kernel.org: +https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ + +Anyone may contribute to this project. Contributions are licensed under GPLv2 +for programs and LGPLv2.1 for libraries and must be made with a Developer +Certificate of Origin [DCO] "Signed-off-by:" attestation as described below, +indicating that you wrote the code and have the right to pass it on as an open +source patch under the GPLv2 license. Patches that are not signed off will not +be accepted. + +Send patches using `git send-email` to the linux-gpio mailing list[2] by +e-mailing to linux-gpio@vger.kernel.org (add the [libgpiod] prefix to the +e-mail subject line). Note that the mailing list quietly drops HTML formatted +e-mail, so be sure to send plain text[3]. + +Also, please write good git commit messages. A good commit message looks like +this: + +``` +section: explain the commit in one line (use the imperative) + +Body of commit message is a few lines of text, explaining things +in more detail, possibly giving some background about the issue +being fixed, etc etc. + +The body of the commit message can be several paragraphs, and +please do proper word-wrap and keep columns shorter than about +74 characters or so. That way "git log" will show things +nicely even when it's indented. + +Make sure you explain your solution and why you're doing what you're +doing, as opposed to describing what you're doing. Reviewers and your +future self can read the patch, but might not understand why a +particular solution was implemented. + +Reported-by: whoever-reported-it +Signed-off-by: Your Name +``` + +Where that header line really should be meaningful, and really should be just +one line. That header line is what is shown by tools like gitk and shortlog, +and should summarize the change in one readable line of text, independently of +the longer explanation. Please use verbs in the imperative in the commit +message, as in "Fix bug that...", "Add file/feature ...", or "Make plugin ...". + +DCO Attestation +--------------- + +To help track the origin of contributions, this project uses the same [DCO] +"sign-off" process as used by the Linux kernel. The sign-off is a simple line +at the end of the explanation for the patch, which certifies that you wrote it +or otherwise have the right to pass it on as an open-source patch. The rules +are pretty simple: if you can certify the below: + +### Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + + (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + + (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + + (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + + (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +then you just add a line saying: + + Signed-off-by: Random J Developer + +[DCO]: https://developercertificate.org/ diff --git a/README b/README index ec60ea1..7a92a49 100644 --- a/README +++ b/README @@ -298,6 +298,8 @@ discussions and although PRs can be submitted and discussed, upstreambound patches need to go through the mailing list nevertheless while release tarballs should be fetched from kernel.org[8]. +For more information, refer to CONTRIBUTING.md in this repository. + [1] https://github.com/kward/shunit2 [2] http://vger.kernel.org/vger-lists.html#linux-gpio [3] https://docs.kernel.org/process/email-clients.html