[SailfishDevel] Harbour: Rejections clarify

Juha Kallioinen juha.kallioinen at jolla.com
Fri Jan 3 10:10:10 UTC 2014


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20140103/474981b7/attachment.html>


More information about the Devel mailing list