Re: [linux-audio-user] alsaplayer won't give window

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-user] alsaplayer won't give window
From: Russell Neches (russell_AT_ccs.neu.edu)
Date: Sat Aug 10 2002 - 00:23:22 EEST


Well, I'm a Debian user, but this should provide some insight
regardless of what distribution you're running:

ldd `which alsaplayer`

On my system, I get a result that looks like this:

        /usr/lib/libgdkxft.so.0 => /usr/lib/libgdkxft.so.0 (0x40014000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40028000)
        libdl.so.2 => /lib/libdl.so.2 (0x4003d000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40040000)
        libm.so.6 => /lib/libm.so.6 (0x40089000)
        libc.so.6 => /lib/libc.so.6 (0x400aa000)
        libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x401c7000)
        libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x402ec000)
        libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x4031f000)
        libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x40322000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40345000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4034d000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4035a000)
        libXft.so.1 => /usr/X11R6/lib/libXft.so.1 (0x40414000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x4043d000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40442000)

If you have a "=> Not Found" entry for any of your libraries, you've
got a problem.

Now, this may or may not actually tell you anything meaningful about
the status of your gtk linkage. Take this, for example:

503 [russell_AT_yasha russell]$ ldd `which ls`
        /usr/lib/libgdkxft.so.0 => /usr/lib/libgdkxft.so.0 (0x40014000)
        librt.so.1 => /lib/librt.so.1 (0x40028000)
        libc.so.6 => /lib/libc.so.6 (0x4003a000)
        libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x40157000)
        libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x4028f000)
        libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 (0x402c3000)
        libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x402c6000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x402e9000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x402f1000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x402fe000)
        libm.so.6 => /lib/libm.so.6 (0x403b9000)
        libdl.so.2 => /lib/libdl.so.2 (0x403da000)
        libXft.so.1 => /usr/X11R6/lib/libXft.so.1 (0x403dd000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40406000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x4041a000)
        libfreetype.so.6 => /usr/X11R6/lib/libfreetype.so.6 (0x4041f000)

I'm pretty sure that ls doesn't have a gtk interface, so keep that in
mind.

Anyway, if your alsaplayer simply isn't built against gtk, then you're
going to have to install the various header files. On Debian, header
files are generally packaged named like "foo-dev". You're going to
want to find the right -dev package for your version of gtk (which
depends on what release you're running, what you've got in
/etc/apt/sources.list, and so on). You might have to jump through a
few hoops to figure out what packages you need, but it's no big deal.

If all else fails, you ought to test the health of your libraries.
I've run into a couple of very confusing problems caused by libraries
I compiled myself and left sitting around. The binary packages from
Debian are linked against Debian's libraries, so if you have an old
(hand compiled, probably) version of libgtk sitting around, your
Debian binaries will misbehave in mysterious ways.

So, go through each library that ldd tells you alsaplayer is linked
against, and run

dpkg -S full_path_to_the_file

Remember that many library files are symbolic links to the library
files with the full version number. Test them all, but you only care
about the target.

This will tell you what package that library belongs to. If you find a
library that isn't owned by a Debian package, that is probably the
source of your grief. Even if it's not, you should delete (or
otherwise remove it), and install the appropriate Debian package. If
you're not sure what package owns that file, you can seach packages by
file name on Debian's web site.

If you are sure that

- the gtk header files are being included in the build process
- the gdk header files are being included in the build process (they
  usually go together)
- you have the correct Debian binary and -dev packages installed
  correctly
- you have no missing libraries
- you have no broken libraries
- the header files and the libraries are the identically same version

and it still doesn't work, then you've probably found a legitimate
bug. At that point, your only recourse is to strace alsaplayer and try
to figure out where it is screwing up. If you can follow the output,
it will tell you if the problem is a nonsense call to the library. If
_THAT_ isn't the problem, then, uh... build a statically linked
alsaplayer and run it in gdb. Pray to your deity of choice that it
doesn't come to that.

Hope that helps!

Russell

jordan muscott <jordan_AT_no-future.com> writes:

> >
> >>Have you got gtk, and the gtk header files installed ?
> >>
> >>jordan.
> >>
> >
> >Hi Jordan,
> >
> > but other gtk packages seem
> >to download and run just fine.
>
> oh right i missed that bit -- so you probably have got gtk, maybe not the headers, anyway - like i say, a debian user needs to step in...
>
> regards jordan.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sat Aug 10 2002 - 00:14:15 EEST