Copyright (C) 2009 Nokia Corporation All rights reserved. RELEASE INFORMATION Project: maemo SDK+ Version: 1.0.19 Baseline: baseline neutral Date: 2009-11-02 GENERAL INFORMATION =================== This is maemo SDK+ 1.0.19 release. This release contains only the core SDK components and required tools that are needed to do software development for Nokia Maemo devices. We recommend that you reinstall the rootstraps if you have used RC-5 or an earlier release. This release features a lot of fixes to Scratchbox 2 and enhancements to the maemo-sdk core itself. In addition, please, use export SBOX_REDIRECT_FORCE=/usr/bin/perl if you have problems with Perl libraries during package building. This is not a bug in the SDK but in the rootstraps. Also note that to run the runtime GUI you may have to set fixed color depth if your X server does not support the default depth. This is done with the following command: maemo-sdk set gui-bit-depth 24 Do this if the GUI crashes when you are starting it. TARGET AUDIENCE =============== This 1.0.19 release is targeted to maemo developers. WHAT IS NEW IN THIS RELEASE =========================== * Several host distributions supported: - Ubuntu Karmic 9.10 / i386 - Ubuntu Jaunty 9.04 / i386 - Debian Squeeze (testing) / i386 - Debian Lenny / i386 * Scratchbox2 2.0 version upgrade. SB2 with latest patches. - Lot's of improvements, see http://cgit.freedesktop.org/sbox2/ * Q-Emu 0.10.0-maemo10 (SB2 version with patches) - Based on 0.10 Q-emu upstream version - Several bug fixes especially for runtime debugging. * The core maemo-sdk 1.0.19 package with maemo-sdk and other - Implemented 'maemo-sdk install rootstrap --filename '. - Implemented 'maemo-sdk set default tools ' command. - Implemented 'maemo-sdk set default toolchain ' command. - Implemented 'maemo-sdk get default tools' command. - Implemented 'maemo-sdk get default toolchain' command. - Implemented 'maemo-sdk remove all' command. - Implemented 'maemo-sdk set autoreload' option. - Implemented 'maemo-sdk create rootstrap' command. - Implemented 'maemo-sdk show path [rootstrap]' command. - Implemented 'maemo-sdk set apt-https-password' command. - Implemented 'maemo-sdk remove apt-https-password' command. - Implemented 'maemo-sdk remove toolchain all' command. - Implemented 'maemo-sdk remove tools all' command. - Implemented 'maemo-sdk get vala-X-Y-Z' command. - Run 'maemo-sdk install toolchain ' automatically if rootstrap installation requires it. - Rebuild maemo-sdk-libs for lta115. - Fixed the password labels including FMO accounts. - Made 'set apt-https-password' and 'remove apt-https-password' commands to work with tools rootstraps as well. - Run 'maemo-sdk install tools ' automatically if rootstrap installation requires it. - Added command 'maemo-sdk set url fmo'. - Do not require confirmation when installing tools environment. - Generate manual page automatically using 'create man-page-file' command. - Do not ask HTTPS password in rootstrap installation if it is in cache. - Added 'no-cache' field into index.rootstraps for rootstraps which may change contents without changing their name. - Ask toolchain and tools in 'maemo-sdk create rootstrap' unless --force option is used. - Added 'postinst' field for index.rootstraps. With this option it is now possible to add a script to be run after rootstrap has been installed. - Added 'build-mode-name' field for index.rootstraps. - Implemented 'maemo-sdk start app' command. - Use Maemo::mysystem () instead of Perl system() for synchronous command line executions. - Add support for installing tools rootstrap and toolchains from a file. - Fix the layout of available rootstraps. - Added 'password-label' field into index.rootstrap. - maemo-sdk show config improvements. - 'maemo-sdk set tools' now shows the rootstrap menu (does not force to use default any more). - 'maemo-sdk set toolchain' now shows the rootstrap menu (does not force to use default any more). - Added 'maemo-sdk set url garage' command. - Be verbose about possible SDK content leftovers in postrm. - Restrict the access of /etc/apt/sources.list if passwords are set. - Do not ask https password if ~/.netrc is available. - Support /etc/apt/sources configuration entries in index.rootstraps. - Implemented 'maemo-sdk show path tools' and 'maemo-sdk show path toolchain'; 'maemo-sdk show path rootstrap' should be used instead of plain 'path'. - Remove rootstrap cache when the index url is changed. Bug fixes and clean ups: - Bug fix: read_field_from_rootstrap index should read the rootstrap settings file as well. - Bug fix: Specify target rootstrap when running postinst for the rootstrap. - Bug fix: 'maemo-sdk show path rootstrap' fails if default rootstrap has not been set. - Bug fix: Start and stop gui works even if the rootstrap entry is no longer in the rootstrap index. - Bug fix: 'maemo-sdk reload catalogue' should be quiet with --quiet flag. - Bug fix [#126951]: Remove backup with incorrect index number. - Bug fix: Set PERL5LIB during man page creation when creating maemo-sdk*.deb. - Bug fix: Fix the layout of maemo-sdk manual page. - Bug fix: Use a unique filepath when downloading a toolchain for concurrency. - Bug fix: Fix the permission issue in 'maemo-sdk remove apt-https-password'. - Bug fix: Fixed DBUS_SESSION_BUS_ADDRESS passing in 'maemo-sdk enter runtime ' (when is given). - Bug fix: Made tools rootstraps to use SB2 accel mode instead of devel mode. - Bug fix: Use URL encoding for passwords in 'maemo-sdk set apt-https-password'. - Bug fix: Replaced all getlogin() calls with $ENV{USER}. - Bug fix: Fix the permissions of ~/.maemo-sdk/config backup file by creating it when maemo-sdk is used the first time. - Bug fix: Fixed exit option in 'maemo-sdk get' command. - Bug fix: Typo fix in 'maemo-sdk show path' menu. - Bug fix: Check that a default rootstrap has been set when setting apt https passwords. - Bug fix: Remove previously downloaded tools rootstrap if it exists before downloading. - Bug fix: Add missing settings field to rootstrap settings. - Bug fix: Do not try to download non-existing postconfig file when installing a rootstrap from cache. - Bug fix: Fix the index number range in 'install rootstrap' command. - Pass DBUS_SESSION_BUS_ADDRESS when entering the runtime. - Bug fix: Fix password labels for tools rootstraps. - Bug fix: Use 'init-status' tag instead of 'status' tag in .settings file in order not to conflict with index.rootstraps field name. - Bug fix: Restore rootstrap backup should restore the settings file as well. - Bug fix: Removed automated toolchain installations from the Debian postinst script since proxy settings are not passed a some conditions. - Bug fix (#4472): Respect TMPDIR environment variable. - Bug fix: Do not leave toolchain tar file in /tmp after installation. - Bug fix: Warn on error if stop gui script returns an error code. - Bug fix: set_rootstrap_tools_env failed. - Bug fix: Ask the tools environment name instead of using the default when 'maemo-sdk set tools' is used without explisit tool environment name. - Bug fix: Fix warnings of reading undefined variables when no command is given. - Bug fix: Enable --verbose option for when resetting the toolchain or tools environment. - Bug fix: Fix Maemo::get_rootstrap_url (). - Clean up: Use only one function to read rootstrap settings. - Clean up: Use Maemo::http_get for HTTP(S) requests. - Clean up: Use *.backup instead of *~ for backup files. - Clean up: Removed maemo-tools script; please, use maemo-sdk command instead. - Clean up: Removed maemo-runtime script; please, use maemo-sdk command. - Clean up: Other maemo-sdk script fixes. - Clean up: Removed 'maemo-rootstrap' command. Obsolete. - Clean up: Removed 'maemo-sdk check' command. Obsolete. * Updated documentation that reflects the changes in the scripts and environment. WHAT IS MAEMO SDK+ ? ==================== Maemo SDK+ provides an alternative way to do maemo application development. Unlike all previous maemo SDKs this release is based on Scratchbox-2 (=SB2) cross-compilation engine. The previous maemo SDKs were all based on Scratchbox-1 (=SB1). There are some differences between maemo SDK+ and other maemo SDKs. For example maemo SDK+ is not a "closed" development environment. You are working and developing in your native Linux PC (you could develop your maemo application under your ~/src/ directory if you like). In addition you can basically use any normal Linux tool or utility (as such) without the need to port it inside SB1 like in older releases. Maemo SDK+ is very small and compact compared to SDKs that are based on SB1. The reason for this is that the SB2 is using many tools that are already available in your host computer and there is no need to replicate the tool inside the SDK (like in SB1). Maemo SDK+ also introduces build tools distribution concept. You can set up a separate distribution to contain the specific build tools you want to use. By default, we use Debian Etch tools distribution. One of the benefits of maemo SDK+ is that you don't need to change targets, the same user can work in multiple targets at the same time (but it's better to work in separate source trees so that one does not by accident mix e.g. arm and x86 objects when building code). This release is "baseline neutral" which means that this maemo SDK+ is not targeted for any spesific Internet Tablet or OS200X release. NOTES ABOUT ROOTSTRAPS ====================== We don't ship rootstraps in this release even if these are still needed. Instead of shipping rootstraps we provide a small tool called "maemo-rootstrap" that you use to download, install and configure the rootstraps to your development machine. For further information please read the "Install.txt" and "User Guide" documents. DO I NEED TO UPGRADE TO MAEMO SDK+ ? ==================================== No. You can still continue to develop your application using the maemo Diablo or maemo Chinook SDKs. However, if you want to know how developing your application "outside of the box" feels like then you might want to try this release. Please note, that this is still a beta release and many services or functions are not yet "product level quality". Expect to have issues. In addition read carefully the "Known problems" chapter in this document. COMPONENTS ========== maemo SDK+ 1.0.19 contains the following components: - Scratchbox-2: included. Provides crosscompilation and debian package building with "dpkg-buildpackage" should work for most source packages for Bora or Chinook releases. - QEMU v 0.10.0-maemo10: included. QEMU is used in user-mode emulation mode to run ARM-binaries during compilation and package building stage. Part of CPU-transparency support. - SBRSH/SBRSHD: included. Supports Scratchbox Remote Shell that is used to provide CPU transparency functionality during crosscompilation. - SSHFS/FUSE: included. Supports mounting Pc filesystems from the Tablet (used to support CPU-transparency plus for other development purposes). - MAEMO-SDK tool to provide all in one. - MAEMO-SDK-TABLET: included. Helper utility for developers to set/unset various parameters. This is used by maemo-sdk command and not intended to use direcly by developers. Note: this release does not contain any rootstraps. SOFTWARE REQUIREMENTS ===================== This release was tested on Ubuntu Server Linux distributions, but it is known to work also in Debian testing (Lenny) and Debian unstable (Sid). INSTALLATION INSTRUCTIONS ========================= Please see http://maemo-sdk.garage.maemo.org/install.html KNOWN ISSUES OR LIMITATIONS =========================== - During a software build you may get the following error message (while running ./configure): checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool If this occures, please, try: export SBOX_REDIRECT_FORCE=/usr/bin/perl And run the ./configure script again. This bug is in the rootstrap not in the maemo-sdk+ itself. - If Xephyr crashes when you try to start the runtime GUI, please, try with some other color depth settings than the default. The color depth to be used can be set with the following command: maemo-sdk set gui-bit-depth 24 The color depth 24 bits might be better supported than the rootstrap default color depth (which is most likely 16 bits). - If you use Fremantle ALPHA rootstraps with RC-5 you can not succesfully run command: $ sb2 -eR apt-get install maemo-sdk-runtime This will fail with error related to file "/usr/bin/scratchbox-launcher.sh" The problem is in SB1 compatibility mode that SB2 is providing. This problem is currently in the process of being fixed and fix will be included in the next release. - To remove maemo SDK+ installation completely, back up all your modifications under ~/.maemo-sdk if you have any (it is recommended not to keep any important work or data under this directory except components you can reinstall again). Then do to the following which removes all rootstraps and installed tools: $ sudo apt-get autoremove maemo-sdk $ rm -rf ~/.scratchbox2 $ rm -rf ~/.maemo-sdk $ sudo rm -rf /opt/maemo - Valgrind has to be run in 'maemo-sdk enter chroot' mode. Valgrid is supported for i386 rootstraps only and currently only command line applications can be debugged. - CPU-transparency (when using sbrsh) has limitations when requests from Pc to Tablet are coming too quickly. - When using sbrsh the Tablet must have the same user UID/GID than what is used in PC side. This is normally set automatically by maemo-device script but if the execution fails these must be set manually. - If you enable debugging option in sbrshd your /tmp directory may become full in a relatively short time. Restarting sbrshd is not possible if /tmp directory is full. RELEASE FEEDBACK ================ General feedback about this release can be send to: maemo-sdk-developers@garage.maemo.org maemo SDK+ related bug reports should be reported to the project Tracker service in: https://garage.maemo.org/projects/maemo-sdk --- END