1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 buildDotnetModule,
6 dotnetCorePackages,
7 openssl,
8 zlib,
9 nix-update-script,
10}:
11
12buildDotnetModule rec {
13 pname = "pupdate";
14 version = "3.20.0";
15
16 src = fetchFromGitHub {
17 owner = "mattpannella";
18 repo = "pupdate";
19 rev = "${version}";
20 hash = "sha256-kdxqG1Vw6jRT/YyRLi60APpayYyLG73KqAFga8N9G2A=";
21 };
22
23 buildInputs = [
24 (lib.getLib stdenv.cc.cc)
25 zlib
26 openssl
27 ];
28
29 # See https://github.com/NixOS/nixpkgs/pull/196648/commits/0fb17c04fe34ac45247d35a1e4e0521652d9c494
30 patches = [ ./add-runtime-identifier.patch ];
31 postPatch = ''
32 substituteInPlace pupdate.csproj \
33 --replace @RuntimeIdentifier@ "${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}"
34 '';
35
36 projectFile = "pupdate.csproj";
37
38 nugetDeps = ./deps.json;
39
40 selfContainedBuild = true;
41
42 executables = [ "pupdate" ];
43
44 dotnetFlags = [
45 "-p:PackageRuntime=${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system} -p:TrimMode=partial"
46 ];
47
48 dotnet-sdk = dotnetCorePackages.sdk_8_0;
49 dotnet-runtime = dotnetCorePackages.runtime_8_0;
50
51 passthru = {
52 updateScript = nix-update-script { };
53 };
54
55 meta = with lib; {
56 homepage = "https://github.com/mattpannella/pupdate";
57 description = "Pupdate - A thing for updating your Analogue Pocket";
58 license = licenses.mit;
59 platforms = platforms.linux;
60 maintainers = with maintainers; [ p-rintz ];
61 mainProgram = "pupdate";
62 };
63}