Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split gpl package #31

Closed
wants to merge 12 commits into from
Closed

Split gpl package #31

wants to merge 12 commits into from

Conversation

hmaarrfk
Copy link
Contributor

@hmaarrfk hmaarrfk commented Aug 19, 2018

Superseeds #30 (suggested using libedit instead)
Fixes #29

Splits the package into a GPL'ed portion (the binary) and the non-gpl'ed portion (the library). See results from ldd.

(I didn't test it with windows or mac, lets see what the CI's say)

The binary is compiled with readline support, so it must have a GPLv3 license.

Notes from the discussion in #30
@bgruening suggested looking at how debian packages things

I am unfamiliar with debian packaging, but it doesn't seem that they list a license in their package.

They they split their package into an executable package and library.

Checklist

  • Used a fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy
  • Ensured the license file is being packaged.

XREF:
Issue on Continuum repo:

@conda-forge-linter

This comment has been minimized.

@conda-forge-linter

This comment has been minimized.

@conda-forge-linter

This comment has been minimized.

@conda-forge-linter

This comment has been minimized.

@hmaarrfk

This comment has been minimized.

@conda-forge-linter

This comment has been minimized.

recipe/meta.yaml Outdated
- include/sqlite3* # [not win]
- share/man/man1/sqlite3* # [not win]
- lib/libsqlite3* # [not win]
- lib/pkgconfig/sqlite3.pc # [not win]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jakirkham I feel like all these lines are just going to cause future pain for packagers. Is there a way to simplify things?

recipe/meta.yaml Outdated
- name: sqlite
files:
- bin/sqlite3 # [not win]
- Library/bin/sqlite3.exe # [win]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jakirkham I really just want to take the "compliment" of these files.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess now it is pretty clean.

@hmaarrfk
Copy link
Contributor Author

@jakirkham @ocefpaf @scopatz @bgruening

Thank you for your comments on PR #30. I think this PR addresses all the issues and takes a step in the right direction in terms of compliance.

Depending on the feedback I receive from you guys I'll add a GPL license file for the sqlite3 executable.

recipe/meta.yaml Outdated
- sqlite3 --version
about:
home: http://www.sqlite.org/
license: GPL-3.0 # [not win]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that it is OK to change the license here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean the win/not win flag?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean that I don't think it is OK to advertise that a license covers a package that the original authors did not intend

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is, readline is clearly GPL'd and so SQLite should retain its license

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is important to note that because you are using sqlite+readline, there are 2 authors. And the GPL license is viral by design, and makes the product as a whole GPL.

The source can still be found under Public domain. But this distribution, compiled by conda-forge is GPL. (Unless you claim that APIs are not copyrighted like you did below).

recipe/meta.yaml Outdated
# By compiling with readline, the /bin/sqlite3 executable becomes
# subject to the GPL
# Therefore, we decide to split it to make it clear
# That the other software is not.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that this is strictly true, or at least it is open to legal interpretation. The GPL certainly claims that (dynamically) linking will make the joint program GPL. However, this does not necessarily follow, as when you link the only part of the code that is used is the API, which is non-copyrightable.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is fair, but there is no compatible library that has a compatible API (yet) on conda-forge so that argument is rather weak.

I think that along with the dependency on readline, it is hard to argue against the fact that the final product, that arrives on the user's computer is not using GPL code.

@hmaarrfk
Copy link
Contributor Author

@scopatz, hopefully I incorporated all the mods you requested.

The script is also much improved to ensure that we don't need to keep updating things. Let me know what you think.

@hmaarrfk
Copy link
Contributor Author

Superseeded by conda-forge/staged-recipes#6550

@hmaarrfk hmaarrfk closed this Aug 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants