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

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

    <bug>
          <bug_id>38293</bug_id>
          
          <creation_ts>2020-03-28 17:05:34 +0300</creation_ts>
          <short_desc>genpkglist --help: неправильное описание опции --cachedir</short_desc>
          <delta_ts>2020-11-04 17:07:08 +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>apt-repo-tools</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="Alexey">blitzkrieg</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>cas</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>188917</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-03-28 17:05:34 +0300</bug_when>
    <thetext>Утилита не принимает корректно параметр --cachedir.

genpkglist --append --bloat --cachedir=/home/blitzkrieg /repo/adb/noarch classic
genpkglist 0.6.0
usage: genpkglist [&lt;options&gt;] &lt;dir&gt; &lt;suffix&gt;
options:
 --index &lt;file&gt;  file to write srpm index data to
 --info &lt;file&gt;   file to read update info from
 --useful-files &lt;file&gt;  file to read the list of useful files from
 --meta &lt;suffix&gt; create package file list with given suffix
 --no-scan       do not scan for useful files
 --bloat         do not strip the package file list. Needed for some
                 distributions that use non-automatically generated
                 file dependencies
 --append        append to the package file list, don&apos;t overwrite
 --progress      show a progress bar
 --cachedir=DIR  use a custom directory for package md5sum cache
 --changelog-since &lt;seconds&gt;
                 save package changelogs; copy changelog entries
                 newer than seconds since the Epoch, and also
                 one preceding entry (if any)
genpkglist: //--cachedir=/home/blitzkrieg/RPMS./repo/adb/noarch: No such file or directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188918</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-03-28 17:08:34 +0300</bug_when>
    <thetext>apt-repo add некорректно добавляет локалльный репозиторий, при этом, даже добавив его руками, на него ругается apt-get update.
