quakeforge/RPM/quakeforge.spec.in

505 lines
18 KiB
RPMSpec

%define name quakeforge
%define version @VERSION@
%define release 1
%define builddir $RPM_BUILD_DIR/%{name}-%{version}
%define HAVE_FBDEV '@HAVE_FBDEV@'
%define HAVE_SDL '@HAVE_SDL@'
%define HAVE_SVGA '@HAVE_SVGA@'
%define HAVE_X11 '@HAVE_X@'
%define HAVE_XMMS '@HAVE_XMMS@'
%define HAVE_ALSA '@HAVE_ALSA@'
%define HAVE_OSS '@HAVE_OSS@'
%define BUILD_GL '@CAN_BUILD_GL@'
%define BUILD_SW '@CAN_BUILD_SW@'
Name: %{name}
Version: %{version}
Release: %{release}
Vendor: The QuakeForge Project
Packager: The QuakeForge Project quake-devel@lists.sourceforge.net
URL: http://www.quakeforge.net/
Source: %{name}-%{version}.tar.gz
#Patch:
Group: Amusements/Games
Copyright: GPL
#Icon:
Requires: quake-game
BuildRoot: /var/tmp/%{name}-%{version}
Summary: QuakeForge 3D game engine
%description
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%package common
Summary: QuakeForge 3D game engine - common files
Group: Amusements/Games
#Requires:
%description common
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%package stub
Summary: QuakeForge 3D game engine - common files
Group: Amusements/Games
#Requires:
Provides: quake-game
%description stub
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
This sub-package provides the quake-game pseudo package.
%package utils
Summary: QuakeForge 3D game engine - utility programs
Group: Amusements/Games
#Requires:
%description utils
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%package servers
Summary: QuakeForge 3D game engine - Server
Group: Amusements/Games
Requires: quakeforge == %{version}, quakeforge-common == %{version}
%description servers
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
#%package master
#Summary: QuakeForge 3D game engine - Master Server
#Group: Amusements/Games
##Requires:
#%description master
#QuakeForge is a source port of Quake and QuakeWorld, the successors to id
#Software's very popular DOOM series. Its primary development goal is to
#remain compatible with the original games released by id Software while
#adding portability and optional extensions to enhance gameplay.
%if "%{HAVE_FBDEV}"=="'yes'"
%package fbdev
Summary: QuakeForge 3D game engine - fbdev client
Group: Amusements/Games
Requires: quakeforge == %{version}, quakeforge-common == %{version}
%description fbdev
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%if "%{HAVE_X11}"=="'yes'"
%package glx
Summary: QuakeForge 3D game engine - glx client
Group: Amusements/Games
Requires: quakeforge == %{version}, quakeforge-common == %{version}
%description glx
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%if "%{HAVE_SDL}"=="'yes'"
%package cd-sdl
Summary: QuakeForge 3D game engine - SDL CD plugin
Group: Amusements/Games
#Requires:
%description cd-sdl
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%package sdl
Summary: QuakeForge 3D game engine - SDL client
Group: Amusements/Games
Requires: quakeforge == %{version}, quakeforge-common == %{version}
%description sdl
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%package sdl32
Summary: QuakeForge 3D game engine - SDL client
Group: Amusements/Games
Requires: quakeforge == %{version}
%description sdl32
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%package sgl
Summary: QuakeForge 3D game engine - SDL-GL client
Group: Amusements/Games
Requires: quakeforge == %{version}
%description sgl
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%if "%{HAVE_SVGA}"=="'yes'"
%package svga
Summary: QuakeForge 3D game engine - SVGAlib client
Group: Amusements/Games
Requires: quakeforge == %{version}
%description svga
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%if "%{HAVE_X11}"=="'yes'"
%package x11
Summary: QuakeForge 3D game engine - X11 client
Group: Amusements/Games
Requires: quakeforge == %{version}
%description x11
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%if "%{HAVE_ALSA}"=="'yes'"
%package snd-alsa
Summary: ALSA 0.9 sound plugin for QuakeForge
Group: Amusements/Games
#Requires:
%description snd-alsa
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
The ALSA 0.9 plugin for QuakeForge provides digital audio output for QuakeForge
targets that contain clients.
%endif
%if "%{HAVE_OSS}"=="'yes'"
%package snd-oss
Summary: OSS sound plugin for QuakeForge
Group: Amusements/Games
#Requires:
%description snd-oss
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
The OSS plugin for QuakeForge provides digital audio output (using OSS/Linux,
OSS/Free, or kernel sound) for QuakeForge targets that contain clients.
NOTE: This plugin does not work on all systems, since it uses memory-mapped
I/O for the output device. If you have trouble, try the quakeforge-alsa
package.
%endif
%if "%{HAVE_SDL}"=="'yes'"
%package snd-sdl
Summary: SDL sound plugin for QuakeForge
Group: Amusements/Games
#Requires:
%description snd-sdl
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
The SDL plugin for QuakeForge provides digital audio output for QuakeForge
targets that contain clients.
%endif
%if "%{BUILD_GL}"=="'yes'"
%package libs-gl
Summary: QuakeForge 3D game engine - OpenGL renderer libraries
Group: Amusements/Games
#Requires:
%description libs-gl
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%if "%{BUILD_SW}"=="'yes'"
%package libs-sw
Summary: QuakeForge 3D game engine - Software renderer libraries
Group: Amusements/Games
#Requires:
%description libs-sw
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%package cd-linux
Summary: QuakeForge 3D game engine - linux CD plugin
Group: Amusements/Games
#Requires:
%description cd-linux
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%if "%{HAVE_XMMS}"=="'yes'"
%package cd-xmms
Summary: QuakeForge 3D game engine - xmms CD plugin
Group: Amusements/Games
#Requires:
%description cd-xmms
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%endif
%package devel
Summary: QuakeForge 3D game engine - headers and devel libs
Group: Amusements/Games
Requires: quakeforge-common
%description devel
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
%package -n qfcc
Summary: QuakeForge QC/Ruamoko compiler
#FIXME correct group?
Group: Amusements/Games
Requires: quakeforge-common
%description -n qfcc
QuakeForge is a source port of Quake and QuakeWorld, the successors to id
Software's very popular DOOM series. Its primary development goal is to
remain compatible with the original games released by id Software while
adding portability and optional extensions to enhance gameplay.
qfcc is QuakeForge's extended qcc compiler. It is mostly compatable with id
Software's qcc, but due to extentions and subtle semantics changes, the
language it compiles is call Ruamoko.
%prep
%setup -n %{name}-%{version}
#%patch -p1
%build
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix}
if test -f /proc/cpuinfo; then
make -j`grep processor /proc/cpuinfo | wc -l`
else
make
fi
%install
if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi
mkdir -p $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc
make install DESTDIR=$RPM_BUILD_ROOT
cp RPM/quakeforge.conf $RPM_BUILD_ROOT/etc
%clean
rm -rf $RPM_BUILD_ROOT
%files
%doc COPYING INSTALL TODO doc/*
%attr(-,root,root) %dir %{_prefix}/share/games/quakeforge
%attr(-,root,root) %dir %{_prefix}/share/games/quakeforge/id1
%attr(-,root,root) %{_prefix}/share/games/quakeforge/id1/menu.dat*
%files common
%attr(-,root,root) /etc/quakeforge.conf
%attr(-,root,root) %{_prefix}/lib/libQFcd.so.*
%attr(-,root,root) %{_prefix}/lib/libQFconsole.so.*
%attr(-,root,root) %{_prefix}/lib/libQFcsqc.so.*
%attr(-,root,root) %{_prefix}/lib/libQFgamecode.so.*
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.so.*
%attr(-,root,root) %{_prefix}/lib/libQFjs.so.*
%attr(-,root,root) %{_prefix}/lib/libQFmodels.so.*
%attr(-,root,root) %{_prefix}/lib/libQFsound.so.*
%attr(-,root,root) %{_prefix}/lib/libQFutil.so.*
%attr(-,root,root) %{_prefix}/lib/quakeforge/libcd_null.so*
%attr(-,root,root) %{_prefix}/lib/quakeforge/libconsole_client.so*
%attr(-,root,root) %{_prefix}/lib/quakeforge/libsnd_output_disk.so*
%attr(-,root,root) %{_prefix}/lib/quakeforge/libsnd_render_default.so*
%files utils
%attr(-,root,root) %{_prefix}/bin/pak
%attr(-,root,root) %{_prefix}/bin/qfprogs
%attr(-,root,root) %{_prefix}/man/man1/pak.1.gz
#%attr(-,root,root) %{_prefix}/man/man1/qfprogs.1.gz
%files stub
%post stub
if test -f %{_prefix}/share/games/quakeforge/id1/pak0.pak; then
else
echo Warning: %{_prefix}/share/games/quakeforge/id1/pak0.pak not found
echo Install either the shareware or registered quake data in
echo %{_prefix}/share/games/quakeforge
fi
%files servers
%attr(-,root,root) %{_prefix}/bin/qw-server
%attr(-,root,root) %{_prefix}/bin/nq-server
%attr(-,root,root) %{_prefix}/bin/qw-master
%attr(-,root,root) %{_prefix}/lib/quakeforge/libconsole_server.so*
%files cd-linux
%attr(-,root,root) %{_prefix}/lib/quakeforge/libcd_linux.so*
%if "%{HAVE_SDL}"=="'yes'"
%files cd-sdl
%attr(-,root,root) %{_prefix}/lib/quakeforge/libcd_sdl.so*
%endif
%if "%{HAVE_XMMS}"=="'yes'"
%files cd-xmms
%attr(-,root,root) %{_prefix}/lib/quakeforge/libcd_xmms.so*
%endif
%if "%{HAVE_FBDEV}"=="'yes'"
%files fbdev
%attr(-,root,root) %{_prefix}/bin/qw-client-fbdev
%attr(-,root,root) %{_prefix}/bin/nq-fbdev
%endif
%if "%{HAVE_X11}"=="'yes'"
%files glx
%attr(-,root,root) %{_prefix}/bin/qw-client-glx
%attr(-,root,root) %{_prefix}/bin/nq-glx
%endif
%if "%{HAVE_SDL}"=="'yes'"
%files sdl
%attr(-,root,root) %{_prefix}/bin/qw-client-sdl
%attr(-,root,root) %{_prefix}/bin/nq-sdl
%files sdl32
%attr(-,root,root) %{_prefix}/bin/qw-client-sdl32
%attr(-,root,root) %{_prefix}/bin/nq-sdl32
%files sgl
%attr(-,root,root) %{_prefix}/bin/qw-client-sgl
%attr(-,root,root) %{_prefix}/bin/nq-sgl
%endif
%if "%{HAVE_SVGA}"=="'yes'"
%files svga
%attr(4755,root,root) %{_prefix}/bin/qw-client-svga
%attr(4755,root,root) %{_prefix}/bin/nq-svga
%endif
%if "%{HAVE_X11}"=="'yes'"
%files x11
%attr(-,root,root) %{_prefix}/bin/qw-client-x11
%attr(-,root,root) %{_prefix}/bin/nq-x11
%endif
%if "%{HAVE_ALSA}"=="'yes'"
%files snd-alsa
%attr(-,root,root) %{_prefix}/lib/quakeforge/libsnd_output_alsa0_9.so*
%endif
%if "%{HAVE_OSS}"=="'yes'"
%files snd-oss
%attr(-,root,root) %{_prefix}/lib/quakeforge/libsnd_output_oss.so*
%endif
%if "%{HAVE_SDL}"=="'yes'"
%files snd-sdl
%attr(-,root,root) %{_prefix}/lib/quakeforge/libsnd_output_sdl.so*
%endif
%if "%{BUILD_GL}"=="'yes'"
%files libs-gl
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.so.*
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.so.*
%endif
%if "%{BUILD_SW}"=="'yes'"
%files libs-sw
%attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.so.*
%if "%{HAVE_SDL}"=="'yes'"
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.so.*
%endif
%endif
%files devel
%attr(-,root,root) %{_prefix}/lib/libQFcd.a
%attr(-,root,root) %{_prefix}/lib/libQFcd.la
%attr(-,root,root) %{_prefix}/lib/libQFcd.so
%attr(-,root,root) %{_prefix}/lib/libQFconsole.a
%attr(-,root,root) %{_prefix}/lib/libQFconsole.la
%attr(-,root,root) %{_prefix}/lib/libQFconsole.so
%attr(-,root,root) %{_prefix}/lib/libQFcsqc.a
%attr(-,root,root) %{_prefix}/lib/libQFcsqc.la
%attr(-,root,root) %{_prefix}/lib/libQFcsqc.so
%attr(-,root,root) %{_prefix}/lib/libQFgamecode.a
%attr(-,root,root) %{_prefix}/lib/libQFgamecode.la
%attr(-,root,root) %{_prefix}/lib/libQFgamecode.so
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.a
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.la
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.so
%attr(-,root,root) %{_prefix}/lib/libQFjs.a
%attr(-,root,root) %{_prefix}/lib/libQFjs.la
%attr(-,root,root) %{_prefix}/lib/libQFjs.so
%attr(-,root,root) %{_prefix}/lib/libQFmodels.a
%attr(-,root,root) %{_prefix}/lib/libQFmodels.la
%attr(-,root,root) %{_prefix}/lib/libQFmodels.so
%if "%{BUILD_GL}"=="'yes'"
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.a
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.la
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.so
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.a
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.la
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.so
%endif
%if "%{BUILD_SW}"=="'yes'"
%attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.a
%attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.la
%attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.so
%if "%{HAVE_SDL}"=="'yes'"
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.a
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.la
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.so
%endif
%endif
%attr(-,root,root) %{_prefix}/lib/libQFsound.a
%attr(-,root,root) %{_prefix}/lib/libQFsound.la
%attr(-,root,root) %{_prefix}/lib/libQFsound.so
%attr(-,root,root) %{_prefix}/lib/libQFutil.a
%attr(-,root,root) %{_prefix}/lib/libQFutil.la
%attr(-,root,root) %{_prefix}/lib/libQFutil.so
%attr(-,root,root) %{_prefix}/include/QF/GL/*.h
%attr(-,root,root) %{_prefix}/include/QF/*.h
%attr(-,root,root) %{_prefix}/include/QF/plugin/*.h
%files -n qfcc
%attr(-,root,root) %{_prefix}/bin/qfcc
%attr(-,root,root) %{_prefix}/man/man1/qfcc.1.gz