do_package_qa:package_qa_walk hangs when attempting to open a FIFO file in the package, specifically at elf.open() statement, this is because FIFOs block when opened for read. To reproduce add the following to an example recipe: DEPENDS += "coreutils-native" FILES_${PN} += " \ /usr/run \ " do_install_append() { mkdir -p ${D}/usr/run/${PN} mkfifo -m 0666 ${D}/usr/run/${PN}/fifo } P.S. It looks like this might be a regression as it was supposed to be fixed according to this mail in the mailing list: https://www.yoctoproject.org/pipermail/yocto/2016-February/028424.html
A very bad workaround is to skip qa for the recipe: python do_package_qa() { pass }
Reproduced on master SHA 7a5cc8659e4ba8f36bcb5322e246005d812efb59
Needs an automated test as well.
One of the tests in insane.bbclass (package_qa_check_shebang_size()) tries to read the contents of the object looking for the #!. If the object is a fifo, any read(2) of its contents will hang forever, waiting for contents to appear. The patch to fix this is as follows and has been submitted to the mailing list: diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index cf2165c517..105d2a5ce8 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -87,7 +87,8 @@ def package_qa_add_message(messages, section, new_msg): QAPATHTEST[shebang-size] = "package_qa_check_shebang_size" def package_qa_check_shebang_size(path, name, d, elf, messages): - if os.path.islink(path) or elf: + import stat + if os.path.islink(path) or stat.S_ISFIFO(os.stat(path).st_mode) or elf: return try: The patch is here: https://lists.openembedded.org/g/openembedded-core/topic/master_next_patch_1_3/79198302
A patch to add an automated test is: https://lists.openembedded.org/g/openembedded-core/message/146221
Fix in oe-core: https://git.openembedded.org/openembedded-core/commit/?id=a7b1d22e93c8846d84a9855876038c2b38958dec $ git branch -a --contains a7b1d22e93c hardknott master Test: https://git.openembedded.org/openembedded-core/commit/?id=53988b6389ce618d4cff52bd09ae91108beca354 $ git branch -a --contains 53988b6389ce618d4cff52bd09ae91108beca354 hardknott master Thanks Trevor!