You are not logged in.

#1 2024-05-30 23:46:52

patlefort
Member
Registered: 2021-01-30
Posts: 16

pat-aur: Highly configurable aur helper. Build in clean containers.

GitLab: https://gitlab.com/patlefort/pat-aur
AUR: https://aur.archlinux.org/pkgbase/pat-aur-git

pat-aur is a new AUR helper that aims at building packages in clean containers. Current popular aur helpers don't do that by default, my goal is rectify this by making it mandatory.

The core features are:

  • Correctness: Build in clean containers always.

  • Configurable: Configure builds by host, target and package.

  • Parallelization: Build multiple packages in parallel. Parallel download of sources and dependencies.

  • Cross-compilation: Build packages for other architectures. (with caveats and limitations at the moment)

pat-aur is not a pacman wrapper. It does not aim at replacing pacman. There are a few things to know at the moment:

  • ninja: I created a package named ninja-jobserver, which is ninja with job server client and server support. It needs to be installed on the host and mapped in target config for better parallelization across builds. Read the readme. Hopefully it will be merged into ninja soon.

  • elvish-git need to be used. The next stable version should be fine.

  • bubblewrap: pat-aur need bubblewrap with overlayfs support, you will have to use bubblewrap-overlayfs for the moment.

  • Providers needs to be mapped manually in target config. This is a design decision that make developing pat-aur much simpler and I also think it's better overall to know exactly what is going to be used by configuring it manually.

  • Containers are unprivileged, meaning they do not require root access. I haven't run into any issues so far but it's not impossible.

By default with a little bit of configuration, it should work fine for the typical use case of simply building and installing packages for your own x86_64 machine. For more advanced use cases, read the readme, the manual and the example config files. In any cases, read the setup section of the readme for a quick setup.

I think it is developed enough to be used by other people at this stage and I could use testers and some feedback.

Last edited by patlefort (2024-05-31 21:44:22)

Offline

#2 2024-06-26 12:32:57

Alad
Wiki Admin/IRC Op
From: Bagelstan
Registered: 2014-05-04
Posts: 2,420
Website

Re: pat-aur: Highly configurable aur helper. Build in clean containers.

This looks really cool, especially the approaches for unprivileged building and parallelization. When I got some more time I'll definitely give it a try smile


Mods are just community members who have the occasionally necessary option to move threads around and edit posts. -- Trilby

Offline

#3 2025-04-27 11:04:27

patlefort
Member
Registered: 2021-01-30
Posts: 16

Re: pat-aur: Highly configurable aur helper. Build in clean containers.

A little bit of news: I have been hard at work on it lately and made a lot of progress. A lot have been revamped, if you used it in the past, you should recheck the docs, the config files, clear any caches with `pat-aur cache clear` and containers (in `<xdg cache dir>/pat-aur/roots` by default), and let pat-aur regenerate them.

News about external software
  • Bubblewrap has merged overlayfs support and is now available in official repos.

  • Ninja still doesn't have job-server support, it has been in lingo for long time and there is no telling when if ever that will be merged.

Improvements and features
  • Better caching and reduction of queries to the AUR.

  • Update checks for flatpak.

  • Providers can now be mapped with version ranges.

  • New powerful dependency resolver that take into account providers and conflicts from local and sync databases as well as the current build graph, while also enforcing configured providers. Providers from the AUR still need to be configured manually.

  • bootstrap script should handle everything for a basic setup.

  • Support for multiple AUR sources.

  • It's possible to build packages from a sync database and an url for cloning packages.

  • A million bugs squashed and small improvements.

Things I would like to improve
  • Handling of cyclic dependencies (like mingw-w64-harfbuzz, mingw-w64-freetype2). One solution could be to dump all of these inter-dependent packages in one big PKGBUILD. To retain version information for each packages, it would require a change to makepkg: a pkgver variable or function on a per package basis.

  • Performance.

Offline

Board footer

Powered by FluxBB