if i try to build latest rhel-5's kernel-2.6.18-128.1.6.el5 in mock-0.9.14-1.el5 then it's failed, because mock do not install unifdef into the buildroot. the reason for this may be because the spec file contains: ------------------------------ %if %{with_headers} BuildRequires: unifdef %endif ------------------------------ and even if with_headers defined as 1 mock still not install unifdef into the buildroot. the following command gives this result: -------------------------------- mock --rebuild --target="noarch,i386,i686" --without=pae --without=debug --without=debuginfo kernel-2.6.18-128.1.6.el5.src.rpm -------------------------------- so imho it's a bug.
mock uses the rpmUtils package provded by yum to extract required packages from an SRPM and install them. Chances are the dependency for unifdef is not being recorded in the SRPM. Try this on your srpm: $ rpm -qp --requires kernel-2.6.18-128.1.6.el5.src.rpm | grep unifdef I tried this on a 2.6.28-128.1.1.el5.src.rpm and it did in fact show unifdef in the output. If unifdef shows up then something is amiss in mock/yum/rpm. If it doesn't show up then the SRPM is probably hosed.
i also try it with kernel-2.6.18-128.1.6.el5.src.rpm and kernel-.6.28-128.1.1.el5.src.rpm too. the strange thing is that while it's missing from the first it's in the second?
ok it's not happened with rhel's kernel just with centos kernel:-(
I'd suspect something changed in the build process that caused with_headers to be undefined.