debian-cryptoanarchy / cryptoanarchy-deb-repo-builder

Tooling for building a Debian repository containing interconnected, well-working applications.
143 stars 25 forks source link

Licensing #134

Open Kixunil opened 3 years ago

Kixunil commented 3 years ago

As mentioned in README, license is not yet defined. This is WIP.

@MaxHillebrand, @ketominer, @taxmeifyoucan, @shisui-crypto, @wiz you contributed to this repository in the past. Do you have any objections to this?

taxmeifyoucan commented 3 years ago

Concept ACK. I am just interested why would you choose license without mandatory disclosure of source code?

wiz commented 3 years ago

Sorry I don't understand, which license do you want us to ACK?

Kixunil commented 3 years ago

@taxmeifyoucan because using force against other people to disclose what they want to keep secret is immoral. It violates their physical property (body, hardware...)

@wiz sadly, I couldn't find a license that'd suit my beliefs. My general idea is GPL without mandating code disclosure, as described in README. I already contacted a lawyer to iron this out. So far I'm asking for ACK on general direction of this idea.

Kixunil commented 3 years ago

MIT allows the other extreme - other entity to modify the code, close it and then also enforce monopoly on copying. :(

Kixunil commented 3 years ago

GPL with extra clause that people are not obligated to provide source code would make sense. I'm not sure how to make it legally sound.

wiz commented 3 years ago

FYI - we're changing the mempool project to use AGPLv3 since it's a web application, you can read my reasoning here https://github.com/mempool/mempool/pull/388

Kixunil commented 3 years ago

If you're asking me for my opinion, it is that both GPL and AGPL are immoral. To be precise they violate natural property law.

If I own a piece of hardware I have the moral right to store any bit pattern on my disk and send this bit pattern to anyone who requests it without any other restrictions or conditions, assuming the response to request is not attacking the user without his consent (malware).

(A)GPL violates this because certain bit patterns are considered special and allow anyone to use violent governmental force against people who happen to send these bit patterns.

Of course, keeping source code secret may be considered rude and I have no problem with people publicly shaming or boycotting companies that do it. It's just the use of violent force that I consider immoral.

MaxHillebrand commented 3 years ago

Concept ACK.

I'm not sure about the implementation nuances, but would love to explore this further, especially with serious legal review.

pajasevi commented 3 years ago

@Kixunil You might want to read the GPL license again to understand it properly. You are not obligated to publish any source code changes as long as you don't distribute it (in binary or any other form). This is exactly because:

other entity to modify the code, close it and then also enforce monopoly on copying. :(

Imagine a state operated entities or corporates taking your code, modifying it and distributing it compiled without need to publish their source code changes. That's what your proposal would do.

https://www.gnu.org/licenses/gpl-faq.en.html#GPLRequireSourcePostedPublic

Concept NACK

Kixunil commented 3 years ago

@pajasevi you might want to read on Voluntaryism and re-read what I wrote above. I want to allow distributing binaries without the code as long as the one distributing them doesn't prevent third parties from sharing, modifying, inspecting...

Imagine a state operated entities or corporates taking your code, modifying it and distributing it compiled without need to publish their source code changes. That's what your proposal would do.

Exactly, this needs to be possible to uphold moral code of Voluntaryism, even if we don't like it. Perhaps governments could still be forced to disclose the code as they already violate Voluntaryism. I will have to think about it.

pajasevi commented 3 years ago

That doesn't make any sense. Distributing binaries without publishing source code to public makes it essentially closed source software.

Kixunil commented 3 years ago

Closed source but without traditional copyright immorality. If anyone actually did that it'd still be viewed as a dick move, just no force would be applied to resolve the situation. Physical Scarce property laws are above anything else.

MaxHillebrand commented 3 years ago

I agree with @kixunil, publishing a binary but not publishing the source does not aggress against anyone's property.

pajasevi commented 3 years ago

@MaxHillebrand That's not what it's about. Publishing a binary without publishing source code essentially makes the published binary closed-source software. Trustlessness lost. This is totally against the whole FOSS movement. This has nothing to do with voluntaryism.

@Kixunil if you're against copyright, you free to use Unlicense.

MaxHillebrand commented 3 years ago

That's not what it's about.

In context of our conversation, property rights is exactly what it's about. The goal is to have a license that is consistent in non-aggression of scarce private property.

The author of the published code has no right to compel what the copier of the code must do with his scarce resources. If the copier wishes to publish on his own server hardware a binary file, but not publishing the source code to it, then he is completely in his right to do with his scarce property as he pleases, and the author has no right whatsoever to initiate force against the copier.

SamouraiDev commented 3 years ago

That's not what it's about.

In context of our conversation, property rights is exactly what it's about. The goal is to have a license that is consistent in non-aggression of scarce private property.

The author of the published code has no right to compel what the copier of the code must do with his scarce resources. If the copier wishes to publish on his own server hardware a binary file, but not publishing the source code to it, then he is completely in his right to do with his scarce property as he pleases, and the author has no right whatsoever to initiate force against the copier.

🥗

pajasevi commented 3 years ago

The author of the code has every right to dictate and enforce rules under which his original property and its derivations are used. Nobody is forcing anyone to use such software so if anyone doesn't like the rules, it's their problem. It's in line with voluntaryism.

If you don't see why your stance is so problematic then maybe you should stay away from open source.

Kixunil commented 3 years ago

Code is not scarce and therefore not a property. While some rules may be enforced towards parties who agreed to such rules, parties who didn't agree to rules are free to do whatever their want with their own scarce hardware (store arbitrary bit pattern or send it over wire...)

Yes, it is problematic, the alternative is much worse. While I personally would have liked GPL, it's not moral to enforce it. Just like I would like to take whatever I want but it's not moral to take property of someone else.

Unlicense is more similar to pacifism. It essentially says "I don't want to violate other people rights but I don't care about others violating rigths of people (including myself) either." I'm not a pacifist.

tomichec commented 1 year ago

I think the licensing is an important issue as this project cannot be considered free software without a license.

If (as it's now) no license is selected, the default copyright applies and you and all the contributors retain their copyright and can choose to enforce it. Your users currently [risk a litigation][4] (as you in fact recognize in your README.md, but it's questionable if your no-sue policy does apply to your contributors).

Any license you choose can only be enforced by the authors. The state is not proactively going to do that for you. The action has to come from you in the first place:

Copyleft is not a legislatively-mandated regulation (e.g., pollution regulations) — which are enforced by government staff. Ultimately, an entity — most commonly the copyright holders themselves — must proactively enforce GPL. This entity can be an organization, an individual, a group of individuals, a group of organizations, or a mix of all of those. Someone must enforce the rules; so-called “spontaneous compliance” is a myth promulgated by those who oppose copyleft. from Software Freedom Conservancy essay

As you claim that you don't intend to enforce any license. This approach is in effect a dedication to the public domain. You might wish that other people contribute their changes back to strengthen the community in the spirit of copyleft, but you are not going to enforce it. You are afraid that your contributors might enforce it (which they would only be allowed on the parts on which they own the copyright).

I think a way forward from the legal uncertainty for your users might actually be assigning a copyleft license like GPL while asking the contributors to sign a contributor license agreement (CLA). Such CLA can give you the rights to re-license your contributors work to selected parties under a different license you could choose later.

I think that this approach would ensure that the code is in effect free software (and open source). You could then also save the potential infringers from legal troubles by retroactively providing a corresponding license to them.

Obviously it also depends on the willingness of your contributors to sign a CLA which might be not be a familiar concept to them, but you can require it as a merge condition.

Kixunil commented 11 months ago

this project cannot be considered free software without a license.

While this is strictly true, I have no ambition to make free software - the term defined by Richard Stallman. I want this to be voluntaryism-compatible software - see above. As such it strictly doesn't need a license (government and copyright are already invalid under voluntaryism) but indeed it can be considered risky to use it without one.

As you claim that you don't intend to enforce any license.

That's absolutely not true, I have no idea how you arrived at such conclusion. I effectively want to enforce GPL without the part about forcing people to disclose the source if they distribute binaries.

I think a way forward from the legal uncertainty for your users might actually be assigning a copyleft license like GPL while asking the contributors to sign a contributor license agreement (CLA).

Yeah, I guess this is right.

tomichec commented 11 months ago

As you claim that you don't intend to enforce any license.

That's absolutely not true, I have no idea how you arrived at such conclusion.

Well, you're saying in the README.md

I hereby publicly declare that I will not seek to sue people

Since in our society the states claims the monopoly over the use of force, the only legal way of enforcing any license is by asking the state to do it for you through their judicial and executive system. Since you are saying that you are not going to sue anyone (which is a precondition to use the executive system), I concluded that you don't want to enforce any license.

Or do you have any other strategy to enforcing the license?

I effectively want to enforce GPL without the part about forcing people to disclose the source if they distribute binaries.

This sentence is contradictory -> enforce without forcing?

I have been thinking more about this issue and also found opinions talking against CLA [1].

I am actually not sure what of the rights our society gives you as an author you would like to claim.

Note that all of copyrights are state imposed monopolies that authors get over the use and dissemination of their work during their lifetime + 70 years.

If you don't want to do anything with a state, just release it to public domain, ideally under CC-0 [2] (I think that not all the jurisdictions allow releasing under public domain, but CC have thought about that in their licences).

Obviously, you can politely request your users to be good and collaborative members of the society by giving you credit, sharing the code, which would be under their free-will to honor your request or not.

Note though, that software released under CC-0 qualifies as free software as defined by Free Software Foundation (FSF) [3], so maybe it's not what you'd actually like to do. Also, note that Richard Stallman didn't invented free software. In past all the software used to be free software. Although, he agrees with the FSF definition, it does not make the definition better or worse just because he or any other person agrees with it.

[1] https://sfconservancy.org/blog/2014/jun/09/do-not-need-cla/ [2] https://creativecommons.org/publicdomain/zero/1.0/ [3] https://www.gnu.org/licenses/license-list.html#CC0

Kixunil commented 11 months ago

Well, you're saying in the README.md

I say:

In the meantime

Don't pull what I've said out of context, this is a big red flag.

Once the license is in and someone breaks it I will start doing it (but not retroactively). You can argue it's as if I published it in public domain and then canceled public domain for later updates but I'm not really sure it's the same thing. Also this may prevent statist companies from using the software for now, I don't care much. But they're free to sponsor a lawyer to help me with all this.

This sentence is contradictory -

It's not, what's so hard to understand that I like GPL except for a single rule in it?

If you don't want to do anything with a state, just release it to public domain, ideally under CC-0

This was already discussed, please read the whole thread again before replying. Ignoring what I said is disrespectful.

CC-0 qualifies as free software as defined by Free Software Foundation

Interesting, but that's beside the point. I'm not seeking to follow ideals of someone else, I have my own perception of what freedom means.

tomichec commented 11 months ago

I was reffering to the context of current situation (that's what in the meantime means) which is quite unsatisfactory for already more than two years.

I don't feel that I "pulled what you said out of context" and I also provided a reference to the source of your claim (so anyone is free to find out more), and welcome your comments and clarifications.

Note that your claim however applies to you, but I don't think that it could apply to your contributors or the copyright holders of their work, who might still choose to sue your users or you.

I consider CC-0 a way to opt-out from your copyrights which would already be better "in the meantime".

Once you make your mind how would you like to have your moral and material interests as an author protected (which you are entitled to under the Article 27 of the Universal Declaration of Human Rights), you can always re-license the work under a different license. (In fact you can choose as many licenses as you wish as long as also other contributors give you a permission to do that.)

I see that you might not like some conditions of GPL (as it does not follows your perceptions of what freedom means to you) but agree with others. Then you might want to provide "additional permissions" as it is explicitly allowed by the article 7 of GPLv3.

Kixunil commented 11 months ago

I was reffering to the context of current situation (that's what in the meantime means) which is quite unsatisfactory for already more than two years.

Ah, OK then. Do you know anyone specific who would like to use this but has a trouble because of the license? I don't know of anyone but I would be much more motivated to prioritize it if this is an issue for someone specific. Otherwise I have other things to do that are more important to me.

tomichec commented 11 months ago

Do you know anyone specific who would like to use this but has a trouble because of the license?

I know many companies and people including me who aim to use software only with permission of the copyright holders. Many places suggest refrain from using software without an appropriate license [1]. And the consequences of not doing so are sometimes draconian. Please do not put your users in this dangerous situation.

If you would like people to respect your copyrights but also make your work useful, simply tell us how can it be used.

If you are unsure and would like to keep the possibility of re-licensing later, just use a permissive license as the suggested MIT, CC-0 or Unlicense.

I see that it's not your priority to solve this issue, but I think it is important to solve it. Once you and all contributors agree on what the license should be, I can send you a PR with copyright and license notices as needed.

[1] https://choosealicense.com/no-permission/

Kixunil commented 11 months ago

I'm asking specifically about people wanting to use CADR. Yes, I do agree it's important, it's just a matter of ordering tasks. Also it's hard for me to get what I want without paying a lawyer to check it, which is expensive.

tomichec commented 11 months ago

Well, specifically to CADR, I have used it in the past even without permission (sorry), but do not use it currently although I find it very useful and would like to use it again at at some point once this issue is solved. But sure, I'm one of the few exceptions from our "don't read and click agree" culture.

I'm glad you recongise the importance of the matter. I understand that writing a new license might be be time demanding and perhaps even costly. Sometimes it's not really easy to put what we want into words, especially in the context of legal code which needs to be precise and as little ambiguous as possible.

However, I believe that in the licensing strategy there is not much new to invent. I think that for a meaningful collaboration the license should allow for free use, study, distribution and modification of the code as all free and open source licenses do. I also recognise the value of copyleft as it is implemented in the GPL license.

From the philosophical perspective I think that use of force is justified only as a protective measure. In this case the GPL protects the users from being locked out of the source code and hence divided and helpless remove antifeatures and improve the code.

I agree with you that forcing someone to revel what they want to keep secret is immoral. But note, that GPL does not force a discolsure of privatelly used code -- you don't even need to agree with the GPL in order to use it privatelly. This is true as long as the user does not distribute the program further -- and hence the changes are not secret any more. Only then the source code is required (and obfuscated code or binaries are not enough).

Since the authors of modifications based their code on yours they need to follow the rules you asked for. Since you release it with the condition of providing source code for any distributed modifications, there is nothing wrong to require them to keep their implicit promise (without which they could not receive the original code in the first place).

The enforcement of this rules should however be too harsh as it sometimes is. From case to case it can range from notifications to those that violate the license up to judicial and executive action and use of force against the property or even physical body. I think that your enforcement strategy in a community code of conduct, and guidelines similar to [1] (I wonder if there are any voluntarism specific guidelines for that). Then you could require the contributors to agree with those guidelines.

[1] https://www.fsf.org/licensing/enforcement-principles