A Personal Package Archive (PPA) is free infrastructure made available by the Ubuntu project for people like you and me to share their packages. In a nutshell: one user can upload source packages and the Launchpad infrastructure builds and test them before distributing them to every user that wants to subscribe to that PPA.
On Launchpad individual users and teams can have a PPA. The Hugin PPA is a team effort by people who want to bring binaries of Hugin and related tool to Ubuntu users.
The following instructions document how you can contribute to the Hugin PPA.
- an Ubuntu system (any variant and any currently supported series).
- successfully built and installed Hugin on your system according to these instructions
- a Launchpad account including signature of the Ubuntu Code of Conduct
Preparing the Stage
You will need to go through these instructions only once.
Start a command line and enter the following commands:
sudo echo 'deb-src ftp://ftp.at.debian.org/debian ../project/experimental main' > debian-experimental.list sudo mv debian-experimental.list /etc/apt/sources.list.d/ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 55BE302B sudo apt-get update sudo apt-get install devscripts
Edit the file ~/.bashrc and add the following lines at the end, replacing *KEY* with the eight digit ID of your key registered in Launchpad (e.g. 637572E4) and *YOUR_NAME* with your name:
export GPGKEY=*KEY* export DEBEMAIL="email@example.com" export DEBFULLNAME="*YOUR_NAME*" export LANG=C export LANG="en_CA.UTF-8" export LC_ALL="en_CA.UTF-8"
Build and Publish Libpano13
- start in an empty folder
- determine the version number that you want to build/publish, e.g. 2.9.17+dfsg-3
- if you don't have a version number, you can simply skip the =VERSION_NUMBER in the instructions below:
sudo apt-get build-dep libpano13=2.9.17+dfsg-3 apt-get source libpano13=2.9.17+dfsg-3 cd libpano13-2.9.17+dfsg/ pico debian/control
- in debian/control edit the Maintainer and Uploader lines. Replace the email addresses there with an entry Hugin PPA Packagers <firstname.lastname@example.org>
- if there are new dependencies, they will have to go into debian/control too. However, to avoid duplicating efforts, new dependencies are better communicated to the Debian maintainers who then update the control file upstream.
- Update the debian changelog with the following command. The given version number is very important. Start with the Debian version number (2.9.17+dfsg-3 in this case). Append the Ubuntu series of your system, e.g. natty, maverick, lucid, karmic; and a sequence number (usually just 1). Make sure you are running an Ubuntu series that is supported by Launchpad. The "new upstream release" text is the changelog entry.
dch --newversion 2.9.17+dfsg-3natty1 new upstream release
- Build and test the package. You can skip this step if you are sure that the package is OK (e.g. you did not change much compared to the Debian sources) and/or if your machine is "tainted" by other things preventing proper builds (of course it would make sense to build in a chroot, but this I'll document another day).
dpkg-buildpackage -rfakeroot -b -uc -us
- Build the source package, sign and upload it. Especially at the beginning, it is a good idea if you open a PPA in your own Launchpad account and publish / test there the result of your work, until you are confident to upload to the PPA serving Hugin users. To upload to the real PPA, replace my PPA in the instructions below with ppa:hugin/hugin-builds
dpkg-buildpackage -rfakeroot -uc -us -sa -S cd .. debsign -k$GPGKEY *.changes dput ppa:yuv/yuv-stuff *.changes