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
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://firstname.lastname@example.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() 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).
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.
On 08/05/22 18:30, Simon 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.