xbps_repository_install_pkg: before adding pkg into the transaction,

check that it wasn't added before.

This change fixes and endless loop while doing the following:

$ xbps-bin install libXext libX11

where libX11 is a dependency of libXext and was already queued.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100114125713-o9vxzayz1tnhlt96
This commit is contained in:
Juan RP 2010-01-14 13:57:13 +01:00
parent 6c27794c5b
commit d8a025a56a

View File

@ -342,6 +342,19 @@ xbps_repository_install_pkg(const char *pkg, bool by_pkgmatch)
if ((rv = create_transaction_dictionary()) != 0)
goto out;
/*
* Check that this pkg hasn't been added previously into
* the transaction.
*/
if (by_pkgmatch) {
if (xbps_find_pkg_in_dict_by_pkgmatch(trans_dict,
"unsorted_deps", pkg))
return 0;
} else {
if (xbps_find_pkg_in_dict_by_name(trans_dict,
"unsorted_deps", pkg))
return 0;
}
/*
* Set repository in pkg dictionary.
*/