nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

153 lines
3.5 KiB
Nix
Raw Normal View History

{ lib, buildFHSUserEnv, lutris-unwrapped
, extraPkgs ? pkgs: [ ]
, extraLibraries ? pkgs: [ ]
, steamSupport ? true
}:
let
qt5Deps = pkgs: with pkgs.qt5; [ qtbase qtmultimedia ];
2022-03-16 21:16:40 +00:00
gnomeDeps = pkgs: with pkgs; [ gnome.zenity gtksourceview gnome-desktop gnome.libgnome-keyring webkitgtk ];
xorgDeps = pkgs: with pkgs.xorg; [
libX11 libXrender libXrandr libxcb libXmu libpthreadstubs libXext libXdmcp
libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite
];
in buildFHSUserEnv {
name = "lutris";
runScript = "lutris";
targetPkgs = pkgs: with pkgs; [
lutris-unwrapped
# Adventure Game Studio
allegro dumb
# Curl
libnghttp2
# Desmume
lua agg soundtouch openal desktop-file-utils atk
# DGen // TODO: libarchive is broken
# Dolphin
2023-03-21 14:17:05 +00:00
bluez ffmpeg gettext portaudio miniupnpc mbedtls_2 lzo sfml gsm
2019-10-30 02:51:49 +00:00
wavpack orc nettle gmp pcre vulkan-loader
# DOSBox
SDL_net SDL_sound
# GOG
glib-networking
# Higan // TODO: "higan is not available for the x86_64 architecture"
# Libretro
fluidsynth hidapi mesa libdrm
# MAME
qt48 fontconfig SDL2_ttf
# Mednafen
freeglut mesa_glu
# MESS
expat
# Minecraft
nss
# Mupen64Plus
boost dash
# Osmose
qt4
# Overwatch 2
libunwind
# PPSSPP
glew snappy
# Redream // "redream is not available for the x86_64 architecture"
# rpcs3 // TODO: "error while loading shared libraries: libz.so.1..."
2020-01-18 22:42:51 +00:00
llvm
# ScummVM
nasm sndio
# ResidualVM is now merged with ScummVM and therefore does not exist anymore
flac
# Snes9x
libepoxy minizip
# Vice
bison flex
# WINE
xorg.xrandr perl which p7zip gnused gnugrep psmisc opencl-headers
# ZDOOM
soundfont-fluid bzip2 game-music-emu
] ++ qt5Deps pkgs
++ gnomeDeps pkgs
++ lib.optional steamSupport pkgs.steam
++ extraPkgs pkgs;
multiPkgs = pkgs: with pkgs; [
# Common
libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio
2020-04-28 03:29:39 +00:00
libao libevdev udev libgcrypt libxml2 libusb-compat-0_1 libpng libmpeg2 libv4l
libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio
libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
alsa-lib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
2021-02-01 08:05:09 +00:00
vulkan-loader xdg-utils sqlite gnutls p11-kit libbsd harfbuzz
# PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"
# WINE
cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap
2020-11-24 15:29:28 +00:00
ocl-icd util-linux libkrb5
# Proton
libselinux
# Winetricks
fribidi
] ++ xorgDeps pkgs
++ extraLibraries pkgs;
extraInstallCommands = ''
mkdir -p $out/share
ln -sf ${lutris-unwrapped}/share/applications $out/share
ln -sf ${lutris-unwrapped}/share/icons $out/share
'';
# allows for some gui applications to share IPC
# this fixes certain issues where they don't render correctly
unshareIpc = false;
# Some applications such as Natron need access to MIT-SHM or other
# shared memory mechanisms. Unsharing the pid namespace
# breaks the ability for application to reference shared memory.
unsharePid = false;
meta = {
inherit (lutris-unwrapped.meta)
homepage
description
platforms
license
maintainers
broken;
mainProgram = "lutris";
};
}