The package rpms/godot.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/godot.git/commit/?id=b96f3c6cfdb0....
Change:
-%ifarch armv7hl
Thanks.
Full change:
============
commit b96f3c6cfdb0baec7024de7b9a22dd15d8d1eeb8
Author: Rmi Verschelde <rverschelde(a)gmail.com>
Date: Fri Apr 26 18:20:25 2019 +0200
Version 3.1.1-stable
- Adds dependency on system mbedtls and miniupnpc
- Removes dependency on openssl
- Bundles libwebsockets, can't build against system one for now
- Bundles tinyexr, not packaged (and likely not relevant to package)
- Rename -server build to -headless, add an actual server runtime package
- Build with LTO, improves performance a lot (but slow linking)
- Adds MIME type for .godot project files
diff --git a/.gitignore b/.gitignore
index bd83818..4150b49 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@
/godot-3.0.3-stable.tar.gz
/godot-3.0.4-stable.tar.gz
/godot-3.0.6-stable.tar.gz
+/godot-3.1.1-stable.tar.xz
+/godot-3.1.1-stable.tar.xz.sha256
diff --git a/godot.spec b/godot.spec
index 31664b3..f4cdcd7 100644
--- a/godot.spec
+++ b/godot.spec
@@ -1,27 +1,31 @@
+# Headless is editor binary to run without X11, e.g. for exporting games from CLI
+%bcond_without headless
+# Server is template (optimized, no tools) binary to run multiplayer servers
%bcond_without server
%define status stable
%define uversion %{version}-%{status}
+%define rdnsname org.godotengine.Godot
+
Name: godot
-Version: 3.0.6
-Release: 3%{?dist}
+Version: 3.1.1
+Release: 1%{?dist}
Summary: Multi-platform 2D and 3D game engine with a feature-rich editor
# Godot itself is MIT-licensed, the rest is from vendored thirdparty libraries
License: MIT and CC-BY and ASL 2.0 and BSD and zlib and OFL and Bitstream Vera
Fonts Copyright and ISC and MPLv2.0
URL:
https://godotengine.org
-Source0:
https://github.com/godotengine/godot/archive/%{uversion}/%{name}-%{uversi...
-
-# Workaround for GCC < 8.1 ICE on armv7hl
-#
https://github.com/godotengine/godot/issues/16100
-#
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79085
-Patch0: godot-3.0.2-workaround-gcc-ice-armv7hl.patch
+Source0:
https://downloads.tuxfamily.org/godotengine/%{version}/%{name}-%{uversion...
+Source1:
https://downloads.tuxfamily.org/godotengine/%{version}/%{name}-%{uversion...
# Upstream does not support those arches (for now)
ExcludeArch: ppc64 ppc64le s390x
BuildRequires: gcc-c++
+BuildRequires: mbedtls-devel
+BuildRequires: miniupnpc-devel
BuildRequires: pkgconfig(alsa)
+#BuildRequires: pkgconfig(bullet)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(libpcre2-32)
@@ -29,8 +33,8 @@ BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libwebp)
+#BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(ogg)
-BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(opusfile)
BuildRequires: pkgconfig(theora)
@@ -42,6 +46,7 @@ BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
+BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(zlib)
BuildRequires: scons
@@ -61,10 +66,8 @@ Requires: hicolor-icon-theme
# though that the `thirdparty` folder also contains code which is typically
# not packaged in distros, and is probably best left bundled.
-# Git commit slightly newer than 2.87 but not backward compatible
-# (d05ad4b821ba867dfd01f1e5f22c4d9d1bda6869)
-# Can be unbundled if bullet 2.88+ is available
-Provides: bundled(bullet) = 2.87
+# Can be unbundled once bullet 2.88+ is packaged.
+Provides: bundled(bullet) = 2.88
# Has some modifications for IPv6 support, upstream enet is unresponsive.
# Should not be unbundled.
# Cf:
https://github.com/godotengine/godot/issues/6992
@@ -72,21 +75,24 @@ Provides: bundled(enet) = 1.3.13
# Upstream commit from 2016 (32d5ac49414a8914ec1e1f285f3f927c6e8ec29d),
# newer than 1.0.0.27 which is the last tag.
# Could be unbundled if packaged.
-# Godot upstream will soon deprecate this "libsimplewebm" module.
Provides: bundled(libwebm)
+# System libwebsockets linked against openssl fails building
+#
https://github.com/godotengine/godot/issues/27632
+Provides: bundled(libwebsockets) = 3.1.0
# Has custom changes to support seeking in zip archives
# Should not be unbundled.
-Provides: bundled(minizip) = 1.2.4
+Provides: bundled(minizip) = 1.2.11
# Upstream commit 9a74da4db5ac74083e444010d75114658581b9c7, no releases.
# Could be unbundled if packaged.
Provides: bundled(nanosvg)
# Could be unbundled if packaged.
Provides: bundled(squish) = 1.15
-# Can't be unbundled out-of-the-box as it uses experimental APIs available
-# only to static linking. They're not critical features though and could
-# maybe be patched away to link against a shared zstd.
+# Could be unbundled if packaged.
+Provides: bundled(tinyexr)
+# Can be unbundled once we provide 1.4.0, as it uses some of the advanced APIs
+# added in that release.
# Cf:
https://github.com/godotengine/godot/issues/17374
-Provides: bundled(zstd) = 1.3.3
+Provides: bundled(zstd) = 1.4.0
%if 0%{?rhel} && 0%{?rhel} < 8
# Can't be unbundled on RHEL 7 which has libvpx 1.3.0, too old for Godot
@@ -103,12 +109,13 @@ license. No strings attached, no royalties, nothing. Your game is
yours,
down to the last line of engine code.
%files
-%doc DONORS.md README.md
+%doc CHANGELOG.md DONORS.md README.md
%license AUTHORS.md COPYRIGHT.txt LICENSE.txt LOGO_LICENSE.md
%{_bindir}/%{name}
-%{_datadir}/applications/%{name}.desktop
+%{_datadir}/applications/%{rdnsname}.desktop
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
-%{_datadir}/metainfo/%{name}.appdata.xml
+%{_datadir}/metainfo/%{rdnsname}.appdata.xml
+%{_datadir}/mime/application/x-%{name}-project.xml
%{_mandir}/man6/%{name}.6*
%if 0%{?rhel} && 0%{?rhel} <= 7
@@ -127,13 +134,35 @@ fi
#----------------------------------------------------------------------
+%if %{with headless}
+%package headless
+Summary: Godot headless editor binary for CLI usage
+
+%description headless
+This package contains the headless binary for the Godot game engine,
+particularly suited for CLI usage, e.g. to export projects from a server
+or build system.
+
+To run game servers, see the godot-server package which contains an
+optimized template build.
+
+%files headless
+%license AUTHORS.md COPYRIGHT.txt LICENSE.txt
+%{_bindir}/%{name}-headless
+%endif
+
+#----------------------------------------------------------------------
+
%if %{with server}
%package server
-Summary: Godot headless binary for servers
+Summary: Godot headless runtime binary for hosting game servers
%description server
-This package contains the headless binary for the Godot game engine,
-particularly suited for running dedicated servers.
+This package contains the headless binary for the Godot game engine's
+runtime, useful to host standalone game servers.
+
+To use editor tools from the command line, see the godot-headless
+package.
%files server
%license AUTHORS.md COPYRIGHT.txt LICENSE.txt
@@ -157,23 +186,16 @@ by pointing to the location of the game's data package.
#----------------------------------------------------------------------
%prep
-%setup -q -n %{name}-%{uversion}
-
-%ifarch armv7hl
-%if 0%{?rhel} > 7 || 0%{?fedora} < 29
-%patch0 -p1 -b .armv7hl-gcc-ice
-%endif
-%endif
-
-# Windows-specific
-rm -rf thirdparty/rtaudio
+%autosetup -p1 -n %{name}-%{uversion}
%build
# Needs to be in %%build so that system_libs stays in scope
# We don't unbundle enet and minizip as they have necessary custom changes
-# We don't unbundle bullet yet as it needs a version newer than 2.87 (current
stable)
-# We don't unbundle zstd yet as it's using experimental APIs available only with
static linking
-to_unbundle="freetype libogg libpng libtheora libvorbis libwebp openssl opus pcre2
zlib"
+# We can't unbundle bullet yet as 2.88+ is required
+# We can't unbundle zstd yet as it's using advanced APIs only available in
1.4.0+
+# FIXME: Not unbundling libwebsockets right now as it fails building with system one:
+#
https://github.com/godotengine/godot/issues/27632
+to_unbundle="freetype libogg libpng libtheora libvorbis libwebp mbedtls miniupnpc
opus pcre2 zlib zstd"
# Godot's libsimplewebm doesn't build against EPEL7's older libvpx
%if ! 0%{?rhel} || 0%{?rhel} > 7
to_unbundle+=" libvpx"
@@ -192,7 +214,7 @@ ldflags="%{?ldflags}"
ccflags="%{?__global_cflags}"
ldflags="%{?__global_ldflags}"
%endif
-%define _scons scons %{?_smp_mflags} CCFLAGS="$ccflags"
LINKFLAGS="$ldflags" $system_libs udev=yes progress=no
+%define _scons scons %{?_smp_mflags} CCFLAGS="$ccflags"
LINKFLAGS="$ldflags" $system_libs use_lto=yes udev=yes progress=no
%if 0%{?fedora}
export BUILD_NAME="fedora"
@@ -210,36 +232,54 @@ export BUILD_NAME="mageia"
# Build game runner (without tools)
%_scons p=x11 tools=no target=release
-%if %{with server}
+%if %{with headless}
# Build headless version of the editor
%_scons p=server tools=yes target=release_debug
%endif
+%if %{with server}
+# Build headless version of the runtime for servers
+%_scons p=server tools=no target=release
+%endif
+
%install
install -d %{buildroot}%{_bindir}
install -m755 bin/%{name}.x11.opt.tools.%{__isa_bits} %{buildroot}%{_bindir}/%{name}
install -m755 bin/%{name}.x11.opt.%{__isa_bits} %{buildroot}%{_bindir}/%{name}-runner
+%if %{with headless}
+install -m755 bin/%{name}_server.x11.opt.tools.%{__isa_bits}
%{buildroot}%{_bindir}/%{name}-headless
+%endif
%if %{with server}
-install -m755 bin/%{name}_server.server.opt.tools.%{__isa_bits}
%{buildroot}%{_bindir}/%{name}-server
+install -m755 bin/%{name}_server.x11.opt.%{__isa_bits}
%{buildroot}%{_bindir}/%{name}-server
%endif
-install -d %{buildroot}%{_datadir}/applications
-desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
- misc/dist/linux/%{name}.desktop
-
-install -D -p -m644 icon.svg \
- %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
-install -D -m644 misc/dist/linux/%{name}.appdata.xml \
- %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
+install -D -m644 icon.svg \
+ %{buildroot}%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
+install -D -m644 misc/dist/linux/%{rdnsname}.desktop \
+ %{buildroot}%{_datadir}/applications/%{rdnsname}.desktop
+install -D -m644 misc/dist/linux/%{rdnsname}.appdata.xml \
+ %{buildroot}%{_datadir}/metainfo/%{rdnsname}.appdata.xml
+install -D -m644 misc/dist/linux/x-%{name}-project.xml \
+ %{buildroot}%{_datadir}/mime/application/x-%{name}-project.xml
install -D -m644 misc/dist/linux/%{name}.6 \
%{buildroot}%{_mandir}/man6/%{name}.6
%check
# Validate desktop and appdata files
-desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
-appstream-util validate-relax --nonet
%{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
+desktop-file-validate %{buildroot}%{_datadir}/applications/%{rdnsname}.desktop
+appstream-util validate-relax --nonet
%{buildroot}%{_datadir}/metainfo/%{rdnsname}.appdata.xml
%changelog
+* Fri Apr 26 2019 Rmi Verschelde <akien(a)fedoraproject.org> - 3.1.1-1
+- Version 3.1.1-stable
+- Adds dependency on system mbedtls and miniupnpc
+- Removes dependency on openssl
+- Bundles libwebsockets, can't build against system one for now
+- Bundles tinyexr, not packaged (and likely not relevant to package)
+- Rename -server build to -headless, add an actual server runtime package
+- Build with LTO, improves performance a lot (but slow linking)
+- Adds MIME type for .godot project files
+
* Tue Feb 05 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 3.0.6-3
- rebuilt (libvpx)
diff --git a/sources b/sources
index 1718b47..d4e0bc9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (godot-3.0.6-stable.tar.gz) =
034f32f7ca2e2b04a65dc0f0c7f92514e7627b0598c33de4dff827d7be1ba3c234258dca2363c73e06e3869ed24c133130a176ed938fb19492c7b192506d7187
+SHA512 (godot-3.1.1-stable.tar.xz.sha256) =
6f36bdee13856a794ac97665d3bd93df6809f52a861d963bed2027011e0cba55b4883b43c413af93f6b09f629f76f42ec8c6fe1a2d5b6a270e2328e810af4f40