Когда вышел Mari0, он требовал версию библиотеки love 0.8 из SVN. А она не компилировалась. Сначала захотела libIL, установил. Потом liblua5, установил.
checking whether the g++ linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for library containing sqrt... -lm
checking for library containing SDL_Init... -lSDL
checking for library containing glLoadIdentity... -lGL
checking for library containing alSourcePlay... -lopenal
checking for library containing lua_pcall... -llua
checking for library containing ilInit... -lIL
checking for library containing FT_Load_Glyph... -lfreetype
checking for library containing PHYSFS_init... -lphysfs
checking for library containing ModPlug_Load... -lmodplug
checking for library containing mpg123_open_feed... -lmpg123
checking for library containing mpg123_seek_64... none required
checking for library containing ov_open... -lvorbisfile
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
zenitur@linux-athlon64x2:~/love-0.8.0> make
make all-recursive
make[1]: Вход в каталог `/home/zenitur/love-0.8.0'
Making all in src
make[2]: Вход в каталог `/home/zenitur/love-0.8.0/src'
make[3]: Вход в каталог `/home/zenitur/love-0.8.0/src'
depbase=`echo modules/window/sdl/Window.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -I. -I./modules -I./libraries -I/usr/include/AL -I/usr/include/freetype2 -I/usr/include/SDL -D_FILE_OFFSET_BITS=64 -g -O2 -MT modules/window/sdl/Window.o -MD -MP -MF $depbase.Tpo -c -o modules/window/sdl/Window.o modules/window/sdl/Window.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from ./common/Module.h:25:0,
from ./modules/window/Window.h:28,
from modules/window/sdl/Window.h:25,
from modules/window/sdl/Window.cpp:32:
./common/runtime.h:87:9: error: ‘luaL_Reg’ does not name a type
./common/runtime.h:194:66: error: ‘luaL_Reg’ does not name a type
./common/runtime.h:194:81: error: ISO C++ forbids declaration of ‘f’ with no type
./common/runtime.h: In function ‘T* love::luax_getmodule(lua_State*, const char*, love::bits)’:
./common/runtime.h:366:24: error: there are no arguments to ‘lua_getfield’ that depend on a template parameter, so a declaration of ‘lua_getfield’ must be available
./common/runtime.h:366:24: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
make[3]: *** [modules/window/sdl/Window.o] Ошибка 1
make[3]: Выход из каталога `/home/zenitur/love-0.8.0/src'
make[2]: *** [all-recursive] Ошибка 1
make[2]: Выход из каталога `/home/zenitur/love-0.8.0/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога `/home/zenitur/love-0.8.0'
make: *** [all] Ошибка 2
zenitur@linux-athlon64x2:~/love-0.8.0>
Создавал баг - баг закрыли «У вас просто не установлен LUA». С релизом love 0.8.0 то же самое, я решил попробовать скомпилировать его спустя несколько месяцев после предыдущей попытки в связи с выходом этой игры. Но релиз, в отличие от версии из SVN, появился в пакетной системе, и я решил установть RPM-ку:
http://img525.imageshack.us/img525/7800/45108591.png
Дело в том, что в репозитории «openSUSE BuildService - Игры» для openSUSE 11.4 есть библиотеки libphysfs1 и libphysfs2. Они конфликтуют. Все игры репозитория собраны с libphysfs1, кроме supertux2, который собран с libphysfs2. Поэтому при попытке установить, например, Neverball мне предлагают удалить supertux2. И я пересобрал Neverball из SRPM, поэтому теперь он тоже зависит от libphysfs2, и проблема решена. Теперь я решил пересобрать love с libphysfs2:
zenitur@linux-athlon64x2:~/Загрузки> rpmbuild --rebuild love-0.8.0-9.3.src.rpm
Устанавливается love-0.8.0-9.3.src.rpm
ошибка: Неудовлетворенные зависимости сборки:
pkgconfig(lua) < 5.2 нужен для love-0.8.0-9.3.x86_64
pkgconfig(lua) >= 5.1 нужен для love-0.8.0-9.3.x86_64
zenitur@linux-athlon64x2:~/Загрузки>
Это как так, какую версию lua ему нужно?! SRPM брал отсюда: http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/openSUSE_Tumbleweed/Games...