On 05/20/2009 11:39 PM, Chuck Anderson wrote:
On Wed, May 20, 2009 at 11:05:57PM -0700, Toshio Kuratomi wrote:
On 05/20/2009 08:47 PM, Chuck Anderson wrote:
On Wed, May 20, 2009 at 05:46:18PM -0700, Toshio Kuratomi wrote:
Since the rpm version shipped in Fedora 10 and beyond defines a default buildroot, I think we can start phasing out the current buildroot Guideline. How about adding this to the start of the buildroot tag section?
I'd be concerned about accidentally blowing away people's systems if they take a src.rpm from Fedora and try to build it on an older Fedora or non-Fedora system.
%install rm -rf $RPM_BUILD_ROOT ...
%clean rm -rf $RPM_BUILD_ROOT
What will this evaluate to on older systems? Won't it be "rm -rf\n"? Which actually won't remove anything?
Last I knew, it will evaluate to / and all hilarity will ensue. Once upon a time, the recommendation was to use something like this to prevent such disasters:
[ "$RPM_BUILD_ROOT" != "/" ]&& rm -rf $RPM_BUILD_ROOT
That fell out of favor when the BuildRoot: tag was mandated in Fedora packages. If we remove the BuildRoot: requirement and instead rely upon the new rpmbuild default, we risk obliterating unsuspecting users' systems.
I have a better idea. How about we get rpmbuild to automatically do the moral equivalent of "[ "$RPM_BUILD_ROOT" != "/" ]&& rm -rf $RPM_BUILD_ROOT" internally before starting %install and %clean, and remove all such boilerplate from all Fedora specs. Then we can remove the BuildRoot: requirement as well, and older/non-Fedora systems will just break/pollute/fail to cleanup the build instead of blowing away the users system, a much lesser evil IMO.
I thought that Panu posted something about this actually being the case but I can't find it in a quick look at the code in git. Perhaps that was an idea rather than actually coded or perhaps my memory is wrong.
Panu care to weigh in on this ?
-Toshio