wiki:docs/making-rpm/specific/gconf2

Vine Linux ドキュメント / RPM パッケージの作成方法 / パッケージ固有の作法等について / GConf2 を利用するパッケージ

GConf2 を利用するパッケージ

GConf2 を設定の保存に利用しているアプリケーションの場合、通常、make install の途中でデフォルトの設定値が記述されたファイルを GConf2 に登録しようとします。

しかし、このタイミングで GConf2 への登録を行うと RPM パッケージ化の際にエラーを吐きますし、RPM パッケージをインストールしても GConf2 には何も登録されません。

この様なアプリケーションをパッケージ化する場合は、以下のように SPEC ファイルを記述して GConf2 への登録のタイミングを制御する必要があります。

  • %install セクションの make install の前後を以下のように記述します。
    export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
    make install
    unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
    
    これで make install 時に GConf2 への登録が省略されます。
  • %post セクションに以下の記述を追加します。
    export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
    gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/package.schemas > /dev/null
    
    package の部分は、適切な名前(ワイルドカード使用可)に置き換えてください。
  • %preun セクションに以下の記述を追加します。
    if [ $1 = 0 ]; then
            export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
            gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/package.schemas > /dev/null
    fi
    
    これは、削除される前の .schemas ファイルを利用しますので %postun セクションでは駄目です。