Browse Source

improve the check for purely virtuals as provided packages aren't
purely virtual and shouldn't error out cause of that

David Kalnischkies 14 years ago
parent
commit
727d8712bc

+ 1 - 1
cmdline/apt-get.cc

@@ -3004,7 +3004,7 @@ bool DoBuildDep(CommandLine &CmdL)
 	    else
 	    else
 	       Pkg = Cache->FindPkg(D->Package);
 	       Pkg = Cache->FindPkg(D->Package);
 
 
-	    if (Pkg.end() == true || Pkg->VersionList == 0)
+	    if (Pkg.end() == true || (Pkg->VersionList == 0 && Pkg->ProvidesList == 0))
             {
             {
                if (_config->FindB("Debug::BuildDeps",false) == true)
                if (_config->FindB("Debug::BuildDeps",false) == true)
                     cout << " (not found)" << (*D).Package << endl;
                     cout << " (not found)" << (*D).Package << endl;

+ 12 - 0
test/integration/test-bug-683786-build-dep-on-virtual-packages

@@ -15,6 +15,9 @@ insertpackage 'unstable' 'make-po-debconf-pure-virtual' 'armel' '1' 'Depends: po
 insertpackage 'unstable' 'po-debconf' 'amd64' '1'
 insertpackage 'unstable' 'po-debconf' 'amd64' '1'
 insertsource 'unstable' 'diffutils' 'any' '1' 'Build-Depends: texi2html'
 insertsource 'unstable' 'diffutils' 'any' '1' 'Build-Depends: texi2html'
 
 
+insertpackage 'unstable' 'libselinux1-dev' 'amd64' '1' 'Provides: libselinux-dev'
+insertsource 'unstable' 'sed' 'any' '1' 'Build-Depends: libselinux-dev'
+
 setupaptarchive
 setupaptarchive
 
 
 testequal 'Package: po-debconf:armel
 testequal 'Package: po-debconf:armel
@@ -42,3 +45,12 @@ E: Build-Depends dependency for dash cannot be satisfied because the package po-
 testequal 'Reading package lists...
 testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 E: Build-Depends dependency for diffutils cannot be satisfied because the package texi2html cannot be found' aptget build-dep -aarmel diffutils -s
 E: Build-Depends dependency for diffutils cannot be satisfied because the package texi2html cannot be found' aptget build-dep -aarmel diffutils -s
+
+testequal "Reading package lists...
+Building dependency tree...
+Note, selecting 'libselinux1-dev' instead of 'libselinux-dev'
+The following NEW packages will be installed:
+  libselinux1-dev
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst libselinux1-dev (1 unstable [amd64])
+Conf libselinux1-dev (1 unstable [amd64])" aptget build-dep sed -s