i3 softdeps test: updated

This commit is contained in:
John McQuah 2023-08-25 10:20:13 -04:00
parent 5ee692a858
commit 8267661048

View File

@ -1,7 +1,6 @@
Thanks to hestia and jaeger for inspiring this hacking session (2023-08-22). 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 (Update 2023-08-25): see i3-softdeps.md in this directory for more
the ports at whatever outdated version they had when this particular system was discussion on the merits of adding new prt-get features.
last in daily use.
In light of the recent changes to libxkbcommon, jaeger made the observation 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 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 by the latest official release of prt-get (5.19.6), in response to the
recommended way of installing a desired port. 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 In[0]: prt-get depinst --test i3
Out[0]: Out[0]:
*** prt-get: test mode *** 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 Even this change is not enough! prt-get is not aware of the optional
dependency relationship between libxkbcommon and xkeyboard-config, and so 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 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 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 *** 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: Footnotes:
1. The more intuitive version of the above commands, `prt-get depinst 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 --test --softdeps i3`, currently does NOT consider the dependency
relationship "libxkbcommon optionally depends on xkeyboard-config", because relationship "libxkbcommon optionally depends on xkeyboard-config", because
the latter port is neither currently installed, nor listed explicitly as an the latter port is neither currently installed, nor listed explicitly as an
@ -254,7 +266,7 @@ Remarks:
two traversals of the deptree. 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 `prt-get install --softdeps $(prt-get quickdep i3)` using the
mixed-upinst branch, because 'install' on this branch behaves the same mixed-upinst branch, because 'install' on this branch behaves the same
as 'depinst'. In https://lists.crux.nu/pipermail/crux/2008-June/001784.html as 'depinst'. In https://lists.crux.nu/pipermail/crux/2008-June/001784.html
@ -265,7 +277,7 @@ Remarks:
instead of simply 'install'. 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 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 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 in the dependency tree. See contrib/libreoffice for an example. This