-# TODO
-# - 64bit version
-# - (some) patches tracker: https://sourceforge.net/tracker/?func=detail&aid=3198347&group_id=2479&atid=102479
#
# Conditional build:
%bcond_with x11 # build with System Media Interface (broken, seems unsupported)
%bcond_without sdl # build with SDL System Media Interface
-%define rel 1
+%define rel 2
+%define svnrev 817
Summary: DOOM Legacy for Linux
Summary(pl.UTF-8): DOOM Legacy dla Linuksa
Name: doomlegacy
Version: 1.44
-Release: 0.alpha2.%{rel}
+Release: 0.alpha2.r%{svnrev}.%{rel}
License: GPL, perhaps except for legacy.wad
Group: Applications/Games
#Source0: http://doomlegacy.sourceforge.net/releases/%{name}_144_alpha2_src_r777.zip
# no upstream source, so create our own
-# svn export https://doomlegacy.svn.sourceforge.net/svnroot/doomlegacy/legacy_one/trunk@778 doomlegacy_144_alpha2
-# zip -r doomlegacy_144_alpha2_src_r778.zip doomlegacy_144_alpha2
-Source0: %{name}_144_alpha2_src_r778.zip
-# Source0-md5: ab732fe33f1e2dcb8f79f6025544895a
+# svn co https://doomlegacy.svn.sourceforge.net/svnroot/doomlegacy/legacy_one/trunk legacy_one
+# rm -rf doomlegacy_144_alpha2 && svn export legacy_one doomlegacy_144_alpha2
+# zip -r doomlegacy_144_alpha2_src_r$(svnversion legacy_one).zip doomlegacy_144_alpha2
+Source0: %{name}_144_alpha2_src_r817.zip
+# Source0-md5: 28b564983eec5106f6cc3b39bd793dca
# legacy wad extracted from binary archive: doomlegacy_144_alpha2_linux2.4_32bit.zip
Source1: http://carme.pld-linux.org/~glen/legacy.wad
# Source1-md5: 2c29a4d7cedcf95d09dec71c41025aa5
Patch1: %{name}-Makefile.patch
Patch2: %{name}-nosndstat.patch
Patch3: %{name}-sound.patch
-Patch5: %{name}-nocmap.patch
-Patch6: %{name}-vidmodes.patch
-Patch7: i_sound-pow.patch
-Patch8: keytable.patch
+Patch4: svnversion.patch
URL: http://doomlegacy.sourceforge.net/
BuildRequires: OpenGL-GLU-devel
%{?with_sdl:BuildRequires: SDL_mixer-devel}
BuildRequires: rpmbuild(macros) >= 1.595
BuildRequires: unzip
BuildRequires: xorg-lib-libXext-devel
-ExclusiveArch: %{ix86}
+ExclusiveArch: %{ix86} %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define debugcflags -O1 -g
%patch1 -p2
%patch2 -p1
%patch3 -p1
-%patch5 -p2
-%patch6 -p2
-%patch7 -p2
-%patch8 -p2
%build
install -d objs bin src/linux_x/{mus,snd}serv/linux
+++ /dev/null
---- ./src/linux_x/i_video_xshm.c~ 2011-01-20 03:42:37.000000000 +0200
-+++ ./src/linux_x/i_video_xshm.c 2011-01-20 03:42:41.607999561 +0200
-@@ -570,21 +570,9 @@
- return;
- }
-
--static int dirtyMapTable[256] =
--{0, 0, 0, 0, 0, 0, 0, 0, 0, 65307, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48,
-- 45, 61, 65288, 65289, 113, 119, 101, 114, 116, 121, 117, 105, 111, 112, 91,
-- 93, 65293, 65507, 97, 115, 100, 102, 103, 104, 106, 107, 108, 59, 39, 96,
-- 65505, 92, 122, 120, 99, 118, 98, 110, 109, 44, 46, 47, 65506, 65450, 65511,
-- 32, 65509, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
-- 65479, 65407, 65300, 65429, 65431, 65434, 65453, 65430, 65437, 65432, 65451,
-- 65436, 65433, 65435, 65438, 65439, 0, 0, 0, 65480, 65481, 65360, 65362, 65365,
-- 65361, 0, 65363, 65367, 65364, 65366, 65379, 65535, 65421, 65312, 65299, 65377,
-- 65455, 65514, 0, 65515, 65516, 65518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-+// compat with 1.42
-+#define KEY_EQUALS 61 // '='
-+#define KEY_MINUS 45 // '-'
-
- //
- // Translates the key currently in X_event
-@@ -598,13 +586,7 @@
- keycode = X_event.xkey.keycode;
- keysym = XKeycodeToKeysym(X_display, keycode, 0);
-
-- if(con_keymap == english) {
-- rc = keysym;
-- }
-- else {
-- rc = dirtyMapTable[keycode];
-- }
--
-+ rc = keysym;
- switch(rc)
- {
- case XK_Left : rc = KEY_LEFTARROW; break;
-@@ -629,7 +611,7 @@
- case XK_F12: rc = KEY_F12; break;
- // hey, it's not a sparc 19990128 by Kin
- case XK_BackSpace: rc = KEY_BACKSPACE; break;
-- case XK_Delete: rc = KEY_DEL; break;
-+ case XK_Delete: rc = KEY_DELETE; break;
-
- case XK_Pause: rc = KEY_PAUSE; break;
-
-@@ -641,8 +623,10 @@
- case XK_minus: rc = KEY_MINUS; break;
-
- case XK_Shift_L:
-+ rc = KEY_LSHIFT;
-+ break;
- case XK_Shift_R:
-- rc = KEY_SHIFT;
-+ rc = KEY_RSHIFT;
- break;
-
- case XK_Caps_Lock:
-@@ -650,17 +634,25 @@
- break;
-
- case XK_Multi_key:
-+ rc = KEY_RWIN; // best pick: glen
-+ break;
- case XK_Control_L:
-+ rc = KEY_LCTRL;
-+ break;
- case XK_Control_R:
-- rc = KEY_CTRL;
-+ rc = KEY_RCTRL;
- break;
-
- case XK_Mode_switch:
-+ rc = KEY_MODE;
-+ break;
- case XK_Alt_L:
- case XK_Meta_L:
-+ rc = KEY_LALT;
-+ break;
- case XK_Alt_R:
- case XK_Meta_R:
-- rc = KEY_ALT;
-+ rc = KEY_RALT;
- break;
-
- // I forgot them..... 19990128 by Kin
-@@ -681,7 +673,7 @@
- case XK_KP_Home : rc = KEY_KEYPAD7; break;
- case XK_KP_Up : rc = KEY_KEYPAD8; break;
- case XK_KP_Page_Up : rc = KEY_KEYPAD9; break;
-- case XK_KP_Delete : rc = KEY_KPADDEL; break;
-+ case XK_KP_Delete : rc = KEY_DELETE; break;
- case XK_KP_Divide : rc = KEY_KPADSLASH; break;
- case XK_KP_Enter : rc = KEY_ENTER; break;
-