Files
poky/meta/conf/layer.conf
Richard Purdie 7c916d8f1b run-postinsts: Add workaround for locking deadlock issue
When run-postinsts is installed, a service is added for system which can run
while the package is still being installed. This calls "opkg configure" and if
package management is still running, it can deadlock and error.

To work around this, call fcntl-lock on the opkg lock file and if the lock
was held, it would wait to obtain it. This wait gives the package management
time to finish the install before the configure can then take the lock and run.

Note the dependency in SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS otherwise we'd see
sstate selftest failures.

Also ensure that if the configure fails, the scripts returns an error. This
applies to opkg and dpkg.

(From OE-Core rev: 96d37df074dc1fe1578c1406235dff7e328b62b7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-03-30 22:22:19 +00:00

135 lines
3.9 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 = "scarthgap"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_core = "15"
LAYERSERIES_COMPAT_core = "scarthgap"
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 \
initramfs-module-setup-live->udev-extraconf \
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 \
sato-icon-theme->gdk-pixbuf \
sato-icon-theme->gtk+3 \
adwaita-icon-theme->gdk-pixbuf \
adwaita-icon-theme->gtk+3 \
run-postinsts->util-linux \
"
# 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.
# libarchive only needs e2fsprogs headers at buildtime
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 \
.*->help2man-native \
.*->gtk-doc-native \
.*->texinfo-native \
.*->perlcross-native \
libarchive-native->e2fsprogs-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}"
# Only OE-Core should set/change this
BB_GLOBAL_PYMODULES = "os sys time"
addpylib ${LAYERDIR}/lib oe