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

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

    <bug>
          <bug_id>57639</bug_id>
          
          <creation_ts>2026-01-25 16:39:59 +0300</creation_ts>
          <short_desc>раскладка buildroot для упаковки как &quot;флатпак-приложение&quot;</short_desc>
          <delta_ts>2026-01-29 14:13:04 +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>rpm-build</component>
          <version>unstable</version>
          <rep_platform>all</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>
          <dependson>57706</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arseny Maslennikov">arseny</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>antohami</cc>
    
    <cc>armatik</cc>
    
    <cc>arseny</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</cc>
    
    <cc>oleg</cc>
    
    <cc>placeholder</cc>
    
    <cc>radiolamp</cc>
    
    <cc>rirusha</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280830</commentid>
    <comment_count>0</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2026-01-25 16:39:59 +0300</bug_when>
    <thetext>Ряд участников (и кандидатов в) ALT Linux Team взяли на себя инициативу организовать упаковку избранных пакетов из Сизифа и их публикацию в виде &quot;флатпак-приложений&quot;.

Вот одна из причин этим заниматься: сообщество сможет предоставить пользователям ОС на бранч-платформах возможность одной командой (или одним кликом) на свой страх и риск установить себе пакет из Сизифа в изолированное окружение вместе с его зависимостями из Сизифа, не нарушая консистентность ОС и пакетов из платформы.

Как известно, флатпак-артефакты для распространения пользователям делятся на два типа: &quot;приложение&quot; (app) и &quot;среда исполнения&quot; (runtime). Первые могут содержать зависимости на вторые.
Файлы внутри артефактов первого и второго типов расположены по-разному; в частности, в &quot;приложениях&quot; присущие им файлы упакованы в каталог `/app`. (Исполняющая среда при помощи bind mount и других программных средств добивается, чтобы программы внутри видели FHS-дерево.) В &quot;средах исполнения&quot; файлы расположены как обычно; туда кладут, например, согласованный набор библиотек.
В этой баге мы говорим только о &quot;флатпак-приложениях&quot;.

Будет целесообразно сделать так, чтобы спек от пакета из Сизифа, который уместно собрать не только в виде пакета, но и в виде флатпака, можно было собрать при помощи нашего rpmbuild, передав ему --define &quot;_prefix /app&quot;. В такой сборке будет задействован немного другой макронабор, тот же набор brp (некоторые из них будут no-op, напр. brp-dupe-bin); а sisyphus-check будет неактуален.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280831</commentid>
    <comment_count>1</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2026-01-25 16:43:27 +0300</bug_when>
    <thetext>Поступало предложение оформить, выражаясь образно, &quot;точку входа в мир флатпаков&quot; иначе: не переопределять префикс, а ввести режим:
  rpmbuild --define &quot;_rootlayout fhs&quot; &quot;$@&quot;
  rpmbuild --define &quot;_rootlayout flatpak-app&quot; &quot;$@&quot;
