8 ms·
I agree entirely with the sentiment here. If you've ever had to piece together something external to your distribution you will know the pain involved. This is
by meaty 14y ago
I agree entirely with the sentiment here. If you've ever had to piece together something external to your distribution you will know the pain involved. This is amplified considerably if you pick a BSD-related operating system and for no good reason.
The Linux kernel itself is a remarkably stable system as far as ABI/API is concerned (Linus you rock here), but the packages gyrating around it are completely impossibly unstable and unreliable.
A fine example of this is trying to get an SSTP client working with NetworkManager recently. The whole NetworkManager VPN thing is an epic pile of hacks with bits of UI and bits of backend sticking out all over the place. If you're using Debian stable for example, there is no chance in hell you can get a working configuration unless you go and fix the numerous broken interfaces all over the place manually and arguing with pkg-config and literally hundreds of dependencies. How the fuck this ever even worked to start with I don't know. There are massive API changes with minor versions of packages all through NetworkManager and Gnome, which is just wrong.
The underlying issue is simply shitty engineering from a large body of open source projects who don't care about upstream or doing their job properly. To name and shame: The entire Gnome project, just about anything Ubuntu have chucked out, the entire KDE project post KDE2.
It's utterly frustrating. I wish they did take a more BSD approach, which is conservative engineering i.e. think about it, get it right and leave it.
For all the people here whinging about innovation, waah waah, ship old versions etc, I doubt you've actually had to deal with these issues or build a project on top of them. There seems to be a large detachment from reality here.
As an example to back my point up, one of the reasons Windows is so damn popular is that the API is incredibly stable and software written in the mid-90s still works fine on current versions without a recompilation or any API changes. A two week old build of NetworkManager probably will break all the VPN providers...
- cperciva 14y agoThe Linux kernel itself is a remarkably stable system as far as ABI/API is concerned You're joking, right? There have been cases where ABIs have been broken by security patches, and users have been told that they have to choose between having a secure system and being able to use their third-party binary drivers. (And yes, I understand the arguments about how binary drivers are evil; but I don't think users should be used as pawns in that fight.)
- zimbatm 14y agoHe was probably talking of the user-space ABI/API. Drivers are internal to the kernel (or should be) and Linux never made a claim that those APIs where going to be stable.
- meaty 14y agoYes that is correct.
- telent 14y ago> The Linux kernel itself is a remarkably stable system as far as ABI/API is concerned If we're talking about userland applications, the Linux kernel A[BP]Is have IME historically been more stable than the Glibc interfaces (which are supposedly the "supported" interfaces) layered atop them. In-kernel interfaces for binary-only modules are a different kettle of fish altogether.
- meaty 14y agoAs other people have said, userland ABI/API is solid. I should have clarified that. There is no reason the internal API would be as to be honest it's the Kernel's job to make the drivers sit behind that API and stay there regardless of the problems. That is the abstraction boundary. The issue is where the abstraction boundary is. In NetworkManager for example, which is an example I'm probably just picking on, there are many more abstractions above the kernel's abstraction which are unstable. Again, comparing to Windows, there have been several driver model revisions but the userland API+ABI is stable between them.
- ori_b 14y agoLinux does not have an external API or ABI for drivers. Whether you like it or not, Linux drivers are developed against internal interfaces. The external interfaces that Linux provides are remarkably stable.
- npsimons 14y agoWith all due respect, binary drivers can bugger off. As for you, shame on you for conflating userland ABI with driver interface. This has already been hashed out, many times before: http://www.kernel.org/doc/Documentation/stable_api_nonsense.txt http://www.kernel.org/doc/Documentation/stable_api_nonsense.... You can even get driver development for free: http://www.kroah.com/log/linux/free_drivers.html http://www.kroah.com/log/linux/free_drivers.html If you want binary drivers, find another OS. As for userland ABI, people have static binaries from the 1.2 days of Linux that still run just fine.
- bkor 14y agoAside from being a GNOME release team member I am also the packager for GNOME within Mageia. I find packaging GNOME to be really easy, way easier than I expected actually. Your argument comes across as that others should work more like the way you want them to work. The "large detachment from reality" is IMO an unneeded comment, easy to make comments from the sideline. The people who are involved with GNOME from OpenBSD side are really nice and friendly. But some in that openbsd thread have the weird notion that if OpenBSD would drop GNOME that then we'd take OpenBSD more into consideration. Your bit about NetworkManager: The goal is that you can easily configure your network. The way of doing that at that time and for now is NetworkManager. If it isn't good enough, then promote something which delivers the same goal, but is technically better. That's how to positively and practically change things.
- thaumaturgy 14y agoMageia is forked from Mandriva, and not very old, and Mandriva already has systemd support. I'm not surprised that Gnome has been easy for you to package for your distribution. As far as I know, none of the BSDs are packaging Gnome 3 right now. Not one of them. Don't you think that might be signaling some trouble?
- takluyver 14y ago> As far as I know, none of the BSDs are packaging Gnome 3 right now. Not one of them. Don't you think that might be signaling some trouble? But is that trouble for Gnome, or trouble for the BSDs? I suspect the affected users are a rather larger percentage of the BSD userbase than of the Gnome userbase.
- meaty 14y agoI think, being a BSD user, we're probably not concerned much about that. Gnome 3 accounts for a miniscule proportion of users. It's less relevant that Gnome 3 doesn't work on BSD to the BSD projects than Gnome if you ask me. Bad PR for Gnome would cost more than bar PR for BSD.
- fafner 14y ago> As an example to back my point up, one of the reasons Windows is so damn popular is that the API is incredibly stable and software written in the mid-90s still works fine on current versions without a recompilation or any API changes. Windows started from a different position. Backward compatibility makes sense when you have all the applications. And it results in you having to maintain a sh*tload of legacy APIs and modules. Microsoft has a different budget and works as a stricter organized company. Linux Desktop lacks the manpower. But on the other hand Linux has to move forward. It certainly has to settle down a bit in the future. But things like NetworkManager, PulseAudio, Systemd, Wayland are introduced because they solve existing problems. You can certainly argue about implementation aspects but I don't think you can argue about the problems they are solving.