biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / networking / dogdns / default.nix
blob397e87f23a10e709777afe3193ecfc7151a59b6d
1 { lib
2 , rustPlatform
3 , fetchFromGitHub
4 , installShellFiles
5 , stdenv
6 , pkg-config
7 , openssl
8 , just
9 , pandoc
10 , Security
13 rustPlatform.buildRustPackage rec {
14   pname = "dogdns";
15   version = "unstable-2021-10-07";
17   src = fetchFromGitHub {
18     owner = "ogham";
19     repo = "dog";
20     rev = "721440b12ef01a812abe5dc6ced69af6e221fad5";
21     sha256 = "sha256-y3T0vXg7631FZ4bzcbQjz3Buui/DFxh9LG8BZWwynp0=";
22   };
24   patches = [
25     # remove date info to make the build reproducible
26     # remove commit hash to avoid dependency on git and the need to keep `.git`
27     ./remove-date-info.patch
28   ];
30   nativeBuildInputs = [ installShellFiles just pandoc ]
31     ++ lib.optionals stdenv.hostPlatform.isLinux [ pkg-config ];
32   buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ openssl ]
33     ++ lib.optionals stdenv.hostPlatform.isDarwin [ Security ];
35   outputs = [ "out" "man" ];
37   cargoLock = {
38     lockFile = ./Cargo.lock;
39     outputHashes = {
40       "mutagen-0.2.0" = "sha256-FnSeNI9lAcxonRFTu7wnP/M/d5UbMzSZ97w+mUqoEg8=";
41     };
42   };
44   dontUseJustBuild = true;
45   dontUseJustCheck = true;
46   dontUseJustInstall = true;
48   postPatch = ''
49     # update Cargo.lock to work with openssl 3
50     ln -sf ${./Cargo.lock} Cargo.lock
51   '';
53   postBuild = ''
54     just man
55   '';
57   postInstall = ''
58     installShellCompletion completions/dog.{bash,fish,zsh}
59     installManPage ./target/man/*.1
60   '';
62   meta = with lib; {
63     description = "Command-line DNS client";
64     homepage = "https://dns.lookup.dog";
65     license = licenses.eupl12;
66     maintainers = with maintainers; [ figsoda ];
67     mainProgram = "dog";
68   };