this post was submitted on 25 Jun 2023
13 points (100.0% liked)

nixos

1262 readers
3 users here now

All about NixOS - https://nixos.org/

founded 4 years ago
 

I'm new to Nix and wanted to get my feet wet by using the Nix package manager. However, I wasn't sure how these packages were made. Are these packaged by the community? Who do I need to "trust" when installing these packages? In general, I was looking for info on how nix packages are made and maintained.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 6 points 1 year ago (1 children)

Trust is a broad term. If you're paranoid, find the package you care about here, and read every line:

https://github.com/NixOS/nixpkgs

If you're slightly less paranoid, check the git blame logs for anyone that's touched a package you care about. If you trust all of them, then you're good.

If you're less paranoid than that, assume that someone reasonable is in charge of that repo. You'll get warnings about insecure packages. I've had to Ok a few insecure packages in my configuration.nix, because I assume the packagers are reasonable people. I may yet find out I've made a mistake.

Broadly speaking, I think it's the same model as any other distro. Debian for example has volunteers that package stuff. You can go through the same process above and decide how paranoid you want to be for that as well.

[–] [email protected] 3 points 1 year ago (2 children)

How are packages marked as insecure? I assume that's from some sort of automatic build process? Is that done in Hydra (https://hydra.nixos.org/)? Or is that from manual, or a lack of manual review?

[–] [email protected] 4 points 1 year ago (1 children)

I'll be honest, I have no idea. Sometimes, I get nagged that a package is insecure, and it seems reasonable like an old version of Electron, and then I just sigh and add it to my list of packages to ignore that warning on.

[–] [email protected] 2 points 1 year ago

I didn't find anything concrete, but it seems that a package is automatically marked insecure if it has a dependency that has a known CVE. I wonder how that is done.

[–] [email protected] 2 points 1 year ago

Manually.

There have been efforts to automate this partially but they've stalled.