From 09fab2442c2ab9a503841d3dcd56b3c0c3efb502 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 9 Apr 2009 04:36:34 +0200 Subject: * apt-pkg/contrib/strutl.cc: - fix TimeToStr i18n (LP: #289807) * [ABI break] merge support for http redirects, thanks to Jeff Licquia and Anthony Towns * [ABI break] use int for the package IDs (thanks to Steve Cotton) * apt-pkg/pkgcache.cc: - do not run "dpkg --configure pkg" if pkg is in trigger-awaited state (LP: #322955) * methods/https.cc: - add Acquire::https::AllowRedirect support * Clarify the --help for 'purge' (LP: #243948) * cmdline/apt-get.cc - fix "apt-get source pkg" if there is a binary package and a source package of the same name but from different packages (LP: #330103) * cmdline/acqprogress.cc: - Call pkgAcquireStatus::Pulse even if quiet, so that we still get dlstatus messages on the status-fd (LP: #290234). --- doc/examples/configure-index | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'doc/examples') diff --git a/doc/examples/configure-index b/doc/examples/configure-index index db07f189e..5f29a2d3f 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -133,7 +133,8 @@ Acquire Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting Timeout "120"; Pipeline-Depth "5"; - + AllowRedirect "true"; + // Cache Control. Note these do not work with Squid 2.0.2 No-Cache "false"; Max-Age "86400"; // 1 Day age on index files @@ -150,7 +151,8 @@ Acquire Verify-Peer "false"; SslCert "/etc/apt/some.pem"; CaPath "/etc/ssl/certs"; - Verify-Host" "2"; + Verify-Host" "true"; + AllowRedirect "true"; }; ftp -- cgit v1.2.3-70-g09d2 From af29ffb44d95dfb0f7b0c1835e2e501313f74723 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 29 Jun 2009 18:00:54 +0200 Subject: * add depth information to the debug output and show what depends type triggers a autoinst (closes: #458389) * add debug::pkgDepCache::Marker with more detailed debug output (closes: #87520) --- apt-pkg/cacheiterators.h | 13 +- apt-pkg/depcache.cc | 47 +++++-- apt-pkg/depcache.h | 10 +- apt-pkg/pkgcache.cc | 51 ++++++++ debian/changelog | 4 + doc/apt.conf.5.xml | 21 ++++ doc/examples/configure-index | 1 + po/apt-all.pot | 293 +++++++++++++++++++++++++------------------ 8 files changed, 298 insertions(+), 142 deletions(-) (limited to 'doc/examples') diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 63f9de8fc..cf79b3a6b 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -80,7 +80,13 @@ class pkgCache::PkgIterator inline PrvIterator ProvidesList() const; inline unsigned long Index() const {return Pkg - Owner->PkgP;}; OkState State() const; - + + //Nice printable representation + friend std::ostream& operator<<(std::ostream& out, pkgCache::PkgIterator Pkg); + + const char *CandVersion() const; + const char *CurVersion() const; + // Constructors inline PkgIterator(pkgCache &Owner,Package *Trg) : Pkg(Trg), Owner(&Owner), HashIndex(0) @@ -111,7 +117,10 @@ class pkgCache::VerIterator inline bool operator ==(const VerIterator &B) const {return Ver == B.Ver;}; inline bool operator !=(const VerIterator &B) const {return Ver != B.Ver;}; int CompareVer(const VerIterator &B) const; - + + // Testing + inline bool IsGood() const { return Ver && Owner && ! end();}; + // Accessors inline Version *operator ->() {return Ver;}; inline Version const *operator ->() const {return Ver;}; diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 2411bfe89..e9ef9cedc 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -47,6 +47,13 @@ ConfigValueInSubTree(const char* SubTree, const char *needle) return false; } +std::string OutputInDepth(const unsigned long Depth) +{ + std::string output = ""; + for(unsigned long d=Depth; d > 0; d--) + output += " "; + return output; +} pkgDepCache::ActionGroup::ActionGroup(pkgDepCache &cache) : cache(cache), released(false) @@ -83,6 +90,8 @@ pkgDepCache::ActionGroup::~ActionGroup() pkgDepCache::pkgDepCache(pkgCache *pCache,Policy *Plcy) : group_level(0), Cache(pCache), PkgState(0), DepState(0) { + DebugMarker = _config->FindB("Debug::pkgDepCache::Marker", false); + DebugAutoInstall = _config->FindB("Debug::pkgDepCache::AutoInstall", false); delLocalPolicy = 0; LocalPolicy = Plcy; if (LocalPolicy == 0) @@ -705,7 +714,8 @@ void pkgDepCache::Update(PkgIterator const &Pkg) // DepCache::MarkKeep - Put the package in the keep state /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) +void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser, + unsigned long Depth) { // Simplifies other routines. if (Pkg.end() == true) @@ -746,6 +756,9 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) P.Flags &= ~Flag::Auto; #endif + if (DebugMarker == true) + std::clog << OutputInDepth(Depth) << "MarkKeep " << Pkg << std::endl; + RemoveSizes(Pkg); RemoveStates(Pkg); @@ -765,7 +778,8 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) // DepCache::MarkDelete - Put the package in the delete state /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge) +void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge, + unsigned long Depth) { // Simplifies other routines. if (Pkg.end() == true) @@ -787,6 +801,9 @@ void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge) if (Pkg->VersionList == 0) return; + if (DebugMarker == true) + std::clog << OutputInDepth(Depth) << "MarkDelete " << Pkg << std::endl; + RemoveSizes(Pkg); RemoveStates(Pkg); @@ -826,7 +843,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, P.CandidateVer == (Version *)Pkg.CurrentVer())) { if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0) - MarkKeep(Pkg, false, FromUser); + MarkKeep(Pkg, false, FromUser, Depth+1); return; } @@ -868,6 +885,9 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, if (AutoInst == false) return; + if (DebugMarker == true) + std::clog << OutputInDepth(Depth) << "MarkInstall " << Pkg << std::endl; + DepIterator Dep = P.InstVerIter(*this).DependsList(); for (; Dep.end() != true;) { @@ -937,12 +957,12 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, } } if(isNewImportantDep) - if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) - std::clog << "new important dependency: " + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "new important dependency: " << Start.TargetPkg().Name() << std::endl; if(isPreviouslySatisfiedImportantDep) - if(_config->FindB("Debug::pkgDepCache::AutoInstall", false) == true) - std::clog << "previously satisfied important dependency on " + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "previously satisfied important dependency on " << Start.TargetPkg().Name() << std::endl; // skip important deps if the package is already installed @@ -993,15 +1013,16 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, if (InstPkg.end() == false) { - if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) - std::clog << "Installing " << InstPkg.Name() - << " as dep of " << Pkg.Name() + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "Installing " << InstPkg.Name() + << " as " << Start.DepType() << " of " << Pkg.Name() << std::endl; // now check if we should consider it a automatic dependency or not if(Pkg.Section() && ConfigValueInSubTree("APT::Never-MarkAuto-Sections", Pkg.Section())) { - if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) - std::clog << "Setting NOT as auto-installed (direct dep of pkg in APT::Never-MarkAuto-Sections)" << std::endl; + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "Setting NOT as auto-installed (direct " + << Start.DepType() << " of pkg in APT::Never-MarkAuto-Sections)" << std::endl; MarkInstall(InstPkg,true,Depth + 1, true); } else @@ -1028,7 +1049,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, PkgIterator Pkg = Ver.ParentPkg(); if (Start->Type != Dep::DpkgBreaks) - MarkDelete(Pkg); + MarkDelete(Pkg,false,Depth + 1); else if (PkgState[Pkg->ID].CandidateVer != *I) MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps); diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index f41ad17e9..2d33e21d7 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -294,7 +294,10 @@ class pkgDepCache : protected pkgCache::Namespace unsigned long iBrokenCount; unsigned long iPolicyBrokenCount; unsigned long iBadCount; - + + bool DebugMarker; + bool DebugAutoInstall; + Policy *delLocalPolicy; // For memory clean up.. Policy *LocalPolicy; @@ -387,8 +390,9 @@ class pkgDepCache : protected pkgCache::Namespace */ // @{ void MarkKeep(PkgIterator const &Pkg, bool Soft = false, - bool FromUser = true); - void MarkDelete(PkgIterator const &Pkg,bool Purge = false); + bool FromUser = true, unsigned long Depth = 0); + void MarkDelete(PkgIterator const &Pkg, bool Purge = false, + unsigned long Depth = 0); void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true, unsigned long Depth = 0, bool FromUser = true, bool ForceImportantDeps = false); diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 81a254483..4e10093a8 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -21,6 +21,7 @@ /*}}}*/ // Include Files /*{{{*/ #include +#include #include #include #include @@ -290,6 +291,56 @@ pkgCache::PkgIterator::OkState pkgCache::PkgIterator::State() const return NeedsNothing; } /*}}}*/ +// PkgIterator::CandVersion - Returns the candidate version string /*{{{*/ +// --------------------------------------------------------------------- +/* Return string representing of the candidate version. */ +const char * +pkgCache::PkgIterator::CandVersion() const +{ + //TargetVer is empty, so don't use it. + VerIterator version = pkgPolicy::pkgPolicy(Owner).GetCandidateVer(*this); + if (version.IsGood()) + return version.VerStr(); + return 0; +}; + /*}}}*/ +// PkgIterator::CurVersion - Returns the current version string /*{{{*/ +// --------------------------------------------------------------------- +/* Return string representing of the current version. */ +const char * +pkgCache::PkgIterator::CurVersion() const +{ + VerIterator version = CurrentVer(); + if (version.IsGood()) + return CurrentVer().VerStr(); + return 0; +}; + /*}}}*/ +// ostream operator to handle string representation of a package /*{{{*/ +// --------------------------------------------------------------------- +/* Output name < cur.rent.version -> candid.ate.version | new.est.version > (section) + Note that the characters <|>() are all literal above. Versions will be ommited + if they provide no new information (e.g. there is no newer version than candidate) + If no version and/or section can be found "none" is used. */ +std::ostream& +operator<<(ostream& out, pkgCache::PkgIterator Pkg) +{ + if (Pkg.end() == true) + return out << "invalid package"; + + string current = string(Pkg.CurVersion() == 0 ? "none" : Pkg.CurVersion()); + string candidate = string(Pkg.CandVersion() == 0 ? "none" : Pkg.CandVersion()); + string newest = string(Pkg.VersionList().end() ? "none" : Pkg.VersionList().VerStr()); + + out << Pkg.Name() << " < " << current; + if (current != candidate) + out << " -> " << candidate; + if ( newest != "none" && candidate != newest) + out << " | " << newest; + out << " > ( " << string(Pkg.Section()==0?"none":Pkg.Section()) << " )"; + return out; +} + /*}}}*/ // DepIterator::IsCritical - Returns true if the dep is important /*{{{*/ // --------------------------------------------------------------------- /* Currently critical deps are defined as depends, predepends and diff --git a/debian/changelog b/debian/changelog index f1cb7bd0c..bb75ad8af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,6 +22,10 @@ apt (0.7.22) UNRELEASED; urgency=low (closes: #189866) * [ABI break] Allow pinning by codename (closes: #97564) * support running "--simulate" as user + * add depth information to the debug output and show what depends + type triggers a autoinst (closes: #458389) + * add debug::pkgDepCache::Marker with more detailed debug output + (closes: #87520) [ Julian Andres Klode ] * apt-pkg/contrib/configuration.cc: Fix a small memory leak in diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index fb2be9a28..841bb8f66 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -679,6 +679,27 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + Debug::pkgDepCache::Marker + + + Generate debug messages describing which package is marked + as keep/install/remove while the ProblemResolver does his work. + Each addition or deletion may trigger additional actions; + they are shown indented two additional space under the original entry. + The format for each line is MarkKeep, + MarkDelete or MarkInstall followed by + package-name <a.b.c -> d.e.f | x.y.z> (section) + where a.b.c is the current version of the package, + d.e.f is the version considered for installation and + x.y.z is a newer version, but not considered for installation + (because of a low pin score). The later two can be omitted if there is none or if + it is the same version as the installed. + section is the name of the section the package appears in. + + + + Debug::pkgInitConfig diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 5f29a2d3f..dd8d667db 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -289,6 +289,7 @@ Debug { pkgProblemResolver "false"; pkgDepCache::AutoInstall "false"; // what packages apt install to satify dependencies + pkgDepCache::Marker "false"; pkgAcquire "false"; pkgAcquire::Worker "false"; pkgAcquire::Auth "false"; diff --git a/po/apt-all.pot b/po/apt-all.pot index ec87b27a3..2aa99cfa2 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-11-12 22:07+0100\n" +"POT-Creation-Date: 2009-06-29 17:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -156,7 +156,7 @@ msgstr "" #: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547 -#: cmdline/apt-get.cc:2573 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2582 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "" @@ -554,7 +554,7 @@ msgstr "" msgid "Y" msgstr "" -#: cmdline/apt-get.cc:146 cmdline/apt-get.cc:1651 +#: cmdline/apt-get.cc:146 cmdline/apt-get.cc:1658 #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -713,11 +713,11 @@ msgstr "" msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:809 cmdline/apt-get.cc:1992 cmdline/apt-get.cc:2025 +#: cmdline/apt-get.cc:809 cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2032 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:819 cmdline/apt-get.cc:2073 cmdline/apt-get.cc:2319 +#: cmdline/apt-get.cc:819 cmdline/apt-get.cc:2080 cmdline/apt-get.cc:2326 #: apt-pkg/cachefile.cc:65 msgid "The list of sources could not be read." msgstr "" @@ -746,7 +746,7 @@ msgstr "" msgid "After this operation, %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:2168 +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:2175 #, c-format msgid "Couldn't determine free space in %s" msgstr "" @@ -780,7 +780,7 @@ msgstr "" msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2216 apt-pkg/algorithms.cc:1349 +#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1349 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@ -789,7 +789,7 @@ msgstr "" msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:2225 +#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:2232 msgid "Download complete and in download only mode" msgstr "" @@ -881,29 +881,34 @@ msgstr "" msgid "Selected version %s (%s) for %s\n" msgstr "" -#: cmdline/apt-get.cc:1338 +#: cmdline/apt-get.cc:1307 +#, c-format +msgid "No source package '%s' picking '%s' instead\n" +msgstr "" + +#: cmdline/apt-get.cc:1345 msgid "The update command takes no arguments" msgstr "" -#: cmdline/apt-get.cc:1351 +#: cmdline/apt-get.cc:1358 msgid "Unable to lock the list directory" msgstr "" -#: cmdline/apt-get.cc:1403 +#: cmdline/apt-get.cc:1410 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1435 +#: cmdline/apt-get.cc:1442 msgid "" "The following packages were automatically installed and are no longer " "required:" msgstr "" -#: cmdline/apt-get.cc:1437 +#: cmdline/apt-get.cc:1444 msgid "Use 'apt-get autoremove' to remove them." msgstr "" -#: cmdline/apt-get.cc:1442 +#: cmdline/apt-get.cc:1449 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -919,49 +924,49 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1445 cmdline/apt-get.cc:1735 +#: cmdline/apt-get.cc:1452 cmdline/apt-get.cc:1742 msgid "The following information may help to resolve the situation:" msgstr "" -#: cmdline/apt-get.cc:1449 +#: cmdline/apt-get.cc:1456 msgid "Internal Error, AutoRemover broke stuff" msgstr "" -#: cmdline/apt-get.cc:1468 +#: cmdline/apt-get.cc:1475 msgid "Internal error, AllUpgrade broke stuff" msgstr "" -#: cmdline/apt-get.cc:1523 +#: cmdline/apt-get.cc:1530 #, c-format msgid "Couldn't find task %s" msgstr "" -#: cmdline/apt-get.cc:1638 cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1645 cmdline/apt-get.cc:1681 #, c-format msgid "Couldn't find package %s" msgstr "" -#: cmdline/apt-get.cc:1661 +#: cmdline/apt-get.cc:1668 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1692 +#: cmdline/apt-get.cc:1699 #, c-format msgid "%s set to manually installed.\n" msgstr "" -#: cmdline/apt-get.cc:1705 +#: cmdline/apt-get.cc:1712 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "" -#: cmdline/apt-get.cc:1708 +#: cmdline/apt-get.cc:1715 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -#: cmdline/apt-get.cc:1720 +#: cmdline/apt-get.cc:1727 msgid "" "Some packages could not be installed. This may mean that you have\n" "requested an impossible situation or if you are using the unstable\n" @@ -969,152 +974,152 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1738 +#: cmdline/apt-get.cc:1745 msgid "Broken packages" msgstr "" -#: cmdline/apt-get.cc:1767 +#: cmdline/apt-get.cc:1774 msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1856 +#: cmdline/apt-get.cc:1863 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1857 +#: cmdline/apt-get.cc:1864 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1885 +#: cmdline/apt-get.cc:1892 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1888 methods/ftp.cc:702 methods/connect.cc:112 +#: cmdline/apt-get.cc:1895 methods/ftp.cc:702 methods/connect.cc:112 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:1893 +#: cmdline/apt-get.cc:1900 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:1960 cmdline/apt-get.cc:1968 +#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:1975 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:2068 +#: cmdline/apt-get.cc:2075 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:2098 cmdline/apt-get.cc:2337 +#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:2344 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:2147 +#: cmdline/apt-get.cc:2154 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:2175 +#: cmdline/apt-get.cc:2182 #, c-format msgid "You don't have enough free space in %s" msgstr "" -#: cmdline/apt-get.cc:2181 +#: cmdline/apt-get.cc:2188 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2184 +#: cmdline/apt-get.cc:2191 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2190 +#: cmdline/apt-get.cc:2197 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2221 +#: cmdline/apt-get.cc:2228 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2249 +#: cmdline/apt-get.cc:2256 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2261 +#: cmdline/apt-get.cc:2268 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2262 +#: cmdline/apt-get.cc:2269 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2279 +#: cmdline/apt-get.cc:2286 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2298 +#: cmdline/apt-get.cc:2305 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2314 +#: cmdline/apt-get.cc:2321 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2362 +#: cmdline/apt-get.cc:2369 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2414 +#: cmdline/apt-get.cc:2421 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2467 +#: cmdline/apt-get.cc:2474 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -#: cmdline/apt-get.cc:2503 +#: cmdline/apt-get.cc:2510 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2528 +#: cmdline/apt-get.cc:2537 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2542 +#: cmdline/apt-get.cc:2551 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2546 +#: cmdline/apt-get.cc:2555 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2578 +#: cmdline/apt-get.cc:2587 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2619 +#: cmdline/apt-get.cc:2628 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1130,7 +1135,7 @@ msgid "" " install - Install new packages (pkg is libc6 not libc6.deb)\n" " remove - Remove packages\n" " autoremove - Remove automatically all unused packages\n" -" purge - Remove and purge packages\n" +" purge - Remove packages and config files\n" " source - Download source archives\n" " build-dep - Configure build-dependencies for source packages\n" " dist-upgrade - Distribution upgrade, see apt-get(8)\n" @@ -1158,6 +1163,14 @@ msgid "" " This APT has Super Cow Powers.\n" msgstr "" +#: cmdline/apt-get.cc:2795 +msgid "" +"NOTE: This is only a simulation!\n" +" apt-get needs root privileges for real execution.\n" +" Keep also in mind that locking is deactivated,\n" +" so don't depend on the relevance to the real current situation!" +msgstr "" + #: cmdline/acqprogress.cc:55 msgid "Hit " msgstr "" @@ -1373,7 +1386,7 @@ msgstr "" msgid "File %s/%s overwrites the one in the package %s" msgstr "" -#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:821 +#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:822 #: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 #: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 #, c-format @@ -1666,7 +1679,7 @@ msgstr "" msgid "Unable to accept connection" msgstr "" -#: methods/ftp.cc:864 methods/http.cc:960 methods/rsh.cc:303 +#: methods/ftp.cc:864 methods/http.cc:991 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "" @@ -1750,38 +1763,38 @@ msgstr "" msgid "Unable to connect to %s %s:" msgstr "" -#: methods/gpgv.cc:65 +#: methods/gpgv.cc:71 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "" -#: methods/gpgv.cc:101 +#: methods/gpgv.cc:107 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" -#: methods/gpgv.cc:205 +#: methods/gpgv.cc:223 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -#: methods/gpgv.cc:210 +#: methods/gpgv.cc:228 msgid "At least one invalid signature was encountered." msgstr "" -#: methods/gpgv.cc:214 +#: methods/gpgv.cc:232 #, c-format msgid "Could not execute '%s' to verify signature (is gpgv installed?)" msgstr "" -#: methods/gpgv.cc:219 +#: methods/gpgv.cc:237 msgid "Unknown error executing gpgv" msgstr "" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:271 methods/gpgv.cc:278 msgid "The following signatures were invalid:\n" msgstr "" -#: methods/gpgv.cc:257 +#: methods/gpgv.cc:285 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -1797,80 +1810,80 @@ msgstr "" msgid "Read error from %s process" msgstr "" -#: methods/http.cc:377 +#: methods/http.cc:379 msgid "Waiting for headers" msgstr "" -#: methods/http.cc:523 +#: methods/http.cc:525 #, c-format msgid "Got a single header line over %u chars" msgstr "" -#: methods/http.cc:531 +#: methods/http.cc:533 msgid "Bad header line" msgstr "" -#: methods/http.cc:550 methods/http.cc:557 +#: methods/http.cc:552 methods/http.cc:559 msgid "The HTTP server sent an invalid reply header" msgstr "" -#: methods/http.cc:586 +#: methods/http.cc:588 msgid "The HTTP server sent an invalid Content-Length header" msgstr "" -#: methods/http.cc:601 +#: methods/http.cc:603 msgid "The HTTP server sent an invalid Content-Range header" msgstr "" -#: methods/http.cc:603 +#: methods/http.cc:605 msgid "This HTTP server has broken range support" msgstr "" -#: methods/http.cc:627 +#: methods/http.cc:629 msgid "Unknown date format" msgstr "" -#: methods/http.cc:774 +#: methods/http.cc:782 msgid "Select failed" msgstr "" -#: methods/http.cc:779 +#: methods/http.cc:787 msgid "Connection timed out" msgstr "" -#: methods/http.cc:802 +#: methods/http.cc:810 msgid "Error writing to output file" msgstr "" -#: methods/http.cc:833 +#: methods/http.cc:841 msgid "Error writing to file" msgstr "" -#: methods/http.cc:861 +#: methods/http.cc:869 msgid "Error writing to the file" msgstr "" -#: methods/http.cc:875 +#: methods/http.cc:883 msgid "Error reading from server. Remote end closed connection" msgstr "" -#: methods/http.cc:877 +#: methods/http.cc:885 msgid "Error reading from server" msgstr "" -#: methods/http.cc:945 apt-pkg/contrib/mmap.cc:196 +#: methods/http.cc:976 apt-pkg/contrib/mmap.cc:196 msgid "Failed to truncate file" msgstr "" -#: methods/http.cc:1105 +#: methods/http.cc:1141 msgid "Bad header data" msgstr "" -#: methods/http.cc:1122 methods/http.cc:1177 +#: methods/http.cc:1158 methods/http.cc:1213 msgid "Connection failed" msgstr "" -#: methods/http.cc:1229 +#: methods/http.cc:1305 msgid "Internal error" msgstr "" @@ -1890,7 +1903,31 @@ msgid "" "Current value: %lu. (man 5 apt.conf)" msgstr "" -#: apt-pkg/contrib/strutl.cc:1014 +#. d means days, h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:335 +#, c-format +msgid "%lid %lih %limin %lis" +msgstr "" + +#. h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:342 +#, c-format +msgid "%lih %limin %lis" +msgstr "" + +#. min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:349 +#, c-format +msgid "%limin %lis" +msgstr "" + +#. s means seconds +#: apt-pkg/contrib/strutl.cc:354 +#, c-format +msgid "%lis" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:1018 #, c-format msgid "Selection %s not found" msgstr "" @@ -1905,42 +1942,42 @@ msgstr "" msgid "Opening configuration file %s" msgstr "" -#: apt-pkg/contrib/configuration.cc:662 +#: apt-pkg/contrib/configuration.cc:663 #, c-format msgid "Syntax error %s:%u: Block starts with no name." msgstr "" -#: apt-pkg/contrib/configuration.cc:681 +#: apt-pkg/contrib/configuration.cc:682 #, c-format msgid "Syntax error %s:%u: Malformed tag" msgstr "" -#: apt-pkg/contrib/configuration.cc:698 +#: apt-pkg/contrib/configuration.cc:699 #, c-format msgid "Syntax error %s:%u: Extra junk after value" msgstr "" -#: apt-pkg/contrib/configuration.cc:738 +#: apt-pkg/contrib/configuration.cc:739 #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -#: apt-pkg/contrib/configuration.cc:745 +#: apt-pkg/contrib/configuration.cc:746 #, c-format msgid "Syntax error %s:%u: Too many nested includes" msgstr "" -#: apt-pkg/contrib/configuration.cc:749 apt-pkg/contrib/configuration.cc:754 +#: apt-pkg/contrib/configuration.cc:750 apt-pkg/contrib/configuration.cc:755 #, c-format msgid "Syntax error %s:%u: Included from here" msgstr "" -#: apt-pkg/contrib/configuration.cc:758 +#: apt-pkg/contrib/configuration.cc:759 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" msgstr "" -#: apt-pkg/contrib/configuration.cc:809 +#: apt-pkg/contrib/configuration.cc:810 #, c-format msgid "Syntax error %s:%u: Extra junk at end of file" msgstr "" @@ -2083,101 +2120,105 @@ msgstr "" msgid "Problem syncing the file" msgstr "" -#: apt-pkg/pkgcache.cc:132 +#: apt-pkg/pkgcache.cc:133 msgid "Empty package cache" msgstr "" -#: apt-pkg/pkgcache.cc:138 +#: apt-pkg/pkgcache.cc:139 msgid "The package cache file is corrupted" msgstr "" -#: apt-pkg/pkgcache.cc:143 +#: apt-pkg/pkgcache.cc:144 msgid "The package cache file is an incompatible version" msgstr "" -#: apt-pkg/pkgcache.cc:148 +#: apt-pkg/pkgcache.cc:149 #, c-format msgid "This APT does not support the versioning system '%s'" msgstr "" -#: apt-pkg/pkgcache.cc:153 +#: apt-pkg/pkgcache.cc:154 msgid "The package cache was built for a different architecture" msgstr "" -#: apt-pkg/pkgcache.cc:224 +#: apt-pkg/pkgcache.cc:225 msgid "Depends" msgstr "" -#: apt-pkg/pkgcache.cc:224 +#: apt-pkg/pkgcache.cc:225 msgid "PreDepends" msgstr "" -#: apt-pkg/pkgcache.cc:224 +#: apt-pkg/pkgcache.cc:225 msgid "Suggests" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:226 msgid "Recommends" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:226 msgid "Conflicts" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:226 msgid "Replaces" msgstr "" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:227 msgid "Obsoletes" msgstr "" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:227 msgid "Breaks" msgstr "" -#: apt-pkg/pkgcache.cc:237 +#: apt-pkg/pkgcache.cc:227 +msgid "Enhances" +msgstr "" + +#: apt-pkg/pkgcache.cc:238 msgid "important" msgstr "" -#: apt-pkg/pkgcache.cc:237 +#: apt-pkg/pkgcache.cc:238 msgid "required" msgstr "" -#: apt-pkg/pkgcache.cc:237 +#: apt-pkg/pkgcache.cc:238 msgid "standard" msgstr "" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:239 msgid "optional" msgstr "" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:239 msgid "extra" msgstr "" -#: apt-pkg/depcache.cc:121 apt-pkg/depcache.cc:150 +#: apt-pkg/depcache.cc:130 apt-pkg/depcache.cc:159 msgid "Building dependency tree" msgstr "" -#: apt-pkg/depcache.cc:122 +#: apt-pkg/depcache.cc:131 msgid "Candidate versions" msgstr "" -#: apt-pkg/depcache.cc:151 +#: apt-pkg/depcache.cc:160 msgid "Dependency generation" msgstr "" -#: apt-pkg/depcache.cc:172 apt-pkg/depcache.cc:191 apt-pkg/depcache.cc:195 +#: apt-pkg/depcache.cc:181 apt-pkg/depcache.cc:200 apt-pkg/depcache.cc:204 msgid "Reading state information" msgstr "" -#: apt-pkg/depcache.cc:219 +#: apt-pkg/depcache.cc:228 #, c-format msgid "Failed to open StateFile %s" msgstr "" -#: apt-pkg/depcache.cc:225 +#: apt-pkg/depcache.cc:234 #, c-format msgid "Failed to write temporary StateFile %s" msgstr "" @@ -2309,7 +2350,7 @@ msgstr "" msgid "Method %s did not start correctly" msgstr "" -#: apt-pkg/acquire-worker.cc:399 +#: apt-pkg/acquire-worker.cc:413 #, c-format msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" @@ -2340,16 +2381,16 @@ msgstr "" msgid "You may want to run apt-get update to correct these problems" msgstr "" -#: apt-pkg/policy.cc:267 +#: apt-pkg/policy.cc:281 msgid "Invalid record in the preferences file, no Package header" msgstr "" -#: apt-pkg/policy.cc:289 +#: apt-pkg/policy.cc:303 #, c-format msgid "Did not understand pin type %s" msgstr "" -#: apt-pkg/policy.cc:297 +#: apt-pkg/policy.cc:311 msgid "No priority (or zero) specified for pin" msgstr "" @@ -2660,10 +2701,14 @@ msgstr "" msgid "Completely removed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:791 +#: apt-pkg/deb/dpkgpm.cc:789 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" +#: apt-pkg/deb/debsystem.cc:100 +msgid "Not locked" +msgstr "" + #: methods/rred.cc:219 msgid "Could not patch file" msgstr "" -- cgit v1.2.3-70-g09d2 From 8b4894fe9e917409f3ea4cbb189c1648f2cea4df Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 29 Jun 2009 18:07:30 +0200 Subject: * add Debug::pkgDepCache::Marker with more detailed debug output * add Debug::pkgProblemResolver::ShowScores and make the scores adjustable --- apt-pkg/algorithms.cc | 91 +++++++++++++++++++++++++++++++------------- debian/changelog | 4 +- doc/apt.conf.5.xml | 11 ++++++ doc/examples/configure-index | 1 + po/apt-all.pot | 8 ++-- 5 files changed, 84 insertions(+), 31 deletions(-) (limited to 'doc/examples') diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index bd33d5ef1..4b1bb4430 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -489,6 +489,34 @@ void pkgProblemResolver::MakeScores() unsigned long Size = Cache.Head().PackageCount; memset(Scores,0,sizeof(*Scores)*Size); + // Important Required Standard Optional Extra + signed short PrioMap[] = { + 0, + _config->FindI("pkgProblemResolver::Scores::Important",3), + _config->FindI("pkgProblemResolver::Scores::Required",2), + _config->FindI("pkgProblemResolver::Scores::Standard",1), + _config->FindI("pkgProblemResolver::Scores::Optional",-1), + _config->FindI("pkgProblemResolver::Scores::Extra",-2) + }; + signed short PrioEssentials = _config->FindI("pkgProblemResolver::Scores::Essentials",100); + signed short PrioInstalledAndNotObsolete = _config->FindI("pkgProblemResolver::Scores::NotObsolete",1); + signed short PrioDepends = _config->FindI("pkgProblemResolver::Scores::Depends",1); + signed short AddProtected = _config->FindI("pkgProblemResolver::Scores::AddProtected",10000); + signed short AddEssential = _config->FindI("pkgProblemResolver::Scores::AddEssential",5000); + + if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true) + clog << "Settings used to calculate pkgProblemResolver::Scores::" << endl + << " Important => " << PrioMap[1] << endl + << " Required => " << PrioMap[2] << endl + << " Standard => " << PrioMap[3] << endl + << " Optional => " << PrioMap[4] << endl + << " Extra => " << PrioMap[5] << endl + << " Essentials => " << PrioEssentials << endl + << " InstalledAndNotObsolete => " << PrioInstalledAndNotObsolete << endl + << " Depends => " << PrioDepends << endl + << " AddProtected => " << AddProtected << endl + << " AddEssential => " << AddEssential << endl; + // Generate the base scores for a package based on its properties for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) { @@ -502,11 +530,9 @@ void pkgProblemResolver::MakeScores() to allow an obsolete essential packages to be removed by a conflicts on a powerfull normal package (ie libc6) */ if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) - Score += 100; + Score += PrioEssentials; // We transform the priority - // Important Required Standard Optional Extra - signed short PrioMap[] = {0,3,2,1,-1,-2}; if (Cache[I].InstVerIter(Cache)->Priority <= 5) Score += PrioMap[Cache[I].InstVerIter(Cache)->Priority]; @@ -515,7 +541,7 @@ void pkgProblemResolver::MakeScores() if those are not obsolete */ if (I->CurrentVer != 0 && Cache[I].CandidateVer != 0 && Cache[I].CandidateVerIter(Cache).Downloadable()) - Score += 1; + Score += PrioInstalledAndNotObsolete; } // Now that we have the base scores we go and propogate dependencies @@ -527,7 +553,7 @@ void pkgProblemResolver::MakeScores() for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; D++) { if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) - Scores[D.TargetPkg()->ID]++; + Scores[D.TargetPkg()->ID]+= PrioDepends; } } @@ -572,10 +598,10 @@ void pkgProblemResolver::MakeScores() for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) { if ((Flags[I->ID] & Protected) != 0) - Scores[I->ID] += 10000; + Scores[I->ID] += AddProtected; if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) - Scores[I->ID] += 5000; - } + Scores[I->ID] += AddEssential; + } } /*}}}*/ // ProblemResolver::DoUpgrade - Attempt to upgrade this package /*{{{*/ @@ -751,19 +777,21 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) *PEnd++ = I; This = this; qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); - -/* for (pkgCache::Package **K = PList; K != PEnd; K++) - if (Scores[(*K)->ID] != 0) - { - pkgCache::PkgIterator Pkg(Cache,*K); - clog << Scores[(*K)->ID] << ' ' << Pkg.Name() << - ' ' << (pkgCache::Version *)Pkg.CurrentVer() << ' ' << - Cache[Pkg].InstallVer << ' ' << Cache[Pkg].CandidateVer << endl; - } */ + + if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true) + { + clog << "Show Scores" << endl; + for (pkgCache::Package **K = PList; K != PEnd; K++) + if (Scores[(*K)->ID] != 0) + { + pkgCache::PkgIterator Pkg(Cache,*K); + clog << Scores[(*K)->ID] << ' ' << Pkg << std::endl; + } + } if (Debug == true) clog << "Starting 2" << endl; - + /* Now consider all broken packages. For each broken package we either remove the package or fix it's problem. We do this once, it should not be possible for a loop to form (that is a < b < c and fixing b by @@ -878,7 +906,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) } if (Debug == true) - clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl; + clog << "Package " << I.Name() << " has broken " << Start.DepType() << " on " << Start.TargetPkg().Name() << endl; /* Look across the version list. If there are no possible targets then we keep the package and bail. This is necessary @@ -1137,9 +1165,6 @@ bool pkgProblemResolver::ResolveByKeep() unsigned long Size = Cache.Head().PackageCount; - if (Debug == true) - clog << "Entering ResolveByKeep" << endl; - MakeScores(); /* We have to order the packages so that the broken fixing pass @@ -1152,7 +1177,21 @@ bool pkgProblemResolver::ResolveByKeep() *PEnd++ = I; This = this; qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); - + + if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true) + { + clog << "Show Scores" << endl; + for (pkgCache::Package **K = PList; K != PEnd; K++) + if (Scores[(*K)->ID] != 0) + { + pkgCache::PkgIterator Pkg(Cache,*K); + clog << Scores[(*K)->ID] << ' ' << Pkg << std::endl; + } + } + + if (Debug == true) + clog << "Entering ResolveByKeep" << endl; + // Consider each broken package pkgCache::Package **LastStop = 0; for (pkgCache::Package **K = PList; K != PEnd; K++) @@ -1198,8 +1237,8 @@ bool pkgProblemResolver::ResolveByKeep() while (true) { if (Debug == true) - clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl; - + clog << "Package " << I.Name() << " has broken " << Start.DepType() << " on " << Start.TargetPkg().Name() << endl; + // Look at all the possible provides on this package SPtrArray VList = Start.AllTargets(); for (pkgCache::Version **V = VList; *V != 0; V++) @@ -1215,7 +1254,7 @@ bool pkgProblemResolver::ResolveByKeep() if ((Flags[I->ID] & Protected) == 0) { if (Debug == true) - clog << " Keeping Package " << Pkg.Name() << " due to dep" << endl; + clog << " Keeping Package " << Pkg.Name() << " due to " << Start.DepType() << endl; Cache.MarkKeep(Pkg, false, false); } diff --git a/debian/changelog b/debian/changelog index bb75ad8af..d1959c074 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,8 +24,10 @@ apt (0.7.22) UNRELEASED; urgency=low * support running "--simulate" as user * add depth information to the debug output and show what depends type triggers a autoinst (closes: #458389) - * add debug::pkgDepCache::Marker with more detailed debug output + * add Debug::pkgDepCache::Marker with more detailed debug output (closes: #87520) + * add Debug::pkgProblemResolver::ShowScores and make the scores + adjustable [ Julian Andres Klode ] * apt-pkg/contrib/configuration.cc: Fix a small memory leak in diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 841bb8f66..eece75d28 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -777,6 +777,17 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + Debug::pkgProblemResolver::ShowScores + + + Display a list of all installed packages with their calculated score + used by the pkgProblemResolver. The description of the package + is the same as described in Debug::pkgDepCache::Marker + + + + Debug::sourceList diff --git a/doc/examples/configure-index b/doc/examples/configure-index index dd8d667db..cea0dcc09 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -288,6 +288,7 @@ DPkg Debug { pkgProblemResolver "false"; + pkgProblemResolver::ShowScores "false"; pkgDepCache::AutoInstall "false"; // what packages apt install to satify dependencies pkgDepCache::Marker "false"; pkgAcquire "false"; diff --git a/po/apt-all.pot b/po/apt-all.pot index 2aa99cfa2..a1d7cb99d 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -780,7 +780,7 @@ msgstr "" msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1349 +#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1388 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@ -2302,17 +2302,17 @@ msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -#: apt-pkg/algorithms.cc:1107 +#: apt-pkg/algorithms.cc:1135 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -#: apt-pkg/algorithms.cc:1109 +#: apt-pkg/algorithms.cc:1137 msgid "Unable to correct problems, you have held broken packages." msgstr "" -#: apt-pkg/algorithms.cc:1375 apt-pkg/algorithms.cc:1377 +#: apt-pkg/algorithms.cc:1414 apt-pkg/algorithms.cc:1416 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." -- cgit v1.2.3-70-g09d2 From 5541fea3f0c6b4b40048c161b9201b03243ac3a9 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 6 Jul 2009 16:20:13 +0200 Subject: configure-index: document Dir::Etc::SourceParts and some other options (Closes: #459605) --- debian/changelog | 2 ++ doc/examples/configure-index | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'doc/examples') diff --git a/debian/changelog b/debian/changelog index 668192967..6ffd0459f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -41,6 +41,8 @@ apt (0.7.22) UNRELEASED; urgency=low * apt-pkg/contrib/configuration.cc: Fix a small memory leak in ReadConfigFile. * Introduce support for the Enhances field. (Closes: #137583) + * configure-index: document Dir::Etc::SourceParts and some other options + (Closes: #459605) -- Christian Perrier Wed, 22 Apr 2009 10:13:54 +0200 diff --git a/doc/examples/configure-index b/doc/examples/configure-index index cea0dcc09..b2bc95e69 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -219,10 +219,13 @@ Dir "/" // Config files Etc "etc/apt/" { - SourceList "sources.list"; Main "apt.conf"; - Preferences "preferences"; Parts "apt.conf.d/"; + Preferences "preferences"; + SourceList "sources.list"; + SourceParts "sources.list.d"; + VendorList "vendors.list"; + VendorParts "vendors.list.d"; }; // Locations of binaries -- cgit v1.2.3-70-g09d2 From ecf59bfcf3ca573aa15a44086a7852d1308ff1ad Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 7 Jul 2009 19:23:04 +0200 Subject: [apt-get] add possibility to hide the user simulation note --- cmdline/apt-get.cc | 11 ++++++----- doc/apt-get.8.xml | 3 ++- doc/examples/configure-index | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'doc/examples') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 97c83c9b0..2ca0855b6 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2793,11 +2793,12 @@ int main(int argc,const char *argv[]) /*{{{*/ // simulate user-friendly if apt-get has no root privileges if (getuid() != 0 && _config->FindB("APT::Get::Simulate") == true) { - cout << _("NOTE: This is only a simulation!\n" - " apt-get needs root privileges for real execution.\n" - " Keep also in mind that locking is deactivated,\n" - " so don't depend on the relevance to the real current situation!" - ) << std::endl; + if (_config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) + cout << _("NOTE: This is only a simulation!\n" + " apt-get needs root privileges for real execution.\n" + " Keep also in mind that locking is deactivated,\n" + " so don't depend on the relevance to the real current situation!" + ) << std::endl; _config->Set("Debug::NoLocking",true); } diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index e7f6d7094..50971d0f5 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -364,7 +364,8 @@ Configuration Item: APT::Get::Simulate. Simulation run as user will deactivate locking (Debug::NoLocking) - automatical and display a notice indicating that this is only a simulation. + automatical. Also a notice will be displayed indicating that this is only a simulation, + if the option APT::Get::Show-User-Simulation-Note is set (Default: true) Neigther NoLocking nor the notice will be triggered if run as root (root should know what he is doing without further warnings by apt-get). diff --git a/doc/examples/configure-index b/doc/examples/configure-index index cea0dcc09..ce56f1563 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -55,6 +55,7 @@ APT Diff-Only "false"; Tar-Only "false"; Build-Dep-Automatic "true"; + Show-User-Simulation-Note "true"; }; Cache -- cgit v1.2.3-70-g09d2 From 8bd02d8bd6bc46bc38924635afc09fdde50b6bf5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 8 Sep 2009 15:02:15 +0200 Subject: Rework the CompressionTypes system by adding an Order subgroup to simplify customisation of the order and improve the documentation about this setting group. --- apt-pkg/aptconfiguration.cc | 56 +++++++++++++++++++++++++++----------------- debian/changelog | 3 +++ doc/apt.conf.5.xml | 32 ++++++++++++++++++------- doc/examples/configure-index | 9 +++++++ 4 files changed, 69 insertions(+), 31 deletions(-) (limited to 'doc/examples') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 1a8e8262f..45ae9bed5 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -14,6 +14,7 @@ #include #include +#include /*}}}*/ namespace APT { // getCompressionTypes - Return Vector of usbale compressiontypes /*{{{*/ @@ -29,41 +30,52 @@ const Configuration::getCompressionTypes(bool const &Cached) { types.clear(); } + // setup the defaults for the compressiontypes => method mapping + _config->CndSet("Acquire::CompressionTypes::bz2","bzip2"); + _config->CndSet("Acquire::CompressionTypes::lzma","lzma"); + _config->CndSet("Acquire::CompressionTypes::gz","gzip"); + // Set default application paths to check for optional compression types _config->CndSet("Dir::Bin::lzma", "/usr/bin/lzma"); _config->CndSet("Dir::Bin::bzip2", "/bin/bzip2"); - ::Configuration::Item const *Opts = _config->Tree("Acquire::CompressionTypes"); - if (Opts != 0) - Opts = Opts->Child; + // accept non-list order as override setting for config settings on commandline + std::string const overrideOrder = _config->Find("Acquire::CompressionTypes::Order",""); + if (overrideOrder.empty() == false) + types.push_back(overrideOrder); - // at first, move over the options to setup at least the default options - bool foundLzma=false, foundBzip2=false, foundGzip=false; - for (; Opts != 0; Opts = Opts->Next) { - if (Opts->Value == "lzma") - foundLzma = true; - else if (Opts->Value == "bz2") - foundBzip2 = true; - else if (Opts->Value == "gz") - foundGzip = true; + // load the order setting into our vector + std::vector const order = _config->FindVector("Acquire::CompressionTypes::Order"); + for (std::vector::const_iterator o = order.begin(); + o != order.end(); o++) { + if ((*o).empty() == true) + continue; + // ignore types we have no method ready to use + if (_config->Exists(string("Acquire::CompressionTypes::").append(*o)) == false) + continue; + // ignore types we have no app ready to use + string const appsetting = string("Dir::Bin::").append(*o); + if (_config->Exists(appsetting) == true) { + std::string const app = _config->FindFile(appsetting.c_str(), ""); + if (app.empty() == false && FileExists(app) == false) + continue; + } + types.push_back(*o); } - // setup the defaults now - if (!foundBzip2) - _config->Set("Acquire::CompressionTypes::bz2","bzip2"); - if (!foundLzma) - _config->Set("Acquire::CompressionTypes::lzma","lzma"); - if (!foundGzip) - _config->Set("Acquire::CompressionTypes::gz","gzip"); - - // move again over the option tree to finially calculate our result + // move again over the option tree to add all missing compression types ::Configuration::Item const *Types = _config->Tree("Acquire::CompressionTypes"); if (Types != 0) Types = Types->Child; for (; Types != 0; Types = Types->Next) { + if (Types->Tag == "Order" || Types->Tag.empty() == true) + continue; + // ignore types we already have in the vector + if (std::find(types.begin(),types.end(),Types->Tag) != types.end()) + continue; + // ignore types we have no app ready to use string const appsetting = string("Dir::Bin::").append(Types->Value); - // ignore compression types we have no app ready to use if (appsetting.empty() == false && _config->Exists(appsetting) == true) { std::string const app = _config->FindFile(appsetting.c_str(), ""); if (app.empty() == false && FileExists(app) == false) diff --git a/debian/changelog b/debian/changelog index 3d8dc292a..5ddd84117 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,6 +24,9 @@ apt (0.7.24) UNRELEASED; urgency=low - replace unknown multibytes with ? in UTF8ToCharset (Closes: #545208) * doc/apt-get.8.xml: - fix two little typos in the --simulate description. + * apt-pkg/aptconfiguration.cc, doc/apt.conf.5.xml: + - add an order subgroup to the compression types to simplify reordering + a bit and improve the documentation for this option group. -- David Kalnischkies Fri, 28 Aug 2009 09:40:08 +0200 diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index e0ce0db40..92ac5ec04 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -90,7 +90,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; #include will include the given file, unless the filename ends in a slash, then the whole directory is included. #clear is used to erase a part of the configuration tree. The - specified element and all its descendents are erased. + specified element and all its descendants are erased. All of the APT tools take a -o option which allows an arbitrary configuration directive to be specified on the command line. The syntax is a full option @@ -312,16 +312,30 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; CompressionTypes List of compression types which are understood by the acquire methods. Files like Packages can be available in various compression formats. - This list defines in which order the acquire methods will try to download these files. - Per default bzip2 compressed files will be prefered over - lzma, gzip and uncompressed files. The syntax for - the configuration fileentry is + Per default the acquire methods can decompress bzip2, lzma + and gzip compressed files, with this setting more formats can be added + on the fly or the used method can be changed. The syntax for this is: Acquire::CompressionTypes::FileExtension "Methodname"; - e.g. Acquire::CompressionTypes::bz2 "bzip2"; - Note that at runtime the Dir::Bin::Methodname will + Also the Order subgroup can be used to define in which order + the acquire system will try to download the compressed files. The acquire system will try the first + and proceed with the next compression type in this list on error, so to prefer one over the other type + simple add the preferred type at first - not already added default types will be added at run time + to the end of the list, so e.g. Acquire::CompressionTypes::Order:: "gz"; can + be used to prefer gzip compressed files over bzip2 and lzma. + If lzma should be preferred over gzip and bzip2 the + configure setting should look like this Acquire::CompressionTypes::Order { "lzma"; "gz"; }; + It is not needed to add bz2 explicit to the list as it will be added automatic. + Note that at run time the Dir::Bin::Methodname will be checked: If this setting exists the method will only be used if this file exists, e.g. for - the bzip2 method above (the inbuilt) setting is Dir::Bin::bzip2 "/bin/bzip2"; - + the bzip2 method (the inbuilt) setting is Dir::Bin::bzip2 "/bin/bzip2"; + Note also that list entries specified on the commandline will be added at the end of the list + specified in the configuration files, but before the default entries. To prefer a type in this case + over the ones specified in in the configuration files you can set the option direct - not in list style. + This will not override the defined list, it will only prefix the list with this type. + While it is possible to add an empty compression type to the order list, but APT in its current + version doesn't understand it correctly and will display many warnings about not downloaded files - + these warnings are most of the time false negatives. Future versions will maybe include a way to + really prefer uncompressed files to support the usage of local mirrors. diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 5dc7b5246..8025fa4b4 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -246,6 +246,15 @@ Acquire { Options {"--ignore-time-conflict";} // not very useful on a normal system }; + + CompressionTypes + { + bz2 "bzip2"; + lzma "lzma"; + gz "gzip"; + + Order { "gz"; "lzma"; "bz2"; }; + }; }; // Directory layout -- cgit v1.2.3-70-g09d2 From 3e9c4f702ed45f6201bae44b628c84db69436b05 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 13 Sep 2009 00:32:35 +0200 Subject: add and document experimental options to make aggressive use of dpkg's trigger and configuration handling (Closes: #473461) Add NoTriggers option to add --no-triggers to all dpkg calls, NoConfiguration to prevent apt from trying to configure packages - dpkg should handle this in the last ConfigurePending call. This options are for now deactivated as they require more testing in real world situations, but the plan is to enable them in the near future if anything works well. --- apt-pkg/deb/dpkgpm.cc | 39 +++++-- apt-pkg/deb/dpkgpm.h | 2 +- debian/changelog | 3 + doc/apt.conf.5.xml | 46 ++++++++ doc/examples/configure-index | 15 ++- doc/po/apt-doc.pot | 229 +++++++++++++++++++++++++++------------- doc/po/fr.po | 230 +++++++++++++++++++++++++++------------- doc/po/ja.po | 243 +++++++++++++++++++++++++++++-------------- po/apt-all.pot | 26 ++--- 9 files changed, 589 insertions(+), 244 deletions(-) (limited to 'doc/examples') diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index b4a2abcb5..04e257b1b 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -134,8 +134,11 @@ bool pkgDPkgPM::Configure(PkgIterator Pkg) { if (Pkg.end() == true) return false; - - List.push_back(Item(Item::Configure,Pkg)); + + bool static const NoConfigure = _config->FindB("DPkg::NoConfigure",false); + if (NoConfigure == false) + List.push_back(Item(Item::Configure,Pkg)); + return true; } /*}}}*/ @@ -190,6 +193,9 @@ bool pkgDPkgPM::SendV2Pkgs(FILE *F) // Write out the package actions in order. for (vector::iterator I = List.begin(); I != List.end(); I++) { + if(I->Pkg.end() == true) + continue; + pkgDepCache::StateCache &S = Cache[I->Pkg]; fprintf(F,"%s ",I->Pkg.Name()); @@ -629,6 +635,11 @@ bool pkgDPkgPM::Go(int OutStatusFd) if (RunScriptsWithPkgs("DPkg::Pre-Install-Pkgs") == false) return false; + // support subpressing of triggers processing for special + // cases like d-i that runs the triggers handling manually + if(_config->FindB("DPkg::ConfigurePending",_config->FindB("DPkg::NoConfigure",false)) == true) + List.push_back(Item(Item::ConfigurePending,PkgIterator())); + // map the dpkg states to the operations that are performed // (this is sorted in the same way as Item::Ops) static const struct DpkgState DpkgStatesOpMap[][7] = { @@ -666,6 +677,9 @@ bool pkgDPkgPM::Go(int OutStatusFd) // and the PackageOpsTranslations (human readable strings) for (vector::const_iterator I = List.begin(); I != List.end();I++) { + if((*I).Pkg.end() == true) + continue; + string const name = (*I).Pkg.Name(); PackageOpsDone[name] = 0; for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; i++) @@ -752,11 +766,16 @@ bool pkgDPkgPM::Go(int OutStatusFd) case Item::Configure: Args[n++] = "--configure"; - if (NoTriggers == true) - Args[n++] = "--no-triggers"; Size += strlen(Args[n-1]); break; - + + case Item::ConfigurePending: + Args[n++] = "--configure"; + Size += strlen(Args[n-1]); + Args[n++] = "--pending"; + Size += strlen(Args[n-1]); + break; + case Item::Install: Args[n++] = "--unpack"; Size += strlen(Args[n-1]); @@ -764,7 +783,13 @@ bool pkgDPkgPM::Go(int OutStatusFd) Size += strlen(Args[n-1]); break; } - + + if (NoTriggers == true && I->Op != Item::ConfigurePending) + { + Args[n++] = "--no-triggers"; + Size += strlen(Args[n-1]); + } + // Write in the file or package names if (I->Op == Item::Install) { @@ -780,6 +805,8 @@ bool pkgDPkgPM::Go(int OutStatusFd) { for (;I != J && Size < MaxArgBytes; I++) { + if((*I).Pkg.end() == true) + continue; Args[n++] = I->Pkg.Name(); Size += strlen(Args[n-1]); } diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index ebc7e32bf..0c266605a 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -53,7 +53,7 @@ class pkgDPkgPM : public pkgPackageManager struct Item { - enum Ops {Install, Configure, Remove, Purge} Op; + enum Ops {Install, Configure, Remove, Purge, ConfigurePending} Op; string File; PkgIterator Pkg; Item(Ops Op,PkgIterator Pkg,string File = "") : Op(Op), diff --git a/debian/changelog b/debian/changelog index 41620d3cb..44d39b6aa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -39,6 +39,9 @@ apt (0.7.24) UNRELEASED; urgency=low - remove file as nobody will upgrade from 0.4.10 anymore * debian/control: - remove gnome-apt suggestion as it was removed from debian + * apt-pkg/deb/dpkgpm.cc: + - add and document experimental options to make aggressive + use of dpkg's trigger and configuration handling (Closes: #473461) [ Christian Perrier ] * doc/fr/*, doc/po/fr.po: diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 81be753f9..89de8ea4e 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -464,6 +464,52 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; the default is to disable signing and produce all binaries. + + dpkg trigger usage + APT can call dpkg in a way so it can make aggressive use of triggers over + multiply calls of dpkg. Without further options dpkg will use triggers only in between his + own run. Activating these options can therefore descrease the time needed to perform the + install / upgrade. Note that it is intended to activate these options per default in the + future, but as it changes the way apt calling dpkg drastical it needs a lot more testing. + These options are therefore currently experimental and should not be used in + productive environments. Also it breaks the progress reporting so all frontends will + currently stay around half (or more) of the time in the 100% state while it actually configures + all packages. + If you have understand the current risks and problems with these options, but want + to help testing them create a new configuration file with the following three options activated. + Please report any bugs and problems you encounter and make sure to note that you have used + these options in the reports. Asking dpkg for help could also be useful for debugging proposes, + see e.g. dpkg --audit. +DPkg::NoTriggers "true"; +DPkg::NoConfigure "true"; +DPkg::ConfigurePending "true"; + + + + NoTriggers + Add the no triggers flag to all dpkg calls (expect the ConfigurePending call). + See &dpkg; if you are interested in what this actually means. In short: dpkg will not run the + triggers then this flag is present unless it is explicit called to do so in an extra call. + Note that this option exists (undocumented) also in older apt versions with a slightly different + meaning: Previously these option only append --no-triggers to the configure calls to dpkg - + now apt will add these flag also to the unpack and remove calls. + + NoConfigure + Set this option to true will prevent apt to call explicit the configuration + for all packages. The packages will only be called to unpack (or remove), so dpkg can handle the + configuration process. Activating this option will implicit activate also the next option per + default as otherwise the system could end in an unconfigured status which could be unbootable! + + + ConfigurePending + If this option is set apt will call dpkg --configure --pending + to let dpkg handle all required configurations and triggers. This option is activated automatic + per default if NoConfigure is set, but deactivating could be useful + if you want to run APT multiple times in a row - e.g. in an installer. In this sceneries you should + deactivate this option in all but the last run. + + + diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 8025fa4b4..27118fb7e 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -319,18 +319,25 @@ DSelect CheckDir "no"; } -DPkg +DPkg { + // let apt aggressivly use dpkg triggers + NoTriggers "true"; + NoConfigure "true"; + ConfigurePending "true"; + // Probably don't want to use force-downgrade.. Options {"--force-overwrite";"--force-downgrade";} - + // Auto re-mounting of a readonly /usr Pre-Invoke {"mount -o remount,rw /usr";}; Post-Invoke {"mount -o remount,ro /usr";}; - + + Chroot-Directory "/"; + // Prevents daemons from getting cwd as something mountable (default) Run-Directory "/"; - + // Build options for apt-get source --compile Build-Options "-b -uc"; diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot index 338ff4d53..526488a1c 100644 --- a/doc/po/apt-doc.pot +++ b/doc/po/apt-doc.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2009-09-09 14:58+0300\n" +"POT-Creation-Date: 2009-09-12 12:51+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1408,7 +1408,7 @@ msgid "&apt-commonoptions;" msgstr "" #. type: Content of: -#: apt-cache.8.xml:358 apt-get.8.xml:559 apt-key.8.xml:138 apt-mark.8.xml:122 apt.conf.5.xml:859 apt_preferences.5.xml:615 +#: apt-cache.8.xml:358 apt-get.8.xml:559 apt-key.8.xml:138 apt-mark.8.xml:122 apt.conf.5.xml:905 apt_preferences.5.xml:615 msgid "Files" msgstr "" @@ -1418,7 +1418,7 @@ msgid "&file-sourceslist; &file-statelists;" msgstr "" #. type: Content of: <refentry><refsect1><title> -#: apt-cache.8.xml:365 apt-cdrom.8.xml:155 apt-config.8.xml:103 apt-extracttemplates.1.xml:74 apt-ftparchive.1.xml:563 apt-get.8.xml:569 apt-key.8.xml:162 apt-mark.8.xml:133 apt-secure.8.xml:181 apt-sortpkgs.1.xml:69 apt.conf.5.xml:865 apt_preferences.5.xml:622 sources.list.5.xml:221 +#: apt-cache.8.xml:365 apt-cdrom.8.xml:155 apt-config.8.xml:103 apt-extracttemplates.1.xml:74 apt-ftparchive.1.xml:563 apt-get.8.xml:569 apt-key.8.xml:162 apt-mark.8.xml:133 apt-secure.8.xml:181 apt-sortpkgs.1.xml:69 apt.conf.5.xml:911 apt_preferences.5.xml:622 sources.list.5.xml:221 msgid "See Also" msgstr "" @@ -2673,7 +2673,7 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><title> -#: apt-ftparchive.1.xml:552 apt.conf.5.xml:853 apt_preferences.5.xml:462 sources.list.5.xml:181 +#: apt-ftparchive.1.xml:552 apt.conf.5.xml:899 apt_preferences.5.xml:462 sources.list.5.xml:181 msgid "Examples" msgstr "" @@ -4988,13 +4988,102 @@ msgid "" "default is to disable signing and produce all binaries." msgstr "" +#. type: Content of: <refentry><refsect1><refsect2><title> +#: apt.conf.5.xml:468 +msgid "dpkg trigger usage" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para> +#: apt.conf.5.xml:469 +msgid "" +"APT can call dpkg in a way so it can make aggressive use of triggers over " +"multiply calls of dpkg. Without further options dpkg will use triggers only " +"in between his own run. Activating these options can therefore descrease the " +"time needed to perform the install / upgrade. Note that it is intended to " +"activate these options per default in the future, but as it changes the way " +"apt calling dpkg drastical it needs a lot more testing. <emphasis>These " +"options are therefore currently experimental and should not be used in " +"productive environments.</emphasis> Also it breaks the progress reporting so " +"all frontends will currently stay around half (or more) of the time in the " +"100% state while it actually configures all packages." +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para><literallayout> +#: apt.conf.5.xml:483 +#, no-wrap +msgid "" +"DPkg::NoTriggers \"true\";\n" +"DPkg::NoConfigure \"true\";\n" +"DPkg::ConfigurePending \"true\";" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para> +#: apt.conf.5.xml:478 +msgid "" +"If you have understand the current risks and problems with these options, " +"but want to help testing them create a new configuration file with the " +"following three options activated. Please report any bugs and problems you " +"encounter and make sure to note that you have used these options in the " +"reports. Asking dpkg for help could also be useful for debugging proposes, " +"see e.g. <command>dpkg --audit</command>. <placeholder " +"type=\"literallayout\" id=\"0\"/>" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:489 +msgid "NoTriggers" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:490 +msgid "" +"Add the no triggers flag to all dpkg calls (expect the ConfigurePending " +"call). See &dpkg; if you are interested in what this actually means. In " +"short: dpkg will not run the triggers then this flag is present unless it is " +"explicit called to do so in an extra call. Note that this option exists " +"(undocumented) also in older apt versions with a slightly different meaning: " +"Previously these option only append --no-triggers to the configure calls to " +"dpkg - now apt will add these flag also to the unpack and remove calls." +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:497 +msgid "NoConfigure" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:498 +msgid "" +"Set this option to true will prevent apt to call explicit the configuration " +"for all packages. The packages will only be called to unpack (or remove), so " +"dpkg can handle the configuration process. Activating this option will " +"implicit activate also the next option per default as otherwise the system " +"could end in an unconfigured status which could be unbootable!" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:504 +msgid "ConfigurePending" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:505 +msgid "" +"If this option is set apt will call <command>dpkg --configure " +"--pending</command> to let dpkg handle all required configurations and " +"triggers. This option is activated automatic per default if " +"<literal>NoConfigure</literal> is set, but deactivating could be useful if " +"you want to run APT multiple times in a row - e.g. in an installer. In this " +"sceneries you should deactivate this option in all but the last run." +msgstr "" + #. type: Content of: <refentry><refsect1><title> -#: apt.conf.5.xml:470 +#: apt.conf.5.xml:516 msgid "Periodic and Archives options" msgstr "" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:471 +#: apt.conf.5.xml:517 msgid "" "<literal>APT::Periodic</literal> and <literal>APT::Archives</literal> groups " "of options configure behavior of apt periodic updates, which is done by " @@ -5003,12 +5092,12 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><title> -#: apt.conf.5.xml:479 +#: apt.conf.5.xml:525 msgid "Debug options" msgstr "" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:481 +#: apt.conf.5.xml:527 msgid "" "Enabling options in the <literal>Debug::</literal> section will cause " "debugging information to be sent to the standard error stream of the program " @@ -5019,7 +5108,7 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:492 +#: apt.conf.5.xml:538 msgid "" "<literal>Debug::pkgProblemResolver</literal> enables output about the " "decisions made by <literal>dist-upgrade, upgrade, install, remove, " @@ -5027,7 +5116,7 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:500 +#: apt.conf.5.xml:546 msgid "" "<literal>Debug::NoLocking</literal> disables all file locking. This can be " "used to run some operations (for instance, <literal>apt-get -s " @@ -5035,7 +5124,7 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:509 +#: apt.conf.5.xml:555 msgid "" "<literal>Debug::pkgDPkgPM</literal> prints out the actual command line each " "time that <literal>apt</literal> invokes &dpkg;." @@ -5045,110 +5134,110 @@ msgstr "" #. motivating example, except I haven't a clue why you'd want #. to do this. #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:517 +#: apt.conf.5.xml:563 msgid "" "<literal>Debug::IdentCdrom</literal> disables the inclusion of statfs data " "in CDROM IDs." msgstr "" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:527 +#: apt.conf.5.xml:573 msgid "A full list of debugging options to apt follows." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:532 +#: apt.conf.5.xml:578 msgid "<literal>Debug::Acquire::cdrom</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:536 +#: apt.conf.5.xml:582 msgid "Print information related to accessing <literal>cdrom://</literal> sources." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:543 +#: apt.conf.5.xml:589 msgid "<literal>Debug::Acquire::ftp</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:547 +#: apt.conf.5.xml:593 msgid "Print information related to downloading packages using FTP." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:554 +#: apt.conf.5.xml:600 msgid "<literal>Debug::Acquire::http</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:558 +#: apt.conf.5.xml:604 msgid "Print information related to downloading packages using HTTP." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:565 +#: apt.conf.5.xml:611 msgid "<literal>Debug::Acquire::https</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:569 +#: apt.conf.5.xml:615 msgid "Print information related to downloading packages using HTTPS." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:576 +#: apt.conf.5.xml:622 msgid "<literal>Debug::Acquire::gpgv</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:580 +#: apt.conf.5.xml:626 msgid "" "Print information related to verifying cryptographic signatures using " "<literal>gpg</literal>." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:587 +#: apt.conf.5.xml:633 msgid "<literal>Debug::aptcdrom</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:591 +#: apt.conf.5.xml:637 msgid "" "Output information about the process of accessing collections of packages " "stored on CD-ROMs." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:598 +#: apt.conf.5.xml:644 msgid "<literal>Debug::BuildDeps</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:601 +#: apt.conf.5.xml:647 msgid "Describes the process of resolving build-dependencies in &apt-get;." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:608 +#: apt.conf.5.xml:654 msgid "<literal>Debug::Hashes</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:611 +#: apt.conf.5.xml:657 msgid "" "Output each cryptographic hash that is generated by the " "<literal>apt</literal> libraries." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:618 +#: apt.conf.5.xml:664 msgid "<literal>Debug::IdentCDROM</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:621 +#: apt.conf.5.xml:667 msgid "" "Do not include information from <literal>statfs</literal>, namely the number " "of used and free blocks on the CD-ROM filesystem, when generating an ID for " @@ -5156,92 +5245,92 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:629 +#: apt.conf.5.xml:675 msgid "<literal>Debug::NoLocking</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:632 +#: apt.conf.5.xml:678 msgid "" "Disable all file locking. For instance, this will allow two instances of " "<quote><literal>apt-get update</literal></quote> to run at the same time." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:640 +#: apt.conf.5.xml:686 msgid "<literal>Debug::pkgAcquire</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:644 +#: apt.conf.5.xml:690 msgid "Log when items are added to or removed from the global download queue." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:651 +#: apt.conf.5.xml:697 msgid "<literal>Debug::pkgAcquire::Auth</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:654 +#: apt.conf.5.xml:700 msgid "" "Output status messages and errors related to verifying checksums and " "cryptographic signatures of downloaded files." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:661 +#: apt.conf.5.xml:707 msgid "<literal>Debug::pkgAcquire::Diffs</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:664 +#: apt.conf.5.xml:710 msgid "" "Output information about downloading and applying package index list diffs, " "and errors relating to package index list diffs." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:672 +#: apt.conf.5.xml:718 msgid "<literal>Debug::pkgAcquire::RRed</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:676 +#: apt.conf.5.xml:722 msgid "" "Output information related to patching apt package lists when downloading " "index diffs instead of full indices." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:683 +#: apt.conf.5.xml:729 msgid "<literal>Debug::pkgAcquire::Worker</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:687 +#: apt.conf.5.xml:733 msgid "Log all interactions with the sub-processes that actually perform downloads." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:694 +#: apt.conf.5.xml:740 msgid "<literal>Debug::pkgAutoRemove</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:698 +#: apt.conf.5.xml:744 msgid "" "Log events related to the automatically-installed status of packages and to " "the removal of unused packages." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:705 +#: apt.conf.5.xml:751 msgid "<literal>Debug::pkgDepCache::AutoInstall</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:708 +#: apt.conf.5.xml:754 msgid "" "Generate debug messages describing which packages are being automatically " "installed to resolve dependencies. This corresponds to the initial " @@ -5251,12 +5340,12 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:719 +#: apt.conf.5.xml:765 msgid "<literal>Debug::pkgDepCache::Marker</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:722 +#: apt.conf.5.xml:768 msgid "" "Generate debug messages describing which package is marked as " "keep/install/remove while the ProblemResolver does his work. Each addition " @@ -5274,90 +5363,90 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:741 +#: apt.conf.5.xml:787 msgid "<literal>Debug::pkgInitConfig</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:744 +#: apt.conf.5.xml:790 msgid "Dump the default configuration to standard error on startup." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:751 +#: apt.conf.5.xml:797 msgid "<literal>Debug::pkgDPkgPM</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:754 +#: apt.conf.5.xml:800 msgid "" "When invoking &dpkg;, output the precise command line with which it is being " "invoked, with arguments separated by a single space character." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:762 +#: apt.conf.5.xml:808 msgid "<literal>Debug::pkgDPkgProgressReporting</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:765 +#: apt.conf.5.xml:811 msgid "" "Output all the data received from &dpkg; on the status file descriptor and " "any errors encountered while parsing it." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:772 +#: apt.conf.5.xml:818 msgid "<literal>Debug::pkgOrderList</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:776 +#: apt.conf.5.xml:822 msgid "" "Generate a trace of the algorithm that decides the order in which " "<literal>apt</literal> should pass packages to &dpkg;." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:784 +#: apt.conf.5.xml:830 msgid "<literal>Debug::pkgPackageManager</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:788 +#: apt.conf.5.xml:834 msgid "Output status messages tracing the steps performed when invoking &dpkg;." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:795 +#: apt.conf.5.xml:841 msgid "<literal>Debug::pkgPolicy</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:799 +#: apt.conf.5.xml:845 msgid "Output the priority of each package list on startup." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:805 +#: apt.conf.5.xml:851 msgid "<literal>Debug::pkgProblemResolver</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:809 +#: apt.conf.5.xml:855 msgid "" "Trace the execution of the dependency resolver (this applies only to what " "happens when a complex dependency problem is encountered)." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:817 +#: apt.conf.5.xml:863 msgid "<literal>Debug::pkgProblemResolver::ShowScores</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:820 +#: apt.conf.5.xml:866 msgid "" "Display a list of all installed packages with their calculated score used by " "the pkgProblemResolver. The description of the package is the same as " @@ -5365,32 +5454,32 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:828 +#: apt.conf.5.xml:874 msgid "<literal>Debug::sourceList</literal>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:832 +#: apt.conf.5.xml:878 msgid "" "Print information about the vendors read from " "<filename>/etc/apt/vendors.list</filename>." msgstr "" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:854 +#: apt.conf.5.xml:900 msgid "" "&configureindex; is a configuration file showing example values for all " "possible options." msgstr "" #. type: Content of: <refentry><refsect1><variablelist> -#: apt.conf.5.xml:861 +#: apt.conf.5.xml:907 msgid "&file-aptconf;" msgstr "" #. ? reading apt.conf #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:866 +#: apt.conf.5.xml:912 msgid "&apt-cache;, &apt-config;, &apt-preferences;." msgstr "" diff --git a/doc/po/fr.po b/doc/po/fr.po index 71327d583..ce0596a46 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2009-09-09 14:58+0300\n" +"POT-Creation-Date: 2009-09-12 12:51+0300\n" "PO-Revision-Date: 2009-09-04 20:23+0200\n" "Last-Translator: Christian Perrier <bubulle@debian.org>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\n" @@ -1882,7 +1882,7 @@ msgstr "&apt-commonoptions;" #. type: Content of: <refentry><refsect1><title> #: apt-cache.8.xml:358 apt-get.8.xml:559 apt-key.8.xml:138 apt-mark.8.xml:122 -#: apt.conf.5.xml:859 apt_preferences.5.xml:615 +#: apt.conf.5.xml:905 apt_preferences.5.xml:615 msgid "Files" msgstr "Fichiers" @@ -1895,7 +1895,7 @@ msgstr "" #: apt-cache.8.xml:365 apt-cdrom.8.xml:155 apt-config.8.xml:103 #: apt-extracttemplates.1.xml:74 apt-ftparchive.1.xml:563 apt-get.8.xml:569 #: apt-key.8.xml:162 apt-mark.8.xml:133 apt-secure.8.xml:181 -#: apt-sortpkgs.1.xml:69 apt.conf.5.xml:865 apt_preferences.5.xml:622 +#: apt-sortpkgs.1.xml:69 apt.conf.5.xml:911 apt_preferences.5.xml:622 #: sources.list.5.xml:221 msgid "See Also" msgstr "Voir aussi" @@ -3481,7 +3481,7 @@ msgstr "" "configuration : <literal>APT::FTPArchive::ReadOnlyDB</literal>." #. type: Content of: <refentry><refsect1><title> -#: apt-ftparchive.1.xml:552 apt.conf.5.xml:853 apt_preferences.5.xml:462 +#: apt-ftparchive.1.xml:552 apt.conf.5.xml:899 apt_preferences.5.xml:462 #: sources.list.5.xml:181 msgid "Examples" msgstr "Exemples" @@ -6793,14 +6793,104 @@ msgstr "" "paquets ; par défaut la signature est désactivée et tous les binaires sont " "créés." +#. type: Content of: <refentry><refsect1><refsect2><title> +#: apt.conf.5.xml:468 +msgid "dpkg trigger usage" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para> +#: apt.conf.5.xml:469 +msgid "" +"APT can call dpkg in a way so it can make aggressive use of triggers over " +"multiply calls of dpkg. Without further options dpkg will use triggers only " +"in between his own run. Activating these options can therefore descrease the " +"time needed to perform the install / upgrade. Note that it is intended to " +"activate these options per default in the future, but as it changes the way " +"apt calling dpkg drastical it needs a lot more testing. <emphasis>These " +"options are therefore currently experimental and should not be used in " +"productive environments.</emphasis> Also it breaks the progress reporting so " +"all frontends will currently stay around half (or more) of the time in the " +"100% state while it actually configures all packages." +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para><literallayout> +#: apt.conf.5.xml:483 +#, no-wrap +msgid "" +"DPkg::NoTriggers \"true\";\n" +"DPkg::NoConfigure \"true\";\n" +"DPkg::ConfigurePending \"true\";" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para> +#: apt.conf.5.xml:478 +msgid "" +"If you have understand the current risks and problems with these options, " +"but want to help testing them create a new configuration file with the " +"following three options activated. Please report any bugs and problems you " +"encounter and make sure to note that you have used these options in the " +"reports. Asking dpkg for help could also be useful for debugging proposes, " +"see e.g. <command>dpkg --audit</command>. <placeholder type=\"literallayout" +"\" id=\"0\"/>" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:489 +msgid "NoTriggers" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:490 +msgid "" +"Add the no triggers flag to all dpkg calls (expect the ConfigurePending " +"call). See &dpkg; if you are interested in what this actually means. In " +"short: dpkg will not run the triggers then this flag is present unless it is " +"explicit called to do so in an extra call. Note that this option exists " +"(undocumented) also in older apt versions with a slightly different meaning: " +"Previously these option only append --no-triggers to the configure calls to " +"dpkg - now apt will add these flag also to the unpack and remove calls." +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:497 +#, fuzzy +msgid "NoConfigure" +msgstr "Immediate-Configure" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:498 +msgid "" +"Set this option to true will prevent apt to call explicit the configuration " +"for all packages. The packages will only be called to unpack (or remove), so " +"dpkg can handle the configuration process. Activating this option will " +"implicit activate also the next option per default as otherwise the system " +"could end in an unconfigured status which could be unbootable!" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:504 +msgid "ConfigurePending" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:505 +msgid "" +"If this option is set apt will call <command>dpkg --configure --pending</" +"command> to let dpkg handle all required configurations and triggers. This " +"option is activated automatic per default if <literal>NoConfigure</literal> " +"is set, but deactivating could be useful if you want to run APT multiple " +"times in a row - e.g. in an installer. In this sceneries you should " +"deactivate this option in all but the last run." +msgstr "" + #. type: Content of: <refentry><refsect1><title> -#: apt.conf.5.xml:470 +#: apt.conf.5.xml:516 #, fuzzy msgid "Periodic and Archives options" msgstr "Options « Periodic » et « Archive »" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:471 +#: apt.conf.5.xml:517 #, fuzzy msgid "" "<literal>APT::Periodic</literal> and <literal>APT::Archives</literal> groups " @@ -6813,13 +6903,13 @@ msgstr "" "script <literal>/etc/cron.daily/apt</literal>, lancé quotidiennement." #. type: Content of: <refentry><refsect1><title> -#: apt.conf.5.xml:479 +#: apt.conf.5.xml:525 #, fuzzy msgid "Debug options" msgstr "Les options de débogage" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:481 +#: apt.conf.5.xml:527 #, fuzzy msgid "" "Enabling options in the <literal>Debug::</literal> section will cause " @@ -6838,7 +6928,7 @@ msgstr "" "peuvent tout de même être utiles :" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:492 +#: apt.conf.5.xml:538 #, fuzzy msgid "" "<literal>Debug::pkgProblemResolver</literal> enables output about the " @@ -6850,7 +6940,7 @@ msgstr "" "upgrade, upgrade, install, remove et purge</literal>." #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:500 +#: apt.conf.5.xml:546 #, fuzzy msgid "" "<literal>Debug::NoLocking</literal> disables all file locking. This can be " @@ -6862,7 +6952,7 @@ msgstr "" "<literal>apt-get -s install</literal>) sans être « root »." #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:509 +#: apt.conf.5.xml:555 #, fuzzy msgid "" "<literal>Debug::pkgDPkgPM</literal> prints out the actual command line each " @@ -6875,7 +6965,7 @@ msgstr "" #. motivating example, except I haven't a clue why you'd want #. to do this. #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:517 +#: apt.conf.5.xml:563 #, fuzzy msgid "" "<literal>Debug::IdentCdrom</literal> disables the inclusion of statfs data " @@ -6885,71 +6975,71 @@ msgstr "" "type statfs dans les ID de cédérom." #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:527 +#: apt.conf.5.xml:573 #, fuzzy msgid "A full list of debugging options to apt follows." msgstr "Voici une liste complète des options de débogage de APT." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:532 +#: apt.conf.5.xml:578 #, fuzzy msgid "<literal>Debug::Acquire::cdrom</literal>" msgstr "Debug::Acquire::cdrom" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:536 +#: apt.conf.5.xml:582 #, fuzzy msgid "" "Print information related to accessing <literal>cdrom://</literal> sources." msgstr "Affiche les informations concernant les sources de type cdrom://" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:543 +#: apt.conf.5.xml:589 #, fuzzy msgid "<literal>Debug::Acquire::ftp</literal>" msgstr "Debug::Acquire::ftp" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:547 +#: apt.conf.5.xml:593 #, fuzzy msgid "Print information related to downloading packages using FTP." msgstr "" "Affiche les informations concernant le téléchargement de paquets par FTP." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:554 +#: apt.conf.5.xml:600 #, fuzzy msgid "<literal>Debug::Acquire::http</literal>" msgstr "Debug::Acquire::http" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:558 +#: apt.conf.5.xml:604 #, fuzzy msgid "Print information related to downloading packages using HTTP." msgstr "" "Affiche les informations concernant le téléchargement de paquets par HTTP." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:565 +#: apt.conf.5.xml:611 #, fuzzy msgid "<literal>Debug::Acquire::https</literal>" msgstr "Debug::Acquire::https" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:569 +#: apt.conf.5.xml:615 #, fuzzy msgid "Print information related to downloading packages using HTTPS." msgstr "" "Affiche les informations concernant le téléchargement de paquets par HTTPS." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:576 +#: apt.conf.5.xml:622 #, fuzzy msgid "<literal>Debug::Acquire::gpgv</literal>" msgstr "Debug::Acquire::gpgv" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:580 +#: apt.conf.5.xml:626 #, fuzzy msgid "" "Print information related to verifying cryptographic signatures using " @@ -6959,13 +7049,13 @@ msgstr "" "cryptographiques avec <literal>gpg</literal>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:587 +#: apt.conf.5.xml:633 #, fuzzy msgid "<literal>Debug::aptcdrom</literal>" msgstr "Debug::aptcdrom" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:591 +#: apt.conf.5.xml:637 #, fuzzy msgid "" "Output information about the process of accessing collections of packages " @@ -6975,13 +7065,13 @@ msgstr "" "stockées sur cédérom." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:598 +#: apt.conf.5.xml:644 #, fuzzy msgid "<literal>Debug::BuildDeps</literal>" msgstr "Debug::BuildDeps" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:601 +#: apt.conf.5.xml:647 #, fuzzy msgid "Describes the process of resolving build-dependencies in &apt-get;." msgstr "" @@ -6989,13 +7079,13 @@ msgstr "" "paquets source ( « build-dependencies » ) par &apt-get;." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:608 +#: apt.conf.5.xml:654 #, fuzzy msgid "<literal>Debug::Hashes</literal>" msgstr "Debug::Hashes" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:611 +#: apt.conf.5.xml:657 #, fuzzy msgid "" "Output each cryptographic hash that is generated by the <literal>apt</" @@ -7005,13 +7095,13 @@ msgstr "" "librairies APT." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:618 +#: apt.conf.5.xml:664 #, fuzzy msgid "<literal>Debug::IdentCDROM</literal>" msgstr "Debug::IdentCdrom" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:621 +#: apt.conf.5.xml:667 #, fuzzy msgid "" "Do not include information from <literal>statfs</literal>, namely the number " @@ -7023,13 +7113,13 @@ msgstr "" "sur le système de fichier du cédérom." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:629 +#: apt.conf.5.xml:675 #, fuzzy msgid "<literal>Debug::NoLocking</literal>" msgstr "Debug::NoLocking" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:632 +#: apt.conf.5.xml:678 #, fuzzy msgid "" "Disable all file locking. For instance, this will allow two instances of " @@ -7039,13 +7129,13 @@ msgstr "" "deux instances de « apt-get update » en même temps." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:640 +#: apt.conf.5.xml:686 #, fuzzy msgid "<literal>Debug::pkgAcquire</literal>" msgstr "Debug::pkgAcquire" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:644 +#: apt.conf.5.xml:690 #, fuzzy msgid "Log when items are added to or removed from the global download queue." msgstr "" @@ -7053,13 +7143,13 @@ msgstr "" "téléchargement." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:651 +#: apt.conf.5.xml:697 #, fuzzy msgid "<literal>Debug::pkgAcquire::Auth</literal>" msgstr "Debug::pkgAcquire::Auth" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:654 +#: apt.conf.5.xml:700 #, fuzzy msgid "" "Output status messages and errors related to verifying checksums and " @@ -7070,13 +7160,13 @@ msgstr "" "éventuelles." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:661 +#: apt.conf.5.xml:707 #, fuzzy msgid "<literal>Debug::pkgAcquire::Diffs</literal>" msgstr "Debug::pkgAcquire::Diffs" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:664 +#: apt.conf.5.xml:710 #, fuzzy msgid "" "Output information about downloading and applying package index list diffs, " @@ -7087,13 +7177,13 @@ msgstr "" "éventuelles." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:672 +#: apt.conf.5.xml:718 #, fuzzy msgid "<literal>Debug::pkgAcquire::RRed</literal>" msgstr "Debug::pkgAcquire::RRed" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:676 +#: apt.conf.5.xml:722 #, fuzzy msgid "" "Output information related to patching apt package lists when downloading " @@ -7104,13 +7194,13 @@ msgstr "" "éventuelles." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:683 +#: apt.conf.5.xml:729 #, fuzzy msgid "<literal>Debug::pkgAcquire::Worker</literal>" msgstr "Debug::pkgAcquire::Worker" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:687 +#: apt.conf.5.xml:733 #, fuzzy msgid "" "Log all interactions with the sub-processes that actually perform downloads." @@ -7119,13 +7209,13 @@ msgstr "" "effectivement des téléchargements." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:694 +#: apt.conf.5.xml:740 #, fuzzy msgid "<literal>Debug::pkgAutoRemove</literal>" msgstr "Debug::pkgAcquire::pkgAutoRemove" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:698 +#: apt.conf.5.xml:744 #, fuzzy msgid "" "Log events related to the automatically-installed status of packages and to " @@ -7135,13 +7225,13 @@ msgstr "" "automatiquement, et la suppression des paquets inutiles." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:705 +#: apt.conf.5.xml:751 #, fuzzy msgid "<literal>Debug::pkgDepCache::AutoInstall</literal>" msgstr "Debug::pkgDepCache::AutoInstall" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:708 +#: apt.conf.5.xml:754 #, fuzzy msgid "" "Generate debug messages describing which packages are being automatically " @@ -7157,13 +7247,13 @@ msgstr "" "de APT ; voir <literal>Debug::pkgProblemResolver</literal> pour ce dernier." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:719 +#: apt.conf.5.xml:765 #, fuzzy msgid "<literal>Debug::pkgDepCache::Marker</literal>" msgstr "Debug::pkgDepCache::AutoInstall" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:722 +#: apt.conf.5.xml:768 msgid "" "Generate debug messages describing which package is marked as keep/install/" "remove while the ProblemResolver does his work. Each addition or deletion " @@ -7180,13 +7270,13 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:741 +#: apt.conf.5.xml:787 #, fuzzy msgid "<literal>Debug::pkgInitConfig</literal>" msgstr "Debug::pkgInitConfig" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:744 +#: apt.conf.5.xml:790 #, fuzzy msgid "Dump the default configuration to standard error on startup." msgstr "" @@ -7194,13 +7284,13 @@ msgstr "" "standard." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:751 +#: apt.conf.5.xml:797 #, fuzzy msgid "<literal>Debug::pkgDPkgPM</literal>" msgstr "Debug::pkgDPkgPM" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:754 +#: apt.conf.5.xml:800 #, fuzzy msgid "" "When invoking &dpkg;, output the precise command line with which it is being " @@ -7210,13 +7300,13 @@ msgstr "" "arguments sont séparés par des espaces." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:762 +#: apt.conf.5.xml:808 #, fuzzy msgid "<literal>Debug::pkgDPkgProgressReporting</literal>" msgstr "Debug::pkgDPkgProgressReporting" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:765 +#: apt.conf.5.xml:811 #, fuzzy msgid "" "Output all the data received from &dpkg; on the status file descriptor and " @@ -7227,13 +7317,13 @@ msgstr "" "fichier." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:772 +#: apt.conf.5.xml:818 #, fuzzy msgid "<literal>Debug::pkgOrderList</literal>" msgstr "Debug::pkgOrderList" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:776 +#: apt.conf.5.xml:822 #, fuzzy msgid "" "Generate a trace of the algorithm that decides the order in which " @@ -7243,38 +7333,38 @@ msgstr "" "APT passe les paquets à &dpkg;." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:784 +#: apt.conf.5.xml:830 #, fuzzy msgid "<literal>Debug::pkgPackageManager</literal>" msgstr "Debug::pkgPackageManager" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:788 +#: apt.conf.5.xml:834 #, fuzzy msgid "" "Output status messages tracing the steps performed when invoking &dpkg;." msgstr "Affiche le détail des opérations liées à l'invocation de &dpkg;." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:795 +#: apt.conf.5.xml:841 #, fuzzy msgid "<literal>Debug::pkgPolicy</literal>" msgstr "Debug::pkgPolicy" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:799 +#: apt.conf.5.xml:845 #, fuzzy msgid "Output the priority of each package list on startup." msgstr "Au lancement, affiche la priorité de chaque liste de paquets." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:805 +#: apt.conf.5.xml:851 #, fuzzy msgid "<literal>Debug::pkgProblemResolver</literal>" msgstr "Debug::pkgProblemResolver" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:809 +#: apt.conf.5.xml:855 #, fuzzy msgid "" "Trace the execution of the dependency resolver (this applies only to what " @@ -7284,13 +7374,13 @@ msgstr "" "concerne que les cas où un problème de dépendances complexe se présente)." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:817 +#: apt.conf.5.xml:863 #, fuzzy msgid "<literal>Debug::pkgProblemResolver::ShowScores</literal>" msgstr "Debug::pkgProblemResolver" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:820 +#: apt.conf.5.xml:866 msgid "" "Display a list of all installed packages with their calculated score used by " "the pkgProblemResolver. The description of the package is the same as " @@ -7298,13 +7388,13 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:828 +#: apt.conf.5.xml:874 #, fuzzy msgid "<literal>Debug::sourceList</literal>" msgstr "Debug::sourceList" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:832 +#: apt.conf.5.xml:878 #, fuzzy msgid "" "Print information about the vendors read from <filename>/etc/apt/vendors." @@ -7314,7 +7404,7 @@ msgstr "" "list</filename>." #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:854 +#: apt.conf.5.xml:900 #, fuzzy msgid "" "&configureindex; is a configuration file showing example values for all " @@ -7324,7 +7414,7 @@ msgstr "" "exemples pour toutes les options existantes." #. type: Content of: <refentry><refsect1><variablelist> -#: apt.conf.5.xml:861 +#: apt.conf.5.xml:907 #, fuzzy #| msgid "&apt-conf;" msgid "&file-aptconf;" @@ -7332,7 +7422,7 @@ msgstr "&apt-conf;" #. ? reading apt.conf #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:866 +#: apt.conf.5.xml:912 #, fuzzy msgid "&apt-cache;, &apt-config;, &apt-preferences;." msgstr "&apt-cache; &apt-conf;" diff --git a/doc/po/ja.po b/doc/po/ja.po index 5458d85ff..1e09006f9 100644 --- a/doc/po/ja.po +++ b/doc/po/ja.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2009-09-09 14:58+0300\n" +"POT-Creation-Date: 2009-09-12 12:51+0300\n" "PO-Revision-Date: 2009-07-30 22:55+0900\n" "Last-Translator: KURASAWA Nozomu <nabetaro@caldron.jp>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -1928,7 +1928,7 @@ msgstr "&apt-commonoptions;" # type: Content of: <refentry><refsect1><title> #. type: Content of: <refentry><refsect1><title> #: apt-cache.8.xml:358 apt-get.8.xml:559 apt-key.8.xml:138 apt-mark.8.xml:122 -#: apt.conf.5.xml:859 apt_preferences.5.xml:615 +#: apt.conf.5.xml:905 apt_preferences.5.xml:615 msgid "Files" msgstr "ファイル" @@ -1942,7 +1942,7 @@ msgstr "" #: apt-cache.8.xml:365 apt-cdrom.8.xml:155 apt-config.8.xml:103 #: apt-extracttemplates.1.xml:74 apt-ftparchive.1.xml:563 apt-get.8.xml:569 #: apt-key.8.xml:162 apt-mark.8.xml:133 apt-secure.8.xml:181 -#: apt-sortpkgs.1.xml:69 apt.conf.5.xml:865 apt_preferences.5.xml:622 +#: apt-sortpkgs.1.xml:69 apt.conf.5.xml:911 apt_preferences.5.xml:622 #: sources.list.5.xml:221 msgid "See Also" msgstr "関連項目" @@ -3630,7 +3630,7 @@ msgstr "" # type: Content of: <refentry><refsect1><title> #. type: Content of: <refentry><refsect1><title> -#: apt-ftparchive.1.xml:552 apt.conf.5.xml:853 apt_preferences.5.xml:462 +#: apt-ftparchive.1.xml:552 apt.conf.5.xml:899 apt_preferences.5.xml:462 #: sources.list.5.xml:181 msgid "Examples" msgstr "サンプル" @@ -6851,13 +6851,106 @@ msgstr "" "これらのオプションは、パッケージのコンパイル時に &dpkg-buildpackage; に渡され" "ます。デフォルトでは署名を無効にし、全バイナリを生成します。" +#. type: Content of: <refentry><refsect1><refsect2><title> +#: apt.conf.5.xml:468 +msgid "dpkg trigger usage" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para> +#: apt.conf.5.xml:469 +msgid "" +"APT can call dpkg in a way so it can make aggressive use of triggers over " +"multiply calls of dpkg. Without further options dpkg will use triggers only " +"in between his own run. Activating these options can therefore descrease the " +"time needed to perform the install / upgrade. Note that it is intended to " +"activate these options per default in the future, but as it changes the way " +"apt calling dpkg drastical it needs a lot more testing. <emphasis>These " +"options are therefore currently experimental and should not be used in " +"productive environments.</emphasis> Also it breaks the progress reporting so " +"all frontends will currently stay around half (or more) of the time in the " +"100% state while it actually configures all packages." +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para><literallayout> +#: apt.conf.5.xml:483 +#, no-wrap +msgid "" +"DPkg::NoTriggers \"true\";\n" +"DPkg::NoConfigure \"true\";\n" +"DPkg::ConfigurePending \"true\";" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><para> +#: apt.conf.5.xml:478 +msgid "" +"If you have understand the current risks and problems with these options, " +"but want to help testing them create a new configuration file with the " +"following three options activated. Please report any bugs and problems you " +"encounter and make sure to note that you have used these options in the " +"reports. Asking dpkg for help could also be useful for debugging proposes, " +"see e.g. <command>dpkg --audit</command>. <placeholder type=\"literallayout" +"\" id=\"0\"/>" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:489 +msgid "NoTriggers" +msgstr "" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:490 +msgid "" +"Add the no triggers flag to all dpkg calls (expect the ConfigurePending " +"call). See &dpkg; if you are interested in what this actually means. In " +"short: dpkg will not run the triggers then this flag is present unless it is " +"explicit called to do so in an extra call. Note that this option exists " +"(undocumented) also in older apt versions with a slightly different meaning: " +"Previously these option only append --no-triggers to the configure calls to " +"dpkg - now apt will add these flag also to the unpack and remove calls." +msgstr "" + +# type: Content of: <refentry><refnamediv><refname> +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:497 +#, fuzzy +msgid "NoConfigure" +msgstr "config-files" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:498 +msgid "" +"Set this option to true will prevent apt to call explicit the configuration " +"for all packages. The packages will only be called to unpack (or remove), so " +"dpkg can handle the configuration process. Activating this option will " +"implicit activate also the next option per default as otherwise the system " +"could end in an unconfigured status which could be unbootable!" +msgstr "" + +# type: Content of: <refentry><refsect1><title> +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><term> +#: apt.conf.5.xml:504 +#, fuzzy +msgid "ConfigurePending" +msgstr "ユーザの設定" + +#. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> +#: apt.conf.5.xml:505 +msgid "" +"If this option is set apt will call <command>dpkg --configure --pending</" +"command> to let dpkg handle all required configurations and triggers. This " +"option is activated automatic per default if <literal>NoConfigure</literal> " +"is set, but deactivating could be useful if you want to run APT multiple " +"times in a row - e.g. in an installer. In this sceneries you should " +"deactivate this option in all but the last run." +msgstr "" + #. type: Content of: <refentry><refsect1><title> -#: apt.conf.5.xml:470 +#: apt.conf.5.xml:516 msgid "Periodic and Archives options" msgstr "Periodic オプションと Archives オプション" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:471 +#: apt.conf.5.xml:517 msgid "" "<literal>APT::Periodic</literal> and <literal>APT::Archives</literal> groups " "of options configure behavior of apt periodic updates, which is done by " @@ -6871,12 +6964,12 @@ msgstr "" # type: Content of: <refentry><refsect1><title> #. type: Content of: <refentry><refsect1><title> -#: apt.conf.5.xml:479 +#: apt.conf.5.xml:525 msgid "Debug options" msgstr "デバッグオプション" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:481 +#: apt.conf.5.xml:527 msgid "" "Enabling options in the <literal>Debug::</literal> section will cause " "debugging information to be sent to the standard error stream of the program " @@ -6887,7 +6980,7 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:492 +#: apt.conf.5.xml:538 msgid "" "<literal>Debug::pkgProblemResolver</literal> enables output about the " "decisions made by <literal>dist-upgrade, upgrade, install, remove, purge</" @@ -6898,7 +6991,7 @@ msgstr "" "にします。" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:500 +#: apt.conf.5.xml:546 msgid "" "<literal>Debug::NoLocking</literal> disables all file locking. This can be " "used to run some operations (for instance, <literal>apt-get -s install</" @@ -6909,7 +7002,7 @@ msgstr "" "literal>) を行う場合に使用します。" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:509 +#: apt.conf.5.xml:555 msgid "" "<literal>Debug::pkgDPkgPM</literal> prints out the actual command line each " "time that <literal>apt</literal> invokes &dpkg;." @@ -6919,66 +7012,66 @@ msgstr "" #. motivating example, except I haven't a clue why you'd want #. to do this. #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> -#: apt.conf.5.xml:517 +#: apt.conf.5.xml:563 msgid "" "<literal>Debug::IdentCdrom</literal> disables the inclusion of statfs data " "in CDROM IDs." msgstr "" #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:527 +#: apt.conf.5.xml:573 msgid "A full list of debugging options to apt follows." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:532 +#: apt.conf.5.xml:578 msgid "<literal>Debug::Acquire::cdrom</literal>" msgstr "<literal>Debug::Acquire::cdrom</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:536 +#: apt.conf.5.xml:582 msgid "" "Print information related to accessing <literal>cdrom://</literal> sources." msgstr "" "<literal>cdrom://</literal> ソースへのアクセスに関する情報を出力します。" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:543 +#: apt.conf.5.xml:589 msgid "<literal>Debug::Acquire::ftp</literal>" msgstr "<literal>Debug::Acquire::ftp</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:547 +#: apt.conf.5.xml:593 msgid "Print information related to downloading packages using FTP." msgstr "FTP を用いたパッケージのダウンロードに関する情報を出力します。" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:554 +#: apt.conf.5.xml:600 msgid "<literal>Debug::Acquire::http</literal>" msgstr "<literal>Debug::Acquire::http</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:558 +#: apt.conf.5.xml:604 msgid "Print information related to downloading packages using HTTP." msgstr "HTTP を用いたパッケージのダウンロードに関する情報を出力します。" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:565 +#: apt.conf.5.xml:611 msgid "<literal>Debug::Acquire::https</literal>" msgstr "<literal>Debug::Acquire::https</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:569 +#: apt.conf.5.xml:615 msgid "Print information related to downloading packages using HTTPS." msgstr "HTTPS を用いたパッケージのダウンロードに関する情報を出力します。" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:576 +#: apt.conf.5.xml:622 msgid "<literal>Debug::Acquire::gpgv</literal>" msgstr "<literal>Debug::Acquire::gpgv</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:580 +#: apt.conf.5.xml:626 msgid "" "Print information related to verifying cryptographic signatures using " "<literal>gpg</literal>." @@ -6986,46 +7079,46 @@ msgstr "" "<literal>gpg</literal> を用いた暗号署名の検証に関する情報を出力します。" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:587 +#: apt.conf.5.xml:633 msgid "<literal>Debug::aptcdrom</literal>" msgstr "<literal>Debug::aptcdrom</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:591 +#: apt.conf.5.xml:637 msgid "" "Output information about the process of accessing collections of packages " "stored on CD-ROMs." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:598 +#: apt.conf.5.xml:644 msgid "<literal>Debug::BuildDeps</literal>" msgstr "<literal>Debug::BuildDeps</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:601 +#: apt.conf.5.xml:647 msgid "Describes the process of resolving build-dependencies in &apt-get;." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:608 +#: apt.conf.5.xml:654 msgid "<literal>Debug::Hashes</literal>" msgstr "<literal>Debug::Hashes</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:611 +#: apt.conf.5.xml:657 msgid "" "Output each cryptographic hash that is generated by the <literal>apt</" "literal> libraries." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:618 +#: apt.conf.5.xml:664 msgid "<literal>Debug::IdentCDROM</literal>" msgstr "<literal>Debug::IdentCDROM</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:621 +#: apt.conf.5.xml:667 msgid "" "Do not include information from <literal>statfs</literal>, namely the number " "of used and free blocks on the CD-ROM filesystem, when generating an ID for " @@ -7033,93 +7126,93 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:629 +#: apt.conf.5.xml:675 msgid "<literal>Debug::NoLocking</literal>" msgstr "<literal>Debug::NoLocking</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:632 +#: apt.conf.5.xml:678 msgid "" "Disable all file locking. For instance, this will allow two instances of " "<quote><literal>apt-get update</literal></quote> to run at the same time." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:640 +#: apt.conf.5.xml:686 msgid "<literal>Debug::pkgAcquire</literal>" msgstr "<literal>Debug::pkgAcquire</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:644 +#: apt.conf.5.xml:690 msgid "Log when items are added to or removed from the global download queue." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:651 +#: apt.conf.5.xml:697 msgid "<literal>Debug::pkgAcquire::Auth</literal>" msgstr "<literal>Debug::pkgAcquire::Auth</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:654 +#: apt.conf.5.xml:700 msgid "" "Output status messages and errors related to verifying checksums and " "cryptographic signatures of downloaded files." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:661 +#: apt.conf.5.xml:707 msgid "<literal>Debug::pkgAcquire::Diffs</literal>" msgstr "<literal>Debug::pkgAcquire::Diffs</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:664 +#: apt.conf.5.xml:710 msgid "" "Output information about downloading and applying package index list diffs, " "and errors relating to package index list diffs." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:672 +#: apt.conf.5.xml:718 msgid "<literal>Debug::pkgAcquire::RRed</literal>" msgstr "<literal>Debug::pkgAcquire::RRed</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:676 +#: apt.conf.5.xml:722 msgid "" "Output information related to patching apt package lists when downloading " "index diffs instead of full indices." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:683 +#: apt.conf.5.xml:729 msgid "<literal>Debug::pkgAcquire::Worker</literal>" msgstr "<literal>Debug::pkgAcquire::Worker</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:687 +#: apt.conf.5.xml:733 msgid "" "Log all interactions with the sub-processes that actually perform downloads." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:694 +#: apt.conf.5.xml:740 msgid "<literal>Debug::pkgAutoRemove</literal>" msgstr "<literal>Debug::pkgAutoRemove</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:698 +#: apt.conf.5.xml:744 msgid "" "Log events related to the automatically-installed status of packages and to " "the removal of unused packages." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:705 +#: apt.conf.5.xml:751 msgid "<literal>Debug::pkgDepCache::AutoInstall</literal>" msgstr "<literal>Debug::pkgDepCache::AutoInstall</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:708 +#: apt.conf.5.xml:754 msgid "" "Generate debug messages describing which packages are being automatically " "installed to resolve dependencies. This corresponds to the initial auto-" @@ -7129,12 +7222,12 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:719 +#: apt.conf.5.xml:765 msgid "<literal>Debug::pkgDepCache::Marker</literal>" msgstr "<literal>Debug::pkgDepCache::Marker</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:722 +#: apt.conf.5.xml:768 msgid "" "Generate debug messages describing which package is marked as keep/install/" "remove while the ProblemResolver does his work. Each addition or deletion " @@ -7151,91 +7244,91 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:741 +#: apt.conf.5.xml:787 msgid "<literal>Debug::pkgInitConfig</literal>" msgstr "<literal>Debug::pkgInitConfig</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:744 +#: apt.conf.5.xml:790 msgid "Dump the default configuration to standard error on startup." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:751 +#: apt.conf.5.xml:797 msgid "<literal>Debug::pkgDPkgPM</literal>" msgstr "<literal>Debug::pkgDPkgPM</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:754 +#: apt.conf.5.xml:800 msgid "" "When invoking &dpkg;, output the precise command line with which it is being " "invoked, with arguments separated by a single space character." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:762 +#: apt.conf.5.xml:808 msgid "<literal>Debug::pkgDPkgProgressReporting</literal>" msgstr "<literal>Debug::pkgDPkgProgressReporting</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:765 +#: apt.conf.5.xml:811 msgid "" "Output all the data received from &dpkg; on the status file descriptor and " "any errors encountered while parsing it." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:772 +#: apt.conf.5.xml:818 msgid "<literal>Debug::pkgOrderList</literal>" msgstr "<literal>Debug::pkgOrderList</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:776 +#: apt.conf.5.xml:822 msgid "" "Generate a trace of the algorithm that decides the order in which " "<literal>apt</literal> should pass packages to &dpkg;." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:784 +#: apt.conf.5.xml:830 msgid "<literal>Debug::pkgPackageManager</literal>" msgstr "<literal>Debug::pkgPackageManager</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:788 +#: apt.conf.5.xml:834 msgid "" "Output status messages tracing the steps performed when invoking &dpkg;." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:795 +#: apt.conf.5.xml:841 msgid "<literal>Debug::pkgPolicy</literal>" msgstr "<literal>Debug::pkgPolicy</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:799 +#: apt.conf.5.xml:845 msgid "Output the priority of each package list on startup." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:805 +#: apt.conf.5.xml:851 msgid "<literal>Debug::pkgProblemResolver</literal>" msgstr "<literal>Debug::pkgProblemResolver</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:809 +#: apt.conf.5.xml:855 msgid "" "Trace the execution of the dependency resolver (this applies only to what " "happens when a complex dependency problem is encountered)." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:817 +#: apt.conf.5.xml:863 msgid "<literal>Debug::pkgProblemResolver::ShowScores</literal>" msgstr "<literal>Debug::pkgProblemResolver::ShowScores</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:820 +#: apt.conf.5.xml:866 msgid "" "Display a list of all installed packages with their calculated score used by " "the pkgProblemResolver. The description of the package is the same as " @@ -7243,12 +7336,12 @@ msgid "" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.conf.5.xml:828 +#: apt.conf.5.xml:874 msgid "<literal>Debug::sourceList</literal>" msgstr "<literal>Debug::sourceList</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> -#: apt.conf.5.xml:832 +#: apt.conf.5.xml:878 msgid "" "Print information about the vendors read from <filename>/etc/apt/vendors." "list</filename>." @@ -7256,7 +7349,7 @@ msgstr "" # type: Content of: <refentry><refsect1><para> #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:854 +#: apt.conf.5.xml:900 msgid "" "&configureindex; is a configuration file showing example values for all " "possible options." @@ -7266,7 +7359,7 @@ msgstr "" # type: Content of: <refentry><refsect1><para> #. type: Content of: <refentry><refsect1><variablelist> -#: apt.conf.5.xml:861 +#: apt.conf.5.xml:907 #, fuzzy #| msgid "&apt-conf;" msgid "&file-aptconf;" @@ -7275,7 +7368,7 @@ msgstr "&apt-conf;" # type: Content of: <refentry><refsect1><para> #. ? reading apt.conf #. type: Content of: <refentry><refsect1><para> -#: apt.conf.5.xml:866 +#: apt.conf.5.xml:912 msgid "&apt-cache;, &apt-config;, &apt-preferences;." msgstr "&apt-cache;, &apt-config;, &apt-preferences;." @@ -9863,11 +9956,6 @@ msgstr "&apt-cache; &apt-conf;" #~ msgid "Operation failed" #~ msgstr "オプション" -# type: Content of: <refentry><refnamediv><refname> -#, fuzzy -#~ msgid "Config-Item" -#~ msgstr "config-files" - # type: <tag></tag> #, fuzzy #~ msgid "Single-Instance" @@ -9893,11 +9981,6 @@ msgstr "&apt-cache; &apt-conf;" #~ msgid "Version string for the method" #~ msgstr "ユーザの設定" -# type: Content of: <refentry><refsect1><title> -#, fuzzy -#~ msgid "601 Configuration" -#~ msgstr "ユーザの設定" - #, fuzzy #~ msgid "Notes" #~ msgstr "contents" diff --git a/po/apt-all.pot b/po/apt-all.pot index a037df160..d4b0d2542 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -2666,12 +2666,12 @@ msgstr "" msgid "Installing %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:642 +#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:655 #, c-format msgid "Configuring %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:649 +#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:662 #, c-format msgid "Removing %s" msgstr "" @@ -2681,56 +2681,56 @@ msgstr "" msgid "Running post-installation trigger %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:546 +#: apt-pkg/deb/dpkgpm.cc:554 #, c-format msgid "Directory '%s' missing" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:635 +#: apt-pkg/deb/dpkgpm.cc:648 #, c-format msgid "Preparing %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:636 +#: apt-pkg/deb/dpkgpm.cc:649 #, c-format msgid "Unpacking %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:641 +#: apt-pkg/deb/dpkgpm.cc:654 #, c-format msgid "Preparing to configure %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:643 +#: apt-pkg/deb/dpkgpm.cc:656 #, c-format msgid "Installed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:648 +#: apt-pkg/deb/dpkgpm.cc:661 #, c-format msgid "Preparing for removal of %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:650 +#: apt-pkg/deb/dpkgpm.cc:663 #, c-format msgid "Removed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:655 +#: apt-pkg/deb/dpkgpm.cc:668 #, c-format msgid "Preparing to completely remove %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:656 +#: apt-pkg/deb/dpkgpm.cc:669 #, c-format msgid "Completely removed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:820 +#: apt-pkg/deb/dpkgpm.cc:849 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:848 +#: apt-pkg/deb/dpkgpm.cc:877 msgid "Running dpkg" msgstr "" -- cgit v1.2.3-70-g09d2 From 592b78001c381f9cca6f20d8d1d47696bb98c0d1 Mon Sep 17 00:00:00 2001 From: Michael Vogt <michael.vogt@ubuntu.com> Date: Fri, 16 Oct 2009 15:36:28 +0200 Subject: port netrc support from maemon --- apt-pkg/contrib/netrc.cc | 184 +++++++++++++++++++++++++++++++++++++++++++ apt-pkg/contrib/netrc.h | 29 +++++++ apt-pkg/init.cc | 1 + apt-pkg/makefile | 6 +- doc/examples/configure-index | 1 + methods/http.cc | 7 +- methods/https.cc | 3 + po/apt-all.pot | 147 ++++++++++++++++++---------------- 8 files changed, 303 insertions(+), 75 deletions(-) create mode 100644 apt-pkg/contrib/netrc.cc create mode 100644 apt-pkg/contrib/netrc.h (limited to 'doc/examples') diff --git a/apt-pkg/contrib/netrc.cc b/apt-pkg/contrib/netrc.cc new file mode 100644 index 000000000..851b661a4 --- /dev/null +++ b/apt-pkg/contrib/netrc.cc @@ -0,0 +1,184 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: netrc.c,v 1.38 2007-11-07 09:21:35 bagder Exp $ +/* ###################################################################### + + netrc file parser - returns the login and password of a give host in + a specified netrc-type file + + Originally written by Daniel Stenberg, <daniel@haxx.se>, et al. and + placed into the Public Domain, do with it what you will. + + ##################################################################### */ + /*}}}*/ + +#include <iostream> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <pwd.h> + +#include "netrc.h" + + +/* Get user and password from .netrc when given a machine name */ + +enum { + NOTHING, + HOSTFOUND, /* the 'machine' keyword was found */ + HOSTCOMPLETE, /* the machine name following the keyword was found too */ + HOSTVALID, /* this is "our" machine! */ + HOSTEND /* LAST enum */ +}; + +/* make sure we have room for at least this size: */ +#define LOGINSIZE 64 +#define PASSWORDSIZE 64 +#define NETRC DOT_CHAR "netrc" + +/* returns -1 on failure, 0 if the host is found, 1 is the host isn't found */ +int parsenetrc (char *host, char *login, char *password, char *netrcfile = NULL) +{ + FILE *file; + int retcode = 1; + int specific_login = (login[0] != 0); + char *home = NULL; + bool netrc_alloc = false; + int state = NOTHING; + + char state_login = 0; /* Found a login keyword */ + char state_password = 0; /* Found a password keyword */ + int state_our_login = false; /* With specific_login, + found *our* login name */ + + if (!netrcfile) { + home = getenv ("HOME"); /* portable environment reader */ + + if (!home) { + struct passwd *pw; + pw = getpwuid (geteuid ()); + if(pw) + home = pw->pw_dir; + } + + if (!home) + return -1; + + asprintf (&netrcfile, "%s%s%s", home, DIR_CHAR, NETRC); + if(!netrcfile) + return -1; + else + netrc_alloc = true; + } + + file = fopen (netrcfile, "r"); + if(file) { + char *tok; + char *tok_buf; + bool done = false; + char netrcbuffer[256]; + + while (!done && fgets(netrcbuffer, sizeof (netrcbuffer), file)) { + tok = strtok_r (netrcbuffer, " \t\n", &tok_buf); + while (!done && tok) { + if(login[0] && password[0]) { + done = true; + break; + } + + switch(state) { + case NOTHING: + if (!strcasecmp ("machine", tok)) { + /* the next tok is the machine name, this is in itself the + delimiter that starts the stuff entered for this machine, + after this we need to search for 'login' and + 'password'. */ + state = HOSTFOUND; + } + break; + case HOSTFOUND: + if (!strcasecmp (host, tok)) { + /* and yes, this is our host! */ + state = HOSTVALID; + retcode = 0; /* we did find our host */ + } + else + /* not our host */ + state = NOTHING; + break; + case HOSTVALID: + /* we are now parsing sub-keywords concerning "our" host */ + if (state_login) { + if (specific_login) + state_our_login = !strcasecmp (login, tok); + else + strncpy (login, tok, LOGINSIZE - 1); + state_login = 0; + } else if (state_password) { + if (state_our_login || !specific_login) + strncpy (password, tok, PASSWORDSIZE - 1); + state_password = 0; + } else if (!strcasecmp ("login", tok)) + state_login = 1; + else if (!strcasecmp ("password", tok)) + state_password = 1; + else if(!strcasecmp ("machine", tok)) { + /* ok, there's machine here go => */ + state = HOSTFOUND; + state_our_login = false; + } + break; + } /* switch (state) */ + + tok = strtok_r (NULL, " \t\n", &tok_buf); + } /* while(tok) */ + } /* while fgets() */ + + fclose(file); + } + + if (netrc_alloc) + free(netrcfile); + + return retcode; +} + +void maybe_add_auth (URI &Uri, string NetRCFile) +{ + if (Uri.Password.empty () == true && Uri.User.empty () == true) + { + if (NetRCFile.empty () == false) + { + char login[64] = ""; + char password[64] = ""; + char *netrcfile = strdup (NetRCFile.c_str ()); + char *host = strdup (Uri.Host.c_str ()); + + if (host && 0 == parsenetrc (host, login, password, netrcfile)) + { + Uri.User = string (login); + Uri.Password = string (password); + } + + if (host) + free (host); + free (netrcfile); + } + } +} + +#ifdef DEBUG +int main(int argc, char* argv[]) +{ + char login[64] = ""; + char password[64] = ""; + + if(argc < 2) + return -1; + + if(0 == parsenetrc (argv[1], login, password, argv[2])) { + printf("HOST: %s LOGIN: %s PASSWORD: %s\n", argv[1], login, password); + } +} +#endif diff --git a/apt-pkg/contrib/netrc.h b/apt-pkg/contrib/netrc.h new file mode 100644 index 000000000..02a5eb09f --- /dev/null +++ b/apt-pkg/contrib/netrc.h @@ -0,0 +1,29 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +// $Id: netrc.h,v 1.11 2004/01/07 09:19:35 bagder Exp $ +/* ###################################################################### + + netrc file parser - returns the login and password of a give host in + a specified netrc-type file + + Originally written by Daniel Stenberg, <daniel@haxx.se>, et al. and + placed into the Public Domain, do with it what you will. + + ##################################################################### */ + /*}}}*/ +#ifndef NETRC_H +#define NETRC_H + +#include <apt-pkg/strutl.h> + +#define DOT_CHAR "." +#define DIR_CHAR "/" + +// Assume: password[0]=0, host[0] != 0. +// If login[0] = 0, search for login and password within a machine section +// in the netrc. +// If login[0] != 0, search for password within machine and login. +int parsenetrc (char *host, char *login, char *password, char *filename); + +void maybe_add_auth (URI &Uri, string NetRCFile); +#endif diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index 63caade36..2a3dfae74 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -65,6 +65,7 @@ bool pkgInitConfig(Configuration &Cnf) Cnf.Set("Dir::Etc::vendorlist","vendors.list"); Cnf.Set("Dir::Etc::vendorparts","vendors.list.d"); Cnf.Set("Dir::Etc::main","apt.conf"); + Cnf.Set("Dir::ETc::netrc", "auth.conf"); Cnf.Set("Dir::Etc::parts","apt.conf.d"); Cnf.Set("Dir::Etc::preferences","preferences"); Cnf.Set("Dir::Etc::preferencesparts","preferences.d"); diff --git a/apt-pkg/makefile b/apt-pkg/makefile index 92ef58967..26fc9fac5 100644 --- a/apt-pkg/makefile +++ b/apt-pkg/makefile @@ -22,10 +22,10 @@ APT_DOMAIN:=libapt-pkg$(MAJOR) SOURCE = contrib/mmap.cc contrib/error.cc contrib/strutl.cc \ contrib/configuration.cc contrib/progress.cc contrib/cmndline.cc \ contrib/md5.cc contrib/sha1.cc contrib/sha256.cc contrib/hashes.cc \ - contrib/cdromutl.cc contrib/crc-16.cc \ + contrib/cdromutl.cc contrib/crc-16.cc contrib/netrc.cc \ contrib/fileutl.cc -HEADERS = mmap.h error.h configuration.h fileutl.h cmndline.h \ - md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h sha256.h hashes.h +HEADERS = mmap.h error.h configuration.h fileutl.h cmndline.h netrc.h\ + md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h sha256.h hashes.h # Source code for the core main library SOURCE+= pkgcache.cc version.cc depcache.cc \ diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 5dc7b5246..3c236d7d9 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -273,6 +273,7 @@ Dir "/" // Config files Etc "etc/apt/" { Main "apt.conf"; + Netrc "auth.conf"; Parts "apt.conf.d/"; Preferences "preferences"; PreferencesParts "preferences.d"; diff --git a/methods/http.cc b/methods/http.cc index 1eba0f279..6bfe80baf 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -29,6 +29,7 @@ #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> @@ -42,6 +43,7 @@ #include <map> #include <apti18n.h> + // Internet stuff #include <netdb.h> @@ -49,7 +51,6 @@ #include "connect.h" #include "rfc2553emu.h" #include "http.h" - /*}}}*/ using namespace std; @@ -725,9 +726,11 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) Base64Encode(Proxy.User + ":" + Proxy.Password) + "\r\n"; if (Uri.User.empty() == false || Uri.Password.empty() == false) + { + maybe_add_auth (Uri, _config->FindFile("Dir::Etc::netrc")); Req += string("Authorization: Basic ") + Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n"; - + } Req += "User-Agent: Debian APT-HTTP/1.3 ("VERSION")\r\n\r\n"; if (Debug == true) diff --git a/methods/https.cc b/methods/https.cc index 37d93e308..a86c78029 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -14,6 +14,7 @@ #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> @@ -126,6 +127,8 @@ bool HttpsMethod::Fetch(FetchItem *Itm) 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_WRITEFUNCTION, write_data); diff --git a/po/apt-all.pot b/po/apt-all.pot index a18646290..ec2e73a13 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-26 01:10+0200\n" +"POT-Creation-Date: 2009-10-16 15:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -989,7 +989,7 @@ msgstr "" msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1897 methods/ftp.cc:702 methods/connect.cc:112 +#: cmdline/apt-get.cc:1897 methods/ftp.cc:707 methods/connect.cc:112 msgid "Failed" msgstr "" @@ -1281,7 +1281,12 @@ msgstr "" msgid "Error reading archive member header" msgstr "" -#: apt-inst/contrib/arfile.cc:90 apt-inst/contrib/arfile.cc:102 +#: apt-inst/contrib/arfile.cc:90 +#, c-format +msgid "Invalid archive member header %s" +msgstr "" + +#: apt-inst/contrib/arfile.cc:102 msgid "Invalid archive member header" msgstr "" @@ -1381,10 +1386,12 @@ msgstr "" msgid "File %s/%s overwrites the one in the package %s" msgstr "" +#. Only warn if there are no sources.list.d. +#. Only warn if there is no sources.list file. #: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:822 -#: apt-pkg/contrib/cdromutl.cc:157 apt-pkg/sourcelist.cc:163 -#: apt-pkg/sourcelist.cc:169 apt-pkg/sourcelist.cc:324 apt-pkg/acquire.cc:419 -#: apt-pkg/init.cc:89 apt-pkg/init.cc:97 apt-pkg/clean.cc:33 +#: apt-pkg/contrib/cdromutl.cc:157 apt-pkg/sourcelist.cc:166 +#: apt-pkg/sourcelist.cc:172 apt-pkg/sourcelist.cc:327 apt-pkg/acquire.cc:419 +#: apt-pkg/init.cc:90 apt-pkg/init.cc:98 apt-pkg/clean.cc:33 #: apt-pkg/policy.cc:281 apt-pkg/policy.cc:287 #, c-format msgid "Unable to read %s" @@ -1559,147 +1566,147 @@ msgid "Invalid URI, local URIS must not start with //" msgstr "" #. Login must be before getpeername otherwise dante won't work. -#: methods/ftp.cc:162 +#: methods/ftp.cc:167 msgid "Logging in" msgstr "" -#: methods/ftp.cc:168 +#: methods/ftp.cc:173 msgid "Unable to determine the peer name" msgstr "" -#: methods/ftp.cc:173 +#: methods/ftp.cc:178 msgid "Unable to determine the local name" msgstr "" -#: methods/ftp.cc:204 methods/ftp.cc:232 +#: methods/ftp.cc:209 methods/ftp.cc:237 #, c-format msgid "The server refused the connection and said: %s" msgstr "" -#: methods/ftp.cc:210 +#: methods/ftp.cc:215 #, c-format msgid "USER failed, server said: %s" msgstr "" -#: methods/ftp.cc:217 +#: methods/ftp.cc:222 #, c-format msgid "PASS failed, server said: %s" msgstr "" -#: methods/ftp.cc:237 +#: methods/ftp.cc:242 msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." msgstr "" -#: methods/ftp.cc:265 +#: methods/ftp.cc:270 #, c-format msgid "Login script command '%s' failed, server said: %s" msgstr "" -#: methods/ftp.cc:291 +#: methods/ftp.cc:296 #, c-format msgid "TYPE failed, server said: %s" msgstr "" -#: methods/ftp.cc:329 methods/ftp.cc:440 methods/rsh.cc:183 methods/rsh.cc:226 +#: methods/ftp.cc:334 methods/ftp.cc:445 methods/rsh.cc:183 methods/rsh.cc:226 msgid "Connection timeout" msgstr "" -#: methods/ftp.cc:335 +#: methods/ftp.cc:340 msgid "Server closed the connection" msgstr "" -#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 +#: methods/ftp.cc:343 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 msgid "Read error" msgstr "" -#: methods/ftp.cc:345 methods/rsh.cc:197 +#: methods/ftp.cc:350 methods/rsh.cc:197 msgid "A response overflowed the buffer." msgstr "" -#: methods/ftp.cc:362 methods/ftp.cc:374 +#: methods/ftp.cc:367 methods/ftp.cc:379 msgid "Protocol corruption" msgstr "" -#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 +#: methods/ftp.cc:451 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 msgid "Write error" msgstr "" -#: methods/ftp.cc:687 methods/ftp.cc:693 methods/ftp.cc:729 +#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734 msgid "Could not create a socket" msgstr "" -#: methods/ftp.cc:698 +#: methods/ftp.cc:703 msgid "Could not connect data socket, connection timed out" msgstr "" -#: methods/ftp.cc:704 +#: methods/ftp.cc:709 msgid "Could not connect passive socket." msgstr "" -#: methods/ftp.cc:722 +#: methods/ftp.cc:727 msgid "getaddrinfo was unable to get a listening socket" msgstr "" -#: methods/ftp.cc:736 +#: methods/ftp.cc:741 msgid "Could not bind a socket" msgstr "" -#: methods/ftp.cc:740 +#: methods/ftp.cc:745 msgid "Could not listen on the socket" msgstr "" -#: methods/ftp.cc:747 +#: methods/ftp.cc:752 msgid "Could not determine the socket's name" msgstr "" -#: methods/ftp.cc:779 +#: methods/ftp.cc:784 msgid "Unable to send PORT command" msgstr "" -#: methods/ftp.cc:789 +#: methods/ftp.cc:794 #, c-format msgid "Unknown address family %u (AF_*)" msgstr "" -#: methods/ftp.cc:798 +#: methods/ftp.cc:803 #, c-format msgid "EPRT failed, server said: %s" msgstr "" -#: methods/ftp.cc:818 +#: methods/ftp.cc:823 msgid "Data socket connect timed out" msgstr "" -#: methods/ftp.cc:825 +#: methods/ftp.cc:830 msgid "Unable to accept connection" msgstr "" -#: methods/ftp.cc:864 methods/http.cc:991 methods/rsh.cc:303 +#: methods/ftp.cc:869 methods/http.cc:999 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "" -#: methods/ftp.cc:877 +#: methods/ftp.cc:882 #, c-format msgid "Unable to fetch file, server said '%s'" msgstr "" -#: methods/ftp.cc:892 methods/rsh.cc:322 +#: methods/ftp.cc:897 methods/rsh.cc:322 msgid "Data socket timed out" msgstr "" -#: methods/ftp.cc:922 +#: methods/ftp.cc:927 #, c-format msgid "Data transfer failed, server said '%s'" msgstr "" #. Get the files information -#: methods/ftp.cc:997 +#: methods/ftp.cc:1002 msgid "Query" msgstr "" -#: methods/ftp.cc:1109 +#: methods/ftp.cc:1114 msgid "Unable to invoke " msgstr "" @@ -1807,80 +1814,80 @@ msgstr "" msgid "Read error from %s process" msgstr "" -#: methods/http.cc:379 +#: methods/http.cc:385 msgid "Waiting for headers" msgstr "" -#: methods/http.cc:525 +#: methods/http.cc:531 #, c-format msgid "Got a single header line over %u chars" msgstr "" -#: methods/http.cc:533 +#: methods/http.cc:539 msgid "Bad header line" msgstr "" -#: methods/http.cc:552 methods/http.cc:559 +#: methods/http.cc:558 methods/http.cc:565 msgid "The HTTP server sent an invalid reply header" msgstr "" -#: methods/http.cc:588 +#: methods/http.cc:594 msgid "The HTTP server sent an invalid Content-Length header" msgstr "" -#: methods/http.cc:603 +#: methods/http.cc:609 msgid "The HTTP server sent an invalid Content-Range header" msgstr "" -#: methods/http.cc:605 +#: methods/http.cc:611 msgid "This HTTP server has broken range support" msgstr "" -#: methods/http.cc:629 +#: methods/http.cc:635 msgid "Unknown date format" msgstr "" -#: methods/http.cc:782 +#: methods/http.cc:790 msgid "Select failed" msgstr "" -#: methods/http.cc:787 +#: methods/http.cc:795 msgid "Connection timed out" msgstr "" -#: methods/http.cc:810 +#: methods/http.cc:818 msgid "Error writing to output file" msgstr "" -#: methods/http.cc:841 +#: methods/http.cc:849 msgid "Error writing to file" msgstr "" -#: methods/http.cc:869 +#: methods/http.cc:877 msgid "Error writing to the file" msgstr "" -#: methods/http.cc:883 +#: methods/http.cc:891 msgid "Error reading from server. Remote end closed connection" msgstr "" -#: methods/http.cc:885 +#: methods/http.cc:893 msgid "Error reading from server" msgstr "" -#: methods/http.cc:976 apt-pkg/contrib/mmap.cc:215 +#: methods/http.cc:984 apt-pkg/contrib/mmap.cc:215 msgid "Failed to truncate file" msgstr "" -#: methods/http.cc:1141 +#: methods/http.cc:1149 msgid "Bad header data" msgstr "" -#: methods/http.cc:1158 methods/http.cc:1213 +#: methods/http.cc:1166 methods/http.cc:1221 msgid "Connection failed" msgstr "" -#: methods/http.cc:1305 +#: methods/http.cc:1313 msgid "Internal error" msgstr "" @@ -2211,16 +2218,16 @@ msgstr "" msgid "Dependency generation" msgstr "" -#: apt-pkg/depcache.cc:173 apt-pkg/depcache.cc:192 apt-pkg/depcache.cc:196 +#: apt-pkg/depcache.cc:173 apt-pkg/depcache.cc:193 apt-pkg/depcache.cc:197 msgid "Reading state information" msgstr "" -#: apt-pkg/depcache.cc:220 +#: apt-pkg/depcache.cc:223 #, c-format msgid "Failed to open StateFile %s" msgstr "" -#: apt-pkg/depcache.cc:226 +#: apt-pkg/depcache.cc:229 #, c-format msgid "Failed to write temporary StateFile %s" msgstr "" @@ -2260,27 +2267,27 @@ msgstr "" msgid "Malformed line %lu in source list %s (dist parse)" msgstr "" -#: apt-pkg/sourcelist.cc:203 +#: apt-pkg/sourcelist.cc:206 #, c-format msgid "Opening %s" msgstr "" -#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:445 +#: apt-pkg/sourcelist.cc:223 apt-pkg/cdrom.cc:445 #, c-format msgid "Line %u too long in source list %s." msgstr "" -#: apt-pkg/sourcelist.cc:240 +#: apt-pkg/sourcelist.cc:243 #, c-format msgid "Malformed line %u in source list %s (type)" msgstr "" -#: apt-pkg/sourcelist.cc:244 +#: apt-pkg/sourcelist.cc:247 #, c-format msgid "Type '%s' is not known on line %u in source list %s" msgstr "" -#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255 +#: apt-pkg/sourcelist.cc:255 apt-pkg/sourcelist.cc:258 #, c-format msgid "Malformed line %u in source list %s (vendor id)" msgstr "" @@ -2357,12 +2364,12 @@ msgstr "" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" -#: apt-pkg/init.cc:132 +#: apt-pkg/init.cc:133 #, c-format msgid "Packaging system '%s' is not supported" msgstr "" -#: apt-pkg/init.cc:148 +#: apt-pkg/init.cc:149 msgid "Unable to determine a suitable packaging system type" msgstr "" @@ -2719,11 +2726,11 @@ msgstr "" msgid "Completely removed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:820 +#: apt-pkg/deb/dpkgpm.cc:822 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:848 +#: apt-pkg/deb/dpkgpm.cc:851 msgid "Running dpkg" msgstr "" -- cgit v1.2.3-70-g09d2 From f1c081b6ad0c5925e9668fd159f1ac6d8ab672bc Mon Sep 17 00:00:00 2001 From: Michael Vogt <michael.vogt@ubuntu.com> Date: Fri, 16 Oct 2009 16:04:41 +0200 Subject: add ftp support, basic debugging --- apt-pkg/contrib/netrc.cc | 5 +++- doc/examples/configure-index | 1 + methods/ftp.cc | 1 + po/apt-all.pot | 68 ++++++++++++++++++++++---------------------- 4 files changed, 40 insertions(+), 35 deletions(-) (limited to 'doc/examples') diff --git a/apt-pkg/contrib/netrc.cc b/apt-pkg/contrib/netrc.cc index 851b661a4..186527306 100644 --- a/apt-pkg/contrib/netrc.cc +++ b/apt-pkg/contrib/netrc.cc @@ -12,6 +12,7 @@ ##################################################################### */ /*}}}*/ +#include <apt-pkg/configuration.h> #include <iostream> #include <stdio.h> #include <stdlib.h> @@ -146,7 +147,9 @@ int parsenetrc (char *host, char *login, char *password, char *netrcfile = NULL) void maybe_add_auth (URI &Uri, string NetRCFile) { - if (Uri.Password.empty () == true && Uri.User.empty () == true) + if (_config->FindB("Debug::Acquire::netrc", false) == true) + std::clog << "maybe_add_auth: " << NetRCFile << std::endl; + if (Uri.Password.empty () == true || Uri.User.empty () == true) { if (NetRCFile.empty () == false) { diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 3c236d7d9..fc2bede4e 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -365,6 +365,7 @@ Debug Acquire::gpgv "false"; // Show the gpgv traffic aptcdrom "false"; // Show found package files IdentCdrom "false"; + acquire::netrc "false"; // netrc parser } diff --git a/methods/ftp.cc b/methods/ftp.cc index eb398666f..3e1725823 100644 --- a/methods/ftp.cc +++ b/methods/ftp.cc @@ -19,6 +19,7 @@ #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> diff --git a/po/apt-all.pot b/po/apt-all.pot index ec2e73a13..b05e180c1 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -989,7 +989,7 @@ msgstr "" msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1897 methods/ftp.cc:707 methods/connect.cc:112 +#: cmdline/apt-get.cc:1897 methods/ftp.cc:708 methods/connect.cc:112 msgid "Failed" msgstr "" @@ -1566,147 +1566,147 @@ msgid "Invalid URI, local URIS must not start with //" msgstr "" #. Login must be before getpeername otherwise dante won't work. -#: methods/ftp.cc:167 +#: methods/ftp.cc:168 msgid "Logging in" msgstr "" -#: methods/ftp.cc:173 +#: methods/ftp.cc:174 msgid "Unable to determine the peer name" msgstr "" -#: methods/ftp.cc:178 +#: methods/ftp.cc:179 msgid "Unable to determine the local name" msgstr "" -#: methods/ftp.cc:209 methods/ftp.cc:237 +#: methods/ftp.cc:210 methods/ftp.cc:238 #, c-format msgid "The server refused the connection and said: %s" msgstr "" -#: methods/ftp.cc:215 +#: methods/ftp.cc:216 #, c-format msgid "USER failed, server said: %s" msgstr "" -#: methods/ftp.cc:222 +#: methods/ftp.cc:223 #, c-format msgid "PASS failed, server said: %s" msgstr "" -#: methods/ftp.cc:242 +#: methods/ftp.cc:243 msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." msgstr "" -#: methods/ftp.cc:270 +#: methods/ftp.cc:271 #, c-format msgid "Login script command '%s' failed, server said: %s" msgstr "" -#: methods/ftp.cc:296 +#: methods/ftp.cc:297 #, c-format msgid "TYPE failed, server said: %s" msgstr "" -#: methods/ftp.cc:334 methods/ftp.cc:445 methods/rsh.cc:183 methods/rsh.cc:226 +#: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:183 methods/rsh.cc:226 msgid "Connection timeout" msgstr "" -#: methods/ftp.cc:340 +#: methods/ftp.cc:341 msgid "Server closed the connection" msgstr "" -#: methods/ftp.cc:343 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 +#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 msgid "Read error" msgstr "" -#: methods/ftp.cc:350 methods/rsh.cc:197 +#: methods/ftp.cc:351 methods/rsh.cc:197 msgid "A response overflowed the buffer." msgstr "" -#: methods/ftp.cc:367 methods/ftp.cc:379 +#: methods/ftp.cc:368 methods/ftp.cc:380 msgid "Protocol corruption" msgstr "" -#: methods/ftp.cc:451 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 +#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 msgid "Write error" msgstr "" -#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734 +#: methods/ftp.cc:693 methods/ftp.cc:699 methods/ftp.cc:735 msgid "Could not create a socket" msgstr "" -#: methods/ftp.cc:703 +#: methods/ftp.cc:704 msgid "Could not connect data socket, connection timed out" msgstr "" -#: methods/ftp.cc:709 +#: methods/ftp.cc:710 msgid "Could not connect passive socket." msgstr "" -#: methods/ftp.cc:727 +#: methods/ftp.cc:728 msgid "getaddrinfo was unable to get a listening socket" msgstr "" -#: methods/ftp.cc:741 +#: methods/ftp.cc:742 msgid "Could not bind a socket" msgstr "" -#: methods/ftp.cc:745 +#: methods/ftp.cc:746 msgid "Could not listen on the socket" msgstr "" -#: methods/ftp.cc:752 +#: methods/ftp.cc:753 msgid "Could not determine the socket's name" msgstr "" -#: methods/ftp.cc:784 +#: methods/ftp.cc:785 msgid "Unable to send PORT command" msgstr "" -#: methods/ftp.cc:794 +#: methods/ftp.cc:795 #, c-format msgid "Unknown address family %u (AF_*)" msgstr "" -#: methods/ftp.cc:803 +#: methods/ftp.cc:804 #, c-format msgid "EPRT failed, server said: %s" msgstr "" -#: methods/ftp.cc:823 +#: methods/ftp.cc:824 msgid "Data socket connect timed out" msgstr "" -#: methods/ftp.cc:830 +#: methods/ftp.cc:831 msgid "Unable to accept connection" msgstr "" -#: methods/ftp.cc:869 methods/http.cc:999 methods/rsh.cc:303 +#: methods/ftp.cc:870 methods/http.cc:999 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "" -#: methods/ftp.cc:882 +#: methods/ftp.cc:883 #, c-format msgid "Unable to fetch file, server said '%s'" msgstr "" -#: methods/ftp.cc:897 methods/rsh.cc:322 +#: methods/ftp.cc:898 methods/rsh.cc:322 msgid "Data socket timed out" msgstr "" -#: methods/ftp.cc:927 +#: methods/ftp.cc:928 #, c-format msgid "Data transfer failed, server said '%s'" msgstr "" #. Get the files information -#: methods/ftp.cc:1002 +#: methods/ftp.cc:1005 msgid "Query" msgstr "" -#: methods/ftp.cc:1114 +#: methods/ftp.cc:1117 msgid "Unable to invoke " msgstr "" -- cgit v1.2.3-70-g09d2 From 9f542bae2b3620887345ebc3e61970f8903123a0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Fri, 11 Dec 2009 00:32:01 +0100 Subject: add config setting for User-Agent in http and https to the Acquire group, thanks Timothy J. Miller! (Closes: #355782) --- debian/changelog | 3 +++ doc/apt.conf.5.xml | 7 ++++++- doc/examples/configure-index | 3 +++ methods/http.cc | 3 ++- methods/https.cc | 5 ++++- 5 files changed, 18 insertions(+), 3 deletions(-) (limited to 'doc/examples') diff --git a/debian/changelog b/debian/changelog index c54fb431b..0cfd36c00 100644 --- a/debian/changelog +++ b/debian/changelog @@ -94,6 +94,9 @@ apt (0.7.25) UNRELEASED; urgency=low - rewrite to be able to handle even big patch files - adopt optional mmap+iovec patch from Morten Hustveit (Closes: #463354) which should speed up a bit. Thanks! + * methods/http{,s}.cc + - add config setting for User-Agent to the Acquire group, + thanks Timothy J. Miller! (Closes: #355782) [ Chris Leick ] * doc/ various manpages: diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index e2db9defb..726bca2cc 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -275,7 +275,12 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; <para>The used bandwidth can be limited with <literal>Acquire::http::Dl-Limit</literal> which accepts integer values in kilobyte. The default value is 0 which deactivates the limit and tries uses as much as possible of the bandwidth (Note that this option implicit - deactivates the download from multiple servers at the same time.)</para></listitem> + deactivates the download from multiple servers at the same time.)</para> + + <para><literal>Acquire::http::User-Agent</literal> can be used to set a different + User-Agent for the http download method as some proxies allow access for clients + only if the client uses a known identifier.</para> + </listitem> </varlistentry> <varlistentry><term>https</term> diff --git a/doc/examples/configure-index b/doc/examples/configure-index index f5f996460..333c8df7e 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -191,6 +191,7 @@ Acquire Max-Age "86400"; // 1 Day age on index files No-Store "false"; // Prevent the cache from storing archives Dl-Limit "7"; // 7Kb/sec maximum download rate + User-Agent "Debian APT-HTTP/1.3"; }; // HTTPS method configuration: @@ -204,6 +205,8 @@ Acquire CaPath "/etc/ssl/certs"; Verify-Host" "true"; AllowRedirect "true"; + + User-Agent "Debian APT-CURL/1.0"; }; ftp diff --git a/methods/http.cc b/methods/http.cc index 3b210f6b6..2dae87a02 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -731,7 +731,8 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) Req += string("Authorization: Basic ") + Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n"; } - Req += "User-Agent: Debian APT-HTTP/1.3 ("VERSION")\r\n\r\n"; + Req += "User-Agent: " + _config->Find("Acquire::http::User-Agent", + "Debian APT-HTTP/1.3 ("VERSION")") + "\r\n\r\n"; if (Debug == true) cerr << Req << endl; diff --git a/methods/https.cc b/methods/https.cc index 86d7f3a6b..a4f39c379 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -211,7 +211,10 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, dlLimit); // set header - curl_easy_setopt(curl, CURLOPT_USERAGENT,"Debian APT-CURL/1.0 ("VERSION")"); + curl_easy_setopt(curl, CURLOPT_USERAGENT, + _config->Find("Acquire::https::User-Agent", + _config->Find("Acquire::http::User-Agent", + "Debian APT-CURL/1.0 ("VERSION")"))); // set timeout int timeout = _config->FindI("Acquire::http::Timeout",120); -- cgit v1.2.3-70-g09d2 From b9e9a44b3377cae2fb9aca3210f379ae1cb802ba Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Fri, 11 Dec 2009 00:38:13 +0100 Subject: add https options which default to the ones from http for the https method as this is more sane than using only the http options without a possibility to override these for https. --- debian/changelog | 2 + doc/apt.conf.5.xml | 8 ++-- doc/examples/configure-index | 33 ++++++++++---- methods/https.cc | 100 +++++++++++++++++++------------------------ 4 files changed, 76 insertions(+), 67 deletions(-) (limited to 'doc/examples') diff --git a/debian/changelog b/debian/changelog index 0cfd36c00..e930de0dd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -56,6 +56,7 @@ apt (0.7.25) UNRELEASED; urgency=low * 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 + - briefly document the behaviour of the new https options * doc/sources.list.5.xml: - add note about additional apt-transport-methods * doc/apt-mark.8.xml: @@ -97,6 +98,7 @@ apt (0.7.25) UNRELEASED; urgency=low * methods/http{,s}.cc - add config setting for User-Agent to the Acquire group, thanks Timothy J. Miller! (Closes: #355782) + - add https options which default to http ones (Closes: #557085) [ Chris Leick ] * doc/ various manpages: diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 726bca2cc..d7ad51cfb 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -284,9 +284,11 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; </varlistentry> <varlistentry><term>https</term> - <listitem><para>HTTPS URIs. Cache-control and proxy options are the same as for - <literal>http</literal> method. - <literal>Pipeline-Depth</literal> option is not supported yet.</para> + <listitem><para>HTTPS URIs. Cache-control, Timeout, AllowRedirect, Dl-Limit and + proxy options are the same as for <literal>http</literal> method and will also + default to the options from the <literal>http</literal> method if they are not + explicitly set for https. <literal>Pipeline-Depth</literal> option is not + supported yet.</para> <para><literal>CaInfo</literal> suboption specifies place of file that holds info about trusted certificates. diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 333c8df7e..ced390447 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -194,19 +194,34 @@ Acquire User-Agent "Debian APT-HTTP/1.3"; }; - // HTTPS method configuration: - // - uses the http proxy config - // - uses the http cache-control values - // - uses the http Dl-Limit values - https + + + // HTTPS method configuration: uses the http + // - proxy config + // - cache-control values + // - Dl-Limit, Timout, ... values + // if not set explicit for https + // + // see /usr/share/doc/apt/examples/apt-https-method-example.conf.gz + // for more examples + https { Verify-Peer "false"; SslCert "/etc/apt/some.pem"; - CaPath "/etc/ssl/certs"; - Verify-Host" "true"; - AllowRedirect "true"; + CaPath "/etc/ssl/certs"; + Verify-Host" "true"; + AllowRedirect "true"; + + Timeout "120"; + AllowRedirect "true"; + + // Cache Control. Note these do not work with Squid 2.0.2 + No-Cache "false"; + Max-Age "86400"; // 1 Day age on index files + No-Store "false"; // Prevent the cache from storing archives + Dl-Limit "7"; // 7Kb/sec maximum download rate - User-Agent "Debian APT-CURL/1.0"; + User-Agent "Debian APT-CURL/1.0"; }; ftp diff --git a/methods/https.cc b/methods/https.cc index a4f39c379..ed1f18150 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -1,4 +1,4 @@ -// -*- mode: cpp; mode: fold -*- +//-*- mode: cpp; mode: fold -*- // Description /*{{{*/ // $Id: http.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $ /* ###################################################################### @@ -57,54 +57,38 @@ HttpsMethod::progress_callback(void *clientp, double dltotal, double dlnow, return 0; } -void HttpsMethod::SetupProxy() -{ - URI ServerName = Queue->Uri; - - // Determine the proxy setting - string SpecificProxy = _config->Find("Acquire::http::Proxy::" + ServerName.Host); - if (!SpecificProxy.empty()) - { - if (SpecificProxy == "DIRECT") - Proxy = ""; - else - Proxy = SpecificProxy; - } - else - { - string DefProxy = _config->Find("Acquire::http::Proxy"); - if (!DefProxy.empty()) - { - Proxy = DefProxy; - } - else - { - char* result = getenv("http_proxy"); - Proxy = result ? result : ""; - } - } - - // Parse no_proxy, a , separated list of domains - if (getenv("no_proxy") != 0) - { - if (CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) - Proxy = ""; - } - - // Determine what host and port to use based on the proxy settings - string Host; - if (Proxy.empty() == true || Proxy.Host.empty() == true) - { - } - else - { - if (Proxy.Port != 0) - curl_easy_setopt(curl, CURLOPT_PROXYPORT, Proxy.Port); - curl_easy_setopt(curl, CURLOPT_PROXY, Proxy.Host.c_str()); - } -} - - +void HttpsMethod::SetupProxy() { /*{{{*/ + URI ServerName = Queue->Uri; + + // Determine the proxy setting - try https first, fallback to http and use env at last + string UseProxy = _config->Find("Acquire::https::Proxy::" + ServerName.Host, + _config->Find("Acquire::http::Proxy::" + ServerName.Host)); + + if (UseProxy.empty() == true) + UseProxy = _config->Find("Acquire::https::Proxy", _config->Find("Acquire::http::Proxy")); + + // User want to use NO proxy, so nothing to setup + if (UseProxy == "DIRECT") + return; + + if (UseProxy.empty() == false) { + // Parse no_proxy, a comma (,) separated list of domains we don't want to use + // a proxy for so we stop right here if it is in the list + if (getenv("no_proxy") != 0 && CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) + return; + } else { + const char* result = getenv("http_proxy"); + UseProxy = result == NULL ? "" : result; + } + + // Determine what host and port to use based on the proxy settings + if (UseProxy.empty() == false) { + Proxy = UseProxy; + if (Proxy.Port != 1) + curl_easy_setopt(curl, CURLOPT_PROXYPORT, Proxy.Port); + curl_easy_setopt(curl, CURLOPT_PROXY, Proxy.Host.c_str()); + } +} /*}}}*/ // HttpsMethod::Fetch - Fetch an item /*{{{*/ // --------------------------------------------------------------------- /* This adds an item to the pipeline. We keep the pipeline at a fixed @@ -191,12 +175,15 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_SSLVERSION, final_version); // cache-control - if(_config->FindB("Acquire::http::No-Cache",false) == false) + if(_config->FindB("Acquire::https::No-Cache", + _config->FindB("Acquire::http::No-Cache",false)) == false) { // cache enabled - if (_config->FindB("Acquire::http::No-Store",false) == true) + if (_config->FindB("Acquire::https::No-Store", + _config->FindB("Acquire::http::No-Store",false)) == true) headers = curl_slist_append(headers,"Cache-Control: no-store"); - ioprintf(ss, "Cache-Control: max-age=%u", _config->FindI("Acquire::http::Max-Age",0)); + ioprintf(ss, "Cache-Control: max-age=%u", _config->FindI("Acquire::https::Max-Age", + _config->FindI("Acquire::http::Max-Age",0))); headers = curl_slist_append(headers, ss.str().c_str()); } else { // cache disabled by user @@ -206,7 +193,8 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // speed limit - int dlLimit = _config->FindI("Acquire::http::Dl-Limit",0)*1024; + int dlLimit = _config->FindI("Acquire::https::Dl-Limit", + _config->FindI("Acquire::http::Dl-Limit",0))*1024; if (dlLimit > 0) curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, dlLimit); @@ -217,14 +205,16 @@ bool HttpsMethod::Fetch(FetchItem *Itm) "Debian APT-CURL/1.0 ("VERSION")"))); // set timeout - int timeout = _config->FindI("Acquire::http::Timeout",120); + int timeout = _config->FindI("Acquire::https::Timeout", + _config->FindI("Acquire::http::Timeout",120)); 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); + bool AllowRedirect = _config->FindB("Acquire::https::AllowRedirect", + _config->FindB("Acquire::http::AllowRedirect",true)); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, AllowRedirect); curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 10); -- cgit v1.2.3-70-g09d2 From 068636516ff7e7686159de478eff7b4e1036f5dc Mon Sep 17 00:00:00 2001 From: Michael Vogt <michael.vogt@ubuntu.com> Date: Fri, 18 Dec 2009 11:30:22 +0100 Subject: * debian/apt.logrotate: - add to logratation * doc/examples/configure-index: - add as example --- debian/apt.logrotate | 8 ++++++++ doc/examples/configure-index | 1 + 2 files changed, 9 insertions(+) (limited to 'doc/examples') diff --git a/debian/apt.logrotate b/debian/apt.logrotate index 3e924d383..dfb06db2e 100644 --- a/debian/apt.logrotate +++ b/debian/apt.logrotate @@ -6,3 +6,11 @@ notifempty } +/var/log/apt/history.log { + rotate 6 + monthly + compress + missingok + notifempty +} + diff --git a/doc/examples/configure-index b/doc/examples/configure-index index f5f996460..eaea6511c 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -307,6 +307,7 @@ Dir "/" // Location of the logfile Log "var/log/apt" { Terminal "term.log"; + History "history.log"; }; }; -- cgit v1.2.3-70-g09d2 From ff1e4b0626d8ce567492ccadbd30dfc32d4c15f1 Mon Sep 17 00:00:00 2001 From: Michael Vogt <michael.vogt@ubuntu.com> Date: Tue, 26 Jan 2010 11:27:58 +0100 Subject: add new "Acquire::cdrom::AutoDetect" variable that enables/disables the dlopen of libudev for automatic cdrom detection --- debian/changelog | 2 ++ doc/examples/configure-index | 4 ++++ methods/cdrom.cc | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'doc/examples') diff --git a/debian/changelog b/debian/changelog index b499d7298..7e38cda99 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,8 @@ apt (0.7.25.1) UNRELEASED; urgency=low the umount again * methods/cdrom.cc: - fixes in multi cdrom setup code + - add new "Acquire::cdrom::AutoDetect" variable that enables/disables + the dlopen of libudev for automatic cdrom detection -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 18 Dec 2009 16:54:18 +0100 diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 1e9946e1b..317acddf6 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -250,6 +250,10 @@ Acquire cdrom { + // do auto detection of the cdrom mountpoint + AutoDetect "true"; + + // cdrom mountpoint (needs to be defined in fstab if AutoDetect is not used) mount "/cdrom"; // You need the trailing slash! diff --git a/methods/cdrom.cc b/methods/cdrom.cc index 763547013..87794b052 100644 --- a/methods/cdrom.cc +++ b/methods/cdrom.cc @@ -218,6 +218,7 @@ bool CDROMMethod::Fetch(FetchItem *Itm) return true; } + bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect", true); CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); if (Debug) clog << "Looking for CDROM at " << CDROM << endl; @@ -228,7 +229,7 @@ bool CDROMMethod::Fetch(FetchItem *Itm) string NewID; while (CurrentID.empty() == true) { - if (CDROM == "apt-udev-auto/") + if (AutoDetect) AutoDetectAndMount(Get, NewID); if(!IsMounted(CDROM)) -- cgit v1.2.3-70-g09d2