diff options
Diffstat (limited to 'pkgs/applications/misc/lutris/default.nix')
-rw-r--r-- | pkgs/applications/misc/lutris/default.nix | 212 |
1 files changed, 50 insertions, 162 deletions
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix index 5a74bd931c0b..0f2274ad2592 100644 --- a/pkgs/applications/misc/lutris/default.nix +++ b/pkgs/applications/misc/lutris/default.nix @@ -1,178 +1,66 @@ -{ stdenv, pkgs, buildFHSUserEnv, makeDesktopItem, fetchFromGitHub -, wrapGAppsHook, python3Packages }: +{ buildPythonApplication, lib, fetchFromGitHub +, wrapGAppsHook, gobject-introspection, gnome-desktop, libnotify, libgnome-keyring, pango +, gdk_pixbuf, atk, webkitgtk, gst_all_1 +, evdev, pyyaml, pygobject3, requests, pillow +, xrandr, pciutils, psmisc, glxinfo, vulkan-tools, xboxdrv, pulseaudio, p7zip, xgamma +, libstrangle, wine, fluidsynth, xorgserver +}: let - qt5Deps = with pkgs; with qt5; [ qtbase qtmultimedia ]; - gnome3Deps = with pkgs; with gnome3; [ zenity gtksourceview gnome-desktop libgnome-keyring webkitgtk ]; - - python3Deps = with pkgs; with python3Packages; [ - evdev pyyaml pyxdg pygobject3 pyqt5 dbus-python requests pillow - ]; - - xorgDeps = with pkgs; with xorg; [ - libX11 libXrender libXrandr libxcb libXmu libpthreadstubs libXext libXdmcp - libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite - xrandr xdg_utils + # See lutris/util/linux.py + binPath = lib.makeBinPath [ + xrandr + pciutils + psmisc + glxinfo + vulkan-tools + xboxdrv + pulseaudio + p7zip + xgamma + libstrangle + wine + fluidsynth + xorgserver ]; - gstDeps = with pkgs; with gst_all_1; [ + gstDeps = with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]; - deps = with pkgs; [ - # Common - stdenv.cc.cc libGL libGLU_combined libsndfile libtheora libogg libvorbis - libopus libGLU libpcap libpulseaudio libao libusb libevdev libudev libgcrypt - libxml2 libusb libpng libmpeg2 libv4l libjpeg libxkbcommon libass libcdio - libjack2 libsamplerate libzip libmad libaio libcap libtiff libva libgphoto2 - libxslt libtxc_dxtn libsndfile giflib zlib glib alsaLib zziplib bash dbus - keyutils zip cabextract freetype unzip coreutils readline gcc SDL SDL2 curl - graphite2 gtk2 gtk3 udev ncurses wayland libglvnd vulkan-loader - - # Lutris - gobject-introspection gdk_pixbuf hicolor-icon-theme pango openssl sqlite xterm libnotify procps - - # Adventure Game Studio - allegro dumb - - # Desmume - lua agg soundtouch openal desktop-file-utils pangox_compat atk - - # DGen // TODO: libarchive is broken - - # Dolphin - bluez ffmpeg gettext portaudio wxGTK30 miniupnpc mbedtls lzo sfml gsm - wavpack gnutls-kdh 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 - - # PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64" - - # PPSSPP - glew snappy +in buildPythonApplication rec { + name = "lutris-original-${version}"; + version = "0.5.2.1"; - # Redream // "redream is not available for the x86_64 architecture" - - # ResidualVM - flac - - # rpcs3 // TODO: "error while loading shared libraries: libz.so.1..." - llvm_4 - - # ScummVM - nasm sndio - - # Snes9x - epoxy minizip - - # Steam - steam - - # Vice - bison flex - - # WINE - perl which p7zip gnused gnugrep psmisc cups lcms2 mpg123 cairo unixODBC - samba4 sane-backends openldap opencl-headers ocl-icd utillinux - - wineWowPackages.staging - - # ZDOOM - soundfont-fluid bzip2 game-music-emu - ] ++ qt5Deps - ++ gnome3Deps - ++ python3Deps - ++ xorgDeps - ++ gstDeps; - - lutris = python3Packages.buildPythonApplication rec { - name = "lutris-original-${version}"; - version = "0.5.2.1"; - - src = fetchFromGitHub { - owner = "lutris"; - repo = "lutris"; - rev = "v${version}"; - sha256 = "023yqnzmnkfpq21r6ky6jzwbjxjcw1a5zqrrdl6fwwlr78fdhgpv"; - }; + src = fetchFromGitHub { + owner = "lutris"; + repo = "lutris"; + rev = "v${version}"; + sha256 = "023yqnzmnkfpq21r6ky6jzwbjxjcw1a5zqrrdl6fwwlr78fdhgpv"; + }; - enableParallelBuilding = true; - nativeBuildInputs = [ wrapGAppsHook ]; - propagatedBuildInputs = deps; - fullPath = stdenv.lib.makeLibraryPath deps; - preConfigure = "export HOME=$PWD"; + buildInputs = [ + wrapGAppsHook gobject-introspection gnome-desktop libnotify libgnome-keyring pango + gdk_pixbuf atk webkitgtk + ] ++ gstDeps; - makeWrapperArgs = [ - "--prefix LD_LIBRARY_PATH : ${fullPath}:$out/lib" - "--set GI_TYPELIB_PATH $GI_TYPELIB_PATH" - "--prefix XDG_DATA_DIRS : $out/share" - "--suffix XDG_DATA_DIRS : $XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" - ]; + makeWrapperArgs = [ + "--prefix PATH : ${binPath}" + ]; - postInstall = '' - mkdir -p $out/lib - ln -sf ${pkgs.gsm}/lib/libgsm.so $out/lib/libgsm.so.1 - mv $out/bin/lutris $out/bin/lutris-${version} - ''; + propagatedBuildInputs = [ + evdev pyyaml pygobject3 requests pillow + ]; - meta = with stdenv.lib; { - homepage = "https://lutris.net"; - description = "Open Source gaming platform for GNU/Linux"; - license = licenses.gpl3; - maintainers = with maintainers; [ chiiruno ]; - platforms = platforms.linux; - }; - }; + preCheck = "export HOME=$PWD"; - desktopItem = makeDesktopItem { - name = "Lutris"; - exec = "lutris"; - icon = "lutris"; - comment = lutris.meta.description; - desktopName = "Lutris"; - genericName = "Gaming Platform"; - categories = "Network;Game;Emulator;"; - startupNotify = "false"; + meta = with lib; { + homepage = "https://lutris.net"; + description = "Open Source gaming platform for GNU/Linux"; + license = licenses.gpl3; + maintainers = with maintainers; [ chiiruno ]; + platforms = platforms.linux; }; - -in buildFHSUserEnv rec { - name = "lutris"; - - runScript = "lutris-${lutris.version}"; - targetPkgs = pkgs: [ lutris pkgs.glxinfo pkgs.pciutils ]; - passthru.lutris = lutris; - - extraInstallCommands = '' - mkdir -p $out/share - cp -r ${desktopItem}/share/applications $out/share - ln -sf ${lutris}/share/icons $out/share - ''; } + |