Blob Blame History Raw
# Set sf_release to 1 to use released sources on sourceforge
%global sf_release  1
%global svndate 20160215

# Versions are like 2.2.0-rc1-r6353. The first part (2.2.0 in this example)
# goes into the Version: field, the rest (rc1-r6353 here) into %%src_release.
%global src_release 6404

%global src_version %{version}-r%{src_release}
%if 0%{?sf_release}
%global repo_url http://downloads.sourceforge.net/project/%{name}/%{version}/
%endif

Summary: The Open Racing Car Simulator
Name:    speed-dreams
Version: 2.2.1
%if 0%{?sf_release}
Release: 3%{?dist}
%else
Release: 1.%{svndate}svn%(echo %{src_release} | tr '-' '_').rc1%{?dist}.1
%endif
Epoch:   1
         # Contains LGPLv2 files also published under GPLv2+
License: GPLv2+
Group:   Amusements/Games
URL:     http://speed-dreams.org/

         # When making a post release (%%sf_release is 0), build
         # source using something like:
         #    svnroot=https://speed-dreams.svn.sourceforge.net/svnroot
         #    svn co -r 6358 $svnroot/speed-dreams/trunk speed-dreams
         #    cd speed-dreams
         #    packaging/sources/build.sh trunk-r6358
         # As of r6358, the download is ~8,8GB.
Source0: %{?repo_url}%{name}-src-base-%{src_version}.tar.xz
Source1: %{?repo_url}%{name}-src-wip-cars-and-tracks-%{src_version}.tar.xz
Source2: %{?repo_url}%{name}-src-hq-cars-and-tracks-%{src_version}.tar.xz
Source3: %{?repo_url}%{name}-src-more-hq-cars-and-tracks-%{src_version}.tar.xz
Source4: %{?repo_url}%{name}-src-unmaintained-%{src_version}.tar.xz
Source5: %{name}.desktop
Patch0:  %{name}-params-conversion.patch

Provides:      %{name} = %{epoch}:%{version}-%{release}
Requires:      %{name}-robots-base = %{epoch}:%{version}
Requires:      opengl-games-utils
BuildRequires: cmake
BuildRequires: chrpath
BuildRequires: desktop-file-utils
BuildRequires: enet-devel
BuildRequires: expat-devel
BuildRequires: freealut-devel
BuildRequires: freeglut-devel
BuildRequires: FreeSOLID-devel
BuildRequires: libGL-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libXi-devel
BuildRequires: libXmu-devel
BuildRequires: libXrandr-devel
BuildRequires: plib-devel
BuildRequires: SDL2-devel
BuildRequires: libogg-devel
BuildRequires: libvorbis-devel
BuildRequires: OpenSceneGraph-devel


# Dont provide or require internal libs. Using new rpm builtin filtering,
# see http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator
%global __requires_exclude                       liblearning.so
%global __requires_exclude %{__requires_exclude}|libnetworking.so
%global __requires_exclude %{__requires_exclude}|libraceengine.so
%global __requires_exclude %{__requires_exclude}|librobottools.so
%global __requires_exclude %{__requires_exclude}|libtgf.so
%global __requires_exclude %{__requires_exclude}|libtgfclient.so
%global __requires_exclude %{__requires_exclude}|libtgfdata.so
%global __requires_exclude %{__requires_exclude}|libportability.so

%global __provides_exclude_from %{_libdir}/games/speed-dreams-2/.*\\.so


%description
Speed-Dreams is a 3D racing cars simulator using OpenGL. A Fork of TORCS.
The goal is to have programmed robots drivers racing against each others.
You can also drive yourself with either a wheel, keyboard or mouse.

%package robots-base
Summary:       The Open Racing Car Simulator additional dirt tracks
Group:         Amusements/Games
BuildArch:     noarch
Requires:      %{name} =  %{epoch}:%{version}-%{release}

%description robots-base
This package contains additional tracks for the game.

%package devel
Summary:       The Open Racing Car Simulator development files
Group:         Amusements/Games
Requires:      %{name}%{?_isa} =  %{epoch}:%{version}-%{release}

%description devel
This package contains the development files for the game.


%prep
%setup -q -c -n %{name}-src-base-%{version}-%{release} -a1 -a2 -a3 -a4
%patch0 -p0

# delete unused header file on arm achitecture
sed -i -e 's|#include "OsgReferenced.h"||g' src/modules/graphic/osggraph/Sky/OsgDome.h

