<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archsetup/tests/installer-steps/test_dotfiles_dependency_packages.py, branch main</title>
<subtitle>Builds a full dev workstation from a bare Arch Linux install.
</subtitle>
<id>https://git.cjennings.net/archsetup/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archsetup/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/'/>
<updated>2026-09-25T17:05:29+00:00</updated>
<entry>
<title>fix: declare libreoffice-fresh, imv and git-lfs</title>
<updated>2026-09-25T17:05:29+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-09-25T17:05:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=59760335a1fe7ec692a2a613d6565507de8f9502'/>
<id>urn:sha1:59760335a1fe7ec692a2a613d6565507de8f9502</id>
<content type='text'>
Each of the three backs something the dotfiles already ship, and each fails quietly rather than loudly when it's missing.

libreoffice-fresh is what the mimeapps.list defaults for presentations, documents and spreadsheets resolve to. With the package absent, xdg-mime doesn't error. It falls through to the next application claiming the type, which on a machine carrying the winvm dotfiles is powerpoint.desktop. Every .pptx opened a Windows VM for a month and the only symptom was that it felt slow.

imv is what gui-open --image execs. git-lfs is required by any repo tracking globs in LFS, which fails every checkout without it.

All three were installed before the 2026-08-13 rebuild and gone after it, because nothing in the installer declared them.

I made the test run supplemental_software with pacman_install stubbed as a recorder, asserting each package is invoked exactly once under both desktop environments. Running the function beats matching its source because only a run resolves the conditionals that could make "every machine installs this" false. A fourth assertion pins ranger present under dwm and absent under hyprland, so a harness that stopped resolving conditionals fails loudly instead of passing the other three vacuously.
</content>
</entry>
</feed>
