From: IOhannes m zmölnig (Debian/GNU) Date: Wed, 30 Aug 2023 07:23:08 +0000 (+0200) Subject: New upstream version 2.0.1+ds X-Git-Tag: archive/raspbian/2.5.1+ds-1+rpi1~1^2~9^2~9 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=adc722204460b5030010a334a9cf135b060aacfb;p=jacktrip.git New upstream version 2.0.1+ds --- diff --git a/CMakeLists.txt b/CMakeLists.txt index e0d803f..a4e80a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,14 +188,13 @@ if (NOT nogui) src/gui/vsApi.cpp src/gui/vsAuth.cpp src/gui/vsDeviceCodeFlow.cpp - src/gui/vsInit.cpp + src/gui/vsDeeplink.cpp src/gui/vsQuickView.cpp src/gui/vsServerInfo.cpp src/gui/vsPing.cpp src/gui/vsPinger.cpp src/gui/vsDevice.cpp - src/gui/vsAudioInterface.cpp - src/gui/vsUrlHandler.cpp + src/gui/vsAudio.cpp src/gui/vsWebSocket.cpp src/gui/vsPermissions.cpp src/gui/qjacktrip.qrc diff --git a/LICENSE.md b/LICENSE.md index 517bd08..39b5c1f 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,10 +1,14 @@ # JackTrip License -Copyright © 2020 Juan-Pablo Caceres, Chris Chafe. -SoundWIRE group at CCRMA, Stanford University. -Graphical user interface originally released as QJackTrip, +Copyright © 2008-2020 Juan-Pablo Caceres, Chris Chafe. +SoundWIRE group at CCRMA, Stanford University. + +Classic mode graphical user interface originally released as QJackTrip, Copyright © 2020 Aaron Wyatt +Virtual Studio interface and integration +Copyright © 2022-2023 JackTrip Labs, Inc. + JackTrip project consists of files under MIT and GPL licenses, indicated in the header of individual files. Early versions of JackTrip were licensed under MIT. diff --git a/build b/build index 0e9c128..351873e 100755 --- a/build +++ b/build @@ -112,10 +112,10 @@ if [[ $platform == 'linux' ]]; then echo "Using qmake-qt5" QCMD=qmake-qt5 elif hash qmake 2>/dev/null; then #in case qt was compiled by user - echo "Using qmake" - QCMD=qmake -fi -MCMD=make + echo "Using qmake" + QCMD=qmake + fi + MCMD=make elif [[ $platform == 'macosx' ]]; then QCMD=qmake # if qmake is not in path, try homebrew qt5 @@ -145,6 +145,15 @@ fi QSPEC=`$QCMD -query | grep QMAKE_SPEC` QSPEC=${QSPEC##QMAKE_SPEC:} +# check spec for windows to update make command +if [[ $QSPEC == "win32-msvc" ]]; then + MCMD=nmake + JOM=$(which jom.exe) + if [[ "x$JOM" != "x" ]]; then + MCMD=$JOM + fi +fi + # check for RtAudio if [[ $RTAUDIO == 1 ]]; then pkg-config --exists rtaudio 2> /dev/null @@ -183,7 +192,11 @@ $QCMD -spec $QSPEC $CONFIG "${UNKNOWN_OPTIONS[@]}" $PRO_FILE if [[ $clean == 1 ]]; then $MCMD clean fi -$MCMD -j$jobs release +if [[ "$MCMD" == "nmake" ]]; then + $MCMD release +else + $MCMD -j$jobs release +fi if [[ "$install" == 1 ]]; then echo "*** Installing JackTrip ***" echo "We need elevated privileges to install JackTrip in the system location" diff --git a/build-aux/flatpak/org.jacktrip.JackTrip.json b/build-aux/flatpak/org.jacktrip.JackTrip.json index 11ceb92..bfbfef0 100644 --- a/build-aux/flatpak/org.jacktrip.JackTrip.json +++ b/build-aux/flatpak/org.jacktrip.JackTrip.json @@ -1,16 +1,20 @@ { "app-id": "org.jacktrip.JackTrip", "runtime": "org.kde.Platform", - "runtime-version": "5.15-22.08", + "runtime-version": "6.4", "sdk": "org.kde.Sdk", + "base": "io.qt.qtwebengine.BaseApp", + "base-version": "6.4", "command": "jacktrip", "finish-args": [ "--share=ipc", - "--socket=x11", + "--socket=wayland", + "--socket=fallback-x11", "--device=dri", "--share=network", "--filesystem=xdg-run/pipewire-0", - "--env=PIPEWIRE_LATENCY=256/48000", + "--env=PIPEWIRE_LATENCY=128/48000", + "--env=QML_IMPORT_PATH=/app/qml", "--env=QT_QUICK_CONTROLS_STYLE=universal" ], "cleanup": [ @@ -23,15 +27,15 @@ "name": "jacktrip", "buildsystem": "meson", "config-opts": [ - "-Dbuildtype=debugoptimized" + "-Dbuildtype=debugoptimized", + "-Dpkg_config_path=/app/lib/x86_64-linux-gnu/pkgconfig" ], "sources": [ { - "type": "git", - "disable-submodules": true, - "url": "https://github.com/jacktrip/jacktrip/" + "type": "dir", + "path": "../../" } ] } ] -} \ No newline at end of file +} diff --git a/docs/Build/Linux.md b/docs/Build/Linux.md index c8d3af8..4b56d37 100644 --- a/docs/Build/Linux.md +++ b/docs/Build/Linux.md @@ -7,28 +7,45 @@ directory of the project. ## Dependencies - C++ compiler -- Qt5 +- Meson +- Qt5, or Qt6 (required for Virtual Studio) Optional: -- JACK (preferred) or RtAudio (not fully functional) +- JACK (preferred) or RtAudio (for clients only) - help2man for generating the manpage -### Fedora +### Fedora (Qt5) ```sh dnf install qt5-qtbase-devel qt5-qtnetworkauth-devel qt5-qtwebsockets-devel qt5-qtquickcontrols2-devel qt5-qtsvg-devel dnf groupinstall "C Development Tools and Libraries" dnf groupinstall "Development Tools" -dnf install "pkgconfig(jack)" rtaudio-devel git help2man +dnf install "pkgconfig(jack)" rtaudio-devel git help2man python3-jinja2 +``` + +### Fedora (Qt6) +```sh +dnf install qt6-qtbase-devel qt5-qtnetworkauth-devel qt5-qtwebsockets-devel qt5-qtquickcontrols2-devel qt5-qtsvg-devel qt6-qtwebengine-devel qt6-qtwebchannel-devel qt6-qt5compat-devel +dnf groupinstall "C Development Tools and Libraries" +dnf groupinstall "Development Tools" +dnf install "pkgconfig(jack)" rtaudio-devel git help2man python3-jinja2 ``` Clone the git repo with submodules and run `./build install` in the project directory or use QtCreator to compile. -### Ubuntu and Debian/Raspbian +### Ubuntu and Debian/Raspbian (Qt5) +```sh +apt install --no-install-recommends build-essential autoconf automake libtool make libjack-jackd2-dev git help2man python3-jinja2 +apt install qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake qttools5-dev libqt5svg5-dev libqt5websockets5-dev qtdeclarative5-dev qtquickcontrols2-5-dev +``` + +### Ubuntu and Debian/Raspbian (Qt6) ```sh -apt install --no-install-recommends build-essential autoconf automake libtool make libjack-jackd2-dev git help2man -apt install qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake qttools5-dev libqt5svg5-dev libqt5networkauth5-dev libqt5websockets5-dev qtdeclarative5-dev qtquickcontrols2-5-dev +apt install --no-install-recommends build-essential autoconf automake libtool make libjack-jackd2-dev git help2man libclang-dev libdbus-1-dev libdbus-1-dev python3-jinja2 +apt install qt6-base-dev qt6-base-dev-tools qmake6 qt6-tools-dev qt6-declarative-dev qt6-webengine-dev qt6-webview-dev qt6-webview-plugins libqt6svg6-dev libqt6websockets6-dev libgl1-mesa-dev +# for GUI builds +apt install libfreetype6-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libx11-xcb-dev libdrm-dev libglu1-mesa-dev libwayland-dev libwayland-egl1-mesa libgles2-mesa-dev libwayland-server0 libwayland-egl-backend-dev libxcb1-dev libxext-dev libfontconfig1-dev libxrender-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev '^libxcb.*-dev' libxcb-render-util0-dev libxcomposite-dev libgtk-3-dev apt install librtaudio-dev # if building with RtAudio ``` @@ -37,9 +54,7 @@ directory or use QtCreator to compile. ### Building and Installation instructions -For other Linux distributions, install the dependencies listed above. Clone the -git repo and run `./build install` (or `./build` to skip installation) in the -project directory, or use QtCreator to compile. +For other Linux distributions, install the dependencies listed above. To clone the repo in the Terminal: ```sh @@ -52,65 +67,59 @@ Next, navigate to the cloned repository: $ cd jacktrip ``` -JackTrip provides a build script designed to simplify the build process and -providing a number of options. To list them, run: -```sh -$ ./build -h -``` -This should print: -```sh -usage: - ./build [noclean nojack rtaudio nogui static install [-config static]] +JackTrip uses meson. To configure a build directory, use `meson setup` with +the following parameters: - options: - noclean - do not run "make clean" first - nojack - build without jack - rtaudio - build with rtaudio - nogui - build without the gui - static - build with static libraries - weakjack - build with weak linking of jack libraries - install - install jacktrip in system location (uses sudo) -``` +* `rtaudio`: Enabled this to build with support for the RtAudio backend. + If an existing installation is found, it will be used. Otherwise, meson + uses a subproject to download and install the latest supported release. + JackTrip supports both RtAudio v5 and v6. -To just compile JackTrip using the build script, run: -```sh -$ ./build -$ cd builddir -$ ls -``` +* `jack`: Enable this to link directly with libraries for the Jack Audio + Toolkit. JackTrip will fail if these cannot be found at runtime. -You should see a `jacktrip` in this folder. +* `weakjack`: Enable this to build with support for the Jack Audio Toolkit, + with support for dynamically loading the libraries at runtime. JackTrip + will still work if they cannot be found. This requires `rtaudio` and + uses a git submodule. -To compile **and install** using the build script, run: -```sh -$ ./build install -# enter your password when prompted -``` +* `nogui`: Build without support for a graphical user interface (this + also disables support for Virtual Studio). Only basic command line + features will be included. This requires fewer dependencies, and + supports static builds. -If the build script doesn't work, try running qmake directly. You'd need to have -qmake in your `$PATH`. Then you can build with: +* `novs`: Build without support for Virtual Studio. Virtual Studio + requires Qt6 with the WebEngine and WebChannel libraries installed. -```sh -$ mkdir builddir -$ cd builddir -$ qmake ../jacktrip.pro -$ make release -$ sudo make release-install # to install JackTrip system-wide -``` +* `vsftux`: Skip the "Yes" / "No" first time run screen asking users if + they would like to use the Virtual Studio interface. Classic mode can + still be selected at startup, and can be used at any time. + +* `noupdater`: Build without support for automatic updates. This is + implied and has no effect when building for Linux. + +* `nofeedback`: Build without support for feedback detection. This + feature is optional, and uses the SimpleFFT third party library. -You can pass configuration options to qmake with `-config