8 ms·
ImageSharp leaving the .NET Foundation due to licensing change
- ethbr0 4y agoDirect link to the license and post from the ImageSharp side, as both their and the .NET Foundation's posts are worth reading: https://sixlabors.com/posts/license-changes/ https://sixlabors.com/posts/license-changes/ Tl;dr as near as I can tell: - If you are "an Open Source or Source Available consumer" or "a Non-profit organization or Registered Charity", you can use the code under Apache License 2.0. - "If your annual gross revenue is less than 1M USD then the license will continue to be granted to you under the Apache License 2.0." - "If your annual gross revenue is greater than or equal to 1M USD and you are consuming any of the libraries for use in Closed Source software as a "Direct Package Dependency" as defined in the license then you must purchase a Six Labors Commercial Use License." Also, nice to see both of them handling it professionally, instead of casting aspersions as so often happens.
- blibble 4y ago> If you are "an Open Source or Source Available consumer" or "a Non-profit organization or Registered Charity", you can use the code under Apache License 2.0. but Apache allows redistribution under the same terms? so how this supposed to work?
- int_19h 4y agohttps://github.com/SixLabors/ImageSharp/discussions/2151#discussioncomment-2942963 https://github.com/SixLabors/ImageSharp/discussions/2151#dis... "The transitive clause is actually really important, I'll explain why. I've explicitly called out the following to ensure that the Split License is non viral. Once granted, You must reference the granted license only in all documentation. In practical terms this means that If you are granted a license, that's the one you're use, not the Split License which exists to derive the license to be granted to you. So if you're OSS, you should only be concerned about and reference the Apache 2.0 license - downstream consumers shouldn't need to care. That, on the surface makes the whole transitive/direct thing seem redundant except for the fact we have to use the Split License in NuGet packages, so if someone is looking up their supply chain then they can reference the transitive clause to determine liability (none). Can it be exploited. Yes, but as I've said elsewhere. "Evil Corp is gonna evil". They're actually more likely to simply ignore the license."
- Dylan16807 4y agoGetting the Apache version from someone else because they won't give it directly to you doesn't sound like an "exploit" or "evil" to me.
- tomnipotent 4y agoThe transitive clause is limited to "Object" form, which excludes raw source code.
- resoluteteeth 4y agoIt's true that the way they have defined it in the split license, you are not using imagesharp as a "transitive package dependency" if you copy the source code from the git repository of an apache licensed open source project rather than using the object code. However, that's irrelevant because they are licensing it to the open source project under the apache license. Once the open source project has it under the apache license, you can copy it from the open source project under the apache license, because the apache license allows that, and the split license won't apply in the first place. The linked page even says "Once granted, You must reference the granted license only in all documentation," so if they have the source code in their repository it will literally just say that it's apache licensed with zero mention of the split license by the explicit instructions of the creators of imagesharp. If they say that's NOT the case, because they are imposing additional restrictions, then they aren't actually licensing it to the open source project under the apache license in the first place. Otherwise, they realize that this is a massive loophole but are still hoping that companies will just pay up. I think this is what's actually the case (and why the hoped the .net foundation would accept it), but they don't want to come out and say that explicitly because then it would defeat the point.
- int_19h 4y agoIt doesn't matter, because these clauses are only relevant when determining the license granted to someone who is consuming the library. If an open source project does that, the following item applies: "Works in Source or Object form are licensed to You under the Apache License, Version 2.0 if ... you are consuming the Work in for use in software licensed under an Open Source or Source Available license." So at that point the author of said open source project gets to redistribute the source of the library under AL - and only AL defines what further derived works can and cannot do with it.
- plorkyeran 4y agoYeah, that seems like contradictory gibberish. If you're closed source and have revenue over 1M you just have to obtain it from someone who is allowed to use it according to the Apache 2.0 license rather than directly from MS? The license explicitly allows anyone to consume it as a transitive package dependency, so you just need to make a trivial open source library which imports it and then depend on that? They might as well just say that if you have revenue over $1M they'd appreciate if you gave them money since the license doesn't seem to actually impose any sort of legal obligation to do so.
- modeless 4y agoMaybe I'll start a business reselling Apache-licensed copies of ImageSharp. $10 each. As long as I don't get more than 100k customers I'll have less than $1m revenue and I'm good! This is definitely the stupidest license I've heard of. I'm currently in the same situation, thinking about how to open source one of my projects while retaining the ability to make some money somehow, and this is something I never even considered because it's so stupid.
- tgsovlerkhgsel 4y agoIt isn't, because as long as the price for a direct license is reasonable, companies will pay it just to have the paperwork. SQLite is public domain, and makes money by selling "licenses" to such companies (they're called something else, but it allows the company buying it to file it in their "licenses" folder and tick a checkbox; https://www.sqlite.org/copyright.html https://www.sqlite.org/copyright.html).
- dark-star 4y agoIt's just a library handling image files. There are dozens of others out there with similar functionality that are still under OSI-approved licenses... I assume ImageSharp will lose a lot of significance now...
- ghuntley 4y agoThis is a good outcome for James. This guy fucking smashes academic papers out of hours to make ImageSharp possible. Folks who aren’t in the imaging space really have no clue just how hard this shit is. Gl James. tbh; dotnet foundation really doesn’t provide much value to member projects. See https://www.isdotnetopen.com https://www.isdotnetopen.com for context.
- TAForObvReasons 4y agoThe entire situation is a bad outcome. From the article: > The .NET Foundation accepts projects that use permissive licenses within that set [of OSI-approved licenses]. > The board clarified that projects in the Foundation must use a permissive OSI-approved license and that projects would all be treated the same. Per the linked article https://sixlabors.com/posts/license-changes/ https://sixlabors.com/posts/license-changes/ > Previous attempts (sponsorship, support license) to provide a sustainable income to ensure the continued development of the Six Labors libraries have not proven successful, yielding less than a few months of developer income over a period of several years. It sounds like James' monetization efforts were unsuccessful. The new monetization approach and relicensing is not considered compatible with the open source nature of the dotnet foundation. Whether the new approach works remains to be seen, but it likely burned a lot of community goodwill.
- phoronixrly 4y ago> Whether the new approach works remains to be seen True, I hope it does. > but it likely burned a lot of community goodwill That also remains to be seen. And would it burn less community goodwill to stop developing the project at all? Also it doesn't really matter if this move burns community goodwill. It's the author's decision to make. Any member of the community is free to fork before the license change, and any member of the community is free to not submit patches upstream.
- naasking 4y ago> Also it doesn't really matter if this move burns community goodwill It could. Burning goodwill is an easy way to incentivise new open source competitors.
- gtirloni 4y agoSkiaSharp seems like a decent alternative (edit: in case you can't actually use System.Drawing directly). https://github.com/mono/SkiaSharp https://github.com/mono/SkiaSharp
- HideousKojima 4y ago>in case you can't actually use System.Drawing directly I.e. anyone using .NET on Linux or Mac
- amir734jj 4y agoIt's possible to use system drawing in Linux but some people want to use blazor so system drawing wouldn't work, image sharp however works in blazor web assembly.
- yyyk 4y ago>It's possible to use system drawing in Linux This is deprecated since NET 6.0, eventually support will be removed: https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only https://learn.microsoft.com/en-us/dotnet/core/compatibility/...
- amir734jj 4y agoI didn't know that. Thanks for letting me know
- lostmsu 4y agoIt is not fully managed code though.
- bmitc 4y agoThey target slightly different things. SkiaSharp is a 2D graphics library and supports drawing to canvases backed by OpenGL or Vulkan. ImageSharp is an image processing library and is really only built for that. You could use SkiaSharp for as the foundation for a GUI library, where you could not with ImageSharp.
- Kukumber 4y agoThey have lot of employees: https://github.com/SixLabors/ImageSharp/graphs/contributors https://github.com/SixLabors/ImageSharp/graphs/contributors
- deleted 4y ago[deleted]
- madeofpalk 4y agoThat shows "contributors". It looks like they have roughly 4 regular contributors. Their Github org lists 5 members. I would not consider that "a lot".
- RavingGoat 4y agoSeems like everyone that has contributed should get a percentage of all commercial licenses sold.
- Dylan16807 4y agoTo some extent that's reasonable, but I would set a cutoff. If the cutoff is 0.5% of changes that would be about 10 people. If it's 3% then that's only 4 people. If it's 0.1% that's about 20 people, and that already seems like overkill.
- jenny91 4y agoThe new license is really silly: it grants a variety of entities (open source projects, non-profits, for-profits with <US$1m revenue) an Apache 2.0 license to the code. All it takes is for one of those entities to clone the code on Github; slap the Apache 2.0 license on it (that they are rightfully using for the project), and anybody can then reuse it under Apache 2.0 as if nothing ever happened. Or for an entity with more resources, set up a holding company with no revenue and get an Apache 2.0 license and give it out to your parent company. Whatever your stance is on these relicensing things... do make sure the license makes sense and at least achieves your aims!
- contravariant 4y agoFor some reason they also try to prevent the license requirements from 'infecting' open source projects that use ImageSharp as a dependency. Unfortunately this means that anyone is free to make an open source project that doesn't do much more than wrap the project inside a new license. You can then compile that project and use it as is. I get what they want to do, but I'm not sure if their self-made license holds up legally.
- mackman 4y agoJust because you have a license to use software doesn’t mean you have a license to change the license.
- contravariant 4y agoThey don't need to, by the Apache 2.0 license they're allowed to redistribute the software under the Apache 2.0 license.
- withinboredom 4y agoSure it does! It just depends on the original license. I saw my previous employer pick up MIT licensed projects and slap a new GPL license on a fork and that was the only one they’d contribute to.
- 4y ago
- UltraViolence 4y agoPeople need to stop mucking around with abusing open-source and open-source licenses. If you want to become a millionaire make your software product commercial. If you want it to be open-source, keep it that way forever and don't start complaining "Oh, I really want to be a millionaire but I'm not because all these people are using my code for free! Now all you millions of people who are using my code should pay me from now on!" I believe charging for software after you've gained a user base in the millions is akin to a rug-pull scam. I even believe that criminal liability comes into play here. It's a good thing the .NET Foundation expels all the projects that change their licensing to commercial.
- croes 4y agoSo there os no in-between between open source and millionaire? How about, if you can afford it and use the software, help financing it's maintenance?
- Dylan16807 4y agoThey're only trying to charge for new versions. You're being ridiculous.
- throwaway_au_1 4y ago>If you want to become a millionaire Strawman >I even believe that criminal liability comes into play here The gross entitlement of FOSS users is the primary reason I will never contribute in substance to open source software. In what world is a 'userbase in the millions' not an indicator of the software's value, and how are the developers deserving of criminal liability for wanting to make money from it? What, they should perform highly-skilled software engineering for free while their efforts are the basis of profit generation for many others?
- bmitc 4y agoI don't think your last comment addresses what they were getting at. If someone open sources something with a permissive license with all things pointing to keeping that license, and then switches it up once they get users, then that is a bit of a bait and switch. It is different than saying from the get-go "hey, we need money to develop this, so please pay". Is it really entitlement to be a little upset at having built large things on top of permissively licensed software only for that software to suddenly become locked behind a new license?
- deleted 4y ago[deleted]
- jeroenhd 4y agoLibrary users should come together and fork the last open source version (https://github.com/SixLabors/ImageSharp/tree/v2.1.3 https://github.com/SixLabors/ImageSharp/tree/v2.1.3) and maintain that together. Just having a version still available, even if it's got no new features, may be enough to make the Six Labors reconsider their approach because why pay for a library that can mostly work for free?
- ghuntley 4y agolol it’s the dotnet community. That isn’t going to happen. See https://github.com/Fody/PropertyChanged/issues/270#issuecomment-320145654 https://github.com/Fody/PropertyChanged/issues/270#issuecomm...
- stevefan1999 4y agothat is just one isolated instance, more if you will?
- yjftsjthsd-h 4y agoOn the other hand, it sounds like things got here precisely because nobody else was contributing. Of course, it's possible that this will be the wake-up call that changes that and it'll work out. I guess we'll see; unfortunate situation regardless.
- password4321 4y agoIt's popular because it's good and was free to use. We'll see how it goes minus the free to use part, good luck to the author(s) trying to earn their living! How are things going for IdentityServer, they're the .NET project I remember making waves for doing this?
- solarkraft 4y agoI don't have that much hope left for .NET. They did a great revival effort with a great trajectory with .Net Core, but in the last few years they have shown that they don't really seem to want to change.