News for hackers. Stuff that matters.
Re:There is no such thing as a “glibc based alpine image” by d3nj4l on Thursday August 26, 2021 @06:04AM (#28312783)
I don't get it. There's a docker image called alpine-ruby. I presume that isn't supported by the alpine team either, but, honestly speaking, I'm doubtful that's causing enough of a support load on them. If it is, I would assume the reasonable solution to that is to close any support requests with "We are not responsible for that image" or something of that variant, or even requesting the creator of the image to mention that in the docs, but preventing users from installing ruby on alpine (!!!), not just images?
Re:There is no such thing as a “glibc based alpine image” by dijit on Thursday August 26, 2021 @07:14AM (#28313305)
> There's a docker image called alpine-ruby.

There may be, but that seems dangerous. Frankly you can name a dockerhub entry anything you like as long as it's not taken.

But you probably wanted ruby:alpine anyway.

Re:There is no such thing as a “glibc based alpine image” by d3nj4l on Thursday August 26, 2021 @08:34AM (#28314135)
> Frankly you can name a dockerhub entry anything you like as long as it's not taken.

Yeah, definitely, just like you can name a library like Vue vue.js. Does that mean Vue is an official project of the JS Committee? No, of course not! It's bizarre to think otherwise, and that doesn't mean Vue should avoid using js in its name because somebody could get confused. Putting something like ".js" or "rb" (like in "dry-rb") in a name is a signal for a target, and not always trademark infringement.

Re:There is no such thing as a “glibc based alpine image” by sascha_sl on Thursday August 26, 2021 @06:43AM (#28313078)
This is inherently broken, and its brokenness is not obvious or clearly attributable to the hacky glibc.

Imagine debugging an app on this (and possibly not even knowing it's based on an unofficial base image) not knowing this very specific behavior for hours with no results, you'd probably have a very bad impression of alpine.

Re:There is no such thing as a “glibc based alpine image” by akerl_ on Thursday August 26, 2021 @06:53AM (#28313145)
I don’t think anybody is arguing that shoving glibc into an Alpine image is a great idea.

But if I decided to make an “alpine-goofy” image where I started with “FROM alpine” and then renamed all the binaries so cp was rm and rm was ls and so on, it would be a stupid idea but not trademark infringement.

Could this project do everybody a favor by adding a banner saying “Hey y’all just FYSA we are not affiliated w/ Alpine upstream, please don’t send them glibc support requests”? Totally. But I’m shocked that Alpine’s approach here is to start by trying to implement a technical blocker for what I can install on my Alpine image, with an offhand remark that maybe they could try talking to the image owner first.

Re:There is no such thing as a “glibc based alpine image” by sascha_sl on Thursday August 26, 2021 @07:01AM (#28313192)
These are completely different situations. Wanting glibc compat on Alpine is not an unusual requirement, unlike your "alpine-goofy" image, and the bugs it introduces are subtle and may not show up at all in some use-cases.

Believe it or not, a lot of developers aren't aware we have different libc implementations at all, the "exec format error" or "file not found" errors alpine spits out already create a lot of support burden.

Re:There is no such thing as a “glibc based alpine image” by akerl_ on Thursday August 26, 2021 @07:07AM (#28313234)
The fact that a downstream image is popular doesn’t make it sane for upstream to want to literally block its existence via code changes.
Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @07:14AM (#28313303)
the only thing the proposed change does is encode something that is already factual: if you install that glibc package, you have a high likelihood of breaking your system.

it's not like we are blocking it in apk-tools, and you can roll your own musl package with the conflict removed by simply building it with the `ALLOW_GLIBC_PKG` option.

Re:There is no such thing as a “glibc based alpine image” by akerl_ on Thursday August 26, 2021 @07:21AM (#28313375)
It feels like you’re splitting hairs. No, you’re not blocking it in apk-tools, and yes, a user can work around the change you’re making to continue doing what they want. But your post directly says “I have also proposed an update to Alpine which will block the installation of the glibc packages produced by the alpine-glibc project”. So I’m not sure how describing it as “blocking this downstream project” could possibly be inaccurate.
Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @07:29AM (#28313453)
I am proposing that we encode something that is already factually accurate: glibc and musl generally do not mix in any way that results in a stable system.

Do you not think that distributions should make even a little bit of effort to introduce friction toward scenarios known to break systems?

If apk-tools had a soft conflict option, where it printed a warning and required the user to acknowledge that warning somehow before continuing, that would also solve the issue as far as I am concerned, but it does not have such an option at this time, and we need to put our foot down sooner rather than later.

Edit: besides, nothing has been implemented. This is just one proposal, the point of having a conversation is to determine what the best option for solving this issue is.

Re:There is no such thing as a “glibc based alpine image” by yjftsjthsd-h on Thursday August 26, 2021 @10:51AM (#28315697)
The user already had to go out of their way to install it; I'm not sure adding an extra flag is a huge difference.
Re:There is no such thing as a “glibc based alpine image” by MrStonedOne on Thursday August 26, 2021 @10:19AM (#28315304)
alpine exists in the open source space and must behave like an open source project.

You don't get to tell your users how to use your project.

That is the entire fucking point of open source software.

Re:There is no such thing as a “glibc based alpine image” by akerl_ on Thursday August 26, 2021 @11:58AM (#28316633)
As visible upthread, I think starting w/ the block in code is a bad move, and am sad that reaching out to the maintainer of alpine-glibc seems like an afterthought.

That said, there is not a universal mandate for how an open source project “must behave”, other than that the terms of the license (which the authors of the code are able to choose). There isn’t a single cohesive “entire fucking point” of open source. The things proposed in the blog post are permissible under the license, are able to be bypassed by the user, and are not some earthshattering affront to human decency.

We should be able to disagree about the best course of action without falling into incendiary accusations.

Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @04:31PM (#28320272)
I'm glad to know that free software maintainers exist to do whatever you want us to do, and that we don't get to set our own boundaries. Cool, cool.
Re:There is no such thing as a “glibc based alpine image” by puffyvolvo on Thursday August 26, 2021 @12:18PM (#28316923)
> You don't get to tell your users how to use your project.

Sure I guess but "don't footgun yourself" is pretty different. But I guess some people just like using linux for the novelty of breaking shit and feeling smart about fixing it.

Re:There is no such thing as a “glibc based alpine image” by sascha_sl on Thursday August 26, 2021 @07:15AM (#28313309)
It doesn't block it, it requires recompiling musl.

https://github.com/docker-library/official-images/pull/10779...

This is also a response to inclusion of this broken mess into official docker images, I think alpine putting their foot down is entirely justified here.

Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @07:18AM (#28313338)
correct: we do not want to get stuck with having to deal with angry people who have unstable environments caused by this.

and, the conflict option is one of a few options being considered. part of what lead up to this is the fact that we have not taken any public position on mixing glibc and musl runtimes until now.

no decision has been made, and won't be made until the TSC meeting next week...

[dead]
Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @04:44PM (#28320459)
I was not aware that publicly setting boundaries on what is a supportable configuration and what wasn't one was somehow equivalent to white nationalist syndicalism, but thanks for letting me know.
Re:There is no such thing as a “glibc based alpine image” by encryptluks2 on Thursday August 26, 2021 @05:29PM (#28321074)
When your first reaction in all this was to figure out a way to try to block a third-party package from being installed, and then you make comments like... "we feel it appropriate to signal our position more forcefully." And then you lock comments on GitLab from people commenting..

You could have, before even writing the blog post, posted an issue on their GitHub to try seeing if they can post a more noticeable disclaimer... although it doesn't really even need one and is pretty inherent, just like all the other Docker Hub images using Alpine in their name to indicate the underlying distro.

Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @05:50PM (#28321380)
The issue is not the package. Obviously Sasha is allowed to publish whatever packages he wishes.

The problem is that third parties take his package and then describe the combination of Alpine with his package in such a way that people are led to believe is totally stock Alpine.

This then causes many people to complain in Alpine support channels, or on websites like this one, that Alpine is "buggy" in ways that cannot be reproduced on real Alpine.

You also assume that this is our first reaction.

Our first reaction was 6 years ago when it first came out: meh.

No, this is our first reaction to a large company trying to pass off their hackjob images combining Alpine, glibc and a glibc JDK as a certified JDK that is running on stock Alpine.

It is unfortunate that we have waited this long to put our foot down, honestly!

We need to support our friends in the Docker community who manage the Docker Library who also get to deal with the fallout of these hackjob images.

The person who makes the hackjob rarely faces the consequences of it breaking, that basically has always fallen on us, or on the Docker Library team, or on some other team in the ecosystem that has to deal with somebody who is mad because their application has failed due to some shoddy work done by somebody 2 years ago.

Stop assuming this is our "first" reaction. It isn't. I even said it wasn't to begin with -- a "first" reaction cannot logically be an escalation from a previous position, it must be an initial one.

Re:There is no such thing as a “glibc based alpine image” by encryptluks2 on Thursday August 26, 2021 @07:11PM (#28322196)
> The issue is not the package. Obviously Sasha is allowed to publish whatever packages he wishes.

> The problem is that third parties take his package and then describe the combination of Alpine with his package in such a way that people are led to believe is totally stock Alpine.

You were specifically trying to block the package from being installed without recompiling musl.

> This then causes many people to complain in Alpine support channels, or on websites like this one, that Alpine is "buggy" in ways that cannot be reproduced on real Alpine.

You're putting too much pressure on yourself. This is simple... if someone isn't using the official Alpine image (alpine) then they should ask for support from the image creator, as there are thousands of things that can go wrong outside of you control.

> No, this is our first reaction to a large company trying to pass off their hackjob images combining Alpine, glibc and a glibc JDK as a certified JDK that is running on stock Alpine.

Labeling other developers work as hackjob images is condescending. Your whole post was condescending. Just because someone has alpine in an image tag doesn't mean that they are trying to indicate that it uses stock Alpine as the base image, but instead that it uses Alpine as the underlying distro. Who knows what software or changes they've added to it that may cause issues outside of Alpine's control.

> It is unfortunate that we have waited this long to put our foot down, honestly!

> We need to support our friends in the Docker community who manage the Docker Library who also get to deal with the fallout of these hackjob images.

> The person who makes the hackjob rarely faces the consequences of it breaking, that basically has always fallen on us, or on the Docker Library team, or on some other team in the ecosystem that has to deal with somebody who is mad because their application has failed due to some shoddy work done by somebody 2 years ago.

Seriously, these comments only show that this is more about control for you than anything. I can't say for sure, but I have a feeling that eventually other people in the community will either leave or ask you to leave for toxic behavior like this.

Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @08:54PM (#28323051)
The only reason I took any position at all on this issue is because other partners in the Alpine / Cloud Native ecosystem requested that we clarify our position on mixing musl and glibc runtimes.

You ignore the point I am making: people are already fighting this issue for years, and Alpine has not taken a position on it until now.

We should have done so sooner, but unfortunately we did not, so a more theatric approach is sometimes needed to make a point.

We want to discourage bad practices in the creation of alpine-based images, so that our partners (such as the Docker library team) do not have to deal with user complaints with images, or feel like companies are bullying them into accepting images they know are built with bad practices.

If you call taking action to provide assistance requested by our ecosystem partners (who have been thrilled that we are putting our foot down by the way) toxic behavior I wouldn’t want to know what your idea of a party is to be blunt.

Re:There is no such thing as a “glibc based alpine image” by puffyvolvo on Thursday August 26, 2021 @12:23PM (#28317000)
It does when it's causing excessive load on upstream from users who think what is effectively an outright broken configuration is supported. Preventing footguns and providing users the ability to continue using it if they really really want to seems like a sane option?
Re:There is no such thing as a “glibc based alpine image” by d3nj4l on Thursday August 26, 2021 @08:38AM (#28314165)
> Imagine debugging an app on this (and possibly not even knowing it's based on an unofficial base image) not knowing this very specific behavior for hours with no results, you'd probably have a very bad impression of alpine.

That's fine! I've seen this happen with Rails all the time: newbies do something in Rails behaves differently in Rails than in vanilla Ruby, because Rails redefines core Ruby classes in ActiveSupport, and they get frustrated and angry when the thing they've copied from elsewhere doesn't work as they expect. Whether that's good or not is another matter, but that doesn't mean Ruby should prevent people from running Rails! You really shouldn't be obsessed with people liking your project to the point where you prevent anybody from doing anything with it that you haven't personally authorized.

Re:There is no such thing as a “glibc based alpine image” by ariadneconill on Thursday August 26, 2021 @04:39PM (#28320389)
Not the same argument. Combining musl and glibc runtimes into a single system is known to result in instability.

Whether it gets documented as part of a "don't do weird things" system or this update gets accepted, it needs to be addressed, as people have erroneously expected this configuration to have the same stability guarantees as stock Alpine.

Re:There is no such thing as a “glibc based alpine image” by riwsky on Thursday August 26, 2021 @10:40AM (#28315550)
That’s a bad analogy. Use of Rails isn’t broken on a technical level; use of glibc on alpine is.
Re:There is no such thing as a “glibc based alpine image” by cormacrelf on Thursday August 26, 2021 @08:19AM (#28313995)
There’s a solution to all of these problems, tried and tested, and older than the concept of package registry namespacing called “registering a trademark and sending a cease and desist letter”. Works great.