churchyard / rpms / colobot

Forked from rpms/colobot 5 years ago
Clone
Blob Blame History Raw
Name:    colobot
Version: 0.1.11.1
Release: 6%{?dist}
Summary: A video game that teaches programming in a fun way

License: GPLv3
URL: https://colobot.info

%global giturl https://github.com/colobot
%global gittag colobot-gold-%{version}-alpha
Source0: %{giturl}/colobot/archive/%{gittag}/colobot-%{gittag}.tar.gz
Source1: %{giturl}/colobot-data/archive/%{gittag}/colobot-data-%{gittag}.tar.gz

# Music files are licensed under GPLv3, like the rest of the game.
# They are not kept in the colobot-data repo, and by default are downloaded during the build.
# Since Fedora builders have net-access disabled, we need to download them beforehand.
%global musicurl https://colobot.info/files/music
Source100: %{musicurl}/Intro1.ogg
Source101: %{musicurl}/Intro2.ogg
Source102: %{musicurl}/music002.ogg
Source103: %{musicurl}/music003.ogg
Source104: %{musicurl}/music004.ogg
Source105: %{musicurl}/music005.ogg
Source106: %{musicurl}/music006.ogg
Source107: %{musicurl}/music007.ogg
Source108: %{musicurl}/music008.ogg
Source109: %{musicurl}/music009.ogg
Source110: %{musicurl}/music010.ogg
Source111: %{musicurl}/music011.ogg
Source112: %{musicurl}/music012.ogg
Source113: %{musicurl}/music013.ogg
Source114: %{musicurl}/Constructive.ogg
Source115: %{musicurl}/Humanitarian.ogg
Source116: %{musicurl}/Hv2.ogg
Source117: %{musicurl}/Quite.ogg
Source118: %{musicurl}/Infinite.ogg
Source119: %{musicurl}/Proton.ogg
Source120: %{musicurl}/Prototype.ogg

# Add an Appstream file
# https://github.com/colobot/colobot/pull/1205
Patch0: colobot-1205.diff

# Replace sprintf() calls with snprintf() calls
Patch1: colobot-sprintf.diff

BuildRequires: boost-devel >= 1.51
BuildRequires: boost-filesystem >= 1.51
BuildRequires: boost-regex >= 1.51
BuildRequires: cmake >= 2.8
BuildRequires: desktop-file-utils
BuildRequires: gcc-c++
BuildRequires: gettext-devel >= 0.18
BuildRequires: glew-devel >= 1.8.0
BuildRequires: libappstream-glib
BuildRequires: libogg-devel >= 1.3.0
BuildRequires: libpng-devel >= 1.2
BuildRequires: libsndfile-devel >= 1.0.25
BuildRequires: libvorbis >= 1.3.2
BuildRequires: openal-soft-devel >= 1.13
BuildRequires: po4a
BuildRequires: physfs-devel
BuildRequires: python3
BuildRequires: SDL2-devel SDL2_image-devel SDL2_ttf-devel
BuildRequires: xmlstarlet
BuildRequires: %{_bindir}/pod2man
BuildRequires: %{_bindir}/rsvg-convert

Requires: colobot-data = %{version}-%{release}
Requires: colobot-music = %{version}-%{release}
Requires: hicolor-icon-theme

%description
Colobot: Gold Edition is a real-time strategy game, where you can program
your units (bots) in a language called CBOT, which is similar to C++ and Java.
Your mission is to find a new planet to live and survive.
You can save the humanity and get programming skills!


%package data
Summary: Data files for Colobot: Gold Edition
BuildArch: noarch

%description data
Data files (graphics, sounds, levels) required to run Colobot Gold.


%package music
Summary: Music for Colobot: Gold Edition
BuildArch: noarch

%description music
Music files used by Colobot Gold.


%prep
%setup -q -n colobot-%{gittag}
%patch0 -p1
%patch1 -p1

rm -rf ./data
cp %{SOURCE1} ./data.tgz
tar xzf ./data.tgz
rm ./data.tgz
mv ./colobot-data-%{gittag} ./data

cp -a %{SOURCE100} data/music/
cp -a %{SOURCE101} data/music/
cp -a %{SOURCE102} data/music/
cp -a %{SOURCE103} data/music/
cp -a %{SOURCE104} data/music/
cp -a %{SOURCE105} data/music/
cp -a %{SOURCE106} data/music/
cp -a %{SOURCE107} data/music/
cp -a %{SOURCE108} data/music/
cp -a %{SOURCE109} data/music/
cp -a %{SOURCE110} data/music/
cp -a %{SOURCE111} data/music/
cp -a %{SOURCE112} data/music/
cp -a %{SOURCE113} data/music/
cp -a %{SOURCE114} data/music/
cp -a %{SOURCE115} data/music/
cp -a %{SOURCE116} data/music/
cp -a %{SOURCE117} data/music/
cp -a %{SOURCE118} data/music/
cp -a %{SOURCE119} data/music/
cp -a %{SOURCE120} data/music/

sed \
  -e 's|set(COLOBOT_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/games |set(COLOBOT_INSTALL_BIN_DIR %{_bindir}/ |' \
  -e 's|set(COLOBOT_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/colobot |set(COLOBOT_INSTALL_LIB_DIR %{_libdir}/colobot |' \
  -e 's|set(COLOBOT_INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/games/colobot |set(COLOBOT_INSTALL_DATA_DIR %{_datadir}/colobot |' \
  -e 's|set(COLOBOT_INSTALL_I18N_DIR ${CMAKE_INSTALL_PREFIX}/share/locale |set(COLOBOT_INSTALL_I18N_DIR %{_datadir}/locale |' \
  -e 's|set(COLOBOT_INSTALL_DOC_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/colobot |set(COLOBOT_INSTALL_DOC_DIR %{_datadir}/doc/colobot |' \
  -i CMakeLists.txt


%build
mkdir build
cd build
%cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=%{__python3} ..
make %{?_smp_mflags}


%install
pushd build
%make_install
popd
%find_lang %{name} --with-man


%check
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml


%files -f %{name}.lang
%license LICENSE.txt
%{_bindir}/%{name}
%{_libdir}/%{name}/

%{_datadir}/applications/%{name}.desktop
%{_datadir}/metainfo/*.appdata.xml
%{_datadir}/icons/hicolor/**/apps/%{name}.png
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_mandir}/man6/%{name}.6*


%files data
%license LICENSE.txt
%{_datadir}/%{name}/
%exclude %{_datadir}/%{name}/music


%files music
%license LICENSE.txt
%dir %{_datadir}/%{name}/
%{_datadir}/%{name}/music/


%changelog
* Tue Nov 13 2018 Artur Iwicki <fedora@svgames.pl> - 0.1.11.1-6
- Use %%find_lang for .mo files and man pages

* Thu Nov 08 2018 Artur Iwicki <fedora@svgames.pl> - 0.1.11.1-5
- Change the Summary: to something more descriptive
- Add a comment on music files
- Preserve timestamps on music files

* Thu Nov 08 2018 Artur Iwicki <fedora@svgames.pl> - 0.1.11.1-4
- Add a Requires: for hicolor-icon-theme
- Validate the desktop and appdata file

* Sun Nov 04 2018 Artur Iwicki <fedora@svgames.pl> - 0.1.11.1-3
- Fix build failures on F28 and later

* Mon Oct 29 2018 Artur Iwicki <fedora@svgames.pl> - 0.1.11.1-2
- Add an Appdata XML file
- Move music into a separate subpackage

* Tue Oct 16 2018 Artur Iwicki <fedora@svgames.pl> - 0.1.11.1-1
- Initial packaging