nixpkgs/pkgs/applications/misc/bottles/default.nix
2024-07-10 17:27:03 -05:00

120 lines
2.0 KiB
Nix

{
lib,
fetchFromGitHub,
gitUpdater,
python3Packages,
blueprint-compiler,
meson,
ninja,
pkg-config,
wrapGAppsHook4,
appstream-glib,
desktop-file-utils,
librsvg,
gtk4,
gtksourceview5,
libadwaita,
cabextract,
p7zip,
xdpyinfo,
imagemagick,
lsb-release,
pciutils,
procps,
gamescope,
mangohud,
vkbasalt-cli,
vmtouch,
}:
python3Packages.buildPythonApplication rec {
pname = "bottles-unwrapped";
version = "51.13";
src = fetchFromGitHub {
owner = "bottlesdevs";
repo = "bottles";
rev = version;
hash = "sha256-ZcUevGY81H3ATTk390ojBp/4zBE2Lui7Qa+Qe8B0XL4=";
};
patches = [ ./vulkan_icd.patch ];
# https://github.com/bottlesdevs/Bottles/wiki/Packaging
nativeBuildInputs = [
blueprint-compiler
meson
ninja
pkg-config
wrapGAppsHook4
gtk4 # gtk4-update-icon-cache
appstream-glib
desktop-file-utils
];
buildInputs = [
librsvg
gtk4
gtksourceview5
libadwaita
];
propagatedBuildInputs =
with python3Packages;
[
pathvalidate
pycurl
pyyaml
requests
pygobject3
patool
markdown
fvs
pefile
urllib3
chardet
certifi
idna
orjson
icoextract
]
++ [
cabextract
p7zip
xdpyinfo
imagemagick
vkbasalt-cli
gamescope
mangohud
vmtouch
# Undocumented (subprocess.Popen())
lsb-release
pciutils
procps
];
format = "other";
dontWrapGApps = true; # prevent double wrapping
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Easy-to-use wineprefix manager";
homepage = "https://usebottles.com/";
downloadPage = "https://github.com/bottlesdevs/Bottles/releases";
license = licenses.gpl3Only;
maintainers = with maintainers; [
psydvl
shamilton
];
platforms = platforms.linux;
mainProgram = "bottles";
};
}