3 , gobject-introspection
21 python3Packages.buildPythonApplication rec {
25 src = fetchFromGitLab {
29 hash = "sha256-sDw67Xseeak1v5x0daznfdeNQahDTj21AVvXmuZlsgg=";
47 propagatedBuildInputs = with python3Packages; [
63 "--prefix PATH : ${lib.makeBinPath [ xdg-user-dirs wine winetricks pciutils glxinfo xrandr ]}"
64 # make xdg-open overrideable at runtime
65 "--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}"
69 substituteInPlace src/grapejuice_common/assets/desktop/grapejuice.desktop \
70 --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \
71 --replace \$GRAPEJUICE_GUI_EXECUTABLE "$out/bin/grapejuice-gui" \
72 --replace \$GRAPEJUICE_ICON grapejuice
74 substituteInPlace src/grapejuice_common/assets/desktop/roblox-player.desktop \
75 --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \
76 --replace \$PLAYER_ICON "grapejuice-roblox-player"
78 substituteInPlace src/grapejuice_common/assets/desktop/roblox-app.desktop \
79 --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \
80 --replace \$PLAYER_ICON "grapejuice-roblox-player"
82 substituteInPlace src/grapejuice_common/assets/desktop/roblox-studio.desktop src/grapejuice_common/assets/desktop/roblox-studio-auth.desktop \
83 --replace \$GRAPEJUICE_EXECUTABLE "$out/bin/grapejuice" \
84 --replace \$STUDIO_ICON "grapejuice-roblox-studio"
86 substituteInPlace src/grapejuice_common/paths.py \
87 --replace 'return local_share() / "locale"' 'return Path("${placeholder "out"}/share/locale")'
89 substituteInPlace src/grapejuice_common/models/settings_model.py \
90 --replace 'default_wine_home: Optional[str] = ""' 'default_wine_home: Optional[str] = "${wine}"'
92 substituteInPlace src/grapejuice_packaging/builders/linux_package_builder.py \
93 --replace '"--no-dependencies",' '"--no-dependencies", "--no-build-isolation",'
95 substituteInPlace src/grapejuice_packaging/packaging_resources/bin/grapejuice src/grapejuice_packaging/packaging_resources/bin/grapejuice-gui \
96 --replace "/usr/bin/env python3" "${python3Packages.python.interpreter}"
102 PYTHONPATH=$(pwd)/src:$PYTHONPATH python3 -m grapejuice_packaging linux_package
104 mkdir -p "$out" "$out/${python3Packages.python.sitePackages}"
105 tar -xvf ./dist/linux_package/grapejuice-''${version}.tar.gz --strip-components=1 -C "$out"
107 mv "$out/lib/python3/dist-packages/"* "$out/${python3Packages.python.sitePackages}"
108 rmdir --ignore-fail-on-non-empty -p "$out/lib/python3/dist-packages"
114 patchShebangs "$out/bin/grapejuice{,-gui}"
116 buildPythonPath "$out $pythonPath"
118 for bin in grapejuice grapejuice-gui; do
119 wrapProgram "$out/bin/$bin" \
120 --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)" \
121 ''${makeWrapperArgs[@]} \
122 ''${gappsWrapperArgs[@]}
129 pythonImportsCheck = [ "grapejuice" ];
132 homepage = "https://gitlab.com/brinkervii/grapejuice";
133 description = "Simple Wine+Roblox management tool";
134 license = licenses.gpl3Plus;
135 platforms = platforms.linux;
136 maintainers = with maintainers; [ artturin helium ];