← Back to team overview

ubuntu-phone team mailing list archive

Re: [Developement][SDK]: My qmake experience with the SDK: a story of pain and terror.

 

Hello,

I am sorry to hear about your bad experience. The good news is that we have everybody on this mailing list who can help you.

First of all if you are on the development release of Ubuntu then you do not need the SDK Release PPA. The documentation does not state that, maybe because the documentation is for stable and LTS users. That can and will be improved. Thanks for pointing it out.

The 15.04 is a moving target so the Kit based on 15.04 chroot is moving too. Sometimes it causes problems.

And about the qmake...  this is a tricky one.

The qmake and Qt was not designed to be used in chroots. The Qt SDK's architecture is that you have a rootfs and the toolchain lives outside of the rootfs and it is built for the rootfs. In our case the toolchain and the Qt tools live next to the framework (APIs if perefer that naming) so the chroot is a complete virtual Ubuntu. Our chroots are multiarch chroots. That means that the APIs, libs are for the target arch (for example armhf) whe the toolchain is native for better performance.

And this setup confuses qmake. So we came up with the idea of providing a multiarch specific qmake too from the qtbase module. This multiarch qmake is called qt5-qmake-arm-linux-gnueabihf and it lives under /usr/bin. The SDK is using this as qmake. We had to make the QTCreator to jump through loops to use it, but it works.

About your real problem...

If the packaging of your application was successful without any error message and the .click file is there then the qmake was doing its job just fine.

As you describe the situation I have the feeling that you were building your app (and so the Bacon2D plugin) with a 15.04 Kit and you want to deploy the app on a 14.10 based device. That was doable for long time as the 15.04 Ubuntu was moving away from 14.04 slowly. But recently we have upgraded the Qt to 5.4 on 15.04 when 14.10 stayed on 5.3. This can indeed result that your Bacon2D library is not compatible with the runtime environment.

I know it all just explains the problem, but does not solve.

The good news is that the problem will be gone when the Qt 5.4 lands on the device image.

To summarize the issue... the problem is that you were using the unstable 15.04 Kit to make application for 14.10 devices, what worked fine as long there was no significant difference between the Kit and the target.

Sadly we can not provide qmake support for 14.10 Kits, because it would require new qtbase module too, and this is not doable for the stable Utopic. It is simple not allowed to push new features and upgrade fundamental libraries on the stable Ubuntu.

Sorry for the long mail, but I hope it clarifies the situation

cheers,

z

On 09.04.2015 23:46, Riccardo Padovani wrote:
Hi all,
this want to be my feedback about my experience with qmake and the Ubuntu SDK.
As the title could suggest, I hadn't good times: I don't know if it's
due lack of documentation, or there is something wrong in the SDK, or
whatever. But certainly something has to improve.

For those who don't know me, I'm a long time core app developer, and
in my free time I also developed a couple of apps. I'm saying this
just to evidence I'm not new to Ubuntu world, and before writing this
mail I spent a lot of times trying to figure what's wrong.

Let's talk about the topic: qmake.
I've an app (100balls[0]) which uses an external plugin (Bacon2D[1])
and I use qmake to have all working together.

Since the game is stable enough, I don't do more than one release per
month, and every time I try to do a release I've to spend 2/3 days to
create a click package because chroot doesn't work.

Last time I did a release (last week of Feb, IIRC) I was on vivid (and
I'm still on it) and I used a 15.04 chroot. To have chroot working I
had to add the sdk ppa (seriously, I need a PPA on an unstable
version?).

This time the *same* chroot doesn't work anymore. It creates the click
package without any error, but then the app doesn't start on the phone
because it doesn't find the Bacon2D module.

When I do "Maintain" on the chroot and try to launch QMake I've this error:

  (click-ubuntu-sdk-15.04-armhf)root@artemis:/home/rpadovani# qmake
qmake: could not find a Qt installation of ''

I also tried with a new chroot, but I've the same issue.

I don't know if it's a problem of mine, an sdk problem, a lack of
documentation or whatever.
But it's annoying to have to spend more time trying to have a working
chroot than writing code.

Regards,
R.


[0]:https://github.com/rpadovani/100balls
[1]:https://github.com/Bacon2D/Bacon2D



Follow ups

References