[devel] changelogs for apt repo

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Май 19 01:35:58 MSD 2008


On Sun, May 18, 2008 at 01:26:20PM +0400, Alexey Gladkov wrote:
> Alexey Tourbin wrote:
> >Я сделал предварительную реализацию 
> >сортировки по %{SOURCERPM}.
> >Результаты теперь такие:
> 
> У меня вопрос: изменив сортировку по 
> алфавиту на сортировку по %{SOURCERPM} ты не 
> ухудшил скорость поиска `apt-cache search` ?

А как могла скорость ухудшиться?  Однако появилась особенность:
в выдаче 'apt-cache search' найденные пакеты отсортированы не по
названию, а по %{SOURCERPM}.

(Старое поведение)
$ apt-cache search apt |awk '$1~/apt\>/'
apt - Debian's Advanced Packaging Tool with RPM support
apt-conf-desktop - A set of apt configuration files for ALT Linux Desktop
apt-conf-server - A set of apt configuration files for ALT Linux Server
apt-conf-sisyphus - A set of apt configuration files for ALT Linux Sisyphus
apt-rsync - rsync method support for APT
apt-utils - Utilities to create APT repositaries (the indices)
capt - CAPT Linux driver
kio-apt - An apt:/ protocol in konqueror
libapt - APT's core libraries
libapt-devel - Development files and documentation for APT's core libs
apt-log - Log support for APT
apt-scripts - Lua scripts for APT
docs-alterator_apt-kirill - Extra packages
docs-packages_apt - Install and remove programs (packages)
$ 

(Новое поведение)
$ ./build/aptbox/apt-cache search apt |awk '$1~/apt\>/'
apt - Debian's Advanced Packaging Tool with RPM support
apt-rsync - rsync method support for APT
apt-utils - Utilities to create APT repositaries (the indices)
libapt - APT's core libraries
libapt-devel - Development files and documentation for APT's core libs
apt-conf-desktop - A set of apt configuration files for ALT Linux Desktop
apt-conf-server - A set of apt configuration files for ALT Linux Server
apt-conf-sisyphus - A set of apt configuration files for ALT Linux Sisyphus
capt - CAPT Linux driver
kio-apt - An apt:/ protocol in konqueror
apt-log - Log support for APT
apt-scripts - Lua scripts for APT
docs-alterator_apt-kirill - Extra packages
docs-packages_apt - Install and remove programs (packages)
$ 

Теперь libapt* "примыкает" к пакетам apt*.  В принципе это изменение
нельзя однозначно квалифицировать как нежелательное или неправильное,
потому что нарушение алфавитного порядка позволяет нам догадаться,
что речь идёт о подпакетах, собранных из одного src.rpm пакета
(группировку по src.rpm при поиске можно даже считать интересной фичей,
просто это информация здесь не выражена явно).

К тому же на самом деле сортировка действует только в пределах
репозитария, так что при переходе к noarch пакеты опять начинаются
с буквы "a".

> Не нужно ли ввести корректировку 
> алгоритма поиска (apt-cache search), чтобы он 
> искал только в первом changelog'е при условии 
> что поле %{SOURCERPM} у нескольких пакетов в 
> pkglist совпадает?

Наверное, нужно.  То есть при совпадении по changelog'у следовало
бы игнорировать все последующие (adjacent) пакеты с совпадающим SOURCERPM.
Но я боюсь что жесткая структурная декомпозиция снизу вверх, то есть
поиск идёт per header, и протощить нужную информацию будет сложновато.

Точнее, не знаю, нужно или не нужно.
Я пока ещё не добавил поиск по changelog'ам.

> Вообще, очень неприятно что changelog'и 
> дублируются в этой реализации.

Но если дубли сгруппировать, то они очень хорошо сжимаются.
Если же выносить дублирующуюся информацию в отдельное место,
то, прежде всего, придётся распустить Header как структуру;
а это дополнительный оверхед на bookkeeping + проверка целостности.

Попробуй распустить хедер на два "подхедера", сразу встанет вопрос,
соответствует ли первый подхедер второму или нет.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080519/76653cae/attachment-0002.bin>


Подробная информация о списке рассылки Devel