Skip to contentSkip to conversation

classes/externalsrc: delete symlinks at start of do_buildclean

PATCH New Paul Eggleton 1 participant 2 messages Sep 18, 2017

lore
Share & tools
lore
#0 lore raw

cover classes/externalsrc: delete symlinks at start of do_buildclean

The following changes since commit a15ec979910a74d4490aecf30aa21fa5c2f4e99d:

linux-yocto/4.9: bluetooth: CVE-2017-1000251 (2017-09-14 16:38:43 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/externalsrc-symlinks-fix
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=paule/externalsrc-symlinks-fix

Paul Eggleton (1):
classes/externalsrc: delete symlinks at start of do_buildclean

 meta/classes/externalsrc.bbclass | 1 +
 1 file changed, 1 insertion(+)
Signature · 1 line
2.9.5
#1 lore raw

PATCH 1/1 classes/externalsrc: delete symlinks at start of do_buildclean

To help users find the work and log directories (especially within the eSDK) we create symlinks to these from the source tree. However during do_buildclean we call "make clean", and some project Makefiles which delete something like "*/*/lib" which will match files underneath the oe-workdir symlink and fail. do_buildclean is called from do_clean which is in turn called by devtool reset by default, and thus devtool reset is blocked. An example of a recipe where this is visible is the openssl-qat recipe in meta-intel.

In order to fix this, delete the symlinks at the start of do_buildclean since we shouldn't need them at that point anyway, and thus make clean won't be able to trip over them.

Fixes [YOCTO #11036].

---
 meta/classes/externalsrc.bbclass | 1 +
 1 file changed, 1 insertion(+)
meta/classes/externalsrc.bbclass +1 -0
index 8141f25..08e6e47 100644
@@ -172,6 +172,7 @@ do_buildclean[nostamp] = "1"
 do_buildclean[doc] = "Call 'make clean' or equivalent in ${B}"
 externalsrc_do_buildclean() {
 	if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then
+		rm -f ${@' '.join([x.split(':')[0] for x in (d.getVar('EXTERNALSRC_SYMLINKS') or '').split()])}
 		oe_runmake clean || die "make failed"
 	else
 		bbnote "nothing to do - no makefile found"
Signature · 1 line
2.9.5