Github messages for voidlinux
 help / color / mirror / Atom feed
From: curiousjunior <curiousjunior@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] godot: add client and server export templates and headless editor
Date: Mon, 29 Nov 2021 23:13:15 +0100	[thread overview]
Message-ID: <20211129221315.AAtKnZPn7LvCSLTkOHv3e1b9yGZhmHSXfqk_J3J_7ng@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-34226@inbox.vuxu.org>

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

There is an updated pull request by curiousjunior against master on the void-packages repository

https://github.com/curiousjunior/void-packages godot
https://github.com/void-linux/void-packages/pull/34226

godot: add client and server export templates and headless editor
they are useful for everything that's not glibc or not x86 because there are no official binaries for those (who plays finished games in the editor?) and can be used to play already exported games

also I didn't test building and packaging on my own laptop because C++ is a cancer, so I'll wait for result of buildbot

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

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

From 15aff87141835ef29d26c87062a0594a77d35be9 Mon Sep 17 00:00:00 2001
From: Leonid Bobrov <curiousbeaver@disroot.org>
Date: Wed, 24 Nov 2021 14:26:38 +0200
Subject: [PATCH] godot: add client and server export templates and headless
 editor

both headless editor and export templates will be needed to package games made with godot as either source code available or proprietary binaries linked only against glibc

remove -no-pie flag because 1 out of 5 binaries not being PIE causes xbps-src to error, it was a workaround for some linux distros that treat PIE binaries as shared libraries
=> https://github.com/godotengine/godot/pull/23542 background
=> https://github.com/godotengine/godot/pull/50737 pushed to master but forgot to merge it in 3.x

remove clang from dependencies because without passing 'use_llvm=yes' to scons it's never used

both 'release' and 'release_debug' client and server are needed for custom exports

closes #34199
---
 srcpkgs/godot/patches/pie.patch | 23 ++++++++++++++++++
 srcpkgs/godot/template          | 41 +++++++++++++++++++++++++--------
 2 files changed, 54 insertions(+), 10 deletions(-)
 create mode 100644 srcpkgs/godot/patches/pie.patch

diff --git a/srcpkgs/godot/patches/pie.patch b/srcpkgs/godot/patches/pie.patch
new file mode 100644
index 000000000000..08964951e66e
--- /dev/null
+++ b/srcpkgs/godot/patches/pie.patch
@@ -0,0 +1,23 @@
+diff --git a/platform/x11/detect.py b/platform/x11/detect.py
+index 56ef4b8e29..c5fd8f7811 100644
+--- a/platform/x11/detect.py
++++ b/platform/x11/detect.py
+@@ -210,18 +210,6 @@ def configure(env):
+     env.Append(CCFLAGS=["-pipe"])
+     env.Append(LINKFLAGS=["-pipe"])
+ 
+-    # Check for gcc version >= 6 before adding -no-pie
+-    version = get_compiler_version(env) or [-1, -1]
+-    if using_gcc(env):
+-        if version[0] >= 6:
+-            env.Append(CCFLAGS=["-fpie"])
+-            env.Append(LINKFLAGS=["-no-pie"])
+-    # Do the same for clang should be fine with Clang 4 and higher
+-    if using_clang(env):
+-        if version[0] >= 4:
+-            env.Append(CCFLAGS=["-fpie"])
+-            env.Append(LINKFLAGS=["-no-pie"])
+-
+     ## Dependencies
+ 
+     env.ParseConfig("pkg-config x11 --cflags --libs")
diff --git a/srcpkgs/godot/template b/srcpkgs/godot/template
index c38f3f8c525a..7e7827b4c536 100644
--- a/srcpkgs/godot/template
+++ b/srcpkgs/godot/template
@@ -1,21 +1,19 @@
 # Template file for 'godot'
 pkgname=godot
 version=3.4
-revision=1
+revision=2
 archs="x86_64* i686* aarch64* armv7* ppc64*"
 wrksrc="${pkgname}-${version}-stable"
 build_style=scons
 # Godot contains private copies of libraries
 # that already have been packaged elsewhere.
-# Use builtin bullet for now as it's too old in repos (needs 2.89)
-# Toggle to not use builtin once bullet has been updated
-make_build_args="platform=x11 tools=yes target=release_debug dev=no progress=no
- pulseaudio=no builtin_bullet=false builtin_libpng=false builtin_libvpx=false
+make_build_args="dev=no progress=no pulseaudio=no
+ builtin_bullet=false builtin_libpng=false builtin_libvpx=false
  builtin_libwebp=false builtin_libogg=false builtin_libtheora=false
  builtin_opus=false builtin_libvorbis=false builtin_enet=false
  builtin_zlib=false builtin_freetype=false builtin_mbedtls=false
  builtin_miniupnpc=false builtin_pcre2=false"
-hostmakedepends="pkg-config clang"
+hostmakedepends="pkg-config"
 makedepends="
  alsa-lib-devel freetype-devel glu-devel libXcursor-devel libXi-devel
  libXinerama-devel libXrender-devel libXrandr-devel libX11-devel
