Any good way to compile hifi for deployment? (Linux)


#1

So is there any good way to compile hifi for deployment across multiple linux servers?

Besides docker or KVM… because I do not want to overwrite custom server settings and the domains asset files every time there is an update.

It doesn’t make sense to install a bunch of crap across multiple servers, like QT and openGL or to compile on each and every server.

Is there a way to compile with static libraries? Maybe spit out an installer?

The only thing I can think of right off the top of my head is to use ldd on assigment-client and domain-server to find out which shared libraries they use and just copy them all in a single directory on each server. After that only the executables would need to be copied. This seems like a pretty shitty solution though.

It’s kind of sad because 90% of the depends shouldn’t even be needed in a server-only build.


#2

I do the copy-all-libs-from-build-tree cludge just to try to run my compiled code from /opt separate from /usr/src where I compile. In theory this should allow me to keep using the last-working-compile even if the build tree goes wonky for a while. In practice it is a real PITA and of dubious usefulness since there are a whole bunch of compiled-in absolute links back to the build-tree file heirachy throughout. :persevere:

As of a few days ago, I have no functional servers for weeks. Though the client is finally working again after a few weeks of no joy. :face_with_raised_eyebrow: I’m going to look into whether docker is suitable for my own needs as it was recently mentioned on another thread that moderately up-to-date server modules were available.

And then just keep praying that Interface’s Linux build doesn’t fall over too much and for too long at a time. :cry:


#3

It really shouldn’t be this convoluted. I used ldd on assignment client and domain server and almost all of the libraries it depended on were graphics libraries and QT (mostly x11 graphics libraries… I don’t see why those would be needed at all for a server-only build).


#4

Can’t speak for the x11 stuff (!), but QT includes a lot of network, memory management, and I/O abstraction stuff as well as the GUI abstraction layer it is better known for, all but the last of which could well be being used server-side.

I’m not a coder, though I get a lot of 2nd-hand exposure to coding, and the more I hear here, the more certain I am that a HUGE re-factor and tidy-up is desperately needed!


#5

I think it was a really bad decision to base the entire project on QT because of its restrictive licensing and it’s a PITA to install and keep updated (especially if you want to deploy it). One day they WILL have to rethink this decision.