mh-shot-tool update
October 25, 2007 on 4:58 pm | In maemo-hackers | 1 CommentBy popular request, mh-shot-tool now remembers the last selected method (save to disk vs. flickr) and the last save path. Also, an activity indicator was added for image saving/compression, uploading is still missing one though.
Keep your ideas coming, they just might get implemented. 😉
A small update for the lucky ones: mh-shot-tool is available for chinook. Just click on the install link.
Multi-target development for maemo
October 22, 2007 on 1:19 pm | In maemo | 12 CommentsDespite the fact that the maemo sdk "installer script" is the "preferred" way of installing scratchbox and the roostraps, I have never used it. I prefer to have my dpkg aware of the scratchbox. What I do instead, is grab the scratchbox packages with apt and download the rootstraps manually. These instructions are for debian/ubuntu -- on other distros/platforms you're on your own, sorry.
Here's approximately what I do:
> sudo sh -c 'echo "deb http://scratchbox.org/debian apophis main" >> /etc/apt/sources.list' # Use this on i386 systems > sudo sh -c 'echo "deb http://www.ipi.fi/~pablo/maemo5-sdk_amd64 /" >> /etc/apt/sources.list' # Use this on amd64 systems > sudo apt-get update > sudo apt-get install scratchbox-core scratchbox-devkit-cputransp \ scratchbox-devkit-debian scratchbox-devkit-doctools scratchbox-devkit-maemo3 \ scratchbox-libs scratchbox-toolchain-cs2005q3.2-glibc-arm \ scratchbox-toolchain-cs2005q3.2-glibc2.5-arm \ scratchbox-devkit-perl > sudo apt-get install scratchbox-toolchain-cs2007q3-glibc2.5-arm7 \ scratchbox-devkit-svn scratchbox-devkit-git
This takes a while to download and install, when it asks for users to add to scratchbox, just choose your user (and whomever might want to do scratchbox development on the box). Onwards:
> sudo wget -O /scratchbox/packages/mistral-armel-rootstrap.tgz \ http://repository.maemo.org/stable/mistral/armel/Maemo_Dev_Platform_v2.0_armel-rootstrap.tgz > sudo wget -O /scratchbox/packages/bora-armel-rootstrap.tgz \ http://repository.maemo.org/stable/3.0/armel/maemo-sdk-rootstrap_3.0_armel.tgz > sudo wget -O /scratchbox/packages/chinook-armel-rootstrap.tgz \ http://repository.maemo.org/stable/4.0/armel/maemo-sdk-rootstrap_4.0_armel.tgz > sudo wget -O /scratchbox/packages/fremantle-armel-rootstrap.tgz \ http://repository.maemo.org/stable/5.0/armel/maemo-sdk-rootstrap_5.0_armel.tgz
These take a while too, depending obviously on the thickness of your webtubes. Now all left to do is to create scratchbox targets. Bear in mind, that you might need to re-logon to gain the sbox group, or you may also do:
> su - `whoami`
Now onto the rootstrap creation... The mistral and bora use the "glibc" -toolchain and chinook uses the "glibc2.5" -toolchain. First mistral:
> sb-conf st mistral-armel -c cs2005q3.2-glibc-arm \ -d debian-sarge:maemo3-tools:cputransp:doctools:perl:maemo3-debian \ -t qemu-arm-0.8.2-sb2 > sb-conf rs mistral-armel /scratchbox/packages/mistral-armel-rootstrap.tgz > sb-conf in mistral-armel -c -e -d -F
Bora goes pretty much the same, just replace "mistral" with "bora":
> sb-conf st bora-armel -c cs2005q3.2-glibc-arm \ -d debian-sarge:maemo3-tools:cputransp:doctools:perl:maemo3-debian \ -t qemu-arm-0.8.2-sb2 > sb-conf rs bora-armel /scratchbox/packages/bora-armel-rootstrap.tgz > sb-conf in bora-armel -c -e -d -F
Okie, now we have two rootstraps, missing only chinook, it goes like this:
> sb-conf st chinook-armel -c cs2005q3.2-glibc2.5-arm \ -d debian-sarge:maemo3-tools:cputransp:doctools:perl:maemo3-debian \ -t qemu-arm-0.8.2-sb2 > sb-conf rs chinook-armel /scratchbox/packages/chinook-armel-rootstrap.tgz > sb-conf in chinook-armel -c -e -d -F
Now trying also fremantle =)
> sb-conf st fremantle-armel -c cs2007q3-glibc2.5-arm7 \ -d debian-etch:qemu:doctools:svn:git \ -t qemu-arm-sb > sb-conf rs fremantle-armel /scratchbox/packages/fremantle-armel-rootstrap.tgz > sb-conf in fremantle-armel -c -e -d -F
Now you should have scratchbox with 3 targets: one for IT2006, one for IT2007 and one for upcoming IT2008.
Additional notes: the "bora" rootstrap is broken, it requires you to either install the "virtual packages" or install the real packages. I prefer the latter and add "deb http://repository.maemo.org gregale free non-free" to /etc/apt/sources.list momentarily and do "apt-get update; fakeroot apt-get -f install".
Now that you have three separate targets for different versions, you can jump from one target to another by doing sb-conf se <version>-armel. These instructions can easily be applied for i386 too, if you need to test your applications: just replace every occurrence of arm or armel with i386, drop the "cputransp" from devkits and omit the "-t qemu-arm-0.8.2-sb2" option.
Update: updated the chinook download url to the 4.0 final instead of the beta. Another: Thanks to Marius for pointing out that the perl devkit needs to be installed before it can be used.
Testing flog blog automatic updates
October 22, 2007 on 12:07 pm | In geeky | No CommentsThis post should appear briefly in my facebook profile. 😉
Leetle hildon-1/chinook migration things
October 21, 2007 on 12:55 pm | In maemo | 1 CommentMost of "my" applications are now chinook ready, at least in the svn. However, I prefer to keep them compatible with mistral and bora, so I need to do little quirks. Let's investigate osso-xterm's modifications for example.
What was previously known as hildon-libs, is now hildon-1, so we need to tell configure.ac about this. Before the change, I had:
PKG_CHECK_MODULES(HILDON, hildon-libs >= 0.12.0) AC_SUBST(HILDON_CFLAGS) AC_SUBST(HILDON_LIBS)
Now, as we need to also check for hildon-1, and due to the fact that we need to know it in source as the include paths have changed, it goes like this:
PKG_CHECK_MODULES(HILDON, hildon-1 >= 0.9.9, \ AC_DEFINE(HILDON, 1, [Version of hildon libraries]), \ [AC_DEFINE(HILDON, 0, [Version of hildon libraries]) \ PKG_CHECK_MODULES(HILDON_LIBS, hildon-libs >= 0.12.0)]) AC_SUBST(HILDON_CFLAGS) AC_SUBST(HILDON_LIBS)
In code, I do the following:
#ifdef HAVE_CONFIG_H # include <config.h> #endif #if HILDON == 1 # include <hildon/hildon-window.h> #else # include <hildon-widgets/hildon-window.h> #endif
There are also some real changes, but with this I get to compile stuff and get warnings/errors for the other stuff that has changed. Those I've, again, separated with #if HILDON == 1.
For projects that don't use autotools, I use this kind of stuff:
mh_shot_tool_CFLAGS += $(shell if pkg-config hildon-1 --exists; then \ pkg-config hildon-1 --cflags; echo -DHILDON=1; \ elif pkg-config hildon-libs --exists; then \ pkg-config hildon-libs --cflags; echo -DHILDON=0; \ else pkg-config gtk+-2.0 --cflags; fi)
Edit: thanks to Loïc for pointing out, the AC_SUBSTs aren't actually needed, PKG_CHECK_MODULES already does that. You may omit them and it will still work.
mh-shot-tool and timed capture
October 16, 2007 on 10:13 pm | In maemo, maemo-hackers | 1 CommentA blog post suggested that mh-shot-tool should have the ability to snap timed screenshots. Trying not to let the audience down, I added a "re-grab with <n> second delay" functionality. Just refresh the catalogues and check for updates. Install file available as usual.
New php package for maemo
October 16, 2007 on 8:55 pm | In maemo, maemo-hackers | 15 CommentsPiotras requested a php package with phpize and php-config, so I decided to change the packaging and add a -dev package. After a couple of tries I also added -pear and -cli package. I also upgraded to newest upstream (5.2.4) and the fastcgi-binary had changed name, so I needed to upgrade the packages once more. If you happened to hit this gap, upgrade the packages to get it working.
Had some spare time, so I upgraded the nginx package to newest upstream (0.5.32) too. Both packages available as .install files: nginx and php5.
Teh webtubes are here
October 16, 2007 on 8:30 pm | In personal | No CommentsFinally, after waiting for several weeks, the internets have finally reached the new house I live in. Of course there was an additional 3 day delay due to installation into the wrong telephone socket, to one that actually doesn't exist -- the wire ends somewhere inside the wall. Well, now everything is working!