diff --git a/deb/list.go b/deb/list.go index cfc3b79c..1dcc2494 100644 --- a/deb/list.go +++ b/deb/list.go @@ -360,7 +360,7 @@ func (l *PackageList) Search(dep Dependency, allMatches bool) []*Package { for i < len(l.packagesIndex) && l.packagesIndex[i].Name == dep.Pkg { p := l.packagesIndex[i] - if p.MatchesDependency(dep, allMatches) { + if p.MatchesDependency(dep) { searchResults = append(searchResults, p) if !allMatches { @@ -422,7 +422,7 @@ func (l *PackageList) Filter(queries []string, withDependencies bool, source *Pa for i < len(l.packagesIndex) && l.packagesIndex[i].Name == dep.Pkg { p := l.packagesIndex[i] - if p.MatchesDependency(dep, false) { + if p.MatchesDependency(dep) { result.Add(p) } i++ diff --git a/deb/package.go b/deb/package.go index 4933a22e..01b638dd 100644 --- a/deb/package.go +++ b/deb/package.go @@ -43,7 +43,7 @@ func NewPackageFromControlFile(input Stanza) *Package { Version: input["Version"], Architecture: input["Architecture"], Source: input["Source"], - V06Plus: true, + V06Plus: true, } delete(input, "Package") @@ -92,7 +92,7 @@ func NewSourcePackageFromControlFile(input Stanza) (*Package, error) { Version: input["Version"], Architecture: "source", SourceArchitecture: input["Architecture"], - V06Plus: true, + V06Plus: true, } delete(input, "Package") @@ -198,7 +198,7 @@ func (p *Package) MatchesArchitecture(arch string) bool { } // MatchesDependency checks whether package matches specified dependency -func (p *Package) MatchesDependency(dep Dependency, allMatches bool) bool { +func (p *Package) MatchesDependency(dep Dependency) bool { if dep.Pkg != p.Name { return false } @@ -215,12 +215,7 @@ func (p *Package) MatchesDependency(dep Dependency, allMatches bool) bool { switch dep.Relation { case VersionEqual: - if allMatches { - rn := CompareVersions(p.Version, dep.NextVersion()) - return r+rn == 0 || r == 0 - } else { - return r == 0 - } + return r == 0 case VersionLess: return r < 0 case VersionGreater: diff --git a/deb/package_test.go b/deb/package_test.go index 3d37bd8e..9f967ec7 100644 --- a/deb/package_test.go +++ b/deb/package_test.go @@ -90,16 +90,16 @@ func (s *PackageSuite) TestKey(c *C) { c.Check(p.Key(""), DeepEquals, []byte("Pi386 alien-arena-common 7.40-2 c8901eedd79ac51b")) c.Check(p.Key("xD"), DeepEquals, []byte("xDPi386 alien-arena-common 7.40-2 c8901eedd79ac51b")) - p.V06Plus = false - c.Check(p.Key(""), DeepEquals, []byte("Pi386 alien-arena-common 7.40-2")) - c.Check(p.Key("xD"), DeepEquals, []byte("xDPi386 alien-arena-common 7.40-2")) + p.V06Plus = false + c.Check(p.Key(""), DeepEquals, []byte("Pi386 alien-arena-common 7.40-2")) + c.Check(p.Key("xD"), DeepEquals, []byte("xDPi386 alien-arena-common 7.40-2")) } func (s *PackageSuite) TestShortKey(c *C) { - p := NewPackageFromControlFile(s.stanza) + p := NewPackageFromControlFile(s.stanza) - c.Check(p.ShortKey(""), DeepEquals, []byte("Pi386 alien-arena-common 7.40-2")) - c.Check(p.ShortKey("xD"), DeepEquals, []byte("xDPi386 alien-arena-common 7.40-2")) + c.Check(p.ShortKey(""), DeepEquals, []byte("Pi386 alien-arena-common 7.40-2")) + c.Check(p.ShortKey("xD"), DeepEquals, []byte("xDPi386 alien-arena-common 7.40-2")) } func (s *PackageSuite) TestStanza(c *C) { @@ -172,44 +172,41 @@ func (s *PackageSuite) TestMatchesDependency(c *C) { p := NewPackageFromControlFile(s.stanza) // exact match - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionEqual, Version: "7.40-2"}, false), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionEqual, Version: "7.40-2"}), Equals, true) // exact match, same version, no revision specified - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionEqual, Version: "7.40"}, false), Equals, false) - - // non-exact match, same version, no revision specified - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionEqual, Version: "7.40"}, true), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionEqual, Version: "7.40"}), Equals, false) // different name - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena", Architecture: "i386", Relation: VersionEqual, Version: "7.40-2"}, false), Equals, false) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena", Architecture: "i386", Relation: VersionEqual, Version: "7.40-2"}), Equals, false) // different version - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionEqual, Version: "7.40-3"}, false), Equals, false) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionEqual, Version: "7.40-3"}), Equals, false) // different arch - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "amd64", Relation: VersionEqual, Version: "7.40-2"}, false), Equals, false) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "amd64", Relation: VersionEqual, Version: "7.40-2"}), Equals, false) // empty arch - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "", Relation: VersionEqual, Version: "7.40-2"}, false), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "", Relation: VersionEqual, Version: "7.40-2"}), Equals, true) // version don't care - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionDontCare, Version: ""}, false), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionDontCare, Version: ""}), Equals, true) // > - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreater, Version: "7.40-2"}, false), Equals, false) - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreater, Version: "7.40-1"}, false), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreater, Version: "7.40-2"}), Equals, false) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreater, Version: "7.40-1"}), Equals, true) // < - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLess, Version: "7.40-2"}, false), Equals, false) - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLess, Version: "7.40-3"}, false), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLess, Version: "7.40-2"}), Equals, false) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLess, Version: "7.40-3"}), Equals, true) // >= - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreaterOrEqual, Version: "7.40-2"}, false), Equals, true) - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreaterOrEqual, Version: "7.40-3"}, false), Equals, false) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreaterOrEqual, Version: "7.40-2"}), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionGreaterOrEqual, Version: "7.40-3"}), Equals, false) // <= - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLessOrEqual, Version: "7.40-2"}, false), Equals, true) - c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLessOrEqual, Version: "7.40-1"}, false), Equals, false) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLessOrEqual, Version: "7.40-2"}), Equals, true) + c.Check(p.MatchesDependency(Dependency{Pkg: "alien-arena-common", Architecture: "i386", Relation: VersionLessOrEqual, Version: "7.40-1"}), Equals, false) } func (s *PackageSuite) TestGetDependencies(c *C) {