Mobility API mandatory update for Symbian apps created using beta Nokia Qt SDK

Posted by Gerard on July 1, 2010 · 21 comments

Development on Qt mobility APIs is ongoing. The Nokia Qt SDK beta included the mobility 1.0.0 APIs and then the 1.0 release of the Nokia Qt SDK included the 1.0.1 mobility APIs. As part of our ongoing development an important issue has been unearthed that affects Symbian applications that use Mobility APIs that were created using the Nokia Qt SDK beta.

As of now, all developers using the Nokia Qt SDK beta to create Symbian applications that make use of the 1.0.0 Mobility APIs must
1) Move from using the beta version to the 1.0 version of the Nokia Qt SDK, and
2) Repackage Symbian apps created with the Nokia Qt SDK beta with the newest available Qt libraries; to ensure the mobility 1.0.1 APIs are included.

Why?
We have discovered an issue that causes apps bundled with the 1.0.0 mobility APIs to crash if the device carrying the app is updated with a newer version of the Qt libraries (specifically the Mobility 1.0.1 APIs). Specific technical reasons are detailed below.
While this is absolutely regrettable, and we are working hard on preventing this from being able to occur in future, it is important to note that
a)    This issue applies to the 1.0.0 Mobility APIs contained in the beta version of the Nokia Qt SDK only
b)    This issue is limited to Symbian applications (that use the 1.0.0 Mobility APIs) only

Specific causes
This breakage is due to the fact that Mobility did not set the 1.0.0 version tag.

On platforms other than Symbian, a missing qmake version tag is interpreted as 1.0.0.
On Symbian however, the missing tag is translated into 10.0.0 and gets encoded into the library binary.

Unfortunately once Mobility set the 1.0.1 version, the Symbian library version was downgraded to 1.0.1 too.

This prevents any application built against Mobility 1.0.0 from linking against libraries shipped with the 1.0.1.

The result is:

  1. Apps built against 1.0.1 work fine against 1.0.1 libraries
  2. Apps built against 1.0.1 work fine against 1.0.0 libraries
  3. Apps built against 1.0.0 work fine against 1.0.0 libraries
  4. Apps built against 1.0.0 –crash- against 1.0.1 libraries and beyond

Note that this break affects Symbian apps based on the 1.0.0 Mobility APIs only.

The most likely solution is to continue with the existing versioning schema so that 1.0.2 libraries remain compatible with 1.0.1 applications.

Processes are being put in place that will enable a greater level of Binary Compatibility testing, including finalization of an agreement with a test partner in order that we make all efforts to avoid such BC problems in the future.

In summary, here is what this means for you

If you are… Action required
Using Nokia Qt SDK final for Maemo/MeeGo development None
Using Nokia Qt SDK final for Symbian development None
Using Nokia Qt SDK beta for Maemo/MeeGo development None
Using Nokia Qt SDK beta for Symbian development (apps that use the 1.0.0 Mobility APIs) Repackage any Symbian application containing Qt libraries from Nokia Qt SDK beta to ensure 1.0.1 Mobility APIs are included
AND
Develop using the final 1.0 version of the Nokia Qt SDK from now on

Other points of note regarding the 1.0.1 patch

Several quality issues are now known with this release. The more significant of these are associated with the Location and Sensors APIs.

Specifically:
* Location API

– Due to a packaging bug the shipped version of the Location library is incompatible with Symbian devices.

* Sensors API

Sensors Library – On N900 devices, QAccelerometer and derivative sensors require root privileges, and can’t be used by normal users.

The sensors defect only affects N900 (Maemo 5 / Fremantle).

* Other less severe issues have also been detected including documentation linking.

To that end, the program team are prioritizing resolution of the key issues and a new and higher quality patch release is under development.

Our target is to provide that patch within four weeks.

We will provide status updates weekly on the QtMobility info letter list, in order that you have visibility of the progress.

We apologize for any inconvenience caused.

Qt Mobility Program Team.

QShare(this)

Possibly related posts:

  1. Important Update on Qt Mobility 1.1.0 Beta Package
  2. Qt for Symbian and the Nokia Smart Installer (beta)
  3. Qt Mobility Project – Beta Package
  4. Qt Mobility 1.2 BETA Package Released
  5. Qt Mobility 1.1.0 – Beta Package

21 comments

1 srikanth_trulyit July 1, 2010 at 9:19 am
 

“We will provide status updates weekly on the QtMobility info letter list, in order that you have visibility of the progress.”

