2015 Linux build?

Nir, what is the approximate timeframe with a 32bit Linux build that keeps up with current changes? With enthusiasm, I've read the big changelog, but unfortunately at the moment only the Windows and Mac users will profit from it.

Also, I think it would be a good idea to release both a static and a shared-lib version of SoulseekQt, since the latter will make debugging way easier if anything fails than the former which in fact is just an enormously huge lump of binary raw data.

MANY MANY THANKS Nir for finally giving us a recent Linux build of your excellent software.

It was worth the wait!!

I'm happy you're happy ;)

Thanks, Nir

Hi,

I for one would be extremely happy if there were a Linux build that had the same functionality as the current Windows version. From what I've read this probably drives you crazy, but the old-style search results view with column sorting is a real must for me, and column sorting doesn't work on the latest available Linux build.

While I'm here I'd just like to say that I've been using Soulseek since about 2002, which means it's probably the single piece of software that I've used over the longest period. For that alone, huge congratulations are in order! :) :) :)

It might interest you to know that although I use a Windows machine for most of my work, I also have a headless Debian box. For some time I've wanted to run SoulSeek 24/7 on the server, but after a half-hearted attempt with Nicotine, I gave up. Recently though I had cause to install LXDE, which I connect to from Windows with the X2Go client. This works very well, and Soulseek worked almost immediately, so now I'd like to use Soulseek this way, but I really need this sorting thing (I've donated plenty of times)

Thanks again

It's been a little while since a Linux build worked for me, but I've only just got round to registering. I'm encouraged by the newest build, as it now runs, but does not display any characters (literally rendered as boxes in every part of the GUI).

Is it an issue with assuming the version of Qt on my system? I have 5.3.2 installed, whereas gdb spits out "QFontDatabase: Cannot find font directory /home/nir/Qt/Static/5.4.2/lib/fonts".

I could try installing 5.4.2 from the experimental repository, but that's a big change on my system, and Debian can get easily confused by such shenanigans. I don't know how complicated it would be for you to support other dpkg based systems, and wouldn't expect more of your developer time than is reasonable, but if there's an easy fix either you or Debian users like me could do, then that would be brilliant.

Whoops, that /home/nir/... thing really looks suspicious. Seems some fonts directory was hardcoded for some reason (i. e. adapted to the folder structure on Nir's private machine) instead of being specified relatively.

@Nir, maybe this question on SO helps you to find out more about this (known!) problem:
http://stackoverflow.com/questions/20751604/static-qt5-build-on-linux-ho...

As SoulseekQt is closed source, Nir has to do this on his side.
As a user, you could merely try to set the correct font path via the QT_QWS_FONTDIR environment variable, however I think that's just a dirty hack.;)

I tried to implement the hack you mentioned by changing the font path, but that doesn't seem to work. Any chance to get it running?

You probably need level 2 of this hack :) i. e. the combination of LD_LIBRARY_PATH and QT_QWS_FONTDIR:
http://www.crifan.com/resolved_qfontdatabase_cannot_find_font_directory_...

e. g.

export LD_LIBRARY_PATH=/usr/lib
export QT_QWS_FONTDIR=/usr/lib/fonts

It's possible you need both in your distro.

Thanks sysmaster, that's very helpful information. I'm able to reproduce this problem and am looking into fixing it now.

Thx - I've tried that, too, but still no joy :-( I'm currently using Ubuntu 15.04. All i can see is little boxes instead of characters. Seems like i need to work with SoulseekQt-2014-11-30 a bit longer ;-)

Ahhh, note to self: remember to read users' names first next time.
So you're the Ubuntu guy, whilst tawnypigeon uses genuine Debian.
Well, I'm on Vivid as well, so I might give this a thorough test as soon as I get to it. :) TBH, I'm still using 2014-11-30 build as well because I had to meet someone in chat and did not want to let the user wait too long (it would've been impolite, plus I know myself well: I tend to get way too distracted with new versions, fiddling with new features, options etc. :D)

I built these with fontconfig linked in. Appears to fix the problem on my end when the hard-coded font path is not available. Let me know how they work for you:

32-bit: https://www.dropbox.com/s/0j5pkwnqsm07tm0/SoulseekQt-2015-6-21.tgz?dl=0
64-bit: https://www.dropbox.com/s/95sl25uvlchxr72/SoulseekQt-2015-6-21-64bit.tgz...

On Linux Mint 17.1 32bit (Ubuntu fork) terminal show this:
./Pobrane/SoulseekQt-2015-6-21/SoulseekQt-2015-6-21
./Pobrane/SoulseekQt-2015-6-21/SoulseekQt-2015-6-21: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./Pobrane/SoulseekQt-2015-6-21/SoulseekQt-2015-6-21)
./Pobrane/SoulseekQt-2015-6-21/SoulseekQt-2015-6-21: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./Pobrane/SoulseekQt-2015-6-21/SoulseekQt-2015-6-21)

/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