# fixes spurious-executable-perm
# https://sourceforge.net/p/speed-dreams/tickets/605/
find . -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.hpp' | \
    xargs chmod 644

%build
%cmake  -DCMAKE_BUILD_TYPE:STRING=Release                     \
        -DCMAKE_SKIP_RPATH:BOOL=OFF                           \
        -DOPTION_DEBUG:STRING=ON                              \
        -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed"         \
        -DSD_BINDIR:PATH=bin                                  \
        -DOPTION_3RDPARTY_SOLID:BOOL=ON                       \
        -DOPTION_OFFICIAL_ONLY:BOOL=ON
make %{?_smp_mflags}

%install
make DESTDIR=%{buildroot} install >/dev/null
find %{buildroot} -type f -name "*.cmake" -delete

desktop-file-install \
    --dir %{buildroot}%{_datadir}/applications \
    %{SOURCE5}

# Register as an application to be visible in the software center
mkdir -p %{buildroot}%{_datadir}/appdata
cp  packaging/appdata/%{name}-2.appdata.xml %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml

pushd %{buildroot}%{_libdir}/games/%{name}-2
    # Change rpath to refer only private lib dir.
    for lib in $(find . -type f -name \*.so ); do
        # Bug: cmake should make so-files 755 on Fedora by default.
        chmod 755 $lib
        chrpath --replace %{_libdir}/games/%{name}-2/lib $lib
    done

    # https://sourceforge.net/p/speed-dreams/tickets/730/
    cd drivers
    for base in usr simplix dandroid; do
        for lib in ${base}_*; do
            cd $lib
            cmp ../$base/$base.so *.so &&  ln -sf ../$base/$base.so *.so
            cd ..
        done
    done

    # Check that %%{buildroot}%%{_libdir}/games/%%{name}-2/lib doesn't 
    # contain unfiltered libs.
    cd ../lib
    excluded=$( echo '%{__requires_exclude}' | tr '|' ':' )
    for lib in *.so; do
        if [ "${excluded/${lib}/}" = "$excluded" ]; then
            echo "ERROR: $lib not filtered in __requires_exclude" >&2
            exit 2
        fi
    done
popd

