Hacker News new | past | comments | ask | show | jobs | submit login
ImageSharp leaving the .NET Foundation due to licensing change (dotnetfoundation.org)
128 points by nozzlegear on Oct 22, 2022 | hide | past | favorite | 104 comments



The 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!


For 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.


Ubiquity of a permissive license, or all the revenue from clients with deep pockets -- choose one, you can't have both (not considering open core with value-add proprietary offerings here). Should be really obvious.

Use a permissive license if you really mean it, not if you want to growth hack.


It would seem to make more sense (in the context of the apparent desires of developers in this situation) to license things like this with a dual license setup. License the base project as AGPL and have outside contributors sign a copyright license. All open source projects compatible with AGPL can use it as is. The second license would be a freeware/commercial license. Freeware for organizations under 1 million dollars US in revenue. A paid commercial license above that mark. That would seem to satisfy the base requirements that developers want as well as some of the community. Of course, the rest of the community that wishes it to continue under the existing license would be free to fork that last available version as always.


Just because you have a license to use software doesn’t mean you have a license to change the license.


Sure 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.


That seems like a complicated topic, and it's not 100% clear to me that it would have the effect they wanted if they weren't very careful about how they did it.

See: https://softwarefreedom.org/resources/2007/gpl-non-gpl-colla...


There is nothing unclear about it: they took a permissively licensed piece of code (MIT), then relicensed it under a copyleft license (GPL). (Then possibly/presumably made changes to that GPL codebase.)

The MIT license gives you a right to sublicense to your heart's content.


I provided a link from people that would know, and it includes phrases like:

"A more complicated case occurs when a developer makes copyrightable changes to a permissive-licensed file that the developer is incorporating into a GPL’d program"

"Note, however, that in a single source file it is typically very difficult, and often completely infeasible, to determine which parts of such a file are covered by permissive terms."

The point being that perhaps you can relicense it, but does that accomplish what you want...making some particular part of it fully bound by the GPL? That's the complicated part.


Your link is about projects that mix licenses between files.

This is just taking the full project wholesale and relicensing the whole thing under GPL.


They don't need to, by the Apache 2.0 license they're allowed to redistribute the software under the Apache 2.0 license.


This license itself grants the licensee permission to relicense:

  Licenses are granted based upon You meeting the qualified criteria as stated.


This 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 for context.


The 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/

> 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.


> 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.


> 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.


Here’s the part that got me: > We believe that sponsorship is a necessary component of sustainability. It’s an important way for users to say “thank you”. It is great to see corporations step up to sponsor projects, like AWS and Microsoft. Clearly, ImageSharp and projects like it need higher levels of sponsorship I thought - I am not sure why but I did - that .NET foundation packages were well founded and they actively helped get funding for the projects. It amazes me that Microsoft (and other big .NET players) aren’t already fully funding what is ostensibly considered a bedrock library within the community. It is my understanding after all the foundation only accepts projects in part due to their popularity and impact in the ecosystem as a whole. I guess it’s not just the web ecosystem that has this problems


.net foundation membership gives you a little extra exposure at the risk of Microsoft having additional visibility that your project is worth copying.


People 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.


So the maintainers should be legally required to maintain the software, for free, forever, just because you depend on it? That is an insane level of entitlement.

So long as it's their software they can change the license of new versions as they desire. If they decide to change the license and you depend on the software, you can maintain a fork of the project. I'm sure you don't like that answer, but this is exactly why open source licenses offer no warranty or promise of support, and you willingly decided to rely on some software with such a license. You can't just pretend like this aspect of the license doesn't exist because it's inconvenient for you.

If you want guaranteed support for any software, hire someone, or do it yourself!

I think a lot of the controversy surrounding these situations is that people aren't educated about what open/free software really is, or the ideals behind it, or don't care and just want free stuff from other people.

The idea is that you can use source code, modify it and create derived works from it if you desire (normally with attribution or whatever), and with the GPL there is an additional restriction that derived works must also be GPL'd. Free software does not imply that people want to work for you for free and doesn't imply that they intend on supporting the project at all.


> So the maintainers should be legally required to maintain the software, for free, forever, just because you depend on it? That is an insane level of entitlement.

I didn’t get that, at all, from the GP. They just said that it’s not (in their opinion) fair to build up a user base that becomes dependent, then use that dependency as leverage.

That’s basically the Sackler Family method.