How do i enroll to QtMobility list ?

2 Gerard July 1, 2010 at 9:48 am
 

@srikanth
You can subscribe to:
http://lists.trolltech.com/mailman/listinfo/qt-mobility-feedback

3 Guilo July 1, 2010 at 10:55 am
 

* Location API
– Due to a packaging bug the shipped version of the Location library is incompatible with Symbian devices.

There is a packaging bug preventing building application for symbian with QtMobility here http://bugreports.qt.nokia.com/browse/QTSDK-98

But the workaround let me compile. Do you mean that even I compile, my application (which uses Location) won’t run on Symbian because of this bug in 1.01 ? When can we hope for a fix ?

Thanks

4 minshin July 1, 2010 at 2:05 pm
 

@Guilo
More detail on the location bug mentioned in this blog can be found from http://bugreports.qt.nokia.com/browse/QTMOBILITY-360.
If you are working on Symbian 5th edition and you are a member of Symbian Developer Network, you can install LBT (Location Based Triggering) library on your phone to avoid this problem. If that is not the case, you can build Qt Mobility from source with LBT disabled and build your app again.
A fix will be available in the patch release in four weeks as mentioned.

5 @minshin July 1, 2010 at 2:17 pm
 

@minshin

OK, so, building without lbt will only prevent me from using QGeoAreaMonitor, not QGeoPositionInfo(Source) ?

6 minshin July 1, 2010 at 3:59 pm
 

@Guilo, I assume :)
Yes, that is my understanding. I will ask David to clarify this further tomorrow.

7 Frank July 1, 2010 at 9:52 pm
 

“On platforms other than Symbian, a missing qmake version tag is interpreted as 1.0.0. On Symbian however, the missing tag is translated into 10.0.0 and gets encoded into the library binary.”

Has this bug in Qt qmake been fixed??

8 minshin July 2, 2010 at 3:12 am
 

@Frank
Yes. This has been fixed from Mobility 1.0.1 and onward. I.e. Qt Mobility has a correct version on Symbian from 1.0.1 and compatible with future releases.

9 Dave July 2, 2010 at 3:27 am
 

@Guilo (or possibly @@minshin)

Building without LBT will only prevent the use of QGeoAreaMonitor – the other classes will be unaffected.

10 Guilo July 2, 2010 at 11:21 am
 

OK thanks and no problem at all with the beta right ?

11 Mark July 3, 2010 at 3:34 pm
 

Are there instructions on how to build QtMobility from source, in order to work around http://bugreports.qt.nokia.com/browse/QTMOBILITY-360 ?

I’ve tried to follow http://doc.qt.nokia.com/qtmobility-1.0.0/installation.html : I ran “configure” followed by “make release-gcce”, but it didn’t seem to generate any QtMobility sis file that I could find?

(Also see http://discussion.forum.nokia.com/forum/showthread.php?203796-QtMobility1.0.1-probleme!!!&p=751391 for more discussion on this issue.)

I believe that one of the workarounds was also to downgrade to QtMobility to 1.0.0, so if this is no longer desirable, I hope this bug can soon be fixed :) Thanks.

12 HAF July 4, 2010 at 10:00 am
 

Hi,

Plesae i need know if my signed application (use Location API) will be compatible with QtMobility 1.0.2 in 4 weeks.

I have buid it with QtMobility 1.0.2 (with out build Qt Mobility 1.0.1 from source with LBT disabled and build my app again). I use Nokia Qt SDK final, Symbian SDK S60V5 S60V31 and S60V32 AND qt-mobility-symbian-opensource-1.0.1.zip.

I can’t rebuid my application in 4 weeks with QtMobility 1.0.2 because my publisher ID will be end this month.

and i have published my application with the QtMobility 1.0.1 you can found it here
http://www.4shared.com/file/KMHwFSld/qtmobility-101-for-THAKIR-3705.html
ist not the same one downlood by smart installer

please i juste need to know if like this my binary apllication will be compatible with QtMobility 1.0.2 in 4 weeks ???

13 minshin July 5, 2010 at 2:38 am
 

@Guilo
If you are referring to Nokia SDK beta, we do not recommend that you use it for your application development if your application requires Mobility API and targets Symbian platform. That’s because Mobility 1.0.0 that shipped with Nokia SDK will have the wrong version(10.0.0) on Symbian platform due to the fact that we didn’t specify the version number correctly.

14 Dave July 5, 2010 at 2:52 am
 

