]> git.saurik.com Git - apt.git/commitdiff
* cmdline/apt-get.cc:
authorMichael Vogt <michael.vogt@ubuntu.com>
Thu, 10 Dec 2009 17:07:12 +0000 (18:07 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Thu, 10 Dec 2009 17:07:12 +0000 (18:07 +0100)
  - source should displays his final pkg pick (Closes: #249383, #550952)
  - source doesn't need the complete version for match (Closes: #245250)
  - source ignores versions/releases if not available (Closes: #377424)

cmdline/apt-get.cc
debian/changelog
po/apt-all.pot

index c32d67226a406e29e712641ea5b62530664ff22f..b9f9364208f0f0ac4b88b5d8e914d5d0941ea2d6 100644 (file)
@@ -1243,136 +1243,142 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
                               pkgSrcRecords &SrcRecs,string &Src,
                               pkgDepCache &Cache)
 {
-   // We want to pull the version off the package specification..
    string VerTag;
-   string DefRel;
+   string DefRel = _config->Find("APT::Default-Release");
    string TmpSrc = Name;
-   const size_t found = TmpSrc.find_last_of("/=");
 
-   // honor default release
-   if (found != string::npos && TmpSrc[found] == '/')
-   {
-      DefRel = TmpSrc.substr(found+1);
+   // extract the version/release from the pkgname
+   const size_t found = TmpSrc.find_last_of("/=");
+   if (found != string::npos) {
+      if (TmpSrc[found] == '/')
+        DefRel = TmpSrc.substr(found+1);
+      else
+        VerTag = TmpSrc.substr(found+1);
       TmpSrc = TmpSrc.substr(0,found);
    }
-   else
-      DefRel = _config->Find("APT::Default-Release");
-
-   pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
 
-   if (found != string::npos && TmpSrc[found] == '=')
+   /* Lookup the version of the package we would install if we were to
+      install a version and determine the source package name, then look
+      in the archive for a source package of the same name. */
+   bool MatchSrcOnly = _config->FindB("APT::Get::Only-Source");
+   const pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
+   if (MatchSrcOnly == false && Pkg.end() == false) 
    {
-      VerTag = TmpSrc.substr(found+1);
-      TmpSrc = TmpSrc.substr(0,found);
-   } 
-   else  if(!Pkg.end() && DefRel.empty() == false)
-   {
-      // we have a default release, try to locate the pkg. we do it like
-      // this because GetCandidateVer() will not "downgrade", that means
-      // "apt-get source -t stable apt" won't work on a unstable system
-      for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; 
-          Ver++)
+      if(VerTag.empty() == false || DefRel.empty() == false) 
       {
-        for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false;
-             VF++)
+        // we have a default release, try to locate the pkg. we do it like
+        // this because GetCandidateVer() will not "downgrade", that means
+        // "apt-get source -t stable apt" won't work on a unstable system
+        for (pkgCache::VerIterator Ver = Pkg.VersionList();
+             Ver.end() == false; Ver++) 
         {
-           /* If this is the status file, and the current version is not the
-              version in the status file (ie it is not installed, or somesuch)
-              then it is not a candidate for installation, ever. This weeds
-              out bogus entries that may be due to config-file states, or
-              other. */
-           if ((VF.File()->Flags & pkgCache::Flag::NotSource) == 
-               pkgCache::Flag::NotSource && Pkg.CurrentVer() != Ver)
-           continue;
-           
-           if((VF.File().Archive() != 0 && VF.File().Archive() == DefRel) ||
-               (VF.File().Codename() != 0 && VF.File().Codename() == DefRel))
+           for (pkgCache::VerFileIterator VF = Ver.FileList();
+                VF.end() == false; VF++) 
            {
-              pkgRecords::Parser &Parse = Recs.Lookup(VF);
-              VerTag = Parse.SourceVer();
-              if (VerTag.empty())
-                 VerTag = Ver.VerStr();
-              break;
+              /* If this is the status file, and the current version is not the
+                 version in the status file (ie it is not installed, or somesuch)
+                 then it is not a candidate for installation, ever. This weeds
+                 out bogus entries that may be due to config-file states, or
+                 other. */
+              if ((VF.File()->Flags & pkgCache::Flag::NotSource) ==
+                  pkgCache::Flag::NotSource && Pkg.CurrentVer() != Ver)
+                 continue;
+
+              // We match against a concrete version (or a part of this version)
+              if (VerTag.empty() == false && strncmp(VerTag.c_str(), Ver.VerStr(), VerTag.size()) != 0)
+                 continue;
+
+              // or we match against a release
+              if(VerTag.empty() == false ||
+                 (VF.File().Archive() != 0 && VF.File().Archive() == DefRel) ||
+                 (VF.File().Codename() != 0 && VF.File().Codename() == DefRel)) 
+              {
+                 pkgRecords::Parser &Parse = Recs.Lookup(VF);
+                 Src = Parse.SourcePkg();
+                 if (VerTag.empty() == true)
+                    VerTag = Parse.SourceVer();
+                 break;
+              }
            }
         }
+        if (Src.empty() == true) 
+        {
+           if (VerTag.empty() == false)
+              _error->Warning(_("Ignore unavailable version '%s' of package '%s'"), VerTag.c_str(), TmpSrc.c_str());
+           else
+              _error->Warning(_("Ignore unavailable target release '%s' of package '%s'"), DefRel.c_str(), TmpSrc.c_str());
+           VerTag.clear();
+           DefRel.clear();
+        }
       }
-   }
-
-   /* Lookup the version of the package we would install if we were to
-      install a version and determine the source package name, then look
-      in the archive for a source package of the same name. */
-   bool MatchSrcOnly = _config->FindB("APT::Get::Only-Source");
-   if (MatchSrcOnly == false)
-   {
-      if (Pkg.end() == false)
+      if (VerTag.empty() == true && DefRel.empty() == true) 
       {
+        // if we don't have a version or default release, use the CandidateVer to find the Source
         pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);
-        if (Ver.end() == false)
+        if (Ver.end() == false) 
         {
            pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList());
            Src = Parse.SourcePkg();
+           VerTag = Parse.SourceVer();
         }
-      }   
+      }
+   }
+
+   if (Src.empty() == true)
+      Src = TmpSrc;
+   else 
+   {
+      /* if we have a source pkg name, make sure to only search
+        for srcpkg names, otherwise apt gets confused if there
+        is a binary package "pkg1" and a source package "pkg1"
+        with the same name but that comes from different packages */
+      MatchSrcOnly = true;
+      if (Src != TmpSrc) 
+      {
+        ioprintf(c1out, _("Picking '%s' as source package instead of '%s'\n"), Src.c_str(), TmpSrc.c_str());
+      }
    }
 
    // The best hit
    pkgSrcRecords::Parser *Last = 0;
    unsigned long Offset = 0;
    string Version;
