[devel] dbus-introspection xml-files packaging

Evgeny Sinelnikov sin на altlinux.org
Пт Мар 15 19:08:28 MSK 2024


Добрый вечер,

поскольку суть обсуждения явно не заявлена, попытаюсь её сформулировать.

Речь идёт о файлах интроспекции. Стоит или не стоит их хранить вместе
с пакетами? Или может быть стоит выносить в отдельные подпакеты?

На мой взгляд это совершенно бесполезно, особенно в тех случаях, когда
клиентам нужно проверять валидность интерфейсов. Например, мы именно
для этого его сейчас используем для всех новых бекендов, создаваемых с
помощью модуля alterator-module-executor.

Кроме того, существует, действительно, и такая штука, как
"кодогенерация на лету". Хотя "кодогенерацией" это может и не
являться. Скорее статическим способом интроспекции.

Стоит упомянуть также и такую особенность, как сам интерфейс
интроспекции. Устроен он так, что выдаёт ровно те же xml'ки, которые
предлагается куда-то, зачем-то спрятать:

$ busctl call org.freedesktop.Accounts /org/freedesktop/Accounts
org.freedesktop.DBus.Introspectable Introspect
s "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object
Introspection 1.0//EN\"\n
[...]
</interface>\n  <node name=\"User758801104\"/>\n  <node
name=\"User500\"/>\n</node>\n"

Ну, то есть все приложения и так выдают свой интерфейс в этом же
формате. В ряде случаев, я думаю, это даже может быть реализовано как
отправка в ответ на org.freedesktop.DBus.Introspectable.Introspect()
содержимое того файла, который лежит в каталоге
/usr/share/dbus-1/interfaces/, вместо того, чтобы прибивать его
"гвоздями" в код сервиса.

В общем, не понятна цель ради которой что-то предлагается. Свести dbus
интроспекцию только к кодогенерации уже не очень получится. Разве что
перенести эти файлы в отдельные пакеты может иметь смысл, чтобы не
тащить в сборочное окружение лишние пакеты с их зависимостями. Тогда
цель становится понятной. Но это довольно тогда большая работа. У нас
и без неё много всего лишнего тянется в сборочное окружение. Эту
задачу нужно решать более комплексно, я думаю. Уж точно не с dbusxml
файлов начинать стоит.


пт, 15 мар. 2024 г. в 17:21, Sergey V Turchin <zerg at altlinux.org>:
>
> Привет всем!
>
> Предлагаю обсудить https://bugs.altlinux.org/49665 .
> https://dbus.freedesktop.org/doc/dbus-api-design.html#code-generation
> https://dbus.freedesktop.org/doc/dbus-api-design.html#apis
> https://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format
>
> --
> Regards, Sergey.
> _______________________________________________
> Devel mailing list
> Devel at lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки Devel