#!/usr/bin/php
<?php
+/*
+ * minify.spec does not see these: pear(HTTP/ConditionalGet.php) pear(HTTP/Encoder.php)
+ * perl version does
+ */
/**
*
* Check system dependences between php-pear modules.
* Michał Moskal <malekith@pld-linux.org> (Perl version)
* Elan Ruusamäe <glen@pld-linux.org>
*
+ * URL: <http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm/rpm-php-requires.php>
+ *
* Requires: php-pear-PHP_CompatInfo
* Requires: php-pcre
*/
}
foreach (file($f) as $line) {
- // skip comments
+ // skip comments -- not perfect, matches "*" at start of line (very rare altho)
if (preg_match('/^\s*(#|\/\/|\*|\/\*)/', $line)) {
continue;
}
- while (preg_match("/(\W|^)(require|include)(_once)?
+ if (preg_match("/(\W|^)(require|include)(_once)?
\s* \(? \s*
(\"([^\"]*)\"|'([^']*)')
\s* \)? \s* ;/x", $line, $m)) {
- if ($m[5] != "") {
+ if ($m[5]) {
$x = $m[5];
- } else if ($m[6] != "") {
+ } else if ($m[6]) {
$x = $m[6];
} else {
continue 2;
}
- if (substr($x, 0, 2) == './' || substr($x, -1) == '$') {
+ if (substr($x, 0, 2) == './' || substr($x, -1) == '$') { # XXX must be: CONTAINS DOLLAR
continue 2;
}
continue;
}
- while (preg_match("/(\W|^)(require|include)(_once)?
+ if (preg_match("/(\W|^)(require|include)(_once)?
\s* \(? \s* dirname \s* \( \s* __FILE__ \s* \) \s* \. \s*
(\"([^\"]*)\"|'([^']*)')
\s* \)? \s* ;/x", $line, $m)) {
- if ($m[5] != "") {
+ if ($m[5]) {
$x = $m[5];
- } else if ($m[6] != "") {
+ } else if ($m[6]) {
$x = $m[6];
} else {
continue 2;
}
- if (substr($x, -1) == '$') {
+ if (substr($x, -1) == '$') { # XXX must be: CONTAINS DOLLAR
continue 2;
}
if (substr($x, -4) != '.php') {
}
$x = "$file_dir/$x";
+ // remove double slashes
+ // TODO: resolve simpletest/test/../socket.php -> simpletest/socket.php
+ $x = str_replace("//", "/", $x);
$req[$x] = 1;
continue;
}
$version = max(PHP_MIN_VERSION, $res['version']);
if (version_compare($version, '5.0.0', 'ge')) {
+ # force php-<name> only deps when php5
+ # XXX what about php-pecl-<name> virtual provides?
+ $fmt = 'php-%s';
$epoch = 4;
} else {
+ $fmt = 'php(%s)';
$epoch = 3;
}
echo "php-common >= ", $epoch, ":", $version, "\n";
if ($ext == 'bz2') {
$ext = 'bzip2';
}
+ // libxml ext is in php-xml package
+ if ($ext == 'libxml') {
+ $ext = 'xml';
+ }
+
+ // these need to be lowercased
+ if (in_array($ext, array('SPL', 'PDO', 'SQLite', 'Reflection', 'SimpleXML'))) {
+ $ext = strtolower($ext);
+ }
- echo "php(", $ext, ")\n";
+ printf("$fmt\n", $ext);
}
}