初期ではパッケージの切り替えしかできませんでしたが、現在は大幅に仕様が変更されています。
-以下は2020年3月26日チャンネルの仕様です。
+以下は2020年4月14日現在でのチャンネルの仕様です。
## スクリプトにチャンネルを認識させる
## チャンネル名について
-チャンネル名は基本的には`channels`内のディレクトリ名ですが、いくつかの例外があります。
+チャンネル名は基本的には`channels`内のディレクトリ名です。
+ディレクトリ名に使用できる全ての文字はチャンネル名に利用することができますが、空白文字や全角文字を入れた場合、一部の環境で正常に動作しない可能性が有ります。
+また、チャンネル名はスクリプト内で扱う関係上、18文字以内にすることが望ましいです。(それ以上の文字数ではヘルプでチャンネル名が正常に表示されません。)
+
もしディレクトリ名が`.add`で終了する場合、チャンネル名は`.add`の前の文字列になります。
これは、Gitの管理から除外し、カスタマイズした独自のチャンネルを追加するためのものです。
最終的に引数として使用できるチャンネル名は`./build -h`を実行して確認して下さい。
各チャンネルの`airootfs`で、`/root/customize_airootfs_<チャンネル名>.sh`といゆファイルが配置された場合、ビルドスクリプトは、`customize_airootfs.sh`が実行された後に実行します。
もしrootfsの設定を変更したい場合、このファイルを作成して下さい。
-#### 注意
-
-もしチャンネルのディレクトリに`.add`がついている場合、必ずスクリプトのファイル名にも`.add`をつけてください。そうでないとスクリプトが実行されません。
### packages
このディレクトリ内に配置された、ファイル名が`.x86_64`で終わるがパッケージリストとして読み込まれます。
反対に日本語が有効化されていない場合、スクリプトは`non-jp.x86_64`を使用します。
+#### 除外リスト
+もしあなたが`share`チャンネルのパッケージでどうしてもインストールしたくないパッケージがある場合、`packages`ディレクトリ内に`exclude`というファイルを作成し、その中にパッケージを記述することでパッケージを除外することができます。
+例えば`share`で必ずインストールされる`alterlinux-calamares`をインストールしたくない場合、そのチャンネルの`exclude`にパッケージ名を追加することでインストールされなくなります。
+(その場合は各チャンネルのcustomize_airootfsで不要なファイルを削除して下さい。)
+パッケージの記述方法はパッケージリストと同様で、1行で1つのパッケージとして扱い、`#`から始まる行はコメントとして扱われます。
+
+除外できないパッケージも存在します。
+スクリプトによって強制的にインストールされるパッケージ(`efitools`など)は除外リストに関係なくインストールされます。
+
+`channels/share/packages/exclude`は、上記のスクリプトによってインストールされるパッケージの一覧が記述されています。
+これは作業ディレクトリに正確にログを記録するためです。
+
+
### `description.txt`
これはチャンネルの説明を記述したテキストファイルです。`channels/<channel_name>/description.txt`に配置されます。
このファイルは必須ではありません。このファイルが無い場合、ヘルプには`This channel does not have a description.txt.`と表示されます。