Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm trying to convince the Spotify Linux client to run from my home directory on a RHEL 6 machine (I don't have root privs, and running the Windows client through Wine results in audio stutter since the only audio driver available is the PulseAudio driver). I've extracted the data from the deb file and put them in my custom software prefix ~/sw/.

The binary finds all the necessary libraries but doesn't start cleanly. When I invoke the binary, an error dialog saying "Failed loading skin" pops up, and the following is written to the terminal:

14:27:25.770 I [breakpad.cpp:36] Registered Breakpad for product: spotify

14:27:25.925 I [translate.cpp:117] Reloading all languages
14:27:25.925 E [core-utilities:862] Loading of skin file(core.splang) failed ''(basepath: )
14:27:25.925 E [core-utilities:862] Loading of skin file(desktop.splang) failed ''(basepath: )
14:27:25.925 E [core-utilities:862] Loading of skin file(spider.splang) failed ''(basepath: )
14:27:25.926 I [breakpad.cpp:94] Searching for crashdumps: /ltg/arnskj/.cache/spotify/*.dmp

14:27:25.951 E [core-utilities:862] Loading of skin file(skin.xml) failed ''(basepath: )

All three splang files and skin.xml are present in ~/sw/share/spotify/theme/default but it obviously doesn't find them (the Debian package installs them to /usr/share/spotify/...).

Is there some way I can convince Qt to check additional directories when doing this? Or, as a last resort, does anyone know which Qt function is doing this, so that I can try to fudge it with a shim in $LD_PRELOAD (nasty, I know, but it might work).

share|improve this question
    
There's blog.fridns.se/spotify-in-red-hat-6 as well. But that has the same problem of wanting to live as a system package, and not in my ~. –  arnsholt Aug 25 '11 at 15:00
    
Have you tried creating symoblic links from the Debian default directories to where you put the files using ln -s? I'd think you could probably trick the binary that way to load the appropriate skin. –  sbtkd85 Aug 25 '11 at 19:07
    
Problem is, I can't. I'm just a normal user, and /usr/{bin,share} are owned by root. –  arnsholt Aug 26 '11 at 8:19
    
Unless there is a way to pass in the root path to the binary via command line when you launch the application, I'm not sure if you'll be able to do this. If the paths are hard coded in the binary you are stuck. If they rely on system variables (more likely) you'll still need root access to adjust things like the PATH variable. The only other thing I can think of is using a VM which seems like overkill, but if you have VirtualBox installed with Windows you could try that. –  sbtkd85 Aug 26 '11 at 13:04
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.