[personal profile] ex0_planet
TL;DR Побился башкой и отступил пока.

В кикаде скриптами, по идее, можно сделать всё. Для этого в ём встроен интерпретатор python и некий функционал™ позволяющий загружать их из заранее предусмотренных мест. После чего меню и тулбар должны быть дополнены новыми разноцветными фантиками. Но не тут-то было!


Для начала, KiCad в дебиане собран с отключенной скриптовой консолью (об этом чуть ниже). Что приводит к полной невозможности как-то разобраться в происходящем, потому что скриптовый интерфейс недокументирован чуть более чем полностью. Точнее, он прекрасно документирован — в питоновом коде pcbnew.py.... Так-то даже поставляемые footprint wizard'ы работают, но сделать что-то сверх этого — пожалте биться башкой об стенку.

Например. кнопка "Refresh Plugins". Она не делает никаких видимых действий. Нет, я в strace вижу что оно сканирует папки с плагинами, но что там дальше... короче, всё понимает, но ничего сказать не может.

Так-то простой плагин, найденный на просторах интернетов, после нажатия Кнопки обнаруживается, добавляет иконку на панель и даже отзывается в консоль на неё. Что-то более затейливое... ну... результаты могут быть разные. Вплоть до падения.

Итак, нам нужна консоль. Выпилена она по одной простой причине — KiCad работает исключительно на wxgtk2. Нет, его можно собрать с wxgtk3, но после этого у него немного разносит интерфейс и eeschema начинает тормозить и глючить. Это вполне официально, причем, баг вероятно никто искать уже не будет, а просто заменят canvas на accelerated реализацию как в pcbnew и большая часть проблем уйдет. Но до этого светлого момента kicad должен жить на gtk2. Короче говоря, чтобы консоль работала, ей нужен python-wxgtk, в котором лежат питоновые биндинги. Причем именно второй версии, чтобы быть совместимым по abi с основным тулкитом.

Теперь финт ушами: в какой-то момент в testing'е python-wxgtk переключили на использование wxgtk3. Молча. Сломав этим все приложения, использующие wxgtk2 (коих немало, в дистрибутиве пока только один пакет на wxgtk3). При этом сам wxgtk доступен в виде обеих версий: gtk2 и gtk3.

Надо теперь попробовать собрать wxpython со второй версией, сделав этим из системы слаку, ну или посмотреть будет ли работаь kicad с чуть более старым wxpython (там после stable вроде какие-то фиксы были).


Сраные питонасты. Везде, просто везде, где встречается питон, жди проблем с деплойментом, с преемственностью версий, с постоянным устареванием всего и вся, с какой-то долбаной, ничему не подконтрольной магией... Постоянно вот этот подход везде — "нам насрать, живите на bleeding edge"...

UPD: kicad замечательно собрался с wxpython из stable. Консоль работает, совсем злых багов не видно. Просто надо было при бэкпорте оторвать требование совсем свежей версии.

Profile

ex0_planet

April 2023

S M T W T F S
      1
234567 8
910111213 1415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 25th, 2026 09:22 am
Powered by Dreamwidth Studios