Browse Source

merged lp:~donkult/apt/sid

Michael Vogt 16 years ago
parent
commit
ff371080d8
74 changed files with 23176 additions and 18889 deletions
  1. 0 12
      README.arch
  2. 1 2
      apt-pkg/acquire-item.cc
  3. 2 2
      apt-pkg/contrib/mmap.cc
  4. 8 1
      apt-pkg/deb/dpkgpm.cc
  5. 11 10
      apt-pkg/depcache.cc
  6. 2 2
      apt-pkg/init.cc
  7. 14 2
      apt-pkg/packagemanager.h
  8. 2 2
      apt-pkg/policy.cc
  9. 4 4
      apt-pkg/sourcelist.cc
  10. 43 20
      cmdline/apt-get.cc
  11. 50 2
      debian/changelog
  12. 0 18
      debian/libapt-pkg-doc.doc-base.cache
  13. 31 79
      debian/rules
  14. 1 1
      doc/apt-ftparchive.1.xml
  15. 7 21
      doc/apt-get.8.xml
  16. 3 2
      doc/apt.conf.5.xml
  17. 4 6
      doc/apt.ent
  18. 19 11
      doc/apt_preferences.5.xml
  19. 265 215
      doc/po/apt-doc.pot
  20. 339 226
      doc/po/de.po
  21. 336 222
      doc/po/es.po
  22. 476 484
      doc/po/fr.po
  23. 265 217
      doc/po/it.po
  24. 334 225
      doc/po/ja.po
  25. 289 218
      doc/po/pl.po
  26. 336 223
      doc/po/pt.po
  27. 283 222
      doc/po/pt_BR.po
  28. 4 4
      doc/sources.list.5.xml
  29. 17 25
      methods/gpgv.cc
  30. 11 8
      methods/rred.cc
  31. 376 338
      po/apt-all.pot
  32. 446 371
      po/ar.po
  33. 458 373
      po/ast.po
  34. 463 375
      po/bg.po
  35. 446 370
      po/bs.po
  36. 457 373
      po/ca.po
  37. 456 373
      po/cs.po
  38. 459 373
      po/cy.po
  39. 460 377
      po/da.po
  40. 460 374
      po/de.po
  41. 454 373
      po/dz.po
  42. 460 374
      po/el.po
  43. 457 373
      po/en_GB.po
  44. 459 376
      po/es.po
  45. 457 373
      po/eu.po
  46. 458 373
      po/fi.po
  47. 469 377
      po/fr.po
  48. 455 373
      po/gl.po
  49. 451 373
      po/hu.po
  50. 461 374
      po/it.po
  51. 457 373
      po/ja.po
  52. 452 373
      po/km.po
  53. 459 374
      po/ko.po
  54. 451 375
      po/ku.po
  55. 453 375
      po/lt.po
  56. 453 373
      po/mr.po
  57. 459 374
      po/nb.po
  58. 452 373
      po/ne.po
  59. 461 374
      po/nl.po
  60. 454 373
      po/nn.po
  61. 461 374
      po/pl.po
  62. 458 373
      po/pt.po
  63. 462 373
      po/pt_BR.po
  64. 464 375
      po/ro.po
  65. 464 376
      po/ru.po
  66. 461 374
      po/sk.po
  67. 453 373
      po/sl.po
  68. 456 373
      po/sv.po
  69. 453 373
      po/th.po
  70. 454 373
      po/tl.po
  71. 457 373
      po/uk.po
  72. 456 373
      po/vi.po
  73. 454 374
      po/zh_CN.po
  74. 453 373
      po/zh_TW.po

+ 0 - 12
README.arch

@@ -1,12 +0,0 @@
-
-You can build apt from arch, but this needs the following additional
-packages (in addtion to the usual build-depends):
-autoconf automake xmlto perlsgml sgml2x sgmlspl docbook doxygen
-
-then run:
-
-$ debian/rules arch-build
-
-that will build packages in the "debian/arch-build" directory. It will
-honor "DEB_BUILD_PROG_OPTS" as options that are passed to debuild (e.g. -S 
-may be usefull).

+ 1 - 2
apt-pkg/acquire-item.cc

@@ -1685,7 +1685,6 @@ string pkgAcqFile::Custom600Headers()
 {
 {
    if (IsIndexFile)
    if (IsIndexFile)
       return "\nIndex-File: true";
       return "\nIndex-File: true";
-   else
-      return string();
+   return "";
 }
 }
 									/*}}}*/
 									/*}}}*/

+ 2 - 2
apt-pkg/contrib/mmap.cc

@@ -392,8 +392,8 @@ unsigned long DynamicMMap::WriteString(const char *String,
    the nearly impossible 4 to grow it before it finally give up: Never say never. */
    the nearly impossible 4 to grow it before it finally give up: Never say never. */
 bool DynamicMMap::Grow() {
 bool DynamicMMap::Grow() {
 	if (Limit != 0 && WorkSpace >= Limit)
 	if (Limit != 0 && WorkSpace >= Limit)
-		return _error->Error(_("The size of a MMap has already reached the defined limit of %lu bytes,"
-		                       "abort the try to grow the MMap."), Limit);
+		return _error->Error(_("Unable to increase the size of the MMap as the "
+		                       "limit of %lu bytes is already reached."), Limit);
 
 
 	unsigned long const newSize = WorkSpace + 1024*1024;
 	unsigned long const newSize = WorkSpace + 1024*1024;
 
 

+ 8 - 1
apt-pkg/deb/dpkgpm.cc

@@ -50,6 +50,7 @@ namespace
     std::make_pair("configure", N_("Configuring %s")),
     std::make_pair("configure", N_("Configuring %s")),
     std::make_pair("remove",    N_("Removing %s")),
     std::make_pair("remove",    N_("Removing %s")),
     std::make_pair("purge",    N_("Completely removing %s")),
     std::make_pair("purge",    N_("Completely removing %s")),
+    std::make_pair("disappear", N_("Noting disappearance of %s")),
     std::make_pair("trigproc",  N_("Running post-installation trigger %s"))
     std::make_pair("trigproc",  N_("Running post-installation trigger %s"))
   };
   };
 
 
@@ -419,7 +420,8 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
       'processing: install: pkg'
       'processing: install: pkg'
       'processing: configure: pkg'
       'processing: configure: pkg'
       'processing: remove: pkg'
       'processing: remove: pkg'
-      'processing: purge: pkg' - but for apt is it a ignored "unknown" action
+      'processing: purge: pkg'
+      'processing: disappear: pkg'
       'processing: trigproc: trigger'
       'processing: trigproc: trigger'
 	    
 	    
    */
    */
@@ -466,6 +468,9 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
 	 write(OutStatusFd, status.str().c_str(), status.str().size());
 	 write(OutStatusFd, status.str().c_str(), status.str().size());
       if (Debug == true)
       if (Debug == true)
 	 std::clog << "send: '" << status.str() << "'" << endl;
 	 std::clog << "send: '" << status.str() << "'" << endl;
+
+      if (strncmp(action, "disappear", strlen("disappear")) == 0)
+	 disappearedPkgs.insert(string(pkg_or_trigger));
       return;
       return;
    }
    }
 
 
@@ -911,6 +916,8 @@ bool pkgDPkgPM::Go(int OutStatusFd)
 	 {
 	 {
 	    if((*I).Pkg.end() == true)
 	    if((*I).Pkg.end() == true)
 	       continue;
 	       continue;
+	    if (I->Op == Item::Configure && disappearedPkgs.find(I->Pkg.Name()) != disappearedPkgs.end())
+	       continue;
 	    Args[n++] = I->Pkg.Name();
 	    Args[n++] = I->Pkg.Name();
 	    Size += strlen(Args[n-1]);
 	    Size += strlen(Args[n-1]);
 	 }	 
 	 }	 

