devs constantly want "more stuff" when creating dev or test images.
this falls into two categories:
- extra packages (i.e. ones that'd never be installed into a release
image e.g. strace)
- extra utils in a package (i.e. the bluez package installs libs we
want in the release image, but it also includes test apps which don't
belong in the release image)
the first case can be handled easily today globally via the
chromeos-dev package, and overlays can additionally add their own by
overriding the virtual/chromeos-bsp-dev package. anything that is
listed as a dependency of these packages are added to dev/test images
the second case has been a source of pain for many. the workaround we
have atm is to manually split the package into an extra "xxx-utils"
which takes care of installing just the extra junk. but this is a
pain to scale when things like patches/build magic needs to be copied
since we can't support building the same package atm with different
USE flags, two possible ideas for keeping packages merged:
(1) add a new convention: install your extra stuff into /usr/local.
we'd update the build_image script to take care of discarding anything
in that path when creating the release image, but keeping it for the
(2) list the extra utils in INSTALL_MASK in
chromeos/config/env/$CATEGORY/$PN and add the package to chromeos-dev.
this way the utils would get masked from /usr/bin/xxx, but would
automatically show up in /usr/local/usr/bin/xxx. the downside here is
that you'd also duplicate other files from the package in / and
/usr/local, but i'm not sure that's a big deal.
to be clear, this would not help with building a single program with
different functionality. for example, you still wouldn't be able to
build say curl with USE=-ldap for the release image and USE=ldap for
the dev/test image (since you're changing the generated code). this
would only help with adding extra files to the dev/test images.