Witam!

W naszym repo w quake2.spec mamy modyfikację silnika która nazywa się
quake2forge. Moim zdaniem w specu quake2 powinno znajdować się orginalne
wydanie binarne, a wszystkie modyfikacje silnika powinny znajdować się w
osobnych specach nazywanych tak jak nazwa danego projektu. Umożliwiłoby
to w przyszłości instalację kilku wersji silnika gry równocześnie.
Proponowałbym zrobić kopię aktualnej rewizji speca do quake2forge.spec. Po
takiej operacji można będzie zmienić ścieżki _gamelibdir i _gamedatadir
(to drugie niekoniecznie), oraz binarkę na unikalne dla projektu
quake2forge. W proponuję quake2.spec wycofać wszystkie zmiany do wersji
1.12, która jest ostatnią wersją binarną (wg changeloga). Wersja binarna,
jest przydatna do odpalania serwerów z binarnymi modami (np. LithiumII,
Tourney, itp.).

Kolejna sprawa, którą chciałbym poruszyć, to dodanie do quake2forge
modułów dla dodatków xatrix i rogue. Zrobiłem zmiany do quake2.spec,
które dodają ww dodatki, jednak nie jestem pewien w jaki sposób je
dodać ze względu na kwestie licencyjne. Niestety kod źródłowy tych
dodatków nie ma zmienionej licencji na GPL. W tej chwili oba dodatki
są domyślnie wyłączone, można je zbudować po włączeniu odpowiednich
bcondów. W załączniku wstępny spec, który buduje się i działa.
Changelog:
- added xatrix and rogue compilation (default off),
- fix searchpaths when gamedir != baseq2 (Patch2),
- makefile.am fixes for xatrix & rogue (Patch3),
- gcc warning fixes (Patch4 & Patch5 - quake2forge builds with -Wall
  -Werror).

Patch #2 jest niezbędny do odpalenia jakiegokolwiek moda, nie zadziała
nawet ctf z pakietu(gra odpali się ale z %{_gamelibdir}/baseq2/game.so),
więc prosiłym o dodanie go bez względu na opinie o reszcie modyfikacji.
Patchy #4 i #5 nie wyślę na listę bo po kompresji zajmują ~70k (>700k
bez kompresji).

Uprzejmie proszę o komentarze do moich propozycji.

-- 
Pozdrawiam
Przemysław Białek

Index: quake2.spec
===================================================================
RCS file: /cvsroot/SPECS/quake2.spec,v
retrieving revision 1.59
diff -u -r1.59 quake2.spec
--- quake2.spec 23 May 2006 19:20:57 -0000      1.59
+++ quake2.spec 26 Oct 2006 22:19:44 -0000
@@ -2,25 +2,42 @@
 # TODO:
 # - ipv6 support
 # - -static without -devel makes no sense (remove -static)
+%bcond_with    xatrix
+%bcond_with    rogue
+
 Summary:       Quake2 for linux
 Summary(pl):   Quake2 dla Linuksa
 Summary(pt_BR):        Quake2 para Linux
 Name:          quake2
 Version:       0.3
-Release:       3
+Release:       3.6
 Epoch:         1
 License:       GPL (for code only)
 Group:         X11/Applications/Games
 Source0:       ftp://ftp.quakeforge.net/quake2forge/%{name}-%{version}.tar.gz
 # Source0-md5: 2c167ff7edce20f0240316b98a1e4515
 #Source1:      multiplay pack (need to check licence)
