4 ms·
My favourite licence has always been the MPLv2. It's basically the best of both worlds, it's copyleft for your code while keeping the ability to statically link
by qalmakka 1y ago
My favourite licence has always been the MPLv2. It's basically the best of both worlds, it's copyleft for your code while keeping the ability to statically link (crucial for Rust, Go and other languages that do that by default).
- Sander_Marechal 1y agoSo, LGPL?
- qalmakka 1y agoWell, no, as someone else already stated forcing people to ship object files is a PITA and it's really not feasible with languages that do codegen, templates, ... because you inevitably end up injecting copylefted code inside of your files. I like copyleft as a way to protect my code from freeloaders, but I don't think that imposing the same view on other people is fair TBH. I want people to be able to use my code without being forced to "convert" to my creed first
- wolvesechoes 1y agoYou can link LGPL statically as well, though it puts more obligations (shipping object files) than MPL. I am always amazed how many myths were created around FOSS licensing.
- CJefferson 1y agoThat doesn't work for languages which require all the code at once just for compiling, like C++ (if any of the code involves templates), template Haskell, or Rust (at least, not without heroic efforts). You could make sure the LGPL code only works through a C-API like interface, then you can sub-divide it off more easily, but that can be quite a bit of work.
- qalmakka 1y agoTry doing that in Rust, C++ or Go. It's not only incredibly annoying, it's also often technically unfeasible due to macros/codegen/templates/generics, so you end up with ugly stuff like linking exceptions clauses and stuff that - guess what? often boil down to a worst version of the MPLv2