Linux build

Hey Nir,

I would like to ask if there is any specific reason for not having current builds for Linux? Is it the lack of interest or is it some technical difficulty? I would like to use the Linux version, but it crashes and I believe(/hope) it's one of the bugs that you've fixed recently (the floating point/division by zero issue with the MP3 scanning code), so I'd like to give it a try before digging deeper into the problem.

Let me know if I can be of any help.

Thanks,
Adam

Hi Adam,

It's primarily the lack of apparent interest, yes. I haven't received any feedback whatsoever after releasing the last version. I'll see what I can do about getting another Linux build out there as soon as I get the chance.

Thanks, Nir

Hi Nir,

I'd be happy to give it a try if you happen to have some time for a build. Thanks for the effort

(Apart from this bug, which causes a crash in the middle of scanning a huge folder of my music, the client seems to be working pretty well. I haven't noticed any other bugs, and I'm particularly happy about the diagnostic infos, it's fun to see what's going on behind the curtains. The UI has rough edges, but you're obviously aware of that. Everything was working perfectly for the first time, though I already had the latest version of all the Qt libs&dev environment&everything on my machine. Kubuntu 11.04)

Cheers,
Adam

Thanks for the current Linux builds, the problem seems to be gone, my entire collection was indexed. Well, at least, that problem is gone :) After using the client for a while, I got a Segmentation fault upon clicking on something (I'm not really sure what it was, I guess it might have been a message from someone). Right now I'm running the client under gdb, so I hope I can get some more information if anything like that happens again. Or is there something else you'd prefer? I've seen that you usually ask for a Dr. MinGW report, which is win-only, but as MinGW is GCC-based (afaik), I guessed gdb would do the trick as well.

After the Segfault everything I've done so far was lost. Does the client only save changes when the user closes it? Would it be possible to introduce some sort of an autosave function? Reindexing everything from scratch takes some time.. :)

Thanks,
Adam

It sounds like you ran into the chat event bug, where the client crashes if you click a private message event after you closed the chat window. I'll fix that today. I don't believe the Linux client has any debug symbols, I could be wrong. As for saving the client configuration data periodically, I might end up doing that eventually, I'm just a little loathe to go that route because the same sort of thing was causing some unusual problems in the old client.

Yes, that bug sounds reasonable, even though I don't remember opening that window previously.

I think that the periodic autosave would be an important feature, even if it means that extra care has to be taken to avoid messing up transactions happening right at that moment.

(The Linux client definitely doesn't have debugging symbols (at least not for gdb), but you could easily add it (with the -g compiler flag, if you're using gcc and not clang/llvm) it if was needed.)

the soulseek client does't start even by checking the box authorizing the execution of the file like a program. (Build 29 / 6, ubuntu 11.4)

Can you verify whether or not you have the same problem with older Linux builds?

I'm also on the same Ubuntu (well, I'm using KDE, so KUbuntu), and all the builds (including the latest one) start perfectly on my computer. (It takes some time for the client to fire up, so the first 20 or seconds you're just left waiting for a window, but after that it's all good.)

Cheers,
Adam

@vlotho: This might have something to do with some new code in the latest version to check whether an instance of SoulseekQt is already running. A chunk of shared memory is being allocated, and under some conditions is never released (essentially when the application crashes). In such a case the client will refuse to start again until the operating system is restarted. This shouldn't be a problem with older nightly builds as this is a very recent addition, and future nightly builds won't include this check.

@eperfa: The wait is due to UPnP trying to initialize itself. On my system it takes about four or five seconds to start, but I guess different systems behave differently. Usually this is the result of a UPnP initialization timeout. You can check the Diagnostics->Logs->Port Forwarding tab to see if the attempt fails in such a fashion, and if so save yourself the wait by unchecking Options->Login->Use UPnP. I'm gonna try and move this initialization to another thread in the future, assuming that the MiniUPnP library has no problem operating from a secondary thread.

hello,
I just tried the new version of 18/10 and I have this error message via the terminal:

gilles @ gilles-EP31-DS3L: ~ / Downloads $ ./SoulseekQt-10-18-2011-32bit
./SoulseekQt-10-18-2011-32bit: Error while loading shared libraries: libQtGui.so.4: can not open shared object file: No such file or directory

libqtgui4 is already installed in my distribution.

I try to install the libraries libqt4-core libqt4-gui but it does not solve the problem.

I have the same 'missing' libQtGui.so.4 issue as vlotho. I suspect the problem is that the SoulseekQT is linked against a 32bit version of the libQtGui library, which isn't present on most 64 bit installs (I'm running K/Ubuntu).

Running
find /usr/lib -iname 'libQtGui*'
finds
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.7.4
/usr/lib/x86_64-linux-gnu/libQtGui.so.4
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.7
but nothing in "/usr/lib/i386-linux-gnu"

