13 ms·
libjpeg-turbo 3.0 has been released, and why there may never be a 3.1
- turnsout 3y agoSad to see this—libjpeg-turbo is great! I once built it into an iOS project to allow reading & writing of giant JPEGs when the first party API used too much RAM.
- DannyBee 3y agoI guess I'll be contrarian. Being a commercial product is hard. Having customers, supporting them, etc is very hard. Most can't sustain themselves either. Especially when competing with open source. Every time I read about "criminal underfunding" of open source, it comes off as people wanting to be able to capture some of the value of being commercial without any of the cost. Being open source means more people use your software. But they owe you nothing at all for that. Enough value to pay themselves to work on it is not a small amount of value, and most commercial software doesn't make it there either. If you want people to pay then be paid software. Otherwise you often just want a contract with terms nobody wants to pay you for. There is nothing abnormal about that, and it's certainly not "criminal underfunding". I'm sorry it's not as easy as people want it to be, but it never was - this isn't new, and it not likely to be anytime soon. The main difference now seems to be how many more people feel their users should have greater responsibility than they require of them. That's one of the things that often makes your product popular though.
- altairprime 3y agoThis is the whole point of modern open source: to be able to exploit others for their works, without them having any recourse for compensation or entanglement when you make lots of money derived from their labor. It’s a technologist’s libertarian dream come true. It’s also a primary cause of burnout in open source developers — but that doesn’t matter, because there will always be more open source developers to exploit, so long as they believe in open source strongly enough.
- whateveracct 3y agoI think the idea of an open source developer as a career and lifestyle is the issue here.
- altairprime 3y agoI think the idea that creators should not get paid is the issue here. It’s much more generic than open source. Another example of the same issue is how creators receive nothing for exploitation of their works by VC-funded AI companies. In both cases, the same imbalance between creators (who get nothing) and exploiters (who get billions of dollars of revenue) exists.
- whateveracct 3y agoThey could just not do it. Spend your time more wisely. If you git commit, you've lost your leverage. Don't go write a labor politics blog post about how you're enslaved for writing C for free.
- altairprime 3y agoOpen source is labor politics. Copyleft is shorthand for “I labor to create this work for the commons, and all who modify my work must adhere to my labor politics by sharing their modifications with the commons.” It’s designed specifically to counteract commercial exploitation of labor while denying the commons their modified works. Without labor politics, there would be no GPL, no AGPL, no Sharealike. (Ironically, my single sentence license above would be more likely to win a court challenge than the GPL/AGPL, while also being more resilient to new methodologies and less vulnerable to loopholes; however, it’s incompatible with the “legal contracts should not depend on human judgment calls” viewpoint that’s popular in technical circles.
- seanhunter 3y agoWe don't have to speculate about whether the GPL would stand a court challenge as it has been tested in court many times in multiple jurisdictions.[1] As an aside, the reason I don't think your statement would work is you don't have the ability to unilaterally bind other people by a statement you make without their agreement (ie you saying something is not a contract, because that is by definition an agreement between parties). For that reason I'm pretty sure your "all who modify my work must ..." subclause would have no legal force. The mechanism that copyleft licenses use is to grant rights to the user provided that the user adheres to the terms. That's something you can do, because it's up to you to grant whatever rights you want to grant and it's in your gift to set conditions on those grants. If users don't accept the terms of the license, they don't get granted the rights and therefore they are prevented from using or distributing the software by normal copyright law. [1] eg check out http://gpl-violations.org/news/ http://gpl-violations.org/news/ or https://sfconservancy.org/news/2019/apr/02/vmware-no-appeal/ https://sfconservancy.org/news/2019/apr/02/vmware-no-appeal/ etc
- NovaDudely 3y agoAs a big Free/Libre software guy... yeah, I agree. Wish it wasn't that way but that is just how it can be.
- ThenAsNow 3y ago> If you want people to pay then be paid software. It seems like source available type licenses (e.g., Kyle Mitchell's Big Time license: https://bigtimelicense.com/ https://bigtimelicense.com/ ) are a reasonable middle ground for being paid software without giving up many of the benefits of open source. I'm hoping there's a notable uptick in adoption of licenses like these.
- josephcsible 3y agoThey're not reasonable at all. They deceive users and leach off of the good name of open source while preventing any actual open source projects from incorporating any of their code. I'm hoping there's a notable drop in adoption of licenses like them.
- ThenAsNow 3y ago> They deceive users and leach off of the good name of open source How do they do that if they don't call themselves open source (or "Open Source (TM)" if you prefer) in the first place? Regardless, something needs to be done about the sustainability gap in open source other than writing messages like what's linked. The inability of your project to incorporate someone else's code shouldn't consign the rest of us to not have the benefits of access to that someone else's code outside of a proprietary binary.
- josephcsible 3y ago> How do they do that if they don't call themselves open source (or "Open Source (TM)" if you prefer) in the first place? First of all, some of them DO call themselves that even though they unambiguously aren't. And even for the ones that don't, they usually try to sound as similar as possible to it and downplay the differences. > Regardless, something needs to be done about the sustainability gap in open source other than writing messages like what's linked. That feels like the politician's fallacy. We need to do something, and switching to fauxpen source is something, but that doesn't mean we need to switch to fauxpen source. > The inability of your project to incorporate someone else's code shouldn't consign the rest of us to not have the benefits of access to that someone else's code outside of a proprietary binary. It's not just one project that can't. If a given bit of code isn't open source, then NO open source projects can incorporate it.
- ChrisMarshallNY 3y agoThis is a good discussion. In my own case, I write every one of my projects as if it were supported, released, commercial software. I wrote shipping, commercial software for my entire career, and got in the habit. It isn’t that much fun. Lots of boring bits, in writing high-Quality, release-grade, software. That said, thank Cthulhu that I don’t depend on it for a living. I’m pretty much my only customer. I write software that I want, and use it in almost everything I write. I also archive projects and apps that I am no longer actively supporting. I don’t really care whether or not anyone else uses it. In fact, the fewer, the better.
- littlestymaar 3y agoThis comment is really lacking some nuance: - of course, building a successful commercial software (company) is a lot of work - but if you manage to create a commercial software that reach even a fraction of libjpeg-turbo's success, you'd get very rich, with lots and lots of zeros on your bank account, and a family free from material problems for decades to come. - nobody, including the author, claim that he should be rich. We just think that it's a pity that he's not able to make decent money, despite creating tremendous value to very profitable companies (and making an much easier job to thousands of developers far less skilled than he is, while still making multiple times his paycheck).
- fluoridation 3y ago>but if you manage to create a commercial software that reach even a fraction of libjpeg-turbo's success, you'd get very rich, with lots and lots of zeros on your bank account, and a family free from material problems for decades to come. This is a non sequitur, given that libjpeg-turbo has reached libjpeg-turbo's success and its author is not several times very rich. It is unfortunately very possible to create a product that's very popular and that takes a lot of effort to work on, but which most people are not willing to spend any money on.
- littlestymaar 3y ago> This is a non sequitur, given that libjpeg-turbo has reached libjpeg-turbo's success and its author is not several times very rich. I'm afraid you must suffer from some reading impairment, as I explicitly said this (now with the emphasis added): > if you manage to create a commercial software that reach even a fraction of libjpeg-turbo's success.
- danudey 3y agoI'm not sure I see it the same way. Maintaining open-source software requires time. There is an opportunity cost, and people (unfortunately) need to feed their families, pay their rent, and so on. The problem here is that the developer faces a choice: continue working on a piece of software that makes things better for thousands (or tens of thousands) of companies and individuals, or put that time towards something that benefits him and his family directly and ensures that they can continue to survive and thrive in a capital-based society. If he moved libjpeg-turbo to paid software (not that I expect that's possible) then I'm sure a lot of companies would pay for it, and a lot of open-source projects (or smaller companies) would be forced to stop using it. That's not good for anyone (except the developer). I think the thing to consider is this: if everyone who's ever saved at least two dollars on time, bandwidth, CPU power consumption, cloud compute costs, or any other factor gave him one of those dollars, he'd be set for life. He could make libjpeg-turbo his full-time job indefinitely. He's not asking for a six-figure salary, but it's difficult to look at a project that you're spending time and effort on that's saving other people such huge amounts of money and compare that to the meagre amounts anyone is willing to contribute for it and to consider that a worthwhile tradeoff. In the end, he's making that choice: he's going to spend time doing something else. He doesn't come across as feeling entitled (his argument that open-source software should be more funded/appreciated than it is doesn't seem to be in debate), he's just faced with a choice and he's letting people know ahead of time what choice he made.
- stuaxo 3y agoThis is the sort of thing Google could just chuck a chunk of money at, it would be less than a rounding error to them.
- eyelidlessness 3y agoNot to leap at defending Google or any other disproportionate OSS consumer, but the moment you apply this logic consistently, those costs add up to > revenue in most scenarios I could imagine. There is a way to make it sustainable, but it’s not likely to be a voluntary action by any individual actor.
- jsnell 3y agoGoogle is one of the three companies explicitly listed in the message as sponsoring the general fund of this library. What did it get them? Just people like you complaining that they aren't donating more. Why not at least complain about the large tech companies that aren't sponsoring at all, or only sponsoring specific project work? [0] From https://libjpeg-turbo.org/About/Sponsors https://libjpeg-turbo.org/About/Sponsors it looks like a bunch of companies have sponsored specific projects, but from the message it sounds like these projects have been basically underbid by the library maintainer, and that's been part of the problem.
- mceachen 3y agoSolution: ask your company to sponsor the project. It’s easy: https://github.com/sponsors/libjpeg-turbo https://github.com/sponsors/libjpeg-turbo Ideally, every developer in every large co would be given some budget to spread sponsorship money around as they saw fit—ask your manager to make it happen. Note that they may be able to register this as a marketing expense, which may be more favorable to your accounting department. (I use this library in PhotoStructure via Sharp and libvips, so I just started sponsoring it)
- zdragnar 3y ago> Ideally, every developer in every large co would be given some budget to spread sponsorship money around as they saw fit If I'm not mistaken, there is a ton of overhead ensuring that the money doesn't directly benefit any of the employees themselves. There are all sorts of regulations around how things like gifts and donations are accounted for, taxed and so forth. Then, you also wade into territory of graft, bribes and so on (employees of company A funneling money into open source project B, which is worked on by employees of potential customer C).
- omoikane 3y agoNear the end of the linked post: How can you help? If every individual developer who used libjpeg-turbo on a regular basis donated just $5-10/month to the project through GitHub Sponsors (https://github.com/sponsors/libjpeg-turbo), we'd have a healthy amount of general funding.
- sersi 3y agoI've tried that in the past and had a hard time doing so. I managed to get the company to sponsor projects like sidekiq because there were some benefits in doing so (even if we actually never used the enterprise benefits) but I haven't been able to convince them to donate any money. They'd just tell me that they don't see any benefits in doing so. I end up donating with my own money to opensource projects I value but I don't have enough money to properly fund all projects I would like.
- jacknews 3y agomeanwhile a hedge-fund manager somewhere probably just paid themselves 10s of millions for having some sneaky trading/M&A/roll-up idea and executing it.
- yjftsjthsd-h 3y agoWhat does that have to do with this?
- kelnos 3y agoI'm torn on this. On one hand I do agree and lament that many foundational open source products are underfunded to the detriment of its users. But like I say when a for-profit corporation complains and blames outside forces when they have trouble with their finances: it is not our responsibility to make your business model work. If you want to get paid a certain amount to write software, donations are often not a reliable way to do that. As much as I am an open-source advocate, dual licensing and requiring payments for commercial use seems like a better path to stable income, assuming others believe your software is worth the price.
- armitron 3y agoA lot of open source authors know that of course, but still, they choose the begging-for-donations / appeals-to-corporate-funding route once their project becomes popular. Dual licensing and requiring payments for commercial use comes with risk as companies could flock to alternatives or forks, but at the end of the day, is the better model as it establishes expectations upfront and makes it clear that one fully stands behind one's product.
- isaacfrond 3y agoI'm sorry but I have no sympathy. I turn down real jobs to work on my hobby. Why won't anybody pay me?? What does he expect to happen? I really don't get it. If you like to work on opensource. Sure, do your thing. But if the benefit in CV building and personal satisfaction are not enough, why don't you stop doing it?
- cyco130 3y ago> why don't you stop doing it? Err, this is him announcing that he's stopping doing it.
- aspyct 3y agoWhether you know it or not, you have used libjpeg-turbo. In fact you are probably using it every day, it's just behind the scenes, just like openssl is. These projects deserve funding, if at least from giants like facebook & co.
- defrost 3y ago> These projects deserve funding, if at least from giants like facebook & co. Absolutely. Looking at: https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/3.0.0 https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/... one wonders what possible harm could come from leaving image decompression buffer faults from maliciously crafted jpegs in popular browsers and software unattended.
- winter_blue 3y ago> one wonders what possible harm could come from leaving image decompression buffer faults from maliciously crafted jpegs in popular browsers and software unattended This is yet another reason a switch to a memory-safe language like unsafe-free Rust is highly imperative.
- bombolo 3y agoI'm sure in a couple of years a new category of security bugs that can happily happen in rust will pop up.
- pastage 3y agoThis is part of something we pay 300k per year for, should they sponsor the projects they include in their product?
- Osiris 3y agoThe author chose a license. Why not dual license it for commercial use?
- mkl 3y agoThe author chose a BSD-style license that has no problem with use in proprietary software. It's too late to do something like a dual AGPL and commercial license (unless some amazing new features are added), as it's already in widespread commercial use.
- planede 3y agoThe author could release new versions with a more restrictive license.
- newaccount74 3y agoThe license is probably a reason for its popularity.
- planede 3y agoPossibly. Switching to GPL would probably mean that chromium can no longer use it (I think they use it currently, but I'm not 100% sure). Then they could switch to an other permissively licensed jpeg library that is maintained (is there any?), roll their own (probably forking an old version), or persuade the author to consider licensing new versions permissively (hopefully with some money).
- transfire 3y agoWould it help if ISPs levied a small “tax” which would get distributed to visited/liked sites?
- mkl 3y agoNo, because the sites would have no obligation to pass it on to people like the author of libjpeg-turbo whose work they use.
- Someone 3y agoIndeed. For evidence as to how ‘well’ that would work, look at the music industry. I don’t think software is different enough from music to make a difference.
- jart 3y agoSoftware development is the process of pure creation. It shouldn't be debased with the language of resource scarcity. A weekend spent hacking on simd assembly optimizations is not a loss of labor resources. Why write code if not for the pleasure of it? No open source developer should ever apologize to his fans for delaying a release because some Apparatchik at Microsoft refused to sign his binary. Open source is not the service industry for schemers and penny-pinching money men. If you're too nice to those people then you'll just end up as cynical and burnt out as them. DRC should consider backpacking or possibly couchsurfing, then come back to libjpeg-turbo after a year with a clear mind.
- mariusmg 3y ago>Why write code if not for the pleasure of it? Ask a pornstar the same question...but not about code.
- Traubenfuchs 3y agoOpen source is EXTREMELY HARMFUL to the non-owning/entrepreneuring class: Big business can built their billion dollar companies on open source, while the developers lose out: Without open source, companies would have to hire more devs to implement solutions, or they would have to pay external devs money for their solutions. This would also foster competition between different solution offerings. It's very unfortunate that software engineers, especially the good ones able to create libraries used by pretty much everyone, seem to lack the drive to monetize their work and instead accept payment through GitHub stars, likes and prayers.
- meindnoch 3y agoThis is why we have AGPL. The testament for its effectiveness is the visceral revulsion it evokes from "entrepreneur" types.
- PathfinderBot 3y ago> The testament for its effectiveness is the visceral revulsion it evokes from "entrepreneur" types. Exactly. It is interesting to me that GP uses the word "open source" while entirely missing the point of free software [1], and how copyleft licenses were designed to resist corporations taking from the commons without contributing back from the start. > “Free” and “open” are rivals for mindshare. Free software and open source are different ideas but, in most people's way of looking at software, they compete for the same conceptual slot. When people become habituated to saying and thinking “open source,” that is an obstacle to their grasping the free software movement's philosophy and thinking about it. If they have already come to associate us and our software with the word “open,” we may need to shock them intellectually before they recognize that we stand for something else. Any activity that promotes the word “open” tends to extend the curtain that hides the ideas of the free software movement. [1] https://www.gnu.org/philosophy/open-source-misses-the-point.en.html https://www.gnu.org/philosophy/open-source-misses-the-point....
- tpush 3y agoMonetization of open source only really works if a) the non-commercial usage is restricted, so there's a reason to buy a commercial license, and b) The copyright is assigned to a singular person or entity so there's no confusion as the recipient of money. Sadly both of these things conflict with Open Source either definitionally ("no restrictions on use") or in spirit ("single copyright holder/CLA means no or an exploited community").
- deleted 3y ago[deleted]
- planede 3y agoThere are probably a ton of projects that depend on libjpeg-turbo, but the first thing that comes to mind are browser vendors. It's probably fair to say that most jpegs are viewed in web browsers. They should really just chip in, or even formally employ the author to just continue working on this library.
- st_goliath 3y agoFWIW, Mozilla has been maintaining their own fork for quite a while now[1] But AFAIK most Linux Distros have been using libjpeg-turbo as a drop-in replacement for libjpeg, after some drama in ~2010 where libjpeg came under new management, decided to break ABI/API several times over and add incompatible, non-standard format extensions[2]. [1] https://github.com/mozilla/mozjpeg https://github.com/mozilla/mozjpeg [2] https://en.wikipedia.org/wiki/Libjpeg#History https://en.wikipedia.org/wiki/Libjpeg#History
- iggldiggl 3y ago> add incompatible, non-standard format extensions and change the down-/upsampling algorithm for images with chroma subsampling such that it tends to introduce additional artefacts, because when decoding e.g. a classic 4:2:0 subsampled image (i.e. chroma resolution is half the luma resolution both horizontally and vertically), each subsampled 8x8 chroma block is now upscaled individually to 16x16 for the final image, which can and does introduce additional artefacts at the boundaries between each 16x16 px block in the final image. But the current libjpeg maintainer insists on that new algorithm because it is mathematically more beauftiful…
- phkahler 3y ago>> But the current libjpeg maintainer insists on that new algorithm because it is mathematically more beauftiful… Ugh. That always has to take a backseat to functionality and usefulness. Well, if you want to serve users and not just yourself. I'm still in the thinking phase of a major rewrite of a big piece of code that will make it bug-free, but it will likely be very ugly due to a large number of cases/variations to handle. I'll spend a little more time looking for an elegant simplification, but it has to be done one way or the other to fix the ecisting bugs.
- hannob 3y agoFor a library like libjpeg-turbo, it's probably best that it stays in maintenance mode. I mean... it's JPG. It's the traditional lossy image format that everyone's been using since forever, and that hasn't received any changes. It also shouldn't receive any changes, as its big advantage is its compatibility. If you want something better, you'd use other formats like avif. I'm all for paying open source maintainers, and this guy should receive money so he can continue to fix bugs and do other minor maintenance work. But I don't see why there should be new features in the default jpg library.
- regularfry 3y agoThis isn't the default jpeg library. That's libjpeg. In this case, the `jpeg` bit isn't as interesting as the `-turbo` bit. Keeping up with the fastest way to implement JPEG on new architectures and CPUs is worthwhile.
- st_goliath 3y agoDepends on what exactly the two of you mean by "default library". It's a fork of libjpeg alright, but from https://en.wikipedia.org/wiki/Libjpeg#History https://en.wikipedia.org/wiki/Libjpeg#History we do get this: > In 2019, libjpeg-turbo became the ISO and ITU endorsed reference implementation for the JPEG format. [13] The paragraph that follows might help to clarify why this happened.
- regularfry 3y agoThat's entirely fair, but also worth pointing out that (according to the google groups post) libjpeg-turbo doesn't implement all of the standard. To be even more fair, I don't know if libjpeg does either.
- Hello71 3y agothe email lists many reasons to continue libjpeg-turbo development which are still relevant if a new (let's say better for the sake of argument) image standard exists: > expanding SIMD coverage to new algorithms or instruction sets or CPU architectures, supporting less popular new platforms, improving the APIs, hardening security, improving fuzzer coverage, enhancing the build system, improving automation, etc
- antiloper 3y agoThis entire comment thread is missing the point. By releasing this library at no charge, the author is valuing his software at zero dollars. Downstream users accept his offer. There is no story here.
- isaacfrond 3y agoExactly, my point.
- jgeada 3y agoTragedy of the commons. There is no stigma to being a parasite so that’s what people do, with justifications as above. Just because it isn’t legally required doesn’t mean it is ethical to not do it.
- antiloper 3y agoIt's not being a parasite if the author willingly chooses to give his work away for free. It is also not the tragedy of the commons, since the tragedy of the commons refers to consuming a finite resource. A software library is not a finite resource since it can be copied indefinitely. This is the author choosing to work for free (which is fine), wanting to get paid (which is fine, and I do suggest he does charge for his software), and this thread making up an alleged ethical obligation to pay for something which has a price tag of zero.
- sangnoir 3y agoDung[1] beetles are not parasites - they simply take what is given freely, and without cost or injury to the producer. If an animal attempted to get beetles to pay for dung, it may run into competitive challenges. 1. Not a commentary on the quality if F/OSS, which I love.
- jancsika 3y ago> There is no story here. If funding suddenly materializes for this developer as a result of this email, will you search for a bug in your worldview?
- mnau 3y agoOpen source developers are not being paid. They published under licenses that allow zero cost and businesses won't pay. If you want to write open source code for living, you have to find a business model that works. In this case, it is even under permissive license. * code freeze - code is under open source license only a certain time after commit/release. Maybe add "support", aka you get security fixes in timely manner. * open core - put some features behind commericial door. * go ImageSharp way of split license. That one is fun, because MS deprecated/killed (throws exceptions on attempt to use) official image/font library and that was was intended replacement. Rather blatant offloading of costs. This has been rehashed several time (core-js recently https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md https://github.com/zloirock/core-js/blob/master/docs/2023-02...). The gist of it is: Companies are not going to pay if they don't have to. That is the reality and it's not going to change. Plan accordingly.
- orf 3y agoIt’s not just companies though, it’s people. Lower costs win, factoring in quality which is just another way of saying “how many replacements of this cheap thing do I need before it’s with buying this expensive thing”.
- Kwpolska 3y agoOr get a job and do open source software in your free time/not at all.
- AndyMcConachie 3y agoThe solution is probably to do what academics do. Write grant proposals. https://nlnet.nl/news/2023/20230401-call.html https://nlnet.nl/news/2023/20230401-call.html If you want to write OSS for a living get good at writing grant proposals. There's money out there, but you have to know where it is and you have to ask for it.