refpolicy

構成要素を洗い直してみる。

  • サポートプログラム
  • Makefile
  • モジュール
    • ソースコードレベルのモジュールのようだ。
      • ifファイル、teファイル, fcファイルの組み合わせのことをそう呼ぶ。
    • policy/module以下に配置
  • マクロ
    • 以下参照

マクロ

マクロには3通りあるらしい。

  • 1) interface (インターフェース)

各アプリのifファイルの「interface」で定義。

  • 2) template(テンプレート)

各アプリのifファイルの「template」で定義

  • 3) support(サポート)

policy/supportディレクトリ以下の、.sptファイルで定義

が、interfaceとtemplateの違いについては、どこにも記述がない!
困った。例を当たって推測してみるしかない。

  • interfaceの定義

name_of_interface(domain)
のように、マクロの引数が、ドメイン名か、タイプであるもの。
かつ、name_of_interfaceの中で、依存関係の記述がある。

  • templateの定義

templateは、
name_of_template(domain_prefx)
のように、マクロの引数が、タイプから_tを除いたものであるもの。
こういうマクロは、マクロ内で色々タイプの宣言が行われたりする。
また、interfaceの定義にマッチしないものもtemplateになってる。
domain_transマクロはその例。引数はドメイン名だが、依存関係が特にない。

  • サポートマクロの定義

原則として、引数にドメイン/タイプが入らないものなようだ。
が、can_execマクロみたいなやつがまざったりしている。


にしても、ドキュメントが生成されるようになったとはいえ、
すさまじい数のマクロだ。どのマクロを使えばいいかは、
とてもじゃないけどわからんなぁ。