Buildbot for Archlinux based repos with different
x86-64 feature levels, -O3 and
LTO.
Warning
Users of prebuilt kernel module packages, such as nvidia-open (not nvidia-open-dkms), are strongly encouraged to
read the FAQ about directly linked kernel modules before enabling any repos.
Caution
Before enabling any of these repos, make sure that your system supports the level of functionality you want to
enable (e.g. x86-64-v3).
If you don't check first, you may not be able to boot your system and will have to downgrade any packages you may
have upgraded.
Check which feature levels your CPU supports with
/lib/ld-linux-x86-64.so.2 --helpExample output snippet for a system supporting up to x86-64-v3:
Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
Note
ALHP repos for x86-64-v2, x86-64-v3 and x86-64-v4 are currently available. You can see all available
repositories here.
Install alhp-keyring and alhp-mirrorlist from the AUR.
Example with yay:
yay -S alhp-keyring alhp-mirrorlistalhp-keyring provides the current signing keys used by ALHP, alhp-mirrorlist a selection of mirrors.
Edit /etc/pacman.d/alhp-mirrorlist and comment in/out the mirrors you want to enable/disable.
By default, a CDN mirror provided by ALHP is selected.
Note
cdn.alhp.dev and alhp.dev are provided directly by ALHP. If you have problems with a mirror,
open an issue at the mirrorlist repo.
Add the ALHP repos to your /etc/pacman.conf. Make sure the appropriate ALHP repository is above the Archlinux
repo.
Example for x86-64-v3, with the optional tips explained below marked # tip:
[core-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
# tip: hide duplicate search results
Usage = Sync Install Upgrade
# tip: fall back to a lower level
[core-x86-64-v2]
Include = /etc/pacman.d/alhp-mirrorlist
Usage = Sync Install Upgrade
[core]
Include = /etc/pacman.d/mirrorlist
[extra-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
# tip: hide duplicate search results
Usage = Sync Install Upgrade
# tip: fall back to a lower level
[extra-x86-64-v2]
Include = /etc/pacman.d/alhp-mirrorlist
Usage = Sync Install Upgrade
[extra]
Include = /etc/pacman.d/mirrorlist
# if you need [multilib] support
[multilib-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
# tip: hide duplicate search results
Usage = Sync Install Upgrade
# tip: fall back to a lower level
[multilib-x86-64-v2]
Include = /etc/pacman.d/alhp-mirrorlist
Usage = Sync Install Upgrade
[multilib]
Include = /etc/pacman.d/mirrorlistReplace x86-64-v3 with the x86-64 feature level you want to enable.
Tip
Hide duplicate search results: Usage = Sync Install Upgrade leaves out Search, so pacman -Ss lists each
package once, from the Arch repos, while installs and upgrades still come from ALHP.
Tip
Fall back to a lower level: ALHP repos of a lower level can be stacked below yours. A package missing from your
level, e.g. because it failed to build there, then comes from the lower level instead of Arch. Once your level has it,
pacman only switches on the package's next version. Leave these sections out on x86-64-v2.
pacman -Suy
To disable ALHP, remove all x86-64-vX entries in /etc/pacman.conf and remove alhp-keyring and alhp-mirrorlist.
After that, you can update pacman's databases and downgrade all packages, like
pacman -Suuy
Packages are built with LTO, unless it is known to break them or their LTO link fails, in which case they are built without it. More details. LTO status is visible per package on the package status page.
KCFLAGS/KCPPFLAGS are used to build the kernel packages with our additional flags.
ALHP's kernel packages carry our increased pkgrel in their kernel release (e.g. -arch1-1.1 instead of -arch1-1),
while prebuilt module packages such as nvidia-open, nvidia-open-lts, acpi_call, vhba-module or r8168-lts are
built for Arch's kernel. Their modules will not load with an ALHP kernel. Use the dkms variant where one exists
(e.g. nvidia-open-dkms, acpi_call-dkms, vhba-module-dkms), which builds the module for the running kernel.
This is tracked in #68.
You want to mirror ALHP? You are welcome to do so, see alhp-mirrorlist for how to become one.
Everything in core, extra and multilib, except any architecture packages, Haskell packages (GHC ignores our
flags) and a list of excluded packages, which is tracked with the reasons in
#16. The
package status page shows every package's state, including why a package was skipped
(e.g. blacklisted).
Also relevant for: I can't find package X / Application X fails to start because it links to an old/newer lib
ALHP builds packages after they are released in the official Archlinux repos (excluding [*-testing]).
This will cause packages to be delayed if the current batch contains many packages, or packages that take a while to
build (e.g. chromium).
You can always check on the progress of the current build cycle on the package status page.
Please refrain from opening issues caused by packages currently in queue/not yet built/not yet moved to the repo.
Please keep in mind that large rebuilds such as openssl or python can take days to complete on our current build
hardware. Upgrading while such a rebuild is in progress can leave ALHP and Arch packages at mismatched versions, which
is tracked in #281.
ALHP provides a debuginfod instance under debuginfod.alhp.dev.
To use it, have debuginfod installed on your system and add it to your DEBUGINFOD_URLS with:
echo "https://debuginfod.alhp.dev" > /etc/debuginfod/alhp.urlsIf you want to switch between levels, e.g. from x86-64-v3 to x86-64-v4, you need to revert to official packages
first, and then enable your desired repos again.
- Comment out or remove the ALHP repo entries in
/etc/pacman.conf. - Downgrade packages with
pacman -Suuy. - Clear pacman's package cache with
pacman -Scc. - Uncomment/add your desired repos to
/etc/pacman.confand update withpacman -Suy.
For any non-issue questions, or if you just want to chat, ALHP has a Matrix
room here (#alhp@ofsg.eu). You can also find me (@idlegandalf)
in #archlinux:archlinux.org.
ITSH hosts ALHP's git repositories, issue tracker and status page monitoring.
I appreciate any money you want to throw my way, but donations are strictly optional. Donations go towards the build server and CDN. Also consider donating to the Archlinux Team, without their work ALHP would not be possible.
This project and all of its source code is released under the terms of the GNU General Public License, version 2 or any later version. See LICENSE for details.