Rego’s Everyday Life

A blog about my work at Igalia.

Testing Online Desktop on Hardy Heron: Quick Guide

I’ve been testing Online Desktop the last days on an Ubuntu distribution. I’ve followed the instructions from OnlineDesktop/Jhbuild, but with these instructions you need to compile 101 modules, it’s quite slow, moreover you can find some problems in different modules that aren’t stables. I need to upgrade to Hardy Heron 8.04 to can finish my compilation.

However, thanks to Dape, I’ve found another solution to test Online Desktop faster only compiling 6 modules: hippo-canvas, local-export-daemon, desktop-data-model, online-desktop, bigboard and mugshot-client. Maybe this isn’t the best way to test Online Desktop, but it’s very quickly for a simple test.

Next I’m going to relate instructions needed to test Online Desktop on an Ubuntu Hardy Heron distribution.

First at all I have to say you that you should use a new user to compile Online Desktop. I usually use sux when I’m compiling:

sux - newuser

Furthermore we should install dependencies before start to compile to avoid future problems. Dependencies from Ubuntu Jhbuild dependencies:

sudo apt-get install gnome-common build-essential doxygen subversion automake1.4 automake1.7 automake1.8 cvs git-core docbook docbook-utils docbook-xsl flex bison texinfo python2.5-dev lynx mono-gmcs libtiff4-dev libxtst-dev libgdbm-dev libxml-simple-perl libelfg0-dev libcupsys2-dev libldap2-dev libexchange-storage1.2-dev libxmu-dev libpam0g-dev libgpgme11-dev libfreetype6-dev libpng12-dev libxrender-dev libxi-dev libexpat1-dev libbz2-dev firefox-dev libxcursor-dev guile-1.8-dev libxdamage-dev libxcomposite-dev libmono-cairo2.0-cil xnest libxft-dev libloudmouth1-0 libloudmouth1-dev libxss-dev libxkbfile-dev libjasper-dev libnl-dev ppp-dev libdv4-dev uuid-dev libpcre3-dev libsqlite3-dev libpurple-dev libcurl4-gnutls-dev xulrunner-1.9-dev gtk-doc-tools libgnome-desktop-dev automake

And some new packages, because we’re going to compile a few modules and need some packages:

sudo apt-get install python-cairo-dev python-gtk2-dev libhippocanvas-dev python-hippocanvas libgtk2.0-dev python-gtk2-dev libpanelappletmm-2.6-dev libpanel-applet2-dev libsoup2.4-dev python-gnome2-dev libcroco3-dev

Firstly you need to install Jhbuild, I paste here instructions from OnlineDesktop/Jhbuild. First create a folder od and the structure needed:

mkdir ~/od
cd ~/od
mkdir checkout
mkdir install
mkdir -p install/var/lib/dbus
ln -s /var/lib/dbus/machine-id install/var/lib/dbus

Now get and install Jhbuild:

cd ~/od
svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild
cd jhbuild
./autogen.sh ; make ; make install

At this moment we need a file ~/.jhbuildrc with the next content:

# -*- mode: python -*-

# if you have a GNOME svn account, uncomment this line
#repos['svn.gnome.org'] = 'svn+ssh://user@svn.gnome.org/svn/'

moduleset = 'online-desktop'

modules = [ 'meta-online-desktop' ]

# This will take a long time, and conflicts with the jhbuild cairo
skip = ['mozilla']

# what directory should the source be checked out to?
checkoutroot = os.path.expanduser('~/od/checkout')

# the prefix to configure/install modules to (must have write access)
prefix = os.path.expanduser('~/od/install')

# Use system libraries for the builds
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'lib', 'pkgconfig'))
addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))

# Look in /usr/share for icons, D-BUS service files, etc
addpath('XDG_DATA_DIRS', '/usr/share')
# Look in /etc/xdg for system-global autostart files
addpath('XDG_CONFIG_DIRS', '/etc/xdg')

# We need to add the gtk-2.0 directory explicitly to the Python path since '.pth'
# files (here pygtk.pth) only work properly in system directories
import re, sys
python_version = sys.version.split()[0]
python_version = re.sub(r"^(d+.d+).d+$", r"1", python_version)
lib_packages = os.path.join(prefix, 'lib', 'python' + python_version, 'site-packages')
lib64_packages = os.path.join(prefix, 'lib64', 'python' + python_version, 'site-packages')
if lib64_packages in sys.path:
    addpath('PYTHONPATH', os.path.join(lib64_packages, 'gtk-2.0'))
else:
    addpath('PYTHONPATH', os.path.join(lib_packages, 'gtk-2.0'))

# Rebuild faster
os.environ['INSTALL'] = os.path.expanduser('~/bin/install-check')

# Use the standard system bus
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = 'unix:path=/var/run/dbus/system_bus_socket'

os.environ['UNDER_JHBUILD'] = 'true'

# Flags needed to 'pyorbit'
os.environ['CFLAGS'] = '-lz'

# Params for mugshot-client
module_autogenargs['mugshot-client'] = autogenargs + ' --with-gecko-sdk=/usr/lib/xulrunner/sdk/ --with-gecko-idl=/usr/lib/xulrunner/sdk/idl/'

You have to check which jhbuild you’re going to execute, you have to use ~/bin/jhbuild.

Before to compile the modules we need to do:

jhbuild -m bootstrap buildone waf

Then we are going to compile these few modules:

jhbuild buildone -a hippo-canvas local-export-daemon desktop-data-model online-desktop bigboard mugshot-client

To test an Online Desktop session we have to create a file /usr/local/bin/run-online-desktop with the next content:

if [ -x $HOME/bin/jhbuild ] ; then
   exec $HOME/bin/jhbuild run dbus-launch --exit-with-session od-session
else
   zenity --error --text="No JHBuild session found for user $USER"
   exit 1
fi

And make it executable:

chmod a+x /usr/local/bin/run-online-desktop

Now we have to create another file /usr/share/gdm/BuiltInSessions/online-desktop-jhbuild.desktop:

[Desktop Entry]
Encoding=UTF-8
Name=Online Desktop (JHBuild)
Comment=JHBuild of Online Desktop
Exec=/usr/local/bin/run-online-desktop
Icon=
Type=Application

Finally we can start a new session with the user that we’ve compiled Online Desktop and test it (maybe when you start an Online Desktop session at first time you have to close and restart the GNOME session to see that Big Board knows that you are logged in Online Desktop).

Screenshot Online Desktop Screenshot Online Desktop

I hope these instructions are complete, but if you find any problem or error please tell me and I’ll update this post. Moreover you can find some solutions for your problems at Jhbuild Issues.


Comments

On 08/05/22 18:30, **[Simon](http://sionide.net/)** wrote:

I had to install the following packages before the modules would compile correctly…

gtk-doc-tools libempathy-dev libgnomedesktop2.20-cil libgnome-desktop-dev automake pidgin-dev

Had troubles with mugshot-client which according to owen in the #online-desktop IRC channel, doesn’t work nicely with Ubuntu’s Xulrunner just yet.

On 08/05/23 08:42, Manuel Rego Casasnovas wrote:

Thanks for your feedback Simon ;-)

I’ve updated the package list, however I don’t have installed some package that you say: libempathy-dev libgnomedesktop2.20-cil pidgin-dev

At this moment I don’t have any problem with mugshot-client, but I remember some problems some time ago.