wiki:apt.mayfirst.org

Version 3 (modified by Jamie McClelland, 10 years ago) (diff)

--

the MF/PL APT repository

May 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).

How to use

MF/PL servers should all have these repositories added automatically. If you want to pull packages from these repos on other machines, here's how:

You can add this repository to a machine running squeeze with this line in /etc/apt/sources.list:

deb http://apt.mayfirst.org/debian squeeze-mfpl main

If you're running wheezy, please use:

deb http://apt.mayfirst.org/debian wheezy-mfpl main

Please ensure that you have added the repository signing key, which is:

pub   4096R/0x0B96D3BD3AA7B247 2013-11-02 [expires: 2018-11-01]
      Key fingerprint = CB7F A69F D741 3370 2A41  A713 0B96 D3BD 3AA7 B247
uid                 May First/People Link APT archive signing key (http://apt.mayfirst.org/debian)

You should verify the above key. It should be signed by the usual suspects (at the moment, by dkg and greg at least)

How to administer

Setup

You 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.

You also need to check out the current state of the apt repository to stay synchronized:

git clone git://git.mayfirst.org/mfpl/mfpl-apt
cd mfpl-apt
git config remote.origin.pushurl gitosis@git.mayfirst.org:mfpl/mfpl-apt

We rely on reprepro to manage the repository. make sure you have a modern version of reprepro installed (you probably want to be running the version from wheezy at least, if not more recent).

Building your package

If 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.

Make 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 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).

If 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.

MF/PL servers are running the amd64 platform. Please find a way to build the packages on that platform.

Here's an example of me building the mailman jessie package for the wheezy platform:

  • Use a wheezy amd64 machine
  • Add to /etc/apt/sources.list.d/jessie.list:
    deb-src http://mirror.cc.columbia.edu/debian/ jessie main
    
  • mkdir /tmp/mailman && cd /tmp/mailman
  • apt-get update
  • apt-get build-dep mailman
  • apt-get source mailman/jessie
  • cd mailman-2.1.16/
  • dch --local ~mfplwheezy --distribution wheezy-mfpl "Rebuild for wheezy-mfpl." (return warning because wheezy-mfpl not recognized as distro)
  • dpkg-buildpackage -us -uc -sa

Adding your package

Let's assume your package is foo version 1.2.5-3+mfplsqueeze1, with the package files created in ~/src/foo/.

cd /wherever/you/put/your/mfpl-apt
# make sure it is up-to-date
git remote update
git merge --ff-only origin/master
reprepro include squeeze-mfpl ~/src/foo/foo_1.2.5-3+mfplsqueeze1_amd64.changes

You will be prompted for your password for the apt signing key.

If all goes well, you can commit these changes and push them back to the repo:

git status
# git add everything that needs adding
git commit
git push origin

Now you can update the public http service:

ssh mfpl-apt@chelsea.mayfirst.org 'cd ../../web/debian && git pull origin'

Troubleshooting and error recovery

If 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:

  • fix whatever went wrong
  • reprepro export will let you re-generate the index

then review the state of the mfpl-apt repo with git status, ensure it's what you want, commit it and push it.

Read the man page for reprepro!