Summary: Multiplayer roguelike game server
-Summary(pl): Serwer gry roguelike dla wielu graczy
+Summary(pl.UTF-8): Serwer gry roguelike dla wielu graczy
Name: crossfire
-Version: 1.0.0
+Version: 1.75.0
Release: 1
-License: GPL
-Group: Applications/Games
-Group(de): Applikationen/Spiele
-Group(pl): Aplikacje/Gry
-Source0: ftp://ftp.scruz.net/users/mwedel/public/%{name}-%{version}.tar.bz2
+License: GPL v2+
+Group: X11/Applications/Games
+Source0: https://downloads.sourceforge.net/crossfire/%{name}-%{version}.tar.gz
+# Source0-md5: 7d2e39294056ad521f603dfc31c2cf7f
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
-Patch0: %{name}-DESTDIR.patch
-Patch1: %{name}-directories.patch
-Patch2: %{name}-tmp_maps.patch
-URL: http://crossfire.real-time.com
-BuildRequires: XFree86-devel
+Patch0: python3.patch
+URL: https://crossfire.real-time.com/
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake
+BuildRequires: check
+BuildRequires: cproto
+BuildRequires: libtool
+BuildRequires: python3-devel
+BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libXaw-devel
+BuildRequires: xorg-lib-libXmu-devel
+BuildRequires: xorg-lib-libXt-devel
+Requires(post,preun): /sbin/chkconfig
+%pyrequires_eq python3
+Requires: crossfire-maps
+Requires: rc-scripts
+Conflicts: logrotate < 3.8.0
+Obsoletes: crossfire-editor < 1.75.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-Prereq: /sbin/chkconfig
-%define _prefix /usr/X11R6
-%define _localstatedir /var/lib
+%define _localstatedir /var/lib
-%description
+%description
This is a multiplayer graphical arcade and adventure game made for the
X-Window environment. There are also Windows and Java clients
available.
sing items and battle monsters. They can choose to cooperate or
compete in the same "world".
-%description -l pl
-To jest graficzna gra przygodowa dla ¶rodowiska X-Window. S± tak¿e
-dostêpni klienci pod Windows i w Javie.
+%description -l pl.UTF-8
+To jest graficzna gra przygodowa dla środowiska X-Window. Są także
+dostępni klienci pod Windows i w Javie.
%package editor
Summary: Crossfire map editor
-Summary(pl): Edytor map crossfire
-Group: Applications/Games
-Group(de): Applikationen/Spiele
-Group(pl): Aplikacje/Gry
+Summary(pl.UTF-8): Edytor map Crossfire
+Group: X11/Applications/Games
%description editor
Crossfire map editor.
-%description editor -l pl
-Edytor map crossfire.
+%description editor -l pl.UTF-8
+Edytor map Crossfire.
+
+%package doc
+Summary: Crossfire game documentation
+Summary(pl.UTF-8): Dokumentacja gry Crossfire
+Group: Documentation
+
+%description doc
+Crossfire documentation for players. Includes handbook and spoiler.
+
+%description doc -l pl.UTF-8
+Dokumentacja dla graczy Crossfire. Zawiera podręcznik oraz spoiler.
+
+%package plugin-python
+Summary: Python plugin for Crossfire server
+Summary(pl.UTF-8): Wtyczka Pythona dla serwera Crossfire
+Group: X11/Applications/Games
+Requires: %{name} = %{version}-%{release}
+
+%description plugin-python
+Python plugin for Crossfire server.
+
+%description plugin-python -l pl.UTF-8
+Wtyczka Pythona dla serwera Crossfire.
+
+%package plugin-anim
+Summary: Animation plugin for Crossfire server
+Summary(pl.UTF-8): Wtyczka animacji dla serwera Crossfire
+Group: X11/Applications/Games
+Requires: %{name} = %{version}-%{release}
+
+%description plugin-anim
+Animation plugin for Crossfire server.
+
+%description plugin-anim -l pl.UTF-8
+Wtyczka animacji dla serwera Crossfire.
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-%patch2 -p1
+
+%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python3(\s|$),#!%{__python3}\1,' \
+ utils/cfdb_convert
%build
-%configure
-%{__make}
+%configure \
+ PYTHON=%{__python3} \
+ PYTHON_LIBS="`python3-config --libs --embed`" \
+ --disable-static
+
+%{__make} V=1
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/var/log,/etc/{sysconfig,%{name},logrotate.d},/etc/rc.d/init.d}
-install -d $RPM_BUILD_ROOT%{_localstatedir}/%{name}/tmp
-%{__make} install DESTDIR="$RPM_BUILD_ROOT"
-mv -f $RPM_BUILD_ROOT%{_datadir}/%{name}/{ban_file,settings,dm_file,motd,forbid} \
- $RPM_BUILD_ROOT/etc/%{name}
+install -d $RPM_BUILD_ROOT{/var/log,/etc/{sysconfig,%{name},logrotate.d},/etc/rc.d/init.d} \
+ $RPM_BUILD_ROOT%{_localstatedir}/%{name}/{tmp,maps}
+
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/crossfire/plugins/*.la
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/crossloop*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man6/crossloop*.6*
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/player_dl.pl
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
touch $RPM_BUILD_ROOT/var/log/crossfire
%clean
%post
/sbin/chkconfig --add crossfire
-if [ -r /var/lock/subsys/crossfire ]; then
- /etc/rc.d/init.d/crossfire restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/crossfire start\" to start Crossfire server."
-fi
+%service crossfire restart "Crossfire server"
%preun
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/crossfire ]; then
- /etc/rc.d/init.d/crossfire stop >&2
- fi
+ %service crossfire stop
/sbin/chkconfig --del crossfire
fi
%files
%defattr(644,root,root,755)
-%doc CHANGES CREDITS DEVELOPERS DONE README TODO
-%doc doc/{PlayerStats,RunTimeCommands,SurvivalGuide,alchemy.doc,experience,multigod}
-%doc doc/{skills.doc,spell-paths,spellcasters_guide_to_runes,spells}
-%attr(750,root,games) %{_bindir}/crossfire
-%attr(750,root,games) %{_bindir}/random_map
+%doc AUTHORS README.rst ChangeLog
+%attr(750,root,games) %{_bindir}/crossfire-server
+%attr(755,root,games) %{_bindir}/cfdb_convert
%dir %attr(750,root,games) %{_datadir}/crossfire
%{_datadir}/crossfire/*
-%{_mandir}/man?/crossfire*
-%dir %attr(750,root,games) %{_localstatedir}/crossfire
+%{_mandir}/man6/crossfire-server.6*
+%dir %attr(770,root,games) %{_localstatedir}/crossfire
%dir %attr(770,root,games) %{_localstatedir}/crossfire/players
%dir %attr(770,root,games) %{_localstatedir}/crossfire/unique-items
%dir %attr(770,root,games) %{_localstatedir}/crossfire/tmp
-%attr(660,root,games) %config(noreplace) %verify(not size mtime md5) %{_localstatedir}/crossfire/bookarch
-%attr(660,root,games) %config(noreplace) %verify(not size mtime md5) %{_localstatedir}/crossfire/highscore
-%attr(660,root,games) %config(noreplace) %verify(not size mtime md5) %{_localstatedir}/crossfire/temp.maps
-%dir /etc/crossfire
-%config(noreplace) %verify(not size mtime md5) /etc/crossfire/*
+%dir %attr(770,root,games) %{_localstatedir}/crossfire/maps
+%attr(660,root,games) %config(noreplace) %verify(not md5 mtime size) %{_localstatedir}/crossfire/bookarch
+%attr(660,root,games) %config(noreplace) %verify(not md5 mtime size) %{_localstatedir}/crossfire/highscore
+%attr(660,root,games) %config(noreplace) %verify(not md5 mtime size) %{_localstatedir}/crossfire/temp.maps
+%attr(660,root,games) %config(noreplace) %verify(not md5 mtime size) %{_localstatedir}/crossfire/clockdata
+%attr(660,root,games) %config(noreplace) %verify(not md5 mtime size) %{_localstatedir}/crossfire/banish_file
+%dir %{_sysconfdir}/crossfire
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/crossfire/*
%attr(754,root,root) /etc/rc.d/init.d/crossfire
-%attr(660,root,root) /etc/logrotate.d/crossfire
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/crossfire
-%attr(660,root,games) %config(noreplace) %verify(not size mtime md5) /var/log/crossfire
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/crossfire
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/crossfire
+%attr(660,root,games) %config(noreplace) %verify(not md5 mtime size) /var/log/crossfire
+%dir %{_libdir}/crossfire
+%dir %{_libdir}/crossfire/plugins
+%attr(755,root,root) %{_libdir}/crossfire/plugins/cfcitybell.so
+%attr(755,root,root) %{_libdir}/crossfire/plugins/citylife.so
+%if "%{_libexecdir}" != "%{_libdir}"
+%dir %{_libexecdir}/crossfire
+%endif
+%attr(755,root,root) %{_libexecdir}/crossfire/random_map
+
+%files doc
+%defattr(644,root,root,755)
+%doc doc/{handbook.ps,spoiler.ps}
+%doc doc/{stats.txt,commands.txt,survival-guide.txt}
+%doc doc/{skills.txt,runes-guide.txt}
+
+%files plugin-python
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/crossfire/plugins/cfpython.so
-%files editor
+%files plugin-anim
%defattr(644,root,root,755)
-%doc doc/{Crossedit.doc,RandomMaps.doc,Styles.doc,mapguide,mapmakers_guide_to_runes,teleporter.doc}
-%attr(755,root,root) %{_bindir}/crossedit
-%{_mandir}/man?/crossedit*
+%attr(755,root,root) %{_libdir}/crossfire/plugins/cfanim.so