Missing tools in bind/dig package

Hi,
i’m playing arround with kea - bind9 and stumbling across the problem that some tools like tsig-keygen or rndc are missing.
Is there a way to get them? Package search suggests to use dig - but the tools are missing anyhow…
suggestions? ask the maintainer?
thanks - Johannes

dig is an alias for bind.dnsutils apparently with dnsutils being a package output. Search suggests dig.out which is bind.dnsutils.out and effectively the out output of the bind derivation.

In other words, bind is the package you’re looking for:

❯ ~/Projects/nixpkgs-hack master → ls -lah $(nix-build -A bind)/bin/
Permissions Size User Date Modified Name
.r-xr-xr-x   16k root  1 Jan  1970  arpaname
.r-xr-xr-x   30k root  1 Jan  1970  ddns-confgen
.r-xr-xr-x   62k root  1 Jan  1970  dnssec-cds
.r-xr-xr-x   42k root  1 Jan  1970  dnssec-dsfromkey
.r-xr-xr-x   42k root  1 Jan  1970  dnssec-importkey
.r-xr-xr-x   49k root  1 Jan  1970  dnssec-keyfromlabel
.r-xr-xr-x   54k root  1 Jan  1970  dnssec-keygen
.r-xr-xr-x   40k root  1 Jan  1970  dnssec-revoke
.r-xr-xr-x   49k root  1 Jan  1970  dnssec-settime
.r-xr-xr-x  113k root  1 Jan  1970  dnssec-signzone
.r-xr-xr-x   41k root  1 Jan  1970  dnssec-verify
.r-xr-xr-x   60k root  1 Jan  1970  mdig
.r-xr-xr-x  603k root  1 Jan  1970  named
.r-xr-xr-x   45k root  1 Jan  1970  named-checkconf
.r-xr-xr-x   41k root  1 Jan  1970  named-checkzone
.r-xr-xr-x   41k root  1 Jan  1970  named-compilezone
.r-xr-xr-x   17k root  1 Jan  1970  named-journalprint
.r-xr-xr-x   22k root  1 Jan  1970  named-rrchecker
.r-xr-xr-x   17k root  1 Jan  1970  nsec3hash
.r-xr-xr-x   46k root  1 Jan  1970  rndc
.r-xr-xr-x   26k root  1 Jan  1970  rndc-confgen
.r-xr-xr-x   30k root  1 Jan  1970  tsig-keygen

That’s an interesting bug you’ve found there. Do you want to file a bugreport for the package search?

Confusingly even nix-locate reports dig.out as the location for rndc

Yes, that’s what I meant above with bug.

dig is technically the bind derivation, but the pkgs.dig points to a different output of pkgs.bind.

sure - doesn’t filed any yet. github and then create an issue? but i’m rather unsure as howto describe the problem besides the missing binarys.

@Johannes which package search are we talking about specifically?

I.e. I used nix-index/nix-locate, but depending on what you used, it might be specific to this package or a larger problem.

Hi,
my problem is easy reproduced:
nix-shell -p bind
Then the described tools are missing:

some tools like tsig-keygen or rndc are missing

As i have half-hearted understood - the issue at hand may be bigger as this. Because it looks like a recursion option in the nix-interpreter may be the issue (but correct me if understand the explanation wrongly)

Confusingly even nix-locate reports dig.out as the location for rndc

nix-locate miss reports the location of eg tsig-keygen.

 ➜ nix-locate tsig-keygen
dig.out                                          30,104 x /nix/store/9pzyhirm46wckr2d6pxfd337qjsxv3jg-bind-9.18.28/bin/tsig-keygen
dig.man                                             988 r /nix/store/pycnp82jf2cm3pbkj1ld88s93qcwlnkq-bind-9.18.28-man/share/man/man8/tsig-keygen.8.gz

nix-locate miss reports the location of eg tsig-keygen.

Yes, this was brought up above already. I even have a theory on what exactly is wrong here.

Then the described tools are missing:

I think there’s a misunderstanding: nix-shell -p bind does deliver the tools in question.

@Johannes Which package search did you use? I can file a bug there then.

ah. ok - The binaries are just not executable and as such not in the “Path”… I didn’t come to the idea to find the binaries. My historical linux knowledge with locate wasn’t working… I’ve used bind.

❯ ~ → nix-shell -p bind                         

[nix-shell:~]$ which tsig-keygen
/nix/store/5nsk85gf2bvj87kf3frg1h7ipcgqynli-bind-9.18.28/bin/tsig-keygen

[nix-shell:~]$ tsig-keygen
key "tsig-key" {
	algorithm hmac-sha256;
	secret "pVf6vt7McqtHuUasMTZXsvHAYoJc2lI+BfmPic7Tl40=";
};

what nixpkgs rev are you on?


Also, which package search did you use? Would still be interested in reporting that bug.

well… see this way it works today (yesterday not btw) … but when i try to put it in my systempackages:

environment.systemPackages = with pkgs; [
… dig …
];

Then this happens

➜ ~ tsig-keygen
The program ‘tsig-keygen’ is not in your PATH. You can make it available in an
ephemeral shell by typing:
nix-shell -p dig
➜ ~ which tsig-keygen
tsig-keygen not found

awkward… also i thought by

services.bind.enable = true;

this package should be installed. But maybe i’m just blind guessing.

As was said like 4 times above, the package you need to use is bind, not dig.

yep - thats it… thanks. did not read that properly.