<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>49665</bug_id>
          
          <creation_ts>2024-03-12 15:26:05 +0300</creation_ts>
          <short_desc>devel-файлы в основном пакете, но не упакованы в devel-подпакет</short_desc>
          <delta_ts>2024-05-31 15:35:33 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>alterator-roles</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergey V Turchin">zerg</reporter>
          <assigned_to name="Иван Савин">svn17</assigned_to>
          <cc>nbr</cc>
    
    <cc>rider</cc>
    
    <cc>svn17</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>242887</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-12 15:26:05 +0300</bug_when>
    <thetext>xml-описание dbus-интерфейса должно быть в devel-подпакете.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242889</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-12 15:28:07 +0300</bug_when>
    <thetext>Если оно не предназначено для использования за пределами пакета, то паковать этот файл вообще не надо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242929</commentid>
    <comment_count>2</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-13 12:55:48 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #0)
&gt; xml-описание dbus-интерфейса должно быть в devel-подпакете.

У других не в devel:

#rpm -qf /usr/share/dbus-1/interfaces/*.xml
malcontent-0.10.3-alt1.x86_64
malcontent-0.10.3-alt1.x86_64
malcontent-0.10.3-alt1.x86_64
system-config-printer-lib-1.5.17-alt1.x86_64
colord-1.4.6-alt1.x86_64
colord-1.4.6-alt1.x86_64
colord-1.4.6-alt1.x86_64
colord-1.4.6-alt1.x86_64
colord-1.4.6-alt1.x86_64
lightdm-1.30.0-alt24.x86_64
fwupd-1.9.13-alt1.x86_64
alterator-update-kernel-1.4-alt2.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242930</commentid>
    <comment_count>3</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-13 12:57:24 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #1)
&gt; Если оно не предназначено для использования за пределами пакета, то паковать
&gt; этот файл вообще не надо.

Разве нельзя хранить интроспекцию в отдельном файле? Или тут про другое?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242932</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-13 13:22:28 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #2)
&gt; У других не в devel:
Всё баги.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242934</commentid>
    <comment_count>5</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-13 13:24:09 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #3)
&gt; Разве нельзя хранить интроспекцию в отдельном файле? Или тут про другое?
Это как заголовочный файл, т.е. описание API.
По нему все генерируют код в нужное представление. qdbusxml2cpp, например.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242941</commentid>
    <comment_count>6</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-13 13:33:14 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #2)
&gt; У других не в devel:
Развесил всем.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243000</commentid>
    <comment_count>7</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-14 16:06:40 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #5)
&gt; Это как заголовочный файл, т.е. описание API.
&gt; По нему все генерируют код в нужное представление. qdbusxml2cpp, например.

Между заголовочными файлами и файлами интерфейсов d-bus есть разница. Первые
используются во время сборки, а вторые во время выполнения, хотя на основе
этих xml файлов можно генерировать код (например для proxy объектов).
Это xml описание интерфейса, который будет реализован службой на d-bus и,
по этому описанию, конечно, можно генерировать код для работы с этой службой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243014</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 10:14:21 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #7)
&gt; Между заголовочными файлами и файлами интерфейсов d-bus есть разница. Первые
&gt; используются во время сборки, а вторые во время выполнения
Чушь. Во время сборки. Только.
https://dbus.freedesktop.org/doc/dbus-api-design.html#code-generation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243024</commentid>
    <comment_count>9</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 12:33:27 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #8)
&gt; Чушь. Во время сборки. Только.
Не, вру.
&quot;may be introspected at runtime&quot; 
https://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format

Это значит, что файл должен быть и в devel и в не-devel пакетах(так уже можно), т.к. требовать для сборки основной пакет некрасиво и нерационально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243039</commentid>
    <comment_count>10</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-15 13:33:48 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #9)