+ 11 - 10
apt-pkg/depcache.cc

@@ -804,17 +804,18 @@ void pkgDepCache::Update(OpProgress *Prog)
       /* FIXME: recheck breaks proper progress reporting as we don't know
       /* FIXME: recheck breaks proper progress reporting as we don't know
 		how many packages we need to recheck. To lower the effect
 		how many packages we need to recheck. To lower the effect
 		a bit we increase with a kill, but we should do something more clever… */
 		a bit we increase with a kill, but we should do something more clever… */
-      for(std::set<unsigned long>::const_iterator p = recheck.begin();
-	  p != recheck.end(); ++p) {
-	 if (Prog != 0 && Done%20 == 0)
-	    Prog->Progress(Done);
-	 PkgIterator P = PkgIterator(*Cache, Cache->PkgP + *p);
-	 if (RemovePseudoInstalledPkg(P, recheck) == true) {
-	    ++killed;
-	    ++Done;
+      while(recheck.empty() == false)
+	 for (std::set<unsigned long>::const_iterator p = recheck.begin();
+	     p != recheck.end(); ++p) {
+	    if (Prog != 0 && Done%20 == 0)
+	       Prog->Progress(Done);
+	    PkgIterator P = PkgIterator(*Cache, Cache->PkgP + *p);
+	    if (RemovePseudoInstalledPkg(P, recheck) == true) {
+	       ++killed;
+	       ++Done;
+	    }
+	    recheck.erase(p);
 	 }
 	 }
-	 recheck.erase(p);
-      }
 
 
       /* Okay, we have killed a great amount of pseudopackages -
       /* Okay, we have killed a great amount of pseudopackages -
 	 we have killed so many that we have now arch "all" packages
 	 we have killed so many that we have now arch "all" packages

+ 2 - 2
apt-pkg/init.cc

@@ -94,10 +94,10 @@ bool pkgInitConfig(Configuration &Cnf)
 
 
    // Read the configuration parts dir
    // Read the configuration parts dir
    string Parts = Cnf.FindDir("Dir::Etc::parts");
    string Parts = Cnf.FindDir("Dir::Etc::parts");
-   if (FileExists(Parts) == true)
+   if (DirectoryExists(Parts) == true)
       Res &= ReadConfigDir(Cnf,Parts);
       Res &= ReadConfigDir(Cnf,Parts);
    else
    else
-      _error->WarningE("FileExists",_("Unable to read %s"),Parts.c_str());
+      _error->WarningE("DirectoryExists",_("Unable to read %s"),Parts.c_str());
 
 
    // Read the main config file
    // Read the main config file
    string FName = Cnf.FindFile("Dir::Etc::main");
    string FName = Cnf.FindFile("Dir::Etc::main");

+ 14 - 2
apt-pkg/packagemanager.h

@@ -28,6 +28,7 @@
 #include <iostream>
 #include <iostream>
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/depcache.h>
 #include <apt-pkg/depcache.h>
+#include <set>
 
 
 using std::string;
 using std::string;
 
 
@@ -47,7 +48,15 @@ class pkgPackageManager : protected pkgCache::Namespace
    pkgDepCache &Cache;
    pkgDepCache &Cache;
    pkgOrderList *List;
    pkgOrderList *List;
    bool Debug;
    bool Debug;
-         
+
+   /** \brief saves packages dpkg let disappear
+
+       This way APT can retreat from trying to configure these
+       packages later on and a frontend can choose to display a
+       notice to inform the user about these disappears.
+   */
+   std::set<std::string> disappearedPkgs;
+
    bool DepAdd(pkgOrderList &Order,PkgIterator P,int Depth = 0);
    bool DepAdd(pkgOrderList &Order,PkgIterator P,int Depth = 0);
    void ImmediateAdd(PkgIterator P, bool UseInstallVer, unsigned const int &Depth = 0);
    void ImmediateAdd(PkgIterator P, bool UseInstallVer, unsigned const int &Depth = 0);
    virtual OrderResult OrderInstall();
    virtual OrderResult OrderInstall();
@@ -93,7 +102,10 @@ class pkgPackageManager : protected pkgCache::Namespace
    // stuff that needs to be done after the fork
    // stuff that needs to be done after the fork
    OrderResult DoInstallPostFork(int statusFd=-1);
    OrderResult DoInstallPostFork(int statusFd=-1);
    bool FixMissing();
    bool FixMissing();
-   
+
+   /** \brief returns all packages dpkg let disappear */
+   inline std::set<std::string> GetDisappearedPackages() { return disappearedPkgs; };
+
    pkgPackageManager(pkgDepCache *Cache);
    pkgPackageManager(pkgDepCache *Cache);
    virtual ~pkgPackageManager();
    virtual ~pkgPackageManager();
 };
 };

+ 2 - 2
apt-pkg/policy.cc

@@ -291,9 +291,9 @@ bool ReadPinDir(pkgPolicy &Plcy,string Dir)
    if (Dir.empty() == true)
    if (Dir.empty() == true)
       Dir = _config->FindDir("Dir::Etc::PreferencesParts");
       Dir = _config->FindDir("Dir::Etc::PreferencesParts");
 
 
-   if (FileExists(Dir) == false)
+   if (DirectoryExists(Dir) == false)
    {
    {
-      _error->WarningE("FileExists",_("Unable to read %s"),Dir.c_str());
+      _error->WarningE("DirectoryExists",_("Unable to read %s"),Dir.c_str());
       return true;
       return true;
    }
    }
 
 

+ 4 - 4
apt-pkg/sourcelist.cc

@@ -199,15 +199,15 @@ bool pkgSourceList::ReadMainList()
    
    
    if (FileExists(Main) == true)
    if (FileExists(Main) == true)
       Res &= ReadAppend(Main);
       Res &= ReadAppend(Main);
-   else if (FileExists(Parts) == false)
+   else if (DirectoryExists(Parts) == false)
       // Only warn if there are no sources.list.d.
       // Only warn if there are no sources.list.d.
-      _error->WarningE("FileExists",_("Unable to read %s"),Main.c_str());
+      _error->WarningE("DirectoryExists", _("Unable to read %s"), Parts.c_str());
 
 
-   if (FileExists(Parts) == true)
+   if (DirectoryExists(Parts) == true)
       Res &= ReadSourceDir(Parts);
       Res &= ReadSourceDir(Parts);
    else if (FileExists(Main) == false)
    else if (FileExists(Main) == false)
       // Only warn if there is no sources.list file.
       // Only warn if there is no sources.list file.
-      _error->WarningE("FileExists",_("Unable to read %s"),Parts.c_str());
+      _error->WarningE("FileExists", _("Unable to read %s"), Main.c_str());
 
 
    return Res;
    return Res;
 }
 }

+ 43 - 20
cmdline/apt-get.cc

@@ -1044,7 +1044,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
       if (Res == pkgPackageManager::Failed || _error->PendingError() == true)
       if (Res == pkgPackageManager::Failed || _error->PendingError() == true)
 	 return false;
 	 return false;
       if (Res == pkgPackageManager::Completed)
       if (Res == pkgPackageManager::Completed)
-	 return true;
+	 break;
       
       
       // Reload the fetcher object and loop again for media swapping
       // Reload the fetcher object and loop again for media swapping
       Fetcher.Shutdown();
       Fetcher.Shutdown();
@@ -1052,7 +1052,24 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
 	 return false;
 	 return false;
       
       
       _system->Lock();
       _system->Lock();
