Skip to content

Chizi123/Arch-autobuild-repo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auto-build package repository for Arch Linux

What is this?

This is an automatic package building solution for Arch Linux. It supports building packages from PKGBUILDs attached to git repositories, such as those in the AUR.

Currently it supports package signing and building clean from source. It can help set itself up and generate GPG keys if need be (partially tested). Notifications can be sent using the sendmail command, which is supported in Postfix and OpenSMTPD.

The chroot generation script is here from an older version of this project and I think its interesting. It is unmaintained but should work.

Features

  • Automatic building from the AUR
  • Automatic AUR dependency resolution
  • Automatic rebuilding of version control packages
  • Parallel building to speed up the build process
  • Package signing
  • Clean building
  • Supports multiple targets from a single PKGBUILD

Set-up

Create a copy of vars-default.sh as vars.sh and edit to match repository details. Have a look at the init function near the bottom of the file to decide if you want to run it. If you decide to generate a GPG key, edit the name, comment and email so that it fits you.

You may also want to set MAKEFLAGS="-j$(nproc)" within makepkg.conf to enable parallel compilation. It may also be advisable to edit makepkg.conf to enable parallel compression, see the Arch Wiki for details. ccache may be useful to decrease the times of git packages, as there are few changes on each rebuild.

Usage

To add a package: main.sh add [package]. If a package fails to build, it can be manually rebuilt by re-adding it. I find that removing and reading often solves build problems.

Packages can be removed with main.sh remove [package]. This remove it from the repo, build folder and deletes any built versions in the repository directory.

To update all packages, use main.sh build-all. A -f flag can be used to force a rebuild of all the packages. To allow automatic building, use a cronjob or write a systemd unit, there are many guides out there, although I may add examples if I feel like it.

To Dos

Error catching for builds which fail.
Have emailing, but nothing more advanced. Would be nice to have some basic error handling in the script
Keep multiple old packages
Keep so that packages can be downloaded even if repository isn’t upgraded. Also allow downgrading

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages