I think I may be missing something simple here. I wrote a script to take multiple mp3 files and convert them to wav using sox. This script worked perfectly the last time I used it a couple months ago. Today, I found myself needing it again, but now sox will not run. Sox tells me that it cannot find the MAD decoder. I have both libmad and libmad0 installed. I used Yast to remove sox and tried to install sox from the source code. After ./configure, sox’s build options summary says there will be no support for mad, despite the fact that I know it’s installed.
I tried to downgrade to an older version of mad, but that didn’t make any difference. What the heck am I missing?
586 packages installed: flash-player, libflashsupport, master-boot-code, w32codec-all, wine. None of those packages have x86-64 versions available to install according to Yast and my subscribed repos.
$ file $(which sox)
/usr/bin/sox: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), not stripped
I have installed lots of things from source over the course of the last three years (when I first started running Suse), I don’t recall whether any of them were audio-related. I also know that the only thing I’ve installed from source since the last time I knew that sox worked was not audio-related and has since been removed.
I presume sox searches for libmad.so (instead of libmad.so.0) and does not find it.
But here comes the real fun:
ls -l /usr/lib64/libmad.so
lrwxrwxrwx 1 root root 11 12. Jan 01:54 /usr/lib64/libmad.so -> libmad.so.0
rpm -qf /usr/lib64/libmad.so
file /usr/lib64/libmad.so is not owned by any package
So this symlink must have been set by myself some time ago (and I forgot about it) or it might be some “leftover” from an older version.
However, some more research shows, that this file has been moved to the package “libmad-devel”, so try installing that one and see what that does to your problem.