[OE-core] X11 as DISTRO_FEATURE

Andreas Oberritter obi at opendreambox.org
Thu Aug 11 14:19:32 UTC 2011


On 11.08.2011 14:17, Phil Blundell wrote:
> Right now, there are a bunch of recipes (e.g. dbus, cairo) which always
> build against X11 even though the underlying software can work without
> it.  This makes it somewhat painful to build a display system using
> clutter (for example) without X.
> 
> It's also moderately fiddly to stop X11 from leaking in by mistake; you
> can't just BBMASK the whole of "xorg-*" because things like pixman are
> still needed by cairo even when not using X11.
> 
> So, to combat this, I would like to make X11 be a DISTRO_FEATURE and
> arrange for:
> 
> a) libx11 to skip itself; and
> 
> b) recipes for which x11 is optional to not depend on X stuff 
> 
> if that feature isn't selected.
> 
> Any objections, better suggestions, ...?

That would be great!

My current workaround (using OE 2011.03, not OE-core) is rather
ugly, because it's hard to read and to extend and it creates tons
of warnings[1]:

# mask libx11 and related packages
BBMASK = "(/(nonworking|obsolete)/)|(/(efl1|gtk+|microwindows|preboot)/)|(/xorg-lib/lib.*)"

Plus, further workarounds in amend.inc or bbappend files are required, e.g.:

cairo/cairo/amend.inc:DEPENDS := "${@oe_filter_out('^(libsm|libxrender|virtual/libx11)$', '${DEPENDS}', d)}"
gnome/libsoup-2.4/amend.inc:DEPENDS := "${@oe_filter_out('^(gconf|gconf-native|gnome-common|gnome-keyring|libproxy)$', '${DEPENDS}', d)}"
gstreamer/gst-plugins-bad/amend.inc:DEPENDS := "${@oe_filter_out('^(librsvg|opencv)$', '${DEPENDS}', d)}"
gstreamer/gst-plugins-base/amend.inc:DEPENDS := "${@oe_filter_out('^(gnome-vfs|gtk\+|libsm|libxrandr|libxv|virtual/libx11)$', '${DEPENDS}', d)}"
gstreamer/gst-plugins-good/amend.inc:DEPENDS := "${@oe_filter_out('^(esound|gconf|hal|pulseaudio)$', '${DEPENDS}', d)}"
pango/pango/amend.inc:DEPENDS := "${@oe_filter_out('^(libxft|virtual/libx11)$', '${DEPENDS}', d)}"

Regards,
Andreas

[1]:
ERROR: Nothing PROVIDES 'libxext'
NOTE: Runtime target 'libsdl-x11' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libsdl-x11', 'libxext']
NOTE: Runtime target 'python-pygtk' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['python-pygtk', 'gtk+', 'libxext']
NOTE: Runtime target 'avahi-python' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['avahi-python', 'python-pygtk', 'gtk+', 'libxext']
NOTE: Runtime target 'libglade' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libglade', 'gtk+', 'libxext']
NOTE: Runtime target 'gtk+' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['gtk+', 'libxext']
NOTE: Runtime target 'gtk+-fastscaling' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['gtk+-fastscaling', 'libxext']
ERROR: Nothing PROVIDES 'libxcursor'
ERROR: Nothing PROVIDES 'libxrandr'
...




More information about the Openembedded-core mailing list