Re: dns/knot3 and dns/knot-resolver do not get along with

From: Michael Grimm <trashcan_at_ellael.org>
Date: Mon, 26 Feb 2024 09:06:41 UTC
Mark Millard <marklmi@yahoo.com> wrote:
> Michael Grimm <trashcan_at_ellael.org> wrote on
> Date: Sun, 25 Feb 2024 19:46:22 UTC :

>> I am trying to install dns/knot3 and dns/knot-resolver simultaneously.
>> 
>> Compilation is achieved with the help of poudriere which complains about dns/knot-resolver:
>> 
>> ===> Installing existing package /packages/All/knot-resolver-5.7.0_2.pkg
>> [stable-default-job-02] Installing knot-resolver-5.7.0_2...
>> [stable-default-job-02] `-- Installing knot3-lib-3.3.3_1...
>> pkg-static: knot3-lib-3.3.3_1 conflicts with knot3-3.3.3_1 (installs files into the same place). Problematic file: /usr/local/include/knot/module.h
>> 
>> Failed to install the following 1 package(s): /packages/All/knot-resolver-5.7.0_2.pkg
>> *** Error code 1
>> 
>> Stop.

[…]

>> One needs to know, that there is a third port involved, namely dns/knot3-lib, dependent for dns/knot-resolver. And, dns/knot3-lib is simply a part of dns/knot3.
>> 
>> Thus, knot3-lib-3.3.3_1 as part of dns/knot3 shouldn't conflict with dns/knot3.
>> 
>> 
>> Questions:
>> 
>> #) Bug?
>> #) How to resolve this conflict?
>> #) Anyone running both ports in parallel?
> 
> If I understand right, if 2 more more installers should be allowed
> to be used in the same context in overlapping it-is-installed
> time frames, they must not conflict in what they install: no files
> with the same paths.

> Expected conflicts can be noted in the Makefiles to get earlier
> notifications of the attempt to use conflicting material. But
> having such conflicts means mutual exclusion as far as being
> installed in overlapping time frames goes.

> I'm not sure how your notes fit with the overlapping time frames
> issue: is it valid to have knot3-?.?.? and knot3-lib-?.?.?
> installed in overlapping time frames?

FYI: I do not understand what you mean by 'overlapping time frames'

Ok, there are 3 ports involved:

1) authoritative dns:		dns/knot3
2) library part of dns/knot3:	dns/knot3-lib
3) recursive dns:		dns/knot-resolver

2) is needed by 3), 
thus compiling 3) pulls all libraries and includes from 1),
and stores them in the very same locations as 1) will.

Thats, if I am not mistaken, the reason for pkg complaining 'pkg-static: knot3-lib-3.3.3_1 conflicts with knot3-3.3.3_1 (installs files into the same place).'

Thus, IMHO, both ports dns/knot3 and dns/knot-resolver cannot be installed simultaneously. One could install them in different jails, but that is not an option for me.

Possible solutions:

1) dns/knot3-lib should store its libraries and includes into a different location as dns/knot3 does
2) discard dns/knot3-lib and make dns/knot3 and dns/knot-resolver mutually dependent
3) …?

I am not an expert in ports internals, thus: what would the best way to solve this issue?

Thanks and regards,
Michael