Arch User Repository (AUR) is objectively the magnum opus of Arch Linux. You can basically find anything in there. Java, IDEs, everything. Hell, maybe even viruses. No need to say, it is objectively the best part of the Arch Linux experience.
Personally, I use the
networkmanager-iwd AUR package to replace
wpa_supplicant stuff with
iwd, developed by Intel, somehow makes my laptop’s WiFi connection much more stable.
networkmanager-iwd furthermore replaces NetworkManager’s default WiFi backend with
iwd. It works great.
networkmanager-iwd is not a binary package.
Each time it updates, my laptop has to compile the whole
NetworkManager from source.
Needless to say, compiling such thing on my puny 4 core Core(tm) i7-1165G7, is a disaster.
So why not build a custom Arch Linux repository with the compiled versions? Yep.
Turned out continuous integration systems is perfect for this, specifically Gitlab (and Github). We can compile packages from source with Gitlab CI, then host the binary packages on Gitlab Pages.
Even better, it’s completely free.
I have created a
containing the package
To start, fork this repository.
.gitlab-ci.yml, the CI configuration
build.sh, the building script
- Several submodules containing build files of their respective packages
The build script iterates through all directories,
makepkg -s, and copies the compiled package into root directory.
The page setup script in
.gitlab-ci.yml simply copies compiled
public, and updates the repository database with
You might need to remove the
tags: - heavyweapons
.gitlab-ci.yml, as I used a custom CI runner.
Before triggering CI, add a custom CI variable
This determines the name of your custom repository.
After the CI has run its course, your custom Arch Linux should be live! To check, open
You should be able to download your repo db file.
To add your custom repo to your Arch installation,
add the following to
[<REPO_NAME>] SigLevel = Optional TrustAll Server = https://<gitlab-pages-url>/$arch
sudo pacman -Syy
And we are done! No more compiling packages from scratch.
Add Other Packages
To add a new custom package, you can simply clone the AUR repository as a submodule.
cd arch git clone https://aur.archlinux.org/tensorflow-rocm.git
Congratulations. You have now saved half an hour of your laptop’s battery life, and more importantly 5 minutes of your life, from compiling AUR packages.