[Rpm-maint] Automatic BuildRoot by default?

Jindrich Novy jnovy at redhat.com
Thu Jun 12 14:22:50 UTC 2008


On Thu, Jun 12, 2008 at 03:42:18PM +0200, Pixel wrote:
> Jindrich Novy <jnovy at redhat.com> writes:
> 
> > Panu and me had a discussion related to automatic BuildRoot feature in
> > the upcoming rpm. The plan is to actually obsolete BuildRoot tag from
> > specs and to let decide rpm itself where the BuildRoot should be if
> > not explicitely reconfigured.
> 
> cool :)
> 
> 
> mandriva has the following (introduced when switching from rpm 4.4.8
> to rpm.org):
> 
> # MDV2008.0 sets %buildroot globally, but default rule is %buildroot overrides BuildRoot
> # this breaks (broken) .spec relying on a specified BuildRoot (mdvbz#34705).
> # Introducing a global %defaultbuildroot which is used when neither %buildroot nor BuildRoot is used
> # So %buildroot/$RPM_BUILD_ROOT in .spec are set to %buildroot or BuildRoot or %defaultbuildroot (in that order)
> 
> http://svn.mandriva.com/svn/packages/cooker/rpm/current/SOURCES/rpm-4.4.2.2-defaultbuildroot.patch
> 
> it works great :)
> 
> (but most mandriva pkgs still have "BuildRoot: ..." in spec file to
> allow backporting)

Yup, this is exactly like Group: tag behaves in the current HEAD rpm
now. It just gets simply ignored for now :)

> 
> > https://fedoraproject.org/wiki/PackagingDrafts/BuildRoot
> > proposes the following BuildRoots in specs:
> > 1. %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
> > 2. %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
> > 3. %{_tmppath}/%{name}-%{version}-%{release}-root
> >
> > The problem is that the 1. buildroot would break rpm --short-circuit
> > and requires mktemp. The others are quite acceptable,
> 
> we've been talking about this on mandriva ml too.
> 
> some people require the addition of %{arch} to allow having build on
> different archs.
> 

Do you please have a link?

> > but here we go
> > with another proposal:
> >
> > Let's add BUILDROOTS directory among others like RPMS, SOURCES, etc.
> > to %{_topdir} and new %{_buildrootdir} variable originally pointing to
> > %{_topdir}. So what I mean is to have:
> 
> FYI mandriva uses "bm" (initially from conectiva), which sets %_topdir
> to the current directory. It also sets buildroot dir to `pwd`/BUILDROOT
> 

I tend to not to enable this behaviour by default, but maybe it could
be configurable. One doesn't need to chdir to hardly defined %{_topdir} what
but could be convenient but I'm a bit afraid it would lead to a little mess :)

> i've no big preference between BUILDROOT and BUILDROOTS, but i wonder
> why BUILDROOTS would have an "S" whereas BUILD doesn't :)

heh, no objections against BUILDROOT :)

Best,
Jindrich

-- 
Jindrich Novy <jnovy at redhat.com>   http://people.redhat.com/jnovy/



More information about the Rpm-maint mailing list