summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/pkgcachegen.cc3
-rwxr-xr-xtest/integration/test-bug-758153-versioned-provides-support51
2 files changed, 53 insertions, 1 deletions
diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc
index 89b4c4bae..69c8fd105 100644
--- a/apt-pkg/pkgcachegen.cc
+++ b/apt-pkg/pkgcachegen.cc
@@ -1070,7 +1070,8 @@ bool pkgCacheListParser::NewProvides(pkgCache::VerIterator &Ver,
// We do not add self referencing provides
if (Ver.ParentPkg().Name() == PkgName && (PkgArch == Ver.ParentPkg().Arch() ||
- (PkgArch == "all" && strcmp((Cache.StrP + Cache.HeaderP->Architecture), Ver.ParentPkg().Arch()) == 0)))
+ (PkgArch == "all" && strcmp((Cache.StrP + Cache.HeaderP->Architecture), Ver.ParentPkg().Arch()) == 0)) &&
+ (Version.empty() || Version == Ver.VerStr()))
return true;
// Locate the target package
diff --git a/test/integration/test-bug-758153-versioned-provides-support b/test/integration/test-bug-758153-versioned-provides-support
index 0be7ced8c..af8c863bb 100755
--- a/test/integration/test-bug-758153-versioned-provides-support
+++ b/test/integration/test-bug-758153-versioned-provides-support
@@ -42,6 +42,12 @@ insertpackage 'unstable' 'virtualnext3' 'amd64' '1' 'Multi-Arch: no
Provides: next3 (= 2)'
insertpackage 'unstable' 'needsnext3' 'amd64,i386' '2' 'Depends: next3 (>= 2)'
+insertpackage 'unstable' 'selfprov' 'amd64' '2' 'Provides: selfprov (= 1)'
+insertpackage 'unstable' 'needsselfprov1' 'amd64' '1' 'Depends: selfprov (= 1)'
+insertpackage 'unstable' 'needsselfprov2' 'amd64' '1' 'Depends: selfprov (= 2)'
+insertpackage 'unstable' 'needsselfprov12' 'amd64' '1' 'Depends: selfprov (= 1), selfprov (= 2)'
+insertpackage 'unstable' 'needsselfprov123' 'amd64' '1' 'Depends: selfprov (= 1), selfprov (= 2), selfprov (= 3)'
+
setupaptarchive
testsuccessequal 'Reading package lists...
@@ -288,3 +294,48 @@ The following information may help to resolve the situation:
The following packages have unmet dependencies:
needsnext3:i386 : Depends: next3:i386 (>= 2) but it is not installable
E: Unable to correct problems, you have held broken packages.' aptget install needsnext3:i386 -s
+
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ selfprov
+The following NEW packages will be installed:
+ needsselfprov1 selfprov
+0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
+Inst selfprov (2 unstable [amd64])
+Inst needsselfprov1 (1 unstable [amd64])
+Conf selfprov (2 unstable [amd64])
+Conf needsselfprov1 (1 unstable [amd64])' aptget install needsselfprov1 -s
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ selfprov
+The following NEW packages will be installed:
+ needsselfprov2 selfprov
+0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
+Inst selfprov (2 unstable [amd64])
+Inst needsselfprov2 (1 unstable [amd64])
+Conf selfprov (2 unstable [amd64])
+Conf needsselfprov2 (1 unstable [amd64])' aptget install needsselfprov2 -s
+testsuccessequal 'Reading package lists...
+Building dependency tree...
+The following additional packages will be installed:
+ selfprov
+The following NEW packages will be installed:
+ needsselfprov12 selfprov
+0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
+Inst selfprov (2 unstable [amd64])
+Inst needsselfprov12 (1 unstable [amd64])
+Conf selfprov (2 unstable [amd64])
+Conf needsselfprov12 (1 unstable [amd64])' aptget install needsselfprov12 -s
+testfailureequal 'Reading package lists...
+Building dependency tree...
+Some packages could not be installed. This may mean that you have
+requested an impossible situation or if you are using the unstable
+distribution that some required packages have not yet been created
+or been moved out of Incoming.
+The following information may help to resolve the situation:
+
+The following packages have unmet dependencies:
+ needsselfprov123 : Depends: selfprov (= 3)
+E: Unable to correct problems, you have held broken packages.' aptget install needsselfprov123 -s