Artturin

Joined 2 April 2024
Revision as of 00:24, 3 April 2025 by Artturin (talk | contribs) (Why is callPackage used?: Reply)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Latest comment: 3 April by Artturin in topic Why is callPackage used?

NS-3

I saw you use NS-3 with nixos yourself.

You got a nix config to make a build work?

For me it doesn't find packages like eigen, doxygen, sqlite eventhough they are installed (sqlite3 -version f.e. works).

Would love catching up with you noel@huibers.io for email contact. Noel (talk) 16:50, 8 November 2024 (UTC)Reply

I don't use it, You can override the package to enable the various options https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/science/networking/ns-3/default.nix or overrideAttrs to add eigen
Dunno about sqlite, maybe you need to include it in your own build, if you just have the package in your systemPackages it won't have the dev output and so no libraries
the package itself finds sqlite https://hydra.nixos.org/build/279506411/nixlog/2 Artturin (talk) 17:42, 21 November 2024 (UTC)Reply

Why is callPackage used?

https://wiki.nixos.org/w/index.php?title=Rust&diff=prev&oldid=18191 Axka (talk) 23:39, 2 April 2025 (UTC)Reply

Using packages directly from `pkgs` will not work properly with cross-compilation, instead the packages should be gotten from `pkgs.__splicedPackages` (packages will have `__spliced` attr) which allows stdenv to pick the correct offset dependency for the dependency attributes. `callPackage` gets packages from `__splicedPackages` Artturin (talk) 23:44, 2 April 2025 (UTC)Reply
I always thought it was weird that packages were supposed to have __spliced attrs, but I never found them. Could you add what you said on the wiki page? Axka (talk) 00:11, 3 April 2025 (UTC)Reply
Cross internals don't need to be explained on the page, `callPackage` should always be used.
If you want to see `__spliced` then take a look at `pkgsCross.aarch64-multiplatform.__splicedPackages.bash.__spliced`. They're only added when cross-compiling. Also take a look at the `make-derivation.nix` file in nixpkgs to see how `__spliced` are used. `splice.nix` for how splicing works Artturin (talk) 00:24, 3 April 2025 (UTC)Reply