Build

Chromium

The Ubuntu packaging branch is located in LP: lp:chromium-browser

There's a PPA: https://edge.launchpad.net/~chromium-daily/+archive/ppa

Building the upstream way

GCLIENT_URL=http://src.chromium.org/svn/trunk/depot_tools/linux
CHROMIUM_URL=http://src.chromium.org/svn/trunk/src

# Checkout
svn co $GCLIENT_URL ./depot_tools
./depot_tools/gclient config $CHROMIUM_URL
./depot_tools/gclient sync

depot_tools is a very small set of scripts. Mostly wrappers for scons and svn.

gclient sync brings in several repositories (See src/DEPS)

after checkout set your PATH to include depot_tools:

export PATH=$PATH:$PWD/depot_tools/

now continue with the official chromium build instructions.

Building the ubuntu way

The ubuntu package provides a get-orig-source target that can do branch caching. Use this to produce your orig.tar.gz:

bzr branch lp:chromium-browser
mkdir upstream
cd chromium-browser
./debian/rules get-orig-source LOCAL_BRANCH=../upstream/chromium-browser.svn

This will give you a fresh snapshot. You can also use 'get-current-source' to get the one needed to build the branch as it is.

Next put the produced orig.tar.gz in the ../tarballs/ directory (next to the chromium-browser directory) and use bzr builddeb to build the package

bzr builddeb --merge --dont-purge --builder='dpkg-buildpackage -rfakeroot -b'

64bit

There's no native 64bit support. The salute comes from ia32libs, well, sort of...

Upstream: http://code.google.com/p/chromium/wiki/LinuxBuild64Bit

Status in Ubuntu:

- All: Build-deps += ia32-libs, lib32z1-dev

- Jaunty:
   - nothing more needed since ia32-libs 2.7ubuntu4
- Intrepid:
   - needs a bunch of symlinks for lib{gio-2.0,gdk-x11-2.0,atk-1.0,gdk_pixbuf-2.0,pangocairo-1.0,
                                       pango-1.0,pangoft2-1.0,gobject-2.0,gmodule-2.0,glib-2.0,
                                       gtk-x11-2.0}.so

   - symlinks for lib{cairo,freetype,fontconfig,X11,Xrender,Xext}.so

- Hardy:
   - same symlinks as intrepid
   - nss32
   - nspr32

To work-around these issues, I created ia32-libs-chromium-browser (also in the PPA) which adds all the missing pieces. For Jaunty, this package is now empty (as of March 2009). So, for all arches, it's possible to just add:

Build-deps += ia32-libs-chromium-browser

For the missing symlinks, the symptom is:

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../libgtk-x11-2.0.so when searching for -lgtk-x11-2.0
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../libgtk-x11-2.0.a when searching for -lgtk-x11-2.0
/usr/bin/ld: skipping incompatible /usr/lib/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0
/usr/bin/ld: skipping incompatible /usr/lib/libgtk-x11-2.0.a when searching for -lgtk-x11-2.0
/usr/bin/ld: cannot find -lgtk-x11-2.0
collect2: ld returned 1 exit status

because /usr/lib32/libgtk-x11-2.0.so is missing:

$ ls -l /usr/lib*/libgtk-x11-2.0.so*
lrwxrwxrwx 1 root root      26 2009-03-04 16:31 /usr/lib32/libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.1500.0
-rw-r--r-- 1 root root 4108712 2009-01-23 13:46 /usr/lib32/libgtk-x11-2.0.so.0.1500.0
lrwxrwxrwx 1 root root      26 2009-03-04 16:13 /usr/lib64/libgtk-x11-2.0.so -> libgtk-x11-2.0.so.0.1505.0
lrwxrwxrwx 1 root root      26 2009-03-04 16:13 /usr/lib64/libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.1505.0
-rw-r--r-- 1 root root 4472696 2009-03-03 12:04 /usr/lib64/libgtk-x11-2.0.so.0.1505.0
lrwxrwxrwx 1 root root      26 2009-03-04 16:13 /usr/lib/libgtk-x11-2.0.so -> libgtk-x11-2.0.so.0.1505.0
lrwxrwxrwx 1 root root      26 2009-03-04 16:13 /usr/lib/libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.1505.0
-rw-r--r-- 1 root root 4472696 2009-03-03 12:04 /usr/lib/libgtk-x11-2.0.so.0.1505.0

Chromium/Build (last edited 2009-05-14 22:55:51 by asac)