diff --git a/certs_fallback.patch b/certs_fallback.patch index 488ad08..fcd0ac2 100644 --- a/certs_fallback.patch +++ b/certs_fallback.patch @@ -5,7 +5,7 @@ References: https://github.com/godotengine/godot/pull/22066#issuecomment-4215657 https://github.com/godotengine/godot/pull/22066#issuecomment-422528664 https://github.com/godotengine/godot/issues/22232 Upstream: offered to upstream -Rebased: 2021-11-08 +Rebased: 2023-03-03 If project has no value set for "network/ssl/certificates" (the default), "default_certs" is not filled by function "load_default_certificates" because @@ -42,10 +42,10 @@ See comments in patch for more details. } Error CryptoKeyMbedTLS::load(String p_path, bool p_public_only) { -@@ -317,10 +319,22 @@ +@@ -305,10 +307,22 @@ ERR_FAIL_COND(default_certs == nullptr); - if (p_path != "") { + if (!p_path.is_empty()) { // Use certs defined in project settings. default_certs->load(p_path); + @@ -64,4 +64,4 @@ See comments in patch for more details. #ifdef BUILTIN_CERTS_ENABLED else { // Use builtin certs only if user did not override it in project settings. - PoolByteArray out; + PackedByteArray out; diff --git a/godot-3.5.1-stable.tar.xz b/godot-3.5.1-stable.tar.xz deleted file mode 100644 index db5367f..0000000 --- a/godot-3.5.1-stable.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f4e0d9045b659d36df07ad6e0c5b54e34551bce2618da2549d8f8089749ac767 -size 24153448 diff --git a/godot-3.5.1-stable.tar.xz.sha256 b/godot-3.5.1-stable.tar.xz.sha256 deleted file mode 100644 index 84d6476..0000000 --- a/godot-3.5.1-stable.tar.xz.sha256 +++ /dev/null @@ -1 +0,0 @@ -f4e0d9045b659d36df07ad6e0c5b54e34551bce2618da2549d8f8089749ac767 godot-3.5.1-stable.tar.xz diff --git a/godot-4.0-stable.tar.xz b/godot-4.0-stable.tar.xz new file mode 100644 index 0000000..0b0d0ef --- /dev/null +++ b/godot-4.0-stable.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d92d2250176e2e5751e126ece72b78e6a124ee556111a8d8374c106e801b67f +size 29435592 diff --git a/godot-4.0-stable.tar.xz.sha256 b/godot-4.0-stable.tar.xz.sha256 new file mode 100644 index 0000000..0a4ed72 --- /dev/null +++ b/godot-4.0-stable.tar.xz.sha256 @@ -0,0 +1 @@ +8d92d2250176e2e5751e126ece72b78e6a124ee556111a8d8374c106e801b67f godot-4.0-stable.tar.xz diff --git a/godot.changes b/godot.changes index 654de30..c5e8922 100644 --- a/godot.changes +++ b/godot.changes @@ -1,3 +1,87 @@ +------------------------------------------------------------------- +Fri Mar 3 12:00:00 UTC 2023 - cunix@mail.de + +- existing 3.x projects will probably need manual work to port to 4.0 + * BACKUPS NEEDED! + +- Update to 4.0 + * 3D & General Rendering Overhaul + Vulkan & New Renderers + Highly Improved Lighting & Shadows + New Rendering Optimization Techniques + Enhanced Mid & Post-Processing + * 2D Improvements + Powerful New 2D Level-Editing Tools + New 2D Rendering Options + Improved 2D Lighting & Shadows + * Shaders & VFX + New Atmospheric Effects + Textures & Material Projection + Enhanced Shader-Game World Interaction + Improved Shader Editor + Extended Shader Language + Compute Shaders + * Scripting + GDScript + static typing system is now more robust + first-class functions, lambdas and signals + await and super keywords + report many errors simultaneously + automatically generate documentation + GDExtension (experimental) replaces GDNative + * Physics + Game-Specific Physics Engine + Multithreading & Performance Optimization + Better Physics API + Higher Simulation Stability + * UI and Text + Multiple Window Support + UI Editor Improvements + New Text Rendering Systems + New Theme and Theme Editor + * Internationalization + Extended Language Support + Easier Translation Workflow + * Editor & UX + Easier Importing + New Editor Features and Widgets + Inspector Dock Improvements + Scene Dock Improvements + Script Editor Improvements + Easier Version Control + New Movie Maker Mode + New Editor Theme + * Navigation + Server-Based Navigation System + Extended Complex Navigation Support + * XR + Wider Headset & Platform Support + Godot XR Tools + * Networking & Multiplayer + More Stable Networking Systems + Simplified Multiplayer Development Workflow + * Audio + Cleaner Sound + Built-in Polyphony + Music Looping Point and Text-To-Speech + * Animation + Enhanced Animation Editor + Improved 3D Animation Workflow + Animation Libraries and Retargeting System + Blending, Transitions and Complex Animation Support + New Tween Animation System + * Platform Support + Android & Web Support + More Exporting Options + * and so much more: + https://downloads.tuxfamily.org/godotengine/4.0/Godot_v4.0-stable_changelog_chrono.txt + +- certs_fallback.patch rebased + +- drop linker_pie_flag.patch + +- dropped separate headless and server packages + ------------------------------------------------------------------- Mon Nov 21 15:03:48 UTC 2022 - Dominique Leuenberger diff --git a/godot.spec b/godot.spec index 9903892..e30820e 100644 --- a/godot.spec +++ b/godot.spec @@ -24,7 +24,7 @@ %define ca_bundle %{_localstatedir}/lib/ca-certificates/ca-bundle.pem Name: godot -Version: 3.5.1 +Version: 4.0 Release: 0 Summary: Cross-Platform Game Engine with an Integrated Editor License: MIT @@ -32,12 +32,10 @@ Group: Development/Tools/Other URL: https://godotengine.org/ Source0: https://downloads.tuxfamily.org/godotengine/%{version}/%{name}-%{version}-stable.tar.xz Source1: https://downloads.tuxfamily.org/godotengine/%{version}/%{name}-%{version}-stable.tar.xz.sha256 -# Project policy does not allow "-no-pie" -Patch0: linker_pie_flag.patch # Use system certificates as fallback for certificates -Patch1: certs_fallback.patch +Patch0: certs_fallback.patch # Heap-buffer-overflow in bundled tinyexr -Patch2: tinyexr_thirdparty_upstream.patch +Patch1: tinyexr_thirdparty_upstream.patch BuildRequires: Mesa-devel BuildRequires: desktop-file-utils BuildRequires: fdupes @@ -49,24 +47,28 @@ BuildRequires: scons BuildRequires: update-desktop-files BuildRequires: yasm-devel BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(libpcre2-32) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(ogg) -BuildRequires: pkgconfig(opus) BuildRequires: pkgconfig(opusfile) +BuildRequires: pkgconfig(speech-dispatcher) BuildRequires: pkgconfig(theora) BuildRequires: pkgconfig(theoradec) BuildRequires: pkgconfig(vorbis) BuildRequires: pkgconfig(vorbisfile) -BuildRequires: pkgconfig(vpx) BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(xcursor) +BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xrandr) +BuildRequires: pkgconfig(xrender) %if 0%{?suse_version} > 1500 # Does not work currently: @@ -84,8 +86,10 @@ BuildRequires: pkgconfig(freetype2) >= 2.10.2 # Using bundled freetype2 throws build errors, if # we don't use bundled libpng and zlib as well. BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(graphite2) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: glslang-devel BuildRequires: mbedtls-devel -BuildRequires: pkgconfig(bullet) >= 2.90 BuildRequires: pkgconfig(libwslay) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(miniupnpc) @@ -105,9 +109,7 @@ Requires: ca-certificates Recommends: ca-certificates-mozilla Requires(post): update-desktop-files Requires(postun):update-desktop-files -Suggests: %{name}-headless = %{version} Suggests: %{name}-runner = %{version} -Suggests: %{name}-server = %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build # The following "Provides: bundled()" and comments were taken from the @@ -120,37 +122,47 @@ Provides: bundled(enet) = 1.3.17 # Has custom changes to support seeking in zip archives # Should not be unbundled. -Provides: bundled(minizip) = 1.2.12 +Provides: bundled(minizip) = 1.2.13 Provides: bundled(FastLZ) +Provides: bundled(FastNoiseLite) Provides: bundled(RVO2-3D) Provides: bundled(Tangent_Space_Normal_Maps) +Provides: bundled(amd-fsr) = 1.0.2 +Provides: bundled(astcenc) = 4.3.0 +Provides: bundled(basis_universal) Provides: bundled(brotli) Provides: bundled(cvtt) -Provides: bundled(etc2comp) -Provides: bundled(glad) +Provides: bundled(doctest) = 2.4.9 +Provides: bundled(etcpak) = 1.0 +Provides: bundled(glad) = 2.0.2 Provides: bundled(google-droid-fonts) -Provides: bundled(hack-fonts) +Provides: bundled(JetBrainsMono_Regular) Provides: bundled(hqx) +Provides: bundled(icu4c) = 72.1 Provides: bundled(ifaddrs-android) -Provides: bundled(jpeg-compressor) -Provides: bundled(libsimplewebm) +Provides: bundled(jpeg-compressor) = 2.00 +Provides: bundled(meshoptimizer) Provides: bundled(minimp3) +Provides: bundled(msdfgen) = 1.9.2 Provides: bundled(noto-sans-fonts) -Provides: bundled(oidn) -Provides: bundled(open-simplex-noise-in-c) +Provides: bundled(oidn) = 1.9.2 +Provides: bundled(openxr) = 1.0.26 Provides: bundled(pcg) Provides: bundled(polyclipping) Provides: bundled(polypartition) Provides: bundled(pvrtccompressor) Provides: bundled(smaz) +Provides: bundled(spirv-reflect) = sdk-1.3.231.1 Provides: bundled(stb) -Provides: bundled(tinyexr) +Provides: bundled(thorvg) = 0.8.3 +Provides: bundled(tinyexr) = 1.0.1 Provides: bundled(vhacd) +Provides: bundled(volk) = sdk-1.3.231.1 +Provides: bundled(vulkan) = sdk-1.3.231.1 Provides: bundled(yuv2rgb) # Can be unbundled if packaged -Provides: bundled(nanosvg) Provides: bundled(recastnavigation) Provides: bundled(squish) = 1.15 Provides: bundled(xatlas) @@ -160,23 +172,26 @@ Provides: bundled(xatlas) # Currently build fails with Distro (unbundled) embree on Tumbleweed although # the required version is available. # Perhaps because it is build with special flags (static) for blender. -Provides: bundled(embree) = 3.13.0 +Provides: bundled(embree) = 3.13.5 %if 0%{?suse_version} > 1500 %else -Provides: bundled(bullet) = 3.24 +Provides: bundled(glslang) = 11.12.0 # see comments for freetype2, libpng and zlib Factory BuildRequires -Provides: bundled(freetype2) +Provides: bundled(freetype2) = 2.12.1 +Provides: bundled(graphite) = 1.3.14 +Provides: bundled(harfbuzz) = 6.0.0 + Provides: bundled(libpng) = 1.6.38 Provides: bundled(libzstd) Provides: bundled(zlib) %if 0%{?sle_version} < 150200 -Provides: bundled(mbedtls) = 2.18.1 +Provides: bundled(mbedtls) = 2.18.2 %endif %if !0%{?is_opensuse} # SLES seems not to have miniupnpc and wslay Provides: bundled(libwslay) = 1.1.1 -Provides: bundled(miniupnpc) +Provides: bundled(miniupnpc) = 2.2.4 %endif %endif @@ -189,18 +204,6 @@ oriented workflow that can export games to PC, Mobile and Web platforms. %if !0%{?faster_build} - -%package headless -Summary: Headless version of Godot editor useful for command line -Group: Development/Tools/Other -Requires: ca-certificates -Recommends: ca-certificates-mozilla -Suggests: %{name}-bash-completion - -%description headless -This package is the headless version of the Godot editor that is suited for -exporting Godot games on the command line. - %package runner Summary: Shared binary to play games developed with the Godot engine Group: Amusements/Games/Other @@ -212,18 +215,6 @@ Suggests: %{name}-bash-completion This package contains a godot-runner binary for the Linux X11 platform, which can be used to run any game developed with the Godot engine simply by pointing to the location of the game's data package. - -%package server -Summary: Godot headless binary for servers -Group: Amusements/Games/Other -Requires: ca-certificates -Recommends: ca-certificates-mozilla -Suggests: %{name}-bash-completion - -%description server -This package contains the headless binary for the Godot game engine -particularly suited for running dedicated servers. - %endif %package bash-completion @@ -232,19 +223,15 @@ Group: Amusements/Games/Other BuildArch: noarch Requires: bash-completion Supplements: (%{name} and bash-completion) -Enhances: (%{name}-headless and bash-completion) Enhances: (%{name}-runner and bash-completion) -Enhances: (%{name}-server and bash-completion) %description bash-completion -Bash command line completion support for %{name}, %{name}-headless, -%{name}-runner and %{name}-server +Bash command line completion support for %{name} and %{name}-runner %prep %setup -q -n %{name}-%{version}-stable %patch0 -p1 %patch1 -p1 -%patch2 -p1 cp thirdparty/README.md thirdparty_README.md @@ -268,19 +255,14 @@ fi # disarm shebang sed -i '1s/#!/##/' misc/dist/shell/godot.bash-completion -# bash completion for sub packages -cp misc/dist/shell/godot.bash-completion misc/dist/shell/godot-headless +# bash completion for sub package cp misc/dist/shell/godot.bash-completion misc/dist/shell/godot-runner -cp misc/dist/shell/godot.bash-completion misc/dist/shell/godot-server - -sed -i '$s/_complete_godot_bash godot/_complete_godot_bash godot-headless/' misc/dist/shell/godot-headless sed -i '$s/_complete_godot_bash godot/_complete_godot_bash godot-runner/' misc/dist/shell/godot-runner -sed -i '$s/_complete_godot_bash godot/_complete_godot_bash godot-server/' misc/dist/shell/godot-server %build # Configuring build to use some distribution libraries unbundle_libs=('certs' 'libogg' 'libtheora' 'libvorbis' \ - 'libwebp' 'opus' 'pcre2') + 'libwebp' 'pcre2') # Adding distribution name to build name %if 0%{?suse_version} @@ -295,7 +277,7 @@ unbundle_libs=('certs' 'libogg' 'libtheora' 'libvorbis' \ # Unbundle more libs for Tumbleweed %if %{suse_version} > 1500 -unbundle_libs+=('bullet' 'freetype' 'libpng' 'mbedtls' 'zlib' 'zstd') +unbundle_libs+=('freetype' 'glslang' 'graphite' 'harfbuzz' 'libpng' 'mbedtls' 'zlib' 'zstd') %else # Unbundle more libs for coming Leap %if 0%{?sle_version} >= 150200 && 0%{?is_opensuse} @@ -303,14 +285,6 @@ unbundle_libs+=('mbedtls') %endif %endif -# Unbundle libvpx only if it doesn't meet the minimum requirement. -# See: https://github.com/godotengine/godot/tree/master/thirdparty#libvpx -vpx_version_min=1.6.0 -vpx_version=$(pkg-config --modversion vpx) -if [[ $vpx_version = $vpx_version_min || $vpx_version > $vpx_version_min ]]; then - unbundle_libs+=('libvpx') -fi - system_libs="" for thirdparty in "${unbundle_libs[@]}"; do system_libs="$system_libs builtin_$thirdparty=no" @@ -322,10 +296,12 @@ done mkdir -pv thirdparty/certs touch thirdparty/certs/ca-certificates.crt +rm -rf thirdparty/linuxbsd_headers + %define build_args_common %{?_smp_mflags} \\\ progress=no verbose=yes udev=yes use_lto=1 \\\ use_static_cpp=no CCFLAGS='%{optflags}' \\\ - system_certs_path=%{ca_bundle} $system_libs + system_certs_path=%{ca_bundle} use_sowrap=no $system_libs %ifarch aarch64 %arm # Disable unsupported features - https://github.com/godotengine/godot/issues/48297#issuecomment-829165296 @@ -334,29 +310,28 @@ touch thirdparty/certs/ca-certificates.crt %define build_args %{build_args_common} %endif -# Build graphical editor (tools) -# rename x11 to linuxbsd ? -scons %{build_args} platform=x11 tools=yes target=release_debug +# Build graphical editor +scons %{build_args} platform=linuxbsd target=editor %if !0%{?faster_build} -# Build headless version of the editor (with tools) -scons %{build_args} platform=server tools=yes target=release_debug - -# Build game runner (without tools) -scons %{build_args} platform=x11 tools=no target=release - -# Build server version (without tools) -scons %{build_args} platform=server tools=no target=release +# Build game runner +scons %{build_args} platform=linuxbsd target=template_release production=yes %endif %install -# Installing the editor +# build binary suffix %ifarch riscv64 suffix=rv64 %else -suffix=%{__isa_bits} +%ifarch aarch64 +suffix=arm64 +%else +suffix=%{__isa_name}_%{__isa_bits} %endif -install -D -p -m 755 bin/%{name}.x11.opt.tools.$suffix %{buildroot}%{_bindir}/%{name} +%endif + +# Installing the editor +install -D -p -m 755 bin/%{name}.linuxbsd.editor.$suffix %{buildroot}%{_bindir}/%{name} install -D -p -m 644 misc/dist/linux/godot.6 %{buildroot}/%{_mandir}/man6/%{name}.6%{?ext_man} install -D -p -m 644 icon.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{name}.png @@ -365,21 +340,13 @@ install -D -p -m 644 misc/dist/linux/org.godotengine.Godot.appdata.xml %{buildr %suse_update_desktop_file -i org.godotengine.Godot %if !0%{?faster_build} -# Installing the headless editor -install -D -p -m 755 bin/%{name}_server.x11.opt.tools.$suffix %{buildroot}%{_bindir}/%{name}-headless - # Installing the runner -install -D -p -m 755 bin/%{name}.x11.opt.$suffix %{buildroot}%{_bindir}/%{name}-runner - -# Installing the server -install -D -p -m 755 bin/%{name}_server.x11.opt.$suffix %{buildroot}%{_bindir}/%{name}-server +install -D -p -m 755 bin/%{name}.linuxbsd.template_release.$suffix %{buildroot}%{_bindir}/%{name}-runner %endif # Installing bash-completion install -D -p -m 644 misc/dist/shell/godot.bash-completion %{buildroot}%{_datadir}/bash-completion/completions/%{name} -install -D -p -m 644 misc/dist/shell/godot-headless %{buildroot}%{_datadir}/bash-completion/completions/%{name}-headless install -D -p -m 644 misc/dist/shell/godot-runner %{buildroot}%{_datadir}/bash-completion/completions/%{name}-runner -install -D -p -m 644 misc/dist/shell/godot-server %{buildroot}%{_datadir}/bash-completion/completions/%{name}-server %fdupes -s %{buildroot}/%{_prefix} @@ -399,27 +366,15 @@ install -D -p -m 644 misc/dist/shell/godot-server %{buildroot}%{_datadir}/bash-c %{_mandir}/man6/%{name}.6%{?ext_man} %if !0%{?faster_build} -%files headless -%license LICENSE.txt LOGO_LICENSE.md COPYRIGHT.txt thirdparty_README.md -%doc AUTHORS.md CHANGELOG.md CONTRIBUTING.md DONORS.md README.md logo.svg -%{_bindir}/%{name}-headless - %files runner %license LICENSE.txt LOGO_LICENSE.md COPYRIGHT.txt thirdparty_README.md %doc AUTHORS.md CHANGELOG.md CONTRIBUTING.md DONORS.md README.md logo.svg %{_bindir}/%{name}-runner - -%files server -%license LICENSE.txt LOGO_LICENSE.md COPYRIGHT.txt thirdparty_README.md -%doc AUTHORS.md CHANGELOG.md CONTRIBUTING.md DONORS.md README.md logo.svg -%{_bindir}/%{name}-server %endif %files bash-completion %license LICENSE.txt COPYRIGHT.txt %{_datadir}/bash-completion/completions/%{name} -%{_datadir}/bash-completion/completions/%{name}-headless %{_datadir}/bash-completion/completions/%{name}-runner -%{_datadir}/bash-completion/completions/%{name}-server %changelog diff --git a/linker_pie_flag.patch b/linker_pie_flag.patch deleted file mode 100644 index 3710280..0000000 --- a/linker_pie_flag.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: cunix@mail.de -Date: 2020-02-12 12:00:00 -Subject: linker should use "-pie" instead of "-no-pie" -References: https://github.com/godotengine/godot/pull/23542#issuecomment-436385853 - https://github.com/godotengine/godot/pull/23542 - https://github.com/godotengine/godot/issues/34533 -Upstream: seems to do the opposite -Rebased: 2021-04-22 -Rebased: 2021-11-08 -Rebased: 2022-08-06 - -Linker flag "-no-pie" is added by upstream. -rpmlint complains this violates project policy. -Patch replaces flag "-no-pie" with "-pie". - ---- - -diff -r -U 5 a/platform/x11/detect.py b/platform/x11/detect.py ---- a/platform/x11/detect.py -+++ b/platform/x11/detect.py -@@ -236,11 +236,11 @@ - # 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"]) -+ env.Append(LINKFLAGS=["-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"])