From f7f4da65714c2662562e70474b103c779c21927f Mon Sep 17 00:00:00 2001 From: Andrey Bondrov Date: Sun, 7 Oct 2012 19:14:06 +1100 Subject: [PATCH] LOG New version 0.0.11 (sync with Cooker), minor spec cleanups --- .abf.yml | 2 +- 0ad-r10803-gamin.patch => 0ad-gamin.patch | 0 0ad-libxml2.patch | 19 +++ 0ad-rpath.patch | 30 +++++ 0ad.6 | 144 ++++++++++++++++++++++ 0ad.spec | 138 ++++++++++++++++----- 6 files changed, 299 insertions(+), 34 deletions(-) rename 0ad-r10803-gamin.patch => 0ad-gamin.patch (100%) create mode 100644 0ad-libxml2.patch create mode 100644 0ad-rpath.patch create mode 100644 0ad.6 diff --git a/.abf.yml b/.abf.yml index 2841183..96dac40 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,2 +1,2 @@ sources: - "0ad-r11863-alpha-unix-build.tar.xz": e52a2a86b585d9bb6fee38ec7a1964b1a704c367 + "0ad-0.0.11-alpha-unix-build.tar.xz": b7696e0f6e6b0c3e222aa46b532943af1fe64435 diff --git a/0ad-r10803-gamin.patch b/0ad-gamin.patch similarity index 100% rename from 0ad-r10803-gamin.patch rename to 0ad-gamin.patch diff --git a/0ad-libxml2.patch b/0ad-libxml2.patch new file mode 100644 index 0000000..d772d07 --- /dev/null +++ b/0ad-libxml2.patch @@ -0,0 +1,19 @@ +diff -up 0ad-0.0.11-alpha/libraries/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.cpp.orig 0ad-0.0.11-alpha/libraries/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.cpp +--- 0ad-0.0.11-alpha/libraries/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.cpp.orig 2012-09-08 09:56:56.532955316 -0300 ++++ 0ad-0.0.11-alpha/libraries/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.cpp 2012-09-08 09:57:27.200987159 -0300 +@@ -523,8 +523,13 @@ bool FArchiveXML::EndExport(fm::vectordoc, rootNode, 0, 0, NULL); + +- outData.resize(buf->buffer->use * sizeof(xmlChar)); +- memcpy(outData.begin(), buf->buffer->content, outData.size()); ++#ifdef LIBXML2_NEW_BUFFER ++ outData.resize(xmlOutputBufferGetSize(buf) * sizeof(xmlChar)); ++ memcpy(outData.begin(), xmlOutputBufferGetContent(buf), outData.size()); ++#else ++ outData.resize(buf->buffer->use * sizeof(xmlChar)); ++ memcpy(outData.begin(), buf->buffer->content, outData.size()); ++#endif + + xmlOutputBufferClose(buf); + daeDocument.ReleaseXmlData(); diff --git a/0ad-rpath.patch b/0ad-rpath.patch new file mode 100644 index 0000000..41dab9e --- /dev/null +++ b/0ad-rpath.patch @@ -0,0 +1,30 @@ +diff -up 0ad-0.0.11-alpha/build/premake/premake4.lua.orig 0ad-0.0.11-alpha/build/premake/premake4.lua +--- 0ad-0.0.11-alpha/build/premake/premake4.lua.orig 2012-09-08 10:11:31.662784857 -0300 ++++ 0ad-0.0.11-alpha/build/premake/premake4.lua 2012-09-08 10:11:41.465795036 -0300 +@@ -308,26 +308,6 @@ function project_set_build_flags() + defines { "INSTALLED_LIBDIR=" .. _OPTIONS["libdir"] } + end + +- if os.is("linux") or os.is("bsd") then +- -- To use our local shared libraries, they need to be found in the +- -- runtime dynamic linker path. Add their path to -rpath. +- if _OPTIONS["libdir"] then +- linkoptions {"-Wl,-rpath," .. _OPTIONS["libdir"] } +- else +- -- On FreeBSD we need to allow use of $ORIGIN +- if os.is("bsd") then +- linkoptions { "-Wl,-z,origin" } +- end +- +- -- Adding the executable path and taking care of correct escaping +- if _ACTION == "gmake" then +- linkoptions { "-Wl,-rpath,'$$ORIGIN'" } +- elseif _ACTION == "codeblocks" then +- linkoptions { "-Wl,-R\\\\$$ORIGIN" } +- end +- end +- end +- + end + end + diff --git a/0ad.6 b/0ad.6 new file mode 100644 index 0000000..1669cb5 --- /dev/null +++ b/0ad.6 @@ -0,0 +1,144 @@ +.TH 0AD "1" "Sep 8 2012" "0ad 0.0.11" "User Commands" + +.SH NAME +0ad \- manual page for 0ad 0.0.11 +.SH SYNOPSIS +.B 0ad +[\fIoptions\fR] +.SH DESCRIPTION +0 A.D. (pronounced "zero ey-dee") is a free, open-source, cross-platform +real-time strategy (RTS) game of ancient warfare. In short, 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 is highly ambitious, involving state-of-the-art 3D +graphics, detailed artwork, sound, and a flexible and powerful custom-built +game engine. + +The game has been in development by Wildfire Games (WFG), a group of volunteer, +hobbyist game developers, since 2001. +.PP +Basic gameplay: +.TP +\fB\-autostart\fR +load a map instead of showing main menu (see below) +.TP +\fB\-editor\fR +launch the Atlas scenario editor +.TP +\fB\-mod\fR \fINAME\fR +start the game using \fINAME\fR mod +.TP +\fB\-quickstart\fR +load faster (disables audio and some system info logging) + +.PP +Autostart: +.TP +\fB\-autostart\fR=\fINAME\fR +map \fINAME\fR for scenario, or rms name for random map +.TP +\fB\-autostart-ai\fR=\fIPLAYER\fR:\fIAI\fR +adds named \fIAI\fR to the given \fIPLAYER\fR (e.g. 2:testbot) + +.PP +Multiplayer: +.TP +\fB\-autostart-playername\fR=\fINAME\fR +multiplayer local player \fINAME\fR (default 'anonymous') +.TP +\fB\-autostart-host\fR +multiplayer host mode +.TP +\fB\-autostart-players\fR=\fINUMBER\fR +multiplayer host: \fINUMBER\fR of client players (default 2) +.TP +\fB\-autostart-client\fR +multiplayer client mode +.TP +\fB\-autostart-ip\fR=\fIIP\fR +multiplayer client: connect to this host \fIIP\fR + +.PP +Random maps only: +.TP +\fB\-autostart-random\fR +random map +.TP +\fB\-autostart-random\fR=\fISEED\fR +random map with \fISEED\fR value (default 0, use -1 for random) +.TP +\fB\-autostart-size\fR=\fITILES\fR +random map \fISIZE\fR in tiles (default 192) +.TP +\fB\-autostart-players\fR=\fINUMBER\fI +\fINUMBER\fR of players on random map + +.PP +Configuration: +.TP +\fB\-conf\fR:\fIKEY\fR=\fIVALUE\fR +set a config value (overrides the contents of system.cfg) +.TP +\fB\-g\fR=\fIF\fR +set the gamma correction to '\fIF\fR' (default 1.0) +.TP +\fB\-nosound\fR +disable audio +.TP +\fB\-onlyPublicFiles\fR +force game to use only the public (default) mod +.TP +\fB\-shadows\fR +enable shadows +.TP +\fB\-vsync\fR +enable VSync, i.e. lock FPS to monitor refresh rate +.TP +\fB\-xres\fR=\fIN\fR +set screen \fIX\fR resolution to '\fIN\fR' +.TP +\fB\-yres\fR=\fIN\fR +set screen \fIY\fR resolution to '\fIN\fR' + +.PP +Advanced / diagnostic: +.TP +\fB\-dumpSchema\fR +creates a file entity.rng in the working directory, containing +complete entity XML schema, used by various analysis tools +.TP +\fB\-replay\fR=\fIPATH\fR +non-visual replay of a previous game, used for analysis purposes +\fIPATH\fR is system path to commands.txt containing simulation log +.TP +\fB\-writableRoot\fR +store runtime game data in root data directory +(only use if you have write permissions on that directory) + +.PP +Archive builder: +.TP +\fB\-archivebuild\fR=\fIPATH\fR +system \fIPATH\fR of the base directory containing mod data to be archived/precached +.TP +\fB\-archivebuild-output\fR=\fIPATH\fR +system \fIPATH\fR to output of the resulting .zip archive (use with archivebuild) +.TP +\fB\-archivebuild-compress\fR +enable deflate compression in the .zip +(no zip compression by default since it hurts compression of release packages) + +.SH "REPORTING BUGS" +Bugs should be reported on Trac: http://trac.wildfiregames.com/ +.br +On Linux / OS X: If the game detects an error, it should generate crashlog.txt +in ~/.config/0ad/logs/ . If it doesn't, it should at least print some +information on stdout. Attach crashlog.txt or the other information to the +bug report. It might also help to run the game in gdb and copy the output of +the "bt full" command, if possible. + +.SH COPYRIGHT +0 A.D. is released as open source: you can freely use, copy, modify and +distribute the game's source code and data files, as long as you include +attribution to Wildfire Games and let anyone freely modify and distribute any +of your own modifications to the game's files. diff --git a/0ad.spec b/0ad.spec index cde8a20..99467f3 100644 --- a/0ad.spec +++ b/0ad.spec @@ -1,5 +1,10 @@ # http://trac.wildfiregames.com/wiki/BuildInstructions#Linux +# conditionals left for the sake of users building from source, but +# nvtt (due to s3tc patented code) is not supported and not built. +%global with_system_nvtt 0 +%global without_nvtt 1 + %bcond_with debug %if %{with debug} %define config debug @@ -15,50 +20,84 @@ %define debug_package %{nil} %endif -Name: 0ad +Name: 0ad Epoch: 1 -Version: r11863 -%if %mdkversion >= 201100 -Release: 0.4 +Version: 0.0.11 +Release: 3 +# BSD License: +# build/premake/* +# libraries/valgrind/* (not built/used) +# MIT License: +# libraries/enet/* +# libraries/fcollada/* +# source/third_party/* +# LGPLv2+ +# libraries/cxxtest/* (not built/used) +# GPLv2+ +# source/* +# IBM +# source/tools/fontbuilder2/Packer.py +# MPL-1.1 +# libraries/spidermonkey/* (not built/used) +License: GPLv2+ and BSD and MIT and IBM +Group: Games/Strategy +Summary: Cross-Platform RTS Game of Ancient Warfare +Url: http://wildfiregames.com/0ad/ + +%if %{without_nvtt} +# wget http://releases.wildfiregames.com/%%{name}-%%{version}-alpha-unix-build.tar.xz +# tar Jxf %%{name}-%%{version}-alpha-unix-build.tar.xz +# rm -fr %%{name}-%%{version}-alpha/libraries/nvtt +# rm -f %%{name}-%%{version}-alpha-unix-build.tar.xz +# tar Jcf %%{name}-%%{version}-alpha-unix-build.tar.xz %%{name}-%%{version}-alpha +Source0: %{name}-%{version}-alpha-unix-build.tar.xz %else -Release: %mkrel 0.4 +Source0: http://releases.wildfiregames.com/%{name}-%{version}-alpha-unix-build.tar.xz %endif -License: GPLv2+ -Group: Games/Strategy -Summary: Cross-Platform RTS Game of Ancient Warfare -Url: http://wildfiregames.com/0ad/ -Source: http://releases.wildfiregames.com/0ad-%{version}-alpha-unix-build.tar.xz -Requires: 0ad-data -BuildRequires: boost-devel -BuildRequires: cmake -BuildRequires: desktop-file-utils -BuildRequires: devil-devel -BuildRequires: gamin-devel -BuildRequires: gcc-c++ + +# adapted from binaries/system/readme.txt +# It is advisable to review this file at on newer versions, to update the +# version field and check for extra options. Note that windows specific, +# and disabled options were not added to the manual page. +Source1: %{name}.6 +Requires: %{name}-data +BuildRequires: boost-devel +BuildRequires: cmake +BuildRequires: desktop-file-utils +BuildRequires: devil-devel +BuildRequires: gamin-devel +BuildRequires: gcc-c++ BuildRequires: jpeg-devel BuildRequires: libdnet-devel -BuildRequires: libjpeg-devel -BuildRequires: libpng-devel -BuildRequires: libvorbis-devel -BuildRequires: libxml2-devel -BuildRequires: nasm -BuildRequires: pkgconfig +BuildRequires: jpeg-devel +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(vorbis) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: nasm +%if %{with_system_nvtt} +BuildRequires: nvidia-texture-tools +%endif BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libenet) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libzip) BuildRequires: pkgconfig(mozjs185) BuildRequires: pkgconfig(openal) -BuildRequires: python -BuildRequires: SDL-devel -BuildRequires: subversion -#BuildRequires: wxGTK-devel -BuildRequires: wxgtku-devel +BuildRequires: python +BuildRequires: pkgconfig(sdl) +BuildRequires: subversion +BuildRequires: wxgtku-devel # FAMMonitorDirectory fails if passing a relative directory # Use FAMNoExists (gamin specific to speed up a little bit initialization # as commented in the source) -Patch0: 0ad-r10803-gamin.patch +Patch0: %{name}-gamin.patch + +# http://trac.wildfiregames.com/ticket/1421 +Patch1: %{name}-rpath.patch + +# Build with newer libxml2 +Patch2: %{name}-libxml2.patch %description 0 A.D. (pronounced "zero ey-dee") is a free, open-source, cross-platform @@ -75,26 +114,38 @@ hobbyist game developers, since 2001. #----------------------------------------------------------------------- %prep %setup -q -n %{name}-%{version}-alpha - %patch0 -p1 +%patch1 -p1 +%patch2 -p1 #----------------------------------------------------------------------- %build export CFLAGS="%{optflags}" export CPPFLAGS="%{optflags}" +# avoid warnings with gcc 4.7 due to _FORTIFY_SOURCE in CPPFLAGS +export CPPFLAGS="`echo %{optflags} | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'`" build/workspaces/update-workspaces.sh \ --bindir %{_gamesbindir} \ --datadir %{_gamesdatadir}/%{name} \ --libdir %{_libdir}/%{name} \ --with-system-enet \ --with-system-mozjs185 \ +%if %{with_system_nvtt} + --with-system-nvtt \ +%endif +%if %{without_nvtt} + --without-nvtt \ +%endif %{_smp_mflags} %make -C build/workspaces/gcc config=%{config} verbose=1 #----------------------------------------------------------------------- +# Depends on availablity of nvtt +%if !%{without_nvtt} %check LD_LIBRARY_PATH=binaries/system binaries/system/test%{dbg} -libdir binaries/system +%endif #----------------------------------------------------------------------- %install @@ -102,14 +153,20 @@ install -d -m 755 %{buildroot}%{_gamesbindir} install -m 755 binaries/system/pyrogenesis%{dbg} %{buildroot}%{_gamesbindir}/pyrogenesis%{dbg} install -d -m 755 %{buildroot}%{_libdir}/%{name} -for name in AtlasUI%{dbg} Collada%{dbg} nvcore nvimage nvmath nvtt; do +for name in AtlasUI%{dbg} Collada%{dbg}; do install -m 755 binaries/system/lib${name}.so %{buildroot}%{_libdir}/%{name}/lib${name}.so done +%if !%{without_nvtt} && !%{with_system_nvtt} +for name in nvcore nvimage nvmath nvtt; do + install -p -m 755 binaries/system/lib${name}.so %{buildroot}%{_libdir}/%{name}/lib${name}.so +done +%endif + install -d -m 755 %{buildroot}%{_gamesdatadir}/applications install -m 644 build/resources/0ad.desktop %{buildroot}%{_gamesdatadir}/applications/%{name}.desktop -perl -pi -e 's|%{_bindir}/0ad|%{_gamesbindir}/0ad|;' \ - %{buildroot}%{_gamesdatadir}/applications/%{name}.desktop +perl -pi -e 's|%{_bindir}/0ad|%{_gamesbindir}/0ad|;' \ + %{buildroot}%{_gamesdatadir}/applications/%{name}.desktop install -d -m 755 %{buildroot}%{_gamesdatadir}/pixmaps install -m 644 build/resources/0ad.png %{buildroot}%{_gamesdatadir}/pixmaps/%{name}.png @@ -117,6 +174,10 @@ install -m 644 build/resources/0ad.png %{buildroot}%{_gamesdatadir}/pixmaps/%{na install -d -m 755 %{buildroot}%{_gamesdatadir}/%{name} cp -a binaries/data/* %{buildroot}%{_gamesdatadir}/%{name} +install -d -m 755 %{buildroot}%{_mandir}/man6 +install -p -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man6/%{name}.6 +ln -sf %{name}.6 %{buildroot}%{_mandir}/man6/pyrogenesis.6 + mkdir -p %{buildroot}%{_datadir} mv -f %{buildroot}%{_gamesdatadir}/{pixmaps,applications} %{buildroot}%{_datadir} @@ -142,9 +203,20 @@ export EXCLUDE_FROM_FULL_STRIP="libAtlasUI_dbg.so libCollada_dbg.so pyrogenesis_ %{_datadir}/pixmaps/%{name}.png %{_datadir}/applications/%{name}.desktop %{_gamesdatadir}/%{name} +%{_mandir}/man6/*.6* %changelog +* Fri Sep 28 2012 Paulo Andrade 1:0.0.11-2 ++ Revision: 817861 +- Do not build s3tc patent infringing code. +- Remove s3tc from implementation from main tarball. +- Sync with fedora package. +- Add patch to allow rebuilding when updating to newer libxml2. + + + Sergey Zhemoitel + - update to 0.0.11 Alpha + * Fri Jun 29 2012 Bernhard Rosenkraenzer 1:r11863-0.4 + Revision: 807484 - Update to alpha 10 (aka 11863)