libao.so contains hardcoded paths

Bug #227475 reported by Daniel A. Freer on 2008-05-06
4
Affects Status Importance Assigned to Milestone
ia32-libs (Ubuntu)
Wishlist
Unassigned
libao (Ubuntu)
Undecided
Unassigned
zsnes (Ubuntu)
Undecided
Unassigned

Bug Description

libao2 currently hard codes the paths to it's plugins, located in /usr/lib/ao/plugins-2/.

This can be shown by running this command:
[code]strings /usr/lib/libao.so.2 | grep / [/code]

This becomes a problem when the 32-bit version of libao is used on a 64-bit system. It'll check /usr/lib/ao/plugins-2/ instead of /usr/lib32/ao/plugins-2/, which causes a segfault in zsnes (a 32-bit only binary).

This can temporarily be fixed on user's systems by symbolically linking the 32-bit plugins located in /usr/lib32/ao/plugins-2/ to /usr/lib/ao/plugins-2/. A better fix would be to use a relative path such as ./ao/plugins-2/ instead of the absolute path of /usr/lib/ao/plugins-2/.

This affects ia32-libs in hardy especially, since it now contains libao2.

Daniel A. Freer (dfreer) on 2008-05-15
description: updated
Daniel T Chen (crimsun) wrote :

There is a dependency chain: ia32-libs simply needs to be regenerated after libao is fixed.

Changed in zsnes:
status: New → Invalid
Changed in ia32-libs:
importance: Undecided → Wishlist
status: New → Confirmed
Gilles Casse (gcasse) wrote :

AO_PLUGIN_PATH depends on $libdir supplied by configure.
It would be possible (but perhaps not desirable?) to build a specific version without modifying the upstream source.
Changes in the debian dir. such as e.g. in debian/rules:
-confflags = --prefix=/usr --enable-static
+confflags = --prefix=/usr --libdir=/usr/lib32 --enable-static

Scott Ritchie (scottritchie) wrote :

That's not possible at the moment Gilles, as ia32-libs simply (stupidly) takes the i386 package files rather than rebuilds them. So any build options for 32-bit ia32-libs would also have to be in the real 32-bit package as well (where /usr/lib32 is incorrect).

Changed in libao (Ubuntu):
status: New → Confirmed
Steve Langasek (vorlon) wrote :

This is resolved for precise, in which libao now uses an architecture-specific ("multiarch") path for its modules.

Changed in libao (Ubuntu):
status: Confirmed → Fix Released
Changed in ia32-libs (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers