%bcond_with is backwards?

Richard W.M. Jones rjones at redhat.com
Thu Dec 8 21:49:24 UTC 2011


On Thu, Dec 08, 2011 at 12:14:05PM -0800, Adam Williamson wrote:
> On Thu, 2011-12-08 at 20:06 +0000, Richard W.M. Jones wrote:
> > On Thu, Dec 08, 2011 at 07:01:45PM +0000, Paul Howarth wrote:
> > > On Thu, 8 Dec 2011 18:58:29 +0000
> > > "Richard W.M. Jones" <rjones at redhat.com> wrote:
> > > 
> > > > On Thu, Dec 08, 2011 at 07:31:58PM +0100, Till Maas wrote:
> > > > > On Thu, Dec 08, 2011 at 06:10:17PM +0000, Richard W.M. Jones wrote:
> > > > > 
> > > > > > # conditionalize Ocaml support
> > > > > > %ifarch sparc64 s390 s390x
> > > > > > %bcond_with ocaml
> > > > > > %else
> > > > > > %bcond_without ocaml
> > > > > > %endif
> > > > > > 
> > > > > > #...
> > > > > > 
> > > > > > %if %{with ocaml}
> > > > > > BuildRequires:  ocaml
> > > > > > BuildRequires:  ocaml-findlib-devel
> > > > > > %endif
> > > > > > 
> > > > > > This code correctly disables OCaml support on architectures where
> > > > > > we don't bother to compile OCaml (sparc64 s390 s390x).  But the
> > > > > > conditional code looks backwards to me.  Does this make sense to
> > > > > > anyone?
> > > > > 
> > > > > It makes sense when you read "%bcond_with ocaml" as 'add a
> > > > > "--with-ocaml" build condition flag' to the spec.
> > > > 
> > > > It does?  Still seems backwards to me.  OCaml is disabled on the
> > > > listed architectures, so that'd be --without-ocaml wouldn't it?
> > > 
> > > Having a build *option* for "--with ocaml" implies that the default
> > > (which is what you get when you build the package in koji) is "without"
> > > ocaml.
> > 
> > I'm sure you're right, but I still genuinely don't understand your
> > explanation :-(
> > 
> > Just to be clear, I'm talking about the %ifarch part above:
> > 
> >   %ifarch sparc64 s390 s390x
> >   %bcond_with ocaml
> >   %else
> >   %bcond_without ocaml
> >   %endif
> > 
> > Why does that disable OCaml support on the architectures sparc64,
> > s390, s390x?
> 
> As I understand Paul's explanation, bcond_with doesn't mean "build with
> this option", it means "create an rpmbuild option which will enable
> building with this option". i.e., "bcond_with ocaml" sets up an
> parameter *for the .src.rpm itself* so that you could do "rpmbuild
> --with-ocaml foobar.src.rpm" on the resultant .src.rpm to build it with
> ocaml support. It does not mean that a *default* build of the .src.rpm
> will be done with ocaml support.

Oh I see now ...

Thanks everyone.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/


More information about the devel mailing list