wiki:PackagingPolicy/PHP

Version 2 (modified by tomop, 12 years ago) (diff)

--

PHPライブラリ系パッケージのポリシー

PHPのライブラリ的なものとしては、大きく分けて以下の2種類があります。

  • 機能拡張(PECLモジュール等、C言語等で書かれたもの)
  • PHPコンポーネント(PEARコンポーネント等、PHP言語で書かれたもの)

これらのパッケージングポリシーについて以下に記述します。

パッケージ命名規則

機能拡張

"php-ext-(拡張機能名)"とします。

(例)Memcache拡張の場合

  • php-ext-memcache

PHPコンポーネント

"php-(コンポーネント名)"とします。アンダスコア("_")はハイフン("-")に変換します。

(例)Archive_Tarクラスの場合

  • php-Archive-Tar

機能拡張のパッケージング時のrpmマクロ

PHP本体のAPIバージョンと合っているパッケージのみインストール可能となるよう、以下のマクロを用意してあります。

  • %req_php_api (PHP extension用)
  • %req_zend_api (Zend extension用)

specファイル中にて、

Requires: %{req_php_api}

と記述することにより、rpm依存関係上でも、機能拡張パッケージのbuild時に使用したPHPと同じAPIバージョンを要求するようになります。

vbuilder利用時の注意点

vbulderを利用してbuildを行う際は以下のようにしてください。

$ sudo vbuilder install-rpm php5-devel build-rpm /path/to/php-ext-module-x.y.z-1vl7.src.rpm