Skip to main content

Automatically build AUR packages and serve them from a repository

Project description

aurblobs
========

Automatically build AUR packages and serve them from a repository

Installation
------------

The latest release can be installed from PyPi:

::

$ pip install aurblobs

and upgraded with:

::

$ pip install --upgrade aurblobs


Dependencies
------------

- Docker
- GnuPG
- versions >=2.1.0 will generate Ed25519 Signing Keys
- older versions will generate RSA (4096 Bit) Signing Keys


Usage
-----

::

Usage: aurblobs [OPTIONS] COMMAND [ARGS]...

Options:
--version Show the version and exit.
--help Show this message and exit.

Commands:
add Add a new package to an existing repository.
init Initialize a new repository.
list List repositories and related packages
remove Remove a package from a repository
update Update packages in repository to latest version.


Initializing repository
/////////////////////

This will create the repository basedir and a dedicatd GPG keypair. It will also install
the public key into the basedir.

::

$ aurblobs init myrepo /srv/www/myrepo myrepo@example.com


Adding a package
////////////////

Adding a new package to a repository validates its existence on AUR and configures it to be built on the next update
run.

::

$ aurblobs add youtube-dl-git


If multiple repositories are set up the specific repository must be specified:

::

$ aurblobs add --repository myrepo youtube-dl-git


Listing configured repositories and packages
////////////////////////////////////////////

::

$ aurblobs list
myrepo: /srv/www/myrepo (3 packages)
- dino-git (r214.dc2dde5-1)
- youtube-dl-git (2017.12.02.r7.b271e3352-1)
- tinc-pre-git (1.1pre15.21.gb8acb89a-1)


Building packages
/////////////////

With the update command all configured repositories and packages can be checked for
updates. If updates for a package are available it will be rebuilt in a container, with
a minimal Arch Linux build environment.
The build container will be pulled from the Docker Hub just before the first build is started.

::

% aurblobs update --repository myrepo
youtube-dl-git is up-to-date
dino-git is up-to-date
tinc-pre-git is up-to-date


Sharing the repository
//////////////////////

The repository basedir should then be exposed via a webserver.

::

$ tree /srv/www/myrepo
/srv/www/myrepo
├── myrepo.db -> myrepo.db.tar.gz
├── myrepo.db.tar.gz
├── myrepo.db.tar.gz.old
├── myrepo.files -> myrepo.files.tar.gz
├── myrepo.files.tar.gz
├── myrepo.files.tar.gz.old
├── myrepo.gpg
├── dino-git-r214.dc2dde5-1-x86_64.pkg.tar.xz
├── dino-git-r214.dc2dde5-1-x86_64.pkg.tar.xz.sig
├── tinc-pre-git-1.1pre15.21.gb8acb89a-1-any.pkg.tar.xz
├── tinc-pre-git-1.1pre15.21.gb8acb89a-1-any.pkg.tar.xz.sig
├── youtube-dl-git-2017.12.02.r8.3c4fbfeca-1-any.pkg.tar.xz
└── youtube-dl-git-2017.12.02.r8.3c4fbfeca-1-any.pkg.tar.xz.sig


Configuring the repository locally
//////////////////////////////////

Download and import the repositories signing key into your truststore.

::

# wget https://example.com/myrepo/myrepo.gpg
# pacman-key --add myrepo.gpg


Lookup the key fingerprint:

::

# pacman-key --list-keys | grep -B2 "prebuilt repository key"
pub ed25519 2017-12-04 [SCA]
6E688777E2795B67C578EF3591149FE64075FE41
uid [ full ] prebuilt repository key (insecure!) <myrepo@example.com>


And sign the key locally:

::

# pacman-key --lsign-key <fingerprint>
-> Locally signing key <fingerprint>...
==> Updating trust database...
gpg: next trustdb check due at 2018-06-25


Finally add the repository to ``/etc/pacman.conf``:

::

[myrepo]
Server = https://example.com/myrepo

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aurblobs-0.5.2.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

aurblobs-0.5.2-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file aurblobs-0.5.2.tar.gz.

File metadata

  • Download URL: aurblobs-0.5.2.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for aurblobs-0.5.2.tar.gz
Algorithm Hash digest
SHA256 ecf46c75d78b47e81f50288a95d74ce1ef5111240edc8fde0da0485ce4aa650b
MD5 4b6a5e25fb2fd4565f53f9772707749a
BLAKE2b-256 bcba3f2f7eac90f55f1ab44d8ad8630cb07193d7e528ba326959e3fa85560f85

See more details on using hashes here.

File details

Details for the file aurblobs-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: aurblobs-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for aurblobs-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 32ec21bf5b13b9ff67efa3118e7a4f1045f9a450d5aff5b50301788002054fc5
MD5 4c30b1d5d8fd9aaef144f99888017b8b
BLAKE2b-256 9adf9017b828ac89cedbd00a4637d4fa520479bc9d1bf5b1725e5e31d380ca0f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page