The headless documentation says which dependencies are needed to run jamulus in the geeks section.
I think the same should be added for the client GUI compile page
https://github.com/corrados/jamulus/wiki/Installation-for-Linux#notes-for-geeks
I assume e.g. build-essential is not needed.
The "geeks" section in the headless docs is about the Qt UI libs, which is a different thing, Not a lot of point in having a headless client perhaps, so this would be a bit strange to have there :-)
BTW just as an aside, and I know it doesn't really apply here, but we need to be very careful about duplicating information around the wiki because tracking it all down when that information needs changing is a pain. Much better to have information in one place and link to it (eg in Step 1 of the headless docs). This is also why the info in the Rpi docs on the wiki makes me a bit nervous as it duplicates the linux build instructions, for instance.
Maybe my issue is a bit unclear.
The question answered in the wiki should be which dependencies (QT-Libraries) a GUI client needs. If you compile a GUI build on machine a and transfer the binary to machine B what do I have to install on machine B?
This is answered in on the headless wiki page but not here.
OK I see what you mean about that use case. Bearing in mind my point about duplicated information, and since it theoretically applies to both the server and the client builds, and is also relevant to Rpi, I think it's best to put the section on "headless build flag" info into the Linux section of the Compiling page and then linking to that from the relevant pages (Client, Server and Rpi).
Yes. That’s a good idea. I assume the headless and GUI builds both have the same dependencies?
Other than headless doesn't need the Jack libraries, yes. And there is the case of Gentoo and the Qt UI libraries...
Ok. Should we add the dependencies on the Linux page/general compilation page?
Other than headless doesn't need the Jack libraries, yes. And there is the case of Gentoo and the Qt UI libraries...
I run a headless (no GUI) client which relies on Jack. You may be referring to the noaudio option, that's separate from headless (even if regularly both are used at the same time)
Just so I'm clear, if we are to re-arrange the docs on this, we need to support the following use cases - is that right?
Non-Gentoo Linux users who want to run a "headless server" (currently defined as without GUI or sound support) will compile with headless and noaudio with all the currently listed dependent packages for servers. The headless flag simply speeds up compile times a bit.
Gentoo Linux users can do the above and don't have to install the Qt GUI libs package (so saving on some disk space).
Ubuntu users who wish to compile a headless binary on one machine and then run it on another will need all dependent Jamulus server packages to compile the binary, but only libqt5core5a, libqt5network5 and libqt5xml5 on the destination machine (so saving some disk space).
Non-Gentoo Linux users who want to run a "headless client" (currently defined as without the GUI but with sound support) will compile with headless with all the currently listed dependent packages for clients. The headless flag simply speeds up compile times a bit.
Gentoo Linux users can do the above and don't have to install the Qt GUI libs package (so saving on some disk space).
Ubuntu users who wish to compile a headless binary on one machine and then run that on another will need all dependent Jamulus client packages to compile the binary, but only libqt5core5a, libqt5network5 and libqt5xml5 on the destination machine (so saving some disk space).
I just tested the install again (latest version pulled from master) and now on raspbian libqt5concurrent5 is also needed.
I agree on the other things. Anyone else who can confirm these changes?
Sorry, difficult to keep track - which changes are you referring to?
I'm a bit wary about what we doing here because the benefits of the headless flag are really very small compared to the potential impact of documentation complexity and misunderstandings. The benefits literally come down to saving a few kilobytes disk space or a few seconds of build time.
I am currently referring to the changes to the wiki you proposed
Just so I'm clear, if we are to re-arrange the docs on this, we need to support the following use cases - is that right?
Oh ok I forgot about that. I'll need to think it through a bit to make sure I can word it to make sense for all the use cases.
@ann0see Sorry, I was going to look at making these changes just now but realise I'm actually confused about what's needed.
Originally, you said "The headless documentation says which dependencies are needed to run jamulus in the geeks section." But there is no such section there.
You then said:
"The question answered in the wiki should be which dependencies (QT-Libraries) a GUI client needs. If you compile a GUI build on machine a and transfer the binary to machine B what do I have to install on machine B? This is answered in on the headless wiki page but not here."
I am confused what you mean by "the answer". The information is about the headless server build and the libraries needed/not needed for that. It doesn't say what dependencies are needed to run a binary GUI client as opposed to compiling it.
So I take it you mean we should add a section pointing out that in the above "machine A and B" scenario, you need certain compilation dependencies on A but only certain things on B?
I'm not qualified to properly answer that question for the Linux distros (and potentially other platforms?) that applies to. Meanwhile, I've moved the headless build info to the Compiling page and linked to it from the server build page which is maybe a bit neater as I'll do the same for the Rpi page.
So I take it you mean we should add a section pointing out that in the above "machine A and B" scenario, you need certain compilation dependencies on A but only certain things on B?
It doesn't say what dependencies are needed to run a binary GUI client as opposed to compiling it.
Yes. That's basically what I meant.
I am confused what you mean by "the answer".
Question = I compile Jamulus with GUI for Linux on my machine. Now I give the binary to my friends also using Linux. What do they need to install?
Answer (at least what works for me on Raspbian): Install the dependencies of the headless build.
This should be answered in the wiki.
Since you don't know for sure we could add "For running Jamulus on Raspbian only following dependencies are needed. Other Distributions haven't been tested yet."
Install the dependencies of the headless build.
OK. This is still a _microscopic_ edge case, so keeping it to Rpi is probably best, as that's the platform that's mostly likely to apply.
I'll add a line on that page together with a link to further info on the Compile page, and add a line on the headless build explanation there to say that maybe the dependencies given for headless builds on various distros can be used for GUI binary builds.
But really - Jamulus suffers enough as it is from appearing like some bearded boffins playground. This stuff really doesn't help our image :-(
Ok. Thanks! libqt5concurrent5 Isn‘t listed there. Can anyone confirm that this package is also needed?
For me it was needed.
—
I wouldn’t call the image of Jamulus bad.
But that’s just my impression. We should discuss this issue elsewhere, I think.
Just added libqt5concurrent5. This issue is closed now.