Does Yocto’s INCOMPATIBLE_LICENSE Actually Block Copyleft Packages?
GPL compliance failures in embedded Linux are usually discovered in shipped firmware, not in build logs. That is the right frame for evaluating INCOMPATIBLE_LICENSE: it is a build-time recipe filter, not a compliance certificate. A clean Yocto build tells you the build system believed it excluded certain declared licenses. It does not tell you what is actually in the rootfs, the kernel image, or the SPI flash. What the variable actually does INCOMPATIBLE_LICENSE is evaluated during recipe parsing. In the OpenEmbedded implementation captured in a public poky commit, the check lives in license.bbclass as a function called incompatible_license(), invoked from base.bbclass. When a recipe's declared LICENSE matches an unwanted pattern, the parser raises SkipPackage: raise bb.parse.SkipPackage("incompatible with license %s" % this_license) That is the whole enforcement mechanism at this layer:…