[yocto] DEPEND creep breaking poky-tiny

Richard Purdie richard.purdie at linuxfoundation.org
Sat Feb 25 03:40:00 PST 2012


On Fri, 2012-02-24 at 21:55 -0800, Darren Hart wrote:
> I'm working through some issues with a poky-tiny build of
> core-image-minimal failing. The first error is attributable to"
> 
> commit f3677d679e5c74f9877f36cdb170bbfea9b7b9bb
> glib-2.0: Add missing DEPENDS on dbus
> 
> dbus eventually pulls in shadow, which fails configure with the minimal
> libc configuration in poky-tiny. Removing this dependency allows us to
> make progress. (I understand a proper fix is needed, as the dependency
> was added for a reason).

That commit is from 2011-01-21 so I'm a little surprised its the issue.
More likely is the useradd changes (which dbus now inherits) which in
turn pulls in shadow.

Regardless, I'd like to break the dbus dependency from glib-2.0 since I
think it shouldn't be hard to remove with obvious parallelism gains. I
think its only used in some glib tests.

> Next up is popt failing due to missing native language or widechar
> support. pkgconfig is what brings in popt, and also what brought in glib
> above. Nothing in popt suggests it changed recently, which leads me to
> believe that the pkgconfig bit is new as I'm pretty sure I didn't need
> glib in poky-tiny originally at all.
> 
> Has pkgconfig been added recently? Seems silly to ask, but that is where
> things are pointing...

This one is new and you are correctly attributing the change to commit
76640582e8ba114d4e80a494f6680fd0ce57ca58 which I made.

The trouble is if we build anything which has a -dev package, if we
install that, we need to have pkgconfig around since the package will
auto depend on pkgconfig thanks to rpm's auto dependencies. The
dependency is therefore correct and it won't actually change your image
size, its just a correctness issue.

I appreciate that it pulling in glib and popt is a pain though. I was
curious why as much stuff breaks since we're supposed to support nls
free images, at least in theory from the patches I see. There are
several things that caught my eye:

* USE_NLS=yes in glib-2.0's recipe (overriding the "no" distro setting)
* eglibc declaring ac_cv_header_langinfo_h (which causes popt to call
nl_langinfo)
* popthelp.c has a POPT_WCHAR_HACK define which looks like we could
disable wchar support through

So it looks like popt could be fixed relatively easily but glib-2.0 has
a hard gettext dependency at least in policy.

The annoying thing is I know pkgconfig only uses a small subset of
glib-2.0 and certainly doesn't care about nls. It used to ship its own
small glib-1.0 based shim but the authors removed that :(.

So how to fix this? The best I could come up with was:

diff --git a/meta-yocto/conf/distro/poky-tiny.conf b/meta-yocto/conf/distro/poky-tiny.conf
index 411347a..5d1d67a 100644
--- a/meta-yocto/conf/distro/poky-tiny.conf
+++ b/meta-yocto/conf/distro/poky-tiny.conf
@@ -108,3 +108,5 @@ IMAGE_FSTYPES = "ext2 cpio.gz"
 #        variants of all compatible machines, but that leads to a lot
 #        more machine configs to maintain long term.
 MACHINE_ESSENTIAL_EXTRA_RDEPENDS = ""
+
+ASSUME_PROVIDED += "pkgconfig$"

which would mean images using the -dev packages might break but
otherwise things work just fine. I confirmed poky-tiny builds with this
applied.

Cheers,

Richard










More information about the yocto mailing list