News for hackers. Stuff that matters.
Re:Introduction to Immutable Linux Systems by Zuiii on Monday September 18, 2023 @12:25AM (#37552228)
The problem I had with flatpak and the immutable approach in general is that I can't modify them in ways that aren't supported by the developer. For example, I use decsync to sync my calandars but as far as I can tell, it's impossible to add the decsync plugin to the evolution flatpak.

Until these immutable systems support the stacking of custom overlay filesystems as a first class feature^1, people will continue to run mutable systems.

1: to account for use cases the developer can't or won't support.

Re:Introduction to Immutable Linux Systems by rebeccaskinner on Monday September 18, 2023 @12:54AM (#37552380)
NixOS gives you precisely this kind of control- through a few different mechanisms. Some packages in nixpkgs, and most NixOS and home manager modules, expose a lot of configuration options where you can configure various plugins, add extra packages, etc. Nix also lets you provide overlays and overrides to add custom packages (new packages, or customized versions of existing packages) and gives you the option of changing parts of a package. If none of that is sufficient, you can even supply your own patches to the code, or build the package from your own fork of the upstream repository.

In practice this is one of my favorite things about nix. I find that I contribute much more to open source in general because it’s so easy to say “replace this dependency with my version when you build this package”.

Re:Introduction to Immutable Linux Systems by anotherhue on Monday September 18, 2023 @04:40AM (#37553723)
Would you have any examples of this to hand? I've been trying to find a clean way to share an altered qemu derivation that isn't just me copying and maintaining the qemu/default.nix but so far that has been the easiest.
Re:Introduction to Immutable Linux Systems by chpatrick on Monday September 18, 2023 @07:49AM (#37554945)
override/overrideAttrs/overlays
Re:Introduction to Immutable Linux Systems by rebeccaskinner on Monday September 18, 2023 @11:47AM (#37557846)
This post is a bit old now, and might not be entirely what you were looking for, but I wrote about getting my personal blog building with nix, including an example of using an overlay and patching and upstream dependency:

https://rebeccaskinner.net/posts/2021-06-06-nixifying-a-haky...

Re:Introduction to Immutable Linux Systems by NavinF on Monday September 18, 2023 @01:33AM (#37552565)
> add the decsync plugin to the evolution flatpak

This sort of thing is very common with GUI software on Linux. Outside of this bubble, most software comes with batteries included. Eg Solidworks never makes me download optional dependencies, but FreeCAD made me do it literally every 15 minutes as I move to the next step in a CAD/CAM/sim/render workflow.

Also see https://www.joelonsoftware.com/2001/03/23/strategy-letter-iv...

> it’s never the same 20%. Everybody uses a different set of features. In the last 10 years I have probably heard of dozens of companies who, determined not to learn from each other, tried to release “lite” word processors that only implement 20% of the features. This story is as old as the PC. Most of the time, what happens is that they give their program to a journalist to review, and the journalist reviews it by writing their review using the new word processor, and then the journalist tries to find the “word count” feature which they need because most journalists have precise word count requirements, and it’s not there, because it’s in the “80% that nobody uses,” and the journalist ends up writing a story that attempts to claim simultaneously that lite programs are good, bloat is bad, and I can’t use this damn thing ’cause it won’t count my words. If I had a dollar for every time this has happened I would be very happy.

Re:Introduction to Immutable Linux Systems by dfee on Monday September 18, 2023 @01:55AM (#37552700)
Great link. However, I don’t know how Joel could see a newcomer can challenge an incumbent, short of reimplementing all features.

Certainly, Google Sheets didn’t do that. Nor has airtable (valuation considerations aside, it has seen some adoption).

In a new category, or a new market, there is no benchmark. So that’s the east case. But sometimes new products do displace old products, and sometimes just by distribution or pricing at the cost of features.

So how do you reconcile that, Joel?!

Re:Introduction to Immutable Linux Systems by NavinF on Monday September 18, 2023 @02:15AM (#37552837)
Fair point, but Sheets hasn't replaced Excel. Sheets only competes in the in-browser market and Sheets by itself does not make money for Google. If you go back a few years, Microsoft was the 80%-er that lacked features (notably real-time collaboration) whereas Google offered an entire suite of software with free real-time collaboration. People pay $6/mo to get the entire suite for their company. Gsuite is not comparable to the "lite" word processors that Joel was talking about or the open-source tools like FreeCAD that I was talking about. Both are objectively worse than their paid counterparts and extremely limited in functionality.

Also worth mentioning that Sheets has competition in this space now that in-browser 365 Excel is free. Tho neither is feature-complete vs desktop Excel

Re:Introduction to Immutable Linux Systems by ncts on Monday September 18, 2023 @03:00AM (#37553137)
Outside of this bubble, you see vim plugins, VSCode plugins, JetBrains IDE plugins… Photoshop plugins, Premiere plugins…
Re:Introduction to Immutable Linux Systems by psd1 on Monday September 18, 2023 @07:46AM (#37554918)
"What the hell, Steve, you had all week, now the fucking Bugle has scooped us."

"Sorry boss, been sorting out my init.el"

Re:Introduction to Immutable Linux Systems by Tigress8780 on Monday September 18, 2023 @04:14AM (#37553596)
Well, it's never the same 20%, which is precisely why we have plugins and extensions even outside of the Linux GUI bubble. This include IDEs, browsers, office suites, media production software (e.g. VST), and of course engineering software. For a complex software product, it is never possible to include batteries for everyone.

FreeCAD might not come with enough battery to power a full workflow, but I have also seen entire engineering firm not able to work without a particular AutoCAD plugin.

Re:Introduction to Immutable Linux Systems by bandrami on Monday September 18, 2023 @01:47AM (#37552656)
> stacking of custom overlay filesystems as a first class feature

At that point why not just use a mutable system? This reminds me of how a decade ago everybody rushed to move to nosql and then immediately reinvented schemae in their projects.

Re:Introduction to Immutable Linux Systems by eru on Monday September 18, 2023 @06:47AM (#37554513)
You'd want a mutable system that still supports snapshots. And also that uses mutation very sparingly.

Compare Haskell: both Haskell and C support both mutable variables and constant ones. But the ecosystems and idioms are very different.

Re:Introduction to Immutable Linux Systems by vetinari on Monday September 18, 2023 @03:10AM (#37553217)
You can add plugins to applications in flatpak; package these plugins as extensions.

How it is done can be seen with OBS: flathub has several OBS plugins available (com.obsproject.Studio.Plugin.*).

Re:Introduction to Immutable Linux Systems by bandrami on Monday September 18, 2023 @04:38AM (#37553717)
On the audio production side of things it's actually pretty good. The selection is pretty comprehensive and the jsons on github are simple and clear enough that you can build your own for any they missed. They're versioned with the runtime so there's the usual September problem of program A having updated while program B hasn't yet, but that's the nature of the beast.

A problem that's less well-solved is situations like Cantor, where a single application is a front-end for multiple executables. To get it to actually work you'd have to package Scilab, Sage, Maxima, Octave, R, and Julia in the flatpak itself, and these are non-trivial programs to package. There are workarounds with flatpak-spawn, but at that point why not just install the application natively? (I think the "right" answer is to set up a dbus service for like "system-octave" or whatever and have a separately flatpak'ed interpreter register it, but as aesthetically pleasing as this solution is it doesn't seem to have induced me or anybody else to actually do it...)