From e750230a831670c4cecc6d3a381223086976b3fc Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 4 Apr 2021 16:59:56 +0100 Subject: [PATCH 01/32] Create COMPILING.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move all client and server source compilation instructions to COMPILING.md. From now on, we assume binary installs, and further assume that people who choose to compile don’t need hand holding. --- COMPILING.md | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 COMPILING.md diff --git a/COMPILING.md b/COMPILING.md new file mode 100644 index 0000000000..2dad9ab18f --- /dev/null +++ b/COMPILING.md @@ -0,0 +1,158 @@ +Jamulus can be compiled for Linux, Windows and macOS as follows. + +## Download sources + +For .tar.gz [use this link](https://github.com/jamulussoftware/jamulus/archive/latest.tar.gz) to download the latest release + +For .zip [use this link](https://github.com/jamulussoftware/jamulus/archive/master.zip) + +## Linux + +#### Install dependencies + +On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian Buster release or later: + +* Build-essential +* Qt5-qmake +* Qtdeclarative5-dev +* Qt5-default +* Qttools5-dev-tools +* Libjack-jackd2-dev + +#### On Fedora + +* Qt5-qtdeclarative-devel +* Jack-audio-connection-kit-dbus +* libQt5Concurrent5 +* Jack-audio-connection-kit-devel + +#### For all desktop distributions + +[QjackCtl](https://qjackctl.sourceforge.io/) is optional, but recommended to configure JACK. + + +### Standard desktop build + +~~~ +qmake Jamulus.pro +make clean +make +sudo make install +~~~ + +This puts the Jamulus binary into `/usr/local/bin`. + +#### Notes + +* The "make clean" command is essential to remove the automatically generated Qt files which are present in the .tar.gz file and may not match the Qt version you are using. + +* To use an external shared OPUS library instead of the built-in one use qmake `"CONFIG+=opus_shared_lib" Jamulus.pro`. + +* To use this file configure the software with `qmake "CONFIG+=noupcasename" Jamulus.pro` to make sure the output target name of this software is **j**amulus instead of **J**amulus. + +* Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. In particular, have a look at the footnote for the headless build. + +* As of version 3.5.3, Jamulus is no longer compatible with Qt4. + + +### “Headless” server build + +Note that you don’t need to install the JACK package(s) for a headless build. If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, see the footnote. + +Also, although not strictly necessary, we recommend using the headless flag to speed up the build process. Gentoo users may also be able to avoid installing some dependencies as a consequence. For more information [see footnote](#footnote). + +Compile the sources to ignore the JACK sound library: + +~~~ +qmake "CONFIG+=nosound headless" Jamulus.pro +make clean +Make +~~~ + +To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](/wiki/Command-Line-Options), and [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. + +### Notes + +* Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time under the following circumstances: + +* If you plan to run Jamulus on Gentoo Linux, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server). + +* If you are running Jamulus on Ubuntu/Debian, you will need all dependent packages to compile the binary, but to run the resulting headless Jamulus server you should only need `libqt5core5a`, `libqt5network5`, `libqt5xml5` and probably `libqt5concurrent5`. This may be useful for compiling/upgrading on one machine to run the binary on another (a Raspberry Pi, for example). + +* Note that if you want to compile a GUI client on one machine and run it on another (e.g. a Raspberry Pi) you only need the dependencies listed for a headless server, only with the JACK sound libraries. + +--- + +## Windows + + +You will need [Qt](https://www.qt.io/download) + +* Use the free GPLv2 license for Open Source development +* To determine the Qt version you need, check [qt-installer-windows.qs](https://github.com/jamulussoftware/jamulus/blob/master/windows/qt-installer-windows.qs): under INSTALL_COMPONENTS you will see `qt.qt5.[version]`, e.g., 5123 means version 5.12.3. +* Select Components during installation: Expand the Qt section, find the matching version, e.g., **Qt 5.12.3**, and add the compiler components for your compiler, e.g., `MSVC 2017 32-bit/64-bit` for Visual Studio 2019 +* [ASIO development files](https://www.steinberg.net/en/company/developer.html) + +### Compiling and building installer + +Most users will probably want to use this method: + +1. Open PowerShell +1. Navigate to the `jamulus` directory +1. To allow unsigned scripts, right-click on the `windows\deploy_windows.ps1` script, select properties and allow the execution of this script. You can also run `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`. (You can revert this after having run this script. For more information see the [Microsoft PowerShell documentation page](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy)). +1. Edit the $QtCompile32 and $QtCompile64 variables. +1. Run the Jamulus compilation and installer script in PowerShell: `.\windows\deploy_windows.ps1`. +1. You can now find the Jamulus installer in the `.\deploy` directory. + +### Compiling only + +1. Create a folder under `\windows` called ASIOSDK2 +1. Download the [ASIOSDK](https://www.steinberg.net/asiosdk), open the top level folder in the .zip file and copy the contents into `[\path\to\jamulus\source]\windows\ASIOSDK2` so that, e.g., the folder `[\path\to\jamulus\source]\windows\ASIOSDK2\common` exists +1. Open Jamulus.pro in Qt Creator, configure the project with a default kit, then compile & run + +--- + +## macOS +You will need XCode and Qt as follows: + +~~~ +brew install qt5 +brew link qt5 --force +~~~ + +### Generate XCode Project file + +`qmake -spec macx-xcode Jamulus.pro` + +### Print build targets and configuration in console + +`xcodebuild -list -project Jamulus.xcodeproj` + +will prompt + +~~~ +Targets: + Jamulus + Qt Preprocess + +Build Configurations: + Debug + Release +~~~ + +If no build configuration is specified and `-scheme` is not passed then "Release" is used. + +~~~ +Schemes: + Jamulus +~~~ + +### Build the project + +`xcodebuild build` + +Will build the file and make it available in `./Release/Jamulus.app` + + + + From a946ef7a9386b2cf65bb80bf0745f353e14b4000 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 4 Apr 2021 17:08:09 +0100 Subject: [PATCH 02/32] Update COMPILING.md Add link to install scripts. --- COMPILING.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 2dad9ab18f..28bfe314f8 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -1,4 +1,7 @@ -Jamulus can be compiled for Linux, Windows and macOS as follows. +Jamulus can be compiled for Linux, Windows and macOS as follows. Alernatively, you may wish to use one of the contributed [installation scripts](https://github.com/jamulussoftware/installscripts). + +--- + ## Download sources From fbc9187f9255331cc7e26a35d4d768e4343dcb61 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 4 Apr 2021 17:49:36 +0100 Subject: [PATCH 03/32] Update README.md Update link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f3bc5a010..15db592882 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Bugs and feature requests can be [reported here](https://github.com/jamulussoftw Compilation ----------- -[Please see these instructions](https://jamulus.io/wiki/Compiling) +[Please see these instructions](COMPILING.md) Contributing From 0f791e6b38ce97bacf2dacff2e4e8a033c374a7a Mon Sep 17 00:00:00 2001 From: ann0see <20726856+ann0see@users.noreply.github.com> Date: Mon, 5 Apr 2021 13:59:06 +0200 Subject: [PATCH 04/32] Fix typo Co-authored-by: Christian Hoffmann --- COMPILING.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 28bfe314f8..544180a4ea 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -69,7 +69,7 @@ Compile the sources to ignore the JACK sound library: ~~~ qmake "CONFIG+=nosound headless" Jamulus.pro make clean -Make +make ~~~ To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](/wiki/Command-Line-Options), and [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. @@ -158,4 +158,3 @@ Will build the file and make it available in `./Release/Jamulus.app` - From 0cb6375a170fc5c695c71647eff2b02879a7f91d Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 12:59:35 +0100 Subject: [PATCH 05/32] Update COMPILING.md Co-authored-by: Christian Hoffmann --- COMPILING.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 544180a4ea..3c6b843e66 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -1,4 +1,4 @@ -Jamulus can be compiled for Linux, Windows and macOS as follows. Alernatively, you may wish to use one of the contributed [installation scripts](https://github.com/jamulussoftware/installscripts). +Jamulus can be compiled for Linux, Windows and macOS as follows. Alernatively, you may wish to use one of the contributed [installation scripts](https://github.com/jamulussoftware/installscripts). There are also reports from people who successfully compile and run Jamulus on BSDs. --- @@ -157,4 +157,3 @@ Schemes: Will build the file and make it available in `./Release/Jamulus.app` - From 0ba3c32e62f35d852848df5e12cc28dd964888c1 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 13:11:28 +0100 Subject: [PATCH 06/32] Update COMPILING.md Remove stuff more relevant to packagers, --- COMPILING.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 3c6b843e66..508c90c51e 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -49,10 +49,6 @@ This puts the Jamulus binary into `/usr/local/bin`. * The "make clean" command is essential to remove the automatically generated Qt files which are present in the .tar.gz file and may not match the Qt version you are using. -* To use an external shared OPUS library instead of the built-in one use qmake `"CONFIG+=opus_shared_lib" Jamulus.pro`. - -* To use this file configure the software with `qmake "CONFIG+=noupcasename" Jamulus.pro` to make sure the output target name of this software is **j**amulus instead of **J**amulus. - * Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. In particular, have a look at the footnote for the headless build. * As of version 3.5.3, Jamulus is no longer compatible with Qt4. From 0d067b6dca576354db619a3565686dd595cbc6de Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 13:12:26 +0100 Subject: [PATCH 07/32] Update COMPILING.md Lower case all deps. --- COMPILING.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 508c90c51e..827d7e16ec 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -15,19 +15,19 @@ For .zip [use this link](https://github.com/jamulussoftware/jamulus/archive/mast On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian Buster release or later: -* Build-essential -* Qt5-qmake -* Qtdeclarative5-dev -* Qt5-default -* Qttools5-dev-tools -* Libjack-jackd2-dev +* build-essential +* qt5-qmake +* qtdeclarative5-dev +* qt5-default +* qttools5-dev-tools +* libjack-jackd2-dev #### On Fedora -* Qt5-qtdeclarative-devel -* Jack-audio-connection-kit-dbus -* libQt5Concurrent5 -* Jack-audio-connection-kit-devel +* qt5-qtdeclarative-devel +* jack-audio-connection-kit-dbus +* libqt5Concurrent5 +* jack-audio-connection-kit-devel #### For all desktop distributions From b8f991d21b92e72c6e613548be967e14b09a3330 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 13:12:59 +0100 Subject: [PATCH 08/32] Update COMPILING.md --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 827d7e16ec..08b44a32f4 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -26,7 +26,7 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian * qt5-qtdeclarative-devel * jack-audio-connection-kit-dbus -* libqt5Concurrent5 +* libqt5concurrent5 * jack-audio-connection-kit-devel #### For all desktop distributions From b12be751ceeb566f1ebe27ea6fcac2002ac39fa3 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 13:44:02 +0100 Subject: [PATCH 09/32] Update COMPILING.md Remove stuff that binary installs now cater for. --- COMPILING.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 08b44a32f4..132369f70b 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -72,13 +72,7 @@ To control the server with systemd, see this [unit file example](https://github. ### Notes -* Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time under the following circumstances: - -* If you plan to run Jamulus on Gentoo Linux, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server). - -* If you are running Jamulus on Ubuntu/Debian, you will need all dependent packages to compile the binary, but to run the resulting headless Jamulus server you should only need `libqt5core5a`, `libqt5network5`, `libqt5xml5` and probably `libqt5concurrent5`. This may be useful for compiling/upgrading on one machine to run the binary on another (a Raspberry Pi, for example). - -* Note that if you want to compile a GUI client on one machine and run it on another (e.g. a Raspberry Pi) you only need the dependencies listed for a headless server, only with the JACK sound libraries. +Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time. --- From 9e9cca0df3534b4740ebfff2de00451709593258 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 13:59:30 +0100 Subject: [PATCH 10/32] Update COMPILING.md Remove unsafe reference to footnote on server install page. --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 132369f70b..1be6b05318 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -49,7 +49,7 @@ This puts the Jamulus binary into `/usr/local/bin`. * The "make clean" command is essential to remove the automatically generated Qt files which are present in the .tar.gz file and may not match the Qt version you are using. -* Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. In particular, have a look at the footnote for the headless build. +* Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. * As of version 3.5.3, Jamulus is no longer compatible with Qt4. From b13b249af783ee24399dc86821b53f68f7d2eb61 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 14:03:21 +0100 Subject: [PATCH 11/32] Update COMPILING.md Co-authored-by: ann0see <20726856+ann0see@users.noreply.github.com> --- COMPILING.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 1be6b05318..281742228a 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -41,7 +41,7 @@ qmake Jamulus.pro make clean make sudo make install -~~~ +``` This puts the Jamulus binary into `/usr/local/bin`. @@ -146,4 +146,3 @@ Schemes: Will build the file and make it available in `./Release/Jamulus.app` - From 34e2c5a259af7a87b2a6c644feb946718c28c54d Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 5 Apr 2021 16:30:30 +0100 Subject: [PATCH 12/32] Update COMPILING.md Remove Qt4 line. --- COMPILING.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 281742228a..4061d6e3cd 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -51,8 +51,6 @@ This puts the Jamulus binary into `/usr/local/bin`. * Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. -* As of version 3.5.3, Jamulus is no longer compatible with Qt4. - ### “Headless” server build From 7843d1a5a3839f3e6caa23ecef3e42c553955fcd Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Tue, 6 Apr 2021 08:04:18 +0100 Subject: [PATCH 13/32] Update COMPILING.md Add clarification re. build scripts. Fix code blocking, --- COMPILING.md | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 4061d6e3cd..04086534d9 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -1,4 +1,4 @@ -Jamulus can be compiled for Linux, Windows and macOS as follows. Alernatively, you may wish to use one of the contributed [installation scripts](https://github.com/jamulussoftware/installscripts). There are also reports from people who successfully compile and run Jamulus on BSDs. +Jamulus can be compiled for Linux, Windows and macOS as follows. Note also the contributed [installation scripts](https://github.com/jamulussoftware/installscripts) for use unattended installs. There are also reports from people who successfully compile and run Jamulus on BSDs. --- @@ -36,8 +36,7 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian ### Standard desktop build -~~~ -qmake Jamulus.pro +```qmake Jamulus.pro make clean make sudo make install @@ -60,11 +59,10 @@ Also, although not strictly necessary, we recommend using the headless flag to s Compile the sources to ignore the JACK sound library: -~~~ -qmake "CONFIG+=nosound headless" Jamulus.pro +```qmake "CONFIG+=nosound headless" Jamulus.pro make clean make -~~~ +``` To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](/wiki/Command-Line-Options), and [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. @@ -106,10 +104,9 @@ Most users will probably want to use this method: ## macOS You will need XCode and Qt as follows: -~~~ -brew install qt5 +```brew install qt5 brew link qt5 --force -~~~ +``` ### Generate XCode Project file @@ -121,22 +118,20 @@ brew link qt5 --force will prompt -~~~ -Targets: +```Targets: Jamulus Qt Preprocess Build Configurations: Debug Release -~~~ +``` If no build configuration is specified and `-scheme` is not passed then "Release" is used. -~~~ -Schemes: +```Schemes: Jamulus -~~~ +``` ### Build the project From 9e67be6e74b39194c18ddc5ccbaf6029dc8f2969 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Tue, 6 Apr 2021 08:11:08 +0100 Subject: [PATCH 14/32] Update COMPILING.md Tidy up headless build reqs. --- COMPILING.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 04086534d9..6d440b01e3 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -53,9 +53,10 @@ This puts the Jamulus binary into `/usr/local/bin`. ### “Headless” server build -Note that you don’t need to install the JACK package(s) for a headless build. If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, see the footnote. +Note that you don’t need to install the JACK package(s) for a headless build. If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server). + +Also, although not strictly necessary, we recommend using the headless flag to speed up the build process. Gentoo users may also be able to avoid installing some dependencies as a consequence. Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time. -Also, although not strictly necessary, we recommend using the headless flag to speed up the build process. Gentoo users may also be able to avoid installing some dependencies as a consequence. For more information [see footnote](#footnote). Compile the sources to ignore the JACK sound library: @@ -66,10 +67,6 @@ make To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](/wiki/Command-Line-Options), and [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. -### Notes - -Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time. - --- ## Windows From ea02f892ea5f27371b8a28d5526884ae8bd1cc06 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Tue, 6 Apr 2021 08:13:24 +0100 Subject: [PATCH 15/32] Update COMPILING.md Damn code block formatting again. --- COMPILING.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 6d440b01e3..81b5e29b5f 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -36,7 +36,8 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian ### Standard desktop build -```qmake Jamulus.pro +``` +qmake Jamulus.pro make clean make sudo make install @@ -60,7 +61,8 @@ Also, although not strictly necessary, we recommend using the headless flag to s Compile the sources to ignore the JACK sound library: -```qmake "CONFIG+=nosound headless" Jamulus.pro +``` +qmake "CONFIG+=nosound headless" Jamulus.pro make clean make ``` @@ -101,7 +103,8 @@ Most users will probably want to use this method: ## macOS You will need XCode and Qt as follows: -```brew install qt5 +``` +brew install qt5 brew link qt5 --force ``` @@ -115,7 +118,8 @@ brew link qt5 --force will prompt -```Targets: +``` +Targets: Jamulus Qt Preprocess @@ -126,7 +130,8 @@ Build Configurations: If no build configuration is specified and `-scheme` is not passed then "Release" is used. -```Schemes: +``` +Schemes: Jamulus ``` From 546b0a90674e393e054303a037ac34c05cc0a0d0 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Thu, 8 Apr 2021 18:56:08 +0100 Subject: [PATCH 16/32] Update COMPILING.md Remove make clean --- COMPILING.md | 1 - 1 file changed, 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 81b5e29b5f..9ae3023e04 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -63,7 +63,6 @@ Compile the sources to ignore the JACK sound library: ``` qmake "CONFIG+=nosound headless" Jamulus.pro -make clean make ``` From 368d16a0f55b946a0af8dcf8a86c94c91b4157f5 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Thu, 8 Apr 2021 18:59:25 +0100 Subject: [PATCH 17/32] Update COMPILING.md Remove make clean note --- COMPILING.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 9ae3023e04..f811cdf38e 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -38,18 +38,13 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian ``` qmake Jamulus.pro -make clean make sudo make install ``` This puts the Jamulus binary into `/usr/local/bin`. -#### Notes - -* The "make clean" command is essential to remove the automatically generated Qt files which are present in the .tar.gz file and may not match the Qt version you are using. - -* Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. +**Users of Raspberry Pi** You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. ### “Headless” server build From 5afba7250f4fb1100c8372f391c9f95269db579d Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 10 Apr 2021 09:03:43 +0100 Subject: [PATCH 18/32] Update COMPILING.md add distclean + explanation. Remove redundant Jamulus.pro --- COMPILING.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index f811cdf38e..4e94aa1584 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -37,12 +37,13 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian ### Standard desktop build ``` -qmake Jamulus.pro +make distclean +qmake make sudo make install ``` -This puts the Jamulus binary into `/usr/local/bin`. +`make distclean` is optional but ensures a clean build environment. `make install` is optional and puts the Jamulus binary into `/usr/local/bin`. **Users of Raspberry Pi** You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. @@ -57,8 +58,10 @@ Also, although not strictly necessary, we recommend using the headless flag to s Compile the sources to ignore the JACK sound library: ``` -qmake "CONFIG+=nosound headless" Jamulus.pro +make distclean # reccommended +qmake "CONFIG+=nosound headless" make +sudo make install # optional ``` To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](/wiki/Command-Line-Options), and [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. From da2daab63bd961ed5eee63e7a65814c020952c06 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 10 Apr 2021 19:39:35 +0100 Subject: [PATCH 19/32] Update COMPILING.md Co-authored-by: ann0see <20726856+ann0see@users.noreply.github.com> --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 4e94aa1584..bc2c164ee8 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -1,4 +1,5 @@ Jamulus can be compiled for Linux, Windows and macOS as follows. Note also the contributed [installation scripts](https://github.com/jamulussoftware/installscripts) for use unattended installs. There are also reports from people who successfully compile and run Jamulus on BSDs. +Android and iOS are not officially supported, therefore there are no instructions yet. --- @@ -137,4 +138,3 @@ Schemes: `xcodebuild build` Will build the file and make it available in `./Release/Jamulus.app` - From c558a62a459ee707e450929567de67cb2923d3b3 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 10 Apr 2021 19:51:46 +0100 Subject: [PATCH 20/32] Update COMPILING.md Put headless flag explanation first --- COMPILING.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index bc2c164ee8..4097e763c6 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -51,18 +51,17 @@ sudo make install ### “Headless” server build -Note that you don’t need to install the JACK package(s) for a headless build. If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server). - -Also, although not strictly necessary, we recommend using the headless flag to speed up the build process. Gentoo users may also be able to avoid installing some dependencies as a consequence. Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time. +Although not strictly necessary, we recommend using the headless flag to speed up the build process. Gentoo users may also be able to avoid installing some dependencies as a consequence. Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time. +Note that you don’t need to install the JACK package(s) for a headless build. If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server). Compile the sources to ignore the JACK sound library: ``` -make distclean # reccommended +make distclean ;# reccommended qmake "CONFIG+=nosound headless" make -sudo make install # optional +sudo make install ;# optional ``` To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](/wiki/Command-Line-Options), and [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. From 952011bc9f4fbd43d0efdddbc0d3dbc97cdc42f7 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Tue, 13 Apr 2021 20:52:33 +0100 Subject: [PATCH 21/32] Update COMPILING.md Update preamble. --- COMPILING.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 4097e763c6..85dfc60c0a 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -1,5 +1,9 @@ -Jamulus can be compiled for Linux, Windows and macOS as follows. Note also the contributed [installation scripts](https://github.com/jamulussoftware/installscripts) for use unattended installs. There are also reports from people who successfully compile and run Jamulus on BSDs. -Android and iOS are not officially supported, therefore there are no instructions yet. +## Points to note + +- Jamulus can be compiled for Linux, Windows and macOS. However, the preferred method of supporting these platforms is to use the binaries generated by the autobuild process in the Jamulus repository. +- For unattended installs, see the contributed [installation scripts](https://github.com/jamulussoftware/installscripts) +- There are reports from people who successfully compile and run Jamulus on BSDs. +- Android and iOS are not officially supported, therefore there are no instructions yet. --- From 5e61500b5ec0010d417e2c7e0b5d196f3c70a9ff Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 17 Apr 2021 08:29:40 +0100 Subject: [PATCH 22/32] Update COMPILING.md Add amends for Fedora 33 as per https://github.com/jamulussoftware/jamuluswebsite/pull/428 --- COMPILING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 85dfc60c0a..afab726d6b 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -31,7 +31,7 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian * qt5-qtdeclarative-devel * jack-audio-connection-kit-dbus -* libqt5concurrent5 +* libqt5concurrent5 (qt5-linguist for Fedora 33) * jack-audio-connection-kit-devel #### For all desktop distributions @@ -43,7 +43,7 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian ``` make distclean -qmake +qmake ;# qmake-qt5 on Fedora 33 make sudo make install ``` From 46051546c63bd5b7f2284f904fbcf8fac48bacc8 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 24 Apr 2021 07:22:10 +0100 Subject: [PATCH 23/32] Update COMPILING.md Remove repetition. Co-authored-by: Christian Hoffmann --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index afab726d6b..22c7923e01 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -55,7 +55,7 @@ sudo make install ### “Headless” server build -Although not strictly necessary, we recommend using the headless flag to speed up the build process. Gentoo users may also be able to avoid installing some dependencies as a consequence. Compiling with the headless flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time. +Although not strictly necessary, we recommend using the headless flag to avoid having to install some of the dependent packages, save some disk space and/or speed up your build time. Note that you don’t need to install the JACK package(s) for a headless build. If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server). From f563262dc05c00a14b8209157a2c678e41955461 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 24 Apr 2021 07:22:51 +0100 Subject: [PATCH 24/32] Update COMPILING.md Correct comment Co-authored-by: Christian Hoffmann --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 22c7923e01..b91d00b712 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -62,7 +62,7 @@ Note that you don’t need to install the JACK package(s) for a headless build. Compile the sources to ignore the JACK sound library: ``` -make distclean ;# reccommended +make distclean # recommended qmake "CONFIG+=nosound headless" make sudo make install ;# optional From 0c6c40e923b45b1ae226dc726145304e2585280b Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 24 Apr 2021 07:23:07 +0100 Subject: [PATCH 25/32] Update COMPILING.md Correct comment Co-authored-by: Christian Hoffmann --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index b91d00b712..cf8b26280a 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -65,7 +65,7 @@ Compile the sources to ignore the JACK sound library: make distclean # recommended qmake "CONFIG+=nosound headless" make -sudo make install ;# optional +sudo make install # optional ``` To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](/wiki/Command-Line-Options), and [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. From 91ba5db43559d98e5790643bdf89a01fca32de65 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 24 Apr 2021 07:23:21 +0100 Subject: [PATCH 26/32] Update COMPILING.md Correct comment Co-authored-by: Christian Hoffmann --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index cf8b26280a..31ec2ff823 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -43,7 +43,7 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian ``` make distclean -qmake ;# qmake-qt5 on Fedora 33 +qmake # qmake-qt5 on Fedora 33 make sudo make install ``` From f197d9fbd4d0de067597eb8490d61d01a9c974cf Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 24 Apr 2021 07:24:41 +0100 Subject: [PATCH 27/32] Update COMPILING.md Remove Rpi para --- COMPILING.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index 31ec2ff823..a286b0453d 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -50,9 +50,6 @@ sudo make install `make distclean` is optional but ensures a clean build environment. `make install` is optional and puts the Jamulus binary into `/usr/local/bin`. -**Users of Raspberry Pi** You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. - - ### “Headless” server build Although not strictly necessary, we recommend using the headless flag to avoid having to install some of the dependent packages, save some disk space and/or speed up your build time. From 4aba57ac1b419f8cf1920d3fc7c2c697eabb8e4a Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 25 Apr 2021 15:38:18 +0100 Subject: [PATCH 28/32] Update COMPILING.md Replace qt5-qtbase with libQt5Concurrent5 as per https://github.com/jamulussoftware/jamuluswebsite/pull/440 --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index a286b0453d..ed0978bc80 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -31,7 +31,7 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian * qt5-qtdeclarative-devel * jack-audio-connection-kit-dbus -* libqt5concurrent5 (qt5-linguist for Fedora 33) +* qt5-qtbase (qt5-linguist for Fedora 33) * jack-audio-connection-kit-devel #### For all desktop distributions From 7d95abd4693d1920a9f8a3cc737f22084ef8e067 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Mon, 26 Apr 2021 11:15:03 +0100 Subject: [PATCH 29/32] Update COMPILING.md Further Fedora dependency clarification --- COMPILING.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/COMPILING.md b/COMPILING.md index ed0978bc80..9bb1f0a900 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -27,12 +27,13 @@ On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian * qttools5-dev-tools * libjack-jackd2-dev -#### On Fedora +#### On Fedora 33+ * qt5-qtdeclarative-devel * jack-audio-connection-kit-dbus -* qt5-qtbase (qt5-linguist for Fedora 33) +* qt5-qtbase * jack-audio-connection-kit-devel +* qt5-linguist #### For all desktop distributions From e3531ac9a045365296ce390d79dd50890c238657 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Wed, 12 May 2021 23:06:47 +0100 Subject: [PATCH 30/32] Update COMPILING.md Clarify RPi OS. --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 9bb1f0a900..9460c298f1 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -18,7 +18,7 @@ For .zip [use this link](https://github.com/jamulussoftware/jamulus/archive/mast #### Install dependencies -On Ubuntu-based distributions 18.04+, Debian 9+ or 10 and Raspberry Pi Raspbian Buster release or later: +On Ubuntu-based distributions 18.04+, Debian 9+, and Raspberry Pi OS: * build-essential * qt5-qmake From a7b880e9e3853c0d900b44218b9aab3d3b54a381 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Thu, 27 May 2021 08:10:39 +0100 Subject: [PATCH 31/32] Update COMPILING.md iOS instructions from @ngocdh Co-authored-by: ann0see <20726856+ann0see@users.noreply.github.com> --- COMPILING.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/COMPILING.md b/COMPILING.md index 9460c298f1..5694eed5b2 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -139,3 +139,9 @@ Schemes: `xcodebuild build` Will build the file and make it available in `./Release/Jamulus.app` + +## iOS +* Make sure to install qt5 with the Qt Installer (not homebrew), and explicitly select iOS when choosing the Qt version +* Run `/path/to/qt/5.15.2/ios/bin/qmake -spec macx-xcode Jamulus.pro` +* Open the generated .xcodeproject in XCode, check the Signing & Capabilities and configure a team +* To run on a iOS device, build and run on the device, you'll have first trust your developer profile in device's Settings. From 5432ce8ea5541e6906b5b129b511ab9361dd37ac Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 29 May 2021 07:38:02 +0100 Subject: [PATCH 32/32] Update COMPILING.md Co-authored-by: ann0see <20726856+ann0see@users.noreply.github.com> --- COMPILING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COMPILING.md b/COMPILING.md index 5694eed5b2..e9a90ad161 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -3,7 +3,7 @@ - Jamulus can be compiled for Linux, Windows and macOS. However, the preferred method of supporting these platforms is to use the binaries generated by the autobuild process in the Jamulus repository. - For unattended installs, see the contributed [installation scripts](https://github.com/jamulussoftware/installscripts) - There are reports from people who successfully compile and run Jamulus on BSDs. -- Android and iOS are not officially supported, therefore there are no instructions yet. +- Android and iOS are not officially supported. ---