nongnu: lutris, lutris-wrapped: Initial package creation.
* nongnu/packages/game-client.scm (lutris-wrapped): Initial package creation.
This commit is contained in:
parent
c29a9af656
commit
539575fb5c
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2023 Elijah Malaby
|
||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
||||
;;; Copyright © 2024 Amélia Coutard <contact@ameliathe1st.gay>
|
||||
|
||||
(define-module (nongnu packages game-client)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
|
@ -16,14 +17,18 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bittorrent)
|
||||
#:use-module (gnu packages certs)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages fonts)
|
||||
|
@ -35,7 +40,10 @@
|
|||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages gstreamer)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages libbsd)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages linux)
|
||||
|
@ -43,13 +51,25 @@
|
|||
#:use-module (gnu packages logging)
|
||||
#:use-module (gnu packages lsof)
|
||||
#:use-module (nongnu packages nvidia)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages protobuf)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages samba)
|
||||
#:use-module (gnu packages scanner)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages toolkits)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages vulkan)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages wine)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (nonguix build-system chromium-binary)
|
||||
#:use-module (nonguix multiarch-container)
|
||||
|
@ -368,3 +388,243 @@ installed.")))
|
|||
(description "ProtonUp-ng is a CLI program and API to automate the installation
|
||||
and update of GloriousEggroll's Proton-GE.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define hicolor-icon-theme-lutris
|
||||
(package
|
||||
(name "hicolor-icon-theme-lutris")
|
||||
(version "0.17-ee8fe23c")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/lutris/lutris-runtime")
|
||||
(commit "ee8fe23c5bf2ac979efb9c00ca3abbd57af180a8")))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0wjjj46wmnqc8p1hy0q74bpfqf0cm06hd518j170mrm9pnpiil2b"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan ''(("icons" "share/icons"))))
|
||||
(home-page "https://github.com/lutris/lutris-runtime")
|
||||
(synopsis "Freedesktop icon theme - Lutris edition")
|
||||
(description "Freedesktop icon theme - Lutris edition.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public lutris
|
||||
(package
|
||||
(name "lutris")
|
||||
(version "0.5.18")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/lutris/lutris/archive/refs/tags/v" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1lfqqd06xx5s3957yjsqq5jhqz4nhg2wfp0djh80jx8w5l2svm5r"))))
|
||||
(build-system copy-build-system)
|
||||
(propagated-inputs (list ;Otherwise, TLS doesn't work and it's impossible to connect to itch.io, gog, etc.
|
||||
cairo gsettings-desktop-schemas nss-certs webkitgtk-for-gtk3))
|
||||
(inputs (list
|
||||
;; Non-python dependencies:
|
||||
file
|
||||
gdk-pixbuf
|
||||
gnutls
|
||||
hicolor-icon-theme-lutris
|
||||
hicolor-icon-theme
|
||||
libpng
|
||||
librsvg
|
||||
mesa
|
||||
shared-mime-info
|
||||
vulkan-loader
|
||||
;; Will be in the path:
|
||||
fluidsynth
|
||||
glibc
|
||||
`(,gtk+ "bin")
|
||||
mesa-utils
|
||||
p7zip
|
||||
pciutils
|
||||
procps
|
||||
psmisc
|
||||
vulkan-tools
|
||||
xrandr
|
||||
;; Python dependencies:
|
||||
python
|
||||
python-dbus
|
||||
python-distro
|
||||
python-evdev
|
||||
python-lxml
|
||||
python-pillow
|
||||
python-protobuf
|
||||
python-pycairo
|
||||
python-pygobject
|
||||
python-pyyaml
|
||||
python-requests
|
||||
python-setproctitle))
|
||||
(arguments
|
||||
(list
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-before 'install 'gdk-pixbuf-cache-gen
|
||||
(lambda* (#:key #:allow-other-keys)
|
||||
(setenv "GDK_PIXBUF_MODULE_FILE"
|
||||
(string-append #$output
|
||||
"/lib/gdk-pixbuf/loaders.cache"))
|
||||
(mkdir-p (string-append #$output "/lib/gdk-pixbuf"))
|
||||
(invoke "gdk-pixbuf-query-loaders" "--update-cache"
|
||||
#$(file-append librsvg
|
||||
"/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg"))))
|
||||
(add-before 'install 'ldconfig-p
|
||||
(lambda* (#:key #:allow-other-keys)
|
||||
(mkdir-p (string-append #$output "/etc"))
|
||||
(invoke "ldconfig"
|
||||
"-C"
|
||||
(string-append #$output "/etc/ld.so.cache")
|
||||
#$(file-append gnutls "/lib")
|
||||
#$(file-append mesa "/lib")
|
||||
#$(file-append vulkan-loader "/lib"))
|
||||
(substitute* "lutris/util/linux.py"
|
||||
(("\"-p\"")
|
||||
(string-append "\"-C\", \""
|
||||
#$output "/etc/ld.so.cache\", \"-p\"")))))
|
||||
(add-before 'install 'patch-hardcoded-paths-and-wine
|
||||
(lambda* (#:key #:allow-other-keys)
|
||||
(substitute* "lutris/util/linux.py"
|
||||
(("\"wine\",")
|
||||
""))
|
||||
(substitute* "lutris/util/graphics/vkquery.py"
|
||||
(("libvulkan.so.1")
|
||||
#$(file-append vulkan-loader "/lib/libvulkan.so.1")))
|
||||
(substitute* "lutris/util/magic.py"
|
||||
(("libmagic.so.1")
|
||||
#$(file-append file "/lib/libmagic.so.1")))
|
||||
(substitute* "lutris/util/wine/wine.py"
|
||||
(("os\\.listdir\\('/usr/lib/'\\)")
|
||||
"[]"))))
|
||||
(add-after 'install 'wrap
|
||||
(lambda* (#:key #:allow-other-keys)
|
||||
(wrap-program (string-append #$output "/bin/lutris")
|
||||
`("GDK_PIXBUF_MODULE_FILE" =
|
||||
(,(getenv "GDK_PIXBUF_MODULE_FILE")))
|
||||
`("GI_TYPELIB_PATH" =
|
||||
(,(getenv "GI_TYPELIB_PATH")))
|
||||
`("PATH" =
|
||||
,(list #$(file-append fluidsynth "/bin")
|
||||
#$(file-append glibc "/sbin")
|
||||
(string-append #$gtk+:bin "/bin")
|
||||
#$(file-append mesa-utils "/bin")
|
||||
#$(file-append p7zip "/bin")
|
||||
#$(file-append pciutils "/bin")
|
||||
#$(file-append procps "/bin")
|
||||
#$(file-append psmisc "/bin")
|
||||
#$(file-append vulkan-tools "/bin")
|
||||
#$(file-append xrandr "/bin")
|
||||
#$(file-append xterm "/bin")
|
||||
"$PATH"))
|
||||
`("PYTHONPATH" =
|
||||
(,(getenv "GUIX_PYTHONPATH")))
|
||||
`("XDG_DATA_DIRS" =
|
||||
,(list #$(file-append hicolor-icon-theme-lutris
|
||||
"/share")
|
||||
#$(file-append hicolor-icon-theme "/share")
|
||||
#$(file-append shared-mime-info "/share")
|
||||
"$XDG_DATA_DIRS"))))))
|
||||
#:install-plan ''(("bin" "bin")
|
||||
("lutris" "lutris")
|
||||
("share" "share"))))
|
||||
(home-page "https://github.com/lutris/lutris")
|
||||
(synopsis "Game library manager")
|
||||
(description
|
||||
"Lutris is a game manager that can be used as a frontend for many sources of games")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define lutris-client-libs-64 ; For TLS support, to login into itch.io, gog, etc.
|
||||
`(("nss-certs" ,nss-certs)
|
||||
("cairo" ,cairo)
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||
("webkitgtk-for-gtk3" ,webkitgtk-for-gtk3)))
|
||||
(define lutris-gameruntime-libs
|
||||
`( ;WINE:
|
||||
("alsa-lib" ,alsa-lib)
|
||||
("bash-minimal" ,bash-minimal)
|
||||
;; ("cups" ,cups) ; FIXME
|
||||
("dbus" ,dbus)
|
||||
("eudev" ,eudev)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("gnutls" ,gnutls)
|
||||
("gst-plugins-base" ,gst-plugins-base)
|
||||
("libgphoto2" ,libgphoto2)
|
||||
("openldap" ,openldap)
|
||||
("samba" ,samba)
|
||||
("sane-backends" ,sane-backends)
|
||||
("libpcap" ,libpcap)
|
||||
("libusb" ,libusb)
|
||||
("libice" ,libice)
|
||||
("libx11" ,libx11)
|
||||
("libxi" ,libxi)
|
||||
("libxext" ,libxext)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxrender" ,libxrender)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxinerama" ,libxinerama)
|
||||
("libxxf86vm" ,libxxf86vm)
|
||||
("libxcomposite" ,libxcomposite)
|
||||
("mit-krb5" ,mit-krb5)
|
||||
("openal" ,openal)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("sdl2" ,sdl2)
|
||||
("unixodbc" ,unixodbc)
|
||||
("v4l-utils" ,v4l-utils)
|
||||
("vkd3d" ,vkd3d)
|
||||
("vulkan-loader" ,vulkan-loader)
|
||||
("coreutils" ,coreutils)
|
||||
;; Deps required for some games:
|
||||
("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio")
|
||||
("aria2" ,aria2) ; For the Rockstar launcher
|
||||
("cabextract" ,cabextract) ; For the Rockstar launcher
|
||||
("findutils" ,findutils) ; For the Rockstar launcher
|
||||
("font-dejavu" ,font-dejavu)
|
||||
("font-liberation" ,font-liberation)
|
||||
("gawk" ,gawk) ; For the Rockstar launcher
|
||||
("gcc:lib" ,gcc "lib")
|
||||
("grep" ,grep) ; For the Rockstar launcher
|
||||
("imgui" ,imgui-1.86)
|
||||
("jansson" ,jansson) ; For League of Legends
|
||||
("mangohud" ,mangohud)
|
||||
("mesa" ,mesa)
|
||||
("python" ,python)
|
||||
("sed" ,sed) ; For the Rockstar launcher
|
||||
("xdg-utils" ,xdg-utils) ; For Slay the Princess (and maybe renpy in general).
|
||||
))
|
||||
|
||||
(define lutris-fhs-union-64
|
||||
(fhs-union `(,@lutris-client-libs-64
|
||||
,@lutris-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-64"))
|
||||
(define lutris-fhs-union-32
|
||||
(fhs-union `(,@lutris-gameruntime-libs
|
||||
,@fhs-min-libs)
|
||||
#:name "fhs-union-32"
|
||||
#:system "i686-linux"))
|
||||
(define lutris-ld.so.conf
|
||||
(packages->ld.so.conf (list lutris-fhs-union-64 lutris-fhs-union-32)))
|
||||
(define lutris-ld.so.cache
|
||||
(ld.so.conf->ld.so.cache lutris-ld.so.conf))
|
||||
|
||||
(define lutris-container
|
||||
(nonguix-container (name "lutris-wrapped")
|
||||
(wrap-package lutris)
|
||||
(run "/bin/lutris")
|
||||
(modules '(gtk))
|
||||
(packages '(cairo))
|
||||
(ld.so.conf lutris-ld.so.conf)
|
||||
(ld.so.cache lutris-ld.so.cache)
|
||||
(union64 lutris-fhs-union-64)
|
||||
(union32 lutris-fhs-union-32)
|
||||
(description
|
||||
"Lutris is a game manager that can be used as a frontend for many sources of games")))
|
||||
|
||||
(define-public lutris-wrapped
|
||||
(nonguix-container->package lutris-container))
|
||||
|
|
Loading…
Reference in New Issue
Block a user