Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 286040 - sys-devel/crossdev-wrappers-20090922: x11-libs/libxcb doesn't pull in x11-proto/xcb-proto
Summary: sys-devel/crossdev-wrappers-20090922: x11-libs/libxcb doesn't pull in x11-pro...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Embedded Gentoo Team
URL:
Whiteboard:
Keywords:
: 371545 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-09-22 23:57 UTC by Jordan Yelloz
Modified: 2014-11-24 08:49 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-arm-omap3-linux-gnueabi -pv1 --debug libxcb (emerge-libxcb.log,1.27 KB, text/plain)
2009-09-28 01:40 UTC, Jordan Yelloz
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jordan Yelloz 2009-09-22 23:57:09 UTC
When emerging libxcb, the configure step fails because xcb-proto isn't installed.
This only happened to me when building on a crossdev environment using the embedded profile.  After I emerged xcb-proto the build succeeded.  I guess some other ebuild in other profiles automatically brings in xcb-proto so this isn't an issue for most people.

Reproducible: Always

Steps to Reproduce:
1. Create an empty crossdev environment with the embedded profile.
2. emerge libxcb
Comment 1 Jordan Yelloz 2009-09-23 00:11:30 UTC
I actually just looked at the ebuild and it seems to depend on xcb-proto but there's still a weird problem.
If I unmerge xcb-proto and libxcb and try to run emerge-arm-omap3-linux-gnueabi -p libxcb, it does not try to install xcb-proto. This could actually be a bug in the crossdev wrappers or something else.  I also get the same problem with:
libX11 and xextproto
libXxf86vm and xf86vidmodeproto
Comment 2 Sebastian Luther (few) 2009-09-27 17:57:11 UTC
(In reply to comment #1)
> If I unmerge xcb-proto and libxcb and try to run emerge-arm-omap3-linux-gnueabi
> -p libxcb, it does not try to install xcb-proto.

Do this again with --debug added and attach the output.
Comment 3 Jordan Yelloz 2009-09-28 01:40:57 UTC
Created attachment 205431 [details]
emerge-arm-omap3-linux-gnueabi -pv1 --debug libxcb

I got this using:
emerge-arm-omap3-linux-gnueabi -pv1 --debug libxcb > 'emerge-libxcb.log'
Comment 4 Sebastian Luther (few) 2009-09-28 05:33:16 UTC
It only considers runtime dependencies. Please attach this emerge wrapper.
Comment 5 Jordan Yelloz 2009-09-29 15:19:27 UTC
I have sys-devel/crossdev-wrappers-20090922 installed.  That is what I'm using.  It's actually a slightly complicated set of scripts, not just one.  The cross-emerge script that comes with that seems to be the script that adds the --root-deps=rdeps option.  I tried disabling that option by adding --root-deps=True and it results in emerge bringing in in lots of unnecessary stuff for embedded projects that exist in the host's root (automake, eselect, libtool, and python are some examples).

Also, I looked at the contents of the xcb-proto package and it's not architecture-specific.  I'm not that well informed on this matter but maybe the ebuild needs to find some way to use the xcb-proto installed on the host for packages like this (like what it does for compilers, automake, make, etc).
Comment 6 Sebastian Luther (few) 2009-10-01 14:22:02 UTC
The problem is, that you want only some of it's build time dependencies installed. You want xcb-proto but not libtool and the other stuff. I don't think there is another way than installing the "really" need deps by hand.

Comment 7 Jeroen Roovers (RETIRED) gentoo-dev 2009-10-07 17:03:03 UTC
What if you add the --with-bdeps=y option to emerge?
Comment 8 Jordan Yelloz 2009-10-09 06:47:32 UTC
(In reply to comment #7)
> What if you add the --with-bdeps=y option to emerge?
> 

I tried this and it does not try to emerge xcb-proto.
The more I think about it, the issue might be with the pkg-config wrapper included with crossdev-wrappers.  As mentioned before, xcb-proto is platform-independent so what might be needed in these cases is to allow the pkg-config wrapper that comes with crossdev-wrappers to use the host system's xcb-proto (and other known cross-platform build-only packages) and everything should work.
I should probably post something about this in the gentoo embedded mailing list.
Comment 9 Peter Alfredsen (RETIRED) gentoo-dev 2009-10-21 08:23:10 UTC
Perhaps the maintainer can add a helpful comment.
Comment 10 SpanKY gentoo-dev 2009-10-21 09:57:33 UTC
except that xcb-proto is not installing its pc file into the site-independent directory (/usr/share/pkgconfig/) therefore it is by definition site-dependent

whether xcb-proto is broken in this matter is up to the X11 guys ... pkg-config is operating correctly in this situation
Comment 11 Rémi Cardona (RETIRED) gentoo-dev 2009-10-21 14:44:55 UTC
There's a wide project upstream to move all the X .pc files into /usr/share (instead of /usr/lib) where it makes sense.

So far, only the "old" protocol headers have been mentioned. I'll try to make sure xcb-proto gets the same treatment.

Thanks
Comment 12 solar (RETIRED) gentoo-dev 2009-10-21 16:01:55 UTC
crossdev-wrappers (cross-fix-root) should handle both usr/lib/pkgconfig/*.pc usr/share/pkgconfig/*.pc files fine.
Comment 13 SpanKY gentoo-dev 2009-10-21 19:31:40 UTC
ok, assuming the .pc files are fixed in the normal line of things.  that leaves the bdeps issue which afaik isnt specific to libxcb nor any package.  this is the discussion (another bug open already?) where we dont differentiate between packages that are needed on the build host (autotools/make/etc...) and packages that are needed for the target, but only to compile (all the X11 proto packages that install headers).

i dont think there is a clean workaround for this.  you could work around it obviously by just installing all the proto packages yourself.
Comment 14 Rémi Cardona (RETIRED) gentoo-dev 2009-10-22 10:18:56 UTC
(In reply to comment #13)
> i dont think there is a clean workaround for this.  you could work around it
> obviously by just installing all the proto packages yourself.

Our current plan is to pull the proto packages from the corresponding lib package in both DEPEND and RDEPEND, since there's no satisfying way of defining this sort of deps with current EAPIs.

That means that binary package users will get proto packages installed, but I was told embedded folks tend to do manual clean-ups of /usr/include and other dirs when creating images.

Let me know if that's ok with you and I'll work on it sooner rather than later :)

Cheers
Comment 15 SpanKY gentoo-dev 2009-10-22 10:54:49 UTC
since most library packages include headers in the same package and there's no way to split them, embedded installs will (must?) strip /usr/include/ and similar paths.  so the proto packages would get culled in this process.  so adding the dep sounds fine to me ... might want to make sure to add a little note in the ebuild as to why otherwise i imagine people will whine/file bugs to get the change reverted.
Comment 16 SpanKY gentoo-dev 2011-06-14 18:23:29 UTC
*** Bug 371545 has been marked as a duplicate of this bug. ***
Comment 17 Ian Delaney (RETIRED) gentoo-dev 2014-11-24 08:49:06 UTC
purged from portage