2013/8/26 Jeffrey Johnson <n3...@me.com>

>
> 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.
>
I can't remember whether I've even actually run into any problems related
to this myself, but on a related note, the unpackage sub directory check is
very often giving false positives..
I have a patch to add support termination of build on unpackaged sub
directories, but considering that the check isn't reliable, I've left it
disabled by default, but I'll attach the patch none the less.

--
Regards,
Per Øyvind

Attachment: rpm-5.4.10-unpackaged_subdirs_terminate_build.patch
Description: Binary data

Reply via email to