Darryl L. Pierce wrote, at 07/15/2009 12:23 AM +9:00:
This question is related to: https://bugzilla.redhat.com/show_bug.cgi?id=505589
When I remove the strip line, then the build process fails with the complaint:
Found '/home/mcpierce/Packaging/rpms/BUILDROOT/rubygem-RedCloth-4.1.9-5.fc12.x86_= 64' in installed files; aborting
I'm not sure what's wrong here. The %install portion of my spec file is as follows:
---8<[snip]--- rm -rf %{buildroot}
install -d -m0755 %{buildroot}%{gemdir} install -d -m0755 %{buildroot}%{ruby_sitelib} install -d -m0755 %{buildroot}%{ruby_sitearch} install -d -m0755 %{buildroot}%{_bindir}
gem install --local --install-dir %{buildroot}%{gemdir} \ --force -V --rdoc %{SOURCE0}
cp -a %{buildroot}%{gemdir}/bin/* %{buildroot}%{_bindir} mv %{extensionddir}%{gemlibname} %{buildroot}%{ruby_sitearch}/%{gemlibname} rm -rf %{extensionddir} # strip %{buildroot}%{ruby_sitearch}/%{gemlibname} rm %{installroot}/lib/%{gemlibname} cp %{installroot}/lib/redcloth.rb %{buildroot}%{ruby_sitelib}/redcloth.rb rm -rf %{buildroot}%{gemdir}/bin find %{buildroot}%{geminstdir}/bin -type f | xargs chmod a+x find %{buildroot}%{geminstdir} -name "*.rb" | xargs chmod a+x
find %{buildroot}%{geminstdir} -type f -name *.rb | xargs chmod 0644
find %{buildroot}%{geminstdir} -type f -name *.rb | \ xargs grep -l "^#!%{_bindir}/env" $file | xargs chmod 0755
rm %{installroot}/.require_paths ---8<[snip]---
Any ideas?
This is because with your spec file gem is directly installed under %buildroot. So some C codes in the gem (usually under ext/ directory) are compiled under %buildroot and the string "%buildroot" is embedded in the built binary (with "gcc -g"). This will make /usr/lib/rpm/check-buildroot complain.
The correct way is to expand (install) gem file once under %_builddir (at %prep or %build) and and copy all (under %_builddir) under %buildroot at %install like:
------------------------------------------------------------------- %prep %setup -q -c -T mkdir -p ./%{gemdir} export CONFIGURE_ARGS="--with-cflags='%{optflags}'" gem install --local --install-dir .%{gemdir} \ --force -V --rdoc %{SOURCE0}
%build
%install rm -rf %{buildroot} mkdir -p %{buildroot}%{gemdir} cp -a .%{gemdir}/* %{buildroot}%{gemdir} .... .... -------------------------------------------------------------------
With this debuginfo rpm will also be created correctly.
Regards, Mamoru