SHA256
1
0
forked from pool/godot
godot/godot.spec

407 lines
14 KiB
RPMSpec
Raw Normal View History

#
# spec file for package godot
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2017 Luke Jones, luke.nukem.jones@gmail.com
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# faster_build only builds the editor to speed up the build.
%define faster_build 0
%define _buildshell /bin/bash
# not needed anymore since 4.1
%define ca_bundle %{_localstatedir}/lib/ca-certificates/ca-bundle.pem
# building with default gcc 7.5 fails since 4.1 on Leap
# https://github.com/godotengine/godot/issues/79352
%define compiler_version_leap 10
Name: godot
Version: 4.2
Release: 0
Summary: Cross-Platform Game Engine with an Integrated Editor
License: MIT
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
# better linker version detection for pck embedding with runner
Patch0: improve_linker_detection.patch
BuildRequires: Mesa-devel
BuildRequires: desktop-file-utils
BuildRequires: fdupes
%if %{suse_version} > 1500
BuildRequires: gcc
BuildRequires: gcc-c++
%else
BuildRequires: gcc%{compiler_version_leap}
BuildRequires: gcc%{compiler_version_leap}-c++
%endif
BuildRequires: pkgconfig
BuildRequires: python3
BuildRequires: scons
BuildRequires: update-desktop-files
BuildRequires: yasm-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(libpcre2-32)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(opusfile)
BuildRequires: pkgconfig(speech-dispatcher)
BuildRequires: pkgconfig(theora)
BuildRequires: pkgconfig(theoradec)
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(vorbisfile)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xrender)
Accepting request 773320 from home:demonpig:Games:Tools - Removed patch files as they are no longer needed - Removed export_presets.cfg file as games should supply this file - Update to v3.2 Added: * Support for importing 3D scense using Assimp * Support for high-level multiplayer API and NAT traversal for WebRTC * Support for enabling / disabling parts of the editor or specific nodes * Added language server for GDScript * Added version control integration into the editor * Added a network profiler * Editor is now capped to 20FPS when the window is unfocused * Added MSAA support in the GLES2 renderer * Ability to define script templates on a per-project basis * Ability to limit the minimum and maximum window size * Minimap in the script editor * CSV files can now be imported as non-translation files * Multicast support in PacketPeerUDP * WebSocket improvements. * Support for SSL in WebSocketServer. * WebSocketClient can now use custom SSL certificates (except on HTML5). * WebSocketClient can now define custom headers. * The editor now features a built-in Web server for testing HTML5 projects * Reimplemented support for embedding project data in the PCK file Changed: * Tabs and space indentation can no longer be mixed in the same GDScript file * assert() in GDScript must now always be used with parentheses * UDP broadcasting is now disabled by default and must be enabled by calling set_broadcast_enabled(true) on the PacketPeerUDP instance * 3D collision shapes and RayCasts are now drawn in gray when disabled * The SCons build system now automatically detects the host platform * Exporting a project PCK or ZIP from the command line must now be done with the new --export-pack command-line argument * Exported PCK files now contain the Godot patch version in their header * "Set as Main Scene" context option for scenes in the FileSystem dock Removed: * Unused Panel panelf and panelnc styles. * thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping. * Rating icons in the Asset Library * Some editor languages are no longer available due to missing support for RTL and text shaping in Godot. * Arabic * Bengali * Persian * Hebrew * Hindi * Malayalam * Sinhalese * Tamil * Telugu * Urdu * Android: ARMv6 support. * iOS: ARMv7 support. Fixed: * The Project Manager now remembers the sorting option that was previously set * Fixed issues with PBR environment mapping * Several fixes to the GLES2 renderer * Fixed importing BMP images * Exporting a project via the command-line now returns a non-zero exit code if an error occurred during exporting * Fixed autocompletion in the script editor And more: https://github.com/godotengine/godot/blob/3.2/CHANGELOG.md OBS-URL: https://build.opensuse.org/request/show/773320 OBS-URL: https://build.opensuse.org/package/show/games/godot?expand=0&rev=4
2020-02-12 00:10:18 +01:00
%if 0%{?suse_version} > 1500
# Does not work currently:
# BuildRequires: embree-devel-static >= 3.13.0
# https://github.com/godotengine/godot/issues/64090 :
# unbundled freetype needs to be build with brotli decompression support
# to load build in WOFF2 editor fonts since godot version 3.5.
# This was added according to
# https://build.opensuse.org/package/view_file/M17N/freetype2/freetype2.changes
# in freetype2 version 2.10.2
# By default this seems to be currently only available in Tumbleweed (v2.12.1).
# As of 20220808 Leap 15.2, .3 and .4 report freetype2 version as 2.10.1
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(libbrotlicommon)
BuildRequires: pkgconfig(libbrotlidec)
BuildRequires: mbedtls-devel < 3
BuildRequires: pkgconfig(graphite2)
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(libwslay)
Accepting request 773320 from home:demonpig:Games:Tools - Removed patch files as they are no longer needed - Removed export_presets.cfg file as games should supply this file - Update to v3.2 Added: * Support for importing 3D scense using Assimp * Support for high-level multiplayer API and NAT traversal for WebRTC * Support for enabling / disabling parts of the editor or specific nodes * Added language server for GDScript * Added version control integration into the editor * Added a network profiler * Editor is now capped to 20FPS when the window is unfocused * Added MSAA support in the GLES2 renderer * Ability to define script templates on a per-project basis * Ability to limit the minimum and maximum window size * Minimap in the script editor * CSV files can now be imported as non-translation files * Multicast support in PacketPeerUDP * WebSocket improvements. * Support for SSL in WebSocketServer. * WebSocketClient can now use custom SSL certificates (except on HTML5). * WebSocketClient can now define custom headers. * The editor now features a built-in Web server for testing HTML5 projects * Reimplemented support for embedding project data in the PCK file Changed: * Tabs and space indentation can no longer be mixed in the same GDScript file * assert() in GDScript must now always be used with parentheses * UDP broadcasting is now disabled by default and must be enabled by calling set_broadcast_enabled(true) on the PacketPeerUDP instance * 3D collision shapes and RayCasts are now drawn in gray when disabled * The SCons build system now automatically detects the host platform * Exporting a project PCK or ZIP from the command line must now be done with the new --export-pack command-line argument * Exported PCK files now contain the Godot patch version in their header * "Set as Main Scene" context option for scenes in the FileSystem dock Removed: * Unused Panel panelf and panelnc styles. * thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping. * Rating icons in the Asset Library * Some editor languages are no longer available due to missing support for RTL and text shaping in Godot. * Arabic * Bengali * Persian * Hebrew * Hindi * Malayalam * Sinhalese * Tamil * Telugu * Urdu * Android: ARMv6 support. * iOS: ARMv7 support. Fixed: * The Project Manager now remembers the sorting option that was previously set * Fixed issues with PBR environment mapping * Several fixes to the GLES2 renderer * Fixed importing BMP images * Exporting a project via the command-line now returns a non-zero exit code if an error occurred during exporting * Fixed autocompletion in the script editor And more: https://github.com/godotengine/godot/blob/3.2/CHANGELOG.md OBS-URL: https://build.opensuse.org/request/show/773320 OBS-URL: https://build.opensuse.org/package/show/games/godot?expand=0&rev=4
2020-02-12 00:10:18 +01:00
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(miniupnpc)
BuildRequires: pkgconfig(zlib)
%else
%if 0%{?is_opensuse}
# SLES seems not to have wslay and miniupnpc
BuildRequires: libminiupnpc-devel
BuildRequires: pkgconfig(libwslay)
%if 0%{?sle_version} >= 150200
BuildRequires: mbedtls-devel
%endif
%endif
%endif
Requires: ca-certificates
Recommends: ca-certificates-mozilla
Requires(post): update-desktop-files
Requires(postun):update-desktop-files
Suggests: %{name}-runner = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# The following "Provides: bundled()" and comments were taken from the
# Fedora Godot specfile.
# Link: https://src.fedoraproject.org/rpms/godot/blob/master/f/godot.spec
# Has some modifications for IPv6 support, upstream enet is unresponsive
# Should not be unbundled.
Provides: bundled(enet) = 1.3.17
# Has custom changes to support seeking in zip archives
# Should not be unbundled.
Provides: bundled(minizip) = 1.3
Provides: bundled(FastLZ)
Provides: bundled(JetBrainsMono_Regular)
Provides: bundled(RVO2-3D)
Provides: bundled(Tangent_Space_Normal_Maps)
Provides: bundled(amd-fsr) = 1.0.2
Provides: bundled(amd-fsr2) = 2.2.1
Provides: bundled(angle)
Provides: bundled(astcenc) = 4.4.0
Provides: bundled(basis_universal) = 1.16.4
Provides: bundled(clipper2) = 1.2.2
Provides: bundled(cvtt)
Provides: bundled(doctest) = 2.4.11
Provides: bundled(etcpak) = 1.0
Provides: bundled(glad) = 2.0.4
# same version for glslang, spirv-reflect, volk and vulkan needed
Provides: bundled(glslang) = sdk-1.3.261.1
Provides: bundled(google-droid-fonts)
Provides: bundled(icu4c) = 73.2
Provides: bundled(ifaddrs-android)
Provides: bundled(jpeg-compressor) = 2.00
Provides: bundled(libktx) = 4.1.0
Provides: bundled(meshoptimizer)
Provides: bundled(mingw-std-threads)
Provides: bundled(minimp3)
Provides: bundled(msdfgen) = 1.10
Provides: bundled(noise)
Provides: bundled(noto-sans-fonts)
Provides: bundled(nvapi) = R525
Provides: bundled(openxr) = 1.0.31
Provides: bundled(pcg)
Provides: bundled(polyclipping)
Provides: bundled(polypartition)
Provides: bundled(pvrtccompressor)
Provides: bundled(smaz)
Provides: bundled(spirv-reflect) = sdk-1.3.261.1
Provides: bundled(stb)
Provides: bundled(thorvg) = 0.9.0
Provides: bundled(tinyexr) = 1.0.7
Provides: bundled(vhacd)
Provides: bundled(volk) = sdk-1.3.261.1
Provides: bundled(vulkan) = sdk-1.3.261.1
Provides: bundled(yuv2rgb)
Accepting request 773320 from home:demonpig:Games:Tools - Removed patch files as they are no longer needed - Removed export_presets.cfg file as games should supply this file - Update to v3.2 Added: * Support for importing 3D scense using Assimp * Support for high-level multiplayer API and NAT traversal for WebRTC * Support for enabling / disabling parts of the editor or specific nodes * Added language server for GDScript * Added version control integration into the editor * Added a network profiler * Editor is now capped to 20FPS when the window is unfocused * Added MSAA support in the GLES2 renderer * Ability to define script templates on a per-project basis * Ability to limit the minimum and maximum window size * Minimap in the script editor * CSV files can now be imported as non-translation files * Multicast support in PacketPeerUDP * WebSocket improvements. * Support for SSL in WebSocketServer. * WebSocketClient can now use custom SSL certificates (except on HTML5). * WebSocketClient can now define custom headers. * The editor now features a built-in Web server for testing HTML5 projects * Reimplemented support for embedding project data in the PCK file Changed: * Tabs and space indentation can no longer be mixed in the same GDScript file * assert() in GDScript must now always be used with parentheses * UDP broadcasting is now disabled by default and must be enabled by calling set_broadcast_enabled(true) on the PacketPeerUDP instance * 3D collision shapes and RayCasts are now drawn in gray when disabled * The SCons build system now automatically detects the host platform * Exporting a project PCK or ZIP from the command line must now be done with the new --export-pack command-line argument * Exported PCK files now contain the Godot patch version in their header * "Set as Main Scene" context option for scenes in the FileSystem dock Removed: * Unused Panel panelf and panelnc styles. * thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping. * Rating icons in the Asset Library * Some editor languages are no longer available due to missing support for RTL and text shaping in Godot. * Arabic * Bengali * Persian * Hebrew * Hindi * Malayalam * Sinhalese * Tamil * Telugu * Urdu * Android: ARMv6 support. * iOS: ARMv7 support. Fixed: * The Project Manager now remembers the sorting option that was previously set * Fixed issues with PBR environment mapping * Several fixes to the GLES2 renderer * Fixed importing BMP images * Exporting a project via the command-line now returns a non-zero exit code if an error occurred during exporting * Fixed autocompletion in the script editor And more: https://github.com/godotengine/godot/blob/3.2/CHANGELOG.md OBS-URL: https://build.opensuse.org/request/show/773320 OBS-URL: https://build.opensuse.org/package/show/games/godot?expand=0&rev=4
2020-02-12 00:10:18 +01:00
# Can be unbundled if packaged
Provides: bundled(recastnavigation) = 1.6.0
Provides: bundled(squish) = 1.15
Provides: bundled(xatlas)
# Embree 3.13.0+ supports both x86_64 and aarch64.
# per 20211108 Factory is at 3.13.0, Leap at 3.8 .
# 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.5
Accepting request 773320 from home:demonpig:Games:Tools - Removed patch files as they are no longer needed - Removed export_presets.cfg file as games should supply this file - Update to v3.2 Added: * Support for importing 3D scense using Assimp * Support for high-level multiplayer API and NAT traversal for WebRTC * Support for enabling / disabling parts of the editor or specific nodes * Added language server for GDScript * Added version control integration into the editor * Added a network profiler * Editor is now capped to 20FPS when the window is unfocused * Added MSAA support in the GLES2 renderer * Ability to define script templates on a per-project basis * Ability to limit the minimum and maximum window size * Minimap in the script editor * CSV files can now be imported as non-translation files * Multicast support in PacketPeerUDP * WebSocket improvements. * Support for SSL in WebSocketServer. * WebSocketClient can now use custom SSL certificates (except on HTML5). * WebSocketClient can now define custom headers. * The editor now features a built-in Web server for testing HTML5 projects * Reimplemented support for embedding project data in the PCK file Changed: * Tabs and space indentation can no longer be mixed in the same GDScript file * assert() in GDScript must now always be used with parentheses * UDP broadcasting is now disabled by default and must be enabled by calling set_broadcast_enabled(true) on the PacketPeerUDP instance * 3D collision shapes and RayCasts are now drawn in gray when disabled * The SCons build system now automatically detects the host platform * Exporting a project PCK or ZIP from the command line must now be done with the new --export-pack command-line argument * Exported PCK files now contain the Godot patch version in their header * "Set as Main Scene" context option for scenes in the FileSystem dock Removed: * Unused Panel panelf and panelnc styles. * thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping. * Rating icons in the Asset Library * Some editor languages are no longer available due to missing support for RTL and text shaping in Godot. * Arabic * Bengali * Persian * Hebrew * Hindi * Malayalam * Sinhalese * Tamil * Telugu * Urdu * Android: ARMv6 support. * iOS: ARMv7 support. Fixed: * The Project Manager now remembers the sorting option that was previously set * Fixed issues with PBR environment mapping * Several fixes to the GLES2 renderer * Fixed importing BMP images * Exporting a project via the command-line now returns a non-zero exit code if an error occurred during exporting * Fixed autocompletion in the script editor And more: https://github.com/godotengine/godot/blob/3.2/CHANGELOG.md OBS-URL: https://build.opensuse.org/request/show/773320 OBS-URL: https://build.opensuse.org/package/show/games/godot?expand=0&rev=4
2020-02-12 00:10:18 +01:00
%if 0%{?suse_version} > 1500
%else
Provides: bundled(brotli) = 1.1.0
# see comments for freetype2, libpng and zlib Factory BuildRequires
Provides: bundled(freetype2) = 2.13.2
Provides: bundled(graphite) = 1.3.14
Provides: bundled(harfbuzz) = 8.2.2
Provides: bundled(libpng) = 1.6.40
Provides: bundled(libzstd) = 1.5.5
Provides: bundled(zlib)
%if 0%{?sle_version} < 150200
Provides: bundled(mbedtls) = 2.28.5
%endif
%if !0%{?is_opensuse}
# SLES seems not to have miniupnpc and wslay
Provides: bundled(libwslay) = 1.1.1
Provides: bundled(miniupnpc) = 2.2.5
%endif
Accepting request 773320 from home:demonpig:Games:Tools - Removed patch files as they are no longer needed - Removed export_presets.cfg file as games should supply this file - Update to v3.2 Added: * Support for importing 3D scense using Assimp * Support for high-level multiplayer API and NAT traversal for WebRTC * Support for enabling / disabling parts of the editor or specific nodes * Added language server for GDScript * Added version control integration into the editor * Added a network profiler * Editor is now capped to 20FPS when the window is unfocused * Added MSAA support in the GLES2 renderer * Ability to define script templates on a per-project basis * Ability to limit the minimum and maximum window size * Minimap in the script editor * CSV files can now be imported as non-translation files * Multicast support in PacketPeerUDP * WebSocket improvements. * Support for SSL in WebSocketServer. * WebSocketClient can now use custom SSL certificates (except on HTML5). * WebSocketClient can now define custom headers. * The editor now features a built-in Web server for testing HTML5 projects * Reimplemented support for embedding project data in the PCK file Changed: * Tabs and space indentation can no longer be mixed in the same GDScript file * assert() in GDScript must now always be used with parentheses * UDP broadcasting is now disabled by default and must be enabled by calling set_broadcast_enabled(true) on the PacketPeerUDP instance * 3D collision shapes and RayCasts are now drawn in gray when disabled * The SCons build system now automatically detects the host platform * Exporting a project PCK or ZIP from the command line must now be done with the new --export-pack command-line argument * Exported PCK files now contain the Godot patch version in their header * "Set as Main Scene" context option for scenes in the FileSystem dock Removed: * Unused Panel panelf and panelnc styles. * thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping. * Rating icons in the Asset Library * Some editor languages are no longer available due to missing support for RTL and text shaping in Godot. * Arabic * Bengali * Persian * Hebrew * Hindi * Malayalam * Sinhalese * Tamil * Telugu * Urdu * Android: ARMv6 support. * iOS: ARMv7 support. Fixed: * The Project Manager now remembers the sorting option that was previously set * Fixed issues with PBR environment mapping * Several fixes to the GLES2 renderer * Fixed importing BMP images * Exporting a project via the command-line now returns a non-zero exit code if an error occurred during exporting * Fixed autocompletion in the script editor And more: https://github.com/godotengine/godot/blob/3.2/CHANGELOG.md OBS-URL: https://build.opensuse.org/request/show/773320 OBS-URL: https://build.opensuse.org/package/show/games/godot?expand=0&rev=4
2020-02-12 00:10:18 +01:00
%endif
# Build currently fails on armv7l
ExcludeArch: %arm
%description
Godot is a game engine. It provides a set of tools and a visually
oriented workflow that can export games to PC, Mobile and Web
platforms.
%if !0%{?faster_build}
%package runner
Summary: Shared binary to play games developed with the Godot engine
Group: Amusements/Games/Other
Requires: ca-certificates
Recommends: ca-certificates-mozilla
Suggests: %{name}-bash-completion
%description runner
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.
%endif
%package bash-completion
Summary: Godot command line completion for Bash
Group: Amusements/Games/Other
BuildArch: noarch
Requires: bash-completion
Supplements: (%{name} and bash-completion)
Enhances: (%{name}-runner and bash-completion)
%description bash-completion
Bash command line completion support for %{name} and %{name}-runner
%prep
%setup -q -n %{name}-%{version}-stable
%patch0 -p1
cp thirdparty/README.md thirdparty_README.md
# actual doc location in openSUSE
sed -i 's/\/usr\/share\/doc\/godot\//\/usr\/share\/doc\/packages\/godot\//' misc/dist/linux/godot.6
if [[ -z "$(desktop-file-validate misc/dist/linux/org.godotengine.Godot.desktop)" ]];
then
# desktop-file-utils version >= 0.25
echo desktop-file-utils is up to date and recognizes PrefersNonDefaultGPU.
# rpmlint complains nevertheless with older rpmlint-mini.
# Tumbleweed is fixed with update of rpmlint-mini.
# see https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys
# Perhaps because rpmlint-mini includes as of today (18.09.2020)
# desktop-file-utils-0.24 while we checked for available default version >= 0.25
else
echo PrefersNonDefaultGPU not recognized.
# rpmlint considers file invalid without "X-" prefix
sed -i 's/PrefersNonDefaultGPU=true/X-PrefersNonDefaultGPU=true/' misc/dist/linux/org.godotengine.Godot.desktop
fi
# disarm shebang
sed -i '1s/#!/##/' misc/dist/shell/godot.bash-completion
# bash completion for sub package
cp misc/dist/shell/godot.bash-completion misc/dist/shell/godot-runner
sed -i '$s/_complete_godot_bash godot/_complete_godot_bash godot-runner/' misc/dist/shell/godot-runner
%build
# Configuring build to use some distribution libraries
unbundle_libs=('certs' 'libogg' 'libtheora' 'libvorbis' \
'libwebp' 'pcre2')
# Adding distribution name to build name
%if 0%{?suse_version}
%if 0%{?is_opensuse}
# Unbundle more libs for openSUSE
unbundle_libs+=('miniupnpc' 'wslay')
export BUILD_NAME="openSUSE"
%else
export BUILD_NAME="SUSE"
%endif
%endif
# Unbundle more libs for Tumbleweed
%if %{suse_version} > 1500
unbundle_libs+=('brotli' 'freetype' 'graphite' 'harfbuzz' 'libpng' 'mbedtls' 'zlib' 'zstd')
%else
# Unbundle more libs for coming Leap
%if 0%{?sle_version} >= 150200 && 0%{?is_opensuse}
unbundle_libs+=('mbedtls')
%endif
%endif
system_libs=""
for thirdparty in "${unbundle_libs[@]}"; do
system_libs="$system_libs builtin_$thirdparty=no"
rm -rf thirdparty/$thirdparty
done
# Keep empty certificates file needed as "source" by
# function "make_certs_header" in core/core_builders.py
mkdir -pv thirdparty/certs
touch thirdparty/certs/ca-certificates.crt
use_sowrap="use_sowrap=no "
rm -rf thirdparty/linuxbsd_headers
%if %{suse_version} > 1500
%define ccflags %{optflags}
compiler=""
linkflags=""
%else
%define ccflags %{optflags} -fPIE
compiler="CC=gcc-%{compiler_version_leap} CXX=g++-%{compiler_version_leap}"
linkflags="LINKFLAGS=-pie"
%endif
%define build_args_common %{?_smp_mflags} \\\
progress=no verbose=yes udev=yes use_lto=1 \\\
use_static_cpp=no CCFLAGS='%{ccflags}' $linkflags $compiler \\\
system_certs_path=%{ca_bundle} $use_sowrap $system_libs
%ifarch aarch64 %arm
# Disable unsupported features - https://github.com/godotengine/godot/issues/48297#issuecomment-829165296
%define build_args %{build_args_common} module_denoise_enabled=no
%else
%define build_args %{build_args_common}
%endif
# Build graphical editor
scons %{build_args} platform=linuxbsd target=editor
%if !0%{?faster_build}
# Build game runner
scons %{build_args} platform=linuxbsd target=template_release production=yes
%endif
%install
# build binary suffix
%ifarch riscv64
suffix=rv64
%else
%ifarch aarch64
suffix=arm64
%else
suffix=%{__isa_name}_%{__isa_bits}
%endif
%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
install -D -p -m 644 icon.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
install -D -p -m 644 misc/dist/linux/org.godotengine.Godot.appdata.xml %{buildroot}%{_datadir}/metainfo/org.godotengine.Godot.appdata.xml
%suse_update_desktop_file -i org.godotengine.Godot
%if !0%{?faster_build}
# Installing the runner
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-runner %{buildroot}%{_datadir}/bash-completion/completions/%{name}-runner
%fdupes -s %{buildroot}/%{_prefix}
%files
%license LICENSE.txt LOGO_LICENSE.txt COPYRIGHT.txt thirdparty_README.md
%doc AUTHORS.md CHANGELOG.md CONTRIBUTING.md DONORS.md README.md logo.svg
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/256x256
%dir %{_datadir}/icons/hicolor/256x256/apps
%dir %{_datadir}/icons/hicolor/scalable
%dir %{_datadir}/icons/hicolor/scalable/apps
%{_bindir}/%{name}
%{_datadir}/metainfo/org.godotengine.Godot.appdata.xml
%{_datadir}/applications/org.godotengine.Godot.desktop
%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_mandir}/man6/%{name}.6%{?ext_man}
%if !0%{?faster_build}
%files runner
%license LICENSE.txt LOGO_LICENSE.txt COPYRIGHT.txt thirdparty_README.md
%doc AUTHORS.md CHANGELOG.md CONTRIBUTING.md DONORS.md README.md logo.svg
%{_bindir}/%{name}-runner
%endif
%files bash-completion
%license LICENSE.txt COPYRIGHT.txt
%{_datadir}/bash-completion/completions/%{name}
%{_datadir}/bash-completion/completions/%{name}-runner
%changelog