Email or username:

Password:

Forgot your password?
Top-level
Fabian Giesen

But, realistically, _we just don't have the time and energy_.

The current schedule for stb lib maintenance is what works for us. The alternative is not "pay us and you get monthly releases". The real choice here is between either we update these libraries at all, at the leisurely schedule we do, or we abandon them entirely. Nagging us does not magically make us have more free time or energy.

27 comments
Fabian Giesen

And the reason I'm writing a whole thread about this is that fundamentally, I refuse to treat this as a problem when a lot of discourse around open-source libs very much wants to pretend that it is.

I don't know, man. Some projects just exist to scratch a very particular niche itch and are maintained by people who have plenty of other things going on in their life and... that has to be OK?

Fabian Giesen

Like yes, I agree that it sucks that stb_image has a lot of exploitable bugs that often are around for months or years at a time but at the same time... we're completely transparent about this. Don't put this code in a security-sensitive context, especially if you need timely updates. We realistically can't serve that need and we have never claimed that we could.

Fabian Giesen

I do have plenty of code that I professionally maintain (you know, at work, where I get paid to do so) where security issues get handled ASAP but... that's work.

Like that's actual work. I do that (and other support, and other coding) full-time every week. I'm not going to spend my weekends doing the exact same thing I do at work too. (I did for a while and it was _bad_ for me. I'm not going back.)

Fabian Giesen replied to Fabian

...so what's my point here?

For foundational libs (including xz/liblzma) tons of people depend on, it sure would be nice if, assuming there are people who _want_ to be full-time maintainers, get to actually be paid for doing so.

For something like the stb libs? I really don't know. I don't think we're foundational. If those libs disappeared overnight, nothing terrible would happen, people would just use other alternatives.

Fabian Giesen replied to Fabian

And "any open-source lib anywhere in the wild must be up to professional quality standards and respond to all bug reports in a timely fashion" is also a bullshit standard to apply to anything. It just doesn't work that way.

Kevin Gibson replied to Fabian

@rygorous people love the part of open source licenses that give them permissions, and always ignore the parts about the software being without warranty of any kind. It's not always just a legal cover!

Fabian Giesen replied to Fabian

The majority of libs you know at the very least _started out_ as someone just noodling around on their private project and then over time turned into the go-to solution for XYZ.

But for many libs, that's just never been the goal, and pretending that not having that level of ambition is tantamount to failure is also not serving anybody.

Irenes (many) replied to Fabian

@rygorous well said, and thank you for speaking to this angle on it! we haven't seen enough people talking about that

railmeat replied to Fabian

@rygorous

“It just doesn't work that way.” It should not work that way. People should be able to publish software for free without incurring the obligations that come from commercial software.

That idea is backwards.

People or companies that take a dependency on software with no warranty get what they deserve. They have to make the effort test it and check the dependencies on their own.

Maciej Sinilo replied to railmeat

@railmeat @rygorous the most mind boggling example is probably cURL which was still a part-time project until very recently.. and the author was getting "charming" emails like un.curl.dev/emails/slaughter

Kevin Karhan replied to Maciej

@msinilo @railmeat @rygorous EXACTLY!

IMHO, companies need to cntribute accordingly and not just leech code...

Per Vognsen replied to Kevin

@kkarhan @msinilo @railmeat @rygorous But even that is missing the point in some of these cases. Many people don't want code contributions to their open source projects from outsiders (or perhaps from anyone). But it's probably worth "standardizing" some of the messaging around this in the way we do with licenses so the expectations can be super clear to everyone.

Kevin Karhan replied to Per

@pervognsen @msinilo @railmeat @rygorous

I can understand why some projects are sus about external code.

for example reached it's high level of by being rather reluctant to changes...

But I think a lot of devs stopped asking "why?" and saying "No!" when it's necessary...

That being said I'd rather yeet something than having to deal with shit that breaks that is maintained by nonchalant assholes that refuse to acknowledge their responsibility or the fact that "just recompile it" is not the correct answer to them bricking Userspace...

- Yes that was a vent against in specific and the whole project in general. And yes I do maintain a GNU-free + / distro known as @OS1337 and I have no shame to this self-promo.

@pervognsen @msinilo @railmeat @rygorous

I can understand why some projects are sus about external code.

for example reached it's high level of by being rather reluctant to changes...

But I think a lot of devs stopped asking "why?" and saying "No!" when it's necessary...

That being said I'd rather yeet something than having to deal with shit that breaks that is maintained by nonchalant assholes that refuse to acknowledge their responsibility or the fact that "just recompile it"

crzwdjk ✅ replied to Fabian

@rygorous And if someone wants to take a "for fun" library and use it as a load bearing component of some project they can take over maintenance, but then again that's pretty much what happened with xz.

Soso replied to Fabian

@rygorous

> any open-source lib anywhere in the wild must be up to professional quality standards and respond to all bug reports in a timely fashion

I think the proper standard should be to request that on vendors selling production software. « all libs you depend on must be up to o professional standards of security ». If upstream can't meet that, for the reasons you described, then it's downstream responsibility to either fork or vendor to meet that criteria.

Seasonal Stompy Robot replied to Fabian

@rygorous
There are alternatives to any lib.
You can even swap out Linux kernel for BSD kernel and it won't be the end of the world.

"How many machines is this on, and how frequently is it invoked, and with what privileges?" Are the real questions.

Marsh Ray

@rygorous People have packaged your knowingly-insecure code and uploaded it to an online package repo from which there have been 30,000 downloads:
hex.pm/packages/stb_image/0.1.

Similarly, 3,177 downloads for this package:
rubygems.org/gems/stb-image/ve

Would you please at least consider adding the words “insecure-unmaintained-“ to your package names so that people can understand what they’re getting?

Fabian Giesen replied to Marsh

We don't make distributions as distro packages at all, and have repeatedly told people in the issue tracker not to do it.

The README.md, which shows up on the front page when you navigate to the project on Github, has a warning up top that is literally larger than the name of the library itself. github.com/nothings/stb/blob/m

Kevin Karhan replied to Marsh

@marshray @rygorous
Dafuq?

I mean, people should be able to see at a glance if something's maintained or not.

There's a solution for that: to cover that for you!

But I guess you are too cheap for the 3-4 digits per year and Desktop/Server that would cost...

Marsh Ray replied to Kevin

@kkarhan I think you misunderstand. I am not asking support from Rygorous.

It is simply not possible for me to know the provenance of all image data that I may process. So then my only option is to somehow avoid the possibility of any code from Rygorous being on my system at all.

But when I write a program with Rust/Cargo, it commonly pulls in tens or hundreds of transitive dependencies which I see only by package name. Other modern package managers work similarly. In this case, it has been copy-and-pasted into the otherwise well-regarded Servo project.

I am simply asking that he name his libraries to accurately reflect their hazardous not-fit-for-use nature.

@kkarhan I think you misunderstand. I am not asking support from Rygorous.

It is simply not possible for me to know the provenance of all image data that I may process. So then my only option is to somehow avoid the possibility of any code from Rygorous being on my system at all.

But when I write a program with Rust/Cargo, it commonly pulls in tens or hundreds of transitive dependencies which I see only by package name. Other modern package managers work similarly. In this case, it has been copy-and-pasted...

Hugo Estrada replied to Kevin

@rygorous @marshray @kkarhan The license also says that the work is provided as is

Marsh Ray replied to Hugo

@hugoestr @rygorous @marshray @kkarhan Every license says that. What’s your point?

Raven667 replied to Krzysztof

@wronglang @marshray @rygorous that needs to be a meme when dealing with demanding users of volunteer projects ;-)

Krzysztof Sakrejda replied to Raven667

@raven667 I think so too but there's probably a canonical example out there I should use, I think some research is required to pick the right name.

Andrew Jeffery

@rygorous "If you can't hack on it, I'm not supporting you using it" is my rough approach to things I'm not charged with maintaining professionally. Unless the problem interests me for some reason. I'm not prepared to burden myself with responsibility and drudge work for internet randoms. That said, I haven't yet been the target of abuse either. I maintain some pretty niche stuff so that probably helps

wakingrufus

@rygorous
I think we need to have a better distinction between "hobbyist" and "corporate commons" OSS. Both are valid, but when talking about and using OSS, we have been conflating these. There is a tendency for people using OSS in corporations to just expect all OSS to be "corporate commons", but a lot of it was only ever intended to be hobbyist software.

Go Up