On Mon, Aug 06, 2007 at 11:30:00AM +0200, ngaba@bibl.u-szeged.hu wrote:
Ps: Both the old and patched version of sync_prepare have a problem: If conflict resolution induces a replace, we can loose the PM_SYNC_TYPE_DEPEND information!!
Hi! As a hotfix, we could use (and rename to replaces...) the data field of pmsyncpkg_t to store the induced remove always (independently from sync type).
I prefer coldfix ;)
------------ To tell the truth I want to kill pmsyncpkg_t (I discussed its inefficiency earlier), because we don't really need it. I prefer 2 pmpkg_t lists in pmtrans_t: one for upgrade/add and an other one for remove. This would be cleaner, faster and more "uniform" (now trans->packages can be pmpkg_t or pmsyncpkg_t). And in the future we may implement an "universal transaction" to libalpm, so user could select packages both for removal and for upgrade in _one_ transaction (I imagine a nice GUI front-end here... ;-). And this would be a replacement to alpm_upgrade and alpm_remove transactions. (My checkdeps patch does this work in alpm_checkdeps.)
After reading that sync_prepare code a bit, I also don't like that pmsyncpkg_t much. Not really because it's inefficient, but rather that it doesn't look very nice :) Maybe it would be better with the way you're proposing.