On Aug 26, 2013, at 2:24 PM, Per Øyvind Karlsen wrote:

> This patch will strip away the buildroot prefix for duplicate files listed, 
> providing greater consistency with behaviour otherwise.
> 

While the approach is sensible, the deeper flaw is that duplicate
file checks added by Alexey Tourbin around the time of rpm-5.1.9
release do not scale.

Far deeper changes than cosmetically stripping a builroot path are
needed, likely with Bloom filters attached to all the binary packages
produced in a build, so that

/**
 * Return intersection of two Bloom filters.
 * @retval a            Bloom filter
 * @param b             Bloom filter
 * @return              0 on success, -1 if {m,k} disagree or NULL pointers.
 */
int rpmbfIntersect(rpmbf a, const rpmbf b)
        /*@modifies a @*/;

can be used to detect duplicate (and similarly shared/conflicting) files.

Build a kernel package (which has many more paths than most packages)
and time the additional checks added by Alexey Tourbin if you wish
to see the scaling problem in the existing implementation.

Or try building tests/millionfile-insanity.spec to measure the cost of
the added checks.

Note that the check sadded by Alexey are useful: my only objection is
that the implementation did not (and does not) scale with lots of files.

73 de Jeff

> --
> Regards,
> Per Øyvind
> <rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch>

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to