summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/inc/pkg-utils.inc12
1 files changed, 12 insertions, 0 deletions
diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc
index 487b1bb..8b9d6a6 100644
--- a/etc/inc/pkg-utils.inc
+++ b/etc/inc/pkg-utils.inc
@@ -828,6 +828,11 @@ function delete_package_xml($pkg) {
conf_mount_rw();
+ // Back up /usr/local/lib libraries first
+ $static_output .= "Backing up libraries... ";
+ update_output_window($static_output);
+ exec("/usr/bin/tar czPf /tmp/pkg_libs.tgz `/bin/cat /etc/pfSense_md5.txt | /usr/bin/grep 'local/lib' | /usr/bin/awk '{ print $2 }' | /usr/bin/cut -d'(' -f2 | /usr/bin/cut -d')' -f1`");
+
$pkgid = get_pkg_id($pkg);
if ($pkgid == -1) {
$static_output .= "The {$pkg} package is not installed.\n\nDeletion aborted.";
@@ -1001,6 +1006,13 @@ function delete_package_xml($pkg) {
$static_output .= "done.\n";
update_output_window($static_output);
}
+
+ // Restore libraries that we backed up
+ $static_output .= "\tCleaning up... ";
+ update_output_window($static_output);
+ exec("/usr/bin/tar xzPf /tmp/pkg_libs.tgz -C /");
+ @unlink("/tmp/pkg_libs.tgz");
+
conf_mount_ro();
/* remove config.xml entries */
$static_output .= "\tConfiguration... ";
OpenPOWER on IntegriCloud