2021-11-22 00:40:27 +01:00
# ALHP
2022-02-14 13:05:38 +01:00
[](https://git.harting.dev/anonfunc/ALHP.GO/src/branch/master/LICENSE)
[](https://alhp.anonfunc.dev/packages.html)
[](https://goreportcard.com/report/git.harting.dev/ALHP/ALHP.GO)
[](https://pkg.go.dev/git.harting.dev/ALHP/ALHP.GO)
[](https://liberapay.com/anonfunc/)
2021-06-10 21:32:11 +02:00
2021-11-25 22:29:32 +01:00
Buildbot for Archlinux-based repos build with different
[x86-64 feature levels ](https://www.phoronix.com/scan.php?page=news_item&px=GCC-11-x86-64-Feature-Levels ), `-O3` and
[LTO ](https://en.wikipedia.org/wiki/Interprocedural_optimization ).
2021-06-10 21:32:11 +02:00
2021-11-26 01:05:47 +01:00
> ⚠️ NVIDIA graphic users using the **proprietary driver** is highly recommended reading the
2021-11-27 00:15:52 +01:00
> [FAQ about Linux kernel modules](#directly-linked-kernel-modules) ⚠️
2021-11-26 01:05:47 +01:00
2021-11-29 11:35:17 +01:00
## Quickstart
2021-06-10 21:32:11 +02:00
2021-11-29 11:35:17 +01:00
### 1. Check your system for support
> **Important**: Before you enable any of these repos, check if your system supports the feature level you want to enable
(e.g. `x86-64-v3` ).
> **If you don't check beforehand, you might be unable to boot your system anymore and need to downgrade any package that you may have upgraded.**
Check which feature-levels your CPU supports with
2021-11-25 22:29:32 +01:00
```bash
/lib/ld-linux-x86-64.so.2 --help
```
2021-06-10 21:32:11 +02:00
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)
```
2021-11-29 11:35:17 +01:00
### 2. Install keyring & mirrorlist
2021-06-10 21:32:11 +02:00
2021-11-29 11:35:17 +01:00
Install [alhp-keyring ](https://aur.archlinux.org/packages/alhp-keyring/ )
and [alhp-mirrorlist ](https://aur.archlinux.org/packages/alhp-mirrorlist/ ) from **AUR ** .
2021-06-10 21:32:11 +02:00
2021-11-29 11:35:17 +01:00
Example with `yay` :
```bash
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)
2021-11-14 12:36:18 +01:00
2021-11-25 22:29:32 +01:00
Edit `/etc/pacman.d/alhp-mirrorlist` and comment out/in mirrors you want to have enabled/disabled. Per default selected
is a cloudflare-based mirror which
[*should* provide decent speed worldwide ](https://git.harting.dev/ALHP/ALHP.GO/issues/38#issuecomment-891 ).
2021-11-29 11:35:17 +01:00
> Note: Only `alhp.harting.dev` is hosted by ALHP directly. If you have problems with a mirror,
> open an issue at [the mirrorlist repo](https://git.harting.dev/ALHP/alhp-mirrorlist).
2021-11-14 12:36:18 +01:00
2021-11-29 11:35:17 +01:00
### 4. Modify /etc/pacman.conf
2021-11-14 12:36:18 +01:00
2021-11-25 22:29:32 +01:00
Add the appropriate repos **above ** your regular Archlinux repos.
2021-06-10 21:32:11 +02:00
2021-11-29 11:35:17 +01:00
Example for `x86-64-v3` :
2021-11-14 12:36:18 +01:00
2021-06-10 21:32:11 +02:00
```editorconfig
[core-x86-64-v3]
2021-11-25 22:29:32 +01:00
Include = /etc/pacman.d/alhp-mirrorlist
2021-06-10 21:32:11 +02:00
[extra-x86-64-v3]
2021-11-25 22:29:32 +01:00
Include = /etc/pacman.d/alhp-mirrorlist
2021-06-10 21:32:11 +02:00
[community-x86-64-v3]
2021-11-25 22:29:32 +01:00
Include = /etc/pacman.d/alhp-mirrorlist
2021-06-10 21:32:11 +02:00
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
```
2021-12-09 17:35:17 +01:00
Replace `x86-64-v3` with the x86-64 feature level you want to enable.
> ALHP only builds for `x86-64-v3` and `x86-64-v2` at the moment (list is subject to change). You can see all available repositories
2021-11-25 22:37:04 +01:00
> [here](https://alhp.harting.dev/).
2021-06-10 21:32:11 +02:00
2021-11-29 11:35:17 +01:00
### 5. Update package database and upgrade:
2021-12-09 17:35:17 +01:00
2021-06-10 21:32:11 +02:00
```
2021-07-08 14:28:33 +02:00
pacman -Suy
2021-07-08 15:25:58 +02:00
```
2021-11-29 11:35:17 +01:00
## How to disable
2021-07-08 15:25:58 +02:00
2021-11-25 22:29:32 +01:00
To disable ALHP remove all * x86-64-vX * entries in `/etc/pacman.conf` and remove `alhp-keyring` and `alhp-mirrorlist` .
2021-07-08 15:25:58 +02:00
After that you can refresh pacmans databases and downgrade all packages like:
```
pacman -Suuy
```
2021-07-08 15:26:47 +02:00
2021-08-12 14:28:13 +02:00
## FAQ
2021-11-04 13:16:22 +01:00
### LTO
Enabled for all packages build after 04 Nov 2021 12:07:00
UTC. [More details. ](https://git.harting.dev/anonfunc/ALHP.GO/issues/52 )
2021-11-25 22:29:32 +01:00
LTO status is visible per package on the package status page.
2021-11-13 20:25:58 +01:00
2021-11-26 01:05:47 +01:00
### Linux Kernel
2022-07-11 22:12:05 +02:00
ALHP provides patched kernels (except `linux-zen` , which has these patches already applied) that build
with `-march=x86-64-vN` . Thanks to
2021-11-26 01:05:47 +01:00
[graysky ](https://github.com/graysky2 ) for providing [these patches ](https://github.com/graysky2/kernel_compiler_patch ).
### Directly linked kernel modules
**Above-mentioned patching breaks all directly linked modules** like `nvidia` (not `nvidia-dkms` ) or
2021-11-26 01:08:09 +01:00
`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.
2021-11-26 01:05:47 +01:00
2021-11-14 12:36:18 +01:00
### Mirrors
You want to mirror ALHP? You are welcome to do
2021-11-25 22:29:32 +01:00
so, [see alhp-mirrorlist for how to become one ](https://git.harting.dev/ALHP/alhp-mirrorlist#how-to-become-a-mirror ).
2021-11-14 12:36:18 +01:00
2021-11-29 11:35:17 +01:00
### What packages are built
Packages [excluded ](https://www.reddit.com/r/archlinux/comments/oflged/alhp_archlinux_recompiled_for_x8664v3_experimental/h4fkinu?utm_source=share&utm_medium=web2x&context=3 )
from building (besides all 'any' architecture packages) are being listed in issue #16 .
Also [package status page ](https://alhp.anonfunc.dev/packages.html ).
2022-02-14 12:15:04 +01:00
### Debug symbols
2022-02-14 16:45:29 +01:00
ALHP provides a debuginfod instance under `debuginfod.harting.dev` .
2022-02-14 12:15:04 +01:00
2022-02-14 16:45:29 +01:00
To use it, have `debuginfod` installed on your system and add it to your `DEBUGINFOD_URLS` with:
2022-02-14 12:15:04 +01:00
```bash
2022-02-14 16:45:29 +01:00
echo "https://debuginfod.harting.dev" > /etc/debuginfod/alhp.urls
2022-02-14 12:15:04 +01:00
```
2021-11-25 22:29:32 +01:00
## Donations
2021-11-13 20:25:58 +01:00
2021-11-25 22:29:32 +01:00
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** ](https://archlinux.org/donate/ ), without their
work ALHP would not be possible.
2021-11-13 20:25:58 +01:00
2022-09-06 14:25:57 +02:00
[](https://liberapay.com/anonfunc/)
## License and Legal
2022-09-06 14:28:05 +02:00
This project including all of its source files is released under the terms of the GNU General Public License version 2 (or any later version). See [LICENSE ](https://git.harting.dev/ALHP/ALHP.GO/src/branch/master/LICENSE ) for details.