[maemo-developers] Using a library package in Maemo sysroot

From: David Talmage talmage at acm.org
Date: Thu Sep 1 00:27:26 EEST 2011
On Wednesday, August 31, 2011 02:35:27 PM David Talmage wrote:
> [Replying to both Christian Kandeler and Tomi Ollila in this message.]
> 
> On Wednesday, August 31, 2011 05:28:56 AM Tomi Ollila wrote:
> > On Wed, 31 Aug 2011 10:00:48 +0200, Christian Kandeler
> 
> <christian.kandeler at nokia.com> wrote:
> > > On Tue, 2011-08-30 at 16:07 -0400, ext David Talmage wrote:
> > > > I'm having trouble deploying an application to my N900. When
> > > > QtCreator builds the application package, dpkg-shlibdeps claims that
> > > > it cannot find the dependency information for one library. This is
> > > > what I need help fixing. The error message is
> > > > 
> > > > 
> > > > dpkg-shlibdeps: failure: no dependency information found
> > > > for
> > > > /home/talmage/QtSDK-1.1/Maemo/4.6.2/sysroots/fremantle-arm-sysroot-20
> > > > . 2010.36-2-slim/opt/usr/lib/libqcontactchooserdialog.so.1 (used by
> > > > debian/panicbutton/opt/usr/bin/panicbutton).
> > > > 
> > > > I made the library myself. It is on the phone and in my Maemo
> > > > sysroot. QtCreator put it in the sysroot for me using this
> > > > additional deployment step:
> > > > 
> > > > mad-admin xdpkg --install libqcontactchooserdialog_1_0_0_armel.deb
> > > > 
> > > > I copied the libqcontactchooserdialog.shlibs file from my phone into
> > > > var/lib/dpkg/info in the sysroot. That changed nothing.
> > > 
> > > Are you saying that mad-admin xdpkg does not install the shlibs file
> > > into the sysroot? That sounds like a bug to me.
> > > Anyway, could it be that the shlibs file is somehow not containing the
> > > correct information? Have you checked its contents and compared with
> > > what the man page for deb-shlibs says?
> 
> Yes, the version of mad-admin I had did not install the shlibs file into
> the sysroot.
> 
> According to the deb-shlibs man page, libqcontactchooserdialog.shlibs
> should look like this:
> 
> libqcontactchooserdialog 1 libqcontactchooserdialog (>= 1.0-0)
> 
> 
> Instead, mine looks like this:
> 
> libqcontactchooserdialog 1 libqcontactchooserdialog
> 
> 
> In other words, it's missing the version number in the dependencies field.
> 

I corrected that in $SYSROOT/madde_xpkgs/libqcontactchooserdialog.shlibs.  It 
didn't make a difference.

I've discovered that dpkg-shlibdeps forks 

/home/talmage/QtSDK-1.1/Maemo/4.6.2/bin/mad dpkg --search 
/home/talmage/QtSDK-1.1/Maemo/4.6.2/sysroots/fremantle-arm-
sysroot-20.2010.36-2-slim/opt/usr/lib/libqcontactchooserdialog.so.1


and the search fails.  Madde's dpkg is looking only in 
$SYSROOT/var/lib/dpkg/info for the .shlibs files.


I discovered two more things.

1. the version of dpkg at meego.gitorious.org *does* look in 
$SYSROOT/madde_xpkgs.
2. So does the version of dpkg in QtSDK-1.1/Madde/madbin.


This is very interesting.  I reverted libqcontactchooserdialog.shlibs to its 
original form and replaced /home/talmage/QtSDK-1.1/Maemo/4.6.2/bin/madbin/dpkg 
with the one from QtSDK-1.1/Madde/madbin.  I can build the application package 
now!

Thanks to Tomi and Christian for their advice.  It made me look in the right 
places.  I am very happy to be able to resume development!

Dave


More information about the maemo-developers mailing list