index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | doc/pacman.8.txt | 2 | ||||
-rw-r--r-- | lib/libalpm/remove.c | 5 | ||||
-rw-r--r-- | src/pacman/pacman.c | 3 | ||||
-rw-r--r-- | test/pacman/tests/database012.py | 8 |
diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt index 9f540df1..2b47a88c 100644 --- a/doc/pacman.8.txt +++ b/doc/pacman.8.txt @@ -158,8 +158,6 @@ Transaction Options (apply to '-S', '-R' and '-U') *-k, \--dbonly*:: Adds/Removes the database entry only, leaves all files in place. - On an upgrade operation, the existing package and all files - will be removed and the database entry for the new package will be added. *\--noprogressbar*:: Do not show a progress bar when downloading files. This can be useful diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index b2137b19..0bcf5521 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -310,6 +310,10 @@ int _alpm_upgraderemove_package(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *tra _alpm_log(PM_LOG_DEBUG, "removing old package first (%s-%s)\n", oldpkg->name, oldpkg->version); + if(trans->flags & PM_TRANS_FLAG_DBONLY) { + goto db; + } + /* copy the remove skiplist over */ skip_remove = alpm_list_join(alpm_list_strdup(trans->skip_remove),alpm_list_strdup(handle->noupgrade)); @@ -344,6 +348,7 @@ int _alpm_upgraderemove_package(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *tra alpm_list_free(newfiles); FREELIST(skip_remove); +db: /* remove the package from the database */ _alpm_log(PM_LOG_DEBUG, "updating database\n"); _alpm_log(PM_LOG_DEBUG, "removing database entry '%s'\n", pkgname); diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index ae349a35..5ba798b4 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -132,7 +132,6 @@ static void usage(int op, const char * const myname) printf("%s: %s {-R --remove} [%s] <%s>\n", str_usg, myname, str_opt, str_pkg); printf("%s:\n", str_opt); addlist(_(" -c, --cascade remove packages and all packages that depend on them\n")); - addlist(_(" -k, --dbonly only remove database entries, do not remove files\n")); addlist(_(" -n, --nosave remove configuration files as well\n")); addlist(_(" -s, --recursive remove dependencies also (that won't break packages)\n" " (-ss includes explicitly installed dependencies too)\n")); @@ -180,7 +179,6 @@ static void usage(int op, const char * const myname) case PM_OP_SYNC: case PM_OP_UPGRADE: addlist(_(" -f, --force force install, overwrite conflicting files\n")); - addlist(_(" -k, --dbonly add database entries, do not install or keep existing files\n")); addlist(_(" --asdeps install packages as non-explicitly installed\n")); addlist(_(" --asexplicit install packages as explicitly installed\n")); addlist(_(" --ignore <pkg> ignore a package upgrade (can be used more than once)\n")); @@ -189,6 +187,7 @@ static void usage(int op, const char * const myname) /* pass through */ case PM_OP_REMOVE: addlist(_(" -d, --nodeps skip dependency checks\n")); + addlist(_(" -k, --dbonly only modify database entries, not package files\n")); addlist(_(" --noprogressbar do not show a progress bar when downloading files\n")); addlist(_(" --noscriptlet do not execute the install scriptlet if one exists\n")); addlist(_(" --print only print the targets instead of performing the operation\n")); diff --git a/test/pacman/tests/database012.py b/test/pacman/tests/database012.py index a1f86980..52813ec6 100644 --- a/test/pacman/tests/database012.py +++ b/test/pacman/tests/database012.py @@ -21,11 +21,5 @@ self.addrule("PACMAN_RETCODE=0") self.addrule("PKG_EXIST=dummy") self.addrule("PKG_VERSION=dummy|2.0-1") for f in lp.files: - self.addrule("!FILE_EXIST=%s" % f) -# TODO: I honestly think the above should NOT delete the original files, it -# should upgrade the DB entry without touching anything on the file system. -# E.g. this test should be the same as: -# pacman -R --dbonly dummy && pacman -U --dbonly dummy.pkg.tar.gz -#for f in lp.files: -# self.addrule("FILE_EXIST=%s" % f) + self.addrule("FILE_EXIST=%s" % f) self.addrule("!FILE_EXIST=bin/dummy2") |