Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Multilib-overlay dead?
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Unsupported Software
View previous topic :: View next topic  
Author Message
Carnildo
Guru
Guru


Joined: 17 Jun 2004
Posts: 586

PostPosted: Tue May 31, 2011 9:41 pm    Post subject: Multilib-overlay dead? Reply with quote

Does anyone know if the multilib overlay is still being supported? It doesn't seem to have been updated in months: I'm seeing a number of conflicts where one ebuild requires a multilib version of a package, while another requires a newer version than multilib-overlay offers.
Back to top
View user's profile Send private message
alex.blackbit
Advocate
Advocate


Joined: 26 Jul 2005
Posts: 2397

PostPosted: Thu Jun 02, 2011 6:57 am    Post subject: Reply with quote

Carnildo,

what branch of the multilib overlay are you using ? i assume the main branch.
you are right, it hasn't been updated in quite a while.
please try out the portage-multilib branch, it does not suffer from the same problems.
Back to top
View user's profile Send private message
Tommy[D]
Developer
Developer


Joined: 13 Feb 2005
Posts: 66

PostPosted: Thu Jun 02, 2011 8:38 am    Post subject: Reply with quote

I will just extend the answer of alex.blackbit a bit, also he has said the main point. The multilib overlay has 2 branches. The master branch, which is the first created branch, contains modified ebuilds and an additional eclass to support installation for x86. That branch is mostly not maintained nor supported, but is the only way, how users of other package managers like pkgcore or paludis could use this overlay.

The second branch is the portage-multilib branch. It contains a modified portage, which adds crosscompile support internally, so needs no modified ebuilds or eclasses. The branch and modified portage is still maintained and supported by me and still works fine. Most issues you get here are from build system not respecting CFLAGS, LDFLAGS or other environment parts.

For quicker communication, you can also join #gentoo-multilib-overlay on irc.freenode.net to talk with some users of this overlay (and me, if i am around).

A quick guide to switch to multilib-portage is in the topic there, it is this: http://github.com/sjnewbury/multilib-overlay/tree/portage-multilib/doc
The initial switch may be a bit harder, since you have to work around circular deps (like in every case, where you create a system from scratch), but afterwords works pretty fine.
Back to top
View user's profile Send private message
Carnildo
Guru
Guru


Joined: 17 Jun 2004
Posts: 586

PostPosted: Fri Jun 03, 2011 8:24 am    Post subject: Reply with quote

I just tried switching branches, and it's not working. If I try "emerge --pretend --emptytree world", I get the following:

Code:
These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "sci-misc/qcad-parts".
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

emerge: there are no ebuilds to satisfy "app-cdr/kiso".
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

emerge: there are no ebuilds to satisfy "www-plugins/mplayerplug-in".
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

emerge: there are no ebuilds built with USE flags to satisfy ">=sys-apps/util-linux-2.16[lib32,multilib_abi_amd64,multilib_abi_x86?]".
!!! One of the following packages is required to complete your request:
- sys-apps/util-linux-2.19.1 (Missing IUSE: lib32)
- sys-apps/util-linux-2.18-r1 (Missing IUSE: lib32)
- sys-apps/util-linux-2.17.2 (Missing IUSE: lib32)
(dependency required by "x11-libs/libSM-1.2.0" [installed])
(dependency required by "x11-libs/libXt-1.1.1" [ebuild])
(dependency required by "x11-libs/libXmu-1.1.0" [ebuild])
(dependency required by "x11-apps/xmag-1.0.4" [ebuild])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])


If I try emerging a single package (say, zlib), I get the following after the package has been installed:

Code:
 * ERROR: sys-libs/zlib-1.2.5-r2 failed (postrm phase):
 *   Could not determine your profile ABI(s).  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package or your profile does not set DEFAULT_ABI.
 *
 * Call stack:
 *     ebuild.sh, line 2594:  Called ebuild_main
 *     ebuild.sh, line 2370:  Called get_abi_order
 *   environment, line 1855:  Called die
 * The specific snippet of code:
 *           die "Could not determine your profile ABI(s).  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package or your profile does not set DEFAULT_ABI.";


