[devel] "условно-нативная" сборка на x86_64 с использованием x86_32
Alexey I. Froloff
raorn at altlinux.org
Wed Sep 16 23:29:30 UTC 2009
Репозиторий x86_32 годится для библиотек (которые вытаскиваются
по зависимостям), но совершенно не подходит для пользовательских
приложений, особенно если в пакете есть %post скрипты.
Чтобы arepo смог создать i586-%name, пакет %name должен быть и в
i586 и в x86_64 репозиториях. Пакет i586-%name имеет зависимость
на %name, обратной зависимости нет. При создании i586-%name,
%post скрипты в него не копируются.
Это создаёт проблемы при установке пакетов типа grub или wine:
Чтобы поставить i586 пакет, нужно каким-то образом сказать apt'у
где его взять. Один из вариантов скачать руками, второй вариант
подключить архитектуру i586. В первом варианте пользователь
должен сам скачивать все необходимые пакеты нужных версий (wine,
libwine, libwine-gl и т.д.) и нет возможности автоматического
обновления. Во втором варианте apt может пойти ставить какие
попало пакеты из i586 архитектуры.
Чтобы arepo смог обработать grub (или wine), вместо ExclusiveArch
на x86_64 надо делать "пустышки". Однако непонятно что делать с
%post скриптами. Сначала пакет не пройдёт тест на установку
потому как запускать из %post нечего. Даже при подключенном
x86_32 установка пакета grub (или wine) ничего не даст - пакет
пустой, а payload в виде i586-grub (или i586-wine) придётся
всё равно доставлять руками.
С другой стороны эти пакеты поддерживают "условно-нативную"
сборку на x86_64 с опцией -m32, но в этом случае им нужны
i586-*-devel при сборке и подключенный x86_32 во время всех
проверок и тестовых пересборок. Также после сборки каждого
пакета необходимо обновлять x86_32 репозитарий хашера, используя
только что собранные пакеты (на эту тему даже висит баг за
номером 16265, патч в котором устарел чуть более чем наполовину).
Таким образом пакеты как-то должны уметь требовать i586-*-devel
на x86_64 (что уже не проблема при использовании %ifarch вокруг
BuildRequires и сборке из git), сборочница должна давать
подключать архитектуру x86_32 при некоторых условиях, arepo
должен уметь сгенерить x86_32 для небольшого "дополнительного"
репозитария, а hasher должен уметь использовать архитектуру
x86_32 с своём repo.
Тогда можно будет сказать, что у нас есть "беарч".
--
Regards,
Sir Raorn.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20090917/ce77451b/attachment.bin>
More information about the Devel
mailing list