Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] New package: mindustry-7.0_b146
@ 2024-10-23 11:46 MIvanchev
  2024-10-23 12:17 ` MIvanchev
                   ` (27 more replies)
  0 siblings, 28 replies; 29+ messages in thread
From: MIvanchev @ 2024-10-23 11:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 699 bytes --]

There is a new pull request by MIvanchev against master on the void-packages repository

https://github.com/MIvanchev/void-packages ci-mindustry
https://github.com/void-linux/void-packages/pull/52749

New package: mindustry-7.0_b146
#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

#### Local build testing
- I built this PR locally for my native architecture, (X86_64-GLIBC)

Solves #38019, #45582.

A patch file from https://github.com/void-linux/void-packages/pull/52749.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ci-mindustry-52749.patch --]
[-- Type: text/x-diff, Size: 9676 bytes --]

From 3c3ce155c1f46ab560503c86b50f001c5a628538 Mon Sep 17 00:00:00 2001
From: Mihail Ivanchev <contact@ivanchev.net>
Date: Wed, 3 Apr 2024 17:05:39 +0200
Subject: [PATCH] New package: mindustry-7.0_b146

---
 srcpkgs/mindustry-server                      |   1 +
 srcpkgs/mindustry/files/mindustry             |   2 +
 srcpkgs/mindustry/files/mindustry-server      |   2 +
 .../mindustry/files/mindustry-server.desktop  |   9 ++
 srcpkgs/mindustry/files/mindustry.desktop     |   9 ++
 srcpkgs/mindustry/patches/local-arc.patch     | 114 ++++++++++++++++++
 srcpkgs/mindustry/template                    |  61 ++++++++++
 7 files changed, 198 insertions(+)
 create mode 120000 srcpkgs/mindustry-server
 create mode 100644 srcpkgs/mindustry/files/mindustry
 create mode 100644 srcpkgs/mindustry/files/mindustry-server
 create mode 100644 srcpkgs/mindustry/files/mindustry-server.desktop
 create mode 100644 srcpkgs/mindustry/files/mindustry.desktop
 create mode 100644 srcpkgs/mindustry/patches/local-arc.patch
 create mode 100644 srcpkgs/mindustry/template

