Date: Mon, 26 Feb 2024 02:43:36 -0800 From: Mark Millard <marklmi@yahoo.com> To: Michael Grimm <trashcan@ellael.org> Cc: FreeBSD Mailing List <freebsd-ports@freebsd.org> Subject: Re: dns/knot3 and dns/knot-resolver do not get along with Message-ID: <6F77C083-4AC6-4592-88C3-626D138B10D0@yahoo.com> In-Reply-To: <6C622E06-4CFC-4296-B0C8-6279F6BD3FDB@ellael.org> References: <79302DD2-2673-4745-82B3-06BEEC907DAE.ref@yahoo.com> <79302DD2-2673-4745-82B3-06BEEC907DAE@yahoo.com> <6C622E06-4CFC-4296-B0C8-6279F6BD3FDB@ellael.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 : >=20 >>> I am trying to install dns/knot3 and dns/knot-resolver = simultaneously. >>>=20 >>> Compilation is achieved with the help of poudriere which complains = about dns/knot-resolver: >>>=20 >>> =3D=3D=3D> 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 >>>=20 >>> Failed to install the following 1 package(s): = /packages/All/knot-resolver-5.7.0_2.pkg >>> *** Error code 1 >>>=20 >>> Stop. >=20 > [=E2=80=A6] >=20 >>> 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. >>>=20 >>> Thus, knot3-lib-3.3.3_1 as part of dns/knot3 shouldn't conflict with = dns/knot3. >>>=20 >>>=20 >>> Questions: >>>=20 >>> #) Bug? >>> #) How to resolve this conflict? >>> #) Anyone running both ports in parallel? >>=20 >> 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. >=20 >> 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. >=20 >> 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? >=20 > 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: >=20 > 1) authoritative dns: dns/knot3 > 2) library part of dns/knot3: dns/knot3-lib > 3) recursive dns: dns/knot-resolver >=20 > 2) is needed by 3),=20 > thus compiling 3) pulls all libraries and includes from 1), > and stores them in the very same locations as 1) will. >=20 > 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).' >=20 > 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. >=20 > Possible solutions: >=20 > 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) =E2=80=A6? "..." 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? >=20 =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6F77C083-4AC6-4592-88C3-626D138B10D0>