Subject: Re: Optional Dependancies
To: Chris Gilbert <chris@paradox.demon.co.uk>
From: David Brownlee <abs@netbsd.org>
List: tech-pkg
Date: 04/22/2001 00:28:05
Have you taken a look at OpenBSD's flavours - they appear to be a
determenistic way to solve the 'package variation' issue...
David/absolute -- www.netbsd.org: No hype required --
On Sat, 21 Apr 2001, Chris Gilbert wrote:
> Hi,
>
> A while back I mentioned something about the idea of having optional
> dependancies. Having stumbled onto something I'd like, but perhaps not
> everyone, I decided it's about time I came up with a more concrete suggestion.
>
> what are optional dependancies?
> Optional dependancies will allow the ability to have extra features turned on
> if you have that package installed. Eg kdepim2 would enable kpilot if you've
> got misc/pilot-link installed, something that not everyone would want but
> some might. It might also assist in cases of circular dependancies.
>
> How do we handle binary packages?
> My suggestion would be that if an optional package was found on the build
> system then it becomes a dependancy for that binary package. This will
> complicate doing bulk builds, but it depends on how many optional
> dependancies there are. However to handle this it would perhaps be worth
> having a global flag saying ignore optional dependancies.
>
> How would it be implemented?
> I'd expect that it's use would do something like:
>
> OPTIONAL_DEPENDS += pilot-link>=0.9.3:../../misc/pilot-link:message about
> what this extra package will add.
>
> If it finds something in the OPTIONAL_DEPENDS section installed it adds it to
> DEPENDS. If it doesn't find the package it can optionally display the
> message as to what functionality would be added.
>
> If an optional package needs to set options to enable the functionality some
> way of detecting this might be needed eg:
> .if ${OPT_pilot-link}
> CONFIGURE_ENV+= -enable-palm-link
> .endif
>
> I believe that implementing the OPTIONAL_DEPENDS should be possible, but
> doing an implementation of the .if parts maybe somewhat trickier (it's been a
> long time since I last did makefile work)
>
> I'm hoping that others have suggestions and ideas on why or why this would
> [not] work. If it looks like people are interested I'll actually do some
> work on trying to implement it.
>
> Cheers,
> Chris
>