summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Smith <colin@pfsense.org>2005-06-08 02:25:38 +0000
committerColin Smith <colin@pfsense.org>2005-06-08 02:25:38 +0000
commit249a6b95bef7bdd3f0e7bea98513cdcababb82ff (patch)
tree25b9a87c576ce4e4277112eb7c72a6ba5fe04f6c
parent9fd8feb10e35667d57bb3586fb0a05e3b46dcce0 (diff)
downloadpfsense-249a6b95bef7bdd3f0e7bea98513cdcababb82ff.zip
pfsense-249a6b95bef7bdd3f0e7bea98513cdcababb82ff.tar.gz
We need to remove packages from the top down, not the bottom up.
-rw-r--r--etc/inc/pkg-utils.inc10
1 files changed, 5 insertions, 5 deletions
diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc
index d488c70..e297314 100644
--- a/etc/inc/pkg-utils.inc
+++ b/etc/inc/pkg-utils.inc
@@ -572,20 +572,20 @@ function delete_package($pkg) {
return;
}
-function delete_package_recursive($pkg, $pkgdb = "") {
+function delete_package_recursive($pkg) {
exec("/usr/sbin/pkg_info -r " . $pkg . " 2>&1", $info);
- if(!$pkgdb) exec("/bin/ls /var/db/pkg", $pkgdb);
+ exec("cat {$g['tmp_path']}/y | /usr/sbin/pkg_delete " . $pkg ." > /dev/null 2>&1");
+ exec("/bin/ls /var/db/pkg", $pkgdb);
if(stristr($info[0], "can't find package") != false) return;
foreach($info as $line) {
- $depend = trim(array_pop($line));
- if(in_array($depend, $pkgdb)) delete_package_recursive($depend, $pkgdb);
+ $depend = trim(array_pop(explode(":", $line)));
+ if(in_array($depend, $pkgdb)) delete_package_recursive($depend);
}
$fd = fopen("{$g['tmp_path']}/y", "w");
for($line = 0; $line < 10; $line++) {
fwrite($fd, "y\n");
}
fclose($fd);
- exec("cat {$g['tmp_path']}/y | /usr/sbin/pkg_delete " . $pkg ." > /dev/null 2>&1");
return;
}
OpenPOWER on IntegriCloud