Building Hifi on OpenSuse 13.1


#1

Getting started building hifi on my desktop box, which is running opensuse 13.1.

Oftentimes, getting a piece if software like hifi running is very much about getting the dependencies right from the outset. Indeed, its everything.

This case is not different :smile:

Firstly, there is something that isn’t quite right about 'suse 13.1’s Qt5. Specifically, there seems to be something missing with respect to webkit and the webkit widgets. This prevents the dist Qt5 being used for the hifi build.

Fortunately, Thanks to BeyBar on good old IRC, I got Qt working by following these instructions:

http://wiki.qt.io/Building-Qt-5-from-Git#Building_Qt_WebKit

Subsequently, I point the hifi build to the userspace Qt installation according to the instructions in the hifi BUILD.md file.

Protip: Use all your cores (gmake -j[#cores]) when you build Qt5. With 4xcores@2.85GHz building Qt5 took me 5.5 Hrs.

I’m now on to a new error, which looks like this:
http://pastebin.com/iEpv7x83

Anyone have any ideas? maybe a fully full-on clue? :wink:

Thanks for all the fish :smile:


#2

What’s your GCC/G++ versions? HiFi is using some fairly new C++ syntax and compiler support for those is iffy when dealing with an older distro.


#3

Thanks for the reply @OmegaHeron :smile:

Here’s what I’ve got in the PATH:

twitch@archon:~/hifi/build> g++ --version
g++ (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]


#4

Ok - I don’t want to lead you down the wrong path and have you go to a ton of needless effort - so please do a little more research first. I had troubles on a totally unrelated platform building HF code (RasPi - ARMv6 arch) and I had to get up to GCC 4.9.x before it resolved. In so far as PC Linux is concerned - I’m having no current difficulties with GCC/G++ 4.9.1

In case of RasPi’s GCC/G++ it was missing some C++11 support until > 4.8.6 (I think it was).


#5

Sounds like its at least worth a shot to obtain and install g++ 4.9.1

let me see what I can do about that …


#6

Good luck with it - volunteer tech support shutting down for tonight :slight_smile: Someday maybe the paid help will jump in again. And before anyone grabs pitchforks and torches. That was said in fun.


#7

Hahahah no worries, have a great evening :smile:
You can count on me to keep sloggin, it’s what I do…


#8

ALRIGHTY THEN.

So thanks to @OmegaHeron, his suggesting of upgrading my gcc really got me a lot further down the road.

Here’s how that went:

Go to the GNU website, find one of their mirrors, and find the code for gcc; find the version you are looking for and pick up the required files. You’ll not only need the gcc code, but some ‘infrastructure’ files as well.

Details are here:
https://gcc.gnu.org/install/index.html

basically get the source, unpack it, get the infrastructure files, unpack those inside the gcc source tree and link them respectively to their shortnames – i.e., xyz-v1.423-1.02 becomes simply xyz. The build system will automatically incorporate such infrastructure builds into the gcc build.

When this finishes (it will take some hours, many depending on processor cores and speed), install it (/usr/local works great, be sure you have space), and get it to the front of your path by setting links to the binaries in your ~/bin folder.

I did it by cding into my ~/bin and executing this snippet:
for theFile in /usr/local/bin/*; do ln -s $theFile; done
(there’s nothing in there but the updated gcc)

you should now see an updated version when you run gcc --version.

This got me way beyond the points where I was seeing a breakdown in the build process previously; I now see this:
http://pastebin.com/pqpdEiUG

As always, any assistance is most welcome :smile:

Cheers
James


#9

Certifying that the new gcc and new Qt5 libs are both incorporated in the build makes a big difference. Got a little further still, but got there with much fewer warnings:

http://pastebin.com/Cs8qCgCG

Seems odd it’s stumping up against modelling…


#10

Apparently thats not quite right. It’s DomainHandler.cpp thats breaking the build.


#11

UPDATE:

I did finally get this working; my issues remain a bit vague, but what I did to get it working was to a) finally get my Qt paths right and b) start the build from a clean hifi repository.

Thanks for the help and I look forward to seeing you there :smile:


#12

Based on the post on worklist I am posting this here as a basic for Interface compile on OpenSuSE with no extra compiles needed. I will hope this works for 13.1 too as I am unable to test I am offering it to see.

zypper addrepo http://download.opensuse.org/repositories/devel:libraries:c_c++/openSUSE_13.2/devel:libraries:c_c++.repo
zypper refresh

zypper install -t pattern devel_C_C++
zypper install -t pattern devel_qt5

zypper install git-core cmake libQt5Script-devel libQt5Multimedia-devel libQt5Webkitwidgets-devel openssl-devel nano

cd ~

git clone https://github.com/highfidelity/hifi.git

mkdir ~/hifi/build && cd ~/hifi/build

cmake ..

make interface

#13

The worklist thread is my own.

This sequence of commands fails at ‘zypper install pattern devel_qt5’ as there is no such pattern for OpenSuse 13.1 that I have been able to find.

This is also documented on the worklist thread.

As I type this, I am still enjoying the benefits of recent efforts at fixing spatial audio; an hour and a half after logging out, I am still getting spatial voice bursts coming through my external speakers, though hifi and the operating system itself was configured for use only with the logitech USB headset when it was running. These continuing bursts last for less than a second. It is noteworthy that the spatial audio actually did work for 20 or 30 seconds when I logged in for the test, though again, only through the external speakers and in defiance of all configuration settings to the contrary.


#14

Well, scratch that about the latent audio still playing back; I discovered a video ad on a tab in my browser that was doing a super crappy job of ITS audio :wink:

Cheers


#15

Running the audio stats, I’m seeing all audio frames dropped.