Any ideas?
Back to top
View user's profile Send private message
ohnobinki
n00b
n00b


Joined: 04 Nov 2004
Posts: 8
Location: Michigan, United States

PostPosted: Fri Jun 03, 2011 7:08 pm    Post subject: Reply with quote

For the first error message and to ease the pain of moving from the eclass implementation to portage-multilib, I think you should try running the script layman/multilib/bin/switch_lib32_to_multilib_abi (found in the overlay). This will avoid portage-multilib trying to recompile every single ebuild for which you already have a 32-bit version installed, avoiding some of the circular-dep mess.

I think that the postrm failure is supposed to be harmless. I don't remember exactly why it happens, but I get it occasionally too for packages which have not yet been upgraded since portage-multilib switched from using `lib32' to `multilib_abi_x86' to request a 32-bit build.
Back to top
View user's profile Send private message
Carnildo
Guru
Guru


Joined: 17 Jun 2004
Posts: 586

PostPosted: Fri Jun 03, 2011 8:28 pm    Post subject: Reply with quote

ohnobinki wrote:
For the first error message and to ease the pain of moving from the eclass implementation to portage-multilib, I think you should try running the script layman/multilib/bin/switch_lib32_to_multilib_abi (found in the overlay). This will avoid portage-multilib trying to recompile every single ebuild for which you already have a 32-bit version installed, avoiding some of the circular-dep mess.

I ran the script, but I'm still getting the error message. In this particular case, re-emerging libSM got rid of the error message, but I'm now seeing a similar one for libxcb required by libXau. Isn't "--emptytree" supposed to pretend I don't have any software installed whatsoever, or is there a "--reallyemptytree" parameter that I'm missing?

Quote:
I think that the postrm failure is supposed to be harmless. I don't remember exactly why it happens, but I get it occasionally too for packages which have not yet been upgraded since portage-multilib switched from using `lib32' to `multilib_abi_x86' to request a 32-bit build.

It may be harmless, but so far I'm four for four on seeing that. Having to issue an "emerge --resume" after every singe one of the lib32 packages I've got installed is going to take a very long time.
Back to top
View user's profile Send private message
ohnobinki
n00b
n00b


Joined: 04 Nov 2004
Posts: 8
Location: Michigan, United States

PostPosted: Sat Jun 04, 2011 4:22 pm    Post subject: Reply with quote

Carnildo wrote:

