xbps-install: add additional actions to the column output.
- downgrade if new version in repos is less than installed one. - reinstall if both versions are equal. and additionally always print installed pkg version, irrespectively of the transaction mode. Close #72
This commit is contained in:
parent
e95300e952
commit
20276fc068
4
NEWS
4
NEWS
@ -1,5 +1,9 @@
|
|||||||
xbps-0.44 (???):
|
xbps-0.44 (???):
|
||||||
|
|
||||||
|
* xbps-install(8): add additional actions to the column output: "downgrade"
|
||||||
|
and "reinstall", as well as current installed version and new version.
|
||||||
|
Implement https://github.com/voidlinux/xbps/issues/72
|
||||||
|
|
||||||
* libxbps: add packages on hold mode to the transaction, but just ignore them.
|
* libxbps: add packages on hold mode to the transaction, but just ignore them.
|
||||||
This way those are shown in the xbps-install(8) output and the user really
|
This way those are shown in the xbps-install(8) output and the user really
|
||||||
knows that there's a pending update that is not being applied.
|
knows that there's a pending update that is not being applied.
|
||||||
|
@ -144,16 +144,19 @@ print_trans_colmode(struct transaction *trans, int cols)
|
|||||||
if (dload) {
|
if (dload) {
|
||||||
trans->dl_pkgcnt++;
|
trans->dl_pkgcnt++;
|
||||||
}
|
}
|
||||||
if ((strcmp(tract, "update") == 0) ||
|
ipkgd = xbps_pkgdb_get_pkg(trans->xhp, pkgname);
|
||||||
(strcmp(tract, "hold") == 0) ||
|
if (ipkgd) {
|
||||||
(strcmp(tract, "remove") == 0)) {
|
|
||||||
ipkgd = xbps_pkgdb_get_pkg(trans->xhp, pkgname);
|
|
||||||
assert(ipkgd);
|
|
||||||
xbps_dictionary_get_cstring_nocopy(ipkgd, "pkgver", &ipkgver);
|
xbps_dictionary_get_cstring_nocopy(ipkgd, "pkgver", &ipkgver);
|
||||||
iver = xbps_pkg_version(ipkgver);
|
iver = xbps_pkg_version(ipkgver);
|
||||||
}
|
}
|
||||||
ver = xbps_pkg_version(pkgver);
|
ver = xbps_pkg_version(pkgver);
|
||||||
|
if (iver) {
|
||||||
|
int rv = xbps_cmpver(iver, ver);
|
||||||
|
if (rv == 1)
|
||||||
|
tract = "downgrade";
|
||||||
|
else if (rv == 0)
|
||||||
|
tract = "reinstall";
|
||||||
|
}
|
||||||
/* print pkgname and some blanks */
|
/* print pkgname and some blanks */
|
||||||
blen = pnamelen - strlen(pkgname);
|
blen = pnamelen - strlen(pkgname);
|
||||||
printf("%s", pkgname);
|
printf("%s", pkgname);
|
||||||
|
Loading…
Reference in New Issue
Block a user