@@ -42,15 +40,38 @@ pre_build() {
 	export CXXFLAGS=" $CXXFLAGS "
 }
 
+do_build() {
+	for tools in yes no; do
+		for target in release release_debug; do
+			for platform in x11 server; do
+				# tools provides editor functionality and we don't need it without debug capabilities
+				if [[ $tools != yes || $target != release ]]; then
+					scons ${makejobs} ${make_build_args} CCFLAGS="$CFLAGS" LINKFLAGS="$LDFLAGS" tools=${tools} target=${target} platform=${platform}
+				fi
+			done
+		done
+	done
+}
+
 do_install() {
 	vlicense LICENSE.txt
 	vinstall ${FILESDIR}/godot.desktop 644 /usr/share/applications/
 	vinstall ${wrksrc}/icon.png 644 /usr/share/pixmaps/ godot.png
 
 	case "$XBPS_TARGET_MACHINE" in
-		x86_64*|aarch64*) vbin bin/godot.x11.opt.tools.64 godot;;
-		ppc64le*) vbin bin/godot.x11.opt.tools.ppc64le godot;;
-		ppc64*) vbin bin/godot.x11.opt.tools.ppc64 godot;;
-		*) vbin bin/godot.x11.opt.tools.32 godot;;
+		x86_64*|aarch64*) _godot_arch=64;;
+		ppc64le*) _godot_arch=ppc64le;;
+		ppc64*) _godot_arch=ppc64;;
+		*) _godot_arch=32;;
 	esac
+
+	# editors, use headless for packaging games
+	vbin bin/godot.x11.opt.tools.$_godot_arch godot
+	vbin bin/godot_server.x11.opt.tools.$_godot_arch godot-headless
+
+	# export templates, use for packaging games and playing with musl libc
+	vbin bin/godot.x11.opt.$_godot_arch godot-client
+	vbin bin/godot.x11.opt.debug.$_godot_arch godot-client-debug
+	vbin bin/godot_server.x11.opt.$_godot_arch godot-server
+	vbin bin/godot_server.x11.opt.debug.$_godot_arch godot-server-debug
 }

  parent reply	other threads:[~2021-11-29 22:13 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-24 12:41 [PR PATCH] godot: add client and server export templates curiousjunior
2021-11-24 14:16 ` [PR PATCH] [Updated] " curiousjunior
2021-11-24 14:17 ` curiousjunior
2021-11-24 14:20 ` curiousjunior
2021-11-24 15:53 ` [PR PATCH] [Updated] " curiousjunior
2021-11-24 18:16 ` curiousjunior
2021-11-26  1:17 ` curiousjunior
2021-11-26  1:35 ` curiousjunior
2021-11-26  1:50 ` curiousjunior
2021-11-26  1:53 ` curiousjunior
2021-11-26  2:44 ` curiousjunior
2021-11-29 19:36 ` [PR REVIEW] " ericonr
2021-11-29 19:36 ` ericonr
2021-11-29 19:36 ` ericonr
2021-11-29 19:36 ` ericonr
2021-11-29 19:36 ` ericonr
2021-11-29 19:36 ` ericonr
2021-11-29 19:58 ` curiousjunior
2021-11-29 19:59 ` curiousjunior
2021-11-29 20:00 ` curiousjunior
2021-11-29 20:13 ` curiousjunior
2021-11-29 20:22 ` curiousjunior
2021-11-29 21:37 ` [PR PATCH] [Updated] " curiousjunior
2021-11-29 21:43 ` curiousjunior
2021-11-29 21:49 ` curiousjunior
2021-11-29 21:59 ` curiousjunior
2021-11-29 22:13 ` curiousjunior [this message]
2021-11-30  4:58 ` [PR REVIEW] godot: add client and server export templates and headless editor ahesford
2021-11-30  6:23 ` [PR PATCH] [Updated] " curiousjunior
2021-11-30  6:27 ` [PR REVIEW] godot: add LTO, export templates and headless curiousjunior
2021-11-30  6:32 ` [PR PATCH] [Updated] " curiousjunior
2021-11-30  6:37 ` curiousjunior
2021-11-30  6:44 ` curiousjunior
2021-11-30  7:23 ` curiousjunior
2021-11-30 15:28 ` q66
2021-11-30 16:00 ` curiousjunior
2021-11-30 16:15 ` ahesford
2021-11-30 16:59 ` q66
2021-11-30 17:12 ` ericonr
2021-11-30 17:14 ` curiousjunior
2021-11-30 17:14 ` [PR REVIEW] " codingHahn
2021-11-30 17:14 ` q66
2021-11-30 17:15 ` [PR PATCH] [Closed]: " ahesford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211129221315.AAtKnZPn7LvCSLTkOHv3e1b9yGZhmHSXfqk_J3J_7ng@z \
    --to=curiousjunior@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).