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