meson.bblcass: Remove empty egg-info directories before running meson

sstate.bbclass no longer removes empty directories to avoid a race (see
commit 4f94d929 "sstate/staging: Handle directory creation race issue").
Unfortunately Python apparently treats an empty egg-info directory as if
the version it previously contained still exists and fails if a newer
version is required, which Meson does. To avoid this, make sure there
are no empty egg-info directories from previous versions left behind.

(From OE-Core rev: 47d9d90b4ec7d04d6f3f1a9b97c0ab7f1264a88e)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Kjellerstedt
2021-10-25 16:07:13 +02:00
committed by Richard Purdie
parent ec2eaed901
commit 2fc0ba7efa

View File

@@ -103,6 +103,16 @@ meson_do_configure() {
# https://github.com/mesonbuild/meson/commit/ef9aeb188ea2bc7353e59916c18901cde90fa2b3
unset LD
# sstate.bbclass no longer removes empty directories to avoid a race (see
# commit 4f94d929 "sstate/staging: Handle directory creation race issue").
# Unfortunately Python apparently treats an empty egg-info directory as if
# the version it previously contained still exists and fails if a newer
# version is required, which Meson does. To avoid this, make sure there are
# no empty egg-info directories from previous versions left behind. Ignore
# all errors from rmdir since the egg-info may be a file rather than a
# directory.
rmdir ${STAGING_LIBDIR_NATIVE}/${PYTHON_DIR}/site-packages/*.egg-info 2>/dev/null || :
# Work around "Meson fails if /tmp is mounted with noexec #2972"
mkdir -p "${B}/meson-private/tmp"
export TMPDIR="${B}/meson-private/tmp"