-# ftp://ftp.idsoftware.com/idstuff/quake2/q2-3.20-x86-full.exe
-Source2:       %{name}-server.conf
-Source3:       %{name}-server
-Source4:       %{name}.png
-Source5:       %{name}.desktop
+# 
ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-glibc-i386-unknown-linux2.0.tar.gz
+%if %{with xatrix}
+Source2:       
ftp://ftp.idsoftware.com/idstuff/quake2/source/xatrixsrc320.shar.Z
+# Source2-md5: 41fc4ecc4f25c068e7d1f488bd4a1e1a
+%endif
+%if %{with rogue}
+Source3:       
ftp://ftp.idsoftware.com/idstuff/quake2/source/roguesrc320.shar.Z
+# Source3-md5: 7d5e052839c9e629bad0a6570aa70554
+%endif
+Source4:       %{name}-server.conf
+Source5:       %{name}-server
+Source6:       %{name}.png
+Source7:       %{name}.desktop
+Source8:       %{name}-xatrix.desktop
+Source9:       %{name}-rogue.desktop
 Patch0:                %{name}-stupid_nvidia_bug.patch
 Patch1:                %{name}-gl.patch
+Patch2:                %{name}-game_paths.diff
+Patch3:                %{name}-missionpacks.patch
+Patch4:                %{name}-xatrix_gcc_fixes.diff
+Patch5:                %{name}-rogue_gcc_fixes.diff
 URL:           http://www.quakeforge.net/
 BuildRequires: OpenGL-devel
 BuildRequires: SDL-devel
@@ -37,8 +54,8 @@
 Requires:      %{name}-renderer
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _gamelibdir     %{_libdir}/games/%{name}
-%define                _gamedatadir    %{_datadir}/games/%{name}
+%define                _gamelibdir     %{_libdir}/%{name}
+%define                _gamedatadir    %{_datadir}/%{name}
 
 %description
 Quake2 for linux!
@@ -61,6 +78,22 @@
 %description static -l pl
 Quake2 - biblioteki statyczne
 
+%package xatrix
+Summary:       Quake2: The Reckoning
+Group:         Applications/Games
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+
+%description xatrix
+Quake2: The Reckoning.
+
+%package rogue
+Summary:       Quake2: Ground Zero
+Group:         Applications/Games
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+
+%description rogue
+Quake2: Ground Zero
+
 %package server
 Summary:       Quake2 server
 Summary(pl):   Serwer Quake2
@@ -217,8 +250,24 @@
 
 %prep
 %setup -q
+%if %{with xatrix}
+cd src/xatrix/
+gunzip -c %{SOURCE2} | %{__sed} s/"^more "/"cat >LICENSE.xatrix "/ >xatrix.shar
+echo yes| sh xatrix.shar
+cd ../../
+%patch4 -p1
+%endif
+%if %{with rogue}
+cd src/rogue/
+gunzip -c %{SOURCE3} | %{__sed} s/"^more "/"cat >LICENSE.rogue "/ >rogue.shar
+echo yes| sh rogue.shar
+cd ../../
+%patch5 -p1
+%endif
 %patch0
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 %{__sed} -i -e 's/libltdl//' Makefile.am
 %{__sed} -i -e 's/AC_LIBLTDL_CONVENIENCE/AC_LIBLTDL_INSTALLABLE/' configure.in
@@ -232,10 +281,10 @@
 
 %configure \
        --enable-ltdl-install=no \
-       --libdir=%{_libdir}/games \
-       --datadir=%{_datadir}/games \
-       --enable-sdlsound \
-       --with-opengl=/usr/X11R6
+       --libdir=%{_libdir} \
+       --datadir=%{_datadir} \
+       --enable-sdlsound
+#      --with-opengl=/usr/X11R6
 
 %{__make}
 
@@ -255,10 +304,16 @@
 #done
 #install baseq2/pak2.pak        $RPM_BUILD_ROOT%{_gamedir}/quake2/baseq2
 
-install %{SOURCE2} $RPM_BUILD_ROOT%{_gamedatadir}/baseq2/server.cfg
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d
-install %{SOURCE4} $RPM_BUILD_ROOT%{_pixmapsdir}
-install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+install %{SOURCE4} $RPM_BUILD_ROOT%{_gamedatadir}/baseq2/server.cfg
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d
+install %{SOURCE6} $RPM_BUILD_ROOT%{_pixmapsdir}
+install %{SOURCE7} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+%if %{with xatrix}
+install %{SOURCE8} $RPM_BUILD_ROOT%{_desktopdir}/%{name}-xatrix.desktop
+%endif
+%if %{with rogue}
+install %{SOURCE9} $RPM_BUILD_ROOT%{_desktopdir}/%{name}-rogue.desktop
+%endif
 
 rm -rf _doc
 cp -a docs _doc
