-
-
Notifications
You must be signed in to change notification settings - Fork 276
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
[enhancement]: exclude SEL licensed code from AGPL licensed code #783
Comments
Tracking additional issues I encounter after 71c3c06. The line at
tenant() function which is SEL code.
The conditional compiling statement at
|
I'll look into this in a few weeks once OIDC has been implemented. |
Following up on this: I still see an error in the same code as described above, meaning that it's still not possible to use Stalwart under the AGPL at present. Tested version was latest git commit. While I'm here, a couple of additional things. I think the Readme is misleading on this subject because it describes Stalwart as "dual-licensed". Usually dual licensing means that the user has a choice of which license agreement to distribute the software under. For example, the Qt project dual licenses under GPL and a proprietary license. It was not obvious to me until digging into the project that the code was not freely licensed, and I think e.g. Arch Linux got tripped up by this as well. One nice way to solve this on a more permanent basis would be to have the automated release system generate AGPL-clean sources and binaries. Also, I have concerns I previously deferred about the CLA. I believe the CLA predates the relicensing of the code, for one thing, and it is also clear when it states that
This means that the Stalwart organization has agreed to license the entire Stalwart project (including "proprietary" code) under a free software license in perpetuity - unless every contribution provided under the CLA is removed - meaning that the attempt to re-license the project is likely* invalid. I think a true dual-licensing scheme that earned money exclusively by releasing business customers from the AGPL's requirements could potentially be sustained, but I haven't looked at this in any detail. * I am not a lawyer and cannot provide legal advice on this point. This reflects my personal opinion based on my interpretation of the CLA. |
Another way to solve that would be with an addon model. The APIs would need to be sufficient to allow the proprietary code to work. I think for example an authentication method should be easy enough to separate out, given that many projects have pluggable authentication, and there is SASL standard etc. |
Sorry, this is not a priority at the moment. A lot of people would like to see DAV support in Stalwart for instance. I'll look at this once version 1.0 is released in a few months. If not being able to remove the SEL code entirely is an issue upstream then please ask the affected parties not to include Stalwart's source code until this is addressed.
You are looking at the current FLA, there was an even more restrictive CLA before. In any case, there are no external contributions to the
That is incorrect, the FLA grants Stalwart Labs ownership of the code contributed which allow us to license it under a proprietary license. These rights are automatically revoked and ownership is reverted back to the contributor if Stalwart stops offering the contributed code as open source. But it does allow Stalwart Labs to re-license any contributions under SEL.
Please seek legal advice if you believe I am wrong but please let's not continue this discussion based on your interpretation of the intellectual property law. I don't mean to be rude, I just have a limited amount of time and I need to focus on developing Stalwart. But if your attorney believes the Stalwart licensing model is broken please do let me know. Thank you. |
I do disagree and I'm going to briefly explain why and then leave the issue there, as I intend to stop using Stalwart as I see the legal risks as too great -- if a contributor revokes your right to use their code it could destroy the whole project. You're under no obligation to respond. The full section I'm quoting from:
So what Stalwart is agreeing to is not just licensing the Contribution as free software, it's also agreeing to license any software containing, based on, or derived from that software as AGPL 3.0 (or a later version). Stalwart (the full product) is obviously a piece of software that contains the Contribution, therefore it falls under this agreement. You're right (I think) that the CLA gives Stalwart the right to license the Contribution under the SEL as well, but the right to use the code can be terminated if the above agreement isn't met:
So to the extent that Stalwart is refusing to license SEL code under the AGPL 3.0 as well, I believe any contributor has the right to terminate the agreement. And actually, if you look up the history of the Fiduciary License Agreement, you'll see that it was intended to do just that:
I wish you well. I don't have any ill feelings or intent toward you or the Stalwart project, and I understand that it's difficult to have a career in open source software. I just want the facts to be as clear as I can. |
What happened?
I attempted to build the program after removing code licensed under SEL, in particular the snippet here: https://github.com/stalwartlabs/mail-server/blob/main/crates/directory/src/backend/internal/mod.rs#L101
Quite a bit of code that is AGPL 3.0 licensed in
crates/directory/src/backend/internal/manage.rs
depends on this function. I'm building without the enterprise--feature
and this doesn't make a difference here as the code isn't conditionally compiled.How can we reproduce the problem?
Version
v0.10.x
What database are you using?
None
What blob storage are you using?
None
Where is your directory located?
None
What operating system are you using?
None
Relevant log output
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: