Интервью с Вадимом Жуковым, мейнтейнером KDE и Qt в OpenBSD

3 месяца ago admin 0

На основе вопросов пользователей ЛОР состоялось интервью с Вадимом Жуковым, мейнтейнером KDE и Qt в OpenBSD. Получены ответы на самые интересные вопросы.

Как вы оцениваете эволюцию KDE от 3 к 4 ветке? Оправданы ли такие революционные изменения интерфейса?

Прежде всего должен сказать, что вспоминать KDE3, конечно, можно, но нет большого смысла. TDE остаётся маргинальным, а больше никто базу KDE3 не развивает, насколько мне известно.

Если говорить об интерфейсе пользователя, то все прелести наработок компенсируются тремя «но»: падучесть Plasma, тормоза Akonadi и падучесть Akonadi. К сожалению, и в эпоху KDE5 в этой области остаются проблемы… В итоге я сам не использую KDE как именно DE, но с удовольствием пользуюсь рядом KDE-программ: KMyMoney, Digikam, KSnapshot, Filelight и другими. В плане интерфейса мне очень импонирует глубокая степень интеграции в KDE и, как мне кажется, большая ориентированность на пользователя с инженерным мышлением.

Как вы адаптируете KDE под OpenBSD? С чем больше всего сложностей возникает?

Главная сложность — нехватка времени. Проект KDE — это более десяти
миллионов строк кода и несметное число пакетов с кучей зависимостей,
которые регулярно меняются. То есть много рутинных действий, которые,
к сожалению, проблематично автоматизировать: регулярно всплывают
какие-нибудь особенные ситуации.

Серьёзной проблемой является Plasma Workspaces (это уже из мира KDE5):
чтобы его портировать. нужно сначала втаскивать в базовую систему
(точнее, в Xenocara) поддержку Wayland. Мною подготовлены порты для
собственно wayland и wayland-protocols, но, опять же, не хватает
времени даже на то, чтобы пропихнуть в апстрим патчи для поддержки
kqueue…

Также всё больше становится необходимым портирование Qt WebEngine.
Очень надеюсь закончить этот процесс до начала учебного года — после
этого студенты уже не дадут мне столько времени. 🙂

Кем вы видите себя через 5 лет? Чего вам не хватает в своей работе?
А какая зарплатная вилка? 😉 Шучу.

Если речь про основную работу, то не хватает умения пробивать идеи (в
частности, выбивать ресурсы), а также банальной аккуратности.

Если про образовательный процесс, то не хватает компьютерных аудиторий.

Ну а если всё же речь про open source, то не хватает времени на всё,
что хочется сделать. 🙂 Думаю, я бы отказался даже от нынешней
основной работы (на которую трачу три дня в неделю), если бы можно
было обеспечивать сравнимый уровень жизни.

Общались ли вы с Тео де Раадтом? Какое впечатление он на вас произвел?

Общался неоднократно. Впечатление — потрясающе эрудированный и очень быстро мыслящий человек. Думает и говорит как пулемёт. Очень
энергичный и полностью живёт проектом OpenBSD.

Вы вообще читаете ЛОР и как часто? Зарегистрированы ли на ЛОРе или пишете из-под анонимуса? Какое впечатление ЛОР произвел на вас?

Читаю очень редко. В комментарии ходить — жалко время тратить, а
новости те же, что и на OpenNet, например. Ничего лично, просто так
исторически сложилось. Так что изредка меня заносит на ЛОР шальным
ветром гиперссылок, но не более того.

Вроде бы зарегистрирован, но в любом случае не пишу. Полез было
восстанавливать учётную запись и понял, что она была, похоже,
зарегистрирована на мой первый почтовый ящик, ныне канувший в Лету
вместе с хостером E-mail.ru.

Как вы относитесь к Wayland? Появится ли он когда-нибудь в OpenBSD?

Отношусь — с сомнением. С одной стороны, код Wayland мне скорее
нравится, и ряд заложенных в него идей звучит здраво. С другой — по работе я довольно активно использую проброс X-окон… В OpenBSD он, конечно, появится, вопрос лишь — когда.

Как вы относитесь к flatpak и прочим snap-aм?

Я понимаю, зачем они нужны, но по моему скромному мнению они,
во-первых, вредят open source (уменьшается стимул участвовать в работе на девелоперской веткой кода), а во-вторых, провоцируют халтурный подход к организации инфраструктуры. Это примерно как «умные лампочки»: на словах прикольно, а в реальности — куча внезапных проблем.

Как вам вообще OpenBSD на desktop? ЗАЧЕМ она нужна там, ведь есть Linux-системы, более ориентированные для desktop?

Нормально она на desktop. Программы есть и работают, даже какие-то
игры есть и работают. Steam нет, это да. И бинарных драйверов от
NVIDIA нет. И Wine.

Я не соглашусь со словами об «ориентированности». OpenBSD так же как и многие дистрибутивы GNU/Linux является ОС общего назначения.
«Заточенность под десктоп» — это очень общие слова, так как этот самый «десктоп» может быть сильно разным. Какие-то задачи лучше решаются с помощью того или иного дистрибутива GNU/Linux, какие-то — с помощью OpenBSD, какие-то — с помощью Windows.

На своей основной работе я вначале поднимал местные сервисы на CentOS. А потом, устав от войны с гиперусложнённой системой, потихоньку перетащил всё на OpenBSD. Сбоев стало меньше, времени на обслуживание я тоже трачу меньше, инфраструктура более единообразная — profit как он есть.

Мою систему проще обслуживать, обновления куда более управляемые,
файловая система, опять же, не сыпется… 🙂

Почему лично вы вот пользуетесь и поддерживаете KDE для OpenBSD?

KDE изначально я просто пользовался. Когда я только приходил в мир
Unix, именно с этой средой я подружился. А потом появился KDE4, а в
OpenBSD его всё не было и не было. Я и начал сам. 🙂 Точнее, подхватил
эстафетную палочку у Марка Эспи (Marc Espie). Если честно, зная,
сколько усилий и проблем придётся преодолевать, я бы, может, и не стал браться за это дело… Но что есть, то есть.

В каких сферах можно применить openbsd?

Я бы скорее сформулировал вопрос наоборот, так как оригинальный дать в
меру краткий ответ невозможно: «В каких сферах нельзя применять
OpenBSD?»

Прежде всего это сферы, где нужна RTOS, конечно. Туда же идёт совсем
мелкая эмбедовка — условно, меньше мегабайта ПЗУ.

В каком состоянии поддержка железа в OpenBSD?

В целом неплохо. Нет Bluetooth (был, но выпилили, так как оказался
никому не нужным настолько, чтобы нормально поддерживать) и FireWire.

Нет поддержки фирменных технологий NVIDIA, так как нет бинарных
драйверов. Какие-нибудь фирменные мелочи на разных ноутбуках могут не поддерживаться, но поскольку я по жизни пользуюсь ThinkPad’ами, то подробнее сказать не могу.

Зато очень хорошо работает звук (OpenBSD реально может гордиться
sndio), ну и неплохой сетевой стек. 🙂

Systemd в openbsd не появится? Что вы думаете об этом системном менеджере?

Нет, но в портах вроде как были какие-то заглушки для сборки ПО.

Systemd решает ряд задач, которые действительно требуют кардинально
нового подхода. Например, проблемы журналирования при запуске и
выключении ОС. Однако реализация в целом вызывает лёгкую оторопь. А,
главное, инструмент, который призван решать проблемы, создаёт их не
меньше, да ещё сильно ограничивает в некоторых возможностях —
по-моему, это неправильно. Одни только бинарные журналы чего стоят…

Плохи ли вообще комбайны и в каких ситуациях?

Иногда пользователю нужен комбайн, и тут ничего не поделаешь. Всё как
обычно: разные потребности — разные решения.

Современные браузеры — те ещё комбайны. Но пути обратно в Web 1.0 нет.
Это может нравиться, может не нравиться, но от этого никуда не
денешься, и нужно стараться хотя бы как-то управлять этими процессами, вот и всё.

Сколько времени уходит на создание одного порта? Это сложно?

Смотря какое ПО. Порт для какого-нибудь Ruby gem делается за несколько
минут. Ну а порт Qt WebEngine съел у меня лично уже с неделю чистого
времени.

Есть некоторый минимум знаний: прежде всего, bsd.port.mk(5),
pkg_add(1), pkg_create(1) и Porter’s Handbook:
http://www.openbsd.org/faq/ports/ . Для портов, которые устанавливают
системные службы, нужно ещё владеть rcctl(8) и rc.subr(8). А перед
этим всем, конечно, нужно в целом понимать, что как устроено в
системе, для чего есть общий FAQ http://www.openbsd.org/faq/ и
свободно доступная книга «Absolute OpenBSD».

Как стать мейнтейнером?

А оно вам действительно надо? 🙂 Это ведь в первую очередь
ответственность, а не привилегия.

Прежде всего, нужно или сделать новый хороший порт, или взять под своё
крыло бесхозный имеющийся — в любом случае это делается через список
рассылки ports@openbsd.org . Добиваться обратной связи, не бояться
быть настойчивым. Получив обратную связь — слушать внимательно и
выполнять рекомендации.

Если работа над портом идёт медленно — имеет смысл закидывать pull
request в особый репозиторий openbsd-wip на GitHub:
https://github.com/jasperla/openbsd-wip/ . Например, именно там
вначале часто появляются новые версии портов KDE.

Как со Skype или его аналогами (tox, etc…) в OpenBSD?

Со Skype всё плохо: Web-морда работает только с сообщениями, а родного
клиента, конечно, нет.

Что же до аналогов — что-то есть в портах, что-то — в openbsd-wip (тот же tox), остальное надо собирать. Главной проблемой в последнем случае может стать завязка на ALSA — в этом случае обычно можно попросить помощи у Alexander Ratchov в написании sndio-бекэнда. Это обычно дело несложное, если есть хотя бы какой-то навык в языке Си.

По официальным портам можно искать с помощью стороннего сервиса:
http://openports.se/search.php . А в самой системе есть пакет sqlports
(БД SQLite с индексом портов по разным признакам), есть «make search»
в дереве портов и есть pkg_locatedb, которая есть обёртка над обычным
locate с базой по всем файлам, которые устанавливаются тем или иным
официальным пакетом.

Какой ваш любимый стиль (императивное, ООП или Функциональное программирование) и язык программирования?

Для функциональщины моих скромных мозгов не хватает. 🙂 А если
серьёзнее, в сфере моих интересов просто-напросто правят бал
императивные языки.

Мой любимый язык программирования — C#. Без шуток, именно как язык он
мне очень нравится. Но пользуюсь всё же больше C и C++, реже — Perl, а
в последние годы под долгу службы часто что-то делаю на Java (которую
толком не знаю, но спасает знание C++ и C# 🙂 ).

В контексте последних эпидемий с закладками: как часто проводится аудит кода проверка статическими анализаторами и как поставлены прочие вопросы доверию к коду OpenBSD?

Прежде всего, конечно, код проходит реальный аудит перед коммитом.
Разве что в дереве портов допускаются некоторые вольности, но и там
любой новый порт должен перед импортом получить okay от кого-либо из
опытных мейнтейнеров. Люди, пренебрегающие данными правилами,
просто-напросто лишаются прав коммиттера, прецеденты бывали.

А кому вы больше доверяете: разработчикам OpenBSD или авторам
статических анализаторов? 😉 На самом деле, если для вас действительно
важен этот вопрос, то не полагайтесь ни на кого — возьмите свой
любимый статический анализатор и пройдитесь по коду.

Из последнего — в связи с переездом на clang (буквально в эти часы, как я пишу данный ответ, идёт подготовка к переключению x86-платформ на сборку clang’ом) был очередной проход по коду всей базовой системы с clang static analyzer. Критических ошибок выявлено не было.

И да, Пользователь ЛОРа commagray просит вас (или других разработчиков) создать и добавить в основное дерево порты qt5-webkit-ng и qt5ct+lxappearance. Что вы ему ответите?

Насколько я понимаю, qt5-webkit-ng не был слишком переделан по
сравнению с оригинальным, так что его портирование будет не таким
сложным. Правда, если смотреть на ChangeLog, то проект как будто
загибается: https://github.com/annulen/webkit/blob/qtwebkit-stable/ChangeLog . Всё-таки будущее, похоже, за Qt WebEngine, так что пока что я буду свои усилия концентрировать на нём. Однако, если кто-то всерьёз хочет qt5-webkit-ng, то я готов помочь — объяснить, показать, сделать ревью.

Насчёт Qt5Ct и LXappearance — можно сделать… Напишите мне на
следующей неделе (в начале августа), когда основная буря с clang’ом
немного утихнет. Сейчас практически все основные мейнтейнеры заняты этим процессом — думаю, понятно, что смена системного компилятора на основной платформе требует много усилий, и даже если я готов потратить полчаса своего времени на это дело, я не готов сейчас отрывать кого-то ещё для проведения аудита.

В заключение скажу: вы там держитесь, всего хорошего и спасибо за
рыбу! 🙂

>>> Ссылка


1
2


Source: linux.org.ru