[eugene@eugene-home eugene]$ rpm -qa|grep pysol pysol-sound-server-3.00-alt4 pysol-4.82-alt3 [eugene@eugene-home eugene]$ rpm -qa|grep ^python|sort python-2.3.3-alt10 python-base-2.3.3-alt10 python-dev-2.3.3-alt10 python-doc-2.3.3-alt1 python-info-2.3.3-alt10 python-modules-2.3.3-alt10 python-modules-bsddb-2.3.3-alt10 python-modules-compiler-2.3.3-alt10 python-modules-curses-2.3.3-alt10 python-modules-email-2.3.3-alt10 python-modules-encodings-2.3.3-alt10 python-modules-hotshot-2.3.3-alt10 python-modules-logging-2.3.3-alt10 python-modules-tkinter-2.3.3-alt10 python-modules-xml-2.3.3-alt10 python-strict-2.3.3-alt10 python-tools-i18n-2.3.3-alt10 python-tools-idle-2.3.3-alt10 python-tools-modulator-2.3.3-alt10 При выборе многих игр выдает ошибки вроде следующей: Internal error. Please report this bug: exception.TypeError: unbound method createGame() must be called with Klondike instance as first argument (got EightTimesEight instance instead) и вылетает. После этого запустить его можно только после удаления ~/.pysol/ с потерей всех настроек и статистики. Вот список игр, на которых это воспроизводится: 8 x 8, Achtmal Acht, American Toad, Baby Spiderette, Backer's Dozen, Batsford, Big Harp, Black Widow, Blind Alleys, Brunswick, Busy Aces, Casino Klondike, Chameleon, Chessboard, Corona, Courtyard, Cruel, Deuces, Die Russische, Die Schlange, Double Canfield, Double Klondike by Threes, Double Rail, Eastcliff, Forty and Eight, Free Napoleon, Gargantua, Good Measure, Grandmother's Game, Ground for a Divorce, Indian, Irmgard, Klondike by Threes, Lady Betty, Little Forty, Lucas, Maria, Martha, Midshipman, Milligan Cell, Napoleon, Pas Seul, Peek, Poker Shuffle, Quadrangle, Rainbow, Rainfall, Red and Black, Scorpion, Simple Simon, Single Rail, Spanish Patience, Spider, Spiderette, Stalactites, Steps, Storehouse, Three Shuffles and a Draw, Thumb and Pouch, Trefoil, Variegated Canfield, Vegas Klondike, Waning Moon, Wasp, Westcliff, Whitehead, Will o'the Wisp, Zebra
По всему похоже, что это те игры, которые имеются в меню выбора, но реально отсутствующие. Надо патчить исходники :(
Нет, эти игры в исходниках есть (я немного поковырялся). Проблема в том, что там довольно сложная система наследования. Ошибка возникает при вызове методов класса - родителя, которые перекрыты (конструкция вида 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
*** Bug 1412 has been marked as a duplicate of this bug. ***