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

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

    <bug>
          <bug_id>39889</bug_id>
          
          <creation_ts>2021-04-06 21:50:31 +0300</creation_ts>
          <short_desc>Просьба собрать cryptography 3.4.7</short_desc>
          <delta_ts>2021-04-26 22:20:38 +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>python3-module-cryptography</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</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="Vitaly Lipatov">lav</reporter>
          <assigned_to name="cow@altlinux.org">cow</assigned_to>
          <cc>cow</cc>
    
    <cc>grenka</cc>
    
    <cc>vladimir.didenko</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>197572</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-06 21:50:31 +0300</bug_when>
    <thetext>Просьба собрать cryptography 3.4.7, потребовался для новой версии matrix-synapse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197573</commentid>
    <comment_count>1</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-06 22:12:58 +0300</bug_when>
    <thetext>Да, vendor для rust нехорошо класть в общий каталог: его надо паковать в отдельный тарбол.
Если нужно, могу сделать на свой лад.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197577</commentid>
    <comment_count>2</comment_count>
    <who name="Владимир Диденко">vladimir.didenko</who>
    <bug_when>2021-04-07 09:31:55 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #1)
&gt; Да, vendor для rust нехорошо класть в общий каталог: его надо паковать в
&gt; отдельный тарбол.
&gt; Если нужно, могу сделать на свой лад.

