Changes between Initial Version and Version 1 of

Nov 4, 2013, 1:15:18 AM (7 years ago)
Daniel Kahn Gillmor




    v1 v1  
     3= the MF/PL APT repository =
     5May First/People Link now offers an APT repository of packages for computers running [ the debian operating system]. (see #7662 for more details about how and when it was set up).
     7== How to use ==
     9MF/PL servers should all have these repositories added automatically.  If you want to pull packages from these repos on other machines, here's how:
     11You can add this repository to a machine running `squeeze` with this line in `/etc/apt/sources.list`:
     14deb squeeze-mfpl main
     17If you're running `wheezy`, please use:
     20deb wheezy-mfpl main
     23Please ensure that you have added the repository signing key, which is:
     26pub   4096R/0x0B96D3BD3AA7B247 2013-11-02 [expires: 2018-11-01]
     27      Key fingerprint = CB7F A69F D741 3370 2A41  A713 0B96 D3BD 3AA7 B247
     28uid                 May First/People Link APT archive signing key (
     31You should verify the above key.  It should be signed by the usual suspects (at the moment, by [wiki:support-team/dkg dkg] and greg at least)
     33== How to administer ==
     35=== Setup ===
     37You need to get a copy of the secret key for the repository from one of the operators (at the moment, dkg and greg).  It's probably a good idea to discuss this on the support-team list if you're interested in doing this.
     39You also need to check out the current state of the apt repository to stay synchronized:
     42git clone git://
     43cd mfpl-apt
     44git config remote.origin.pushurl
     48We rely on [DebianPackage:reprepro] to manage the repository.  make sure you have a modern version of [DebianPackage:reprepro] installed (you probably want to be running the version from wheezy at least, if not more recent).
     50=== Building your package ===
     52If the package is already in debian, please try to minimize the deviation from debian's packaging of the same software.  We don't want to carry large diffs.
     54Make sure that `debian/changelog` has a new version targeting the distro you're building for (`squeeze-mfpl` or `wheezy-mfpl`), and describing specifically what changes you've made.  The version number should include an MF/PL-specific local part.  For example, our patched versions of [DebianPackage:perdition] for `squeeze-mfpl` are `1.19~rc4-2+mfplsqueeze1` (derived from debian's `1.19~rc4-2`).  Try building the package in a minimalist version of the distro you are targeting (e.g. if building a package for `squeeze-mfpl`, build it on a squeeze system or in a squeeze chroot.
     56If it's the first time the package is being added to the MF/PL repo, you should build with `-sa` to ensure that the original source tarball is included. 
     58MF/PL servers are running the `amd64` platform.  Please find a way to build the packages on that platform.
     60=== Adding your package ===
     62Let's assume your package is `foo` version `1.2.5-3+mfplsqueeze1`, with the package files created in `~/src/foo/`.
     65cd /wherever/you/put/your/mfpl-apt
     66# make sure it is up-to-date
     67git remote update
     68git merge --ff-only origin/master
     69reprepro include squeeze-mfpl ~/src/foo/foo_1.2.5-3+mfplsqueeze1_amd64.changes
     72You will be prompted for your password for the apt signing key.
     74If all goes well, you can commit these changes and push them back to the repo:
     77git status
     78# git add everything that needs adding
     79git commit
     80git push origin
     83Now you can update the public http service:
     86ssh 'cd ../../web/debian && git pull origin'
     89=== Troubleshooting and error recovery ===
     91If the packages did not get added right the first time (e.g. if the source code was missing, or you couldn't find your passphrase for your signing key, etc), and you need to recover:
     93 * fix whatever went wrong
     94 * `reprepro export` will let you re-generate the index
     96then review the state of the `mfpl-apt` repo with `git status`, ensure it's what you want, commit it and push it.
     98Read [ the man page for reprepro]!