Closed rldp closed 2 years ago
so nix-shell '<nixpkgs>'
is a special syntax, particularly the <>
is telling nix to look in the special NIX_PATH
env var for an entry called nixpkgs
and evaluate the nix expression located at that path (by default, it looks for a default.nix
if pointing at a directory). The -A something
telling Nix to evaluate the attribute something
(assuming the given expression is an attribute set).
What is happening is that the <nixpkgs>
argument here on your local system is probably older that what is in the nixpkgs you linked and still using gtk 2 for the pan package. You can easily confirm this by exploring that path on your system.
thanks for the explanation (who doesn't like a "special syntax"!).
So I looked at my $NIX_PATH. It has a nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos.
I then compared pkgs/applications/networking/newsreaders/pan/default.nix with the one at https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/applications/networking/newsreaders/pan/default.nix, and find no difference.
So the mystery of my error remains.
But mostly, I feel some disappointment over the "broken" promise. Quoting from the web page: "the following command gets all dependencies of the Pan newsreader, as described by its Nix expression" and "Nix packages are reproducible and have complete dependency specifications".
Now either it works, or it doesn't. As you explained, "terms and conditions apply", but the page shows no such caveats. If the command "nix-shell '
on my learning path, I try the examples as I come across them.
In Learn / How Nix Works, under "Managing build environments", the example with the pan newsreader does not actually work as presented: it fails on the configure step.
After running
I get the error
Looking at PKG_CONFIG_PATH, the only gtk+ present is
According to the pan default.nix, it should use gtk+3, so I don't understand what is happening here.