xbps_pkg_is_installed(): a pkg in "unpacked" state is now accepted as installed too.

The reason is that even if the pkg was not configured, it should still be accepted
as installed. If installing packages via XBPS_TARGET_ARCH, pkgs are never configured,
so this must be taken into account.

Will be cherry-picked to 0.37 meanwhile.
This commit is contained in:
Juan RP 2014-08-23 15:54:24 +02:00
parent 8939e8697d
commit 5a1919e520
2 changed files with 5 additions and 4 deletions

View File

@ -1635,7 +1635,8 @@ int xbps_file_hash_check(const char *file, const char *sha256);
bool xbps_verify_file_signature(struct xbps_repo *repo, const char *fname);
/**
* Checks if a package is currently installed by matching \a pkg.
* Checks if a package is currently installed in pkgdb by matching \a pkg.
* To be installed, the pkg must be in "installed" or "unpacked" state.
*
* @param[in] xhp The pointer to an xbps_handle struct.
* @param[in] pkg Package name, version pattern or exact pkg to match.

View File

@ -79,10 +79,10 @@ xbps_pkg_is_installed(struct xbps_handle *xhp, const char *pkg)
*/
if (xbps_pkg_state_dictionary(dict, &state) != 0)
return -1; /* error */
if (state != XBPS_PKG_STATE_INSTALLED)
return 0; /* not fully installed */
if (state == XBPS_PKG_STATE_INSTALLED || state == XBPS_PKG_STATE_UNPACKED)
return 1;
return 1;
return 0; /* not fully installed */
}
const char *