Browse Source

Fix --rebuild logic

morganamilo 6 years ago
parent
commit
5c7d6fa3be
2 changed files with 4 additions and 7 deletions
  1. 3 6
      depPool.go
  2. 1 1
      install.go

+ 3 - 6
depPool.go

@@ -301,14 +301,12 @@ func (dp *depPool) resolveAURPackages(pkgs stringSet, explicit bool) error {
 			continue
 		}
 
-		//has satisfier installed: skip
-		_, isInstalled := dp.LocalDb.PkgCache().FindSatisfier(dep)
-		if isInstalled == nil {
+		_, isInstalled := dp.LocalDb.PkgCache().FindSatisfier(dep) //has satisfier installed: skip
+		repoPkg, inRepos := dp.SyncDb.FindSatisfier(dep)           //has satisfier in repo: fetch it
+		if isInstalled == nil && (config.ReBuild != "tree" || inRepos == nil) {
 			continue
 		}
 
-		//has satisfier in repo: fetch it
-		repoPkg, inRepos := dp.SyncDb.FindSatisfier(dep)
 		if inRepos == nil {
 			dp.ResolveRepoDependency(repoPkg)
 			continue
@@ -321,7 +319,6 @@ func (dp *depPool) resolveAURPackages(pkgs stringSet, explicit bool) error {
 	}
 
 	err = dp.resolveAURPackages(newAURPackages, false)
-
 	return err
 }
 

+ 1 - 1
install.go

@@ -935,7 +935,7 @@ func buildInstallPkgbuilds(dp *depPool, do *depOrder, srcinfos map[string]*gosrc
 		for _, b := range base {
 			isExplicit = isExplicit || dp.Explicit.get(b.Name)
 		}
-		if config.ReBuild == "no" || (config.ReBuild == "yes" && isExplicit) {
+		if config.ReBuild == "no" || (config.ReBuild == "yes" && !isExplicit) {
 			for _, split := range base {
 				pkgdest, ok := pkgdests[split.Name]
 				if !ok {