Bugzilla – Bug 12557
i386 vs. x86_64 binaries & some versions of faad need an extra option to function correctly
Last modified: 2012-03-20 08:40:14 UTC
this is more of a heads-up report rather than a bug report. i recently added the first AAC content to our music library and found that i could not play back the audio on our squeezeboxes (it worked on other playback systems). after digging into the problem for about an hour, i discovered this: 1) the SC-supplied versions of faad and flac do NOT run on my Fedora 10 because they are for i386 and my server is x86_64.solved by removing those versions and symlinking from /usr/bin/faad and /usr/bin/flac. given that *most* of SC is pretty platform independent, you might want to think carefully about how/if to package these binary components. You might have already done this. 2) the Fedora 10-supplied version of faad (faad2-2.6.1-6.fc10.x86_64) requires an extra -o argument to write correct output. Without the -o, it writes meaningless or raw data ; with the -o it writes WAV output as intended. I don't know whether this is a Fedora/RedHat bug or something more widespread in faad. its clearly a bug since -o should be accompanied by a filename, but it accepts it in combination with -w, and the result is a legal RIFF/WAV stream. squeezecenter version is : 7.4 - 26189 @ Thu Apr 23 07:54:17 PDT 2009
Why don't the i386 versions run? Do any of our other i386 binaries run? We don't ship x86_64 binaries because we assume they run fine on a 64-bit box.
Moving 7.4 bugs to 8.0.
Bug exists also in Kubuntu. I guess if you don't have ia32 installed the flac simply dies afucs@demo:/store/muzik/FLAC/A-Ha$ file /usr/share/squeezeboxserver/Bin/i386-linux/flac /usr/share/squeezeboxserver/Bin/i386-linux/flac: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.4.1, stripped afucs@demo:/store/muzik/FLAC/A-Ha$ ldd /usr/share/squeezeboxserver/Bin/i386-linux/flac not a dynamic executable afucs@demo:/store/muzik/FLAC/A-Ha$ /usr/share/squeezeboxserver/Bin/i386-linux/flac bash: /usr/share/squeezeboxserver/Bin/i386-linux/flac: No such file or directory
Same problem here on Ubuntu 9.10 x64. I have to symlink the OS supplied versions of the binaries. However, there isn't a native ubuntu version of mpcdec, so I can't play my musepack files. Does anybody have an x64 build of mpcdec please? Sean
Does it work if you install ia32-libs? That is the preferred solution to this problem.
This is still a problem on CentOS 6.2 x86_64 with v7.7.x (have tried the 7.7.1 release and also latest trunk as of today). If I try and run any of the binaries in /usr/share/squeezboxserver/Bin/ I get: $ ./flac -bash: ./flac: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory So, the problem is that the utils are dynamically linked, and need i386 glibc to be installed to work (which can not be guaranteed on an x86_64 platform). I would suggest that you need to start distributing x86_64 versions of the tools in the RPM. I also suggest that you should have separate i386 and x86_64 RPMs as the noarch package does not work on x86_64 without a symlink hack (see https://bugs-archive.lyrion.org/show_bug.cgi?id=17018 for details) R.