From 2e10a8856d0bdd4c8f77c53320221ad1b8deaa13 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 13 Nov 2025 23:26:21 -0600 Subject: fix(archsetup): implement critical bug fixes and test improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit addresses several high-priority bugs and enhances the testing infrastructure: **Bug Fixes:** 1. Add root permission check at script start to fail fast with clear error message 2. Disable debug package installation by adding --nodebug flag to all yay calls 3. Replace unsafe `git pull --force` with safe rm + fresh clone to prevent data loss 4. Add geoclue package with correct systemd service configuration for geolocation 5. Add completion marker for reliable automated test detection **Testing Infrastructure:** - Add comprehensive VM-based testing framework in scripts/testing/ - Fix test script pgrep infinite loop using grep bracket self-exclusion pattern - Add network diagnostics and pre-flight checks - Support snapshot-based testing for reproducible test runs **Package Management:** - Remove anki (build hangs 98+ minutes) - Remove adwaita-color-schemes (CMake build issues) Test Results: 0 errors, 1,363 packages installed in 40 minutes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- TODO.org | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 85 insertions(+), 16 deletions(-) (limited to 'TODO.org') diff --git a/TODO.org b/TODO.org index 205785d..9fa4f62 100644 --- a/TODO.org +++ b/TODO.org @@ -3,6 +3,26 @@ #+DATE: 2025-11-06 #+FILETAGS: :v2mom:strategy:archsetup: +* URGENT Package Installation Fixes +** TODO [#A] Replace nitrogen with feh for wallpaper management +Nitrogen is no longer in the official Arch repos. Need to: +- Replace nitrogen with feh in archsetup script +- Update ranger configuration to use feh instead of nitrogen +- Update emacs configuration to use feh instead of nitrogen +- Update any scripts that change wallpaper to use feh instead of nitrogen +- Test that feh provides equivalent functionality + +TEMPORARILY DISABLED in archsetup:668 + +** TODO [#A] Disable or fix adwaita-color-schemes AUR package +adwaita-color-schemes is failing to build due to CMake version incompatibility +in qgnomeplatform dependency. Either: +- Disable for now and wait for AUR maintainer to fix +- Find alternative color scheme package +- Investigate if we actually need this package + +TEMPORARILY DISABLED in archsetup:688 + * What is V2MOM? V2MOM is a strategic framework that provides clarity for decision-making, ruthless prioritization, and measuring progress. It transforms vague intentions into concrete action plans. @@ -119,8 +139,9 @@ The script handles edge cases gracefully, provides detailed error messages with *Why this is Method 1:* Can't build testing infrastructure or maintain packages if the script doesn't work. This is the foundation—everything else depends on reliable execution. -*** TODO [#A] Fix: no dotfiles were set up on last run -CRITICAL - system is unusable without dotfiles; all 50+ scripts and configs missing +*** DONE [#A] Fix: no dotfiles were set up on last run +CLOSED: [2025-11-13 Wed] +RESOLVED - VM test confirms dotfiles are properly stowed as symlinks; all configs and scripts in place *** TODO [#A] Add root check at script start Prevents running with wrong permissions that cause silent failures @@ -149,21 +170,40 @@ Currently archsetup downloads a -debug package for every package installed, doub Add ~!debug~ to OPTIONS in /etc/makepkg.conf or create ~/.config/pacman/makepkg.conf with the setting Critical performance issue - cuts install time in half +*** TODO [#B] Review slow and failed packages from 8GB RAM test +See [[file:docs/slow-failed-packages.org][Slow and Failed Packages Analysis]] + +Test run from 2025-11-09 with 8GB RAM, 50GB disk identified: +- 2 packages that hang indefinitely (anki, tageditor) +- 4 packages that fail to install (nitrogen, gtk-engine-murrine, adwaita-color-schemes, vagrant) +- Several slow but successful packages (multimarkdown, ptyxis, thunderbird, etc.) + +High priority actions: +- Remove or make optional: anki (hangs 98 min), tageditor (hangs on qt5-webengine) +- Investigate repository/build issues for failing packages + *** TODO [#B] Resolve all 8 failed packages from last run -**** TODO [#B] adwaita-color-schemes (CMake compatibility issue) -Error: "Compatibility with CMake < 3.5 has been removed" - qgnomeplatform build fails -**** TODO [#B] geoclue (service doesn't exist) -Failed to enable unit: Unit geoclue-agent@cjennings.service does not exist - check if service name is correct -**** TODO [#B] tor-browser (PGP key import failure) -PGP key EF6E286DDA85EA2A4BA7DE684E2C6E8793298290 required but keyserver receive failed: No data -**** TODO [#B] multimarkdown (CMake compatibility issue) -Same CMake < 3.5 compatibility error as adwaita-color-schemes -**** TODO [#B] vagrant (deprecated/not found in repos) -Error: target not found: vagrant - package no longer in official repos, may need AUR alternative -**** TODO [#B] anki (missing .gitconfig during build) -Cargo build failed: "failed to stat '/home/cjennings/.gitconfig'" - .gitconfig doesn't exist yet during build -**** TODO [#B] figlet-fonts (FTP download with curl error) -curl: option --ftp-pasv: is unknown - FTP download from ftp://ftp.figlet.org fails +**** DONE [#B] adwaita-color-schemes (CMake compatibility issue) +CLOSED: [2025-11-13 Wed] +REMOVED from archsetup - package removed due to CMake build issues +**** DONE [#B] geoclue (service doesn't exist) +CLOSED: [2025-11-13 Wed] +FIXED - Added geoclue package to archsetup and enabled correct service name: geoclue.service (was incorrectly trying geoclue-agent@cjennings.service) +**** DONE [#B] tor-browser (PGP key import failure) +CLOSED: [2025-11-13 Wed] +PGP key issue resolved - tor-browser-bin 15.0-1 successfully installs in VM test +**** DONE [#B] multimarkdown (CMake compatibility issue) +CLOSED: [2025-11-13 Wed] +CMake issue resolved - multimarkdown 6.7.0-2 successfully installs in VM test +**** DONE [#B] vagrant (deprecated/not found in repos) +CLOSED: [2025-11-13 Wed] +vagrant 2.4.9-1 now available and successfully installs in VM test +**** DONE [#B] anki (missing .gitconfig during build) +CLOSED: [2025-11-13 Wed] +REMOVED from archsetup - package removed due to build issues (hangs 98+ minutes, missing .gitconfig during cargo build) +**** DONE [#B] figlet-fonts (FTP download with curl error) +CLOSED: [2025-11-13 Wed] +FTP download issue resolved - figlet-fonts 1.1-1 successfully installs in VM test *** TODO [#B] Improve error handling: UFW firewall, rmmod pcspkr, mkdir missing quotes **** TODO [#B] Fix UFW firewall error handling (archsetup:395,410) @@ -285,6 +325,27 @@ Core automation infrastructure - enables continuous validation *** TODO [#A] Generate recovery scripts from test failures Auto-create post-install fix scripts for failed packages - makes failures actionable +*** TODO [#B] Implement Testinfra test suite for archsetup +Create comprehensive integration tests using Testinfra (Python + pytest) to validate archsetup installations + +See complete documentation: [[file:docs/testing-strategy.org::*Test Automation Framework][Testing Strategy - Test Automation Framework]] + +Tests should cover: +- Smoke tests: user created, key packages installed, dotfiles present +- Integration tests: services running, configs valid, X11 starts, apps launch +- End-to-end tests: login as user, startx, open terminal, run emacs, verify workflows + +Framework: Testinfra with pytest (SSH-native, built-in modules for files/packages/services/commands) +Location: scripts/testing/tests/ directory +Integration: Run via pytest against test VMs after archsetup completes +Benefits: Expressive Python tests, excellent reporting, can test interactive scenarios + +The testing-strategy.org document includes: +- Complete example test suite (test_integration.py) +- Tiered testing strategy (smoke/integration/end-to-end) +- How to run tests and integrate with run-test.sh +- Comparison with alternatives (Goss) + *** TODO [#B] Set up automated test schedule Weekly full run to catch deprecated packages even without commits @@ -389,6 +450,14 @@ If laptop is stolen, data remains protected **** TODO [#A] Document which ports need to be open (SSH, Proton Bridge, etc.) **** TODO [#A] Test that all needed services work with firewall enabled +*** TODO [#C] Fix VM cloning machine-ID conflicts for parallel testing +Currently using snapshot-based testing which works but limits to sequential test runs +Cloned VMs fail to get DHCP/network even with machine-ID manipulation (truncate/remove) +Root cause: Truncating /etc/machine-id breaks systemd/NetworkManager startup +Need to investigate proper machine-ID regeneration that doesn't break networking +Would enable parallel test execution in CI/CD (Method 2) +Priority C because snapshot-based testing meets current needs + *** TODO [#A] Complete security education within 3 months Read recommended resources to make informed security decisions (see metrics for Claude suggestions) -- cgit v1.2.3