[[PageOutline]] = the MF/PL APT repository = May First/People Link now offers an APT repository of packages for computers running [http://debian.org 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 [wiki:support-team/dkg 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 [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). === 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 [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. 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. === 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 [http://manpages.debian.org/cgi-bin/man.cgi?query=reprepro&manpath=Debian+unstable+sid the man page for reprepro]!