[{"id":4785,"web_url":"https://patchwork.libcamera.org/comment/4785/","msgid":"<5a9e71b6-94e1-767e-0b18-9382d4fee812@micronovasrl.com>","date":"2020-05-11T22:35:51","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":16,"url":"https://patchwork.libcamera.org/api/people/16/","name":"Giulio Benetti","email":"giulio.benetti@micronovasrl.com"},"content":"Hi Laurent, All,\n\nIl 12/05/2020 00:27, Laurent Pinchart ha scritto:\n> In an attempt to clarify the license terms of all files in the libcamera\n> project, the build system files deserve particular attention. While they\n> describe how the binaries are created, they are not themselves\n> transformed into any part of binary distributions of the software, and\n> thus don't influece the copyright on the binary packages. They are\n> however subject to copyright, and thus influence the distribution terms\n> of the source packages.\n> \n> Most of the meson.build files would not meet the threshold of\n> originality criteria required for copyright protection. Some of the more\n> complex meson.build files may be elligible for copyright protection. To\n> avoid any ambiguity and uncertainty, state our intent to not assert\n> copyrights on the build system files by putting them in the public\n> domain with the CC0-1.0 license.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nAcked-by: Giulio Benetti <giulio.benetti@micronovasrl.com>\n\n> ---\n> Changes since v1:\n> \n> - Added meson.build files from the Raspberry Pi pipeline handler\n> ---\n>   Documentation/meson.build                     |   2 +\n>   LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n>   include/android/meson.build                   |   2 +\n>   include/ipa/meson.build                       |   2 +\n>   include/libcamera/meson.build                 |   2 +\n>   include/meson.build                           |   2 +\n>   meson.build                                   |   2 +\n>   meson_options.txt                             |   2 +\n>   src/android/meson.build                       |   2 +\n>   src/cam/meson.build                           |   2 +\n>   src/gstreamer/meson.build                     |   2 +\n>   src/ipa/libipa/meson.build                    |   2 +\n>   src/ipa/meson.build                           |   2 +\n>   src/ipa/raspberrypi/meson.build               |   2 +\n>   src/ipa/rkisp1/meson.build                    |   2 +\n>   src/ipa/vimc/data/meson.build                 |   2 +\n>   src/ipa/vimc/meson.build                      |   2 +\n>   src/libcamera/include/meson.build             |   2 +\n>   src/libcamera/meson.build                     |   2 +\n>   src/libcamera/pipeline/ipu3/meson.build       |   2 +\n>   src/libcamera/pipeline/meson.build            |   2 +\n>   .../pipeline/raspberrypi/meson.build          |   2 +\n>   src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n>   src/libcamera/pipeline/simple/meson.build     |   2 +\n>   src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n>   src/libcamera/pipeline/vimc/meson.build       |   2 +\n>   src/libcamera/proxy/meson.build               |   2 +\n>   src/libcamera/proxy/worker/meson.build        |   2 +\n>   src/meson.build                               |   2 +\n>   src/qcam/meson.build                          |   2 +\n>   src/v4l2/meson.build                          |   2 +\n>   test/camera/meson.build                       |   2 +\n>   test/controls/meson.build                     |   2 +\n>   test/ipa/meson.build                          |   2 +\n>   test/ipc/meson.build                          |   2 +\n>   test/libtest/meson.build                      |   2 +\n>   test/log/meson.build                          |   2 +\n>   test/media_device/meson.build                 |   2 +\n>   test/meson.build                              |   2 +\n>   test/pipeline/ipu3/meson.build                |   2 +\n>   test/pipeline/meson.build                     |   2 +\n>   test/pipeline/rkisp1/meson.build              |   2 +\n>   test/process/meson.build                      |   2 +\n>   test/serialization/meson.build                |   2 +\n>   test/stream/meson.build                       |   2 +\n>   test/v4l2_subdevice/meson.build               |   2 +\n>   test/v4l2_videodevice/meson.build             |   2 +\n>   utils/ipu3/meson.build                        |   2 +\n>   utils/meson.build                             |   2 +\n>   49 files changed, 215 insertions(+)\n>   create mode 100644 LICENSES/CC0-1.0.txt\n> \n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index c4e9892470de..b3b4f0b66f57 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   doc_install_dir = join_paths(get_option('datadir'), 'doc',\n>                                'libcamera-@0@'.format(libcamera_version))\n>   \n> diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> new file mode 100644\n> index 000000000000..a343ccd4335f\n> --- /dev/null\n> +++ b/LICENSES/CC0-1.0.txt\n> @@ -0,0 +1,119 @@\n> +Creative Commons Legal Code\n> +\n> +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> +OR WORKS PROVIDED HEREUNDER.\n> +\n> +Statement of Purpose\n> +\n> +The laws of most jurisdictions throughout the world automatically confer exclusive\n> +Copyright and Related Rights (defined below) upon the creator and subsequent\n> +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> +a database (each, a \"Work\").\n> +\n> +Certain owners wish to permanently relinquish those rights to a Work for the\n> +purpose of contributing to a commons of creative, cultural and scientific\n> +works (\"Commons\") that the public can reliably and without fear of later claims\n> +of infringement build upon, modify, incorporate in other works, reuse and\n> +redistribute as freely as possible in any form whatsoever and for any purposes,\n> +including without limitation commercial purposes. These owners may contribute\n> +to the Commons to promote the ideal of a free culture and the further production\n> +of creative, cultural and scientific works, or to gain reputation or greater\n> +distribution for their Work in part through the use and efforts of others.\n> +\n> +For these and/or other purposes and motivations, and without any expectation\n> +of additional consideration or compensation, the person associating CC0 with\n> +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> +and publicly distribute the Work under its terms, with knowledge of his or\n> +her Copyright and Related Rights in the Work and the meaning and intended\n> +legal effect of CC0 on those rights.\n> +\n> +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> +Copyright and Related Rights include, but are not limited to, the following:\n> +\n> +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> +and translate a Work;\n> +\n> +      ii. moral rights retained by the original author(s) and/or performer(s);\n> +\n> +iii. publicity and privacy rights pertaining to a person's image or likeness\n> +depicted in a Work;\n> +\n> +iv. rights protecting against unfair competition in regards to a Work, subject\n> +to the limitations in paragraph 4(a), below;\n> +\n> +v. rights protecting the extraction, dissemination, use and reuse of data\n> +in a Work;\n> +\n> +vi. database rights (such as those arising under Directive 96/9/EC of the\n> +European Parliament and of the Council of 11 March 1996 on the legal protection\n> +of databases, and under any national implementation thereof, including any\n> +amended or successor version of such directive); and\n> +\n> +vii. other similar, equivalent or corresponding rights throughout the world\n> +based on applicable law or treaty, and any national implementations thereof.\n> +\n> +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> +and Related Rights and associated claims and causes of action, whether now\n> +known or unknown (including existing as well as future claims and causes of\n> +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> +duration provided by applicable law or treaty (including future time extensions),\n> +(iii) in any current or future medium and for any number of copies, and (iv)\n> +for any purpose whatsoever, including without limitation commercial, advertising\n> +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> +benefit of each member of the public at large and to the detriment of Affirmer's\n> +heirs and successors, fully intending that such Waiver shall not be subject\n> +to revocation, rescission, cancellation, termination, or any other legal or\n> +equitable action to disrupt the quiet enjoyment of the Work by the public\n> +as contemplated by Affirmer's express Statement of Purpose.\n> +\n> +3. Public License Fallback. Should any part of the Waiver for any reason be\n> +judged legally invalid or ineffective under applicable law, then the Waiver\n> +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> +express Statement of Purpose. In addition, to the extent the Waiver is so\n> +judged Affirmer hereby grants to each affected person a royalty-free, non\n> +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> +law or treaty (including future time extensions), (iii) in any current or\n> +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> +including without limitation commercial, advertising or promotional purposes\n> +(the \"License\"). The License shall be deemed effective as of the date CC0\n> +was applied by Affirmer to the Work. Should any part of the License for any\n> +reason be judged legally invalid or ineffective under applicable law, such\n> +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> +the License, and in such case Affirmer hereby affirms that he or she will\n> +not (i) exercise any of his or her remaining Copyright and Related Rights\n> +in the Work or (ii) assert any associated claims and causes of action with\n> +respect to the Work, in either case contrary to Affirmer's express Statement\n> +of Purpose.\n> +\n> +   4. Limitations and Disclaimers.\n> +\n> +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> +licensed or otherwise affected by this document.\n> +\n> +b. Affirmer offers the Work as-is and makes no representations or warranties\n> +of any kind concerning the Work, express, implied, statutory or otherwise,\n> +including without limitation warranties of title, merchantability, fitness\n> +for a particular purpose, non infringement, or the absence of latent or other\n> +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> +all to the greatest extent permissible under applicable law.\n> +\n> +c. Affirmer disclaims responsibility for clearing rights of other persons\n> +that may apply to the Work or any use thereof, including without limitation\n> +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> +responsibility for obtaining any necessary consents, permissions or other\n> +rights required for any use of the Work.\n> +\n> +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> +to this document and has no duty or obligation with respect to this CC0 or\n> +use of the Work.\n> diff --git a/include/android/meson.build b/include/android/meson.build\n> index 69f1c38edada..da2504f2e493 100644\n> --- a/include/android/meson.build\n> +++ b/include/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   android_includes = ([\n>       include_directories('hardware/libhardware/include/'),\n>       include_directories('metadata/'),\n> diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> index 695a4183a0e8..3d5c0dd69bb4 100644\n> --- a/include/ipa/meson.build\n> +++ b/include/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_ipa_api = files([\n>       'ipa_controls.h',\n>       'ipa_interface.h',\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 23c01d3837ba..cea47eb83030 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_api = files([\n>       'bound_method.h',\n>       'buffer.h',\n> diff --git a/include/meson.build b/include/meson.build\n> index 42b2453445b5..4f41c9ceeb4c 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_include_dir = 'libcamera'\n>   \n>   subdir('android')\n> diff --git a/meson.build b/meson.build\n> index 59829e1942ca..e898782a28b0 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   project('libcamera', 'c', 'cpp',\n>       meson_version : '>= 0.47',\n>       version : '0.0.0',\n> diff --git a/meson_options.txt b/meson_options.txt\n> index 68f4f48004e5..badace151bb6 100644\n> --- a/meson_options.txt\n> +++ b/meson_options.txt\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   option('android',\n>           type : 'boolean',\n>           value : false,\n> diff --git a/src/android/meson.build b/src/android/meson.build\n> index 5a5a332e6a6f..822cad621f01 100644\n> --- a/src/android/meson.build\n> +++ b/src/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   android_hal_sources = files([\n>       'camera3_hal.cpp',\n>       'camera_hal_manager.cpp',\n> diff --git a/src/cam/meson.build b/src/cam/meson.build\n> index 162d6333f94e..89e124fbae2a 100644\n> --- a/src/cam/meson.build\n> +++ b/src/cam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   cam_sources = files([\n>       'buffer_writer.cpp',\n>       'capture.cpp',\n> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> index e119e472cb58..c9f0c13d969d 100644\n> --- a/src/gstreamer/meson.build\n> +++ b/src/gstreamer/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_gst_sources = [\n>       'gstlibcamera-utils.cpp',\n>       'gstlibcamera.cpp',\n> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> index 6f3cd4866ce3..2262640517a0 100644\n> --- a/src/ipa/libipa/meson.build\n> +++ b/src/ipa/libipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libipa_headers = files([\n>       'ipa_interface_wrapper.h',\n>   ])\n> diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> index b103479c1cd0..64deb601054c 100644\n> --- a/src/ipa/meson.build\n> +++ b/src/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n>   ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n>   ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> index 2dece3a468e8..697902e95bc1 100644\n> --- a/src/ipa/raspberrypi/meson.build\n> +++ b/src/ipa/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipa_name = 'ipa_rpi'\n>   \n>   rpi_ipa_deps = [\n> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> --- a/src/ipa/rkisp1/meson.build\n> +++ b/src/ipa/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipa_name = 'ipa_rkisp1'\n>   \n>   mod = shared_module(ipa_name,\n> diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> index c844926da7f2..6532662cfa94 100644\n> --- a/src/ipa/vimc/data/meson.build\n> +++ b/src/ipa/vimc/data/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   conf_files = files([\n>       'vimc.conf',\n>   ])\n> diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> index 22296a029642..8c9df854007a 100644\n> --- a/src/ipa/vimc/meson.build\n> +++ b/src/ipa/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipa_name = 'ipa_vimc'\n>   \n>   mod = shared_module(ipa_name,\n> diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> index 683d06133741..1f6af579cca2 100644\n> --- a/src/libcamera/include/meson.build\n> +++ b/src/libcamera/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_headers = files([\n>       'byte_stream_buffer.h',\n>       'camera_controls.h',\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index d8b4d7206aba..d42e9720dbd6 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources = files([\n>       'bound_method.cpp',\n>       'buffer.cpp',\n> diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> index 0ab766a257a0..0e8c5a14f2b3 100644\n> --- a/src/libcamera/pipeline/ipu3/meson.build\n> +++ b/src/libcamera/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources += files([\n>       'ipu3.cpp',\n>   ])\n> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> index 190ca5a8db92..46424493aa37 100644\n> --- a/src/libcamera/pipeline/meson.build\n> +++ b/src/libcamera/pipeline/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   foreach pipeline : get_option('pipelines')\n>       subdir(pipeline)\n>   endforeach\n> diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> index 737857977831..fc117b77bdd1 100644\n> --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources += files([\n>       'raspberrypi.cpp'\n>   ])\n> diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> index d04fb45223e7..1ab3964a6db1 100644\n> --- a/src/libcamera/pipeline/rkisp1/meson.build\n> +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources += files([\n>       'rkisp1.cpp',\n>       'timeline.cpp',\n> diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> index 8372f24e3788..9c99b32f69f3 100644\n> --- a/src/libcamera/pipeline/simple/meson.build\n> +++ b/src/libcamera/pipeline/simple/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources += files([\n>       'converter.cpp',\n>       'simple.cpp',\n> diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> index c19ae2389f48..a3c2efd424bf 100644\n> --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources += files([\n>       'uvcvideo.cpp',\n>   ])\n> diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> index 615ecd20f1a2..290eefb5d076 100644\n> --- a/src/libcamera/pipeline/vimc/meson.build\n> +++ b/src/libcamera/pipeline/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources += files([\n>       'vimc.cpp',\n>   ])\n> diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> index 6c00d5f30ad2..bd804750748a 100644\n> --- a/src/libcamera/proxy/meson.build\n> +++ b/src/libcamera/proxy/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libcamera_sources += files([\n>       'ipa_proxy_linux.cpp',\n>       'ipa_proxy_thread.cpp',\n> diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> index 839156f7591a..1b1bee5e0170 100644\n> --- a/src/libcamera/proxy/worker/meson.build\n> +++ b/src/libcamera/proxy/worker/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipa_proxy_sources = [\n>       ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n>   ]\n> diff --git a/src/meson.build b/src/meson.build\n> index c9c1008562b1..d69b4c1ea978 100644\n> --- a/src/meson.build\n> +++ b/src/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   if get_option('android')\n>       subdir('android')\n>   endif\n> diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> index 949ef6149c8a..045db52acf26 100644\n> --- a/src/qcam/meson.build\n> +++ b/src/qcam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   qcam_sources = files([\n>       '../cam/options.cpp',\n>       '../cam/stream_options.cpp',\n> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> index efab968f7729..fc1be82d1b02 100644\n> --- a/src/v4l2/meson.build\n> +++ b/src/v4l2/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   v4l2_compat_sources = files([\n>       'v4l2_camera.cpp',\n>       'v4l2_camera_proxy.cpp',\n> diff --git a/test/camera/meson.build b/test/camera/meson.build\n> index e2a6660a7a92..0395e7ddc7a4 100644\n> --- a/test/camera/meson.build\n> +++ b/test/camera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   # Tests are listed in order of complexity.\n>   # They are not alphabetically sorted.\n>   camera_tests = [\n> diff --git a/test/controls/meson.build b/test/controls/meson.build\n> index 7fff2413007e..545fb03b16c6 100644\n> --- a/test/controls/meson.build\n> +++ b/test/controls/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   control_tests = [\n>       [ 'control_info',               'control_info.cpp' ],\n>       [ 'control_info_map',           'control_info_map.cpp' ],\n> diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> index f925c50a085e..ba672f3f9d8b 100644\n> --- a/test/ipa/meson.build\n> +++ b/test/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipa_test = [\n>       ['ipa_module_test',     'ipa_module_test.cpp'],\n>       ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> index cc46b41c7687..650df1d63444 100644\n> --- a/test/ipc/meson.build\n> +++ b/test/ipc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipc_tests = [\n>       [ 'unixsocket',  'unixsocket.cpp' ],\n>   ]\n> diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> index 33565e0eb3b6..481f6d6baa61 100644\n> --- a/test/libtest/meson.build\n> +++ b/test/libtest/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   libtest_sources = files([\n>       'buffer_source.cpp',\n>       'camera_test.cpp',\n> diff --git a/test/log/meson.build b/test/log/meson.build\n> index 95f6c1a2ae4a..8cd664e04a00 100644\n> --- a/test/log/meson.build\n> +++ b/test/log/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   log_test = [\n>       ['log_api',     'log_api.cpp'],\n>       ['log_process', 'log_process.cpp'],\n> diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> index 6a0e468434b5..1dfcdd8bd744 100644\n> --- a/test/media_device/meson.build\n> +++ b/test/media_device/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   lib_mdev_test_sources = files([\n>       'media_device_test.cpp',\n>   ])\n> diff --git a/test/meson.build b/test/meson.build\n> index 5a45a85effd3..bd7da147c70e 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   subdir('libtest')\n>   \n>   subdir('camera')\n> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> index d02927c9af86..d062ecd269f2 100644\n> --- a/test/pipeline/ipu3/meson.build\n> +++ b/test/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipu3_test = [\n>       ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n>   ]\n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> index 157f789ceb25..6e7901fee38f 100644\n> --- a/test/pipeline/meson.build\n> +++ b/test/pipeline/meson.build\n> @@ -1,2 +1,4 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   subdir('ipu3')\n>   subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> index d3f974964fc4..ece147b054e4 100644\n> --- a/test/pipeline/rkisp1/meson.build\n> +++ b/test/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   rkisp1_test = [\n>       ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n>   ]\n> diff --git a/test/process/meson.build b/test/process/meson.build\n> index c4d83d6c8b39..c215fa7e6c12 100644\n> --- a/test/process/meson.build\n> +++ b/test/process/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   process_tests = [\n>       [ 'process_test',  'process_test.cpp' ],\n>   ]\n> diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> index d78d92e61887..a9d9cbcb7d80 100644\n> --- a/test/serialization/meson.build\n> +++ b/test/serialization/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   serialization_tests = [\n>       [ 'control_serialization',    'control_serialization.cpp' ],\n>   ]\n> diff --git a/test/stream/meson.build b/test/stream/meson.build\n> index 005f4aa4996a..2b9b29a9143b 100644\n> --- a/test/stream/meson.build\n> +++ b/test/stream/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   stream_tests = [\n>       [ 'stream_formats', 'stream_formats.cpp' ],\n>   ]\n> diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> index 0521984b2a78..5f0882ca9772 100644\n> --- a/test/v4l2_subdevice/meson.build\n> +++ b/test/v4l2_subdevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   v4l2_subdevice_tests = [\n>     [ 'list_formats',             'list_formats.cpp'],\n>     [ 'test_formats',             'test_formats.cpp'],\n> diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> index 685fcf6d16d7..b4bb30908027 100644\n> --- a/test/v4l2_videodevice/meson.build\n> +++ b/test/v4l2_videodevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   # Tests are listed in order of complexity.\n>   # They are not alphabetically sorted.\n>   v4l2_videodevice_tests = [\n> diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> index 49c45856eea6..88049f589561 100644\n> --- a/utils/ipu3/meson.build\n> +++ b/utils/ipu3/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> diff --git a/utils/meson.build b/utils/meson.build\n> index f434c79c0ae3..c3cd9d69f887 100644\n> --- a/utils/meson.build\n> +++ b/utils/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>   subdir('ipu3')\n>","headers":{"Return-Path":"<giulio.benetti@micronovasrl.com>","Received":["from mail.micronovasrl.com (mail.micronovasrl.com [212.103.203.10])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A04C160BDC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 00:35:52 +0200 (CEST)","from mail.micronovasrl.com (mail.micronovasrl.com [127.0.0.1])\n\tby mail.micronovasrl.com (Postfix) with ESMTP id 4BB7DB03267\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 00:35:52 +0200 (CEST)","from mail.micronovasrl.com ([127.0.0.1])\n\tby mail.micronovasrl.com (mail.micronovasrl.com [127.0.0.1])\n\t(amavisd-new, port 10026)\n\twith ESMTP id NzA-KJxeSHN8 for <libcamera-devel@lists.libcamera.org>; \n\tTue, 12 May 2020 00:35:51 +0200 (CEST)","from [192.168.2.106] (146-241-10-121.dyn.eolo.it [146.241.10.121])\n\tby mail.micronovasrl.com (Postfix) with ESMTPSA id DEBD5B02BCA;\n\tTue, 12 May 2020 00:35:50 +0200 (CEST)"],"Authentication-Results":["lancelot.ideasonboard.com;\n\tdkim=fail reason=\"key not found in DNS\" (0-bit key;\n\tunprotected) header.d=micronovasrl.com header.i=@micronovasrl.com\n\theader.b=\"nhZHAb5E\"; dkim-atps=neutral","mail.micronovasrl.com (amavisd-new); dkim=pass\n\treason=\"pass (just generated, assumed good)\" header.d=micronovasrl.com"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=micronovasrl.com;\n\th=content-transfer-encoding:content-language:content-type\n\t:content-type:in-reply-to:mime-version:user-agent:date:date\n\t:message-id:from:from:references:to:subject:subject; s=dkim; t=\n\t1589236551; x=1590100552; bh=6I7IGwaikPeJlltPfJA7Chg7oIZvn0bGSth\n\t4f39B9UI=; b=nhZHAb5EyL1g20+UkUeI5p+ax87XXat6P0gEMhwRskSZ4sYpfLf\n\tIE1lRXumctqStj5r5Dr4HFXVhpQzMRHLEPf1I7dlV/8LB9UC5CQebIRahwscSrXU\n\tVmLFKJdH5zVvizhlrKBSYuREm+urNr/3mHWhJfM6Yj4AlR8UOK9jSzyM=","X-Virus-Scanned":"Debian amavisd-new at mail.micronovasrl.com","X-Spam-Flag":"NO","X-Spam-Score":"-2.899","X-Spam-Level":"","X-Spam-Status":"No, score=-2.899 tagged_above=-10 required=4.5\n\ttests=[ALL_TRUSTED=-1, BAYES_00=-1.9, LOTS_OF_MONEY=0.001]\n\tautolearn=unavailable autolearn_force=no","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Fabrice Fontaine <fontaine.fabrice@gmail.com>,\n\tNaushir Patuck <naush@raspberrypi.com>,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>,\n\tShow Liu <show.liu@linaro.org>","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","From":"Giulio Benetti <giulio.benetti@micronovasrl.com>","Message-ID":"<5a9e71b6-94e1-767e-0b18-9382d4fee812@micronovasrl.com>","Date":"Tue, 12 May 2020 00:35:51 +0200","User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n\tThunderbird/68.8.0","MIME-Version":"1.0","In-Reply-To":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=iso-8859-15; format=flowed","Content-Language":"it","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Mon, 11 May 2020 22:35:52 -0000"}},{"id":4793,"web_url":"https://patchwork.libcamera.org/comment/4793/","msgid":"<fa8390c7-8551-a75b-64ce-89bd24f91851@ideasonboard.com>","date":"2020-05-12T08:02:14","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 11/05/2020 23:27, Laurent Pinchart wrote:\n> In an attempt to clarify the license terms of all files in the libcamera\n> project, the build system files deserve particular attention. While they\n> describe how the binaries are created, they are not themselves\n> transformed into any part of binary distributions of the software, and\n> thus don't influece the copyright on the binary packages. They are\n\ns/influece/influence/\n\n> however subject to copyright, and thus influence the distribution terms\n> of the source packages.\n> \n> Most of the meson.build files would not meet the threshold of\n> originality criteria required for copyright protection. Some of the more\n> complex meson.build files may be elligible for copyright protection. To\n\ns/elligible/eligible/\n\n> avoid any ambiguity and uncertainty, state our intent to not assert\n> copyrights on the build system files by putting them in the public\n> domain with the CC0-1.0 license.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nThis seems like a good option to me.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nand for any meson.build files I have authored:\n\nAcked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> ---\n> Changes since v1:\n> \n> - Added meson.build files from the Raspberry Pi pipeline handler\n\nDo we need to get an explicit ack from Raspberry Pi here?\n\n--\nKieran\n\n\n> ---\n>  Documentation/meson.build                     |   2 +\n>  LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n>  include/android/meson.build                   |   2 +\n>  include/ipa/meson.build                       |   2 +\n>  include/libcamera/meson.build                 |   2 +\n>  include/meson.build                           |   2 +\n>  meson.build                                   |   2 +\n>  meson_options.txt                             |   2 +\n>  src/android/meson.build                       |   2 +\n>  src/cam/meson.build                           |   2 +\n>  src/gstreamer/meson.build                     |   2 +\n>  src/ipa/libipa/meson.build                    |   2 +\n>  src/ipa/meson.build                           |   2 +\n>  src/ipa/raspberrypi/meson.build               |   2 +\n>  src/ipa/rkisp1/meson.build                    |   2 +\n>  src/ipa/vimc/data/meson.build                 |   2 +\n>  src/ipa/vimc/meson.build                      |   2 +\n>  src/libcamera/include/meson.build             |   2 +\n>  src/libcamera/meson.build                     |   2 +\n>  src/libcamera/pipeline/ipu3/meson.build       |   2 +\n>  src/libcamera/pipeline/meson.build            |   2 +\n>  .../pipeline/raspberrypi/meson.build          |   2 +\n>  src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n>  src/libcamera/pipeline/simple/meson.build     |   2 +\n>  src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n>  src/libcamera/pipeline/vimc/meson.build       |   2 +\n>  src/libcamera/proxy/meson.build               |   2 +\n>  src/libcamera/proxy/worker/meson.build        |   2 +\n>  src/meson.build                               |   2 +\n>  src/qcam/meson.build                          |   2 +\n>  src/v4l2/meson.build                          |   2 +\n>  test/camera/meson.build                       |   2 +\n>  test/controls/meson.build                     |   2 +\n>  test/ipa/meson.build                          |   2 +\n>  test/ipc/meson.build                          |   2 +\n>  test/libtest/meson.build                      |   2 +\n>  test/log/meson.build                          |   2 +\n>  test/media_device/meson.build                 |   2 +\n>  test/meson.build                              |   2 +\n>  test/pipeline/ipu3/meson.build                |   2 +\n>  test/pipeline/meson.build                     |   2 +\n>  test/pipeline/rkisp1/meson.build              |   2 +\n>  test/process/meson.build                      |   2 +\n>  test/serialization/meson.build                |   2 +\n>  test/stream/meson.build                       |   2 +\n>  test/v4l2_subdevice/meson.build               |   2 +\n>  test/v4l2_videodevice/meson.build             |   2 +\n>  utils/ipu3/meson.build                        |   2 +\n>  utils/meson.build                             |   2 +\n>  49 files changed, 215 insertions(+)\n>  create mode 100644 LICENSES/CC0-1.0.txt\n> \n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index c4e9892470de..b3b4f0b66f57 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  doc_install_dir = join_paths(get_option('datadir'), 'doc',\n>                               'libcamera-@0@'.format(libcamera_version))\n>  \n> diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> new file mode 100644\n> index 000000000000..a343ccd4335f\n> --- /dev/null\n> +++ b/LICENSES/CC0-1.0.txt\n> @@ -0,0 +1,119 @@\n> +Creative Commons Legal Code\n> +\n> +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> +OR WORKS PROVIDED HEREUNDER.\n> +\n> +Statement of Purpose\n> +\n> +The laws of most jurisdictions throughout the world automatically confer exclusive\n> +Copyright and Related Rights (defined below) upon the creator and subsequent\n> +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> +a database (each, a \"Work\").\n> +\n> +Certain owners wish to permanently relinquish those rights to a Work for the\n> +purpose of contributing to a commons of creative, cultural and scientific\n> +works (\"Commons\") that the public can reliably and without fear of later claims\n> +of infringement build upon, modify, incorporate in other works, reuse and\n> +redistribute as freely as possible in any form whatsoever and for any purposes,\n> +including without limitation commercial purposes. These owners may contribute\n> +to the Commons to promote the ideal of a free culture and the further production\n> +of creative, cultural and scientific works, or to gain reputation or greater\n> +distribution for their Work in part through the use and efforts of others.\n> +\n> +For these and/or other purposes and motivations, and without any expectation\n> +of additional consideration or compensation, the person associating CC0 with\n> +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> +and publicly distribute the Work under its terms, with knowledge of his or\n> +her Copyright and Related Rights in the Work and the meaning and intended\n> +legal effect of CC0 on those rights.\n> +\n> +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> +Copyright and Related Rights include, but are not limited to, the following:\n> +\n> +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> +and translate a Work;\n> +\n> +      ii. moral rights retained by the original author(s) and/or performer(s);\n> +\n> +iii. publicity and privacy rights pertaining to a person's image or likeness\n> +depicted in a Work;\n> +\n> +iv. rights protecting against unfair competition in regards to a Work, subject\n> +to the limitations in paragraph 4(a), below;\n> +\n> +v. rights protecting the extraction, dissemination, use and reuse of data\n> +in a Work;\n> +\n> +vi. database rights (such as those arising under Directive 96/9/EC of the\n> +European Parliament and of the Council of 11 March 1996 on the legal protection\n> +of databases, and under any national implementation thereof, including any\n> +amended or successor version of such directive); and\n> +\n> +vii. other similar, equivalent or corresponding rights throughout the world\n> +based on applicable law or treaty, and any national implementations thereof.\n> +\n> +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> +and Related Rights and associated claims and causes of action, whether now\n> +known or unknown (including existing as well as future claims and causes of\n> +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> +duration provided by applicable law or treaty (including future time extensions),\n> +(iii) in any current or future medium and for any number of copies, and (iv)\n> +for any purpose whatsoever, including without limitation commercial, advertising\n> +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> +benefit of each member of the public at large and to the detriment of Affirmer's\n> +heirs and successors, fully intending that such Waiver shall not be subject\n> +to revocation, rescission, cancellation, termination, or any other legal or\n> +equitable action to disrupt the quiet enjoyment of the Work by the public\n> +as contemplated by Affirmer's express Statement of Purpose.\n> +\n> +3. Public License Fallback. Should any part of the Waiver for any reason be\n> +judged legally invalid or ineffective under applicable law, then the Waiver\n> +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> +express Statement of Purpose. In addition, to the extent the Waiver is so\n> +judged Affirmer hereby grants to each affected person a royalty-free, non\n> +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> +law or treaty (including future time extensions), (iii) in any current or\n> +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> +including without limitation commercial, advertising or promotional purposes\n> +(the \"License\"). The License shall be deemed effective as of the date CC0\n> +was applied by Affirmer to the Work. Should any part of the License for any\n> +reason be judged legally invalid or ineffective under applicable law, such\n> +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> +the License, and in such case Affirmer hereby affirms that he or she will\n> +not (i) exercise any of his or her remaining Copyright and Related Rights\n> +in the Work or (ii) assert any associated claims and causes of action with\n> +respect to the Work, in either case contrary to Affirmer's express Statement\n> +of Purpose.\n> +\n> +   4. Limitations and Disclaimers.\n> +\n> +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> +licensed or otherwise affected by this document.\n> +\n> +b. Affirmer offers the Work as-is and makes no representations or warranties\n> +of any kind concerning the Work, express, implied, statutory or otherwise,\n> +including without limitation warranties of title, merchantability, fitness\n> +for a particular purpose, non infringement, or the absence of latent or other\n> +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> +all to the greatest extent permissible under applicable law.\n> +\n> +c. Affirmer disclaims responsibility for clearing rights of other persons\n> +that may apply to the Work or any use thereof, including without limitation\n> +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> +responsibility for obtaining any necessary consents, permissions or other\n> +rights required for any use of the Work.\n> +\n> +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> +to this document and has no duty or obligation with respect to this CC0 or\n> +use of the Work.\n> diff --git a/include/android/meson.build b/include/android/meson.build\n> index 69f1c38edada..da2504f2e493 100644\n> --- a/include/android/meson.build\n> +++ b/include/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_includes = ([\n>      include_directories('hardware/libhardware/include/'),\n>      include_directories('metadata/'),\n> diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> index 695a4183a0e8..3d5c0dd69bb4 100644\n> --- a/include/ipa/meson.build\n> +++ b/include/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_ipa_api = files([\n>      'ipa_controls.h',\n>      'ipa_interface.h',\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 23c01d3837ba..cea47eb83030 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_api = files([\n>      'bound_method.h',\n>      'buffer.h',\n> diff --git a/include/meson.build b/include/meson.build\n> index 42b2453445b5..4f41c9ceeb4c 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_include_dir = 'libcamera'\n>  \n>  subdir('android')\n> diff --git a/meson.build b/meson.build\n> index 59829e1942ca..e898782a28b0 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  project('libcamera', 'c', 'cpp',\n>      meson_version : '>= 0.47',\n>      version : '0.0.0',\n> diff --git a/meson_options.txt b/meson_options.txt\n> index 68f4f48004e5..badace151bb6 100644\n> --- a/meson_options.txt\n> +++ b/meson_options.txt\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  option('android',\n>          type : 'boolean',\n>          value : false,\n> diff --git a/src/android/meson.build b/src/android/meson.build\n> index 5a5a332e6a6f..822cad621f01 100644\n> --- a/src/android/meson.build\n> +++ b/src/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_hal_sources = files([\n>      'camera3_hal.cpp',\n>      'camera_hal_manager.cpp',\n> diff --git a/src/cam/meson.build b/src/cam/meson.build\n> index 162d6333f94e..89e124fbae2a 100644\n> --- a/src/cam/meson.build\n> +++ b/src/cam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  cam_sources = files([\n>      'buffer_writer.cpp',\n>      'capture.cpp',\n> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> index e119e472cb58..c9f0c13d969d 100644\n> --- a/src/gstreamer/meson.build\n> +++ b/src/gstreamer/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_gst_sources = [\n>      'gstlibcamera-utils.cpp',\n>      'gstlibcamera.cpp',\n> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> index 6f3cd4866ce3..2262640517a0 100644\n> --- a/src/ipa/libipa/meson.build\n> +++ b/src/ipa/libipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libipa_headers = files([\n>      'ipa_interface_wrapper.h',\n>  ])\n> diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> index b103479c1cd0..64deb601054c 100644\n> --- a/src/ipa/meson.build\n> +++ b/src/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n>  ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n>  ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> index 2dece3a468e8..697902e95bc1 100644\n> --- a/src/ipa/raspberrypi/meson.build\n> +++ b/src/ipa/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rpi'\n>  \n>  rpi_ipa_deps = [\n> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> --- a/src/ipa/rkisp1/meson.build\n> +++ b/src/ipa/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rkisp1'\n>  \n>  mod = shared_module(ipa_name,\n> diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> index c844926da7f2..6532662cfa94 100644\n> --- a/src/ipa/vimc/data/meson.build\n> +++ b/src/ipa/vimc/data/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  conf_files = files([\n>      'vimc.conf',\n>  ])\n> diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> index 22296a029642..8c9df854007a 100644\n> --- a/src/ipa/vimc/meson.build\n> +++ b/src/ipa/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_vimc'\n>  \n>  mod = shared_module(ipa_name,\n> diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> index 683d06133741..1f6af579cca2 100644\n> --- a/src/libcamera/include/meson.build\n> +++ b/src/libcamera/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_headers = files([\n>      'byte_stream_buffer.h',\n>      'camera_controls.h',\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index d8b4d7206aba..d42e9720dbd6 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources = files([\n>      'bound_method.cpp',\n>      'buffer.cpp',\n> diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> index 0ab766a257a0..0e8c5a14f2b3 100644\n> --- a/src/libcamera/pipeline/ipu3/meson.build\n> +++ b/src/libcamera/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipu3.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> index 190ca5a8db92..46424493aa37 100644\n> --- a/src/libcamera/pipeline/meson.build\n> +++ b/src/libcamera/pipeline/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  foreach pipeline : get_option('pipelines')\n>      subdir(pipeline)\n>  endforeach\n> diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> index 737857977831..fc117b77bdd1 100644\n> --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'raspberrypi.cpp'\n>  ])\n> diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> index d04fb45223e7..1ab3964a6db1 100644\n> --- a/src/libcamera/pipeline/rkisp1/meson.build\n> +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'rkisp1.cpp',\n>      'timeline.cpp',\n> diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> index 8372f24e3788..9c99b32f69f3 100644\n> --- a/src/libcamera/pipeline/simple/meson.build\n> +++ b/src/libcamera/pipeline/simple/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'converter.cpp',\n>      'simple.cpp',\n> diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> index c19ae2389f48..a3c2efd424bf 100644\n> --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'uvcvideo.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> index 615ecd20f1a2..290eefb5d076 100644\n> --- a/src/libcamera/pipeline/vimc/meson.build\n> +++ b/src/libcamera/pipeline/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'vimc.cpp',\n>  ])\n> diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> index 6c00d5f30ad2..bd804750748a 100644\n> --- a/src/libcamera/proxy/meson.build\n> +++ b/src/libcamera/proxy/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipa_proxy_linux.cpp',\n>      'ipa_proxy_thread.cpp',\n> diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> index 839156f7591a..1b1bee5e0170 100644\n> --- a/src/libcamera/proxy/worker/meson.build\n> +++ b/src/libcamera/proxy/worker/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_proxy_sources = [\n>      ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n>  ]\n> diff --git a/src/meson.build b/src/meson.build\n> index c9c1008562b1..d69b4c1ea978 100644\n> --- a/src/meson.build\n> +++ b/src/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  if get_option('android')\n>      subdir('android')\n>  endif\n> diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> index 949ef6149c8a..045db52acf26 100644\n> --- a/src/qcam/meson.build\n> +++ b/src/qcam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  qcam_sources = files([\n>      '../cam/options.cpp',\n>      '../cam/stream_options.cpp',\n> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> index efab968f7729..fc1be82d1b02 100644\n> --- a/src/v4l2/meson.build\n> +++ b/src/v4l2/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_compat_sources = files([\n>      'v4l2_camera.cpp',\n>      'v4l2_camera_proxy.cpp',\n> diff --git a/test/camera/meson.build b/test/camera/meson.build\n> index e2a6660a7a92..0395e7ddc7a4 100644\n> --- a/test/camera/meson.build\n> +++ b/test/camera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  camera_tests = [\n> diff --git a/test/controls/meson.build b/test/controls/meson.build\n> index 7fff2413007e..545fb03b16c6 100644\n> --- a/test/controls/meson.build\n> +++ b/test/controls/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  control_tests = [\n>      [ 'control_info',               'control_info.cpp' ],\n>      [ 'control_info_map',           'control_info_map.cpp' ],\n> diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> index f925c50a085e..ba672f3f9d8b 100644\n> --- a/test/ipa/meson.build\n> +++ b/test/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_test = [\n>      ['ipa_module_test',     'ipa_module_test.cpp'],\n>      ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> index cc46b41c7687..650df1d63444 100644\n> --- a/test/ipc/meson.build\n> +++ b/test/ipc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipc_tests = [\n>      [ 'unixsocket',  'unixsocket.cpp' ],\n>  ]\n> diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> index 33565e0eb3b6..481f6d6baa61 100644\n> --- a/test/libtest/meson.build\n> +++ b/test/libtest/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libtest_sources = files([\n>      'buffer_source.cpp',\n>      'camera_test.cpp',\n> diff --git a/test/log/meson.build b/test/log/meson.build\n> index 95f6c1a2ae4a..8cd664e04a00 100644\n> --- a/test/log/meson.build\n> +++ b/test/log/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  log_test = [\n>      ['log_api',     'log_api.cpp'],\n>      ['log_process', 'log_process.cpp'],\n> diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> index 6a0e468434b5..1dfcdd8bd744 100644\n> --- a/test/media_device/meson.build\n> +++ b/test/media_device/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  lib_mdev_test_sources = files([\n>      'media_device_test.cpp',\n>  ])\n> diff --git a/test/meson.build b/test/meson.build\n> index 5a45a85effd3..bd7da147c70e 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('libtest')\n>  \n>  subdir('camera')\n> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> index d02927c9af86..d062ecd269f2 100644\n> --- a/test/pipeline/ipu3/meson.build\n> +++ b/test/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_test = [\n>      ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> index 157f789ceb25..6e7901fee38f 100644\n> --- a/test/pipeline/meson.build\n> +++ b/test/pipeline/meson.build\n> @@ -1,2 +1,4 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n>  subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> index d3f974964fc4..ece147b054e4 100644\n> --- a/test/pipeline/rkisp1/meson.build\n> +++ b/test/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  rkisp1_test = [\n>      ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/process/meson.build b/test/process/meson.build\n> index c4d83d6c8b39..c215fa7e6c12 100644\n> --- a/test/process/meson.build\n> +++ b/test/process/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  process_tests = [\n>      [ 'process_test',  'process_test.cpp' ],\n>  ]\n> diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> index d78d92e61887..a9d9cbcb7d80 100644\n> --- a/test/serialization/meson.build\n> +++ b/test/serialization/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  serialization_tests = [\n>      [ 'control_serialization',    'control_serialization.cpp' ],\n>  ]\n> diff --git a/test/stream/meson.build b/test/stream/meson.build\n> index 005f4aa4996a..2b9b29a9143b 100644\n> --- a/test/stream/meson.build\n> +++ b/test/stream/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  stream_tests = [\n>      [ 'stream_formats', 'stream_formats.cpp' ],\n>  ]\n> diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> index 0521984b2a78..5f0882ca9772 100644\n> --- a/test/v4l2_subdevice/meson.build\n> +++ b/test/v4l2_subdevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_subdevice_tests = [\n>    [ 'list_formats',             'list_formats.cpp'],\n>    [ 'test_formats',             'test_formats.cpp'],\n> diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> index 685fcf6d16d7..b4bb30908027 100644\n> --- a/test/v4l2_videodevice/meson.build\n> +++ b/test/v4l2_videodevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  v4l2_videodevice_tests = [\n> diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> index 49c45856eea6..88049f589561 100644\n> --- a/utils/ipu3/meson.build\n> +++ b/utils/ipu3/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> diff --git a/utils/meson.build b/utils/meson.build\n> index f434c79c0ae3..c3cd9d69f887 100644\n> --- a/utils/meson.build\n> +++ b/utils/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n>","headers":{"Return-Path":"<kieran.bingham@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 099E5603DF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 10:02:18 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 25ECC33E;\n\tTue, 12 May 2020 10:02:17 +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=\"sv2Z0tF6\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1589270537;\n\tbh=bV9yB1ONHt9hfWNizNsigGnglaNNp5W2d/TTIAFGluk=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=sv2Z0tF6H8PJ0fdsTT/LZpPePsh9UH957b4GEVvWyTJD43UpMGvRe1MOSurFzN6gC\n\tJs9RbcrHXZtdWDNBfmE5TdjP5w8irTF986zVI+ngdvDDbZR25oU0sOihGfTjinp+P5\n\tFfW7rUlX9Ck1DhEhMcpCWdmZh3o3oumVAPn7D3JY=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Nicolas Dufresne <nicolas.dufresne@collabora.com>,\n\tFabrice Fontaine <fontaine.fabrice@gmail.com>,\n\tGiulio Benetti <giulio.benetti@micronovasrl.com>","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\tmQINBFYE/WYBEACs1PwjMD9rgCu1hlIiUA1AXR4rv2v+BCLUq//vrX5S5bjzxKAryRf0uHat\n\tV/zwz6hiDrZuHUACDB7X8OaQcwhLaVlq6byfoBr25+hbZG7G3+5EUl9cQ7dQEdvNj6V6y/SC\n\trRanWfelwQThCHckbobWiQJfK9n7rYNcPMq9B8e9F020LFH7Kj6YmO95ewJGgLm+idg1Kb3C\n\tpotzWkXc1xmPzcQ1fvQMOfMwdS+4SNw4rY9f07Xb2K99rjMwZVDgESKIzhsDB5GY465sCsiQ\n\tcSAZRxqE49RTBq2+EQsbrQpIc8XiffAB8qexh5/QPzCmR4kJgCGeHIXBtgRj+nIkCJPZvZtf\n\tKr2EAbc6tgg6DkAEHJb+1okosV09+0+TXywYvtEop/WUOWQ+zo+Y/OBd+8Ptgt1pDRyOBzL8\n\tRXa8ZqRf0Mwg75D+dKntZeJHzPRJyrlfQokngAAs4PaFt6UfS+ypMAF37T6CeDArQC41V3ko\n\tlPn1yMsVD0p+6i3DPvA/GPIksDC4owjnzVX9kM8Zc5Cx+XoAN0w5Eqo4t6qEVbuettxx55gq\n\t8K8FieAjgjMSxngo/HST8TpFeqI5nVeq0/lqtBRQKumuIqDg+Bkr4L1V/PSB6XgQcOdhtd36\n\tOe9X9dXB8YSNt7VjOcO7BTmFn/Z8r92mSAfHXpb07YJWJosQOQARAQABtDBLaWVyYW4gQmlu\n\tZ2hhbSA8a2llcmFuLmJpbmdoYW1AaWRlYXNvbmJvYXJkLmNvbT6JAlcEEwEKAEECGwMFCwkI\n\tBwIGFQgJCgsCBBYCAwECHgECF4ACGQEWIQSQLdeYP70o/eNy1HqhHkZyEKRh/QUCXWTtygUJ\n\tCyJXZAAKCRChHkZyEKRh/f8dEACTDsbLN2nioNZMwyLuQRUAFcXNolDX48xcUXsWS2QjxaPm\n\tVsJx8Uy8aYkS85mdPBh0C83OovQR/OVbr8AxhGvYqBs3nQvbWuTl/+4od7DfK2VZOoKBAu5S\n\tQK2FYuUcikDqYcFWJ8DQnubxfE8dvzojHEkXw0sA4igINHDDFX3HJGZtLio+WpEFQtCbfTAG\n\tYZslasz1YZRbwEdSsmO3/kqy5eMnczlm8a21A3fKUo3g8oAZEFM+f4DUNzqIltg31OAB/kZS\n\tenKZQ/SWC8PmLg/ZXBrReYakxXtkP6w3FwMlzOlhGxqhIRNiAJfXJBaRhuUWzPOpEDE9q5YJ\n\tBmqQL2WJm1VSNNVxbXJHpaWMH1sA2R00vmvRrPXGwyIO0IPYeUYQa3gsy6k+En/aMQJd27dp\n\taScf9am9PFICPY5T4ppneeJLif2lyLojo0mcHOV+uyrds9XkLpp14GfTkeKPdPMrLLTsHRfH\n\tfA4I4OBpRrEPiGIZB/0im98MkGY/Mu6qxeZmYLCcgD6qz4idOvfgVOrNh+aA8HzIVR+RMW8H\n\tQGBN9f0E3kfwxuhl3omo6V7lDw8XOdmuWZNC9zPq1UfryVHANYbLGz9KJ4Aw6M+OgBC2JpkD\n\thXMdHUkC+d20dwXrwHTlrJi1YNp6rBc+xald3wsUPOZ5z8moTHUX/uPA/qhGsbkCDQRWBP1m\n\tARAAzijkb+Sau4hAncr1JjOY+KyFEdUNxRy+hqTJdJfaYihxyaj0Ee0P0zEi35CbE6lgU0Uz\n\ttih9fiUbSV3wfsWqg1Ut3/5rTKu7kLFp15kF7eqvV4uezXRD3Qu4yjv/rMmEJbbD4cTvGCYI\n\td6MDC417f7vK3hCbCVIZSp3GXxyC1LU+UQr3fFcOyCwmP9vDUR9JV0BSqHHxRDdpUXE26Dk6\n\tmhf0V1YkspE5St814ETXpEus2urZE5yJIUROlWPIL+hm3NEWfAP06vsQUyLvr/GtbOT79vXl\n\tEn1aulcYyu20dRRxhkQ6iILaURcxIAVJJKPi8dsoMnS8pB0QW12AHWuirPF0g6DiuUfPmrA5\n\tPKe56IGlpkjc8cO51lIxHkWTpCMWigRdPDexKX+Sb+W9QWK/0JjIc4t3KBaiG8O4yRX8ml2R\n\t+rxfAVKM6V769P/hWoRGdgUMgYHFpHGSgEt80OKK5HeUPy2cngDUXzwrqiM5Sz6Od0qw5pCk\n\tNlXqI0W/who0iSVM+8+RmyY0OEkxEcci7rRLsGnM15B5PjLJjh1f2ULYkv8s4SnDwMZ/kE04\n\t/UqCMK/KnX8pwXEMCjz0h6qWNpGwJ0/tYIgQJZh6bqkvBrDogAvuhf60Sogw+mH8b+PBlx1L\n\toeTK396wc+4c3BfiC6pNtUS5GpsPMMjYMk7kVvEAEQEAAYkCPAQYAQoAJgIbDBYhBJAt15g/\n\tvSj943LUeqEeRnIQpGH9BQJdizzIBQkLSKZiAAoJEKEeRnIQpGH9eYgQAJpjaWNgqNOnMTmD\n\tMJggbwjIotypzIXfhHNCeTkG7+qCDlSaBPclcPGYrTwCt0YWPU2TgGgJrVhYT20ierN8LUvj\n\t6qOPTd+Uk7NFzL65qkh80ZKNBFddx1AabQpSVQKbdcLb8OFs85kuSvFdgqZwgxA1vl4TFhNz\n\tPZ79NAmXLackAx3sOVFhk4WQaKRshCB7cSl+RIng5S/ThOBlwNlcKG7j7W2MC06BlTbdEkUp\n\tECzuuRBv8wX4OQl+hbWbB/VKIx5HKlLu1eypen/5lNVzSqMMIYkkZcjV2SWQyUGxSwq0O/sx\n\tS0A8/atCHUXOboUsn54qdxrVDaK+6jIAuo8JiRWctP16KjzUM7MO0/+4zllM8EY57rXrj48j\n\tsbEYX0YQnzaj+jO6kJtoZsIaYR7rMMq9aUAjyiaEZpmP1qF/2sYenDx0Fg2BSlLvLvXM0vU8\n\tpQk3kgDu7kb/7PRYrZvBsr21EIQoIjXbZxDz/o7z95frkP71EaICttZ6k9q5oxxA5WC6sTXc\n\tMW8zs8avFNuA9VpXt0YupJd2ijtZy2mpZNG02fFVXhIn4G807G7+9mhuC4XG5rKlBBUXTvPU\n\tAfYnB4JBDLmLzBFavQfvonSfbitgXwCG3vS+9HEwAjU30Bar1PEOmIbiAoMzuKeRm2LVpmq4\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<fa8390c7-8551-a75b-64ce-89bd24f91851@ideasonboard.com>","Date":"Tue, 12 May 2020 09:02:14 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.7.0","MIME-Version":"1.0","In-Reply-To":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Tue, 12 May 2020 08:02:18 -0000"}},{"id":4803,"web_url":"https://patchwork.libcamera.org/comment/4803/","msgid":"<20200512182657.GD239843@localhost.localdomain>","date":"2020-05-12T18:26:57","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Laurent,\n\nOn Tue, May 12, 2020 at 01:27:21AM +0300, Laurent Pinchart wrote:\n> In an attempt to clarify the license terms of all files in the libcamera\n> project, the build system files deserve particular attention. While they\n> describe how the binaries are created, they are not themselves\n> transformed into any part of binary distributions of the software, and\n> thus don't influece the copyright on the binary packages. They are\n> however subject to copyright, and thus influence the distribution terms\n> of the source packages.\n> \n> Most of the meson.build files would not meet the threshold of\n> originality criteria required for copyright protection. Some of the more\n> complex meson.build files may be elligible for copyright protection. To\n> avoid any ambiguity and uncertainty, state our intent to not assert\n> copyrights on the build system files by putting them in the public\n> domain with the CC0-1.0 license.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nWith the changes proposed by Kieran, looks good to me.\n\nAcked-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n> Changes since v1:\n> \n> - Added meson.build files from the Raspberry Pi pipeline handler\n> ---\n>  Documentation/meson.build                     |   2 +\n>  LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n>  include/android/meson.build                   |   2 +\n>  include/ipa/meson.build                       |   2 +\n>  include/libcamera/meson.build                 |   2 +\n>  include/meson.build                           |   2 +\n>  meson.build                                   |   2 +\n>  meson_options.txt                             |   2 +\n>  src/android/meson.build                       |   2 +\n>  src/cam/meson.build                           |   2 +\n>  src/gstreamer/meson.build                     |   2 +\n>  src/ipa/libipa/meson.build                    |   2 +\n>  src/ipa/meson.build                           |   2 +\n>  src/ipa/raspberrypi/meson.build               |   2 +\n>  src/ipa/rkisp1/meson.build                    |   2 +\n>  src/ipa/vimc/data/meson.build                 |   2 +\n>  src/ipa/vimc/meson.build                      |   2 +\n>  src/libcamera/include/meson.build             |   2 +\n>  src/libcamera/meson.build                     |   2 +\n>  src/libcamera/pipeline/ipu3/meson.build       |   2 +\n>  src/libcamera/pipeline/meson.build            |   2 +\n>  .../pipeline/raspberrypi/meson.build          |   2 +\n>  src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n>  src/libcamera/pipeline/simple/meson.build     |   2 +\n>  src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n>  src/libcamera/pipeline/vimc/meson.build       |   2 +\n>  src/libcamera/proxy/meson.build               |   2 +\n>  src/libcamera/proxy/worker/meson.build        |   2 +\n>  src/meson.build                               |   2 +\n>  src/qcam/meson.build                          |   2 +\n>  src/v4l2/meson.build                          |   2 +\n>  test/camera/meson.build                       |   2 +\n>  test/controls/meson.build                     |   2 +\n>  test/ipa/meson.build                          |   2 +\n>  test/ipc/meson.build                          |   2 +\n>  test/libtest/meson.build                      |   2 +\n>  test/log/meson.build                          |   2 +\n>  test/media_device/meson.build                 |   2 +\n>  test/meson.build                              |   2 +\n>  test/pipeline/ipu3/meson.build                |   2 +\n>  test/pipeline/meson.build                     |   2 +\n>  test/pipeline/rkisp1/meson.build              |   2 +\n>  test/process/meson.build                      |   2 +\n>  test/serialization/meson.build                |   2 +\n>  test/stream/meson.build                       |   2 +\n>  test/v4l2_subdevice/meson.build               |   2 +\n>  test/v4l2_videodevice/meson.build             |   2 +\n>  utils/ipu3/meson.build                        |   2 +\n>  utils/meson.build                             |   2 +\n>  49 files changed, 215 insertions(+)\n>  create mode 100644 LICENSES/CC0-1.0.txt\n> \n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index c4e9892470de..b3b4f0b66f57 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  doc_install_dir = join_paths(get_option('datadir'), 'doc',\n>                               'libcamera-@0@'.format(libcamera_version))\n>  \n> diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> new file mode 100644\n> index 000000000000..a343ccd4335f\n> --- /dev/null\n> +++ b/LICENSES/CC0-1.0.txt\n> @@ -0,0 +1,119 @@\n> +Creative Commons Legal Code\n> +\n> +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> +OR WORKS PROVIDED HEREUNDER.\n> +\n> +Statement of Purpose\n> +\n> +The laws of most jurisdictions throughout the world automatically confer exclusive\n> +Copyright and Related Rights (defined below) upon the creator and subsequent\n> +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> +a database (each, a \"Work\").\n> +\n> +Certain owners wish to permanently relinquish those rights to a Work for the\n> +purpose of contributing to a commons of creative, cultural and scientific\n> +works (\"Commons\") that the public can reliably and without fear of later claims\n> +of infringement build upon, modify, incorporate in other works, reuse and\n> +redistribute as freely as possible in any form whatsoever and for any purposes,\n> +including without limitation commercial purposes. These owners may contribute\n> +to the Commons to promote the ideal of a free culture and the further production\n> +of creative, cultural and scientific works, or to gain reputation or greater\n> +distribution for their Work in part through the use and efforts of others.\n> +\n> +For these and/or other purposes and motivations, and without any expectation\n> +of additional consideration or compensation, the person associating CC0 with\n> +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> +and publicly distribute the Work under its terms, with knowledge of his or\n> +her Copyright and Related Rights in the Work and the meaning and intended\n> +legal effect of CC0 on those rights.\n> +\n> +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> +Copyright and Related Rights include, but are not limited to, the following:\n> +\n> +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> +and translate a Work;\n> +\n> +      ii. moral rights retained by the original author(s) and/or performer(s);\n> +\n> +iii. publicity and privacy rights pertaining to a person's image or likeness\n> +depicted in a Work;\n> +\n> +iv. rights protecting against unfair competition in regards to a Work, subject\n> +to the limitations in paragraph 4(a), below;\n> +\n> +v. rights protecting the extraction, dissemination, use and reuse of data\n> +in a Work;\n> +\n> +vi. database rights (such as those arising under Directive 96/9/EC of the\n> +European Parliament and of the Council of 11 March 1996 on the legal protection\n> +of databases, and under any national implementation thereof, including any\n> +amended or successor version of such directive); and\n> +\n> +vii. other similar, equivalent or corresponding rights throughout the world\n> +based on applicable law or treaty, and any national implementations thereof.\n> +\n> +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> +and Related Rights and associated claims and causes of action, whether now\n> +known or unknown (including existing as well as future claims and causes of\n> +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> +duration provided by applicable law or treaty (including future time extensions),\n> +(iii) in any current or future medium and for any number of copies, and (iv)\n> +for any purpose whatsoever, including without limitation commercial, advertising\n> +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> +benefit of each member of the public at large and to the detriment of Affirmer's\n> +heirs and successors, fully intending that such Waiver shall not be subject\n> +to revocation, rescission, cancellation, termination, or any other legal or\n> +equitable action to disrupt the quiet enjoyment of the Work by the public\n> +as contemplated by Affirmer's express Statement of Purpose.\n> +\n> +3. Public License Fallback. Should any part of the Waiver for any reason be\n> +judged legally invalid or ineffective under applicable law, then the Waiver\n> +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> +express Statement of Purpose. In addition, to the extent the Waiver is so\n> +judged Affirmer hereby grants to each affected person a royalty-free, non\n> +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> +law or treaty (including future time extensions), (iii) in any current or\n> +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> +including without limitation commercial, advertising or promotional purposes\n> +(the \"License\"). The License shall be deemed effective as of the date CC0\n> +was applied by Affirmer to the Work. Should any part of the License for any\n> +reason be judged legally invalid or ineffective under applicable law, such\n> +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> +the License, and in such case Affirmer hereby affirms that he or she will\n> +not (i) exercise any of his or her remaining Copyright and Related Rights\n> +in the Work or (ii) assert any associated claims and causes of action with\n> +respect to the Work, in either case contrary to Affirmer's express Statement\n> +of Purpose.\n> +\n> +   4. Limitations and Disclaimers.\n> +\n> +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> +licensed or otherwise affected by this document.\n> +\n> +b. Affirmer offers the Work as-is and makes no representations or warranties\n> +of any kind concerning the Work, express, implied, statutory or otherwise,\n> +including without limitation warranties of title, merchantability, fitness\n> +for a particular purpose, non infringement, or the absence of latent or other\n> +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> +all to the greatest extent permissible under applicable law.\n> +\n> +c. Affirmer disclaims responsibility for clearing rights of other persons\n> +that may apply to the Work or any use thereof, including without limitation\n> +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> +responsibility for obtaining any necessary consents, permissions or other\n> +rights required for any use of the Work.\n> +\n> +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> +to this document and has no duty or obligation with respect to this CC0 or\n> +use of the Work.\n> diff --git a/include/android/meson.build b/include/android/meson.build\n> index 69f1c38edada..da2504f2e493 100644\n> --- a/include/android/meson.build\n> +++ b/include/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_includes = ([\n>      include_directories('hardware/libhardware/include/'),\n>      include_directories('metadata/'),\n> diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> index 695a4183a0e8..3d5c0dd69bb4 100644\n> --- a/include/ipa/meson.build\n> +++ b/include/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_ipa_api = files([\n>      'ipa_controls.h',\n>      'ipa_interface.h',\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 23c01d3837ba..cea47eb83030 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_api = files([\n>      'bound_method.h',\n>      'buffer.h',\n> diff --git a/include/meson.build b/include/meson.build\n> index 42b2453445b5..4f41c9ceeb4c 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_include_dir = 'libcamera'\n>  \n>  subdir('android')\n> diff --git a/meson.build b/meson.build\n> index 59829e1942ca..e898782a28b0 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  project('libcamera', 'c', 'cpp',\n>      meson_version : '>= 0.47',\n>      version : '0.0.0',\n> diff --git a/meson_options.txt b/meson_options.txt\n> index 68f4f48004e5..badace151bb6 100644\n> --- a/meson_options.txt\n> +++ b/meson_options.txt\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  option('android',\n>          type : 'boolean',\n>          value : false,\n> diff --git a/src/android/meson.build b/src/android/meson.build\n> index 5a5a332e6a6f..822cad621f01 100644\n> --- a/src/android/meson.build\n> +++ b/src/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_hal_sources = files([\n>      'camera3_hal.cpp',\n>      'camera_hal_manager.cpp',\n> diff --git a/src/cam/meson.build b/src/cam/meson.build\n> index 162d6333f94e..89e124fbae2a 100644\n> --- a/src/cam/meson.build\n> +++ b/src/cam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  cam_sources = files([\n>      'buffer_writer.cpp',\n>      'capture.cpp',\n> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> index e119e472cb58..c9f0c13d969d 100644\n> --- a/src/gstreamer/meson.build\n> +++ b/src/gstreamer/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_gst_sources = [\n>      'gstlibcamera-utils.cpp',\n>      'gstlibcamera.cpp',\n> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> index 6f3cd4866ce3..2262640517a0 100644\n> --- a/src/ipa/libipa/meson.build\n> +++ b/src/ipa/libipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libipa_headers = files([\n>      'ipa_interface_wrapper.h',\n>  ])\n> diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> index b103479c1cd0..64deb601054c 100644\n> --- a/src/ipa/meson.build\n> +++ b/src/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n>  ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n>  ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> index 2dece3a468e8..697902e95bc1 100644\n> --- a/src/ipa/raspberrypi/meson.build\n> +++ b/src/ipa/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rpi'\n>  \n>  rpi_ipa_deps = [\n> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> --- a/src/ipa/rkisp1/meson.build\n> +++ b/src/ipa/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rkisp1'\n>  \n>  mod = shared_module(ipa_name,\n> diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> index c844926da7f2..6532662cfa94 100644\n> --- a/src/ipa/vimc/data/meson.build\n> +++ b/src/ipa/vimc/data/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  conf_files = files([\n>      'vimc.conf',\n>  ])\n> diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> index 22296a029642..8c9df854007a 100644\n> --- a/src/ipa/vimc/meson.build\n> +++ b/src/ipa/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_vimc'\n>  \n>  mod = shared_module(ipa_name,\n> diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> index 683d06133741..1f6af579cca2 100644\n> --- a/src/libcamera/include/meson.build\n> +++ b/src/libcamera/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_headers = files([\n>      'byte_stream_buffer.h',\n>      'camera_controls.h',\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index d8b4d7206aba..d42e9720dbd6 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources = files([\n>      'bound_method.cpp',\n>      'buffer.cpp',\n> diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> index 0ab766a257a0..0e8c5a14f2b3 100644\n> --- a/src/libcamera/pipeline/ipu3/meson.build\n> +++ b/src/libcamera/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipu3.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> index 190ca5a8db92..46424493aa37 100644\n> --- a/src/libcamera/pipeline/meson.build\n> +++ b/src/libcamera/pipeline/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  foreach pipeline : get_option('pipelines')\n>      subdir(pipeline)\n>  endforeach\n> diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> index 737857977831..fc117b77bdd1 100644\n> --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'raspberrypi.cpp'\n>  ])\n> diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> index d04fb45223e7..1ab3964a6db1 100644\n> --- a/src/libcamera/pipeline/rkisp1/meson.build\n> +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'rkisp1.cpp',\n>      'timeline.cpp',\n> diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> index 8372f24e3788..9c99b32f69f3 100644\n> --- a/src/libcamera/pipeline/simple/meson.build\n> +++ b/src/libcamera/pipeline/simple/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'converter.cpp',\n>      'simple.cpp',\n> diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> index c19ae2389f48..a3c2efd424bf 100644\n> --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'uvcvideo.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> index 615ecd20f1a2..290eefb5d076 100644\n> --- a/src/libcamera/pipeline/vimc/meson.build\n> +++ b/src/libcamera/pipeline/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'vimc.cpp',\n>  ])\n> diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> index 6c00d5f30ad2..bd804750748a 100644\n> --- a/src/libcamera/proxy/meson.build\n> +++ b/src/libcamera/proxy/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipa_proxy_linux.cpp',\n>      'ipa_proxy_thread.cpp',\n> diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> index 839156f7591a..1b1bee5e0170 100644\n> --- a/src/libcamera/proxy/worker/meson.build\n> +++ b/src/libcamera/proxy/worker/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_proxy_sources = [\n>      ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n>  ]\n> diff --git a/src/meson.build b/src/meson.build\n> index c9c1008562b1..d69b4c1ea978 100644\n> --- a/src/meson.build\n> +++ b/src/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  if get_option('android')\n>      subdir('android')\n>  endif\n> diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> index 949ef6149c8a..045db52acf26 100644\n> --- a/src/qcam/meson.build\n> +++ b/src/qcam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  qcam_sources = files([\n>      '../cam/options.cpp',\n>      '../cam/stream_options.cpp',\n> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> index efab968f7729..fc1be82d1b02 100644\n> --- a/src/v4l2/meson.build\n> +++ b/src/v4l2/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_compat_sources = files([\n>      'v4l2_camera.cpp',\n>      'v4l2_camera_proxy.cpp',\n> diff --git a/test/camera/meson.build b/test/camera/meson.build\n> index e2a6660a7a92..0395e7ddc7a4 100644\n> --- a/test/camera/meson.build\n> +++ b/test/camera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  camera_tests = [\n> diff --git a/test/controls/meson.build b/test/controls/meson.build\n> index 7fff2413007e..545fb03b16c6 100644\n> --- a/test/controls/meson.build\n> +++ b/test/controls/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  control_tests = [\n>      [ 'control_info',               'control_info.cpp' ],\n>      [ 'control_info_map',           'control_info_map.cpp' ],\n> diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> index f925c50a085e..ba672f3f9d8b 100644\n> --- a/test/ipa/meson.build\n> +++ b/test/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_test = [\n>      ['ipa_module_test',     'ipa_module_test.cpp'],\n>      ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> index cc46b41c7687..650df1d63444 100644\n> --- a/test/ipc/meson.build\n> +++ b/test/ipc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipc_tests = [\n>      [ 'unixsocket',  'unixsocket.cpp' ],\n>  ]\n> diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> index 33565e0eb3b6..481f6d6baa61 100644\n> --- a/test/libtest/meson.build\n> +++ b/test/libtest/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libtest_sources = files([\n>      'buffer_source.cpp',\n>      'camera_test.cpp',\n> diff --git a/test/log/meson.build b/test/log/meson.build\n> index 95f6c1a2ae4a..8cd664e04a00 100644\n> --- a/test/log/meson.build\n> +++ b/test/log/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  log_test = [\n>      ['log_api',     'log_api.cpp'],\n>      ['log_process', 'log_process.cpp'],\n> diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> index 6a0e468434b5..1dfcdd8bd744 100644\n> --- a/test/media_device/meson.build\n> +++ b/test/media_device/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  lib_mdev_test_sources = files([\n>      'media_device_test.cpp',\n>  ])\n> diff --git a/test/meson.build b/test/meson.build\n> index 5a45a85effd3..bd7da147c70e 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('libtest')\n>  \n>  subdir('camera')\n> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> index d02927c9af86..d062ecd269f2 100644\n> --- a/test/pipeline/ipu3/meson.build\n> +++ b/test/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_test = [\n>      ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> index 157f789ceb25..6e7901fee38f 100644\n> --- a/test/pipeline/meson.build\n> +++ b/test/pipeline/meson.build\n> @@ -1,2 +1,4 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n>  subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> index d3f974964fc4..ece147b054e4 100644\n> --- a/test/pipeline/rkisp1/meson.build\n> +++ b/test/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  rkisp1_test = [\n>      ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/process/meson.build b/test/process/meson.build\n> index c4d83d6c8b39..c215fa7e6c12 100644\n> --- a/test/process/meson.build\n> +++ b/test/process/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  process_tests = [\n>      [ 'process_test',  'process_test.cpp' ],\n>  ]\n> diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> index d78d92e61887..a9d9cbcb7d80 100644\n> --- a/test/serialization/meson.build\n> +++ b/test/serialization/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  serialization_tests = [\n>      [ 'control_serialization',    'control_serialization.cpp' ],\n>  ]\n> diff --git a/test/stream/meson.build b/test/stream/meson.build\n> index 005f4aa4996a..2b9b29a9143b 100644\n> --- a/test/stream/meson.build\n> +++ b/test/stream/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  stream_tests = [\n>      [ 'stream_formats', 'stream_formats.cpp' ],\n>  ]\n> diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> index 0521984b2a78..5f0882ca9772 100644\n> --- a/test/v4l2_subdevice/meson.build\n> +++ b/test/v4l2_subdevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_subdevice_tests = [\n>    [ 'list_formats',             'list_formats.cpp'],\n>    [ 'test_formats',             'test_formats.cpp'],\n> diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> index 685fcf6d16d7..b4bb30908027 100644\n> --- a/test/v4l2_videodevice/meson.build\n> +++ b/test/v4l2_videodevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  v4l2_videodevice_tests = [\n> diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> index 49c45856eea6..88049f589561 100644\n> --- a/utils/ipu3/meson.build\n> +++ b/utils/ipu3/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> diff --git a/utils/meson.build b/utils/meson.build\n> index f434c79c0ae3..c3cd9d69f887 100644\n> --- a/utils/meson.build\n> +++ b/utils/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<paul.elder@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 DC223603E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 20:27:03 +0200 (CEST)","from localhost.localdomain (unknown [96.44.9.247])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1E55851F;\n\tTue, 12 May 2020 20:27:01 +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=\"eCJij96/\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1589308023;\n\tbh=Ht1G2wvD+ucAk3DuuHkNf9+zlLDyWxz9/xE0U6VPZpY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=eCJij96/sCGWd3JoAdBRmPp+dFY/0KuZS9YHin3bGCNTYrKPmjZbVxYKl94Nj6x61\n\tGrYVUZa5qUj4ah5S4L+Jk9p0GN/pI1qeOqnGw3N1vxKZK0vQW8tcZhA6QneuLl1Y/D\n\tGeH+/TiZuhDwVGlsji9DTJTRNJU4+vpCLV7XyoDs=","Date":"Tue, 12 May 2020 14:26:57 -0400","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>,\n\tFabrice Fontaine <fontaine.fabrice@gmail.com>,\n\tGiulio Benetti <giulio.benetti@micronovasrl.com>","Message-ID":"<20200512182657.GD239843@localhost.localdomain>","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Tue, 12 May 2020 18:27:04 -0000"}},{"id":4805,"web_url":"https://patchwork.libcamera.org/comment/4805/","msgid":"<20200512190305.GB25523@pendragon.ideasonboard.com>","date":"2020-05-12T19:03:05","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Tue, May 12, 2020 at 09:02:14AM +0100, Kieran Bingham wrote:\n> On 11/05/2020 23:27, Laurent Pinchart wrote:\n> > In an attempt to clarify the license terms of all files in the libcamera\n> > project, the build system files deserve particular attention. While they\n> > describe how the binaries are created, they are not themselves\n> > transformed into any part of binary distributions of the software, and\n> > thus don't influece the copyright on the binary packages. They are\n> \n> s/influece/influence/\n> \n> > however subject to copyright, and thus influence the distribution terms\n> > of the source packages.\n> > \n> > Most of the meson.build files would not meet the threshold of\n> > originality criteria required for copyright protection. Some of the more\n> > complex meson.build files may be elligible for copyright protection. To\n> \n> s/elligible/eligible/\n> \n> > avoid any ambiguity and uncertainty, state our intent to not assert\n> > copyrights on the build system files by putting them in the public\n> > domain with the CC0-1.0 license.\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> This seems like a good option to me.\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> and for any meson.build files I have authored:\n> \n> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > ---\n> > Changes since v1:\n> > \n> > - Added meson.build files from the Raspberry Pi pipeline handler\n> \n> Do we need to get an explicit ack from Raspberry Pi here?\n\nStrictly speaking, I don't think any ack is required as the meson.build\nfiles involved there likely don't pass the threshold of originality\ntest. I however think it's best to collect acks, both to be safe, and as\na friendly move towards contributors. I thought I had CC'ed Naush and\nDavid on this, it seems it wasn't the case. Fixed now.\n\n> > ---\n> >  Documentation/meson.build                     |   2 +\n> >  LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n> >  include/android/meson.build                   |   2 +\n> >  include/ipa/meson.build                       |   2 +\n> >  include/libcamera/meson.build                 |   2 +\n> >  include/meson.build                           |   2 +\n> >  meson.build                                   |   2 +\n> >  meson_options.txt                             |   2 +\n> >  src/android/meson.build                       |   2 +\n> >  src/cam/meson.build                           |   2 +\n> >  src/gstreamer/meson.build                     |   2 +\n> >  src/ipa/libipa/meson.build                    |   2 +\n> >  src/ipa/meson.build                           |   2 +\n> >  src/ipa/raspberrypi/meson.build               |   2 +\n> >  src/ipa/rkisp1/meson.build                    |   2 +\n> >  src/ipa/vimc/data/meson.build                 |   2 +\n> >  src/ipa/vimc/meson.build                      |   2 +\n> >  src/libcamera/include/meson.build             |   2 +\n> >  src/libcamera/meson.build                     |   2 +\n> >  src/libcamera/pipeline/ipu3/meson.build       |   2 +\n> >  src/libcamera/pipeline/meson.build            |   2 +\n> >  .../pipeline/raspberrypi/meson.build          |   2 +\n> >  src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n> >  src/libcamera/pipeline/simple/meson.build     |   2 +\n> >  src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n> >  src/libcamera/pipeline/vimc/meson.build       |   2 +\n> >  src/libcamera/proxy/meson.build               |   2 +\n> >  src/libcamera/proxy/worker/meson.build        |   2 +\n> >  src/meson.build                               |   2 +\n> >  src/qcam/meson.build                          |   2 +\n> >  src/v4l2/meson.build                          |   2 +\n> >  test/camera/meson.build                       |   2 +\n> >  test/controls/meson.build                     |   2 +\n> >  test/ipa/meson.build                          |   2 +\n> >  test/ipc/meson.build                          |   2 +\n> >  test/libtest/meson.build                      |   2 +\n> >  test/log/meson.build                          |   2 +\n> >  test/media_device/meson.build                 |   2 +\n> >  test/meson.build                              |   2 +\n> >  test/pipeline/ipu3/meson.build                |   2 +\n> >  test/pipeline/meson.build                     |   2 +\n> >  test/pipeline/rkisp1/meson.build              |   2 +\n> >  test/process/meson.build                      |   2 +\n> >  test/serialization/meson.build                |   2 +\n> >  test/stream/meson.build                       |   2 +\n> >  test/v4l2_subdevice/meson.build               |   2 +\n> >  test/v4l2_videodevice/meson.build             |   2 +\n> >  utils/ipu3/meson.build                        |   2 +\n> >  utils/meson.build                             |   2 +\n> >  49 files changed, 215 insertions(+)\n> >  create mode 100644 LICENSES/CC0-1.0.txt\n> > \n> > diff --git a/Documentation/meson.build b/Documentation/meson.build\n> > index c4e9892470de..b3b4f0b66f57 100644\n> > --- a/Documentation/meson.build\n> > +++ b/Documentation/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  doc_install_dir = join_paths(get_option('datadir'), 'doc',\n> >                               'libcamera-@0@'.format(libcamera_version))\n> >  \n> > diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> > new file mode 100644\n> > index 000000000000..a343ccd4335f\n> > --- /dev/null\n> > +++ b/LICENSES/CC0-1.0.txt\n> > @@ -0,0 +1,119 @@\n> > +Creative Commons Legal Code\n> > +\n> > +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> > +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> > +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> > +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> > +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> > +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> > +OR WORKS PROVIDED HEREUNDER.\n> > +\n> > +Statement of Purpose\n> > +\n> > +The laws of most jurisdictions throughout the world automatically confer exclusive\n> > +Copyright and Related Rights (defined below) upon the creator and subsequent\n> > +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> > +a database (each, a \"Work\").\n> > +\n> > +Certain owners wish to permanently relinquish those rights to a Work for the\n> > +purpose of contributing to a commons of creative, cultural and scientific\n> > +works (\"Commons\") that the public can reliably and without fear of later claims\n> > +of infringement build upon, modify, incorporate in other works, reuse and\n> > +redistribute as freely as possible in any form whatsoever and for any purposes,\n> > +including without limitation commercial purposes. These owners may contribute\n> > +to the Commons to promote the ideal of a free culture and the further production\n> > +of creative, cultural and scientific works, or to gain reputation or greater\n> > +distribution for their Work in part through the use and efforts of others.\n> > +\n> > +For these and/or other purposes and motivations, and without any expectation\n> > +of additional consideration or compensation, the person associating CC0 with\n> > +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> > +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> > +and publicly distribute the Work under its terms, with knowledge of his or\n> > +her Copyright and Related Rights in the Work and the meaning and intended\n> > +legal effect of CC0 on those rights.\n> > +\n> > +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> > +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> > +Copyright and Related Rights include, but are not limited to, the following:\n> > +\n> > +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> > +and translate a Work;\n> > +\n> > +      ii. moral rights retained by the original author(s) and/or performer(s);\n> > +\n> > +iii. publicity and privacy rights pertaining to a person's image or likeness\n> > +depicted in a Work;\n> > +\n> > +iv. rights protecting against unfair competition in regards to a Work, subject\n> > +to the limitations in paragraph 4(a), below;\n> > +\n> > +v. rights protecting the extraction, dissemination, use and reuse of data\n> > +in a Work;\n> > +\n> > +vi. database rights (such as those arising under Directive 96/9/EC of the\n> > +European Parliament and of the Council of 11 March 1996 on the legal protection\n> > +of databases, and under any national implementation thereof, including any\n> > +amended or successor version of such directive); and\n> > +\n> > +vii. other similar, equivalent or corresponding rights throughout the world\n> > +based on applicable law or treaty, and any national implementations thereof.\n> > +\n> > +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> > +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> > +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> > +and Related Rights and associated claims and causes of action, whether now\n> > +known or unknown (including existing as well as future claims and causes of\n> > +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> > +duration provided by applicable law or treaty (including future time extensions),\n> > +(iii) in any current or future medium and for any number of copies, and (iv)\n> > +for any purpose whatsoever, including without limitation commercial, advertising\n> > +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> > +benefit of each member of the public at large and to the detriment of Affirmer's\n> > +heirs and successors, fully intending that such Waiver shall not be subject\n> > +to revocation, rescission, cancellation, termination, or any other legal or\n> > +equitable action to disrupt the quiet enjoyment of the Work by the public\n> > +as contemplated by Affirmer's express Statement of Purpose.\n> > +\n> > +3. Public License Fallback. Should any part of the Waiver for any reason be\n> > +judged legally invalid or ineffective under applicable law, then the Waiver\n> > +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> > +express Statement of Purpose. In addition, to the extent the Waiver is so\n> > +judged Affirmer hereby grants to each affected person a royalty-free, non\n> > +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> > +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> > +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> > +law or treaty (including future time extensions), (iii) in any current or\n> > +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> > +including without limitation commercial, advertising or promotional purposes\n> > +(the \"License\"). The License shall be deemed effective as of the date CC0\n> > +was applied by Affirmer to the Work. Should any part of the License for any\n> > +reason be judged legally invalid or ineffective under applicable law, such\n> > +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> > +the License, and in such case Affirmer hereby affirms that he or she will\n> > +not (i) exercise any of his or her remaining Copyright and Related Rights\n> > +in the Work or (ii) assert any associated claims and causes of action with\n> > +respect to the Work, in either case contrary to Affirmer's express Statement\n> > +of Purpose.\n> > +\n> > +   4. Limitations and Disclaimers.\n> > +\n> > +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> > +licensed or otherwise affected by this document.\n> > +\n> > +b. Affirmer offers the Work as-is and makes no representations or warranties\n> > +of any kind concerning the Work, express, implied, statutory or otherwise,\n> > +including without limitation warranties of title, merchantability, fitness\n> > +for a particular purpose, non infringement, or the absence of latent or other\n> > +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> > +all to the greatest extent permissible under applicable law.\n> > +\n> > +c. Affirmer disclaims responsibility for clearing rights of other persons\n> > +that may apply to the Work or any use thereof, including without limitation\n> > +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> > +responsibility for obtaining any necessary consents, permissions or other\n> > +rights required for any use of the Work.\n> > +\n> > +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> > +to this document and has no duty or obligation with respect to this CC0 or\n> > +use of the Work.\n> > diff --git a/include/android/meson.build b/include/android/meson.build\n> > index 69f1c38edada..da2504f2e493 100644\n> > --- a/include/android/meson.build\n> > +++ b/include/android/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  android_includes = ([\n> >      include_directories('hardware/libhardware/include/'),\n> >      include_directories('metadata/'),\n> > diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> > index 695a4183a0e8..3d5c0dd69bb4 100644\n> > --- a/include/ipa/meson.build\n> > +++ b/include/ipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_ipa_api = files([\n> >      'ipa_controls.h',\n> >      'ipa_interface.h',\n> > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> > index 23c01d3837ba..cea47eb83030 100644\n> > --- a/include/libcamera/meson.build\n> > +++ b/include/libcamera/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_api = files([\n> >      'bound_method.h',\n> >      'buffer.h',\n> > diff --git a/include/meson.build b/include/meson.build\n> > index 42b2453445b5..4f41c9ceeb4c 100644\n> > --- a/include/meson.build\n> > +++ b/include/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_include_dir = 'libcamera'\n> >  \n> >  subdir('android')\n> > diff --git a/meson.build b/meson.build\n> > index 59829e1942ca..e898782a28b0 100644\n> > --- a/meson.build\n> > +++ b/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  project('libcamera', 'c', 'cpp',\n> >      meson_version : '>= 0.47',\n> >      version : '0.0.0',\n> > diff --git a/meson_options.txt b/meson_options.txt\n> > index 68f4f48004e5..badace151bb6 100644\n> > --- a/meson_options.txt\n> > +++ b/meson_options.txt\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  option('android',\n> >          type : 'boolean',\n> >          value : false,\n> > diff --git a/src/android/meson.build b/src/android/meson.build\n> > index 5a5a332e6a6f..822cad621f01 100644\n> > --- a/src/android/meson.build\n> > +++ b/src/android/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  android_hal_sources = files([\n> >      'camera3_hal.cpp',\n> >      'camera_hal_manager.cpp',\n> > diff --git a/src/cam/meson.build b/src/cam/meson.build\n> > index 162d6333f94e..89e124fbae2a 100644\n> > --- a/src/cam/meson.build\n> > +++ b/src/cam/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  cam_sources = files([\n> >      'buffer_writer.cpp',\n> >      'capture.cpp',\n> > diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> > index e119e472cb58..c9f0c13d969d 100644\n> > --- a/src/gstreamer/meson.build\n> > +++ b/src/gstreamer/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_gst_sources = [\n> >      'gstlibcamera-utils.cpp',\n> >      'gstlibcamera.cpp',\n> > diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> > index 6f3cd4866ce3..2262640517a0 100644\n> > --- a/src/ipa/libipa/meson.build\n> > +++ b/src/ipa/libipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libipa_headers = files([\n> >      'ipa_interface_wrapper.h',\n> >  ])\n> > diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> > index b103479c1cd0..64deb601054c 100644\n> > --- a/src/ipa/meson.build\n> > +++ b/src/ipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n> >  ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n> >  ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> > diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> > index 2dece3a468e8..697902e95bc1 100644\n> > --- a/src/ipa/raspberrypi/meson.build\n> > +++ b/src/ipa/raspberrypi/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_name = 'ipa_rpi'\n> >  \n> >  rpi_ipa_deps = [\n> > diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> > index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> > --- a/src/ipa/rkisp1/meson.build\n> > +++ b/src/ipa/rkisp1/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_name = 'ipa_rkisp1'\n> >  \n> >  mod = shared_module(ipa_name,\n> > diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> > index c844926da7f2..6532662cfa94 100644\n> > --- a/src/ipa/vimc/data/meson.build\n> > +++ b/src/ipa/vimc/data/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  conf_files = files([\n> >      'vimc.conf',\n> >  ])\n> > diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> > index 22296a029642..8c9df854007a 100644\n> > --- a/src/ipa/vimc/meson.build\n> > +++ b/src/ipa/vimc/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_name = 'ipa_vimc'\n> >  \n> >  mod = shared_module(ipa_name,\n> > diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> > index 683d06133741..1f6af579cca2 100644\n> > --- a/src/libcamera/include/meson.build\n> > +++ b/src/libcamera/include/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_headers = files([\n> >      'byte_stream_buffer.h',\n> >      'camera_controls.h',\n> > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> > index d8b4d7206aba..d42e9720dbd6 100644\n> > --- a/src/libcamera/meson.build\n> > +++ b/src/libcamera/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources = files([\n> >      'bound_method.cpp',\n> >      'buffer.cpp',\n> > diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> > index 0ab766a257a0..0e8c5a14f2b3 100644\n> > --- a/src/libcamera/pipeline/ipu3/meson.build\n> > +++ b/src/libcamera/pipeline/ipu3/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'ipu3.cpp',\n> >  ])\n> > diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> > index 190ca5a8db92..46424493aa37 100644\n> > --- a/src/libcamera/pipeline/meson.build\n> > +++ b/src/libcamera/pipeline/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  foreach pipeline : get_option('pipelines')\n> >      subdir(pipeline)\n> >  endforeach\n> > diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> > index 737857977831..fc117b77bdd1 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> > +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'raspberrypi.cpp'\n> >  ])\n> > diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> > index d04fb45223e7..1ab3964a6db1 100644\n> > --- a/src/libcamera/pipeline/rkisp1/meson.build\n> > +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'rkisp1.cpp',\n> >      'timeline.cpp',\n> > diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> > index 8372f24e3788..9c99b32f69f3 100644\n> > --- a/src/libcamera/pipeline/simple/meson.build\n> > +++ b/src/libcamera/pipeline/simple/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'converter.cpp',\n> >      'simple.cpp',\n> > diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> > index c19ae2389f48..a3c2efd424bf 100644\n> > --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> > +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'uvcvideo.cpp',\n> >  ])\n> > diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> > index 615ecd20f1a2..290eefb5d076 100644\n> > --- a/src/libcamera/pipeline/vimc/meson.build\n> > +++ b/src/libcamera/pipeline/vimc/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'vimc.cpp',\n> >  ])\n> > diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> > index 6c00d5f30ad2..bd804750748a 100644\n> > --- a/src/libcamera/proxy/meson.build\n> > +++ b/src/libcamera/proxy/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'ipa_proxy_linux.cpp',\n> >      'ipa_proxy_thread.cpp',\n> > diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> > index 839156f7591a..1b1bee5e0170 100644\n> > --- a/src/libcamera/proxy/worker/meson.build\n> > +++ b/src/libcamera/proxy/worker/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_proxy_sources = [\n> >      ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n> >  ]\n> > diff --git a/src/meson.build b/src/meson.build\n> > index c9c1008562b1..d69b4c1ea978 100644\n> > --- a/src/meson.build\n> > +++ b/src/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  if get_option('android')\n> >      subdir('android')\n> >  endif\n> > diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> > index 949ef6149c8a..045db52acf26 100644\n> > --- a/src/qcam/meson.build\n> > +++ b/src/qcam/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  qcam_sources = files([\n> >      '../cam/options.cpp',\n> >      '../cam/stream_options.cpp',\n> > diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> > index efab968f7729..fc1be82d1b02 100644\n> > --- a/src/v4l2/meson.build\n> > +++ b/src/v4l2/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  v4l2_compat_sources = files([\n> >      'v4l2_camera.cpp',\n> >      'v4l2_camera_proxy.cpp',\n> > diff --git a/test/camera/meson.build b/test/camera/meson.build\n> > index e2a6660a7a92..0395e7ddc7a4 100644\n> > --- a/test/camera/meson.build\n> > +++ b/test/camera/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  # Tests are listed in order of complexity.\n> >  # They are not alphabetically sorted.\n> >  camera_tests = [\n> > diff --git a/test/controls/meson.build b/test/controls/meson.build\n> > index 7fff2413007e..545fb03b16c6 100644\n> > --- a/test/controls/meson.build\n> > +++ b/test/controls/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  control_tests = [\n> >      [ 'control_info',               'control_info.cpp' ],\n> >      [ 'control_info_map',           'control_info_map.cpp' ],\n> > diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> > index f925c50a085e..ba672f3f9d8b 100644\n> > --- a/test/ipa/meson.build\n> > +++ b/test/ipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_test = [\n> >      ['ipa_module_test',     'ipa_module_test.cpp'],\n> >      ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> > diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> > index cc46b41c7687..650df1d63444 100644\n> > --- a/test/ipc/meson.build\n> > +++ b/test/ipc/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipc_tests = [\n> >      [ 'unixsocket',  'unixsocket.cpp' ],\n> >  ]\n> > diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> > index 33565e0eb3b6..481f6d6baa61 100644\n> > --- a/test/libtest/meson.build\n> > +++ b/test/libtest/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libtest_sources = files([\n> >      'buffer_source.cpp',\n> >      'camera_test.cpp',\n> > diff --git a/test/log/meson.build b/test/log/meson.build\n> > index 95f6c1a2ae4a..8cd664e04a00 100644\n> > --- a/test/log/meson.build\n> > +++ b/test/log/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  log_test = [\n> >      ['log_api',     'log_api.cpp'],\n> >      ['log_process', 'log_process.cpp'],\n> > diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> > index 6a0e468434b5..1dfcdd8bd744 100644\n> > --- a/test/media_device/meson.build\n> > +++ b/test/media_device/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  lib_mdev_test_sources = files([\n> >      'media_device_test.cpp',\n> >  ])\n> > diff --git a/test/meson.build b/test/meson.build\n> > index 5a45a85effd3..bd7da147c70e 100644\n> > --- a/test/meson.build\n> > +++ b/test/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  subdir('libtest')\n> >  \n> >  subdir('camera')\n> > diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> > index d02927c9af86..d062ecd269f2 100644\n> > --- a/test/pipeline/ipu3/meson.build\n> > +++ b/test/pipeline/ipu3/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipu3_test = [\n> >      ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n> >  ]\n> > diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> > index 157f789ceb25..6e7901fee38f 100644\n> > --- a/test/pipeline/meson.build\n> > +++ b/test/pipeline/meson.build\n> > @@ -1,2 +1,4 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  subdir('ipu3')\n> >  subdir('rkisp1')\n> > diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> > index d3f974964fc4..ece147b054e4 100644\n> > --- a/test/pipeline/rkisp1/meson.build\n> > +++ b/test/pipeline/rkisp1/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  rkisp1_test = [\n> >      ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n> >  ]\n> > diff --git a/test/process/meson.build b/test/process/meson.build\n> > index c4d83d6c8b39..c215fa7e6c12 100644\n> > --- a/test/process/meson.build\n> > +++ b/test/process/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  process_tests = [\n> >      [ 'process_test',  'process_test.cpp' ],\n> >  ]\n> > diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> > index d78d92e61887..a9d9cbcb7d80 100644\n> > --- a/test/serialization/meson.build\n> > +++ b/test/serialization/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  serialization_tests = [\n> >      [ 'control_serialization',    'control_serialization.cpp' ],\n> >  ]\n> > diff --git a/test/stream/meson.build b/test/stream/meson.build\n> > index 005f4aa4996a..2b9b29a9143b 100644\n> > --- a/test/stream/meson.build\n> > +++ b/test/stream/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  stream_tests = [\n> >      [ 'stream_formats', 'stream_formats.cpp' ],\n> >  ]\n> > diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> > index 0521984b2a78..5f0882ca9772 100644\n> > --- a/test/v4l2_subdevice/meson.build\n> > +++ b/test/v4l2_subdevice/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  v4l2_subdevice_tests = [\n> >    [ 'list_formats',             'list_formats.cpp'],\n> >    [ 'test_formats',             'test_formats.cpp'],\n> > diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> > index 685fcf6d16d7..b4bb30908027 100644\n> > --- a/test/v4l2_videodevice/meson.build\n> > +++ b/test/v4l2_videodevice/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  # Tests are listed in order of complexity.\n> >  # They are not alphabetically sorted.\n> >  v4l2_videodevice_tests = [\n> > diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> > index 49c45856eea6..88049f589561 100644\n> > --- a/utils/ipu3/meson.build\n> > +++ b/utils/ipu3/meson.build\n> > @@ -1 +1,3 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> > diff --git a/utils/meson.build b/utils/meson.build\n> > index f434c79c0ae3..c3cd9d69f887 100644\n> > --- a/utils/meson.build\n> > +++ b/utils/meson.build\n> > @@ -1 +1,3 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  subdir('ipu3')","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 57B40603E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 21:03:12 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A141351F;\n\tTue, 12 May 2020 21:03:11 +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=\"boJqT0YW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1589310191;\n\tbh=/rJjjfYVWFMVWCus/+1VHdu9mtSVcPzinLA7zDGAb9M=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=boJqT0YWzemBnKD6M/jYk0gVADyhYQQo2sB7U9mRnGi1BW8Q/t8tFYUFYyWOqcgD6\n\tYXAWDYNHsRCnXKTe/gphpxE7tVfVus77KGPQCKhCkK15a+d/jFEAfFGceNTBklYYiH\n\t1EEkjd08ycXZvISGT3jFy1N0iItO0yyfGnUo7JX0=","Date":"Tue, 12 May 2020 22:03:05 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>,\n\tFabrice Fontaine <fontaine.fabrice@gmail.com>,\n\tGiulio Benetti <giulio.benetti@micronovasrl.com>,\n\tNaushir Patuck <naush@raspberrypi.com>,\n\tDavid Plowman <david.plowman@raspberrypi.com>","Message-ID":"<20200512190305.GB25523@pendragon.ideasonboard.com>","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>\n\t<fa8390c7-8551-a75b-64ce-89bd24f91851@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<fa8390c7-8551-a75b-64ce-89bd24f91851@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Tue, 12 May 2020 19:03:12 -0000"}},{"id":4806,"web_url":"https://patchwork.libcamera.org/comment/4806/","msgid":"<20200512190639.GB2542285@oden.dyn.berto.se>","date":"2020-05-12T19:06:39","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for sorting this out.\n\nOn 2020-05-12 01:27:21 +0300, Laurent Pinchart wrote:\n> In an attempt to clarify the license terms of all files in the libcamera\n> project, the build system files deserve particular attention. While they\n> describe how the binaries are created, they are not themselves\n> transformed into any part of binary distributions of the software, and\n> thus don't influece the copyright on the binary packages. They are\n> however subject to copyright, and thus influence the distribution terms\n> of the source packages.\n> \n> Most of the meson.build files would not meet the threshold of\n> originality criteria required for copyright protection. Some of the more\n> complex meson.build files may be elligible for copyright protection. To\n> avoid any ambiguity and uncertainty, state our intent to not assert\n> copyrights on the build system files by putting them in the public\n> domain with the CC0-1.0 license.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nAcked-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n> Changes since v1:\n> \n> - Added meson.build files from the Raspberry Pi pipeline handler\n> ---\n>  Documentation/meson.build                     |   2 +\n>  LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n>  include/android/meson.build                   |   2 +\n>  include/ipa/meson.build                       |   2 +\n>  include/libcamera/meson.build                 |   2 +\n>  include/meson.build                           |   2 +\n>  meson.build                                   |   2 +\n>  meson_options.txt                             |   2 +\n>  src/android/meson.build                       |   2 +\n>  src/cam/meson.build                           |   2 +\n>  src/gstreamer/meson.build                     |   2 +\n>  src/ipa/libipa/meson.build                    |   2 +\n>  src/ipa/meson.build                           |   2 +\n>  src/ipa/raspberrypi/meson.build               |   2 +\n>  src/ipa/rkisp1/meson.build                    |   2 +\n>  src/ipa/vimc/data/meson.build                 |   2 +\n>  src/ipa/vimc/meson.build                      |   2 +\n>  src/libcamera/include/meson.build             |   2 +\n>  src/libcamera/meson.build                     |   2 +\n>  src/libcamera/pipeline/ipu3/meson.build       |   2 +\n>  src/libcamera/pipeline/meson.build            |   2 +\n>  .../pipeline/raspberrypi/meson.build          |   2 +\n>  src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n>  src/libcamera/pipeline/simple/meson.build     |   2 +\n>  src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n>  src/libcamera/pipeline/vimc/meson.build       |   2 +\n>  src/libcamera/proxy/meson.build               |   2 +\n>  src/libcamera/proxy/worker/meson.build        |   2 +\n>  src/meson.build                               |   2 +\n>  src/qcam/meson.build                          |   2 +\n>  src/v4l2/meson.build                          |   2 +\n>  test/camera/meson.build                       |   2 +\n>  test/controls/meson.build                     |   2 +\n>  test/ipa/meson.build                          |   2 +\n>  test/ipc/meson.build                          |   2 +\n>  test/libtest/meson.build                      |   2 +\n>  test/log/meson.build                          |   2 +\n>  test/media_device/meson.build                 |   2 +\n>  test/meson.build                              |   2 +\n>  test/pipeline/ipu3/meson.build                |   2 +\n>  test/pipeline/meson.build                     |   2 +\n>  test/pipeline/rkisp1/meson.build              |   2 +\n>  test/process/meson.build                      |   2 +\n>  test/serialization/meson.build                |   2 +\n>  test/stream/meson.build                       |   2 +\n>  test/v4l2_subdevice/meson.build               |   2 +\n>  test/v4l2_videodevice/meson.build             |   2 +\n>  utils/ipu3/meson.build                        |   2 +\n>  utils/meson.build                             |   2 +\n>  49 files changed, 215 insertions(+)\n>  create mode 100644 LICENSES/CC0-1.0.txt\n> \n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index c4e9892470de..b3b4f0b66f57 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  doc_install_dir = join_paths(get_option('datadir'), 'doc',\n>                               'libcamera-@0@'.format(libcamera_version))\n>  \n> diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> new file mode 100644\n> index 000000000000..a343ccd4335f\n> --- /dev/null\n> +++ b/LICENSES/CC0-1.0.txt\n> @@ -0,0 +1,119 @@\n> +Creative Commons Legal Code\n> +\n> +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> +OR WORKS PROVIDED HEREUNDER.\n> +\n> +Statement of Purpose\n> +\n> +The laws of most jurisdictions throughout the world automatically confer exclusive\n> +Copyright and Related Rights (defined below) upon the creator and subsequent\n> +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> +a database (each, a \"Work\").\n> +\n> +Certain owners wish to permanently relinquish those rights to a Work for the\n> +purpose of contributing to a commons of creative, cultural and scientific\n> +works (\"Commons\") that the public can reliably and without fear of later claims\n> +of infringement build upon, modify, incorporate in other works, reuse and\n> +redistribute as freely as possible in any form whatsoever and for any purposes,\n> +including without limitation commercial purposes. These owners may contribute\n> +to the Commons to promote the ideal of a free culture and the further production\n> +of creative, cultural and scientific works, or to gain reputation or greater\n> +distribution for their Work in part through the use and efforts of others.\n> +\n> +For these and/or other purposes and motivations, and without any expectation\n> +of additional consideration or compensation, the person associating CC0 with\n> +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> +and publicly distribute the Work under its terms, with knowledge of his or\n> +her Copyright and Related Rights in the Work and the meaning and intended\n> +legal effect of CC0 on those rights.\n> +\n> +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> +Copyright and Related Rights include, but are not limited to, the following:\n> +\n> +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> +and translate a Work;\n> +\n> +      ii. moral rights retained by the original author(s) and/or performer(s);\n> +\n> +iii. publicity and privacy rights pertaining to a person's image or likeness\n> +depicted in a Work;\n> +\n> +iv. rights protecting against unfair competition in regards to a Work, subject\n> +to the limitations in paragraph 4(a), below;\n> +\n> +v. rights protecting the extraction, dissemination, use and reuse of data\n> +in a Work;\n> +\n> +vi. database rights (such as those arising under Directive 96/9/EC of the\n> +European Parliament and of the Council of 11 March 1996 on the legal protection\n> +of databases, and under any national implementation thereof, including any\n> +amended or successor version of such directive); and\n> +\n> +vii. other similar, equivalent or corresponding rights throughout the world\n> +based on applicable law or treaty, and any national implementations thereof.\n> +\n> +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> +and Related Rights and associated claims and causes of action, whether now\n> +known or unknown (including existing as well as future claims and causes of\n> +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> +duration provided by applicable law or treaty (including future time extensions),\n> +(iii) in any current or future medium and for any number of copies, and (iv)\n> +for any purpose whatsoever, including without limitation commercial, advertising\n> +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> +benefit of each member of the public at large and to the detriment of Affirmer's\n> +heirs and successors, fully intending that such Waiver shall not be subject\n> +to revocation, rescission, cancellation, termination, or any other legal or\n> +equitable action to disrupt the quiet enjoyment of the Work by the public\n> +as contemplated by Affirmer's express Statement of Purpose.\n> +\n> +3. Public License Fallback. Should any part of the Waiver for any reason be\n> +judged legally invalid or ineffective under applicable law, then the Waiver\n> +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> +express Statement of Purpose. In addition, to the extent the Waiver is so\n> +judged Affirmer hereby grants to each affected person a royalty-free, non\n> +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> +law or treaty (including future time extensions), (iii) in any current or\n> +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> +including without limitation commercial, advertising or promotional purposes\n> +(the \"License\"). The License shall be deemed effective as of the date CC0\n> +was applied by Affirmer to the Work. Should any part of the License for any\n> +reason be judged legally invalid or ineffective under applicable law, such\n> +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> +the License, and in such case Affirmer hereby affirms that he or she will\n> +not (i) exercise any of his or her remaining Copyright and Related Rights\n> +in the Work or (ii) assert any associated claims and causes of action with\n> +respect to the Work, in either case contrary to Affirmer's express Statement\n> +of Purpose.\n> +\n> +   4. Limitations and Disclaimers.\n> +\n> +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> +licensed or otherwise affected by this document.\n> +\n> +b. Affirmer offers the Work as-is and makes no representations or warranties\n> +of any kind concerning the Work, express, implied, statutory or otherwise,\n> +including without limitation warranties of title, merchantability, fitness\n> +for a particular purpose, non infringement, or the absence of latent or other\n> +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> +all to the greatest extent permissible under applicable law.\n> +\n> +c. Affirmer disclaims responsibility for clearing rights of other persons\n> +that may apply to the Work or any use thereof, including without limitation\n> +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> +responsibility for obtaining any necessary consents, permissions or other\n> +rights required for any use of the Work.\n> +\n> +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> +to this document and has no duty or obligation with respect to this CC0 or\n> +use of the Work.\n> diff --git a/include/android/meson.build b/include/android/meson.build\n> index 69f1c38edada..da2504f2e493 100644\n> --- a/include/android/meson.build\n> +++ b/include/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_includes = ([\n>      include_directories('hardware/libhardware/include/'),\n>      include_directories('metadata/'),\n> diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> index 695a4183a0e8..3d5c0dd69bb4 100644\n> --- a/include/ipa/meson.build\n> +++ b/include/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_ipa_api = files([\n>      'ipa_controls.h',\n>      'ipa_interface.h',\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 23c01d3837ba..cea47eb83030 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_api = files([\n>      'bound_method.h',\n>      'buffer.h',\n> diff --git a/include/meson.build b/include/meson.build\n> index 42b2453445b5..4f41c9ceeb4c 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_include_dir = 'libcamera'\n>  \n>  subdir('android')\n> diff --git a/meson.build b/meson.build\n> index 59829e1942ca..e898782a28b0 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  project('libcamera', 'c', 'cpp',\n>      meson_version : '>= 0.47',\n>      version : '0.0.0',\n> diff --git a/meson_options.txt b/meson_options.txt\n> index 68f4f48004e5..badace151bb6 100644\n> --- a/meson_options.txt\n> +++ b/meson_options.txt\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  option('android',\n>          type : 'boolean',\n>          value : false,\n> diff --git a/src/android/meson.build b/src/android/meson.build\n> index 5a5a332e6a6f..822cad621f01 100644\n> --- a/src/android/meson.build\n> +++ b/src/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_hal_sources = files([\n>      'camera3_hal.cpp',\n>      'camera_hal_manager.cpp',\n> diff --git a/src/cam/meson.build b/src/cam/meson.build\n> index 162d6333f94e..89e124fbae2a 100644\n> --- a/src/cam/meson.build\n> +++ b/src/cam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  cam_sources = files([\n>      'buffer_writer.cpp',\n>      'capture.cpp',\n> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> index e119e472cb58..c9f0c13d969d 100644\n> --- a/src/gstreamer/meson.build\n> +++ b/src/gstreamer/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_gst_sources = [\n>      'gstlibcamera-utils.cpp',\n>      'gstlibcamera.cpp',\n> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> index 6f3cd4866ce3..2262640517a0 100644\n> --- a/src/ipa/libipa/meson.build\n> +++ b/src/ipa/libipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libipa_headers = files([\n>      'ipa_interface_wrapper.h',\n>  ])\n> diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> index b103479c1cd0..64deb601054c 100644\n> --- a/src/ipa/meson.build\n> +++ b/src/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n>  ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n>  ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> index 2dece3a468e8..697902e95bc1 100644\n> --- a/src/ipa/raspberrypi/meson.build\n> +++ b/src/ipa/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rpi'\n>  \n>  rpi_ipa_deps = [\n> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> --- a/src/ipa/rkisp1/meson.build\n> +++ b/src/ipa/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rkisp1'\n>  \n>  mod = shared_module(ipa_name,\n> diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> index c844926da7f2..6532662cfa94 100644\n> --- a/src/ipa/vimc/data/meson.build\n> +++ b/src/ipa/vimc/data/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  conf_files = files([\n>      'vimc.conf',\n>  ])\n> diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> index 22296a029642..8c9df854007a 100644\n> --- a/src/ipa/vimc/meson.build\n> +++ b/src/ipa/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_vimc'\n>  \n>  mod = shared_module(ipa_name,\n> diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> index 683d06133741..1f6af579cca2 100644\n> --- a/src/libcamera/include/meson.build\n> +++ b/src/libcamera/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_headers = files([\n>      'byte_stream_buffer.h',\n>      'camera_controls.h',\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index d8b4d7206aba..d42e9720dbd6 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources = files([\n>      'bound_method.cpp',\n>      'buffer.cpp',\n> diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> index 0ab766a257a0..0e8c5a14f2b3 100644\n> --- a/src/libcamera/pipeline/ipu3/meson.build\n> +++ b/src/libcamera/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipu3.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> index 190ca5a8db92..46424493aa37 100644\n> --- a/src/libcamera/pipeline/meson.build\n> +++ b/src/libcamera/pipeline/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  foreach pipeline : get_option('pipelines')\n>      subdir(pipeline)\n>  endforeach\n> diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> index 737857977831..fc117b77bdd1 100644\n> --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'raspberrypi.cpp'\n>  ])\n> diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> index d04fb45223e7..1ab3964a6db1 100644\n> --- a/src/libcamera/pipeline/rkisp1/meson.build\n> +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'rkisp1.cpp',\n>      'timeline.cpp',\n> diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> index 8372f24e3788..9c99b32f69f3 100644\n> --- a/src/libcamera/pipeline/simple/meson.build\n> +++ b/src/libcamera/pipeline/simple/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'converter.cpp',\n>      'simple.cpp',\n> diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> index c19ae2389f48..a3c2efd424bf 100644\n> --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'uvcvideo.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> index 615ecd20f1a2..290eefb5d076 100644\n> --- a/src/libcamera/pipeline/vimc/meson.build\n> +++ b/src/libcamera/pipeline/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'vimc.cpp',\n>  ])\n> diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> index 6c00d5f30ad2..bd804750748a 100644\n> --- a/src/libcamera/proxy/meson.build\n> +++ b/src/libcamera/proxy/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipa_proxy_linux.cpp',\n>      'ipa_proxy_thread.cpp',\n> diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> index 839156f7591a..1b1bee5e0170 100644\n> --- a/src/libcamera/proxy/worker/meson.build\n> +++ b/src/libcamera/proxy/worker/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_proxy_sources = [\n>      ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n>  ]\n> diff --git a/src/meson.build b/src/meson.build\n> index c9c1008562b1..d69b4c1ea978 100644\n> --- a/src/meson.build\n> +++ b/src/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  if get_option('android')\n>      subdir('android')\n>  endif\n> diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> index 949ef6149c8a..045db52acf26 100644\n> --- a/src/qcam/meson.build\n> +++ b/src/qcam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  qcam_sources = files([\n>      '../cam/options.cpp',\n>      '../cam/stream_options.cpp',\n> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> index efab968f7729..fc1be82d1b02 100644\n> --- a/src/v4l2/meson.build\n> +++ b/src/v4l2/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_compat_sources = files([\n>      'v4l2_camera.cpp',\n>      'v4l2_camera_proxy.cpp',\n> diff --git a/test/camera/meson.build b/test/camera/meson.build\n> index e2a6660a7a92..0395e7ddc7a4 100644\n> --- a/test/camera/meson.build\n> +++ b/test/camera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  camera_tests = [\n> diff --git a/test/controls/meson.build b/test/controls/meson.build\n> index 7fff2413007e..545fb03b16c6 100644\n> --- a/test/controls/meson.build\n> +++ b/test/controls/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  control_tests = [\n>      [ 'control_info',               'control_info.cpp' ],\n>      [ 'control_info_map',           'control_info_map.cpp' ],\n> diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> index f925c50a085e..ba672f3f9d8b 100644\n> --- a/test/ipa/meson.build\n> +++ b/test/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_test = [\n>      ['ipa_module_test',     'ipa_module_test.cpp'],\n>      ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> index cc46b41c7687..650df1d63444 100644\n> --- a/test/ipc/meson.build\n> +++ b/test/ipc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipc_tests = [\n>      [ 'unixsocket',  'unixsocket.cpp' ],\n>  ]\n> diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> index 33565e0eb3b6..481f6d6baa61 100644\n> --- a/test/libtest/meson.build\n> +++ b/test/libtest/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libtest_sources = files([\n>      'buffer_source.cpp',\n>      'camera_test.cpp',\n> diff --git a/test/log/meson.build b/test/log/meson.build\n> index 95f6c1a2ae4a..8cd664e04a00 100644\n> --- a/test/log/meson.build\n> +++ b/test/log/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  log_test = [\n>      ['log_api',     'log_api.cpp'],\n>      ['log_process', 'log_process.cpp'],\n> diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> index 6a0e468434b5..1dfcdd8bd744 100644\n> --- a/test/media_device/meson.build\n> +++ b/test/media_device/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  lib_mdev_test_sources = files([\n>      'media_device_test.cpp',\n>  ])\n> diff --git a/test/meson.build b/test/meson.build\n> index 5a45a85effd3..bd7da147c70e 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('libtest')\n>  \n>  subdir('camera')\n> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> index d02927c9af86..d062ecd269f2 100644\n> --- a/test/pipeline/ipu3/meson.build\n> +++ b/test/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_test = [\n>      ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> index 157f789ceb25..6e7901fee38f 100644\n> --- a/test/pipeline/meson.build\n> +++ b/test/pipeline/meson.build\n> @@ -1,2 +1,4 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n>  subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> index d3f974964fc4..ece147b054e4 100644\n> --- a/test/pipeline/rkisp1/meson.build\n> +++ b/test/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  rkisp1_test = [\n>      ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/process/meson.build b/test/process/meson.build\n> index c4d83d6c8b39..c215fa7e6c12 100644\n> --- a/test/process/meson.build\n> +++ b/test/process/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  process_tests = [\n>      [ 'process_test',  'process_test.cpp' ],\n>  ]\n> diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> index d78d92e61887..a9d9cbcb7d80 100644\n> --- a/test/serialization/meson.build\n> +++ b/test/serialization/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  serialization_tests = [\n>      [ 'control_serialization',    'control_serialization.cpp' ],\n>  ]\n> diff --git a/test/stream/meson.build b/test/stream/meson.build\n> index 005f4aa4996a..2b9b29a9143b 100644\n> --- a/test/stream/meson.build\n> +++ b/test/stream/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  stream_tests = [\n>      [ 'stream_formats', 'stream_formats.cpp' ],\n>  ]\n> diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> index 0521984b2a78..5f0882ca9772 100644\n> --- a/test/v4l2_subdevice/meson.build\n> +++ b/test/v4l2_subdevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_subdevice_tests = [\n>    [ 'list_formats',             'list_formats.cpp'],\n>    [ 'test_formats',             'test_formats.cpp'],\n> diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> index 685fcf6d16d7..b4bb30908027 100644\n> --- a/test/v4l2_videodevice/meson.build\n> +++ b/test/v4l2_videodevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  v4l2_videodevice_tests = [\n> diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> index 49c45856eea6..88049f589561 100644\n> --- a/utils/ipu3/meson.build\n> +++ b/utils/ipu3/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> diff --git a/utils/meson.build b/utils/meson.build\n> index f434c79c0ae3..c3cd9d69f887 100644\n> --- a/utils/meson.build\n> +++ b/utils/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lj1-x241.google.com (mail-lj1-x241.google.com\n\t[IPv6:2a00:1450:4864:20::241])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0EFFA603E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 21:06:42 +0200 (CEST)","by mail-lj1-x241.google.com with SMTP id d21so7261735ljg.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 12:06:41 -0700 (PDT)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\tr19sm13376143ljp.68.2020.05.12.12.06.39\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 12 May 2020 12:06:39 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected)\n\theader.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com header.b=\"vdeYQeK/\"; \n\tdkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=eNthvHsMN+JZm0L+/pZvftzlvX7pePqcsjZ+/96SiEQ=;\n\tb=vdeYQeK/fUWqUxJLu4wjDbYIkeiKgu4qo9aEd8Wo7utChaQzGwyQSZXZ2HDtvh7SLC\n\tj4vqbvNXYg2aojDlL/HyDs+DCnEWtu6Ded1mc04+d4QE8dfcVkV4nzkVnlCY2vPXW6oz\n\tVMjGwhtrA/PQ+KECpbodhZPW0y1wI8+7xwyO1svKoW8fwHr3tPhZKPSODOyewtD7myam\n\tkpl/Ylh8/pPC9FhWPNUE+IuMVcHPmjw8GZkGReCPG+0PuRas3oNjeZPHcb/rh07QGKY4\n\tFbGT5g9c985TDz6wxaspgOB20khsvSb3ijeNj1m9vHwzWY11LpnOQFf1M60HydeGM9zZ\n\tGQ7A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=eNthvHsMN+JZm0L+/pZvftzlvX7pePqcsjZ+/96SiEQ=;\n\tb=ATGRlxjjnmnD9cnMKRkLGkMosTpLUnfYP6lXJiLgCBAlGsi4WWSb/CLhKJw5ORId2d\n\tGyrD+6wOoY1TAcjPIL3fZDACv8+7nuHfs9Xm/Vy/hvKkbIDVIFd2F9ze7K0GDPj3HFFy\n\t/84r315s+Ah439ozc5tOoLCoCv3DUkTMcNanjsHy2L5RGH46vlFftmkz80/Kjre/mCC5\n\tDqYVUIND6ZGdITzlfpdF9NracFm+FcZy98q7mUbTI+oRSNul9kNVT29EX+EBHn4mV0Gs\n\tg4MEOmq1qj5Ws2Np6TK/YTvFSWzMuKsldNvifGk+qSUJEve5QLjTVis2mRBg/gg8YYlp\n\tVZvQ==","X-Gm-Message-State":"AOAM530cCKz7uSbzsCWAcsj7/8Bkn7A2D+Gi4xT4amD62RqeyoCrTbCr\n\t9vR6HqxwxWFwLRv7Cg6XpA5mww==","X-Google-Smtp-Source":"ABdhPJxFgjEF9QtT0OxdOsn1NW1OEL4fFpvMeuoqCTt6QUWZL9sHzdDV2ZMVVhpmOB59J3eqX6c3xA==","X-Received":"by 2002:a2e:9605:: with SMTP id\n\tv5mr15121366ljh.102.1589310400912; \n\tTue, 12 May 2020 12:06:40 -0700 (PDT)","Date":"Tue, 12 May 2020 21:06:39 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>,\n\tFabrice Fontaine <fontaine.fabrice@gmail.com>,\n\tGiulio Benetti <giulio.benetti@micronovasrl.com>","Message-ID":"<20200512190639.GB2542285@oden.dyn.berto.se>","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Tue, 12 May 2020 19:06:42 -0000"}},{"id":4807,"web_url":"https://patchwork.libcamera.org/comment/4807/","msgid":"<650d6bbee23ac14a8199cc0cfabc4204aa4278c2.camel@collabora.com>","date":"2020-05-12T19:06:41","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":31,"url":"https://patchwork.libcamera.org/api/people/31/","name":"Nicolas Dufresne","email":"nicolas.dufresne@collabora.com"},"content":"Le mardi 12 mai 2020 à 09:02 +0100, Kieran Bingham a écrit :\n> Hi Laurent,\n> \n> On 11/05/2020 23:27, Laurent Pinchart wrote:\n> > In an attempt to clarify the license terms of all files in the libcamera\n> > project, the build system files deserve particular attention. While they\n> > describe how the binaries are created, they are not themselves\n> > transformed into any part of binary distributions of the software, and\n> > thus don't influece the copyright on the binary packages. They are\n> \n> s/influece/influence/\n> \n> > however subject to copyright, and thus influence the distribution terms\n> > of the source packages.\n> > \n> > Most of the meson.build files would not meet the threshold of\n> > originality criteria required for copyright protection. Some of the more\n> > complex meson.build files may be elligible for copyright protection. To\n> \n> s/elligible/eligible/\n> \n> > avoid any ambiguity and uncertainty, state our intent to not assert\n> > copyrights on the build system files by putting them in the public\n> > domain with the CC0-1.0 license.\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> This seems like a good option to me.\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> and for any meson.build files I have authored:\n> \n> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nI agree with these minor remarks, looks good to me.\n\nAcked-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n\n> \n> > ---\n> > Changes since v1:\n> > \n> > - Added meson.build files from the Raspberry Pi pipeline handler\n> \n> Do we need to get an explicit ack from Raspberry Pi here?\n> \n> --\n> Kieran\n> \n> \n> > ---\n> >  Documentation/meson.build                     |   2 +\n> >  LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n> >  include/android/meson.build                   |   2 +\n> >  include/ipa/meson.build                       |   2 +\n> >  include/libcamera/meson.build                 |   2 +\n> >  include/meson.build                           |   2 +\n> >  meson.build                                   |   2 +\n> >  meson_options.txt                             |   2 +\n> >  src/android/meson.build                       |   2 +\n> >  src/cam/meson.build                           |   2 +\n> >  src/gstreamer/meson.build                     |   2 +\n> >  src/ipa/libipa/meson.build                    |   2 +\n> >  src/ipa/meson.build                           |   2 +\n> >  src/ipa/raspberrypi/meson.build               |   2 +\n> >  src/ipa/rkisp1/meson.build                    |   2 +\n> >  src/ipa/vimc/data/meson.build                 |   2 +\n> >  src/ipa/vimc/meson.build                      |   2 +\n> >  src/libcamera/include/meson.build             |   2 +\n> >  src/libcamera/meson.build                     |   2 +\n> >  src/libcamera/pipeline/ipu3/meson.build       |   2 +\n> >  src/libcamera/pipeline/meson.build            |   2 +\n> >  .../pipeline/raspberrypi/meson.build          |   2 +\n> >  src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n> >  src/libcamera/pipeline/simple/meson.build     |   2 +\n> >  src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n> >  src/libcamera/pipeline/vimc/meson.build       |   2 +\n> >  src/libcamera/proxy/meson.build               |   2 +\n> >  src/libcamera/proxy/worker/meson.build        |   2 +\n> >  src/meson.build                               |   2 +\n> >  src/qcam/meson.build                          |   2 +\n> >  src/v4l2/meson.build                          |   2 +\n> >  test/camera/meson.build                       |   2 +\n> >  test/controls/meson.build                     |   2 +\n> >  test/ipa/meson.build                          |   2 +\n> >  test/ipc/meson.build                          |   2 +\n> >  test/libtest/meson.build                      |   2 +\n> >  test/log/meson.build                          |   2 +\n> >  test/media_device/meson.build                 |   2 +\n> >  test/meson.build                              |   2 +\n> >  test/pipeline/ipu3/meson.build                |   2 +\n> >  test/pipeline/meson.build                     |   2 +\n> >  test/pipeline/rkisp1/meson.build              |   2 +\n> >  test/process/meson.build                      |   2 +\n> >  test/serialization/meson.build                |   2 +\n> >  test/stream/meson.build                       |   2 +\n> >  test/v4l2_subdevice/meson.build               |   2 +\n> >  test/v4l2_videodevice/meson.build             |   2 +\n> >  utils/ipu3/meson.build                        |   2 +\n> >  utils/meson.build                             |   2 +\n> >  49 files changed, 215 insertions(+)\n> >  create mode 100644 LICENSES/CC0-1.0.txt\n> > \n> > diff --git a/Documentation/meson.build b/Documentation/meson.build\n> > index c4e9892470de..b3b4f0b66f57 100644\n> > --- a/Documentation/meson.build\n> > +++ b/Documentation/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  doc_install_dir = join_paths(get_option('datadir'), 'doc',\n> >                               'libcamera-@0@'.format(libcamera_version))\n> >  \n> > diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> > new file mode 100644\n> > index 000000000000..a343ccd4335f\n> > --- /dev/null\n> > +++ b/LICENSES/CC0-1.0.txt\n> > @@ -0,0 +1,119 @@\n> > +Creative Commons Legal Code\n> > +\n> > +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> > +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> > +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> > +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> > +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> > +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> > +OR WORKS PROVIDED HEREUNDER.\n> > +\n> > +Statement of Purpose\n> > +\n> > +The laws of most jurisdictions throughout the world automatically confer exclusive\n> > +Copyright and Related Rights (defined below) upon the creator and subsequent\n> > +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> > +a database (each, a \"Work\").\n> > +\n> > +Certain owners wish to permanently relinquish those rights to a Work for the\n> > +purpose of contributing to a commons of creative, cultural and scientific\n> > +works (\"Commons\") that the public can reliably and without fear of later claims\n> > +of infringement build upon, modify, incorporate in other works, reuse and\n> > +redistribute as freely as possible in any form whatsoever and for any purposes,\n> > +including without limitation commercial purposes. These owners may contribute\n> > +to the Commons to promote the ideal of a free culture and the further production\n> > +of creative, cultural and scientific works, or to gain reputation or greater\n> > +distribution for their Work in part through the use and efforts of others.\n> > +\n> > +For these and/or other purposes and motivations, and without any expectation\n> > +of additional consideration or compensation, the person associating CC0 with\n> > +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> > +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> > +and publicly distribute the Work under its terms, with knowledge of his or\n> > +her Copyright and Related Rights in the Work and the meaning and intended\n> > +legal effect of CC0 on those rights.\n> > +\n> > +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> > +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> > +Copyright and Related Rights include, but are not limited to, the following:\n> > +\n> > +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> > +and translate a Work;\n> > +\n> > +      ii. moral rights retained by the original author(s) and/or performer(s);\n> > +\n> > +iii. publicity and privacy rights pertaining to a person's image or likeness\n> > +depicted in a Work;\n> > +\n> > +iv. rights protecting against unfair competition in regards to a Work, subject\n> > +to the limitations in paragraph 4(a), below;\n> > +\n> > +v. rights protecting the extraction, dissemination, use and reuse of data\n> > +in a Work;\n> > +\n> > +vi. database rights (such as those arising under Directive 96/9/EC of the\n> > +European Parliament and of the Council of 11 March 1996 on the legal protection\n> > +of databases, and under any national implementation thereof, including any\n> > +amended or successor version of such directive); and\n> > +\n> > +vii. other similar, equivalent or corresponding rights throughout the world\n> > +based on applicable law or treaty, and any national implementations thereof.\n> > +\n> > +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> > +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> > +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> > +and Related Rights and associated claims and causes of action, whether now\n> > +known or unknown (including existing as well as future claims and causes of\n> > +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> > +duration provided by applicable law or treaty (including future time extensions),\n> > +(iii) in any current or future medium and for any number of copies, and (iv)\n> > +for any purpose whatsoever, including without limitation commercial, advertising\n> > +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> > +benefit of each member of the public at large and to the detriment of Affirmer's\n> > +heirs and successors, fully intending that such Waiver shall not be subject\n> > +to revocation, rescission, cancellation, termination, or any other legal or\n> > +equitable action to disrupt the quiet enjoyment of the Work by the public\n> > +as contemplated by Affirmer's express Statement of Purpose.\n> > +\n> > +3. Public License Fallback. Should any part of the Waiver for any reason be\n> > +judged legally invalid or ineffective under applicable law, then the Waiver\n> > +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> > +express Statement of Purpose. In addition, to the extent the Waiver is so\n> > +judged Affirmer hereby grants to each affected person a royalty-free, non\n> > +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> > +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> > +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> > +law or treaty (including future time extensions), (iii) in any current or\n> > +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> > +including without limitation commercial, advertising or promotional purposes\n> > +(the \"License\"). The License shall be deemed effective as of the date CC0\n> > +was applied by Affirmer to the Work. Should any part of the License for any\n> > +reason be judged legally invalid or ineffective under applicable law, such\n> > +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> > +the License, and in such case Affirmer hereby affirms that he or she will\n> > +not (i) exercise any of his or her remaining Copyright and Related Rights\n> > +in the Work or (ii) assert any associated claims and causes of action with\n> > +respect to the Work, in either case contrary to Affirmer's express Statement\n> > +of Purpose.\n> > +\n> > +   4. Limitations and Disclaimers.\n> > +\n> > +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> > +licensed or otherwise affected by this document.\n> > +\n> > +b. Affirmer offers the Work as-is and makes no representations or warranties\n> > +of any kind concerning the Work, express, implied, statutory or otherwise,\n> > +including without limitation warranties of title, merchantability, fitness\n> > +for a particular purpose, non infringement, or the absence of latent or other\n> > +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> > +all to the greatest extent permissible under applicable law.\n> > +\n> > +c. Affirmer disclaims responsibility for clearing rights of other persons\n> > +that may apply to the Work or any use thereof, including without limitation\n> > +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> > +responsibility for obtaining any necessary consents, permissions or other\n> > +rights required for any use of the Work.\n> > +\n> > +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> > +to this document and has no duty or obligation with respect to this CC0 or\n> > +use of the Work.\n> > diff --git a/include/android/meson.build b/include/android/meson.build\n> > index 69f1c38edada..da2504f2e493 100644\n> > --- a/include/android/meson.build\n> > +++ b/include/android/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  android_includes = ([\n> >      include_directories('hardware/libhardware/include/'),\n> >      include_directories('metadata/'),\n> > diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> > index 695a4183a0e8..3d5c0dd69bb4 100644\n> > --- a/include/ipa/meson.build\n> > +++ b/include/ipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_ipa_api = files([\n> >      'ipa_controls.h',\n> >      'ipa_interface.h',\n> > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> > index 23c01d3837ba..cea47eb83030 100644\n> > --- a/include/libcamera/meson.build\n> > +++ b/include/libcamera/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_api = files([\n> >      'bound_method.h',\n> >      'buffer.h',\n> > diff --git a/include/meson.build b/include/meson.build\n> > index 42b2453445b5..4f41c9ceeb4c 100644\n> > --- a/include/meson.build\n> > +++ b/include/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_include_dir = 'libcamera'\n> >  \n> >  subdir('android')\n> > diff --git a/meson.build b/meson.build\n> > index 59829e1942ca..e898782a28b0 100644\n> > --- a/meson.build\n> > +++ b/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  project('libcamera', 'c', 'cpp',\n> >      meson_version : '>= 0.47',\n> >      version : '0.0.0',\n> > diff --git a/meson_options.txt b/meson_options.txt\n> > index 68f4f48004e5..badace151bb6 100644\n> > --- a/meson_options.txt\n> > +++ b/meson_options.txt\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  option('android',\n> >          type : 'boolean',\n> >          value : false,\n> > diff --git a/src/android/meson.build b/src/android/meson.build\n> > index 5a5a332e6a6f..822cad621f01 100644\n> > --- a/src/android/meson.build\n> > +++ b/src/android/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  android_hal_sources = files([\n> >      'camera3_hal.cpp',\n> >      'camera_hal_manager.cpp',\n> > diff --git a/src/cam/meson.build b/src/cam/meson.build\n> > index 162d6333f94e..89e124fbae2a 100644\n> > --- a/src/cam/meson.build\n> > +++ b/src/cam/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  cam_sources = files([\n> >      'buffer_writer.cpp',\n> >      'capture.cpp',\n> > diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> > index e119e472cb58..c9f0c13d969d 100644\n> > --- a/src/gstreamer/meson.build\n> > +++ b/src/gstreamer/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_gst_sources = [\n> >      'gstlibcamera-utils.cpp',\n> >      'gstlibcamera.cpp',\n> > diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> > index 6f3cd4866ce3..2262640517a0 100644\n> > --- a/src/ipa/libipa/meson.build\n> > +++ b/src/ipa/libipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libipa_headers = files([\n> >      'ipa_interface_wrapper.h',\n> >  ])\n> > diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> > index b103479c1cd0..64deb601054c 100644\n> > --- a/src/ipa/meson.build\n> > +++ b/src/ipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n> >  ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n> >  ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> > diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> > index 2dece3a468e8..697902e95bc1 100644\n> > --- a/src/ipa/raspberrypi/meson.build\n> > +++ b/src/ipa/raspberrypi/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_name = 'ipa_rpi'\n> >  \n> >  rpi_ipa_deps = [\n> > diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> > index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> > --- a/src/ipa/rkisp1/meson.build\n> > +++ b/src/ipa/rkisp1/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_name = 'ipa_rkisp1'\n> >  \n> >  mod = shared_module(ipa_name,\n> > diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> > index c844926da7f2..6532662cfa94 100644\n> > --- a/src/ipa/vimc/data/meson.build\n> > +++ b/src/ipa/vimc/data/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  conf_files = files([\n> >      'vimc.conf',\n> >  ])\n> > diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> > index 22296a029642..8c9df854007a 100644\n> > --- a/src/ipa/vimc/meson.build\n> > +++ b/src/ipa/vimc/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_name = 'ipa_vimc'\n> >  \n> >  mod = shared_module(ipa_name,\n> > diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> > index 683d06133741..1f6af579cca2 100644\n> > --- a/src/libcamera/include/meson.build\n> > +++ b/src/libcamera/include/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_headers = files([\n> >      'byte_stream_buffer.h',\n> >      'camera_controls.h',\n> > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> > index d8b4d7206aba..d42e9720dbd6 100644\n> > --- a/src/libcamera/meson.build\n> > +++ b/src/libcamera/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources = files([\n> >      'bound_method.cpp',\n> >      'buffer.cpp',\n> > diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> > index 0ab766a257a0..0e8c5a14f2b3 100644\n> > --- a/src/libcamera/pipeline/ipu3/meson.build\n> > +++ b/src/libcamera/pipeline/ipu3/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'ipu3.cpp',\n> >  ])\n> > diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> > index 190ca5a8db92..46424493aa37 100644\n> > --- a/src/libcamera/pipeline/meson.build\n> > +++ b/src/libcamera/pipeline/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  foreach pipeline : get_option('pipelines')\n> >      subdir(pipeline)\n> >  endforeach\n> > diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> > index 737857977831..fc117b77bdd1 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> > +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'raspberrypi.cpp'\n> >  ])\n> > diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> > index d04fb45223e7..1ab3964a6db1 100644\n> > --- a/src/libcamera/pipeline/rkisp1/meson.build\n> > +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'rkisp1.cpp',\n> >      'timeline.cpp',\n> > diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> > index 8372f24e3788..9c99b32f69f3 100644\n> > --- a/src/libcamera/pipeline/simple/meson.build\n> > +++ b/src/libcamera/pipeline/simple/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'converter.cpp',\n> >      'simple.cpp',\n> > diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> > index c19ae2389f48..a3c2efd424bf 100644\n> > --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> > +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'uvcvideo.cpp',\n> >  ])\n> > diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> > index 615ecd20f1a2..290eefb5d076 100644\n> > --- a/src/libcamera/pipeline/vimc/meson.build\n> > +++ b/src/libcamera/pipeline/vimc/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'vimc.cpp',\n> >  ])\n> > diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> > index 6c00d5f30ad2..bd804750748a 100644\n> > --- a/src/libcamera/proxy/meson.build\n> > +++ b/src/libcamera/proxy/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libcamera_sources += files([\n> >      'ipa_proxy_linux.cpp',\n> >      'ipa_proxy_thread.cpp',\n> > diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> > index 839156f7591a..1b1bee5e0170 100644\n> > --- a/src/libcamera/proxy/worker/meson.build\n> > +++ b/src/libcamera/proxy/worker/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_proxy_sources = [\n> >      ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n> >  ]\n> > diff --git a/src/meson.build b/src/meson.build\n> > index c9c1008562b1..d69b4c1ea978 100644\n> > --- a/src/meson.build\n> > +++ b/src/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  if get_option('android')\n> >      subdir('android')\n> >  endif\n> > diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> > index 949ef6149c8a..045db52acf26 100644\n> > --- a/src/qcam/meson.build\n> > +++ b/src/qcam/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  qcam_sources = files([\n> >      '../cam/options.cpp',\n> >      '../cam/stream_options.cpp',\n> > diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> > index efab968f7729..fc1be82d1b02 100644\n> > --- a/src/v4l2/meson.build\n> > +++ b/src/v4l2/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  v4l2_compat_sources = files([\n> >      'v4l2_camera.cpp',\n> >      'v4l2_camera_proxy.cpp',\n> > diff --git a/test/camera/meson.build b/test/camera/meson.build\n> > index e2a6660a7a92..0395e7ddc7a4 100644\n> > --- a/test/camera/meson.build\n> > +++ b/test/camera/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  # Tests are listed in order of complexity.\n> >  # They are not alphabetically sorted.\n> >  camera_tests = [\n> > diff --git a/test/controls/meson.build b/test/controls/meson.build\n> > index 7fff2413007e..545fb03b16c6 100644\n> > --- a/test/controls/meson.build\n> > +++ b/test/controls/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  control_tests = [\n> >      [ 'control_info',               'control_info.cpp' ],\n> >      [ 'control_info_map',           'control_info_map.cpp' ],\n> > diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> > index f925c50a085e..ba672f3f9d8b 100644\n> > --- a/test/ipa/meson.build\n> > +++ b/test/ipa/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipa_test = [\n> >      ['ipa_module_test',     'ipa_module_test.cpp'],\n> >      ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> > diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> > index cc46b41c7687..650df1d63444 100644\n> > --- a/test/ipc/meson.build\n> > +++ b/test/ipc/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipc_tests = [\n> >      [ 'unixsocket',  'unixsocket.cpp' ],\n> >  ]\n> > diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> > index 33565e0eb3b6..481f6d6baa61 100644\n> > --- a/test/libtest/meson.build\n> > +++ b/test/libtest/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  libtest_sources = files([\n> >      'buffer_source.cpp',\n> >      'camera_test.cpp',\n> > diff --git a/test/log/meson.build b/test/log/meson.build\n> > index 95f6c1a2ae4a..8cd664e04a00 100644\n> > --- a/test/log/meson.build\n> > +++ b/test/log/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  log_test = [\n> >      ['log_api',     'log_api.cpp'],\n> >      ['log_process', 'log_process.cpp'],\n> > diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> > index 6a0e468434b5..1dfcdd8bd744 100644\n> > --- a/test/media_device/meson.build\n> > +++ b/test/media_device/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  lib_mdev_test_sources = files([\n> >      'media_device_test.cpp',\n> >  ])\n> > diff --git a/test/meson.build b/test/meson.build\n> > index 5a45a85effd3..bd7da147c70e 100644\n> > --- a/test/meson.build\n> > +++ b/test/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  subdir('libtest')\n> >  \n> >  subdir('camera')\n> > diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> > index d02927c9af86..d062ecd269f2 100644\n> > --- a/test/pipeline/ipu3/meson.build\n> > +++ b/test/pipeline/ipu3/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipu3_test = [\n> >      ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n> >  ]\n> > diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> > index 157f789ceb25..6e7901fee38f 100644\n> > --- a/test/pipeline/meson.build\n> > +++ b/test/pipeline/meson.build\n> > @@ -1,2 +1,4 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  subdir('ipu3')\n> >  subdir('rkisp1')\n> > diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> > index d3f974964fc4..ece147b054e4 100644\n> > --- a/test/pipeline/rkisp1/meson.build\n> > +++ b/test/pipeline/rkisp1/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  rkisp1_test = [\n> >      ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n> >  ]\n> > diff --git a/test/process/meson.build b/test/process/meson.build\n> > index c4d83d6c8b39..c215fa7e6c12 100644\n> > --- a/test/process/meson.build\n> > +++ b/test/process/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  process_tests = [\n> >      [ 'process_test',  'process_test.cpp' ],\n> >  ]\n> > diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> > index d78d92e61887..a9d9cbcb7d80 100644\n> > --- a/test/serialization/meson.build\n> > +++ b/test/serialization/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  serialization_tests = [\n> >      [ 'control_serialization',    'control_serialization.cpp' ],\n> >  ]\n> > diff --git a/test/stream/meson.build b/test/stream/meson.build\n> > index 005f4aa4996a..2b9b29a9143b 100644\n> > --- a/test/stream/meson.build\n> > +++ b/test/stream/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  stream_tests = [\n> >      [ 'stream_formats', 'stream_formats.cpp' ],\n> >  ]\n> > diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> > index 0521984b2a78..5f0882ca9772 100644\n> > --- a/test/v4l2_subdevice/meson.build\n> > +++ b/test/v4l2_subdevice/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  v4l2_subdevice_tests = [\n> >    [ 'list_formats',             'list_formats.cpp'],\n> >    [ 'test_formats',             'test_formats.cpp'],\n> > diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> > index 685fcf6d16d7..b4bb30908027 100644\n> > --- a/test/v4l2_videodevice/meson.build\n> > +++ b/test/v4l2_videodevice/meson.build\n> > @@ -1,3 +1,5 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  # Tests are listed in order of complexity.\n> >  # They are not alphabetically sorted.\n> >  v4l2_videodevice_tests = [\n> > diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> > index 49c45856eea6..88049f589561 100644\n> > --- a/utils/ipu3/meson.build\n> > +++ b/utils/ipu3/meson.build\n> > @@ -1 +1,3 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> > diff --git a/utils/meson.build b/utils/meson.build\n> > index f434c79c0ae3..c3cd9d69f887 100644\n> > --- a/utils/meson.build\n> > +++ b/utils/meson.build\n> > @@ -1 +1,3 @@\n> > +# SPDX-License-Identifier: CC0-1.0\n> > +\n> >  subdir('ipu3')\n> >","headers":{"Return-Path":"<nicolas.dufresne@collabora.com>","Received":["from bhuna.collabora.co.uk (bhuna.collabora.co.uk\n\t[IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8452A603E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 May 2020 21:06:47 +0200 (CEST)","from [127.0.0.1] (localhost [127.0.0.1])\n\t(Authenticated sender: nicolas) with ESMTPSA id 293772A2395"],"Message-ID":"<650d6bbee23ac14a8199cc0cfabc4204aa4278c2.camel@collabora.com>","From":"Nicolas Dufresne <nicolas.dufresne@collabora.com>","Reply-To":"Nicolas Dufresne <nicolas.dufresne@collabora.com>","To":"kieran.bingham@ideasonboard.com, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, libcamera-devel@lists.libcamera.org","Cc":"Fabrice Fontaine <fontaine.fabrice@gmail.com>, Giulio Benetti\n\t<giulio.benetti@micronovasrl.com>","Date":"Tue, 12 May 2020 15:06:41 -0400","In-Reply-To":"<fa8390c7-8551-a75b-64ce-89bd24f91851@ideasonboard.com>","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>\n\t<fa8390c7-8551-a75b-64ce-89bd24f91851@ideasonboard.com>","Organization":"Collabora","Content-Type":"multipart/signed; micalg=\"pgp-sha1\";\n\tprotocol=\"application/pgp-signature\"; \n\tboundary=\"=-ncabqYRwPdg52+yF7hwD\"","User-Agent":"Evolution 3.36.2 (3.36.2-1.fc32) ","MIME-Version":"1.0","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Tue, 12 May 2020 19:06:47 -0000"}},{"id":4809,"web_url":"https://patchwork.libcamera.org/comment/4809/","msgid":"<CAEmqJPpeF=YYyah=M3cRBhsV+KmL3qjxmKc1BsvK15Ab9aDKPA@mail.gmail.com>","date":"2020-05-13T07:19:10","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi all,\n\nOn Tue, 12 May 2020 at 20:06, Nicolas Dufresne\n<nicolas.dufresne@collabora.com> wrote:\n>\n> Le mardi 12 mai 2020 à 09:02 +0100, Kieran Bingham a écrit :\n> > Hi Laurent,\n> >\n> > On 11/05/2020 23:27, Laurent Pinchart wrote:\n> > > In an attempt to clarify the license terms of all files in the libcamera\n> > > project, the build system files deserve particular attention. While they\n> > > describe how the binaries are created, they are not themselves\n> > > transformed into any part of binary distributions of the software, and\n> > > thus don't influece the copyright on the binary packages. They are\n> >\n> > s/influece/influence/\n> >\n> > > however subject to copyright, and thus influence the distribution terms\n> > > of the source packages.\n> > >\n> > > Most of the meson.build files would not meet the threshold of\n> > > originality criteria required for copyright protection. Some of the more\n> > > complex meson.build files may be elligible for copyright protection. To\n> >\n> > s/elligible/eligible/\n> >\n> > > avoid any ambiguity and uncertainty, state our intent to not assert\n> > > copyrights on the build system files by putting them in the public\n> > > domain with the CC0-1.0 license.\n> > >\n> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> >\n> > This seems like a good option to me.\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > and for any meson.build files I have authored:\n> >\n> > Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> I agree with these minor remarks, looks good to me.\n>\n> Acked-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n>\n\nAcked-by: Naushir Patuck <naush@raspberrypi.com>\n\n\n\n> >\n> > > ---\n> > > Changes since v1:\n> > >\n> > > - Added meson.build files from the Raspberry Pi pipeline handler\n> >\n> > Do we need to get an explicit ack from Raspberry Pi here?\n> >\n> > --\n> > Kieran\n> >\n> >\n> > > ---\n> > >  Documentation/meson.build                     |   2 +\n> > >  LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n> > >  include/android/meson.build                   |   2 +\n> > >  include/ipa/meson.build                       |   2 +\n> > >  include/libcamera/meson.build                 |   2 +\n> > >  include/meson.build                           |   2 +\n> > >  meson.build                                   |   2 +\n> > >  meson_options.txt                             |   2 +\n> > >  src/android/meson.build                       |   2 +\n> > >  src/cam/meson.build                           |   2 +\n> > >  src/gstreamer/meson.build                     |   2 +\n> > >  src/ipa/libipa/meson.build                    |   2 +\n> > >  src/ipa/meson.build                           |   2 +\n> > >  src/ipa/raspberrypi/meson.build               |   2 +\n> > >  src/ipa/rkisp1/meson.build                    |   2 +\n> > >  src/ipa/vimc/data/meson.build                 |   2 +\n> > >  src/ipa/vimc/meson.build                      |   2 +\n> > >  src/libcamera/include/meson.build             |   2 +\n> > >  src/libcamera/meson.build                     |   2 +\n> > >  src/libcamera/pipeline/ipu3/meson.build       |   2 +\n> > >  src/libcamera/pipeline/meson.build            |   2 +\n> > >  .../pipeline/raspberrypi/meson.build          |   2 +\n> > >  src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n> > >  src/libcamera/pipeline/simple/meson.build     |   2 +\n> > >  src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n> > >  src/libcamera/pipeline/vimc/meson.build       |   2 +\n> > >  src/libcamera/proxy/meson.build               |   2 +\n> > >  src/libcamera/proxy/worker/meson.build        |   2 +\n> > >  src/meson.build                               |   2 +\n> > >  src/qcam/meson.build                          |   2 +\n> > >  src/v4l2/meson.build                          |   2 +\n> > >  test/camera/meson.build                       |   2 +\n> > >  test/controls/meson.build                     |   2 +\n> > >  test/ipa/meson.build                          |   2 +\n> > >  test/ipc/meson.build                          |   2 +\n> > >  test/libtest/meson.build                      |   2 +\n> > >  test/log/meson.build                          |   2 +\n> > >  test/media_device/meson.build                 |   2 +\n> > >  test/meson.build                              |   2 +\n> > >  test/pipeline/ipu3/meson.build                |   2 +\n> > >  test/pipeline/meson.build                     |   2 +\n> > >  test/pipeline/rkisp1/meson.build              |   2 +\n> > >  test/process/meson.build                      |   2 +\n> > >  test/serialization/meson.build                |   2 +\n> > >  test/stream/meson.build                       |   2 +\n> > >  test/v4l2_subdevice/meson.build               |   2 +\n> > >  test/v4l2_videodevice/meson.build             |   2 +\n> > >  utils/ipu3/meson.build                        |   2 +\n> > >  utils/meson.build                             |   2 +\n> > >  49 files changed, 215 insertions(+)\n> > >  create mode 100644 LICENSES/CC0-1.0.txt\n> > >\n> > > diff --git a/Documentation/meson.build b/Documentation/meson.build\n> > > index c4e9892470de..b3b4f0b66f57 100644\n> > > --- a/Documentation/meson.build\n> > > +++ b/Documentation/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  doc_install_dir = join_paths(get_option('datadir'), 'doc',\n> > >                               'libcamera-@0@'.format(libcamera_version))\n> > >\n> > > diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> > > new file mode 100644\n> > > index 000000000000..a343ccd4335f\n> > > --- /dev/null\n> > > +++ b/LICENSES/CC0-1.0.txt\n> > > @@ -0,0 +1,119 @@\n> > > +Creative Commons Legal Code\n> > > +\n> > > +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> > > +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> > > +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> > > +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> > > +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> > > +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> > > +OR WORKS PROVIDED HEREUNDER.\n> > > +\n> > > +Statement of Purpose\n> > > +\n> > > +The laws of most jurisdictions throughout the world automatically confer exclusive\n> > > +Copyright and Related Rights (defined below) upon the creator and subsequent\n> > > +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> > > +a database (each, a \"Work\").\n> > > +\n> > > +Certain owners wish to permanently relinquish those rights to a Work for the\n> > > +purpose of contributing to a commons of creative, cultural and scientific\n> > > +works (\"Commons\") that the public can reliably and without fear of later claims\n> > > +of infringement build upon, modify, incorporate in other works, reuse and\n> > > +redistribute as freely as possible in any form whatsoever and for any purposes,\n> > > +including without limitation commercial purposes. These owners may contribute\n> > > +to the Commons to promote the ideal of a free culture and the further production\n> > > +of creative, cultural and scientific works, or to gain reputation or greater\n> > > +distribution for their Work in part through the use and efforts of others.\n> > > +\n> > > +For these and/or other purposes and motivations, and without any expectation\n> > > +of additional consideration or compensation, the person associating CC0 with\n> > > +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> > > +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> > > +and publicly distribute the Work under its terms, with knowledge of his or\n> > > +her Copyright and Related Rights in the Work and the meaning and intended\n> > > +legal effect of CC0 on those rights.\n> > > +\n> > > +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> > > +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> > > +Copyright and Related Rights include, but are not limited to, the following:\n> > > +\n> > > +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> > > +and translate a Work;\n> > > +\n> > > +      ii. moral rights retained by the original author(s) and/or performer(s);\n> > > +\n> > > +iii. publicity and privacy rights pertaining to a person's image or likeness\n> > > +depicted in a Work;\n> > > +\n> > > +iv. rights protecting against unfair competition in regards to a Work, subject\n> > > +to the limitations in paragraph 4(a), below;\n> > > +\n> > > +v. rights protecting the extraction, dissemination, use and reuse of data\n> > > +in a Work;\n> > > +\n> > > +vi. database rights (such as those arising under Directive 96/9/EC of the\n> > > +European Parliament and of the Council of 11 March 1996 on the legal protection\n> > > +of databases, and under any national implementation thereof, including any\n> > > +amended or successor version of such directive); and\n> > > +\n> > > +vii. other similar, equivalent or corresponding rights throughout the world\n> > > +based on applicable law or treaty, and any national implementations thereof.\n> > > +\n> > > +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> > > +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> > > +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> > > +and Related Rights and associated claims and causes of action, whether now\n> > > +known or unknown (including existing as well as future claims and causes of\n> > > +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> > > +duration provided by applicable law or treaty (including future time extensions),\n> > > +(iii) in any current or future medium and for any number of copies, and (iv)\n> > > +for any purpose whatsoever, including without limitation commercial, advertising\n> > > +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> > > +benefit of each member of the public at large and to the detriment of Affirmer's\n> > > +heirs and successors, fully intending that such Waiver shall not be subject\n> > > +to revocation, rescission, cancellation, termination, or any other legal or\n> > > +equitable action to disrupt the quiet enjoyment of the Work by the public\n> > > +as contemplated by Affirmer's express Statement of Purpose.\n> > > +\n> > > +3. Public License Fallback. Should any part of the Waiver for any reason be\n> > > +judged legally invalid or ineffective under applicable law, then the Waiver\n> > > +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> > > +express Statement of Purpose. In addition, to the extent the Waiver is so\n> > > +judged Affirmer hereby grants to each affected person a royalty-free, non\n> > > +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> > > +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> > > +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> > > +law or treaty (including future time extensions), (iii) in any current or\n> > > +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> > > +including without limitation commercial, advertising or promotional purposes\n> > > +(the \"License\"). The License shall be deemed effective as of the date CC0\n> > > +was applied by Affirmer to the Work. Should any part of the License for any\n> > > +reason be judged legally invalid or ineffective under applicable law, such\n> > > +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> > > +the License, and in such case Affirmer hereby affirms that he or she will\n> > > +not (i) exercise any of his or her remaining Copyright and Related Rights\n> > > +in the Work or (ii) assert any associated claims and causes of action with\n> > > +respect to the Work, in either case contrary to Affirmer's express Statement\n> > > +of Purpose.\n> > > +\n> > > +   4. Limitations and Disclaimers.\n> > > +\n> > > +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> > > +licensed or otherwise affected by this document.\n> > > +\n> > > +b. Affirmer offers the Work as-is and makes no representations or warranties\n> > > +of any kind concerning the Work, express, implied, statutory or otherwise,\n> > > +including without limitation warranties of title, merchantability, fitness\n> > > +for a particular purpose, non infringement, or the absence of latent or other\n> > > +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> > > +all to the greatest extent permissible under applicable law.\n> > > +\n> > > +c. Affirmer disclaims responsibility for clearing rights of other persons\n> > > +that may apply to the Work or any use thereof, including without limitation\n> > > +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> > > +responsibility for obtaining any necessary consents, permissions or other\n> > > +rights required for any use of the Work.\n> > > +\n> > > +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> > > +to this document and has no duty or obligation with respect to this CC0 or\n> > > +use of the Work.\n> > > diff --git a/include/android/meson.build b/include/android/meson.build\n> > > index 69f1c38edada..da2504f2e493 100644\n> > > --- a/include/android/meson.build\n> > > +++ b/include/android/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  android_includes = ([\n> > >      include_directories('hardware/libhardware/include/'),\n> > >      include_directories('metadata/'),\n> > > diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> > > index 695a4183a0e8..3d5c0dd69bb4 100644\n> > > --- a/include/ipa/meson.build\n> > > +++ b/include/ipa/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_ipa_api = files([\n> > >      'ipa_controls.h',\n> > >      'ipa_interface.h',\n> > > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> > > index 23c01d3837ba..cea47eb83030 100644\n> > > --- a/include/libcamera/meson.build\n> > > +++ b/include/libcamera/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_api = files([\n> > >      'bound_method.h',\n> > >      'buffer.h',\n> > > diff --git a/include/meson.build b/include/meson.build\n> > > index 42b2453445b5..4f41c9ceeb4c 100644\n> > > --- a/include/meson.build\n> > > +++ b/include/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_include_dir = 'libcamera'\n> > >\n> > >  subdir('android')\n> > > diff --git a/meson.build b/meson.build\n> > > index 59829e1942ca..e898782a28b0 100644\n> > > --- a/meson.build\n> > > +++ b/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  project('libcamera', 'c', 'cpp',\n> > >      meson_version : '>= 0.47',\n> > >      version : '0.0.0',\n> > > diff --git a/meson_options.txt b/meson_options.txt\n> > > index 68f4f48004e5..badace151bb6 100644\n> > > --- a/meson_options.txt\n> > > +++ b/meson_options.txt\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  option('android',\n> > >          type : 'boolean',\n> > >          value : false,\n> > > diff --git a/src/android/meson.build b/src/android/meson.build\n> > > index 5a5a332e6a6f..822cad621f01 100644\n> > > --- a/src/android/meson.build\n> > > +++ b/src/android/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  android_hal_sources = files([\n> > >      'camera3_hal.cpp',\n> > >      'camera_hal_manager.cpp',\n> > > diff --git a/src/cam/meson.build b/src/cam/meson.build\n> > > index 162d6333f94e..89e124fbae2a 100644\n> > > --- a/src/cam/meson.build\n> > > +++ b/src/cam/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  cam_sources = files([\n> > >      'buffer_writer.cpp',\n> > >      'capture.cpp',\n> > > diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> > > index e119e472cb58..c9f0c13d969d 100644\n> > > --- a/src/gstreamer/meson.build\n> > > +++ b/src/gstreamer/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_gst_sources = [\n> > >      'gstlibcamera-utils.cpp',\n> > >      'gstlibcamera.cpp',\n> > > diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> > > index 6f3cd4866ce3..2262640517a0 100644\n> > > --- a/src/ipa/libipa/meson.build\n> > > +++ b/src/ipa/libipa/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libipa_headers = files([\n> > >      'ipa_interface_wrapper.h',\n> > >  ])\n> > > diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> > > index b103479c1cd0..64deb601054c 100644\n> > > --- a/src/ipa/meson.build\n> > > +++ b/src/ipa/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n> > >  ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n> > >  ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> > > diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> > > index 2dece3a468e8..697902e95bc1 100644\n> > > --- a/src/ipa/raspberrypi/meson.build\n> > > +++ b/src/ipa/raspberrypi/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipa_name = 'ipa_rpi'\n> > >\n> > >  rpi_ipa_deps = [\n> > > diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> > > index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> > > --- a/src/ipa/rkisp1/meson.build\n> > > +++ b/src/ipa/rkisp1/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipa_name = 'ipa_rkisp1'\n> > >\n> > >  mod = shared_module(ipa_name,\n> > > diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> > > index c844926da7f2..6532662cfa94 100644\n> > > --- a/src/ipa/vimc/data/meson.build\n> > > +++ b/src/ipa/vimc/data/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  conf_files = files([\n> > >      'vimc.conf',\n> > >  ])\n> > > diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> > > index 22296a029642..8c9df854007a 100644\n> > > --- a/src/ipa/vimc/meson.build\n> > > +++ b/src/ipa/vimc/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipa_name = 'ipa_vimc'\n> > >\n> > >  mod = shared_module(ipa_name,\n> > > diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> > > index 683d06133741..1f6af579cca2 100644\n> > > --- a/src/libcamera/include/meson.build\n> > > +++ b/src/libcamera/include/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_headers = files([\n> > >      'byte_stream_buffer.h',\n> > >      'camera_controls.h',\n> > > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> > > index d8b4d7206aba..d42e9720dbd6 100644\n> > > --- a/src/libcamera/meson.build\n> > > +++ b/src/libcamera/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources = files([\n> > >      'bound_method.cpp',\n> > >      'buffer.cpp',\n> > > diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> > > index 0ab766a257a0..0e8c5a14f2b3 100644\n> > > --- a/src/libcamera/pipeline/ipu3/meson.build\n> > > +++ b/src/libcamera/pipeline/ipu3/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources += files([\n> > >      'ipu3.cpp',\n> > >  ])\n> > > diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> > > index 190ca5a8db92..46424493aa37 100644\n> > > --- a/src/libcamera/pipeline/meson.build\n> > > +++ b/src/libcamera/pipeline/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  foreach pipeline : get_option('pipelines')\n> > >      subdir(pipeline)\n> > >  endforeach\n> > > diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> > > index 737857977831..fc117b77bdd1 100644\n> > > --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> > > +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources += files([\n> > >      'raspberrypi.cpp'\n> > >  ])\n> > > diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> > > index d04fb45223e7..1ab3964a6db1 100644\n> > > --- a/src/libcamera/pipeline/rkisp1/meson.build\n> > > +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources += files([\n> > >      'rkisp1.cpp',\n> > >      'timeline.cpp',\n> > > diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> > > index 8372f24e3788..9c99b32f69f3 100644\n> > > --- a/src/libcamera/pipeline/simple/meson.build\n> > > +++ b/src/libcamera/pipeline/simple/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources += files([\n> > >      'converter.cpp',\n> > >      'simple.cpp',\n> > > diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> > > index c19ae2389f48..a3c2efd424bf 100644\n> > > --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> > > +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources += files([\n> > >      'uvcvideo.cpp',\n> > >  ])\n> > > diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> > > index 615ecd20f1a2..290eefb5d076 100644\n> > > --- a/src/libcamera/pipeline/vimc/meson.build\n> > > +++ b/src/libcamera/pipeline/vimc/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources += files([\n> > >      'vimc.cpp',\n> > >  ])\n> > > diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> > > index 6c00d5f30ad2..bd804750748a 100644\n> > > --- a/src/libcamera/proxy/meson.build\n> > > +++ b/src/libcamera/proxy/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libcamera_sources += files([\n> > >      'ipa_proxy_linux.cpp',\n> > >      'ipa_proxy_thread.cpp',\n> > > diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> > > index 839156f7591a..1b1bee5e0170 100644\n> > > --- a/src/libcamera/proxy/worker/meson.build\n> > > +++ b/src/libcamera/proxy/worker/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipa_proxy_sources = [\n> > >      ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n> > >  ]\n> > > diff --git a/src/meson.build b/src/meson.build\n> > > index c9c1008562b1..d69b4c1ea978 100644\n> > > --- a/src/meson.build\n> > > +++ b/src/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  if get_option('android')\n> > >      subdir('android')\n> > >  endif\n> > > diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> > > index 949ef6149c8a..045db52acf26 100644\n> > > --- a/src/qcam/meson.build\n> > > +++ b/src/qcam/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  qcam_sources = files([\n> > >      '../cam/options.cpp',\n> > >      '../cam/stream_options.cpp',\n> > > diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> > > index efab968f7729..fc1be82d1b02 100644\n> > > --- a/src/v4l2/meson.build\n> > > +++ b/src/v4l2/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  v4l2_compat_sources = files([\n> > >      'v4l2_camera.cpp',\n> > >      'v4l2_camera_proxy.cpp',\n> > > diff --git a/test/camera/meson.build b/test/camera/meson.build\n> > > index e2a6660a7a92..0395e7ddc7a4 100644\n> > > --- a/test/camera/meson.build\n> > > +++ b/test/camera/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  # Tests are listed in order of complexity.\n> > >  # They are not alphabetically sorted.\n> > >  camera_tests = [\n> > > diff --git a/test/controls/meson.build b/test/controls/meson.build\n> > > index 7fff2413007e..545fb03b16c6 100644\n> > > --- a/test/controls/meson.build\n> > > +++ b/test/controls/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  control_tests = [\n> > >      [ 'control_info',               'control_info.cpp' ],\n> > >      [ 'control_info_map',           'control_info_map.cpp' ],\n> > > diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> > > index f925c50a085e..ba672f3f9d8b 100644\n> > > --- a/test/ipa/meson.build\n> > > +++ b/test/ipa/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipa_test = [\n> > >      ['ipa_module_test',     'ipa_module_test.cpp'],\n> > >      ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> > > diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> > > index cc46b41c7687..650df1d63444 100644\n> > > --- a/test/ipc/meson.build\n> > > +++ b/test/ipc/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipc_tests = [\n> > >      [ 'unixsocket',  'unixsocket.cpp' ],\n> > >  ]\n> > > diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> > > index 33565e0eb3b6..481f6d6baa61 100644\n> > > --- a/test/libtest/meson.build\n> > > +++ b/test/libtest/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  libtest_sources = files([\n> > >      'buffer_source.cpp',\n> > >      'camera_test.cpp',\n> > > diff --git a/test/log/meson.build b/test/log/meson.build\n> > > index 95f6c1a2ae4a..8cd664e04a00 100644\n> > > --- a/test/log/meson.build\n> > > +++ b/test/log/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  log_test = [\n> > >      ['log_api',     'log_api.cpp'],\n> > >      ['log_process', 'log_process.cpp'],\n> > > diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> > > index 6a0e468434b5..1dfcdd8bd744 100644\n> > > --- a/test/media_device/meson.build\n> > > +++ b/test/media_device/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  lib_mdev_test_sources = files([\n> > >      'media_device_test.cpp',\n> > >  ])\n> > > diff --git a/test/meson.build b/test/meson.build\n> > > index 5a45a85effd3..bd7da147c70e 100644\n> > > --- a/test/meson.build\n> > > +++ b/test/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  subdir('libtest')\n> > >\n> > >  subdir('camera')\n> > > diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> > > index d02927c9af86..d062ecd269f2 100644\n> > > --- a/test/pipeline/ipu3/meson.build\n> > > +++ b/test/pipeline/ipu3/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipu3_test = [\n> > >      ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n> > >  ]\n> > > diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> > > index 157f789ceb25..6e7901fee38f 100644\n> > > --- a/test/pipeline/meson.build\n> > > +++ b/test/pipeline/meson.build\n> > > @@ -1,2 +1,4 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  subdir('ipu3')\n> > >  subdir('rkisp1')\n> > > diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> > > index d3f974964fc4..ece147b054e4 100644\n> > > --- a/test/pipeline/rkisp1/meson.build\n> > > +++ b/test/pipeline/rkisp1/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  rkisp1_test = [\n> > >      ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n> > >  ]\n> > > diff --git a/test/process/meson.build b/test/process/meson.build\n> > > index c4d83d6c8b39..c215fa7e6c12 100644\n> > > --- a/test/process/meson.build\n> > > +++ b/test/process/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  process_tests = [\n> > >      [ 'process_test',  'process_test.cpp' ],\n> > >  ]\n> > > diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> > > index d78d92e61887..a9d9cbcb7d80 100644\n> > > --- a/test/serialization/meson.build\n> > > +++ b/test/serialization/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  serialization_tests = [\n> > >      [ 'control_serialization',    'control_serialization.cpp' ],\n> > >  ]\n> > > diff --git a/test/stream/meson.build b/test/stream/meson.build\n> > > index 005f4aa4996a..2b9b29a9143b 100644\n> > > --- a/test/stream/meson.build\n> > > +++ b/test/stream/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  stream_tests = [\n> > >      [ 'stream_formats', 'stream_formats.cpp' ],\n> > >  ]\n> > > diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> > > index 0521984b2a78..5f0882ca9772 100644\n> > > --- a/test/v4l2_subdevice/meson.build\n> > > +++ b/test/v4l2_subdevice/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  v4l2_subdevice_tests = [\n> > >    [ 'list_formats',             'list_formats.cpp'],\n> > >    [ 'test_formats',             'test_formats.cpp'],\n> > > diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> > > index 685fcf6d16d7..b4bb30908027 100644\n> > > --- a/test/v4l2_videodevice/meson.build\n> > > +++ b/test/v4l2_videodevice/meson.build\n> > > @@ -1,3 +1,5 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  # Tests are listed in order of complexity.\n> > >  # They are not alphabetically sorted.\n> > >  v4l2_videodevice_tests = [\n> > > diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> > > index 49c45856eea6..88049f589561 100644\n> > > --- a/utils/ipu3/meson.build\n> > > +++ b/utils/ipu3/meson.build\n> > > @@ -1 +1,3 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> > > diff --git a/utils/meson.build b/utils/meson.build\n> > > index f434c79c0ae3..c3cd9d69f887 100644\n> > > --- a/utils/meson.build\n> > > +++ b/utils/meson.build\n> > > @@ -1 +1,3 @@\n> > > +# SPDX-License-Identifier: CC0-1.0\n> > > +\n> > >  subdir('ipu3')\n> > >\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<naush@raspberrypi.com>","Received":["from mail-lf1-x142.google.com (mail-lf1-x142.google.com\n\t[IPv6:2a00:1450:4864:20::142])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 70E6F603DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 May 2020 09:19:27 +0200 (CEST)","by mail-lf1-x142.google.com with SMTP id u4so12710865lfm.7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 May 2020 00:19:27 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"MiyL5Dib\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc:content-transfer-encoding;\n\tbh=lzuZcb1l7PH8gXeEZlIw4JMcb8QQWEOYpeCsayY/oqg=;\n\tb=MiyL5DibVinw1wOqOXAwqIFYPt1gH13JcRCkVfdmZjoL+ORFliWVvrXzLM3fE9Yzxw\n\ttFYfFOu/2xhBOfNQhM65Q8KZLt4luya0FZyZn1ESNgIYA8m0BM/7p+C3mmD4K59c+OsX\n\teHqi3jWAmRMNGQS/ZUWXDRAC9tlq17TNF+0CbpQ5pbGG6+3gxl1/TUfuM8BIUuoHgre+\n\tLfVRpBMUi+kW/z3KVxZ5oUHuaesMnmve8l9eoaN3A0jbNeaOn3evirjnF+JmUK7fP/ZV\n\t8OHJYOKW3+Lv2rggkfKe3giwSUVuEwUCb8sTw/wjD5gxICA8hEFtfU3h2Gej5GHnl6Cd\n\tjsdQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc:content-transfer-encoding;\n\tbh=lzuZcb1l7PH8gXeEZlIw4JMcb8QQWEOYpeCsayY/oqg=;\n\tb=BFYc6SXhWm/7zyNqw0iLUqe77c1TKgGQziXK3evpOZa2USGDjohRjCjDbqoyAP2Jbk\n\tI9kqlxjfWmj4Kr7hANnR1uC/75VGGEqQX03LFji4DowitVGuwFEIsJ5uJlm/wnyJ7y7L\n\te68wQBd5txM1rGnq4t982vcNw6K8Molj4crwrCwNsFAk8GOPI3UqsEwEVTzYn4ZYr3fZ\n\tc5NfvTUF+LU+0WdsGS1RzHrf27PYZdJEc93OEfbuXxo31NQQmbHhdOOOt39DE7x/tHXa\n\thYyKHIaW/bwUOcJY1J3E0PXkRkulH0ktu5uf10L9K5ETJAsYLeOx4YWwdnYsBLk/3aE7\n\tOVGw==","X-Gm-Message-State":"AOAM531QrY7H8r65m9Xn9dLyCZvYuAa4QPFkO1AWOGaj0rA5fN64PP2X\n\tYDBbMSw4XbGS4Rg0jJ/2hgSNZWR6V6d75lLHUUZC2Q==","X-Google-Smtp-Source":"ABdhPJytR5SfUUCtCJyNYI9qhiwcIrr1MF/cPtPteM6T1ka1H7U6wRtR1wPAgXyeO2Y1jRHioeYYGPabCdOqBfPnrhg=","X-Received":"by 2002:ac2:5e70:: with SMTP id\n\ta16mr17303648lfr.77.1589354366206; \n\tWed, 13 May 2020 00:19:26 -0700 (PDT)","MIME-Version":"1.0","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>\n\t<fa8390c7-8551-a75b-64ce-89bd24f91851@ideasonboard.com>\n\t<650d6bbee23ac14a8199cc0cfabc4204aa4278c2.camel@collabora.com>","In-Reply-To":"<650d6bbee23ac14a8199cc0cfabc4204aa4278c2.camel@collabora.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Wed, 13 May 2020 08:19:10 +0100","Message-ID":"<CAEmqJPpeF=YYyah=M3cRBhsV+KmL3qjxmKc1BsvK15Ab9aDKPA@mail.gmail.com>","To":"Nicolas Dufresne <nicolas.dufresne@collabora.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, \n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, \n\tFabrice Fontaine <fontaine.fabrice@gmail.com>, \n\tGiulio Benetti <giulio.benetti@micronovasrl.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Wed, 13 May 2020 07:19:27 -0000"}},{"id":4810,"web_url":"https://patchwork.libcamera.org/comment/4810/","msgid":"<20200513080729.mgky2bznc6qkrhlv@uno.localdomain>","date":"2020-05-13T08:07:29","subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Tue, May 12, 2020 at 01:27:21AM +0300, Laurent Pinchart wrote:\n> In an attempt to clarify the license terms of all files in the libcamera\n> project, the build system files deserve particular attention. While they\n> describe how the binaries are created, they are not themselves\n> transformed into any part of binary distributions of the software, and\n> thus don't influece the copyright on the binary packages. They are\n> however subject to copyright, and thus influence the distribution terms\n> of the source packages.\n>\n> Most of the meson.build files would not meet the threshold of\n> originality criteria required for copyright protection. Some of the more\n> complex meson.build files may be elligible for copyright protection. To\n> avoid any ambiguity and uncertainty, state our intent to not assert\n> copyrights on the build system files by putting them in the public\n> domain with the CC0-1.0 license.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nAcked-by: Jacopo Mondi <jacopo@jmondi.org>\n\n> ---\n> Changes since v1:\n>\n> - Added meson.build files from the Raspberry Pi pipeline handler\n> ---\n>  Documentation/meson.build                     |   2 +\n>  LICENSES/CC0-1.0.txt                          | 119 ++++++++++++++++++\n>  include/android/meson.build                   |   2 +\n>  include/ipa/meson.build                       |   2 +\n>  include/libcamera/meson.build                 |   2 +\n>  include/meson.build                           |   2 +\n>  meson.build                                   |   2 +\n>  meson_options.txt                             |   2 +\n>  src/android/meson.build                       |   2 +\n>  src/cam/meson.build                           |   2 +\n>  src/gstreamer/meson.build                     |   2 +\n>  src/ipa/libipa/meson.build                    |   2 +\n>  src/ipa/meson.build                           |   2 +\n>  src/ipa/raspberrypi/meson.build               |   2 +\n>  src/ipa/rkisp1/meson.build                    |   2 +\n>  src/ipa/vimc/data/meson.build                 |   2 +\n>  src/ipa/vimc/meson.build                      |   2 +\n>  src/libcamera/include/meson.build             |   2 +\n>  src/libcamera/meson.build                     |   2 +\n>  src/libcamera/pipeline/ipu3/meson.build       |   2 +\n>  src/libcamera/pipeline/meson.build            |   2 +\n>  .../pipeline/raspberrypi/meson.build          |   2 +\n>  src/libcamera/pipeline/rkisp1/meson.build     |   2 +\n>  src/libcamera/pipeline/simple/meson.build     |   2 +\n>  src/libcamera/pipeline/uvcvideo/meson.build   |   2 +\n>  src/libcamera/pipeline/vimc/meson.build       |   2 +\n>  src/libcamera/proxy/meson.build               |   2 +\n>  src/libcamera/proxy/worker/meson.build        |   2 +\n>  src/meson.build                               |   2 +\n>  src/qcam/meson.build                          |   2 +\n>  src/v4l2/meson.build                          |   2 +\n>  test/camera/meson.build                       |   2 +\n>  test/controls/meson.build                     |   2 +\n>  test/ipa/meson.build                          |   2 +\n>  test/ipc/meson.build                          |   2 +\n>  test/libtest/meson.build                      |   2 +\n>  test/log/meson.build                          |   2 +\n>  test/media_device/meson.build                 |   2 +\n>  test/meson.build                              |   2 +\n>  test/pipeline/ipu3/meson.build                |   2 +\n>  test/pipeline/meson.build                     |   2 +\n>  test/pipeline/rkisp1/meson.build              |   2 +\n>  test/process/meson.build                      |   2 +\n>  test/serialization/meson.build                |   2 +\n>  test/stream/meson.build                       |   2 +\n>  test/v4l2_subdevice/meson.build               |   2 +\n>  test/v4l2_videodevice/meson.build             |   2 +\n>  utils/ipu3/meson.build                        |   2 +\n>  utils/meson.build                             |   2 +\n>  49 files changed, 215 insertions(+)\n>  create mode 100644 LICENSES/CC0-1.0.txt\n>\n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index c4e9892470de..b3b4f0b66f57 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  doc_install_dir = join_paths(get_option('datadir'), 'doc',\n>                               'libcamera-@0@'.format(libcamera_version))\n>\n> diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt\n> new file mode 100644\n> index 000000000000..a343ccd4335f\n> --- /dev/null\n> +++ b/LICENSES/CC0-1.0.txt\n> @@ -0,0 +1,119 @@\n> +Creative Commons Legal Code\n> +\n> +CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES\n> +NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE\n> +AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION\n> +ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE\n> +OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS\n> +LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION\n> +OR WORKS PROVIDED HEREUNDER.\n> +\n> +Statement of Purpose\n> +\n> +The laws of most jurisdictions throughout the world automatically confer exclusive\n> +Copyright and Related Rights (defined below) upon the creator and subsequent\n> +owner(s) (each and all, an \"owner\") of an original work of authorship and/or\n> +a database (each, a \"Work\").\n> +\n> +Certain owners wish to permanently relinquish those rights to a Work for the\n> +purpose of contributing to a commons of creative, cultural and scientific\n> +works (\"Commons\") that the public can reliably and without fear of later claims\n> +of infringement build upon, modify, incorporate in other works, reuse and\n> +redistribute as freely as possible in any form whatsoever and for any purposes,\n> +including without limitation commercial purposes. These owners may contribute\n> +to the Commons to promote the ideal of a free culture and the further production\n> +of creative, cultural and scientific works, or to gain reputation or greater\n> +distribution for their Work in part through the use and efforts of others.\n> +\n> +For these and/or other purposes and motivations, and without any expectation\n> +of additional consideration or compensation, the person associating CC0 with\n> +a Work (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\n> +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work\n> +and publicly distribute the Work under its terms, with knowledge of his or\n> +her Copyright and Related Rights in the Work and the meaning and intended\n> +legal effect of CC0 on those rights.\n> +\n> +1. Copyright and Related Rights. A Work made available under CC0 may be protected\n> +by copyright and related or neighboring rights (\"Copyright and Related Rights\").\n> +Copyright and Related Rights include, but are not limited to, the following:\n> +\n> +i. the right to reproduce, adapt, distribute, perform, display, communicate,\n> +and translate a Work;\n> +\n> +      ii. moral rights retained by the original author(s) and/or performer(s);\n> +\n> +iii. publicity and privacy rights pertaining to a person's image or likeness\n> +depicted in a Work;\n> +\n> +iv. rights protecting against unfair competition in regards to a Work, subject\n> +to the limitations in paragraph 4(a), below;\n> +\n> +v. rights protecting the extraction, dissemination, use and reuse of data\n> +in a Work;\n> +\n> +vi. database rights (such as those arising under Directive 96/9/EC of the\n> +European Parliament and of the Council of 11 March 1996 on the legal protection\n> +of databases, and under any national implementation thereof, including any\n> +amended or successor version of such directive); and\n> +\n> +vii. other similar, equivalent or corresponding rights throughout the world\n> +based on applicable law or treaty, and any national implementations thereof.\n> +\n> +2. Waiver. To the greatest extent permitted by, but not in contravention of,\n> +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\n> +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright\n> +and Related Rights and associated claims and causes of action, whether now\n> +known or unknown (including existing as well as future claims and causes of\n> +action), in the Work (i) in all territories worldwide, (ii) for the maximum\n> +duration provided by applicable law or treaty (including future time extensions),\n> +(iii) in any current or future medium and for any number of copies, and (iv)\n> +for any purpose whatsoever, including without limitation commercial, advertising\n> +or promotional purposes (the \"Waiver\"). Affirmer makes the Waiver for the\n> +benefit of each member of the public at large and to the detriment of Affirmer's\n> +heirs and successors, fully intending that such Waiver shall not be subject\n> +to revocation, rescission, cancellation, termination, or any other legal or\n> +equitable action to disrupt the quiet enjoyment of the Work by the public\n> +as contemplated by Affirmer's express Statement of Purpose.\n> +\n> +3. Public License Fallback. Should any part of the Waiver for any reason be\n> +judged legally invalid or ineffective under applicable law, then the Waiver\n> +shall be preserved to the maximum extent permitted taking into account Affirmer's\n> +express Statement of Purpose. In addition, to the extent the Waiver is so\n> +judged Affirmer hereby grants to each affected person a royalty-free, non\n> +transferable, non sublicensable, non exclusive, irrevocable and unconditional\n> +license to exercise Affirmer's Copyright and Related Rights in the Work (i)\n> +in all territories worldwide, (ii) for the maximum duration provided by applicable\n> +law or treaty (including future time extensions), (iii) in any current or\n> +future medium and for any number of copies, and (iv) for any purpose whatsoever,\n> +including without limitation commercial, advertising or promotional purposes\n> +(the \"License\"). The License shall be deemed effective as of the date CC0\n> +was applied by Affirmer to the Work. Should any part of the License for any\n> +reason be judged legally invalid or ineffective under applicable law, such\n> +partial invalidity or ineffectiveness shall not invalidate the remainder of\n> +the License, and in such case Affirmer hereby affirms that he or she will\n> +not (i) exercise any of his or her remaining Copyright and Related Rights\n> +in the Work or (ii) assert any associated claims and causes of action with\n> +respect to the Work, in either case contrary to Affirmer's express Statement\n> +of Purpose.\n> +\n> +   4. Limitations and Disclaimers.\n> +\n> +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered,\n> +licensed or otherwise affected by this document.\n> +\n> +b. Affirmer offers the Work as-is and makes no representations or warranties\n> +of any kind concerning the Work, express, implied, statutory or otherwise,\n> +including without limitation warranties of title, merchantability, fitness\n> +for a particular purpose, non infringement, or the absence of latent or other\n> +defects, accuracy, or the present or absence of errors, whether or not discoverable,\n> +all to the greatest extent permissible under applicable law.\n> +\n> +c. Affirmer disclaims responsibility for clearing rights of other persons\n> +that may apply to the Work or any use thereof, including without limitation\n> +any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims\n> +responsibility for obtaining any necessary consents, permissions or other\n> +rights required for any use of the Work.\n> +\n> +d. Affirmer understands and acknowledges that Creative Commons is not a party\n> +to this document and has no duty or obligation with respect to this CC0 or\n> +use of the Work.\n> diff --git a/include/android/meson.build b/include/android/meson.build\n> index 69f1c38edada..da2504f2e493 100644\n> --- a/include/android/meson.build\n> +++ b/include/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_includes = ([\n>      include_directories('hardware/libhardware/include/'),\n>      include_directories('metadata/'),\n> diff --git a/include/ipa/meson.build b/include/ipa/meson.build\n> index 695a4183a0e8..3d5c0dd69bb4 100644\n> --- a/include/ipa/meson.build\n> +++ b/include/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_ipa_api = files([\n>      'ipa_controls.h',\n>      'ipa_interface.h',\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 23c01d3837ba..cea47eb83030 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_api = files([\n>      'bound_method.h',\n>      'buffer.h',\n> diff --git a/include/meson.build b/include/meson.build\n> index 42b2453445b5..4f41c9ceeb4c 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_include_dir = 'libcamera'\n>\n>  subdir('android')\n> diff --git a/meson.build b/meson.build\n> index 59829e1942ca..e898782a28b0 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  project('libcamera', 'c', 'cpp',\n>      meson_version : '>= 0.47',\n>      version : '0.0.0',\n> diff --git a/meson_options.txt b/meson_options.txt\n> index 68f4f48004e5..badace151bb6 100644\n> --- a/meson_options.txt\n> +++ b/meson_options.txt\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  option('android',\n>          type : 'boolean',\n>          value : false,\n> diff --git a/src/android/meson.build b/src/android/meson.build\n> index 5a5a332e6a6f..822cad621f01 100644\n> --- a/src/android/meson.build\n> +++ b/src/android/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  android_hal_sources = files([\n>      'camera3_hal.cpp',\n>      'camera_hal_manager.cpp',\n> diff --git a/src/cam/meson.build b/src/cam/meson.build\n> index 162d6333f94e..89e124fbae2a 100644\n> --- a/src/cam/meson.build\n> +++ b/src/cam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  cam_sources = files([\n>      'buffer_writer.cpp',\n>      'capture.cpp',\n> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> index e119e472cb58..c9f0c13d969d 100644\n> --- a/src/gstreamer/meson.build\n> +++ b/src/gstreamer/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_gst_sources = [\n>      'gstlibcamera-utils.cpp',\n>      'gstlibcamera.cpp',\n> diff --git a/src/ipa/libipa/meson.build b/src/ipa/libipa/meson.build\n> index 6f3cd4866ce3..2262640517a0 100644\n> --- a/src/ipa/libipa/meson.build\n> +++ b/src/ipa/libipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libipa_headers = files([\n>      'ipa_interface_wrapper.h',\n>  ])\n> diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> index b103479c1cd0..64deb601054c 100644\n> --- a/src/ipa/meson.build\n> +++ b/src/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n>  ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n>  ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> diff --git a/src/ipa/raspberrypi/meson.build b/src/ipa/raspberrypi/meson.build\n> index 2dece3a468e8..697902e95bc1 100644\n> --- a/src/ipa/raspberrypi/meson.build\n> +++ b/src/ipa/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rpi'\n>\n>  rpi_ipa_deps = [\n> diff --git a/src/ipa/rkisp1/meson.build b/src/ipa/rkisp1/meson.build\n> index d7127ea8d1e9..ed9a6b6b8ec8 100644\n> --- a/src/ipa/rkisp1/meson.build\n> +++ b/src/ipa/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_rkisp1'\n>\n>  mod = shared_module(ipa_name,\n> diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> index c844926da7f2..6532662cfa94 100644\n> --- a/src/ipa/vimc/data/meson.build\n> +++ b/src/ipa/vimc/data/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  conf_files = files([\n>      'vimc.conf',\n>  ])\n> diff --git a/src/ipa/vimc/meson.build b/src/ipa/vimc/meson.build\n> index 22296a029642..8c9df854007a 100644\n> --- a/src/ipa/vimc/meson.build\n> +++ b/src/ipa/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_name = 'ipa_vimc'\n>\n>  mod = shared_module(ipa_name,\n> diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/meson.build\n> index 683d06133741..1f6af579cca2 100644\n> --- a/src/libcamera/include/meson.build\n> +++ b/src/libcamera/include/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_headers = files([\n>      'byte_stream_buffer.h',\n>      'camera_controls.h',\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index d8b4d7206aba..d42e9720dbd6 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources = files([\n>      'bound_method.cpp',\n>      'buffer.cpp',\n> diff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\n> index 0ab766a257a0..0e8c5a14f2b3 100644\n> --- a/src/libcamera/pipeline/ipu3/meson.build\n> +++ b/src/libcamera/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipu3.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> index 190ca5a8db92..46424493aa37 100644\n> --- a/src/libcamera/pipeline/meson.build\n> +++ b/src/libcamera/pipeline/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  foreach pipeline : get_option('pipelines')\n>      subdir(pipeline)\n>  endforeach\n> diff --git a/src/libcamera/pipeline/raspberrypi/meson.build b/src/libcamera/pipeline/raspberrypi/meson.build\n> index 737857977831..fc117b77bdd1 100644\n> --- a/src/libcamera/pipeline/raspberrypi/meson.build\n> +++ b/src/libcamera/pipeline/raspberrypi/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'raspberrypi.cpp'\n>  ])\n> diff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\n> index d04fb45223e7..1ab3964a6db1 100644\n> --- a/src/libcamera/pipeline/rkisp1/meson.build\n> +++ b/src/libcamera/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'rkisp1.cpp',\n>      'timeline.cpp',\n> diff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\n> index 8372f24e3788..9c99b32f69f3 100644\n> --- a/src/libcamera/pipeline/simple/meson.build\n> +++ b/src/libcamera/pipeline/simple/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'converter.cpp',\n>      'simple.cpp',\n> diff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\n> index c19ae2389f48..a3c2efd424bf 100644\n> --- a/src/libcamera/pipeline/uvcvideo/meson.build\n> +++ b/src/libcamera/pipeline/uvcvideo/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'uvcvideo.cpp',\n>  ])\n> diff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\n> index 615ecd20f1a2..290eefb5d076 100644\n> --- a/src/libcamera/pipeline/vimc/meson.build\n> +++ b/src/libcamera/pipeline/vimc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'vimc.cpp',\n>  ])\n> diff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\n> index 6c00d5f30ad2..bd804750748a 100644\n> --- a/src/libcamera/proxy/meson.build\n> +++ b/src/libcamera/proxy/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libcamera_sources += files([\n>      'ipa_proxy_linux.cpp',\n>      'ipa_proxy_thread.cpp',\n> diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> index 839156f7591a..1b1bee5e0170 100644\n> --- a/src/libcamera/proxy/worker/meson.build\n> +++ b/src/libcamera/proxy/worker/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_proxy_sources = [\n>      ['ipa_proxy_linux', 'ipa_proxy_linux_worker.cpp']\n>  ]\n> diff --git a/src/meson.build b/src/meson.build\n> index c9c1008562b1..d69b4c1ea978 100644\n> --- a/src/meson.build\n> +++ b/src/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  if get_option('android')\n>      subdir('android')\n>  endif\n> diff --git a/src/qcam/meson.build b/src/qcam/meson.build\n> index 949ef6149c8a..045db52acf26 100644\n> --- a/src/qcam/meson.build\n> +++ b/src/qcam/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  qcam_sources = files([\n>      '../cam/options.cpp',\n>      '../cam/stream_options.cpp',\n> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> index efab968f7729..fc1be82d1b02 100644\n> --- a/src/v4l2/meson.build\n> +++ b/src/v4l2/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_compat_sources = files([\n>      'v4l2_camera.cpp',\n>      'v4l2_camera_proxy.cpp',\n> diff --git a/test/camera/meson.build b/test/camera/meson.build\n> index e2a6660a7a92..0395e7ddc7a4 100644\n> --- a/test/camera/meson.build\n> +++ b/test/camera/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  camera_tests = [\n> diff --git a/test/controls/meson.build b/test/controls/meson.build\n> index 7fff2413007e..545fb03b16c6 100644\n> --- a/test/controls/meson.build\n> +++ b/test/controls/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  control_tests = [\n>      [ 'control_info',               'control_info.cpp' ],\n>      [ 'control_info_map',           'control_info_map.cpp' ],\n> diff --git a/test/ipa/meson.build b/test/ipa/meson.build\n> index f925c50a085e..ba672f3f9d8b 100644\n> --- a/test/ipa/meson.build\n> +++ b/test/ipa/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipa_test = [\n>      ['ipa_module_test',     'ipa_module_test.cpp'],\n>      ['ipa_interface_test',  'ipa_interface_test.cpp'],\n> diff --git a/test/ipc/meson.build b/test/ipc/meson.build\n> index cc46b41c7687..650df1d63444 100644\n> --- a/test/ipc/meson.build\n> +++ b/test/ipc/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipc_tests = [\n>      [ 'unixsocket',  'unixsocket.cpp' ],\n>  ]\n> diff --git a/test/libtest/meson.build b/test/libtest/meson.build\n> index 33565e0eb3b6..481f6d6baa61 100644\n> --- a/test/libtest/meson.build\n> +++ b/test/libtest/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  libtest_sources = files([\n>      'buffer_source.cpp',\n>      'camera_test.cpp',\n> diff --git a/test/log/meson.build b/test/log/meson.build\n> index 95f6c1a2ae4a..8cd664e04a00 100644\n> --- a/test/log/meson.build\n> +++ b/test/log/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  log_test = [\n>      ['log_api',     'log_api.cpp'],\n>      ['log_process', 'log_process.cpp'],\n> diff --git a/test/media_device/meson.build b/test/media_device/meson.build\n> index 6a0e468434b5..1dfcdd8bd744 100644\n> --- a/test/media_device/meson.build\n> +++ b/test/media_device/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  lib_mdev_test_sources = files([\n>      'media_device_test.cpp',\n>  ])\n> diff --git a/test/meson.build b/test/meson.build\n> index 5a45a85effd3..bd7da147c70e 100644\n> --- a/test/meson.build\n> +++ b/test/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('libtest')\n>\n>  subdir('camera')\n> diff --git a/test/pipeline/ipu3/meson.build b/test/pipeline/ipu3/meson.build\n> index d02927c9af86..d062ecd269f2 100644\n> --- a/test/pipeline/ipu3/meson.build\n> +++ b/test/pipeline/ipu3/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_test = [\n>      ['ipu3_pipeline_test',            'ipu3_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/pipeline/meson.build b/test/pipeline/meson.build\n> index 157f789ceb25..6e7901fee38f 100644\n> --- a/test/pipeline/meson.build\n> +++ b/test/pipeline/meson.build\n> @@ -1,2 +1,4 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n>  subdir('rkisp1')\n> diff --git a/test/pipeline/rkisp1/meson.build b/test/pipeline/rkisp1/meson.build\n> index d3f974964fc4..ece147b054e4 100644\n> --- a/test/pipeline/rkisp1/meson.build\n> +++ b/test/pipeline/rkisp1/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  rkisp1_test = [\n>      ['rkisp1_pipeline_test',            'rkisp1_pipeline_test.cpp'],\n>  ]\n> diff --git a/test/process/meson.build b/test/process/meson.build\n> index c4d83d6c8b39..c215fa7e6c12 100644\n> --- a/test/process/meson.build\n> +++ b/test/process/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  process_tests = [\n>      [ 'process_test',  'process_test.cpp' ],\n>  ]\n> diff --git a/test/serialization/meson.build b/test/serialization/meson.build\n> index d78d92e61887..a9d9cbcb7d80 100644\n> --- a/test/serialization/meson.build\n> +++ b/test/serialization/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  serialization_tests = [\n>      [ 'control_serialization',    'control_serialization.cpp' ],\n>  ]\n> diff --git a/test/stream/meson.build b/test/stream/meson.build\n> index 005f4aa4996a..2b9b29a9143b 100644\n> --- a/test/stream/meson.build\n> +++ b/test/stream/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  stream_tests = [\n>      [ 'stream_formats', 'stream_formats.cpp' ],\n>  ]\n> diff --git a/test/v4l2_subdevice/meson.build b/test/v4l2_subdevice/meson.build\n> index 0521984b2a78..5f0882ca9772 100644\n> --- a/test/v4l2_subdevice/meson.build\n> +++ b/test/v4l2_subdevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  v4l2_subdevice_tests = [\n>    [ 'list_formats',             'list_formats.cpp'],\n>    [ 'test_formats',             'test_formats.cpp'],\n> diff --git a/test/v4l2_videodevice/meson.build b/test/v4l2_videodevice/meson.build\n> index 685fcf6d16d7..b4bb30908027 100644\n> --- a/test/v4l2_videodevice/meson.build\n> +++ b/test/v4l2_videodevice/meson.build\n> @@ -1,3 +1,5 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  # Tests are listed in order of complexity.\n>  # They are not alphabetically sorted.\n>  v4l2_videodevice_tests = [\n> diff --git a/utils/ipu3/meson.build b/utils/ipu3/meson.build\n> index 49c45856eea6..88049f589561 100644\n> --- a/utils/ipu3/meson.build\n> +++ b/utils/ipu3/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  ipu3_unpack = executable('ipu3-unpack', 'ipu3-unpack.c')\n> diff --git a/utils/meson.build b/utils/meson.build\n> index f434c79c0ae3..c3cd9d69f887 100644\n> --- a/utils/meson.build\n> +++ b/utils/meson.build\n> @@ -1 +1,3 @@\n> +# SPDX-License-Identifier: CC0-1.0\n> +\n>  subdir('ipu3')\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net\n\t[217.70.183.194])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 18DFB603DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 May 2020 10:04:14 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay2-d.mail.gandi.net (Postfix) with ESMTPSA id DBAFF4000D;\n\tWed, 13 May 2020 08:04:12 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Wed, 13 May 2020 10:07:29 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>,\n\tFabrice Fontaine <fontaine.fabrice@gmail.com>,\n\tGiulio Benetti <giulio.benetti@micronovasrl.com>","Message-ID":"<20200513080729.mgky2bznc6qkrhlv@uno.localdomain>","References":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20200511222721.5512-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2] licenses: License all meson files\n\tunder CC0-1.0","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":"Wed, 13 May 2020 08:04:14 -0000"}}]