ソースコード
ソースコード はVyOSオーガニゼーションの元、githubにホストされています。: github.com/vyos.
ソースコードの構造
ソースコードはGitのサブモジュールに分割されます。サブモジュールは、メインプロジェクトからそれらにアクセスできるようにしつつ別々のGitリポジトリにサブプロジェクトを維持するための仕組みです。
VyOSは複数の独立のパッケージで構成され、それらのいくつかは、定期的にアップストリームと同期しているので、単一のリポジトリの下でソース全体を維持することは非常に不便で時間がかかります。
技術的には下記のようになります:
build-iso/ .git/ .gitmodules pkgs/ pkg-foo/ .git/ pkg-bar/ .git/
.gitmodulesはサブモジュールのリストを保持します。基本的には手動で変更する必要はありません。
build-is.gitをクローンするとき、pkgs/ サブディレクトリは空です。その内容は、別のリモートリポジトリに格納されます。
サブモジュールについてのモードは git book または "man git-submodule" でより詳しく説明されています。
すべてのサブモジュールはDebianパッケージ形式になっています。サブモジュールとパッケージは交換可能です。
ソースコードのクローニング
上記により、最初にメインのリポジトリ(build-iso.git)をクローンしなくてはいけません。そのリポジトリには、ISOのビルドスクリプトが含まれており、サブモジュールのコンテナとして機能します。
git clone https://github.com/vyos/build-iso.git
パッケージを変更するときは、サブモジュールを初期化およびアップデートをする必要があります。vyatta-cfg-systemを変更したいときは下記のように実行します。
git submodule update --init pkgs/vyatta-cfg-system
その後、vyatta-cfg-systemのソースコードを pkgs/vyatta-cfg-system 以下に持てます。
ブランチ
それぞれの新規のVyOSはブランチを持っています。version history で現在のリリースが確認できます。
ローカルコピーにブランチを追加する場合(例: "hydrogen" ブランチ)
git branch hydrogen --track origin/hydrogen git checkout hydrogen
build-iso リポジトリと変更しようとするサブモジュール両方でチェックアウトを実行する必要があります。
サブモジュールの構築
パッケージに加えられた変更をテストする準備ができたら、トップレベルディレクトリから同様に簡単に構築することができます。
[email protected]: ~/build-iso$ make vyatta-cfg-system
ビルドが成功したら、.debファイルが pkgs/ ディレクトリ以下に見えます。
リモートへの変更のプッシュ
あなたが(まだ)VyOSのアップストリームにに直接コミットする権限を持っていない場合、githubの上でコードを維持し、パッチを取り込んでもらうためにプルリクエストを使用します。最良の手順は、おそらく次のようになります:
- アップストリームからbuild-iso.git をクローン
- サブモジュールを初期化
- あなたのGitHubのアカウントに変更しようとしているパッケージをフォーク
- サブモジュール内の .git/config のパスをリモートに変更