- Fix build on ix86 in combination with LTO, the bundled mbedtls from premake5 creates duplicate symbols from inline asm. Add avoid_duplicate_global_symbol_from_asm.patch - Add 0001-Fix-ODR-violation-for-ShaderModelRendererInternals.patch - Clean up dozens of unnecessary build dependencies. - Disable --with-system-mozjs38 option on systems which lack the mozjs38 package - Include the libmozjs38-ps-release.so binary on systems which lack the mozjs38 package - Require more build dependencies on systems which lack the mozjs38 package - Add 0001-fix-fcollada-error.patch to fix a build failure with gcc10 - Disable LTO on i586. - Add _constraints to avoid build failures due to OOM - Spec file cleanup: * Use https for Url and Source tags * Remove defattr * Remove __DATE__ mangling, handled by GCC + SOURCE_DATE_EPOCH * Remove support for Leap 42.x, unresolvable anyway - Update to 0.0.23b: See https://play0ad.com/re-release-of-0-a-d-alpha-23-ken-wood/ - Update to 0.0.23: See https://play0ad.com/new-release-0-a-d-alpha-23-ken-wood/ - Remove fix_abs_of_unsigned_char_on_arm.patch: upstreamed - Remove system-tinygettext.patch: Upstream thinks this might lead to problems See https://trac.wildfiregames.com/ticket/4192 - Add BuildReq libsodium and remove tinygettext to use shipped one - Keep fix_abs_of_unsigned_char_on_arm.patch intact and disable the conflicting/irrelevant hunk in the spec file - Revert the changes to use bundled mozjs38 on Leap 42.3 again (no changelog entry), it does not build on 42.3. Use fixed mozjs38 from distribution instead. - Add fix_abs_of_unsigned_char_on_arm.patch, fixes build on 32/64 bit ARM (and probably PPC) - Enable nvidia-texture-tools only on supported archs - Use system mozjs38, bundled one fails to build on TW - Remove special handling for Leap 42.1 - Pass compiler flags to bundled Collada - Stop depending on boost-devel (boo#1062766) - Build with system nvidia-texture-tools (boo#1053393) - Update to version 0.0.22: + Remake of many models, animations and textures, two new music tracks. + Configuration-free Multiplayer Hosting. + Capture the Relic Gamemode. + Aura and Heal Range Visualization. + Twelve new maps, including scripted enemies, rising water and a tutorial. + Espionage Technology, Team Bonuses and Hero Auras. + Petra AI Diplomacy and Attack Strategies. + Summary Screen Graphs. + Cinema Path Editing. + Buddy System. - Drop 0ad-desktop.patch: fixed upstream. - Install the upstream provided appdata.xml file. - Update to version 0.0.21 See: https://play0ad.com/new-release-0-a-d-alpha-21-ulysses/ - Add patch 0ad-desktop.patch because of rpmlint-error invalid- desktopfile invalid key URL - Drop patch fix-c++14-compat.patch because now in upstream - Rebase patch system-tinygettext.patch - Added system-tinygettext.patch - Removed code for other distributions from spec file, sine we just build for openSUSE. - Update License field and trim filler words from description. - Fixed build with gcc6 (Tumbleweed), added fix-c++14-compat.patch - Build with wxWidgets 3 and reenable dependency generation - Update to version 0.0.20 * New maps * Better graphics and Camera See https://play0ad.com/new-release-0-a-d-alpha-20-timosthenes/ - use changelog time instead of build time to fix build-compare - Update to version 0.0.19 - Use xz archive instead of gz - update to version 0.0.18 - use libminiupnpc-devel instead of builtin libminiupnpc - update to version 0.0.17 - use builtin libminiupnpc to work inspite of incompatible OS version - require same versioned data package - build using external libicu - Update to version 0.0.16. - Update to version 0.0.15. - Update to version 0.0.14. - Adhere to https://en.opensuse.org/SourceUrls - Update to version 0.0.13. - Added BuildRequires libXcursor-devel as they are not automatically installed for openSUSE > 12.2 - Update to 0.0.12 - Remove obsolete unused Debian build scripts - Update to 0.0.11 - New version number scheme - Remove fam/gamin dependency - Update to r11863 - Update to r11339 - Update to r10803 - Update to r10288 - Update to r9786 - libenet0-devel -> libenet-devel - Update to r9530 - libenet-devel -> libenet0-devel - Update to r9049 - wxGTK -> wxWidgets migration - Update to r8832 - Update to r8413 - Update to r7970 - Compile in Release mode - Initial package OBS-URL: https://build.opensuse.org/request/show/824972 OBS-URL: https://build.opensuse.org/package/show/games/0ad?expand=0&rev=103
154 lines
4.9 KiB
RPMSpec
154 lines
4.9 KiB
RPMSpec
#
|
|
# spec file for package 0ad
|
|
#
|
|
# Copyright (c) 2020 SUSE LLC
|
|
#
|
|
# 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/
|
|
#
|
|
|
|
|
|
# Enable system mozjs38 only on openSUSE versions which still provide it
|
|
|
|
%if 0%{?suse_version} >= 1550
|
|
%bcond_with system_mozjs
|
|
%else
|
|
%bcond_without system_mozjs
|
|
%endif
|
|
|
|
# Enable NVTT only on arch supported by nvidia-texture-tools
|
|
|
|
%ifarch %{ix86} x86_64 ppc
|
|
%bcond_without enable_nvtt
|
|
%else
|
|
%bcond_with enable_nvtt
|
|
%endif
|
|
|
|
Name: 0ad
|
|
Version: 0.0.23b
|
|
Release: 0
|
|
Summary: A real-time strategy game of ancient warfare
|
|
License: GPL-2.0-or-later AND LGPL-3.0-or-later AND CC-BY-SA-3.0 AND MIT AND ISC AND MPL-2.0 AND BSD-3-Clause
|
|
Group: Amusements/Games/Strategy/Real Time
|
|
URL: https://play0ad.com/
|
|
Source: https://releases.wildfiregames.com/%{name}-%{version}-alpha-unix-build.tar.xz
|
|
# PATCH-FIX-UPSTREAM
|
|
Patch0: avoid_duplicate_global_symbol_from_asm.patch
|
|
# PATCH-FIX-UPSTREAM -- https://trac.wildfiregames.com/changeset/23794/?format=diff
|
|
Patch1: 0001-fix-fcollada-error.patch
|
|
# PATCH-FIX-UPSTREAM
|
|
Patch2: 0001-Fix-ODR-violation-for-ShaderModelRendererInternals.patch
|
|
BuildRequires: cmake
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: libXcursor-devel
|
|
BuildRequires: libboost_filesystem-devel
|
|
BuildRequires: libboost_system-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: libminiupnpc-devel
|
|
BuildRequires: libpng-devel
|
|
%if %{with enable_nvtt}
|
|
BuildRequires: nvidia-texture-tools
|
|
%endif
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: python
|
|
BuildRequires: update-desktop-files
|
|
BuildRequires: wxWidgets-3_0-devel
|
|
BuildRequires: pkgconfig(IL)
|
|
BuildRequires: pkgconfig(gloox)
|
|
BuildRequires: pkgconfig(icu-i18n)
|
|
BuildRequires: pkgconfig(libcurl)
|
|
BuildRequires: pkgconfig(libenet)
|
|
BuildRequires: pkgconfig(libsodium) >= 1.0.13
|
|
BuildRequires: pkgconfig(libxml-2.0)
|
|
%if %{with system_mozjs}
|
|
BuildRequires: pkgconfig(mozjs-38)
|
|
%else
|
|
BuildRequires: python2-xml
|
|
BuildRequires: pkgconfig(nspr)
|
|
%endif
|
|
BuildRequires: pkgconfig(openal)
|
|
BuildRequires: pkgconfig(sdl2)
|
|
BuildRequires: pkgconfig(vorbis)
|
|
BuildRequires: pkgconfig(zlib)
|
|
Requires: 0ad-data = %{version}
|
|
|
|
%description
|
|
0 A.D. (pronounced "zero ey-dee") is a real-time strategy (RTS) game
|
|
of ancient warfare. It is a historically-based war/economy game that
|
|
allows players to relive or rewrite the history of Western
|
|
civilizations, focusing on the years between 500 B.C. and 500 A.D.
|
|
The project contains 3D graphics, detailed artwork, sound, and a
|
|
flexible game engine.
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{version}-alpha
|
|
%patch0 -p1
|
|
%patch1 -p1
|
|
%patch2 -p1
|
|
|
|
%build
|
|
export CFLAGS="%{optflags}"
|
|
# bundled Collada uses CCFLAGS
|
|
export CCFLAGS="%{optflags}"
|
|
export CPPFLAGS="%{optflags} -fpermissive"
|
|
build/workspaces/update-workspaces.sh \
|
|
%{?_smp_mflags} \
|
|
--bindir=%{_bindir} \
|
|
--datadir=%{_datadir}/%{name} \
|
|
--libdir=%{_libdir}/%{name} \
|
|
%if %{with enable_nvtt}
|
|
--with-system-nvtt \
|
|
%else
|
|
--without-nvtt \
|
|
%endif
|
|
%if %{with system_mozjs}
|
|
--with-system-mozjs38 \
|
|
%endif
|
|
|
|
pushd build/workspaces/gcc
|
|
make verbose=1 %{?_smp_mflags}
|
|
popd
|
|
|
|
%install
|
|
install -Dm 0755 binaries/system/ActorEditor %{buildroot}%{_bindir}/ActorEditor
|
|
install -Dm 0755 binaries/system/pyrogenesis %{buildroot}%{_bindir}/pyrogenesis
|
|
install -Dm 0755 binaries/system/libCollada.so %{buildroot}%{_libdir}/%{name}/libCollada.so
|
|
install -Dm 0755 binaries/system/libAtlasUI.so %{buildroot}%{_libdir}/%{name}/libAtlasUI.so
|
|
%if %{without system_mozjs}
|
|
install -Dm 0755 binaries/system/libmozjs38-ps-release.so %{buildroot}%{_libdir}/%{name}/libmozjs38-ps-release.so
|
|
%endif
|
|
|
|
install -Dm 0644 build/resources/0ad.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
|
|
install -Dm 0644 build/resources/0ad.appdata.xml %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml
|
|
install -Dm 0644 build/resources/0ad.png %{buildroot}%{_datadir}/pixmaps/%{name}.png
|
|
|
|
%suse_update_desktop_file %{name}
|
|
|
|
install -Dm 0755 build/resources/0ad.sh %{buildroot}%{_bindir}/0ad
|
|
|
|
mkdir -p %{buildroot}%{_libdir}/%{name}
|
|
mkdir -p %{buildroot}%{_datadir}/%{name}
|
|
|
|
%files
|
|
%doc README.txt
|
|
%license LICENSE.txt license_gpl-2.0.txt license_lgpl-2.1.txt license_mit.txt
|
|
%{_bindir}/0ad
|
|
%{_bindir}/pyrogenesis
|
|
%{_bindir}/ActorEditor
|
|
%{_libdir}/%{name}/
|
|
%{_datadir}/pixmaps/%{name}.png
|
|
%{_datadir}/appdata/%{name}.appdata.xml
|
|
%{_datadir}/applications/%{name}.desktop
|
|
%dir %{_libdir}/%{name}
|
|
%dir %{_datadir}/%{name}
|
|
|
|
%changelog
|