@Mark – Making a sis file for Mobility is done in a similar way to making a sis file for Qt – see step 6 of http://doc.qt.nokia.com/4.6/install-symbian.html

We’ll improve that aspect of the documentation soon.

@HAF – Qt Mobility 1.0.2 hasn’t been released yet, so I’m not sure what you mean when you say you’ve built your app with Qt Mobility 1.0.2. Since it’s a patch release it should maintain binary compatibility with 1.0.1 – hopefully that answers your question.

15 Dave July 5, 2010 at 6:28 am
 

@Mark

You can build a sis files for Mobility in a similar manner to how you build sis files for Qt – it’s pretty similar to step 6 of
http://doc.qt.nokia.com/4.6/install-symbian.html
We’ll add something like this to the Mobility documentation soon.

@HAF

QtMobility 1.0.1 and QtMobility 1.0.2 should be binary compatible.

16 Gerard July 5, 2010 at 8:20 am
 

Posted on behalf of user ‘Dave’, who is currently having problems posting.


@Mark
Something like step 6 of http://doc.qt.nokia.com/4.6/install-symbian.html should work. We’ll add something like that to the Qt Mobility Symbian documentation soon.

@HAF
QtMobility 1.0.1 and QtMobility 1.0.2 should be binary compatible.

17 minshin July 5, 2010 at 12:57 pm
 

A progress update on 1.0.2 release has been sent to Mobility mailing list and can be seen from http://lists.trolltech.com/pipermail/qt-mobility-feedback/2010-July/000341.html It is a bit hard to read because the HTML table format is ignored. Sorry about that. (The table had three columns in Bug|Status|Details order)

18 Olivier Fauchon July 8, 2010 at 1:40 am
 

Hi,

I tried to compile QtMobility as a workaround for Location errors but I can’t create the .sis file :

C:\QtMobility\qt-mobility-symbian-opensource-1.0.1\> configure

C:\QtMobility\qt-mobility-symbian-opensource-1.0.1\> make release-gcce

C:\QtMobility\qt-mobility-symbian-opensource-1.0.1\src\s60installs>make sis
make -s -f Makefile ok_sis
Processing qtmobility_release-gcce.pkg…
Error : Cannot find file : /NokiaQtSDK/Symbian/SDK/epoc32/release/gcce/urel/QtM
essaging.dll

qtmobility_release-gcce.pkg(30) : error: file I/O fault.

file I/O fault, cannot open qtmobility_unsigned.sis.

SIS creation failed!

Could you provide some up-to-date, from-scratch method to get a working SDK ?

I’ve already spent two days trying to make all that work, I’m tired.

Thanks

19 Dave July 8, 2010 at 4:44 am
 

@Olivier

I haven’t used the Nokia Qt SDK yet so I many not be that helpful if it’s an SDK specific issue.

The first thing to do is to read the output of “make release-gcce” and make sure there aren’t any QtMessaging related errors. I’ve been burnt by that a few times – the last 10+ screens of output look fine, but there was an error earlier on.

An easier way might be to use “configure -prefix c:\QtMobility\qt-mobility-symbian-opensource-1.0.1″ and then check the lib directory for QtMessaging.dll (or anything else that “make sis” complains about). If it’s not in there you probably have some kind of error in the “make release-gcce” step.

If QtMessaging.dll is being created then it’s probably a matter of getting set up for development with the SDK. The page at http://developer.symbian.org/wiki/index.php/Development_Environment_Troubleshooting_Guide _might_ help get you started. This is probably the wrong place for a full introduction to using the Symbian SDK – it’ll take some searching and frustration but if you keep at it you should get there.

20 Mark July 11, 2010 at 5:09 pm
 

Regarding obtaining QtMobility 1.0.0 as a workaround for the Location bug, it’s available at http://get.qt.nokia.com/qt/solutions/qt-mobility-symbian-opensource-1.0.0.zip (from http://lists.trolltech.com/pipermail/qt-mobility-feedback/2010-June/000311.html ) (obviously this is only a workaround for development purposes – a fixed QtMobility is still needed for deployment to end users, as the Qt Smart Installer will just download the latest buggy versions).

21 minshin July 13, 2010 at 10:49 am
 

Another progress update on 1.0.2 release has been sent to Mobility mailing list as seen from http://lists.trolltech.com/pipermail/qt-mobility-feedback/2010-July/000364.html
We are doing our best to release it as soon as possible. Thanks for your understanding.

Comments on this entry are closed.

Previous post:

Next post: