VUP is a user package repository for Void Linux. It builds .xbps packages from Void-style templates and publishes them through GitHub releases.

Repository layout

VUP stays close to xbps-src so maintainers can use the tools and template format they already know. Users get prebuilt packages instead of building every template locally.

Templates follow Void conventions, GitHub Actions builds them, and release assets act as XBPS repositories. I do not run a separate package server.

Each category gets its own release stream per architecture. GitHub Pages publishes an index that maps package names to categories, architectures, and versions so tooling can find the right repository without hardcoding everything.

CI rebuilds only changed packages, so adding templates does not make every change rebuild the full repository.

Website

VUP also has a web frontend at voiduserpackages.org. The package list supports category filtering and search, and each package page has quick-copy install commands for the selected architecture.

Users who do not want vuru can copy the full XBPS repository commands from the site. Each package page also has a source and template viewer similar to an AUR package page.

The site uses React Router with server-side rendering to support package browsing, filtering, source views, and generated install commands.

xbps-src patches

VUP carries a few patches against upstream void-packages / xbps-src to make the categorized repository layout work cleanly.

Upstream Void uses:

srcpkgs/<pkgname>/template

VUP uses:

srcpkgs/<category>/<pkgname>/template

The build tooling needs to understand that extra category directory. Patches in common.sh add category-aware template resolution, export the resolved package directory as _srcpkg_dir, expose XBPS_PKG_CATEGORY, and point FILESDIR and PATCHESDIR at the resolved path.

git.sh also uses _srcpkg_dir for SOURCE_DATE_EPOCH, so categorized templates still get correct source date handling. xbps-src itself checks srcpkgs/core/xbps-triggers/files before falling back to the flat trigger path.

Without those patches, each xbps-src command would need separate category handling.

Package categories

Packages live under:

vup/srcpkgs/<category>/<pkgname>/template

Packages are grouped into core, utilities, editors, messenger, and programming. VUP checks required template fields and catches common packaging mistakes in CI.

Policy

VUP checks whether a template builds. It does not certify the packaged software as safe, legal, maintained, or sensible.

Read a template before installing a package from an unknown maintainer. VUP does not remove that risk.