diff --git a/srcpkgs/mindustry-server b/srcpkgs/mindustry-server
new file mode 120000
index 00000000000000..9eaea683d630ea
--- /dev/null
+++ b/srcpkgs/mindustry-server
@@ -0,0 +1 @@
+mindustry
\ No newline at end of file
diff --git a/srcpkgs/mindustry/files/mindustry b/srcpkgs/mindustry/files/mindustry
new file mode 100644
index 00000000000000..392ab236e52782
--- /dev/null
+++ b/srcpkgs/mindustry/files/mindustry
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/java -jar /usr/share/mindustry/Mindustry.jar "$@"
diff --git a/srcpkgs/mindustry/files/mindustry-server b/srcpkgs/mindustry/files/mindustry-server
new file mode 100644
index 00000000000000..abbde29b1db716
--- /dev/null
+++ b/srcpkgs/mindustry/files/mindustry-server
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/java -jar /usr/share/mindustry/server-release.jar "$@"
diff --git a/srcpkgs/mindustry/files/mindustry-server.desktop b/srcpkgs/mindustry/files/mindustry-server.desktop
new file mode 100644
index 00000000000000..f5bda888494a20
--- /dev/null
+++ b/srcpkgs/mindustry/files/mindustry-server.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Mindustry Server
+Comment=Automation tower defense RTS (server)
+Exec=mindustry-server
+Icon=mindustry-server
+Categories=Game;
+Terminal=true
diff --git a/srcpkgs/mindustry/files/mindustry.desktop b/srcpkgs/mindustry/files/mindustry.desktop
new file mode 100644
index 00000000000000..e9f2c8377e01ca
--- /dev/null
+++ b/srcpkgs/mindustry/files/mindustry.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Mindustry
+Comment=Automation tower defense RTS
+Exec=mindustry
+Icon=mindustry
+Categories=Game;
+Terminal=false
diff --git a/srcpkgs/mindustry/patches/local-arc.patch b/srcpkgs/mindustry/patches/local-arc.patch
new file mode 100644
index 00000000000000..fe0f3569d48d53
--- /dev/null
+++ b/srcpkgs/mindustry/patches/local-arc.patch
@@ -0,0 +1,114 @@
+diff '--color=auto' -Naur a/build.gradle b/build.gradle
+--- a/build.gradle	2024-10-22 17:02:02.872062571 +0200
++++ b/build.gradle	2024-10-21 16:04:59.582642809 +0200
+@@ -1,10 +1,14 @@
+ buildscript{
+     ext{
+-        getArcHash = {
+-            return new Properties().with{ p -> p.load(file('gradle.properties').newReader()); return p }["archash"]
+-        }
++        arcHash = property("archash")
++
++        localArc = !project.hasProperty("release") && new File(rootDir.parent, 'Arc').exists() && !project.hasProperty("noLocalArc")
+ 
+-        arcHash = getArcHash()
++        arcModule = { String name ->
++            //skip to last submodule
++            name = name.substring(name.lastIndexOf(':') + 1)
++            return "com.github.Anuken${localArc ? "" : ".Arc"}:$name:$arcHash"
++        }
+     }
+     
+     repositories{
+@@ -16,8 +20,8 @@
+     }
+ 
+     dependencies{
+-        classpath "com.github.Anuken.Arc:packer:$arcHash"
+-        classpath "com.github.Anuken.Arc:arc-core:$arcHash"
++        classpath arcModule(":extensions:packer")
++        classpath arcModule(":arc-core")
+     }
+ }
+ 
+@@ -48,20 +52,6 @@
+             return new File(projectDir.parent, '../Mindustry-Debug').exists() && !project.hasProperty("release") && project.hasProperty("args")
+         }
+ 
+-        localArc = {
+-            return !project.hasProperty("release") && !project.hasProperty("noLocalArc") && new File(projectDir.parent, '../Arc').exists()
+-        }
+-
+-        arcModule = { String name ->
+-            if(localArc()){
+-                return project(":Arc:$name")
+-            }else{
+-                //skip to last submodule
+-                if(name.contains(':')) name = name.split(':').last()
+-                return "com.github.Anuken.Arc:$name:${getArcHash()}"
+-            }
+-        }
+-
+         generateDeployName = { String platform ->
+             if(platform == "windows"){
+                 platform += "64"
+@@ -331,8 +321,8 @@
+         api arcModule("extensions:fx")
+         api arcModule("extensions:arcnet")
+         api "com.github.Anuken:rhino:$rhinoVersion"
+-        if(localArc() && debugged()) api arcModule("extensions:recorder")
+-        if(localArc()) api arcModule(":extensions:packer")
++        if(localArc && debugged()) api arcModule("extensions:recorder")
++        if(localArc) api arcModule(":extensions:packer")
+ 
+         annotationProcessor 'com.github.Anuken:jabel:0.9.0'
+         compileOnly project(":annotations")
+@@ -423,7 +413,7 @@
+ 
+     dependencies{
+         implementation 'com.squareup:javapoet:1.12.1'
+-        implementation "com.github.Anuken.Arc:arc-core:$arcHash"
++        implementation arcModule("arc-core")
+     }
+ }
+ 
+diff '--color=auto' -Naur a/settings.gradle b/settings.gradle
+--- a/settings.gradle	2024-10-22 17:02:31.778129695 +0200
++++ b/settings.gradle	2024-10-22 17:04:44.499440184 +0200
+@@ -34,33 +34,9 @@
+ }
+ 
+ if(!hasProperty("release")){
+-    if(new File(settingsDir, '../Arc').exists()){
+-        use(
+-        ':Arc',
+-        ':Arc:arc-core',
+-        ':Arc:extensions',
+-        ':Arc:extensions:freetype',
+-        ':Arc:extensions:recorder',
+-        ':Arc:extensions:arcnet',
+-        ':Arc:extensions:packer',
+-        ':Arc:extensions:g3d',
+-        ':Arc:extensions:fx',
+-        ':Arc:extensions:flabel',
+-        ':Arc:extensions:discord',
+-        ':Arc:extensions:profiling',
+-        ':Arc:natives',
+-        ':Arc:natives:natives-desktop',
+-        ':Arc:natives:natives-android',
+-        ':Arc:natives:natives-ios',
+-        ':Arc:natives:natives-freetype-desktop',
+-        ':Arc:natives:natives-freetype-android',
+-        ':Arc:natives:natives-freetype-ios',
+-        ':Arc:backends',
+-        ':Arc:backends:backend-sdl',
+-        ':Arc:backends:backend-android',
+-        ':Arc:backends:backend-robovm',
+-        ':Arc:backends:backend-headless'
+-        )
++    if(new File(rootDir.parent, 'Arc').exists()){
++        println("Compiling with localArc")
++        includeBuild("../Arc")
+     }
+ 
+     if(new File(settingsDir, '../Mindustry-Debug').exists()){
diff --git a/srcpkgs/mindustry/template b/srcpkgs/mindustry/template
new file mode 100644
index 00000000000000..2bd4eb64581d00
--- /dev/null
+++ b/srcpkgs/mindustry/template
@@ -0,0 +1,61 @@
+# Template file for 'mindustry'
+pkgname=mindustry
+version=7.0.b146
+revision=1
+_build=${version##*.b}
+hostmakedepends="openjdk17"
+depends="virtual?java-runtime desktop-file-utils hicolor-icon-theme"
+short_desc="Automation tower defense RTS"
+maintainer="Mihail Ivanchev <contact@ivanchev.net>"
+license="GPL-3.0-or-later"
+homepage="https://mindustrygame.github.io/"
+distfiles="https://github.com/Anuken/Arc/archive/refs/tags/v${_build}.tar.gz>Arc.tar.gz
+	https://github.com/Anuken/Mindustry/archive/refs/tags/v${_build}.tar.gz>Mindustry.tar.gz"
+checksum="30cc1b00968aaec8dbb76a2dad6439c7d7418970fafe24c350b2be4e68c3e5d6
+ aa1684d87d9f3e1d1a2da415b5e055ea6493fe31398748447927bd903019adbd"
+skip_extraction="Arc.tar.gz Mindustry.tar.gz"
+build_wrksrc=Mindustry-${_build}
+patch_args="-Np1 --directory=${build_wrksrc}"
+
+# TODO: Make sure this template doesn't download anything. Currently not possible
+# because Void's Gradle version is incompatible.
+
+# TODO: Mindustry will not run on JRE<17, we have no wait to check this because
+# virtual?java-runtime>=17 doesn't seem to work.
+
+case "$XBPS_TARGET_MACHINE" in
+	i686*) broken="Couldn't load shared library 'libarc.so' for target: Linux, 32-bit" ;;
+	*-musl) broken="Couldn't load shared library 'libarc64.so' for target: Linux, 64-bit" ;;
+esac
+
+# JAVA_HOME needs to be set because otherwise gradle fails to find Java.
+
+export JAVA_HOME=/usr/lib/jvm/openjdk17
+
+post_extract() {
+	vsrcextract -C Arc Arc.tar.gz
+	vsrcextract -C ${build_wrksrc} Mindustry.tar.gz
+}
+
+do_build() {
+	./gradlew --no-daemon dist -Pbuildversion="${_build}" desktop:dist server:dist
+}
+
+do_install() {
+	vmkdir usr/share/mindustry
+	vinstall desktop/build/libs/Mindustry.jar 644 usr/share/mindustry
+	vbin ${FILESDIR}/mindustry
+	vinstall ${FILESDIR}/mindustry.desktop 644 usr/share/applications
+	vinstall core/assets/icons/icon_64.png 644 usr/share/icons/hicolor/64x64/apps mindustry.png
+}
+
+mindustry-server_package() {
+	short_desc+=" (server)"
+	pkg_install() {
+		vmkdir usr/share/mindustry
+		vinstall server/build/libs/server-release.jar 644 usr/share/mindustry
+		vinstall ${FILESDIR}/mindustry-server.desktop 644 usr/share/applications
+		vbin ${FILESDIR}/mindustry-server
+	        vinstall core/assets/icons/icon_64.png 644 usr/share/icons/hicolor/64x64/apps mindustry-server.png
+	}
+}

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2025-04-24  7:45 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-23 11:46 [PR PATCH] New package: mindustry-7.0_b146 MIvanchev
2024-10-23 12:17 ` MIvanchev
2024-10-23 12:17 ` MIvanchev
2024-10-23 12:18 ` [PR PATCH] [Updated] " MIvanchev
2024-10-23 12:19 ` MIvanchev
2024-10-23 12:23 ` MIvanchev
2024-10-23 12:28 ` MIvanchev
2024-10-23 14:56 ` Johnnynator
2024-10-23 15:03 ` Johnnynator
2024-10-23 15:03 ` Johnnynator
2024-10-23 15:14 ` MIvanchev
2024-10-23 15:15 ` MIvanchev
2024-10-23 15:21 ` Johnnynator
2024-10-23 15:46 ` Johnnynator
2024-10-23 15:55 ` MIvanchev
2024-10-23 17:38 ` [PR PATCH] [Updated] " MIvanchev
2024-10-23 17:42 ` MIvanchev
2024-10-24  6:51 ` [PR PATCH] [Updated] [WIP] " MIvanchev
2024-10-24  7:12 ` MIvanchev
2024-10-24  7:13 ` MIvanchev
2024-10-24  7:16 ` MIvanchev
2024-10-24  7:19 ` MIvanchev
2024-10-24  7:29 ` MIvanchev
2024-10-24  7:31 ` MIvanchev
2024-10-24  7:35 ` [PR PATCH] [Updated] " MIvanchev
2025-01-23  1:57 ` github-actions
2025-01-23  8:03 ` MIvanchev
2025-04-24  2:08 ` github-actions
2025-04-24  7:45 ` MIvanchev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).