Re: dns/knot3 and dns/knot-resolver do not get along with
Date: Mon, 26 Feb 2024 10:43:36 UTC
On Feb 26, 2024, at 01:06, Michael Grimm <trashcan@ellael.org> wrote: > 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' A time interval over which both dns/knot3 and dns/knot3-lib are in the installed state in the context. You have answered yes below. > 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 A variation of that is that dns/knot-resolver has its own files in its own locations for such, no dns/knot3-lib port involved. > 2) discard dns/knot3-lib and make dns/knot3 and dns/knot-resolver mutually dependent > 3) …? "..." might be: dns/knot3 uses the files from dns/knot3-lib instead of installing its own and so has both a build dependency on dns/knot3-lib and a run-time dependency on dns/knot3-lib . dns/knot-resolver also then has such ( and no dependency on dns/knot3 ). The run-time dependency leads to installation of either dns/knot3 or dns/knot-resolver first installing dns/knot3-lib if it is not already installed. Uninstalling dns/knot3-lib would lead to both dns/knot3 or dns/knot-resolver being uninstalled if both were installed. The build time dependencies lead to dns/knot3-lib being built first and being installed before builds of either dns/knot3 or dns/knot-resolver if dns/knot3-lib is not already installed. (In poudriere such build time install of dns/knot3-lib is temporary and internal to the build activity.) This allows both dns/knot3 and dns/knot-resolver to be installed in the same jail "simultaneously". (It does not matter which is installed first vs. second in the sequence of installs.) I do not know which way is simpler to support. That likely is dependent on details I'm ignorant of. All look to be technically possible. > I am not an expert in ports internals, thus: what would the best way to solve this issue? > === Mark Millard marklmi at yahoo.com