Bug 16266 - Трансляция зависимостей у i586-*
Summary: Трансляция зависимостей у i586-*
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: arepo (show other bugs)
Version: unstable
Hardware: all Linux
: P2 enhancement
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-04 16:26 MSD by Sir Raorn
Modified: 2011-05-25 11:57 MSK (History)
7 users (show)

See Also:


Attachments
arepo.py patch to resolve package names thus saving apt from insanity (1.53 KB, patch)
2009-11-17 16:00 MSK, Michael Shigorin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sir Raorn 2008-07-04 16:26:49 MSD
Сразу пример:

# rpm -qR fglrx_glx
xorg-x11-server >= 1.1.99.903-alt3
xorg-x11-extensions-glx >= 1.1.0
# rpm -qR i586-fglrx_glx
fglrx_glx = 8.50.1-alt1.biarch1

А i586-fglrx_glx хорошо бы чтобы ещё зависел от i586-xorg-x11-extensions-glx.  А переименованый i586-xorg-extensions-glx ещё бы и предоставлял provides на i586-xorg-x11-extensions-glx.

Начал писать алгоритм автомата, но сразу понял что дело гиблое.  Нам хотя бы руками Requires/Provides выставлть было бы неплохо...
Comment 1 avm 2008-08-26 16:28:45 MSD
Если пакеты A и B присутствуют в конфиге, и A зависит от B, то i586-A должен в результате зависеть от i586-B. Про это был коммит daf96e, он вроде даже работал.

Руками дописывать — ну добавлю, пожалуй, хак after-tags.
Comment 2 Michael Shigorin 2009-11-17 16:00:58 MSK
Created attachment 4066 [details]
arepo.py patch to resolve package names thus saving apt from insanity

Disclaimer: я (пока?) не являюсь пользователем arepo и могу опираться только на слова других людей, в т.ч. читанное в рассылках.

--- со слов sr@ ---
У arepo к проблеме рассинхронизации добавляется проблема
"невозможности провести апгрейд".

---
<sr>
[sr@sr RPMS.classic]$ rpm -R -p i586-libX11-1.2-alt1.i586.rpm
libX11 = 3:1.2-alt1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.2)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.2)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libdl.so.2(GLIBC_2.0)
libdl.so.2(GLIBC_2.1)
libxcb.so.1
rtld(GNU_HASH)
rpmlib(PayloadIsLzma) <= 4.4.2-1
[sr@sr RPMS.classic]$ rpm -R -p i586-libxcb-1.2-alt2.i586.rpm
libxcb = 1.2-alt2
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
libXau.so.6
libXdmcp.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.3.2)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
rtld(GNU_HASH)
rpmlib(PayloadIsLzma) <= 4.4.2-1

[sr@sr RPMS.classic]$ rpm -R -p i586-libX11-1.2-alt1.i586.rpm
libX11 = 3:1.2-alt1
i586-glibc-core
i586-libxcb
[sr@sr RPMS.classic]$ rpm -R -p i586-libxcb-1.2-alt2.i586.rpm
libxcb = 1.2-alt2
i586-libXau
i586-libXdmcp
i586-glibc-core

Правильно я понимаю, что так была бы рабочая конфигурация для `apt-get update`?
                
<eostapets> Ну не то, чтобы рабочая, но при обновлении не клинило бы...  
<sr> А что нерабочего было бы?
<eostapets> То, что собрать пакеты с такими зависимостями без ошибок очень и очень сложно...
<sr> Разумное допущение, если libnameX.so.1 требует libnameY.so.2, которая провайдится пакетом libnameY, то подразумевается, что этот пакет для multilib будет называться i586-libnameY. И все. Проблема, если перед этим был пакет libnameY1 и i586-libnameY1, и текущий libnameY замещает libnameY1
<eostapets> В момент паковки libnameX.so.1 мы не знаем, в каком пакете находится 64-bit libnameY.so.2 и соотвественно какое будет имя 32-bit пакета.
<sr> мы пакуем 32bit-пакет, в этот момент в хешере установлен пакет с libnameY.so.2, т.е. ldd libnameX.so.1 дает список list, 
rpmlist=`for i in $list; do rpm -qf $i; done|sort|uniq`
reqlist=`for i in rpmlist; do echo i586-$i; done`
---
Comment 3 Michael Shigorin 2009-11-17 16:02:04 MSK
Патч втащил к себе в arepo.git, сейчас поправлю насчёт /tmp и пушну.
Comment 4 Michael Shigorin 2009-11-17 16:35:54 MSK
http://git.altlinux.org/people/mike/packages/?p=arepo.git
Comment 5 Michael Shigorin 2009-12-05 15:47:31 MSK
2 rider: вот этот патч тогда показывал.
Comment 6 avm 2010-03-22 01:02:22 MSK
Патч втянул, хак after-tags добавил.
Comment 7 Michael Shigorin 2010-03-22 01:05:40 MSK
Спасибо!
Comment 8 ildar 2011-05-25 11:37:59 MSK
Сегодня впервые воспользовался x86_32. Результат удивил: при установке пакетов i586-* по зависимостям не вытянулось даже i586-glibc-core!!!

Предлагаю переоткрыть баг.
Comment 9 Michael Shigorin 2011-05-25 11:57:22 MSK
Стоит ещё проверить патч из bug #25192; возможно, на production сейчас ещё более старый arepo.