ent | ||
.gitignore | ||
.golangci.yaml | ||
alhp.service | ||
buildmanager.go | ||
config_dist.yaml | ||
flags.yaml | ||
go.mod | ||
go.sum | ||
housekeeping.go | ||
LICENSE | ||
main.go | ||
package.go | ||
proto_package_test.go | ||
proto_package.go | ||
README.md | ||
rm_chroot.py | ||
utils.go |
ALHP
Buildbot for Archlinux based repos with different
x86-64 feature levels, -O3
and
LTO.
Warning
NVIDIA graphics users using the proprietary driver are strongly encouraged to read the FAQ about Linux kernel modules before enabling any repos.
Quick Start
1. Check your system for support
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 --help
Example 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
andx86-64-v4
are currently available. You can see all available repositories here.
2. Install keyring & mirrorlist
Install alhp-keyring and alhp-mirrorlist from the AUR.
Example with yay
:
yay -S alhp-keyring alhp-mirrorlist
alhp-keyring
provides the current signing keys used by ALHP, alhp-mirrorlist
a selection of mirrors.
3. Choose a mirror (optional)
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
andalhp.dev
are provided directly by ALHP. If you have problems with a mirror, open an issue at the mirrorlist repo.
4. Modify pacman.conf
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
:
[core-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
# if you need [multilib] support
[multilib-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
Replace x86-64-v3
with the x86-64 feature level you want to enable.
Tip
Multiple layers can be stacked as described in ALHP/ALHP.GO#255 (comment).
5. Update package database and upgrade
pacman -Suy
FAQ
Remove ALHP packages
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
LTO
Enabled for all packages built after 04 Nov 2021 12:07:00 UTC. More details. LTO status is visible per package on the package status page.
Linux Kernel packages
KCFLAGS
/KCPPFLAGS
are used to build the kernel packages with our additional flags.
Directly linked kernel modules
Due to our increase in pkgrel, building the kernel packages will break any directly linked modules such as nvidia
(not nvidia-dkms
) or virtualbox-host-modules-arch
(not virtualbox-host-dkms
). Their respective dkms
-variant is
not affected. This issue is being tracked in #68, a solution is being worked on.
Mirrors
You want to mirror ALHP? You are welcome to do so, see alhp-mirrorlist for how to become one.
What packages are built
Packages excluded
from building (besides all any
architecture packages) are being listed in issue #16.
See also package status page (search for blacklisted
).
Why is package X not up-to-date
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 build/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.
Debug symbols
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.urls
Switch between levels
If 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.conf
and update withpacman -Suy
.
Matrix
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
.
Donations
I appreciate any money you want to throw my way, but donations are strictly optional. Donations are primarily used to pay for server costs. Also consider donating to the Archlinux Team, without their work ALHP would not be possible.
License and Legal
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.