Copyright (C) 2017-2026, Emilien Vallot, Christophe Calmejane and other contributors
Hive is a pro audio Avdecc (IEEE Std 1722.1) controller. Hive allows you to inspect, configure and connect AVB Entities on your network, specifically targeting AVnu Milan compatible devices (but not only).
Precompiled binaries for macOS and Windows can be found here.
Note: Starting with Hive 1.3, the precompiled Mac binaries require macOS 12 or later to run (both Intel and Apple Silicon).
- CMake 3.29
- Qt 6.8.3 (although Qt 5.15.2 was supported in the past, it's no longer guaranteed to compile correctly)
- Visual Studio 2022 17.4 (using platform toolset v143), Xcode 26, g++ 11.0
- [Optional, for cross-compilation] Docker / Docker Compose
- Check and install la_avdecc compilation requirements for your system
- Clone this repository
- Copy
.hive_config.sampleto.hive_config, then edit it for installer customization - Run the
setup_fresh_env.shscript that should properly setup your working copy - Run the
gen_cmake.shscript with whatever optional parameters required (run gen_cmake.sh -h to display the help)- [Linux only] For Ubuntu users, install the
qt6-base-devpackage and make sure the major and minor version matches what Hive requires. You can alternatively use the-qtversand-qtdiroptions when invokinggen_cmake.shif you want to use a different Qt version (but there is no guarantee it will compile).
- [Linux only] For Ubuntu users, install the
- Go into the generated output folder
- Compile everything
- [macOS/Windows] Open the generated solution and compile from the IDE
- [Linux] Run
cmake --build .
Note: If you are using CMake >= 4.0, you have have to pass extra parameters to gen_cmake.sh (eg: add this at the end of the command line: -- -DCMAKE_POLICY_VERSION_MINIMUM=3.5)
- Requires
dockeranddocker-composeto be installed - Go to the
Dockerfolder - Build the docker builder image: docker-compose build
- Generate the build solution: docker-compose run --rm gen_cmake -debug -c Ninja -qtvers 6.8.3 -qtdir /usr/local/Qt-6.8.3/lib/cmake -- -DBUILD_HIVE_TESTS=FALSE
- You may change parameters to your convenience
- Build the solution: docker-compose run --rm build --target install
- If you want to run the application, you must authorize X connections to your display: xhost local:root
- You can then run the application from the docker container: APP=Hive-d docker-compose run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --rm run
- Windows users need to have a running X Server:
- Install VcXsrv
- Start it with access control disabled
- Find the IP address of your WSL network interface using ipconfig
- Set a DISPLAY environment variable with value WSL_Interface_IP:0
- macOS users need to have a running XQuartz:
- Install XQuartz
- Start it and make sure it's not running with the Allow connections from network clients option (XQuartz -> Preferences -> Security)
- Change the above command line to APP=Hive-d docker-compose run -e DISPLAY=host.docker.internal:0 --rm run
- Run the
gen_install.shscript on either Windows or macOS (not supported on Linux yet)
On Linux, Hive can be distributed as an AppImage, a self-contained portable executable that works on most Linux distributions without installation.
The following packages must be available on the build system (or Docker image):
filepatchelfsquashfs-toolslibfuse2
Run the gen_appimage.sh script with the required parameters (run gen_appimage.sh -h to display the help):
./gen_appimage.sh -qtvers 6.8.3 -qtdir /path/to/Qt/6.8.3/lib/cmakeThe generated AppImage will be placed in the _deliverables/ folder.
You can also generate the AppImage using the Docker builder:
cd Docker
docker-compose run --rm shell
# Inside the container:
cd /home/builder/sources
bash ./gen_appimage.sh -o ../builds/Hive-appimage -d ../builds/Hive-deliverables -qtvers 6.8.3 -qtdir /usr/local/Qt-6.8.3/lib/cmakeUnlike a regular build, setcap cannot be applied directly to an AppImage file (the binary runs from a FUSE mount or a temporary extraction directory, neither of which preserves file capabilities). Additionally, when a binary has file capabilities, the Linux kernel activates secure execution mode (AT_SECURE) which rejects $ORIGIN in DT_RPATH/DT_RUNPATH and clears LD_LIBRARY_PATH, preventing library resolution.
To solve this, the Hive AppImage includes a custom launcher that handles everything automatically on first run:
- It extracts the application to
~/.local/share/Hive/(persistent, survives reboots) - It rewrites all library RPATHs from
$ORIGINto absolute paths (using a bundledpatchelf), so that library resolution works even underAT_SECURE - It creates a
.desktopentry so Hive appears in your application menu with its icon - It prompts for your administrator password (via
pkexec) to grantcap_net_rawon the binary (for network capture) - On subsequent launches (from the AppImage or the application menu), Hive starts directly
If the capability prompt is skipped, Hive will still run but without network capture. You can set it up later:
sudo setcap cap_net_raw+ep ~/.local/share/Hive/usr/bin/HiveWhen a new version of the AppImage is launched, the persistent install is automatically updated and capabilities are re-requested.
Note: After the first run, Hive is available in your application menu. You can safely delete the .AppImage file — to update later, simply download and run a new AppImage.
If you want to generate a proper installer that can be distributed (outside the AppStore), you need to notarize the installer. The gen_install.sh script can do this for you if you define notarization_profile in the config file.
You need to create a notarization profile that will be saved in your keychain (just once). For that you'll need your Apple team identifier, Apple account ID, and to generate an application-password (you cannot use your Apple ID account password for security reasons). To generate an application-password, do the following:
- Sign in to your Apple ID account page (https://appleid.apple.com/account/home)
- In the Security section, click Generate Password below App-Specific Passwords
- Follow the steps on your screen
To save a profile in your keychain, do the following:
xcrun notarytool store-credentials YourProfileName --apple-id YourAccountEmailAdrs --password YourAppSpecificPwd --team-id YourTeamID
Before running Hive on a macOS system, you must install Install ChmodBPF.pkg which can be found in /Applications/Hive <Version>/. If you have previously installed Wireshark or LANetworkManager, then you don't need this step.
Before running Hive on a linux system, you must give the program access to RAW SOCKETS creation.
If using the AppImage, this is handled automatically on first launch (see AppImage generation above).
If using a local build, run the following command (replace /path/to/Hive with the actual path to the binary):
sudo setcap cap_net_raw+ep /path/to/HiveWe use SemVer for versioning.
See the COPYING and COPYING.LESSER files for details.
Hive uses the following 3rd party resources:
- L-Acoustics (open source) Avdecc libraries
- Qt
- Material Icons
- Discount Markdown
- BugTrap
- Sparkle and WinSparkle
- ChmodBPF macOS script from Wireshark