Building Hildon Desktop outside Maemo/Scratchbox environment
I wrote a step-by-step guide to have Hildon Desktop running outside the Maemo/Scratchbox environment. Our major goal here is to make it easy for distributons to package Hildon Desktop so that developers can have a quick-to-setup environment for the development of plugins which doesn’t need to be built against ARM such as Python plugins. For now, this guide only applies to Ubuntu (If you can point out the changes needed to work on another distribution, please let me know). This is a call for testers and brave developers to follow the guide and report the missing/problematic bits.
http://maemo.org/maemowiki/HildonDesktopPortability
There are some issues that still block us from getting Hildon Desktop in a distribution but we’re working on that.
March 27th, 2007 at 6:56 pm
Would it be possible to write a jhbuild module set for the svn and tarball bits?
March 27th, 2007 at 9:05 pm
@Martin, done! Have a look at http://maemo.org/maemowiki/HildonDesktopPortability now. :-)
March 28th, 2007 at 9:27 am
I seems it’s autogen.sh instead of autogen
But I can get further than the first step. When trying to build maemo-gtk-2-10 it fails with the next error. file=./`echo hy sed ’s,.*/,,’`.gmo \&& rm -f $file && /usr/bin/msgfmt -c -o $file hy.po
hy.po:160: number of format specifications in ‘msgid’ and ‘msgstr[1]’ does not match
/usr/bin/msgfmt: found 1 fatal error
make[2]: *** [hy.gmo] Fout 1
make[2]: Map ‘/home/swatje/Projects/N800/maemo-gtk-2-10/po’ wordt verlaten Please mail me for further testing
March 28th, 2007 at 5:50 pm
Ok, everything seems fine, I just had to time make a couple of times, and it builds further.
I will tell you if I get an other problemMarch 28th, 2007 at 5:57 pm
@Cauwe, I’ve fixed the problem in Maemo GTK+ build. The guide is updated with autogen.sh also. Thanks!
March 28th, 2007 at 6:07 pm
I had to install libesd0-dev too, before I could compile hildon-1.
In last message I ment “I just had to type ‘make’ a couple of times”March 28th, 2007 at 6:18 pm
For hildon-deskop I installed dbus-glib-1-dev
but it still doesn’t build: I get the following error:gcc -DHAVE_CONFIG_H -I. -I. -I.. -DMAEMO_CHANGES -I/opt/maemo/include/hildon-1 -I/opt/maemo/include/gtk-2.0 -I/opt/maemo/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -pthread -DORBIT2=1 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DLOCALEDIR=\”/opt/maemo/share/locale\” -DHILDON_HOME_DESKTOP_ENTRY_DIR=\”/opt/maemo/share/applications/hildon-home\” -I../libhildonwm -g -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -Werror -Wno-format-extra-args -MT hildon-desktop-plugin.lo -MD -MP -MF .deps/hildon-desktop-plugin.Tpo -c hildon-desktop-plugin.c -fPIC -DPIC -o .libs/hildon-desktop-plugin.o
cc1: warnings being treated as errors
hildon-desktop-plugin.c: In function ‘hildon_desktop_plugin_load’:
hildon-desktop-plugin.c:182: warning: dereferencing type-punned pointer will break strict-aliasing rules
hildon-desktop-plugin.c:185: warning: dereferencing type-punned pointer will break strict-aliasing rules
make[3]: *** [hildon-desktop-plugin.lo] Fout 1
make[3]: Map ‘/home/swatje/Projects/N800/hildon-desktop/libhildondesktop’ wordt verlaten
March 28th, 2007 at 8:17 pm
@Cauwe, fixed! Could you try now? Thanks!
March 28th, 2007 at 9:11 pm
There seems to be a copy past error;
should be:one of the 2
svn co https://stage.maemo.org/svn/maemo/projects/haf/trunk/hildon-theme-cacher
svn co https://stage.maemo.org/svn/maemo/projects/haf/trunk/hildon-theme-tools I also think that there is a ‘t’ from ‘tar’ missing in the line for extracting the icons for non debian users. Next problem i get with jhbuild. First after installing jhbuild in my home with make install, the directory /home/swatje/bin is still not in my search pad.
So I have to execute:
swatje@Titan:~/Projects/N800/jhbuild_modules$ /home/swatje/bin/jhbuild -f ./hildon-desktop.jhbuildrc -m ./hildon-desktop.modules build instead of just:
jhbuild -f ./hildon-desktop.jhbuildrc -m ./hildon-desktop.modules build After that I get an error. Traceback (most recent call last):
File “/home/swatje/bin/jhbuild”, line 6, in
jhbuild.main.main(sys.argv[1:])
File “/home/swatje/Projects/N800/jhbuild/jhbuild/main.py”, line 89, in main
rc = jhbuild.commands.run(command, config, args)
File “/home/swatje/Projects/N800/jhbuild/jhbuild/commands/__init__.py”, line 74, in run
return cmd.execute(config, args)
File “/home/swatje/Projects/N800/jhbuild/jhbuild/commands/__init__.py”, line 43, in execute
return self.run(config, options, args)
File “/home/swatje/Projects/N800/jhbuild/jhbuild/commands/base.py”, line 170, in run
build = jhbuild.frontends.get_buildscript(config, module_list)
File “/home/swatje/Projects/N800/jhbuild/jhbuild/frontends/__init__.py”, line 26, in get_buildscript
return BuildScript(config, module_list)
File “/home/swatje/Projects/N800/jhbuild/jhbuild/frontends/terminal.py”, line 66, in __init__
buildscript.BuildScript.__init__(self, config, module_list)
File “/home/swatje/Projects/N800/jhbuild/jhbuild/frontends/buildscript.py”, line 37, in __init__
os.mkdir(self.config.checkoutroot)
OSError: [Errno 2] No such file or directory: ‘/home/swatje/Code/maemo’
swatje@Titan:~/Projects/N800/jhbuild_modules$
March 28th, 2007 at 9:41 pm
@Cauwe,
I’ve fixed the page. The “ar” is tool for managing archives and the suggested command works fine. About your jhbuild issues, I generaly replace “bindir=$(HOME)/bin” with “bindir=$(HOME)/.bin” in the Makefile of jhbuild, and add ~/.bin to my $PATH in ~/.bash_profile. :-) The error you’re getting when running jhbuild is because the files (hildon-desktop.jhbuildrc and hildon-desktop.modules) are not being found. You can provide a full path to the files to make sure they’re found by jhbuild. Thanks!March 28th, 2007 at 10:27 pm
I already added the bin directory to the pad, but I posted it because it’s usefull to know you should add it when you follow the page and you are a beginner.
The problem that I have know is because the script is looking for /home/swatje/Code/maemo, which doesn’t exist for me. The value is defined in th hildon-desktop.jhbuild script:checkoutroot = os.path.expanduser(’~/Code/maemo’) This folder doesn’t exist on my system, I changed it to a temporay folder, and now everything seems to work. I will let you know if I have further problems
March 28th, 2007 at 10:44 pm
Sorry for disturbing you so much,
install -c -m 644 wallpaper.png //opt/maemo/share/backgrounds/plankton.pngIt seems that I also got a problem with plankton theme:
install: kan map “//opt/maemo/share/backgrounds/plankton.png” niet aanmaken: No such file or directory
make[1]: *** [install] Fout 1
make[1]: Map ‘/home/swatje/Projects/N800/hildon-theme-plankton/wallpaper’ wordt verlaten
make: *** [install-recursive] Fout 1 The folder /opt/maemo/share/backgrounds/ didn’t exist, so I made it, and now it installs fine.
March 28th, 2007 at 10:56 pm
When I start the hildon session, i don’t really get what I expected, there is still a problem with the localisation. Ans I don’t get a wallpaper, screenshot:
swatje@Titan:~/Projects/N800$ ./hildon-sessionhttp://network.cauwe.org/swatje/temp/Hildon-session.png
/opt/maemo/share/themes/plankton/gtk-2.0/gtkrc:5760: Unable to locate image file in pixmap_path: “../images/qgn_plat_application_chat_background.jpg”
/opt/maemo/share/themes/plankton/gtk-2.0/gtkrc:5761: “Background” image options specified without filename
/opt/maemo/share/themes/plankton/gtk-2.0/gtkrc:6148: error: invalid string constant “osso-entry-special”, expected valid string constant ** (hildon-desktop:5512): WARNING **: Plugin desktop file not found, ignoring plugin ** (hildon-desktop:5512): WARNING **: Plugin desktop file not found, ignoring plugin
** (hildon-desktop:5512): DEBUG: Attempting to open directory [/opt/maemo/share/applications]
** (hildon-desktop:5512): DEBUG: I couldn’t get contents
** (hildon-desktop:5512): DEBUG: inside hn_app_switcher_constructor…
matchbox-wm: unable to open theme: /opt/maemo/share/themes/hildon/matchbox/theme.xml
** INFO: server started
esd: pcm_params.c:2351: sndrv_pcm_hw_params: Assertion `err >= 0′ failed.
Audio File Library: could not open file ‘/opt/maemo/share/sounds/ui-window_open.wav’ [error 3]
Audio File Library: could not open file ‘/opt/maemo/share/sounds/ui-window_close.wav’ [error 3] (hildon-desktop:5512): Gtk-CRITICAL **: gtk_container_foreach: assertion `GTK_IS_CONTAINER (container)’ failed
** (hildon-desktop:5512): DEBUG: building HNAppSwitcher widget
** (hildon-desktop:5512): DEBUG: Adding inner VBox
** (hildon-desktop:5512): DEBUG: Adding buttons
** (hildon-desktop:5512): DEBUG: Creating app button at pos 0 (name hildon-navigator-small-button1)
** (hildon-desktop:5512): DEBUG: Creating app button at pos 1 (name hildon-navigator-small-button2)
** (hildon-desktop:5512): DEBUG: Creating app button at pos 2 (name hildon-navigator-small-button3)
** (hildon-desktop:5512): DEBUG: Adding menu button (hildon-desktop:5512): GLib-GObject-WARNING **: gsignal.c:1669: signal `long-press-key’ is invalid for instance `0×81000b0′
** (hildon-desktop:5512): DEBUG: Changing orientation app_switcher
** (hildon-desktop:5512): DEBUG: Move: TRUE to x:0 y:0 & Resize: TRUE ** (hildon-desktop:5512): WARNING **: hd-home-window.c:396: invalid property id 1 for “osso-context” of type `GParamPointer’ in `HDHomeWindow’ (hildon-desktop:5512): hildon-1-WARNING **: Failed to lookup ‘TitleTextColor’ color!
** (hildon-desktop:5512): DEBUG: Loading background from /home/swatje/.osso/hildon-desktop/home-background.conf
** (hildon-desktop:5512): DEBUG: Loading background from /opt/maemo/etc/hildon-desktop/home-background.conf
** (hildon-desktop:5512): DEBUG: Work area changed, reapplying the background
** (hildon-desktop:5512): DEBUG: Loading Hildon Home layout from /etc/hildon-desktop/home-layout.conf ** (hildon-desktop:5512): WARNING **: An error occurred when reading HildonHome applets’ configuration: No such file or directory ** (hildon-desktop:5512): WARNING **: Plugin desktop file not found, ignoring plugin
** (hildon-desktop:5512): DEBUG: Work area changed, reapplying the background
** (hildon-desktop:5512): DEBUG: Applying background /usr/share/themes/default/images/qgn_plat_home_background.png aynchronously
** (hildon-desktop:5512): DEBUG: DBUS Callback ** (hildon-desktop:5512): WARNING **: Error when setting background: The name org.maemo.hildon.background_manager was not provided by any .service files
** (hildon-desktop:5512): DEBUG: Received MODAL WINDOWS notification
** (hildon-desktop:5512): DEBUG: value = 0
** (hildon-desktop:5512): DEBUG: Applying background /usr/share/themes/default/images/qgn_plat_home_background.png aynchronously
** (hildon-desktop:5512): DEBUG: DBUS Callback ** (hildon-desktop:5512): WARNING **: Error when setting background: The name org.maemo.hildon.background_manager was not provided by any .service files
** (hildon-desktop:5512): DEBUG: Received MODAL WINDOWS notification
** (hildon-desktop:5512): DEBUG: value = 0
** (hildon-desktop:5512): DEBUG: called
** (hildon-desktop:5512): DEBUG: ***************** No Home info yet
** (hildon-desktop:5512): DEBUG: setting button (pos=0) (inconsistent=”, active=”) name: hildon-navigator-small-button1
** (hildon-desktop:5512): DEBUG: setting button (pos=1) (inconsistent=”, active=”) name: hildon-navigator-small-button2
** (hildon-desktop:5512): DEBUG: setting button (pos=2) (inconsistent=”, active=”) name: hildon-navigator-small-button3
** (hildon-desktop:5512): DEBUG: Hiding main button icon
** (hildon-desktop:5512): DEBUG: Move: FALSE to x:0 y:0 & Resize: FALSE
Aborted (core dumped)
March 29th, 2007 at 12:11 am
@Cauwe,
About your jhbuild directories thing, I’ve added some additional notes about this in the page. Please, check if it’s clear enough. About the error on hildon-theme-plankton is solved now. About the problems on running Hildon Desktop: This line is strange:matchbox-wm: unable to open theme: /opt/maemo/share/themes/hildon/matchbox/theme.xml Did you change anything in the hildon-session script? It should be looking for the matchbox theme in /opt/maemo/share/themes/plankton/matchbox/theme.xml. About the localization problem, try to copy po/en_GB.mo in hildon-desktop to the same location than hildon-libs.mo as described in the guide. The problem with the background manager is that background manager is a D-Bus service which will use the dbus-daemon for current session. What happens is that for this running dbus-daemon the DISPLAY and XDG_DATA_DIRS (where to look for dbus services) are already defined. If you run hildon-session with a different user then a brand new dbus-daemon will run with the correct environment variables. So, a simple way to make the background manager work is:
1) Create a new user in the system. Ex: hildon
2) Switch to this new user. “su - hildon”
3) Run hildon-session with this user Let me know if you have any problems.
March 29th, 2007 at 7:46 am
Yes, Sorry I changed the lauch script, because of the background problem.
The localisation don’t work yet (I couldn’t find hildon-desktop/po/en_GB.mo), but it’s not such big deal.If I start everything in an other user it seems to work. Thanks for the guide!
March 29th, 2007 at 8:02 am
Hi,
I still need to install some python parts like the hildon/osso parts. I found they are in svn, but maybe it can be usefull to add them to the howto? I was also thinking that maybe it’s also easy to make a tar.gz with the /opt/maemo dir and a simpel install script?I was just testing some of my python scripts I made for the N800. But…
This would be really simpel for new developers and python programmers
March 29th, 2007 at 6:10 pm
@Cauwe,
I gave you wrong instructions about the localization :-P You need to grab the translation in another module. I added the instructions in the wiki page. Have a look there. About the Python stuff, I’ll add the python related instructions still today. :-) Consider those instructions as the very first step towards having packages in the distributions. Therefore, I’m not thinking on providing tarballs for now. Feel free to experiment this and tell me about the issues you find.March 29th, 2007 at 6:25 pm
I think there is a typo in:
it’s not en_BG.po but en_GB.po Now it seems to work rightmsgfmt -v -a –statistics po/en_BG.po -o /opt/maemo/share/locale/en_GB/LC_MESSAGES/maemo-af-desktop.mo
March 29th, 2007 at 6:27 pm
Fixed! Good to know it works now!
I’ve added the python support instructions already. :-)March 30th, 2007 at 7:24 am
I tried the python thing, but it seems that python doesn’t install in the right dir( not it /opt/maemo), and i did:
The output from make install is:./configure –prefix=/opt/maemo
-/usr/bin/install: cannot create regular file `/usr/lib/python2.5/site-packages/hildondesktop.so’: Permission denied
make[3]: *** [install-pygtkexecLTLIBRARIES] Fout 1
make[3]: Map ‘/home/swatje/Projects/N800/python-hildondesktop/libhildondesktop’ wordt verlaten
make[2]: *** [install-am] Fout 2
make[2]: Map ‘/home/swatje/Projects/N800/python-hildondesktop/libhildondesktop’ wordt verlaten
make[1]: *** [install] Fout 2
make[1]: Map ‘/home/swatje/Projects/N800/python-hildondesktop/libhildondesktop’ wordt verlaten
make: *** [install-recursive] Fout 1
March 30th, 2007 at 7:26 am
sorry, I didn’t read the instruction well :D
I had to type sudo :D But I don’t like it too much because this makes a mess of my system.March 30th, 2007 at 7:31 am
@Cauwe, I agree this is not the ideal way but it doesn’t exactly “mess” your system. It just installs the hildondesktop python module in your Python path. :-)
Another option is to use “jhbuild bootstrap” which will install a fresh copy of Python in your prefix (/opt/maemo). Then, you wouldn’t have to install anything in your system.