News for hackers. Stuff that matters.
Re:OpenBSD won't update Firefox, advises users to switch to ESR by progval on Saturday January 11, 2020 @08:16PM (#22023721)
> auto-update more than a thousand packages, praying my Python and other projects survive, just because I want a browser update

You may want to check out Nix. It's a package manager which isolates each program's dependencies; so you can have multiple versions of the same package.

> or a security fix

having a centralized repository like this helps in case a it's a library that needs a security fix, because you only need a single update to apply the fix to all applications. Applications that bundle their own deps (including Docker images) will need to publish their own update with the updated version of the lib.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by danieldk on Sunday January 12, 2020 @02:36AM (#22025047)
You may want to check out Nix. It's a package manager which isolates each program's dependencies; so you can have multiple versions of the same package.

In principle true, yes. But it comes with a cost. Even the nixpkgs Firefox maintainers are considering to only ship Firefox ESR starting with NixOS 20.03:

https://discourse.nixos.org/t/firefox-on-19-09-could-be-mark...

https://github.com/NixOS/nixpkgs/pull/72126

Re:OpenBSD won't update Firefox, advises users to switch to ESR by progval on Sunday January 12, 2020 @05:35AM (#22025587)
I won't blame them. Firefox is a huge piece of software, and is updating every month. It's a bit shitty of Mozilla to expect every single distribution (most of which are run by volunteers) to package all their new dependencies and check everything works every single month.
Re:OpenBSD won't update Firefox, advises users to switch to ESR by sitkack on Sunday January 12, 2020 @06:56AM (#22025873)
This is a problem the package maintainers and the distros have brought on themselves!

They put countless hours into stitching roadkill into a complex quilt and then scoff at users who complain on the rotting stench.

They split packages from the creators into multiple pieces to meet their own idiosyncratic aesthetics. Firefox and other pieces of complex software should reside entirely in its own hierarchy. I have been using Linux and FreeBSD since 1997, SunOS and OSF/1 before that, this is good as it gets folks.