и при первом из указанных значений (оно же по умолчанию) упаковывать файлы для традиционных пакетов, как обычно, а при втором упаковывать файлы для flatpak. Надо подумать, лучше ли это, чем решить, что &apos;_prefix /app&apos; — это всегда наш случай. Но есть и подзадачи более высокого приоритета.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280833</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2026-01-25 17:08:41 +0300</bug_when>
    <thetext>Почему это должен решать rpmbuild?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280837</commentid>
    <comment_count>3</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2026-01-25 17:29:43 +0300</bug_when>
    <thetext>(In reply to Vitaly Chikunov from comment #2)
&gt; Почему это должен решать rpmbuild?

В сизифе есть много успешно, по мере сил воспроизводимо собирающихся спеков с программами в духе [1][2][3].

[1] https://packages.altlinux.org/en/sisyphus/srpms/hieroglyphic/
[2] https://packages.altlinux.org/en/sisyphus/srpms/lemma/
[3] https://packages.altlinux.org/en/sisyphus/srpms/picplanner/

Макродвижок rpmbuild, как пока представляется, позволяет малыми усилиями, собрав наш спек с немного другим значением парочки макросов, получить пакет, дерево файлов которого будет пригодно для перекладывания в F-артефакт. Станет не нужно мейнтейнить два разных build definition: одно на базе rpmspec, другое на синтаксисе YAML (yikes).

А вот зависимости будут устроены по-другому; нужно будет конвертировать граф rpm-ных зависимостей в такой, что приличествует коллекции &quot;приложений&quot; и &quot;рантаймов&quot; под рабочим кодовым названием, допустим, &quot;альтхаб&quot;, которая естественно возникнет. И мне теоретически кажется, что rpmbuild здесь ничем не поможет и не помешает, но, полагаю, прямые участники проекта смогут прокомментировать яснее.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280840</commentid>
    <comment_count>4</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2026-01-25 17:32:45 +0300</bug_when>
    <thetext>(In reply to Arseny Maslennikov from comment #0)
&gt; В этой баге мы говорим только о &quot;флатпак-приложениях&quot;.
&gt; 
&gt; ...В такой сборке будет задействован немного другой макронабор, тот же набор
&gt; brp (некоторые из них будут no-op, напр. brp-dupe-bin); а sisyphus-check будет
&gt; неактуален.
...в неизменном виде. Некоторые проверки станут не нужны, появятся новые; это будет форк sisyphus-check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280841</commentid>
    <comment_count>5</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2026-01-25 17:50:20 +0300</bug_when>
    <thetext>(In reply to Arseny Maslennikov from comment #3)
&gt; (In reply to Vitaly Chikunov from comment #2)
&gt; &gt; Почему это должен решать rpmbuild?
&gt; В сизифе есть много успешно, по мере сил воспроизводимо собирающихся спеков
&gt; с программами в духе [1][2][3].
&gt; 
&gt; [1] https://packages.altlinux.org/en/sisyphus/srpms/hieroglyphic/
&gt; [2] https://packages.altlinux.org/en/sisyphus/srpms/lemma/
&gt; [3] https://packages.altlinux.org/en/sisyphus/srpms/picplanner/
&gt; 
&gt; Макродвижок rpmbuild, как пока представляется, позволяет малыми усилиями,
&gt; собрав наш спек с немного другим значением парочки макросов, получить пакет,
&gt; дерево файлов которого будет пригодно для перекладывания в F-артефакт.
&gt; Станет не нужно мейнтейнить два разных build definition: одно на базе
&gt; rpmspec, другое на синтаксисе YAML (yikes).
Если разница будет слишком большой и потребует сопровождения, то мы унесём макроопределения для &quot;ф-приложений&quot; в отдельный пакет rpmb-config-что-то, чтобы не мозолили глаза в репозитории rpm-build. (Вообще, держать macros.in, platform.in, etc. в другом пакете — это в целом хорошая идея.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280845</commentid>
    <comment_count>6</comment_count>
    <who name="Vladimir Romanov">rirusha</who>
    <bug_when>2026-01-25 18:31:46 +0300</bug_when>
    <thetext>(Ответ для Arseny Maslennikov на комментарий #3)
&gt; (In reply to Vitaly Chikunov from comment #2)
&gt; &gt; Почему это должен решать rpmbuild?
&gt; 
&gt; В сизифе есть много успешно, по мере сил воспроизводимо собирающихся спеков
&gt; с программами в духе [1][2][3].
&gt; 
&gt; [1] https://packages.altlinux.org/en/sisyphus/srpms/hieroglyphic/
&gt; [2] https://packages.altlinux.org/en/sisyphus/srpms/lemma/
&gt; [3] https://packages.altlinux.org/en/sisyphus/srpms/picplanner/
&gt; 
&gt; Макродвижок rpmbuild, как пока представляется, позволяет малыми усилиями,
&gt; собрав наш спек с немного другим значением парочки макросов, получить пакет,
&gt; дерево файлов которого будет пригодно для перекладывания в F-артефакт.
&gt; Станет не нужно мейнтейнить два разных build definition: одно на базе
&gt; rpmspec, другое на синтаксисе YAML (yikes).
&gt; 
&gt; А вот зависимости будут устроены по-другому; нужно будет конвертировать граф
&gt; rpm-ных зависимостей в такой, что приличествует коллекции &quot;приложений&quot; и
&gt; &quot;рантаймов&quot; под рабочим кодовым названием, допустим, &quot;альтхаб&quot;, которая
&gt; естественно возникнет. И мне теоретически кажется, что rpmbuild здесь ничем
&gt; не поможет и не помешает, но, полагаю, прямые участники проекта смогут
&gt; прокомментировать яснее.

То есть есть желание перевести yaml манифесты в формат rpm спеков?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280848</commentid>
    <comment_count>7</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2026-01-25 18:57:16 +0300</bug_when>
    <thetext>(In reply to Vladimir Romanov from comment #6)
&gt; (Ответ для Arseny Maslennikov на комментарий #3)
&gt; &gt; (In reply to Vitaly Chikunov from comment #2)
&gt; &gt; &gt; Почему это должен решать rpmbuild?
&gt; &gt; 
&gt; &gt; В сизифе есть много успешно, по мере сил воспроизводимо собирающихся спеков
&gt; &gt; с программами в духе [1][2][3].
&gt; &gt; 
&gt; &gt; [1] https://packages.altlinux.org/en/sisyphus/srpms/hieroglyphic/
&gt; &gt; [2] https://packages.altlinux.org/en/sisyphus/srpms/lemma/
&gt; &gt; [3] https://packages.altlinux.org/en/sisyphus/srpms/picplanner/
&gt; &gt; 
&gt; &gt; Макродвижок rpmbuild, как пока представляется, позволяет малыми усилиями,
&gt; &gt; собрав наш спек с немного другим значением парочки макросов, получить пакет,
&gt; &gt; дерево файлов которого будет пригодно для перекладывания в F-артефакт.
&gt; &gt; Станет не нужно мейнтейнить два разных build definition: одно на базе
&gt; &gt; rpmspec, другое на синтаксисе YAML (yikes).
&gt; &gt; 
&gt; &gt; А вот зависимости будут устроены по-другому; нужно будет конвертировать граф
&gt; &gt; rpm-ных зависимостей в такой, что приличествует коллекции &quot;приложений&quot; и
&gt; &gt; &quot;рантаймов&quot; под рабочим кодовым названием, допустим, &quot;альтхаб&quot;, которая
&gt; &gt; естественно возникнет. И мне теоретически кажется, что rpmbuild здесь ничем
&gt; &gt; не поможет и не помешает, но, полагаю, прямые участники проекта смогут
&gt; &gt; прокомментировать яснее.
&gt; 
&gt; То есть есть желание перевести yaml манифесты в формат rpm спеков?
Наша team накопила большой опыт (преимущественно негативный) машинного анализа и обработки rpm-спеков; в общем случае они ему без eval не поддаются, а частичный анализ по принципу &quot;надежда умирает последней&quot;, как в проекте gear, хрупок. Так что у меня такого желания нет, и я никому этот тернистый путь не рекомендовал бы.

YAML тоже страдает от подобных проблем[1][2][3], только он ещё и с трудом человекопознаваемый, склонен мешать человеку по принципу револьвера с одним патроном: почти всегда щелчок, а иногда [ДАННЫЕ УДАЛЕНЫ]. Это чуть ли не худший тип стохастических явлений с т. з. человеческой психики.

  [ Можно в теории (выходим за пределы онтопика, конечно) захотеть построить подмножество yaml, которое однозначно и очевидно парсится без исполнения произвольного кода, сохранив те свойства, которым этот синтаксис удобен и вообще в рамках сизифа уезжать туда (генерировать из него и rpm-спеки, и флатпак-спеки). Но за эту high toll, high reward метазадачу никто не брался, а когда предварительно обсуждали, тяготели скорее к debian control. ]

[1] https://www.ohyaml.wtf/
[2] https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell
[3] https://github.com/ghuntley/noyaml/blob/db7b929f99c42e0f792c7322438297ec9ee6331d/index.html

В рамках сабжа этой баги точно ничего переводить никуда не надо. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280849</commentid>
    <comment_count>8</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2026-01-25 19:12:55 +0300</bug_when>
    <thetext>(In reply to Arseny Maslennikov from comment #7)
&gt; (In reply to Vladimir Romanov from comment #6)
&gt; &gt; (Ответ для Arseny Maslennikov на комментарий #3)
&gt; &gt; &gt; Макродвижок rpmbuild, как пока представляется, позволяет малыми усилиями,
&gt; &gt; &gt; собрав наш спек с немного другим значением парочки макросов, получить пакет,
&gt; &gt; &gt; дерево файлов которого будет пригодно для перекладывания в F-артефакт.
&gt; &gt; &gt; Станет не нужно мейнтейнить два разных build definition: одно на базе
&gt; &gt; &gt; rpmspec, другое на синтаксисе YAML (yikes).
&gt; &gt; &gt; 
&gt; &gt; &gt; А вот зависимости будут устроены по-другому; нужно будет конвертировать граф
&gt; &gt; &gt; rpm-ных зависимостей в такой, что приличествует коллекции &quot;приложений&quot; и
&gt; &gt; &gt; &quot;рантаймов&quot; под рабочим кодовым названием, допустим, &quot;альтхаб&quot;, которая
&gt; &gt; &gt; естественно возникнет. И мне теоретически кажется, что rpmbuild здесь ничем
&gt; &gt; &gt; не поможет и не помешает, но, полагаю, прямые участники проекта смогут
&gt; &gt; &gt; прокомментировать яснее.
&gt; &gt; 
&gt; &gt; То есть есть желание перевести yaml манифесты в формат rpm спеков?
&gt; 
&gt; В рамках сабжа этой баги точно ничего переводить никуда не надо. :)
Сабж связан с тем, что (по условию) у нас уже написаны спеки, и мы надеемся их переиспользовать, чтобы пакеты из сизифа появились в коллекции флатпаков.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>