Git Product home page Git Product logo

hive's Introduction

Hive

Copyright (C) 2017-2023, Emilien Vallot, Christophe Calmejane and other contributors

What is Hive

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

Precompiled binaries for macOS and Windows can be found here.

Minimum requirements for compilation

  • CMake 3.22
  • Qt 6.5.2 (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 14, g++ 11.0
  • [Optional, for cross-compilation] Docker / Docker Compose

Compilation

  • Check and install la_avdecc compilation requirements for your system
  • Clone this repository
  • Copy .hive_config.sample to .hive_config, then edit it for installer customization
  • Run the setup_fresh_env.sh script that should properly setup your working copy
  • Run the gen_cmake.sh script with whatever optional parameters required (run gen_cmake.sh -h to display the help)
    • [Linux only] For Ubuntu users, install the qtbase5-dev package and make sure the major and minor version matches what Hive requires. You can alternatively use the -qtvers and -qtdir options when invoking gen_cmake.sh if you want to use a different Qt version.
  • Go into the generated output folder
  • Compile everything
    • [macOS/Windows] Open the generated solution and compile from the IDE
    • [Linux] Run cmake --build . --config Release

Cross-compilation using Docker

  • Requires docker and docker-compose to be installed
  • Go to the Docker folder
  • Build the docker builder image: docker-compose build
  • Generate the build solution: docker-compose run --rm gen_cmake -debug -c Ninja -qtvers 6.5.2 -qtdir /usr/local/Qt-6.5.2/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

Installer generation

  • Run the gen_install.sh script on either Windows or macOS (not supported on Linux yet)

MacOS notarization

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:

To save a profile in your keychain, do the following:

  • xcrun notarytool store-credentials YourProfileName --apple-id YourAccountEmailAdrs --password YourAppSpecificPwd --team-id YourTeamID

MacOS runtime specificities

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.

Linux runtime specificities

Before running Hive on a linux system, you must give the program access to RAW SOCKETS creation. The easiest way to do it is to run the following command (replace /path/to/Hive with the actual path to the binary):

sudo setcap cap_net_raw+ep /path/to/Hive

Versioning

We use SemVer for versioning.

License

See the COPYING and COPYING.LESSER files for details.

Contributing code

Please read this file

Third party

Hive uses the following 3rd party resources:

hive's People

Contributors

christophe-calmejane avatar chahr avatar envt avatar me-egits avatar fharmuth avatar zonque avatar florob avatar nicolaus-starke avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.