@@ -55,10 +55,9 @@ ALTJARFILENAMES = "${BPN}.jar"
# Java "source" distributions often contain precompiled things
# we want to delete first.
do_deletebinaries() {
- find ${WORKDIR} ! -path "${RECIPE_SYSROOT}/*" ! -path "${RECIPE_SYSROOT_NATIVE}/*" \
- -name "*.jar" -exec rm {} \;
- find ${WORKDIR} ! -path "${RECIPE_SYSROOT}/*" ! -path "${RECIPE_SYSROOT_NATIVE}/*" \
- -name "*.class" -exec rm {} \;
+ dirs_to_search="$(find ${WORKDIR}/* -maxdepth 0 -type d | grep -Ev "recipe-sysroot|sstate|spdx")"
+ find $dirs_to_search -name "*.jar" -exec rm {} \;
+ find $dirs_to_search -name "*.class" -exec rm {} \;
}
addtask deletebinaries after do_unpack before do_patch
The do_deletebinaries task is attempting to delete directories created and destroyed by other bitbake classes such as sstate.bbclass and create-spdx-2.2.bbclass. If these classes remove their directories before do_deletebinaries has a chance to delete them, but after they are found, the following types of errors occur: Log data follows: | DEBUG: Executing shell function do_deletebinaries | find: ‘/build/tmp/work/x86_64-linux/junit-native/3.8.2/sstate-build-create_spdx’: No such file or directory | WARNING: exit code 1 from a shell command. Rewrite do_deletebinaries such that it is explicitly not looking through directories that are managed by other bitbake classes, to avoid this race condition. Suggested-by: Douglas Royds <douglas.royds@taitcommunications.com> Signed-off-by: Stanley Stanton <stanley.stanton@taitcommunications.com> --- classes/java-library.bbclass | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)