From 205c9f563178d0eda62f262c5bbb6fc647610d87 Mon Sep 17 00:00:00 2001 From: Daniel Hartwig Date: Sat, 25 Aug 2012 21:02:09 +0800 Subject: [PATCH] hide multi-arch implicit relationships LP: #972858 --- NEWS | 6 ++++++ src/cmdline/cmdline_show.cc | 9 ++++++++- src/dep_item.cc | 9 +++++++++ src/pkg_info_screen.cc | 9 ++++++++- src/pkg_ver_item.cc | 2 ++ 5 files changed, 33 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index b8a1c4c..cac8b1e 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,12 @@ Version 0.6.8.1 "Don hat" - correctly recognise dependencies solved by Multi-Arch: foreign packages (LP: #968412) +- Cosmetic and UI bugs: + + * Improve display of relationships on multi-arch systems: + - hide multi-arch implicit relationships, which are an + internal aide for libapt-pkg (LP: #972858) + [5/11/2012] Version 0.6.8 "Never need a reason, never need a rhyme" diff --git a/src/cmdline/cmdline_show.cc b/src/cmdline/cmdline_show.cc index 287404a..61b7d5f 100644 --- a/src/cmdline/cmdline_show.cc +++ b/src/cmdline/cmdline_show.cc @@ -91,7 +91,8 @@ static cwidget::fragment *dep_lst_frag(pkgCache::DepIterator dep, vector or_fragments; - if(start->Type==T) + if(start->Type == T + && start.IsMultiArchImplicit() == false) do { cw::fragment *verfrag; @@ -149,6 +150,9 @@ static cwidget::fragment *prv_lst_frag(pkgCache::PrvIterator prv, for( ; !prv.end(); ++prv) { + if(prv.IsMultiArchImplicit() == true) + continue; + const string name = prv.OwnerPkg().FullName(true); const char *version = prv.OwnerVer().VerStr(); @@ -168,6 +172,9 @@ static cwidget::fragment *prv_lst_frag(pkgCache::PrvIterator prv, for( ; !prv.end(); ++prv) { + if(prv.IsMultiArchImplicit() == true) + continue; + string name = reverse ? prv.OwnerPkg().Name() : prv.ParentPkg().Name(); packages.insert(name); diff --git a/src/dep_item.cc b/src/dep_item.cc index 1df4be0..d1b75b9 100644 --- a/src/dep_item.cc +++ b/src/dep_item.cc @@ -278,6 +278,12 @@ void setup_package_deps(const pkgCache::PkgIterator &pkg, pkgCache::DepIterator D=reverse?pkg.RevDependsList():ver.DependsList(); while(!D.end()) { + if(D.IsMultiArchImplicit() == true) + { + D++; + continue; + } + if(reverse) { if((ver.end() && (D->CompareOp&0x0F)!=pkgCache::Dep::NoOp) || @@ -329,6 +335,9 @@ void setup_package_deps(const pkgCache::PkgIterator &pkg, { for(pkgCache::DepIterator D=i.ParentPkg().RevDependsList(); !D.end(); D++) { + if(D.IsMultiArchImplicit() == true) + continue; + if(_system->VS->CheckDep(i.ProvideVersion(), D->CompareOp, D.TargetVer())) { pkg_subtree *subtree; diff --git a/src/pkg_info_screen.cc b/src/pkg_info_screen.cc index 52b65bb..0ca541a 100644 --- a/src/pkg_info_screen.cc +++ b/src/pkg_info_screen.cc @@ -150,13 +150,20 @@ void pkg_grouppolicy_info::setup_package_info(const pkgCache::PkgIterator &pkg, snprintf(buf, 256, _("Package names provided by %s"), pkg.FullName(true).c_str()); pkg_subtree *prvtree=new pkg_subtree(cw::util::transcode(buf)); + bool found = false; for(pkgCache::PrvIterator prv=ver.ProvidesList(); !prv.end(); ++prv) { + if(prv.IsMultiArchImplicit() == true) + continue; + found = true; prvtree->add_child(new pkg_item(prv.ParentPkg(), sig)); prvtree->inc_num_packages(); } - tree->add_child(prvtree); + if(found == true) + tree->add_child(prvtree); + else + delete prvtree; } } diff --git a/src/pkg_ver_item.cc b/src/pkg_ver_item.cc index 08d1b8c..e3a4f9e 100644 --- a/src/pkg_ver_item.cc +++ b/src/pkg_ver_item.cc @@ -465,6 +465,8 @@ void setup_package_versions(const pkgCache::PkgIterator &pkg, pkg_vertree_generi for(pkgCache::PrvIterator i=pkg.ProvidesList(); !i.end(); i++) { + if(i.IsMultiArchImplicit() == true) + continue; tree->add_child(new pkg_ver_item(i.OwnerVer(), sig, true)); tree->inc_num_versions(); } -- 1.7.9