From 8267661048d2722be1b704060e45934a57de9df8 Mon Sep 17 00:00:00 2001 From: John McQuah Date: Fri, 25 Aug 2023 10:20:13 -0400 Subject: [PATCH] i3 softdeps test: updated --- doc/i3-softdeps.test | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/doc/i3-softdeps.test b/doc/i3-softdeps.test index d457d13..260eb41 100644 --- a/doc/i3-softdeps.test +++ b/doc/i3-softdeps.test @@ -1,7 +1,6 @@ Thanks to hestia and jaeger for inspiring this hacking session (2023-08-22). -All commands were performed on a pkg-cleaned installation of CRUX 3.7, leaving -the ports at whatever outdated version they had when this particular system was -last in daily use. +(Update 2023-08-25): see i3-softdeps.md in this directory for more +discussion on the merits of adding new prt-get features. In light of the recent changes to libxkbcommon, jaeger made the observation that `prt-get depinst i3` on a core-only system hits an error, as @@ -10,6 +9,10 @@ for subsequent experiments, here is the list of targets that would be selected by the latest official release of prt-get (5.19.6), in response to the recommended way of installing a desired port. +All commands were performed on a pkg-cleaned installation of CRUX 3.7, leaving +the ports at whatever outdated version they had when this particular system was +last in daily use. + In[0]: prt-get depinst --test i3 Out[0]: *** prt-get: test mode @@ -77,7 +80,8 @@ xkeyboard-config at the end of i3's dependency list. Even this change is not enough! prt-get is not aware of the optional dependency relationship between libxkbcommon and xkeyboard-config, and so -cannot insist that libxkbcommon comes later in the list of targets. +cannot insist that libxkbcommon comes later in the list of targets. jw +came to a similar conclusion 15 years ago (footnote 1). Let's see whether farkuhar's softdeps-aware fork can do any better on this task. The naive approach, prt-get depinst --softdeps i3, still doesn't work @@ -236,9 +240,17 @@ prt-get: install successful. *** prt-get: test mode end +The output of the last command reveals why we recommend performing a sysup +before installing new ports. Because dependencies in core are not listed unless +they are dynamically linked in, some of the out-of-date core ports on my test +system would get updated later, possibly leading to breakage (e.g, if the +desired port is relying on a new or backward-incompatible feature in one of +the foundational pieces of the toolchain). -Remarks: -1. The more intuitive version of the above commands, `prt-get depinst +Footnotes: +1. https://lists.crux.nu/pipermail/crux-devel/2008-May/003375.html + +2. The more intuitive version of the above commands, `prt-get depinst --test --softdeps i3`, currently does NOT consider the dependency relationship "libxkbcommon optionally depends on xkeyboard-config", because the latter port is neither currently installed, nor listed explicitly as an @@ -254,7 +266,7 @@ Remarks: two traversals of the deptree. -2. The result of trial 2 would be identical to that of +3. The result of trial 2 would be identical to that of `prt-get install --softdeps $(prt-get quickdep i3)` using the mixed-upinst branch, because 'install' on this branch behaves the same as 'depinst'. In https://lists.crux.nu/pipermail/crux/2008-June/001784.html @@ -265,7 +277,7 @@ Remarks: instead of simply 'install'. -3. Some maintainers prefer to do a filesystem check to determine whether a +4. Some maintainers prefer to do a filesystem check to determine whether a needed dependency was linked to one of its optional libraries, and then exit early with a message alerting the user to rebuild one of the packages in the dependency tree. See contrib/libreoffice for an example. This