<<< Back to Index


Feasibility Writeup: Converting “All AUR Packages” to Guix Packages


Executive summary

Short answer: not fully feasible in a strict, complete sense (at least not in any near-term window), but highly feasible for a very large and useful subset with a disciplined pipeline.


AUR and Guix have very different philosophies:


So this is less a “conversion” problem and more a continuous translation + curation problem.




Why full 1:1 conversion is unrealistic


1. Scale + churn mismatch


2. Different build assumptions


3. Licensing and source availability


4. Quality variance in AUR metadata


5. Guix review/maintenance burden




What *is* feasible


A staged program can likely convert a large high-value subset:


A practical target is not “all packages,” but:

1. Top N by usage/popularity

2. Packages meeting convertibility criteria

3. Ongoing sync for the convertible set




Convertibility tiers


Tier A (easy/automatable)


Tier B (semi-automatable)


Tier C (hard/manual)


Tier D (out-of-scope / policy conflict)




Proposed action plan


Phase 0 — Define scope and success criteria


Deliverables:




Phase 1 — Build inventory + prioritization pipeline


Deliverables:




Phase 2 — PKGBUILD parser and translator

Build a translator that maps PKGBUILD concepts to Guix package skeletons:


Deliverables:




Phase 3 — Dependency mapping engine


Deliverables:




Phase 4 — Reproducibility hardening

For each converted package:


Deliverables:




Phase 5 — CI and build farm integration


Deliverables:




Phase 6 — Human review + channel publishing


Deliverables:




Phase 7 — Continuous sync operations


Deliverables:




What would be needed


People


Infrastructure


Software/tooling


Governance




Risks and mitigations


1. Translator brittleness


2. Dependency explosion


3. Maintenance debt


4. Policy drift (freedom/reproducibility)




Recommended strategy


If this were my project, I’d do:

1. Top-500 AUR packages pilot by weighted popularity and convertibility score.

2. Ship into a private Guix channel first.

3. Measure success metrics for 6–8 weeks.

4. Expand to top-2k only if:


That gives real utility fast without pretending “all AUR packages” is immediately tractable.




Bottom line



<<< Back to Index