summaryrefslogtreecommitdiff
path: root/epistemia/packages/minecraft.scm
blob: b5e95cf9969533d145623a2f9aaceab322a93ad3 (plain)
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
(define-module (epistemia packages minecraft)
  #:use-module (guix build-system cmake)
  #:use-module (gnu packages audio)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages jemalloc)
  #:use-module (gnu packages linux)
  #: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 prismlauncher
  (package
   (name "prismlauncher")
   (version "9.4")
   (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
              "1xxgyx0z5r3hk3yk4gglbfwvq2qk1j9a0dkrv55j4vrlkni79nrm"))))
   (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"))
					 (qtsvg          (assoc-ref inputs "qtsvg"))
					 (jdk17          (assoc-ref inputs "jdk17"))
					 (jdk25          (assoc-ref inputs "jdk25")))
				    (wrap-program bin
						  `("JAVA_HOME" = (,jdk25))
						  `("PATH" ":" prefix (,(string-append xrandr "/bin")
								       ,(string-append jdk17 "/bin")
								       ,(string-append jdk25 "/bin")))
						  `("QT_PLUGIN_PATH" ":" prefix ,(map (lambda (package)
											(string-append package "/lib/qt6/plugins"))
										      (list qtwayland qtsvg)))
						  `("LD_LIBRARY_PATH" ":" prefix
						    (,@(map (lambda (dep)
							      (string-append (assoc-ref inputs dep)
									     "/lib"))
							    '("libx11" "libxext" "libxcursor"
							      "libxrandr" "libxxf86vm" "mesa"
							      "glfw" "openal" "jemalloc" "alsa-lib")))))
				    #t))))))
   (native-inputs (list extra-cmake-modules))
   (inputs
    `(("bash" ,bash-minimal)
      ("zlib" ,zlib)
      ("qtbase" ,qtbase)
      ("qt5compat" ,qt5compat)
      ("qtnetworkauth" ,qtnetworkauth)
      ("qtwayland" ,qtwayland)
      ("qtsvg" ,qtsvg)
      ("xrandr" ,xrandr)
      ("libx11" ,libx11)
      ("libxext" ,libxext)
      ("libxcursor" ,libxcursor)
      ("libxrandr" ,libxrandr)
      ("libxxf86vm" ,libxxf86vm)
      ("mesa" ,mesa)
      ("glfw" ,glfw)
      ("openal" ,openal)
      ("alsa-lib" ,alsa-lib)
      ("jemalloc" ,jemalloc)
      ("jdk17" ,openjdk17 "jdk")
      ("jdk25" ,openjdk25 "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")))))