Linux Compile Scripts - Ubuntu 17.10, Debian 10, Fedora 27 and openSUSE Tumbleweed


#1

I’ve posted some, what I’m going to call, “reference scripts” for compiling HiFi on;

  1. Ubuntu 16.04 (Xenial) – Only for assingment-client and domain server, Interface remains… elusive.
  2. Ubuntu 17.10 (Artful)
  3. Debian 10 (Buster – currently “Testing” branch)
  4. openSUSE Tumbleweed
  5. Fedora 27 (Very preliminary)

There’s also a variant for Ubuntu 16.04 (Xenial), but, it’s broken for compiling Interface so far.

I may add Fedora 27, not sure yet.

Note: These only work for specific distribution variants listed, but, could shed light on how to solve some problems faced by other distributions – mainly the content in build script after “make” command.

I don’t maintain that my methodology is the best, correct or only way to make this work, but, it’s what has worked for me over the last 3 years and tends to isolate building from the all too frequent changes in HiFi’s code that leads to failures.

While I’m willing to answer questions about scripts/dependency lists, understand I am not going to spend hours and hours on this. Even with the automation I provide it’s still not a beginner friendly thing.

If you’d like to add support for another distribution pull requests are welcomed. But – require following the exact “template” approach to building. In other words - you write a dependency list text (markdown) file and modify build script to set Qt5.9.x location and (possibly) a modified cmake line.


#2

Much thanks for this.

(If anyone was wondering, I had Jess remove my own Debian build thread as these scripts supersede and suppass it).


#3

I’m having issues getting the build for Qt5.9 to work as of recent to get my own build scripts for hifi work (mine used to use qt5.6, but latest no longer work ). do you have any tips to make it for debian?


#4

Only for Debian 10 (Buster/testing). In theory, if you built Qt5.9.1 for your Debian variant and set its location for build script you should be able good to go. Basically - the only reason Debian < 10, Ubuntu < 17.10 and others aren’t “easy mode” is Qt5.9 – That’s why I didn’t spend time on those variants or CentOS, it’s simply too much effort for too little return. Even what I had worked out for Ubuntu 16.04 turns out to not be reproducible, my local Ubuntu 16.04 box that I compile and make packages from works fine – but a new 16.04 install to a VM produces an Interface that crashes on launch. A perplexing and annoying issue I’m up at 1:40am still trying to solve.


#5

Hi @OmegaHeron .

Latest build I tried (7786), interface is aborting:

./interface
Resource url resolved to “qrc:///”
hifi.gpu: [TEXTURE TRANSFER SUPPORT]
idealThreadCount: 8
RECOMMENDED enableSparseTextures: true
Disabling Qt wireless polling by using a negative value for QTimer::setInterval
hifi.shared: Settings file: “/home/viki/.config/High Fidelity/Interface.json”
UserActivityLogger is enabled: false
hifi.shared: Settings thread started.
terminate called after throwing an instance of ‘std::runtime_error’
what(): Unable to find primary resources
Aborted

Found it:
Needed to copy across $HFSRC/build/resources.rcc to $HFBIN