LINUX.ORG.RU

Gentoo abi_x86_32

 ,


0

2

В общем, с внедрением мультилиба всё красиво, но приходится прописывать abi_x86_32 на зависимые пакеты. Всё бы хорошо, только там такая гора набралась только из abi_x86_32. Можно как-нибудь упростить это?

Конечно.

ABI_X86="64 32"
в make.conf и все сразу хорошо :3

DeadEye ★★★★★ ()

и что самое раздражающее - перечень пакетов даже скопипастить нормально из выводе emerge нельзя, т.к. там между названиями пакетов ещё куча ненужных строк

Alyssa ()
Ответ на: комментарий от Alyssa

Можно. Ненужные строки отпарсятся, как комменты, и не помешают портежу.

Krieger_Od ★★ ()

Врубай там, где только нужно.
А мне интересно, как собрать только abi_x86_32 версию?

Deleted ()
Ответ на: комментарий от Deleted

Присоединяюсь, самому интересно, пусть теперь и чисто академически.

DeadEye ★★★★★ ()
Ответ на: комментарий от DeadEye

Для Вайна такое приказывает, для dev-qt - нет.

Deleted ()

Можно как-нибудь упростить это?

Я просто установил этот флаг глобально.

no-such-file ★★★★★ ()
Ответ на: комментарий от turtle_bazon

все пакеты - не будет. Все либы с поддержкой multilib - будет

Pinkbyte ★★★★★ ()
Ответ на: комментарий от turtle_bazon

abi_x86_32 есть в основном среди библиотек. Но их много. А время сборки и занимаемое место для них увеличится вдвое. Я бы посоветовал включить только то, что нужно.

equeim ★★ ()
Ответ на: комментарий от equeim

А время сборки и занимаемое место для них увеличится вдвое

А если пытаться разруливать каждую библиотеку отдельно, время сборки увеличится в 4 раза. ТС вот уже плачет. Ну а на занимаемом месте экономить... что там наэкономится, сотня-другая мегабайт - кого это волнует?

Ну если очень хочется, то лучше, мне кажется, установить глобально и добавлять -abi_x86_32 к ненужным жирным пакетам.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)

Уж не ради ли 32-х битного скайпика кочевряжишься?

haku ★★★★★ ()
Ответ на: комментарий от haku

Ради него, скотины. Заменить нечем. Ничего не готово. А менять шило на мыло (на вибер, на телеграм) не хочется.

turtle_bazon ★★★ ()
Последнее исправление: turtle_bazon (всего исправлений: 1)
Ответ на: комментарий от Alyssa

перечень пакетов даже скопипастить нормально из выводе emerge нельзя, т.к. там между названиями пакетов ещё куча ненужных строк

Можно как-то так делать:

emerge -avuDN @world 1>/dev/null 2>1 | grep -v -e "^#" -e "^$"

iVS ★★★★★ ()

Лучше напрячься и выбрать только необходимые для совместимости пересборки, а не лепить для всех. Всё равно это только один раз настраивать, зато экономия будет - это да.

Может кому полезно будет - моя конфигурация. В большинстве случаев минимальный набор библиотек довольно схож.

В системе есть wine и steam, дрова для intel.

