godot/godot.spec
c unix 83a66432e5 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-11 23:10:18 +00:00

258 lines
8.8 KiB
RPMSpec

#
# spec file for package godot
#
# Copyright (c) 2020 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/
#
%define _buildshell /bin/bash
%define ca_bundle /var/lib/ca-certificates/ca-bundle.pem
Name: godot
Version: 3.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
Source3: %{name}-rpmlintrc
BuildRequires: Mesa-devel
BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: python3
BuildRequires: scons
BuildRequires: update-desktop-files
BuildRequires: yasm-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(libpcre2-32)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(libwslay)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(opusfile)
BuildRequires: pkgconfig(theora)
BuildRequires: pkgconfig(theoradec)
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(vorbisfile)
BuildRequires: pkgconfig(vpx)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(zlib)
%if 0%{?suse_version} > 1500
BuildRequires: pkgconfig(bullet)
BuildRequires: pkgconfig(libzstd)
%endif
Requires: ca-certificates
Recommends: ca-certificates-mozilla
Requires(post): update-desktop-files
Requires(postun): update-desktop-files
Suggests: godot-headless = %{version}
Suggests: godot-runner = %{version}
Suggests: godot-server = %{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.14
# Has custom changes to support seeking in zip archives
# Should not be unbundled.
Provides: bundled(minizip) = 1.2.11
# Can be unbundled if packaged
Provides: bundled(nanosvg)
Provides: bundled(squish) = 1.15
# Has custom changes
Provides: bundled(mbedtls) = 2.16.4
Provides: bundled(miniupnpc)
## Need to update in Factory ##
Provides: bundled(assimp)
%if 0%{?suse_version} > 1500
%else
Provides: bundled(bullet) = 2.89
%endif
%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.
%package headless
Summary: Headless version of Godot editor useful for command line
Group: Development/Tools/Other
Requires: ca-certificates
Recommends: ca-certificates-mozilla
%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
Requires: ca-certificates
Recommends: ca-certificates-mozilla
%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.
%package server
Summary: Godot headless binary for servers
Group: Amusements/Games/Other
Requires: ca-certificates
Recommends: ca-certificates-mozilla
%description server
This package contains the headless binary for the Godot game engine
particularly suited for running dedicated servers.
%prep
%setup -q -n %{name}-%{version}-stable
%build
# Adding distribution name to build name
%if 0%{?suse_version}
%if 0%{?is_opensuse}
export BUILD_NAME="openSUSE"
%else
export BUILD_NAME="SUSE"
%endif
%endif
# Configuring build to use some distribution libraries
unbundle_libs=('certs' 'freetype' 'libogg' 'libpng' 'libtheora' 'libvorbis' \
'libwebp' 'opus' 'pcre2' 'wslay' 'zlib')
# Unbundle more libs for Tumbleweed
%if %{suse_version} > 1500
unbundle_libs+=('bullet' 'zstd')
%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"
rm -rf thirdparty/$thirdparty
done
# Removing extra thirdparty libraries as they are either not needed or are
# provided by the distribution.
rm -rf thirdparty/rtaudio
# 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
%define build_args %{?_smp_mflags} \\\
progress=yes verbose=yes udev=yes use_lto=1 \\\
CCFLAGS='%{optflags}' \\\
system_certs_path=%{ca_bundle} $system_libs
# Build graphical editor (tools)
scons %{build_args} platform=x11 tools=yes target=release_debug
# 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
%install
# Installing the editor
install -D -p -m 755 bin/%{name}.x11.opt.tools.%{__isa_bits} %{buildroot}%{_bindir}/%{name}
# Installing the headless editor
install -D -p -m 755 bin/%{name}_server.x11.opt.tools.%{__isa_bits} %{buildroot}%{_bindir}/%{name}-headless
# Installing the runner
install -D -p -m 755 bin/%{name}.x11.opt.%{__isa_bits} %{buildroot}%{_bindir}/%{name}-runner
# Installing the server
install -D -p -m 755 bin/%{name}_server.x11.opt.%{__isa_bits} %{buildroot}%{_bindir}/%{name}-server
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}/appdata/org.godotengine.Godot.appdata.xml
%suse_update_desktop_file -i org.godotengine.Godot
cp thirdparty/README.md thirdparty_README.md
%fdupes -s %{buildroot}/%{_prefix}
%files
%license LICENSE.txt LOGO_LICENSE.md COPYRIGHT.txt thirdparty_README.md
%doc AUTHORS.md CHANGELOG.md CONTRIBUTING.md DONORS.md README.md CODE_OF_CONDUCT.md
%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}/appdata/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}
%files headless
%license LICENSE.txt LOGO_LICENSE.md COPYRIGHT.txt thirdparty_README.md
%doc AUTHORS.md CHANGELOG.md CONTRIBUTING.md DONORS.md README.md CODE_OF_CONDUCT.md
%{_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 CODE_OF_CONDUCT.md
%{_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 CODE_OF_CONDUCT.md
%{_bindir}/%{name}-server
%changelog