To download these packages using Debian-based package/dependency management
tools, add the following lines to your /etc/apt/sources.list file
(or to the configuration dialogue in your chosen tools):
deb http://packages.boddie.org.uk/ lenny paul deb-src http://packages.boddie.org.uk/ lenny paul
You may then need to run the following command, or you can import my key
information first and then return to run this command (using sudo
or as root):
apt-get update
New and updated packages should become available. Be warned that these could compete with packages obtained through the standard repositories, even though I try to prevent such things from occurring.
My signing key can be imported into your system as follows:
apt-key add paul.asc
Generally, you should try and verify such keys and not just trust those you find on the Internet. I exported this key as follows:
gpg -a --export 9F308B3C > paul.asc
First, I had to set up a build environment for package building under Debian
Lenny (the current stable version), not the distribution I am actually using
(using sudo or as root):
pbuilder create --distribution lenny --mirror http://ftp.no.debian.org/debian/
(Here, I choose a local mirror.)
Then, taking Shed Skin as an example, I exported the package code from Subversion into a separate directory:
svn export . ../shedskin-snapshot-20100114
I then added suitable packaging files to the distribution.
In the exported code directory, I then ran the build process in the build environment (sandbox) created above.
pdebuild --auto-debsign --debsign-k 9F308B3C
(Where 9F308B3C is taken from gpg --list-keys and
refers to the key I sign the packages with.)
Hopefully, the binary package then emerges in the
/var/cache/pbuilder/result/ directory, while some other related
files appear in the parent directory.
The structure of this repository was built locally and looks like this:
dists dists/lenny dists/lenny/paul dists/lenny/paul/binary-i386 dists/lenny/paul/source
The binary package created above is copied into the repository as follows, along with a changelog for the binary package:
cp /var/cache/pbuilder/result/shedskin_0.3-1_all.deb dists/lenny/paul/binary-i386/ cp /var/cache/pbuilder/result/shedskin_0.3-1_i386.changes dists/lenny/paul/binary-i386/
The source files are copied from their location as follows:
cp /var/cache/pbuilder/result/shedskin_0.3-1.dsc dists/lenny/paul/source/ cp /var/cache/pbuilder/result/shedskin_0.3-1.tar.gz dists/lenny/paul/source/
And from the parent directory of the build directory:
cp shedskin_0.3-1_source.changes dists/lenny/paul/source/
To make sure that the repository is usable, a number of activities need to be performed:
I found that thanks to the efforts of others, the following script could be used to do this work:
rm dists/lenny/Release*
apt-ftparchive packages dists/lenny/paul/binary-i386/ > dists/lenny/paul/binary-i386/Packages
gzip -9c dists/lenny/paul/binary-i386/Packages > dists/lenny/paul/binary-i386/Packages.gz
apt-ftparchive sources dists/lenny/paul/source/ > dists/lenny/paul/source/Sources
gzip -9c dists/lenny/paul/source/Sources > dists/lenny/paul/source/Sources.gz
apt-ftparchive release dists/lenny \
-o APT::FTPArchive::Release::Origin="Paul Boddie" \
-o APT::FTPArchive::Release::Codename="lenny" \
-o APT::FTPArchive::Release::Architecture="all" \
> Release
mv Release dists/lenny/
gpg -a -b --sign -o dists/lenny/Release.gpg dists/lenny/Release
Finally, the files are uploaded to the public site.