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

Published Thursday July 1st, 2010
21 Comments on Mobility API mandatory update for Symbian apps created using beta Nokia Qt SDK
Posted in QtMobility, Symbian

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.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in QtMobility, Symbian

21 comments

srikanth_trulyit says:

“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 ?

Guilo says:

* 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

minshin says:

@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.

@minshin says:

@minshin

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

minshin says:

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

Frank says:

“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??

minshin says:

@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.

Dave says:

@Guilo (or possibly @@minshin)

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

Guilo says:

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

Mark says:

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.

HAF says:

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 ???

minshin says:

@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.

Dave says:

@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.

Dave says:

@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.

Gerard says:

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.

minshin says:

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)

Hi,

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

C:QtMobilityqt-mobility-symbian-opensource-1.0.1> configure

C:QtMobilityqt-mobility-symbian-opensource-1.0.1> make release-gcce

C:QtMobilityqt-mobility-symbian-opensource-1.0.1srcs60installs>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

Dave says:

@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:QtMobilityqt-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.

Mark says:

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).

minshin says:

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.

Commenting closed.

Get started today with Qt Download now