]> git.saurik.com Git - apt.git/commitdiff
* apt-pkg/depcache.cc:
authorMichael Vogt <michael.vogt@ubuntu.com>
Wed, 9 Aug 2006 18:01:46 +0000 (20:01 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Wed, 9 Aug 2006 18:01:46 +0000 (20:01 +0200)
  - find new important dependencies on upgrade and deal with them

apt-pkg/depcache.cc
po/apt-all.pot

index 8560ce4fda120cbf9b388c440193dd961f492a49..6296892ba42c34c6071024ea64c60c47be346eca 100644 (file)
@@ -667,7 +667,33 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
         it will be installed. Otherwise we only worry about critical deps */
       if (IsImportantDep(Start) == false)
         continue;
-      if (Pkg->CurrentVer != 0 && Start.IsCritical() == false)
+
+      /* check if any ImportantDep() (but not Critial) where added
+       * since we installed the thing
+       */
+      bool isNewImportantDep = false;
+      if(IsImportantDep(Start) && !Start.IsCritical())
+      {
+        bool found=false;
+        VerIterator instVer = Pkg.CurrentVer();
+        for (DepIterator D = instVer.DependsList(); !D.end(); D++)
+        {
+           //FIXME: deal better with or-groups(?)
+           DepIterator LocalStart = D;
+           
+           if(IsImportantDep(Dep) && Start.TargetPkg() == D.TargetPkg())
+              found=true;
+        }
+        // this is a new dep if it was not found to be already
+        // a important dep of the installed pacakge
+        isNewImportantDep = !found;
+      }
+      if(isNewImportantDep)
+        if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true)
+           std::clog << "new important dependency: " 
+                     << Start.TargetPkg().Name() << std::endl;
+
+      if (Pkg->CurrentVer != 0 && Start.IsCritical() == false && !isNewImportantDep)
         continue;
       
       /* If we are in an or group locate the first or that can 
index 095de7f6d3793e122b61430e4915d5409ca6538c..d6d146428b495bbc99642da362963fe1bf904148 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-09 16:17+0200\n"
+"POT-Creation-Date: 2006-08-09 18:35+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -148,7 +148,7 @@ msgstr ""
 
 #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
-#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2389 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s %s compiled on %s %s\n"
 msgstr ""
@@ -546,7 +546,7 @@ msgstr ""
 msgid "Y"
 msgstr ""
 
-#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506
+#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1508
 #, c-format
 msgid "Regex compilation error - %s"
 msgstr ""
@@ -705,11 +705,11 @@ msgstr ""
 msgid "Internal error, Ordering didn't finish"
 msgstr ""
 
-#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844
+#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1820 cmdline/apt-get.cc:1853
 msgid "Unable to lock the download directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128
+#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1901 cmdline/apt-get.cc:2137
 #: apt-pkg/cachefile.cc:67
 msgid "The list of sources could not be read."
 msgstr ""
@@ -738,7 +738,7 @@ msgstr ""
 msgid "After unpacking %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982
+#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1991
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
@@ -772,7 +772,7 @@ msgstr ""
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 
-#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025
+#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1367 cmdline/apt-get.cc:2034
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
@@ -781,7 +781,7 @@ msgstr ""
 msgid "Some files failed to download"
 msgstr ""
 
-#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034
+#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2043
 msgid "Download complete and in download only mode"
 msgstr ""
 
@@ -858,60 +858,60 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1168
+#: cmdline/apt-get.cc:1170
 #, c-format
 msgid "Release '%s' for '%s' was not found"
 msgstr ""
 
-#: cmdline/apt-get.cc:1170
+#: cmdline/apt-get.cc:1172
 #, c-format
 msgid "Version '%s' for '%s' was not found"
 msgstr ""
 
-#: cmdline/apt-get.cc:1176
+#: cmdline/apt-get.cc:1178
 #, c-format
 msgid "Selected version %s (%s) for %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1313
+#: cmdline/apt-get.cc:1315
 msgid "The update command takes no arguments"
 msgstr ""
 
-#: cmdline/apt-get.cc:1326
+#: cmdline/apt-get.cc:1328
 msgid "Unable to lock the list directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:1384
+#: cmdline/apt-get.cc:1386
 msgid ""
 "Some index files failed to download, they have been ignored, or old ones "
 "used instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:1403
+#: cmdline/apt-get.cc:1405
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1495 cmdline/apt-get.cc:1531
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1516
+#: cmdline/apt-get.cc:1518
 #, c-format
 msgid "Note, selecting %s for regex '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1546
+#: cmdline/apt-get.cc:1548
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1549
+#: cmdline/apt-get.cc:1551
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1561
+#: cmdline/apt-get.cc:1563
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -919,163 +919,163 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1569
+#: cmdline/apt-get.cc:1571
 msgid ""
 "Since you only requested a single operation it is extremely likely that\n"
 "the package is simply not installable and a bug report against\n"
 "that package should be filed."
 msgstr ""
 
-#: cmdline/apt-get.cc:1574
+#: cmdline/apt-get.cc:1576
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1577
+#: cmdline/apt-get.cc:1579
 msgid "Broken packages"
 msgstr ""
 
-#: cmdline/apt-get.cc:1603
+#: cmdline/apt-get.cc:1605
 msgid "The following extra packages will be installed:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1685
+#: cmdline/apt-get.cc:1694
 msgid "Suggested packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1686
+#: cmdline/apt-get.cc:1695
 msgid "Recommended packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1706
+#: cmdline/apt-get.cc:1715
 msgid "Calculating upgrade... "
 msgstr ""
 
-#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101
+#: cmdline/apt-get.cc:1718 methods/ftp.cc:702 methods/connect.cc:101
 msgid "Failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:1714
+#: cmdline/apt-get.cc:1723
 msgid "Done"
 msgstr ""
 
-#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787
+#: cmdline/apt-get.cc:1788 cmdline/apt-get.cc:1796
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1887
+#: cmdline/apt-get.cc:1896
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146
+#: cmdline/apt-get.cc:1926 cmdline/apt-get.cc:2155
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1961
+#: cmdline/apt-get.cc:1970
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1985
+#: cmdline/apt-get.cc:1994
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1990
+#: cmdline/apt-get.cc:1999
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1993
+#: cmdline/apt-get.cc:2002
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1999
+#: cmdline/apt-get.cc:2008
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2030
+#: cmdline/apt-get.cc:2039
 msgid "Failed to fetch some archives."
 msgstr ""
 
-#: cmdline/apt-get.cc:2058
+#: cmdline/apt-get.cc:2067
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2070
+#: cmdline/apt-get.cc:2079
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2071
+#: cmdline/apt-get.cc:2080
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2088
+#: cmdline/apt-get.cc:2097
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2107
+#: cmdline/apt-get.cc:2116
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2123
+#: cmdline/apt-get.cc:2132
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2151
+#: cmdline/apt-get.cc:2160
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2171
+#: cmdline/apt-get.cc:2180
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2223
+#: cmdline/apt-get.cc:2232
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2275
+#: cmdline/apt-get.cc:2284
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because no available versions of "
 "package %s can satisfy version requirements"
 msgstr ""
 
-#: cmdline/apt-get.cc:2310
+#: cmdline/apt-get.cc:2319
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 
-#: cmdline/apt-get.cc:2335
+#: cmdline/apt-get.cc:2344
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2349
+#: cmdline/apt-get.cc:2358
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2362
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2385
+#: cmdline/apt-get.cc:2394
 msgid "Supported modules:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2426
+#: cmdline/apt-get.cc:2435
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -2100,15 +2100,15 @@ msgstr ""
 msgid "extra"
 msgstr ""
 
-#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90
+#: apt-pkg/depcache.cc:60 apt-pkg/depcache.cc:89
 msgid "Building dependency tree"
 msgstr ""
 
-#: apt-pkg/depcache.cc:62
+#: apt-pkg/depcache.cc:61
 msgid "Candidate versions"
 msgstr ""
 
-#: apt-pkg/depcache.cc:91
+#: apt-pkg/depcache.cc:90
 msgid "Dependency generation"
 msgstr ""
 
@@ -2238,12 +2238,12 @@ msgstr ""
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 
-#: apt-pkg/init.cc:120
+#: apt-pkg/init.cc:122
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/init.cc:136
+#: apt-pkg/init.cc:138
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""