[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