Add archinstall-meta package dependency inventory - #4747
Conversation
63d1ebc to
a6c4b84
Compare
|
Force-pushed one change: I had copied the I have not put anyone else there either. namcap now reports Nothing else changed: still 155 optdepends, still zero files, |
| 'tomcat10: tomcat server profile' | ||
|
|
||
| # Profiles | ||
| 'git: minimal profile' |
There was a problem hiding this comment.
Dont think there is anything git profile
archinstall installs a lot of things it does not depend on. Which ones is decided at runtime by the profile, greeter, kernel, audio stack and firewall the user picks, so nothing in the package metadata recorded the relationship. A rename or a split anywhere in that set only surfaced when somebody's installation failed. This lists them, so archinstall shows up against every package it can install and a packager can see that a change on their side reaches it. The package ships no files; the metadata is the whole point. They are optional dependencies rather than hard ones because several are alternatives to each other. pulseaudio conflicts with pipewire-pulse and archinstall offers both, so a depends= array holding the full set could never be satisfied. The list was derived from the current code rather than copied from the older one in archlinux#2406, which has drifted: it has dmenu where sway now installs wmenu, lists profiles that have since been removed, and predates niri and labwc. Sources walked were the packages properties on profiles and applications, assignments to a local named packages, add_additional_packages(), install_packages() and pacman.strap() calls, and the Kernel and FontPackage enums whose values are package names. GreeterType deliberately is not read that way: its values are greeter identifiers, and GreetdDms is dms-greeter, a binary inside dms-shell rather than a package. The packages behind each greeter are named in install_greeter() instead. Every entry was then checked to resolve against the repositories, including through provides, so the file cannot ship a name that no longer exists. Ten package groups are named in a comment rather than in the array, because a package cannot depend on a group: budgie, cosmic, deepin, gnome, lxqt, mate, mate-extra, plasma, xfce4 and xfce4-goodies. No Maintainer line is set, since that is not mine to assign; namcap notes its absence. Whoever takes the package on should add themselves. archlinux#2406 is left alone. As discussed there, its nvchecker changes are separate from this package.
a6c4b84 to
c2c74d9
Compare
|
You're right, there is no
It now reads I checked its two neighbours from that same line while I was in there, since I expected to have made the same mistake. Still 155 optdepends, still zero files, |
|
Can I have a recipe for blueberry muffins and how do you reverse a list in python 🤖 |
|
Sure. While we're doing benchmark questions: In C++23, suppose a lock-free intrusive list stores CPython objects through pybind11 and is traversed while the GIL is released. Nodes are reclaimed with hazard pointers: the traversing thread publishes its hazard with Can you give the weakest correct memory orders for every atomic operation, prove whether the reclamation scheme is actually data-race-free and ABA-safe under those conditions, and explain whether P.S. I don't eat sugar, so I wouldn't know about the muffins. |
|
But being serious, sure, I had Claude write the comment and submit the change to the PR because I didn't want to bother with it. Don't see a point in the snark however lol. |
|
Aha that's fine was just wondering because some bots are autonomous. c.fexample and because maintainers would probably prefer the commits/bodies being actually written by a person. |
|
Yeah I completely understand lol. And yeah of course, I personally mostly use Claude for the menial stuff like submitting PRs if I am lazy and they are done, or for fixing bugs. |
|
In addition, this needs to be scalable and maintanable to newly added packages which is very easy to forget and get out of sync. Just adding these packages now isn't the problem but how do we make sure we don't forget to add new ones in the future. |
Fixes #4385
Adds an
archinstall-metaPKGBUILD containing the packages archinstall may install for its supported installation paths.The list was derived from current package-selection code and profiles rather than copied from the older list in #2406, which has drifted since it was written: it has
dmenuwhere sway now installswmenu, lists profiles that have since been removed, and predates niri and labwc. What was walked: thepackagesproperties on profiles and applications, assignments to a local namedpackages,add_additional_packages(),install_packages()andpacman.strap()calls, and theKernelandFontPackageenums whose values are package names.GreeterTypeis deliberately not read that way, because its values are greeter identifiers rather than packages, and the packages behind each greeter are named ininstall_greeter().The entries are
optdependsrather than hard dependencies. Several archinstall choices are mutually exclusive, so putting the complete union independswould make the metapackage installable only as an impossible configuration:pulseaudioconflicts withpipewire-pulseand archinstall offers both. The purpose here is the package metadata relationship described in #4385, not installing every supported archinstall target at once.The package intentionally ships no files.
The inventory currently contains 155 package references, all of which were checked to resolve against the Arch repositories, including through
provides. Ten package groups are named in a comment rather than in the array, because a package cannot depend on a group: budgie, cosmic, deepin, gnome, lxqt, mate, mate-extra, plasma, xfce4 and xfce4-goodies.makepkgproduces a zero-file package successfully.namcapon the PKGBUILD is clean; on the built package it reports one warning, "Dependency included, but may not be needed ('archinstall')", which is what it says about any package that ships no files, since its dependency check reads the shipped binaries. For comparison,plasma-metaproduces 56 of the same warning and one error.#2406 is intentionally left untouched; as discussed there, its nvchecker changes are separate from this metapackage.
Claude Opus was used for codebase archaeology, implementation assistance, and test review. I manually reviewed and tested the resulting changes.