| Summary: | Crash on select a lot games | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Eugene Vlasov <eugvv> |
| Component: | pysol | Assignee: | Alexei Takaseev <taf> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P3 | CC: | antohami, cas, cow, darktemplar, evg, george, grenka, imz, lav, master, mithraen, nbr, qa_viy, rider, sem, shaba, sin, slev, vitty, viy |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
|
Description
Eugene Vlasov
2004-07-05 16:14:23 MSD
По всему похоже, что это те игры, которые имеются в меню выбора, но реально отсутствующие. Надо патчить исходники :( Нет, эти игры в исходниках есть (я немного поковырялся). Проблема в том, что там довольно сложная система наследования. Ошибка возникает при вызове методов класса - родителя, которые перекрыты (конструкция вида BaseClass.Method(self, ...)). Почему такая конструкция не работает в данном случае - не знаю. Не, на таком уровне в python я не спец. Я пакет-то вытащил из orphaned только потому, что некоторые игры из него понравились. А уж настолько серьезно перетряхивать потроха исходников моих знаний явно недостаточно. Летом как бы обещается бета пятой версии pysol, может там что сделают? Кажется я нашел решение. Вот кусок дебиановского патча, который исправляет
положение:
---- pysol-4.82.orig/src/main.py
+++ pysol-4.82/src/main.py
@@ -92,7 +92,7 @@
# try to load plugins
if not "--noplugins" in args[1:]:
- for dir in (os.path.join(app.dataloader.dir, "games"),
+ for dir in (#os.path.join(app.dataloader.dir, "games"),
os.path.join(app.dataloader.dir, "plugins"),
app.dn.plugins):
try:
Проблема в том, что файлы из каталога games импортируются дважды - из pysol.py и
из main.py.
Нда, как все просто, когда знаешь куда смотреть :) Патч приложен к сборке pysol-4.82-alt4. Ушло в incoming |