remove.c: honor inverted patterns in noupgrade
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
df36fe2e79
commit
3af0268fdb
|
@ -326,7 +326,7 @@ static int can_remove_file(alpm_handle_t *handle, const alpm_file_t *file,
|
|||
{
|
||||
char filepath[PATH_MAX];
|
||||
|
||||
if(alpm_list_find(skip_remove, file->name, _alpm_fnmatch)) {
|
||||
if(_alpm_fnmatch_patterns(skip_remove, file->name) == 0) {
|
||||
/* return success because we will never actually remove this file */
|
||||
return 1;
|
||||
}
|
||||
|
@ -451,7 +451,7 @@ static int unlink_file(alpm_handle_t *handle, alpm_pkg_t *oldpkg,
|
|||
/* check the remove skip list before removing the file.
|
||||
* see the big comment block in db_find_fileconflicts() for an
|
||||
* explanation. */
|
||||
if(alpm_list_find(skip_remove, fileobj->name, _alpm_fnmatch)) {
|
||||
if(_alpm_fnmatch_patterns(skip_remove, fileobj->name) == 0) {
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG,
|
||||
"%s is in skip_remove, skipping removal\n", file);
|
||||
return 1;
|
||||
|
|
|
@ -63,6 +63,7 @@ TESTS += test/pacman/tests/ldconfig003.py
|
|||
TESTS += test/pacman/tests/mode001.py
|
||||
TESTS += test/pacman/tests/mode002.py
|
||||
TESTS += test/pacman/tests/mode003.py
|
||||
TESTS += test/pacman/tests/noupgrade-inverted.py
|
||||
TESTS += test/pacman/tests/pacman001.py
|
||||
TESTS += test/pacman/tests/pacman002.py
|
||||
TESTS += test/pacman/tests/pacman003.py
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
self.description = "Upgrade a package with files that match negated NoUpgrade patterns"
|
||||
|
||||
lp = pmpkg("foobar")
|
||||
lp.files = ["foo/bar", "foo/baz"]
|
||||
self.addpkg2db("local", lp)
|
||||
|
||||
p = pmpkg("foobar", "1.0-2")
|
||||
p.files = ["foo/bar"]
|
||||
self.addpkg(p)
|
||||
|
||||
self.option["NoUpgrade"] = ["foo/*", "!foo/bar", "!foo/baz"]
|
||||
|
||||
self.args = "-U %s" % p.filename()
|
||||
|
||||
self.addrule("PKG_VERSION=foobar|1.0-2")
|
||||
self.addrule("!FILE_EXIST=foo/baz")
|
||||
self.addrule("FILE_MODIFIED=foo/bar")
|
||||
self.addrule("!FILE_PACNEW=foo/bar")
|
||||
self.addrule("!FILE_PACSAVE=foo/bar")
|
Loading…
Reference in New Issue