depot/third_party/nixpkgs/pkgs/applications/misc/bottles/fhsenv.nix
Default email 159e378cbb Project import generated by Copybara.
GitOrigin-RevId: c04d5652cfa9742b1d519688f65d1bbccea9eb7e
2024-09-19 17:19:46 +03:00

135 lines
2.6 KiB
Nix

{
buildFHSEnv,
symlinkJoin,
bottles-unwrapped,
extraPkgs ? pkgs: [ ],
extraLibraries ? pkgs: [ ],
}:
let
fhsEnv = {
# Many WINE games need 32bit
multiArch = true;
targetPkgs =
pkgs:
with pkgs;
[
bottles-unwrapped
# This only allows to enable the toggle, vkBasalt won't work if not installed with environment.systemPackages (or nix-env)
# See https://github.com/bottlesdevs/Bottles/issues/2401
vkbasalt
]
++ extraPkgs pkgs;
multiPkgs =
let
xorgDeps =
pkgs: with pkgs.xorg; [
libpthreadstubs
libSM
libX11
libXaw
libxcb
libXcomposite
libXcursor
libXdmcp
libXext
libXi
libXinerama
libXmu
libXrandr
libXrender
libXv
libXxf86vm
];
gstreamerDeps =
pkgs: with pkgs.gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gst-plugins-bad
gst-libav
];
in
pkgs:
with pkgs;
[
# https://wiki.winehq.org/Building_Wine
alsa-lib
cups
dbus
fontconfig
freetype
glib
gnutls
libglvnd
gsm
libgphoto2
libjpeg_turbo
libkrb5
libpcap
libpng
libpulseaudio
libtiff
libunwind
libusb1
libv4l
libxml2
mpg123
ocl-icd
openldap
samba4
sane-backends
SDL2
udev
vulkan-loader
# https://www.gloriouseggroll.tv/how-to-get-out-of-wine-dependency-hell/
alsa-plugins
dosbox
giflib
gtk3
libva
libxslt
ncurses
openal
# Steam runtime
libgcrypt
libgpg-error
p11-kit
zlib # Freetype
]
++ xorgDeps pkgs
++ gstreamerDeps pkgs
++ extraLibraries pkgs;
};
in
symlinkJoin {
name = "bottles";
paths = [
(buildFHSEnv (
fhsEnv
// {
name = "bottles";
runScript = "bottles";
}
))
(buildFHSEnv (
fhsEnv
// {
name = "bottles-cli";
runScript = "bottles-cli";
}
))
];
postBuild = ''
mkdir -p $out/share
ln -s ${bottles-unwrapped}/share/applications $out/share
ln -s ${bottles-unwrapped}/share/icons $out/share
'';
inherit (bottles-unwrapped) meta;
}