On 03.01.2014 00:02, Mikael Hermansson wrote:

But It seems to me Required field in yaml file should not be used is that the case? Please clarify this?


No it can and should be used, but only with requirements that are allowed. I can't comment on whether the list of allowed dependencies is the correct at the moment. The list will be updated if something that should be allowed is missing.

Please also note that even if you don't declare Requires in your spec file, rpm will automatically add Requires to your package's metadata when it notices that your binary for example links to a library it is using. This feature is on by default and should in most cases not be turned off (by declaring AutoReqProv: no).

and what about line:

sailfishsilica-qt5 >= 0.10.9 (not sure if I added this or if autoadded?)

now should this still be left in the reuquires? Because I remember first time I installed it on my phone(s) both n9(with sail) and my Jolla cried about missing "libsailfishapp.so"?


That package does not provide libsailfishapp.so. It comes from the package "libsailfishapp".

The default template application yaml file declares:

PkgConfigBR:
- sailfishapp >= 0.0.10

Which is converted to the spec file as:

BuildRequires:  pkgconfig(sailfishapp) >= 0.0.10

(Notice that the name there is "sailfishapp", which is the pkg-config name for the rpm package "libsailfishapp-devel", which in turn depends on the package "libsailfishapp").

If you have those lines in your yaml/spec and your application really does use libsailfishapp.so, rpm will notice it and will add it as an automatic requires dependency unless you have specified "AutoReqProv: no" in your spec file.

Now, if you choose to deploy your package as RPM to the device, then it will also install all other missing packages that are required by your package.

If you choose to "deploy package as binaries" in Qt Creator, then the RPM packaging is not built and any dependencies your package might have are also not handled. Either this deploy method or "AutoReqProv: no" might be the reason you got the "missing libsailfishapp.so" error originally.

As a hint, you should always deploy your package as RPM once and always if you add more Requires to it, so that its requirements are pulled into the target device. After that you can use "deploy as binaries", which is a bit faster since it skips the RPM package creation step.

Best regards,
 Juha

_______________________________________________
SailfishOS.org Devel mailing list

Reply via email to