Sanitize duplicate dependency checking at build
authorPanu Matilainen <pmatilai@redhat.com>
Mon, 15 Apr 2013 14:42:49 +0000 (17:42 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 7 Jun 2013 09:22:24 +0000 (12:22 +0300)
commitc6101677a1d6bc6eae84f4729aae5af1fabe6a8b
tree8ba50fcd079996334cc40e836d1db5f85b8df756
parent53f11564541220db4b23a895414d301a1d3a6337
Sanitize duplicate dependency checking at build

- Creating a new rpmds from header each time isNewDep() gets hideously
  expensive when the number of manual dependencies is high.
  Add prco etc rpmds structs to each package and use those to determine
  whether a dependency has already been seen: this way the ds'es remain
  sorted so rpmdsMerge() will do the right thing for regular
  dependencies. Triggers are somewhat different beasts with their
  index tags so at least for now just do a linear search like we
  always did for correctness.
- Makes worlds of difference for complex specs... the time to parse
  texlive.spec from Fedora goes down from ~27s to ~10s on my laptop
  with this change.
(cherry picked from commit d642df2a5c5913010dae5b5b6a043359325cf055)
build/reqprov.c
build/rpmbuild_internal.h
build/spec.c