このプロジェクトについて
## このリポジトリの内容
`nx_open`には、Network Optix Meta Platformのオープンソースコンポーネント、つまりPowered-by-Nx製品(Nx Witness Video Management System (VMS)を含む)の構築に使用されるソースコードと仕様が含まれています。このリポジトリから構築可能な主要コンポーネントはVMSデスクトップクライアントです。Nx Kitライブラリ(`artifacts/nx_kit/`)はデスクトップクライアントの一部ですが、単独で使用することもできます。詳細はそのreadmeを参照してください。
特に記載がない限り、ほとんどのファイルはMozilla Public License 2.0の下でライセンスされています。ライセンスの全文は`licenses/license_mpl2.md`にあります。バンドルされているサードパーティのオープンソースコンポーネントの完全なリストは、プロジェクトのOpen Source Software Disclosureページに公開されています。
## サポートされているプラットフォーム
- Windows 10 x64(Microsoft Visual Studio)
- Linux Ubuntu 20.04、22.04、24.04(GCCまたはClang)x64、ARM 32/64(Linux x64でのクロスコンパイルによる)
- macOS Monterey 12.6.3(Clangを使用するXcode)x64およびApple M1/M2
## ビルドの前提条件
- Python 3.8以上が`PATH`上で`python`として利用可能であり、macOS/Ubuntuでは`python3`としても利用可能であること
- Pipが`PATH`上にあり、ビルドで使用されるインタープリタ用にインストールされていること
- CMake、Ninja、Conanは、`master`ブランチの`requirements.txt`からpipを使用してインストールすることを推奨します
- Linux: ビルドおよび実行時の依存関係は、CMakeで`-DinstallSystemRequirements=ON`を指定してインストールします。コンパイラ自体はシステムから取得するのではなく、Conanアーティファクトとして取得されます
- Windows: 「C++によるデスクトップ開発」ワークロードと「C++ CMake tools for Windows」コンポーネントを含むVisual Studio 2022 Community Edition
- macOS: Xcode Command Line Tools 14.2以上、およびApple M1/M2ではRosetta 2
## デスクトップクライアントのビルド
クライアントのGUIテキストとグラフィックは、VMSブランディングを定義するカスタマイゼーションパッケージ(zipファイル)から取得されます。プレースホルダーを含むデフォルトのNx-MetaブランドのパッケージはConanから取得されます。カスタムパッケージはNx Meta Developer Portalで生成できます。
便利なスクリプト`build.sh`(Linux/macOS)と`build.bat`(Windows)は、CMakeの設定とビルド段階をラップします。これらは、リポジトリルートの兄弟ディレクトリに`-build`サフィックスを付けたビルドディレクトリを作成します。通常の実行では、`nx_open-build/bin/`に実行ファイルがあるクリーンなDebugビルドが生成されます。`-DdeveloperBuild=OFF`を指定すると、`nx_open-build/distrib/`に配布パッケージと単体テストアーカイブを含むReleaseビルドが生成されます。カスタムパッケージは`-DcustomizationPackageFile=<customization.zip>`で指定でき、その`description.json`のidはサーバーのものと一致している必要があります。インクリメンタルビルドはスクリプトを再実行するだけです。生成は必要に応じて自動的に再トリガーされます。クロスコンパイルでは、`linux_x64`、`linux_arm64`、`linux_arm32`、`macos_x64`、`macos_arm64`などの値を持つ`-DtargetDevice=`を使用します。Visual Studio IDEでのビルドとデバッグは、コマンドラインから生成段階を実行した後にサポートされます。`NX_CONAN_DOWNLOAD_CACHE`を設定すると、クリーンビルド時にアーティファクトを再ダウンロードすることを回避できます。
## 署名
Windowsでは、実行ファイルと配布ファイルは、`signtool.py`を使用してPKCS#12発行元証明書で署名できます。これはYAMLファイル(証明書パス、パスワード、オプションのタイムスタンプサーバー)で設定され、`-DsigntoolConfig=`で有効になります。自己署名テスト証明書は、提供されているバッチスクリプトで生成できます。Linuxでは署名は不要で、ツールも提供されていません。スタンドアロンのmacOS署名ツールはまだ開発中と説明されています。
## クライアントの実行とサーバー互換性
デスクトップクライアントは、ビルドディレクトリから直接実行されます。Windowsでは、PATHやその他の変数を設定するために、最初に`activate_run.bat`(Conanによって生成)を実行する必要があります。`deactivate_run.bat`で元に戻します。
VMSサーバーのソースは公開されていないため、このリポジトリからビルドされたクライアントは、Nx Meta VMSプレビューリリースを含む公開VMSリリースから取得した互換性のあるサーバーにのみ接続できます。互換性が保証されるのは、クライアントがサーバーと同じコミットからビルドされた場合のみで、これは`vms/4.2/12345_release_all`などのgitタグで識別されます。同じブランチの後続のコミットからのクライアントは、しばらくは動作し続ける可能性がありますが、互換性が失われる可能性があります。クライアントとサーバーは、同じカスタマイゼーションIDを持つカスタマイゼーションパッケージも使用する必要があります。ビルドシステムは、生成中にgitタグから互換性のあるサーバーバージョンを導出しようとします。`-DbuildNumber=`でこれを上書きでき、`-DbuildNumber=AUTO`で自動検出に戻します。
自動VMS更新は、オープンソースのデスクトップクライアントでは無効になっています。これは、カスタムビルドがNx製のビルドで上書きされるためです。管理者はそのような更新を強制することはできます。カスタム更新サーバーとパッケージは技術的に可能であり、手順やツールが将来提供される可能性があります。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.