app-arch/bzip2  			ABI_X86: 64 32
app-i18n/enca 				ABI_X86: 64 32
dev-libs/expat 				ABI_X86: 64 32
dev-libs/glib 				ABI_X86: 64 32
dev-libs/gmp 				ABI_X86: 64 32
dev-libs/icu 				ABI_X86: 64 32
dev-libs/libffi 			ABI_X86: 64 32
dev-libs/libpthread-stubs 	ABI_X86: 64 32
dev-libs/libtasn1 			ABI_X86: 64 32
dev-libs/lzo 				ABI_X86: 64 32
dev-libs/nettle 			ABI_X86: 64 32
dev-util/pkgconfig  		ABI_X86: 64 32
media-libs/alsa-lib 		ABI_X86: 64 32
media-libs/audiofile  		ABI_X86: 64 32
media-libs/fontconfig 		ABI_X86: 64 32
media-libs/freetype  		ABI_X86: 64 32
media-libs/glu 				ABI_X86: 64 32
media-libs/lcms 			ABI_X86: 64 32
media-libs/libjpeg-turbo 	ABI_X86: 64 32
media-libs/libpng 			ABI_X86: 64 32
media-libs/libpng 			ABI_X86: 64 32
media-libs/libtxc_dxtn 		ABI_X86: 64 32
media-libs/mesa 			ABI_X86: 64 32
media-libs/openal  			ABI_X86: 64 32
net-libs/gnutls  			ABI_X86: 64 32
sys-apps/attr 				ABI_X86: 64 32
sys-apps/util-linux 		ABI_X86: 64 32
sys-devel/gettext 			ABI_X86: 64 32
sys-devel/llvm 				ABI_X86: 64 32
sys-fs/eudev 				ABI_X86: 64 32
sys-libs/ncurses 			ABI_X86: 64 32
sys-libs/zlib 				ABI_X86: 64 32
virtual/glu  				ABI_X86: 64 32
virtual/jpeg 				ABI_X86: 64 32
virtual/libffi 				ABI_X86: 64 32
virtual/libiconv 			ABI_X86: 64 32
virtual/libintl 			ABI_X86: 64 32
virtual/libudev  			ABI_X86: 64 32
virtual/opengl 				ABI_X86: 64 32
virtual/pkgconfig 			ABI_X86: 64 32
x11-libs/libdrm 			ABI_X86: 64 32
x11-libs/libpciaccess 		ABI_X86: 64 32
x11-libs/libva 				ABI_X86: 64 32
x11-libs/libva-intel-driver ABI_X86: 64 32
x11-libs/libva-vdpau-driver ABI_X86: 64 32
x11-libs/libvdpau 			ABI_X86: 64 32
x11-libs/libX11 			ABI_X86: 64 32
x11-libs/libXau 			ABI_X86: 64 32
x11-libs/libxcb 			ABI_X86: 64 32
x11-libs/libXcomposite  	ABI_X86: 64 32
x11-libs/libXcursor 		ABI_X86: 64 32
x11-libs/libXdamage 		ABI_X86: 64 32
x11-libs/libXdmcp 			ABI_X86: 64 32
x11-libs/libXext 			ABI_X86: 64 32
x11-libs/libXfixes 			ABI_X86: 64 32
x11-libs/libXi 				ABI_X86: 64 32
x11-libs/libXrandr  		ABI_X86: 64 32
x11-libs/libXrender 		ABI_X86: 64 32
x11-libs/libxshmfence 		ABI_X86: 64 32
x11-libs/libXxf86vm 		ABI_X86: 64 32
x11-proto/compositeproto  	ABI_X86: 64 32
x11-proto/damageproto 		ABI_X86: 64 32
x11-proto/dri2proto 		ABI_X86: 64 32
x11-proto/dri3proto 		ABI_X86: 64 32
x11-proto/fixesproto  		ABI_X86: 64 32
x11-proto/glproto 			ABI_X86: 64 32
x11-proto/inputproto 		ABI_X86: 64 32
x11-proto/kbproto 			ABI_X86: 64 32
x11-proto/presentproto 		ABI_X86: 64 32
x11-proto/randrproto 		ABI_X86: 64 32
x11-proto/renderproto 		ABI_X86: 64 32
x11-proto/xcb-proto 		ABI_X86: 64 32
x11-proto/xextproto 		ABI_X86: 64 32
x11-proto/xf86bigfontproto 	ABI_X86: 64 32
x11-proto/xf86driproto 		ABI_X86: 64 32
x11-proto/xf86vidmodeproto 	ABI_X86: 64 32
x11-proto/xproto 			ABI_X86: 64 32
Bfgeshka ★★★★★ ()
Ответ на: комментарий от turtle_bazon

