From 01930400a5f40f4ea5e9cafeff00afff515d0a2c Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Sat, 29 Dec 2007 18:06:40 +0100 Subject: 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 --- lib/libalpm/add.c | 4 +--- pactest/tests/upgrade026.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 pactest/tests/upgrade026.py 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") -- cgit v1.2.3-70-g09d2