In some of the rpms the gid of the user building is used instead of 0. From the syslog-ng rpm: drwxr-xr-x 2 root gsa 0 Apr 7 2012 /usr/share/include/scl/pacct -rw-r--r-- 1 root gsa 1236 Sep 15 2011 /usr/share/include/scl/pacct/plugin.conf drwxr-xr-x 2 root gsa 0 Apr 7 2012 /usr/share/include/scl/syslogconf -rw-r--r-- 1 root gsa 264 Dec 31 2010 /usr/share/include/scl/syslogconf/README -rwxr-xr-x 1 root gsa 3664 Dec 31 2010 /usr/share/include/scl/syslogconf/convert-syslogconf.awk -rw-r--r-- 1 root gsa 1181 Sep 15 2011 /usr/share/include/scl/syslogconf/plugin.conf drwxr-xr-x 2 root gsa 0 Apr 7 2012 /usr/share/include/scl/system -rwxr-xr-x 1 root gsa 3355 Sep 15 2011 /usr/share/include/scl/system/generate-system-source.sh -rw-r--r-- 1 root gsa 1159 Sep 15 2011 /usr/share/include/scl/system/plugin.conf Note: gsa is 1000 in our rootfs, and the user building i rootfs primary group is also 1000. We also see this problem in our own bb files if we use 'cp -a'. We need to use 'cp -a --no-preserve=ownership' to get around this problem. Example of bb file workaround: do_install() { install -d -m 0755 ${D}/opt/java - cp -a ${S}/usr/java/${JDK_JRE}${PV}_${PV_UPDATE}/ ${D}/opt/java + cp -a --no-preserve=ownership ${S}/usr/java/${JDK_JRE}${PV}_${PV_UPDATE}/ ${D}/opt/java ln -sf ${JDK_JRE}${PV}_${PV_UPDATE} ${D}/opt/java/latest } Syslog-ng is extra interesting as it only afftects some of the files/dirs (the ones under /usr/share/include/scl/ the resta are root:root).
Observe group ownership on a target or unpacked rpm/filesystem.