2024-01-16 18:14:46 +00:00
;;; 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/>.
2023-12-11 17:04:15 +00:00
2024-01-16 18:14:46 +00:00
;; 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 )
2024-01-16 21:04:56 +00:00
;;public
2023-12-11 17:04:15 +00:00
( define-public liquidlauncher
( package
( name "liquidlauncher" )
2024-01-16 18:14:46 +00:00
( 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" ) )
2024-01-16 21:04:56 +00:00
;; checksum
2024-01-16 18:14:46 +00:00
( sha256
( base32
"<INSERT CORRECT 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.
2023-12-11 17:04:15 +00:00
;; We need to specify the location of the binary after unpacking. You will need to adjust this path if it's incorrect.
2024-01-16 21:04:56 +00:00
;; input
2024-01-16 18:14:46 +00:00
( native-inputs
` ( ( "node" , node )
2024-01-16 21:04:56 +00:00
( "yarn" , yarn )
( "npm" , npm )
( "rust" , rust )
( "runtime" "java-runtime" ) ) ) ) ) )
2024-01-16 18:14:46 +00:00
;; 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." )
2024-01-16 21:04:56 +00:00
( license license:gpl3 gpl3+ expat ) ) )