On Fri, 30 Nov 2012, Jeffrey Johnson wrote: > > On Nov 30, 2012, at 7:41 AM, Jan Rękorajski <bagg...@pld-linux.org> wrote: > > > > > And so it happens that the problem had nothing to do with database, see > > http://git.pld-linux.org/? > > Well it has nothing to do with Berkeley DB, but … > > > p=packages/rpm.git;a=commit;h=d2ec8f01d4cbb82f79d8abc51f26506a58162d9c > > for gory details. > > > > … if the attached patch to add the namespace comparison > is "fixing", then the error message is hiding the fact > that some namespace is matching the conflict unexpectedly > erroneously.
The thing is that all dependecies get split into <Name, nsType> tuples (foo(bar) becomes <bar, RPMNS_TYPE_foo> and _rpmtsCheck was using only the Name half from this tuple for all tests. The real problem that I was afraid to touch to avoid messing things up is lib/rpmal.c:rpmalAllSatisfiesDepend() which seems to work on global lists instead of private copies which caused the infinite loop because it decremented interator in rpmds 'provides' list for a transaction. > Good: there is a fix. I thought this had been patched already? > Were there other locations that needed to include the namespace > comparison? Didn't find any, but I was only looking at this particular problem. -- Jan Rękorajski | PLD/Linux SysAdm | http://www.pld-linux.org/ baggins<at>mimuw.edu.pl baggins<at>pld-linux.org _______________________________________________ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en