1
0
Fork
You've already forked xut
0
forked from mobinmob/xut
xtra user templates - Build and install packages for Void Linux, using templates from the abyss-packages unofficial repo
  • Shell 83.1%
  • Roff 14.7%
  • Makefile 2.2%
Find a file
2025年12月21日 18:53:52 +01:00
LICENSE Add the proper license... 2024年11月17日 20:28:17 +02:00
Makefile Fix Makefile 2025年12月21日 18:53:52 +01:00
README.md README: add information about the -d argument. 2025年12月04日 23:02:05 +02:00
xut fix empty args test, improve warning message, exit 1. 2025年12月21日 12:44:45 +02:00
xut.1 Add working dir override with $CONF_WORKDIR. 2025年11月22日 17:27:29 +01:00
xut.1.scd Add working dir override with $CONF_WORKDIR. 2025年11月22日 17:27:29 +01:00
xutconf.sample feat: Don't hide xutconf in .config 2025年10月13日 22:47:41 +02:00

xut : xtra user templates

Build and install packages for Void Linux, from the abyss-packages unofficial repo

This script is in the alpha stage.

Why and how

The xbps-src package builder for voidlinux is a really powerful tool, but it only works with a single repository, the void-packages repo. The only straightforward way to add software to repo provide it in an accessible way to the users is to send PRs and be accepted. That created a well-maintained and curated repository by the distribution developers but impedes the inclusion of software that the same maintainers decide - for entirely valid reasons - to not accept.

xut tries to provide a solution for users that need more packages that cannot be provided in the official repos. It clones both the void-packages and abyss-packages repository (and other third party repos), merges the templates from unofficial repos to the clone of void-packages and installs sw with a single command.

Install and setup

  1. Clone this repo, change into the xut/ subdirectory and install using the Makefile.

  2. Use the xutconf.sample if you want to modify configuration.

  3. The script depends on:

    • sh and the posix userland,
    • xbps >= 0.60,
    • git,
    • mktemp,
    • the xi tool from the xtools package which requires a working sudo configuration, (for installation/update).
    • the tput tool from ncurses (optional).

    Note that xut will run in other distributions that have the above tools available, but installing (-i) and upgrading (-u) packages is disabled. In this case, xi is not needed.

Todo

  • Deal with shlibs in order to package more complex sw or modified packages from the upstream repos.
  • Implement a way to handle package updates gracefully. [-u argument]
  • Search for a practical way to enable more than one unofficial repos (削除) [naive implementation merged from the manyrepos branch] (削除ここまで) (Inteligent merging by @zenobit available from 0.4.0).
  • ... (suggestions are welcome, working code even more welcome)

Usage

xut [options]
OPTIONS Info
-s Sync the repos
-l Keep a log file (5 most recent log files remain)
-h Display this usage information.
-d Enable debugging and logging output.
-b <package1,package2> Build a (comma-separated) list of packages.
-i <package1,package2> Build and install a (comma-separated) list of packages.
-x Give xbps-src commands.
-q Search for in available templates.
-u Update packages.

Examples

  • Build packages (without installing them):
xut -b package1,package2
  • Sync repos and install packages:
xut -si package1,package2
  • Use the above command with logging enabled:
xut -sli package1,package2
  • Execute an xbps-command in the merged repo:
xut -x <command>
  • Update packages after syncing repos:
xut -su