Программа не запускается или же появляется белый экран с объектом влевом нижнем углу. $ kiki Traceback (most recent call last): File "/usr/share/games/kiki//py/env.py", line 43, in <module> world = Controller.world AttributeError: 'str' object has no attribute 'world' Traceback (most recent call last): File "/usr/share/games/kiki//py/edit.py", line 2, in <module> if Controller.isDebugVersion(): print "[edit.py]" AttributeError: 'symtable entry' object has no attribute 'isDebugVersion' На мой взгляд проблема заключается в том, что в процессе компиляции swig генерирует неправильный файл kiki.py. Я практически не знаком с системой swig, возможно каким-то ключами можно привести всё в норму. Поскольку времени особо разбираться кто виноват нет, в качестве обхода я использовал файл, который присутствует в исходниках до компиляции, т.е. kiki_src/kiki/SWIG/kiki.py Проблема присутствует в 4.1/branch. На 4.0 не наблюдается.
Сегодня вот поковырялся опять и обнаружил такю вещь: В процессе сборки пакета сначала происходит компиляция C++ враппера KikiPy_wrap.cpp, который есть в исходниках. Затем вызывается swig, который генерирует новый KikiPy_wrap.cpp и kiki.py, после чего программа линкуется с ранее скомпилированным KikiPy_wrap.o. В итоге в пакет попадают новый kiki.py и программа, слинкованная со старым враппером, которые друг другу не соответствуют.
Если использовать авто-сгенерированный KikiPy_wrap.cpp и kiki.py у меня вылазит тогда такая ошибка: Traceback (most recent call last): File "/usr/share/games/kiki//py/env.py", line 70, in <module> execfile(kikipy_path + "world.py") File "/usr/share/games/kiki//py/world.py", line 342, in <module> execfile (kikipy_path + "config.py") File "/usr/share/games/kiki//py/config.py", line 75, in <module> config = KikiConfig () File "/usr/share/games/kiki//py/config.py", line 27, in __init__ self.apply (section, option, self.get (section, option)) File "/usr/share/games/kiki//py/config.py", line 48, in apply Controller.setScreenSize (screen_size, self.getboolean(section, option)) NotImplementedError: Wrong number of arguments for overloaded function 'KEventHandler_setScreenSize'. Possible C/C++ prototypes are: setScreenSize(KSize const &,bool) KEventHandler::setScreenSize(KSize const &) Нужно посмотреть на более свежую версию: http://pkg-games.alioth.debian.org/tarballs/kiki-the-nano-bot_1.0.2+dfsg1.orig.tar.gz плюс глянуть на патчи http://svn.debian.org/viewsvn/pkg-games/packages/trunk/kiki-the-nano-bot/debian/patches/ http://aur.archlinux.org/packages/kiki/kiki/ http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/kiki/current/SOURCES/
> Нужно посмотреть на более свежую версию: > http://pkg-games.alioth.debian.org/tarballs/kiki-the-nano-bot_1.0.2+dfsg1.orig.tar.gz > > плюс глянуть на патчи > http://svn.debian.org/viewsvn/pkg-games/packages/trunk/kiki-the-nano-bot/debian/patches/ > http://aur.archlinux.org/packages/kiki/kiki/ > http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/kiki/current/SOURCES/ > а за это огромное спасибо! гляну просто сейчас руки не доходят =(
> Если использовать авто-сгенерированный KikiPy_wrap.cpp и kiki.py > у меня вылазит тогда такая ошибка: Да, эту ошибку можно обойти либо использую опцию swig -fastdispatch, либо убрав в файле KEventHandler.i умолчание '= false' После этого должно запуститься, с учётом #17380 Но при этом в консоль валятся сообщеиня про memory leak (на мой взгляд ложные, но всё равно не приятно). Так что если чинить 0.9.0, то на мне кажется проще и правильнее вообще отказаться от swig и использовать готовые файлы. > Нужно посмотреть на более свежую версию: > http://pkg-games.alioth.debian.org/tarballs/kiki-the-nano-bot_1.0.2+dfsg1.orig.tar.gz Я за :) Хотя думаю, что это потребует больше усилий и времени, чем починка существующей версии. Но всё равно хочется новую версию, тем более что там больше уровней, а старые уже все прошёл :)
http://git.altlinux.org/people/rider/packages/kiki.git Новая, работающая версия... Отправил в сизиф. Просьба собрать и проверить на 4.1
В бранчах нет libfreeglut-devel После замены на freeglut-devel у меня собралось и работает. Проверял на 4.1/x86_64, 4.1/i586 и 4.0/i586 (для сборки в 4.0 пришлось ещё libGL-devel заменить на libmesa-devel)
отлично. Спасибо. oddity - с тебя обещанные права.
Добавил прав
Ну, вроде новая версия доползла до бранчей, так что, думаю, можно закрывать. Спасибо.