On 05/03/2012 11:16 PM, Wempa, Kristofer wrote:
I have been using RPM to build thousands of packages for various SuSE
and RedHat Linux distributions. We recently acquired Red Hat 6
servers and I noticed that the RPM on that server sets a "BuildRoot"
by default. I need to override this since we already have a
well-defined structure for our tool chains. Modifying all of the
spec files is not an option since the packages all install in various
ways. I tried re-defining the %{buildroot} and %{_buildrootdir}
macros in my local macros file, but it looks like RPM ignores this.
How can I unset the BuildRoot so that my builds will behave as they
have with other operating systems ? Thanks in advance.
rpm >= 4.6 simply ignores any BuildRoot directive in specs and there's
no way to make it honor it. Overriding %_buildrootdir (and %buildroot
for that matter) does work as expected though, eg putting this to
~/.rpmmacros makes the buildroot go to /var/tmp:
%_buildrootdir /var/tmp/
Moving it to a "better" place (eg to avoid having the buildroot end up
over NFS, have a large/fast local scratch area reserved for the purpose
or such) is fine, the default of ending up in ~/rpmbuild/ is the way it
is to avoid having to deal with multiuser clashes in eg /var/tmp. Beyond
that, the exact location of buildroot is an internal implementation
detail which does not matter at all, that it ever was spec defineable
was nothing but somebody's mistake a long, long time ago.
- Panu -
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list