I release a bunch of code, as MIT. If someone wants to use it, fork it, sell it, whatever. Just don’t expect me to be on the hook for maintaining it, or guaranteeing it.

If I want to drastically change it, or even do something evil, like have it phone home, I could do that (I won’t). I could also change the license, going forward, as these folks did.

I’m under no obligation to maintain my stuff for any reason, other than I use it, myself, so I want it to be good.

That said, I consider myself to be an excellent steward, of really good software, that no one (except Yours Truly) uses. That’s fine with me, but I take great care of my stuff, anyway.

If I sign a contract, then that’s a different matter.


> They just said that it’s not (in their opinion) fair to build up a user base that becomes dependent, then use that dependency as leverage.

And saying this doesn't make any sense. Because being opensource means lack of vendor lock-in. There's no "dependency". As soon as a new license is adopted, the users of the previous version can still use that previous version because it is still opensource, and create a fork out of it.


> As soon as a new license is adopted, the users of the previous version can still use that previous version

Can they technically? If nobody stored a copy of the code, and the copyright owner decides to change the license, any subsequent copies are under the terms of the new license no?


If I use a service like GitHub, then it’s child’s play to get previous versions.

But that’s beside the point. If someone releases software without storing the whole build in configuration management, then I don’t feel particularly sorry for them.


> If I use a service like GitHub, then it’s child’s play to get previous versions.

And they could delete the repository. Even if they had a repository, as the copyright holders they could change the license retroactively. This is not a problem with a technical solution that I can see.


> as the copyright holders they could change the license retroactively

I hope they have very good lawyers, then. I'm not sure how they could enforce that.

> And they could delete the repository.

That's why I said what I said about configuration management.

I guess CM is no longer en vogue, these days. A main goal of CM, is to completely reproduce the build, from stored components, at any point in the product lifecyle.

With a lot of SaaS services, I guess that it's not really possible to do that, anymore, but I'd be pretty leery of basing a business on ephemeral resources. I'd at least get a maintenance or local duplication contract with the author.


> I hope they have very good lawyers, then. I'm not sure how they could enforce that.

Why? Like I said, unless someone has a copy obtained with the original license, then any subsequent copies are accepted with the new license. There's nothing in the law that says the copyright holder can't change the license.


> unless someone has a copy obtained with the original license

See my comment about "configuration management."

I'm sorry. If someone wants to call themselves an "engineer," then they need to act like an engineer, and that means things like good configuration management. In my opinion, and I'm just an unlettered redneck, self-taught cowboy, so I guess my opinion ain't worth squat, the term "engineer" connotes things like rigorous self-discipline, process discipline, and personal integrity.

Just the thought of someone releasing commercial, or commercial-grade software, without CM, sends chills down my spine. I guess that it's a statement on the current state of the industry, that people assume that CM is something that is "optional."


But you are talking about retroactive license change.

This would be great for patent troll law firms.


They can still use the library and even decompile it if necessary.


How is that any different from a major open source maintainer deciding to quit the project and leave it out of date? It’s an identical outcome for the end user of the OSS.

You wouldn’t demand that someone continues development of the project for free right? So they can either leave the project to rot, which seems morally fine to everyone, or they just also decided to start charging money for future updates.


What percentage of the user base is really affected by the license change?


you're leaving out that your GP said there should be criminal liability on the author of the software if they change their license


No. It just wasn’t really relevant to the argument that I should be forced to maintain something I wrote.

I disagree with the “criminal liability” thing. I understand why someone might feel that way, as many folks write software as “dependency aggregates,” but that’s a whole other argument, and I already know my opinions on that matter aren’t particularly welcome.


> So the maintainers should be legally required to maintain the software, for free, forever, just because you depend on it?

No, but I can see the following as not being unreasonable:

1. They can't retroactively change the terms of using the previous versions or accessing it's code.

2. They should maybe start their new commercial version under a different name. They built a reputation on an open source brand, and they had other people promote them because of that open source status. I'm not sure the commercial version should get to start from the brand reputation that the open source version's name automatically conveys. This i think is a big part of the bait and switch the OP was referring to and it seems like a somewhat reasonable compromise.

I'm not saying these apply fully to this situation, but as maybe just general guidelines if moving from an open source model to a commercial model.


> 1. They can't retroactively change the terms of using the previous versions or accessing it's code.

They already can’t do that.