ohnobinki wrote:
I think that the postrm failure is supposed to be harmless. I don't remember exactly why it happens, but I get it occasionally too for packages which have not yet been upgraded since portage-multilib switched from using `lib32' to `multilib_abi_x86' to request a 32-bit build.

It may be harmless, but so far I'm four for four on seeing that. Having to issue an "emerge --resume" after every singe one of the lib32 packages I've got installed is going to take a very long time.


Well, I looked into why this was happening for certain packages on my system. It turns out that the bin/switch_lib32_to_multilib_abi and bin/add_multilib_abi were touching the USE and IUSE database keys which portage uses for dependency calculation but didn't edit the USE and IUSE envvars stored in environment*.bz2 files which ebuilds source before running pkg_postrm(). I tested that the following referenced script works on my system, could you try it out and see if this fixes the issue on your system?

Be sure to backup your /var/db/pkg first, but then just grab http://ohnopub.net/~ohnobinki/gentoo/portage-multilib/add_multilib_abi-r1 and then run it as root. After that these pkg_postrm() dies should hopefully stop... ;-). If this script works for you, then maybe the existing bin/add_multilib_abi and bin/switch_lib32_to_multilib_abi can be replaced with it.
Back to top
View user's profile Send private message
Carnildo
Guru
Guru


Joined: 17 Jun 2004
Posts: 586

PostPosted: Sun Jun 05, 2011 1:43 am    Post subject: Reply with quote

The new script appears to have fixed both the pkg_postrm errors and the emerge --emptytree problem.
Back to top
View user's profile Send private message
hedmo
l33t
l33t


Joined: 29 Aug 2009
Posts: 840
Location: halmstad

PostPosted: Sun Jun 05, 2011 7:12 am    Post subject: Reply with quote

hi guys

i am on this to.my problem starts at

rm /etc/make.profile


i did not check the target of /etc/make.profile :oops: so where is it :?:

next

echo /path/to/current/profile >> /etc/make.profile/parent

i dont know /path/to/current/profile .the only thing i know about profile is at the install of gentoo you "can" set a profile
via eselect profile

mybox multilib # eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/10.0 *
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/desktop/gnome
[4] default/linux/amd64/10.0/desktop/kde
[5] default/linux/amd64/10.0/developer
[6] default/linux/amd64/10.0/no-multilib
[7] default/linux/amd64/10.0/server
[8] hardened/linux/amd64
[9] hardened/linux/amd64/selinux
[10] hardened/linux/amd64/no-multilib
[11] hardened/linux/amd64/no-multilib/selinux
[12] selinux/2007.0/amd64
[13] selinux/2007.0/amd64/hardened
[14] selinux/v2refpolicy/amd64
[15] selinux/v2refpolicy/amd64/desktop
[16] selinux/v2refpolicy/amd64/developer
[17] selinux/v2refpolicy/amd64/hardened
[18] selinux/v2refpolicy/amd64/server
mybox multilib #


the problems so far is :


emerge: there are no ebuilds built with USE flags to satisfy "dev-libs/atk[multilib_abi_x86]".
!!! One of the following packages is required to complete your request:
- dev-libs/atk-1.32.0-r1 (Missing IUSE: multilib_abi_x86)
- dev-libs/atk-1.32.0 (Missing IUSE: multilib_abi_x86)
(dependency required by "app-emulation/emul-linux-x86-gtklibs-99999999[-nodep]" [ebuild])
(dependency required by "@preserved-rebuild" [argument])
Back to top
View user's profile Send private message
ohnobinki
n00b
n00b


Joined: 04 Nov 2004
Posts: 8
Location: Michigan, United States

PostPosted: Sun Jun 05, 2011 6:53 pm    Post subject: Reply with quote

hedmo wrote:

i did not check the target of /etc/make.profile :oops: so where is it :?:

next

echo /path/to/current/profile >> /etc/make.profile/parent

i dont know /path/to/current/profile .the only thing i know about profile is at the install of gentoo you "can" set a profile
via eselect profile

mybox multilib # eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/10.0 *


Just take the output of eselect profile show, or from this eselect profile list, and prepend PORTDIR to it. For your case:
Code:
$ echo $(portageq portdir)/default/linux/amd64/10.0
/usr/portage/default/linux/amd64/10.0


hedmo wrote:

emerge: there are no ebuilds built with USE flags to satisfy "dev-libs/atk[multilib_abi_x86]".
!!! One of the following packages is required to complete your request:
- dev-libs/atk-1.32.0-r1 (Missing IUSE: multilib_abi_x86)
- dev-libs/atk-1.32.0 (Missing IUSE: multilib_abi_x86)
(dependency required by "app-emulation/emul-linux-x86-gtklibs-99999999[-nodep]" [ebuild])
(dependency required by "@preserved-rebuild" [argument])


You must choose one of two methods to fix this problem. The first method (which I use) is to globally enable the x86 ABI by setting
Code:
MULTILIB_ABI="amd64 x86"

in make.conf. This will fix this portage error but throw you into the situation of having many, many dependency loops to fix, which is done with just playing around with USE a little bit and some
Code:
emerge --nodeps -1v {glibc,gcc,<other problematic packages>}
.

The other option is to only enable the x86 ABI for the required libs. In this case to fix this error, you would need to add the line
Code:
dev-libs/atk multilib_abi_x86

to /etc/portage/package.use. After doing this, you will end up in turn needing to enable the multilib_abi_x86 useflag (to request 32-bit installation) for other packages too. This can be automated in a traditional way using the autounmask package (or perhaps emerge's --autounmask-write option?). I don't have much experience with this method, so you'll need to[/code] research into these automated useflag-enabling methods yourself ;-).
Back to top
View user's profile Send private message
hedmo
l33t
l33t


Joined: 29 Aug 2009
Posts: 840
Location: halmstad

PostPosted: Sun Jun 05, 2011 9:35 pm    Post subject: Reply with quote

ohnobinki wrote:

For your case: ......




mybox ~ # ls /usr/portage/default/
ls: cannot access /usr/portage/default/: No such file or directory
mybox ~ #
Back to top
View user's profile Send private message
Tommy[D]
Developer
Developer


Joined: 13 Feb 2005
Posts: 66

PostPosted: Sun Jun 05, 2011 11:17 pm    Post subject: Reply with quote

hedmo wrote:
hi guys

i am on this to.my problem starts at

rm /etc/make.profile


i did not check the target of /etc/make.profile :oops: so where is it :?:

next

echo /path/to/current/profile >> /etc/make.profile/parent

i dont know /path/to/current/profile .the only thing i know about profile is at the install of gentoo you "can" set a profile
via eselect profile

mybox multilib # eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/10.0 *
[2] default/linux/amd64/10.0/desktop
[3] default/linux/amd64/10.0/desktop/gnome
[4] default/linux/amd64/10.0/desktop/kde
[5] default/linux/amd64/10.0/developer
[6] default/linux/amd64/10.0/no-multilib
[7] default/linux/amd64/10.0/server
[8] hardened/linux/amd64
[9] hardened/linux/amd64/selinux
[10] hardened/linux/amd64/no-multilib
[11] hardened/linux/amd64/no-multilib/selinux
[12] selinux/2007.0/amd64
[13] selinux/2007.0/amd64/hardened
[14] selinux/v2refpolicy/amd64
[15] selinux/v2refpolicy/amd64/desktop
[16] selinux/v2refpolicy/amd64/developer
[17] selinux/v2refpolicy/amd64/hardened
[18] selinux/v2refpolicy/amd64/server
mybox multilib #


Prefix the selected profile with "/usr/portage/profiles/" and you should get the right path to the profile to insert.
Quote:



the problems so far is :


emerge: there are no ebuilds built with USE flags to satisfy "dev-libs/atk[multilib_abi_x86]".
!!! One of the following packages is required to complete your request:
- dev-libs/atk-1.32.0-r1 (Missing IUSE: multilib_abi_x86)
- dev-libs/atk-1.32.0 (Missing IUSE: multilib_abi_x86)
(dependency required by "app-emulation/emul-linux-x86-gtklibs-99999999[-nodep]" [ebuild])
(dependency required by "@preserved-rebuild" [argument])


This means, that you did not first rebuild or install portage-2.2* from the overlay. So after fixing the profile part, switch to the portage version from the overlay, then start with (re)building things.
Back to top
View user's profile Send private message
hedmo
l33t
l33t


Joined: 29 Aug 2009
Posts: 840
Location: halmstad

PostPosted: Mon Jun 06, 2011 8:00 am    Post subject: Reply with quote

Tommy[D]


about the profile problem.i still dont understan the path to profile nor Prefix the selected profile with "/usr/portage/profiles/" .

about portage.i did not think i needed "your" portage.i am on 9999.


sorry guys,dumb as swe :oops:
Back to top
View user's profile Send private message
Tommy[D]
Developer
Developer


Joined: 13 Feb 2005
Posts: 66

PostPosted: Mon Jun 06, 2011 10:54 am    Post subject: Reply with quote

hedmo wrote:
Tommy[D]


about the profile problem.i still dont understan the path to profile nor Prefix the selected profile with "/usr/portage/profiles/" .


If you want to use the profile "default/amd64/10.0" (as an example), then the path to your profile is "/usr/portage/profiles/default/amd64/10.0". You append the profile to "/usr/portage/profiles/" and get the path to your profile.
Quote:

about portage.i did not think i needed "your" portage.i am on 9999.


If you want crosscompile support, you need "my" version of portage, since only the overlay version has the needed changes to support cross-compilation internally.
Back to top
View user's profile Send private message
hedmo
l33t
l33t


Joined: 29 Aug 2009
Posts: 840
Location: halmstad

PostPosted: Mon Jun 06, 2011 8:14 pm    Post subject: Reply with quote

mybox 10.0 # emerge -avO =sys-apps/portage-2.2.0_alpha37-r1

* IMPORTANT: 4 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.


These are the packages that would be merged, in order:


!!! All ebuilds that could satisfy "=sys-apps/portage-2.2.0_alpha37-r1" have been masked.
!!! One of the following masked packages is required to complete your request:
- sys-apps/portage-2.2.0_alpha37-r1::multilib (masked by: invalid: PDEPEND: USE flag 'userland_GNU' referenced in conditional 'userland_GNU?' is not in IUSE, invalid: RDEPEND: USE flag 'elibc_FreeBSD' referenced in conditional 'elibc_FreeBSD?' is not in IUSE)

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.


* IMPORTANT: 4 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

mybox 10.0 # emerge -ave-world

* IMPORTANT: 4 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

Calculating dependencies... done!
Traceback (most recent call last):
File "/usr/bin/emerge", line 43, in <module>
retval = emerge_main()
File "/usr/lib64/portage/pym/_emerge/main.py", line 1910, in emerge_main
myopts, myaction, myfiles, spinner)
File "/usr/lib64/portage/pym/_emerge/actions.py", line 295, in action_build
settings, trees, myopts, myparams, myaction, myfiles, spinner)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 6627, in backtrack_depgraph
myaction, myfiles, spinner)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 6650, in _backtrack_depgraph
success, favorites = mydepgraph.select_files(myfiles)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 2173, in select_files
return self._resolve(myfavorites)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 2288, in _resolve
if not self._create_graph():
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 805, in _create_graph
allow_unsatisfied=allow_unsatisfied):
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 1412, in _add_pkg_deps
allow_unsatisfied):
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 1428, in _add_pkg_dep_string
allow_unsatisfied)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 1451, in _wrapped_add_pkg_dep_string
strict=strict, priority=dep_priority)
File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 2493, in _select_atoms_highest_available
myroot=root, trees=trees)
File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 31, in __call__
return result(*args, **kwargs)
File "/usr/lib64/portage/pym/portage/dep/dep_check.py", line 629, in dep_check
use_binaries=use_binaries, myroot=myroot, trees=trees)
File "/usr/lib64/portage/pym/portage/dep/dep_check.py", line 73, in _expand_new_virtuals
for multilib_abis in mysettings.get("MULTILIB_ABIS", []).split(' '):
AttributeError: 'list' object has no attribute 'split'
mybox 10.0 #



mybox 10.0 # eselect profile list
!!! Warning: Both /etc/make.profile and /etc/portage/make.profile exist.
!!! Warning: Using /etc/make.profile for now.
Back to top
View user's profile Send private message
rh1
Guru
Guru


Joined: 10 Apr 2010
Posts: 501

PostPosted: Mon Jun 06, 2011 8:51 pm    Post subject: Reply with quote

First, you definately don't want to use the "-O" option as multilib portage pulls in abi-wrapper and lafilefixer which it needs to function correctly

Quote:
!!! All ebuilds that could satisfy "=sys-apps/portage-2.2.0_alpha37-r1" have been masked.
!!! One of the following masked packages is required to complete your request:
- sys-apps/portage-2.2.0_alpha37-r1::multilib (masked by: invalid: PDEPEND: USE flag 'userland_GNU' referenced in conditional 'userland_GNU?' is not in IUSE, invalid: RDEPEND: USE flag 'elibc_FreeBSD' referenced in conditional 'elibc_FreeBSD?' is not in IUSE)


I think this is most likely due to your profile not being set correctly.
If you followed the instructions /etc/make.profile should be a directory with a parent file which contains 2 lines:
Code:

/usr/portage/profiles/default/linux/amd64/10.0
/<path_to_overlay>/profiles/base

Though per the instructions, you should have emerge multilib portage before setting up /etc/make.profile, it should hurt anything to do it first.

As a side note, I personally find it easier to just add "/<path_to_overlay>/profiles/base" to the end of "/usr/portage/profiles/default/linux/amd64/10.0/parent" and then add PORTAGE_RSYNC_EXTRA_OPTS="--exclude=/profiles/default/linux/amd64/10.0/parent" to /etc/make.conf as changing /etc/make.profile to a directory causes issues with certain programs that expect it to be a link.

Edit: Fixed typo in paths
Back to top
View user's profile Send private message
Carnildo
Guru
Guru


Joined: 17 Jun 2004
Posts: 586

PostPosted: Tue Jun 07, 2011 4:33 am    Post subject: Reply with quote

rh1 wrote:
As a side note, I personally find it easier to just add "/<path_to_overlay>/profiles/base" to the end of "/usr/portage/profiles/default/linux/amd64/10.0/parent" and then add PORTAGE_RSYNC_EXTRA_OPTS="--exclude=/profiles/default/linux/amd64/10.0/parent" to /etc/make.conf as changing /etc/make.profile to a directory causes issues with certain programs that expect it to be a link.

Which programs would those be?
Back to top
View user's profile Send private message
rh1
Guru
Guru


Joined: 10 Apr 2010
Posts: 501

PostPosted: Tue Jun 07, 2011 10:23 am    Post subject: Reply with quote

Quote:
Which programs would those be?


I know there were a couple, can't remember the others but here is the output from ufed when setup like instructions state:
Code:
Multilib etc # ufed
/etc/make.profile is not a symlink
Compilation failed in require at /usr/sbin/ufed line 9.
BEGIN failed--compilation aborted at /usr/sbin/ufed line 9.
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 5709
Location: ~Brussels - Belgique

PostPosted: Tue Jun 07, 2011 6:58 pm    Post subject: Reply with quote

Hello,

I have some questions : I've read the doc, but I don't know what to do exactly with multilib_abi_x86 :
- is it suffisient to set multilib_abi_x86 in package.use on required packages ?
- what do I set in /etc/make.conf ? I'm a bit confused, because portage-multilib and multilib are completely different, but there is no straightforward complete HOWTO
- I also have circular dependencies between gcc and glibc. I tried to emerge --nodeps gcc and/or glibc but both fail (BTW I don't want to emerge -e world if it is not needed)
- Is it possible to set the x86 CHOST ? I'd like to replace "pc" by "gentoo", as I do for x86_64-gentoo-linux-gnu ;)
- one more question : I have crossdev for i686-gentoo-linux-gnu target. Will it conflict with x86 multilib ABI ?

Thanks in advance !
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
rh1
Guru
Guru


Joined: 10 Apr 2010
Posts: 501

PostPosted: Tue Jun 07, 2011 8:13 pm    Post subject: Reply with quote

You can set multilib_abi_x86 on a per package basis in package.use but it's going to force you to set it for a ton of packages.
I find it easiest to set MULTILIB_ABI="amd64 x86" in /etc/make.conf and then just set "-multilib_abi_x86" on a per package basis for the packages that i either don't want multilib or fail when using it. Of course your going to be rebuilding most of your packages that way and since you mentioned not wanting to do "emerge -e world" you might want to use the per package method.

You should be able to do "emerge --nodeps glibc" if you were already using a mutilib profile. For some packages, your going to have to look at what it fails for , usually missing 32 bit libs and use "emerge --nodeps" to install the libraries before installing the package.

It can be a real PITA to get this installed at first but i find it well worth the effort especially if your into gaming and want to use wine. Plus I always thought there was something wrong with having to use the prebuilt emul-linux packages on a distro that prides itself on being mostly built from source code.

I don't know if you can set a different CHOST and i'm not familair with crossdev so i can't answer that for you either.

Some misc stuff i've been meaning to post about:

If you leave both amd64 and x86 flags on for certain proprietary packages like icaclient and adobe reader it will get stuck in a circular build loop that will never end. I haven't got around to investigating it yet.

Certain packages fail with unrecognized EPYTHON variable for x86. I think this has to do with the eclass.

gst-plugins fail unless you use this patch from bug #300256. for the gst-plugins-base eclass. I added it locally to the overlay.Also the instuctions in the multilib-overlay for overiding elasses state to add this to /etc/portage/repos.conf:
Code:

[DEFAULT]
eclass-overrides = gentoo multilib

[multilib]
eclass-overrides = gentoo multilib


But that method appear broken, at least on my system it doesn't work, adding this instead works fine:
Code:

[gentoo]
eclass-overrides = multilib


Some packages try to use python-config directly as a python script, ( for instance sys-libs/talloc if you have the python use flag set) and fail because it's linked to the abi-wrapper which isn't written in python. For those i have a small script that i use to temporarly switch it to point at the actual python-config script. Other packages fail if it's not pointed at the abi-wrapper so script also switches it back. I'll post it later when i have a chance.
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 5709
Location: ~Brussels - Belgique

PostPosted: Tue Jun 07, 2011 8:48 pm    Post subject: Reply with quote

OK Thanks, I will try your override.

I found how to set multiple CHOSTS, by using ACCEPT_CHOSTS (man emerge).

I'm not a gamer, but a musician, and some pro-audio applications are using old audio libs. And I don't like BLOBS :)
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
rh1
Guru
Guru


Joined: 10 Apr 2010
Posts: 501

PostPosted: Wed Jun 08, 2011 2:35 am    Post subject: Reply with quote

Here's my really simple script to switch python-config back and forth. Of course, adjust python versions to match what is installed:
Code:

#!/bin/bash

# Python 3 version
P3="3.2"
# Python 2 version
P2="2.7"

if [[ "${1}" == "--wrapper" ]] ; then
   cd /usr/bin
   rm /usr/bin/python-config-${P3}
   ln -svf ./abi-wrapper python-config-${P3}
   rm /usr/bin/python-config-${P2}
   ln -svf ./abi-wrapper python-config-${P2}

elif [[ "${1}" == "--python" ]] ; then
   cd /usr/bin
   rm /usr/bin/python-config-${P3}
   ln -svf ./python-config-${P3}-amd64 python-config-${P3}
   rm /usr/bin/python-config-${P2}
   ln -svf ./python-config-${P2}-amd64 python-config-${P2}

else
   echo "Usage: ${0} --wrapper || --python"
fi

Back to top
View user's profile Send private message
ohnobinki
n00b
n00b


Joined: 04 Nov 2004
Posts: 8
Location: Michigan, United States

PostPosted: Wed Jun 08, 2011 5:13 am    Post subject: waf, python, portage-multilib Reply with quote

rh1 wrote:

Some packages try to use python-config directly as a python script, ( for instance sys-libs/talloc if you have the python use flag set) and fail because it's linked to the abi-wrapper which isn't written in python. For those i have a small script that i use to temporarly switch it to point at the actual python-config script. Other packages fail if it's not pointed at the abi-wrapper so script also switches it back. I'll post it later when i have a chance.


This is fixed in WAF#951 and this script to switch in/out the python-configs is a more ugly way to fix it :-p. Anything using waf-1.6.5p1 or newer should not have this problem. Unfortunately, there is no way to patch waf buildsystems in ebuilds (bug #367291). Same problem for pycairo (bug #367293), but I have a hacky fix for that committed to my overlay (pycairo-1.10.0-r1.ebuild) and have just pushed the same fix for talloc (my overlay is called `ohnobinki').

So, supposedly we have to wait for waf people to release a stable version of waf and then for all waf-using packages to upgrade to that and make releases with the newer waf. Which will take forever ;-).
[/url]
Back to top
View user's profile Send private message
rh1
Guru
Guru


Joined: 10 Apr 2010
Posts: 501

PostPosted: Wed Jun 08, 2011 10:00 am    Post subject: Reply with quote

Yep, I know script is ugly, it wasn't meant as fix, just a work around to install a couple of packages that refused to. Haven't observed any ill effects yet or i wouldn't of posted it. I will checkout you overlay then, thanks :)
Back to top
View user's profile Send private message
xaviermiller
Administrator
Administrator


Joined: 23 Jul 2004
Posts: 5709
Location: ~Brussels - Belgique

PostPosted: Wed Jun 08, 2011 2:13 pm    Post subject: Reply with quote

Hello,

I changed the CHOST to a more standard "xxx-pc-linux-gnu" and the toolchain is compiled 8)
Now the system is rebuilding.
I think I will regenerate a stage1 to build a fresh "no-blob multilib" installation :)

Thank you for the support, I was almost to abandon the switch!
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Unsupported Software All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum