[devel] Q: second class packages in Sisyphus

Alexey Tourbin at на altlinux.ru
Пн Июл 12 19:17:03 UTC 2010


On Mon, Jul 12, 2010 at 08:59:06PM +0400, Dmitry V. Levin wrote:
> On Mon, Jul 12, 2010 at 08:54:50PM +0400, Alexey Tourbin wrote:
> > On Sun, Jul 11, 2010 at 01:26:51PM +0400, Dmitry V. Levin wrote:
> > > On Sun, Jul 11, 2010 at 12:33:57PM +0400, Dmitry V. Levin wrote:
> > > > gb-task-repo-elfsym был обманут наличием в Сизифе пакета libtiff3:
> > > 
> > > Налицо проблема: второсортные пакеты, которые некоторые мейнтейнеры хотят
> > > видеть в Сизифе для обеспечения обратной совместимости с третьесортными
> > > пакетами, которых в Сизифе нет, мешают полноценно поддерживать основные
> > > пакеты.
> > > 
> > > Я вижу два потенциальных решения проблемы:
> > > - упразднить все глобальные проверки;
> > 
> > А чем плохи глобальные проверки (такие как gb-task-repo-elfsym),
> > кроме того, что они могут оказаться недостаточны?
> 
> Они создают иллюзию почвы под ногами.  Чем больше в Сизифе второсортных
> пакетов, тем более зыбкая почва.

У проверок elfsym и unmets есть два интресных свойства.
1) Они не дают ложных срабатываний (не считая проприетарных драйверов).
Иначе можно сказать, что они проверяют необходимые условия.  Увы, эти
необходимые условия довольно слабые.
2) Они работают быстро.

Эти два свойства в сумме означают, что эти проверки могут работать
совершенно автоматически, проверять за ними каждый раз не надо,
и "хуже не будет".

Можно усовершенствовать проверку elfsym, добивив "локальные" условия -
засчитывать разрешимость только по слинкованным библиотекам.  Но это
сразу открывает a can of wo^W corner cases, начиная с того, что нужно
ассоциировать файлы и сонеймы (см. warning чуть ниже), и кончая тем,
что такая проверка будет зарубать недолинкованные плагины, а в схеме
c -rdynamic executable недолинкованные плагины будут неизбежны (примеры:
/bin/zsh, /usr/bin/Xorg).  И, кроме того, ELF всё же разрешает
транзитивное разрешение символов.  И, кроме того, при большом желании
в ELF можно зашить DT_NEEDED = libc-2.10.so вместо libc.so.6.

Я уже когда-то рисовал такой скрипт - qa-robot/linkage_problems.
Жду когда он что-нибудь покажет.  Пока вижу только warnings.

[at на people at]$ workdir=$PWD linkage_problems -p /ALT/Sisyphus/files/x86_64/RPMS/
warning: libbfl-devel-0.6.1-alt1.svn20090324.x86_64.rpm: unmapped sonames:
liborocos-bfl.so
warning: libmediainfo-devel-0.7.28-alt4.x86_64.rpm: unmapped sonames:
libmediainfo.so
warning: libmnogosearch-3.3.8-alt1.x86_64.rpm: unmapped sonames:
libmnogosearch-3.3.so
warning: libnumpy-devel-2.0.0-alt1.svn20100607.x86_64.rpm: unmapped sonames:
libnpymath.so
warning: libpano13-devel-2.9.17-alt0.beta1.x86_64.rpm: unmapped sonames:
libpano13.so
warning: libpastix-2200-alt8.x86_64.rpm: multimapped sonames:
libpastix_murge.so.0    /usr/lib/pastix/lib/libpastix_murge.so.0.22.00
libpastix_murge.so.0    /usr/lib64/libpastix_murge.so.0.22.00
warning: libtbb-devel-30_20100310-alt2.x86_64.rpm: unmapped sonames:
libtbb.so
libtbbmalloc.so
warning: libwebkit-1.2.1-alt1.x86_64.rpm: unmapped sonames:
libwebkit-1.0.so.2.13.0
warning: libzen-devel-0.4.11-alt2.x86_64.rpm: unmapped sonames:
libzen.so
warning: skrooge-0.5.3-alt1.x86_64.rpm: multimapped sonames:
libskgbankgui.so.1      /usr/lib64/kde4/plugins/designer/libskgbankgui.so.0.5.3
libskgbankgui.so.1      /usr/lib64/libskgbankgui.so.0.5.3
libskgbasegui.so.1      /usr/lib64/kde4/plugins/designer/libskgbasegui.so.0.5.3
libskgbasegui.so.1      /usr/lib64/libskgbasegui.so.0.5.3

Короче такой скрипт уже нельзя заряжать автоматически - скорее,
он дает пищу для QA.

А если взять проверку unmets, то вместо неё нужно проверять
устанавливаемсть каждого пакета в репозитории (точнее, чтобы
устанавливаемсть пакетов не ухудшалось).  Но это, во-первых, долго будет
работать.  А во-вторых, в апте есть corner cases при выборе пакетов
(типа tetex vs texlive).

В общем смысл примерно такой, что глобальные проверки на данном этапе -
это не самое глупое, что удалось придумать.  Увы, мы на зыбкой почве.
Но иногда страховка срабатывает, а иногда - нет.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20100712/5f1d2133/attachment-0001.bin>


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