pyceo/PACKAGING.md

1.8 KiB

Packaging

This is a guide for creating Debian packages for ceo. The instructions below probably do not follow best practices, but at least I am confident that they work.

Prerequisites

Make sure your GPG key is in /srv/debian/gpg on potassium-benzoate. See here for instructions.

Creating the package

Make sure you have Podman installed.

Update VERSION.txt to the next version, debian/changelog with the new changes and do a git commit.

Run make package to build the package and create the tarball pyceo.tar.gz in the repo root.

Important: Make sure the container image for the same distribution which you're packaging. For example, if you're creating a package for bullseye, you should be using the debian:bullseye Docker image (this is because the virtualenv symlinks python to the OS' version of python). Also make sure that all of the packages in the 'Build-Depends' section in debian/control are installed in the container.

At some point before actually uploading, you'll need to the sign the package. On the extracted tarball, run the following while placing your key ID after the -k argument, e.g.

debsign -k8E5568ABB0CF96BC367806ED127923BE10DA48DC *.changes

Uploading the package

Upload the tarball to a CSC machine, e.g.

scp pyceo.tar.gz mannitol:~/

SSH into that machine and extract the tarball into a separate directory:

ssh mannitol
mkdir pyceo-parent
mv pyceo.tar.gz pyceo-parent/
cd pyceo-parent
tar zxvf pyceo.tar.gz

At this point, you will need a dupload.conf file. Ask someone on syscom for a copy.

Now upload the package to potassium-benzoate:

kinit
dupload --to debian.csclub *.changes

Now SSH into potassium-benzoate and run the following:

sudo /srv/debian/bin/rrr-incoming

There, that wasn't so bad...right? :')