Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 04 Jun 2012 15:33:59 +0200
From:      Mel Flynn <rflynn@acsalaska.net>
To:        Bernhard Froehlich <decke@bluelife.at>
Cc:        Baptiste Daroussin <bapt@freebsd.org>, Doug Barton <dougb@freebsd.org>, Bernhard Froehlich <decke@freebsd.org>, Miroslav Lachman <000.fbsd@quip.cz>, FreeBSD ports list <freebsd-ports@freebsd.org>
Subject:   Re: New OPTIONS and make.conf knobs
Message-ID:  <4FCCB947.9070606@acsalaska.net>
In-Reply-To: <5e92b4eb2f005da7638701dfbc22220f@bluelife.at>
References:  <4FCBF310.3090607@FreeBSD.org> <4FCC862F.9080203@quip.cz> <bf8b2e6947239faea63a8edf65aae7fe@bluelife.at> <4FCC9C24.5070001@quip.cz> <5e92b4eb2f005da7638701dfbc22220f@bluelife.at>

next in thread | previous in thread | raw e-mail | index | archive | help
On 4-6-2012 14:58, Bernhard Froehlich wrote:
> On 04.06.2012 13:29, Miroslav Lachman wrote:
>> Bernhard Froehlich wrote:
>>> On 04.06.2012 11:55, Miroslav Lachman wrote:
>>>> There is another problem with options and portmaster.
>>>>
>>>> I have WITHOUT_X11=yes in make.conf and if I try to install
>>>> emulators/virtualbox-ose for the first time it immediately ends with
>>>> error message instead of showing options dialog.
>>>>
>>>> --------------------------------------------------------
>>>> # portmaster emulators/virtualbox-ose
>>>>
>>>> ===>>> Currently installed version: virtualbox-ose-4.1.16
>>>> ===>>> Port directory: /usr/ports/emulators/virtualbox-ose
>>>>
>>>> ===>>> This port is marked BROKEN
>>>> ===>>> QT4 frontend requires X11 support. Run 'make config' again!
>>>>
>>>>
>>>> ===>>> If you are sure you can build it, remove the
>>>> BROKEN line in the Makefile and try again.
>>>> Terminated
>>>> --------------------------------------------------------
>>>>
>>>>
>>>> I don't know the order of processing options / knobs so I don't know
>>>> if this is the problem of portmaster, OPTIONSng or Makefile it-self.
>>>>
>>>> To fix this problem, I must manually run `make config` in ports
>>>> directory and uncheck QT4, then run portmaster again.
>>>
>>> That is not a bug at all. It was that way for the last 2 years and still
>>> is. The virtualbox ports do not use the new optionsng stuff yet and the
>>> problem that you are seeing is just because QT4 GUI without X11 doesn't
>>> make sense. If you don't want X11 you also don't want QT4.
>>
>> Yes, that's right. But I am confused why portmaster does not show the
>> options dialog to let user uncheck QT4?
>>
>> What I expect is:
>> - run portmaster
>> - show dialog with unchecked X11
>> - let user uncheck QT4
>> - save options in /var/db/ports
>> - show error about conflicting options
>>
>> Now is:
>> - run portmaster
>> - show error about conflicting options
>>
>> I don't know if it can be solved by portmaster, ports framework or
>> anything else.
> 
> From the BROKEN message:
> 
> QT4 frontend requires X11 support. Run 'make config' again!
> 
> 
> I think it will be fixed once virtualbox uses optionsng because it is
> able to handle such option dependencies but for now it's the same as
> it ever was.

I think only the port can handle this as it falls in the "sane defaults"
category and a framework can never assess what is sane in the specific
port's case.

A solution that works with old options is to assign the On/Off state
with a variable:
.ifdef WITHOUT_X11
QT4_DEFAULT=	off
.else
QT4_DEFAULT=	on
.endif
OPTIONS=	QT4	"Enable QT4 support" ${QT4_DEFAULT}

I think the same will work with optionsng and probably offers better
sanity checking as you can query for ${UNIQUENAME}_SET of a related
port, like OPENLDAP24_SASL_SET to set the default for ldap sasl support
accordingly instead of throwing an exception.
-- 
Mel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FCCB947.9070606>