When they started this project they should've asked themselves if they wanted to be reimbursed for their effort. If so, they should've started a company and sold the software commercially, releasing the code as an aside.

Instead they bait users into believing this is a hobby project by some smart engineers who do this in their spare time to produce software that's a boon to all Mankind. Afterwards they start complaining this company or that company is making money off their effort and start making avaricious changes to the license.

I myself have released several open-source projects, but don't intend charging for them. OTOH users can't expect me to add features or functionality (I do guarantee that security errors will be fixed in short order). I'm also working on commercial software, asking myself beforehand if I wanted to release it as free software or make money from it. Considering the effort I decided to do the latter.


>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?


I 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?


Yep.

It’s true when companies do it with a “loss leader” to destroy the competition.

It’s true when an open source library swaps to proprietary license.

Who wouldnt pick a good, free option for something?

…how do you tell the difference between a “real” open source project and a bait and switch?

Is this the future? Where all good things are gone and we have to skeptical of anyone giving away something for free?

Screw that.

If you’re selling something, then sell it.

If you’re giving something away, then make your intentions clear.

If you’re giving it away with the intent to destroy your competition, you’re being a dick.

If you change your mind and want to do something different, abandon your dishonestly earned network effects and start a new commercial project where the intent is clear from the start.

I wish the Six Labors folk the very best in any commercial endeavour they choose to undertake, but this sucks.


If the software versions prior to the licence change remains open source, and the new licence only affects development going forward, there shouldn't be any issue whatsover for users of the open source version.

Has there been an instance of a licence change closing off access to previously open source code? (Is that even possible to do when forks are trivially created?)


The copyright holder can always choose to close off access to its copies of previously open source code. They cannot retroactively revoke the license of other people who already have a copy, nor can they prevent its distribution under the original license.


Yea, they can keep using the old versions, but that locks them out of the new versions and breaks expectations, especially since they were a member of the .NET Foundation. So it's up to them to keep using a version that won't get fixes or new features or accept the new license.

This whole thing just points out how hard all of this is to get right. I understand both sides. But I do at least get the feeling that the ImageSharp team is a bit high strung.

https://github.com/dotnet/Microsoft.Maui.Graphics/issues/47

I think this is probably an intentional move to move away from Microsoft and the .NET Foundation in addition to trying to capitalize on people making a lot of money from the software package.

After having looked at the license, it seems reasonable enough to me aside from the technicalities others have brought up. The vvvv tool follows a similar license of, it's free unless you make money from it.


>So it's up to them to keep using a version that won't get fixes or new features or accept the new license.

Users can always fork the old version. We can't force the ImageSharp team to maintain software under a licence they don't want.

>After having looked at the license, it seems reasonable enough to me aside from the technicalities others have brought up.

