Add prism launcher

This commit is contained in:
Lynn Leichtle 2024-09-06 21:42:53 +02:00
parent 2b77c13dd0
commit 64a9404e1b
Signed by: lynn
GPG key ID: 55E797F631DDA03C

168
artoria/packages/games.scm Normal file
View file

@ -0,0 +1,168 @@
(define-module (artoria packages games)
#:use-module (guix build-system cmake)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages qt)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gl)
#:use-module (gnu packages java)
#:use-module (gnu packages kde-frameworks)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) :prefix license:)
#:use-module ((nonguix licenses) :prefix non-license:))
(define-public multimc
(package
(name "multimc")
(version "0.6.12")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/MultiMC/MultiMC5.git")
(recursive? #t)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0a32c8hrccc1h89kqwmfhf299swm0pwdp03qhjbfkagbggdz8r47"))))
(build-system cmake-build-system)
(supported-systems '("i686-linux" "x86_64-linux"))
(arguments
`(#:tests? #f ; Tests require network access
#:configure-flags '("-DMultiMC_LAYOUT=lin-system")
#:phases
(modify-phases %standard-phases
(add-after 'install 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(exe (string-append bin "/multimc"))
(qtwayland (assoc-ref inputs "qtwayland"))
(xrandr (assoc-ref inputs "xrandr"))
(jdk (assoc-ref inputs "jdk")))
(wrap-program exe
`("PATH" ":" prefix (,(string-append xrandr "/bin")
,(string-append jdk "/bin")))
`("QT_PLUGIN_PATH" ":" prefix (,(string-append
qtwayland "/lib/qt5/plugins")))
`("GAME_LIBRARY_PATH" ":" prefix
(,@(map (lambda (dep)
(string-append (assoc-ref inputs dep)
"/lib"))
'("libx11" "libxext" "libxcursor"
"libxrandr" "libxxf86vm" "pulseaudio" "mesa")))))
#t)))
(add-after 'patch-paths 'install-desktop-entry
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(applications (string-append out "/share/applications"))
(app-icons (string-append out "/share/icons/hicolor/scalable/apps")))
(with-directory-excursion "../source"
(install-file "application/package/linux/multimc.desktop"
applications)
(install-file "application/resources/multimc/scalable/multimc.svg"
app-icons))
#t))))))
(inputs
`(("jdk" ,icedtea "jdk")
("zlib" ,zlib)
("qtbase" ,qtbase-5)
("qtwayland" ,qtwayland)
("xrandr" ,xrandr)
("libx11" ,libx11)
("libxext" ,libxext)
("libxcursor" ,libxcursor)
("libxrandr" ,libxrandr)
("libxxf86vm" ,libxxf86vm)
("pulseaudio" ,pulseaudio)
("mesa" ,mesa)))
(home-page "https://multimc.org/")
(synopsis "Launcher for Minecraft")
(description
"This package allows you to have multiple, separate instances of
Minecraft and helps you manage them and their associated options with
a simple interface.")
(license (list license:asl2.0 ; MultiMC
license:lgpl2.1 ; Qt 5
license:lgpl3+ ; libnbt++
license:gpl2+ ; rainbow (KGuiAddons), Quazip, Pack200
license:silofl1.1 ; Material Design Icons
license:expat ; lionshead, MinGW runtime
license:public-domain ; xz-minidec
license:isc ; Hoedown
license:bsd-3 ; ColumnResizer
;; Batch icon set:
(non-license:nonfree "file://COPYING.md")))))
(define-public prismlauncher
(package
(name "prismlauncher")
(version "5.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/PrismLauncher/PrismLauncher")
(recursive? #t)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1npvgiifjqsacimsv5vpj54qsbv638vvb1xgapky8fpk0f30v52k"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin/prismlauncher"))
(xrandr (assoc-ref inputs "xrandr"))
(qtwayland (assoc-ref inputs "qtwayland")))
(wrap-program bin
`("PATH" ":" prefix (,(string-append xrandr "/bin")))
`("QT_PLUGIN_PATH" ":" prefix (,(string-append
qtwayland "/lib/qt5/plugins")))
`("LD_LIBRARY_PATH" ":" prefix
(,@(map (lambda (dep)
(string-append (assoc-ref inputs dep)
"/lib"))
'("libx11" "libxext" "libxcursor"
"libxrandr" "libxxf86vm" "pulseaudio" "mesa")))))
#t))))))
(native-inputs (list extra-cmake-modules))
(inputs (list bash-minimal ; for wrap-program
zlib
qtbase-5
qtwayland
xrandr
libx11
libxext
libxcursor
libxrandr
libxxf86vm
pulseaudio
mesa))
(propagated-inputs (list `(,openjdk17 "jdk")))
(home-page "https://prismlauncher.org/")
(synopsis "Free, open source launcher for Minecraft")
(description
"Allows you to have multiple, separate instances of Minecraft (each with
their own mods, texture packs, saves, etc), and helps you manage them and
their associated options with a simple interface.")
(license (list license:gpl3 ; PolyMC, launcher
license:expat ; MinGW runtime, lionshead, tomlc99
license:lgpl3 ; Qt 5/6
license:lgpl3+ ; libnbt++
license:lgpl2.1+ ; rainbow (KGuiAddons)
license:isc ; Hoedown
license:silofl1.1 ; Material Design Icons
license:lgpl2.1 ; Quazip
license:public-domain ; xz-minidec, murmur2, xz-embedded
license:bsd-3 ; ColumnResizer, O2 (Katabasis fork),
; gamemode, localpeer
license:asl2.0 ; classparser, systeminfo
;; Batch icon set:
(non-license:nonfree "file://COPYING.md")))))