biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / misc / rusty-psn / default.nix
blobecd5948b4d9cadb0009609094cf833a8cc93f4b9
1 { lib
2 , rustPlatform
3 , fetchFromGitHub
4 , makeDesktopItem
5 , copyDesktopItems
6 , pkg-config
7 , cmake
8 , fontconfig
9 , glib
10 , gtk3
11 , freetype
12 , openssl
13 , xorg
14 , libGL
15 , withGui ? false # build GUI version
18 rustPlatform.buildRustPackage rec {
19   pname = "rusty-psn";
20   version = "0.3.7";
22   src = fetchFromGitHub {
23     owner = "RainbowCookie32";
24     repo = "rusty-psn";
25     rev = "v${version}";
26     sha256 = "sha256-EGj9VVY+Zbmth7H1oTgq38KNLT/aWoTPn8k4sVkScgg=";
27   };
29   cargoPatches = [ ./fix-cargo-lock.patch ];
31   cargoHash = "sha256-8J92WtMmCTnghPqSmNYhG3IVdmpHsHEH7Fkod0UYKJU=";
33   # Tests require network access
34   doCheck = false;
36   nativeBuildInputs = [
37     pkg-config
38   ] ++ lib.optionals withGui [
39     copyDesktopItems
40     cmake
41   ];
43   buildInputs = [
44     openssl
45   ] ++ lib.optionals withGui [
46     fontconfig
47     glib
48     gtk3
49     freetype
50     openssl
51     xorg.libxcb
52     xorg.libX11
53     xorg.libXcursor
54     xorg.libXrandr
55     xorg.libXi
56     xorg.libxcb
57     libGL
58   ];
60   buildNoDefaultFeatures = true;
61   buildFeatures = [ (if withGui then "egui" else "cli") ];
63   postFixup = ''
64     patchelf --set-rpath "${lib.makeLibraryPath buildInputs}" $out/bin/rusty-psn
65   '' + lib.optionalString withGui ''
66     mv $out/bin/rusty-psn $out/bin/rusty-psn-gui
67   '';
69   desktopItem = lib.optionalString withGui (makeDesktopItem {
70     name = "rusty-psn";
71     desktopName = "rusty-psn";
72     exec = "rusty-psn-gui";
73     comment = "A simple tool to grab updates for PS3 games, directly from Sony's servers using their updates API.";
74     categories = [
75       "Network"
76     ];
77     keywords = [
78       "psn"
79       "ps3"
80       "sony"
81       "playstation"
82       "update"
83     ];
84   });
85   desktopItems = lib.optionals withGui [ desktopItem ];
87   meta = with lib; {
88     description = "Simple tool to grab updates for PS3 games, directly from Sony's servers using their updates API";
89     homepage = "https://github.com/RainbowCookie32/rusty-psn/";
90     license = licenses.mit;
91     platforms = [ "x86_64-linux" ];
92     maintainers = with maintainers; [ AngryAnt ];
93     mainProgram = "rusty-psn";
94   };