nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildDotnetModule,
4 fetchFromGitHub,
5 dotnetCorePackages,
6 technitium-dns-server-library,
7 libmsquic,
8 nixosTests,
9 nix-update-script,
10}:
11buildDotnetModule rec {
12 pname = "technitium-dns-server";
13 version = "14.3.0";
14
15 src = fetchFromGitHub {
16 owner = "TechnitiumSoftware";
17 repo = "DnsServer";
18 tag = "v${version}";
19 hash = "sha256-NUH1gn8kdtMBKC5+XEqqTGySNMCDFGF5yy6NbGeRvvY=";
20 name = "${pname}-${version}";
21 };
22
23 dotnet-sdk = dotnetCorePackages.sdk_9_0;
24 dotnet-runtime = dotnetCorePackages.aspnetcore_9_0;
25
26 nugetDeps = ./nuget-deps.json;
27
28 projectFile = [ "DnsServerApp/DnsServerApp.csproj" ];
29
30 # move dependencies from TechnitiumLibrary to the expected directory
31 preBuild = ''
32 mkdir -p ../TechnitiumLibrary/bin
33 cp -r ${technitium-dns-server-library}/lib/${technitium-dns-server-library.pname}/* ../TechnitiumLibrary/bin/
34 '';
35
36 postFixup = ''
37 mv $out/bin/DnsServerApp $out/bin/technitium-dns-server
38 '';
39
40 runtimeDeps = [
41 libmsquic
42 ];
43
44 passthru.tests = {
45 inherit (nixosTests) technitium-dns-server;
46 };
47
48 passthru.updateScript = nix-update-script { };
49
50 meta = {
51 changelog = "https://github.com/TechnitiumSoftware/DnsServer/blob/master/CHANGELOG.md";
52 description = "Authorative and Recursive DNS server for Privacy and Security";
53 homepage = "https://github.com/TechnitiumSoftware/DnsServer";
54 license = lib.licenses.gpl3Only;
55 mainProgram = "technitium-dns-server";
56 maintainers = with lib.maintainers; [ fabianrig ];
57 platforms = lib.platforms.linux;
58 };
59}