Pārlūkot izejas kodu

Merge with Michael

Patches applied:

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-65
   * inital support for "apt-get source -t dist" (but no downgrades yet

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-66
   * full support for apt-get source -t now (and honor pining too)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-67
   * added APT::Authentication::Trust-CDROM option

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-68
   * fix a crash in apt-ftparchive

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-69
   * sparc64 alignment fix

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-70
   * fix segfault when there is no Archive for a VerFile

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-71
   * don't get candidate release as version tag for FindSrc by default. because it break for bin-NMUs :/ (e.g. dpkg source is 1.13.11, but i386 version string is 1.13.11.0.1)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-72
   * corrections in the changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-73
   * init the default ScreenWidth to 79 columns by default (Closes: #324921)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-74
   apt-cdrom.cc:fix some missing gettext() calls (closes: #334539); doc/apt-cache.8.xml: fix typo (closes: #334714)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-75
   * seting section to "admin" to match override file

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-76
   * finalized the changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-77
   * renamed Trust-CDROM to TrustCDROM to make it consistent with ubuntu

 * michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0--base-0
   tag of apt@packages.debian.org/apt--main--0--patch-79

 * michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0--patch-1
   * implemented "TrustCDROM" mode

 * michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0--patch-2
   * added APT::Authentication::TrustCDROM to the configure-index
Christian Perrier 21 gadi atpakaļ
vecāks
revīzija
efaa82c194

+ 1 - 1
apt-pkg/contrib/md5.h

@@ -58,7 +58,7 @@ class MD5SumValue
 
 class MD5Summation
 {
-   unsigned char Buf[4*4];
+   uint32_t Buf[4];
    unsigned char Bytes[2*4];
    unsigned char In[16*4];
    bool Done;

+ 4 - 0
apt-pkg/deb/debmetaindex.cc

@@ -165,6 +165,10 @@ bool debReleaseIndex::IsTrusted() const
    string VerifiedSigFile = _config->FindDir("Dir::State::lists") +
       URItoFileName(MetaIndexURI("Release")) + ".gpg";
    
+   if(_config->FindB("APT::Authentication::TrustCDROM", false))
+      if(URI.substr(0,strlen("cdrom:")) == "cdrom:")
+	 return true;
+   
    if (FileExists(VerifiedSigFile))
       return true;
    return false;

+ 3 - 3
cmdline/apt-cdrom.cc

@@ -75,7 +75,7 @@ string pkgCdromTextStatus::PromptLine(const char *Text)
 
 bool pkgCdromTextStatus::AskCdromName(string &name) 
 {
-   cout << "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" << flush;
+   cout << _("Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'") << flush;
    name = PromptLine("");
 	 
    return true;
@@ -90,7 +90,7 @@ void pkgCdromTextStatus::Update(string text, int current)
 
 bool pkgCdromTextStatus::ChangeCdrom() 
 {
-   Prompt("Please insert a Disc in the drive and press enter");
+   Prompt(_("Please insert a Disc in the drive and press enter"));
    return true;
 }
 
@@ -114,7 +114,7 @@ bool DoAdd(CommandLine &)
    pkgCdrom cdrom;
    res = cdrom.Add(&log);
    if(res)
-      cout << "Repeat this process for the rest of the CDs in your set." << endl;
+      cout << _("Repeat this process for the rest of the CDs in your set.") << endl;
    return res;
 }
 									/*}}}*/

+ 40 - 13
cmdline/apt-get.cc

@@ -66,7 +66,7 @@ ostream c0out(0);
 ostream c1out(0);
 ostream c2out(0);
 ofstream devnull("/dev/null");
-unsigned int ScreenWidth = 80;
+unsigned int ScreenWidth = 80 - 1; /* - 1 for the cursor */
 
 // class CacheFile - Cover class for some dependency cache functions	/*{{{*/
 // ---------------------------------------------------------------------
@@ -1190,24 +1190,54 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
    string VerTag;
    string TmpSrc = Name;
    string::size_type Slash = TmpSrc.rfind('=');
+
+   // honor default release
+   string DefRel = _config->Find("APT::Default-Release");
+   pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
+
    if (Slash != string::npos)
    {
       VerTag = string(TmpSrc.begin() + Slash + 1,TmpSrc.end());
       TmpSrc = string(TmpSrc.begin(),TmpSrc.begin() + Slash);
+   } 
+   else  if(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++)
+      {
+	 for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false;
+	      VF++)
+	 {
+	    /* 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;
+	    
+	    //std::cout << VF.File().Archive() << std::endl;
+	    if(VF.File().Archive() && (VF.File().Archive() == DefRel)) 
+	    {
+	       VerTag = Ver.VerStr();
+	       break;
+	    }
+	 }
+      }
    }
-   
+
    /* 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. In theory
-      we could stash the version string as well and match that too but
-      today there aren't multi source versions in the archive. */
-   if (_config->FindB("APT::Get::Only-Source") == false && 
-       VerTag.empty() == true)
+      in the archive for a source package of the same name. */
+   if (_config->FindB("APT::Get::Only-Source") == false)
    {
-      pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
       if (Pkg.end() == false)
       {
-	 pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);      
+	 pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);
 	 if (Ver.end() == false)
 	 {
 	    pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList());
@@ -1265,10 +1295,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
       }      
    }
    
-   if (Last == 0)
-      return 0;
-   
-   if (Last->Jump(Offset) == false)
+   if (Last == 0 || Last->Jump(Offset) == false)
       return 0;
    
    return Last;

+ 18 - 5
debian/changelog

@@ -1,4 +1,4 @@
-apt (0.6.41.1) unstable; urgency=low
+apt (0.6.42) unstable; urgency=low
 
   * apt-pkg/cdrom.cc:
     - unmount the cdrom when apt failed to locate any package files
@@ -10,14 +10,27 @@ apt (0.6.41.1) unstable; urgency=low
     - patch-100: Completed Danish translation (Closes: #325686)
     - patch-104: French translation completed
     - patch-109: Italian translation completed
-    - patch-112: Swedish translation update
-    - patch-115: Basque translation completed
+    - patch-112: Swedish translation update 
+    - patch-115: Basque translation completed (Closes: #333299)
   * applied french man-page update (thanks to Philippe Batailler)
-    (closes: #316318, #327456)
+    (closes: #316638, #327456)
   * fix leak in the mmap code, thanks to Daniel Burrows for the
     patch (closes: #250583)
+  * support for apt-get [build-dep|source] -t (closes: #152129)
+  * added "APT::Authentication::TrustCDROM" option to make the life
+    for the installer people easier (closes: #334656)
+  * fix crash in apt-ftparchive (thanks to Bastian Blank for the patch)
+    (closes: #334671)
+  * apt-pkg/contrib/md5.cc:
+    - fix a alignment problem on sparc64 that gives random bus errors
+      (thanks to Fabbione for providing a test-case)
+  * init the default ScreenWidth to 79 columns by default 
+    (Closes: #324921)
+  * cmdline/apt-cdrom.cc: 
+    - fix some missing gettext() calls (closes: #334539)
+  * doc/apt-cache.8.xml: fix typo (closes: #334714)
   
- -- 
+ -- Michael Vogt <mvo@debian.org>  Wed, 19 Oct 2005 22:02:09 +0200
 
 apt (0.6.41) unstable; urgency=low
 

+ 1 - 1
debian/control

@@ -14,7 +14,7 @@ Priority: important
 Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
 Provides: ${libapt-pkg:provides}
 Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, gnupg
-Section: base
+Section: admin
 Description: Advanced front-end for dpkg
  This is Debian's next generation front-end for the dpkg package manager.
  It provides the apt-get utility and APT dselect method that provides a 

+ 1 - 1
doc/apt-cache.8.xml

@@ -214,7 +214,7 @@ Reverse Provides:
      </varlistentry>
 
      <varlistentry><term>rdepends <replaceable>pkg(s)</replaceable></term>
-     <listitem><para><literal>rdepends</literal>shows a listing of each reverse dependency a
+     <listitem><para><literal>rdepends</literal> shows a listing of each reverse dependency a
       package has.</para></listitem>
      </varlistentry>
 

+ 5 - 0
doc/examples/configure-index

@@ -72,6 +72,11 @@ APT
      NoAct "false";
   };
 
+  Authentication
+  {
+     TrustCDROM "false";            // consider the CDROM always trusted
+  };
+
   GPGV
   {
      TrustedKeyring "/etc/apt/trusted.gpg";

+ 3 - 2
ftparchive/writer.cc

@@ -581,8 +581,6 @@ bool SourcesWriter::DoPackage(string FileName)
 	 auto_ptr<Override::Item> Itm(BOver.GetItem(BinList[I]));
 	 if (Itm.get() == 0)
 	    continue;
-	 if (OverItem.get() == 0)
-	    OverItem = Itm;
 
 	 unsigned char NewPrioV = debListParser::GetPrio(Itm->Priority);
 	 if (NewPrioV < BestPrioV || BestPrio.empty() == true)
@@ -590,6 +588,9 @@ bool SourcesWriter::DoPackage(string FileName)
 	    BestPrioV = NewPrioV;
 	    BestPrio = Itm->Priority;
 	 }	 
+
+	 if (OverItem.get() == 0)
+	    OverItem = Itm;
       }
    }