-#
+# TODO
+# - use desktop file included with project (consider which one are better)
+# - unpackaged language files
+# - fix lacales (seems broken)
# Conditional build
%bcond_without server # without server
-%bcond_without tools # without tools
+%bcond_without tools # without tools
+%bcond_without fribidi # without Bidirectional language support
#
Summary: Strategy game with a fantasy theme
-Summary(pl): Strategiczna gra z motywem fantasy
+Summary(hu.UTF-8): Fantasy környezetben játszódó stratégiai játék
+Summary(pl.UTF-8): Strategiczna gra z motywem fantasy
Name: wesnoth
-Version: 0.8.11
-Release: 1
-License: GPL v2
+Version: 1.8
+Release: 0.1
+Epoch: 1
+License: GPL v2+
Group: X11/Applications/Games/Strategy
-Icon: wesnoth-icon.xpm
-Source0: http://www.wesnoth.org/files/%{name}-%{version}.tar.gz
-# Source0-md5: 929c65818cc2fb47227929f253fb1f8c
-# Source0-size: 34172227
-Source1: %{name}.desktop
-Source2: %{name}d.init
-URL: http://www.wesnoth.org
+Source0: http://downloads.sourceforge.net/wesnoth/%{name}-%{version}.tar.bz2
+# Source0-md5: 07e4b97512e307c54dcfd86659a61e41
+Source1: %{name}d.init
+Patch0: %{name}-libpng.patch
+Patch1: %{name}-desktop.patch
+URL: http://www.wesnoth.org/
BuildRequires: SDL-devel >= 1.2.7
BuildRequires: SDL_image-devel >= 1.2
BuildRequires: SDL_mixer-devel >= 1.2
BuildRequires: SDL_net-devel >= 1.2
-BuildRequires: SDL_ttf-devel >= 2.0
+BuildRequires: SDL_ttf-devel >= 2.0.8
+BuildRequires: asciidoc
+BuildRequires: boost-devel >= 1.33
+BuildRequires: cmake >= 2.4
+%{?with_fribidi:BuildRequires: fribidi-devel}
+BuildRequires: gettext-devel
+BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
-Requires: SDL_image >= 1.2
+BuildRequires: libvorbis-devel
+BuildRequires: lua51-devel
+BuildRequires: pango-devel
+BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: sed >= 4.0
+BuildRequires: zlib-devel
+# sr@Latn vs. sr@latin
+Conflicts: glibc-misc < 6:2.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
types of attacks. Units gain experience and advance levels, and are
carried over from one scenario to the next campaign.
-%description -l pl
-Battle for Wesnoth jest strategiczn± gr± fantasy. Batalia o kontrolê
-nad wsiami przy pomocy ró¿nego rodzaju oddzia³ów, które maj± przewagê
-lub jej brak w odmiennym ukszta³towaniu terenu i przeciwko ró¿nym
-sposobom ataku. Oddzia³y zdobywaj± do¶wiadczenie i poziomy
-zaawansowania i s± przenoszone z jednej scenerii do nastêpnej
-kampanii.
+%description -l hu.UTF-8
+Battle for Wesnoth (Harc Wesnothért) egy fantasy környezetben játszódó
+stratégiai játék. Harc a falvak megszerzéséért, különböző egységek
+felhasználásával, amelyeknek különböző előnyeik és hátrányaik vannak a
+különféle terepeken és a különböző támadási stílusok ellen. Az
+egységek tapasztalatot gyűjtenek, és fejlődnek, amelyek átvihetők a
+következő pályára.
+
+%description -l pl.UTF-8
+Bitwa o Wesnoth jest strategiczną grą fantasy. Batalia o kontrolę nad
+wsiami przy pomocy różnego rodzaju oddziałów, które mają przewagę lub
+jej brak w odmiennym ukształtowaniu terenu i przeciwko różnym sposobom
+ataku. Oddziały zdobywają doświadczenie i poziomy zaawansowania i są
+przenoszone z jednej scenerii do następnej kampanii.
%package server
Summary: Network server for Wesnoth
-Summary(pl): Sieciowy serwer dla Wesnoth
+Summary(hu.UTF-8): Hálózati szerver Wesnoth-hoz
+Summary(pl.UTF-8): Sieciowy serwer dla Wesnoth
Group: X11/Applications/Games/Strategy
Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires: rc-scripts >= 0.4.0.17
+# sr@Latn vs. sr@latin
+Conflicts: glibc-misc < 6:2.7
%description server
Server for playing networked games of Wesnoth.
-%description server -l pl
+%description server -l hu.UTF-8
+Szerver a Wesnoth hálózati játékához.
+
+%description server -l pl.UTF-8
Serwer do prowadzenia sieciowych gier Wesnoth.
%package tools
Summary: Tools for Wesnoth
-Summary(pl): Narzêdzia dla Wesnoth
+Summary(hu.UTF.8): Eszközök a Wesnoth-hoz
+Summary(pl.UTF-8): Narzędzia dla Wesnoth
Group: X11/Applications/Games/Strategy
-Requires: %{name} = %{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
%description tools
Map editor and translations tools.
-%description tools -l pl
-Edytor map i narzêdzia do t³umaczeñ.
+%description tools -l hu.UTF-8
+Pályaszerkesztők és fordítási eszközök.
+
+%description tools -l pl.UTF-8
+Edytor map i narzędzia do tłumaczeń.
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+
+# don't install locales in %{_datadir}/%{name}
+%{__sed} -i 's,${DATADIR}/${LOCALEDIR},${LOCALEDIR},' CMakeLists.txt
+
+# link using libpng instead of libpng12
+%{__sed} -i 's,png12,png,' src/CMakeLists.txt
%build
-%configure \
- %{?with_server:--enable-server} \
- %{?with_tools:--enable-editor} \
- %{?with_tools:--enable-tools}
+install -d build
+cd build
+%cmake .. \
+ -DCMAKE_BUILD_TYPE=%{!?debug:Release}%{?debug:Debug} \
+ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DENABLE_STRICT_COMPILATION="off" \
+ -DBINDIR="%{_bindir}" \
+ -DMANDIR="%{_mandir}" \
+ -DLOCALEDIR="%{_datadir}/locale" \
+ %{!?with_server:-DENABLE_SERVER="off"} \
+ %{?with_server:-DENABLE_CAMPAIGN_SERVER="on"} \
+ %{!?with_tools:-DENABLE_EDITOR="off"} \
+ %{?with_tools:-DENABLE_TOOLS="on"} \
+ %{!?with_fribidi:-DENABLE_FRIBIDI="off"} \
+%if "%{_lib}" == "lib64"
+ -DLIB_SUFFIX=64
+%endif
+
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir}}
-install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
+install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir},/var/run/wesnothd,/etc/rc.d/init.d,%{_docdir}/%{name}-%{version}}
-%{__make} install \
+%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-install images/wesnoth-icon.png $RPM_BUILD_ROOT%{_pixmapsdir}
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/wesnothd
+# install additional docs
+install changelog README $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+gzip -9nf $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/{changelog,README}
+
+%if %{with server}
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/wesnothd
+%endif
+
+mv -f $RPM_BUILD_ROOT%{_datadir}/locale/nb{_NO,}
+mv -f $RPM_BUILD_ROOT%{_datadir}/locale/fur{_IT,}
+
+# unsupported(?)
+rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/ca_ES@valencia
+rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/la
+rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/racv
+rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/en@shaw
+rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/sr@ijekavian
+rm -rf $RPM_BUILD_ROOT%{_mandir}/ca_ES@valencia
+
+# the same as manuals from %{_mandir}/man?
+rm -rf $RPM_BUILD_ROOT%{_mandir}/en_GB
+
+%find_lang %{name} --all-name
%clean
rm -rf $RPM_BUILD_ROOT
+%pre server
+%groupadd -P %{name}-server -g 178 wesnothd
+%useradd -P %{name}-server -u 178 -d /var/run/wesnothd -c "Wesnothd User" -g wesnothd wesnothd
+
%post server
/sbin/chkconfig --add wesnothd
-if [ -f /var/lock/subsys/wesnothd ]; then
- /etc/rc.d/init.d/wesnothd restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/wesnothd start\" to start wesnothd." >&2
-fi
+%service wesnothd restart
%preun server
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/wesnothd ]; then
- /etc/rc.d/init.d/wesnothd stop
- fi
+ %service wesnothd stop
/sbin/chkconfig --del wesnothd
+ %userremove wesnothd
+ %groupremove wesnothd
fi
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc changelog README MANUAL*
+%doc %{_docdir}/%{name}-%{version}
%attr(755,root,root) %{_bindir}/wesnoth
-%attr(755,root,root) %{_bindir}/wmlxgettext
%{_mandir}/man6/wesnoth.6*
+%lang(cs) %{_mandir}/cs/man6/wesnoth.6*
%lang(de) %{_mandir}/de/man6/wesnoth.6*
+%lang(es) %{_mandir}/es/man6/wesnoth.6*
+%lang(et) %{_mandir}/et/man6/wesnoth.6*
+%lang(fi) %{_mandir}/fi/man6/wesnoth.6*
+%lang(fr) %{_mandir}/fr/man6/wesnoth.6*
+%lang(gl) %{_mandir}/gl/man6/wesnoth.6*
+%lang(hu) %{_mandir}/hu/man6/wesnoth.6*
+%lang(it) %{_mandir}/it/man6/wesnoth.6*
+%lang(ja) %{_mandir}/ja/man6/wesnoth.6*
+%lang(lt) %{_mandir}/lt/man6/wesnoth.6*
+%lang(pl) %{_mandir}/pl/man6/wesnoth.6*
+%lang(pt_BR) %{_mandir}/pt_BR/man6/wesnoth.6*
+%lang(sk) %{_mandir}/sk/man6/wesnoth.6*
+%lang(sr) %{_mandir}/sr/man6/wesnoth.6*
+%lang(sr@latin) %{_mandir}/sr@latin/man6/wesnoth.6*
+%lang(tr) %{_mandir}/tr/man6/wesnoth.6*
+%lang(zh_CN) %{_mandir}/zh_CN/man6/wesnoth.6*
+%lang(zh_TW) %{_mandir}/zh_TW/man6/wesnoth.6*
%{_datadir}/%{name}
-%{_desktopdir}/%{name}.desktop
-%{_pixmapsdir}/*
+%{_desktopdir}/*.desktop
+%{_pixmapsdir}/*-icon.png
%if %{with server}
%files server
%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/campaignd
%attr(755,root,root) %{_bindir}/wesnothd
%attr(754,root,root) /etc/rc.d/init.d/wesnothd
%{_mandir}/man6/wesnothd.6*
+%lang(cs) %{_mandir}/cs/man6/wesnothd.6*
%lang(de) %{_mandir}/de/man6/wesnothd.6*
+%lang(es) %{_mandir}/es/man6/wesnothd.6*
+%lang(et) %{_mandir}/et/man6/wesnothd.6*
+%lang(fi) %{_mandir}/fi/man6/wesnothd.6*
+%lang(fr) %{_mandir}/fr/man6/wesnothd.6*
+%lang(hu) %{_mandir}/hu/man6/wesnothd.6*
+%lang(it) %{_mandir}/it/man6/wesnothd.6*
+%lang(ja) %{_mandir}/ja/man6/wesnothd.6*
+%lang(lt) %{_mandir}/lt/man6/wesnothd.6*
+%lang(pl) %{_mandir}/pl/man6/wesnothd.6*
+%lang(pt_BR) %{_mandir}/pt_BR/man6/wesnothd.6*
+%lang(sk) %{_mandir}/sk/man6/wesnothd.6*
+%lang(sr) %{_mandir}/sr/man6/wesnothd.6*
+%lang(sr@latin) %{_mandir}/sr@latin/man6/wesnothd.6*
+%lang(tr) %{_mandir}/tr/man6/wesnothd.6*
+%lang(zh_CN) %{_mandir}/zh_CN/man6/wesnothd.6*
+%attr(770,wesnothd,wesnothd) %dir /var/run/wesnothd
%endif
%if %{with tools}
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/cutter
%attr(755,root,root) %{_bindir}/exploder
-%attr(755,root,root) %{_bindir}/wesnoth_editor
-%{_mandir}/man6/wesnoth_editor.6*
-%lang(de) %{_mandir}/de/man6/wesnoth_editor.6*
%endif