LINUX.ORG.RU

Как собрать 32-битный пакет в 64-битной Suse?


0

0

Как можно собрать 32-битный .rpm пакет из .src.rpm под 64-битной openSuse 10.2? Я объясню, зачем мне это нужно, на примере freetype2.

Я хочу пересобрать freetype2.src.rpm с поддержкой субпиксельного сглаживания, поскольку дефолтные пакеты в Suse 10.2 собраны без нее. Система 64-битная, но собрать требуется не только x86_64 пакет, но и версию для i586, поскольку она нужна для 32-битных приложений вроде Firefox.

Пакет для x86_64 собирается на ура командой rpmbuild --rebuild --with subpixel freetype2.src.rpm. Он содержит библиотеку libfreetype.so.6()(64bit).

Проблемы взникают с 32-битной версией. Порывшись в гугле, я пытался собрать ее командами rpmbuild --rebuild --with subpixel --target=i586 freetype2.src.rpm или linux32 rpmbuild --rebuild --with subpixel freetype2.src.rpm.

В обоих случаях я получил на выходе пакет freetype2.i586.rpm, который - зараза! - содержит 64-битную библиотеку libfreetype.so.6()(64bit), вместо 32-битной libfreetype.so.6.

Как мне корректно собрать 32-битный пакет? Дело даже не столько во freetype2, сколько в методологии, которую я хотел бы понимать. Спасибо!

Вот так прокатило.

CC='gcc -m32' CXX='g++ -m32' linux32 rpmbuild --rebuild --target=i686 --with subpixel freetype2.src.rpm

Странно, что rpmbuild не передает опцию -m32 компилятору. Баг в rpm/rpmbuild?

SlonoInquisitor
() автор топика

Я для этого использую build: http://www.novell.com/coolsolutions/feature/11793.html и http://en.opensuse.org/SUSE_Build_Tutorial

К сожалению, он плохо документирован и я не знаю, как собирать с его помощью пакеты -32bit. А вообще 32х-битные пакеты собираются следующим образом:

mkdir /tmp/test cp freetype2xxx.src.rpm /tmp/test unrpm freetype2xxx.src.rpm

Правим .spec как надо, затем нужно как-то подключить 32ъ-битные пакеты, я, например, монтирую dvd в /mnt, наконец делаем:

build --arch i586 --rpms /mnt/suse

Получаем i586 пакет. Как собрать 32bit пакет, спрошу в рассылке opensuse-packaging, если интересно, следите ;)

PS: Выложить собранный i586 пакет в Build Service не могу, если нужно гооврите, куда.

i
()

Форматирование забыл :(

Я для этого использую build:
http://www.novell.com/coolsolutions/feature/11793.html и
http://en.opensuse.org/SUSE_Build_Tutorial

К сожалению, он плохо документирован и я не знаю, как собирать с его помощью пакеты -32bit. А вообще 32х-битные пакеты собираются следующим образом:

mkdir /tmp/test
cp freetype2xxx.src.rpm /tmp/test
unrpm freetype2xxx.src.rpm

Правим .spec как надо, затем нужно как-то подключить 32ъ-битные пакеты, я, например, монтирую dvd в /mnt, наконец делаем:

build --arch i586 --rpms /mnt/suse 

Получаем i586 пакет. Как собрать 32bit пакет, спрошу в рассылке opensuse-packaging, если интересно, следите ;)

PS: Выложить собранный i586 пакет в Build Service не могу, если нужно гооврите, куда.

i
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.