&gt; (Ответ для Sergey V Turchin на комментарий #8)
&gt; Это значит, что файл должен быть и в devel и в не-devel пакетах(так уже
&gt; можно), т.к. требовать для сборки основной пакет некрасиво и нерационально.

Файла вообще может не быть, xml может быть в коде &quot;гвоздями прибита&quot;. Сколько
файлов в dbus-1/interfaces и сколько сервисов с интерфейсом на dbus установлено?
Заставлять этих разработчиков в devel эту xml укладывать? Нет, это на усмотрение
разработчика.

https://dbus.freedesktop.org/doc/dbus-api-design.html#apis</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243040</commentid>
    <comment_count>11</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 13:37:51 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #10)
&gt; Заставлять этих разработчиков в devel эту xml укладывать?
В зависимости от.

&gt; Нет, это на усмотрение разработчика.
Если разработчик усмотрел использование этого API за пределами пакета, то xml-файл должен быть упакован мантейнером в devel-подпакет. Если нет, то можно вообще не паковать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243041</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 13:40:35 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #10)
&gt; https://dbus.freedesktop.org/doc/dbus-api-design.html#apis
Этого мало.
API обязан быть не какой-то подачкой, а стабильным и версионированым.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243044</commentid>
    <comment_count>13</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-15 14:03:45 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #11)
&gt; (Ответ для Иван Савин на комментарий #10)
&gt; Если разработчик усмотрел использование этого API за пределами пакета, то
&gt; xml-файл должен быть упакован мантейнером в devel-подпакет. Если нет, то
&gt; можно вообще не паковать.

Это интерфейс для dbus, конечно он используется за пределами пакета. А файла,
как сказано выше, может не быть.
И это &quot;a valid approach&quot;: https://dbus.freedesktop.org/doc/dbus-api-design.html#apis</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243045</commentid>
    <comment_count>14</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 14:12:49 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #13)
&gt; файла, как сказано выше, может не быть.
&gt; И это &quot;a valid approach&quot;:
&gt; https://dbus.freedesktop.org/doc/dbus-api-design.html#apis
Если разработчик задумал это как I, а не как API, то да, соглашусь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243047</commentid>
    <comment_count>15</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-15 14:35:33 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #14)
&gt; (Ответ для Иван Савин на комментарий #13)
&gt; Если разработчик задумал это как I, а не как API, то да, соглашусь.

&quot;Some projects, however, choose to define the API in the code for the service, and to export XML interface files from the running service using D-Bus introspection.&quot;

&quot;to define the API&quot;!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243050</commentid>
    <comment_count>16</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-15 14:37:05 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #15)
&gt; (Ответ для Sergey V Turchin на комментарий #14)
&gt; &gt; (Ответ для Иван Савин на комментарий #13)
&gt; &gt; Если разработчик задумал это как I, а не как API, то да, соглашусь.
&gt; 
&gt; &quot;Some projects, however, choose to define the API in the code for the
&gt; service, and to export XML interface files from the running service using
&gt; D-Bus introspection.&quot;
&gt; 
&gt; &quot;to define the API&quot;!

https://dbus.freedesktop.org/doc/dbus-api-design.html#apis</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243055</commentid>
    <comment_count>17</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 15:06:06 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #16)
&gt; &gt; &quot;to define the API&quot;!
&gt; https://dbus.freedesktop.org/doc/dbus-api-design.html#apis
Такая подачка не может быть API по определению, т.к. может меняться динамически.
API должно быть конкретно определено. Вопрос, где?

P.S.
Я уже встречал на FDO спецификации, которые разработчики glib и qt трактуют так, как им больше хочется, потому, что остальные все условия изменились и архитектура, описанная в спецификации больше реально не работает и осталась только формально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243060</commentid>
    <comment_count>18</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 15:19:05 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #16)
&gt; &gt; &quot;Some projects, however, choose to define the API in the code for the
&gt; &gt; service, and to export XML interface files from the running service using
&gt; &gt; D-Bus introspection.&quot;
&gt; &gt; &quot;to define the API&quot;!
&gt; https://dbus.freedesktop.org/doc/dbus-api-design.html#apis
Ну или перефразирую.
Для того, чтоб скомпилировать программу, использующий этот интерфейс, нужно установить сервис, правильно сконфигурировать его, запустить, выдернуть интроспекцию и уже с ней собрать программу. Вы полагаете, что найдётся хоть кто-то, кто посчитает это вменяемым?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243066</commentid>
    <comment_count>19</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-15 16:03:07 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #18)
&gt; (Ответ для Иван Савин на комментарий #16)
&gt; Для того, чтоб скомпилировать программу, использующий этот интерфейс, нужно
&gt; установить сервис, правильно сконфигурировать его, запустить, выдернуть
&gt; интроспекцию и уже с ней собрать программу. Вы полагаете, что найдётся хоть
&gt; кто-то, кто посчитает это вменяемым?

Это нужно сделать если вы хотите генерировать код на основе интроспекции. Чтобы компилировать это не нужно делать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243067</commentid>
    <comment_count>20</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 16:12:36 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #19)
&gt; Это нужно сделать если вы хотите генерировать код на основе интроспекции.
Этот код нужно компилировать

&gt; Чтобы компилировать это не нужно делать.
, а для этого нужно где-то взять интроспекцию.

P.S.
И взять не фиг знает что, а API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243068</commentid>
    <comment_count>21</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-15 16:25:26 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #20)
&gt; (Ответ для Иван Савин на комментарий #19)
&gt; &gt; Это нужно сделать если вы хотите генерировать код на основе интроспекции.
&gt; Этот код нужно компилировать
&gt; 
&gt; &gt; Чтобы компилировать это не нужно делать.
&gt; , а для этого нужно где-то взять интроспекцию.

Для компиляции? Зачем?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243069</commentid>
    <comment_count>22</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 16:27:11 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #21)
&gt; &gt; &gt; Это нужно сделать если вы хотите генерировать код на основе интроспекции.
&gt; &gt; Этот код нужно компилировать
&gt; &gt; &gt; Чтобы компилировать это не нужно делать.
&gt; &gt; , а для этого нужно где-то взять интроспекцию.
&gt; Для компиляции? Зачем?
https://dbus.freedesktop.org/doc/dbus-api-design.html#code-generation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243070</commentid>
    <comment_count>23</comment_count>
    <who name="nbr">nbr</who>
    <bug_when>2024-03-15 16:31:01 +0300</bug_when>
    <thetext>Класть такое содержимое в 
&lt;packetname&gt;-dbusxml.1.0.1.alt1.rpm
?
Тогда его можно будет убирать из образов, в которых требуется полное выбрасывание среды разработки, а для менее строгих применений, в которых, скажем, возможно создание интроспекции на питоне в рантайме - оставлять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243071</commentid>
    <comment_count>24</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-15 16:42:48 +0300</bug_when>
    <thetext>(Ответ для nbr на комментарий #23)
&gt; Класть такое содержимое в 
&gt; &lt;packetname&gt;-dbusxml.1.0.1.alt1.rpm
Если предполагается кодогенерация на лету, то да. И зависимость на него в devel-пакете. Но, сейчас вроде можно один файл в разные подпакеты паковать, а это проще, чем делать отдельный подпакет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243085</commentid>
    <comment_count>25</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-16 10:08:19 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #18)
&gt; (Ответ для Иван Савин на комментарий #16)
&gt; &gt; &gt; &quot;Some projects, however, choose to define the API in the code for the
&gt; &gt; &gt; service, and to export XML interface files from the running service using
&gt; &gt; &gt; D-Bus introspection.&quot;
&gt; &gt; &gt; &quot;to define the API&quot;!
&gt; &gt; https://dbus.freedesktop.org/doc/dbus-api-design.html#apis
&gt; Ну или перефразирую.
&gt; Для того, чтоб скомпилировать программу, использующий этот интерфейс, нужно
&gt; установить сервис, правильно сконфигурировать его, запустить, выдернуть
&gt; интроспекцию и уже с ней собрать программу. Вы полагаете, что найдётся хоть
&gt; кто-то, кто посчитает это вменяемым?

И даже этой опции может не быть. Интерфейс org.freedesktop.DBus.Introspectable
может быть не реализован на объекте. Как пример - polkit agent.
API тогда берётся из документации.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243086</commentid>
    <comment_count>26</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2024-03-16 10:35:26 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #24)
&gt; (Ответ для nbr на комментарий #23)
&gt; &gt; Класть такое содержимое в 
&gt; &gt; &lt;packetname&gt;-dbusxml.1.0.1.alt1.rpm
&gt; Если предполагается кодогенерация на лету, то да. И зависимость на него в
&gt; devel-пакете. Но, сейчас вроде можно один файл в разные подпакеты паковать,
&gt; а это проще, чем делать отдельный подпакет.

devel пакет же может (и должен) зависить от библиотеки.

Честно говоря вообще не понял что вы спорите.
Если каким-то приложениям на python нужен этот файл, то он должен лежать не в devel пакете, если он не используется ни для чего, кроме сборки - то лучше переложить в devel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243121</commentid>
    <comment_count>27</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-18 09:56:37 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #26)
&gt; Если каким-то приложениям на python нужен этот файл, то он должен лежать не
&gt; в devel пакете, если он не используется ни для чего, кроме сборки - то лучше
&gt; переложить в devel
Да, т.к. тащить основной пакет для сборки некрасиво.
Дополню:
Если возможно использование и там и там, то надо паковать в оба.
Если нужен только внутри своих подпакетов, то вообще не паковать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243122</commentid>
    <comment_count>28</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-18 09:57:37 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #26)
&gt; devel пакет же может (и должен) зависить от библиотеки.
Если там кроме cmake-файлов и xml-описания ничего нет, то нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243123</commentid>
    <comment_count>29</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-18 10:19:36 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #26)
&gt; Честно говоря вообще не понял что вы спорите.
Лично я потому, что возникло подозрение, что у нового Alterator не будет API как такового вообще, а то, что будет, нельзя будет называть API, от которого будет только I.

(Ответ для Иван Савин на комментарий #25)
&gt; API тогда берётся из документации.
Ну, разве что, будет задокументировано. Но, в это ещё слабее верится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243142</commentid>
    <comment_count>30</comment_count>
    <who name="Иван Савин">svn17</who>
    <bug_when>2024-03-18 14:58:52 +0300</bug_when>
    <thetext>(Ответ для Sergey V Turchin на комментарий #29)
&gt; (Ответ для Anton Farygin на комментарий #26)
&gt; &gt; Честно говоря вообще не понял что вы спорите.
&gt; Лично я потому, что возникло подозрение, что у нового Alterator не будет API
&gt; как такового вообще, а то, что будет, нельзя будет называть API, от которого
&gt; будет только I.

Если так, то багу надо закрывать, так как это не баг.
Причём тут новый альтератор? Он не хранит свою интроспекцию в файле в
dbus-1/interfaces/. Она в коде, а это &quot;a valid approach&quot;.
Также как и множество других сервисов, например, вышеупомянутый polkit agent. 

&gt; (Ответ для Иван Савин на комментарий #25)
&gt; &gt; API тогда берётся из документации.
&gt; Ну, разве что, будет задокументировано. Но, в это ещё слабее верится.

Спорить про веру вообще бессмысленно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243143</commentid>
    <comment_count>31</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-03-18 15:08:34 +0300</bug_when>
    <thetext>(Ответ для Иван Савин на комментарий #30)
&gt; Если так, то багу надо закрывать, так как это не баг.
Этот баг не надо, т.к. он не исправлен, а новый про Alterator создам отдельно, когда потребуется.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247068</commentid>
    <comment_count>32</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-05-31 15:35:33 +0300</bug_when>
    <thetext>Повторю на всякий ещё раз суть:
для использования qdbusxml2cpp понадобится установить НЕ-devel пакет.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>