From 60681f9354217c830943315951e6559253bfa832 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 2 May 2006 09:44:30 +0200 Subject: * depcache.cc: - added APT::Install-{Recommends,Suggests} global option * depcache.h: - added DepCache::State::InstPolicyBroken() to check if the current install state violates the policy (compated with InstBroken() that only checks for the minimal requirements) --- apt-pkg/depcache.cc | 16 +++++++++++----- apt-pkg/depcache.h | 1 + cmdline/apt-get.cc | 6 ++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index dd1c794c9..589fc2f7d 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -16,7 +16,7 @@ #include #include #include - +#include #include /*}}}*/ @@ -609,7 +609,8 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, installed */ StateCache &P = PkgState[Pkg->ID]; P.iFlags &= ~AutoKept; - if (P.InstBroken() == false && (P.Mode == ModeInstall || + if ((P.InstPolicyBroken() == false && P.InstBroken() == false) && + (P.Mode == ModeInstall || P.CandidateVer == (Version *)Pkg.CurrentVer())) { if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0) @@ -620,11 +621,9 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, // See if there is even any possible instalation candidate if (P.CandidateVer == 0) return; - // We dont even try to install virtual packages.. if (Pkg->VersionList == 0) return; - /* Target the candidate version and remove the autoflag. We reset the autoflag below if this was called recursively. Otherwise the user should have the ability to de-auto a package by changing its state */ @@ -864,6 +863,13 @@ pkgCache::VerIterator pkgDepCache::Policy::GetCandidateVer(PkgIterator Pkg) /* */ bool pkgDepCache::Policy::IsImportantDep(DepIterator Dep) { - return Dep.IsCritical(); + if(Dep.IsCritical()) + return true; + else if(Dep->Type == pkgCache::Dep::Recommends) + return _config->FindB("APT::Install-Recommends", false); + else if(Dep->Type == pkgCache::Dep::Suggests) + return _config->FindB("APT::Install-Suggests", false); + + return false; } /*}}}*/ diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index 6d51920e9..3f9f67140 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -98,6 +98,7 @@ class pkgDepCache : protected pkgCache::Namespace inline bool Held() const {return Status != 0 && Keep();}; inline bool NowBroken() const {return (DepState & DepNowMin) != DepNowMin;}; inline bool InstBroken() const {return (DepState & DepInstMin) != DepInstMin;}; + inline bool InstPolicyBroken() const {return (DepState & DepInstPolicy) != DepInstPolicy;}; inline bool Install() const {return Mode == ModeInstall;}; inline VerIterator InstVerIter(pkgCache &Cache) {return VerIterator(Cache,InstallVer);}; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index d4a6bee32..6979fa8f2 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1145,9 +1145,11 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache, else ExpectedInst++; - // Install it with autoinstalling enabled. - if (State.InstBroken() == true && BrokenFix == false) + // Install it with autoinstalling enabled (if we not respect the minial + // required deps or the policy) + if ((State.InstBroken() == true || State.InstPolicyBroken() == true) && BrokenFix == false) Cache.MarkInstall(Pkg,true); + return true; } /*}}}*/ -- cgit v1.2.3 From 1b5f30cb5575f274246b1dabad0efc7a7a549aac Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Aug 2006 14:26:53 +0200 Subject: * debian/control: - switched to libdb4.4 --- debian/changelog | 7 +++++++ debian/control | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 047cf908c..e748fcebb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.6.45.1) unstable; urgency=low + + * debian/control: + - switched to libdb4.4 for building + + -- + apt (0.6.45) unstable; urgency=low * apt-pkg/contrib/sha256.cc: diff --git a/debian/control b/debian/control index 53ce851f6..3cba50acb 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: important Maintainer: APT Development Team Uploaders: Jason Gunthorpe , Adam Heath , Matt Zimmerman , Michael Vogt Standards-Version: 3.6.2.2 -Build-Depends: debhelper (>= 5.0), libdb4.3-dev, gettext (>= 0.12) +Build-Depends: debhelper (>= 5.0), libdb4.4-dev, gettext (>= 0.12) Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1) Package: apt -- cgit v1.2.3 From 51e25dd69e3cc6fb642b18ed4b049bbbbd83da2a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Aug 2006 14:27:47 +0200 Subject: * changelog updated --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index e748fcebb..9e96edba3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ apt (0.6.45.1) unstable; urgency=low * debian/control: - - switched to libdb4.4 for building + - switched to libdb4.4 for building (closes: #381019) -- -- cgit v1.2.3 From e9ae36778e841f09ad195c17004e711bf7b7abae Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Aug 2006 15:08:58 +0200 Subject: * cmdline/apt-get.cc: - added "{no-}install-recommends" option to apt-get * doc/examples/configure-index: - recommends/suggests option documented --- cmdline/apt-get.cc | 1 + doc/examples/configure-index | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 6979fa8f2..b419a05d9 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2524,6 +2524,7 @@ int main(int argc,const char *argv[]) {0,"only-source","APT::Get::Only-Source",0}, {0,"arch-only","APT::Get::Arch-Only",0}, {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0}, + {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean}, {'c',"config-file",0,CommandLine::ConfigFile}, {'o',"option",0,CommandLine::ArbItem}, {0,0,0,0}}; diff --git a/doc/examples/configure-index b/doc/examples/configure-index index f8abd75ed..c4329dfa0 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -90,6 +90,10 @@ APT Cache-Limit "4194304"; Default-Release ""; + // consider Recommends, Suggests as important dependencies that should + // be installed by default + APT::Install-Recommends "false"; + APT::Install-Suggests "false"; // Write progress messages on this fd (for stuff like base-config) Status-Fd "-1"; -- cgit v1.2.3 From 29f37db85f365f74c5c014833f3b84bb6a5f130c Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Aug 2006 16:49:58 +0200 Subject: * cmdline/apt-get.cc: - fixed for the suggets/recommends display --- cmdline/apt-get.cc | 130 ++++++++++++++++++++++----------------- debian/changelog | 5 ++ po/apt-all.pot | 175 ++++++++++++++++++++++++++++------------------------- 3 files changed, 171 insertions(+), 139 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index d4a6bee32..a0fddf368 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1609,68 +1609,84 @@ bool DoInstall(CommandLine &CmdL) string SuggestsVersions, RecommendsVersions; for (unsigned J = 0; J < Cache->Head().PackageCount; J++) { - pkgCache::PkgIterator I(Cache,Cache.List[J]); + pkgCache::PkgIterator Pkg(Cache,Cache.List[J]); /* Just look at the ones we want to install */ - if ((*Cache)[I].Install() == false) + if ((*Cache)[Pkg].Install() == false) continue; - for (pkgCache::VerIterator V = I.VersionList(); V.end() == false; V++) - { - for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; ) - { - pkgCache::DepIterator Start; - pkgCache::DepIterator End; - D.GlobOr(Start,End); // advances D - - /* - * If this is a virtual package, we need to check the list of - * packages that provide it and see if any of those are - * installed - */ - - bool providedBySomething = false; - for (pkgCache::PrvIterator Prv = Start.TargetPkg().ProvidesList(); - Prv.end() != true; - Prv++) - if ((*Cache)[Prv.OwnerPkg()].InstVerIter(*Cache).end() == false) - { - providedBySomething = true; - break; - } - - if (providedBySomething) continue; - - for(;;) - { - /* Skip if package is installed already, or is about to be */ - string target = string(Start.TargetPkg().Name()) + " "; - - if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install - || Cache[Start.TargetPkg()].Install()) - break; - - /* Skip if we already saw it */ - if (int(SuggestsList.find(target)) != -1 || int(RecommendsList.find(target)) != -1) - break; - - if (Start->Type == pkgCache::Dep::Suggests) { - SuggestsList += target; - SuggestsVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n"; - } - - if (Start->Type == pkgCache::Dep::Recommends) { - RecommendsList += target; - RecommendsVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n"; - } - - if (Start >= End) - break; - Start++; - } - } - } + // get the recommends/suggests for the candidate ver + pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache); + for (pkgCache::DepIterator D = CV.DependsList(); D.end() == false; ) + { + pkgCache::DepIterator Start; + pkgCache::DepIterator End; + D.GlobOr(Start,End); // advances D + + string RecommendsOrList,RecommendsOrVersions; + string SuggestsOrList,SuggestsOrVersions; + bool foundInstalledInOrGroup = false; + for(;;) + { + /* Skip if package is installed already, or is about to be */ + string target = string(Start.TargetPkg().Name()) + " "; + + if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install + || Cache[Start.TargetPkg()].Install()) + { + foundInstalledInOrGroup=true; + break; + } + + /* Skip if we already saw it */ + if (int(SuggestsList.find(target)) != -1 || int(RecommendsList.find(target)) != -1) + { + foundInstalledInOrGroup=true; + break; + } + + // this is a dep on a virtual pkg, check if any package that provides it + // should be installed + if(Start.TargetPkg().ProvidesList() != 0) + { + pkgCache::PrvIterator I = Start.TargetPkg().ProvidesList(); + for (; I.end() == false; I++) + { + pkgCache::PkgIterator Pkg = I.OwnerPkg(); + if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer() && + Pkg.CurrentVer() != 0) + foundInstalledInOrGroup=true; + } + } + + if (Start->Type == pkgCache::Dep::Suggests) + { + SuggestsOrList += target; + SuggestsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n"; + } + + if (Start->Type == pkgCache::Dep::Recommends) + { + RecommendsOrList += target; + RecommendsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n"; + } + + if (Start >= End) + break; + Start++; + } + + if(foundInstalledInOrGroup == false) + { + RecommendsList += RecommendsOrList; + RecommendsVersions += RecommendsOrVersions; + SuggestsList += SuggestsOrList; + SuggestsVersions += SuggestsOrVersions; + } + + } } + ShowList(c1out,_("Suggested packages:"),SuggestsList,SuggestsVersions); ShowList(c1out,_("Recommended packages:"),RecommendsList,RecommendsVersions); diff --git a/debian/changelog b/debian/changelog index 9e96edba3..a84146d20 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,11 @@ apt (0.6.45.1) unstable; urgency=low * debian/control: - switched to libdb4.4 for building (closes: #381019) + * cmdline/apt-get.cc: + - show only the recommends/suggests for the candidate-version, not for all + versions of the package (closes: #257054) + - properly handle recommends/suggests or-groups when printing the list of + suggested/recommends packages (closes: #311619) -- diff --git a/po/apt-all.pot b/po/apt-all.pot index 6929345af..095de7f6d 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: 2006-05-27 13:46+0200\n" +"POT-Creation-Date: 2006-08-09 16:17+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -148,7 +148,7 @@ msgstr "" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "" @@ -327,115 +327,126 @@ msgstr "" msgid "Some files are missing in the package file group `%s'" msgstr "" -#: ftparchive/cachedb.cc:45 +#: ftparchive/cachedb.cc:47 #, c-format msgid "DB was corrupted, file renamed to %s.old" msgstr "" -#: ftparchive/cachedb.cc:63 +#: ftparchive/cachedb.cc:65 #, c-format msgid "DB is old, attempting to upgrade %s" msgstr "" -#: ftparchive/cachedb.cc:73 +#: ftparchive/cachedb.cc:76 +msgid "" +"DB format is invalid. If you upgraded from a older version of apt, please " +"remove and re-create the database." +msgstr "" + +#: ftparchive/cachedb.cc:81 #, c-format msgid "Unable to open DB file %s: %s" msgstr "" -#: ftparchive/cachedb.cc:114 +#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 #, c-format -msgid "File date has changed %s" +msgid "Failed to stat %s" msgstr "" -#: ftparchive/cachedb.cc:155 +#: ftparchive/cachedb.cc:242 msgid "Archive has no control record" msgstr "" -#: ftparchive/cachedb.cc:267 +#: ftparchive/cachedb.cc:448 msgid "Unable to get a cursor" msgstr "" -#: ftparchive/writer.cc:78 +#: ftparchive/writer.cc:79 #, c-format msgid "W: Unable to read directory %s\n" msgstr "" -#: ftparchive/writer.cc:83 +#: ftparchive/writer.cc:84 #, c-format msgid "W: Unable to stat %s\n" msgstr "" -#: ftparchive/writer.cc:125 +#: ftparchive/writer.cc:135 msgid "E: " msgstr "" -#: ftparchive/writer.cc:127 +#: ftparchive/writer.cc:137 msgid "W: " msgstr "" -#: ftparchive/writer.cc:134 +#: ftparchive/writer.cc:144 msgid "E: Errors apply to file " msgstr "" -#: ftparchive/writer.cc:151 ftparchive/writer.cc:181 +#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 #, c-format msgid "Failed to resolve %s" msgstr "" -#: ftparchive/writer.cc:163 +#: ftparchive/writer.cc:173 msgid "Tree walking failed" msgstr "" -#: ftparchive/writer.cc:188 +#: ftparchive/writer.cc:198 #, c-format msgid "Failed to open %s" msgstr "" -#: ftparchive/writer.cc:245 +#: ftparchive/writer.cc:257 #, c-format msgid " DeLink %s [%s]\n" msgstr "" -#: ftparchive/writer.cc:253 +#: ftparchive/writer.cc:265 #, c-format msgid "Failed to readlink %s" msgstr "" -#: ftparchive/writer.cc:257 +#: ftparchive/writer.cc:269 #, c-format msgid "Failed to unlink %s" msgstr "" -#: ftparchive/writer.cc:264 +#: ftparchive/writer.cc:276 #, c-format msgid "*** Failed to link %s to %s" msgstr "" -#: ftparchive/writer.cc:274 +#: ftparchive/writer.cc:286 #, c-format msgid " DeLink limit of %sB hit.\n" msgstr "" -#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266 -#, c-format -msgid "Failed to stat %s" -msgstr "" - -#: ftparchive/writer.cc:386 +#: ftparchive/writer.cc:390 msgid "Archive had no package field" msgstr "" -#: ftparchive/writer.cc:394 ftparchive/writer.cc:603 +#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 #, c-format msgid " %s has no override entry\n" msgstr "" -#: ftparchive/writer.cc:437 ftparchive/writer.cc:689 +#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 #, c-format msgid " %s maintainer is %s not %s\n" msgstr "" +#: ftparchive/writer.cc:623 +#, c-format +msgid " %s has no source override entry\n" +msgstr "" + +#: ftparchive/writer.cc:627 +#, c-format +msgid " %s has no binary override entry either\n" +msgstr "" + #: ftparchive/contents.cc:317 #, c-format msgid "Internal error, could not locate member %s" @@ -694,11 +705,11 @@ msgstr "" msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "" @@ -727,7 +738,7 @@ msgstr "" msgid "After unpacking %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 #, c-format msgid "Couldn't determine free space in %s" msgstr "" @@ -761,7 +772,7 @@ msgstr "" msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@ -770,7 +781,7 @@ msgstr "" msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 msgid "Download complete and in download only mode" msgstr "" @@ -927,144 +938,144 @@ msgstr "" msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1685 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1675 +#: cmdline/apt-get.cc:1686 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1695 +#: cmdline/apt-get.cc:1706 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1714 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776 +#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:1876 +#: cmdline/apt-get.cc:1887 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135 +#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1961 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1974 +#: cmdline/apt-get.cc:1985 #, c-format msgid "You don't have enough free space in %s" msgstr "" -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1990 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:1993 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:1988 +#: cmdline/apt-get.cc:1999 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2030 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2058 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2059 +#: cmdline/apt-get.cc:2070 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2060 +#: cmdline/apt-get.cc:2071 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2077 +#: cmdline/apt-get.cc:2088 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2096 +#: cmdline/apt-get.cc:2107 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2123 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2151 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2160 +#: cmdline/apt-get.cc:2171 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2212 +#: cmdline/apt-get.cc:2223 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2264 +#: cmdline/apt-get.cc:2275 #, 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:2299 +#: cmdline/apt-get.cc:2310 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2324 +#: cmdline/apt-get.cc:2335 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2338 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2353 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2374 +#: cmdline/apt-get.cc:2385 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2415 +#: cmdline/apt-get.cc:2426 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1192,19 +1203,19 @@ msgstr "" msgid "Failed to create pipes" msgstr "" -#: apt-inst/contrib/extracttar.cc:143 +#: apt-inst/contrib/extracttar.cc:144 msgid "Failed to exec gzip " msgstr "" -#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206 +#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207 msgid "Corrupted archive" msgstr "" -#: apt-inst/contrib/extracttar.cc:195 +#: apt-inst/contrib/extracttar.cc:196 msgid "Tar checksum failed, archive corrupted" msgstr "" -#: apt-inst/contrib/extracttar.cc:298 +#: apt-inst/contrib/extracttar.cc:299 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "" @@ -1479,12 +1490,12 @@ msgstr "" msgid "File not found" msgstr "" -#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133 +#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133 #: methods/gzip.cc:142 msgid "Failed to stat" msgstr "" -#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139 msgid "Failed to set modification time" msgstr "" @@ -1694,38 +1705,38 @@ msgstr "" msgid "Unable to connect to %s %s:" msgstr "" -#: methods/gpgv.cc:64 +#: methods/gpgv.cc:65 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "" -#: methods/gpgv.cc:99 +#: methods/gpgv.cc:100 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" -#: methods/gpgv.cc:198 +#: methods/gpgv.cc:204 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -#: methods/gpgv.cc:203 +#: methods/gpgv.cc:209 msgid "At least one invalid signature was encountered." msgstr "" -#: methods/gpgv.cc:207 +#: methods/gpgv.cc:213 #, c-format msgid "Could not execute '%s' to verify signature (is gnupg installed?)" msgstr "" -#: methods/gpgv.cc:212 +#: methods/gpgv.cc:218 msgid "Unknown error executing gpgv" msgstr "" -#: methods/gpgv.cc:243 +#: methods/gpgv.cc:249 msgid "The following signatures were invalid:\n" msgstr "" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:256 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -2101,12 +2112,12 @@ msgstr "" msgid "Dependency generation" msgstr "" -#: apt-pkg/tagfile.cc:72 +#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 #, c-format msgid "Unable to parse package file %s (1)" msgstr "" -#: apt-pkg/tagfile.cc:102 +#: apt-pkg/tagfile.cc:186 #, c-format msgid "Unable to parse package file %s (2)" msgstr "" -- cgit v1.2.3 From cd33a78610099e9f0cfdcad782f9d92e55ea647e Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Aug 2006 16:54:13 +0200 Subject: * cmdline/apt-get.cc: - added FIXME about the missing feature of or-group display in recommends/suggests display --- cmdline/apt-get.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index a0fddf368..64882e3e8 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1623,6 +1623,8 @@ bool DoInstall(CommandLine &CmdL) pkgCache::DepIterator End; D.GlobOr(Start,End); // advances D + // FIXME: we really should display a or-group as a or-group to the user + // the problem is that ShowList is incapable of doing this string RecommendsOrList,RecommendsOrVersions; string SuggestsOrList,SuggestsOrVersions; bool foundInstalledInOrGroup = false; -- cgit v1.2.3 From 73c460c358cfa6615ee6760a3fb8d88988a12856 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Aug 2006 17:17:04 +0200 Subject: * apt-pkg/init.cc: - init "install-recommends", "install-suggests" with default "false" * debian/changelog: - updated --- apt-pkg/init.cc | 2 ++ debian/changelog | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index b47378d4a..a26f1d01c 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -40,6 +40,8 @@ bool pkgInitConfig(Configuration &Cnf) else Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU); Cnf.Set("APT::Build-Essential::", "build-essential"); + Cnf.Set("APT::Install-Recommends", false); + Cnf.Set("APT::Install-Suggests", false); Cnf.Set("Dir","/"); // State diff --git a/debian/changelog b/debian/changelog index de9a43d49..65ec82cc1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.6.45.2) unstable; urgency=low + + * added "--install-recommends" to handle recommends as + dependencies (closes: #42266) + + -- + apt (0.6.45.1) unstable; urgency=low * debian/control: -- cgit v1.2.3 From 1b1c2224f5777956f345471b600ed56203c2d400 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Aug 2006 20:01:46 +0200 Subject: * apt-pkg/depcache.cc: - find new important dependencies on upgrade and deal with them --- apt-pkg/depcache.cc | 28 ++++++++++++- po/apt-all.pot | 118 ++++++++++++++++++++++++++-------------------------- 2 files changed, 86 insertions(+), 60 deletions(-) diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 8560ce4fd..6296892ba 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -667,7 +667,33 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, it will be installed. Otherwise we only worry about critical deps */ if (IsImportantDep(Start) == false) continue; - if (Pkg->CurrentVer != 0 && Start.IsCritical() == false) + + /* check if any ImportantDep() (but not Critial) where added + * since we installed the thing + */ + bool isNewImportantDep = false; + if(IsImportantDep(Start) && !Start.IsCritical()) + { + bool found=false; + VerIterator instVer = Pkg.CurrentVer(); + for (DepIterator D = instVer.DependsList(); !D.end(); D++) + { + //FIXME: deal better with or-groups(?) + DepIterator LocalStart = D; + + if(IsImportantDep(Dep) && Start.TargetPkg() == D.TargetPkg()) + found=true; + } + // this is a new dep if it was not found to be already + // a important dep of the installed pacakge + isNewImportantDep = !found; + } + if(isNewImportantDep) + if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) + std::clog << "new important dependency: " + << Start.TargetPkg().Name() << std::endl; + + if (Pkg->CurrentVer != 0 && Start.IsCritical() == false && !isNewImportantDep) continue; /* If we are in an or group locate the first or that can diff --git a/po/apt-all.pot b/po/apt-all.pot index 095de7f6d..d6d146428 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: 2006-08-09 16:17+0200\n" +"POT-Creation-Date: 2006-08-09 18:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -148,7 +148,7 @@ msgstr "" #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2389 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "" @@ -546,7 +546,7 @@ msgstr "" msgid "Y" msgstr "" -#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506 +#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1508 #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -705,11 +705,11 @@ msgstr "" msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844 +#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1820 cmdline/apt-get.cc:1853 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128 +#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1901 cmdline/apt-get.cc:2137 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "" @@ -738,7 +738,7 @@ msgstr "" msgid "After unpacking %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982 +#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1991 #, c-format msgid "Couldn't determine free space in %s" msgstr "" @@ -772,7 +772,7 @@ msgstr "" msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025 +#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1367 cmdline/apt-get.cc:2034 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@ -781,7 +781,7 @@ msgstr "" msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034 +#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2043 msgid "Download complete and in download only mode" msgstr "" @@ -858,60 +858,60 @@ msgstr "" msgid "%s is already the newest version.\n" msgstr "" -#: cmdline/apt-get.cc:1168 +#: cmdline/apt-get.cc:1170 #, c-format msgid "Release '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1170 +#: cmdline/apt-get.cc:1172 #, c-format msgid "Version '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1176 +#: cmdline/apt-get.cc:1178 #, c-format msgid "Selected version %s (%s) for %s\n" msgstr "" -#: cmdline/apt-get.cc:1313 +#: cmdline/apt-get.cc:1315 msgid "The update command takes no arguments" msgstr "" -#: cmdline/apt-get.cc:1326 +#: cmdline/apt-get.cc:1328 msgid "Unable to lock the list directory" msgstr "" -#: cmdline/apt-get.cc:1384 +#: cmdline/apt-get.cc:1386 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -#: cmdline/apt-get.cc:1403 +#: cmdline/apt-get.cc:1405 msgid "Internal error, AllUpgrade broke stuff" msgstr "" -#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529 +#: cmdline/apt-get.cc:1495 cmdline/apt-get.cc:1531 #, c-format msgid "Couldn't find package %s" msgstr "" -#: cmdline/apt-get.cc:1516 +#: cmdline/apt-get.cc:1518 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1546 +#: cmdline/apt-get.cc:1548 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "" -#: cmdline/apt-get.cc:1549 +#: cmdline/apt-get.cc:1551 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -#: cmdline/apt-get.cc:1561 +#: cmdline/apt-get.cc:1563 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" @@ -919,163 +919,163 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1569 +#: cmdline/apt-get.cc:1571 msgid "" "Since you only requested a single operation it is extremely likely that\n" "the package is simply not installable and a bug report against\n" "that package should be filed." msgstr "" -#: cmdline/apt-get.cc:1574 +#: cmdline/apt-get.cc:1576 msgid "The following information may help to resolve the situation:" msgstr "" -#: cmdline/apt-get.cc:1577 +#: cmdline/apt-get.cc:1579 msgid "Broken packages" msgstr "" -#: cmdline/apt-get.cc:1603 +#: cmdline/apt-get.cc:1605 msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1685 +#: cmdline/apt-get.cc:1694 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1686 +#: cmdline/apt-get.cc:1695 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1706 +#: cmdline/apt-get.cc:1715 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1718 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:1714 +#: cmdline/apt-get.cc:1723 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787 +#: cmdline/apt-get.cc:1788 cmdline/apt-get.cc:1796 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:1887 +#: cmdline/apt-get.cc:1896 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146 +#: cmdline/apt-get.cc:1926 cmdline/apt-get.cc:2155 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:1961 +#: cmdline/apt-get.cc:1970 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1985 +#: cmdline/apt-get.cc:1994 #, c-format msgid "You don't have enough free space in %s" msgstr "" -#: cmdline/apt-get.cc:1990 +#: cmdline/apt-get.cc:1999 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:1993 +#: cmdline/apt-get.cc:2002 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:1999 +#: cmdline/apt-get.cc:2008 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2030 +#: cmdline/apt-get.cc:2039 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2058 +#: cmdline/apt-get.cc:2067 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2070 +#: cmdline/apt-get.cc:2079 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2071 +#: cmdline/apt-get.cc:2080 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2088 +#: cmdline/apt-get.cc:2097 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2107 +#: cmdline/apt-get.cc:2116 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2123 +#: cmdline/apt-get.cc:2132 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2151 +#: cmdline/apt-get.cc:2160 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2171 +#: cmdline/apt-get.cc:2180 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2223 +#: cmdline/apt-get.cc:2232 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2275 +#: cmdline/apt-get.cc:2284 #, 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:2310 +#: cmdline/apt-get.cc:2319 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2335 +#: cmdline/apt-get.cc:2344 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2349 +#: cmdline/apt-get.cc:2358 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2353 +#: cmdline/apt-get.cc:2362 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2385 +#: cmdline/apt-get.cc:2394 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2426 +#: cmdline/apt-get.cc:2435 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -2100,15 +2100,15 @@ msgstr "" msgid "extra" msgstr "" -#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90 +#: apt-pkg/depcache.cc:60 apt-pkg/depcache.cc:89 msgid "Building dependency tree" msgstr "" -#: apt-pkg/depcache.cc:62 +#: apt-pkg/depcache.cc:61 msgid "Candidate versions" msgstr "" -#: apt-pkg/depcache.cc:91 +#: apt-pkg/depcache.cc:90 msgid "Dependency generation" msgstr "" @@ -2238,12 +2238,12 @@ msgstr "" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" -#: apt-pkg/init.cc:120 +#: apt-pkg/init.cc:122 #, c-format msgid "Packaging system '%s' is not supported" msgstr "" -#: apt-pkg/init.cc:136 +#: apt-pkg/init.cc:138 msgid "Unable to determine a suitable packaging system type" msgstr "" -- cgit v1.2.3