Add XLibre updater design spec
This commit is contained in:
57
docs/superpowers/specs/2026-04-02-xlibre-updater-design.md
Normal file
57
docs/superpowers/specs/2026-04-02-xlibre-updater-design.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# XLibre Updater Design
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
Add a repository-managed workflow for updating and building the Stormux XLibre package set in the correct dependency order, while keeping `xlibre-video-dummy-with-vt` manually maintained and reviewed against upstream `xlibre-video-dummy`.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
This design covers:
|
||||||
|
- correcting the package build order in `scripts/upgrade-xlibre.sh`
|
||||||
|
- reviewing and updating `scripts/xlibre-video-dummy-with-vt/PKGBUILD`
|
||||||
|
- regenerating `.SRCINFO` after PKGBUILD changes
|
||||||
|
|
||||||
|
This design does not automate AUR publication or rewrite the downstream package from upstream sources.
|
||||||
|
|
||||||
|
## Current State
|
||||||
|
The updater script currently builds packages in an order that does not match the XLibre dependency chain. `xlibre-video-dummy-with-vt` is also version-skewed relative to the current AUR `xlibre-video-dummy` package and needs a manual rebase of relevant packaging changes.
|
||||||
|
|
||||||
|
## Dependency Order
|
||||||
|
The package build order will be:
|
||||||
|
|
||||||
|
1. `xlibre-xserver-common`
|
||||||
|
2. `xlibre-xserver-devel`
|
||||||
|
3. `xlibre-input-libinput`
|
||||||
|
4. `xlibre-xserver`
|
||||||
|
5. `xlibre-video-fbdev`
|
||||||
|
6. `xlibre-video-dummy-with-vt`
|
||||||
|
|
||||||
|
This order reflects current AUR dependencies: `xlibre-xserver` requires `xlibre-xserver-common` and `xlibre-input-libinput`, while the input and video driver packages require `xlibre-xserver-devel` to build.
|
||||||
|
|
||||||
|
## Downstream Package Policy
|
||||||
|
`xlibre-video-dummy-with-vt` remains a separate, manually maintained package because it has a different maintainer and should not be auto-derived from the upstream AUR package.
|
||||||
|
|
||||||
|
The maintenance rule is:
|
||||||
|
- treat AUR `xlibre-video-dummy` as the packaging baseline
|
||||||
|
- manually port relevant upstream PKGBUILD changes into `xlibre-video-dummy-with-vt`
|
||||||
|
- keep only the intentional downstream delta needed for VT behavior
|
||||||
|
|
||||||
|
## Implementation Shape
|
||||||
|
`scripts/upgrade-xlibre.sh` will continue cloning packages from AUR and building them locally, but with the corrected order.
|
||||||
|
|
||||||
|
`scripts/xlibre-video-dummy-with-vt/PKGBUILD` will be updated to match the current upstream package structure where appropriate:
|
||||||
|
- current version and release
|
||||||
|
- current `depends` and `makedepends`
|
||||||
|
- current build flags and source layout
|
||||||
|
- regenerated checksums
|
||||||
|
|
||||||
|
The VT-specific patch remains the only behavioral divergence.
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
The script should fail fast on clone or build errors and stop rather than continuing with a broken package chain. Because package order is intentional, partial success should be considered incomplete.
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
Verification will be task-focused:
|
||||||
|
- confirm the updater script contains the corrected package order
|
||||||
|
- compare the downstream PKGBUILD against current upstream `xlibre-video-dummy`
|
||||||
|
- regenerate and verify `.SRCINFO`
|
||||||
|
- run `shellcheck` on the updater script
|
||||||
|
- run `makepkg --printsrcinfo` in the downstream package directory
|
||||||
Reference in New Issue
Block a user