summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/acquire-item.cc12
-rw-r--r--apt-pkg/acquire.cc6
-rw-r--r--apt-pkg/acquire.h3
-rw-r--r--apt-pkg/cdrom.cc17
-rw-r--r--configure.in2
-rw-r--r--debian/changelog27
-rw-r--r--debian/control2
-rw-r--r--doc/apt.conf.5.xml11
-rw-r--r--doc/examples/configure-index15
-rw-r--r--methods/cdrom.cc2
-rw-r--r--methods/gpgv.cc41
-rw-r--r--po/apt-all.pot40
12 files changed, 132 insertions, 46 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index de8cfe8f2..714edd8d8 100644
--- a/apt-pkg/acquire-item.cc
+++ b/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);
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 3c207fd27..70dce4f54 100644
--- a/apt-pkg/acquire.cc
+++ b/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)
diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h
index 65c53a953..3e338b220 100644
--- a/apt-pkg/acquire.h
+++ b/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
diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc
index a91fc7181..1b9e98519 100644
--- a/apt-pkg/cdrom.cc
+++ b/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;
}
diff --git a/configure.in b/configure.in
index 6b57dec27..8c2fcbae6 100644
--- a/configure.in
+++ b/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)
diff --git a/debian/changelog b/debian/changelog
index c384c399d..70aa27365 100644
--- a/debian/changelog
+++ b/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
diff --git a/debian/control b/debian/control
index 54d4e4caa..b7c430997 100644
--- a/debian/control
+++ b/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
diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml
index b5d223372..69e212243 100644
--- a/doc/apt.conf.5.xml
+++ b/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>
diff --git a/doc/examples/configure-index b/doc/examples/configure-index
index 7cb29f082..a09ea0c37 100644
--- a/doc/examples/configure-index
+++ b/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
diff --git a/methods/cdrom.cc b/methods/cdrom.cc
index d5987dc45..d8bb9522e 100644
--- a/methods/cdrom.cc
+++ b/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;
}
diff --git a/methods/gpgv.cc b/methods/gpgv.cc
index b34ea8d85..24e945b2c 100644
--- a/methods/gpgv.cc
+++ b/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);
}
diff --git a/po/apt-all.pot b/po/apt-all.pot
index bd6ad5d81..9a974f7f6 100644
--- a/po/apt-all.pot
+++ b/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 ""