i3 softdeps test: updated

This commit is contained in:
John McQuah 2023-08-25 10:20:13 -04:00
parent 5ee692a858
commit 8267661048
1 changed files with 20 additions and 8 deletions

View File

@ -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