cvs commit: ports/Mk bsd.wx.mk

Alejandro Pulver alepulver at FreeBSD.org
Sun Dec 31 10:03:48 PST 2006


On Sun, 31 Dec 2006 18:04:05 +0100
Pav Lucistnik <pav at FreeBSD.org> wrote:

> Alejandro Pulver píše v ne 31. 12. 2006 v 13:37 -0300:
> > On Sun, 31 Dec 2006 15:30:29 +0100
> > Pav Lucistnik <pav at FreeBSD.org> wrote:
> > 
> > > >   - Remove _WX_ILLEGAL_VERS_* added in the last update to 2.8. The reason is
> > > >     that each port should choose the version it can use, that includes taking
> > > >     into account available components (also this brings much more chicken and
> > > >     egg problems so the code could get really messy).
> > > 
> > > I have reverted this. It's needed as long as you want to let people use
> > > ranges like 2.4+ together with python component, etc.
> > > 
> > 
> > It is complex to do that (if you want to do it the right way), because
> > you need to parse components and dependencies before selecting a
> > version. The current code is wrong since it will only reject components
> > without dependency type specifications (and if there were dependencies
> > then it will also ignore them).
> > 
> > I think people should select the versions that actually work with the
> > port, that's why the version specification string is so flexible.
> > 
> > Also, if versions with invalid components are removed then the reported
> > error if a user writes USE_WX=2.4 and WX_COMPS=svg would be "selected a
> > null or invalid WxWidgets version" instead of "selected a WxWidgets
> > component (${_WX_COMP}) which is not available for the selected version
> > (${_WX_VER})".
> 
> That can be done, I'm confident.
> 

Yes, but it will remove flexibility in some way:

Currently the version is processed independently from the components.
The first one is done in <bsd.port.post.mk> or in <bsd.port.pre.mk> if
WX_PREMK is defined (for ports like "x11-toolkits/py-wxPython26"). And
the second one is always checked in <bsd.port.post.mk>.

If I make the version to depend on the components, then when USE_PREMK
is defined, the port won't be able to modify WX_COMPS after
<bsd.port.pre.mk> (because the components can alter the version, and if
then the port will think it's using one, but other will be used).

> 
> But the problem is really this:
> With a port allowing USE_WX=2.4+ and WX_COMPS=python, it should go for
> 2.4 or 2.6, instead of selecting 2.8 and then failing.
> 
> I'm not happy with it setting such port on IGNORE. Why it should fail,
> when perfectly legit option is available? It should bail out with IGNORE
> when you select USE_WX=2.8 and WX_COMPS=python, never else.
> 

I also agree with this, but see the problem above.

> > > Also, the auto-detection does not seem to work:
> > > 
[...]
> > 
> > Sorry, I re-wrote it many times and forgot this:
> > 
> > -_WX_VER_INSTALLED:=		${_HAVE_WX}
> > +_WX_VER_INSTALLED:=		${_HAVE_WX:Mwx-*:S/wx-//}
> 
> Please commit this fix.
> 

Done.

Best Regards,
Ale
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-ports/attachments/20061231/baf9dd48/signature.pgp


More information about the cvs-ports mailing list