for ( /* nothing */ ; D.end() == false; D++)
if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
{
- // ignore dependencies if no instal/upgrade/remove is going to happen
- if (D.TargetPkg() == 0 || Cache[D.TargetPkg()].Keep())
- continue;
-
if(!List->IsFlag(D.TargetPkg(), pkgOrderList::Immediate))
{
if(Debug)
of it's dependents. */
bool pkgPackageManager::SmartConfigure(PkgIterator Pkg)
{
+ if (Debug == true)
+ clog << "SmartConfigure " << Pkg.Name() << endl;
+
pkgOrderList OList(&Cache);
if (DepAdd(OList,Pkg) == false)
List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States);
if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true)
if (SmartConfigure(Pkg) == false)
- return _error->Error("Internal Error, Could not perform immediate configuration (1) on %s",Pkg.Name());
+ return _error->Error(_("Could not perform immediate configuration for on already unpacked %s."
+ "Please see man 5 apt.conf under APT::Immediate-Configure for details."),Pkg.Name());
return true;
}
while (End->Type == pkgCache::Dep::PreDepends)
{
+ if (Debug == true)
+ clog << "PreDepends order for " << Pkg.Name() << std::endl;
+
// Look for possible ok targets.
SPtrArray<Version *> VList = Start.AllTargets();
bool Bad = true;
Pkg.State() == PkgIterator::NeedsNothing)
{
Bad = false;
+ if (Debug == true)
+ clog << "Found ok package " << Pkg.Name() << endl;
continue;
}
}
(Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing))
continue;
+ if (Debug == true)
+ clog << "Trying to SmartConfigure " << Pkg.Name() << endl;
Bad = !SmartConfigure(Pkg);
}
// Perform immedate configuration of the package.
if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true)
if (SmartConfigure(Pkg) == false)
- return _error->Error("Internal Error, Could not perform immediate configuration (2) on %s",Pkg.Name());
+ return _error->Error(_("Could not perform immediate configuration on %s."
+ "Please see man 5 apt.conf under APT::Immediate-Configure for details."),Pkg.Name());
return true;
}
Closes: #479997
* Polish translation update by Wiktor Wandachowicz
Closes: #548571
- * apt-pkg/packagemanager.cc:
- - fix overly aggressive immediate config propergation
- (thanks to David Kalnischkies)
+ * German translation update by Holger Wansing
+ Closes: #551534
+ * German translation of manpages by Chris Leick
+ Closes: #552606
+ * Italian translation update by Milo Casagrande
+ Closes: #555797
+ * Simplified Chinese translation update by Aron Xu
+ Closes: #558737
+ * Slovak translation update by Ivan Masár
+ Closes: #559277
+
+ [ Michael Vogt ]
- in a machine definition). Based on the maemo git branch.
+ * apt-pkg/packagemanager.cc:
+ - add output about pre-depends configuring when debug::pkgPackageManager
+ is used
+ * methods/https.cc:
+ - fix incorrect use of CURLOPT_TIMEOUT, closes: #497983, LP: #354972
+ thanks to Brian Thomason for the patch
+ * merge lp:~mvo/apt/netrc branch, this adds support for a
+ /etc/apt/auth.conf that can be used to store username/passwords
+ in a "netrc" style file (with the extension that it supports "/"
++ in a machine definition). Based on the maemo git branch (Closes: #518473)
++ (thanks also to Jussi Hakala and Julian Andres Klode)
+ * apt-pkg/deb/dpkgpm.cc:
+ - add "purge" to list of known actions
+
+ [ Brian Murray ]
+ * apt-pkg/depcache.cc, apt-pkg/indexcopy.cc:
+ - typo fix (LP: #462328)
+
+ [ Loïc Minier ]
+ * cmdline/apt-key:
+ - Emit a warning if removed keys keyring is missing and skip associated
+ checks (LP: #218971)
+ [ David Kalnischkies ]
+ * apt-pkg/packagemanager.cc:
+ - better debug output for ImmediateAdd with depth and why
+ - improve the message shown for failing immediate configuration
+ * doc/guide.it.sgml: moved to doc/it/guide.it.sgml
+ * doc/po4a.conf: activate translation of guide.sgml and offline.sgml
+ * doc/apt.conf.5.xml:
+ - provide a few more details about APT::Immediate-Configure
+ * doc/sources.list.5.xml:
+ - add note about additional apt-transport-methods
+ * doc/apt-mark.8.xml:
+ - correct showauto synopsis, thanks Andrew Schulman (Closes: #551440)
+
[ Julian Andres Klode ]
* doc/apt.conf.5.xml:
- Deprecate unquoted values, string concatenation and explain what should
- Restrict option names to alphanumerical characters and "/-:._+".
- Deprecate #include, we have apt.conf.d nowadays which should be
sufficient.
-- * methods/https.cc:
-- - Add support for authentication using netrc (Closes: #518473), patch
-- by Jussi Hakala <jussi.hakala@hut.fi>.
+ * ftparchive/apt-ftparchive.cc:
+ - Call setlocale() so translations are actually used.
+ * debian/apt.conf.autoremove:
+ - Add kfreebsd-image-* to the list (Closes: #558803)
-- Michael Vogt <michael.vogt@ubuntu.com> Tue, 29 Sep 2009 15:51:34 +0200
#include <apt-pkg/acquire-method.h>
#include <apt-pkg/error.h>
#include <apt-pkg/hashes.h>
+#include <apt-pkg/netrc.h>
#include <sys/stat.h>
#include <sys/time.h>
curl_easy_reset(curl);
SetupProxy();
+ maybe_add_auth (Uri, _config->FindFile("Dir::Etc::netrc"));
+
// callbacks
- curl_easy_setopt(curl, CURLOPT_URL, Itm->Uri.c_str());
+ curl_easy_setopt(curl, CURLOPT_URL, static_cast<string>(Uri).c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, this);
curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, false);
curl_easy_setopt(curl, CURLOPT_FAILONERROR, true);
curl_easy_setopt(curl, CURLOPT_FILETIME, true);
-- curl_easy_setopt(curl, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
// SSL parameters are set by default to the common (non mirror-specific) value
// if available (or a default one) and gets overload by mirror-specific ones.
// set timeout
int timeout = _config->FindI("Acquire::http::Timeout",120);
- curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, timeout);
+ //set really low lowspeed timeout (see #497983)
+ curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, DL_MIN_SPEED);
+ curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, timeout);
// set redirect options and default to 10 redirects
bool AllowRedirect = _config->FindI("Acquire::https::AllowRedirect", true);