3.6. Software Collection .pc ファイルのサポート
.pc ファイルは、pkg-config プログラムが使用する特別なメタデータファイルで、システムで利用できるライブラリーに関する情報を保存します。
Software Collection 環境でのみ使用する .pc ファイル、またはシステムにインストールされている .pc ファイルも一緒に使用する場合は、
PKG_CONFIG_PATH
環境変数を更新します。.pc ファイルで定義されている内容に応じて、%{_libdir}
マクロの PKG_CONFIG_PATH
環境変数 (ライブラリーディレクトリー (通常は /usr/lib/
または /usr/lib64/
) に拡張)、または %{_datadir}
マクロ (通常は共有ディレクトリー /usr/share/
に拡張) を更新します。
ライブラリーディレクトリーが .pc ファイルに定義されている場合は、以下のように Software Collection の spec ファイルの
%install
セクションを調整して、PKG_CONFIG_PATH
環境変数を更新します。
%install cat >> %{buildroot}%{_scl_scripts}/enable << EOF export PKG_CONFIG_PATH="%{_libdir}/pkgconfig\${PKG_CONFIG_PATH:+:\${PKG_CONFIG_PATH}}" EOF
共有ディレクトリーが .pc ファイルに定義されている場合は、以下のように Software Collection の spec ファイルの
%install
セクションを調整して、PKG_CONFIG_PATH
環境変数を更新します。
%install cat >> %{buildroot}%{_scl_scripts}/enable << EOF export PKG_CONFIG_PATH="%{_datadir}/pkgconfig\${PKG_CONFIG_PATH:+:\${PKG_CONFIG_PATH}}" EOF
上記の 2 つの例は、Software Collection が有効な場合に、Software Collection の .pc ファイルがシステムで利用可能な .pc ファイルよりも優先されるように、
enable
スクリプトレットを設定します。
Software Collection は、たとえば
/usr/bin
ディレクトリーなど、Software Collection を有効にするためにシステムが認識できるラッパースクリプトを提供します。この場合は、Software Collection が無効であっても .pc ファイルがシステムに表示されていることを確認します。
無効になっている Software Collection からの .pc ファイルを使用できるようにするには、Software Collection に関連付けられた .pc ファイルへのパスで
PKG_CONFIG_PATH
環境変数を更新します。.pc ファイルで定義されている内容に応じて、%{_libdir}
マクロ (ライブラリーディレクトリーに拡張)、または%{_datadir}
マクロ (共有ディレクトリーに拡張) の PKG_CONFIG_PATH
環境変数を更新します。
手順3.5 %{_libdir} の PKG_CONFIG_PATH 環境変数の更新
%{_libdir}
マクロのPKG_CONFIG_PATH
環境変数を更新するには、カスタムスクリプト/etc/profile.d/name.sh
を作成します。このスクリプトは、システムでシェルが起動するとあらかじめ読み込みます。たとえば、以下のファイルを作成します。%{?scl_prefix}pc-libdir.sh
PKG_CONFIG_PATH
変数を変更して .pc ファイルを参照するように短いスクリプトpc-libdir.sh
を使用します。export PKG_CONFIG_PATH="%{_libdir}/pkgconfig:/opt/provider/software_collection/path/to/your/pc_files"
- このファイルを Software Collection パッケージの spec ファイルに追加します。
SOURCE2: %{?scl_prefix}pc-libdir.sh
- Software Collection パッケージの spec ファイルの
%install
セクションを調整して、このファイルをシステムの/etc/profile.d/
ディレクトリーにインストールします。%install install -p -c -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/profile.d/
手順3.6 %{_datadir} の PKG_CONFIG_PATH 環境変数の更新
%{_datadir}
マクロのPKG_CONFIG_PATH
環境変数を更新するには、カスタムスクリプト/etc/profile.d/name.sh
を作成します。このスクリプトは、システムでシェルが起動するとあらかじめ読み込みます。たとえば、以下のファイルを作成します。%{?scl_prefix}pc-datadir.sh
PKG_CONFIG_PATH
変数を変更して .pc ファイルを参照するように短いスクリプトpc-datadir.sh
を使用します。export PKG_CONFIG_PATH="%{_datadir}/pkgconfig:/opt/provider/software_collection/path/to/your/pc_files"
- このファイルを Software Collection パッケージの spec ファイルに追加します。
SOURCE2: %{?scl_prefix}pc-datadir.sh
- Software Collection パッケージの spec ファイルの
%install
セクションを調整して、このファイルをシステムの/etc/profile.d/
ディレクトリーにインストールします。%install install -p -c -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/profile.d/