Для чистых rust (и, например, go) пакетов я не соглашусь, в данном конкретном случае, возможно, и имеет смысл. Я не против, если вы поправите. Спасибо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197597</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-07 14:59:18 +0300</bug_when>
    <thetext>(Ответ для Владимир Диденко на комментарий #2)
&gt; (In reply to Vitaly Lipatov from comment #1)
&gt; &gt; Да, vendor для rust нехорошо класть в общий каталог: его надо паковать в
&gt; &gt; отдельный тарбол.
&gt; &gt; Если нужно, могу сделать на свой лад.
&gt; 
&gt; Для чистых rust (и, например, go) пакетов я не соглашусь, в данном
Дело в том, что каталог с исходниками в репозитории должен содержать распакованный тарбол, и вы не имеете права его модифицировать. Конечно, если кто-то поставляет тарбол уже с vendor, тут вопросов нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197598</commentid>
    <comment_count>4</comment_count>
    <who name="Владимир Диденко">vladimir.didenko</who>
    <bug_when>2021-04-07 15:21:27 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #3)
&gt; Дело в том, что каталог с исходниками в репозитории должен содержать
&gt; распакованный тарбол, и вы не имеете права его модифицировать. 

А почему не имею права?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197599</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-07 15:29:30 +0300</bug_when>
    <thetext>(Ответ для Владимир Диденко на комментарий #4)
&gt; (In reply to Vitaly Lipatov from comment #3)
&gt; &gt; Дело в том, что каталог с исходниками в репозитории должен содержать
&gt; &gt; распакованный тарбол, и вы не имеете права его модифицировать. 
&gt; 
&gt; А почему не имею права?
Потому что это нарушение правил.
Содержимое каталога должно обновляться из апстримного тарбола. Меняя там что-то вручную, вы скрываете свои изменения.
Я уж не говорю, что другой мантейнер при попытке обновить такой пакет столкнётся с проблемами.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197601</commentid>
    <comment_count>6</comment_count>
    <who name="Владимир Диденко">vladimir.didenko</who>
    <bug_when>2021-04-07 15:44:42 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #5)
&gt; Потому что это нарушение правил.

Ну вот меня и интересует, каких именно правил? Я не из вредности спрашиваю, а чтобы разобраться. У меня есть несколько go-пакетов, в которых vendor лежит в основной папке. И знаю немало немоих пакетов, которые используют тот же самый принцип. Поэтому, прежде чем бежать все переделывать, хочу разобраться в вопросе.

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

Они не скрываются. Импорт/обновление vendor производится отдельным коммитом. И все изменения лежат в папке vendor. Это сложно назвать скрытием.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197604</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-07 17:20:17 +0300</bug_when>
    <thetext>(Ответ для Владимир Диденко на комментарий #6)
&gt; (In reply to Vitaly Lipatov from comment #5)
&gt; &gt; Потому что это нарушение правил.
&gt; 
&gt; Ну вот меня и интересует, каких именно правил? Я не из вредности спрашиваю,
&gt; а чтобы разобраться. У меня есть несколько go-пакетов, в которых vendor
&gt; лежит в основной папке. И знаю немало немоих пакетов, которые используют тот
&gt; же самый принцип. Поэтому, прежде чем бежать все переделывать, хочу
&gt; разобраться в вопросе.
Лучше паковать vendor в отдельный тарбол (из отдельного каталога, отдельным правилом в .gear/rules — для этого там есть параметры name= и base=).
Тогда всё будет наглядно. И может быть, надо появится информация, как этот vendor обновлять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197605</commentid>
    <comment_count>8</comment_count>
    <who name="Владимир Диденко">vladimir.didenko</who>
    <bug_when>2021-04-07 17:32:31 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #7)
&gt; (Ответ для Владимир Диденко на комментарий #6)
&gt; &gt; (In reply to Vitaly Lipatov from comment #5)
&gt; &gt; &gt; Потому что это нарушение правил.
&gt; &gt; 
&gt; &gt; Ну вот меня и интересует, каких именно правил? Я не из вредности спрашиваю,
&gt; &gt; а чтобы разобраться. У меня есть несколько go-пакетов, в которых vendor
&gt; &gt; лежит в основной папке. И знаю немало немоих пакетов, которые используют тот
&gt; &gt; же самый принцип. Поэтому, прежде чем бежать все переделывать, хочу
&gt; &gt; разобраться в вопросе.
&gt; Лучше паковать vendor в отдельный тарбол (из отдельного каталога, отдельным
&gt; правилом в .gear/rules — для этого там есть параметры name= и base=).
&gt; Тогда всё будет наглядно. И может быть, надо появится информация, как этот
&gt; vendor обновлять.

Заранее прошу прощения за дотошность. Но все-таки хотелось бы разобраться.

1. В данном конкретном случае я могу понять, почему отдельный tarball лучше, поскольку vendor директория спрятана внутрях. А вот дальше не совсем ясно.

2. В чистых rust и go пакетах vendor директория лежит на самом первом уровне, и для всех кто знаком со сборкой rust и go пакетов не является секетом не назначение директории, ни процесс ее обновления. Упаковка vendor директории в отдельный tar архив тут только запутывает. По крайней мере, на мой взгляд.

3. Но судя по комментариям выше есть момент нарушения каких-то правил/договоренностей/лицензий? Вот это самый непонятный для меня вопрос.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197608</commentid>
    <comment_count>9</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-07 18:10:52 +0300</bug_when>
    <thetext>(Ответ для Владимир Диденко на комментарий #8)
...
&gt; Заранее прошу прощения за дотошность. Но все-таки хотелось бы разобраться.
Без проблем.

&gt; 1. В данном конкретном случае я могу понять, почему отдельный tarball лучше,
&gt; поскольку vendor директория спрятана внутрях. А вот дальше не совсем ясно.
Отдельный тарбол лучше потому, что каталог с исходниками должен формироваться простой распаковкой апстримного тарбола и никак иначе.
 
&gt; 2. В чистых rust и go пакетах vendor директория лежит на самом первом
&gt; уровне, и для всех кто знаком со сборкой rust и go пакетов не является
&gt; секетом не назначение директории, ни процесс ее обновления. Упаковка vendor
&gt; директории в отдельный tar архив тут только запутывает. По крайней мере, на
&gt; мой взгляд.
Вы ещё не признались, где вы берёте этот vendor.
Я всё спрашиваю в контексте существования
https://www.altlinux.org/Etersoft-build-utils/extra_sources
который направлен на автоматическое обновление скачиваемых компонент типа vendor.

&gt; 3. Но судя по комментариям выше есть момент нарушения каких-то
&gt; правил/договоренностей/лицензий? Вот это самый непонятный для меня вопрос.
Ну я же объяснил, что в каталог распаковывается апстримный тарбол.
Обычно это делают командой
gear-update
которая используется и в etersoft-build-utils (в команде rpmgs или rpmrb, которые обновляют исходники до новой версии)

Наверное, будет понятнее, если я напишу, что не нужно думать, что в каталог кладутся файлы, из которых собирается пакет. В каталог распаковывается исходный тарбол без изменений. Дополнительные изменения делаются добавлением патчей (для исправления кода) или добавлением архивов (в случае необходимости добавить что-то стороннее).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197610</commentid>
    <comment_count>10</comment_count>
    <who name="Владимир Диденко">vladimir.didenko</who>
    <bug_when>2021-04-07 18:24:40 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #9)

&gt; Вы ещё не признались, где вы берёте этот vendor.
&gt; Я всё спрашиваю в контексте существования
&gt; https://www.altlinux.org/Etersoft-build-utils/extra_sources
&gt; который направлен на автоматическое обновление скачиваемых компонент типа
&gt; vendor.

$ cargo vendor

&gt; 
&gt; &gt; 3. Но судя по комментариям выше есть момент нарушения каких-то
&gt; &gt; правил/договоренностей/лицензий? Вот это самый непонятный для меня вопрос.
&gt; Ну я же объяснил, что в каталог распаковывается апстримный тарбол.
&gt; Обычно это делают командой
&gt; gear-update
&gt; которая используется и в etersoft-build-utils (в команде rpmgs или rpmrb,
&gt; которые обновляют исходники до новой версии)

gear-update не единственный способ обновить исходники. Еще раз, в данном конкретном случае, я согласен, что лучше сделать отдельный tarball. Но обычно в наших rust и go пакетах импортится апстримовский git и сорцы обновляются через git merge.  Вот в этом конкретном случае непонятно, зачем нужно вытаскивать vendor в отдельное место.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198108</commentid>
    <comment_count>11</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-25 00:22:46 +0300</bug_when>
    <thetext>(Ответ для Владимир Диденко на комментарий #10)
...
&gt; gear-update не единственный способ обновить исходники. Еще раз, в данном
&gt; конкретном случае, я согласен, что лучше сделать отдельный tarball. Но
&gt; обычно в наших rust и go пакетах импортится апстримовский git и сорцы
А где можно почитать об этом способе? Чтобы я попробовал повторить на каком-то конкретном пакете.

&gt; обновляются через git merge.  Вот в этом конкретном случае непонятно, зачем
&gt; нужно вытаскивать vendor в отдельное место.
Да, в этом случае там уже и так получается репозиторий-солянка, никакого смысла отделять vendor нет, равно как и собирать из апстримного репозитория.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198109</commentid>
    <comment_count>12</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2021-04-25 03:06:05 +0300</bug_when>
    <thetext>python3-module-cryptography-3.4.7-alt1 -&gt; sisyphus:

 Sun Apr 25 2021 Vitaly Lipatov &lt;lav@altlinux.ru&gt; 3.4.7-alt1
 - new version (3.4.7) with rpmgs script (ALT bug 39889)
 - update src/rust/vendor separately</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198138</commentid>
    <comment_count>13</comment_count>
    <who name="Владимир Диденко">vladimir.didenko</who>
    <bug_when>2021-04-26 15:20:32 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #11)
&gt; А где можно почитать об этом способе? Чтобы я попробовал повторить на
&gt; каком-то конкретном пакете.
&gt; 

Если именно Rust пакеты интересуют, то можно глянуть на ripgrep (пакет не мой)

http://git.altlinux.org/gears/r/ripgrep.git

Если Go, то fzf (пакет мой)

http://git.altlinux.org/gears/f/fzf.git</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198159</commentid>
    <comment_count>14</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-04-26 22:20:38 +0300</bug_when>
    <thetext>(Ответ для Владимир Диденко на комментарий #13)
&gt; (In reply to Vitaly Lipatov from comment #11)
&gt; &gt; А где можно почитать об этом способе? Чтобы я попробовал повторить на
&gt; &gt; каком-то конкретном пакете.
&gt; &gt; 
&gt; 
&gt; Если именно Rust пакеты интересуют, то можно глянуть на ripgrep (пакет не
&gt; мой)
&gt; 
&gt; http://git.altlinux.org/gears/r/ripgrep.git
&gt; 
&gt; Если Go, то fzf (пакет мой)
&gt; 
&gt; http://git.altlinux.org/gears/f/fzf.git
Ага, спасибо.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>