136 lines
2.6 KiB
Nix
136 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;
|
||
|
}
|