Open-Source is Just That
-
The rant describes the bad kind, the look-but-don't-touch Open Source.
That's "source available," which the author specifically also mentions.
The point is about entitlement to having your changes accepted by upstream, as well as entitlement to support from the devs. Neither exists, open source merely protects your rights to modify and distribute changes yourself, it says nothing about obligations about the person providing the code in the first place.
-
Good article. As an open source maintainer, I agree. The majority of interactions I have from my users are positive, but every once in a while, some entitled asshat does make unreasonable demands. I usually respond with a stern dressing down, but respectfully. If they continue, I’ll block them from whatever channel.
Discord
To be fair, Discord blows, and I highly recommend Matrix instead.
But it's your project, so it's your rules. Thank you for making your code available.
-
Open source is just that
"Open" is an unspecific, a range of openness from not redistributable to (libre) free software.
- Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.
- Source Code
The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost, preferably downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.
- Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
-
Discord
To be fair, Discord blows, and I highly recommend Matrix instead.
But it's your project, so it's your rules. Thank you for making your code available.
I agree that Discord blows, but it’s what my users use, and it’s free. Maybe there are free Matrix servers I could use instead of hosting it myself, but the problem is still that my users want a Discord server. Basically the same reason I use GitHub. It at least doesn’t blow, like Discord, but it’s not open. I’d prefer to use something else, but I’d get less user interaction. Hopefully once Codeberg’s federation is complete, that will change. Thank you for being kind.
-
I agree that Discord blows, but it’s what my users use, and it’s free. Maybe there are free Matrix servers I could use instead of hosting it myself, but the problem is still that my users want a Discord server. Basically the same reason I use GitHub. It at least doesn’t blow, like Discord, but it’s not open. I’d prefer to use something else, but I’d get less user interaction. Hopefully once Codeberg’s federation is complete, that will change. Thank you for being kind.
Hopefully once Codeberg’s federation is complete, that will change.
Hopefully. I'm using self-hosted Forgejo, and it's really quite nice, but I would 100% make a public mirror (and accept PRs) on Github if I wanted collaboration. I get it, the most important thing for a FOSS maintainer is connecting w/ the community so they can both get help and provide help for their little community.
So yeah, I'm not going to judge. I will say, however, that there are tons of free Matrix servers out there if you ever want to try it out. I use Mozilla's (chat.mozilla.org, for personal stuff) and openSUSE's (chat.opensuse.org, for development stuff), but there are several others out there as well. I think you can also still bridge Discord in case your users wanted to keep using Discord and others wanted to use Matrix, and it works reasonable well. If not, that's cool too.
I would absolutely appreciate that any decisions and documentation gets put somewhere outside of Discord, because finding it is incredibly hard if you don't know to look there (and annoying even if you do). But I offer that not as a criticism (and maybe you already do it), but more as advice for how to take some work off your plate so users can solve problems themselves.
So yeah, thanks again for doing open source dev. I used to be fairly active w/ it, but then I had kids and my time seemed to just disappear. I do make random contributions here and there when I come across problems (e.g. I send some fixes to Lemmy and a few other services I use), but I'm not really at a place where I can really lead a project. But hopefully I'll be back in that position in the next couple years as my kids get more and more independent.
-
The code being distributed under a source available license does not give you a right to take it, modify it, or redistribute it.
I would add in "automatically" there. Source-available licenses could give you the right to modify it and redistribute it, or it may not. For example, the Unreal Engine is proprietary and covered by a source-available model, and you can redistribute it to other license holders (must accept certain terms and conditions), and even then w/ restrictions. So you can take it, modify it, and redistribute it, but there are a handful of very important asterists there.
Basically, if you don't recognize the license as one of the major ones (Apache, BSD, MIT, (L|A)GPL, etc), then treat it as source-available w/ no rights other than reading it until you actually read and understand the license.
The intent of copyleft is to ensure freedoms for the recipients of derivatives of your works. In software that means the users of forks. Copyleft restricts you to the same license (or a compatible one) to prevent you adding more restrictions. ""More permissive"" software licenses can be redistributed with the same license but often it's a more restrictive license (e.g. MIT -> proprietary).
-
- Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.
- Source Code
The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost, preferably downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.
- Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
That is what I would mean by "open source" but I can't blame the uninitiated from thinking it means something else. Consider every-day usage of the word "open" - an open door could be fully open, just have a small gap or even shut but unlocked ("come in, the door is open"). A well-meaning developer could think Unreal engine is open source because they can see the source code (the code is "open" to them). Words don't have innate definitions, they have usages.
-
The intent of copyleft is to ensure freedoms for the recipients of derivatives of your works. In software that means the users of forks. Copyleft restricts you to the same license (or a compatible one) to prevent you adding more restrictions. ""More permissive"" software licenses can be redistributed with the same license but often it's a more restrictive license (e.g. MIT -> proprietary).
You can't remove the license, say MIT, or add any restrictions to the code. You can combine it with other works and distribute the combined work under different terms, provided you still abide by the terms of the license (e.g. source distributions need to retain the license, binary distributions don't).
Copyleft forces modified distributions to have the same terms as the copylefted software. If you have some MIT code and some GPL code and you combine it, the combined work is GPL. Likewise if you combine proprietary code and GPL, the combined work is GPL, and that'd regardless of how it's distributed.
Permissive licenses protect the source as it was when it was combined into the other work. Copyleft licenses enforce distributed changes to the source are made available under the same license. Which one you want depends on what "freedoms" you want. Do you want the freedom to use the source however you want, including with proprietary code? Then you want a permissive license. Do you want to ensure that any changes to the code are always available? Then you want copyleft code.
-
That is what I would mean by "open source" but I can't blame the uninitiated from thinking it means something else. Consider every-day usage of the word "open" - an open door could be fully open, just have a small gap or even shut but unlocked ("come in, the door is open"). A well-meaning developer could think Unreal engine is open source because they can see the source code (the code is "open" to them). Words don't have innate definitions, they have usages.
Sure, but there are definitions available. If you're unfamiliar with a term, it's not unreasonable to search "open source definition."
"Free Software" has a similar problem in that people assume it just means freeware, when in fact it has a very specific meaning.
Anyway, this is another good reason to use the term FOSS. Most people don't care about the difference between free and open source software, and the term is unfamiliar enough that they'll look up the definition.
-
You can't remove the license, say MIT, or add any restrictions to the code. You can combine it with other works and distribute the combined work under different terms, provided you still abide by the terms of the license (e.g. source distributions need to retain the license, binary distributions don't).
Copyleft forces modified distributions to have the same terms as the copylefted software. If you have some MIT code and some GPL code and you combine it, the combined work is GPL. Likewise if you combine proprietary code and GPL, the combined work is GPL, and that'd regardless of how it's distributed.
Permissive licenses protect the source as it was when it was combined into the other work. Copyleft licenses enforce distributed changes to the source are made available under the same license. Which one you want depends on what "freedoms" you want. Do you want the freedom to use the source however you want, including with proprietary code? Then you want a permissive license. Do you want to ensure that any changes to the code are always available? Then you want copyleft code.
With the minimal amount of work added the combined work can now have added restrictions. They're pushover licenses.
Devs are free to choose whatever license they want but in the pathfinding problem of interacting with others then "protecting the source" is the wrong target node. Copyleft is a tool to help people.
-