-   bool IsMatch = false;
 
-   // No source package name..
-   if (Src.empty() == true)
-      Src = TmpSrc;
-   else 
-      // if we have a source pkg name, make sure to only search
-      // for srcpkg names, otherwise apt gets confused if there
-      // is a binary package "pkg1" and a source package "pkg1"
-      // with the same name but that comes from different packages
-      MatchSrcOnly = true;
-   
-   // If we are matching by version then we need exact matches to be happy
-   if (VerTag.empty() == false)
-      IsMatch = true;
-   
    /* Iterate over all of the hits, which includes the resulting
       binary packages in the search */
    pkgSrcRecords::Parser *Parse;
-   SrcRecs.Restart();
-   while ((Parse = SrcRecs.Find(Src.c_str(), MatchSrcOnly)) != 0)
+   while (true) 
    {
-      string Ver = Parse->Version();
-
-      // show name mismatches
-      if (IsMatch == true && Parse->Package() != Src)       
-        ioprintf(c1out,  _("No source package '%s' picking '%s' instead\n"), Src.c_str(), Parse->Package().c_str());
-      
-      if (VerTag.empty() == false)
+      SrcRecs.Restart();
+      while ((Parse = SrcRecs.Find(Src.c_str(), MatchSrcOnly)) != 0) 
       {
-        /* Don't want to fall through because we are doing exact version 
-           matching. */
-        if (Cache.VS().CmpVersion(VerTag,Ver) != 0)
+        const string Ver = Parse->Version();
+
+        // Ignore all versions which doesn't fit
+        if (VerTag.empty() == false && strncmp(VerTag.c_str(), Ver.c_str(), VerTag.size()) != 0)
            continue;
-        
-        Last = Parse;
-        Offset = Parse->Offset();
-        break;
+
+        // Newer version or an exact match? Save the hit
+        if (Last == 0 || Cache.VS().CmpVersion(Version,Ver) < 0) {
+           Last = Parse;
+           Offset = Parse->Offset();
+           Version = Ver;
+        }
+
+        // was the version check above an exact match? If so, we don't need to look further
+        if (VerTag.empty() == false && VerTag.size() == Ver.size())
+           break;
       }
-                                 
-      // Newer version or an exact match
-      if (Last == 0 || Cache.VS().CmpVersion(Version,Ver) < 0 || 
-         (Parse->Package() == Src && IsMatch == false))
-      {
-        IsMatch = Parse->Package() == Src;
-        Last = Parse;
-        Offset = Parse->Offset();
-        Version = Ver;
-      }      
+      if (Last != 0 || VerTag.empty() == true)
+        break;
+      //if (VerTag.empty() == false && Last == 0)
+      _error->Warning(_("Ignore unavailable version '%s' of package '%s'"), VerTag.c_str(), TmpSrc.c_str());
+      VerTag.clear();
    }