Если ты указываешь ABI_X86=«32» в make.conf - это равнозначно включению флага abi_x86_32 у всех пакетов, которые его имеют. То есть - да

Pinkbyte ★★★★★ ()

Было бы хорошо, если бы можно было бы собрать библиотеку с abi_x86_32 отдельным набором юзом.

ymuv ★★★★ ()
Ответ на: комментарий от Deleted

А мне интересно, как собрать только abi_x86_32 версию?

DeadEye
Добавить для нужного пакета в package.use флаг -abi_x86_64, очевидно же.

tiandrey ★★★★★ ()
Ответ на: комментарий от Deleted

Смотри внимательно.

ABI_X86="(64) -32 (-x32)"
Если какой-то юз-флаг в скобочках, это значит, что он либо замаскирован (если выключен, как x32), либо принудительно включен (как 64). Соответственно, надо либо размаскировать, добавив в package.use.mask с минусом, либо отменить принудительное включение, добавив в package.use.force с минусом.

То бишь, чтобы такая магия сработала в данном случае, надо сделать такой файл:

echo -abi_x86_64 >> /etc/portage/profile/package.use.force
Подробнее про это можно почитать в man 5 portage.

tiandrey ★★★★★ ()
Последнее исправление: tiandrey (всего исправлений: 1)
Ответ на: комментарий от Deleted

Тьфу ты, да, попутал.

Но лучше это делать в package.use.force и указывать конкретный пакет.

tiandrey ★★★★★ ()
Ответ на: комментарий от iVS

Да поправят меня отцы, но если включен парамент «а» для емерджа, то греп не сработает, пока процесс емерджа думает, что свою работу не закончил.
Ну или это магия грепа, с wgetom в свое время ключ «а» не работал. Вроде.

Waldo-de-Kard ★★ ()
Ответ на: комментарий от Pinkbyte

А почему бы не сделать финт ушами - системный package.use в профиле с включением abi_x86_32 нужным скайпу тому же зависимым пакетам? Сила генты что пара прямых строчек дает профит, а не простыня копипасты, которая кочует от компа к компу без изменений.

Waldo-de-Kard ★★ ()
Ответ на: комментарий от Waldo-de-Kard

Возможно... Тогда ставим вместо -a опцию -p.

iVS ★★★★★ ()
Ответ на: комментарий от tiandrey

есть опасение, что это поломает рассчёт зависимостей. девелоперы не особо заботятся о не-дефолтных комбинациях флагов

anonymous ()
Ответ на: комментарий от Waldo-de-Kard

А почему бы не сделать финт ушами - системный package.use в профиле

В каком профиле? Предлагаешь создать ОТДЕЛЬНЫЙ профиль для пользователей скайпа?

Или ты думаешь, что скайп установлен на каждом десктопе?

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Waldo-de-Kard

Сила генты что пара прямых строчек дает профит, а не простыня копипасты, которая кочует от компа к компу без изменений.

Сила генты - в настраиваемости. То, о чём говоришь - этому место максимум на wiki, но никак не в package.use.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от anonymous

Плюсую данного анонимуса. Пакет, ничего не знающий о мультилиб и прописывающий зависимость вида от библиотеки вида category/package (без MULTILIB_USEDEP) ожидает что при сборке данной библиотеки будет собрана как минимум версия с DEFAULT_ABI выбранного профиля. Если её не окажется - сборку ждёт фэйл.

Pinkbyte ★★★★★ ()

abi_x86_32 - бессмысленная хрень, оно только в теории красиво выглядит, юзай x86 и не парься

armbox ()
Ответ на: комментарий от anonymous

Ну как бы это уже вина девелоперов, которые не продумали все варианты. Тут спросили, можно ли сделать, я показал, как можно сделать.

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