この記事では新しくなったAlexandriteOSのソースコードの構造について書こうと思います。
AlexandriteOSのモジュール構成
isoイメージ
↑ ↑
↑ openSUSEパッケージ
↑
独自パッケージ
↑ ↑
↑ ファーストパーティモジュール
↑
サードパーティモジュール
isoイメージ: 完成品のイメージファイルです。各種のパッケージから構成されbeaverレシピを使用しビルドされます。
パッケージ: AlexandriteOSの独自のパッケージとopenSUSEのパッケージに分かれます。
openSUSEのパッケージはopenSUSEのリポジトリからそのままインストールするパッケージのことです。大半のソフトウェアはここから提供されます。
独自パッケージはAlexandriteOSのインフラを使用して配信されるAlexandriteOS固有のファイルを含むパッケージのことです。AlexandriteOS独自の機能やAlexandriteOSの不具合に対するアップデートはここから提供されます。
モジュール: AlexandriteOS独自のパッケージはモジュールという単位から成り立ちます。これはエンドユーザーには関係ありませんがビルドの際はこのモジュールという単位を使用します。例えば alexandrite-shell
(新名mriya-shell
) というパッケージは以下のモジュールから成り立っています。
なぜわざわざモジュールに分けるのか。これには理由があります。AlexandriteOSは様々なファイルが複雑に依存しあっています。また上流のものに少し手を加えたものが多くこれらを通常の個別のパッケージとして配布すると様々な不具合や誤解の原因になります。そこで一つのパッケージにまとめる必要があるのです。
しかしここで問題が発生します。パッケージを一つにまとめた場合そのパッケージのメンテナンスの手間が大幅に上がります。そこで新たにモジュールという単位を作りリポジトリを分割している訳です。
以上小ネタなのか備忘録なのか開発記なのかよく分からない記事になってしましたが色々工夫があるのだと知っていただければ幸いです。