It's reasonable in theory, in practice I'd rather avoid entangling $WORK with potential liabilities. I prefer more clearcut licences (require payment for all commerical use or don't require at all).


> I prefer more clearcut licences (require payment for all commerical use or don't require at all).

I agree with that. I've always liked the way vvvv communicates their licensing:

* https://vvvv.org/blog/vvvv-gamma-licensing

* https://www.visualprogramming.net/#Licensing

* https://store.vvvv.org/

I've always been curious about how well it works for them.


Yes - I'd say it's nearly the definition of entitlement. I can totally understand why it would be frustrating, but to assume the people producing this resource are immune from paying the rent and would be forever is ignorant. People should consider that they ever got it for free as a bonus. If migrating away from FOSS is too upsetting , frustrating or painful - don't build on tools with questionable sustainability models from the start, or DIY.

It's also worth pointing out that it's only locked away for entities generating >= 1M/y USD revenue. I can't exactly feel sorry for them.


I was just adding some perspective that it's okay to be upset or frustrated without being entitled or ignoring the economic needs of the maintainers.

And yes, the particulars of this license seem more than reasonable from the standpoint of the threshold of needing to pay.

I should maybe point out that at one point, ImageSharp wanted Microsoft to stop their (still open source) graphics development and help contribute to ImageSharp.

https://github.com/dotnet/Microsoft.Maui.Graphics/issues/47


>I was just adding some perspective that it's okay to be upset or frustrated without being entitled or ignoring the economic needs of the maintainers.

I think being upset or frustrated that one has lost access to something useful that one also invested very little in is a fair/natural reaction (the free lunch is over), but I also think it would be unfair to direct that frustration at the people who were providing that resource to begin with. It also seems unfair when the resource, as it stands right now, continues to be available in its current state; one only loses out on additional, future value, which I would argue one has no real claim to anyway (in general).

Your comment didn't say that it is fair [to direct..] (so take this comment as a further qualification if anything), but it seems to be one of the prevailing attitudes about this kind of thing, and where (at least) I see the entitlement coming through.


It disregards everyone who helped ImageSharp get to where it is today. Are the other code / issue contributors and evangelists getting paid for their efforts?

The comment from Akka's relicense [1] applies just as well here:

"""

1) Project is open source

2) People use the project because it is open source

3) People contribute bug reports and fixes, creating value and improving the open source project because it is open source

4) People spread the word about the project, free marketing because it is open source

5) Maintainers decide to relicense, privatizing the value created by the community.

The "success" was a social phenomenon, not merely the efforts of the maintainers.

Relicensing is a betrayal of the community that was built around the software.

"""

[1] https://news.ycombinator.com/item?id=32755405


> Are the other code / issue contributors and evangelists getting paid for their efforts?

Nobody is getting paid for the pre-license-change version. Which remains open-source under the existing license forever.


I think the license change is a lousy move, but the software isn’t suddenly behind a new license. New versions will be. If there’s a community behind the software they can fork it.

You’re not entitled to someone else’s work forever just because something was open sourced. I think it’s a bad move, but I’ve no right to expect others to do future work for me. They made it possible for others to carry it on, if they’re willing to do the work.


> 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?

Yes.

> entitlement /ɪnˈtʌɪt(ə)lmənt/

noun the fact of having a right to something.


"The gross entitlement of FOSS users"

I will somehow survive my entire life without any of your withheld contributions.


Unsure what you're attempting to contribute to the discussion with this comment.


same


> 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!"

This reminds me of what Marak did after he went on a rant that he's not paid enough for his effort.

https://www.bleepingcomputer.com/news/security/dev-corrupts-...


They're only trying to charge for new versions. You're being ridiculous.


So 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?


You're arguing for literal slavery here.

"I came to rely on the free thing you gave me, now you need to keep supporting it forever, for free, or else you're a criminal."

No. You have the right to keep using the software provided for free forever. You don't have a right to have the work product of a person or group for free forever.


Library users should come together and fork the last open source version (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?


On 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.


lol it’s the dotnet community. That isn’t going to happen. See https://github.com/Fody/PropertyChanged/issues/270#issuecomm...


that is just one isolated instance, more if you will?


It'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?


Direct 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/

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.


> 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?


Yeah, 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.


Maybe 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.


It 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).


That doesn't make this license not stupid. Sure, SQLite sells licenses, there's nothing wrong with that, ImageSharp is welcome to do it too! But you'll notice that SQLite doesn't have a license like this one...


SQLite is also the most widely used open source library, or close to it, in the entire world. They can get by with a miniscule portion of one percent of users paying for a license.


If the intent is for it to be Apache 2.0 with a completely optional paid license, you can just do that without a convoluted licensing scheme.


That is exactly what they did originally, and it did not produce enough paid customers.


That's unfortunate, but will the license change actually solve that? Are a lot of companies going to pay an annual license for a .NET image library?

In the longer term, I'm guessing this pushes everyone pretty strongly towards SkiaSharp instead.


I think they make most of their money from the support contracts they sell, if I recall correctly. I think nearly every major company has one for instance and they’re pretty pricey


if it's a library the classic model is to distribute it under the GPL and have a separate proprietary license that you charge for

(doesn't stop mega-corps using it as a cloud service/internally though)


I think dual licensing AGPLv3 (or above) is the simplest approach. Include a separate paid (preferably straightforward) license and be done. Make it easy for people to pay you and make it easier to get refunds for any reason.

Another option is to do what Duende did. I think Duende (Identity Server) handled the situation pretty well.

https://duendesoftware.com/products/identityserver

> Standard License Pricing > Free for development, testing and personal projects—only pay for production. Try it now! Learn about our free Community Edition.

> Our Community Edition license is feature equivalent to our Enterprise Edition, but only includes standard support.

> Community Edition allows hosting IdentityServer on your own infrastructure (including your cloud). It is not for scenarios where you redistribute IdentityServer, or build software for third parties. In this case you either need a redistribution license, or the end-customer needs a standard license.

> For-profit companies/individuals with less than 1M USD annual gross revenue > Non-profit organization with a published annual budget less than 1M USD > Registered charities


You'll note that Duende correctly does not call their model open source. Is source available a step up from fully closed source? Sure. But it's not the same as open source. So if your goal is to promote open source, I don't see why you would work with a product such as Duende, or ImageSharp if they hypothetically followed this example.


> impose any sort of legal obligation to do so

The whole point of being in breach of contract is that you can be sued for it.


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."


Can't have your cake and eat it too. Either the license is viral (conditions imposed on user A still apply when A passes the software to B) or it's not.

If you license your code to anyone under the Apache License, that person is then free to redistribute the code under the terms granted by the Apache License, which is obviously missing this $1,000,000 revenue restriction.


> Can it be exploited. Yes, but as I've said elsewhere. "Evil Corp is gonna evil".

They’re not trying to both have and eat their cake. They chose a license with a known exploit because they think it’ll be best for their users, and they accept the consequences of that. This is (IMO) a good balance to strike, and better than I imagined before reading through the license itself and its rationale. It’s explicitly:

- we want to impose the least burden possible on those least able to bear it

- we think we’ll be more sustainable because in balance those able to bear it are more likely to choose to with this model than the previous one… excepting those who wouldn’t regardless of the terms.

Quite a lot of mutual good and goodwill is the product of norms which are effectively social agreements rather than enforcement protocols and regimes. Will some jerk take advantage of this and eat their cake? Yeah, duh. But it’s better for probably the vast majority of their users than a more onerous license which is viral, and (AFAICT) no worse for anyone but themselves. A one-sided compromise in favor of everyone else.


I fundamentally disagree with the idea that abiding by your license terms makes me a jerk just because you chose a stupid license that doesn't actually require what you want it to require.


It’s weird to me that’s the thing you chose to focus on in my comment, but okay.

In the summertime I lock my exterior door(s) when I go to bed, even if I have left the windows open. It’s obviously trivial to enter my home if you’re motivated. I’m aware of the contradiction. Closing and locking the door isn’t impenetrable fortification, but it is a clear expression of my will. Opening the window isn’t an invitation to enter my home, it’s a flaw I’m willing to accept to enjoy cool air after hot summer days. If you come into my home through my window under those circumstances, you’re clearly availing yourself of an obvious loophole in my home security arrangement… but you’re being a jerk nonetheless.

People set expectations all the time in all sorts of flawed ways where their expectations might not be met. This is one of them. I agree with the quote in my previous comment: not even a perfect license with no conceivable loophole will prevent someone from exploiting the obvious loophole that a license is a social agreement with its own limited capacity to enforce. Even if you theoretically have bulletproof legal recourse, you have to have legal resources to get it. There’s no license I can imagine which doesn’t have that loophole.

But yeah so, “jerk” was hardly the point of my comment. But if that’s the nit you want to pick, violating someone’s express permission to their belongings because you understand their intent but you’ve found an exception in how it was expressed… that does mean you’re being a jerk. You’re welcome to disagree however fundamentally, but you know what their intention is in limiting how they share their resources and you know you’re only entitled to it by disregarding that to take what you want.


License terms set the legal expectations. Explanations of those terms from the author set the ethical expectations, which are different.


It's definitely possible to have loopholes where exploiting them makes you a jerk.

This situation, not so much. They're making a fully open source version available on purpose.


Getting 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.


The transitive clause is limited to "Object" form, which excludes raw source code.


It'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.


It 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.


> It doesn't matter

It does in a court of law. A defendant would likely need to demonstrate good faith that they're using the source code of the project from which they acquired the license to ImageSharp. What matters is a judges interpretation, and intent matters.


SkiaSharp seems like a decent alternative (edit: in case you can't actually use System.Drawing directly).

https://github.com/mono/SkiaSharp


They 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.


>in case you can't actually use System.Drawing directly

I.e. anyone using .NET on Linux or Mac


It'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.


>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/...


I didn't know that. Thanks for letting me know


It is not fully managed code though.


I 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.



That shows "contributors". It looks like they have roughly 4 regular contributors. Their Github org lists 5 members. I would not consider that "a lot".


Seems like everyone that has contributed should get a percentage of all commercial licenses sold.


To 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.


It'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...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: