[libcamera-devel] v4l2: Relicense V4L2 compatibility layer under LGPL

Message ID 20200522110336.9081-1-laurent.pinchart@ideasonboard.com
State Superseded
Headers show
Series
  • [libcamera-devel] v4l2: Relicense V4L2 compatibility layer under LGPL
Related show

Commit Message

Laurent Pinchart May 22, 2020, 11:03 a.m. UTC
The V4L2 compatibility layer is licensed under the GPL. It is compiled
as a binary separate from libcamera.so, and is loaded into the address
space of processes through LD_PRELOAD to intercept calls to the C
library.

It is our understanding and intent that the GPL license doesn't
propagate to the binaries whose calls are intercepted, considering those
binaries are not derivative work of the V4L2 compatibility layer and are
not designed to be linked to the V4L2 compatibility layer. There is
however a possibly grey area if binaries are packaged with a shell
script wrapper that loads the V4L2 compatibility layer. This could lead
to license-related issues if such packaging is performed by Linux
distributions or system integrators.

To clarify the intent and lift the doubts, relicense the V4L2
compatibility layer under the LGPL. The V4L2 compatibility layer code
itself still benefits from the license protection, while its usage with
third-party binaries is clearly allowed as intended.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/v4l2/v4l2_camera.cpp         | 2 +-
 src/v4l2/v4l2_camera.h           | 2 +-
 src/v4l2/v4l2_camera_proxy.cpp   | 2 +-
 src/v4l2/v4l2_camera_proxy.h     | 2 +-
 src/v4l2/v4l2_compat.cpp         | 2 +-
 src/v4l2/v4l2_compat_manager.cpp | 2 +-
 src/v4l2/v4l2_compat_manager.h   | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

Comments

Jacopo Mondi May 22, 2020, 11:47 a.m. UTC | #1
Hi Laurent,

On Fri, May 22, 2020 at 02:03:36PM +0300, Laurent Pinchart wrote:
> The V4L2 compatibility layer is licensed under the GPL. It is compiled
> as a binary separate from libcamera.so, and is loaded into the address
> space of processes through LD_PRELOAD to intercept calls to the C
> library.
>
> It is our understanding and intent that the GPL license doesn't
> propagate to the binaries whose calls are intercepted, considering those
> binaries are not derivative work of the V4L2 compatibility layer and are
> not designed to be linked to the V4L2 compatibility layer. There is
> however a possibly grey area if binaries are packaged with a shell
> script wrapper that loads the V4L2 compatibility layer. This could lead
> to license-related issues if such packaging is performed by Linux
> distributions or system integrators.
>
> To clarify the intent and lift the doubts, relicense the V4L2
> compatibility layer under the LGPL. The V4L2 compatibility layer code
> itself still benefits from the license protection, while its usage with
> third-party binaries is clearly allowed as intended.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Acked-by: Jacopo Mondi <jacopo@jmondi.org>

As Paul is the amin author of that part his ack is probably more
relevant than mine though

Thanks
   j

> ---
>  src/v4l2/v4l2_camera.cpp         | 2 +-
>  src/v4l2/v4l2_camera.h           | 2 +-
>  src/v4l2/v4l2_camera_proxy.cpp   | 2 +-
>  src/v4l2/v4l2_camera_proxy.h     | 2 +-
>  src/v4l2/v4l2_compat.cpp         | 2 +-
>  src/v4l2/v4l2_compat_manager.cpp | 2 +-
>  src/v4l2/v4l2_compat_manager.h   | 2 +-
>  7 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
> index 50a4121cc93f..4da01a450dca 100644
> --- a/src/v4l2/v4l2_camera.cpp
> +++ b/src/v4l2/v4l2_camera.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
> index c969130fb37d..303eda44ca1d 100644
> --- a/src/v4l2/v4l2_camera.h
> +++ b/src/v4l2/v4l2_camera.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 19e8f6d3b98d..3df4d42b59ea 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.h b/src/v4l2/v4l2_camera_proxy.h
> index e15b230d5f23..af9f9bbe83d5 100644
> --- a/src/v4l2/v4l2_camera_proxy.h
> +++ b/src/v4l2/v4l2_camera_proxy.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat.cpp b/src/v4l2/v4l2_compat.cpp
> index a162037f6dc7..2a9a17629106 100644
> --- a/src/v4l2/v4l2_compat.cpp
> +++ b/src/v4l2/v4l2_compat.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
> index cd8ac0b8e819..2338a0ee1dd2 100644
> --- a/src/v4l2/v4l2_compat_manager.cpp
> +++ b/src/v4l2/v4l2_compat_manager.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.h b/src/v4l2/v4l2_compat_manager.h
> index 872c7c3b10e8..14338a59deca 100644
> --- a/src/v4l2/v4l2_compat_manager.h
> +++ b/src/v4l2/v4l2_compat_manager.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Kieran Bingham May 22, 2020, 1:59 p.m. UTC | #2
Hi Laurent,

On 22/05/2020 12:03, Laurent Pinchart wrote:
> The V4L2 compatibility layer is licensed under the GPL. It is compiled
> as a binary separate from libcamera.so, and is loaded into the address
> space of processes through LD_PRELOAD to intercept calls to the C
> library.
> 
> It is our understanding and intent that the GPL license doesn't
> propagate to the binaries whose calls are intercepted, considering those
> binaries are not derivative work of the V4L2 compatibility layer and are
> not designed to be linked to the V4L2 compatibility layer. There is
> however a possibly grey area if binaries are packaged with a shell
> script wrapper that loads the V4L2 compatibility layer. This could lead
> to license-related issues if such packaging is performed by Linux
> distributions or system integrators.
> 
> To clarify the intent and lift the doubts, relicense the V4L2
> compatibility layer under the LGPL. The V4L2 compatibility layer code
> itself still benefits from the license protection, while its usage with
> third-party binaries is clearly allowed as intended.


No objections here.

Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  src/v4l2/v4l2_camera.cpp         | 2 +-
>  src/v4l2/v4l2_camera.h           | 2 +-
>  src/v4l2/v4l2_camera_proxy.cpp   | 2 +-
>  src/v4l2/v4l2_camera_proxy.h     | 2 +-
>  src/v4l2/v4l2_compat.cpp         | 2 +-
>  src/v4l2/v4l2_compat_manager.cpp | 2 +-
>  src/v4l2/v4l2_compat_manager.h   | 2 +-
>  7 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
> index 50a4121cc93f..4da01a450dca 100644
> --- a/src/v4l2/v4l2_camera.cpp
> +++ b/src/v4l2/v4l2_camera.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
> index c969130fb37d..303eda44ca1d 100644
> --- a/src/v4l2/v4l2_camera.h
> +++ b/src/v4l2/v4l2_camera.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 19e8f6d3b98d..3df4d42b59ea 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.h b/src/v4l2/v4l2_camera_proxy.h
> index e15b230d5f23..af9f9bbe83d5 100644
> --- a/src/v4l2/v4l2_camera_proxy.h
> +++ b/src/v4l2/v4l2_camera_proxy.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat.cpp b/src/v4l2/v4l2_compat.cpp
> index a162037f6dc7..2a9a17629106 100644
> --- a/src/v4l2/v4l2_compat.cpp
> +++ b/src/v4l2/v4l2_compat.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
> index cd8ac0b8e819..2338a0ee1dd2 100644
> --- a/src/v4l2/v4l2_compat_manager.cpp
> +++ b/src/v4l2/v4l2_compat_manager.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.h b/src/v4l2/v4l2_compat_manager.h
> index 872c7c3b10e8..14338a59deca 100644
> --- a/src/v4l2/v4l2_compat_manager.h
> +++ b/src/v4l2/v4l2_compat_manager.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
>
Paul Elder May 22, 2020, 8:55 p.m. UTC | #3
Hi Laurent,

On Fri, May 22, 2020 at 02:03:36PM +0300, Laurent Pinchart wrote:
> The V4L2 compatibility layer is licensed under the GPL. It is compiled
> as a binary separate from libcamera.so, and is loaded into the address
> space of processes through LD_PRELOAD to intercept calls to the C
> library.
> 
> It is our understanding and intent that the GPL license doesn't
> propagate to the binaries whose calls are intercepted, considering those
> binaries are not derivative work of the V4L2 compatibility layer and are
> not designed to be linked to the V4L2 compatibility layer. There is
> however a possibly grey area if binaries are packaged with a shell
> script wrapper that loads the V4L2 compatibility layer. This could lead
> to license-related issues if such packaging is performed by Linux
> distributions or system integrators.
> 
> To clarify the intent and lift the doubts, relicense the V4L2
> compatibility layer under the LGPL. The V4L2 compatibility layer code
> itself still benefits from the license protection, while its usage with
> third-party binaries is clearly allowed as intended.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Looks good to me.

Acked-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  src/v4l2/v4l2_camera.cpp         | 2 +-
>  src/v4l2/v4l2_camera.h           | 2 +-
>  src/v4l2/v4l2_camera_proxy.cpp   | 2 +-
>  src/v4l2/v4l2_camera_proxy.h     | 2 +-
>  src/v4l2/v4l2_compat.cpp         | 2 +-
>  src/v4l2/v4l2_compat_manager.cpp | 2 +-
>  src/v4l2/v4l2_compat_manager.h   | 2 +-
>  7 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
> index 50a4121cc93f..4da01a450dca 100644
> --- a/src/v4l2/v4l2_camera.cpp
> +++ b/src/v4l2/v4l2_camera.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
> index c969130fb37d..303eda44ca1d 100644
> --- a/src/v4l2/v4l2_camera.h
> +++ b/src/v4l2/v4l2_camera.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 19e8f6d3b98d..3df4d42b59ea 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.h b/src/v4l2/v4l2_camera_proxy.h
> index e15b230d5f23..af9f9bbe83d5 100644
> --- a/src/v4l2/v4l2_camera_proxy.h
> +++ b/src/v4l2/v4l2_camera_proxy.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat.cpp b/src/v4l2/v4l2_compat.cpp
> index a162037f6dc7..2a9a17629106 100644
> --- a/src/v4l2/v4l2_compat.cpp
> +++ b/src/v4l2/v4l2_compat.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
> index cd8ac0b8e819..2338a0ee1dd2 100644
> --- a/src/v4l2/v4l2_compat_manager.cpp
> +++ b/src/v4l2/v4l2_compat_manager.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.h b/src/v4l2/v4l2_compat_manager.h
> index 872c7c3b10e8..14338a59deca 100644
> --- a/src/v4l2/v4l2_compat_manager.h
> +++ b/src/v4l2/v4l2_compat_manager.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Niklas Söderlund May 27, 2020, 4:01 p.m. UTC | #4
Hi Laurent,

Thanks for pushing thru with these issues.

On 2020-05-22 14:03:36 +0300, Laurent Pinchart wrote:
> The V4L2 compatibility layer is licensed under the GPL. It is compiled
> as a binary separate from libcamera.so, and is loaded into the address
> space of processes through LD_PRELOAD to intercept calls to the C
> library.
> 
> It is our understanding and intent that the GPL license doesn't
> propagate to the binaries whose calls are intercepted, considering those
> binaries are not derivative work of the V4L2 compatibility layer and are
> not designed to be linked to the V4L2 compatibility layer. There is
> however a possibly grey area if binaries are packaged with a shell
> script wrapper that loads the V4L2 compatibility layer. This could lead
> to license-related issues if such packaging is performed by Linux
> distributions or system integrators.
> 
> To clarify the intent and lift the doubts, relicense the V4L2
> compatibility layer under the LGPL. The V4L2 compatibility layer code
> itself still benefits from the license protection, while its usage with
> third-party binaries is clearly allowed as intended.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Acked-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

> ---
>  src/v4l2/v4l2_camera.cpp         | 2 +-
>  src/v4l2/v4l2_camera.h           | 2 +-
>  src/v4l2/v4l2_camera_proxy.cpp   | 2 +-
>  src/v4l2/v4l2_camera_proxy.h     | 2 +-
>  src/v4l2/v4l2_compat.cpp         | 2 +-
>  src/v4l2/v4l2_compat_manager.cpp | 2 +-
>  src/v4l2/v4l2_compat_manager.h   | 2 +-
>  7 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
> index 50a4121cc93f..4da01a450dca 100644
> --- a/src/v4l2/v4l2_camera.cpp
> +++ b/src/v4l2/v4l2_camera.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
> index c969130fb37d..303eda44ca1d 100644
> --- a/src/v4l2/v4l2_camera.h
> +++ b/src/v4l2/v4l2_camera.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 19e8f6d3b98d..3df4d42b59ea 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_camera_proxy.h b/src/v4l2/v4l2_camera_proxy.h
> index e15b230d5f23..af9f9bbe83d5 100644
> --- a/src/v4l2/v4l2_camera_proxy.h
> +++ b/src/v4l2/v4l2_camera_proxy.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat.cpp b/src/v4l2/v4l2_compat.cpp
> index a162037f6dc7..2a9a17629106 100644
> --- a/src/v4l2/v4l2_compat.cpp
> +++ b/src/v4l2/v4l2_compat.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
> index cd8ac0b8e819..2338a0ee1dd2 100644
> --- a/src/v4l2/v4l2_compat_manager.cpp
> +++ b/src/v4l2/v4l2_compat_manager.cpp
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> diff --git a/src/v4l2/v4l2_compat_manager.h b/src/v4l2/v4l2_compat_manager.h
> index 872c7c3b10e8..14338a59deca 100644
> --- a/src/v4l2/v4l2_compat_manager.h
> +++ b/src/v4l2/v4l2_compat_manager.h
> @@ -1,4 +1,4 @@
> -/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
>  /*
>   * Copyright (C) 2019, Google Inc.
>   *
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
index 50a4121cc93f..4da01a450dca 100644
--- a/src/v4l2/v4l2_camera.cpp
+++ b/src/v4l2/v4l2_camera.cpp
@@ -1,4 +1,4 @@ 
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright (C) 2019, Google Inc.
  *
diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
index c969130fb37d..303eda44ca1d 100644
--- a/src/v4l2/v4l2_camera.h
+++ b/src/v4l2/v4l2_camera.h
@@ -1,4 +1,4 @@ 
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright (C) 2019, Google Inc.
  *
diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 19e8f6d3b98d..3df4d42b59ea 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -1,4 +1,4 @@ 
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright (C) 2019, Google Inc.
  *
diff --git a/src/v4l2/v4l2_camera_proxy.h b/src/v4l2/v4l2_camera_proxy.h
index e15b230d5f23..af9f9bbe83d5 100644
--- a/src/v4l2/v4l2_camera_proxy.h
+++ b/src/v4l2/v4l2_camera_proxy.h
@@ -1,4 +1,4 @@ 
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright (C) 2019, Google Inc.
  *
diff --git a/src/v4l2/v4l2_compat.cpp b/src/v4l2/v4l2_compat.cpp
index a162037f6dc7..2a9a17629106 100644
--- a/src/v4l2/v4l2_compat.cpp
+++ b/src/v4l2/v4l2_compat.cpp
@@ -1,4 +1,4 @@ 
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright (C) 2019, Google Inc.
  *
diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
index cd8ac0b8e819..2338a0ee1dd2 100644
--- a/src/v4l2/v4l2_compat_manager.cpp
+++ b/src/v4l2/v4l2_compat_manager.cpp
@@ -1,4 +1,4 @@ 
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright (C) 2019, Google Inc.
  *
diff --git a/src/v4l2/v4l2_compat_manager.h b/src/v4l2/v4l2_compat_manager.h
index 872c7c3b10e8..14338a59deca 100644
--- a/src/v4l2/v4l2_compat_manager.h
+++ b/src/v4l2/v4l2_compat_manager.h
@@ -1,4 +1,4 @@ 
-/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
 /*
  * Copyright (C) 2019, Google Inc.
  *