#
-# TODO: - try to create bconds for supported clients
-# - separate desktop files for all clients
+# TODO:
+# - work on authentication and Freeciv database support (fcdb)
+# - patch all packaged desktop files
+# - modpack requires gtk2 or gtk3
#
# Conditional build:
%bcond_without ggz_client # build without ggz client
%bcond_without ggz_server # build without ggz server
+%bcond_without magickwand # build without MagickWand map image toolkit support
+%bcond_without system_lua # build with bundled lua
+%bcond_without gtk2 # build without gtk2 client
+%bcond_without gtk3 # build without gtk3 client
+%bcond_without sdl # build without sdl client
+%bcond_without xaw # build without xaw client
+%bcond_with qt # build with qt client (broken)
+%bcond_without modpack # build without modpack installer
#
Summary: FREE CIVilization clone
Summary(es.UTF-8): Clon del juego Civilization
Summary(pt_BR.UTF-8): Clone do jogo Civilization
Name: freeciv
Version: 2.4.4
-Release: 0.1
+Release: 1
License: GPL v2+
Group: X11/Applications/Games/Strategy
Source0: http://downloads.sourceforge.net/freeciv/%{name}-%{version}.tar.bz2
Patch1: %{name}-desktop.patch
Patch2: %{name}-ggz.patch
URL: http://freeciv.wikia.com/
-BuildRequires: SDL_mixer-devel
+%{?with_magickwand:BuildRequires: ImageMagick-devel}
+%if %{with sdl}
BuildRequires: SDL_image-devel
+BuildRequires: SDL_mixer-devel
+%endif
BuildRequires: autoconf >= 2.52
-BuildRequires: automake
+BuildRequires: automake >= 1:1.9
+BuildRequires: curl-devel
BuildRequires: gettext-tools
%{?with_ggz_client:BuildRequires: ggz-gtk-client-devel}
-BuildRequires: gtk+2-devel
+%{?with_gtk2:BuildRequires: gtk+2-devel}
+%{?with_gtk3:BuildRequires: gtk+3-devel}
BuildRequires: libggz-devel
BuildRequires: libpng-devel
BuildRequires: libtool
+%{?with_system_lua:BuildRequires: lua51-devel}
BuildRequires: pkgconfig
BuildRequires: readline-devel
-BuildRequires: xorg-lib-libXaw-devel
+%{?with_xaw:BuildRequires: xorg-lib-libXaw-devel}
BuildRequires: zlib-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Window.
%package client
-Summary: Freeciv game client
-Summary(pl.UTF-8): Klient gry Freeciv
+Summary: GTK2 Freeciv game client
+Summary(pl.UTF-8): Klient gry Freeciv korzystający z GTK2
Group: X11/Applications/Games/Strategy
Requires: %{name} = %{version}-%{release}
-Requires: SDL_mixer
+Requires: %{name}-client-common = %{version}-%{release}
Suggests: %{name}-server = %{version}-%{release}
%description client
-This package contains Freeciv game client.
+This package contains GTK2-based Freeciv game client.
%description client -l pl.UTF-8
-Ten pakiet zawiera klienta gry Freeciv.
+Ten pakiet zawiera klienta gry Freeciv korzystającego z GTK2.
+
+%package client-common
+Summary: Freeciv game client common files
+Summary(pl.UTF-8): Wspólne pliki klientów gry Freeciv
+Group: X11/Applications/Games/Strategy
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-client-common = %{version}-%{release}
+Suggests: %{name}-server = %{version}-%{release}
+
+%description client-common
+This package contains common files for Freeciv game clients.
+
+%description client-common -l pl.UTF-8
+Ten pakiet zawiera wspólne pliki dla klientów gry Freeciv.
+
+%package client-gtk3
+Summary: GTK3 Freeciv game client
+Summary(pl.UTF-8): Klient gry Freeciv korzystający z GTK3
+Group: X11/Applications/Games/Strategy
+Requires: %{name} = %{version}-%{release}
+Suggests: %{name}-server = %{version}-%{release}
+
+%description client-gtk3
+This package contains GTK3-based Freeciv game client.
+
+%description client-gtk3 -l pl.UTF-8
+Ten pakiet zawiera klienta gry Freeciv korzystającego z GTK3.
+
+%package client-sdl
+Summary: SDL Freeciv game client
+Summary(pl.UTF-8): Klient gry Freeciv korzystający z SDL
+Group: X11/Applications/Games/Strategy
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-client-common = %{version}-%{release}
+Requires: SDL_mixer
+Suggests: %{name}-server = %{version}-%{release}
+
+%description client-sdl
+This package contains SDL-based Freeciv game client.
+
+%description client-sdl -l pl.UTF-8
+Ten pakiet zawiera klienta gry Freeciv korzystającego z SDL.
+
+%package client-xaw
+Summary: XAW Freeciv game client
+Summary(pl.UTF-8): Klient gry Freeciv korzystający z XAW
+Group: X11/Applications/Games/Strategy
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-client-common = %{version}-%{release}
+Suggests: %{name}-server = %{version}-%{release}
+
+%description client-xaw
+This package contains based Freeciv game client using XAW (X Athena
+Widgets).
+
+%description client-xaw -l pl.UTF-8
+Ten pakiet zawiera klienta gry Freeciv korzystającego z biblioteki XAW
+(X Athena Widgets)
+
+%package modpack
+Summary: Custom content installer for the Freeciv game
+Summary(pl.UTF-8): Instalator dodatków do gry Freeciv
+Group: X11/Applications/Games/Strategy
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-client-common = %{version}-%{release}
+Suggests: %{name}-server = %{version}-%{release}
+
+%description modpack
+Custom content installer for the Freeciv game.
+
+This program allows users to select and download add-on content
+("modpacks") for Freeciv from the Internet, either from a list
+maintained by the Freeciv team, or by using a URL obtained by other
+means. It takes care of installing the files in the correct place
+under the user's home directory for this version of Freeciv; it does
+not install anything for system-wide use.
+
+%description modpack -l pl.UTF-8
+Ten pakiet zawiera instalator dodatków do gry Freeciv dostępnych w
+internecie.
%package server
Summary: Freeciv game server
%prep
%setup -q
%patch0 -p1
-#patch1 -p1
+%patch1 -p1
%patch2 -p1
%build
%configure \
--with-ggzd-confdir=%{_sysconfdir}/ggzd \
--disable-silent-rules \
- --enable-client=gtk2,gtk3,sdl,xaw,stub \
+ --enable-client=stub,%{?with_gtk2:gtk2},%{?with_gtk3:gtk3},%{?with_qt:qt},%{?with_sdl:sdl},%{?with_xaw:xaw} \
+ --enable-mapimg=%{?with_magickwand:magickwand}%{!?with_magickwand:no} \
+ %{!?with_modpack:--enable-fcmp=no} \
+ %{?with_system_lua:--enable-sys-lua} \
%{!?with_ggz_client:--without-ggz-client} \
%{!?with_ggz_server:--without-ggz-server}
cp -a client/%{name}.desktop $RPM_BUILD_ROOT%{_desktopdir}/%{name}-client.desktop
cp -a server/%{name}-server.desktop $RPM_BUILD_ROOT%{_desktopdir}
-%{__rm} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+%{__rm} -f $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
cp -a data/icons/32x32/*.png $RPM_BUILD_ROOT%{_pixmapsdir}
cp -a data/stdsounds{,.soundspec} $RPM_BUILD_ROOT%{_datadir}/%{name}
#cp -a freeland.tilespec $RPM_BUILD_ROOT%{_datadir}/%{name}
#cp -a freeland $RPM_BUILD_ROOT%{_datadir}/%{name}
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/locale/no
-%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/ggz.modules
+%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/no
+%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/ggz.modules
cp -a data/gtk_menus.xml $RPM_BUILD_ROOT%{_datadir}/%{name}
cp -a data/civserver.room $RPM_BUILD_ROOT%{_sysconfdir}/ggzd/rooms/civserver.room
%endif
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libfreeciv{,-srv}.{a,la}
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man6/freeciv-qt*
+
+# from freeciv-manual man:
+# This tool is currently only really of use to the Freeciv maintainers,
+# as a starting point for pages on the main Freeciv wiki;
+# it's not very useful to end users.
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/freeciv-manual
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man6/freeciv-manual*
+
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/freeciv-stub
+
+# needed if building --without gtk2,gtk3,sdl
+%{__install} -d $RPM_BUILD_ROOT%{_datadir}/%{name}/themes
+
%find_lang %{name}
%clean
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS README ChangeLog NEWS
+%doc AUTHORS doc/BUGS ChangeLog doc/FAQ doc/HOWTOPLAY
+%doc NEWS NEWS-2.4
+%doc doc/README.SDLClient doc/README.cma doc/README.effects doc/README.fcdb
+%doc doc/README.graphics doc/README.sound
+%doc doc/README.ruleset_experimental doc/README.ruleset_multiplayer doc/README.rulesets
+%doc doc/TODO
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/helpdata.txt
%files server
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/freeciv-server
+#attr(755,root,root) %{_bindir}/freeciv-manual
%{_desktopdir}/%{name}-server.desktop
%{_datadir}/appdata/freeciv-server.appdata.xml
%{_datadir}/%{name}/civ1
%{_datadir}/%{name}/scenarios
%{_datadir}/%{name}/*.serv
%{_mandir}/man6/freeciv-server.6*
+#{_mandir}/man6/freeciv-manual.6*
%{_iconsdir}/hicolor/*/apps/freeciv-server.png
%{_pixmapsdir}/freeciv-server.png
%{_sysconfdir}/ggzd/rooms/civserver.room
%endif
-%files client
+%files client-common
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/freeciv-gtk2
-%attr(755,root,root) %{_bindir}/freeciv-gtk3
-%attr(755,root,root) %{_bindir}/freeciv-sdl
-%attr(755,root,root) %{_bindir}/freeciv-stub
-%attr(755,root,root) %{_bindir}/freeciv-xaw
-%attr(755,root,root) %{_bindir}/freeciv-manual
-%attr(755,root,root) %{_bindir}/freeciv-modpack
-%{_desktopdir}/%{name}-client.desktop
-%{_desktopdir}/%{name}-gtk3.desktop
-%{_desktopdir}/%{name}-modpack.desktop
-%{_desktopdir}/%{name}-sdl.desktop
-%{_datadir}/appdata/freeciv-gtk2.appdata.xml
-%{_datadir}/appdata/freeciv-gtk3.appdata.xml
-%{_datadir}/appdata/freeciv-modpack.appdata.xml
-%{_datadir}/appdata/freeciv-sdl.appdata.xml
%{_datadir}/%{name}/*.*spec
%{_datadir}/%{name}/amplio2
%{_datadir}/%{name}/buildings
+%{_datadir}/%{name}/cimpletoon
%{_datadir}/%{name}/flags
-%{_datadir}/%{name}/freeciv.rc*
-#%%{_datadir}/%{name}/freeland
%{_datadir}/%{name}/gtk_menus.xml
%{_datadir}/%{name}/hex2t
%{_datadir}/%{name}/isophex
%{_datadir}/%{name}/isotrident
%{_datadir}/%{name}/misc
%{_datadir}/%{name}/stdsounds
-%{_datadir}/%{name}/themes
+%dir %{_datadir}/%{name}/themes
%{_datadir}/%{name}/trident
%{_datadir}/%{name}/wonders
+
+%if %{with modpack}
+%files modpack
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/freeciv-modpack
+%{_desktopdir}/%{name}-modpack.desktop
+%{_datadir}/appdata/freeciv-modpack.appdata.xml
+%{_iconsdir}/hicolor/*/apps/freeciv-modpack.png
+%{_pixmapsdir}/freeciv-modpack.png
+%{_mandir}/man6/freeciv-modpack.6*
+%endif
+
+%if %{with gtk2}
+%files client
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/freeciv-gtk2
+%{_desktopdir}/%{name}-client.desktop
+%{_datadir}/appdata/freeciv-gtk2.appdata.xml
+%{_datadir}/%{name}/freeciv.rc-2.0
+%{_datadir}/%{name}/themes/gui-gtk-2.0
%{_mandir}/man6/freeciv-client.6*
%{_mandir}/man6/freeciv-gtk2.6*
-%{_mandir}/man6/freeciv-sdl.6*
-%{_mandir}/man6/freeciv-xaw.6*
%{_iconsdir}/hicolor/*/apps/freeciv-client.png
%{_pixmapsdir}/freeciv-client.png
+%endif
+
+%if %{with gtk3}
+%files client-gtk3
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/freeciv-gtk3
+%{_desktopdir}/%{name}-gtk3.desktop
+%{_datadir}/appdata/freeciv-gtk3.appdata.xml
+%{_datadir}/%{name}/themes/gui-gtk-3.0
+%{_mandir}/man6/freeciv-gtk3.6*
+%endif
+
+%if %{with sdl}
+%files client-sdl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/freeciv-sdl
+%{_desktopdir}/%{name}-sdl.desktop
+%{_datadir}/appdata/freeciv-sdl.appdata.xml
+%{_datadir}/%{name}/themes/gui-sdl
+%{_mandir}/man6/freeciv-sdl.6*
+%endif
+
+%if %{with xaw}
+%files client-xaw
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/freeciv-xaw
+%{_datadir}/%{name}/Freeciv
+%{_mandir}/man6/freeciv-xaw.6*
+%endif
+