This indicates that your libstdc++6 is a little older than the one used to build SoulseekQt, cf. here:
http://askubuntu.com/questions/575505/glibcxx-3-4-20-not-found-how-to-fi...

$ sudo apt-get install libstdc++6

MIGHT fix it. If it says you have the recent version, PLEASE do NOT start experimenting - as this is one of the core libraries, it might break dozens of your GUI applications in one go if you don't know exactly what you're doing.
The actual reason is that Nir's build system is almost "bleeding-edge", so it might even very likely break "older" distros when a very recent libstdc++ and/or gcc (= C/C++ compiler) was used.

@Nir, there are a couple ways out of this misery:

(time-consuming) go back to Ubuntu 14.04 (LTS release) and build your software there, as there *IS* lots of backward support for libstdc++6 (e. g. GLIBCXX_3.4.12, GLIBCXX_3.4.16 respectively CXXABI_1.3.3, CXXABI_1.3.6) just no forward support!

(less time-consuming) keep your current distro, but make sure you downgrade your gcc! gcc 4.9 requires libstdc++6 with support of GLIBCXX_3.4.20. Once the one you're choosing to compile your software is too recent, the object code will be too recent as well - unable to get handled by older libstdc++6 versions!

see also http://stackoverflow.com/questions/2085427/link-with-an-older-version-of...
as well as https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html

@majster in some cases, running
sudo ldconfig -v
may also help.

Would building on 14.04 potentially create other problems? If not, or if it's the tradeoffs are worthwhile I'm happy to do that.

It would only create other problems if your software requires specific versions of shared libraries (remember libmng*, libjpeg* issues from our private conversation). Hence, it is important that you link those statically and do not require them on the client's machine, as the versions may differ too much (OR worse, force the user to install an older shared lib in parallel just to make SoulseekQt work!)

Anyways, the actual culprit is the gcc 4.9.x you're currently using for compiling (hit in gcc --version just in case of doubt :)). Alas; To support older libstdc++, you MUST downgrade your gcc.

On your v15 distro you're using, you might just install gcc 4.8 (<=GLIBCXX_3.4.18) or 4.8.3 (<=GLIBCXX_3.4.19). My choice would be 4.8.
I can utterly feel from the inside how this is currently putting your patience at risk, but please, don't lose it yet. :)

(Linux and its "library jungle" can be an effin' toughie at times, really!)

You're not testing my patience, but Linux certainly is ;) I'm happy to have someone to talk to that has a good understanding of these things. If I built it on 14.04, do you know if 15.04 would have any linkage issues?

I have recent version libstdc++6, sudo ldconfig -v not help.
Still the same message:
./SoulseekQt-2015-6-21: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./SoulseekQt-2015-6-21)
./SoulseekQt-2015-6-21: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./SoulseekQt-2015-6-21)

Oops, this would mean an inquiry to the Oracle. ;)
Well, I have 15.10 (development release, not out until October) and I could be your 'guinea-pig' for testing. However, I think your best guinea-pigs will be NON-Ubuntu users, as we here are not likely to encounter too many problems! :-)
Besides, LTS stands for Long-Term-Support Release (next will be 16.04, scheduled for April 2016) and hence is not to be expected to do too many silly experiments with future versions respectively "exotic" dependencies. This is also why I'd prefer these to others for building tasks. And some users that put huge focus on stability are even notorious for only upgrading from one LTS release to another.

Let me know how this one works, I built it on Ubuntu 14.04: https://www.dropbox.com/s/7majmb4o5f2pg17/SoulseekQt-2015-6-25-32bit.tgz...

Thanks, Nir

Aww...unfortunately this one instantly crashed with a SIGILL here, gdb as follows:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0x08b17dbf in QTransform::QTransform() ()

Note: This is on 15.10 (development branch), and it is possible that when 15.10 will be finalized in this year's fall, the very same build will be working fine.

So don't put the blame on yourself yet; let's see what the others' results will be.

P.S. Apologies from me for saying back then (in PM) that your "build system is too old." In fact it was not, the main problem was just the older libtiff .48 (et al) libraries which you always required externally, but which are now compiled in and hence out of the way. (ldd -v really looks great now, way less "junk") I just wasn't aware back then that gcc from 15.x Ubuntu will also create much too recent object code, making it only work on recent Ubuntu but nowhere else.

On Linux Mint 17.1 this version works fine.

Thanks for the positive report - that is sufficient for me. I would not even complain about having to stick to 2014-11-30 version until April 2016, as I will be doing a full install of 16.04 from scratch (no upgrade). It is possible I've simply messed around too much with symlinking a library in /usr/lib/i386-linux-gnu. Just can't seem to remember which one right now.-- Nir, I don't blame you for this :-). It's most important that this build works on *NON*-Ubuntu OSes.

Nir, can you post 64 bit version?

Nir, I can confirm the version SoulseekQt-2015-6-25-32bit worked for me on Debian Unstable.
Thanks for releasing it.

I think I'm going to have to give up on regular Linux builds. There's just too much fragmentation. I can't even come up with one build that works for two flavors of Ubuntu that people are using currently.