-   }   
+   }
+
+   std::set<std::string> const disappearedPkgs = PM->GetDisappearedPackages();
+   if (disappearedPkgs.empty() == true)
+      return true;
+
+   string disappear;
+   for (std::set<std::string>::const_iterator d = disappearedPkgs.begin();
+	d != disappearedPkgs.end(); ++d)
+      disappear.append(*d).append(" ");
+
+   ShowList(c1out, P_("The following package disappeared from your system as\n"
+	"all files have been overwritten by other packages:",
+	"The following packages disappeared from your system as\n"
+	"all files have been overwritten by other packages:", disappearedPkgs.size()), disappear, "");
+   c0out << _("Note: This is done automatic and on purpose by dpkg.") << std::endl;
+
+   return true;
 }
 }
 									/*}}}*/
 									/*}}}*/
 // TryToInstall - Try to install a single package			/*{{{*/
 // TryToInstall - Try to install a single package			/*{{{*/
@@ -1936,9 +1953,10 @@ bool DoInstall(CommandLine &CmdL)
 	    {
 	    {
 	       /* Skip if package is  installed already, or is about to be */
 	       /* Skip if package is  installed already, or is about to be */
 	       string target = Start.TargetPkg().FullName(true) + " ";
 	       string target = Start.TargetPkg().FullName(true) + " ";
-	       
-	       if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install
-		   || Cache[Start.TargetPkg()].Install())
+	       pkgCache::PkgIterator const TarPkg = Start.TargetPkg();
+	       if (TarPkg->SelectedState == pkgCache::State::Install ||
+		   TarPkg->SelectedState == pkgCache::State::Hold ||
+		   Cache[Start.TargetPkg()].Install())
 	       {
 	       {
 		  foundInstalledInOrGroup=true;
 		  foundInstalledInOrGroup=true;
 		  break;
 		  break;
@@ -2270,6 +2288,14 @@ bool DoSource(CommandLine &CmdL)
    // insert all downloaded uris into this set to avoid downloading them
    // insert all downloaded uris into this set to avoid downloading them
    // twice
    // twice
    set<string> queued;
    set<string> queued;
+
+   // Diff only mode only fetches .diff files
+   bool const diffOnly = _config->FindB("APT::Get::Diff-Only", false);
+   // Tar only mode only fetches .tar files
+   bool const tarOnly = _config->FindB("APT::Get::Tar-Only", false);
+   // Dsc only mode only fetches .dsc files
+   bool const dscOnly = _config->FindB("APT::Get::Dsc-Only", false);
+
    // Load the requestd sources into the fetcher
    // Load the requestd sources into the fetcher
    unsigned J = 0;
    unsigned J = 0;
    for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
    for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
@@ -2296,21 +2322,17 @@ bool DoSource(CommandLine &CmdL)
 	    Dsc[J].Version = Last->Version();
 	    Dsc[J].Version = Last->Version();
 	    Dsc[J].Dsc = flNotDir(I->Path);
 	    Dsc[J].Dsc = flNotDir(I->Path);
 	 }
 	 }
-	 
-	 // Diff only mode only fetches .diff files
-	 if (_config->FindB("APT::Get::Diff-Only",false) == true &&
-	     I->Type != "diff")
-	    continue;
-	 
-	 // Tar only mode only fetches .tar files
-	 if (_config->FindB("APT::Get::Tar-Only",false) == true &&
-	     I->Type != "tar")
-	    continue;
 
 
-	 // Dsc only mode only fetches .dsc files
-	 if (_config->FindB("APT::Get::Dsc-Only",false) == true &&
-	     I->Type != "dsc")
-	    continue;
+	 // Handle the only options so that multiple can be used at once
+	 if (diffOnly == true || tarOnly == true || dscOnly == true)
+	 {
+	    if ((diffOnly == true && I->Type == "diff") ||
+	        (tarOnly == true && I->Type == "tar") ||
+	        (dscOnly == true && I->Type == "dsc"))
+		; // Fine, we want this file downloaded
+	    else
+	       continue;
+	 }
 
 
 	 // don't download the same uri twice (should this be moved to
 	 // don't download the same uri twice (should this be moved to
 	 // the fetcher interface itself?)
 	 // the fetcher interface itself?)
@@ -2424,6 +2446,7 @@ bool DoSource(CommandLine &CmdL)
    
    
    if (Process == 0)
    if (Process == 0)
    {
    {
+      bool const fixBroken = _config->FindB("APT::Get::Fix-Broken", false);
       for (unsigned I = 0; I != J; I++)
       for (unsigned I = 0; I != J; I++)
       {
       {
 	 string Dir = Dsc[I].Package + '-' + Cache->VS().UpstreamVersion(Dsc[I].Version.c_str());
 	 string Dir = Dsc[I].Package + '-' + Cache->VS().UpstreamVersion(Dsc[I].Version.c_str());
@@ -2436,7 +2459,7 @@ bool DoSource(CommandLine &CmdL)
 
 
 	 // See if the package is already unpacked
 	 // See if the package is already unpacked
 	 struct stat Stat;
 	 struct stat Stat;
-	 if (stat(Dir.c_str(),&Stat) == 0 &&
+	 if (fixBroken == false && stat(Dir.c_str(),&Stat) == 0 &&
 	     S_ISDIR(Stat.st_mode) != 0)
 	     S_ISDIR(Stat.st_mode) != 0)
 	 {
 	 {
 	    ioprintf(c0out ,_("Skipping unpack of already unpacked source in %s\n"),
 	    ioprintf(c0out ,_("Skipping unpack of already unpacked source in %s\n"),

+ 50 - 2
debian/changelog

@@ -1,9 +1,57 @@
 apt (0.7.26~exp5) UNRELEASED; urgency=low
 apt (0.7.26~exp5) UNRELEASED; urgency=low
 
 
+  [ David Kalnischkies ]
+  * cmdline/apt-get.cc:
+    - rerun dpkg-source in source if --fix-broken is given (Closes: #576752)
+    - don't suggest held packages as they are installed (Closes: #578135)
+    - handle multiple --{tar,diff,dsc}-only options correctly
+    - show at the end of the install process a list of disappeared packages
+  * cmdline/apt-cache.cc:
+    - use GroupCount for package names in stats and add a package struct line
+  * methods/rred.cc:
+    - use the patchfile modification time instead of the one from the
+      "old" file - thanks to Philipp Weis for noticing! (Closes: #571541)
+  * debian/rules:
+    - remove targets referring to CVS or arch as they are useless
+    - use $(CURDIR) instead of $(pwd)
+    - use dpkg-buildflags if available for CXXFLAGS
+  * README.arch:
+    - remove the file completely as it has no use nowadays
+  * apt-pkg/depcache.cc:
+    - be doublesure that the killer query is empty before starting reinstall
+  * methods/gpgv.cc:
+    - remove the keyrings count limit by using vector magic
+  * contrib/mmap.cc:
+    - clarify "MMap reached size limit" error message, thanks Ivan Masár!
+  * doc/apt.ent
+    - add entities for the current oldstable/stable/testing codenames
+  * doc/sources.list.5.xml:
+    - use stable-codename instead of stable in the examples (Closes: #531492)
+  * doc/apt_preferences.5.xml:
+    - adapt some examples here to use current codenames as well
+    - add "NotAutomatic: yes" handling, thanks Osamu Aoki (Closes: #490347)
+  * debian/libapt-pkg-doc.doc-base.cache:
+    - remove yet another reference to the removed cache.sgml
+  * doc/apt-get.8.xml:
+    - do not say explicit target_release_{name,version,codename}, it should
+      be clear by itself and 'man' can break lines again (Closes: #566166)
+    - remove the gnome-apt reference as it is removed from unstable
+  * apt-pkg/deb/dpkgpm.cc:
+    - add 'disappear' to the known processing states, thanks Jonathan Nieder
+  * apt-pkg/packagemanager.h:
+    - export info about disappeared packages with GetDisappearedPackages()
+
+  [ Jari Aalto ]
+  * debian/rules:
+    - spell out some less known options to reduce manpage consultation-rate
+    - Use POSIX command substitution: $(<command sequence>)
+    - Remove EOL whitespace (Closes: #577804)
+
+  [ Julian Andres Klode ]
   * apt-pkg/acquire-item.cc:
   * apt-pkg/acquire-item.cc:
     - Fix pkgAcqFile::Custom600Headers() to always return something.
     - Fix pkgAcqFile::Custom600Headers() to always return something.
-
- -- Julian Andres Klode <jak@debian.org>  Fri, 07 May 2010 09:18:45 +0200
+  
+ -- David Kalnischkies <kalnischkies@gmail.com>  Thu, 06 May 2010 16:10:39 +0200
 
 
 apt (0.7.26~exp4) experimental; urgency=low
 apt (0.7.26~exp4) experimental; urgency=low
 
 

+ 0 - 18
debian/libapt-pkg-doc.doc-base.cache

@@ -1,18 +0,0 @@
-Document: libapt-pkg-doc-cache
-Title: APT Cache Specification
-Author: Jason Gunthorpe
-Abstract: The APT Cache Specification describes the complete implementation
- and format of the APT Cache file. The APT Cache file is a way for APT to
- parse and store a large number of package files for display in the UI.
- It's primary design goal is to make display of a single package in the
- tree very fast by pre-linking important things like dependencies and
- provides. The specification doubles as documentation for one of the
- in-memory structures used by the package library and the APT GUI.
-Section: Debian
-
-Format: html
-Index: /usr/share/doc/libapt-pkg-doc/cache.html/index.html
-Files: /usr/share/doc/libapt-pkg-doc/cache.html/*.html
-
-Format: text
-Files: /usr/share/doc/libapt-pkg-doc/cache.text.gz

+ 31 - 79
debian/rules

@@ -27,10 +27,14 @@ endif
 # See below
 # See below
 -include build/environment.mak
 -include build/environment.mak
 
 
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-  export CXXFLAGS = -O0 -g -Wall
+ifneq (,$(shell which dpkg-buildflags))
+  export CXXFLAGS = $(shell dpkg-buildflags --get CXXFLAGS)
 else
 else
-  export CXXFLAGS = -O2 -g -Wall
+  ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+    export CXXFLAGS = -O0 -g -Wall
+  else
+    export CXXFLAGS = -O2 -g -Wall
+  endif
 endif
 endif
 
 
 # Default rule
 # Default rule
@@ -47,7 +51,7 @@ BASE=.
 ifdef BUILD
 ifdef BUILD
 BUILD_POSSIBLE := $(BUILD) $(BASE)/$(BUILD)
 BUILD_POSSIBLE := $(BUILD) $(BASE)/$(BUILD)
 else
 else
-BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname -m) $(BASE)/build
+BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname --machine) $(BASE)/build
 endif
 endif
 BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*))
 BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*))
 BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX))))
 BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX))))
@@ -82,9 +86,9 @@ LIBAPTPKG_PROVIDE=libapt-pkg$(LIBAPTPKG_MAJOR)
 LIBAPTINST_PROVIDE=libapt-inst$(LIBAPTINST_MAJOR)
 LIBAPTINST_PROVIDE=libapt-inst$(LIBAPTINST_MAJOR)
 
 
 debian/shlibs.local: apt-pkg/makefile
 debian/shlibs.local: apt-pkg/makefile
-	# We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and
+	# We have 3 shlibs.local files: One for 'apt', one for 'apt-utils' and
 	# one for the rest of the packages. This ensures that each package gets
 	# one for the rest of the packages. This ensures that each package gets
-	# the right overrides.. 
+	# the right overrides
 	rm -rf $@ $@.apt $@.apt-utils
 	rm -rf $@ $@.apt $@.apt-utils
 	echo "libapt-pkg $(LIBAPTPKG_MAJOR)" > $@.apt
 	echo "libapt-pkg $(LIBAPTPKG_MAJOR)" > $@.apt
 
 
@@ -94,8 +98,8 @@ debian/shlibs.local: apt-pkg/makefile
 	echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@
 	echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@
 	echo "libapt-inst $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@
 	echo "libapt-inst $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@
 
 
-build: build/build-stamp	
-build-doc: build/build-doc-stamp	
+build: build/build-stamp
+build-doc: build/build-doc-stamp
 
 
 # Note that this is unconditionally done first as part of loading environment.mak
 # Note that this is unconditionally done first as part of loading environment.mak
 # The true is needed to force make to reload environment.mak after running
 # The true is needed to force make to reload environment.mak after running
@@ -123,10 +127,8 @@ build/build-doc-stamp: build/configure-stamp
 
 
 clean:
 clean:
 	dh_testdir
 	dh_testdir
-#	dh_testroot
-	[ -f Makefile ] && $(MAKE) clean
-	[ -f Makefile ] && $(MAKE) distclean
 
 
+	[ ! -f Makefile ] || $(MAKE) clean distclean
 	rm -rf build
 	rm -rf build
 
 
 	# Add here commands to clean up after the build process.
 	# Add here commands to clean up after the build process.
@@ -141,23 +143,20 @@ libapt-pkg-doc: build-doc debian/shlibs.local
 	dh_installdirs -p$@
 	dh_installdirs -p$@
 #
 #
 # libapt-pkg-doc install
 # libapt-pkg-doc install
-#	
-	dh_installdocs -p$@ $(BLD)/docs/design* $(BLD)/docs/dpkg-tech* \
-                            $(BLD)/docs/files* $(BLD)/docs/method* \
-			    doc/libapt-pkg2_to_3.txt doc/style.txt \
+#
+	dh_installdocs -p$@ $(BLD)/docs/design* \
+			    $(BLD)/docs/dpkg-tech* \
+			    $(BLD)/docs/files* \
+			    $(BLD)/docs/method* \
+			    doc/libapt-pkg2_to_3.txt \
+			    doc/style.txt \
 			    $(BLD)/doc/doxygen/html
 			    $(BLD)/doc/doxygen/html
 	dh_installexamples -p$@
 	dh_installexamples -p$@
-#	dh_installmenu -p$@
-#	dh_installinit -p$@
-#	dh_installcron -p$@
-#	dh_installman -p$@
 
 
-#	dh_undocumented -p$@
 	dh_installchangelogs -p$@
 	dh_installchangelogs -p$@
 	dh_strip -p$@
 	dh_strip -p$@
 	dh_compress -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
 	dh_fixperms -p$@
-#	dh_suidregister -p$@
 	dh_installdeb -p$@
 	dh_installdeb -p$@
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
 	dh_md5sums -p$@
 	dh_md5sums -p$@
@@ -171,8 +170,10 @@ apt-doc: build-doc
 # apt-doc install
 # apt-doc install
 #
 #
 	# Copy the guides
 	# Copy the guides
-	dh_installdocs -p$@ $(BLD)/docs/guide*.text $(BLD)/docs/guide*.html \
-	               $(BLD)/docs/offline*.text $(BLD)/docs/offline*.html
+	dh_installdocs -p$@ $(BLD)/docs/guide*.text \
+			    $(BLD)/docs/guide*.html \
+			    $(BLD)/docs/offline*.text \
+			    $(BLD)/docs/offline*.html
 	dh_installchangelogs -p$@
 	dh_installchangelogs -p$@
 	dh_compress -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
 	dh_fixperms -p$@
@@ -215,7 +216,6 @@ apt: build build-doc debian/shlibs.local
 	cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt
 	cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt
 
 
 	cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove
 	cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove
-#	head -n 500 ChangeLog > debian/ChangeLog
 
 
 	# copy lintian override
 	# copy lintian override
 	cp share/lintian-overrides debian/$@/usr/share/lintian/overrides/apt
 	cp share/lintian-overrides debian/$@/usr/share/lintian/overrides/apt
@@ -233,9 +233,9 @@ apt: build build-doc debian/shlibs.local
 	dh_strip -p$@
 	dh_strip -p$@
 	dh_compress -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
 	dh_fixperms -p$@
-	dh_makeshlibs -p$@ -m$(LIBAPTPKG_MAJOR) -V '$(LIBAPTPKG_PROVIDE)'
+	dh_makeshlibs -p$@ --major=$(LIBAPTPKG_MAJOR) --version-info='$(LIBAPTPKG_PROVIDE)'
 	dh_installdeb -p$@
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt
+	dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
 	dh_md5sums -p$@
 	dh_md5sums -p$@
 	dh_builddeb -p$@
 	dh_builddeb -p$@
@@ -254,16 +254,11 @@ libapt-pkg-dev: build debian/shlibs.local
 	cp $(BLD)/include/apt-pkg/*.h debian/libapt-pkg-dev/usr/include/apt-pkg/
 	cp $(BLD)/include/apt-pkg/*.h debian/libapt-pkg-dev/usr/include/apt-pkg/
 
 
 	dh_installdocs -p$@
 	dh_installdocs -p$@
-#	dh_installmenu -p$@
-#	dh_installinit -p$@
-#	dh_installcron -p$@
-#	dh_installman -p$@
 
 
 	dh_installchangelogs -p$@
 	dh_installchangelogs -p$@
 	dh_strip -p$@
 	dh_strip -p$@
 	dh_compress -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
 	dh_fixperms -p$@
-#	dh_suidregister -p$@
 	dh_installdeb -p$@
 	dh_installdeb -p$@
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
 	dh_md5sums -p$@
 	dh_md5sums -p$@
@@ -291,9 +286,9 @@ apt-utils: build debian/shlibs.local
 	dh_strip -p$@
 	dh_strip -p$@
 	dh_compress -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
 	dh_fixperms -p$@
-	dh_makeshlibs -m$(LIBAPTINST_MAJOR) -V '$(LIBAPTINST_PROVIDE)' -p$@
+	dh_makeshlibs -p$@ --major=$(LIBAPTINST_MAJOR) --version-info='$(LIBAPTINST_PROVIDE)'
 	dh_installdeb -p$@
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils
+	dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils
 	dh_gencontrol -p$@ -u -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
 	dh_gencontrol -p$@ -u -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
 	dh_md5sums -p$@
 	dh_md5sums -p$@
 	dh_builddeb -p$@
 	dh_builddeb -p$@
@@ -305,7 +300,7 @@ apt-transport-https: build debian/shlibs.local libapt-pkg-dev
 	dh_installdirs -p$@
 	dh_installdirs -p$@
 
 
 	# install the method
 	# install the method
-	mkdir -p debian/$@/usr/lib/apt/methods
+	mkdir --parents debian/$@/usr/lib/apt/methods
 	cp $(BLD)/bin/methods/https debian/$@/usr/lib/apt/methods
 	cp $(BLD)/bin/methods/https debian/$@/usr/lib/apt/methods
 
 
 	dh_installdocs -p$@ debian/apt-transport-https.README
 	dh_installdocs -p$@ debian/apt-transport-https.README
@@ -319,61 +314,18 @@ apt-transport-https: build debian/shlibs.local libapt-pkg-dev
 	dh_compress -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
 	dh_fixperms -p$@
 	dh_installdeb -p$@
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib 
+	dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib
 	dh_gencontrol -p$@
 	dh_gencontrol -p$@
 	dh_md5sums -p$@
 	dh_md5sums -p$@
 	dh_builddeb -p$@
 	dh_builddeb -p$@
 
 
-source diff:
-	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
-
-# Update from CVS
-l33ch: really-clean
-	cvs update
-	buildlib/mkChangeLog
-
-# Update from CVS and then configure for build
-super-l33ch: l33ch Makefile.in
-
 configure:
 configure:
 	$(MAKE) configure
 	$(MAKE) configure
 
 
-l33ch-stamp: super-l33ch
-	touch $@
-
 really-clean: clean
 really-clean: clean
-	-find -name Makefile.in -print0 | xargs -0r rm -f
+	-find . -name Makefile.in -print0 | xargs --null --no-run-if-empty -- rm -f
 	find -name ChangeLog | xargs rm -f
 	find -name ChangeLog | xargs rm -f
 	rm -f l33ch-stamp
 	rm -f l33ch-stamp
 
 
 binary: binary-indep binary-arch
 binary: binary-indep binary-arch
 .PHONY: build clean binary-indep binary-arch binary debian/shlibs.local
 .PHONY: build clean binary-indep binary-arch binary debian/shlibs.local
-
-
-# Done by the uploader.
-#cvs update.. 
-#edit debian/changelog
-# configure.in has the version automatically updated now.
-# edit configure.in
-# debian/rules cvs-build
-
-CVS_BUILDDIR=apt-$(APT_DEBVER)
-CVS_ROOT=$(shell cat CVS/Root)
-CVS_MODULE=$(shell cat CVS/Repository)
-cvs-build:
-	rm -rf debian/cvs-build
-	mkdir -p debian/cvs-build
-	(cd debian/cvs-build;cvs -d $(CVS_ROOT) export -r$(APT_CVSTAG) -d apt-$(APT_DEBVER) $(CVS_MODULE))
-	$(MAKE) -C debian/cvs-build/$(CVS_BUILDDIR) startup doc
-	(cd debian/cvs-build/$(CVS_BUILDDIR);$(DEB_BUILD_PROG))
-
-cvs-mkul:
-	-mkdir -p ../upload-$(APT_DEBVER)
-	cp `find debian/cvs-build -maxdepth 1 -type f` ../upload-$(APT_DEBVER)
-
-arch-build:
-	rm -rf debian/arch-build
-	mkdir -p debian/arch-build/apt-$(APT_DEBVER)
-	tar -c --exclude=arch-build --no-recursion -f - `bzr inventory` | (cd debian/arch-build/$(PKG)-$(APT_DEBVER);tar xf -)
-	$(MAKE) -C debian/arch-build/apt-$(APT_DEBVER) startup doc
-	(cd debian/arch-build/apt-$(APT_DEBVER); $(DEB_BUILD_PROG); dpkg-genchanges -S > ../apt_$(APT_DEBVER)_source.changes)

+ 1 - 1
doc/apt-ftparchive.1.xml

@@ -363,7 +363,7 @@
      The <literal>Tree</literal> section takes a scope tag which sets the 
      The <literal>Tree</literal> section takes a scope tag which sets the 
      <literal>$(DIST)</literal> variable and defines the root of the tree 
      <literal>$(DIST)</literal> variable and defines the root of the tree 
      (the path is prefixed by <literal>ArchiveDir</literal>).
      (the path is prefixed by <literal>ArchiveDir</literal>).
-     Typically this is a setting such as <filename>dists/woody</filename>.</para>
+     Typically this is a setting such as <filename>dists/&stable-codename;</filename>.</para>
      <para>
      <para>
      All of the settings defined in the <literal>TreeDefault</literal> section can be
      All of the settings defined in the <literal>TreeDefault</literal> section can be
      use in a <literal>Tree</literal> section as well as three new variables.</para>
      use in a <literal>Tree</literal> section as well as three new variables.</para>

+ 7 - 21
doc/apt-get.8.xml

@@ -46,18 +46,10 @@
 	      </option>
 	      </option>
       </arg>
       </arg>
       <arg>
       <arg>
-		  <option>-t=</option>
-		  <group choice='req'>
-			  <arg choice='plain'>
-				  <replaceable>target_release_name</replaceable>
-			  </arg>
-			  <arg choice='plain'>
-				  <replaceable>target_release_number_expression</replaceable>
-			  </arg>
-			  <arg choice='plain'>
-				  <replaceable>target_release_codename</replaceable>
-			  </arg>
-		  </group>
+		<option>-t=</option>
+		<arg choice='plain'>
+			<replaceable>target_release</replaceable>
+		</arg>
       </arg>
       </arg>
 
 
       <group choice="req">
       <group choice="req">
@@ -73,10 +65,7 @@
 							=<replaceable>pkg_version_number</replaceable>
 							=<replaceable>pkg_version_number</replaceable>
 						</arg>
 						</arg>
 						<arg choice='plain'>
 						<arg choice='plain'>
-							/<replaceable>target_release_name</replaceable>
-						</arg>
-						<arg choice='plain'>
-							/<replaceable>target_release_codename</replaceable>
+							/<replaceable>target_release</replaceable>
 						</arg>
 						</arg>
 					</group>
 					</group>
 				</arg>
 				</arg>
@@ -92,10 +81,7 @@
 							=<replaceable>pkg_version_number</replaceable>
 							=<replaceable>pkg_version_number</replaceable>
 						</arg>
 						</arg>
 						<arg choice='plain'>
 						<arg choice='plain'>
-							/<replaceable>target_release_name</replaceable>
-						</arg>
-						<arg choice='plain'>
-							/<replaceable>target_release_codename</replaceable>
+							/<replaceable>target_release</replaceable>
 						</arg>
 						</arg>
 					</group>
 					</group>
 				</arg>
 				</arg>
@@ -126,7 +112,7 @@
    <para><command>apt-get</command> is the command-line tool for handling packages, and may be 
    <para><command>apt-get</command> is the command-line tool for handling packages, and may be 
    considered the user's "back-end" to other tools using the APT
    considered the user's "back-end" to other tools using the APT
    library.  Several "front-end" interfaces exist, such as &dselect;,
    library.  Several "front-end" interfaces exist, such as &dselect;,
-   &aptitude;, &synaptic;, &gnome-apt; and &wajig;.</para>
+   &aptitude;, &synaptic; and &wajig;.</para>
 
 
    <para>Unless the <option>-h</option>, or <option>--help</option> option is given, one of the
    <para>Unless the <option>-h</option>, or <option>--help</option> option is given, one of the
    commands below must be present.</para>
    commands below must be present.</para>

+ 3 - 2
doc/apt.conf.5.xml

@@ -150,8 +150,9 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
      </varlistentry>
      
      
      <varlistentry><term>Default-Release</term>
      <varlistentry><term>Default-Release</term>
-	 <listitem><para>Default release to install packages from if more than one
-	 version available. Contains release name, codename or release version. Examples: 'stable', 'testing', 'unstable', 'lenny', 'squeeze', '4.0', '5.0*'. See also &apt-preferences;.</para></listitem>
+     <listitem><para>Default release to install packages from if more than one
+     version available. Contains release name, codename or release version. Examples: 'stable', 'testing',
+     'unstable', '&stable-codename;', '&testing-codename;', '4.0', '5.0*'. See also &apt-preferences;.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry><term>Ignore-Hold</term>
      <varlistentry><term>Ignore-Hold</term>

+ 4 - 6
doc/apt.ent

@@ -142,12 +142,6 @@
   </citerefentry>"
   </citerefentry>"
 >
 >
 
 
-<!ENTITY gnome-apt "<citerefentry>
-    <refentrytitle><command>gnome-apt</command></refentrytitle>
-    <manvolnum>1</manvolnum>
-  </citerefentry>"
->
-
 <!ENTITY wajig "<citerefentry>
 <!ENTITY wajig "<citerefentry>
     <refentrytitle><command>wajig</command></refentrytitle>
     <refentrytitle><command>wajig</command></refentrytitle>
     <manvolnum>1</manvolnum>
     <manvolnum>1</manvolnum>
@@ -392,3 +386,7 @@
      This is done on purpose, to avoid losing content when the
      This is done on purpose, to avoid losing content when the
      translation is lagging behind the original content.
      translation is lagging behind the original content.
 ">
 ">
+
+<!ENTITY oldstable-codename "etch">
+<!ENTITY stable-codename "lenny">
+<!ENTITY testing-codename "squeeze">

+ 19 - 11
doc/apt_preferences.5.xml

@@ -97,6 +97,12 @@ APT::Default-Release "stable";
 algorithm to set the priorities of the versions of a package.  Assign:
 algorithm to set the priorities of the versions of a package.  Assign:
 
 
 <variablelist>
 <variablelist>
+<varlistentry>
+<term>priority 1</term>
+<listitem><simpara>to the versions coming from archives which in their <filename>Release</filename>
+files are marked as "NotAutomatic: yes" like the debian experimental archive.</simpara></listitem>
+</varlistentry>
+
 <varlistentry>
 <varlistentry>
 <term>priority 100</term>
 <term>priority 100</term>
 <listitem><simpara>to the version that is already installed (if any).</simpara></listitem>
 <listitem><simpara>to the version that is already installed (if any).</simpara></listitem>
@@ -116,7 +122,9 @@ algorithm to set the priorities of the versions of a package.  Assign:
 
 
 <para>If the target release has not been specified then APT simply assigns
 <para>If the target release has not been specified then APT simply assigns
 priority 100 to all installed package versions and priority 500 to all
 priority 100 to all installed package versions and priority 500 to all
-uninstalled package versions.</para>
+uninstalled package versions, expect versions coming from archives which
+in their <filename>Release</filename> files are marked as "NotAutomatic: yes" -
+these versions get the priority 1.</para>
 
 
 <para>APT then applies the following rules, listed in order of precedence,
 <para>APT then applies the following rules, listed in order of precedence,
 to determine which version of a package to install.
 to determine which version of a package to install.
@@ -218,11 +226,11 @@ Pin-Priority: 50
 </programlisting>
 </programlisting>
 
 
 <simpara>The following record assigns a high priority to all package versions
 <simpara>The following record assigns a high priority to all package versions
-belonging to any distribution whose Codename is "<literal>squeeze</literal>".</simpara>
+belonging to any distribution whose Codename is "<literal>&testing-codename;</literal>".</simpara>
 
 
 <programlisting>
 <programlisting>
 Package: *
 Package: *
-Pin: release n=squeeze
+Pin: release n=&testing-codename;
 Pin-Priority: 900
 Pin-Priority: 900
 </programlisting>
 </programlisting>
 
 
@@ -355,7 +363,7 @@ APT priorities:
 <para>The <filename>Release</filename> file is normally found in the directory
 <para>The <filename>Release</filename> file is normally found in the directory
 <filename>.../dists/<replaceable>dist-name</replaceable></filename>:
 <filename>.../dists/<replaceable>dist-name</replaceable></filename>:
 for example, <filename>.../dists/stable/Release</filename>,
 for example, <filename>.../dists/stable/Release</filename>,
-or <filename>.../dists/woody/Release</filename>.
+or <filename>.../dists/&stable-codename;/Release</filename>.
 It consists of a single multi-line record which applies to <emphasis>all</emphasis> of
 It consists of a single multi-line record which applies to <emphasis>all</emphasis> of
 the packages in the directory tree below its parent.  Unlike the
 the packages in the directory tree below its parent.  Unlike the
 <filename>Packages</filename> file, nearly all of the lines in a <filename>Release</filename>
 <filename>Packages</filename> file, nearly all of the lines in a <filename>Release</filename>
@@ -383,14 +391,14 @@ Pin: release a=stable
 <term>the <literal>Codename:</literal> line</term>
 <term>the <literal>Codename:</literal> line</term>
 <listitem><simpara>names the codename to which all the packages
 <listitem><simpara>names the codename to which all the packages
 in the directory tree belong.  For example, the line
 in the directory tree belong.  For example, the line
-"Codename: squeeze"
+"Codename: &testing-codename;"
 specifies that all of the packages in the directory
 specifies that all of the packages in the directory
 tree below the parent of the <filename>Release</filename> file belong to a version named
 tree below the parent of the <filename>Release</filename> file belong to a version named
-<literal>squeeze</literal>.  Specifying this value in the APT preferences file
+<literal>&testing-codename;</literal>.  Specifying this value in the APT preferences file
 would require the line:
 would require the line:
 </simpara>
 </simpara>
 <programlisting>
 <programlisting>
-Pin: release n=squeeze
+Pin: release n=&testing-codename;
 </programlisting>
 </programlisting>
 </listitem>
 </listitem>
 </varlistentry>
 </varlistentry>
@@ -590,9 +598,9 @@ the example configurations above.
 
 
 <programlisting>
 <programlisting>
 Explanation: Uninstall or do not install any Debian-originated package versions
 Explanation: Uninstall or do not install any Debian-originated package versions
-Explanation: other than those in the distribution codenamed with squeeze or sid
+Explanation: other than those in the distribution codenamed with &testing-codename; or sid
 Package: *
 Package: *
-Pin: release n=squeeze
+Pin: release n=&testing-codename;
 Pin-Priority: 900
 Pin-Priority: 900
 
 
 Explanation: Debian unstable is always codenamed with sid
 Explanation: Debian unstable is always codenamed with sid
@@ -608,7 +616,7 @@ Pin-Priority: -10
 
 
 <para>With a suitable &sources-list; file and the above preferences file,
 <para>With a suitable &sources-list; file and the above preferences file,
 any of the following commands will cause APT to upgrade to the
 any of the following commands will cause APT to upgrade to the
-latest version(s) in the release codenamed with <literal>squeeze</literal>.
+latest version(s) in the release codenamed with <literal>&testing-codename;</literal>.
 
 
 <programlisting>
 <programlisting>
 apt-get install <replaceable>package-name</replaceable>
 apt-get install <replaceable>package-name</replaceable>
@@ -620,7 +628,7 @@ apt-get dist-upgrade
 <para>The following command will cause APT to upgrade the specified
 <para>The following command will cause APT to upgrade the specified
 package to the latest version from the <literal>sid</literal> distribution.
 package to the latest version from the <literal>sid</literal> distribution.
 Thereafter, <command>apt-get upgrade</command> will upgrade
 Thereafter, <command>apt-get upgrade</command> will upgrade
-the package to the most recent <literal>squeeze</literal> version if that is
+the package to the most recent <literal>&testing-codename;</literal> version if that is
 more recent than the installed version, otherwise, to the most recent
 more recent than the installed version, otherwise, to the most recent
 <literal>sid</literal> version if that is more recent than the installed
 <literal>sid</literal> version if that is more recent than the installed
 version.
 version.

File diff suppressed because it is too large
+ 265 - 215
doc/po/apt-doc.pot


File diff suppressed because it is too large
+ 339 - 226
doc/po/de.po


File diff suppressed because it is too large
+ 336 - 222
doc/po/es.po


File diff suppressed because it is too large
+ 476 - 484
doc/po/fr.po


File diff suppressed because it is too large
+ 265 - 217
doc/po/it.po


File diff suppressed because it is too large
+ 334 - 225
doc/po/ja.po


File diff suppressed because it is too large
+ 289 - 218
doc/po/pl.po


File diff suppressed because it is too large
+ 336 - 223
doc/po/pt.po


File diff suppressed because it is too large
+ 283 - 222
doc/po/pt_BR.po


+ 4 - 4
doc/sources.list.5.xml

@@ -111,8 +111,8 @@
 
 
    <para>Some examples:</para>
    <para>Some examples:</para>
    <literallayout>
    <literallayout>
-deb http://http.us.debian.org/debian stable main contrib non-free
-deb http://http.us.debian.org/debian dists/stable-updates/
+deb http://ftp.debian.org/debian &stable-codename; main contrib non-free
+deb http://security.debian.org/ &stable-codename;/updates main contrib non-free
    </literallayout>
    </literallayout>
 
 
  </refsect1>
  </refsect1>
@@ -206,8 +206,8 @@ deb http://http.us.debian.org/debian dists/stable-updates/
    <literallayout>deb http://archive.debian.org/debian-archive hamm main</literallayout>
    <literallayout>deb http://archive.debian.org/debian-archive hamm main</literallayout>
 
 
    <para>Uses FTP to access the archive at ftp.debian.org, under the debian
    <para>Uses FTP to access the archive at ftp.debian.org, under the debian
-   directory, and uses only the stable/contrib area.</para>
-   <literallayout>deb ftp://ftp.debian.org/debian stable contrib</literallayout>
+   directory, and uses only the &stable-codename;/contrib area.</para>
+   <literallayout>deb ftp://ftp.debian.org/debian &stable-codename; contrib</literallayout>
 
 
    <para>Uses FTP to access the archive at ftp.debian.org, under the debian
    <para>Uses FTP to access the archive at ftp.debian.org, under the debian
    directory, and uses only the unstable/contrib area. If this line appears as
    directory, and uses only the unstable/contrib area. If this line appears as

+ 17 - 25
methods/gpgv.cc

@@ -12,6 +12,8 @@
 #include <iostream>
 #include <iostream>
 #include <sstream>
 #include <sstream>
 
 
+#include <vector>
+
 #define GNUPGPREFIX "[GNUPG:]"
 #define GNUPGPREFIX "[GNUPG:]"
 #define GNUPGBADSIG "[GNUPG:] BADSIG"
 #define GNUPGBADSIG "[GNUPG:] BADSIG"
 #define GNUPGNOPUBKEY "[GNUPG:] NO_PUBKEY"
 #define GNUPGNOPUBKEY "[GNUPG:] NO_PUBKEY"
@@ -87,23 +89,18 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
       return string("Couldn't spawn new process") + strerror(errno);
       return string("Couldn't spawn new process") + strerror(errno);
    else if (pid == 0)
    else if (pid == 0)
    {
    {
-      const char *Args[400];
-      unsigned int i = 0;
+      std::vector<const char *> Args;
+      Args.reserve(30);
 
 
-      Args[i++] = gpgvpath.c_str();
-      Args[i++] = "--status-fd";
-      Args[i++] = "3";
-      Args[i++] = "--ignore-time-conflict";
+      Args.push_back(gpgvpath.c_str());
+      Args.push_back("--status-fd");
+      Args.push_back("3");
+      Args.push_back("--ignore-time-conflict");
       for (vector<string>::const_iterator K = keyrings.begin();
       for (vector<string>::const_iterator K = keyrings.begin();
 	   K != keyrings.end(); ++K)
 	   K != keyrings.end(); ++K)
       {
       {
-	 Args[i++] = "--keyring";
-	 Args[i++] = K->c_str();
-	 // check overflow (minus a bit of extra space at the end)
-	 if(i >= sizeof(Args)/sizeof(char*)-5) {
-	    std::clog << _("E: Too many keyrings should be passed to gpgv. Exiting.") << std::endl;
-	    exit(111);
-	 }
+	 Args.push_back("--keyring");
+	 Args.push_back(K->c_str());
       }
       }
 
 
       Configuration::Item const *Opts;
       Configuration::Item const *Opts;
@@ -115,23 +112,18 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
          {
          {
             if (Opts->Value.empty() == true)
             if (Opts->Value.empty() == true)
                continue;
                continue;
-            Args[i++] = Opts->Value.c_str();
-	    // check overflow (minus a bit of extra space at the end)
-	    if(i >= sizeof(Args)/sizeof(char*)-5) { 
-	       std::clog << _("E: Argument list from Acquire::gpgv::Options too long. Exiting.") << std::endl;
-	       exit(111);
-	    }
+            Args.push_back(Opts->Value.c_str());
          }
          }
       }
       }
-      Args[i++] = file;
-      Args[i++] = outfile;
-      Args[i++] = NULL;
+      Args.push_back(file);
+      Args.push_back(outfile);
+      Args.push_back(NULL);
 
 
       if (Debug == true)
       if (Debug == true)
       {
       {
          std::clog << "Preparing to exec: " << gpgvpath;
          std::clog << "Preparing to exec: " << gpgvpath;
-	 for(unsigned int j=0;Args[j] != NULL; j++)
-	    std::clog << " " << Args[j];
+	 for(std::vector<const char *>::const_iterator a = Args.begin();*a != NULL; ++a)
+	    std::clog << " " << *a;
 	 std::clog << std::endl;
 	 std::clog << std::endl;
       }
       }
       int const nullfd = open("/dev/null", O_RDONLY);
       int const nullfd = open("/dev/null", O_RDONLY);
@@ -145,7 +137,7 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
       putenv((char *)"LANG=");
       putenv((char *)"LANG=");
       putenv((char *)"LC_ALL=");
       putenv((char *)"LC_ALL=");
       putenv((char *)"LC_MESSAGES=");
       putenv((char *)"LC_MESSAGES=");
-      execvp(gpgvpath.c_str(), (char **)Args);
+      execvp(gpgvpath.c_str(), (char **) &Args[0]);
              
              
       exit(111);
       exit(111);
    }
    }

+ 11 - 8
methods/rred.cc

@@ -477,23 +477,26 @@ bool RredMethod::Fetch(FetchItem *Itm)						/*{{{*/
    Patch.Close();
    Patch.Close();
    To.Close();
    To.Close();
 
 
-   // Transfer the modification times
-   struct stat Buf;
-   if (stat(Path.c_str(),&Buf) != 0)
+   /* Transfer the modification times from the patch file
+      to be able to see in which state the file should be
+      and use the access time from the "old" file */
+   struct stat BufBase, BufPatch;
+   if (stat(Path.c_str(),&BufBase) != 0 ||
+       stat(string(Path+".ed").c_str(),&BufPatch) != 0)
       return _error->Errno("stat",_("Failed to stat"));
       return _error->Errno("stat",_("Failed to stat"));
 
 
    struct utimbuf TimeBuf;
    struct utimbuf TimeBuf;
-   TimeBuf.actime = Buf.st_atime;
-   TimeBuf.modtime = Buf.st_mtime;
+   TimeBuf.actime = BufBase.st_atime;
+   TimeBuf.modtime = BufPatch.st_mtime;
    if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0)
    if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0)
       return _error->Errno("utime",_("Failed to set modification time"));
       return _error->Errno("utime",_("Failed to set modification time"));
 
 
-   if (stat(Itm->DestFile.c_str(),&Buf) != 0)
+   if (stat(Itm->DestFile.c_str(),&BufBase) != 0)
       return _error->Errno("stat",_("Failed to stat"));
       return _error->Errno("stat",_("Failed to stat"));
 
 
    // return done
    // return done
-   Res.LastModified = Buf.st_mtime;
-   Res.Size = Buf.st_size;
+   Res.LastModified = BufBase.st_mtime;
+   Res.Size = BufBase.st_size;
    Res.TakeHashes(Hash);
    Res.TakeHashes(Hash);
    URIDone(Res);
    URIDone(Res);
 
 

File diff suppressed because it is too large
+ 376 - 338
po/apt-all.pot


File diff suppressed because it is too large
+ 446 - 371
po/ar.po


File diff suppressed because it is too large
+ 458 - 373
po/ast.po


File diff suppressed because it is too large
+ 463 - 375
po/bg.po


File diff suppressed because it is too large
+ 446 - 370
po/bs.po


File diff suppressed because it is too large
+ 457 - 373
po/ca.po


File diff suppressed because it is too large
+ 456 - 373
po/cs.po


File diff suppressed because it is too large
+ 459 - 373
po/cy.po


File diff suppressed because it is too large
+ 460 - 377
po/da.po


File diff suppressed because it is too large
+ 460 - 374
po/de.po


File diff suppressed because it is too large
+ 454 - 373
po/dz.po


File diff suppressed because it is too large
+ 460 - 374
po/el.po


File diff suppressed because it is too large
+ 457 - 373
po/en_GB.po


File diff suppressed because it is too large
+ 459 - 376
po/es.po


File diff suppressed because it is too large
+ 457 - 373
po/eu.po


File diff suppressed because it is too large
+ 458 - 373
po/fi.po


File diff suppressed because it is too large
+ 469 - 377
po/fr.po


File diff suppressed because it is too large
+ 455 - 373
po/gl.po


File diff suppressed because it is too large
+ 451 - 373
po/hu.po


File diff suppressed because it is too large
+ 461 - 374
po/it.po


File diff suppressed because it is too large
+ 457 - 373
po/ja.po


File diff suppressed because it is too large
+ 452 - 373
po/km.po


File diff suppressed because it is too large
+ 459 - 374
po/ko.po


File diff suppressed because it is too large
+ 451 - 375
po/ku.po


File diff suppressed because it is too large
+ 453 - 375
po/lt.po


File diff suppressed because it is too large
+ 453 - 373
po/mr.po


File diff suppressed because it is too large
+ 459 - 374
po/nb.po


File diff suppressed because it is too large
+ 452 - 373
po/ne.po


File diff suppressed because it is too large
+ 461 - 374
po/nl.po


File diff suppressed because it is too large
+ 454 - 373
po/nn.po


File diff suppressed because it is too large
+ 461 - 374
po/pl.po


File diff suppressed because it is too large
+ 458 - 373
po/pt.po


File diff suppressed because it is too large
+ 462 - 373
po/pt_BR.po


File diff suppressed because it is too large
+ 464 - 375
po/ro.po


File diff suppressed because it is too large
+ 464 - 376
po/ru.po


File diff suppressed because it is too large
+ 461 - 374
po/sk.po


File diff suppressed because it is too large
+ 453 - 373
po/sl.po


File diff suppressed because it is too large
+ 456 - 373
po/sv.po


File diff suppressed because it is too large
+ 453 - 373
po/th.po


File diff suppressed because it is too large
+ 454 - 373
po/tl.po


File diff suppressed because it is too large
+ 457 - 373
po/uk.po


File diff suppressed because it is too large
+ 456 - 373
po/vi.po


File diff suppressed because it is too large
+ 454 - 374
po/zh_CN.po


File diff suppressed because it is too large
+ 453 - 373
po/zh_TW.po