I am currently working on packaging and publishing some of my applications for Mer/Nemo. Within that process I needed to lookup missing dependencies quite often. In this post I will write about some ways I found useful for looking up dependencies within Mer/Nemo.
Note that when defining dependencies for Mer/Nemo the naming scheme of some dependencies has changed as compared to MeeGo/Harmattan. If you have Spectacle installed you can find a list with the “changed” dependency names in the file “/usr/share/spectacle/pkgconfig-provides.csv”. There the new, preferred name for dependencies is the one surrounded in brackets in the final “pkgconfig(NewDependencyName)” entry. Spectacle will also notify you in case you are using a deprecated name.
When you are having trouble looking up required dependencies the “zypper wp” (“wp” for “what-provides”) command can be quite handy as well. E.g., assume your newly packaged app refuses to start because it is missing, say the QML module “QtMobility.systeminfo”. You could then identify the required file on a MeeGo/Harmattan installation or in MeeGo/Harmattan scratchbox like this:
[sbox-HARMATTAN_ARMEL: ~] > find /usr/lib/qt4 -iname "*systeminfo*" /usr/lib/qt4/imports/QtMobility/systeminfo /usr/lib/qt4/imports/QtMobility/systeminfo/libdeclarative_systeminfo.so
Knowing that you are looking for “libdeclarative_systeminfo.so” you can then use “zypper wp” to get the package name of the dependency (from within a running Mer/Nemo installation):
[root@localhost ~]# zypper wp libdeclarative_systeminfo.so Loading repository data... Reading installed packages... S | Name | Type | Version | Arch | Repository --+---------------------------+---------+------------+---------+----------- i | libdeclarative-systeminfo | package | 1.2.0-1.46 | armv7hl | mer-core
In the next post I will write about the general process I used for packaging and publishing my applications for Mer/Nemo. I post this here separately in order to keep the following post a little bit more focused on the actual packaging and publishing instead of cluttering it with too much information.