Don't give up Nir. This version (2015-6-25 32 bit) works perfectly on Ubuntu 14.04 LTS, Ubuntu 15.04, Lunux Mint 17.1 of course and even on Fedora Workstation 22.

Ah ok, I gathered from what sysmaster was saying that it doesn't work on 15.04. Maybe it's just 15.10? Anyway I'll keep building on 14.04 for now.

It's WORKS on 15.04 wihtout problems, maybe it's sysmaster's system problem. Ubuntu 15.10 it's future release.
Each my instalation is a clean install, not update. Whith format / partition and separate not formated partition /home

Sorry I didn't get round to updating my situation earlier - just back from holiday.
Latest build works perfectly on Debian unstable without modifications. It would be great if we could assemble a few Linux users on different distros to keep you updated on dependency issues whenever you release a new build.

Dammit YES, it is a system problem on my side! Nothing for you guys to rack your brains upon. :) And since I don't know where I messed up, I will still live with the older build.
Thanks majster for the extensive multi-distro testing. :)

So Nir, please disregard the fact that it doesn't work for ME currently - well it's OK for me. For the others it works, and if you had an idea how many "symlinking experiments" I recently did to find workarounds in order to get things working for other applications than yours, you'd know where that may come from. :)

And yes Nir, I'm currently on the 15.10 development release indeed.;) Still, I think even there it would work if my shared lib system was still original and not tampered with ;-) Anyways, all that "consulting" helped the Linux people obtain a build that works on everyone's STABLE (genuine) Ubuntus throughout as well as Mint and Fedora (and as we now know from tawnypigeon, even genuine Debian, too)

Facts are that we do no longer have to deal with a bleeding-edge libstdc++ with 3.4.20 object code nor with libICU/libTiff/libJpeg issues (thanks to the different compiling options you're now using)

I can confirm that the version that Nir shared on this comment worked for me on Debian Unstable.:
http://www.soulseekqt.net/news/comment/6335#comment-6335

Nir, the version as of june 21st starts and seems to work fine on an updated Arch Linux system. If people have issues, it would seem to me that they are using older systems (in general). Would you please continue building and publishing for linux? And we'll continue testing. But please, both 32 and 64 bit (I need 64 bit and cannot for example test the 2015-6-25 version)

I'll build a 64-bit version over the weekend, once I'm free from work :)

Updated the download page and sidebar with links to the the 32 and 64 bit Linux builds.

Thanks, Nir

Hi,

I'm still expecting the font error, is this a code regression?

I have tried the workaround suggested by sysmaster01, but won't work:

$ export LD_LIBRARY_PATH=/usr/lib
$ export QT_QWS_FONTDIR=/usr/share/fonts
$ ./SoulseekQt-2015-6-25-64bit
QFontDatabase: Cannot find font directory /home/nir/Qt/Static/5.4.2/lib/fonts - is Qt installed correctly?
[..]

Maybe I missed the right path of QT_QWS_FONTDIR, can I ask a little hint about my problem?

Regards.

Did you just download the build? I just replaced the link in the sidebar with one that's supposed to fix this.

Hello, just wanted to report build SoulseekQt-2015-6-25-64bit does not work in Fedora 22.
Running it from shell it returns:
QFontDatabase: Cannot find font directory /home/nir/Qt/Static/5.4.2/lib/fonts - is Qt installed correctly?

However, oddly enough SoulseekQt-2015-6-21-64bit does work.

I think there might be something wrong with the DropBox link... I overwrote the file with the new build but the link didn't change, which isn't normal in my experience. Try this one:

Also, can you ldd the executable linked to above and see if it's linking to libfontconfig?

https://www.dropbox.com/s/ppc7h3tmbnz2rxq/SoulseekQt-2015-6-25-64bit.tgz...

Thanks, Nir

Hello, Nir

The new link for build 2015-6-25-64bit is working properly. When I run it from the shell there are no errors displayed. Hope this is what you meant by "ldd the executable linked to above and see if it's linking to libfontconfig".

Thank you for the fast reply/fix.

Cheers.

Well, maybe the wording was a little vague...

By doing a ldd -v name_of_binary | grep libfont , you can figure out whether libfontconfig was linked in or not. ldd will figure out which shared components are linked to an ELF binary.
NOTE: "Linked in" still means that you will require the shared library (*.so)! To my knowledge, ldd will not print any (useful) information with statically linked binaries.

Is there anywhere to go to download the 2014 Linux 64-bit version still? The new one isn't compatible with my Fedora 22....

Hey guys,
downloading the freshest release for linux 64 bit I ran into this error, resulting in unreadable square characters. Is there a fix for it?

" Cannot find font directory /home/nir/Qt/Static/5.4.2/lib/fonts - is Qt installed correctly?"

Long live slsk, long live qt!

Perfect! Thanks ¤

Way to go. All good on Arch Linux 64bit

Thank you very much! Very good version for Linux! At last!