How to manage the repository on bob
This is all about the
reprepro
repository on
bob.atlas.aei.uni-hannover.de
, which is upstream of UWM's Debian repo. We currently have to repositories managed there, under
LSC-repository/vdt/
lives the VDT related packages, under
LSC-repository/debian
the debian repo. Also all files under
~reprepro
are managed with git (very coarsely), thus please make as small changes as possible and commit all changes (see below).
Access
Ask Henning or Carsten to gain access vis gsissh, the user is called
reprepro
.
show all packages in a repo
to see what packages currently are in the Debian repo, just run
reprepro -b ~/LSC-repository/debian dumpreferences
CA is working on an automatic tool to display this as a wiki table
include a fully built pacakge suite from a source package
You should have a
.changes
file which references all built packages along with the tarball and description file. Injecting this into
squeeze-proposed
is done like this:
reprepro --ask-passphrase --ignore=wrongdistribution -b ~/LSC-repository/debian \
--section contrib include squeeze-proposed path/to/pylal_0.1.4-3_amd64.changes
to finish this operation you obviously need to know the passphrase for the GPG key.
include s single (or more) Debian packages
Basically same as before but using includedeb instead of include:
reprepro --ask-passphrase --ignore=wrongdistribution -b ~/LSC-repository/vdt includedeb squeeze /tmp/osg-ca-certs_1.29NEW-0.deb
Again you need to know the passphrase.
exporting the repos
If you have not used the passphrase for the GPG key, you can still run
include/includedeb
but without the
--ask-passphrase
option and export the repo later by running
reprepro --ignore=wrongdistribution --ask-passphrase -b ~/LSC-repository/vdt export
Sync to UWM
You can only do this if you have write access to the target system, please ask Xavier, Adam or Brian (at the time of writing) for access via gsissh:
rsync -az --exclude="/*.nfs*" --compress --verbose --delete --progress -e /usr/bin/gsissh ~reprepro/LSC-repository/ USER@marlin.phys.uwm.edu:/home/htdocs/uwmlsc/secure/daswg/download/software/debian/
obviously you will need to change the USER part.
NOTE This is known to hang from time to time, the cause is unknown. To continue,
CTRL-C
rsync and re-run it, ignoring the warnings about
.nfs*
files
Move a package from proposed to production
You should do this in multiple steps
- first copy the package(s) over
reprepro --ask-passphrase --ignore=wrongdistribution -b ~/LSC-repository/debian copy squeeze squeeze-proposed python-glue python-glue-common python-glue-segments
- then remove the package(s) from the proposed repo
reprepro --ask-passphrase --ignore=wrongdistribution -b ~/LSC-repository/debian remove squeeze-proposed python-glue python-glue-common python-glue-segments
- commit to git and rsync to UWM
Obviously testing them from the bob repo is also considered good practice.
Git
We started to use git after we nearly thrashed the repo and needed to restore it from backup. Obviously this git will grow to be enormously fat as it will keep all previous versions, but well, you need to die on kind of death.
Usually, I use it like this
- Add new package with
include
or includedeb
with --ask-passphrase
- run
git add LSC-repository/debian/ ; git commit -am "new pylal for squeeze-proposed"
- of course you should change the message here and possibly set GIT_* variables accordingly.
--
CarstenAulbert - 28 Jun 2012