net/unison240 depends on lang/ocaml-nox11

Guido Falsi madpilot at
Thu Mar 26 10:56:21 UTC 2015

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:
> 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:
> The successful poudriere build, with the above patch to unison, is here:
> 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)

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.

you could also request poudriere to build both net/unison-nox11 and
lang/ocaml and get the exact same result, but it is redundant, poudriere
will anyway build ocaml from lang/ocaml, respecting the OPTIONS_USET.

I can't apply your patch which would bring the port to be semantically
the same as before my last modification, because it would break another
legitimate and use, which is if you build any other port in the same run
which asks for unison-nox11(which requires lang/ocaml-nox11 with your
patch) and at the same time compiles some other ports depending on
lang/ocaml. This would ensue a duplicate origin error, with no
workaround for the user.

You can see this situation as a limitation of the framework, if you
like, but while there is an easy solution for you (just ask poudriere to
build only unison-nox11 with OPTIONS_UNSET=X11 in make.conf and it will
build and keep updated both unison-nox11 and ocaml-nox11), there is no
solution for the duplicate origin, unless other ports are modified,
which could also break even more things.

Guido Falsi <madpilot at>

More information about the freebsd-ports mailing list