Для p9 это тоже справедливо. 
Использовать локальный репозиторий даже прописав его руками не получилось.
Проблема таже, что была с добавлением обычных репозиториев http, что-то там с в регулярке которая урл парсит криво.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188951</commentid>
    <comment_count>2</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2020-03-30 12:01:59 +0300</bug_when>
    <thetext>(Ответ для Alexey на комментарий #0)
&gt; Утилита не принимает корректно параметр --cachedir.
&gt; 
...
&gt;  --cachedir=DIR  use a custom directory for package md5sum cache

Ошибка ровно в этом месте.  genpkglist вообще не умеет опции с параметрами через = , если написать --сachedir DIR , то всё будет хорошо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188977</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-03-30 18:00:17 +0300</bug_when>
    <thetext>В справке о программе именно через =.
Вообще кеш бесполезная штука. В отсутствии самих пакетов, закешированные md5 которых там лежат, он становится бесполезным. Т.е. в условиях, когда нужно добавить мд5 новых пакетов кеш просто не используется. И перегенировать метаданные полностью нельзя. Правильнее в качестве кеша использовать некую БД как в убунте, из которой можно генерить метаданные без самих пакетов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189107</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-04-07 10:17:44 +0300</bug_when>
    <thetext>Возник вопрос по результату работы genbasedir.
В каталоге после обрабокти появляются файлы .xz и .bz2. Зачем они нужны и когда используются? Вопрос связан с тем, что на данный момент на определенной платформе нет xz и, соответственно, файл xz отсутствует. Но насколько я понял он, как и bz2, apt-get не используется.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189108</commentid>
    <comment_count>5</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2020-04-07 11:02:32 +0300</bug_when>
    <thetext>(Ответ для Alexey на комментарий #4)
&gt; Возник вопрос по результату работы genbasedir.
&gt; В каталоге после обрабокти появляются файлы .xz и .bz2. Зачем они нужны и
&gt; когда используются?

Они используются когда делается apt-get update .

&gt; Вопрос связан с тем, что на данный момент на
&gt; определенной платформе нет xz и, соответственно, файл xz отсутствует.

Простите, а это где такое?  4.1?

&gt; Но
&gt; насколько я понял он, как и bz2, apt-get не используется.

Как раз используется либо файл .xz, а если его нет .bz2.  Оказывается, несжатый сейчас не используется совсем.  Это ошибка в apt, конечно -- он должен смотреть в несжатый файл если другого нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189109</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-04-07 11:15:41 +0300</bug_when>
    <thetext>Я использую плагин для artifactory чтобы генерировать метаданные. В контейнер помещен genpkglist+поправленный нужным образом genbasedir. В официальном докер-образе используется busybox симлинк на xz, который не работает как архиватор.
Т.е. у меня есть pkglist.classic и pkglist.classic.bz2. При этом все равно скачивается pkglist.classic.
Я правильно понял, что если нет .xz, apt-get использует .bz2, а если и его нет, то незапакованный?

Кстати было бы чудесно, если бы вместо двух полурабочих утилит genpkglist и genbasedir была одна нормальная genpkglist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189110</commentid>
    <comment_count>7</comment_count>
    <who name="Gleb F-Malinovskiy">glebfm</who>
    <bug_when>2020-04-07 11:19:14 +0300</bug_when>
    <thetext>(Ответ для Alexey на комментарий #6)
&gt; Я использую плагин для artifactory чтобы генерировать метаданные. В
&gt; контейнер помещен genpkglist+поправленный нужным образом genbasedir. В
&gt; официальном докер-образе используется busybox симлинк на xz, который не
&gt; работает как архиватор.

Ясно.

&gt; Т.е. у меня есть pkglist.classic и pkglist.classic.bz2.
&gt; При этом все равно
&gt; скачивается pkglist.classic.

Вы уверены, что именно он скачивается? 

&gt; Я правильно понял, что если нет .xz, apt-get использует .bz2, а если и его
&gt; нет, то незапакованный?

Нет, он сейчас только .xz и .bz2 умеет скачивать.

&gt; Кстати было бы чудесно, если бы вместо двух полурабочих утилит genpkglist и
&gt; genbasedir была одна нормальная genpkglist.

Вы ошиблись, они обе полностью рабочие и отлично решают свои задачи.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189120</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-04-07 15:52:47 +0300</bug_when>
    <thetext>&gt; Вы уверены, что именно он скачивается? 
неа

&gt; Вы ошиблись, они обе полностью рабочие и отлично решают свои задачи.

Я не мог ошибиться, я высказывал мнение, а не считал.
Мое мнение, как пользователя этого добра, именно такое.
Если бы я ошибся, то мне бы не пришлось допиливать второе, для использования первого. И это связано не с некорректным или нетипичным использованием, а с другим мною созданным тикетом.
Если есть враппер, то он как минимум не должен лишать того функционала утилиты, вокруг которого этот враппер пляшет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189189</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-04-09 21:32:59 +0300</bug_when>
    <thetext>https://github.com/ktf/apt-rpm/blob/master/tools/genbasedir

Вот тут еще 20 лет назад почти ключ --append был.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189196</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-04-10 09:22:34 +0300</bug_when>
    <thetext>Где можно взять исходники genpkglist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189197</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-04-10 09:35:34 +0300</bug_when>
    <thetext>С вашего позволения

      const char *srpm = headerGetString(h, RPMTAG_SOURCERPM);
      if (srpm == NULL) {
         cerr &lt;&lt; &quot;genpkglist: &quot; &lt;&lt; rpm &lt;&lt; &quot;: invalid binary package&quot; &lt;&lt; endl;
         headerFree(h);
         return 1;
      }
Если я правильно понимаю, то если в пакете нет тэга SOURCERPM выдать сообщение invalid binary package. Мб стоит так и писать, что invalid sourcerpm tag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189198</commentid>
    <comment_count>12</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2020-04-10 11:31:01 +0300</bug_when>
    <thetext>(Ответ для Alexey на комментарий #10)
&gt; Где можно взять исходники genpkglist?

http://git.altlinux.org/gears/a/apt-repo-tools.git?p=apt-repo-tools.git;a=tree;h=refs/heads/sisyphus;hb=sisyphus</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189409</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey">blitzkrieg</who>
    <bug_when>2020-04-22 11:46:55 +0300</bug_when>
    <thetext>Есть ли какая-либо возможность удалять записи из сгенерированного genpkglist листа?
Перегенерировать каждый раз нет возможности.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193768</commentid>
    <comment_count>14</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2020-11-04 17:07:08 +0300</bug_when>
    <thetext>apt-repo-tools-0.7.0-alt1 -&gt; sisyphus:

 Mon Oct 26 2020 Gleb F-Malinovskiy &lt;glebfm@altlinux&gt; 0.7.0-alt1
 - Added new options to patch package index.
 - Added --basedir option to specify base directory name.
 - genbasedir: added support for zstd-compressed package lists.
 - genpkglist, gensrclist:
   + removed --append option;
   + removed --meta option.
 - genpkglist: fixed --cachedir description in usage (ALT#38293).
 - imz@:
   + (.spec) Just added some compiler flags (which don&apos;t change anything) to be
   sure that APT API has not been used wrongly and will not be.  (Namely, to be
   sure that if a method override was intended, it would actually be overriding
   and not hiding a virtual method and that it would be marked &quot;override&quot; for
   future.).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>