소스 검색

Merge with matt

Patches applied:

 * apt@packages.debian.org/apt--main--0--patch-59
   Open 0.6.32

 * apt@packages.debian.org/apt--main--0--patch-60
   Merge apt--mvo--0

 * apt@packages.debian.org/apt--main--0--patch-61
   Add missing whitespace in new Debug::Acquire::gpgv output

 * apt@packages.debian.org/apt--main--0--patch-62
   Merge apt--mvo--0

 * apt@packages.debian.org/apt--main--0--patch-63
   Open 0.6.34

 * apt@packages.debian.org/apt--main--0--patch-64
   Add missing semicolon in configure-index (Debian #295773)

 * apt@packages.debian.org/apt--main--0--patch-65
   Update build-depends on gettext to 0.12

 * michael.vogt@canonical.com--2004/apt--mvo--0--patch-12
   * star-merged with matt, removed the unset("no_proxy") in methods/ftp.cc

 * michael.vogt@canonical.com--2004/apt--mvo--0--patch-13
   * commented the ftp no_proxy unseting in methods/ftp.cc

 * michael.vogt@canonical.com--2004/apt--mvo--0--patch-14
   * starmeged with matt, added some comments to the unsetting of no_proxy in ftp.cc

 * michael.vogt@canonical.com--2004/apt--mvo--0--patch-15
   * merged with matt's tree

 * michael.vogt@canonical.com--2004/apt--mvo--0--patch-16
   * added support for "Acquire::gpgv::options" in methods/gpgv.cc

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--base-0
   tag of michael.vogt@canonical.com--2004/apt--mvo--0--patch-16

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-1
   * slightly cosmetic change in methods/gpgv.cc

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-2
   * merge with matts tree, added documentation for the gpgv stuff

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-3
   * added gpgv::Options to configure-index

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-4
   * PulseIntervall can be configured now to make frontends like synaptic hayppy. it's done in a way that does not break binary compatibility

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-5
   * fix for apt-get update removing the cdroms Release.gpg files

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-6
   * path scoring changed, the non-symlink path is scored highest
Christian Perrier 21 년 전
부모
커밋
2c01f1c077
12개의 변경된 파일132개의 추가작업 그리고 46개의 파일을 삭제
  1. 1 11
      apt-pkg/acquire-item.cc
  2. 3 3
      apt-pkg/acquire.cc
  3. 2 1
      apt-pkg/acquire.h
  4. 17 0
      apt-pkg/cdrom.cc
  5. 1 1
      configure.in
  6. 27 0
      debian/changelog
  7. 1 1
      debian/control
  8. 10 1
      doc/apt.conf.5.xml
  9. 14 1
      doc/examples/configure-index
  10. 1 1
      methods/cdrom.cc
  11. 35 6
      methods/gpgv.cc
  12. 20 20
      po/apt-all.pot

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

@@ -350,18 +350,8 @@ pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner,
 /* The only header we use is the last-modified header. */
 string pkgAcqMetaSig::Custom600Headers()
 {
-   // mvo: we don't really need the last-modified header here
-   //      1) it points to "Final" and that was renamed to "DestFile" 
-   //         so it's never send anyway
-   //      2) because DestFIle is in partial/ we will send a partial request
-   //         with if-range in the http method (or the equivalent for ftp). 
-   //         that should give the same result
-
-   string Final = _config->FindDir("Dir::State::lists");
-   Final += URItoFileName(RealURI);
-   
    struct stat Buf;
-   if (stat(Final.c_str(),&Buf) != 0)
+   if (stat(DestFile.c_str(),&Buf) != 0)
       return "\nIndex-File: true";
 
    return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);

+ 3 - 3
apt-pkg/acquire.cc

@@ -312,7 +312,7 @@ void pkgAcquire::RunFds(fd_set *RSet,fd_set *WSet)
 /* This runs the queues. It manages a select loop for all of the
    Worker tasks. The workers interact with the queues and items to
    manage the actual fetch. */
-pkgAcquire::RunResult pkgAcquire::Run()
+pkgAcquire::RunResult pkgAcquire::Run(int PulseIntervall)
 {
    Running = true;
    
@@ -327,7 +327,7 @@ pkgAcquire::RunResult pkgAcquire::Run()
    // Run till all things have been acquired
    struct timeval tv;
    tv.tv_sec = 0;
-   tv.tv_usec = 500000; 
+   tv.tv_usec = PulseIntervall; 
    while (ToFetch > 0)
    {
       fd_set RFds;
@@ -357,7 +357,7 @@ pkgAcquire::RunResult pkgAcquire::Run()
       // Timeout, notify the log class
       if (Res == 0 || (Log != 0 && Log->Update == true))
       {
-	 tv.tv_usec = 500000;
+	 tv.tv_usec = PulseIntervall;
 	 for (Worker *I = Workers; I != 0; I = I->NextAcquire)
 	    I->Pulse();
 	 if (Log != 0 && Log->Pulse(this) == false)

+ 2 - 1
apt-pkg/acquire.h

@@ -100,7 +100,8 @@ class pkgAcquire
 
    enum RunResult {Continue,Failed,Cancelled};
 
-   RunResult Run();
+   RunResult Run() { return Run(500000); }; // Binary compatibility
+   RunResult Run(int PulseIntervall);
    void Shutdown();
    
    // Simple iteration mechanism

+ 17 - 0
apt-pkg/cdrom.cc

@@ -169,6 +169,23 @@ int pkgCdrom::Score(string Path)
       Res += 10;
    if (Path.find("/debian/") != string::npos)
       Res -= 10;
+
+   // check for symlinks in the patch leading to the actual file
+   // a symlink gets a big penalty
+   struct stat Buf;
+   string statPath = flNotFile(Path);
+   string cdromPath = _config->FindDir("Acquire::cdrom::mount","/cdrom/");
+   while(statPath != cdromPath && statPath != "./") {
+      statPath.resize(statPath.size()-1);  // remove the trailing '/'
+      if (lstat(statPath.c_str(),&Buf) == 0) {
+        if(S_ISLNK(Buf.st_mode)) {
+           Res -= 60;
+           break;
+        }
+      }
+      statPath = flNotFile(statPath); // descent
+   }
+
    return Res;
 }
 

+ 1 - 1
configure.in

@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
 
 dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.6.31")
+AC_DEFINE_UNQUOTED(VERSION,"0.6.32")
 PACKAGE="apt"
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_SUBST(PACKAGE)

+ 27 - 0
debian/changelog

@@ -1,3 +1,30 @@
+apt (0.6.34) UNRELEASED; urgency=low
+
+  * Add missing semicolon to configure-index (Closes: #295773)
+  * Update build-depends on gettext to 0.12 (Closes: #295077)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri,  4 Mar 2005 16:13:15 -0800
+
+apt (0.6.33) hoary; urgency=low
+
+  * Merge michael.vogt@ubuntu.com--2005/apt--mvo--0 (through patch-6)
+    - patch-1: cosmetic changes (whitespace, "Apt::GPGV->APT::GPGV")
+    - patch-2: (doc) documentation for gpgv
+    - patch-3: (doc) new config variables added configure-index
+    - patch-4: pkgAcquire::Run() pulse intervall can be configured
+    - patch-5: fix for apt-get update removing Release.gpg files (#6865)
+    - patch-6: change the path scoring in apt-cdrom, prefer pathes without
+      symlinks
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 26 Feb 2005 15:21:17 -0800
+
+apt (0.6.32) hoary; urgency=low
+
+  * Merge michael.vogt@ubuntu.com--2005/apt--mvo--0 (patch-1)
+    - Implement Acquire::gpgv::options (Ubuntu bug#6283)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue,  8 Feb 2005 19:31:15 -0800
+
 apt (0.6.31) hoary; urgency=low
 
   * Matt Zimmerman

+ 1 - 1
debian/control

@@ -4,7 +4,7 @@ Priority: important
 Maintainer: APT Development Team <deity@lists.debian.org>
 Uploaders: Jason Gunthorpe <jgg@debian.org>, Adam Heath <doogie@debian.org>, Matt Zimmerman <mdz@debian.org>
 Standards-Version: 3.6.1
-Build-Depends: debhelper (>= 4.1.62), libdb4.2-dev, gettext (>= 0.11.5)
+Build-Depends: debhelper (>= 4.1.62), libdb4.2-dev, gettext (>= 0.12)
 Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1)
 
 Package: apt

+ 10 - 1
doc/apt.conf.5.xml

@@ -251,6 +251,13 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      the cdrom block. It is important to have the trailing slash. Unmount 
      commands can be specified using UMount.</para></listitem>
      </varlistentry>
+
+     <varlistentry><term>gpgv</term>
+     <listitem><para>GPGV URIs; the only option for GPGV URIs is the option to pass additional parameters to gpgv.
+     <literal>gpgv::Options</literal> Additional options passed to gpgv.
+     </para></listitem>
+     </varlistentry>
+
    </variablelist>
   </para>
  </refsect1>
@@ -373,7 +380,9 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    <literal>Debug::NoLocking</literal> disables file locking so APT can do some 
    operations as non-root and <literal>Debug::pkgDPkgPM</literal> will print out the 
    command line for each dpkg invokation. <literal>Debug::IdentCdrom</literal> will 
-   disable the inclusion of statfs data in CDROM IDs.</para>
+   disable the inclusion of statfs data in CDROM IDs.
+   <literal>Debug::Acquire::gpgv</literal> Debugging of the gpgv method.
+   </para>
  </refsect1>
  
  <refsect1><title>Examples</title>

+ 14 - 1
doc/examples/configure-index

@@ -72,6 +72,11 @@ APT
      NoAct "false";
   };
 
+  GPGV
+  {
+     TrustedKeyring "/etc/apt/trusted.gpg";
+  };
+
   // Some general options
   Ignore-Hold "false";
   Clean-Installed "true";
@@ -137,6 +142,11 @@ Acquire
        UMount "sleep 500";
     }
   };
+
+  gpgv
+  {
+   Options {"--ignore-time-conflict";}	// not very usefull on a normal system
+  };
 };
 
 // Directory layout
@@ -171,9 +181,10 @@ Dir "/"
   Bin {
      methods "/usr/lib/apt/methods/";
      gzip "/bin/gzip";
+     gpg  "/usr/bin/gpgv";
      dpkg "/usr/bin/dpkg";
      dpkg-source "/usr/bin/dpkg-source";
-     dpkg-buildpackage "/usr/bin/dpkg-buildpackage"
+     dpkg-buildpackage "/usr/bin/dpkg-buildpackage";
      apt-get "/usr/bin/apt-get";
      apt-cache "/usr/bin/apt-cache";
   };
@@ -229,8 +240,10 @@ Debug
   NoLocking "false";
   Acquire::Ftp "false";    // Show ftp command traffic
   Acquire::Http "false";   // Show http command traffic
+  Acquire::gpgv "false";   // Show the gpgv traffic
   aptcdrom "false";        // Show found package files
   IdentCdrom "false";
+  
 }
 
 /* Whatever you do, do not use this configuration file!! Take out ONLY

+ 1 - 1
methods/cdrom.cc

@@ -97,7 +97,7 @@ bool CDROMMethod::Fetch(FetchItem *Itm)
    {
       Res.LastModified = Itm->LastModified;
       Res.IMSHit = true;
-      Res.Filename = File;
+      Res.Filename = Itm->DestFile;
       URIDone(Res);
       return true;
    }

+ 35 - 6
methods/gpgv.cc

@@ -46,7 +46,7 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
    int status;
    struct stat buff;
    string gpgvpath = _config->Find("Dir::Bin::gpg", "/usr/bin/gpgv");
-   string pubringpath = _config->Find("Apt::GPGV::TrustedKeyring", "/etc/apt/trusted.gpg");
+   string pubringpath = _config->Find("APT::GPGV::TrustedKeyring", "/etc/apt/trusted.gpg");
    if (_config->FindB("Debug::Acquire::gpgv", false))
    {
       std::cerr << "gpgv path: " << gpgvpath << std::endl;
@@ -68,11 +68,41 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
    }
    else if (pid == 0)
    {
+      const char *Args[400];
+      unsigned int i = 0;
+
+      Args[i++] = gpgvpath.c_str();
+      Args[i++] = "--status-fd";
+      Args[i++] = "3";
+      Args[i++] = "--keyring";
+      Args[i++] = pubringpath.c_str();
+
+      Configuration::Item const *Opts;
+      Opts = _config->Tree("Acquire::gpgv::Options");
+      if (Opts != 0)
+      {
+         Opts = Opts->Child;
+	 for (; Opts != 0; Opts = Opts->Next)
+         {
+            if (Opts->Value.empty() == true)
+               continue;
+            Args[i++] = Opts->Value.c_str();
+	    if(i >= 395) { 
+	       std::cerr << "E: Argument list from Acquire::gpgv::Options too long. Exiting." << std::endl;
+	       exit(111);
+	    }
+         }
+      }
+      Args[i++] = file;
+      Args[i++] = outfile;
+      Args[i++] = NULL;
+
       if (_config->FindB("Debug::Acquire::gpgv", false))
       {
-         std::cerr << "Preparing to exec: " << gpgvpath
-		   << " --status-fd 3 --keyring " << pubringpath
-		   << " " << file << " " << outfile << std::endl;
+         std::cerr << "Preparing to exec: " << gpgvpath;
+	 for(unsigned int j=0;Args[j] != NULL; j++)
+	    std::cerr << " " << Args[j];
+	 std::cerr << std::endl;
       }
       int nullfd = open("/dev/null", O_RDONLY);
       close(fd[0]);
@@ -85,8 +115,7 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
       putenv("LANG=");
       putenv("LC_ALL=");
       putenv("LC_MESSAGES=");
-      execlp(gpgvpath.c_str(), gpgvpath.c_str(), "--status-fd", "3", "--keyring", 
-	     pubringpath.c_str(), file, outfile, NULL);
+      execvp(gpgvpath.c_str(), (char **)Args);
              
       exit(111);
    }

+ 20 - 20
po/apt-all.pot

@@ -2259,31 +2259,31 @@ msgstr ""
 msgid "rename failed, %s (%s -> %s)."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:235 apt-pkg/acquire-item.cc:904
+#: apt-pkg/acquire-item.cc:235 apt-pkg/acquire-item.cc:894
 msgid "MD5Sum mismatch"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:718
+#: apt-pkg/acquire-item.cc:708
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package. (due to missing arch)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:771
+#: apt-pkg/acquire-item.cc:761
 #, c-format
 msgid ""
 "I wasn't able to locate file for the %s package. This might mean you need to "
 "manually fix this package."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:807
+#: apt-pkg/acquire-item.cc:797
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:894
+#: apt-pkg/acquire-item.cc:884
 msgid "Size mismatch"
 msgstr ""
 
@@ -2292,73 +2292,73 @@ msgstr ""
 msgid "Vendor block %s contains no fingerprint"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:487
+#: apt-pkg/cdrom.cc:503
 #, c-format
 msgid ""
 "Using CD-ROM mount point %s\n"
 "Mounting CD-ROM\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:496 apt-pkg/cdrom.cc:578
+#: apt-pkg/cdrom.cc:512 apt-pkg/cdrom.cc:594
 msgid "Identifying.. "
 msgstr ""
 
-#: apt-pkg/cdrom.cc:521
+#: apt-pkg/cdrom.cc:537
 #, c-format
 msgid "Stored Label: %s \n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:541
+#: apt-pkg/cdrom.cc:557
 #, c-format
 msgid "Using CD-ROM mount point %s\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:559
+#: apt-pkg/cdrom.cc:575
 msgid "Unmounting CD-ROM\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:563
+#: apt-pkg/cdrom.cc:579
 msgid "Waiting for disc...\n"
 msgstr ""
 
 #. Mount the new CDROM
-#: apt-pkg/cdrom.cc:571
+#: apt-pkg/cdrom.cc:587
 msgid "Mounting CD-ROM...\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:589
+#: apt-pkg/cdrom.cc:605
 msgid "Scanning Disc for index files..\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:627
+#: apt-pkg/cdrom.cc:643
 #, c-format
 msgid "Found %i package indexes, %i source indexes and %i signatures\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:684
+#: apt-pkg/cdrom.cc:700
 msgid "That is not a valid name, try again.\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:700
+#: apt-pkg/cdrom.cc:716
 #, c-format
 msgid ""
 "This Disc is called: \n"
 "'%s'\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:704
+#: apt-pkg/cdrom.cc:720
 msgid "Copying package lists..."
 msgstr ""
 
-#: apt-pkg/cdrom.cc:728
+#: apt-pkg/cdrom.cc:744
 msgid "Writing new source list\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:737
+#: apt-pkg/cdrom.cc:753
 msgid "Source List entries for this Disc are:\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:771
+#: apt-pkg/cdrom.cc:787
 msgid "Unmounting CD-ROM..."
 msgstr ""