%{_host} different in FC and FE build environments

Rex Dieter rdieter at math.unl.edu
Tue May 9 13:44:23 UTC 2006

Roozbeh Pournader wrote:

 > I was playing with an SVG rendering problem I had on a box that stopped
 > gnome-games from working, and after a lot of debugging I found that it
 > was because I had compiled the gtk2 package myself, but was using FC4's
 > librsvg2. Now, librsvg2 runs this in it's %post:
 > %{_bindir}/update-gdk-pixbuf-loaders %{_host}
 > The %{_host} macro, expanded at build time, had resulted in
 > "i386-redhat-linux-gnu". But gtk2, which I had rebuilt using a stock
 > FC4's rpmbuild, had that %{_host} macro expanded to
 > "i686-redhat-linux-gnu" (as defined in /usr/lib/rpm/macros). This
 > resulted in an error message and all.
 > I tried --target i386, I tried setarch i386, I tried mock, and I still
 > got i686. The only way I could fix this was through defining redefining
 > _host explicitly in my '.rpmmacros'.
 > So, this means that the defaults used for building FC (beehive and co)
 > is different from the FE ones (mock and co). This needs to be fixed, or
 > to say the least, will result in weird things if we move, say, libwmf
 > from core to extras.
 > The question is: where should this be fixed? rpm? mock? beehive? where?

The problem being is that %{_host) is based on the build host, not the
target arch/platform.  Any variant in buildhost will exhibit the problem
you're seeing.  The bug is in gtk2, IMO.

I ran into the same problem in the past, my quick-n-dirty fix was to
%{_bindir}/update-gdk-pixbuf-loaders %{_host}
%{_bindir}/update-gdk-pixbuf-loaders %{_target_platform}

add to %configure:  --host="%{_target_platform}"

-- Rex

More information about the Fedora-maintainers mailing list