I am going to go ahead and submit a request to delete godot-mono-enhanced
, and focus my efforts here from now on. If you are wondering why godot-mono-enhanced
was deleted, it's because its purpose has ceased to exist after I became maintainer of godot-mono
, and was able to bring it up to standards.
Search Criteria
Package Details: godot-mono 4.2.2-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/godot-mono.git (read-only, click to copy) |
---|---|
Package Base: | godot-mono |
Description: | An advanced, feature packed, multi-platform 2D and 3D game engine |
Upstream URL: | https://godotengine.org/ |
Keywords: | Development Engine Game Gamedev Godot |
Licenses: | MIT |
Conflicts: | godot |
Provides: | godot |
Submitter: | Rinma |
Maintainer: | Rinma (HurricanePootis) |
Last Packager: | Rinma |
Votes: | 13 |
Popularity: | 0.37 |
First Submitted: | 2018-03-01 19:45 (UTC) |
Last Updated: | 2024-04-18 08:09 (UTC) |
Dependencies (33)
- dotnet-sdk (dotnet-sdk-2.2AUR, dotnet-sdk-2.2-vs2017AUR, dotnet-sdk-3.0AUR, dotnet-sdk-2.1AUR, dotnet-sdk-5.0-binAUR, dotnet-sdk-6.0.110-binAUR, dotnet-sdk-7.0-binAUR, dotnet-sdk-6.0-binAUR, dotnet-sdk-binAUR, dotnet-sdk-preview-binAUR)
- embree3
- freetype2 (freetype2-gitAUR, freetype2-qdoledAUR, freetype2-macosAUR)
- graphite (graphite-gitAUR)
- harfbuzz (harfbuzz-gitAUR)
- harfbuzz-icu (harfbuzz-icu-gitAUR)
- hicolor-icon-theme (hicolor-icon-theme-gitAUR)
- libglvnd (libglvnd-gitAUR)
- libspeechd (libspeechd-gitAUR)
- libsquish (libsquish-fixed-tablesAUR)
- libtheora (libtheora-gitAUR)
- libvorbis (libvorbis-aotuvAUR, libvorbis-aotuv-lancerAUR, libvorbis-gitAUR)
- libwebp (libwebp-gitAUR)
- libwslay
- libxcursor
- libxi (libxi-gitAUR)
- libxinerama (libxinerama-randr-gitAUR)
- libxrandr (libxrandr-gitAUR)
- mbedtls2
- miniupnpc (miniupnpc-gitAUR)
- Show 13 more dependencies...
Required by (8)
- funemustation-git (requires godot) (make)
- godot-cpp (requires godot) (make)
- godot-export-templates-git (requires godot) (optional)
- godot-package-manager-git (requires godot) (optional)
- hypertimer-git (requires godot)
- opengamepadui-git (requires godot) (make)
- pixelorama (requires godot) (make)
- pixelorama-git (requires godot) (make)
Sources (1)
HurricanePootis commented on 2023-12-13 10:13 (UTC)
HurricanePootis commented on 2023-12-03 01:58 (UTC)
@xyproto, thanks for making me co-maintainer. Before I delete godot-mono-enhanced, I am going to test out being co-maintainer of this package for at least 1 or 2 release before I am comfortable. Thanks for looking out for AUR!
xyproto commented on 2023-12-02 13:47 (UTC)
Dear maintainers of godot-mono and godot-mono-enhanced. I added HurricanePootis as a co-maintainer to this package, since I think it's better to collaborate. I think it will be better for the users. Perhaps we can remove godot-mono-enhanced if you can collaborate on this package instead. Best of luck, and thanks for maintaining Arch Linux packages. It benefits us all.
FabioLolix commented on 2023-10-14 10:11 (UTC)
About provides and conflicts all godot-mono
packages can be installed alongside godot
so aren't drop-in replacement, this pkgbuild don't have to specify any and don't have to provide itself
About source=()
please don't rename to godot-mono, I already have godot in the common source destination (SRCDEST= in makepkg.conf), with that are downloaded a second time instead of being shared
Catmeow72 commented on 2023-08-03 17:16 (UTC)
I have a patch for the PKGBUILD that allows using CLI arguments on the Godot binary through the wrapper script.
diff --git a/PKGBUILD b/PKGBUILD
index 5c42cf4..ad2f4c2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -60,7 +60,7 @@ package() {
# I have to use TERM=xterm because of an bug in mono
cat > "${pkgdir}/usr/bin/${pkgname}" <<-EOF
#!/usr/bin/env bash
- /opt/godot-mono/bin/godot.linuxbsd.editor.x86_64.mono
+ /opt/godot-mono/bin/godot.linuxbsd.editor.x86_64.mono "\$@"
EOF
chmod a+x ${pkgdir}/usr/bin/${pkgname}
HurricanePootis commented on 2023-03-11 22:36 (UTC)
Hey, there are a few changes that can be made this to this PKGBUILD to improve it's quality.
First, Godot no longer builds with Mono, but now requires dotnet. Regardless, they still call the module mono, but don't be fooled. Furthermore, you listed a lot of depends() in makedepends(). Thirdly, you are building a lot of the thirdparty modules which be instead linked to system libraries, like the official godot
package does. Fourthly, you are not using all of the godot build options that godot
uses, which makes godot-mono
have different options and experience than godot
.
Below is a patch file to make your PKGBUILD more in line with godot
, improving the over all quality. It's important to make sure your package of a derivative of an existing package in the official repos is in line with the official PKGBUILD.
diff --git a/PKGBUILD b/PKGBUILD
index 951c937..23c502e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,45 +6,62 @@ pkgdesc="An advanced, feature packed, multi-platform 2D and 3D game engine."
arch=('i686' 'x86_64')
url="https://godotengine.org/"
license=('MIT')
-depends=('mono>=6.12.0' 'mono-msbuild')
-optdepends=('dotnet-core')
-makedepends=(
- 'git'
- 'scons>=3.0'
- 'libxcursor'
- 'libxinerama'
- 'libxi'
- 'libxrandr'
- 'mesa'
- 'glu'
- 'libglvnd'
- 'alsa-lib'
- 'pulseaudio'
- 'yasm'
- 'freetype2'
- 'gcc'
- 'pkg-config'
- 'rsync'
- 'nuget'
- 'xorg-server-xvfb'
-)
+depends=(embree freetype2 graphite harfbuzz harfbuzz-icu libglvnd libspeechd libsquish
+ libtheora libvorbis libwebp libwslay libxcursor libxi libxinerama libxrandr
+ mbedtls miniupnpc pcre2 dotnet-sdk)
+makedepends=(alsa-lib gcc pulseaudio scons yasm xorg-server-xvfb nuget python git)
provides=('godot-mono')
conflicts=('godot-mono-bin')
-source=(${pkgname}::git+https://github.com/godotengine/godot.git)
+source=(${pkgname}::git+https://github.com/godotengine/godot.git#tag=${pkgver}-stable)
md5sums=('SKIP')
build() {
cd "${srcdir}/${pkgname}"
- #Checkout actual version of Godot
- git checkout ${pkgver}-stable
-
#Build temporary binaries to generate needed files for mono support
- scons -j$(nproc) platform=linuxbsd tools=yes module_mono_enabled=yes mono_glue=no
+ scons -j$(nproc) \
+ CFLAGS="$CFLAGS -fPIC -Wl,-z,relro,-z,now -w" \
+ CXXFLAGS="$CXXFLAGS -fPIC -Wl,-z,relro,-z,now -w" \
+ LINKFLAGS="$LDFLAGS" \
+ arch=$CARCH \
+ builtin_embree=no \
+ builtin_enet=yes \
+ builtin_freetype=no \
+ builtin_msdfgen=yes \
+ builtin_glslang=yes \
+ builtin_graphite=no \
+ builtin_harfbuzz=no \
+ builtin_icu4c=yes \
+ builtin_libogg=no \
+ builtin_libpng=no \
+ builtin_libtheora=no \
+ builtin_libvorbis=no \
+ builtin_libwebp=no \
+ builtin_wslay=yes \
+ builtin_mbedtls=no \
+ builtin_miniupnpc=no \
+ builtin_pcre2=no \
+ builtin_pcre2_with_jit=no \
+ builtin_recastnavigation=yes \
+ builtin_rvo2=yes \
+ builtin_squish=no \
+ builtin_xatlas=yes \
+ builtin_zlib=no \
+ builtin_zstd=no \
+ colored=yes \
+ platform=linuxbsd \
+ production=yes \
+ pulseaudio=yes \
+ system_certs_path=/etc/ssl/certs/ca-certificates.crt \
+ target=editor \
+ use_llvm=no \
+ werror=no \
+ module_mono_enabled=yes \
+ mono_glue=no
+
xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" bin/godot.linuxbsd.editor.x86_64.mono --generate-mono-glue modules/mono/glue
# Build normal binaries
- #scons -j$(nproc) platform=linuxbsd target=editor tools=yes module_mono_enabled=yes bits=64
modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
}
HurricanePootis commented on 2023-02-14 00:15 (UTC) (edited on 2023-02-14 00:16 (UTC) by HurricanePootis)
Hey, thanks for updating godot-mono
I think this PKGBUILD could be better if it was based off of godot
's. As in, the official godot PKGBUILD does a lot to make godot more friendly on archlinux like unbundling dependencies, more extensive build options, etc. I have made a version of godot-mono
based off of godot
, and it would be totally AOK if you were to use this version.
Here is the PKGBUILD
_pkgname=godot
pkgname=godot-mono
pkgver=3.5.1
pkgrel=1
pkgdesc='Advanced cross-platform 2D and 3D game engine'
url='https://godotengine.org'
license=(MIT)
arch=(x86_64)
makedepends=(gcc scons yasm alsa-lib pulseaudio nuget xorg-server-xvfb)
depends=(embree freetype2 libglvnd libtheora libvorbis libvpx libwebp
libwslay libxcursor libxi libxinerama libxrandr mbedtls miniupnpc opusfile mono mono-msbuild)
optdepends=(pipewire-alsa pipewire-pulse)
source=("$_pkgname-$pkgver.tar.gz::https://github.com/godotengine/godot/archive/$pkgver-stable.tar.gz"
"godot")
conflicts=("godot" "godot-mono-bin")
provides=("godot")
b2sums=('e8a209972fc680ce9c024762715c64ea36f9d1ca223c6911a5179ff1cff3c2a143b703bb5b41f198b8b3ed5bd2c474316177bda094a3ef34d06e2dcf2adb2815'
'fd6454322cca1c45aa2e9dac455ca2961de498b418b3b1ca3c09ad7e8ddbe194d48d249cda5efcacd4fea3f569ef5941ad54d67361e02ed2a2ecfcb649a91c2f')
prepare() {
# Disable the check that adds -no-pie to LINKFLAGS, for gcc != 6
sed -i 's,0] >,0] =,g' $_pkgname-$pkgver-stable/platform/x11/detect.py
}
build() {
# Not unbundled (yet):
# bullet (FS#72924, https://github.com/godotengine/godot/issues/55599)
# certs (FS#72762)
# enet (contains no upstreamed IPv6 support)
# libsquish, recast, xatlas
# AUR: libwebm, squish
local to_unbundle="embree freetype libogg libpng libtheora libvorbis libvpx libwebp mbedtls miniupnpc opus pcre2 wslay zlib zstd"
local system_libs=""
for _lib in $to_unbundle; do
system_libs+="builtin_"$_lib"=no "
rm -rf thirdparty/$_lib
done
# Build one to generate mono glue
cd $_pkgname-$pkgver-stable
export BUILD_NAME=arch_linux
scons -j$(nproc) \
bits=64 \
colored=yes \
platform=x11 \
pulseaudio=yes \
system_certs_path=/etc/ssl/certs/ca-certificates.crt \
target=release_debug \
tools=yes \
use_llvm=no \
module_mono_enabled=yes \
mono_glue=no \
CFLAGS="$CFLAGS -fPIC -Wl,-z,relro,-z,now -w" \
CXXFLAGS="$CXXFLAGS -fPIC -Wl,-z,relro,-z,now -w" \
LINKFLAGS="$LDFLAGS" \
$system_libs
# Generate godot mono glue
cd $srcdir/$_pkgname-$pkgver-stable
xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
./bin/godot.x11.opt.tools.64.mono --generate-mono-glue $srcdir/$_pkgname-$pkgver-stable/modules/mono/glue
# Build two with mono glue
cd $srcdir/$_pkgname-$pkgver-stable
export BUILD_NAME=arch_linux
scons -j$(nproc) \
bits=64 \
colored=yes \
platform=x11 \
pulseaudio=yes \
system_certs_path=/etc/ssl/certs/ca-certificates.crt \
target=release_debug \
tools=yes \
use_llvm=no \
module_mono_enabled=yes \
mono_glue=yes \
CFLAGS="$CFLAGS -fPIC -Wl,-z,relro,-z,now -w" \
CXXFLAGS="$CXXFLAGS -fPIC -Wl,-z,relro,-z,now -w" \
LINKFLAGS="$LDFLAGS" \
$system_libs
}
package() {
cd $_pkgname-$pkgver-stable
install -Dm644 misc/dist/linux/org.godotengine.Godot.desktop \
"$pkgdir/usr/share/applications/godot.desktop"
install -Dm644 icon.svg "$pkgdir/usr/share/pixmaps/godot.svg"
install -Dm755 bin/godot.x11.opt.tools.64.mono "$pkgdir/opt/$pkgname/godot.x11.opt.tools.64.mono"
install -Dm755 bin/libmonosgen-2.0.so "$pkgdir/opt/$pkgname/libmonosgen-2.0.so"
cp -r bin/GodotSharp "$pkgdir/opt/$pkgname/GodotSharp"
install -Dm755 "$srcdir/godot" "$pkgdir/usr/bin/godot"
install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/godot/LICENSE"
install -Dm644 misc/dist/linux/godot.6 "$pkgdir/usr/share/man/man6/godot.6"
install -Dm644 misc/dist/linux/org.godotengine.Godot.xml \
"$pkgdir/usr/share/mime/packages/org.godotengine.Godot.xml"
}
And here is the godot
launch file
#!/usr/bin/env bash
/opt/godot-mono/godot.x11.opt.tools.64.mono "$@"
Pinned Comments
HurricanePootis commented on 2023-12-13 10:13 (UTC)
I am going to go ahead and submit a request to delete
godot-mono-enhanced
, and focus my efforts here from now on. If you are wondering whygodot-mono-enhanced
was deleted, it's because its purpose has ceased to exist after I became maintainer ofgodot-mono
, and was able to bring it up to standards.xyproto commented on 2023-12-02 13:47 (UTC)
Dear maintainers of godot-mono and godot-mono-enhanced. I added HurricanePootis as a co-maintainer to this package, since I think it's better to collaborate. I think it will be better for the users. Perhaps we can remove godot-mono-enhanced if you can collaborate on this package instead. Best of luck, and thanks for maintaining Arch Linux packages. It benefits us all.