php package provides a php(zend-abi) which sould be used to ensure compatibility betwen extension and php. Even if rrdtool-php is not a true "pecl" extension, it works as one. For more information, read the PHP Guidelines (recently updated) http://fedoraproject.org/wiki/Packaging/PHP#head-435fc0b2b6fa2e807e89b72025848db84fea9d1c This will detect ABI breaks when a new php version comes to rawhide. Regards.
Hrm... I see: ----8<---- A PECL package MUST have: %if %{?php_zend_api}0 Requires: php(zend-abi) = %{php_zend_api} Requires: php(api) = %{php_core_api} %else Requires: php-api = %{php_apiver} %endif Provides: php-pecl(foo) Other Packages PHP addons which are neither PEAR nor PECL should require what makes sense (either a base PHP version or a php-api as necessary). ----8<---- Wouldn't just the following be sufficient for detecting api breakage and comply with the guidelines?: Requires: php(api) = %{php_core_api} (I honestly have no clue here, just asking, since as you say, its not a true pecl extension).
php(api) doesn't change with PHP version (still the same, 20041225, for years) php(zend-api) is the value checked on runtime by PHP. That why we add it to php. For example, if i used rrdtool-php from FC6 (build with php-5.1.6) on F7 (php-5.2.2) 1/ Install is possible (that's what we want to make impossible) 2/ Use is not # php -v PHP Warning: PHP Startup: rrdtool: Unable to initialize module Module compiled with module API=20050922, debug=0, thread-safety=0 PHP compiled with module API=20060613, debug=0, thread-safety=0 These options need to match So the Requires must be make on php(zend-abi) : php-common-5.1.6 provides php(zend-abi) = 20050922 php-common_5.2.2 provides php(zend-abi) = 20060613 Is it clearer for you ?
Ah, yes, okay, that makes sense then. Thank you! I'll get that added shortly...
rrdtool-1.2.23-6.fc7 has been pushed to the Fedora 7 stable repository. If problems still persist, please make note of it in this bug report.