-   
+
    if (Last == 0 || Last->Jump(Offset) == false)
       return 0;
-   
+
    return Last;
 }
                                                                        /*}}}*/
index 60893ad757e38fa2a750e970bcf9ab78125c8b91..24b166fd6a719801757f87f1ef47f2ad35f89b83 100644 (file)
@@ -58,6 +58,10 @@ apt (0.7.25) UNRELEASED; urgency=low
     - add note about additional apt-transport-methods
   * doc/apt-mark.8.xml:
     - correct showauto synopsis, thanks Andrew Schulman (Closes: #551440)
+  * cmdline/apt-get.cc:
+    - source should displays his final pkg pick (Closes: #249383, #550952)
+    - source doesn't need the complete version for match (Closes: #245250)
+    - source ignores versions/releases if not available (Closes: #377424)
 
   [ Julian Andres Klode ]
   * doc/apt.conf.5.xml:
index f894f121e41d9d78b4234a8943b2d7de3503b565..f464ef19820b7376087259c9c9b9deac53e792ff 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-30 18:47+0200\n"
+"POT-Creation-Date: 2009-10-19 21:03+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"
@@ -151,7 +151,7 @@ msgstr ""
 
 #: cmdline/apt-cache.cc:1718 cmdline/apt-cdrom.cc:134 cmdline/apt-config.cc:70
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547
-#: cmdline/apt-get.cc:2651 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2645 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr ""
@@ -549,7 +549,7 @@ msgstr ""
 msgid "Y"
 msgstr ""
 
-#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1720
+#: cmdline/apt-get.cc:149 cmdline/apt-get.cc:1714
 #, c-format
 msgid "Regex compilation error - %s"
 msgstr ""
@@ -708,11 +708,11 @@ msgstr ""
 msgid "Internal error, Ordering didn't finish"
 msgstr ""
 
-#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2062 cmdline/apt-get.cc:2095
+#: cmdline/apt-get.cc:811 cmdline/apt-get.cc:2056 cmdline/apt-get.cc:2089
 msgid "Unable to lock the download directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2143 cmdline/apt-get.cc:2392
+#: cmdline/apt-get.cc:821 cmdline/apt-get.cc:2137 cmdline/apt-get.cc:2386
 #: apt-pkg/cachefile.cc:65
 msgid "The list of sources could not be read."
 msgstr ""
@@ -741,7 +741,7 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:866 cmdline/apt-get.cc:2238
+#: cmdline/apt-get.cc:866 cmdline/apt-get.cc:2232
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
@@ -775,7 +775,7 @@ msgstr ""
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 
-#: cmdline/apt-get.cc:989 cmdline/apt-get.cc:2289 apt-pkg/algorithms.cc:1389
+#: cmdline/apt-get.cc:989 cmdline/apt-get.cc:2283 apt-pkg/algorithms.cc:1389
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
@@ -784,7 +784,7 @@ msgstr ""
 msgid "Some files failed to download"
 msgstr ""
 
-#: cmdline/apt-get.cc:1008 cmdline/apt-get.cc:2298
+#: cmdline/apt-get.cc:1008 cmdline/apt-get.cc:2292
 msgid "Download complete and in download only mode"
 msgstr ""
 
@@ -876,39 +876,50 @@ msgstr ""
 msgid "Selected version %s (%s) for %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1348
+#. if (VerTag.empty() == false && Last == 0)
+#: cmdline/apt-get.cc:1301 cmdline/apt-get.cc:1363
 #, c-format
-msgid "No source package '%s' picking '%s' instead\n"
+msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1385
+#: cmdline/apt-get.cc:1303
+#, c-format
+msgid "Ignore unavailable target release '%s' of package '%s'"
+msgstr ""
+
+#: cmdline/apt-get.cc:1328
+#, c-format
+msgid "Picking '%s' as source package instead of '%s'\n"
+msgstr ""
+
+#: cmdline/apt-get.cc:1379
 msgid "The update command takes no arguments"
 msgstr ""
 
-#: cmdline/apt-get.cc:1398
+#: cmdline/apt-get.cc:1392
 msgid "Unable to lock the list directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:1454
+#: cmdline/apt-get.cc:1448
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1503
+#: cmdline/apt-get.cc:1497
 msgid ""
 "The following packages were automatically installed and are no longer "
 "required:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1505
+#: cmdline/apt-get.cc:1499
 #, c-format
 msgid "%lu packages were automatically installed and are no longer required.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1506
+#: cmdline/apt-get.cc:1500
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1511
+#: cmdline/apt-get.cc:1505
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -924,49 +935,49 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1514 cmdline/apt-get.cc:1804
+#: cmdline/apt-get.cc:1508 cmdline/apt-get.cc:1798
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1518
+#: cmdline/apt-get.cc:1512
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1537
+#: cmdline/apt-get.cc:1531
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1592
+#: cmdline/apt-get.cc:1586
 #, c-format
 msgid "Couldn't find task %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1707 cmdline/apt-get.cc:1743
+#: cmdline/apt-get.cc:1701 cmdline/apt-get.cc:1737
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1730
+#: cmdline/apt-get.cc:1724
 #, c-format
 msgid "Note, selecting %s for regex '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1761
+#: cmdline/apt-get.cc:1755
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1774
+#: cmdline/apt-get.cc:1768
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1777
+#: cmdline/apt-get.cc:1771
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1789
+#: cmdline/apt-get.cc:1783
 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"
@@ -974,152 +985,152 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1807
+#: cmdline/apt-get.cc:1801
 msgid "Broken packages"
 msgstr ""
 
-#: cmdline/apt-get.cc:1836
+#: cmdline/apt-get.cc:1830
 msgid "The following extra packages will be installed:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1925
+#: cmdline/apt-get.cc:1919
 msgid "Suggested packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1926
+#: cmdline/apt-get.cc:1920
 msgid "Recommended packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1955
+#: cmdline/apt-get.cc:1949
 msgid "Calculating upgrade... "
 msgstr ""
 
-#: cmdline/apt-get.cc:1958 methods/ftp.cc:707 methods/connect.cc:112
+#: cmdline/apt-get.cc:1952 methods/ftp.cc:707 methods/connect.cc:112
 msgid "Failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:1963
+#: cmdline/apt-get.cc:1957
 msgid "Done"
 msgstr ""
 
-#: cmdline/apt-get.cc:2030 cmdline/apt-get.cc:2038
+#: cmdline/apt-get.cc:2024 cmdline/apt-get.cc:2032
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:2138
+#: cmdline/apt-get.cc:2132
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2168 cmdline/apt-get.cc:2410
+#: cmdline/apt-get.cc:2162 cmdline/apt-get.cc:2404
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2217
+#: cmdline/apt-get.cc:2211
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2248
+#: cmdline/apt-get.cc:2242
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2254
+#: cmdline/apt-get.cc:2248
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2257
+#: cmdline/apt-get.cc:2251
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2263
+#: cmdline/apt-get.cc:2257
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2294
+#: cmdline/apt-get.cc:2288
 msgid "Failed to fetch some archives."
 msgstr ""
 
-#: cmdline/apt-get.cc:2322
+#: cmdline/apt-get.cc:2316
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2334
+#: cmdline/apt-get.cc:2328
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2335
+#: cmdline/apt-get.cc:2329
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2352
+#: cmdline/apt-get.cc:2346
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2371
+#: cmdline/apt-get.cc:2365
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2387
+#: cmdline/apt-get.cc:2381
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2415
+#: cmdline/apt-get.cc:2409
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2435
+#: cmdline/apt-get.cc:2429
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2487
+#: cmdline/apt-get.cc:2481
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2540
+#: cmdline/apt-get.cc:2534
 #, 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:2576
+#: cmdline/apt-get.cc:2570
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 
-#: cmdline/apt-get.cc:2603
+#: cmdline/apt-get.cc:2597
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2619
+#: cmdline/apt-get.cc:2613
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2624
+#: cmdline/apt-get.cc:2618
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2656
+#: cmdline/apt-get.cc:2650
 msgid "Supported modules:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2697
+#: cmdline/apt-get.cc:2691
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1163,7 +1174,7 @@ msgid ""
 "                       This APT has Super Cow Powers.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2864
+#: cmdline/apt-get.cc:2858
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"