@@ -307,6 +362,24 @@
 %{_gamelibdir}/ref_softsdl.a
 %{_gamelibdir}/ref_softx.a
 %{_gamelibdir}/ref_tdfx.a
+
+%if %{with xatrix}
+%files xatrix
+%defattr(644,root,root,755)
+%dir %{_gamelibdir}/xatrix
+%attr(755,root,root) %{_gamelibdir}/xatrix/game.so
+%{_gamelibdir}/xatrix/game.la
+%{_desktopdir}/quake2-xatrix.desktop
+%endif
+
+%if %{with rogue}
+%files rogue
+%defattr(644,root,root,755)
+%dir %{_gamelibdir}/rogue
+%attr(755,root,root) %{_gamelibdir}/rogue/game.so
+%{_gamelibdir}/rogue/game.la
+%{_desktopdir}/quake2-rogue.desktop
+%endif
 
 %files server
 %defattr(644,root,root,755)
diff -ru quake2-0.3.orig/src/files.c quake2-0.3/src/files.c
--- quake2-0.3.orig/src/files.c 2006-10-26 18:42:32.000000000 +0200
+++ quake2-0.3/src/files.c      2006-10-26 23:40:06.000000000 +0200
@@ -724,7 +724,8 @@
                Cvar_FullSet ("gamedir", dir, CVAR_SERVERINFO|CVAR_NOSET);
                if (fs_cddir->string[0])
                        FS_AddGameDirectory (va("%s/%s", fs_cddir->string, dir) 
);
-               FS_AddGameDirectory (va("%s/%s", fs_basedir->string, dir) );
+               FS_AddGameDirectory (va("%s/%s", PKGLIBDIR, dir) );
+               FS_AddGameDirectory (va("%s/%s", PKGDATADIR, dir) );
                FS_AddHomeAsGameDirectory (dir);
        }
 }
diff -ru quake2-0.3.orig/src/rogue/Makefile.am quake2-0.3/src/rogue/Makefile.am
--- quake2-0.3.orig/src/rogue/Makefile.am       2004-02-26 21:53:00.000000000 
+0100
+++ quake2-0.3/src/rogue/Makefile.am    2006-10-26 18:24:11.000000000 +0200
@@ -1,32 +1,33 @@
 pkglibdir=$(libdir)/@PACKAGE@/rogue
 
 if DO_ROGUE
