Update dependence resolution for PEAR2 packages.

main
Henrique Moody 13 years ago
parent 9ca157913a
commit b3d91cab02

@ -157,8 +157,10 @@ class PearRepository extends ArrayRepository
$data[$name] = $this->parseVersion($options); $data[$name] = $this->parseVersion($options);
} elseif ('package' == $name) { } elseif ('package' == $name) {
foreach ($options as $key => $value) { foreach ($options as $key => $value) {
$dataKey = $value['name']; if (is_array($value)) {
$data[$dataKey] = $this->parseVersion($value); $dataKey = $value['name'];
$data[$dataKey] = $this->parseVersion($value);
}
} }
} elseif ('extension' == $name) { } elseif ('extension' == $name) {
foreach ($options as $key => $value) { foreach ($options as $key => $value) {
@ -223,9 +225,13 @@ class PearRepository extends ArrayRepository
} }
} }
$depsData = $information->getElementsByTagName('deps')->item(0); $depsData = array();
$depsData = $depsData->getElementsByTagName('d')->item(0); foreach ($information->getElementsByTagName('deps') as $depElement) {
$depsData = $this->parseDependencies($depsData->nodeValue); $depsVersion = $depElement->getElementsByTagName('v')->item(0)->nodeValue;
$depsData[$depsVersion] = $this->parseDependencies(
$depElement->getElementsByTagName('d')->item(0)->nodeValue
);
}
$revisions = $information->getElementsByTagName('a')->item(0); $revisions = $information->getElementsByTagName('a')->item(0);
$revisions = $revisions->getElementsByTagName('r'); $revisions = $revisions->getElementsByTagName('r');
@ -239,10 +245,13 @@ class PearRepository extends ArrayRepository
), ),
'version' => $version 'version' => $version
); );
if (isset($depsData[$version])) {
$revisionData += $depsData[$version];
}
try { try {
$this->addPackage( $this->addPackage(
$loader->load($packageData + $revisionData + $depsData) $loader->load($packageData + $revisionData)
); );
} catch (\UnexpectedValueException $e) { } catch (\UnexpectedValueException $e) {
continue; continue;

Loading…
Cancel
Save