Files
poky/meta/conf/layer.conf
Richard Purdie 04b37f914e layer.conf: Extend recipes not to install without explict dependencies
There are several dependencies which recipes have which are not needed
at runtime, only at build time. Extend the list of these from bison to
include quilt, patch, meson, autoconf, automake and ninja which should
reduce the amount of data being included in native sysroots.

This speeds up and reduces the sstate needed for image builds for example.

If this change breaks recipes, it probably means they're missing an explicit
DEPENDS on something in this list which is a bug in the recipe.

(From OE-Core rev: 8e26252b45b7660c7c67c702411bdec187a76ffc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-11 18:41:37 +01:00

118 lines
3.4 KiB
Plaintext

# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb"
BBFILE_COLLECTIONS += "core"
BBFILE_PATTERN_core = "^${LAYERDIR}/"
BBFILE_PRIORITY_core = "5"
LAYERSERIES_CORENAMES = "honister"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_core = "12"
LAYERSERIES_COMPAT_core = "honister"
BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"
# Set a variable to get to the top of the metadata location
COREBASE = '${@os.path.normpath("${LAYERDIR}/../")}'
# opkg-utils is for update-alternatives :(
SIGGEN_EXCLUDERECIPES_ABISAFE += " \
sysvinit-inittab \
busybox-inittab \
shadow-securetty \
opkg-arch-config \
netbase \
init-ifupdown \
connman-conf \
formfactor \
xserver-xf86-config \
pointercal-xinput \
base-files \
keymaps \
udev-extraconf \
packagegroup-x11-xserver \
systemd-serialgetty \
initscripts \
shadow \
shadow-sysroot \
base-passwd \
opkg-utils \
gstreamer1.0-meta-base \
ca-certificates \
shared-mime-info \
desktop-file-utils \
"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
*->patch-native \
*->quilt-native \
*->subversion-native \
*->git-native \
*->icecc-create-env-native \
gcc-cross-${TARGET_ARCH}->linux-libc-headers \
ppp-dialin->ppp \
resolvconf->bash \
docbook-xsl-stylesheets->perl \
ca-certificates->openssl \
initramfs-framework->${VIRTUAL-RUNTIME_base-utils} \
initramfs-framework->eudev \
initramfs-framework->systemd \
initramfs-module-install-efi->dosfstools \
initramfs-module-install-efi->e2fsprogs \
initramfs-module-install-efi->parted \
initramfs-module-install-efi->util-linux \
initramfs-module-install->e2fsprogs \
initramfs-module-install->grub \
initramfs-module-install->parted \
initramfs-module-install->util-linux \
grub-efi->grub-bootconf \
liberation-fonts->fontconfig \
cantarell-fonts->fontconfig \
ttf-bitstream-vera->fontconfig \
gnome-icon-theme->librsvg \
font-alias->font-util \
systemd-boot->systemd-bootconf \
systemd->systemd-conf \
weston->weston-init \
weston-init->weston \
weston-init->kbd \
connman->xl2tpd \
lttng-tools->lttng-modules \
adwaita-icon-theme->gdk-pixbuf \
adwaita-icon-theme->gtk+3 \
"
# Avoid adding bison-native to the sysroot without a specific
# dependency in the recipe. This means indirect dependencies
# (e.g. X -> Y -> binutils-cross -> bison-native) no longer meet the
# dependency incidentally. This improves determinism and avoids build
# failures when people switch to external toolchains.
SSTATE_EXCLUDEDEPS_SYSROOT += "\
.*->autoconf-native \
.*->automake-native \
.*->bison-native \
.*->meson-native \
.*->ninja-native \
.*->patch-native \
.*->pkgconfig-native \
.*->quilt-native \
"
# Nothing needs to depend on libc-initial
# base-passwd/shadow-sysroot don't need their dependencies
SSTATE_EXCLUDEDEPS_SYSROOT += "\
.*->.*-initial.* \
.*(base-passwd|shadow-sysroot)->.* \
"
# Avoid adding autoconf-archive-native to sysroot without a specific
# dependency in the recipe.
SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native"
# We need to keep bitbake tools in PATH
# Avoid empty path entries
BITBAKEPATH := "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}"
PATH := "${@'${BITBAKEPATH}:' if '${BITBAKEPATH}' != '' else ''}${HOSTTOOLS_DIR}"