# removed userman and faq documentation, because it's depreciated
# Upstream has been informed http://sourceforge.net/p/speed-dreams/tickets/739
rm -rf docs; mkdir docs
cp -a  %{buildroot}%{_datadir}/games/%{name}-2/*.txt docs
cp -a  %{buildroot}%{_datadir}/games/%{name}-2/*.xml docs

# remove zero length files
find %{buildroot} -size 0 -delete


%files
%doc docs/*.xml docs/*.txt
%{_mandir}/man6/*
%{_bindir}/%{name}-2
%{_bindir}/sd2-*
%{_libdir}/games/%{name}-2/
%{_datadir}/appdata/%{name}.appdata.xml
%{_datadir}/applications/%{name}.desktop
%{_datadir}/games/%{name}-2/
%exclude %{_datadir}/games/%{name}-2/cars/
##exclude #{_datadir}/games/#{name}-2/categories/
%exclude %{_datadir}/games/%{name}-2/config/
%exclude %{_datadir}/games/%{name}-2/data/
%exclude %{_datadir}/games/%{name}-2/drivers/
%exclude %{_datadir}/games/%{name}-2/tracks/

%files robots-base
%{_datadir}/games/%{name}-2/cars/
##{_datadir}/games/#{name}-2/categories/
%{_datadir}/games/%{name}-2/config/
%{_datadir}/games/%{name}-2/data/
%{_datadir}/games/%{name}-2/drivers/
%{_datadir}/games/%{name}-2/tracks/

%files devel
%{_includedir}/%{name}-2/

%changelog
* Tue Feb 14 2017 Martin Gansser <martinkg@fedoraproject.org> - 1:2.2.1-3
- Add %%{name}-params-conversion.patch

* Sat Apr 30 2016 Martin Gansser <martinkg@fedoraproject.org> - 1:2.2.1-2
- Rebuild due new qhull version

* Fri Apr 22 2016 Martin Gansser <martinkg@fedoraproject.org> - 1:2.2.1-1
- Update to 2.2.1

* Mon Feb 29 2016 Martin Gansser <martinkg@fedoraproject.org> - 1:2.2.0-0.6.20160215svn6358.rc1
- Re-add epoch to allow update

* Wed Feb 17 2016 Martin Gansser <martinkg@fedoraproject.org> - 2.2.0-0.5.20160215svn6358.rc1
- Update to svn6358.rc1
- Fixed sed command
- Replaced $$RPM_BUILD_ROOT macro by %%{buildroot}
- Dropped speed-dreams-isnan-not-declared.patch

* Sun Jan 31 2016 Martin Gansser <martinkg@fedoraproject.org> - 2.2.0-0.4.20160131svn6353.beta1
- Update to svn6353.beta1
- Dropped t940-r6349.patch
- Added speed-dreams-isnan-not-declared.patch needed by F24
- Cleanup spec file
- Dropped %%cmake flag -DCMAKE_EXE_LINKER_FLAGS="-lexpat" no longer needed
- Dropped %%cmake flag -DSOLID_SOLID_INCLUDE_DIR:PATH="/usr/include/FreeSOLID" no longer needed

* Thu Jan 28 2016 Martin Gansser <martinkg@fedoraproject.org> - 2.2.0-0.3.20160111svn6344.beta1
- Update upstream ticket links
- Added patch t940-r6349.patch to fix #940 Race config screen corruption

* Mon Jan 25 2016 Martin Gansser <martinkg@fedoraproject.org> - 2.2.0-0.2.20160111svn6344.beta1
- Changed %%cmake flag to -DSOLID_SOLID_INCLUDE_DIR
- Added danroid in for loop to create a link when library already exists

* Tue Jan 19 2016 Martin Gansser <martinkg@fedoraproject.org> - 2.2.0-0.1.20160111svn6344.beta1
- Update to Version 2.2.0 svn6344.beta1
- Dropped epoch
- Dropped BR SDL-devel
- Added BR SDL2-devel
- Added BR OpenSceneGraph-devel
- Added speed-dreams-arm.patch

* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.1.0-0.24.20140627svn5799.rc2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1:2.1.0-0.23.20140627svn5799.rc2
- Rebuilt for GCC 5 C++11 ABI change

* Thu Mar 26 2015 Richard Hughes <rhughes@redhat.com> - 1:2.1.0-0.22.20140627svn5799.rc2
- Add an AppData file for the software center

* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.1.0-0.21.20140627svn5799.rc2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sat Jun 28 2014 Martin Gansser <martinkg@fedoraproject.org> - 2.1.0-0.20.20140627svn5799.rc2
- Update to svn5799.rc2
- added epoch to allow upgrade to pre-release
- added global svndate macro

* Thu Jun 26 2014 Martin Gansser <martinkg@fedoraproject.org> - 2.1.0-19.trunk_r5796
- spec file cleanup
- rebuild for new svn version

* Wed Jun 25 2014 Martin Gansser <martinkg@fedoraproject.org> - 2.1.0-18.trunk_r5781
- added BR libogg-devel
- added BR libvorbis-devel

* Tue Jun 24 2014 Martin Gansser <martinkg@fedoraproject.org> - 2.1.0-17.trunk_r5781
- Update to rc1 svn5781
- added libportability.so to __requires_exclude
- remove zero length files

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.0-16.trunk_r4810.4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri May 02 2014 Martin Gansser <martinkg@fedoraproject.org> - 2.1.0-16.trunk_r4810.3
- Rebuild for enet soname change

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.0-15.trunk_r4810.3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Thu Jun 27 2013 Bruno Wolff III <bruno@wolff.to> - 2.1.0-15.trunk_r4810.2
- Rebuild for enet soname change

* Sat Jun 15 2013 Bruno Wolff III <bruno@wolff.to> - 2.1.0-14.trunk_r4810.2
- Rebuild for enet 1.3.8 soname bump

* Sat Apr 27 2013 Bruno Wolff III <bruno@wolff.to> - 2.1.0-13.trunk_r4810.2
- Rebuild for enet 1.3.7 soname bump

* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.0-12.trunk_r4810.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Mon Jan 21 2013 Adam Tkac <atkac redhat com> - 2.1.0-12.trunk_r4810.1
- rebuild due to "jpeg8-ABI" feature drop

* Sun Dec 23 2012 Martin Gansser <martinkg@fedoraproject.org> 2.1.0-12.trunk_r4810
- rebuild against new libjpeg

* Wed Aug 22 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-11.trunk_r4810
- added requirement to the robots-base package

* Sun Aug 19 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-10.trunk_r4810
- removed %%_isa requirement on opengl-games-utils because its a noarch package

* Fri Aug 17 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-9.trunk_r4810
- added Provides to the main package
- reversed the changes to the robots-base sub-package

* Fri Aug 17 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-8.trunk_r4810
- changed isa tag requirement on the robots-base sub-package
- Add  %%_isa requirement to opengl-games-utils

* Thu Aug 16 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-7.trunk_r4810
- added BuildArch noarch to speed-dreams-robots-base 
- removed enet requirement due autorequires

* Wed Aug 15 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-6.trunk_r4810
- changed requirement to enet, libenet is wrong

* Wed Aug 15 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-5.trunk_r4810
- Add libenet build requirement (needed on x86_64).

* Wed Aug 15 2012 Martin Gansser <linux4martin@gmx.de> 2.1.0-4.trunk_r4810
- added libenet Requirement

* Tue Aug 14 2012 Martin Gansser <linux4martin@gmx.de>  2.1.0-3.trunk_r4810
- added url to userman upstream bug report #739

* Mon Aug 13 2012 Martin Gansser <linux4martin@gmx.de>  2.1.0-2.trunk_r4810
- removed extra docs folder because of file redundancy
- leave comment, why removed docs folder

* Thu Jul 26 2012 Alec Leamas <leamas@nowhere.net>  2.1.0-1.trunk_r4810
- Conditionalize spec on post-release or ordinary.
- Updating to latest git.
- Handle build system bugs (#728,#729,#731).
- Fix 'identical binaries copied, not linked' in drivers(#730).
- Simplified file list, use temporary docs dir, claim all dirs.
- Sorted deps.
- Fix Release: field.
- Fix non-working handling of spurious-executable-perm (#605)
- Added rpath for internal libraries.
- Filter out internal libs in requires/provides.
- Removed unneeded install fixes and macros.

* Thu Jun 14 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-1%{?dist}
- finale release 2.0.0
- rebuild for Fedora 17

* Sat Mar 3 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1_r4420.20%{?dist}
- fix bug with libsolid use CMAKE_SKIP_RPATH build option
- remove wrapper script

* Sun Feb 26 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1_r4420.19%{?dist}
- more SPEC file cleanups

* Fri Feb 24 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1_r4420.18%{?dist}
- build wrapper script for non-standard lib location

* Thu Feb 09 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1_r4420.17%{?dist}
- remove bindir.patch and use cmake option
- remove macro real_ver
- fix license type
- remove dopple libdir entry in file section

* Wed Feb 08 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1_r4420.16%{?dist}
- fix in prep section wrong-file-end-of-line-encoding
- new URLs for source packages
- delete macro pkg_name

* Tue Feb 07 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1_r4420.15%{?dist}
- fix incoherent-version-in-changelog
- fix file-not-utf8
- fix description-line-too-long
- fix non-conffile-in-etc

* Mon Feb 06 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-14
- removed gobal macro debug_package

* Wed Feb 01 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-13
- add correct license type

* Sun Jan 29 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-12
- rpm macro cleanup

* Thu Jan 26 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-11
- add bindir patch

* Wed Jan 25 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-10
- more SPEC file cleanups

* Tue Jan 24 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-9
- more SPEC file cleanups
- removing files from /usr/share/pixmap

* Mon Jan 23 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-8
- more SPEC file cleanups

* Sat Jan 21 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-7
- SPEC file optimization

* Fri Jan 20 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-6
- add library path to ld.so.conf.d/speed-dreams-2.conf

* Mon Jan 16 2012 Martin Gansser <linux4martin@gmx.de> 2.0.0-0.1.rc1-r4420-5
- new release

* Mon Oct 31 2011 Martin Gansser <linux4martin@gmx.de> 2.0.0-b1-r3937-4
- add CMAKE options DOPTION_DEBUG and SKIP_RPATH

* Sun Oct 16 2011 Mario Bl├Ąttermann <mariobl@fedoraproject.org> 2.0.0-b1-r3937-3
- Removed unneeded definitions of BuildRoot, clean section
- Corrected URL
- Moved the *.desktop file to a real file as second source
- Removed unneeded BuildRequires

* Fri Oct 14 2011 Martin Gansser <linux4martin@gmx.de> 2.0.0-b1-r3937-2
- copy libsolid.so to SD lib dir

* Tue Oct 4 2011 Martin Gansser <linux4martin@gmx.de> 2.0.0-b1-r3937-1
- new version for Fedora 15

* Thu Jun 24 2010 Martin Gansser <linux4martin@gmx.de> 1.4.0-r2307-2
- initial version for Fedora 13