dagr is a lean and mean ruby client for the IPFS api.
Regarding licence terms:
I'm releasing this under three licences (GPLv3, AGPL3, and MIT) in this particular case because my working theory is that making a p2p **library** easier to use for more people hurts centralists more, and I'm leaving it up to you to decide which will help you better to achieve that goal with your particular **application**.
@h there's no real advantage in the complexity of multi-licensing here. MIT is compatible with GPL3 and AGPL3 so any projects using those licenses can incorporate yours.
Also, when a contributor offers you a patch, if they do it under the terms of AGPL or GPL only, then that can't be incorporated into what you offer under the MIT license.
I'm a copyleft advocate so I'd suggest using LGPL3 to accomplish your goal. But if you insist on offering permissive it's probably best to go with MIT 😄
@pho4cexa I disagree and I explained exactly why. Read again.
@h I apologize, I went and re-read a few times but I don't understand. Can you explain a bit more?
If I have a GPL3 application and I want to use your library, there's no significant between receiving it under the MIT license or the GPL3 license; the combined work must be GPL3.
@pho4cexa There's no difference to you. You can use it right away.
https://github.com/htrob/dagr/blob/master/COPYING.md
The same goes for people who would prefer to use the MIT licence and hate the GPL.
My intent is to maximise decentralisation as first priority in this particular case.
@h my point was: both GPL fans and GPL haters can use your code just the same if you were to make it MIT-only. Dual-licensing a copyleft license together with a permissive license is basically redundant.
I'd still recommend LGPL, because that (like permissive) caters to those who don't want to make their own application permissive or proprietary, but still requires that they release the changes that they make to your library. Helps avoid protocol divergence and embrace-extend-extinguish.
@pho4cexa I got your point and I already stated that I disagree and why twice.
I'm not concerned with your personal preferences, you are free to prefer whatever you prefer and I'm thoroughly respecting that licencing my work to you in perfectly free and libre terms.
Your freedoms aren't hurt in the slightest, and neither are anybody else's. Your freedoms are helped.
Everything else is either cosmetic or ideological, and like I said, my primary goal in this case is to hurt centralization.
@pho4cexa If you would like me to follow a different goal and priorities, that's not affording you any more freedoms than you already have been granted.
That would be constraining *my* freedom to do whatever I please with my work, and as you can imagine, that wouldn't be a nice thing.
I'm not being a GPL maximialist, I'm being a decentralisation maximialist in this particular case.
@h look, I'm not saying that you're disrespecting my preferences or hurting my freedoms, or that you should be doing anything ideologically different.
Just leave aside my tangential LGPL recommendation for now.
All I'm saying is that it's _unnecessary_ to dual-license in that way. It doesn't give a GPL-liker any advantages. Licensing your library as MIT-only is _ideologically indistinguishable_ from the MIT+GPL+AGPL thing you have in place now. So there's no need for that complexity.
@pho4cexa It is unnecessary ***to you***.
Please don't assume that your views, concerns, and needs are the same to everybody everywhere all the time.
@pho4cexa I appreciate your concern that I may be making things more complex than they need to be.
Just let me reassure you that I know what I'm doing and I understand licencing well enough, I have about 18 years of experience in Free Software, and I was once part of a team that helped to craft the GPLv3 in 2007.
Your concerns are duly noted, appreciated, and as previously stated, I disagree and I've already decided that this is the correct decision for my work in this particular case.
@h okay, I'm content to leave this discussion here, but I feel like I'm missing something important. If you care to, please help me to understand how an MIT+GPL dual-license operates any differently for any user than MIT alone.
@pho4cexa Legally, it doesn't operate differently. Socially, and aesthetically, a number of people prefer to not have anything to do with the GPL.
I disagree with them. I disagree with them quite often and quite violently sometimes.
But if they're helping decentralisation and they don't want to have anything to do with anything Free Software, my priority is decentralisation.
The same goes for people who would rather bleed to death before using anything that is not GPL'ed.
> people who would rather bleed to death before using anything that is not GPL'ed.
Okay, I think this may be where my misunderstanding is. Do such people exist?
I am one of those people who dislikes permissive licensing, because I think it promotes silicon valley style exploitation.
But permissive licenses like MIT are perfectly compatible with my GPL software. I have no problem whatsoever incorporating it and don't understand why someone would.
@pho4cexa Yes, those two groups of people with irreconcilable differences exist.
Which is the reason I'm going through this trouble.
I've added a clarification to the COPYING file.
@h I'm still a bit in disbelief but I think at least I finally understand the reasoning that informs your position.
Thank you for taking the time and being patient with me. Best of luck with your library, I hope it sees wide adoption. 😁
@pho4cexa Thank you. It's just something I was needing for my own projects. If anybody else uses it to help decentralise the web, that will be a bonus.
@pho4cexa @h I saw the part about some people wanting to avoid anything that's not GPL... But if it's dual licensed with MIT, then isn't it effectively not GPL, regardless of what the license says? :/
On another note, it looks like a cool bit of code. I haven't done much with IPFS yet, but I'll take a look at it. XD
That line of thinking is frankly puzzling to me.
Why would anyone care what licence others choose, as long as the licence themselves choose are sound, ethical, and observing of all the freedoms they care about?
Do people care more that others don't get what they want than the things they want for themselves?
Really, really, struggling to understand what feels wrong about this.
I don't think it can be explained more clearly.
@pho4cexa @h It depends o the circumstance. For others works, I don't terribly care - hence why I said there was no difference between MIT VS MIT + GPL, because I can do all the same things with them. For my own works however, I am probably going to want to apply the relevant GPL license, so as to prevent someone from taking my code, forking it, and keeping their fork secret. :/
@h That would be me putting open source first, under the assumption that if they won't make their code open source, then they won't help decentralization. :/
@h That depends on tbe code. Most of my code that's not necessarily true for. :/
@Angle I want to encourage decentralisation. If your code is not meant to encourage decentralisation, helping the opposite is not the focus of my work.
It's okay by me that you are free to do whatever you wish with the code I wrote. Take it, it's yours. My gift to you is both Libre and for free if you like it.
It's not okay by me to do what others want for the reasons others want. That would be constraining **my** freedoms, and not a nice thing at all.
@h I mean, yeah? But constraining freedoms is unavoidable. Your freedom to swing your fist ends with nose (Or more realistically speaking, my personal space), and theres not much getting around that. Similarly, your right to use my code ends where the strictures of my license begin. If I licensed it MIT and someone took it, made it it closed source, and then used to to outcompete my projects, that wouldn't be very nice either. :/
@Angle That line of thinking seems bizarre to me.
Do you mean that I'm not being nice because I'm giving my work away under a licence that you like?
(But I'm really mean because I'm giving it to other people too and that can't be!)
@h no no, this has nothing to do with you and your code. You can license however you like. I'm perfectly happen to use your MIT licensed code.The conversation just drifted over into reasons for using GPL instead of MIT. XD
@Angle I don't know who is this hypothetical user 😃
If they happen to exist at all, I'll welcome them when they voice their concerns and I'll encourage them to use the code I wrote under any licence they like.
I really don't see the problem.
@h It's less a problem and more just me being nitpicky, I'll admit. It's just that I don't see the point of dual licensing if it doesn't change anything from a legal perspective. :/
Licences are man-made tools, not the ten commandments.
@Angle If I understood correctly: we agree that dual-licensing MIT together with GPL is, legally speaking, pointless.
but @h asserts that there are people out there who dislike permissive licenses (like me! I dislike permissive licenses!) but hate them so much that they would refuse to incorporate an MIT licensed library into their GPL'd program.
So he's offering them the ability to receive a copy under the GPL (while continuing to distribute under MIT, to their dismay, as you pointed out.)
@Angle the part that I have trouble believing is that that kind of permissive-license-hater exists.
Because if I, as a permissive-license-hating, copyleft-loving GPL author were to incorporate a permissively licensed library into my GPL'd program, the library gets covered by the GPL!
Boycotting permissive code would be totally against my own interests.
Anybody actually doing that is working against themselves with some misconceptions about how licenses work.
@pho4cexa In my view, dismay in either direction is unwarranted, as long as one gets the exact amount of freedom one wants for oneself.
It is software that just can't be used for centralising efforts, it's an API client for a distributed protocol. The goal is more decentralisation.
Pretending that the opposite camp shouldn't get the freedoms they want (on either direction), that I have granted to anyone who wants them feels bizarre and frankly a bit unethical to me, the author.
@pho4cexa I can't express into words how absurd and embarrassing this sort of desired schadenfreude feels when either side wants the other side to do less good deeds.
@h
> Pretending that the opposite camp shouldn't get the freedoms they want
you keep taking the discussion in this direction. this is _not_ something i'm saying, whatsoever. no amount of freedoms are changing here.
i thought we were already in agreement that in terms of freedoms, legally speaking, MIT+GPL is the same as MIT alone.
the only advice that I wanted to give was:
complicating your library with this dual license has no legal effect but might make people hesitate to use your work
@pho4cexa Sorry. We are in agreement on strictly legal matters and nothing has changed that.
Now you have come back online and mentioned me, tangentially commenting on the dismay of some people.
I'm adding to that how I feel about the dismay on both directions.
My dismay is that people want others to not have the same things they have.
@pho4cexa The complexity argument is moot anyway, if you read one line of text at the very top of the COPYING file.
https://github.com/htrob/dagr
Insisting that's unaffordable complexity that could make people hesitate is simply not true.
Hypothetical people who wouldn't want to use it because I gave some other people the right to use it under the MIT licence are more interested in bickering than they are interested in the software anyway.
We can probably agree the GPL is good enough.
@h wait, sorry, i see now, you were referring to the "dismay" of the hypothetical permissive-license hater (whom I doubt actually exists). please disregard most of my previous toot.
@pho4cexa My experience here today and elsewhere in the past tells me that people really, really, really resent that I do with my work what I believe is best.
@h I don't want to drag this along any further but I wanted to state that I don't think this is true. I didn't, and I don't think anybody else in this thread participated with resentment.
Even if we did eventually manage to understand each other enough that I could continue onto a friendly discussion of the merits of LGPL, it would be only out of a collaborative hope to see your software become as decentralized as it can, not to critique you or your choices or to take things away from people.
@pho4cexa There is a point where people must learn to accept that their personal choices, when evangelised too intensely and for too long, being too demanding of others just for the sake of making a point becomes a soft form of authoritarianism.
Not your case, but in the spirit of continued helpful cooperation, let's prevent us from reaching that point.
I can live perfectly well with the level of understanding we reached, it's good enough for me.
@pho4cexa I've littered Mastodon enough with this topic today. You're welcome to join the repo and suggest any changes and improvements you wish to see over there.
Cheers.
@Angle Further, it's also incredibly bizarre to me to discuss matters of competition or outcmpetition on this matter.
There is no competition. There can't be competition.
Either these systems cooperate in a decentralised network or they don't.
Competition is just poison in the anglo positivist mind.
Centralisation is the enemy. If you use code that can only foster decentralisation, it doesn't matter who does decentralisation and how, under whatever ideological umbrella.
@h Ehhh, see, there are definite rewards to controlling a centralized platform. Which means that anyone who wants to claim those rewards is in competition with anyone who wants a decentralized approach. Like, suppose someone took the mastodon source, cut out the federation, implemented a ton of cool new features, and tried to become the next twitter? As it is, that's impossible because of the AGPL, but under an MIT license that could happen. :/
@Angle That's just not the case for the code I wrote.
You're bringing another different case that makes total sense, to justify something that doesn't make any.
The code I wrote is only good to connect to IPFS, which just can't be non-decentralised.
Somebody can build a parallel network using IPFS (and Openbazaar have done exactly that) but it's an entirely different situation and they're not using my code anyway.
Just absurd.
@h No no, I agree. I was outlining the circumstances under which you might want to use a GPL instead of an MIT, not necessarily arguing that those circumstances apply to the code you wrote. :/
@Angle Okay. None of those practical or hypothetical situations are applicable and they're a waste of time. Sorry, but I've already invested plenty of time on this, added to the coding time, and I think you will probably want to see more features added than more hypothetical and extremely unlikely scenarios considered 😃
@Angle And I'm saying this just as I'm surprising myself for being the pragmatic, and more practical person in the room. I never am. Take that with a grain of salt 😃
@h I mean, we saw basically the thing I worried about with mastodon with counter.social, except without implementing anything new or keeping their code closed source. So I wouldn;t be so sure. :/
@Angle I am sure. I know what I'm doing. The burden is on you to work really hard to provie that the effort I made is seriously flawed.
I'm not going to invest any more time in that hypothetical exercise.
@h I'm not saying that the efforts you made are seriously flawed? I'm saying there are circumstances where it makes sense to use a GPL license. We do seem to be talking past each other though, so we probably should cut the conversation here. :/
@Angle I have listened with attention and I have explained in detail how nothing you have considered has made any sense to me.
From worries about competition to concerns about Mastodon network co-optation. Nothing of this makes any sense at all.
My code is GPL'd. Or not. Please by all means use it if you like it. Or not, if you don't. You are free to do anything you please, in any way you please.
I'm going back to coding now.
(((( Sending good vibes to you , and thanks for caring )))
@Angle Well, the code isn't good for anything else. I don't see how can they possibly use it for centralisation.
Worst case scenario is they don't use it.