-
-
Notifications
You must be signed in to change notification settings - Fork 14
NPV 162
Philip Taron edited this page Feb 16, 2026
·
1 revision
New top-level packages defined with callPackage and an empty second argument ({ }) in all-packages.nix should instead be placed in pkgs/by-name. Since no custom arguments are needed, the auto-calling mechanism can handle it entirely.
Attribute `pkgs.{package_name}` is a new top-level package using `pkgs.callPackage {call_package_arg} { /* ... */ }`.
Please define it in {relative_package_file} instead.
See `pkgs/by-name/README.md` for more details.
Since the second `callPackage` argument is `{ }`, no manual `callPackage` in {file} is needed anymore.
In pkgs/top-level/all-packages.nix:
self: super: {
new1 = self.callPackage ({ someDrv }: someDrv) { };
}The error is:
Attribute `pkgs.new1` is a new top-level package using `pkgs.callPackage ... { /* ... */ }`.
Please define it in pkgs/by-name/ne/new1/package.nix instead.
See `pkgs/by-name/README.md` for more details.
Since the second `callPackage` argument is `{ }`, no manual `callPackage` in pkgs/top-level/all-packages.nix is needed anymore.
- Create the package directory:
pkgs/by-name/ne/new1/ - Move the package expression into
pkgs/by-name/ne/new1/package.nix - Remove the manual
callPackagedefinition fromall-packages.nix