<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Parrot - Ubuntu Packaging Guide</title> <link rel="stylesheet" type="text/css" href="../../../resources/parrot.css" media="all"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div id="wrapper"> <div id="header"> <a href="http://www.parrot.org"> <img border=0 src="../../../resources/parrot_logo.png" id="logo" alt="parrot"> </a> </div> <!-- "header" --> <div id="divider"></div> <div id="mainbody"> <div id="breadcrumb"> <a href="../../../html/index.html">Home</a> » <a href="../../../html/developer.html">Developer Documentation</a> » Ubuntu Packaging Guide </div> <h1><a name="Ubuntu_Packaging_Guide" >Ubuntu Packaging Guide</a></h1> <p>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.</p> <p>This guide assumes that you're running in a chroot environment set up as in: <a href='https://trac.parrot.org/parrot/wiki/ChrootSetup'>https://trac.parrot.org/parrot/wiki/ChrootSetup</a>, and also assumes that you've already built the corresponding Debian package for the release as documented in <a href='TODO#project%2Fdebian_packaging_guide.pod'>"project/debian_packaging_guide.pod" in docs</a>.</p> <p>To package Parrot for Ubuntu:</p> <dl> <dt><a name="0." >0.</a></dt> Download the latest tarball. <dt><a name="1." >1.</a></dt> 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). <dt><a name="2." >2.</a></dt> Create a new directory. (The name is irrelevant, but we'll use <em>~/udeb/parrot</em> for the sake of illustration.)Create a fresh extract of the tarball in the <em>~/udeb/parrot</em> directory. The directory should be named <em>parrot-[version]</em> (it will be by default).Copy the original tarball into <em>~/udeb/parrot</em>, naming it <em>parrot_[version].orig.tar.gz</em> (note the "_" in place of dash). <dt><a name="3." >3.</a></dt> Integrate any new change entries from <em>ports/debian/changelog</em> into <em>ports/ubuntu/changelog</em>, preserving chronological order.Copy the <em>ports/debian/</em> directory from the Parrot source tree into the fresh tarball extract. <pre> cp -r <path/to/parrot/git>/ports/debian ~/udeb/parrot/parrot-[version]/.</pre> Then copy the unique Ubuntu files (<em>changelog</em> and <em>control.in</em>) from <em>ports/ubuntu/</em> into the new <em>debian/</em> directory. <pre> cp <path/to/parrot/git>/ports/ubuntu/* ~/udeb/parrot/parrot-[version]/debian/.</pre> <dt><a name="4." >4.</a></dt> Add a new entry to the <em>changelog</em> file in <em>~/udeb/parrot/parrot-[version]/debian/</em> for the Ubuntu package. Copy the first line from the Debian changelog. Add <code>ubuntu#</code> after the Debian version to indicate the Ubuntu revision of the package, and for PPA uploads also add <code>~ppa#</code>. Instead of the Debian branch ('unstable') use the target Ubuntu distribution ('intrepid'). <pre> parrot (0.5.1-1ubuntu1) intrepid; urgency=low</pre> The changelog entry for the Ubuntu release is generally: <pre> * Synchronize with Debian unstable.</pre> 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 <code>date -R</code>. (Note that two spaces are required between the email and the date.) <pre> -- Your Name <you@example.org> Sun, 30 Dec 2007 17:21:45 +0000</pre> <dt><a name="5." >5.</a></dt> Install all dependencies: <pre> $ sudo /usr/lib/pbuilder/pbuilder-satisfydepends</pre> <dt><a name="6." >6.</a></dt> Build the source packages. From <em>~/udeb/parrot/parrot_[version]/</em>, run: <pre> $ debuild -S -sa</pre> <dt><a name="7." >7.</a></dt> Update Parrot's PPA with the new release (configured in ChrootSetup). From <em>~/udeb/parrot/</em> run: <pre> $ dput parrot-ppa parrot_[version]_source.changes</pre> <dt><a name="8." >8.</a></dt> Commit the Ubuntu <em>changelog</em> file to the <em>ports/ubuntu/</em> directory in the repository. (At the moment, we're keeping the Debian packages as the primary.)</dl> </div> <!-- "mainbody" --> <div id="divider"></div> <div id="footer"> Copyright © 2002-2011, Parrot Foundation. </div> </div> <!-- "wrapper" --> </body> </html>