aurora

module
v0.0.0-...-31dc5ed Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2020 License: MIT

README

aurora

Aurora watches for changes in Arch Linux User Repositories, builds packages, so you can download it without compiling stuff on your own machines just by adding a repository to /etc/pacman.conf, for example:

[aurora]
Server = https://aurora.reconquest.io/$repo

How does it work

aurorad is a daemon that runs on a host and creates Docker containers with very simple script that clones package from AUR, runs makepkg and publshes to arch repository.

For adding/removing/listing or even watching build processes there is a client — aurora which communicates with RCP service provided by aurorad.

Motivation

Well, you know that case when you have installed a program-git package and then you forget about and you never receive any updates. Aurora solves it because it will literally re-build that package and upload to repo if it's changed. I guess, you also experienced a sort of frustration when you've compiled a big AUR package that took like 20 minutes and then you need to do it again on another machine. Aurora solves that problem too.

Security

None. No warranties. It's the same as building stuff on your own machine. Maybe it's a bit safer because at least nobody can rm -rf your $HOME directory while building a package. But it doesn't save you from rm -rf in install scripts or any malicious activity that a program in a package still can do.

Daemon Deployment

Currently there is no cool way to deploy it except: make release@aurorad HOST=yourhost which builds Go code and runs scp and then starts systemd services. There should be a package.

During the first run you will have to run aurorad --generate-config to generate the default config file.

There are two systemd services — aurora (package builder/processor) and aurora-web (serves packages as http server).

Client Installation

You can get it with Go:

go get github.com/kovetskiy/aurora/cmd/aurora

Client Usage

Usage:
  aurora [options] get [<package>]
  aurora [options] add <package>
  aurora [options] rm <package>
  aurora [options] log <package>
  aurora [options] watch <package> [-w]
  aurora [options] whoami
  aurora -h | --help
  aurora --version

Options:
  get                            Query specified package or query a list of packages.
  add                            Add a package to the queue.
  remove                         Remove a package from the queue.
  log                            Retrieve logs of a package.
  watch                          Watch build process.
  whoami                         Retrieves information about current using in the aurora.
  -a --address <rpc>             Address of aurorad rpc server. [default: https://aurora.reconquest.io/rpc/]
  -k --key <path>                Path to private RSA key. [default: /home/operator/.config/aurora/id_rsa]
  --i-use-insecure-address       By default, aurora doesn't allow to use http:// schema in address.
                                  Use this flag to override this behavior.
  -w --wait                      Wait for a resulting status.
  -h --help                      Show this screen.
  --version                      Show version.

Workflow

I use this beautiful (no) script to add package to the queue, wait for its build and install on local machine:

#!/bin/bash

set -euo pipefail

package="${1}"

aurora rm "$package" || echo "Package was not in queue"
aurora add "$package"
aurora watch -w "$package"

aurora get "$package" | tee /dev/stderr | grep -q success

sudo pacman -Sy "aurora/${package}"

State of the project

The project started in 2016 and I've been using it daily for 4 years now. It's pretty much stable and doesn't ask for any maintenance. All contributions including documentation are welcome.

Directories

Path Synopsis
cmd
pkg
bus
rpc

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL