blob: acdbf8835e31fb4b2674f42dc50839f95a99279e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
{ lib, buildFHSEnv, lutris-unwrapped
, extraPkgs ? pkgs: [ ]
, extraLibraries ? pkgs: [ ]
, steamSupport ? true
}:
let
qt5Deps = pkgs: with pkgs.qt5; [ qtbase qtmultimedia ];
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
];
gstreamerDeps = pkgs: with pkgs.gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gst-plugins-bad
gst-libav
];
in buildFHSEnv {
name = "lutris";
runScript = "lutris";
# Many native and WINE games need 32bit
multiArch = true;
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
bluez ffmpeg gettext portaudio miniupnpc mbedtls_2 lzo sfml gsm
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
fontconfig SDL2_ttf
# Mednafen
freeglut mesa_glu
# MESS
expat
# Minecraft
nss
# Mupen64Plus
boost dash
# 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..."
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
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
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
ocl-icd util-linux libkrb5
# Proton
libselinux
# Winetricks
fribidi
] ++ xorgDeps pkgs
++ gstreamerDeps 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";
};
}
|