summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChantry Xavier <shiningxc@gmail.com>2007-12-29 18:06:40 +0100
committerDan McGee <dan@archlinux.org>2007-12-29 11:17:20 -0600
commit01930400a5f40f4ea5e9cafeff00afff515d0a2c (patch)
treeb96b0c7d031f761750bbadedde4163756078f15c
parentb3c6bdda38f7e370e1f80f02a61f1d3f08c1b57d (diff)
downloadpacman-01930400a5f40f4ea5e9cafeff00afff515d0a2c.tar.xz
add a new upgrade026 pactest for backup handling.
This is the bash case when the /etc/profile file was removed by error from the package, but stayed in the backup array. Ref: http://www.archlinux.org/pipermail/arch-dev-public/2007-December/003556.html Also fixed a little typo in add.c, but it's disabled code. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
-rw-r--r--lib/libalpm/add.c4
-rw-r--r--pactest/tests/upgrade026.py17
2 files changed, 18 insertions, 3 deletions
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index 292a0111..f1b310d8 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -259,9 +259,7 @@ static int upgrade_remove(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *trans, pm
_alpm_log(PM_LOG_DEBUG, "adding %s to the NoUpgrade array temporarily\n",
backup);
handle->noupgrade = alpm_list_add(handle->noupgrade,
- _alpm_backup_file(backup));
- handle->noupgrade = alpm_list_add(handle->noupgrade,
- backup);
+ backup);
}
}
#endif
diff --git a/pactest/tests/upgrade026.py b/pactest/tests/upgrade026.py
new file mode 100644
index 00000000..8ad87e3e
--- /dev/null
+++ b/pactest/tests/upgrade026.py
@@ -0,0 +1,17 @@
+self.description = "Upgrade a package, with a file leaving the pkg but staying in 'backup'"
+
+lp = pmpkg("dummy")
+lp.files = ["etc/dummy.conf*"]
+lp.backup = ["etc/dummy.conf"]
+self.addpkg2db("local", lp)
+
+p = pmpkg("dummy", "1.0-2")
+p.backup = ["etc/dummy.conf"]
+self.addpkg(p)
+
+self.args = "-U %s" % p.filename()
+
+self.addrule("PKG_VERSION=dummy|1.0-2")
+self.addrule("FILE_PACSAVE=etc/dummy.conf")
+self.addrule("!FILE_PACNEW=etc/dummy.conf")
+self.addrule("FILE_EXIST=etc/dummy.conf")