code-google-com / qimsys

Automatically exported from code.google.com/p/qimsys
0 stars 0 forks source link

Qimsys.Core qml plugin error with maemo-optify #15

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. create maemo pkg with "maemo-optify"
2. install qimsys
3. launch qimsys

What is the expected output? What do you see instead?

It should work fine, but a error as following occur and sw keyboard is 
unavailable.

---
qrc:/layouts/main.qml:21:1: module "Qimsys.Core" is not installed

---

What version of the product are you using? On what operating system?

Latest git master as of 21/12/2010.

Please provide any additional information below.

My qimsys pkg for N900 is built with "maemo-optify" option. It is the automated 
solution to save NAND space by moving large files to /opt/maemo and make 
symlinks of them to the original paths.

I built pkg with debug code that stasuku-san taught to me, and found out that 
the path to qrc resouce file is spcecified to the original binary path, not 
sym-linked path, such as /opt/maemo/usr/lib/xxx.

--debug code---
qDebug() << rootDir.canonicalPath(); 
---------------

It is set to the 134th row of src/plugins/uis/n900/keyboard/keyboard.cpp
And here is qDebug output on launching qimsys.

----
"/opt/maemo/usr/lib/qimsys/imports" <- qDebug output
qrc:/layouts/main.qml:21:1: module "Qimsys.Core" is not installed 
----

Under the directory of "/opt/maemo/usr/lib/qimsys/imports/Qimsys/Core", there 
is original binary of libqimsyscore.so, but isn't "qmldir" file. Because qmldir 
file is too small to apply maemo-optify. It is on the orignal path 
(/usr/lib/qimsys/imports/Qimsys/Core)

I have confirmed it is fixed by placing qmldir file to 
/opt/maemo/usr/lib/qimsys/imports/Qimsys/Core.

[Simply workaround]
There are two workaround

1. Don't set maemo-optify (Usage of NAND is increased, not good for whole 
system, I think)
2. Place qmldir file to the same path of libqimsyscore.so original binary.

[Design confirmation]

Is it good at the viewpoint of Qt/Qimsys design that the qrc resouce file path 
is set to the one which is different from qmldir path if path of the binary 
libqimsyscore.so is changed?

I'd like to discuss this issue with stasuku-san:-)

Original issue reported on code.google.com by kenya...@gmail.com on 21 Dec 2010 at 1:41

GoogleCodeExporter commented 9 years ago
Thanks for filing the issue. I think this can be easily solved by replacing 
canonicalPath() to absolutePath().

Original comment by stas...@gmail.com on 21 Dec 2010 at 3:35

GoogleCodeExporter commented 9 years ago
Thank you for your comment. I'm glad to know an easy solution of this issue :) 
I'm afraid whether any problem are caused by the change you said. If it is, I 
would be able to apply the workaround 2 very easily, not need to apply the 
change of codes. I'd like to follow you.

Original comment by kenya...@gmail.com on 22 Dec 2010 at 7:24

GoogleCodeExporter commented 9 years ago
Fixed in 
http://gitorious.org/qimsys/qimsys/commit/2b6ef1ef36fe0d6c993c8707fd3ae9d0cd09f2
98

Original comment by stas...@gmail.com on 9 Jan 2011 at 2:27

GoogleCodeExporter commented 9 years ago
Hi, It doesn't seem to be fixed. absolutePath() still point the path of real 
binary. I guess the location of qmldir file must be the same as real 
binary(library), not symbolic link.

This is just a report. This issue is applicable for Maemo, especially applying 
maemo-optify only, and I have the workaround. I think this issue need not be 
re-open:)

Original comment by kenya...@gmail.com on 28 Jan 2011 at 7:28

GoogleCodeExporter commented 9 years ago

Original comment by stas...@gmail.com on 6 Feb 2011 at 5:22

GoogleCodeExporter commented 9 years ago

Original comment by stas...@gmail.com on 6 Feb 2011 at 5:36

GoogleCodeExporter commented 9 years ago
0.2.0

Original comment by stas...@gmail.com on 24 Feb 2011 at 11:48