Skip to content

Instantly share code, notes, and snippets.

@est31
Last active September 22, 2021 22:59
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save est31/005f17628d55fda27b401d3c994233a7 to your computer and use it in GitHub Desktop.
Save est31/005f17628d55fda27b401d3c994233a7 to your computer and use it in GitHub Desktop.

Here is a laundry list of issues I have with Nix/NixOs:

  1. No concept of source packages. There is only a binary cache (hydra) and the derivations in nixpkgs.
  2. Why the hell is llvm 7 (clang, lld, etc) from September 2018 the default on nix 20.03? LLVM 10 has been out when it was released and at least llvm 9 should have been the default.
  3. Updates of dynamic libraries triggers updates of everything that depends on them. This is "pinned-ness" taken too far IMO. Rather just keep old headers of dynamic libraries around and compile packages against those instead of newest headers available. Increase the minimum versions when a new nix os release is made. To give a scale of the problem, this update of nixpkgs caused updates to countless packages and downloads of 943 MB of new packages (3GB uncompressed on disk). It's been only 5 days between I ran updates.
  4. Old stuff is purged too quickly from hydra. Debian unstable has an archive reaching as far back as 2005. Something like this would be great for hydra too.
  5. Many nixpkgs packages aren't actually built from source but only binaries are being downloaded and patchelf is run. This is more convenient than downloading the binary yourself but it should be reduced. And you should be able to turn off support similar to how you can turn off support for proprietary software because downloading binaries infringes on user freedom to modify (patching the source might be more difficult now as you have to figure out how to compile it).
  6. Default vimrc has mouse=a enabled which breaks middle click paste. Admittedly this is a matter of taste.
  7. Niche character means I don't know how to compile software like e.g. servo, and maybe it's not even supported without patching the source. IDK. Also, due to niche character there are no shell.nix files that you can use to compile the thing like there are sudo apt install instructions for say Ubuntu/Debian.
  8. ping6 doesn't work unless you are root (works on Debian).
  9. No installation assistant. Had to install manually. The guide was simple enough to be followed but it's offputting to people new to GNU.
  10. Originally wanted to do installation with live cd for 19.09, but X didn't want to start. Had to download 20.03 cli beta installer. Then it worked fortunately :).
  11. No Wayland support for KDE. issue.
  12. When installing both Chromium and Firefox, both ask at startup to be set default browser, but you actually can't set any of the two.
  13. WTF just WTF. There is a fixed version of patchelf out but not in 20.03 yet. WTF!!
  14. With texlive full installed, I have to recompile it when updating even though I changed nothing about it (issue). Fixed on Nix OS master, still present on 20.03 and older.
  15. Middle click clipboard / klipper settings are not respected
  16. Nix OS wasn't able to print with my IPP network printer. I'd been able to set up the same printer Ubuntu netbook. Android phone works too. But the Laptop doesn't work.
  17. copySystemConfiguration is disabled by default. I feel that this default is not friendly to beginners.

Positive things:

  1. Dev tool story is top notch. Contains stuff not packaged in Debian/Ubuntu like tokei, rustup, etc.
  2. No cruft of system files accumulating as nix manages everything.
  3. No pile of default crap installed with DE like in kubuntu, ubuntu, etc.
  4. Nixpkgs is managed via the modern tool git, giving good transparency over what changed.
  5. Generations allow easy rollback.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment