
------------------------------------------------------

 README.source - for ubuntu/debian chromium-browser
 Author: Alexander Sack <asac@ubuntu.com>

------------------------------------------------------

Content:

  I. Packaging overview
  II. Upstream (orig.tar.gz)
  III. Get sources for channels (aka dev, beta, stable)
  IV. Efficient Upstream orig.tar.gz production
  V. Patching

------

I. Packaging overview

  + Obtaining latest packaging:
    bzr branch lp:~chromium-browser/chromium-browser/chromium-browser.head

  + this gives you a debian/ only bzr branch

  + to suggested way to build is using bzr-builddeb; for that
    1. put the orig.tar.gz matching your debian/changelog in --orig-dir
       of bzr-builddeb (default: ..)
    2. run: bzr bd --merge --dont-purge --builder='debuild -b'
    3. this gives you a build tree and the results in --build-dir
       and --result-dir


II. Upstream (orig.tar.gz)

The package provides means to easily grab the _current_ and the latest
upstream snapshot of chromium.

./debian/rules gets the pristine upstream snapshot for you and then strips
a lots of not used subdirectories - in particular those with potential
licensing issues - before packing things up in a tarball-in-tarball layout
orig.tar.gz.

The nested tarball is packed using _lzma_ do get a minimal result.

Examples on how to get orig.tar.gz for snapshots:

  + get latest upstream snapshot:
    ./debian/rules get-orig-source

  + get current upstream snapshot (by changelog):
    ./debian/rules get-current-source


III. Get sources for channels (aka dev, beta, stable)

The packaging provides a feature to produce orig.tar.gz for stable channels,
like dev, beta and stable builds. To get the latest beta build, append
CHANNEL=beta to your debian/rules line, e.g.:

  + ./debian/rules get-orig-source CHANNEL=beta

IV. Efficient Upstream orig.tar.gz production

The packaging provides a feature to speed up the orig.tar.gz production by
keeping a local mirror of the chromium checkouts; this reduces the
network overhead considerably and allows you to regularly create tarballs
rather quickly. To do that, append LOCAL_BRANCH=/local/chromium/checkout
to your debian/rules invocation, e.g.

  + produce latest upstream snapshot:
    ./debian/rules get-orig-source LOCAL_BRANCH=/home/asac/chromium/

  + produce current upstream snapshot (by changelog):
    ./debian/rules get-current-source LOCAL_BRANCH=/home/asac/chromium/

  + produce latest beta channel tarball:
    ./debian/rules get-orig-source LOCAL_BRANCH=/home/asac/chromium/ CHANNEL=beta


V. Patching

We use quilt for the sake of efficiency to code and update patches.

if you want to create a patch or write a patch, at best kick off a build
and break it after the current patches have been applied. Then cd into the
chromium tree:

 cd build-tree/src/

create a link to the quilt patches directory

 ln -s ../../debian/patches

and start working on quilt patches as usual, e.g.

 quilt applied
 quilt pop
 quilt refresh
 ...


