[OE-core] Policy of explicit disabling of package features
Tanu Kaskinen
tanu.kaskinen at linux.intel.com
Fri Mar 20 08:07:08 UTC 2015
Hi,
I'm using the pulseaudio packaging as the starting point to learn about
OE packaging. I'm trying to understand why everything is done as it is
done, and my current focus is on pulseaudio's EXTRA_OECONF:
EXTRA_OECONF = "\
--disable-hal-compat \
--disable-orc \
--enable-tcpwrap=no \
--with-access-group=audio \
--disable-openssl \
--disable-xen \
--with-database=simple \
--without-fftw \
--without-zsh-completion-dir \
--with-udev-rules-dir=`pkg-config --variable=udevdir
udev`/rules.d \
ac_cv_header_valgrind_memcheck_h=no \
"
I'm trying to understand the reason for each of those options. One
question that I had was that why are some features explicitly disabled,
when they should get anyway disabled automatically due to missing
dependencies. I found out from the git logs that at least some of them
are explicitly disabled, because the configure script may randomly find
some dependencies installed even if they are not listed in DEPENDS, due
to other packages pulling them in.
This then raises the question that what the policy of explicit vs.
implicit disabling is, and also what the policy *should* be. It seems
that the current policy is that things are explicitly disabled only
after someone has run into problems with the non-determinism. Is that
correct?
It seems to me that a better policy would be to always explicitly
disable *all* features that have external dependencies that aren't
listed in DEPENDS. That kind of policy should reduce these
non-determinism issues. Full compliance with such policy may not be
feasible to achieve, since it requires great care to check for new
optional dependencies whenever updating to new upstream versions, but I
hope that at least "pre-emptive" patches that add explicit feature
disabling will be accepted even before anyone has run into actual problems.
--
Tanu
More information about the Openembedded-core
mailing list