Bug 17379 - Нерабочий файл kiki.py
Summary: Нерабочий файл kiki.py
Status: CLOSED FIXED
Alias: None
Product: Branch 4.1
Classification: Distributions
Component: kiki (show other bugs)
Version: unspecified
Hardware: all Linux
: P2 normal
Assignee: Ilya Mashkin
QA Contact: qa-4.1@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-29 13:23 MSD by Aleksey Borisenkov
Modified: 2008-11-23 17:06 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksey Borisenkov 2008-09-29 13:23:09 MSD
Программа не запускается или же появляется белый экран с объектом влевом нижнем углу.
$ 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 не наблюдается.
Comment 1 Aleksey Borisenkov 2008-10-22 22:03:12 MSD
Сегодня вот поковырялся опять и обнаружил такю вещь:

В процессе сборки пакета сначала происходит компиляция C++ враппера KikiPy_wrap.cpp, который есть в исходниках. Затем вызывается swig, который генерирует новый KikiPy_wrap.cpp и kiki.py, после чего программа линкуется с ранее скомпилированным KikiPy_wrap.o.
В итоге в пакет попадают новый kiki.py и программа, слинкованная со старым враппером, которые друг другу не соответствуют.
Comment 2 Andriy Stepanov (stanv) 2008-10-24 11:24:25 MSD
Если использовать авто-сгенерированный 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/
Comment 3 Gleb Stiblo 2008-10-24 14:18:41 MSD
> Нужно посмотреть на более свежую версию:
> 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/
> 
а за это огромное спасибо! гляну
просто сейчас руки не доходят =(
Comment 4 Aleksey Borisenkov 2008-10-24 19:35:27 MSD
> Если использовать авто-сгенерированный 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

Я за :) Хотя думаю, что это потребует больше усилий и времени, чем починка существующей версии. Но всё равно хочется новую версию, тем более что там больше уровней, а старые уже все прошёл :)
Comment 5 Anton Farygin 2008-11-17 21:39:28 MSK
http://git.altlinux.org/people/rider/packages/kiki.git

Новая, работающая версия... 

Отправил в сизиф. Просьба собрать и проверить на 4.1
Comment 6 Aleksey Borisenkov 2008-11-18 00:26:11 MSK
В бранчах нет libfreeglut-devel
После замены на freeglut-devel у меня собралось и работает.
Проверял на 4.1/x86_64, 4.1/i586 и 4.0/i586
(для сборки в 4.0 пришлось ещё libGL-devel заменить на libmesa-devel)
Comment 7 Anton Farygin 2008-11-18 09:18:36 MSK
отлично. Спасибо.

oddity - с тебя обещанные права.
Comment 8 Ilya Mashkin 2008-11-19 00:08:57 MSK
Добавил прав
Comment 9 Aleksey Borisenkov 2008-11-23 17:05:14 MSK
Ну, вроде новая версия доползла до бранчей, так что, думаю, можно закрывать.
Спасибо.