git: dsynth - Fix bug in pkglist depend scan

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Dec 26 17:16:43 PST 2019


commit 77ac77e7242075695c853e4c09ba69c320ce390a
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Dec 25 22:14:06 2019 -0800

    dsynth - Fix bug in pkglist depend scan
    
    * Fix a bug where the pkglist scan could could end up putting a
      flavored packge in the hash table more than once, causing a portion
      of the dependency chain to become confused.
    
      This could cause certain build requests to always rebuild some
      of the dependencies that were already built.  For example, building
      graphics/mesa-dri always caused py-sphinx at py37 to be rebuilt.
    
    * The fix is to move the flavor generator out of the backend and
      into the frontend.  The frontend now detects the generic package
      with multiple flavors and generates individual requests to the
      backend.
    
      Previously the backend tried to process the flavors itself and
      transmit extra records back to the frontend (which the frontend
      didn't expect).
    
      This has the added advantage of issuing separate make commands to
      retrieve information about each flavor, instead of running just one
      and synthesizing (copying it) for each flavor.
    
    * Also add assertions in pkg_enter() to ensure that no duplicates
      can slip through in the future.
    
    Reported-by: zrj

Summary of changes:
 usr.bin/dsynth/pkglist.c | 234 ++++++++++++++++++++++++++---------------------
 1 file changed, 128 insertions(+), 106 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/77ac77e7242075695c853e4c09ba69c320ce390a


-- 
DragonFly BSD source repository



More information about the Commits mailing list