]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-php-requires.php
- the both php versions autoprovs are not possible as this script is run for each...
[packages/rpm.git] / rpm-php-requires.php
1 #!/usr/bin/php
2 <?php
3 /**
4  *
5  * Check system dependences between php-pear modules.
6  * Based on Perl version rpm-php-requires.
7  *
8  * Paweł Gołaszewski <blues@pld-linux.org>
9  * Michał Moskal <malekith@pld-linux.org>
10  * Elan Ruusamäe <glen@pld-linux.org>
11  */
12
13 /**
14  * Produce old style pear(Path/To/File.php) deps
15  */
16 function peardeps($files) {
17         // all files must begin with $RPM_BUILD_ROOT%{php_pear_dir}
18         $prefix = RPM_BUILD_ROOT. PHP_PEAR_DIR . DIRECTORY_SEPARATOR;
19         $length = strlen($prefix);
20         foreach ($files as $f) {
21                 if (substr($f, 0, $length) != $prefix) {
22                         continue;
23                 }
24                 $f = substr($f, $length);
25                 echo "pear($f)\n";
26         }
27 }
28
29 /**
30  * Produce dependencies for extensions using PEAR PHP_CompatInfo package.
31  */
32 function extdeps($files) {
33         require_once 'PHP/CompatInfo.php';
34
35         $info = new PHP_CompatInfo('null');
36         $res = $info->parseData($files);
37
38         if (version_compare($res['version'], '5.0.0', 'ge')) {
39                 $epoch = 4;
40                 // session, pcre are statically compiled in
41                 // date, SPL, SimpleXML are internal for php
42                 // sapi_apache?
43                 $staticmods = array('standard', 'ereg', 'session', 'pcre', 'date', 'spl', 'simplexml');
44         } else {
45                 $epoch = 3;
46                 // session has always been compiled in
47                 $staticmods = array('standard', 'ereg', 'session');
48         }
49         echo "php-common >= ", $epoch, ":", $res['version'], "\n";
50
51         // process extensions
52         foreach ($res['extensions'] as $ext) {
53                 if (in_array($ext, $staticmods)) {
54                         continue;
55                 }
56
57                 echo "php(", $ext, ")\n";
58         }
59 }
60
61 define('RPM_BUILD_ROOT', getenv('RPM_BUILD_ROOT'));
62 define('PHP_PEAR_DIR', '/usr/share/pear');
63
64 if ($argc > 1) {
65         $files = array_splice($argv, 1);
66 } else {
67         $files = split(PHP_EOL, trim(file_get_contents('php://stdin')));
68 }
69
70 peardeps($files);
71 extdeps($files);
This page took 0.040143 seconds and 4 git commands to generate.