-#pkglib_LTLIBRARIES = game.la
-#game_la_SOURCES = dm_ball.c dm_tag.c \
-#              g_ai.c g_chase.c g_cmds.c g_combat.c g_func.c \
-#              g_items.c g_main.c g_misc.c g_monster.c g_newai.c \
-#              g_newdm.c g_newfnc.c g_newtarg.c g_newtrig.c \
-#              g_newweap.c g_phys.c g_save.c g_spawn.c g_sphere.c \
-#              g_svcmds.c g_target.c g_trigger.c g_turret.c \
-#              g_utils.c g_weapon.c \
-#              m_actor.c m_berserk.c m_boss2.c m_boss3.c \
-#              m_boss31.c m_boss32.c m_brain.c m_carrier.c \
-#              m_chick.c m_flash.c m_flipper.c m_float.c m_flyer.c \
-#              m_gladiator.c m_gunner.c m_hover.c m_infantry.c \
-#              m_insane.c m_medic.c m_move.c m_mutant.c \
-#              m_parasite.c m_soldier.c m_stalker.c m_supertank.c \
-#              m_tank.c m_turret.c m_widow.c m_widow2.c \
-#              p_client.c p_hud.c p_trail.c p_view.c p_weapon.c \
-#              q_shared.c
-#
-#noinst_HEADERS = g_local.h m_actor.h m_berserk.h m_boss2.h m_boss31.h \
-#      m_boss32.h m_brain.h m_carrier.h m_chick.h m_flipper.h \
-#      m_float.h m_flyer.h m_gladiator.h m_gunner.h m_hover.h \
-#      m_infantry.h m_insane.h m_medic.h m_mutant.h m_parasite.h \
-#      m_player.h m_rider.h m_soldier.h m_stalker.h m_supertank.h \
-#      m_tank.h m_turret.h m_widow.h m_widow2.h q_shared.h
-#
-##game_la_CFLAGS = -fPIC -Wall -Werror -pipe @OPT_CFLAGS@
-#game_la_CFLAGS = -I$(top_srcdir)/src -fPIC -pipe @OPT_CFLAGS@
-#game_la_LDFLAGS = -module -avoid-version -rpath $(pkglibdir)
+pkglib_LTLIBRARIES = game.la
+game_la_SOURCES = dm_ball.c dm_tag.c \
+               g_ai.c g_chase.c g_cmds.c g_combat.c g_func.c \
+               g_items.c g_main.c g_misc.c g_monster.c g_newai.c \
+               g_newdm.c g_newfnc.c g_newtarg.c g_newtrig.c \
+               g_newweap.c g_phys.c g_save.c g_spawn.c g_sphere.c \
+               g_svcmds.c g_target.c g_trigger.c g_turret.c \
+               g_utils.c g_weapon.c \
+               m_actor.c m_berserk.c m_boss2.c m_boss3.c \
+               m_boss31.c m_boss32.c m_brain.c m_carrier.c \
+               m_chick.c m_flash.c m_flipper.c m_float.c m_flyer.c \
+               m_gladiator.c m_gunner.c m_hover.c m_infantry.c \
+               m_insane.c m_medic.c m_move.c m_mutant.c \
+               m_parasite.c m_soldier.c m_stalker.c m_supertank.c \
+               m_tank.c m_turret.c m_widow.c m_widow2.c \
+               p_client.c p_hud.c p_trail.c p_view.c p_weapon.c \
+               q_shared.c
+
+noinst_HEADERS = g_local.h m_actor.h m_berserk.h m_boss2.h m_boss31.h \
+       m_boss32.h m_brain.h m_carrier.h m_chick.h m_flipper.h \
+       m_float.h m_flyer.h m_gladiator.h m_gunner.h m_hover.h \
+       m_infantry.h m_insane.h m_medic.h m_mutant.h m_parasite.h \
+       m_player.h m_rider.h m_soldier.h m_stalker.h m_supertank.h \
+       m_tank.h m_turret.h m_widow.h m_widow2.h q_shared.h
+
 endif # DO_ROGUE
+
+AM_CFLAGS = -fPIC -pipe @WARN_CFLAGS@ @OPT_CFLAGS@
+AM_CPPFLAGS = -I$(top_srcdir)/src
+LDFLAGS = -module -avoid-version -rpath $(pkglibdir)
diff -ru quake2-0.3.orig/src/xatrix/Makefile.am 
quake2-0.3/src/xatrix/Makefile.am
--- quake2-0.3.orig/src/xatrix/Makefile.am      2004-02-26 21:53:01.000000000 
+0100
+++ quake2-0.3/src/xatrix/Makefile.am   2006-10-26 18:24:31.000000000 +0200
@@ -1,29 +1,30 @@
 pkglibdir=$(libdir)/@PACKAGE@/xatrix
 
 if DO_XATRIX
