{"id":3841,"url":"https://patchwork.libcamera.org/api/patches/3841/?format=json","web_url":"https://patchwork.libcamera.org/patch/3841/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200522145459.16836-3-laurent.pinchart@ideasonboard.com>","date":"2020-05-22T14:54:49","name":"[libcamera-devel] v4l2: Relicense V4L2 compatibility layer under LGPL","commit_ref":"2d5a369b2c5154a6ee6aef03e2a95300478bc8d3","pull_url":null,"state":"accepted","archived":false,"hash":"54480dae234cf500468cb52f536e7e0efd7577f2","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/3841/mbox/","series":[{"id":924,"url":"https://patchwork.libcamera.org/api/series/924/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=924","date":"2020-05-22T14:54:49","name":"[libcamera-devel] v4l2: Relicense V4L2 compatibility layer under LGPL","version":1,"mbox":"https://patchwork.libcamera.org/series/924/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/3841/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/3841/checks/","tags":{},"headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C295B603D7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 May 2020 16:55:19 +0200 (CEST)","from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 68AD124D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 May 2020 16:55:19 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"IoFysiIY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1590159319;\n\tbh=XcdvwzA5zKGfJP69+vGnUnYx/dNrRBNAuExC22GAFro=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=IoFysiIYj8DQZIde4zrgaxcSfHrRL26lPWdBvm06Jn4jxssPTskxFaIneUVr1N9bT\n\tPKogtFM8UpvZPnDuUy6ED1VzV0r3CgUZhoRgcRN9oXwjI8M8OcL8A5N5E/O6PM6EOz\n\tgaIHCnM++fmumZkXiPDFAOYDQc9L2SFUWLeE5uUs=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Fri, 22 May 2020 17:54:49 +0300","Message-Id":"<20200522145459.16836-3-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.26.2","In-Reply-To":"<20200522145459.16836-1-laurent.pinchart@ideasonboard.com>","References":"<20200522145459.16836-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH] v4l2: Relicense V4L2 compatibility layer\n\tunder LGPL","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Fri, 22 May 2020 14:55:20 -0000"},"content":"The V4L2 compatibility layer is licensed under the GPL. It is compiled\nas a binary separate from libcamera.so, and is loaded into the address\nspace of processes through LD_PRELOAD to intercept calls to the C\nlibrary.\n\nIt is our understanding and intent that the GPL license doesn't\npropagate to the binaries whose calls are intercepted, considering those\nbinaries are not derivative work of the V4L2 compatibility layer and are\nnot designed to be linked to the V4L2 compatibility layer. There is\nhowever a possibly grey area if binaries are packaged with a shell\nscript wrapper that loads the V4L2 compatibility layer. This could lead\nto license-related issues if such packaging is performed by Linux\ndistributions or system integrators.\n\nTo clarify the intent and lift the doubts, relicense the V4L2\ncompatibility layer under the LGPL. The V4L2 compatibility layer code\nitself still benefits from the license protection, while its usage with\nthird-party binaries is clearly allowed as intended.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/v4l2/v4l2_camera.cpp         | 2 +-\n src/v4l2/v4l2_camera.h           | 2 +-\n src/v4l2/v4l2_camera_proxy.cpp   | 2 +-\n src/v4l2/v4l2_camera_proxy.h     | 2 +-\n src/v4l2/v4l2_compat.cpp         | 2 +-\n src/v4l2/v4l2_compat_manager.cpp | 2 +-\n src/v4l2/v4l2_compat_manager.h   | 2 +-\n 7 files changed, 7 insertions(+), 7 deletions(-)","diff":"diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp\nindex 50a4121cc93f..4da01a450dca 100644\n--- a/src/v4l2/v4l2_camera.cpp\n+++ b/src/v4l2/v4l2_camera.cpp\n@@ -1,4 +1,4 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n /*\n  * Copyright (C) 2019, Google Inc.\n  *\ndiff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h\nindex c969130fb37d..303eda44ca1d 100644\n--- a/src/v4l2/v4l2_camera.h\n+++ b/src/v4l2/v4l2_camera.h\n@@ -1,4 +1,4 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n /*\n  * Copyright (C) 2019, Google Inc.\n  *\ndiff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\nindex 19e8f6d3b98d..3df4d42b59ea 100644\n--- a/src/v4l2/v4l2_camera_proxy.cpp\n+++ b/src/v4l2/v4l2_camera_proxy.cpp\n@@ -1,4 +1,4 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n /*\n  * Copyright (C) 2019, Google Inc.\n  *\ndiff --git a/src/v4l2/v4l2_camera_proxy.h b/src/v4l2/v4l2_camera_proxy.h\nindex e15b230d5f23..af9f9bbe83d5 100644\n--- a/src/v4l2/v4l2_camera_proxy.h\n+++ b/src/v4l2/v4l2_camera_proxy.h\n@@ -1,4 +1,4 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n /*\n  * Copyright (C) 2019, Google Inc.\n  *\ndiff --git a/src/v4l2/v4l2_compat.cpp b/src/v4l2/v4l2_compat.cpp\nindex a162037f6dc7..2a9a17629106 100644\n--- a/src/v4l2/v4l2_compat.cpp\n+++ b/src/v4l2/v4l2_compat.cpp\n@@ -1,4 +1,4 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n /*\n  * Copyright (C) 2019, Google Inc.\n  *\ndiff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp\nindex cd8ac0b8e819..2338a0ee1dd2 100644\n--- a/src/v4l2/v4l2_compat_manager.cpp\n+++ b/src/v4l2/v4l2_compat_manager.cpp\n@@ -1,4 +1,4 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n /*\n  * Copyright (C) 2019, Google Inc.\n  *\ndiff --git a/src/v4l2/v4l2_compat_manager.h b/src/v4l2/v4l2_compat_manager.h\nindex 872c7c3b10e8..14338a59deca 100644\n--- a/src/v4l2/v4l2_compat_manager.h\n+++ b/src/v4l2/v4l2_compat_manager.h\n@@ -1,4 +1,4 @@\n-/* SPDX-License-Identifier: GPL-2.0-or-later */\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n /*\n  * Copyright (C) 2019, Google Inc.\n  *\n","prefixes":["libcamera-devel"]}