Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 stdenv,
4 buildDotnetModule,
5 fetchFromGitHub,
6 dotnetCorePackages,
7 openssl,
8 mono,
9 nixosTests,
10}:
11
12buildDotnetModule rec {
13 pname = "jackett";
14 version = "0.22.2196";
15
16 src = fetchFromGitHub {
17 owner = pname;
18 repo = pname;
19 rev = "v${version}";
20 hash = "sha512-gyiCv8fXGKdzD9RvbMG0U1XAkacEjYQlmcpcQQ6tRGvbVqjyCPesBjRyDDWz8N//nnDHpZ2A5G5TMv/RzHp71w==";
21 };
22
23 projectFile = "src/Jackett.Server/Jackett.Server.csproj";
24 nugetDeps = ./deps.json;
25
26 dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
27 dotnet-sdk = dotnetCorePackages.sdk_8_0;
28
29 dotnetInstallFlags = [
30 "--framework"
31 "net8.0"
32 ];
33
34 postPatch = ''
35 substituteInPlace ${projectFile} ${testProjectFile} \
36 --replace-fail '<TargetFrameworks>net8.0;net462</' '<TargetFrameworks>net8.0</'
37 '';
38
39 runtimeDeps = [ openssl ];
40
41 doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64); # mono is not available on aarch64-darwin
42 nativeCheckInputs = [ mono ];
43 testProjectFile = "src/Jackett.Test/Jackett.Test.csproj";
44
45 postFixup = ''
46 # For compatibility
47 ln -s $out/bin/jackett $out/bin/Jackett || :
48 ln -s $out/bin/Jackett $out/bin/jackett || :
49 '';
50 passthru.updateScript = ./updater.sh;
51
52 passthru.tests = { inherit (nixosTests) jackett; };
53
54 meta = with lib; {
55 description = "API Support for your favorite torrent trackers";
56 mainProgram = "jackett";
57 homepage = "https://github.com/Jackett/Jackett/";
58 changelog = "https://github.com/Jackett/Jackett/releases/tag/v${version}";
59 license = licenses.gpl2Only;
60 maintainers = with maintainers; [
61 edwtjo
62 nyanloutre
63 purcell
64 ];
65 };
66}