The only hope is Nix, OSX, Qubes and folks that care about progress. Everyone else is building ships in bottles.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by okr on Sunday January 12, 2020 @07:48AM (#22026053)
But their 'idiosyncratic aesthetic' helps navigating. In the mozilla world, they know their aesthetics ('not invented here'), because its their everyday job and can always work hands on and naturally can be faster. While in the distribution world, where a lot of software comes together, its good that i can find everything in common/familiar places.

Not easy to find a good middle ground and still supporting progress.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by oefrha on Sunday January 12, 2020 @09:47AM (#22026473)
/Applications/Fiefox.app. Not that hard and not unfamiliar, really. (Not saying Linux distorts should adopt /Applications. My point is it’s not hard to have a consistent and self-contained experience, and AFAIK there are several competing bundle formats on Linux already.)
Re:OpenBSD won't update Firefox, advises users to switch to ESR by mapgrep on Sunday January 12, 2020 @07:47AM (#22026046)
Awesome. I’d add smartOS to that list. ++Qubes.

Although as far as package management in Qubes you’re still stuck with dnf and apt. But they’re pushing progress in other ways. (Are you able to run nix on qubes?)

Re:OpenBSD won't update Firefox, advises users to switch to ESR by tuananh on Sunday January 12, 2020 @08:49AM (#22026247)
i feel i could relate to another post on homepage today

https://news.ycombinator.com/item?id=22022466

Re:OpenBSD won't update Firefox, advises users to switch to ESR by jcelerier on Sunday January 12, 2020 @06:15AM (#22025719)
but you can just use Mozilla's official binary packages, which are tested to work with a specific set of libraries, and I think are built with higher optimization levels (O3/pgo) than what distros conservatively do (O2) because of cargo-culting early-2000 gentoo forums (that was the case a few years ago, not 100% sure it is still the case today as I could not find easily the current release flags).
Re:OpenBSD won't update Firefox, advises users to switch to ESR by progval on Sunday January 12, 2020 @06:49AM (#22025854)
Mozilla doesn't provide binary packages for all architectures and OSs supported by Nix/NixOS

Maintainers also sometimes need to patch software to conform to their distribution's norm. For example, Debian patches it to accept extensions installed with APT.

And I'm glad distribution maintainers always recompile software themselves, it helps making sure:

1. binaries are really made from the open source code (I know, it's not bullet-proof)

2. it's actually humanly possible to actually compile it from source (my pet peeve in this area is Kafka: it's used everywhere, but no one seems to know how to actually fully compile it from sources anymore)

Re:OpenBSD won't update Firefox, advises users to switch to ESR by danieldk on Sunday January 12, 2020 @10:44AM (#22026743)
I fully agree. It should be said that nixpkgs also provides the firefox-bin derivation, which is just want the grandparent suggested. But there is a lot of value in checking that software builds are actually reproducible from the sources.
Re:OpenBSD won't update Firefox, advises users to switch to ESR by BlueTemplar on Sunday January 12, 2020 @05:12PM (#22029908)
> Kafka

Name checks out...

Re:OpenBSD won't update Firefox, advises users to switch to ESR by rusk on Sunday January 12, 2020 @05:57AM (#22025655)
This sounds like ”move fast and break things” writ large, and a salutary lesson in the flaws of this approach.
Re:OpenBSD won't update Firefox, advises users to switch to ESR by l0b0 on Saturday January 11, 2020 @10:59PM (#22024372)
> You may want to check out Nix.

Nix is a fantastic concept, and I hope it takes over the world. But the NixOS packages are a mess. I tried it for a few months last year before giving up after several packages and even whole collections of packages became unusable even in the stable repository. The repository needs some serious reworking before Nix can really shine.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by zrm on Sunday January 12, 2020 @02:26AM (#22025019)
It's really trading one problem for a different one. The reason traditional distributions only package one version of a given library and make everything use that same version is so they only have to maintain one version of the library.

If you allow every application to choose its own version then they all choose a different one, which means someone then has to continue to maintain every different version of the library separately. Doing that isn't much if any of a reduction in workload compared with getting every application to use the version the distribution ships, and is much more likely to end up with a situation where dozens of versions of the same library exist and half of them are broken in some way.

The better solution is for libraries to only break compatibility between major versions. Then the packager can ship some suitably recent minor version for each major version of the library, at most two or three major versions are supported at any given time which keeps the maintenance overhead feasible, and every application can successfully link against one of those major versions or another.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by jcelerier on Sunday January 12, 2020 @06:19AM (#22025730)
> If you allow every application to choose its own version then they all choose a different one, which means someone then has to continue to maintain every different version of the library separately.

Well, no. Else software on macOS and Windows obviously wouldn't work, since those ship all their libraries along.

It does not matter to the users of my software that I use libraries versions X, Y, Z, what matters is that what they want to happen happens when they click the buttons. e.g. I generally use Qt - there are plenty of bugs, but what matters is that my use cases work, and it is my onus of developer to ensure it.

And it is so much more painful to ensure that it will work correctly without any regression and with best performance for every version across e.g. Qt 5.6 to 5.14, than to just ship Qt 5.14 myself built with only the features I want with all my use cases duly tested.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by zrm on Monday January 13, 2020 @09:57AM (#22034940)
> Well, no. Else software on macOS and Windows obviously wouldn't work, since those ship all their libraries along.

Not exactly. For the system libraries (e.g. the Windows crypto API) you effectively get one version for the whole system, and it works because the library maintainer (Microsoft) is diligent about maintaining backwards compatibility between versions. Whereas for applications that include their own copy of e.g. OpenSSL, that problem does occur there. When there is a vulnerability discovered in OpenSSL, every developer using it has to update their application instead of a library package maintainer doing it once, and if any application is no longer maintained (or just never updated to the latest version) it's now insecure indefinitely.

> And it is so much more painful to ensure that it will work correctly without any regression and with best performance for every version across e.g. Qt 5.6 to 5.14, than to just ship Qt 5.14 myself built with only the features I want with all my use cases duly tested.

You don't have to ensure it works with every version ever made, only the one the distribution ships.

This is made much easier if the library developer designates specific versions as stable and then stable distributions use those versions, because then working against the two or three actively maintained stable versions is all you need to work anywhere.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by jcelerier on Monday January 13, 2020 @04:19PM (#22038721)
> and it works because the library maintainer (Microsoft) is diligent about maintaining backwards compatibility between versions.

yet people have to ship microsoft DLLs left and right since behaviour sometimes still break. One breakage is enough to convince stakeholders to do that.

> When there is a vulnerability discovered in OpenSSL, every developer using it has to update their application instead of a library package maintainer doing it once, and if any application is no longer maintained (or just never updated to the latest version) it's now insecure indefinitely.

On the other hand, I had software who broke, as in, core features became unoperational due to openssl distro updates and changes of default policies. My users much prefer having working potentially unsafe software in the exceptional case where the software would connect to the network (eg reading a youtube stream in VLC or something like that) that non-working software.

> You don't have to ensure it works with every version ever made, only the one the distribution ships.

Which is "every version ever made" because people are still rocking Debian Wheezy or Ubuntu 12.04 and want to use my software

Re:OpenBSD won't update Firefox, advises users to switch to ESR by progval on Tuesday January 14, 2020 @01:28PM (#22047750)
> My users much prefer having working potentially unsafe software in the exceptional case where the software would connect to the network (eg reading a youtube stream in VLC or something like that) that non-working software.

Do they, though? Or are they just unaware of what "insecure" means?

Sure, if you frame it as "[technobabble about TLS certificates], click 'continue' to make the software work?", they'll chose the insecure-but-working option.

But if you frame it as "your Internet Service Provider, government, and possible third-parties may be notified you are watching this video, do you want to proceed?", some of them might think twice, depending on what country they live in and what the video is.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by avar on Sunday January 12, 2020 @03:18AM (#22025158)
It doesn't entail any of that. Traditional distributions like Debian allow you to install any number of library combinations, they just do so badly by requiring you to do so on different installations updated at different times.

Supporting the presence of multiple library combinations doesn't mean that you "support" all version combinations in the sense of supporting all combinations of their versions being used in the wild.

It just means when users upgrade they can do so gradually for some sets of packages at a time. You can emulate this on traditional distributions by having a single VM image you use for your browser, then cloning the image, updating packages, and using that one for your E-Mail etc.

Having a mechanism like this should mean less support is needed from the distribution, because system-wide breakages are less likely to occur.

You'll get the same bugs, but users can easily back out say an OpenSSL version with a security fix for the 5% of packages it breaks with, while retaining the fix for their browser & other high-risk packages.

For example, I currently can't upgrade my firefox version on Debian testing because it ">=" depends on a version of a couple of libraries that some 100-200 other packages on my system don't like.

In Debian testing this sort of thing happens occasionally and will get fixed sooner than later, but that it happens at all is just an emergent property of how the versions are managed. If I were to run the latest firefox with those new versions and not touch the other packages until they're recompiled both myself and the package maintainers would be exposed to fewer bugs, not less.

I'd get a bugfixed firefox today, and they wouldn't need to deal with bug reports about a broken upgrade, or firefox bugs in an older version users like me can't upgrade past simply because firefox happens to share the use of a popular OS library.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by zrm on Monday January 13, 2020 @10:28AM (#22035232)
> Supporting the presence of multiple library combinations doesn't mean that you "support" all version combinations in the sense of supporting all combinations of their versions being used in the wild.

It's not about combinations. It's about, there's a serious bug in the library and now there are 79 different actively used versions of it that need to be patched instead of 2, which means half of them never get fixed.

> You'll get the same bugs, but users can easily back out say an OpenSSL version with a security fix for the 5% of packages it breaks with, while retaining the fix for their browser & other high-risk packages.

You'll get the same bugs and then the 5% of packages a security update breaks are broken until they're fixed, which should happen promptly because broken packages should be very high priority. Is it really better in that short time for the other 5% of applications to "work" but be insecure and get your system compromised because the new vulnerability is being actively exploited?

The real solution is for sufficient testing to be done during the embargo period so that by the time the new version goes wide it doesn't actually break anything.

> For example, I currently can't upgrade my firefox version on Debian testing because it ">=" depends on a version of a couple of libraries that some 100-200 other packages on my system don't like.

Right, that's a problem. It's valid to need version >= 5.6 of some library, but something has gone wrong if some other package specifically needs version 5.5 -- version 5.6 should be able to satisfy that dependency. Or if it can't then "5.6" should be 6.0 and it should be possible to have 5.x and 6.x installed together, but that should happen only rarely so that at most two or three mutually incompatible versions are in active use at once.

In general the latest version should be able to satisfy applications expecting older versions and then you need only a suitably recent version and nothing else, and the lack of that is the real issue.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by avar on Monday January 13, 2020 @12:06PM (#22036276)
> It's not about combinations. It's about, there's a serious bug in the library and now there are 79 different actively used versions of it that need to be patched instead of 2, which means half of them never get fixed.

Yes I agree that would be a royal pain in the ass, i.e. running something like a Debian where each package would be the equivalent of a docker image with an individual maintainer who'd need to decide when they upgrade OpenSSL.

I'm saying you could have something like a Debian where the build infrastructure and package maintenance works exactly the same, your package is always built against the latest library versions.

But users get a NixOS-like experience where they can partially update their system, now with traditional OS package management an update of a common library & a full system-update are often in practice the same thing.

> Is it really better in that short time for the other 5% of applications to "work" but be insecure and get your system compromised because the new vulnerability is being actively exploited?

On the flip side is it really better that if you're using the other 95% of applications that your security fix is delayed because upstream is finding it a pain to rebuild the patched package for 5% of its users? That's realistically the alternative.

> [...]but that should happen only rarely so that at most two or three mutually incompatible versions are in active use at once[...]

The sum of differing versions in use among a distro's userbase is vastly larger than that, some of those users are deferring security updates because their distro makes upgrading an all-or-nothing experience.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by millettjon on Sunday January 12, 2020 @05:21AM (#22025537)
I've been using it for 2 years with very few problems.
Re:OpenBSD won't update Firefox, advises users to switch to ESR by jrockway on Sunday January 12, 2020 @03:27AM (#22025186)
Is this kind of like Ubuntu's "snap" thing? (I know snap involves cgroups, which aren't strictly necessary to give Firefox a different version of rust than everything else... but it seems widely deployed and easy to use, at least if you're on Ubuntu.)
Re:OpenBSD won't update Firefox, advises users to switch to ESR by xvilka on Sunday January 12, 2020 @12:23PM (#22027514)
Guix[1] also. It's written in Scheme but also solves the bootstrapping problem with minimal seed[2].

[1] http://guix.gnu.org/

[2] https://guix.gnu.org/manual/en/html_node/Reduced-Binary-Seed...