Ubuntu Packaging Guide

This is a quick set of instructions for packaging Parrot for Ubuntu. See the Ubuntu Packaging Guide (https://wiki.ubuntu.com/PackagingGuide) and the guide to the Person Package Archive (PPA) (https://help.launchpad.net/Packaging/PPA) for more details.

This guide assumes that you're running in a chroot environment set up as in: https://trac.parrot.org/parrot/wiki/ChrootSetup, and also assumes that you've already built the corresponding Debian package for the release as documented in "project/debian_packaging_guide.pod" in docs.

To package Parrot for Ubuntu:

0.
Download the latest tarball.
1.
Compile it and run the tests, just to be sure the tarball is sound (especially useful if you're running in a chroot environment different than your usual dev environment).
2.
Create a new directory. (The name is irrelevant, but we'll use ~/udeb/parrot for the sake of illustration.)Create a fresh extract of the tarball in the ~/udeb/parrot directory. The directory should be named parrot-[version] (it will be by default).Copy the original tarball into ~/udeb/parrot, naming it parrot_[version].orig.tar.gz (note the "_" in place of dash).
3.
Integrate any new change entries from ports/debian/changelog into ports/ubuntu/changelog, preserving chronological order.Copy the ports/debian/ directory from the Parrot source tree into the fresh tarball extract.
  cp -r <path/to/parrot/git>/ports/debian ~/udeb/parrot/parrot-[version]/.
Then copy the unique Ubuntu files (changelog and control.in) from ports/ubuntu/ into the new debian/ directory.
  cp <path/to/parrot/git>/ports/ubuntu/* ~/udeb/parrot/parrot-[version]/debian/.
4.
Add a new entry to the changelog file in ~/udeb/parrot/parrot-[version]/debian/ for the Ubuntu package. Copy the first line from the Debian changelog. Add ubuntu# after the Debian version to indicate the Ubuntu revision of the package, and for PPA uploads also add ~ppa#. Instead of the Debian branch ('unstable') use the target Ubuntu distribution ('intrepid').
  parrot (0.5.1-1ubuntu1) intrepid; urgency=low
The changelog entry for the Ubuntu release is generally:
  * Synchronize with Debian unstable.
Add any custom changes for Ubuntu packaging (rare). The final line gives the maintainer's name, email address, and the date. The date must be in RFC822 format, and can be generated by running date -R. (Note that two spaces are required between the email and the date.)
   -- Your Name <you@example.org>  Sun, 30 Dec 2007 17:21:45 +0000
5.
Install all dependencies:
  $ sudo /usr/lib/pbuilder/pbuilder-satisfydepends
6.
Build the source packages. From ~/udeb/parrot/parrot_[version]/, run:
  $ debuild -S -sa
7.
Update Parrot's PPA with the new release (configured in ChrootSetup). From ~/udeb/parrot/ run:
  $ dput parrot-ppa parrot_[version]_source.changes
8.
Commit the Ubuntu changelog file to the ports/ubuntu/ directory in the repository. (At the moment, we're keeping the Debian packages as the primary.)