I haven't been able to find a package for Ubuntu that includes 32bit versions of Qt libraries. Is it possible to build a 64bit version of the executable, or is the code targeted specifically for 32bit?

I've had no luck getting the client to run on 64-bit Linux, and it's impossible to compile the code for 64-bit Linux without serious modifications to the code, which I won't be able to get to anytime soon. Sorry, Nir

Hello,

I don't know about the official Ubuntu packages, I have Qt set up directly from the site, but it works perfectly (it even integrates to the "start" menu), and I also have the 32 libs.

find /usr/lib -iname 'libQtGui*'
/usr/lib/i386-linux-gnu/libQtGui.so.4.7.4
/usr/lib/i386-linux-gnu/libQtGui.so.4
/usr/lib/i386-linux-gnu/libQtGui.so.4.7
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.7.4
/usr/lib/x86_64-linux-gnu/libQtGui.so.4
/usr/lib/x86_64-linux-gnu/libQtGui.so.4.7

http://qt.nokia.com/downloads

Cheers,
Adam

hi there,

i just wanted to build on eperfa's comment and provide some suggestions on how to locally install the 32bit qt libs on a 64bit linux and start SoulseekQt32bit with it.

1) go to the qt download page: http://qt.nokia.com/downloads
2) download the online installer for 32 bit linux
3) select /path/to/your/slsk/bin/dir/qt as the install location
4) remove all but the mandatory packages to be installed by the online installer and install
5) go to the /path/to/your/slsk/bin/dir and use following command
LD_PRELOAD="./qt/QtCreator/lib/qtcreator/libQtGui.so.4 ./qt/QtCreator/lib/qtcreator/libQtNetwork.so.4 ./qt/QtCreator/lib/qtcreator/libQtCore.so.4" ./SoulseekQt-MM-DD-YYYY-32bit
where you obviously have to replace MM/DD/YYYY by the build you are using.

this should preload the 32bit libs from the local install dir.

of course this could be put into a small start script. if wanted i can provide it for ease of use.

hope this helps someone.

greetings,
frd

This is very helpful, thank you. I'll link to it on the front page.

The Qt 32-bit installer is segfaulting when I try to install it anywhere but the default location (on Ubuntu 11.04 x64).

I'm not sure what you mean by installer. SoulseekQt for linux is just a tar archive of the executable file (to maintain the right permissions). Do you mean running the executable from a certain location segfaults? Can you give me an example?

I figured it out. It must segfault when you try to install to a location which already has file(s) or which already exists. I appended /qt to the path I was attempting, like in your post and it worked. ATM, I'm trying to suss out why the script doesn't work if I don't run it as root (sudo).

FWIW, SoulseekQt will also segfault if you are running on an older system with Qt 4.6.3, which is still VERY common with, say, live CD/DVD distributions.

Not until I did a "near-full" 4.7.4 upgrade, things work fine.

nineinchnick's picture

On Arch Linux x86_64 it works out-of-the-box. I've got lib32-qt from multilib repository installed.

Dewb's picture

see the guide i wrote

I've added your guide to the original post.

Thanks, Nir

Hi. I'm trying to migrate completely away from Windows and one of my sticking points is that I like Soulseek. So I believe that a stable Linux build is essential.

thescarletfire's picture

There is a stable Linux build. You know that yes?
Right here http://www.soulseekqt.net/news/node/1

Hi, i can't change some preferences in the gui (like the nat port) and i have this error in the terminal:

"Unable to load library icui18n "Cannot load library icui18n: (icui18n: impossibile aprire il file oggetto condiviso: File o directory non esistente)"

thescarletfire's picture

What distro?

Opensuse 13.1 x64.

Hmmmm!

This is an interesting issue, since various Ubuntu users have complained about it as well:
https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/989915

(Gladly I don't have this problem on my Lubuntu distro...yet.)

A user on Launchpad (B. Jemlich) says that it must definitely be a Qt-related issue. Sounds plausible to me.

Anyways, here's the package suitable for your distro, maybe it helps:
http://pkgs.org/opensuse-13.1/opensuse-oss/libicu51_2-51.2-6.1.2.i586.rp...
respectively
http://pkgs.org/opensuse-13.1/opensuse-oss/libicu51_2-data-51.2-6.1.2.no...

You might even need both, but if not, you surely won't break anything if you replace the one with the other.

BTW:
Both the bug reporter on Launchpad and you are running x64 machines! Mine is x32, that might already make a difference.

And a

$ sudo ldconfig -v

won't hurt either for sure.

Thanks.
But i think the issue is related to the libicu version, i have the .51 one (like the one in your links) but Soulseek need the .48 one.

Oh, this is possible!

In theory, you could try downgrading to .48...BUT I concede that this might be too risky, as it might break more things, in particular applications that rely on libicu.

A safe way of trying it would be to try this on a Opensuse VM.