net/unison240 depends on lang/ocaml-nox11

Guido Falsi madpilot at FreeBSD.org
Thu Mar 26 16:41:05 UTC 2015


On 03/26/15 16:34, Geoffrey Mainland wrote:
> On Thu, Mar 26, 2015 at 11:55:41AM +0100, Guido Falsi wrote:
>> On 03/26/15 03:21, Geoffrey Mainland wrote:
>>> On Sat, Mar 21, 2015 at 07:02:47PM +0100, Guido Falsi wrote:
>>>> On 03/21/15 18:58, Geoffrey Mainland wrote:
>>>>> On 3/21/15 10:41 AM, Guido Falsi wrote:
>>>>> If you still think there is no difference, I will send you full build
>>>>> logs both with and without the patch.
>>>>
>>>> I'd need the logs anyway, since I don't know what the cause of the error
>>>> you are seeing is.
>>>>
>>>> I also need to know if in the same poudriere run you were building any
>>>> other port depending on ocaml.
>>>
>>> Poudriere logs are posted here:
>>>
>>> https://zeno.apeiron.net/unison/test1/
>>>
>>> With the config at the above link, poudriere won't even start a build
>>> as it complains (rightly) about dependency conflicts.
>>>
>>> Removing lang/ocaml-nox11 from test.pklist gets the build to start,
>>> but it ultimately fails because I have OPTIONS_UNSET=X11 in the
>>> make.conf. You can see the logs from this failed poudriere build here:
>>>
>>> https://zeno.apeiron.net/poudriere/build.html?mastername=test-9-amd64-git&build=2015-03-25_22h09m00s
>>>
>>> The successful poudriere build, with the above patch to unison, is here:
>>>
>>> https://zeno.apeiron.net/poudriere/build.html?mastername=test-9-amd64-git&build=2015-03-25_21h34m02s
>>>
>>> I would like a way to have ocaml and unison, both X11-free, as I am
>>> running on a headless machine. That used to be possible, and still is
>>> if I patch unison as shown above.
>>
>> Looking at this data I'd say you are trying to use an incorrect config:
>>
>> You don't need to specify both the unison-nox11 port and the ocaml-nox11
>> port in the list of ports to be built.
>>
>> Having OPTIONS_UNSET=X11 in make.conf you could ask for just net/unison
>> and poudriere, respecting the OPTIONS_UNSET will build both unison and
>> ocaml without any X11 support. In such a case you'd have a unison
>> package, not stating it is not supporting X11 but in fact it will have
>> no X11 binaries (this can be verified by looking into the package, which
>> is just a txz archive)
> 
> Thank you for your help, I appreciate it.

Thanks, unluckily, as I already said there can be many interactions in
the system, not always obvious...Not even to maintainers/committers! :)

> 
> Unfortunately, building just net/unison with OPTIONS_UNSET=X11 in
> make.conf doesn't work. See the log here:
> 
> https://zeno.apeiron.net/poudriere/build.html?mastername=test-9-amd64-git&build=2015-03-26_10h51m36s
> 
>> You can also request poudriere to build only net/unison-nox11, in such a
>> case you end up with both packages with "-nox11" in their name. I think
>> this is the best choice.
> 
> Building just net/unison-nox11 *with* OPTIONS_UNSET=X11 also doesn't
> work:
> 
> https://zeno.apeiron.net/poudriere/build.html?mastername=test-9-amd64-git&build=2015-03-26_11h00m14s

There' a clear error message from the ocaml port here:

requires X11 support to build TK bindings

the ocaml port has an X11 and a TK option. TK depends on X11, you are
asking the ocaml port to give you TK but not X11, so it just errors out,
since from the port point of view there isn't a clear solution, and asks
for user intervention, since it's being given conflicting options.

The port could also say "well I can't build TK without X11 so I'll just
ignore the TK option and build without X11 and without TK", which isn't
really correct(the other way round, forcing X11 on could be just as
reasonable), but could be what you expected.

Anyway the ocaml port is coded in this way, so you also have to add TK
to the disabled options. most probably you have TK enabled in the ocaml
per port options.

> 
> Building just net/unison-nox11 *without* OPTIONS_UNSET=X11 does work:
> 
> https://zeno.apeiron.net/poudriere/build.html?mastername=test-9-amd64-git&build=2015-03-26_11h18m16s
> 
> Of course this also pulls in all the X11 dependencies.

obviously, that's what you asked for, in this case.

> 
> It appears that installing unison requires that lang/ocaml be installed
> with the X11 dependencies.
> 
> This is in contrast to the old state of affairs (reverting to the old
> lang/ocaml-nox11 dependency), where no X11 dependencies were built:
> 
> https://zeno.apeiron.net/poudriere/build.html?mastername=test-9-amd64-git&build=2015-03-25_21h34m02s
> 
> If this is as good as it gets, that's fine. If you see a way for me to
> install unison and avoid X11, please let me know.

It did work because the ocaml-nox11 port has this line:

OPTIONS_EXCLUDE=TK X11

which takes care of both the options, so ocaml found no conflict.

(never use OPTIONS_EXCLUDE in make.conf, it doesn't belong there, it's
for port makefiles.
OPTIONS_SET/OPTIONS_UNSET/OPTIONS_SET_FORCE/OPTIONS_UNSET_FORCE are
meant for user customization)

-- 
Guido Falsi <madpilot at FreeBSD.org>


More information about the freebsd-ports mailing list