preload: init at 0.6.4
[NixPkgs.git] / pkgs / by-name / li / libation / package.nix
blob9ba77b00469ddbf8272d67edada48a6f34ad37b5
1 { lib
2 , stdenv
3 , buildDotnetModule
4 , fetchFromGitHub
5 , dotnetCorePackages
6 , wrapGAppsHook
8 , libX11
9 , libICE
10 , libSM
11 , libXi
12 , libXcursor
13 , libXext
14 , libXrandr
15 , fontconfig
16 , glew
17 , gtk3
20 buildDotnetModule rec {
21   pname = "libation";
22   version = "11.1.0";
24   src = fetchFromGitHub {
25     owner = "rmcrackan";
26     repo = "Libation";
27     rev = "v${version}";
28     hash = "sha256-NxG1H8lj+aBpgKj03CDpX/tLT0SxDS3pnZGQ2ultBnQ=";
29   };
31   sourceRoot = "${src.name}/Source";
33   dotnet-sdk = dotnetCorePackages.sdk_7_0;
34   dotnet-runtime = dotnetCorePackages.runtime_7_0;
36   nugetDeps = ./deps.nix;
38   dotnetFlags = [ "-p:PublishReadyToRun=false" ];
40   projectFile = [
41     "LibationAvalonia/LibationAvalonia.csproj"
42     "LibationCli/LibationCli.csproj"
43     "HangoverAvalonia/HangoverAvalonia.csproj"
44   ];
46   nativeBuildInputs = [ wrapGAppsHook ];
48   runtimeDeps = [
49     # For Avalonia UI
50     libX11
51     libICE
52     libSM
53     libXi
54     libXcursor
55     libXext
56     libXrandr
57     fontconfig
58     glew
59     # For file dialogs
60     gtk3
61   ];
63   postInstall = ''
64     install -Dm644 LoadByOS/LinuxConfigApp/libation_glass.svg $out/share/icons/hicolor/scalable/apps/${pname}.svg
65     install -Dm644 LoadByOS/LinuxConfigApp/Libation.desktop $out/share/applications/${pname}.desktop
66     substituteInPlace $out/share/applications/${pname}.desktop \
67         --replace "/usr/bin/libation" "${meta.mainProgram}"
68   '';
70   # wrap manually, because we need lower case excutables
71   dontDotnetFixup = true;
73   preFixup = ''
74     # remove binaries for other platform, like upstream does
75     pushd $out/lib/${pname}
76     rm -f *.x86.dll *.x64.dll
77     ${lib.optionalString (stdenv.system != "x86_64-linux") "rm -f *.x64.so"}
78     ${lib.optionalString (stdenv.system != "aarch64-linux") "rm -f *.arm64.so"}
79     ${lib.optionalString (stdenv.system != "x86_64-darwin") "rm -f *.x64.dylib"}
80     ${lib.optionalString (stdenv.system != "aarch64-darwin") "rm -f *.arm64.dylib"}
81     popd
83     wrapDotnetProgram $out/lib/${pname}/Libation $out/bin/libation
84     wrapDotnetProgram $out/lib/${pname}/LibationCli $out/bin/libationcli
85     wrapDotnetProgram $out/lib/${pname}/Hangover $out/bin/hangover
86   '';
88   meta = {
89     changelog = "https://github.com/rmcrackan/Libation/releases/tag/${src.rev}";
90     description = "An Audible audiobook manager";
91     homepage = "https://github.com/rmcrackan/Libation";
92     license = lib.licenses.gpl3Only;
93     mainProgram = "libation";
94     maintainers = with lib.maintainers; [ tomasajt ];
95   };