Files
poky/meta/conf/layer.conf
Richard Purdie b7307ce4d7 layer.conf: Filter docs dependencies for efficiency
Where a recipe has depends on native docs tools, in most cases
we don't need recipes that depend on that recipe to also install
these things into the sysroot. We can rely on recipes wanting these
tools to have direct dependencies instead.

This massively reduced dependency creep in simple recipes (e.g. an
allarch one) and reduced the size of builds with the api-documentation
feature substancially.

gperf-native is also included since that would normally have a direct
dependency in a recipe which needs it too.

(From OE-Core rev: 9bbb5334e1d1884e042dc3b3ec0eb274664f2c25)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-05 10:45:13 +00:00

122 lines
3.5 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 = "kirkstone"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_core = "14"
LAYERSERIES_COMPAT_core = "kirkstone"
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 \
^(?!gtk-doc-native).*->xmlto-native \
.*->gperf-native \
.*->gtk-doc-native \
.*->texinfo-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}"