110 lines
4.9 KiB
Scheme
110 lines
4.9 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2022 YOUR NAME <your-email@your-domain.com>
|
|
;;;
|
|
;;; This file is not part of GNU Guix.
|
|
;;;
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
;;; under the terms of the GNU General Public License as published by
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
;;; your option) any later version.
|
|
;;;
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;;; GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU General Public License
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
;; define-module
|
|
(define-module (nongnu packages liquidbounce liquidlauncher)
|
|
(use-modules #:use-module
|
|
(guix packages)
|
|
(guix download)
|
|
((non guix licenses) #:prefix license:)
|
|
(non guix build-system trivial binary rust)
|
|
;;public
|
|
(define-public liquidlauncher
|
|
(package
|
|
(name "liquidlauncher")
|
|
(version version)
|
|
(source
|
|
(origin
|
|
(method url-fetch/tarbomb git-fetch)
|
|
(uri (git-reference (string-append
|
|
(url "https://github.com/CCBlueX/LiquidLauncher/releases/download/"
|
|
version "/liquidlauncher_" version "_"
|
|
(%current-system) architecture "." packaging ".tar.gz"))
|
|
(commit version)))
|
|
(file-name (git-file-name "liquid-launcher"))
|
|
;; checksum
|
|
(sha256
|
|
(base32
|
|
"0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73")))) ;; empty hash
|
|
|
|
(snippet
|
|
'(begin
|
|
(setenv "PATH" (string-append (getenv "PATH") ":" (assoc-ref %build-inputs "node") ":" (assoc-ref %build-inputs "yarn")))
|
|
(zero? (system* "yarn"))
|
|
(zero? (system* "yarn" "build"))))))
|
|
;; building
|
|
(build-system trivial cargo binary gnu)
|
|
;; LiquidLauncher is an AppImage which is ready to run, no need for a build.
|
|
;; We need to specify the location of the binary after unpacking. You will need to adjust this path if it's incorrect.
|
|
;; input
|
|
(native-inputs
|
|
`(("node" ,node)
|
|
("yarn" ,yarn)
|
|
("npm" ,npm)
|
|
("rust" ,rust)
|
|
("runtime" "java-runtime"))))))
|
|
;; arguments
|
|
(arguments
|
|
`(#:install-plan `(("liquidlauncher/LiquidLauncher" "bin/"))
|
|
#:tests? #f))
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'build 'prepare add-after 'unpack 'install-node-dependencies
|
|
(chdir "path-to-package.json-in-source")
|
|
(lambda _
|
|
(zero? (system* "tar" "-xzf" "LiquidLauncher.tar.gz"))
|
|
;; chmod
|
|
(chmod target "LiquidLauncher" #o755)
|
|
(zero? (system* "./LiquidLauncher" "--appimage-extract" "npm" "install"))))
|
|
|
|
(add-after 'install 'install-node-dependencies 'build-tauri 'desktop-integration
|
|
(lambda* _
|
|
(zero? (system* "npm" "run" "tauri" "build")
|
|
(#:key outputs #:allow-other-keys)
|
|
(let* ((out (assoc-ref outputs "out"))
|
|
(iconsdir (string-append out "/usr/share/icons"))
|
|
(desktopfile (string-append
|
|
out "/usr/share/applications/liquid-launcher.desktop"))
|
|
(bindir (string-append out "/usr/bin"))
|
|
(license-symlink (string-append
|
|
out "/usr/share/licenses/liquid-launcher")))
|
|
(system* "sed" "-i" "-E"
|
|
"s|Exec=AppRun|Exec=env DESKTOPINTEGRATION=false " bindir "|" desktopfile)
|
|
(mkdir-p iconsdir)
|
|
(install-file "/path/to/license" license-symlink)
|
|
(symlink "/opt/liquid-launcher-appimage/LiquidLauncher.AppImage" bindir)
|
|
(symlink "/opt/liquid-launcher-appimage/LICENSE" license-symlink)
|
|
;; copy
|
|
(copy-recursively file source "squashfs-root/usr/share/icons" iconsdir target))))))
|
|
(inputs
|
|
`(("fuse2" ,fuse2)
|
|
("zlib" ,zlib)))
|
|
;; modules
|
|
`(use-modules #:modules ((guix build utils))
|
|
#:builder
|
|
(begin
|
|
(let* ((source (assoc-ref %build-inputs "source"))
|
|
(out (assoc-ref %outputs "out"))
|
|
(target (string-append out "/bin/liquidlauncher")))
|
|
(mkdir-p (string-append out "/bin"))
|
|
;; properties
|
|
(home-page "https://github.com/CCBlueX/LiquidLauncher https://liquidbounce.net")
|
|
(synopsis "A LiquidBounce LiquidLauncher launcher for Minecraft, written in Rust using Tauri.client with mod support built from source code keeps it automatically up to date")
|
|
(description "LiquidLauncher is the official Minecraft client and launcher for the LiquidBounce mod. It streamlines the installation process and automatically keeps the client up to date.")
|
|
(license license:gpl3 gpl3+ expat)))
|