Bug 38295

Summary: genpkglist --append не проверяет наличие пакета в индексе
Product: Sisyphus Reporter: Alexey <blitzkrieg>
Component: apt-repo-toolsAssignee: Gleb F-Malinovskiy <glebfm>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: at, glebfm, ldv
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Alexey 2020-03-28 17:26:27 MSK
При указании утилите ключа --apend колличество записей в базе pkglist увеличивается каждый раз, когда ее выполнишь на то кол-во пакетов, которое в данный момент находится в репо.
При этом /var/cache/apt/genpkglist/*md5cache не меняется.
Логично было бы перед добавлением в бд, добавить проверку существования такой записи там (я там даже чексам не нашел, который есть в rpm в centos). Как, к примеру, обвязать это хозяйтсов скриптом, если нет в бд признака уникальности?
Comment 1 Alexey 2020-03-28 17:31:57 MSK
Например apt-ftparchive из ubuntu создает бд и даже в отсутствие файлов генерирует правильный метафайл.
Как к примеру нормально без лишних накладных расходов сгенерить этот файл, если место генерации не совпадает с местом хранения.
Comment 2 Gleb F-Malinovskiy 2020-03-30 13:58:06 MSK
(Ответ для Alexey на комментарий #0)
> Логично было бы перед добавлением в бд, добавить проверку существования
> такой записи там

patches are welcome.

От себя добавлю, что мне вообще не нравится --append потому что мне хотелось бы после модификации получать индекс идентичный тому, который получился бы при полной генерации всего индекса заново.

В любом случае, в genpkglist скоро появится новый режим --patch, который позволит передать список пакетов, которые нужно убрать из индекса и список пакетов, которые нужно добавить.

(Ответ для Alexey на комментарий #0)
> Как, к примеру, обвязать это хозяйтсов скриптом

Вы можете сделать симлинк-копию (скажем, в tmpfs) той части репозитория, которую вы хотите добавить в индекс и использовать --append в том виде в котором он есть.
Comment 3 Alexey 2020-03-30 17:56:50 MSK
Вы называете индексом файл "pkglist.classic" ? Или речь о параметре index?
Comment 4 Gleb F-Malinovskiy 2020-03-30 18:10:17 MSK
(Ответ для Alexey на комментарий #3)
> Вы называете индексом файл "pkglist.classic" ?

Да, и не classic тоже.