MCPcopy Index your code
hub / github.com/an0nfunc/ALHP

github.com/an0nfunc/ALHP @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
914 symbols 2,106 edges 29 files 816 documented · 89%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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 and x86-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 and alhp.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 https://somegit.dev/ALHP/ALHP.GO/issues/255#issuecomment-3335.

[!TIP] Usage = Sync Install Upgrade can be added to the ALHP repo sections to avoid seeing duplicate package search results.

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.

  1. Comment out or remove the ALHP repo entries in /etc/pacman.conf.
  2. Downgrade packages with pacman -Suuy.
  3. Clear pacman's package cache with pacman -Scc.
  4. Uncomment/add your desired repos to /etc/pacman.conf and update with pacman -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.

Donate using Liberapay

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.

Extension points exported contracts — how you extend this code

Committer (Interface)
Committer is the interface that wraps the Commit method. [2 implementers]
ent/tx.go
OrderFunc (FuncType)
OrderFunc applies an ordering on the sql selector. Deprecated: Use Asc/Desc functions or the package builders instead.
ent/ent.go
Option (FuncType)
Option function to configure the client.
ent/client.go
OrderOption (FuncType)
OrderOption defines the ordering options for the DBPackage queries.
ent/dbpackage/dbpackage.go
DBPackageFunc (FuncType)
The DBPackageFunc type is an adapter to allow the use of ordinary function as DBPackage mutator.
ent/hook/hook.go
TestingT (Interface)
TestingT is the interface that is shared between testing.T and testing.B and used by enttest.
ent/enttest/enttest.go
DBPackage (FuncType)
DBPackage is the predicate function for dbpackage builders.
ent/predicate/predicate.go
Rollbacker (Interface)
Rollbacker is the interface that wraps the Rollback method. [2 implementers]
ent/tx.go

Core symbols most depended-on inside this repo

SetField
called by 56
ent/mutation.go
Name
called by 48
package.go
ClearField
called by 34
ent/mutation.go
Update
called by 33
ent/dbpackage.go
SetStatus
called by 24
ent/mutation.go
String
called by 23
ent/ent.go
FieldCleared
called by 19
ent/mutation.go
Save
called by 17
ent/dbpackage_update.go

Shape

Method 502
Function 351
Struct 37
FuncType 14
TypeAlias 7
Interface 3

Languages

Go100%

Modules by API surface

ent/dbpackage/where.go232 symbols
ent/mutation.go159 symbols
ent/dbpackage_update.go137 symbols
ent/ent.go60 symbols
ent/dbpackage_create.go51 symbols
ent/dbpackage_query.go41 symbols
ent/client.go39 symbols
ent/dbpackage/dbpackage.go34 symbols
utils.go33 symbols
ent/tx.go26 symbols
ent/hook/hook.go20 symbols
proto_package.go18 symbols

Datastores touched

database_nameDatabase · 1 repos

For agents

$ claude mcp add ALHP \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact