From ad0acf348c6a0dbb2f50bb325d0d1148a032a89f Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Sat, 9 Jul 2022 17:47:56 -0500 Subject: [PATCH 1/4] NEW: Propose CFEP-21 license packages for static/header libraries --- cfep-21.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 cfep-21.md diff --git a/cfep-21.md b/cfep-21.md new file mode 100644 index 0000000..8d62a0a --- /dev/null +++ b/cfep-21.md @@ -0,0 +1,52 @@ + + + + + + + + + +
Title Export license packages for static and header-only libraries
Status Draft
Author(s) Daniel Ching <carterbox@users.noreply.github.com>
Created Jul 9, 2022
Updated Jul 9, 2022
Discussion NA
Implementation NA
+ +## Abstract + +This CFEP proposes that header-only and static libraries and should be required +to run_export an empty package (containing their license) called "{{ name +}}-license" in order to ensure/automate attribution and to satisfy the license +requirements. + +## Specification + +Header-only or static library packages should include an output called +"{{ name }}-license" which is added as a run_export for the library. + +## Motivation + +Attribution for header-only and static libraries on conda-forge is not well +enforced because unlike shared libraries which are also required to be +installed again at runtime (with license included), these libraries need manual +intervention to ensure that the license of the header-only or static library is +concatenated to the license metadata of the downstream library which uses it. +This should obviously be done and is easy to notice for static libraries (whose +names end in "-static"), but for header-only libraries it is less obvious +because the name of the library does not obviously mark the library as +header-only. + +Libraries like Eigen and Pybind11 are commonly used, but probably not +attributed beyond their mention in the host section of the recipe. Mention in +the requirements section of a recipe probably does not meet the +licensing/attribution requirements. + +## Rationale + +run_exports is the obvious way to deliver the license information into the +environment of downstream packages; this is already how the license information +is included for dynamically linked libraries. + +"{{ name }}-license" matches the exisiting naming scheme for "{{ name }}-static" +"{{ name }}-includes". + +## Copyright + +All CFEPs are explicitly [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/). From 23d2581bc058023ea8799d924ff720141aa244ee Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Mon, 25 Jul 2022 17:45:46 -0500 Subject: [PATCH 2/4] Update to proposed --- cfep-21.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cfep-21.md b/cfep-21.md index 8d62a0a..a9b96be 100644 --- a/cfep-21.md +++ b/cfep-21.md @@ -1,10 +1,10 @@ - + - +
Title Export license packages for static and header-only libraries
Status Draft
Status Proposed
Author(s) Daniel Ching <carterbox@users.noreply.github.com>
Created Jul 9, 2022
Updated Jul 9, 2022
Updated Jul 25, 2022
Discussion NA
Implementation NA
From 191013660b97fb0c1645963d06bb126b39572df9 Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Mon, 25 Jul 2022 17:55:13 -0500 Subject: [PATCH 3/4] Add note about rollout --- cfep-21.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cfep-21.md b/cfep-21.md index a9b96be..5e4696e 100644 --- a/cfep-21.md +++ b/cfep-21.md @@ -47,6 +47,14 @@ is included for dynamically linked libraries. "{{ name }}-license" matches the exisiting naming scheme for "{{ name }}-static" "{{ name }}-includes". +## FAQ + +### How does this affect current builds of packages? + +It doesn't. The changes will slowly be implemented over time as packages and their +downstream packages are rebuilt with regular releases. Migrations are a tool +that could be used to if desired for certain packages. + ## Copyright All CFEPs are explicitly [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/). From 78e2cc723f51fa308d4dafd93c8a23d3c9d2ea8e Mon Sep 17 00:00:00 2001 From: Daniel Ching Date: Thu, 28 Jul 2022 12:18:43 -0500 Subject: [PATCH 4/4] Fix grammar --- cfep-21.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cfep-21.md b/cfep-21.md index 5e4696e..4851e5b 100644 --- a/cfep-21.md +++ b/cfep-21.md @@ -11,7 +11,7 @@ ## Abstract -This CFEP proposes that header-only and static libraries and should be required +This CFEP proposes that header-only and static libraries should be required to run_export an empty package (containing their license) called "{{ name }}-license" in order to ensure/automate attribution and to satisfy the license requirements.