Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 3ad95df1b9ec0c823807557dbacf5694 > files > 101

bzr-doc-2.2.4-1.fc14.noarch.rpm



<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Managing the Bazaar PPA &mdash; Bazaar v2.2.4 documentation</title>
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '2.2.4',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="shortcut icon" href="_static/bzr.ico"/>

    <link rel="top" title="Bazaar v2.2.4 documentation" href="index.html" />
    <link rel="next" title="Bazaar Windows EC2 Server" href="ec2.html" />
    <link rel="prev" title="Releasing Bazaar" href="releasing.html" />
<link rel="stylesheet" href="_static/bzr-doc.css" type="text/css" />
 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="ec2.html" title="Bazaar Windows EC2 Server"
             accesskey="N">next</a></li>
        <li class="right" >
          <a href="releasing.html" title="Releasing Bazaar"
             accesskey="P">previous</a> |</li>
<li><a href="http://bazaar.canonical.com/">
    <img src="_static/bzr icon 16.png" /> Home</a>&nbsp;|&nbsp;</li>
<a href="http://doc.bazaar.canonical.com/en/">Documentation</a>&nbsp;|&nbsp;</li>

        <li><a href="index.html">Developer Document Catalog (2.2.4)</a> &raquo;</li>
 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="managing-the-bazaar-ppa">
<h1>Managing the Bazaar PPA<a class="headerlink" href="#managing-the-bazaar-ppa" title="Permalink to this headline">¶</a></h1>
<p>See also: <a class="reference external" href="index.html">Bazaar Developer Document Catalog</a>.</p>
<div class="section" id="background">
<h2>Background<a class="headerlink" href="#background" title="Permalink to this headline">¶</a></h2>
<p>We build Ubuntu <tt class="docutils literal"><span class="pre">.deb</span></tt> packages for Bazaar as an important part of the release
process.  These packages are hosted in a few <a class="reference external" href="https://help.launchpad.net/PPAQuickStart">Personal Package Archives (PPA)</a> on
Launchpad.</p>
<blockquote>
<div></div></blockquote>
<p>As of June 2010, there are three PPAs:</p>
<dl class="docutils">
<dt>&lt;<a class="reference external" href="https://launchpad.net/~bzr/+archive">https://launchpad.net/~bzr/+archive</a>&gt;</dt>
<dd>Final released versions and updates.</dd>
<dt>&lt;<a class="reference external" href="https://launchpad.net/~bzr-beta-ppa/+archive">https://launchpad.net/~bzr-beta-ppa/+archive</a>&gt;</dt>
<dd>Beta releases.</dd>
<dt>&lt;<a class="reference external" href="https://launchpad.net/~bzr-nightly-ppa/+archive">https://launchpad.net/~bzr-nightly-ppa/+archive</a>&gt;</dt>
<dd>Automatic nightly builds from trunk.</dd>
</dl>
<p>We build packages for every supported Ubuntu release
&lt;<a class="reference external" href="https://wiki.ubuntu.com/Releases">https://wiki.ubuntu.com/Releases</a>&gt;.  Packages need no longer be updated
when the release passes end-of-life because all users should
have upgraded by then.</p>
<p>We build a distinct package for each distrorelease.
If you upload a release-specific version, you should add a suffix to the
package version, e.g. <tt class="docutils literal"><span class="pre">bzr.1.3-1~bazaar1~dapper1</span></tt>.</p>
<p>Dapper uses the <tt class="docutils literal"><span class="pre">python-support</span></tt> framework and later distributions use
<tt class="docutils literal"><span class="pre">python-central</span></tt>.  This has little effect on everyday packaging but does
mean that some of the control files are quite different.</p>
<p>Every package is first uploaded into the beta ppa.  For final release
versions it is also copied to the main PPA.</p>
<p>The packaging information is kept in branches of bzr on Launchpad, named
like
&lt;<a class="reference external" href="https://code.launchpad.net/~bzr/bzr/packaging-hardy">https://code.launchpad.net/~bzr/bzr/packaging-hardy</a>&gt;.
or
&lt;lp:~bzr/bzr/packaging-hardy&gt;.  These branches are intended to be used
with the <tt class="docutils literal"><span class="pre">bzr-builddeb</span></tt> plugin.</p>
</div>
<div class="section" id="preconditions">
<h2>Preconditions<a class="headerlink" href="#preconditions" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p class="first">You must have a Launchpad account and be a member of the teams
that own these PPAs (<tt class="docutils literal"><span class="pre">~bzr</span></tt>, <tt class="docutils literal"><span class="pre">~bzr-beta-ppa</span></tt>).</p>
</li>
<li><p class="first">You must have a GPG key registered to your Launchpad account.</p>
</li>
<li><p class="first">Configure <tt class="docutils literal"><span class="pre">dput</span></tt> to upload to our PPA with this section in your
<tt class="docutils literal"><span class="pre">~/.dput.cf</span></tt>:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">[</span><span class="n">bzr</span><span class="o">-</span><span class="n">beta</span><span class="o">-</span><span class="n">ppa</span><span class="p">]</span>
<span class="n">fqdn</span> <span class="o">=</span> <span class="n">ppa</span><span class="o">.</span><span class="n">launchpad</span><span class="o">.</span><span class="n">net</span>
<span class="n">method</span> <span class="o">=</span> <span class="n">ftp</span>
<span class="n">incoming</span> <span class="o">=</span> <span class="o">~</span><span class="n">bzr</span><span class="o">-</span><span class="n">beta</span><span class="o">-</span><span class="n">ppa</span><span class="o">/</span><span class="n">ubuntu</span>
<span class="n">login</span> <span class="o">=</span> <span class="n">anonymous</span>
<span class="n">allow_unsigned_uploads</span> <span class="o">=</span> <span class="mi">0</span>

<span class="p">[</span><span class="n">bzr</span><span class="o">-</span><span class="n">ppa</span><span class="p">]</span>
<span class="n">fqdn</span> <span class="o">=</span> <span class="n">ppa</span><span class="o">.</span><span class="n">launchpad</span><span class="o">.</span><span class="n">net</span>
<span class="n">method</span> <span class="o">=</span> <span class="n">ftp</span>
<span class="n">incoming</span> <span class="o">=</span> <span class="o">~</span><span class="n">bzr</span><span class="o">/</span><span class="n">ubuntu</span>
<span class="n">login</span> <span class="o">=</span> <span class="n">anonymous</span>
<span class="n">allow_unsigned_uploads</span> <span class="o">=</span> <span class="mi">0</span>
</pre></div>
</div>
<p>You may also want to add these lines to prevent inadvertently attempting
to upload into Ubuntu or Debian, which will give a somewhat unclear
error:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">[</span><span class="n">DEFAULT</span><span class="p">]</span>
<span class="n">default_host_main</span> <span class="o">=</span> <span class="n">notspecified</span>
</pre></div>
</div>
</li>
<li><p class="first">Configure <tt class="docutils literal"><span class="pre">bzr-builddeb</span></tt> to sign the package, which is required for
Launchpad to build it.  Put this in <tt class="docutils literal"><span class="pre">~/.bazaar/builddeb.conf</span></tt></p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">[</span><span class="n">BUILDDEB</span><span class="p">]</span>
<span class="n">builder</span> <span class="o">=</span> <span class="n">dpkg</span><span class="o">-</span><span class="n">buildpackage</span> <span class="o">-</span><span class="n">rfakeroot</span>
<span class="n">source</span><span class="o">-</span><span class="n">builder</span><span class="o">=</span> <span class="n">dpkg</span><span class="o">-</span><span class="n">buildpackage</span> <span class="o">-</span><span class="n">rfakeroot</span> <span class="o">-</span><span class="n">S</span> <span class="o">-</span><span class="n">sa</span>
</pre></div>
</div>
</li>
<li><p class="first">You need a Ubuntu (or probably Debian) machine, and</p>
<div class="highlight-python"><pre>sudo apt-get install build-essential devscripts dput quilt patch libcrypt-ssleay-perl debhelper cdbs python-docutils</pre>
</div>
<p>Please update this document if you encounter unmet dependencies or find a
shorter way to express them.</p>
</li>
<li><p class="first">You will also want to have the <a class="reference external" href="http://launchpad.net/bzr-builddeb">bzr-builddeb</a> plugin installed, which
depends on <a class="reference external" href="http://launchpad.net/bzrtools">bzrtools</a>.</p>
</li>
</ul>
</div>
<div class="section" id="packaging-bazaar">
<h2>Packaging Bazaar<a class="headerlink" href="#packaging-bazaar" title="Permalink to this headline">¶</a></h2>
<div class="section" id="short-form">
<h3>Short form<a class="headerlink" href="#short-form" title="Permalink to this headline">¶</a></h3>
<p>For people who have already set up everything they need, building the
release packages is as simple as:</p>
<div class="highlight-python"><pre>cd ~/dev/bzr/releases/packaging
export VERSION="1.17~rc1-1~bazaar1"
export PACKAGE="bzr"
export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
~/dev/bzr/bzr.dev/tools/packaging/update-packaging-branches.sh
~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh
~/dev/bzr/bzr.dev/tools/packaging/update-control.sh 1.16 1.17 1.18
~/dev/bzr/bzr.dev/tools/packaging/build-packages.sh
dput bzr-beta-ppa ${PACKAGE}_$VERSION*.changes</pre>
</div>
<p>Rinse and repeat for all the plugins by changing VERSION and PACKAGE.</p>
</div>
<div class="section" id="long-form">
<h3>Long Form<a class="headerlink" href="#long-form" title="Permalink to this headline">¶</a></h3>
<ol class="arabic">
<li><p class="first">You will end up checking out a separate directory for each supported
release. Such as <tt class="docutils literal"><span class="pre">~/dev/bzr/releases/packaging/hardy</span></tt>. In each of these
branches, you will produce the package for the release.</p>
<p>The scripts will also create the branches and produce packages for
bzrtools and bzr-svn.</p>
</li>
<li><p class="first">Decide on the final version number.  It should be of this form:</p>
<div class="highlight-python"><pre>bzr-1.17~rc1-1~bazaar1~hardy1</pre>
</div>
<p><strong>Note:</strong> There are three hyphen-separated parts: the <em>package name</em>,
the <em>upstream version</em>, and the <em>packaging version</em>.</p>
<p><strong>Caution:</strong> Upstream betas or release candidates must insert a tilde
to make them sort before the final release, like this:
<tt class="docutils literal"><span class="pre">bzr-1.17~rc1-1~bazaar1~hardy1</span></tt>.</p>
<p>Final releases will use a release string of the form:
<tt class="docutils literal"><span class="pre">bzr-1.17-1~bazaar1~hardy1</span></tt></p>
<p>Set this base of this up as a usable environment variable:</p>
<div class="highlight-python"><pre>export VERSION="1.17~rc1-1~bazaar1"</pre>
</div>
</li>
<li><p class="first">Export the distroreleases that you will be packaging for:</p>
<div class="highlight-python"><pre>export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"</pre>
</div>
</li>
<li><p class="first">Export the program you are packaging:</p>
<div class="highlight-python"><pre>export PACKAGE="bzr"</pre>
</div>
</li>
<li><p class="first">Checkout (or update) the packaging branch for each supported release:</p>
<div class="highlight-python"><pre>bzr co lp:~bzr/bzr/packaging-hardy</pre>
</div>
<p>There is a script available to help:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">tools</span><span class="o">/</span><span class="n">packaging</span><span class="o">/</span><span class="n">update</span><span class="o">-</span><span class="n">packaging</span><span class="o">-</span><span class="n">branches</span><span class="o">.</span><span class="n">sh</span>
</pre></div>
</div>
</li>
<li><p class="first">The <tt class="docutils literal"><span class="pre">bzr-builddeb</span></tt> step will download the original tarball if you do
not already have it, putting it into a <tt class="docutils literal"><span class="pre">tarballs</span></tt> directory.</p>
</li>
<li><p class="first">For Bazaar plugins, change the <tt class="docutils literal"><span class="pre">debian/control</span></tt> file to express a
dependency on the correct version of <tt class="docutils literal"><span class="pre">bzr</span></tt>.</p>
<p>For bzrtools this is typically:</p>
<div class="highlight-python"><pre>Build-Depends-Indep: bzr (&gt;= 1.17~), rsync
Depends: ${python:Depends}, bzr (&gt;= 1.17~), bzr (&lt;&lt; 1.18~), patch</pre>
</div>
<p>There is a helper script which will update the control file and commit it
for all of your <tt class="docutils literal"><span class="pre">$UBUNTU_RELEASES</span></tt>. It is available as:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">tools</span><span class="o">/</span><span class="n">packaging</span><span class="o">/</span><span class="n">update</span><span class="o">-</span><span class="n">control</span><span class="o">.</span><span class="n">sh</span>
</pre></div>
</div>
<p>You must supply the versions as arguments as follows
OLD_VERSION CURRENT_VERSION NEXT_VERSION, such as:</p>
<div class="highlight-python"><pre>tools/packaging/update-control.sh 1.16 1.17 1.18</pre>
</div>
</li>
<li><p class="first">Make a new <tt class="docutils literal"><span class="pre">debian/changelog</span></tt> entry for the new release,
either by using <tt class="docutils literal"><span class="pre">dch</span></tt> or just editing the file:</p>
<div class="highlight-python"><pre>dch -v '1.17~rc1-1~bazaar1~hardy1' -D hardy</pre>
</div>
<p>dch will default to the distro you&#8217;re working in and this isn&#8217;t checked
against the version number (which is just our convention), so make sure
to specify it.</p>
<p>Make sure you have the correct email address for yourself (you may need
export DEBEMAIL=`bzr whoami` if it isn&#8217;t already set), version number, and
distribution.  It should look something like this:</p>
<div class="highlight-python"><pre>bzr (1.17~rc1-1~bazaar1~hardy1) hardy; urgency=low

 * New upstream release.

-- John Sample &lt;sample@example.com&gt;  Mon, 31 Mar 2008 12:36:27 +1100</pre>
</div>
<p>If you need to upload the package again to fix a problem, normally you
should increment the last number in the version number, following the
distro name.  Make sure not to omit the initial <tt class="docutils literal"><span class="pre">-1</span></tt>, and make sure
that the distro name in the version is consistent with the target name
outside the parenthesis.</p>
<p>You will also want to commit these changes into the packaging branch.</p>
<p>There is a helper script which will build all the packages
for all of your <tt class="docutils literal"><span class="pre">$UBUNTU_RELEASES</span></tt>. It is available as:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">tools</span><span class="o">/</span><span class="n">packaging</span><span class="o">/</span><span class="n">update</span><span class="o">-</span><span class="n">changelogs</span><span class="o">.</span><span class="n">sh</span>
</pre></div>
</div>
</li>
<li><p class="first">Build the source packages:</p>
<div class="highlight-python"><pre>cd packaging-$DISTRO; bzr builddeb -S</pre>
</div>
<p>This will create a <tt class="docutils literal"><span class="pre">.changes</span></tt> file.  If you didn&#8217;t configure builddeb
to automatically sign them, you can use</p>
<div class="highlight-python"><pre>debsign -m$UID *.changes</pre>
</div>
<p>where <tt class="docutils literal"><span class="pre">$UID</span></tt> is the gpg key you want to use to sign the changes.</p>
<p>There is a helper script which will build the package
for all of your <tt class="docutils literal"><span class="pre">$UBUNTU_RELEASES</span></tt>. It is available as:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">tools</span><span class="o">/</span><span class="n">packaging</span><span class="o">/</span><span class="n">build</span><span class="o">-</span><span class="n">packages</span><span class="o">.</span><span class="n">sh</span>
</pre></div>
</div>
</li>
<li><p class="first">Upload into the beta PPA for each release:</p>
<div class="highlight-python"><pre>dput bzr-beta-ppa bzr*1.17-1*.changes</pre>
</div>
</li>
<li><p class="first">For final release versions, also copy it into the <tt class="docutils literal"><span class="pre">~bzr</span></tt> PPA:</p>
<div class="highlight-python"><pre>dput bzr-ppa ../bzr_1.17-1\~bazaar1\~hardy1\_source.changes</pre>
</div>
<p>Alternatively, you can use Launchpad&#8217;s &#8220;copy&#8221; feature to copy the
packages between repositories.</p>
</li>
<li><p class="first">You should soon get an &#8220;upload accepted&#8221; mail from Launchpad, which
means that your package is waiting to be built.  You can then track its
progress in &lt;<a class="reference external" href="https://launchpad.net/~bzr-beta-ppa/+archive">https://launchpad.net/~bzr-beta-ppa/+archive</a>&gt; and
&lt;<a class="reference external" href="https://launchpad.net/~bzr-beta-ppa/+archive/+builds">https://launchpad.net/~bzr-beta-ppa/+archive/+builds</a>&gt;.</p>
</li>
</ol>
</div>
<div class="section" id="packaging-bzr-svn">
<h3>Packaging bzr-svn<a class="headerlink" href="#packaging-bzr-svn" title="Permalink to this headline">¶</a></h3>
<p>bzr-svn uses a packaging branch that contains both the source
(including any changes against upstream) and the <tt class="docutils literal"><span class="pre">debian/</span></tt> directory.</p>
<p>To build bzr-svn:</p>
<ol class="arabic">
<li><p class="first">Get a checkout of <tt class="docutils literal"><span class="pre">lp:~bzr/bzr-svn/hardy-ppa/</span></tt></p>
</li>
<li><p class="first">Merge from <tt class="docutils literal"><span class="pre">http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/</span></tt></p>
<p>This should bring in both upstream and packaging changes for the new
release, and it&#8217;s updated as part of the bzr-svn release process.</p>
<p>It&#8217;s quite possible you will need to resolve some conflicts.</p>
</li>
<li><p class="first">Run <tt class="docutils literal"><span class="pre">dch</span> <span class="pre">-v</span> <span class="pre">0.4.15-1~bazaar1-hardy1</span> <span class="pre">-D</span> <span class="pre">hardy</span></tt> or similar</p>
</li>
<li><p class="first">Run <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">builddeb</span> <span class="pre">--source</span></tt></p>
<p>bzr-builddeb will automatically check out the appropriate tag from the
main branch of bzr-svn, build, and package it.</p>
</li>
<li><p class="first"><tt class="docutils literal"><span class="pre">dput</span> <span class="pre">bzr-beta-ppa</span> <span class="pre">../bzr-svn_0.4.15-1~bazaar1~hardy1_source.changes</span></tt></p>
</li>
</ol>
</div>
</div>
<div class="section" id="monitoring-the-contents-of-ppas">
<h2>Monitoring the contents of PPAs<a class="headerlink" href="#monitoring-the-contents-of-ppas" title="Permalink to this headline">¶</a></h2>
<p>If you add all the bzr PPAs to your <tt class="docutils literal"><span class="pre">sources.list</span></tt> then you can see a
summary of current package versions with:</p>
<div class="highlight-python"><pre>apt-cache madison bzr</pre>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Managing the Bazaar PPA</a><ul>
<li><a class="reference internal" href="#background">Background</a></li>
<li><a class="reference internal" href="#preconditions">Preconditions</a></li>
<li><a class="reference internal" href="#packaging-bazaar">Packaging Bazaar</a><ul>
<li><a class="reference internal" href="#short-form">Short form</a></li>
<li><a class="reference internal" href="#long-form">Long Form</a></li>
<li><a class="reference internal" href="#packaging-bzr-svn">Packaging bzr-svn</a></li>
</ul>
</li>
<li><a class="reference internal" href="#monitoring-the-contents-of-ppas">Monitoring the contents of PPAs</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="releasing.html"
                        title="previous chapter">Releasing Bazaar</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="ec2.html"
                        title="next chapter">Bazaar Windows EC2 Server</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="_sources/ppa.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" size="18" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="ec2.html" title="Bazaar Windows EC2 Server"
             >next</a></li>
        <li class="right" >
          <a href="releasing.html" title="Releasing Bazaar"
             >previous</a> |</li>
<li><a href="http://bazaar.canonical.com/">
    <img src="_static/bzr icon 16.png" /> Home</a>&nbsp;|&nbsp;</li>
<a href="http://doc.bazaar.canonical.com/en/">Documentation</a>&nbsp;|&nbsp;</li>

        <li><a href="index.html">Developer Document Catalog (2.2.4)</a> &raquo;</li>
 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2009, Canonical Ltd.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
    </div>
  </body>
</html>