From b8284a14c4b749015b01b7332ec742e93f5197dd Mon Sep 17 00:00:00 2001 From: pcpa Date: Sep 25 2012 23:44:59 +0000 Subject: Initial import (#818401). --- diff --git a/.gitignore b/.gitignore index e69de29..9ad9dfd 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/0ad-0.0.11-alpha-unix-build.tar.xz diff --git a/0ad-gamin.patch b/0ad-gamin.patch new file mode 100644 index 0000000..76ba7ff --- /dev/null +++ b/0ad-gamin.patch @@ -0,0 +1,24 @@ +diff -up 0ad-0.0.11-alpha/source/lib/sysdep/os/linux/dir_watch_fam.cpp.orig 0ad-0.0.11-alpha/source/lib/sysdep/os/linux/dir_watch_fam.cpp +--- 0ad-0.0.11-alpha/source/lib/sysdep/os/linux/dir_watch_fam.cpp.orig 2012-09-08 09:44:27.676395177 -0300 ++++ 0ad-0.0.11-alpha/source/lib/sysdep/os/linux/dir_watch_fam.cpp 2012-09-08 09:45:10.303439436 -0300 +@@ -173,6 +173,8 @@ static void* fam_event_loop(void*) + + Status dir_watch_Add(const OsPath& path, PDirWatch& dirWatch) + { ++ char resolved[PATH_MAX + 1]; ++ + // init already failed; don't try again or complain + if(initialized == -1) + return ERR::FAIL; // NOWARN +@@ -205,7 +207,10 @@ Status dir_watch_Add(const OsPath& path, + // not worthwhile + + FAMRequest req; +- if(FAMMonitorDirectory(&fc, OsString(path).c_str(), &req, tmpDirWatch.get()) < 0) ++ ++ FAMNoExists(&fc); ++ ++ if(FAMMonitorDirectory(&fc, realpath(OsString(path).c_str(), resolved), &req, tmpDirWatch.get()) < 0) + { + debug_warn(L"res_watch_dir failed!"); + WARN_RETURN(ERR::FAIL); // no way of getting error code? 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 new file mode 100644 index 0000000..4c2e706 --- /dev/null +++ b/0ad.spec @@ -0,0 +1,254 @@ +# http://trac.wildfiregames.com/wiki/BuildInstructions#Linux + +# Remember to rerun licensecheck after every update: +# https://bugzilla.redhat.com/show_bug.cgi?id=818401#c46 +# http://trac.wildfiregames.com/ticket/1682 + +# 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 + +%if 0%{?fedora} <= 16 +%global with_system_enet 0 +%else +%global with_system_enet 1 +%endif + +Name: 0ad +Version: 0.0.11 +Release: 3%{?dist} +# 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: Amusements/Games +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 +Source0: http://releases.wildfiregames.com/%{name}-%{version}-alpha-unix-build.tar.xz +%endif + +# 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 +%if %{with_system_enet} +BuildRequires: enet-devel +%endif +BuildRequires: gamin-devel +BuildRequires: js-devel +BuildRequires: libcurl-devel +BuildRequires: libdnet-devel +BuildRequires: libjpeg-turbo-devel +BuildRequires: libpng-devel +BuildRequires: libvorbis-devel +BuildRequires: libxml2-devel +BuildRequires: libzip-devel +BuildRequires: nasm +%if %{with_system_nvtt} +BuildRequires: nvidia-texture-tools +%endif +BuildRequires: openal-soft-devel +BuildRequires: openjpeg-devel +BuildRequires: pkgconfig +BuildRequires: python +BuildRequires: SDL-devel +BuildRequires: subversion +BuildRequires: wxGTK-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: %{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 +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. + +#----------------------------------------------------------------------- +%prep +%setup -q -n %{name}-%{version}-alpha +%patch0 -p1 +%patch1 -p1 +%if 0%{?fedora} > 18 +# 0ad <= 0.0.11 && libxml2 >= 2.9 +%patch2 -p1 +%endif + +#----------------------------------------------------------------------- +%build +export CFLAGS="%{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 %{_bindir} \ + --datadir %{_datadir}/%{name} \ + --libdir %{_libdir}/%{name} \ +%if %{with_system_enet} + --with-system-enet \ +%endif + --with-system-mozjs185 \ +%if %{with_system_nvtt} + --with-system-nvtt \ +%endif +%if %{without_nvtt} + --without-nvtt \ +%endif + %{?_smp_mflags} + +make %{?_smp_mflags} -C build/workspaces/gcc config=release verbose=1 + +#----------------------------------------------------------------------- +# Depends on availablity of nvtt +%if !%{without_nvtt} +%check +LD_LIBRARY_PATH=binaries/system binaries/system/test -libdir binaries/system +%endif + +#----------------------------------------------------------------------- +%install +install -d -m 755 %{buildroot}%{_bindir} +install -p -m 755 binaries/system/pyrogenesis %{buildroot}%{_bindir}/pyrogenesis + +install -d -m 755 %{buildroot}%{_libdir}/%{name} +for name in AtlasUI Collada; do + install -p -m 755 binaries/system/lib${name}.so %{buildroot}%{_libdir}/%{name}/lib${name}.so +done + +%if !%{with_system_enet} + install -p -m 755 binaries/system/libenet.so.1 %{buildroot}%{_libdir}/%{name}/libenet.so.1 +%endif + +%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}%{_datadir}/applications +install -p -m 644 build/resources/0ad.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop + +install -d -m 755 %{buildroot}%{_datadir}/pixmaps +install -p -m 644 build/resources/0ad.png %{buildroot}%{_datadir}/pixmaps/%{name}.png + +install -d -m 755 %{buildroot}%{_datadir}/%{name} +cp -a binaries/data/* %{buildroot}%{_datadir}/%{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 + +desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop + +cat > %{buildroot}%{_bindir}/0ad < - 0.0.11-3 +- Clarify source tree licenses information in spec (#818401) +- Preserve time stamp of installed files (#818401) + +* Sat Sep 8 2012 pcpa - 0.0.11-2 +- Correct manpage group and symlink 0ad manual to pyrogenesis manual (#818401) +- Correct some typos and wrong information in 0ad.6 + +* Sat Sep 8 2012 pcpa - 0.0.11-1 +- Update to latest upstream release +- Switch to new versioning pattern +- Remove rpath patch already applied upstream +- Remove without-nvtt patch already applied upstream +- Remove boost patch already applied upstream +- Remake rpath patch to avoid package build special conditions + +* Thu Sep 6 2012 pcpa - r11863-6 +- Repackage tarball to not redistribute patented s3tc implementation (#818401) +- Add patch to rebuild with newer libxml2. +- Add upstream trac patch for build with newer boost. +- Rename patches to remove %%version and use %%name in source files. + +* Fri Jul 13 2012 pcpa - r11863-5 +- Clearly state nvtt is not mean't to be used (unless user build from sources). +- Update to use patch in wildfire trac instead of my patch to remove rpath. + +* Fri Jun 1 2012 pcpa - r11863-4 +- Actually remove %%defattr. +- Correct wrong fedora release check for enet-devel build requires. + +* Sat May 26 2012 pcpa - r11863-4 +- Make package build in Fedora 16 (rpmfusion #2342). +- Add conditionals to build with or without system nvtt or disable nvtt. + +* Tue May 22 2012 pcpa - r11863-3 +- Remove %%defattr from spec (#823096). +- Run desktop-file-validate (#823096). + +* Mon May 21 2012 pcpa - r11863-2 +- Disable dependency on nvidia-texture-tools (#823096). +- Disable %%check as it requires nvtt. +- Add manual page. + +* Sat May 19 2012 pcpa - r11863-1 +- Correct package license. +- Update to latest upstream release. +- Remove license_dbghelp.txt as dbghelp.dll is not in sources neither installed. + +* Tue May 1 2012 pcpa - r11339-1 +- Initial 0ad spec. diff --git a/sources b/sources index e69de29..9011b33 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +ac583fc170aeb438bb6c8cc18a97cc42 0ad-0.0.11-alpha-unix-build.tar.xz