Not at all, given we’re running probably significantly different configurations. With the same configuration we’d get the same results, and NixOS never claimed to eliminate what is essentially packaging bugs related to runtime dependencies. KDE stuff (and especially anything Akonadi-related) right now needs a lot of plugin path environment variable mess to work with NixOS’s file structure because it loads a bunch of stuff at runtime from other packages, which can break in strange ways like this if you don’t add a specific package to your system packages for example, it’s definitely not ideal the way it is right now but it’s also pretty hard to get right.
That is clearly talking about build-time dependencies and the build process given the context (maybe the word “work” here is misleading though, also because some packages don’t even have parts that can “work” or “not work” like wallpaper packages). It is impossible to automatically ensure all runtime dependencies are met, because that would require analyzing what the program actually does. I can write you any number of Nix packages that will only run on my computer (simplest case is because they load a file from a path from my user directory or something), but the thing that Nix ensures is that you can reproduce the package contents on your system as well.
That said, in a lot of cases, nixpkgs does actually (manually) patch runtime dependencies to use store paths which sets up that dependency relation, but with KDE PIM stuff this would lead to dependency cycles if done the typical way, for example KMail depends on Akonadi to build, but Akonadi loads plugin files from KMail when it is installed. This is not something you can do, so to resolve that cycle, you need another package which depends on both and links them together so they can see each other at runtime. Right now the entire NixOS configuration (or rather, whatever the environment.systemPackages option affects) assumes the role of this third package, but it would be nice if was done in in a more self-contained way, so that you could also reasonably use this stuff outside of NixOS.
Gone are the illusions of NixOS’s purity and banishment of “works on my computer”.
Anti Commercial-AI license
Not at all, given we’re running probably significantly different configurations. With the same configuration we’d get the same results, and NixOS never claimed to eliminate what is essentially packaging bugs related to runtime dependencies. KDE stuff (and especially anything Akonadi-related) right now needs a lot of plugin path environment variable mess to work with NixOS’s file structure because it loads a bunch of stuff at runtime from other packages, which can break in strange ways like this if you don’t add a specific package to your system packages for example, it’s definitely not ideal the way it is right now but it’s also pretty hard to get right.
The same argument can be made for any OS. Same packages, same hardware, same configuration, and probably it would be the same.
https://nixos.org/
I saw the work k900 and other contributors put into KDE and Qt stuff. It’s admirable. I’m not saying it’s their fault things are the way they are.
Anti Commercial-AI license
Only if we’re talking about 1:1 disk image clones or installing stuff on a fresh system.
That is clearly talking about build-time dependencies and the build process given the context (maybe the word “work” here is misleading though, also because some packages don’t even have parts that can “work” or “not work” like wallpaper packages). It is impossible to automatically ensure all runtime dependencies are met, because that would require analyzing what the program actually does. I can write you any number of Nix packages that will only run on my computer (simplest case is because they load a file from a path from my user directory or something), but the thing that Nix ensures is that you can reproduce the package contents on your system as well.
That said, in a lot of cases, nixpkgs does actually (manually) patch runtime dependencies to use store paths which sets up that dependency relation, but with KDE PIM stuff this would lead to dependency cycles if done the typical way, for example KMail depends on Akonadi to build, but Akonadi loads plugin files from KMail when it is installed. This is not something you can do, so to resolve that cycle, you need another package which depends on both and links them together so they can see each other at runtime. Right now the entire NixOS configuration (or rather, whatever the environment.systemPackages option affects) assumes the role of this third package, but it would be nice if was done in in a more self-contained way, so that you could also reasonably use this stuff outside of NixOS.