pyceo/PACKAGING.md

59 lines
1.9 KiB
Markdown

# 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](https://wiki.csclub.uwaterloo.ca/Debian_Repository#Step_1:_Add_to_Uploaders)
for instructions.
Make sure you are in the `csc-mirror` group too.
## 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.
```sh
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? :')