Managing AUR packages

Je teste une configuration compliquée de mes packages AUR. Jusqu’à présent je me suis reposé sur le dépôt archlinuxfr, mais c’est trop tentant de ne pas contrôler les fichiers PKGBUILD. Je me lance donc dans un workflow plus sécurisé.

Pour se faire, je vais créer mon dépôt non-officiel. Contruire et signer mes packages.

Mise en place

Le dépôt

Pour notre dépôt non-officiel, il nous faut simplement un serveur HTTP, avec la possibilité de modifier son contenu ; ici on va utiliser sshfs. Notre serveur aura pour nom de domaine repo.example.org.

Le dossier doit avoir la structure suivante:

/path/to/repo
  ├─  x86_64
  └─  armv7h

Le packager

Sur sa machine, le packager à besoin d’une paire de clé GPG avec une identité:

<John Doe (Arch packager) <john.doe@example.org>

Ici j’ai précisé la fonction packager dans l’identité. La clé publique doit être exportée dans un fichier.

On configure l’outil makepkg dans ~/.makepkg.conf:

PACKAGER="John Doe (Arch packager) <john.doe@example.org"
GPGKEY=0123456789ABCDEF0123456789ABCDEF01234567
BUILDENV=(!distcc color !ccache check sign)

On précise l’identité, et le fait de signer les packages.

#. L’utilisateur

L’utilisateur ajoute le dépôt dans packman.conf

[example]
SigLevel = Required
Server = https://repo.example.org/$arch

Il doit aussi récupérer la clé publique et l’ajouter dans son trousseau:

# packman-key --add key.asc
# packman-key --lsign 0123456789ABCDEF0123456789ABCDEF01234567

Ajout de packages

Le packager commence par monter le serveur

$ mkdir $XDG_RUNTIME_DIR/repo
$ sshfs john.doe@example.org/path/to/repo $XDG_RUNTIME_DIR/repo

Le packager récupère les PKGBUILD, compile avec makepkg. Il déplace le fichier compressé et sa signature dans $XDG_RUNTIME_DIR/repo/$arch et, dans ce dossier fait:

$ cd $XDG_RUNTIME_DIR/repo/$arch
$ repo-add --sign -k 0123456789ABCDEF0123456789ABCDEF01234567 example.db.xz pkg…

Installation de packages

À la régulière.

links

social