Simplify packaging

This commit is contained in:
Edwin 2022-10-23 19:50:06 -04:00
parent dceb5d6572
commit b4a1373559
5 changed files with 25 additions and 44 deletions

1
.gitignore vendored
View File

@ -21,3 +21,4 @@ __pycache__/
/debian/files /debian/files
/debian/.debhelper/ /debian/.debhelper/
/debian/debhelper-build-stamp /debian/debhelper-build-stamp
/pyceo.tar.gz

View File

@ -31,4 +31,7 @@ clean:
rm -rf venv rm -rf venv
rm -rf debian/{ceo,ceod,ceo-common,tmp} rm -rf debian/{ceo,ceod,ceo-common,tmp}
.PHONY: build docs clean venv install package:
podman run -it --rm -v "$$PWD":"$$PWD" -w "$$PWD" --security-opt label=disable debian:bullseye bash package.sh
.PHONY: build docs clean venv install package

View File

@ -10,53 +10,25 @@ Make sure your GPG key is in /srv/debian/gpg on potassium-benzoate. See
for instructions. for instructions.
## Creating the package ## Creating the package
Use Docker/Podman to avoid screwing up your main system. Make sure you have Podman installed.
For example, to create a package for bullseye (replace `podman` with `docker` in all instances below if you're using Docker):
```sh Update `VERSION.txt` to the next version, `debian/changelog` with the new changes and do a git commit.
podman run -it --name pyceo-packaging -v "$PWD":"$PWD" -w "$PWD" debian:bullseye bash
``` Run `make package` to build the package and create the tarball `pyceo.tar.gz` in the repo root.
**Important**: Make sure to use a container image for the same distribution which you're packaging.
**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 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). 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.
Here are some of the prerequisites you'll need to build the deb files At some point before actually uploading, you'll need to the sign the package. On the extracted tarball,
(run this inside the container): run the following while placing your key ID after the `-k` argument, e.g.
```sh ```sh
apt update debsign -k8E5568ABB0CF96BC367806ED127923BE10DA48DC *.changes
apt install -y devscripts debhelper git-buildpackage vim
```
Make sure to also install all of the packages in the 'Build-Depends' section in debian/control.
Update VERSION.txt to the next version, and do a git commit.
Now run `dch -i` and edit the changelog.
Now you will build a signed package. Place your key ID after the `-k` argument, e.g.
```sh
gbp buildpackage --git-upstream-branch=master -k8E5568ABB0CF96BC367806ED127923BE10DA48DC
```
This will create a bunch of files (deb, dsc, tar.gz, etc.) in the parent directory.
Now do another git commit (since you edited the changelog file).
To clean the packages:
```sh
rm ../*.{xz,gz,dsc,build,buildinfo,changes,deb}
``` ```
## Uploading the package ## Uploading the package
Inside the container, go up one directory, and create a tarball with all the package files: Upload the tarball to a CSC machine, e.g.
```
cd ..
tar zcvf pyceo.tar.gz *.{xz,gz,dsc,build,buildinfo,changes,deb}
```
Outside of the container (i.e. on your personal machine), copy the tarball out of the
container into your current directory, e.g.
```
podman cp pyceo-packaging:/home/max/repos/pyceo.tar.gz .
```
(Replace `/home/max/repos` by the directory in the container with the tarball.)
Now upload the tarball to a CSC machine, e.g.
``` ```
scp pyceo.tar.gz mannitol:~/ scp pyceo.tar.gz mannitol:~/
``` ```
@ -73,7 +45,7 @@ At this point, you will need a dupload.conf file. Ask someone on syscom for a co
Now upload the package to potassium-benzoate: Now upload the package to potassium-benzoate:
``` ```
kinit kinit
dupload *.changes dupload --to debian.csclub *.changes
``` ```
Now SSH into potassium-benzoate and run the following: Now SSH into potassium-benzoate and run the following:

View File

@ -1 +1 @@
extend-diff-ignore = "^(venv/|docs/.+\.\d$|dist/|.+\.egg-info/|build/|\.vscode/|\.idea/)|__pycache__/|(^|/)\..+" extend-diff-ignore = "^(venv/|docs/.+\.\d$|dist/|.+\.egg-info/|build/|\.vscode/|\.idea/|pyceo\.tar\.gz)|__pycache__/|(^|/)\..+"

5
package.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
apt update && apt install -y git-buildpackage debhelper libkrb5-dev libpq-dev libaugeas0 python3-dev python3-venv scdoc
gbp buildpackage --git-export-dir=/tmp/build --git-upstream-branch=master --no-sign
tar zcvf pyceo.tar.gz -C /tmp/build .