This is a common issue that not only for specfic packages, remove python-smartpm for example: 1) echo echo PACKAGE_EXCLUDE = "python-smartpm" >> local.conf 2) bitbake core-image-sato Errors: | Note: adding Smart RPM DB channel | | Note: to be installed: packagegroup-core-ssh-dropbear@all packagegroup-core-x11-sato-games@qemux86 packagegroup-core-x11-base@all smartpm@i586 psplash@i586 packagegroup-core-boot@qemux86 packagegroup-base-extended@qemux86 rpm@i586 packagegroup-core-x11-sato@qemux86 locale-base-en-us@i586 locale-base-en-gb@i586 | Loading cache... | Updating cache... ######################################## [100%] | | Computing transaction...error: Can't install smartpm-1.4.1-r9@i586: unable to install provider for python-smartpm: | error: python-smartpm-1.4.1-r9@i586 is to be excluded | | Saving cache... | | WARNING: exit code 1 from a shell command. Removing perl, libpam ... would have the same issue. We should work out a mechanism to remove all the rpms that generated by an excluded package, not only the main rpms for it.
PACKAGE_EXCLUDE is a list of packages, not recipes, and each package corresponds to a single rpm. It sounds like you want it to be a recipe exclusion but I don't think that is really practical with the way this feature has been implemented. FWIW, an aside perhaps, but I've always thought the split between "python-smartpm" and "smartpm" isn't particularly useful, so I wouldn't necessarily point to this as a good example.
After some discussion with RP/Saul I'm marking this as invalid based on the above.