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
  1. 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
    
  2. 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 
    
  3. 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
  1. Add new package with include or includedeb with --ask-passphrase
  2. 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

DocumentationForm edit

Title How to manage the Debian repo on bob?
Description Brief description of typical reprepro commands needed to run on bob
Tags bob debian reprepro
Category Admin
Topic revision: r1 - 28 Jun 2012, CarstenAulbert
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback