Fedora opens up to bundling
Fedora opens up to bundling
Posted Oct 14, 2015 4:21 UTC (Wed) by xtifr (guest, #143)In reply to: Fedora opens up to bundling by raven667
Parent article: Fedora opens up to bundling
When library developers refuse to follow best practices at keeping backwards compatibility, and proper versioning, then maybe app developers should think twice about depending on such poorly maintained libraries in the first place.
And if the app developers want to use poorly maintained libraries anyway, they either need to step it up and maintain their own forks of the libraries, including handling any security issues that may arise, or they need to admit that their software isn't good enough to be included in any decent distribution!
Trying to put the blame on the people making the distribution for the idiocy of the library developers is really bad form. Trying to blame the people making the distribution for your own idiocy is even stupider.
There is no excuse for bundling ever, period, end statement. If the upstream libraries aren't good enough you either need to fork or find a replacement. And if you're going to fork, because the upstream developers of the library aren't good enough, then fork good and hard!
And stop blaming your fellow victims.
Posted Oct 14, 2015 5:51 UTC (Wed)
by marcH (subscriber, #57642)
[Link]
In other words you need: either infinite time, or an ideal world with plenty of quality replacements to choose from.
I'll take both.
Posted Oct 14, 2015 5:54 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link] (34 responses)
Security issues? Who cares, just update all the libraries once in a while. Utilize OS-level sandboxing and exploit protection to help mitigate the usual exploits.
Nobody's going to target your small app specifically, anyway. And if it ever grows big, then sign for your libraries' mailing lists and monitor them for security announcements - in practice that's at most a couple of issues a month for a complicated project. It's so much easier to deal with occasional (and usually ABI-compatible) updates than with the constant headache of 6-month distro release cycles.
Stop worrying about security. Instead, focus on FEATURES that benefit your users.
--
Posted Oct 14, 2015 6:57 UTC (Wed)
by Karellen (subscriber, #67644)
[Link] (4 responses)
If not, or for the benefit of those who actually think like this - security *is* a feature that benefits your users. If you do not think so, I sincerely hope I'm never in the position that I need to use any of the software you've had any significant hand in.
Posted Oct 14, 2015 7:54 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link] (3 responses)
Of course, security is a feature. But it's rarely the central feature of an app (with obvious exceptions like payment or banking apps). And as I've said, most security problems attributed to bundled libraries are way overblown.
Bundling is here to stay. Distributions should stop fighting it and instead should concentrate on making it safer.
Stop the war on drugs^W bundling, legalize safe bundling!
> If you do not think so, I sincerely hope I'm never in the position that I need to use any of the software you've had any significant hand in.
Posted Oct 14, 2015 9:10 UTC (Wed)
by epa (subscriber, #39769)
[Link] (2 responses)
Posted Oct 14, 2015 17:50 UTC (Wed)
by alankila (guest, #47141)
[Link] (1 responses)
The problem is exact behavioral stability -- software is so fragile that any changes to the environment, no matter how benign or useful -- risks breaking the software. The API can be the same, all it takes is some little race condition, or some change to the behavior of the underlying functions, and boom! breakage results. To keep software working, we basically have to choose between "features that function" and "has useful things like security updates".
Linux distributions have, so far, prioritized security updates, and the feasibility of tracking them. However, I still think that the only right solution is severe hardening of the operating system such that minor problems and buffer overflows in the application or its libraries can only have a limited security impact. It is far more useful to get away from the "egg" security model, aka "the hard shell and soft interior" model than it is to design elaborate update protocols and security requirements that assume we can find the bugs and then patch them without breaking the software in the process in the first place.
So yeah, bring us bundling, but also bring us a security model that ensures that even if there is a buffer overflow or whatever security issue that permits arbitrary code execution, it at best destroys that application's data rather than compromises the entire user account.
Posted Oct 14, 2015 17:55 UTC (Wed)
by hkario (subscriber, #94864)
[Link]
https://xkcd.com/1200/
Posted Oct 14, 2015 7:55 UTC (Wed)
by jezuch (subscriber, #52988)
[Link] (4 responses)
In other words, everyone needs to be their own distribution?
Posted Oct 14, 2015 8:12 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link]
Posted Oct 14, 2015 8:34 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link] (2 responses)
The most complicated part in a real distro is forcing all the different software packages play together nicely. You sidestep this whole mess, since you usually care only about just one app. You also don't need the startup/shutdown infrastructure and all the thousands packages for all of the free software.
Posted Oct 14, 2015 9:52 UTC (Wed)
by hkario (subscriber, #94864)
[Link] (1 responses)
developers have already proven that they are not capable and do not care enough to provide good support for bundling, be it in form of direct source bundling or container images
Posted Oct 14, 2015 14:57 UTC (Wed)
by drag (guest, #31333)
[Link]
There is nothing within a distribution's power to fix ruby so that it's trivial to upgrade without breaking anything.
There is not enough manpower in the distribution to rewrite ruby to make it 'sane' and there is not enough manpower to package every possible version of every possible library needed by ruby applications and maintain properly.
If you want to make a distribution that forces developers to 'behave' you are going to behave then it's going to have to prevent people from using any ruby/python/java/C/C++/etc application that isn't pre-packaged by the distribution. Doing this will effectively make the OS worthless to the majority of people.
The reality is that if you want to run your applications on Linux you can't depend on distributions to provide everything you need. Linux distributions are not capable of providing all things needed.
> developers have already proven that they are not capable and do not care enough to provide good support for bundling,
This is not necessarily a issue that rests entirely with the developers. The fact that installing and maintaining software on Linux is such a huge pain in the ass that they don't have the time to deal with it is a big issue as well.
I think the solution to these problems is to see how people want to use the OS and then make it easy for them to do so. For example: provide tools that makes it easy to install software from upstream and maintain those installations without forcing everybody to go through distribution repositories. Security concerns should be addressed not by forcing everybody to use distribution-provided dependencies, but by having tools that analyze software and look for library versions and other things that are known issues. You will never be able to create a 'perfect' solution to these problems, but you can provide a realistic one.
Posted Oct 14, 2015 17:20 UTC (Wed)
by tpo (subscriber, #25713)
[Link] (23 responses)
> Security issues? Who cares, just update all the libraries once in a while. Utilize OS-level sandboxing and exploit protection to help mitigate the usual exploits.
The perspective from the other side - the user side - might be different.
As a sysadmin I see software that I need to maintain that:
* bundles half the world
It makes me vomit. Every piece of such software lives in it's own special snowflake world. Consistent config management is impossible. Consistent version control is impossible. Consistent log management is impossible. Consistent backup procedures are impossible. Updating the environment is extremely brittle and risky. Migrating the software to a new platform is hit or miss. Security it a complete unknown. Which directly limits the use of such software to amateur environments, or you need guarantees that the vendor will not give you. The cost of completely ignoring best practice (== distro standards) is very high for the sysadmin.
As a end user I see software that bundles the whole world. Each piece of shit bundles its own Java. Do taxes for 2014? 100 GB, there you go. And 2015? Another 150 GB. You moved to a different town? And so on. And you need to back that crap up as well.
And there are appliances and hardware devices. The device has some bug? Bad luck. Your environment evolves and the device should be adapted accordingly? Bad luck! You know it's based on some Linux or library with known exploits? Bad luck!! The device is running out of some resources under your operating conditions? Bad luck!!!!
Then there's the ilk of web apps. Each comming with it's own ruby, gems, php, rails version, java script and ruby libraries, hard dependencies on some version of xml headers and mysql headers and so on. Never mind those are write once and forget because no one will ever care to update or maintain that crap. It's the router firmware plague of web apps. If I'd had to crack some company then I'd start by having a look at their "content management system".
Don't misunderstand me - I do believe that it is possible to maintain a bundle containing the full software stack of some application well - Chrome might be an example. On the other hand it is also possible to maintain a package for the top half dozen of popular distros and platforms well. Both of these approaches come with non-negligible costs.
But it's arguably far easier to bundle together some random mix of git checkouts, data and config files and libraries that just happened to work at the moment they were shipped and that was that. In my experience if some software has it's own non-distro-provided installer then it'll be gross with a very high proability.
So if you are preaching to the "elite" software developers backed by honest companies with a horizon of a dozen or more years to maintain their software and serious documentation and integration surfaces, then all the power to you.
I doubt however yours is a good advice to give to to Joëlle developer from Standard company - see my experience above.
Posted Oct 14, 2015 18:06 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link] (22 responses)
>* comes with it's own init system
>* logs into /usr/share/software
>* doesn't have the ability to log to rsyslog
>* has configuration at completely random places, sometimes indistinguishable from binary files
> It makes me vomit. Every piece of such software lives in it's own special snowflake world.
Posted Oct 15, 2015 7:29 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (21 responses)
Of course it does. The root reason for bundling is that a developer wants to take as many shortcuts as possible and avoid thinking at anything but his ego-boosting code. That's why a bundled environment is crap crap and more obsolete unsupported unsecured undocumented hastily patched crap. It's only there to allow the precious developer code to run, and any problem in the bundled substrate is "someone else's" problem.
If the developper could he would image his ide and ask users to push the run button there.
Log management and use of common system services is 200% in the "avoid work" zone.
Posted Oct 15, 2015 7:53 UTC (Thu)
by marcH (subscriber, #57642)
[Link] (1 responses)
As long as she gets users, why not.
"The customer is always right" - and the thief impersonating him even more.
Posted Oct 15, 2015 12:01 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link]
Posted Oct 15, 2015 8:01 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (18 responses)
Posted Oct 15, 2015 18:49 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (17 responses)
Posted Oct 15, 2015 21:00 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (16 responses)
Just sandbox it to make sure it can't harm other apps.
Posted Oct 17, 2015 18:34 UTC (Sat)
by lsl (subscriber, #86508)
[Link] (15 responses)
Back in 2005, Raymond Chen wrote about the issues with putting old programs into a VM, so you don't have to maintain proper backwards compatibility. Short form: it doesn't really work that well. The specific problems encountered back then might be different from those of the new-fangled container sandbox approaches you see today, but the common theme is the same. Users expect their programs to interoperate.
http://blogs.msdn.com/b/oldnewthing/archive/2005/10/05/47...
And no, asking the user at every step of the way is not a solution.
Posted Oct 18, 2015 2:39 UTC (Sun)
by Cyberax (✭ supporter ✭, #52523)
[Link] (14 responses)
It's also possible to do the inverse - a browser can set up a protected storage for sensitive data which is not accessible to normal processes (it also automatically disables debugging for the sensitive process).
This is a far better approach than playing whack-a-mole with bugs where one single bug in an "Exploding Kittens" game might be enough to get access to ALL your files.
Posted Oct 20, 2015 22:15 UTC (Tue)
by javispedro (guest, #83660)
[Link] (13 responses)
That doesn't even start to cover all the holes that should be poked. What if you want to share a spell checker whitelist between Abiword and Libreoffice? What if you just installed the Zotero plugin and want to run it in both Abiword, Libreoffice, and Firefox, preferably with the same bibliography? Hidden file dependencies? etc.
Even for compiling a single .c file the amount of required holes is mind-boggling. Or running a trivial NumPy number-crunching script. Or creating a basic plot with R. Or ...
There's a reason unsandboxed new programs appear daily even on platforms where the default is to be sandboxed (such as Windows or OS X). Any current platform that only allows for sandboxed binaries (WinRT, iPad *cough*) falls straight into the "it's completely useless for any serious work" territory.
And please don't use the "people do real work on an iPad" argument. By now even MS marketing guys have realized how stupid it is: they actually promote the completely unsandboxed environment called Win32 as their distinguishing feature over the plethora of tablets.
> This is a far better approach than playing whack-a-mole with bugs where one single bug in an "Exploding Kittens" game might be enough to get access to ALL your files.
But sandboxing as it is done now usually involves making programs larger (e.g. Libreoffice-like huge suites instead of collections of individual programs cooperating, like in TeX), and this means that one single bug in the almost never used code that imports .mp4 fart sounds to use in Libreoffice presentations would also be enough to access ALL your sikret files.
Being an idealist, I still think that a system that doesn't encourage huge monster applications (and thus keeps bug numbers at manageable levels) is a much better approach.
Posted Oct 20, 2015 23:29 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link] (12 responses)
> What if you want to share a spell checker whitelist between Abiword and Libreoffice? What if you just installed the Zotero plugin and want to run it in both Abiword, Libreoffice, and Firefox, preferably with the same bibliography? Hidden file dependencies? etc.
> Even for compiling a single .c file the amount of required holes is mind-boggling. Or running a trivial NumPy number-crunching script. Or creating a basic plot with R. Or ...
> But sandboxing as it is done now usually involves making programs larger
> (e.g. Libreoffice-like huge suites instead of collections of individual programs cooperating, like in TeX), and this means that one single bug in the almost never used code that imports .mp4 fart sounds to use in Libreoffice presentations would also be enough to access ALL your sikret files.
Posted Oct 22, 2015 9:54 UTC (Thu)
by Wol (subscriber, #4433)
[Link] (1 responses)
> Nope. It'll only get access to that presentation and perhaps some recent files.
Cyberax, sometimes you need to "engage brain before opening mouth".
"One bug" == "pwned", and who knows what damage is done :-( If it has LO's permissions, then it can access all of LO's files. (Which for most users, is pretty much everything.)
(Incidentally, LO is not a monolithic blob. Although I'll admit it often feels like it ...)
Cheers,
Posted Oct 22, 2015 14:32 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link]
On Linux, a compromised document can slurp browser's history and secret storage and send it to nice folks in Nigeria.
Now, which model do you trust more?
Posted Oct 22, 2015 15:15 UTC (Thu)
by javispedro (guest, #83660)
[Link] (9 responses)
i.e. punch specific holes in the sandbox. Hard to do when there are gazillions of possible usecases, and most of them we don't even envision today.
> Command-line apps are somewhat special.
And this I disagree with. Specially in the context of a distro's packaging, command-line apps are _the norm_.
> Uhm? What?
Because "command line apps are special", and because you break many of the common approaches which programs use to share data, you are encouraging developers to create "all-in-one" suites instead of collections of small programs (the so misnamed "unix way") and bigger shared libraries.
Otherwise, something as trivial as copying and pasting a plot from the spreadsheet program to the word processing program using anything more advanced (i.e. vector, linking, etc.) than a shared .png file becomes a nightmare.
An example of this is iOS.
> Nope. It'll only get access to that presentation and perhaps some recent files.
Yeah... as well as any future file you open with that program, which for many users includes _ALL_ of the user's most important files, esp. all of the text documents, the spreadsheets with financial data, presentations, drawings, the mailing list with all of your patients which you used once with your word processor, and the list of all words you've even written on any document so far (which obviously are only kept for "training purposes"), etc.
Posted Oct 22, 2015 22:52 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (8 responses)
> Because "command line apps are special", and because you break many of the common approaches which programs use to share data, you are encouraging developers to create "all-in-one" suites instead of collections of small programs (the so misnamed "unix way") and bigger shared libraries.
> Yeah... as well as any future file you open with that program, which for many users includes _ALL_ of the user's most important files
Please, educate yourself about the state of the art, at least.
Posted Oct 25, 2015 14:22 UTC (Sun)
by mp (subscriber, #5615)
[Link] (1 responses)
Through complex LSMs that NOBODY understands? Oh well.
Posted Oct 26, 2015 5:57 UTC (Mon)
by Cyberax (✭ supporter ✭, #52523)
[Link]
To be fair, in Mac OS X command line utilities invoked through exec() from sandboxed apps do have read-only access to Unix system directories, but they don't have access to users' directories.
Posted Oct 26, 2015 15:53 UTC (Mon)
by javispedro (guest, #83660)
[Link] (5 responses)
That's a _huge_ thing to say. How do you even know 6 months by now there won't be a usecase that needs direct access from your word processor to your phone?
Hell, I'm sure _I_ wouldn't bet against it!
> And so? App Store model works for most users.
NO! You're affirming the consequent here. I'm precisely arguing that it does NOT work! And I even explicitly mentioned above how even MS has come to realize this.
> Sandboxing command-line utilities is also possible
> No, that's incorrect. Mac OS does not allow programs to store authorizations forever.
So I'll just infect the equivalent of normal.dot and reload myself on startup everytime. _A single bug on that binary compromises every further file saved by that binary_. Unless you want to prevent saving any state at all?
> Please, educate yourself about the state of the art, at least.
Please turn your brain on a bit before replying, as you've been told above.
Posted Oct 26, 2015 17:29 UTC (Mon)
by Cyberax (✭ supporter ✭, #52523)
[Link] (4 responses)
> NO! You're affirming the consequent here. I'm precisely arguing that it does NOT work! And I even explicitly mentioned above how even MS has come to realize this.
> So I'll just infect the equivalent of normal.dot and reload myself on startup everytime. _A single bug on that binary compromises every further file saved by that binary_. Unless you want to prevent saving any state at all?
Please, explain how this is worse than the quagmire we have in Linux right now when a "dancing cows" LibreOffice document can send all your credit card info to Nigeria.
> Please turn your brain on a bit before replying, as you've been told above.
Posted Oct 26, 2015 19:55 UTC (Mon)
by javispedro (guest, #83660)
[Link] (3 responses)
> I think a billion smartphone users might disagree with you. And can you point me to an MS article about failing AppStore models?
>> There's a reason unsandboxed new programs appear daily even on platforms where the default is to be sandboxed (such as Windows or OS X). Any current platform that only allows for sandboxed binaries (WinRT, iPad *cough*) falls straight into the "it's completely useless for any serious work" territory.
> You can't do it. It's an obvious vector and so Apple's own processor tools have a special sandbox mode for it. It allows you to open and write the shared config, but nothing else.
> Please, explain how this is worse than the quagmire we have in Linux right now when a "dancing cows" LibreOffice document can send all your credit card info to Nigeria.
Posted Oct 26, 2015 20:16 UTC (Mon)
by Cyberax (✭ supporter ✭, #52523)
[Link] (2 responses)
> Why not? As long as there's _any_ saved state (call it normal.dot, call it "shared config" -- what's the difference?) between invocations, then every future document you open with that program is compromised.
> Point is, even with OS X style sandboxing, a single "dancing cows" document will also be able to send all your company finances to Nigeria.
Also, AppStore model allows vendors to quickly make and QA a patch for a security issue. With distros you have to go through maintainers and slow release process. Then you have to do QA for multiple distro versions.
It's pretty clear which security model is more advantageous.
> Not only that, but OS X style sandboxing is so problematic to implement, it might very well be not worth the effort, save perhaps for platform that are already usability limited from the start.
Posted Oct 27, 2015 7:20 UTC (Tue)
by javispedro (guest, #83660)
[Link] (1 responses)
But you need _operating system_ updates in order to punch these new holes in the sandbox, not software vendor actions. And these introduce even more headaches, because punching new holes may break old software (or even new software, if we look into selinux). Unless you're thinking final software developers will ship the list of sandbox holes they need, but while this is a very interesting approach for a user trusted catalog of software (e.g. distro repository) it does not seem valid for a general "app store" model.
Remember that I'm saying the Apple sandbox model does not even provide half of the holes required for even a mere office suite to work well. The only such program that I currently known working under the sandbox is NeoOffice, and they do trickery such as showing up an OSX open dialog pointing at the file it wants to read every time it wants to read some random file. They also disable all extensions and is generally a pain to use. And this is most probably an example of a program that in theory seems easy to sandbox.
> Nope, it _might_ be able to infiltrate documents as you open them. It won't be able to read browser history or install spyware.
Sorry but we're going circles about this:
And in practice this is a much more common scenario than a malicious presentation reading your browser story -- see long tradition of Office viruses. After all, you've already compromised the office suite, so there's 0% additional effort in doing that, while there's sure to be some platform and browser-dependent code in reading browser history.
I still believe in that a smaller programs model is much better for security, and that the App Store model clearly goes against smaller programs; if only because it becomes much harder to share data between programs.
> Linux-style dependency management clearly doesn't work well.
Posted Oct 27, 2015 8:02 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link]
> And these introduce even more headaches, because punching new holes may break old software (or even new software, if we look into selinux).
> And in practice this is a much more common scenario than a malicious presentation reading your browser story -- see long tradition of Office viruses. After all, you've already compromised the office suite, so there's 0% additional effort in doing that, while there's sure to be some platform and browser-dependent code in reading browser history.
> I still believe in that a smaller programs model is much better for security, and that the App Store model clearly goes against smaller programs; if only because it becomes much harder to share data between programs.
So let's actually think about the threat model. Suppose I want to steal users' credit card information.
2) I have an exploit for LibreOffice itself. With a naïve distro model I simply need to hack LibreOffice and I instantly get access to browser's history with all the juicy CC info. With the sandboxed code I have to try and infect other documents, hoping that a user eventually opens a document with CC info.
So it appears that distro model provides no advantage here. Now, there might be a question of update speed. A distro might be able to update a shared library faster than a vendor can go through a full formal QA process. And that actually might be a disadvantage.
Posted Oct 14, 2015 6:36 UTC (Wed)
by ibukanov (subscriber, #3942)
[Link] (7 responses)
I think the only library on Linux that is really backward-compatible is the kernel interface. For this reason for software that is not a part of a distribution when developers provide binaries for the users on their own bundling is pretty much the only option. For example, I have found a convenience of static linking Go style is very hard to resist. Binary that just works on any Linux as long as the kernel in not too old makes life so much simpler.
Posted Oct 14, 2015 11:42 UTC (Wed)
by ms_43 (subscriber, #99293)
[Link] (5 responses)
This is quite wrong, there are certainly quite a few libraries that maintain very good ABI compatibility for the last 15 years now: glibc2, NSS, libxml2, glib2, various X11 client libraries, libGL come to mind.
The main problem is that it's not quite obvious which of the 100s of lib*.so on your system tend to be stable and which not.
There are some hints, like the LSB, which was intended as a solution to the problem and is actually implemented by most of the popular distributions (but notably not Debian).
For RHEL it's also documented which are the supported stable ABIs, you may note the "Compatibility level 1" list is rather short:
Sadly the most stable libraries are not necessarily the most popular, for example developers often prefer the volatile OpenSSL over NSS.
Posted Oct 14, 2015 18:30 UTC (Wed)
by xtifr (guest, #143)
[Link] (4 responses)
Far more than that if you consider bumping the version when incompatibilities are introduced to be part of maintaining compatibility. Bumping the version means that the old and new versions of the library can co-exist, which is and should be all that app developers need.
Posted Oct 14, 2015 18:49 UTC (Wed)
by pizza (subscriber, #46)
[Link] (3 responses)
It also means you must continue to support the old versions indefinitely.
Posted Oct 15, 2015 2:24 UTC (Thu)
by xtifr (guest, #143)
[Link] (2 responses)
Posted Oct 15, 2015 14:43 UTC (Thu)
by ms_43 (subscriber, #99293)
[Link]
From an application developer's point of view, anything less than 5 years after the new version is available is clearly unreasonable.
Posted Oct 15, 2015 15:54 UTC (Thu)
by mathstuf (subscriber, #69389)
[Link]
Posted Oct 14, 2015 13:01 UTC (Wed)
by lisandropm (subscriber, #69317)
[Link]
Posted Oct 14, 2015 10:16 UTC (Wed)
by roc (subscriber, #30627)
[Link] (12 responses)
There is huge value in delivering applications bundled with the library versions they have been most thoroughly tested with. That doesn't mean bundling is always the right thing to do, but failing to acknowledge the value of bundling makes you sound non-serious.
Posted Oct 14, 2015 18:27 UTC (Wed)
by xtifr (guest, #143)
[Link] (11 responses)
This is nothing more than saying that writing bug-free code is impossible. That's true but irrelevant. When a bug is found, it should be fixed. When a failure in backwards compatibility is found...
No one's asking for perfect backwards compatibility for ever and ever. When you need to change the ABI/API for your library in an incompatible way, you can bump the major version number, and now the old and new versions of the library can co-exist.
Posted Oct 14, 2015 18:44 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link] (3 responses)
Posted Oct 15, 2015 7:41 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link] (2 responses)
There is a high correlation between "having a sane run environment" (without bundling) and "being still there 5 years later".
Bundling-rich projects are shiny but tend to break under the technical debt they tried to hide in the bundled goo after a while. Their authors display full-rewrite tendencies aka I-care-about-something-else-now about the time the goo obsolescence becomes critical enough they can't ignore it anymore.
Posted Oct 15, 2015 7:59 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
Posted Oct 15, 2015 19:13 UTC (Thu)
by nim-nim (subscriber, #34454)
[Link]
But in the FLOSS world, the bills is good reusable code since money is not reinjected in the system.
Posted Oct 15, 2015 0:29 UTC (Thu)
by roc (subscriber, #30627)
[Link] (5 responses)
... it's often too late, because you've already shipped, and your users are having a bad time.
> Then how come we've been able to get along so well for the last couple of decades without?
As someone who has observed a lot of bug reports due to library version skew with unbundled Firefox --- we have not been getting along "very well".
> I've seen countless security problems fixed in a whole set of apps by upgrading a shared library.
You've also seen countless security problems fixed by bundled-library applications updating the whole package. (It's worth keeping in mind that any application vendor who deploys on Windows or Mac or iOS or Android must bundle libraries, must monitor them for security issues, and must provide timely security updates for the entire package on those platforms, so for them, unbundling on desktop Linux reduces the work required by a negligible amount.)
> But I've seen less than a handful of apps have serious problems when a library is upgraded, and such problems have always been treated as a bug in the library
That's odd. In my experience, users blame the application when it doesn't work. E.g. when Firefox freezes on a Web page using HTML5 canvas, the user blames Firefox. They do not say "hey, this must be a bug in the system cairo library!" and complain to the cairo developers.
Posted Oct 16, 2015 23:56 UTC (Fri)
by dirtyepic (guest, #30178)
[Link] (4 responses)
So they complain to their distro Firefox maintainer who does have enough of a clue to say "hey, this is a bug in cairo" and gets it fixed in the library, a fix that solves the problem for everyone, including Firefox, which means one less problem you need to debug and fix yourself in your bundled copy when you get around to updating it.
Posted Oct 18, 2015 19:52 UTC (Sun)
by flussence (guest, #85566)
[Link]
Was it a bug in cairo? The gpu driver? The browser? We'll never know - like any sane person he didn't go through the ordeal of making Yet Another ****ing Bugzilla Account, he switched to Microsoft Edge and the problem vanished.
Similarly, my own quality of life has vastly improved since switching to Vivaldi; no more waiting literally minutes for the browser to open or pages to load. My netbook is *usable* again, imagine that.
And imagine trying to get anywhere by reporting *that* bug to *those* people.
(FWIW, I do make good use of my distro's bug tracker, but I've found trying to contribute to browsers is just an exercise in extreme masochism. It's better to let them fail.)
Posted Oct 18, 2015 21:33 UTC (Sun)
by roc (subscriber, #30627)
[Link] (2 responses)
Posted Oct 19, 2015 11:54 UTC (Mon)
by micka (subscriber, #38720)
[Link] (1 responses)
That would be the first time someone says getting fixes upstream is not something sane to do.
Posted Oct 19, 2015 23:14 UTC (Mon)
by roc (subscriber, #30627)
[Link]
Posted Oct 15, 2015 5:01 UTC (Thu)
by raven667 (subscriber, #5198)
[Link]
The software update is already widely deployed and the damage is done? It's not as if all the ABI breaks are intentional.
Posted Oct 14, 2015 10:34 UTC (Wed)
by andresfreund (subscriber, #69562)
[Link]
To me that's a simplistic portrayal. Maintaining ABI and API compatibility across major releases of a library has significant development and maintenance cost. I don't think anybody that has maintained such compatibility will say differently.
Which means one needs to judge between the advantages of maintaining compatibility and having the time to do other stuff, e.g. add new features. I do think that the balance shifts a bit too often towards the latter, yes. But your statement is far too one sided for me.
Posted Oct 14, 2015 15:31 UTC (Wed)
by mathstuf (subscriber, #69389)
[Link] (2 responses)
You haven't developed for Windows (hell, even OS X for that matter) have you? Sure, for *nix, this makes sense, but that's not the end of the world.
I work on some apps that bundle, but they provide "use system version?" options for all but one or two of them. That's the better half-way point, but it's not perfect (and much harder than just plain bundling since you need to mangle symbols so as not to conflict with other bundled copies of the same library).
Posted Oct 17, 2015 5:25 UTC (Sat)
by cas (guest, #52554)
[Link] (1 responses)
The fact that it's common in Windows is not an excuse. certainly not a good excuse.
It's annoying in the Windows world, too. I have a win7 box which exists solely for the purpose of running Steam games, and I've bought several hundred steam games over the years. It's extremely annoying to have to go through the nvidia physx installer and Direct X installer and C library installer etc etc etc for almost every single one of those several hundred games.
It's worse than annoying, it's just plain stupid. I already have system copies of all those libs (and more) - i don't need or want more copies, or even to waste time while the installer figures out I don't need yet another copy in the game's own directory.
Posted Oct 17, 2015 17:29 UTC (Sat)
by mathstuf (subscriber, #69389)
[Link]
> It's extremely annoying to have to go through the nvidia physx installer and Direct X installer and C library installer etc etc etc for almost every single one of those several hundred games.
These really are "system" libraries in the sense that they should be provided there (like OpenGL backends on Linux).
> I already have system copies of all those libs (and more)
Yeah, but what about OpenSSL? Boost? Qt? Python? There's no standard place to put them that doesn't become hell once more than one app thinks they know how things are supposed to work gets it wrong. And the Windows store certainly isn't going to provide such things.
Posted Oct 14, 2015 15:48 UTC (Wed)
by raven667 (subscriber, #5198)
[Link]
The distro providing the libraries to use and encouraging people to use them by a policy of un-bundling is a kind of implicit endorsement that the library is going to be maintained with an ABI and that the distro is going to take responsibility for this maintenance even if the upstream is uncooperative. It doesn't really make sense for a distro to take a hardcore no-bundling stance and simultaneously disclaim any responsibility for the libraries they package and force developers to use.
Maybe it makes more sense for a distro to seperate into a core of maintained software that people are expected to depend on, and a universe of software packaged for convenience only with no expectation for unbundling. Each distro trying to consume all of the software in the world and treat it as one blob in-house doesn't seem to be working all that well
Fedora opens up to bundling
Fedora opens up to bundling
Who cares about bundling? I say, bundle the whole world and to hell with distributions. Bundle everything above syscalls: ditch glibc for musl, jettison distro-provided libraries, get rid of complicated packaging.
Sincirely yours,
practical application developer.
Fedora opens up to bundling
Fedora opens up to bundling
Too late. You're likely using a service (maybe indirectly) that I'm helping to develop and supporting.
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
> ensures that even if there is a buffer overflow or whatever
> security issue that permits arbitrary code execution, it at best
> destroys that application's data
just switch "computer" for "browser"
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
* comes with it's own init system
* logs into /usr/share/software
* fails to rotate its logs
* doesn't have the ability to log to rsyslog
* has configuration at completely random places, sometimes indistinguishable from binary files
* fails to upgrade properly
* is 32bit only
Fedora opens up to bundling
Yawn.
Inevitable, since each distro has its own mess. Systemd fixed this, but it's not yet everywhere.
>* fails to rotate its logs
Inexcusable but has nothing to do with bundling.
Nothing to do with bundling.
>* fails to upgrade properly
>* is 32bit only
Nothing to do with bundling.
So why do you insist then that your special snowflake of a distro should be supported? It's RHEL4 time for you.
Fedora opens up to bundling
>>* fails to rotate its logs
>Inexcusable but has nothing to do with bundling.
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
You got it in one. But you're saying it like it's a bad thing. Why?
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Apple does this just fine with their sandboxing for AppStore applications. Basically, "Open File" action allows an application to access user-specified files.
Fedora opens up to bundling
Fedora opens up to bundling
It covers most.
If your spellchecker is specific to AbiWord and Libreoffice - you can explicitly whitelist it in each application. Otherwise, a user must grant your application (somewhat mislabeled) "Accessibility" permissions.
Command-line apps are somewhat special. They can be sandboxed, but nobody really cares about them.
Uhm? What?
Nope. It'll only get access to that presentation and perhaps some recent files.
Fedora opens up to bundling
Wol
Fedora opens up to bundling
That's not true for sandboxed apps on Mac OS X. A document file with an embedded exploit will probably not be able to access even the recently opened documents. It definitely won't be able to modify the LO executable files or even _read_ other user's files.
Fedora opens up to bundling
Fedora opens up to bundling
Not really. Most of the integration points for regular desktop use are known by now. Anything more advanced will require special-level access, but even developer desktops these days are pretty much vanilla.
And so? App Store model works for most users. Sandboxing command-line utilities is also possible - through SELinux or similar approaches.
No, that's incorrect. Mac OS does not allow programs to store authorizations forever.
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
And precisely from a decade of SELinux experiences I know how stupid most sandboxing is, and how hard it is to actually make it usable.
Fedora opens up to bundling
> Hell, I'm sure _I_ wouldn't bet against it!
Operating systems are not set in stone. If there's a demand then new integration points are likely to be added. That is happening all the time both with iOS and Android.
I think a billion smartphone users might disagree with you. And can you point me to an MS article about failing AppStore models?
You can't do it. It's an obvious vector and so Apple's own processor tools have a special sandbox mode for it. It allows you to open and write the shared config, but nothing else.
Should I repeat my advice?
Fedora opens up to bundling
To sum it up: not only there's a huge amount of holes that need to be punched, but you need to keep punching brand new holes "all the time".
>> And please don't use the "people do real work on an iPad" argument. By now even MS marketing guys have realized how stupid it is: they actually promote the completely unsandboxed environment called Win32 as their distinguishing feature over the plethora of tablets.
Why not? As long as there's _any_ saved state (call it normal.dot, call it "shared config" -- what's the difference?) between invocations, then every future document you open with that program is compromised.
Point is, even with OS X style sandboxing, a single "dancing cows" document will also be able to send all your company finances to Nigeria. Not only that, but OS X style sandboxing is so problematic to implement, it might very well be not worth the effort, save perhaps for platform that are already usability limited from the start.
Fedora opens up to bundling
And that's fine. Vendors release new versions of applications all the time.
You assume that you can infiltrate through configuration. It's much less likely, especially if good config framework is used.
Nope, it _might_ be able to infiltrate documents as you open them. It won't be able to read browser history or install spyware.
So what's your proposal? Linux-style dependency management clearly doesn't work well.
Fedora opens up to bundling
>> But sandboxing as it is done now usually involves making programs larger (e.g. Libreoffice-like huge suites instead of collections of individual programs cooperating, like in TeX), and this means that one single bug in the almost never used code that imports .mp4 fart sounds to use in Libreoffice presentations would also be enough to access ALL your sikret files.
Note that sandboxing is independent of dependency management.
Fedora opens up to bundling
Yes. But currently application vendors are not just at the mercy of the OS, but at the mercy of many packagers! It's even worse - what if your app depends on a feature of a package with asshole maintainer?
Quite unlikely. New APIs rarely affect the old APIs.
Viruses these days exist to actually earn money for their developers. Botnetting and browser history (including CC information) are the easiest target, while documents are almost always useless.
So basically you're saying: "I believe in magic and unicorns". No packaging system can make a complicated office suite a "small" program. It might remove a bunch of peripheral dependencies, but nothing else.
1) If I have an exploit for a widely used library like zlib or libpng then I probably wouldn't want to bother exploiting LibreOffice, never mind trying to exploit a sandboxed LibreOffice.
Fedora opens up to bundling
Fedora opens up to bundling
https://access.redhat.com/articles/rhel-abi-compatibility
Fedora opens up to bundling
This is quite wrong, there are certainly quite a few libraries that maintain very good ABI compatibility for the last 15 years now: glibc2, NSS, libxml2, glib2, various X11 client libraries, libGL come to mind.
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
For a reasonably complex library, maintaining perfect backward compatibility is impossible.
There is huge value in delivering applications bundled with the library versions they have been most thoroughly tested with.
"Huge value?" Then how come we've been able to get along so well for the last couple of decades without? In all the years I've been using Linux, I've seen countless security problems fixed in a whole set of apps by upgrading a shared library. I've also seen countless cases where minor bugs in (again) a whole set of apps are fixed by upgrading the library. Or where performance in a whole set of apps is improved by upgrading a library. But I've seen less than a handful of apps have serious problems when a library is upgraded, and such problems have always been treated as a bug in the library, and the buggy version of the library deprecated.
Are library maintainers getting more lazy? In that case, perhaps we need to persuade more people to work on producing high-quality libraries. But I suspect that's not the problem....
Fedora opens up to bundling
By being about 1% of the market (I'm speaking about "classic" desktop Linux).
Fedora opens up to bundling
Fedora opens up to bundling
Yup. But in the meantime it pays the bills and runs the world.
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
Fedora opens up to bundling
> Sure, for *nix, this makes sense, but that's not the end of the world.
Fedora opens up to bundling
Fedora opens up to bundling
