Merge pull request #886 from Morganamilo/fix#883

Update go-alpm
This commit is contained in:
Anna 2019-02-14 20:46:33 +00:00 committed by GitHub
commit 8ebc41d4f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 36 additions and 39 deletions

2
cmd.go
View file

@ -419,7 +419,7 @@ func syncList(parser *arguments) error {
} else {
fmt.Printf("%s %s %s", magenta("aur"), bold(name), bold(green("unknown-version")))
if _, err := localDB.Pkg(name); err == nil {
if localDB.Pkg(name) != nil {
fmt.Print(bold(blue(" [Installed]")))
}

View file

@ -134,8 +134,8 @@ func (dp *depPool) ResolveTargets(pkgs []string) error {
//the user specified a db but there's no easy way to do
//it without making alpm_lists so don't bother for now
//db/group is probably a rare use case
group, err := dp.SyncDB.FindGroupPkgs(target.Name)
if err == nil {
group := dp.SyncDB.FindGroupPkgs(target.Name)
if !group.Empty() {
dp.Groups = append(dp.Groups, target.String())
group.ForEach(func(pkg alpm.Package) error {
dp.Explicit.set(pkg.Name())
@ -207,7 +207,7 @@ func (dp *depPool) findProvides(pkgs stringSet) error {
}
for pkg := range pkgs {
if _, err := dp.LocalDB.Pkg(pkg); err == nil {
if dp.LocalDB.Pkg(pkg) != nil {
continue
}
wg.Add(1)
@ -389,7 +389,7 @@ func (dp *depPool) findSatisfierAurCache(dep string) *rpc.Pkg {
seen := make(stringSet)
providers := makeProviders(depName)
if _, err := dp.LocalDB.Pkg(depName); err == nil {
if dp.LocalDB.Pkg(depName) != nil {
if pkg, ok := dp.AurCache[dep]; ok && pkgSatisfies(pkg.Name, pkg.Version, dep) {
return pkg
}

View file

@ -216,11 +216,11 @@ func getPkgbuildsfromABS(pkgs []string, path string) (bool, error) {
if pkgDB != "" {
if db, err := alpmHandle.SyncDBByName(pkgDB); err == nil {
pkg, err = db.Pkg(name)
pkg = db.Pkg(name)
}
} else {
dbList.ForEach(func(db alpm.DB) error {
if pkg, err = db.Pkg(name); err == nil {
if pkg = db.Pkg(name); pkg != nil {
return fmt.Errorf("")
}
return nil

2
go.mod
View file

@ -3,6 +3,6 @@ module github.com/Jguer/yay/v9
require (
github.com/Morganamilo/go-pacmanconf v0.0.0-20180910220353-9c5265e1b14f
github.com/Morganamilo/go-srcinfo v0.0.0-20180702014333-368edc79b2c5
github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0
github.com/jguer/go-alpm v0.0.0-20190214204021-327c7630865b
github.com/mikkeloscar/aur v0.0.0-20181111113612-b71516da3ae9
)

2
go.sum
View file

@ -6,6 +6,8 @@ github.com/jguer/go-alpm v0.0.0-20180914002751-643c287316a5 h1:JPIXUHXLZYwYUTlGp
github.com/jguer/go-alpm v0.0.0-20180914002751-643c287316a5/go.mod h1:1F60/e8oQFVJrZRH0TBqwtiB5ajJ5avOc4MoGRY9CFU=
github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0 h1:MtH4SM1pw+23QhMERYK38DyGNqf6F3zUhxeKmQhuHC0=
github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0/go.mod h1:1F60/e8oQFVJrZRH0TBqwtiB5ajJ5avOc4MoGRY9CFU=
github.com/jguer/go-alpm v0.0.0-20190214204021-327c7630865b h1:lQICb6Gw0HDAZlAGdveIp/zww2TVBwQvOM5VtAMpulc=
github.com/jguer/go-alpm v0.0.0-20190214204021-327c7630865b/go.mod h1:1F60/e8oQFVJrZRH0TBqwtiB5ajJ5avOc4MoGRY9CFU=
github.com/mikkeloscar/aur v0.0.0-20180725140122-f998dbf94dc4 h1:qgHSZbD0g3W7KAkZFzXlSqgriYnzEUFS1gkgEiv2GrE=
github.com/mikkeloscar/aur v0.0.0-20180725140122-f998dbf94dc4/go.mod h1:n1NKHoldRNhIEufSx1PiDYcd2W+wpbz5/5K+p2eNDVk=
github.com/mikkeloscar/aur v0.0.0-20181111113612-b71516da3ae9 h1:g4TBYa1sjv/TZfU9t82oYlRneu8cCVr3dnazE7os5vw=

View file

@ -364,12 +364,7 @@ func inRepos(syncDB alpm.DBList, pkg string) bool {
return true
}
_, err = syncDB.FindGroupPkgs(target.Name)
if err == nil {
return true
}
return false
return !syncDB.FindGroupPkgs(target.Name).Empty()
}
func earlyPacmanCall(parser *arguments) error {
@ -950,7 +945,7 @@ func buildInstallPkgbuilds(dp *depPool, do *depOrder, srcinfos map[string]*gosrc
if cmdArgs.existsArg("needed") {
installed := true
for _, split := range base {
if alpmpkg, err := dp.LocalDB.Pkg(split.Name); err != nil || alpmpkg.Version() != version {
if alpmpkg := dp.LocalDB.Pkg(split.Name); alpmpkg == nil || alpmpkg.Version() != version {
installed = false
}
}

View file

@ -88,7 +88,7 @@ func (q aurQuery) printSearch(start int) {
toprint += bold(red("(Out-of-date "+formatTime(res.OutOfDate)+")")) + " "
}
if pkg, err := localDB.Pkg(res.Name); err == nil {
if pkg := localDB.Pkg(res.Name); pkg != nil {
if pkg.Version() != res.Version {
toprint += bold(green("(Installed: " + pkg.Version() + ")"))
} else {
@ -126,7 +126,7 @@ func (s repoQuery) printSearch() {
localDB, err := alpmHandle.LocalDB()
if err == nil {
if pkg, err := localDB.Pkg(res.Name()); err == nil {
if pkg := localDB.Pkg(res.Name()); pkg != nil {
if pkg.Version() != res.Version() {
toprint += bold(green("(Installed: " + pkg.Version() + ")"))
} else {

View file

@ -80,8 +80,8 @@ func filterPackages() (local []alpm.Package, remote []alpm.Package,
if found {
return nil
}
_, err := d.Pkg(k.Name())
if err == nil {
if d.Pkg(k.Name()) != nil {
found = true
local = append(local, k)
localNames = append(localNames, k.Name())
@ -301,9 +301,7 @@ func packageSlices(toCheck []string) (aur []string, repo []string, err error) {
}
_ = dbList.ForEach(func(db alpm.DB) error {
_, err := db.Pkg(name)
if err == nil {
if db.Pkg(name) != nil {
found = true
return fmt.Errorf("")
@ -312,8 +310,7 @@ func packageSlices(toCheck []string) (aur []string, repo []string, err error) {
})
if !found {
_, errdb := dbList.FindGroupPkgs(name)
found = errdb == nil
found = !dbList.FindGroupPkgs(name).Empty()
}
if found {

View file

@ -304,10 +304,9 @@ func upRepo(local []alpm.Package) (upSlice, error) {
alpmHandle.SyncSysupgrade(cmdArgs.existsDouble("u", "sysupgrade"))
alpmHandle.TransGetAdd().ForEach(func(pkg alpm.Package) error {
localPkg, err := localDB.Pkg(pkg.Name())
localVer := "-"
if err == nil {
if localPkg := localDB.Pkg(pkg.Name()); localPkg != nil {
localVer = localPkg.Version()
}

View file

@ -130,28 +130,20 @@ func (db *DB) SetUsage(usage Usage) {
}
// Name searches a package in db.
func (db *DB) Pkg(name string) (*Package, error) {
func (db *DB) Pkg(name string) *Package {
cName := C.CString(name)
defer C.free(unsafe.Pointer(cName))
ptr := C.alpm_db_get_pkg(db.ptr, cName)
if ptr == nil {
return nil, db.handle.LastError()
}
return &Package{ptr, db.handle}, nil
return &Package{ptr, db.handle}
}
// PkgCachebyGroup returns a PackageList of packages belonging to a group
func (l DBList) FindGroupPkgs(name string) (PackageList, error) {
func (l DBList) FindGroupPkgs(name string) PackageList {
cName := C.CString(name)
defer C.free(unsafe.Pointer(cName))
pkglist := (*C.struct___alpm_list_t)(unsafe.Pointer(l.list))
pkgcache := (*list)(unsafe.Pointer(C.alpm_find_group_pkgs(pkglist, cName)))
if pkgcache == nil {
return PackageList{pkgcache, l.handle}, l.handle.LastError()
}
return PackageList{pkgcache, l.handle}, nil
return PackageList{pkgcache, l.handle}
}
// PkgCache returns the list of packages of the database

View file

@ -106,6 +106,18 @@ func (l *list) forEach(f func(unsafe.Pointer) error) error {
return nil
}
func (l *list) Len() int {
count := 0
for ; l != nil; l = l.Next {
count++
}
return count
}
func (l *list) Empty() bool {
return l == nil
}
type StringList struct {
*list
}

2
vendor/modules.txt vendored
View file

@ -3,7 +3,7 @@ github.com/Morganamilo/go-pacmanconf
github.com/Morganamilo/go-pacmanconf/ini
# github.com/Morganamilo/go-srcinfo v0.0.0-20180702014333-368edc79b2c5
github.com/Morganamilo/go-srcinfo
# github.com/jguer/go-alpm v0.0.0-20181021002825-676ad6bbf3c0
# github.com/jguer/go-alpm v0.0.0-20190214204021-327c7630865b
github.com/jguer/go-alpm
# github.com/mikkeloscar/aur v0.0.0-20181111113612-b71516da3ae9
github.com/mikkeloscar/aur