|
@@ -44,10 +44,16 @@ func makeDependCatagories() *depCatagories {
|
|
|
}
|
|
|
|
|
|
// Cut the version requirement from a dependency leaving just the name.
|
|
|
-func getNameFromDep(dep string) string {
|
|
|
- return strings.FieldsFunc(dep, func(c rune) bool {
|
|
|
+func splitNameFromDep(dep string) (string, string) {
|
|
|
+ split := strings.FieldsFunc(dep, func(c rune) bool {
|
|
|
return c == '>' || c == '<' || c == '='
|
|
|
- })[0]
|
|
|
+ })
|
|
|
+
|
|
|
+ if len(split) == 1 {
|
|
|
+ return split[0], ""
|
|
|
+ }
|
|
|
+
|
|
|
+ return split[0], split[1]
|
|
|
}
|
|
|
|
|
|
//split apart db/package to db and package
|
|
@@ -106,7 +112,7 @@ func getDepCatagories(pkgs []string, dt *depTree) (*depCatagories, error) {
|
|
|
|
|
|
for _, pkg := range pkgs {
|
|
|
_, name := splitDbFromName(pkg)
|
|
|
- dep := getNameFromDep(name)
|
|
|
+ dep, _ := splitNameFromDep(name)
|
|
|
alpmpkg, exists := dt.Repo[dep]
|
|
|
if exists {
|
|
|
repoDepCatagoriesRecursive(alpmpkg, dc, dt, false)
|
|
@@ -187,7 +193,7 @@ func depCatagoriesRecursive(_pkg *rpc.Pkg, dc *depCatagories, dt *depTree, isMak
|
|
|
for _, pkg := range dc.Bases[_pkg.PackageBase] {
|
|
|
for _, deps := range [3][]string{pkg.Depends, pkg.MakeDepends, pkg.CheckDepends} {
|
|
|
for _, _dep := range deps {
|
|
|
- dep := getNameFromDep(_dep)
|
|
|
+ dep, _ := splitNameFromDep(_dep)
|
|
|
|
|
|
aurpkg, exists := dt.Aur[dep]
|
|
|
if exists {
|
|
@@ -355,8 +361,9 @@ func depTreeRecursive(dt *depTree, localDb *alpm.Db, syncDb alpm.DbList, isMake
|
|
|
nextProcess := make(stringSet)
|
|
|
currentProcess := make(stringSet)
|
|
|
// Strip version conditions
|
|
|
- for dep := range dt.ToProcess {
|
|
|
- currentProcess.set(getNameFromDep(dep))
|
|
|
+ for _dep := range dt.ToProcess {
|
|
|
+ dep, _ := splitNameFromDep(_dep)
|
|
|
+ currentProcess.set(dep)
|
|
|
}
|
|
|
|
|
|
// Assume toprocess only contains aur stuff we have not seen
|
|
@@ -390,7 +397,7 @@ func depTreeRecursive(dt *depTree, localDb *alpm.Db, syncDb alpm.DbList, isMake
|
|
|
// for each dep and makedep
|
|
|
for _, deps := range [3][]string{pkg.Depends, pkg.MakeDepends, pkg.CheckDepends} {
|
|
|
for _, versionedDep := range deps {
|
|
|
- dep := getNameFromDep(versionedDep)
|
|
|
+ dep, _ := splitNameFromDep(versionedDep)
|
|
|
|
|
|
_, exists = dt.Aur[dep]
|
|
|
// We have it cached so skip.
|