-#pkglib_LTLIBRARIES = game.la
-#game_la_SOURCES = g_ai.c g_chase.c g_cmds.c g_combat.c g_func.c \
-#              g_items.c g_main.c g_misc.c g_monster.c g_phys.c \
-#              g_save.c g_spawn.c g_svcmds.c g_target.c g_trigger.c \
-#              g_turret.c g_utils.c g_weapon.c \
-#              m_actor.c m_berserk.c m_boss2.c m_boss3.c \
-#              m_boss31.c m_boss32.c m_boss5.c m_brain.c \
-#              m_chick.c m_fixbot.c m_flash.c m_flipper.c \
-#              m_float.c m_flyer.c m_gekk.c m_gladb.c \
-#              m_gladiator.c m_gunner.c m_hover.c m_infantry.c \
-#              m_insane.c m_medic.c m_move.c m_mutant.c \
-#              m_parasite.c m_soldier.c m_supertank.c m_tank.c \
-#              p_client.c p_hud.c p_trail.c p_view.c p_weapon.c \
-#              q_shared.c
+pkglib_LTLIBRARIES = game.la
+game_la_SOURCES = g_ai.c g_chase.c g_cmds.c g_combat.c g_func.c \
+               g_items.c g_main.c g_misc.c g_monster.c g_phys.c \
+               g_save.c g_spawn.c g_svcmds.c g_target.c g_trigger.c \
+               g_turret.c g_utils.c g_weapon.c \
+               m_actor.c m_berserk.c m_boss2.c m_boss3.c \
+               m_boss31.c m_boss32.c m_boss5.c m_brain.c \
+               m_chick.c m_fixbot.c m_flash.c m_flipper.c \
+               m_float.c m_flyer.c m_gekk.c m_gladb.c \
+               m_gladiator.c m_gunner.c m_hover.c m_infantry.c \
+               m_insane.c m_medic.c m_move.c m_mutant.c \
+               m_parasite.c m_soldier.c m_supertank.c m_tank.c \
+               p_client.c p_hud.c p_trail.c p_view.c p_weapon.c \
+               q_shared.c
 
-#noinst_HEADERS = g_local.h m_actor.h m_berserk.h m_boss2.h m_boss31.h \
-#      m_boss32.h m_brain.h m_chick.h m_fixbot.h m_flipper.h \
-#      m_float.h m_flyer.h m_gekk.h m_gladiator.h m_gunner.h \
-#      m_hover.h m_infantry.h m_insane.h m_medic.h m_mutant.h \
-#      m_parasite.h m_player.h m_rider.h m_soldier.h m_soldierh.h \
-#      m_supertank.h m_tank.h q_shared.h
+noinst_HEADERS = g_local.h m_actor.h m_berserk.h m_boss2.h m_boss31.h \
+       m_boss32.h m_brain.h m_chick.h m_fixbot.h m_flipper.h \
+       m_float.h m_flyer.h m_gekk.h m_gladiator.h m_gunner.h \
+       m_hover.h m_infantry.h m_insane.h m_medic.h m_mutant.h \
+       m_parasite.h m_player.h m_rider.h m_soldier.h m_soldierh.h \
+       m_supertank.h m_tank.h q_shared.h
 
-##game_la_CFLAGS = -fPIC -Wall -Werror -pipe @OPT_CFLAGS@
-#game_la_CFLAGS = -I$(top_srcdir)/src -fPIC -pipe @OPT_CFLAGS@
-#game_la_LDFLAGS = -module -avoid-version -rpath $(pkglibdir)
 endif # DO_XATRIX
+
+AM_CFLAGS = -fPIC -pipe -Dstricmp=strcasecmp @WARN_CFLAGS@ @OPT_CFLAGS@
+AM_CPPFLAGS = -I$(top_srcdir)/src
+LDFLAGS = -module -avoid-version -rpath $(pkglibdir)
[Desktop Entry]
Name=Quake II: The Reckoning
Comment=Quake2 Mission Pack "The Reckoning" (xatrix)
Exec=quake2 +set game xatrix
Icon=quake2.png 
Terminal=false
Type=Application
Categories=Game;X-FPPGame;
Encoding=UTF-8
# vi: encoding=utf-8
[Desktop Entry]
Name=Quake II: Ground Zero
Comment=Quake2 Mission Pack "Ground Zero" (Rogue)
Exec=quake2 +set game rogue
Icon=quake2.png 
Terminal=false
Type=Application
Categories=Game;X-FPPGame;
Encoding=UTF-8
# vi: encoding=utf-8
_______________________________________________
pld-devel-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl

Odpowiedź listem elektroniczym