Version 3 (modified by 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.