Mailing List Archive

Using a library package in Maemo sysroot
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.

I don't know what else I can do. I've looked hard for a definitive answer and
have found nothing.

Dave
Re: Using a library package in Maemo sysroot [ In reply to ]
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?


Christian

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: Using a library package in Maemo sysroot [ In reply to ]
On Wed, 31 Aug 2011 10:00:48 +0200, Christian Kandeler <christian.kandeler@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?

The reason is that that such an old MADDE does not support checking those
dependencies in xdpkg -installed packages:

$ git log patches/dpkg-1.14.25.diff | head -7
commit 7607722394ea331ed887e4b5e2e50d29271f9cd8
Author: Pasi S...
Date: Mon Apr 18 13:14:38 2011 +0300

added xdpkg extended package support for dpkg-shlibdebs.

commit 907858016b35160a395b00caee854450b1dade2c

... In addition to Pasi's above patch I made some changes to xdpkg.pl,
which is available in

https://meego.gitorious.org/meego-developer-tools/madde/blobs/master/src/madlib/xdpkg.pl

As re-creating dpkg-shlibs is somewhat less trivial I'll include newer
version as a gzipped attachment of this email.


So, in order to test whether these changed dpkg tools fix the problem you
need to 'taint' your madde installation, first do:

$ mad-admin xdpkg --list

$ for p in <xdpkg-installed-packages>; do mad-admin xdpkg --purge $p; done

$ maddir=/home/talmage/QtSDK-1.1/Maemo/4.6.2/

$ find $maddir/madlib -name '*xdpkg*'

$ mkdir $maddir/backup
$ mv /path/to/found/*xdpkg* $maddir/backup
$ mv $maddir/madbin/dpkg-shlibdeps $maddir/backup
$ cp /path/to/xdpkg.pl /path/to/found/*xdpkg*
$ cp /path/to/dpkg-shlibdeps $maddir/madbin

And check if things work; if not, just rename files from
$maddir/backup back to their original locations.

> Christian

Tomi
Re: Using a library package in Maemo sysroot [ In reply to ]
[.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@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.

After I followed Tomi's directions, I have
$SYSROOT/madde_xpkgs/libqcontactchooserdialog.shlibs. This is new, I think.

There isn't one in $SYSROOT/var/lib/dpkg/info.


> The reason is that that such an old MADDE does not support checking those
> dependencies in xdpkg -installed packages:
> ...

Tomi, the new dpkg-shlibdeps and xdpkg files didn't fix the problem. I get the
same output as before when deploying my application.

Could this be related to the location of my library? It's in
$SYSROOT/opt/usr/lib instead of $SYSROOT/usr/lib.




_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: Using a library package in Maemo sysroot [ In reply to ]
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@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


_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers
Re: Using a library package in Maemo sysroot [ In reply to ]
On Wed, 31 Aug 2011 17:27:26 -0400, David Talmage <talmage@acm.org> wrote:

> ...
> ...
> ...

>
> 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!

Thanks for digging a bit deeper. I missed that 'dpkg' had related
changes and therefore an updated version of dpkg was needed as well.
Your approach to "fix" this problem was the right one!

>
> Dave

Tomi
_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers