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

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

    <bug>
          <bug_id>59716</bug_id>
          
          <creation_ts>2026-07-02 19:47:54 +0300</creation_ts>
          <short_desc>Каталог altlinux/ по умолчанию (по аналогии с debian/)</short_desc>
          <delta_ts>2026-07-06 10:06:10 +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>gear</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>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anton Farygin">rider</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>cas</cc>
    
    <cc>dutyrok</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>legion</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>rx1513</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>290618</commentid>
    <comment_count>0</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-07-02 19:47:54 +0300</bug_when>
    <thetext>продлагаю добавить поддержку размещения всего .gear/* в каталоге altlinux/ в дереве проекта по умолчанию - сделать так что бы .gear-rules был наравне с .gear/rules и altlinux/rules

specfile из каталога altlinux искался наравне с specfile из корневого каталога проекта.

Цель - возможности перенести всё что нужно для сборки проекта под altlinux в единый каталог altlinux/ без дополнительного .gear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290652</commentid>
    <comment_count>1</comment_count>
    <who name="Alexandr Shashkin">dutyrok</who>
    <bug_when>2026-07-03 14:05:16 +0300</bug_when>
    <thetext>Поддерживаю, это решило бы спор о том, можно хранить спеки в .gear/ или нельзя в тем, что все необходимые файлы для сборки пакета на Alt переедут в соответствующую директорию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290657</commentid>
    <comment_count>2</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2026-07-03 14:15:37 +0300</bug_when>
    <thetext>(Ответ для Alexandr Shashkin на комментарий #1)
&gt; Поддерживаю, это решило бы спор о том, можно хранить спеки в .gear/ или
&gt; нельзя в тем, что все необходимые файлы для сборки пакета на Alt переедут в
&gt; соответствующую директорию.

Как? Что мешает это сделать сейчас? Есть несколько схем сборок, которые хранят всё в корне сборочного репозитория. Например сборка из тегов без исходников или сборка с апстримнным поддеревом. С ними как быть?

Какая реальная проблема существует на текущий момент и ближайшем будущем, которая бы нуждалась в запрете размещения файлов в .gear?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290661</commentid>
    <comment_count>3</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-07-03 14:27:46 +0300</bug_when>
    <thetext>Сейчас от .gear-rules или .gear/rules отказаться невозможно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290686</commentid>
    <comment_count>4</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2026-07-03 16:20:36 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #3)
&gt; Сейчас от .gear-rules или .gear/rules отказаться невозможно.
А зачем отказываться?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290698</commentid>
    <comment_count>5</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-07-03 20:52:32 +0300</bug_when>
    <thetext>(Ответ для Сергей Жидких на комментарий #4)
&gt; (Ответ для Anton Farygin на комментарий #3)
&gt; &gt; Сейчас от .gear-rules или .gear/rules отказаться невозможно.
&gt; А зачем отказываться?

что бы было одно место для вcего, что связано с altlinux, с такой конфигураций репозитория удобнее работать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290715</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2026-07-05 12:03:36 +0300</bug_when>
    <thetext>Я против обязательной дополнительной сущности в виде подкаталога. Если придерживаться концепции pristine source, то сам исходный код лежит в теге, а в пустом бранче спек, патчи и .gear/. Так проще 
* мержить
* разделять альтовые файлы и апстримные файлы
* искать среди альтового.

Все подкаталоги являются суррогатным решением, противным идеологии git. И не надо приводить в пример Debian, который буквально соткан из неэффективных суррогатных решений.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290717</commentid>
    <comment_count>7</comment_count>
    <who name="Сергей Жидких">rx1513</who>
    <bug_when>2026-07-05 14:31:41 +0300</bug_when>
    <thetext>(Ответ для Andrey Cherepanov на комментарий #6)
&gt; Я против обязательной дополнительной сущности в виде подкаталога. Если
&gt; придерживаться концепции pristine source, то сам исходный код лежит в теге,
&gt; а в пустом бранче спек, патчи и .gear/. Так проще 
&gt; * мержить
&gt; * разделять альтовые файлы и апстримные файлы
&gt; * искать среди альтового.
&gt; 
&gt; Все подкаталоги являются суррогатным решением, противным идеологии git. И не
&gt; надо приводить в пример Debian, который буквально соткан из неэффективных
&gt; суррогатных решений.

Такая схема неудобна, когда нужно работать с кодом, а не только заниматься упаковкой:

Если мейнтейнер по каким-то причинам не позаботился о добавлении gear-remotes, приходится добавлять его самому (и портить исходный сборочный репозиторий) либо лезть .gear/tags и искать нужный хэш там.

Потом нужно делать checkout, но перед ним нужно сделать обязательно сделать stash.

После checkout все сборочные файлы исчезают и чтобы соотносить код и сборочную среду приходится либо прыгать туда сюда либо делать копию исходников и вмешиваться в структуру репозитория.

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

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

На мой взгляд, единственным правильным решением в данной ситуации является сборка из тега с добавлением git subtree, как это сделано здесь: https://git.altlinux.org/gears/i/iroh.git?p=iroh.git;a=tree.

Данный подход лишён минусов, описанных выше. Единственными двумя проблемами этого метода являются отсутствие гарантий соответствия между тегом и поддеревом, а также особенности реализации `git subtree`, которые приводят к необходимости обязательного слияния поддерева с созданием нового коммита, что в некоторых случаях совершенно неприемлемо.

Однако я думаю, что обе эти проблемы можно легко исправить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290737</commentid>
    <comment_count>8</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2026-07-06 10:06:10 +0300</bug_when>
    <thetext>В git subtree к сожалению не работает нормально сопровождение изменений поверх апстрима - по опыту использования конфликты разрешаются гораздо тяжелее.
Плюс сложнее отправлять изменения в апстрим проекта.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>