
On Wed, 24 Apr 2024, John McQuah wrote:
Hi all,
Making cups a hard dependency of qt6-base (rather than "Optional" as it is now) would indeed be the easiest solution, as Daryl discovered by maintaining a duplicate port.
Daryl F <wyatt@prairieturtle.ca> wrote:
However, I suggest that this kind of test in qt6-webengine violates the tried-and-true intent of the dependency list in a Pkgfile in subtle ways and precludes some automation tools.
The official prt-get still has no awareness of optional dependencies, almost 16 years after sepen first proposed a patch to make use of this field [1]. The fork I shared last year [2] has the logic to avoid the build error Daryl reported, if what's being tested is `prt-get depinst qt6-webengine` on a clean system (no qt6-base). But you have to put the line "softdeps yes" in the config file, or else pass --softdeps on the command line; otherwise the behavior of the original prt-get is retained. In the new mode, my patched prt-get first computes the minimal set of targets (which includes cups, if you ask for qt6-webengine), and then applies topological sorting with not just the hard dependency relationships, but also any optional dependencies among the targets.
Feel free to try out my fork of prt-get [3], either for your personal use or for maintaining a published repo. If it eliminates the build errors reported by Daryl (and by hestia in the chatlog linked from [2]), without needing workarounds like a dup of qt6-base, then maybe we could get my patches incorporated into an official release.
[1] https://lists.crux.nu/hyperkitty/list/crux-devel@lists.crux.nu/ thread/2QQLNMN3NEBOYMKP2QYOPVFPWZ4EVGAU/
[2] https://lists.crux.nu/hyperkitty/list/crux@lists.crux.nu/thread/ FKBNNVGKIPH5ORRUVWKQ3TIX36HRBDAV/
[3] https://git.crux.nu/farkuhar/prt-get/
-- John
Hi, softdeps in the docker environment would pollute the new footprints with things that the end consumer of one of my ports may not be using in their system. For me I consider a MISSING file at pkgmk time is fatal. I don't mind NEW because it usually means I've already installed something that autoconfigure or friends found and added support for. In my case the only solution is if qt6-base has a real dependency for cups not an optional dependency. I recall the discussion about optional dependencies. I was neither for or against it. Some might find it useful to automatically include them but I just review the ports and manually install an optionals I like. -Daryl