BioContainers / specs

BioContainers specifications
http://biocontainers.pro
Apache License 2.0
49 stars 12 forks source link

license field should use SPDX identifiers, not upstream URLs (too fragile) #82

Closed mr-c closed 6 years ago

mr-c commented 6 years ago

https://spdx.org/licenses/ https://spdx.org/specifications

mr-c commented 6 years ago

Example: https://github.com/BioContainers/specs/pull/83

ypriverol commented 6 years ago

In order to be more compliant with Conda packages I propose the following approach:

LABEL License = BSD LABEL License_file = LICENSE

With this approach, we will use the definition from https://spdx.org/licenses/ and also reference to the proper file as https://conda.io/docs/user-guide/tasks/build-packages/define-metadata.html .

bgruening commented 6 years ago

@ypriverol please note that license_file is used in Conda to copy over the license file into the package as for a few licenses you need to distribute it with your package. So a container also needs to include this file.

ypriverol commented 6 years ago

Thanks @bgruening for your feedback. Then, what you are suggesting is that we do not only include the path, but we also copy the actual license close to the recipe.?

ypriverol commented 6 years ago

BTW, in order to make this more complement, I also suggest doing what conda suggested for recipes metadata variables name. Instead of calling License, it should be license and for composed variables use the _ like: license_file. What do you think @mr-c @bgruening @prvst @osallou

bgruening commented 6 years ago

I think it just need to be in the container, not here on github.

ypriverol commented 6 years ago

Then one build system should import this information into the container? I guess conda is retrieving internally this information from the source? . How about the source that is not in github, do you have an example.

bgruening commented 6 years ago

If you have a GPL licensed software the licence file needs to be in the tarball, no matter where the tarball is. So license_file is just copying this file from the unpacked tarball into the package.

osallou commented 6 years ago

Dockerfile should download the license if not already in downloaded content, and license_file should point to license location. However, depending on container it is of little use if there is no way to read the license (no shell access or editor in container).

However i agree with the license/license_file, i suggested it to a pull request yesterday. License type should appear in a clear way, no need to look at licende file (unless user wish it or license has special terms).

Olivier

Le sam. 14 oct. 2017 12:11, Yasset Perez-Riverol notifications@github.com a écrit :

Then one build system should import this information into the container? I guess conda is retrieving internally this information from the source? . How about the source that is not in github, do you have an example.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/BioContainers/specs/issues/82#issuecomment-336625207, or mute the thread https://github.com/notifications/unsubscribe-auth/AA-gYtqk6vNtUZJHA2pkyR7SHIh5f5aYks5ssIjVgaJpZM4PyRm2 .

mr-c commented 6 years ago

As per http://label-schema.org/rc1/ best practices, I suggest

LABEL pro.biocontainers.license BSD
osallou commented 6 years ago

This syntax is indeed suggested for lavels in containers but not applied to current other labels. Could be however suggested new syntax.

Le sam. 14 oct. 2017 14:24, Michael R. Crusoe notifications@github.com a écrit :

As per http://label-schema.org/rc1/ best practices, I suggest

LABEL pro.biocontainers.license BSD

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/BioContainers/specs/issues/82#issuecomment-336631698, or mute the thread https://github.com/notifications/unsubscribe-auth/AA-gYsmZ5YG2mT6jaH4DetHA7HMlgwoLks5ssKfugaJpZM4PyRm2 .

osallou commented 6 years ago

@ypriverol , @mr-c

merge defines license label only, we should also specify optional license_file tag to give license file location in container (if license specifies that it should be delivered with software). I think that if license is not spdx, license should contain only a "generic/basic" description and license_file refering to a file in container or next to Dockerfile in biocontainers (indeed a software url may not be valid anymore in the future).

Example

If spdx:

license: SPDX:MIT

depending on license

license_file: /opt/mysoft/GNU_GPL.txt

If not spdx:

license: "kinda special academic only at night"
license_file: "http:/github.com/biocontainers/mysoftware/version/LICENSE.txt"   
or license_file: "/opt/mysoft/LICENSE.txt"