diff options
111 files changed, 1416 insertions, 396 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fb85a73..528edf7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,6 +29,15 @@ test as root: - CTEST_OUTPUT_ON_FAILURE=1 ninja -C build test - unbuffer ./test/integration/run-tests -q -j 4 +test solver3: + stage: test + variables: + APT_CMAKE_BUILD_OPTIONS: '-DWITH_DOC=OFF -DUSE_NLS=OFF' + DEB_BUILD_PROFILES: 'nodoc' + script: + - CTEST_OUTPUT_ON_FAILURE=1 ninja -C build test + - unbuffer ./test/integration/run-tests -q -j 4 --solver 3.0 --skip solver3.broken + test as user: image: i386/debian:testing stage: test diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b29984..50d7884 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -206,7 +206,7 @@ endif() # Configure some variables like package, version and architecture. set(PACKAGE ${PROJECT_NAME}) set(PACKAGE_MAIL "APT Development Team <deity@lists.debian.org>") -set(PACKAGE_VERSION "2.9.3") +set(PACKAGE_VERSION "2.9.4") string(REGEX MATCH "^[0-9.]+" PROJECT_VERSION ${PACKAGE_VERSION}) if (NOT DEFINED DPKG_DATADIR) diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 9177d54..13e8fd0 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -635,63 +635,60 @@ const char *debListParser::ParseDepends(const char *Start, const char *Stop, // Skip whitespace for (;I != Stop && isspace_ascii(*I) != 0; I++); - if (unlikely(ParseArchFlags == true)) + // Parse architecture restrictions + if (ParseArchFlags && I != Stop && *I == '[') { + for (++I; I != Stop && isspace_ascii(*I) != 0 && *I != ']'; ++I); + // malformed + if (unlikely(I == Stop || *I == ']')) + return 0; + APT::CacheFilter::PackageArchitectureMatchesSpecification matchesArch(Arch, false); - // Parse an architecture - if (I != Stop && *I == '[') + bool Found = false; + bool NegArch = false; + while (I < Stop && *I != ']') { - ++I; - // malformed - if (unlikely(I == Stop)) - return 0; - + // look for whitespace or ending ']' to end current Arch const char *End = I; - bool Found = false; - bool NegArch = false; - while (I != Stop) - { - // look for whitespace or ending ']' - for (;End != Stop && !isspace_ascii(*End) && *End != ']'; ++End); - - if (unlikely(End == Stop)) - return 0; - - if (*I == '!') - { - NegArch = true; - ++I; - } - - std::string const arch(I, End); - if (arch.empty() == false && matchesArch(arch.c_str()) == true) - { - Found = true; - if (I[-1] != '!') - NegArch = false; - // we found a match, so fast-forward to the end of the wildcards - for (; End != Stop && *End != ']'; ++End); - } + for (;End < Stop && isspace_ascii(*End) == 0 && *End != ']'; ++End); - if (*End++ == ']') { - I = End; - break; - } + if (unlikely(End >= Stop)) + return 0; - I = End; - for (;I != Stop && isspace_ascii(*I) != 0; I++); + bool CurNegArch = false; + if (*I == '!') + { + NegArch = true; + CurNegArch = true; + ++I; } - if (NegArch == true) - Found = !Found; + if (I >= End) + return 0; + std::string const arch(I, End); + if (matchesArch(arch.c_str())) + { + Found = true; + if (not CurNegArch) + NegArch = false; + // we found a match, so fast-forward to the end of the wildcards + for (; End < Stop && *End != ']'; ++End); + } + else + for (; End < Stop && isspace_ascii(*End) != 0; ++End); - if (Found == false) - Package = ""; /* not for this arch */ + I = End; } + if (NegArch == true) + Found = not Found; + + if (Found == false) + Package = ""; /* not for this arch */ + // Skip whitespace - for (;I != Stop && isspace_ascii(*I) != 0; I++); + for (++I; I < Stop && isspace_ascii(*I) != 0; ++I); } if (unlikely(ParseRestrictionsList == true)) diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 72cbf8d..4e8f522 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -2455,6 +2455,25 @@ static bool MarkPackage(pkgCache::PkgIterator const &Pkg, if (not unsatisfied_choice) fullyExplored[T->ID] = true; + + // do not follow newly installed providers if we have already installed providers + if (providers_by_source.size() >= 2) + { + if (std::any_of(providers_by_source.begin(), providers_by_source.end(), [](auto const PV) { + return std::any_of(PV.second.begin(), PV.second.end(), [](auto const &Prv) { + auto const PP = Prv.ParentPkg(); + return not PP.end() && PP->CurrentVer != 0; + });})) + { + for (auto &providers : providers_by_source) + providers.second.erase(std::remove_if(providers.second.begin(), providers.second.end(), + [](auto const &Prv) { + auto const PP = Prv.ParentPkg(); + return not PP.end() && PP->CurrentVer == 0; + }), providers.second.end()); + } + } + for (auto const &providers : providers_by_source) { for (auto const &PV : providers.second) diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc index 5894008..0ffde46 100644 --- a/apt-pkg/edsp.cc +++ b/apt-pkg/edsp.cc @@ -770,13 +770,22 @@ bool EDSP::ResolveExternal(const char* const solver, pkgDepCache &Cache, { APT::Solver s(Cache.GetCache(), Cache.GetPolicy()); FileFd output; - if (not s.FromDepCache(Cache)) - return false; - if (not s.Solve()) - return false; - if (not s.ToDepCache(Cache)) - return false; - return true; + bool res = true; + if (Progress != NULL) + Progress->OverallProgress(0, 100, 1, _config->FindB("APT::Solver::Upgrade") ? _("Calculating upgrade") : _("Solving dependencies")); + if (res && not s.FromDepCache(Cache)) + res = false; + if (Progress != NULL) + Progress->Progress(10); + if (res && not s.Solve()) + res = false; + if (Progress != NULL) + Progress->Progress(90); + if (res && not s.ToDepCache(Cache)) + res = false; + if (Progress != NULL) + Progress->Done(); + return res; } if (strcmp(solver, "internal") == 0) { diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 5047561..981d360 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -1637,6 +1637,10 @@ static DynamicMMap* CreateDynamicMMap(FileFd * const CacheF, unsigned long Flags static bool writeBackMMapToFile(pkgCacheGenerator * const Gen, DynamicMMap * const Map, std::string const &FileName) { + // Do not write the file back to /dev/null or try to change its mode... + if (FileName == "/dev/null") + return true; + FileFd SCacheF(FileName, FileFd::WriteAtomic); if (SCacheF.IsOpen() == false || SCacheF.Failed()) return false; diff --git a/apt-pkg/solver3.cc b/apt-pkg/solver3.cc index d43bd5b..9831f7e 100644 --- a/apt-pkg/solver3.cc +++ b/apt-pkg/solver3.cc @@ -46,8 +46,15 @@ struct CompareProviders3 /*{{{*/ { if (AV == BV) return false; - if (not upgrade && A->CurrentVer != 0 && A.CurrentVer() == AV) - return true; + // The current version should win, unless we are upgrading and the other is the + // candidate. + // If AV is the current version, AV only wins on upgrades if BV is not the candidate. + if (A.CurrentVer() == AV) + return upgrade ? Policy.GetCandidateVer(A) != BV : true; + // If BV is the current version, AV only wins on upgrades if it is the candidate. + if (A.CurrentVer() == BV) + return upgrade ? Policy.GetCandidateVer(A) == AV : false; + // If neither are the current version, order them by priority. if (Policy.GetPriority(AV) < Policy.GetPriority(BV)) return false; @@ -182,6 +189,8 @@ bool APT::Solver::Work::operator<(APT::Solver::Work const &b) const return std::any_of(solutions.begin(), solutions.end(), [b](auto sol) -> bool { return std::find(b.solutions.begin(), b.solutions.end(), sol) != b.solutions.end(); }); } + if (optional && b.optional && reason.empty() != b.reason.empty()) + return reason.empty(); // An optional item is less important than a required one. if (optional != b.optional) return optional; @@ -281,7 +290,7 @@ bool APT::Solver::Install(pkgCache::PkgIterator Pkg, Reason reason) for (auto ver = Pkg.VersionList(); not ver.end(); ver++) if (IsAllowedVersion(ver)) workItem.solutions.push_back(ver); - std::sort(workItem.solutions.begin(), workItem.solutions.end(), CompareProviders3{cache, policy, Pkg}); + std::stable_sort(workItem.solutions.begin(), workItem.solutions.end(), CompareProviders3{cache, policy, Pkg}); assert(workItem.solutions.size() > 0); if (workItem.solutions.size() > 1 || workItem.optional) @@ -341,8 +350,6 @@ bool APT::Solver::Install(pkgCache::VerIterator Ver, Reason reason) pkgCache::DepIterator end; dep.GlobOr(start, end); // advances dep - if (not policy.IsImportantDep(start)) - continue; if (not EnqueueOrGroup(start, end, Reason(Ver))) return false; } @@ -445,8 +452,6 @@ bool APT::Solver::EnqueueCommonDependencies(pkgCache::PkgIterator Pkg) } if (not allHaveDep) continue; - if (not policy.IsImportantDep(start)) - continue; if (not EnqueueOrGroup(start, end, Reason(Pkg))) return false; } @@ -460,6 +465,11 @@ bool APT::Solver::EnqueueOrGroup(pkgCache::DepIterator start, pkgCache::DepItera auto Ver = start.ParentVer(); auto fixPolicy = _config->FindB("APT::Get::Fix-Policy-Broken"); + // Non-important dependencies can only be installed if they are currently satisfied, see the check further + // below once we have calculated all possible solutions. + if (start.ParentPkg()->CurrentVer == 0 && not policy.IsImportantDep(start)) + return true; + if (unlikely(debug >= 3)) std::cerr << "Found dependency critical " << Ver.ParentPkg().FullName() << "=" << Ver.VerStr() << " -> " << start.TargetPkg().FullName() << "\n"; @@ -496,7 +506,7 @@ bool APT::Solver::EnqueueOrGroup(pkgCache::DepIterator start, pkgCache::DepItera // FIXME: This is not really true, though, we should fix the CompareProviders to ignore the // installed state if (fixPolicy) - std::sort(workItem.solutions.begin() + begin, workItem.solutions.end(), CompareProviders3{cache, policy, TgtPkg}); + std::stable_sort(workItem.solutions.begin() + begin, workItem.solutions.end(), CompareProviders3{cache, policy, TgtPkg}); if (start == end) break; @@ -504,34 +514,59 @@ bool APT::Solver::EnqueueOrGroup(pkgCache::DepIterator start, pkgCache::DepItera } while (1); if (not fixPolicy) - std::sort(workItem.solutions.begin(), workItem.solutions.end(), CompareProviders3{cache, policy, TgtPkg}); - - // Figure out if the reason is installed - bool reasonInstalled = false; - if (auto p = workItem.reason.Pkg()) - reasonInstalled = pkgCache::PkgIterator(cache, cache.PkgP + p)->CurrentVer != 0; - else if (auto v = workItem.reason.Ver()) - reasonInstalled = pkgCache::VerIterator(cache, cache.VerP + v).ParentPkg()->CurrentVer != 0; + std::stable_sort(workItem.solutions.begin(), workItem.solutions.end(), CompareProviders3{cache, policy, TgtPkg}); // Try to perserve satisfied Recommends. FIXME: We should check if the Recommends was there in the installed version? - if (workItem.optional && reasonInstalled && not fixPolicy && - not std::any_of(workItem.solutions.begin(), workItem.solutions.end(), [this](auto ver) - { return pkgCache::VerIterator(cache, ver).ParentPkg()->CurrentVer != 0; })) + if (workItem.optional && start.ParentPkg()->CurrentVer) { - if (unlikely(debug >= 3)) + bool important = policy.IsImportantDep(start); + bool newOptional = true; + bool wasImportant = false; + for (auto D = start.ParentPkg().CurrentVer().DependsList(); not D.end(); D++) + if (not D.IsCritical() && not D.IsNegative() && D.TargetPkg() == start.TargetPkg()) + newOptional = false, wasImportant = policy.IsImportantDep(D); + + bool satisfied = std::any_of(workItem.solutions.begin(), workItem.solutions.end(), [this](auto ver) + { return pkgCache::VerIterator(cache, ver).ParentPkg()->CurrentVer != 0; }); + + if (important && wasImportant && not newOptional && not satisfied) { - std::cerr << "Ignoring currently unsatisfied Recommends "; - workItem.Dump(cache); - std::cerr << "\n"; + if (unlikely(debug >= 3)) + { + std::cerr << "Ignoring unsatisfied Recommends "; + workItem.Dump(cache); + std::cerr << "\n"; + } + return true; + } + if (not important && not wasImportant && not newOptional && satisfied) + { + if (unlikely(debug >= 3)) + { + std::cerr << "Promoting satisfied Suggests to Recommends: "; + workItem.Dump(cache); + std::cerr << "\n"; + } + important = true; + } + if (not important) + { + if (unlikely(debug >= 3)) + { + std::cerr << "Ignoring Suggests "; + workItem.Dump(cache); + std::cerr << "\n"; + } + return true; } - return true; } + if (not workItem.solutions.empty()) { - // std::sort(workItem.solutions.begin(), workItem.solutions.end(), CompareProviders3{cache, TgtPkg}); + // std::stable_sort(workItem.solutions.begin(), workItem.solutions.end(), CompareProviders3{cache, TgtPkg}); if (unlikely(debug >= 3 && workItem.optional)) { - std::cerr << "Enqueuing currently satisfied Recommends "; + std::cerr << "Enqueuing Recommends "; workItem.Dump(cache); std::cerr << "\n"; } @@ -675,7 +710,7 @@ bool APT::Solver::Pop() if (w.depth > depth) // Deeper decision level is no longer valid. return true; // This item is still solved, keep it on the solved list. - if (not std::any_of(w.solutions.begin(), w.solutions.end(), [this](auto ver) + if (std::any_of(w.solutions.begin(), w.solutions.end(), [this](auto ver) { return (*this)[ver].decision == Decision::MUST; })) return false; // We are not longer solved, move it back to work. @@ -853,6 +888,7 @@ bool APT::Solver::FromDepCache(pkgDepCache &depcache) bool KeepAuto = not _config->FindB("APT::Get::AutomaticRemove"); bool AllowRemove = _config->FindB("APT::Solver::Remove", true); bool AllowInstall = _config->FindB("APT::Solver::Install", true); + bool AllowRemoveManual = _config->FindB("APT::Solver::RemoveManual", false); DefaultRootSetFunc2 rootSet(&cache); for (auto P = cache.PkgBegin(); not P.end(); P++) @@ -863,6 +899,8 @@ bool APT::Solver::FromDepCache(pkgDepCache &depcache) auto state = depcache[P]; auto maybeInstall = state.Install() || (state.Keep() && P->CurrentVer); auto reject = state.Delete() || (depcache[P].Keep() && not P->CurrentVer && depcache[P].Protect()); + auto isAuto = (depcache[P].Flags & pkgCache::Flag::Auto); + auto isOptional = isAuto || (AllowRemoveManual && not depcache[P].Protect()); if (P->SelectedState == pkgCache::State::Hold && not state.Protect()) { if (unlikely(debug >= 1)) @@ -884,14 +922,14 @@ bool APT::Solver::FromDepCache(pkgDepCache &depcache) if (depcache[P].Keep() ? not Install(P, {}) : not Install(depcache.GetCandidateVersion(P), {})) return false; } - else if (maybeInstall && not(depcache[P].Flags & pkgCache::Flag::Auto)) + else if (maybeInstall && not isOptional) { if (unlikely(debug >= 1)) std::cerr << "MANUAL " << P.FullName() << "\n"; if (depcache[P].Keep() ? not Install(P, {}) : not Install(depcache.GetCandidateVersion(P), {})) return false; } - else if (maybeInstall && (KeepAuto || rootSet.InRootSet(P)) && (depcache[P].Flags & pkgCache::Flag::Auto)) + else if (maybeInstall && isOptional && (KeepAuto || rootSet.InRootSet(P) || not isAuto)) { auto Upgrade = depcache.GetCandidateVersion(P) != P.CurrentVer(); if (unlikely(debug >= 1)) @@ -908,7 +946,7 @@ bool APT::Solver::FromDepCache(pkgDepCache &depcache) for (auto V = P.VersionList(); not V.end(); ++V) if (IsAllowedVersion(V)) w.solutions.push_back(V); - std::sort(w.solutions.begin(), w.solutions.end(), CompareProviders3{cache, policy, P}); + std::stable_sort(w.solutions.begin(), w.solutions.end(), CompareProviders3{cache, policy, P}); AddWork(std::move(w)); } } @@ -949,7 +987,7 @@ bool APT::Solver::ToDepCache(pkgDepCache &depcache) depcache[P].Marked = 1; depcache[P].Garbage = 0; } - else if (P->CurrentVer) + else if (P->CurrentVer || depcache[P].Install()) { depcache.MarkDelete(P, false, 0, (*this)[P].reason.empty()); depcache[P].Marked = 0; diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index 4f71f18..599caac 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -658,6 +658,24 @@ bool DoAutomaticRemove(CacheFile &Cache) if (not Cache->VS().CheckDep(PVerStr, R->CompareOp, R.TargetVer())) continue; } + // ignore new providers if we have installed providers + if (Pkg->CurrentVer == 0) + { + std::unique_ptr<pkgCache::Version *[]> VList(R.AllTargets()); + bool has_installed_alt_prov = false; + for (pkgCache::Version **V = VList.get(); *V != 0; ++V) + { + pkgCache::VerIterator Ver(Cache, *V); + auto const P = Ver.ParentPkg(); + if (not P.end() && P->CurrentVer != 0 && Cache[P].InstallVer == *V) + { + has_installed_alt_prov = true; + break; + } + } + if (has_installed_alt_prov) + continue; + } if (Debug == true) std::clog << "Save " << APT::PrettyPkg(Cache, Pkg) << " as another installed package depends on it: " << APT::PrettyPkg(Cache, RP) << std::endl; Cache->MarkInstall(Pkg, false, 0, false); diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent index aef0c3e..c462ecd 100644 --- a/doc/apt-verbatim.ent +++ b/doc/apt-verbatim.ent @@ -274,7 +274,7 @@ "> <!-- this will be updated by 'prepare-release' --> -<!ENTITY apt-product-version "2.9.3"> +<!ENTITY apt-product-version "2.9.4"> <!-- (Code)names for various things used all over the place --> <!ENTITY debian-oldstable-codename "bullseye"> diff --git a/doc/examples/configure-index b/doc/examples/configure-index index c27a8f8..6bcf8e3 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -724,6 +724,7 @@ apt::solver::strict-pinning "<BOOL>"; apt::solver::enqueue-common-dependencies "<BOOL>"; apt::solver::upgrade "<BOOL>"; apt::solver::remove "<BOOL>"; +apt::solver::removemanual "<BOOL>"; apt::solver::install "<BOOL>"; apt::keep-downloaded-packages "<BOOL>"; apt::solver "<STRING>"; diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot index 2578224..aab31f7 100644 --- a/doc/po/apt-doc.pot +++ b/doc/po/apt-doc.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt-doc 2.9.3\n" +"Project-Id-Version: apt-doc 2.9.4\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-05-14 11:16+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\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" diff --git a/po/apt-all.pot b/po/apt-all.pot index 938b6d3..bafe73e 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt 2.9.3\n" +"Project-Id-Version: apt 2.9.4\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-05-14 11:16+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\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" @@ -1232,6 +1232,14 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "" + +#: apt-pkg/edsp.cc +msgid "Solving dependencies" +msgstr "" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1521,10 +1529,6 @@ msgid "" "used instead." msgstr "" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2006-10-20 21:28+0300\n" "Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n" "Language-Team: Arabic <support@arabeyes.org>\n" @@ -1253,6 +1253,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Øساب الترقية" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "مجموع المعتمدات:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1542,10 +1552,6 @@ msgid "" "used instead." msgstr "" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Øساب الترقية" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.7.18\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2010-10-02 23:35+0100\n" "Last-Translator: Iñigo Varela <ivarela@softastur.org>\n" "Language-Team: Asturian (ast)\n" @@ -1292,6 +1292,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Calculando l'anovamientu" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Dependencies totales: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1596,10 +1606,6 @@ msgstr "" "Nun pudieron descargase dellos ficheros d'Ãndiz; inoráronse o usáronse los " "antiguos nel so llugar." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Calculando l'anovamientu" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.7.21\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2012-06-25 17:23+0300\n" "Last-Translator: Damyan Ivanov <dmn@debian.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" @@ -1321,6 +1321,16 @@ msgstr "" "Външната програма за удовлетворÑване на завиÑимоÑти Ñе провали без да изведе " "Ñъобщение за грешка" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "ИзчиÑлÑване на актуализациÑта" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Общо завиÑимоÑти: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "ИзпълнÑване на външна програма за удовлетворÑване на завиÑимоÑти" @@ -1633,10 +1643,6 @@ msgstr "" "ÐÑкои индекÑни файлове не можаха да бъдат изтеглени. Те Ñа пренебрегнати или " "Ñа използвани по-Ñтари." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "ИзчиÑлÑване на актуализациÑта" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2004-05-06 15:25+0100\n" "Last-Translator: Safir Å ećerović <sapphire@linux.org.ba>\n" "Language-Team: Bosnian <lokal@lugbih.org>\n" @@ -1247,6 +1247,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "RaÄunam nadogradnju" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Ukupno zavisnosti:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1537,10 +1547,6 @@ msgid "" "used instead." msgstr "" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "RaÄunam nadogradnju" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.4~beta1\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2020-08-09 22:43+0200\n" "Last-Translator: Aleix Vidal i Gaya <aleix@softcatala.org>\n" "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n" @@ -1347,6 +1347,16 @@ msgstr "Prepara per a rebre una solució" msgid "External solver failed without a proper error message" msgstr "El solucionador extern ha fallat sense un missatge d'error adequat" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "S'està calculant l'actualització" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Nombre total de dependències: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Executa un solucionador extern" @@ -1663,10 +1673,6 @@ msgstr "" "Alguns fitxers d'Ãndex no s'han pogut baixar. S'han omès, o en el seu lloc " "s'han emprat els antics." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "S'està calculant l'actualització" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.9.0\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2024-04-13 22:12+0200\n" "Last-Translator: Miroslav Kure <kurem@debian.cz>\n" "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n" @@ -1308,6 +1308,16 @@ msgstr "PÅ™Ãprava na obdrženà řeÅ¡enÃ" msgid "External solver failed without a proper error message" msgstr "Externà řeÅ¡itel selhal, aniž by zanechal rozumnou chybovou hlášku" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "PropoÄÃtává se aktualizace" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Installing dependencies:" +msgid "Solving dependencies" +msgstr "Instalace závislostÃ:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "SpuÅ¡tÄ›nà externÃho Å™eÅ¡itele" @@ -1607,10 +1617,6 @@ msgstr "" "NÄ›které indexové soubory se nepodaÅ™ilo stáhnout. Jsou ignorovány, nebo jsou " "použity starÅ¡Ã verze." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "PropoÄÃtává se aktualizace" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2005-06-06 13:46+0100\n" "Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n" "Language-Team: Welsh <cy@pengwyn.linux.org.uk>\n" @@ -1276,6 +1276,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +#, fuzzy +msgid "Calculating upgrade" +msgstr "Yn Cyfrifo'r Uwchraddiad" + +#: apt-pkg/edsp.cc +#, fuzzy +msgid "Solving dependencies" +msgstr "Cyfanswm Dibyniaethau: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1584,11 +1594,6 @@ msgstr "" "Methwodd rhai ffeiliau mynegai lawrlwytho: maent wedi eu anwybyddu, neu hen " "rai eu defnyddio yn lle." -#: apt-pkg/upgrade.cc -#, fuzzy -msgid "Calculating upgrade" -msgstr "Yn Cyfrifo'r Uwchraddiad" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.4~rc2\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2017-03-02 23:51+0200\n" "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n" "Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n" @@ -1329,6 +1329,16 @@ msgstr "Forbered for modtagelse af løsning" msgid "External solver failed without a proper error message" msgstr "Ekstern problemløser fejlede uden en korrekt fejlbesked" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Beregner opgraderingen" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Sammenlagt afhængigheder: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Kør ekstern problemløser" @@ -1634,10 +1644,6 @@ msgstr "" "Nogle indeksfiler kunne ikke hentes. De er blevet ignoreret eller de gamle " "bruges i stedet." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Beregner opgraderingen" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.7.2\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2023-07-17 19:13+0200\n" "Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" @@ -1374,6 +1374,16 @@ msgstr "Vorbereiten, eine Lösung zu erhalten" msgid "External solver failed without a proper error message" msgstr "Externer Problemlöser ohne ordnungsgemäße Fehlermeldung fehlgeschlagen" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Paketaktualisierung (Upgrade) wird berechnet" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Gesamtzahl an Abhängigkeiten: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Externen Problemlöser ausführen" @@ -1693,10 +1703,6 @@ msgstr "" "Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden " "ignoriert oder alte an ihrer Stelle benutzt." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Paketaktualisierung (Upgrade) wird berechnet" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2006-09-19 09:49+0530\n" "Last-Translator: Kinley Tshering <gasepkuenden2k3@hotmail.com>\n" "Language-Team: Dzongkha <pgeyleg@dit.gov.bt>\n" @@ -1259,6 +1259,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "ཡར་བསà¾à¾±à½ºà½‘་རྩིས་བà½à½¼à½“་དོ་" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "རྟེན་འབྲེལ་བསྡོམས:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1562,10 +1572,6 @@ msgstr "" "ཟུར་à½à½¼à¼‹à½¡à½²à½‚་སྣོད་ལ་ལུ་ཅིག་ཕབ་ལེན་འབད་ནི་ལུ་འà½à½´à½¦à¼‹à½¤à½¼à½¢à¼‹à½–ྱུང་ནུག་ འདི་ཚུ་སྣང་མེད་སྦེ་བཞགཔ་མ་ཚད་ ཚབ་ལུ་" "རྙིངམ་འདི་ཚུ་ལག་ལེན་འà½à½–་ནུག" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "ཡར་བསà¾à¾±à½ºà½‘་རྩིས་བà½à½¼à½“་དོ་" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2020-12-30 12:20+0200\n" "Last-Translator: Vangelis Skarmoutsos <skarmoutsosv@gmail.com>\n" "Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n" @@ -1278,6 +1278,16 @@ msgstr "Î Ïοετοιμασία για λήψη λÏσης" msgid "External solver failed without a proper error message" msgstr "Ο εξωτεÏικός solver απÎτυχε χωÏίς κανονικό μήνυμα σφάλματος" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Υπολογισμός της αναβάθμισης" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "ΣÏνολο ΕξαÏτήσεων: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "ΕκτÎλεση εξωτεÏÎ¹ÎºÎ¿Ï solver" @@ -1579,10 +1589,6 @@ msgstr "" "ΜεÏικά αÏχεία index απÎτυχαν να ληφθοÏν. Είτε αγνοήθηκαν ή χÏησιμοποιήθηκαν " "παλαιότεÏα στη θÎση τους." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Υπολογισμός της αναβάθμισης" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -37,7 +37,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.8.10\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2016-01-26 01:51+0100\n" "Last-Translator: Manuel \"Venturi\" Porras Peralta <venturi@openmailbox." "org>\n" @@ -1425,6 +1425,16 @@ msgstr "Preparar para recibir una solución" msgid "External solver failed without a proper error message" msgstr "Falló solucionador externo sin un mensaje de error apropiado" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Calculando la actualización" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Dependencias totales: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Ejecutar solucionador externo" @@ -1738,10 +1748,6 @@ msgstr "" "No se han podido descargar algunos archivos de Ãndice, se han omitido, o se " "han utilizado unos antiguos en su lugar." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Calculando la actualización" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2009-05-17 00:41+0200\n" "Last-Translator: Piarres Beobide <pi@beobide.net>\n" "Language-Team: Euskara <debian-l10n-basque@lists.debian.org>\n" @@ -1261,6 +1261,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Berriketak kalkulatzen" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Dependentziak Guztira: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1561,10 +1571,6 @@ msgstr "" "Indize fitxategi batzuk ezin izan dira deskargatu; ez ikusi egin zaie, edo " "zaharrak erabili dira haien ordez." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Berriketak kalkulatzen" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2008-12-11 14:52+0200\n" "Last-Translator: Tapio Lehtonen <tale@debian.org>\n" "Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n" @@ -1256,6 +1256,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Käsitellään päivitystä" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Riippuvuuksia yhteensä: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1557,10 +1567,6 @@ msgstr "" "Joidenkin hakemistotiedostojen nouto ei onnistunut, ne on ohitettu tai " "käytetty vanhoja. " -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Käsitellään päivitystä" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2019-01-21 09:19+0100\n" "Last-Translator: Julien Patriarca <leatherface@debian.org>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\n" @@ -1370,6 +1370,16 @@ msgstr "Préparation à la réception de la solution" msgid "External solver failed without a proper error message" msgstr "Échec du solveur externe sans message d'erreur adapté" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Calcul de la mise à jour" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Nombre de dépendances : " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Exécution du solveur externe" @@ -1694,10 +1704,6 @@ msgstr "" "Le téléchargement de quelques fichiers d'index a échoué, ils ont été " "ignorés, ou les anciens ont été utilisés à la place." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Calcul de la mise à jour" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2011-05-12 15:28+0100\n" "Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n" "Language-Team: galician <proxecto@trasno.net>\n" @@ -1316,6 +1316,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Calculando a anovación" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Número total de dependencias: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1621,10 +1631,6 @@ msgstr "" "Algúns ficheiros de Ãndice fallaron durante a descarga. Ignoráronse, ou " "foron utilizados algúns antigos no seu lugar" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Calculando a anovación" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2016-04-10 19:46+0200\n" "Last-Translator: Gabor Kelemen <kelemeng@ubuntu.com>\n" "Language-Team: Hungarian <gnome-hu-list@gnome.org>\n" @@ -1354,6 +1354,16 @@ msgstr "Felkészülés megoldás fogadására" msgid "External solver failed without a proper error message" msgstr "A külsÅ‘ solver megfelelÅ‘ hibaüzenet nélkül hibázott" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "FrissÃtés kiszámÃtása" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "FüggÅ‘ségek összesen: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "KülsÅ‘ solver végrehajtása" @@ -1660,10 +1670,6 @@ msgstr "" "Néhány indexfájlt nem sikerült letölteni. Figyelmen kÃvül lettek hagyva, " "vagy régebbiek lettek felhasználva." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "FrissÃtés kiszámÃtása" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2019-03-04 11:05+0100\n" "Last-Translator: Milo Casagrande <milo@milo.name>\n" "Language-Team: Italian <tp@lists.linux.it>\n" @@ -1366,6 +1366,16 @@ msgstr "Preparazione alla ricezione della soluzione" msgid "External solver failed without a proper error message" msgstr "Il solver esterno è terminato senza un messaggio di errore" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Calcolo dell'aggiornamento" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Totale dipendenze: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Esecuzione solver esterno" @@ -1680,10 +1690,6 @@ msgstr "" "Impossibile scaricare alcuni file di indice: saranno ignorati o verranno " "usati quelli vecchi." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Calcolo dell'aggiornamento" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2022-08-14 14:30+0900\n" "Last-Translator: Hideki Yamane <henrich@debian.org>\n" "Language-Team: Japanese <debian-japanese@lists.debian.org>\n" @@ -1347,6 +1347,16 @@ msgstr "解決をå—ã‘å–る準備" msgid "External solver failed without a proper error message" msgstr "外部ソルãƒãŒé©åˆ‡ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãªã—ã«å¤±æ•—ã—ã¾ã—ãŸ" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "アップグレードパッケージを検出ã—ã¦ã„ã¾ã™" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "ä¾å˜é–¢ä¿‚ç·æ•°: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "外部ソルãƒã‚’実行" @@ -1652,10 +1662,6 @@ msgstr "" "ã„ãã¤ã‹ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã“れらã¯ç„¡è¦–ã•ã‚Œ" "ã‚‹ã‹ã€å¤ã„ã‚‚ã®ãŒä»£ã‚ã‚Šã«ä½¿ã‚ã‚Œã¾ã™ã€‚" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "アップグレードパッケージを検出ã—ã¦ã„ã¾ã™" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2006-10-10 09:48+0700\n" "Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n" "Language-Team: Khmer <support@khmeros.info>\n" @@ -1259,6 +1259,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "កំពុង​គណនា​ការ​ធ្វើ​ឲ្យ​ប្រសើរ" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "ភាព​អាស្រáŸáž™â€‹ážŸážšáž»áž” ៖ " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1557,10 +1567,6 @@ msgid "" msgstr "" "ឯកសារ​លិបិក្រម​មួយ​ចំនួន​បាន​បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​​ទាញ​យក ​ពួកវាážáŸ’រូវបាន​មិន​អើពើ​ ឬ ប្រើ​​ឯកសារ​ចាស់​ជំនួសវិញ ​​។" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "កំពុង​គណនា​ការ​ធ្វើ​ឲ្យ​ប្រសើរ" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2010-08-30 02:31+0900\n" "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" "Language-Team: Korean <debian-l10n-korean@lists.debian.org>\n" @@ -1272,6 +1272,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "ì—…ê·¸ë ˆì´ë“œë¥¼ 계산하는 중입니다" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "ì „ì²´ ì˜ì¡´ì„±: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1572,10 +1582,6 @@ msgstr "" "ì¼ë¶€ ì¸ë±ìŠ¤ 파ì¼ì„ ë‹¤ìš´ë¡œë“œí•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 해당 파ì¼ì„ 무시하거나 과거" "ì˜ ë²„ì „ì„ ëŒ€ì‹ ì‚¬ìš©í•©ë‹ˆë‹¤." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "ì—…ê·¸ë ˆì´ë“œë¥¼ 계산하는 중입니다" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2008-05-08 12:48+0200\n" "Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n" "Language-Team: ku <ubuntu-l10n-kur@lists.ubuntu.com>\n" @@ -1243,6 +1243,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Bilindkirin tê hesibandin" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Bindestên giÅŸtî:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1532,10 +1542,6 @@ msgid "" "used instead." msgstr "" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Bilindkirin tê hesibandin" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2008-08-02 01:47-0400\n" "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n" "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n" @@ -1252,6 +1252,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "SkaiÄiuojami atnaujinimai" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Viso priklausomybių: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1544,10 +1554,6 @@ msgstr "" "Kai kurių indeksų failų nepavyko parsiųsti, jie buvo ignoruoti arba vietoje " "jų panaudoti seni." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "SkaiÄiuojami atnaujinimai" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2008-11-20 23:27+0530\n" "Last-Translator: Sampada <sampadanakhare@gmail.com>\n" "Language-Team: Marathi, janabhaaratii, C-DAC, Mumbai, India " @@ -1255,6 +1255,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "पà¥à¤¢à¤¿à¤² आवृतà¥à¤¤à¥€à¤šà¥€ गणती करीत आहे" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "à¤à¤•à¥‚ण निरà¥à¤à¤°à¤¤à¤¾:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1558,10 +1568,6 @@ msgstr "" "काही अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾ संचयिका डाऊनलोड करणà¥à¤¯à¤¾à¤¸ असमरà¥à¤¥,तà¥à¤¯à¤¾ दà¥à¤°à¥à¤²à¤•à¥à¤·à¤¿à¤¤ à¤à¤¾à¤²à¥à¤¯à¤¾, किंवा " "तà¥à¤¯à¤¾à¤à¤µà¤œà¥€ जà¥à¤¨à¥à¤¯à¤¾ वापरलà¥à¤¯à¤¾ गेलà¥à¤¯à¤¾." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "पà¥à¤¢à¤¿à¤² आवृतà¥à¤¤à¥€à¤šà¥€ गणती करीत आहे" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2018-10-30 20:53+0100\n" "Last-Translator: Petter Reinholdtsen <pere@hungry.com>\n" "Language-Team: Norwegian BokmÃ¥l <i18n-no@lister.ping.uio.no>\n" @@ -1303,6 +1303,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Beregner oppgradering" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Antall avhengighetsforhold: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1604,10 +1614,6 @@ msgstr "" "Klarte ikke Ã¥ laste ned alle oversiktfilene. De ble ignorerte, eller gamle " "ble brukt isteden. " -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Beregner oppgradering" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2006-06-12 14:35+0545\n" "Last-Translator: Shiva Pokharel <pokharelshiva@hotmail.com>\n" "Language-Team: Nepali <info@mpp.org.np>\n" @@ -1254,6 +1254,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "सà¥à¤¤à¤° वृदà¥à¤§à¤¿ गणना गरिदैछ" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "कूल निरà¥à¤à¤°à¤¤à¤¾à¤¹à¤°à¥‚:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1553,10 +1563,6 @@ msgstr "" "केही अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾ फाइलहरू डाउनलोड गरà¥à¤¨ असफल à¤à¤¯à¥‹, तिनीहरू उपेकà¥à¤·à¤¿à¤¤ à¤à¤, वा सटà¥à¤Ÿà¤¾à¤®à¤¾ पà¥à¤°à¤¾à¤¨à¥‹ " "à¤à¤‰à¤Ÿà¤¾ पà¥à¤°à¤¯à¥‹à¤— गरियो ।" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "सà¥à¤¤à¤° वृदà¥à¤§à¤¿ गणना गरिदैछ" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.9.1\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-26 20:11+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2024-04-20 20:28+0200\n" "Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n" "Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n" @@ -1364,6 +1364,16 @@ msgstr "Instellen op het ontvangen van een oplossing" msgid "External solver failed without a proper error message" msgstr "Externe oplosser faalde zonder passende foutmelding" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Opwaardering wordt doorgerekend" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Installing dependencies:" +msgid "Solving dependencies" +msgstr "Installeren van vereisten:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Externe oplosser uitvoeren" @@ -1675,10 +1685,6 @@ msgstr "" "Ophalen van sommige indexbestanden is mislukt. Deze zijn of genegeerd, of er " "zijn oudere versies van gebruikt." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Opwaardering wordt doorgerekend" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2005-02-14 23:30+0100\n" "Last-Translator: Havard Korsvoll <korsvoll@skulelinux.no>\n" "Language-Team: Norwegian nynorsk <i18n-nn@lister.ping.uio.no>\n" @@ -1262,6 +1262,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Reknar ut oppgradering" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Tal på krav: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1562,10 +1572,6 @@ msgstr "" "Klarte ikkje lasta ned nokre av indeksfilene. Dei er ignorerte, eller gamle " "filer er brukte i staden." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Reknar ut oppgradering" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.9.7.3\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2012-07-28 21:53+0200\n" "Last-Translator: MichaÅ‚ KuÅ‚ach <michal.kulach@gmail.com>\n" "Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n" @@ -1322,6 +1322,16 @@ msgstr "" "ZewnÄ™trzny mechanizm rozwiÄ…zywania zależnoÅ›ci zawiódÅ‚, bez podania " "prawidÅ‚owego komunikatu o bÅ‚Ä™dzie" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Obliczanie aktualizacji" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "W sumie zależnoÅ›ci: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Wykonywanie zewnÄ™trznego mechanizmu rozwiÄ…zywania zależnoÅ›ci" @@ -1631,10 +1641,6 @@ msgstr "" "Nie udaÅ‚o siÄ™ pobrać niektórych plików indeksu, zostaÅ‚y one zignorowane lub " "użyto ich starszej wersji." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Obliczanie aktualizacji" - # Ujednolicono z aptitude #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2012-06-29 15:45+0100\n" "Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n" "Language-Team: Portuguese <traduz@debianpt.org>\n" @@ -1322,6 +1322,16 @@ msgstr "Preparar para receber solução" msgid "External solver failed without a proper error message" msgstr "O resolvedor externo falhou sem uma mensagem de erro adequada" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "A calcular a actualização" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Total de dependências: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Executar resolvedor externo" @@ -1636,10 +1646,6 @@ msgstr "" "Falhou o download de alguns ficheiros de Ãndice. Foram ignorados ou os " "antigos foram usados em seu lugar." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "A calcular a actualização" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format diff --git a/po/pt_BR.po b/po/pt_BR.po index 7748ec1..2ce315b 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2008-11-17 02:33-0200\n" "Last-Translator: Felipe Augusto van de Wiel (faw) <faw@debian.org>\n" "Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian." @@ -1262,6 +1262,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Calculando atualização" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Total de dependências: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1568,10 +1578,6 @@ msgstr "" "Alguns arquivos de Ãndice falharam para baixar, eles foram ignorados ou os " "antigos foram usados no lugar." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Calculando atualização" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.7.2\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2023-07-13 19:58+0200\n" "Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n" "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n" @@ -1394,6 +1394,16 @@ msgstr "Se pregăteÈ™te pentru primirea soluÈ›iei" msgid "External solver failed without a proper error message" msgstr "SoluÈ›ionatorul extern a eÈ™uat fără un mesaj de eroare relevant" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Se calculează înnoirea" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Total dependenÈ›e: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Executarea soluÈ›ionatorului extern" @@ -1724,10 +1734,6 @@ msgstr "" "Descărcarea unor fiÈ™iere index a eÈ™uat, acestea fie au fost ignorate, fie au " "fost folosite în loc cele vechi." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Se calculează înnoirea" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.2.0\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2021-02-22 20:02+0300\n" "Last-Translator: ÐлекÑей Шилин <rootlexx@mail.ru>\n" "Language-Team: руÑÑкий <debian-l10n-russian@lists.debian.org>\n" @@ -1354,6 +1354,16 @@ msgstr "Подготовка к приёму решениÑ" msgid "External solver failed without a proper error message" msgstr "Внешний решатель завершилÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹, не передав ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибке" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "РаÑчёт обновлений" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Ð’Ñего завиÑимоÑтей: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Выполнение внешнего решателÑ" @@ -1668,10 +1678,6 @@ msgstr "" "Ðекоторые индекÑные файлы Ñкачать не удалоÑÑŒ. Они были проигнорированы, или " "вмеÑто них были иÑпользованы Ñтарые верÑии." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "РаÑчёт обновлений" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2012-06-28 20:49+0100\n" "Last-Translator: Ivan Masár <helix84@centrum.sk>\n" "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n" @@ -1293,6 +1293,16 @@ msgstr "PripraviÅ¥ sa na prijatie rieÅ¡enia" msgid "External solver failed without a proper error message" msgstr "Externý rieÅ¡iteľ zlyhal bez uvedenia chybovej správy" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "PrepoÄÃtava sa aktualizácia" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Celkom závislostÃ: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "SpustiÅ¥ externého rieÅ¡iteľa" @@ -1600,10 +1610,6 @@ msgstr "" "Niektoré indexové súbory sa nepodarilo stiahnuÅ¥. Boli ignorované alebo sa " "použili starÅ¡ie verzie." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "PrepoÄÃtava sa aktualizácia" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2012-06-27 21:29+0000\n" "Last-Translator: Andrej Znidarsic <andrej.znidarsic@gmail.com>\n" "Language-Team: Slovenian <sl@li.org>\n" @@ -1292,6 +1292,16 @@ msgstr "Priprava za reÅ¡itev prejemanja" msgid "External solver failed without a proper error message" msgstr "Zunanji reÅ¡evalnik je spodletel brez pravega sporoÄila o napakah" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "PreraÄunavanje nadgradnje" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Vseh odvisnosti: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Izvedi zunanji reÅ¡evalnik" @@ -1599,10 +1609,6 @@ msgstr "" "Prejem nekaterih datotek kazala je spodletel. Bile so prezrte ali pa so bile " "namesto njih uporabljene stare." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "PreraÄunavanje nadgradnje" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2015-08-19 21:33+0200\n" "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n" "Language-Team: Swedish <debian-l10n-swedish@debian.org>\n" @@ -1311,6 +1311,16 @@ msgstr "Förbered för att motta lösning" msgid "External solver failed without a proper error message" msgstr "Extern lösare misslyckades utan nÃ¥got informativt felmeddelande" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Beräknar uppgradering" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Totalt antal beroenden: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Kör extern lösare" @@ -1624,10 +1634,6 @@ msgstr "" "Vissa indexfiler kunde inte hämtas. De har ignorerats eller sÃ¥ har de gamla " "använts istället." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Beräknar uppgradering" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2014-12-12 13:00+0700\n" "Last-Translator: Theppitak Karoonboonyanan <thep@debian.org>\n" "Language-Team: Thai <thai-l10n@googlegroups.com>\n" @@ -1271,6 +1271,16 @@ msgstr "เตรียมรับคำตà¸à¸š" msgid "External solver failed without a proper error message" msgstr "à¸à¸¥à¹„à¸à¸à¸²à¸£à¹à¸à¹‰à¸›à¸±à¸à¸«à¸²à¸ ายนà¸à¸à¸—ำงานล้มเหลวโดยไม่มีข้à¸à¸„วามข้à¸à¸œà¸´à¸”พลาดที่เหมาะสม" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„ำนวณà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "จำนวนà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¹‚ยงระหว่างà¹à¸žà¸à¹€à¸à¸ˆà¸—ั้งหมด: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "เรียà¸à¸à¸¥à¹„à¸à¸à¸²à¸£à¹à¸à¹‰à¸›à¸±à¸à¸«à¸²à¸ ายนà¸à¸" @@ -1573,10 +1583,6 @@ msgid "" "used instead." msgstr "ดาวน์โหลดà¹à¸Ÿà¹‰à¸¡à¸”ัชนีบางà¹à¸Ÿà¹‰à¸¡à¹„ม่สำเร็จ จะข้ามรายà¸à¸²à¸£à¸”ังà¸à¸¥à¹ˆà¸²à¸§à¹„ป หรืà¸à¹ƒà¸Šà¹‰à¸‚้à¸à¸¡à¸¹à¸¥à¹€à¸à¹ˆà¸²à¹à¸—น" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„ำนวณà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸£à¸¸à¹ˆà¸™" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2007-03-29 21:36+0800\n" "Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n" "Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n" @@ -1272,6 +1272,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Sinusuri ang pag-upgrade" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Kabuuan ng mga Dependensiya: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1575,10 +1585,6 @@ msgstr "" "May mga talaksang index na hindi nakuha, sila'y di pinansin, o ginamit ang " "mga luma na lamang." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Sinusuri ang pag-upgrade" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.6.0\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2023-04-19 15:15+0300\n" "Last-Translator: Mert Dirik <mertdirik@gmail.com>\n" "Language-Team: Debian l10n Turkish <debian-l10n-turkish@lists.debian.org>\n" @@ -1335,6 +1335,16 @@ msgstr "Çözüm almak için hazırlan" msgid "External solver failed without a proper error message" msgstr "Harici çözücü düzgün bir hata iletisi göstermeden baÅŸarısız oldu" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Yükseltme hesaplanıyor" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Toplam bağımlılıklar: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Harici çözücüyü çalıştır" @@ -1637,10 +1647,6 @@ msgstr "" "Bazı indeks dosyaları indirilemedi. Bu dosyalar yok sayıldılar ya da önceki " "sürümleri kullanıldı." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Yükseltme hesaplanıyor" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2012-09-25 20:19+0300\n" "Last-Translator: A. Bondarenko <artem.brz@gmail.com>\n" "Language-Team: УкраїнÑька <uk@li.org>\n" @@ -1322,6 +1322,16 @@ msgstr "" "Зовнішній розв'Ñзувач завершивÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ без відповідного Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ " "помилку" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½ÑŒ" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Ð’Ñього залежноÑтей: " + #: apt-pkg/edsp.cc #, fuzzy msgid "Execute external solver" @@ -1631,10 +1641,6 @@ msgstr "" "ДеÑкі індекÑні файли не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸. Вони були зігноровані, або " "заміÑÑ‚ÑŒ них були викориÑтані Ñтаріші верÑÑ–Ñ—." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½ÑŒ" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.0.8\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2014-09-12 13:48+0700\n" "Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n" @@ -1308,6 +1308,16 @@ msgstr "Chuẩn bị để lấy cách giải quyết" msgid "External solver failed without a proper error message" msgstr "Bá»™ phân giải bên ngoà i gặp lá»—i mà không trả vá» thông tin lá»—i thÃch hợp" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "Äang tÃnh toán nâng cấp" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "Tổng gói phụ thuá»™c: " + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "Thi hà nh bá»™ phân giải từ bên ngoà i" @@ -1618,10 +1628,6 @@ msgstr "" "Má»™t số táºp tin chỉ mục không tải vỠđược. Chúng đã bị bá» qua, hoặc cái cÅ© đã " "được dùng thay thế." -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "Äang tÃnh toán nâng cấp" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format diff --git a/po/zh_CN.po b/po/zh_CN.po index 04de20b..d3fedb4 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 2.9.1\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2024-04-16 13:15-0400\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) <debian-l10n-chinese@lists.debian.org>\n" @@ -1270,6 +1270,16 @@ msgstr "准备接收ä¾èµ–解决方案" msgid "External solver failed without a proper error message" msgstr "外部ä¾èµ–解决器出错,错误信æ¯ä¸æ°å½“" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "æ£åœ¨è®¡ç®—æ›´æ–°" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Installing dependencies:" +msgid "Solving dependencies" +msgstr "å°†è¦å®‰è£…çš„ä¾èµ–:" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "执行外部ä¾èµ–解决器" @@ -1565,10 +1575,6 @@ msgid "" "used instead." msgstr "部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "æ£åœ¨è®¡ç®—æ›´æ–°" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format diff --git a/po/zh_TW.po b/po/zh_TW.po index a2ad262..943f86f 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.2.X\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2024-04-22 17:39+0000\n" +"POT-Creation-Date: 2024-05-25 09:01+0000\n" "PO-Revision-Date: 2009-01-28 10:41+0800\n" "Last-Translator: Tetralet <tetralet@gmail.com>\n" "Language-Team: Debian-user in Chinese [Big5] <debian-chinese-big5@lists." @@ -1255,6 +1255,16 @@ msgstr "" msgid "External solver failed without a proper error message" msgstr "" +#: apt-pkg/edsp.cc apt-pkg/upgrade.cc +msgid "Calculating upgrade" +msgstr "籌備å‡ç´šä¸" + +#: apt-pkg/edsp.cc +#, fuzzy +#| msgid "Total dependencies: " +msgid "Solving dependencies" +msgstr "相ä¾é—œä¿‚åˆè¨ˆï¼š" + #: apt-pkg/edsp.cc msgid "Execute external solver" msgstr "" @@ -1550,10 +1560,6 @@ msgid "" "used instead." msgstr "有一些索引檔ä¸èƒ½ä¸‹è¼‰ï¼Œå®ƒå€‘å¯èƒ½è¢«ç•¥éŽäº†ï¼Œæˆ–是替而使用原有的索引檔。" -#: apt-pkg/upgrade.cc -msgid "Calculating upgrade" -msgstr "籌備å‡ç´šä¸" - #. TRANSLATOR: Very short word to be displayed before unchanged files in 'apt-get update' #: apt-private/acqprogress.cc #, c-format diff --git a/test/integration/framework b/test/integration/framework index 9cb4081..e13888d 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -19,6 +19,9 @@ while [ -n "$1" -a -z "$CHECK_ARGS" ]; do elif [ "$1" = '--level' ]; then export MSGLEVEL=$2 shift + elif [ "$1" = '--solver' ]; then + export APT_SOLVER=$2 + shift else echo >&2 "WARNING: Unknown parameter »$1« will be ignored" fi @@ -537,7 +540,10 @@ exec fakeroot gdb --quiet -ex run '${DPKG:-dpkg}' --args '${DPKG:-dpkg}' --root= EOF chmod +x "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg" "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/gdb-dpkg" echo "Dir::Bin::dpkg \"${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg\";" > rootdir/etc/apt/apt.conf.d/99dpkg - + # Set the solver for the test case. + if [ "$APT_SOLVER" ]; then + echo "APT::Solver \"$APT_SOLVER\";" >> aptconfig.conf + fi { echo 'quiet "0";' echo 'quiet::NoUpdate "true";' @@ -585,6 +591,9 @@ EOF # prefer our apt binaries over the system apt binaries export PATH="${APTCMDLINEBINDIR}:${PATH}:/usr/sbin:/sbin" } +allowremovemanual() { + echo 'APT::Solver::RemoveManual "true";' >> ${TMPWORKINGDIRECTORY}/rootdir/etc/apt/apt.conf.d/allow-remove-manual.conf +} getarchitecture() { if [ "$1" = "native" -o -z "$1" ]; then @@ -1550,12 +1559,22 @@ downloadfile() { fi } +cleanup_solver3_pipe() { + if [ "$APT_SOLVER" != "3.0" ]; then + cat + else + # FIXME: We do not have support for listing autoremovals yet. + # FIXME: Progress output is different + sed -e '/Solving dependencies\.\.\./ d' \ + -e "/no longer required[.:]$/,/^Use '.* autoremove'/ d" + fi +} cleanup_output() { cat "$1" | sed \ -e '/gpgv: WARNING: This key is not suitable for signing in --compliance=gnupg mode/ d' \ - -e '/...$/ d' \ -e '/^profiling:/ d' \ | sed -e '/\.\.\.profiling:/ {N;s#\.\.\.profiling:.*\n#...#g}' \ + | cleanup_solver3_pipe \ >"$2" } diff --git a/test/integration/run-tests b/test/integration/run-tests index c1cc780..3100e8e 100755 --- a/test/integration/run-tests +++ b/test/integration/run-tests @@ -22,6 +22,15 @@ while [ -n "$1" ]; do elif [ "$1" = '-j' ]; then APT_TEST_JOBS=$2 shift + elif [ "$1" = '--solver' ]; then + export APT_SOLVER="$2" + shift + elif [ "$1" = '--skip' ]; then + export APT_SKIP_TEST_FILE="$2" + shift + elif [ "$1" = '--only' ]; then + TESTLIST="$2" + shift elif [ -x "$1" ]; then TESTTORUN="$1" else @@ -52,14 +61,22 @@ if [ -n "$TESTTORUN" ]; then CURRENTTRAP="rm -f \"$OUTPUT\"; $CURRENTTRAP" trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM { - if [ "$MSGLEVEL" -le 1 ]; then + if [ "$APT_SKIP_TEST_FILE" ] && grep -qFx "${TESTTORUN##*/}" "$APT_SKIP_TEST_FILE"; then + if [ "$MSGLEVEL" -le 2 ]; then + printf "${CTEST}Skip Testcase ${CHIGH}${TESTTORUN##*/}${CRESET}" + else + printf "${CTEST}Skip Testcase ${CHIGH}${TESTTORUN##*/}${CRESET}\n" + fi + SKIP='yes' + elif [ "$MSGLEVEL" -le 1 ]; then printf "${TESTTORUN##*/}" elif [ "$MSGLEVEL" -le 2 ]; then printf "${CTEST}Testcase ${CHIGH}${TESTTORUN##*/}${CRESET}: " else printf "${CTEST}Run Testcase ${CHIGH}${TESTTORUN##*/}${CRESET}\n" fi - if ! "$TESTTORUN"; then + + if [ "$SKIP" != "yes" ] && ! "$TESTTORUN"; then FAIL='yes' if [ "$MSGLEVEL" -le 2 ]; then printf >&2 "\n${CHIGH}Running ${TESTTORUN##*/} -> FAILED${CRESET}\n" @@ -83,6 +100,9 @@ if [ -n "$TESTTORUN" ]; then stty sane || true cat >&2 "$OUTPUT" stty sane || true + if [ "$STATS_FILE" ]; then + flock "$STATS_FILE" -c "echo $TESTTORUN skip=${SKIP:-no} fail=${FAIL:-no} >> \"$STATS_FILE\"" + fi if [ "$FAIL" = 'yes' ]; then exit 1 else @@ -96,8 +116,15 @@ ALL=0 FAILED_TESTS="" DIR="$(readlink -f "$(dirname "$0")")" cd "$DIR" -TESTLIST="$(find . -mindepth 1 -maxdepth 1 -regex '^\./test-[^/]*$' | sort)" +if [ -e "$TESTLIST" ]; then + TESTLIST="$(sort < "$TESTLIST" | sed 's#^#./#')" +else + TESTLIST="$(find . -mindepth 1 -maxdepth 1 -regex '^\./test-[^/]*$' | sort)" +fi if [ -n "$APT_TEST_JOBS" ]; then + export STATS_FILE="$(mktemp)" + CURRENTTRAP="rm -f \"$STATS_FILE\"; $CURRENTTRAP" + trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM if [ "$MSGCOLOR" != 'NO' ]; then export MSGCOLOR='ALWAYS' fi @@ -107,7 +134,26 @@ if [ -n "$APT_TEST_JOBS" ]; then elif command -v parallel.moreutils >/dev/null 2>&1; then parallel=parallel.moreutils fi - exec $parallel -j "$APT_TEST_JOBS" "./$(basename "$0")" -- $(echo "$TESTLIST") + $parallel -j "$APT_TEST_JOBS" "./$(basename "$0")" -- $(echo "$TESTLIST") || true + ALL=$(wc -l < "$STATS_FILE") + SKIP=$(grep -c "skip=yes" "$STATS_FILE" || true) + PASS=$(grep -c "skip=no fail=no" "$STATS_FILE" || true) + FAIL=$(grep -c "fail=yes" "$STATS_FILE" || true) + PASSED_TESTS=$(awk '! /fail=yes/ {print $1}' < "$STATS_FILE" | cut -f2 -d/ | sort | xargs) + SKIPPED_TESTS=$(awk '/fail=skip/ {print $1}' < "$STATS_FILE" | cut -f2 -d/ | sort | xargs) + FAILED_TESTS=$(awk '/fail=yes/ {print $1}' < "$STATS_FILE" | cut -f2 -d/ | sort | xargs) + echo >&2 "Statistics: $ALL tests were run: $PASS successfully and $FAIL failed, $SKIP skipped" + if [ -n "$FAILED_TESTS" ]; then + if [ $PASS -lt $FAIL ]; then + echo >&2 "Passed tests: $PASSED_TESTS" + else + echo >&2 "Failed tests: $FAILED_TESTS" + fi + else + echo >&2 'All tests seem to have been run successfully. What could possibly go wrong?' + fi + # ensure we don't overflow + exit $((FAIL <= 255 ? FAIL : 255)) fi APT_TEST_SIGNINGHOME="$(mktemp --directory --tmpdir 'apt-key-signinghome.XXXXXXXXXX')" @@ -125,6 +171,10 @@ if [ "$MSGLEVEL" -le 1 ]; then printf "${CTEST}Running testcases${CRESET}: " fi for testcase in $TESTLIST; do + if [ "$APT_SKIP_TEST_FILE" ] && grep -qFx "${TESTTORUN##*/}" "$APT_SKIP_TEST_FILE"; then + printf "${CTEST}Skipping Testcase ${CHIGH}${TESTTORUN##*/}${CRESET}\n" + continue + fi if [ "$MSGLEVEL" -le 1 ]; then printf "${testcase##*/}" elif [ "$MSGLEVEL" -le 2 ]; then diff --git a/test/integration/solver3.broken b/test/integration/solver3.broken new file mode 100644 index 0000000..75ddbe5 --- /dev/null +++ b/test/integration/solver3.broken @@ -0,0 +1,32 @@ +test-allow-scores-for-all-dependency-types +test-apt-get-autoremove +test-apt-get-autoremove-kernel-module-providers +test-apt-get-upgrade-by-source +test-apt-install-file-reltag +test-apt-install-order-matters-a-bit +test-apt-move-and-forget-manual-sections +test-apt-patterns +test-apt-source-and-build-dep +test-bug-470115-new-and-tighten-recommends +test-bug-602412-dequote-redirect +test-bug-611729-mark-as-manual +test-bug-675449-essential-are-protected +test-bug-709560-set-candidate-release +test-bug-745046-candidate-propagation-fails +test-bug-753297-upgradable +test-bug-767891-force-essential-important +test-bug-961266-hold-means-hold +test-dont-forget-conflicts-via-unknown-architectures +test-explore-or-groups-in-markinstall +test-external-dependency-solver-protocol +test-method-mirror +test-parse-all-archs-into-cache +test-phased-updates-new-depends +test-phased-updates-upgrade +test-prevent-markinstall-multiarch-same-versionscrew +test-release-candidate-switching +test-resolve-by-keep-new-recommends +test-ubuntu-bug-1304403-obsolete-priority-standard +test-ubuntu-bug-1990586 +test-ubuntu-bug-2025462-phased-dist-upgrade +test-ubuntu-bug-614993 diff --git a/test/integration/test-allow-scores-for-all-dependency-types b/test/integration/test-allow-scores-for-all-dependency-types index 0a527da..0d9ec6e 100755 --- a/test/integration/test-allow-scores-for-all-dependency-types +++ b/test/integration/test-allow-scores-for-all-dependency-types @@ -42,9 +42,13 @@ setupaptarchive insertinstalledpackage 'libdb-dev' 'amd64' '5.1.7' 'Depends: libdb5.1-dev' insertinstalledpackage 'libdb5.1-dev' 'amd64' '5.1.29-7' testsuccess aptmark auto ~i -testsuccessequal 'Reading package lists... +testsuccessequal "Reading package lists... Building dependency tree... +Reading state information... Calculating upgrade... +The following packages were automatically installed and are no longer required: + libdb-dev libdb5.3-dev +Use 'apt autoremove' to remove them. The following packages will be REMOVED: libdb5.1-dev The following NEW packages will be installed: @@ -56,10 +60,14 @@ Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ] Inst libdb-dev [5.1.7] (5.3.0 unversioned [amd64]) [] Inst libdb5.3-dev (5.3.28-3 unversioned [amd64]) Conf libdb-dev (5.3.0 unversioned [amd64]) -Conf libdb5.3-dev (5.3.28-3 unversioned [amd64])' aptget dist-upgrade -st unversioned -testsuccessequal 'Reading package lists... +Conf libdb5.3-dev (5.3.28-3 unversioned [amd64])" aptget dist-upgrade -st unversioned +testsuccessequal "Reading package lists... Building dependency tree... +Reading state information... Calculating upgrade... +The following packages were automatically installed and are no longer required: + libdb-dev libdb5.3-dev +Use 'apt autoremove' to remove them. The following packages will be REMOVED: libdb5.1-dev The following NEW packages will be installed: @@ -71,33 +79,49 @@ Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ] Inst libdb-dev [5.1.7] (5.3.0 versioned [amd64]) [] Inst libdb5.3-dev (5.3.28-3 versioned [amd64]) Conf libdb-dev (5.3.0 versioned [amd64]) -Conf libdb5.3-dev (5.3.28-3 versioned [amd64])' aptget dist-upgrade -st versioned +Conf libdb5.3-dev (5.3.28-3 versioned [amd64])" aptget dist-upgrade -st versioned rm -f rootdir/var/lib/dpkg/status insertinstalledpackage 'foo' 'amd64' '1' insertinstalledpackage 'bar' 'amd64' '1' testsuccess aptmark auto ~i -testsuccessequal 'Reading package lists... +testsuccessequal "Reading package lists... Building dependency tree... +Reading state information... Calculating upgrade... +The following packages were automatically installed and are no longer required: + bar foo +Use 'apt autoremove' to remove them. The following packages have been kept back: bar foo -0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st unversioned -testsuccessequal 'Reading package lists... +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded." aptget dist-upgrade -st unversioned +testsuccessequal "Reading package lists... Building dependency tree... +Reading state information... Calculating upgrade... +The following packages were automatically installed and are no longer required: + bar foo +Use 'apt autoremove' to remove them. The following packages have been kept back: bar foo -0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st versioned -testsuccessequal 'Reading package lists... +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded." aptget dist-upgrade -st versioned +testsuccessequal "Reading package lists... Building dependency tree... +Reading state information... Calculating upgrade... +The following packages were automatically installed and are no longer required: + bar foo +Use 'apt autoremove' to remove them. The following packages have been kept back: bar foo -0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st multipleno -testsuccessequal 'Reading package lists... +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded." aptget dist-upgrade -st multipleno +testsuccessequal "Reading package lists... Building dependency tree... +Reading state information... Calculating upgrade... +The following package was automatically installed and is no longer required: + bar +Use 'apt autoremove' to remove it. The following packages will be REMOVED: foo The following packages will be upgraded: @@ -105,10 +129,11 @@ The following packages will be upgraded: 1 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. Remv foo [1] Inst bar [1] (2.2 multipleyes [amd64]) -Conf bar (2.2 multipleyes [amd64])' aptget dist-upgrade -st multipleyes +Conf bar (2.2 multipleyes [amd64])" aptget dist-upgrade -st multipleyes testsuccessequal 'Reading package lists... Building dependency tree... +Reading state information... The following NEW packages will be installed: baz 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. @@ -116,6 +141,7 @@ Inst baz (2 unversioned [amd64]) Conf baz (2 unversioned [amd64])' aptget install baz -st unversioned testsuccessequal 'Reading package lists... Building dependency tree... +Reading state information... The following additional packages will be installed: bar The following packages will be REMOVED: @@ -139,6 +165,7 @@ insertinstalledpackage 'libaudit0' 'amd64' '1' testsuccess aptmark auto ~i testsuccessequal 'Reading package lists... Building dependency tree... +Reading state information... Calculating upgrade... The following packages will be REMOVED: gdm3 libaudit0 diff --git a/test/integration/test-apt-get-autoremove-real-virtual-provider b/test/integration/test-apt-get-autoremove-real-virtual-provider index 4940ab5..d5438f8 100755 --- a/test/integration/test-apt-get-autoremove-real-virtual-provider +++ b/test/integration/test-apt-get-autoremove-real-virtual-provider @@ -26,7 +26,17 @@ testsuccess aptget check -s testsuccessequal 'Reading package lists... Building dependency tree... Reading state information... +Solving dependencies... +The following packages will be REMOVED: + needs-provider1 needs-provider4 +0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. +Remv needs-provider1 [1] +Remv needs-provider4 [1]' aptget autoremove -s --solver 3.0 + +testsuccessequal 'Reading package lists... +Building dependency tree... +Reading state information... The following packages will be REMOVED: needs-provider4 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. -Remv needs-provider4 [1]' aptget autoremove -s +Remv needs-provider4 [1]' aptget autoremove -s --solver internal diff --git a/test/integration/test-apt-get-build-dep b/test/integration/test-apt-get-build-dep index 403de8f..f6158a1 100755 --- a/test/integration/test-apt-get-build-dep +++ b/test/integration/test-apt-get-build-dep @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'i386' insertpackage 'stable' 'build-essential' 'i386' '1' diff --git a/test/integration/test-apt-get-build-dep-barbarian b/test/integration/test-apt-get-build-dep-barbarian index 688f7a5..b8ab121 100755 --- a/test/integration/test-apt-get-build-dep-barbarian +++ b/test/integration/test-apt-get-build-dep-barbarian @@ -83,6 +83,7 @@ testsuccessequal "$(installsfoosamey 'amd64' 'i386')" apt build-dep cool-foo -s testsuccessequal "$(installsfoosamey 'i386' 'i386')" apt build-dep bad-amd64-foo -s -a i386 testsuccessequal "$(installsfoosamey 'amd64' 'i386')" apt build-dep bad-armel-foo -s -a i386 testsuccessequal "$(installsfoosamey 'i386' 'i386')" apt build-dep bad-amd64-armel-foo -s -a i386 +testfailuremsg 'E: Conflict: builddeps:bad-amd64-i386-foo:i386=1 -> not foo:i386=1 -> not builddeps:bad-amd64-i386-foo:i386=1 but builddeps:bad-amd64-i386-foo:i386=1' apt build-dep bad-amd64-i386-foo -s -a i386 --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -94,7 +95,8 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:bad-amd64-i386-foo:i386 : Depends: foo:i386 -E: Unable to correct problems, you have held broken packages.' apt build-dep bad-amd64-i386-foo -s -a i386 +E: Unable to correct problems, you have held broken packages.' apt build-dep bad-amd64-i386-foo -s -a i386 --solver internal +testfailuremsg 'E: Conflict: builddeps:bad-amd64-i386-armel-foo:i386=1 -> not foo:i386=1 -> not builddeps:bad-amd64-i386-armel-foo:i386=1 but builddeps:bad-amd64-i386-armel-foo:i386=1' apt build-dep bad-amd64-i386-armel-foo -s -a i386 --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -106,13 +108,14 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:bad-amd64-i386-armel-foo:i386 : Depends: foo:i386 -E: Unable to correct problems, you have held broken packages.' apt build-dep bad-amd64-i386-armel-foo -s -a i386 +E: Unable to correct problems, you have held broken packages.' apt build-dep bad-amd64-i386-armel-foo -s -a i386 --solver internal testsuccessequal "$(installsfoosamey 'amd64' 'armel')" apt build-dep cool-foo -s -a armel testsuccessequal "$(installsfoosamey 'i386' 'armel')" apt build-dep bad-amd64-foo -s -a armel testsuccessequal "$(installsfoosamey 'amd64' 'armel')" apt build-dep bad-armel-foo -s -a armel testsuccessequal "$(installsfoosamey 'i386' 'armel')" apt build-dep bad-amd64-armel-foo -s -a armel testsuccessequal "$(installsfoosamey 'armel' 'armel')" apt build-dep bad-amd64-i386-foo -s -a armel +FAILUREMSG="E: Conflict: builddeps:bad-amd64-i386-armel-foo:armel=1 -> not foo:armel=1 -> not builddeps:bad-amd64-i386-armel-foo:armel=1 but builddeps:bad-amd64-i386-armel-foo:armel=1" FAILURE='Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -124,8 +127,9 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:bad-amd64-i386-armel-foo:armel : Depends: foo:armel E: Unable to correct problems, you have held broken packages.' +testfailuremsg "$FAILUREMSG" apt build-dep bad-amd64-i386-armel-foo -s -a armel --solver 3.0 testfailureequal "Reading package lists... -$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel +$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel --solver internal msgmsg 'BarbarianArchitectures' 'cmdline options' rm rootdir/etc/apt/apt.conf.d/99barbarianarchs @@ -134,7 +138,10 @@ testsuccess aptcache gencaches testsuccessequal "$(installsfoosamey 'mipsel' 'armel')" apt build-dep bad-amd64-i386-armel-foo -s -a armel testsuccess aptcache gencaches -o APT::BarbarianArchitectures::=armel testsuccessequal "$(installsfoosamey 'mipsel' 'armel')" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures::=armel -testfailureequal "$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures::=mipsel -testfailureequal "$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures::=mipsel -o APT::BarbarianArchitectures::=armel +testfailuremsg "$FAILUREMSG" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures::=mipsel --solver 3.0 +testfailuremsg "$FAILUREMSG" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures::=mipsel -o APT::BarbarianArchitectures::=armel --solver 3.0 +testfailuremsg "$FAILUREMSG" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures=mipsel,armel --solver 3.0 +testfailureequal "$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures::=mipsel --solver internal +testfailureequal "$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures::=mipsel -o APT::BarbarianArchitectures::=armel --solver internal testfailureequal "Reading package lists... -$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures=mipsel,armel +$FAILURE" apt build-dep bad-amd64-i386-armel-foo -s -a armel -o APT::BarbarianArchitectures=mipsel,armel --solver internal diff --git a/test/integration/test-apt-get-build-dep-file b/test/integration/test-apt-get-build-dep-file index 88bf10b..bd30cfc 100755 --- a/test/integration/test-apt-get-build-dep-file +++ b/test/integration/test-apt-get-build-dep-file @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'i386' insertpackage 'stable' 'debhelper' 'i386' '7' @@ -158,6 +159,8 @@ testsuccess aptget build-dep --simulate '..' cd ../.. testfailureequal 'E: Must specify at least one package to check builddeps for' aptget build-dep +testfailuremsg 'W: No architecture information available for armel. See apt.conf(5) APT::Architectures for setup +E: Unsatisfiable dependency group builddeps:./foo-1.0:armel=1 -> debhelper:armel' aptget build-dep --simulate ./foo-1.0 -a armel --solver 3.0 testfailureequal "Note, using directory './foo-1.0' to get the build dependencies Reading package lists... Building dependency tree... @@ -170,7 +173,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:./foo-1.0:armel : Depends: debhelper:armel (>= 7) but it is not installable W: No architecture information available for armel. See apt.conf(5) APT::Architectures for setup -E: Unable to correct problems, you have held broken packages." aptget build-dep --simulate ./foo-1.0 -a armel +E: Unable to correct problems, you have held broken packages." aptget build-dep --simulate ./foo-1.0 -a armel --solver internal testfailureequal 'Reading package lists... E: Unable to find a source package for foo' aptget build-dep --simulate foo diff --git a/test/integration/test-apt-get-install-deb b/test/integration/test-apt-get-install-deb index bcf8bae..6cbd25c 100755 --- a/test/integration/test-apt-get-install-deb +++ b/test/integration/test-apt-get-install-deb @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' # regression test for #754904 @@ -31,6 +32,7 @@ done buildsimplenativepackage 'foo' 'i386,amd64' '1.0' +testfailuremsg "E: Conflict: -> foo:amd64=1.0 but foo:i386=1.0 -> not foo:amd64=1.0" aptget install ./incoming/foo_1.0_i386.deb ./incoming/foo_1.0_amd64.deb -s --solver 3.0 testfailureequal "Reading package lists... Building dependency tree... Note, selecting 'foo:i386' instead of './incoming/foo_1.0_i386.deb' @@ -44,7 +46,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo:i386 : Conflicts: foo but 1.0 is to be installed foo : Conflicts: foo:i386 but 1.0 is to be installed -E: Unable to correct problems, you have held broken packages." aptget install ./incoming/foo_1.0_i386.deb ./incoming/foo_1.0_amd64.deb -s +E: Unable to correct problems, you have held broken packages." aptget install ./incoming/foo_1.0_i386.deb ./incoming/foo_1.0_amd64.deb -s --solver internal testsuccess apt show foo --with-source ./incoming/foo_1.0_amd64.deb testequal 'Package: foo @@ -175,7 +177,8 @@ echo 'Package: /pkg-/ Pin: release a=experimental Pin-Priority: 501' > rootdir/etc/apt/preferences.d/pinit -testfailuremsg 'E: Unable to correct problems, you have held broken packages.' aptget install -q=0 ./incoming/pkg-last-line-parse_0_all.deb +testfailuremsg 'E: Unsatisfiable dependency group pkg-last-line-parse:amd64=0 -> pkg-as-it-should-be:amd64' aptget install -q=0 ./incoming/pkg-last-line-parse_0_all.deb --solver 3.0 +testfailuremsg 'E: Unable to correct problems, you have held broken packages.' aptget install -q=0 ./incoming/pkg-last-line-parse_0_all.deb --solver internal testsuccess aptget install ./incoming/pkg-as-it-should-be_0_all.deb testsuccess aptget install ./incoming/pkg-last-line-parse_0_all.deb testsuccess aptget install "$(readlink -f ./incoming/pkg-leading-newline_0_all.deb)" diff --git a/test/integration/test-apt-get-satisfy b/test/integration/test-apt-get-satisfy index 267760f..fc7e805 100755 --- a/test/integration/test-apt-get-satisfy +++ b/test/integration/test-apt-get-satisfy @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'i386' 'amd64' insertpackage 'stable' 'depends' 'i386' '1' @@ -79,6 +80,8 @@ testrun 'External' 'Reading package lists... Building dependency tree... Execute external solver...' --solver apt +testfailuremsg "E: Unsatisfiable dependency group satisfy:command-line:i386=1 -> depends:i386" aptget satisfy --simulate "depends (>= 2)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" --solver 3.0 + testfailureequal "Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -89,8 +92,10 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: satisfy:command-line : Depends: depends (>= 2) but it is not going to be installed -E: Unable to correct problems, you have held broken packages." aptget satisfy --simulate "depends (>= 2)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" +E: Unable to correct problems, you have held broken packages." aptget satisfy --simulate "depends (>= 2)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" --solver internal +if [ "$APT_SOLVER" != "3.0" ]; then +# FIXME: solver3 doesn't produce nice errors in the external solver scenario testfailureequal "Reading package lists... Building dependency tree... Execute external solver... @@ -109,3 +114,4 @@ The following packages have unmet dependencies: satisfy:command-line : Depends: depends (>= 2) but it is not going to be installed Conflicts: conflicts:i386 (>= 1) E: External solver failed with: The following packages have unmet dependencies:" aptget satisfy --simulate "depends (>= 2)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" --solver apt +fi diff --git a/test/integration/test-apt-get-source-only b/test/integration/test-apt-get-source-only index 93d8284..b974146 100755 --- a/test/integration/test-apt-get-source-only +++ b/test/integration/test-apt-get-source-only @@ -29,6 +29,31 @@ DOWNLOADNOTFOO="Need to get 0 B/33 B of source archives. 'file:${APTARCHIVE}/not-foo_1.0.dsc' not-foo_1.0.dsc 15 SHA256:db578a571c87d2555e90245732042845be4f481755f5b2f5786ac7a26bde9f4f 'file:${APTARCHIVE}/not-foo_1.0.tar.gz' not-foo_1.0.tar.gz 18 SHA256:8701846f1cba0ca81c552ac0ec93e2a89ae113cf2872b9cd51b29b4a9ff6b122" +if [ "$APT_SOLVER" = "3.0" ]; then +BUILDDEPFOO="Reading package lists... +Building dependency tree... +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + builddeps:foo : Depends: foo-bd but it is not installable +E: Unsatisfiable dependency group builddeps:foo:amd64=1 -> foo-bd:amd64" + +BUILDDEPNOTFOO="Reading package lists... +Building dependency tree... +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + builddeps:not-foo : Depends: not-foo-bd but it is not installable +E: Unsatisfiable dependency group builddeps:not-foo:amd64=1 -> not-foo-bd:amd64" +else BUILDDEPFOO="Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -52,6 +77,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:not-foo : Depends: not-foo-bd but it is not installable E: Unable to correct problems, you have held broken packages." +fi testsuccessequal "$HEADER Picking 'not-foo' as source package instead of 'foo' diff --git a/test/integration/test-apt-get-upgrade b/test/integration/test-apt-get-upgrade index 50a90ce..c9e56d9 100755 --- a/test/integration/test-apt-get-upgrade +++ b/test/integration/test-apt-get-upgrade @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture "i386" # simple case @@ -60,6 +61,30 @@ Inst upgrade-with-new-dep [1.0] (2.0 unstable [all]) Conf new-dep (1.0 stable [all]) Conf upgrade-simple (2.0 unstable [all]) Conf upgrade-with-new-dep (2.0 unstable [all])' +if [ "$APT_SOLVER" = "3.0" ]; then +# FIXME: It would be better if we would keep back the upgrade rather than switch to sysvinit, +# but it's not clear that is reliably possible. +UPGRADENEW="Reading package lists... +Building dependency tree... +Calculating upgrade... +The following NEW packages will be installed: + new-dep sysvinit +The following packages have been kept back: + upgrade-with-conflict +The following packages will be upgraded: + init upgrade-simple upgrade-with-new-dep +3 upgraded, 2 newly installed, 0 to remove and 1 not upgraded. +Inst sysvinit (2 unstable [all]) +Conf sysvinit (2 unstable [all]) +Inst init [1] (2 unstable [all]) +Inst new-dep (1.0 stable [all]) +Inst upgrade-simple [1.0] (2.0 unstable [all]) +Inst upgrade-with-new-dep [1.0] (2.0 unstable [all]) +Conf init (2 unstable [all]) +Conf new-dep (1.0 stable [all]) +Conf upgrade-simple (2.0 unstable [all]) +Conf upgrade-with-new-dep (2.0 unstable [all])" +fi testsuccessequal "$UPGRADENEW" aptget upgrade -s --with-new-pkgs testsuccessequal "$UPGRADENEW" apt upgrade -s @@ -142,3 +167,54 @@ Conf upgrade-with-conflict (2.0 unstable [all]) Conf new-dep (1.0 stable [all]) Conf upgrade-simple (2.0 unstable [all]) Conf upgrade-with-new-dep (2.0 unstable [all])' aptget -s dist-upgrade + +# --no-strict-pinning pulls in systemd due to the dependency +testsuccessequal 'Reading package lists... +Building dependency tree... +Calculating upgrade... +The following packages will be REMOVED: + conflicting-dep +The following NEW packages will be installed: + new-dep systemd +The following packages will be upgraded: + init upgrade-simple upgrade-with-conflict upgrade-with-new-dep +4 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. +Remv conflicting-dep [1.0] +Inst systemd (2 unstable [all]) +Conf systemd (2 unstable [all]) +Inst init [1] (2 unstable [all]) +Inst upgrade-with-conflict [1.0] (2.0 unstable [all]) +Inst new-dep (1.0 stable [all]) +Inst upgrade-simple [1.0] (2.0 unstable [all]) +Inst upgrade-with-new-dep [1.0] (2.0 unstable [all]) +Conf init (2 unstable [all]) +Conf upgrade-with-conflict (2.0 unstable [all]) +Conf new-dep (1.0 stable [all]) +Conf upgrade-simple (2.0 unstable [all]) +Conf upgrade-with-new-dep (2.0 unstable [all])' aptget -s dist-upgrade --no-strict-pinning --solver 3.0 + +# --no-strict-pinning does not cause a package to be upgraded on its own, though. +echo 'Package: upgrade-simple +Pin: release unstable +Pin-Priority: -1' > rootdir/etc/apt/preferences.d/no-strict-pinning.pref +testsuccessequal 'Reading package lists... +Building dependency tree... +Calculating upgrade... +The following packages will be REMOVED: + conflicting-dep +The following NEW packages will be installed: + new-dep systemd +The following packages will be upgraded: + init upgrade-with-conflict upgrade-with-new-dep +3 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. +Remv conflicting-dep [1.0] +Inst systemd (2 unstable [all]) +Conf systemd (2 unstable [all]) +Inst init [1] (2 unstable [all]) +Inst upgrade-with-conflict [1.0] (2.0 unstable [all]) +Inst new-dep (1.0 stable [all]) +Inst upgrade-with-new-dep [1.0] (2.0 unstable [all]) +Conf init (2 unstable [all]) +Conf upgrade-with-conflict (2.0 unstable [all]) +Conf new-dep (1.0 stable [all]) +Conf upgrade-with-new-dep (2.0 unstable [all])' aptget -s dist-upgrade --no-strict-pinning --solver 3.0 diff --git a/test/integration/test-apt-never-markauto-sections b/test/integration/test-apt-never-markauto-sections index b47966e..a1fc873 100755 --- a/test/integration/test-apt-never-markauto-sections +++ b/test/integration/test-apt-never-markauto-sections @@ -47,7 +47,8 @@ Remv foreignpkg:i386 [1] Remv nosection [1] Remv texteditor [1]' aptget autoremove mydesktop -s -testequal 'Reading package lists... +testfailuremsg 'E: Conflict: not texteditor:amd64 -> not texteditor:amd64=1 -> not bad-texteditor:amd64=1 -> not mydesktop-core:amd64=1 but mydesktop:amd64 -> mydesktop:amd64=1 -> mydesktop-core:amd64=1' aptget autoremove texteditor -s --solver 3.0 #-o Debug::pkgDepCache::AutoInstall=1 -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 +testsuccessequal 'Reading package lists... Building dependency tree... Reading state information... The following packages will be REMOVED: @@ -55,8 +56,8 @@ The following packages will be REMOVED: 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. Remv mydesktop [1] Remv mydesktop-core [1] -Remv texteditor [1]' aptget autoremove texteditor -s #-o Debug::pkgDepCache::AutoInstall=1 -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -testsuccess aptget autoremove texteditor -y +Remv texteditor [1]' aptget autoremove texteditor -s --solver internal #-o Debug::pkgDepCache::AutoInstall=1 -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 +testsuccess aptget autoremove texteditor -y --solver internal testdpkgnotinstalled mydesktop mydesktop-core texteditor testdpkginstalled browser diff --git a/test/integration/test-bug-549968-install-depends-of-not-installed b/test/integration/test-bug-549968-install-depends-of-not-installed index 90ce58a..39c86cc 100755 --- a/test/integration/test-bug-549968-install-depends-of-not-installed +++ b/test/integration/test-bug-549968-install-depends-of-not-installed @@ -25,4 +25,24 @@ The following NEW packages will be installed: coolstuff 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst coolstuff (1.0 unstable [all]) -Conf coolstuff (1.0 unstable [all])" aptget install coolstuff extracoolstuff- -o Debug::pkgDepCache::Marker=1 -s +Conf coolstuff (1.0 unstable [all])" aptget install coolstuff extracoolstuff- -o Debug::pkgDepCache::Marker=1 -s --solver internal + +# We check the Markers here as the autoremove nuker will also +# prevent it, but to late - its better to fail earlier +testsuccessequal "Reading package lists... +Building dependency tree... +Package 'extracoolstuff' is not installed, so not removed +Solving dependencies...MANUAL coolstuff:i386 +[0] Install:coolstuff:i386=1.0 () +Delete extracoolstuff:i386 +[0] Reject:extracoolstuff:i386 () +[0] Reject:extracoolstuff:i386=1.0 (not extracoolstuff:i386) +Optional Item (0@0) coolstuff:i386=1.0 -> | extracoolstuff:i386=1.0 + +Recommended packages: + extracoolstuff +The following NEW packages will be installed: + coolstuff +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst coolstuff (1.0 unstable [all]) +Conf coolstuff (1.0 unstable [all])" aptget install coolstuff extracoolstuff- -o Debug::APT::Solver=1 -s --solver 3.0 diff --git a/test/integration/test-bug-591882-conkeror b/test/integration/test-bug-591882-conkeror index 6b90343..21c5697 100755 --- a/test/integration/test-bug-591882-conkeror +++ b/test/integration/test-bug-591882-conkeror @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture "i386" setupaptarchive @@ -73,5 +74,5 @@ After this operation, 36.0 MB of additional disk space will be used. E: Trivial Only specified but this is not a trivial operation." # Test that the old behavior can be restored with the option -testfailureequal "$UPGRADEFAIL" aptget dist-upgrade --trivial-only -o pkgProblemResolver::FixByInstall=0 +testfailureequal "$UPGRADEFAIL" aptget dist-upgrade --trivial-only -o pkgProblemResolver::FixByInstall=0 --solver internal testfailureequal "$UPGRADESUCCESS" aptget dist-upgrade --trivial-only #-o pkgProblemResolver::FixByInstall=0 diff --git a/test/integration/test-bug-596498-trusted-unsigned-repo b/test/integration/test-bug-596498-trusted-unsigned-repo index 4d0e3dc..2cfdc53 100755 --- a/test/integration/test-bug-596498-trusted-unsigned-repo +++ b/test/integration/test-bug-596498-trusted-unsigned-repo @@ -15,10 +15,15 @@ aptgetupdate() { rm -rf rootdir/var/lib/apt/ rootdir/var/cache/apt/*.bin ${1:-testwarning} aptget update --allow-insecure-repositories } - -PKGTEXT="$(aptget install cool --assume-no -d | head -n 8)" -DOWNLOG="$(echo "$PKGTEXT" | tail -n 1)" -PKGTEXT="$(echo "$PKGTEXT" | head -n 7)" +PKGSIZE=$(aptcache show cool | awk '/^Size:/ {print $2}') +PKGTEXT="Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + cool +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Need to get 0 B/$PKGSIZE B of archives. +After this operation, 11.3 kB of additional disk space will be used." +DOWNLOG="Get:1 file:${TMPWORKINGDIRECTORY}/aptarchive unstable/main i386 cool i386 1.0 [$PKGSIZE B]" DEBFILE='rootdir/etc/apt/sources.list.d/apt-test-unstable-*.list' testsuccessequal "$PKGTEXT diff --git a/test/integration/test-bug-598669-install-postfix-gets-exim-heavy b/test/integration/test-bug-598669-install-postfix-gets-exim-heavy index e7e4093..e27ddb2 100755 --- a/test/integration/test-bug-598669-install-postfix-gets-exim-heavy +++ b/test/integration/test-bug-598669-install-postfix-gets-exim-heavy @@ -7,6 +7,8 @@ setupenvironment configarchitecture "i386" setupaptarchive +testfailuremsg "E: Conflict: -> postfix:i386=2.7.1-1 but exim4-daemon-light:i386 -> exim4-daemon-light:i386=4.72-1 -> not postfix:i386=2.7.1-1" aptget install postfix --solver 3.0 +allowremovemanual testfailureequal "Reading package lists... Building dependency tree... The following packages will be REMOVED: diff --git a/test/integration/test-bug-601961-install-info b/test/integration/test-bug-601961-install-info index 3e13560..94a5ad2 100755 --- a/test/integration/test-bug-601961-install-info +++ b/test/integration/test-bug-601961-install-info @@ -47,4 +47,17 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: findutils : Depends: essentialpkg but it is not going to be installed -E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.' aptget remove essentialpkg --trivial-only +E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.' aptget remove essentialpkg --trivial-only --solver internal + +testfailureequal 'Reading package lists... +Building dependency tree... +Solving dependencies... +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + findutils : Depends: essentialpkg but it is not going to be installed +E: Conflict: -> findutils:i386 but not essentialpkg:i386 -> not essentialpkg:i386=4.13a.dfsg.1-6 -> not findutils:i386=4.4.2-1+b1 -> not findutils:i386' aptget remove essentialpkg --trivial-only --solver 3.0 diff --git a/test/integration/test-bug-604222-new-and-autoremove b/test/integration/test-bug-604222-new-and-autoremove index 78a2882..a53fcb7 100755 --- a/test/integration/test-bug-604222-new-and-autoremove +++ b/test/integration/test-bug-604222-new-and-autoremove @@ -18,9 +18,13 @@ insertpackage 'stable' 'libkf5kipi-data' 'i386' '4:16.08.0-1' 'Breaks: libkipi-d insertpackage 'stable' 'libkipi-data' 'i386' '4:15.08.0-1' '' 'important' insertpackage 'stable' 'libgphoto2-l10n' 'all' '2' -insertpackage 'installed,stable' 'photoapp1' 'all' '1' 'Recommends: libgphoto2-l10n (= 1)' +insertinstalledpackage 'libfoto1' 'i386' '1' +insertpackage 'installed,stable' 'photoapp1' 'all' '1' 'Depends: libfoto1 +Recommends: libgphoto2-l10n (= 1)' insertinstalledpackage 'photoapp2' 'all' '1' +insertpackage 'stable' 'libfoto1t64' 'i386' '1' 'Provides: libfoto1' insertpackage 'stable' 'photoapp2' 'all' '2' 'Conflicts: photoapp1 +Depends: libfoto1t64 Recommends: libgphoto2-l10n (= 2)' setupaptarchive @@ -89,6 +93,25 @@ E: Trivial Only specified but this is not a trivial operation." aptget install d rm -f rootdir/var/lib/dpkg/status rootdir/var/lib/apt/extended_states +if [ "$APT_SOLVER" = "3.0" ]; then +CONFLICTING='Reading package lists... +Building dependency tree... +Solving dependencies...MANUAL dummy-archive:i386 +[0] Install:dummy-archive:i386=0.invalid.0 () +[0] Install:libavcodec52:i386=4:0.5.2-6 (dummy-archive:i386=0.invalid.0) +[0] Reject:libvtk5-dev:i386=5.4.2-8 (dummy-archive:i386=0.invalid.0 -> libavcodec52:i386=4:0.5.2-6) +Item (1@0) dummy-archive:i386=0.invalid.0 -> | libvtk5-dev:i386=5.4.2-8 | libopenal-dev:i386=1:1.12.854-2 +[0] Install:libopenal-dev:i386=1:1.12.854-2 (dummy-archive:i386=0.invalid.0) + +The following additional packages will be installed: + libavcodec52 libopenal-dev +The following NEW packages will be installed: + dummy-archive libavcodec52 libopenal-dev +0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. +Need to get 0 B/126 B of archives. +After this operation, 129 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation.' +else CONFLICTING='Reading package lists... Building dependency tree... MarkInstall dummy-archive:i386 < none -> 0.invalid.0 @un puN Ib > FU=1 @@ -104,10 +127,11 @@ The following NEW packages will be installed: Need to get 0 B/126 B of archives. After this operation, 129 kB of additional disk space will be used. E: Trivial Only specified but this is not a trivial operation.' +fi -testfailureequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=0 -testfailureequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=1 -testfailureequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=small +testfailureequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=0 -o Debug::APT::Solver=1 +testfailureequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=1 -o Debug::APT::Solver=1 +testfailureequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=small -o Debug::APT::Solver=1 insertinstalledpackage 'my-metapackage' 'i386' '1' 'Depends: gwenview' insertinstalledpackage 'gwenview' 'i386' '4:15.08.0-1' 'Depends: libkipi-data diff --git a/test/integration/test-bug-612099-multiarch-conflicts b/test/integration/test-bug-612099-multiarch-conflicts index bc57395..a005127 100755 --- a/test/integration/test-bug-612099-multiarch-conflicts +++ b/test/integration/test-bug-612099-multiarch-conflicts @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'i386' 'amd64' buildsimplenativepackage 'libc6' 'i386' '1.0' 'stable' diff --git a/test/integration/test-bug-612557-garbage-upgrade b/test/integration/test-bug-612557-garbage-upgrade index e0ede78..2a4c952 100755 --- a/test/integration/test-bug-612557-garbage-upgrade +++ b/test/integration/test-bug-612557-garbage-upgrade @@ -17,6 +17,8 @@ testsuccess aptmark markauto python-uno openoffice.org-common #aptmark unmarkauto openoffice.org-emailmerge testmarkedauto python-uno openoffice.org-common +# The 3.0 solver does not remove openoffice.org-emailmerge because it is manually installed. +testfailuremsg "E: Conflict: -> openoffice.org-emailmerge:i386 but python-uno:i386=1:3.3.0-2 -> libreoffice-common:i386=1:3.3.0-2 -> not openoffice.org-common:i386=1:3.2.1-11+squeeze2 -> not openoffice.org-emailmerge:i386=1:3.2.1-11+squeeze2 -> not openoffice.org-emailmerge:i386" aptget --trivial-only install python-uno --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Reading state information... @@ -31,7 +33,7 @@ The following packages will be upgraded: 1 upgraded, 1 newly installed, 2 to remove and 0 not upgraded. Need to get 0 B/84 B of archives. After this operation, 53.2 MB disk space will be freed. -E: Trivial Only specified but this is not a trivial operation.' aptget --trivial-only install python-uno +E: Trivial Only specified but this is not a trivial operation.' aptget --trivial-only install python-uno --solver internal testsuccess aptmark markauto openoffice.org-emailmerge testmarkedauto python-uno openoffice.org-common openoffice.org-emailmerge diff --git a/test/integration/test-bug-613420-new-garbage-dependency b/test/integration/test-bug-613420-new-garbage-dependency index 75a653c..0d83097 100755 --- a/test/integration/test-bug-613420-new-garbage-dependency +++ b/test/integration/test-bug-613420-new-garbage-dependency @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture "i386" insertpackage 'unstable' 'libreoffice' 'all' '1:3.3.1~rc1-2' 'Depends: libreoffice-core' diff --git a/test/integration/test-bug-618848-always-respect-user-requests b/test/integration/test-bug-618848-always-respect-user-requests index 225db29..8b7b17b 100755 --- a/test/integration/test-bug-618848-always-respect-user-requests +++ b/test/integration/test-bug-618848-always-respect-user-requests @@ -13,6 +13,17 @@ insertpackage 'unstable' 'exim4-daemon-heavy' 'all' '1.0' 'Depends: libdb4.8' setupaptarchive +# This does not work in 3.0 solver: We do not remove manually installed packages. +testfailuremsg "E: Conflict: not libdb4.8:i386 -> not libdb4.8:i386=1.0 -> not exim4-daemon-light:i386=1.0 -> not exim4:i386=1.0 but exim4:i386 -> exim4:i386=1.0" aptget remove libdb4.8 --solver 3.0 -s +allowremovemanual +testsuccessequal "Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + exim4 exim4-daemon-light libdb4.8 +0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. +Remv exim4 [1.0] +Remv exim4-daemon-light [1.0] +Remv libdb4.8 [1.0]" aptget remove libdb4.8 -s testsuccessequal "Reading package lists... Building dependency tree... MarkDelete libdb4.8:i386 < 1.0 @ii pmK > FU=1 @@ -28,4 +39,4 @@ Remv exim4 [1.0] MarkDelete exim4-daemon-light:i386 < 1.0 @ii K > FU=1 Remv exim4-daemon-light [1.0] MarkDelete libdb4.8:i386 < 1.0 @ii K > FU=1 -Remv libdb4.8 [1.0]" aptget remove libdb4.8 -s -o Debug::pkgDepCache::Marker=1 +Remv libdb4.8 [1.0]" aptget remove libdb4.8 -s -o Debug::pkgDepCache::Marker=1 --solver internal diff --git a/test/integration/test-bug-632221-cross-dependency-satisfaction b/test/integration/test-bug-632221-cross-dependency-satisfaction index 0cf8d35..90cb868 100755 --- a/test/integration/test-bug-632221-cross-dependency-satisfaction +++ b/test/integration/test-bug-632221-cross-dependency-satisfaction @@ -35,6 +35,7 @@ insertsource 'unstable' 'source-specific-armel' 'armel' '1' 'Build-Depends: spec setupaptarchive +testfailuremsg "E: Unsatisfiable dependency group builddeps:forbidden-no:armel=1 -> amdboot:any:any" aptget build-dep forbidden-no -s -a armel --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -46,7 +47,9 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:forbidden-no:armel : Depends: amdboot:any but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget build-dep forbidden-no -s -a armel +E: Unable to correct problems, you have held broken packages.' aptget build-dep forbidden-no -s -a armel --solver internal + +testfailuremsg "E: Unsatisfiable dependency group builddeps:forbidden-same:armel=1 -> libc6:any:any" aptget build-dep forbidden-same -s -a armel --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -58,7 +61,9 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:forbidden-same:armel : Depends: libc6:any but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget build-dep forbidden-same -s -a armel +E: Unable to correct problems, you have held broken packages.' aptget build-dep forbidden-same -s -a armel --solver internal + +testfailuremsg 'E: Unsatisfiable dependency group builddeps:forbidden-foreign:armel=1 -> doxygen:any:any' aptget build-dep forbidden-foreign -s -a armel --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -70,7 +75,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:forbidden-foreign:armel : Depends: doxygen:any but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget build-dep forbidden-foreign -s -a armel +E: Unable to correct problems, you have held broken packages.' aptget build-dep forbidden-foreign -s -a armel --solver internal testsuccessequal 'Reading package lists... Reading package lists... diff --git a/test/integration/test-bug-64141-install-dependencies-for-on-hold b/test/integration/test-bug-64141-install-dependencies-for-on-hold index fe3bde6..2565c94 100755 --- a/test/integration/test-bug-64141-install-dependencies-for-on-hold +++ b/test/integration/test-bug-64141-install-dependencies-for-on-hold @@ -19,6 +19,38 @@ insertpackage 'unstable' 'libdb4.8' 'native' '4.8.30-3' setupaptarchive +# Solver 3.0 does not remove manual packages +testfailureequal 'Reading package lists... +Building dependency tree... +Calculating upgrade... +The following packages have been kept back: + apt +The following packages will be upgraded: + libc6 +1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. +Need to get 0 B/42 B of archives. +After this operation, 0 B of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only --solver 3.0 + +testfailure aptget dist-upgrade --trivial-only --solver 3.0 -o debug::apt::solver=2 +testsuccess grep -Fx 'Branch failed: Conflict: apt:amd64 -> apt:amd64=0.8.10 -> not oldcrap:amd64=1-1 but oldcrap:amd64 -> oldcrap:amd64=1-1' rootdir/tmp/testfailure.output + +allowremovemanual + +testfailureequal 'Reading package lists... +Building dependency tree... +Calculating upgrade... +The following packages will be REMOVED: + oldcrap +The following NEW packages will be installed: + libdb4.8 +The following packages will be upgraded: + apt libc6 +2 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. +Need to get 0 B/126 B of archives. +After this operation, 0 B of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only + testfailureequal 'Reading package lists... Building dependency tree... Calculating upgrade... diff --git a/test/integration/test-bug-657695-resolver-breaks-on-virtuals b/test/integration/test-bug-657695-resolver-breaks-on-virtuals index 42b8521..e3ff6d1 100755 --- a/test/integration/test-bug-657695-resolver-breaks-on-virtuals +++ b/test/integration/test-bug-657695-resolver-breaks-on-virtuals @@ -16,6 +16,15 @@ insertpackage 'unstable' 'xserver-xorg-core' 'amd64' '2:1.11.3-0ubuntu9' 'Breaks setupaptarchive +testsuccessequal 'Reading package lists... +Building dependency tree... +Calculating upgrade... +The following packages have been kept back: + xserver-xorg-core +0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.' aptget dist-upgrade --trivial-only --solver 3.0 + +allowremovemanual + testfailureequal 'Reading package lists... Building dependency tree... Calculating upgrade... diff --git a/test/integration/test-bug-683786-build-dep-on-virtual-packages b/test/integration/test-bug-683786-build-dep-on-virtual-packages index 831e1f8..45e40e2 100755 --- a/test/integration/test-bug-683786-build-dep-on-virtual-packages +++ b/test/integration/test-bug-683786-build-dep-on-virtual-packages @@ -41,6 +41,7 @@ The following NEW packages will be installed: Inst po-debconf (1 unstable [all]) Conf po-debconf (1 unstable [all])' aptget build-dep dash -s +testfailuremsg 'E: Unsatisfiable dependency group builddeps:dash:armel=1 -> po-debconf:armel' aptget build-dep -aarmel dash -s --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -52,7 +53,9 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:dash:armel : Depends: po-debconf:armel but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget build-dep -aarmel dash -s +E: Unable to correct problems, you have held broken packages.' aptget build-dep -aarmel dash -s --solver internal + +testfailuremsg 'E: Unsatisfiable dependency group builddeps:diffutils:armel=1 -> texi2html:armel' aptget build-dep -aarmel diffutils -s --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -64,7 +67,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:diffutils:armel : Depends: texi2html:armel but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget build-dep -aarmel diffutils -s +E: Unable to correct problems, you have held broken packages.' aptget build-dep -aarmel diffutils -s --solver internal testsuccessequal "Reading package lists... Reading package lists... @@ -75,6 +78,7 @@ The following NEW packages will be installed: Inst libselinux1-dev (1 unstable [amd64]) Conf libselinux1-dev (1 unstable [amd64])" aptget build-dep sed -s +testfailuremsg 'E: Unsatisfiable dependency group builddeps:sed:armel=1 -> libselinux-dev:armel' aptget build-dep -aarmel sed -s --solver 3.0 testfailureequal 'Reading package lists... Reading package lists... Building dependency tree... @@ -86,7 +90,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: builddeps:sed:armel : Depends: libselinux-dev:armel but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget build-dep -aarmel sed -s +E: Unable to correct problems, you have held broken packages.' aptget build-dep -aarmel sed -s --solver internal testsuccessequal "Reading package lists... Reading package lists... diff --git a/test/integration/test-bug-686346-package-missing-architecture b/test/integration/test-bug-686346-package-missing-architecture index d28600a..a064e5d 100755 --- a/test/integration/test-bug-686346-package-missing-architecture +++ b/test/integration/test-bug-686346-package-missing-architecture @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' insertinstalledpackage 'pkgb' 'none' '1' diff --git a/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch b/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch index 9c96bbe..3bad617 100755 --- a/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch +++ b/test/integration/test-bug-712116-dpkg-pre-install-pkgs-hook-multiarch @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' buildsimplenativepackage 'toolkit' 'all' '1' 'stable' 'Multi-Arch: foreign' @@ -89,7 +90,8 @@ stuff 2 amd64 none > - - none **REMOVE**' testfileequal "${hook}-v2.list" 'libsame 2 > - **REMOVE**' testfileequal "${hook}-v3.list" 'libsame 2 amd64 same > - - none **REMOVE**' - observehook install stuff:i386/stable libsame:i386/stable toolkit/stable + # FIXME: solver3: This should not require no-strict-pinning + observehook install stuff:i386/stable libsame:i386/stable toolkit/stable $(test "$APT_SOLVER" != "3.0" || printf '%s' '--no-strict-pinning') testfileequal "${hook}-v2.list" 'libsame 2 > 1 **CONFIGURE** stuff 2 > 1 **CONFIGURE** toolkit 2 > 1 **CONFIGURE**' diff --git a/test/integration/test-bug-720597-build-dep-purge b/test/integration/test-bug-720597-build-dep-purge index 4b36989..9ff0d23 100755 --- a/test/integration/test-bug-720597-build-dep-purge +++ b/test/integration/test-bug-720597-build-dep-purge @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual # we need this construct here as it isn't really possible to fake native arch for dpkg-* tools NATIVE="$(command dpkg --print-architecture)" diff --git a/test/integration/test-bug-723586-any-stripped-in-single-arch b/test/integration/test-bug-723586-any-stripped-in-single-arch index 38eb026..441bc29 100755 --- a/test/integration/test-bug-723586-any-stripped-in-single-arch +++ b/test/integration/test-bug-723586-any-stripped-in-single-arch @@ -29,6 +29,20 @@ Inst python3-gnupg (0.3.5-2 stable [all]) Conf python3 (3.3.2-16 unstable [amd64]) Conf python3-gnupg (0.3.5-2 stable [all])' +if [ "$APT_SOLVER" = "3.0" ]; then +FAILLOG='Reading package lists... +Building dependency tree... +Solving dependencies... +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + python-mips : Depends: python3:mips but it is not installable +E: Unsatisfiable dependency group python-mips:amd64=3 -> python3:mips:any' +else FAILLOG='Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -40,6 +54,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: python-mips : Depends: python3:mips but it is not installable E: Unable to correct problems, you have held broken packages.' +fi testsuccessequal "$INSTALLLOG" aptget install python3-gnupg -s aptcache showpkg python3 > showpkg.log diff --git a/test/integration/test-bug-735967-lib32-to-i386-unavailable b/test/integration/test-bug-735967-lib32-to-i386-unavailable index b836451..cc925d1 100755 --- a/test/integration/test-bug-735967-lib32-to-i386-unavailable +++ b/test/integration/test-bug-735967-lib32-to-i386-unavailable @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'i386' 'amd64' insertpackage 'unstable' 'lib32nss-mdns' 'amd64' '0.10-6' 'Depends: libnss-mdns-i386 (= 0.10-6)' @@ -43,6 +44,7 @@ Remv lib32nss-mdns [0.9-1] Inst libnss-mdns [0.9-1] (0.10-6 unstable [amd64]) Conf libnss-mdns (0.10-6 unstable [amd64])' aptget dist-upgrade -s +testfailuremsg 'E: Unsatisfiable dependency group libfoo:amd64=1 -> libfoo-bin:amd64' aptget install foo -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -53,7 +55,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: libfoo : Depends: libfoo-bin but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget install foo -s +E: Unable to correct problems, you have held broken packages.' aptget install foo -s --solver internal # activate multiarch configarchitecture 'amd64' 'i386' diff --git a/test/integration/test-bug-747261-arch-specific-conflicts b/test/integration/test-bug-747261-arch-specific-conflicts index e137043..093542d 100755 --- a/test/integration/test-bug-747261-arch-specific-conflicts +++ b/test/integration/test-bug-747261-arch-specific-conflicts @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'sparc' 'armel' insertinstalledpackage 'foobar' 'armel' '1' diff --git a/test/integration/test-bug-758153-versioned-provides-support b/test/integration/test-bug-758153-versioned-provides-support index 7bf9d76..a057d33 100755 --- a/test/integration/test-bug-758153-versioned-provides-support +++ b/test/integration/test-bug-758153-versioned-provides-support @@ -7,6 +7,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' insertinstalledpackage 'webapp' 'all' '1' 'Depends: httpd' @@ -393,11 +394,18 @@ Inst needsselfprov12 (1 unstable [amd64]) Conf selfprov (2 unstable [amd64]) Conf needsselfprov12 (1 unstable [amd64])" aptget install needsselfprov12 -s --solver $solver if [ "$solver" = 'apt' ]; then +if [ "$APT_SOLVER" = "3.0" ]; then +TOPDEPENDS=" needsselfprov123 : Depends: selfprov (= 1) + Depends: selfprov (= 2) + Depends: selfprov (= 3)" +else +TOPDEPENDS=" needsselfprov123 : Depends: selfprov (= 3)" +fi testfailureequal "$HEADER The solver encountered an error of type: ERR_UNSOLVABLE The following information might help you to understand what is wrong: The following packages have unmet dependencies: - needsselfprov123 : Depends: selfprov (= 3) +$TOPDEPENDS $SOMEPACKAGESCOULDNOT needsselfprov123 : Depends: selfprov (= 1) diff --git a/test/integration/test-bug-769609-triggers-still-pending-after-run b/test/integration/test-bug-769609-triggers-still-pending-after-run index ce2c193..0a2dd25 100755 --- a/test/integration/test-bug-769609-triggers-still-pending-after-run +++ b/test/integration/test-bug-769609-triggers-still-pending-after-run @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' msgtest 'Check if installed dpkg supports' 'noawait trigger' diff --git a/test/integration/test-bug-796070-downgrade-simulate b/test/integration/test-bug-796070-downgrade-simulate index 61ecc87..d1b6b7f 100755 --- a/test/integration/test-bug-796070-downgrade-simulate +++ b/test/integration/test-bug-796070-downgrade-simulate @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'i386' insertpackage 'unstable' 'apt' 'all' '1.0.10.1' 'Depends: libapt-pkg4.16 (>= 1.0.10.1)' diff --git a/test/integration/test-bug-960705-propagate-protected-to-satisfied-conflict b/test/integration/test-bug-960705-propagate-protected-to-satisfied-conflict index 272378b..270536f 100755 --- a/test/integration/test-bug-960705-propagate-protected-to-satisfied-conflict +++ b/test/integration/test-bug-960705-propagate-protected-to-satisfied-conflict @@ -15,6 +15,7 @@ Important: yes' setupaptarchive +# This only works on internal, we do not have magic essential autoswitch ability for 3.0 testsuccessequal "Reading package lists... Building dependency tree... Removing: systemd-sysv:amd64 as upgrade is not an option for runit-init:amd64 (1) @@ -50,4 +51,4 @@ Remv init [1] MarkDelete systemd-sysv:amd64 < 1 | none @ii H > FU=1 Remv systemd-sysv [1] Inst runit-init (1 unstable [all]) -Conf runit-init (1 unstable [all])" apt install runit-init -so Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 -o APT::Get::Allow-Solver-Remove-Essential=1 +Conf runit-init (1 unstable [all])" apt install runit-init -so Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 -o APT::Get::Allow-Solver-Remove-Essential=1 --solver internal diff --git a/test/integration/test-bug-960705-propagate-protected-to-satisfied-depends b/test/integration/test-bug-960705-propagate-protected-to-satisfied-depends index ca6bf8d..da11fc8 100755 --- a/test/integration/test-bug-960705-propagate-protected-to-satisfied-depends +++ b/test/integration/test-bug-960705-propagate-protected-to-satisfied-depends @@ -20,6 +20,35 @@ setupaptarchive testsuccessequal "Reading package lists... Building dependency tree... +Solving dependencies...MANUAL foobar:amd64 +[0] Install:foobar:amd64=1 () +[0] Install:requires-foo:amd64=1 (foobar:amd64=1) +[0] Install:foo:amd64=1 (foobar:amd64=1 -> requires-foo:amd64=1) +[0] Install:foo-depends:amd64=1 (foobar:amd64=1 -> requires-foo:amd64=1 -> foo:amd64=1) +Item (2@0) foobar:amd64=1 -> | conflicts-foo:amd64=1 | fine-foo:amd64=1 +[1] Install:conflicts-foo:amd64=1 (foobar:amd64=1) +[0] Reject:conflicts-foo:amd64=1 () +Item (1@0) foobar:amd64=1 -> | conflicts-foo:amd64=1 | fine-foo:amd64=1 +[0] Install:fine-foo:amd64=1 (foobar:amd64=1) + +The following additional packages will be installed: + fine-foo foo foo-depends requires-foo +The following NEW packages will be installed: + fine-foo foo foo-depends foobar requires-foo +0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. +Inst fine-foo (1 unstable [all]) +Inst foo-depends (1 unstable [all]) +Inst foo (1 unstable [all]) +Inst requires-foo (1 unstable [all]) +Inst foobar (1 unstable [all]) +Conf fine-foo (1 unstable [all]) +Conf foo-depends (1 unstable [all]) +Conf foo (1 unstable [all]) +Conf requires-foo (1 unstable [all]) +Conf foobar (1 unstable [all])" apt install foobar -so Debug::APT::Solver=1 --solver 3.0 + +testsuccessequal "Reading package lists... +Building dependency tree... Installing foo:amd64 as Depends of foobar:amd64 Installing foo-depends:amd64 as Depends of foo:amd64 Installing requires-foo:amd64 as Depends of foobar:amd64 @@ -42,4 +71,4 @@ Conf fine-foo (1 unstable [all]) Conf foo-depends (1 unstable [all]) Conf foo (1 unstable [all]) Conf requires-foo (1 unstable [all]) -Conf foobar (1 unstable [all])" apt install foobar -so Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::AutoInstall=1 +Conf foobar (1 unstable [all])" apt install foobar -so Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::AutoInstall=1 --solver internal diff --git a/test/integration/test-bug-lp1562402-nomark-removals-as-keep b/test/integration/test-bug-lp1562402-nomark-removals-as-keep index 6e8225a..41a9591 100755 --- a/test/integration/test-bug-lp1562402-nomark-removals-as-keep +++ b/test/integration/test-bug-lp1562402-nomark-removals-as-keep @@ -18,6 +18,15 @@ insertinstalledpackage 'maas-region-controller' 'all' '2.0.0~alpha3+bzr4810-0ubu setupaptarchive +testsuccessequal 'Reading package lists... +Building dependency tree... +Calculating upgrade... +The following packages have been kept back: + maas-common maas-region-controller maas-region-controller-min +0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.' aptget dist-upgrade -s --solver 3.0 + +allowremovemanual + testsuccess aptget dist-upgrade -s -o Debug::pkgDepCache::AutoInstall=true -o Debug::pkgPackageManager=yes -o Debug::pkgProblemResolver=yes testsuccessequal 'Reading package lists... Building dependency tree... diff --git a/test/integration/test-crossgrades b/test/integration/test-crossgrades index 6398e7e..b428215 100755 --- a/test/integration/test-crossgrades +++ b/test/integration/test-crossgrades @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'i386' 'amd64' 'armel' configdpkgnoopchroot diff --git a/test/integration/test-dpkg-i-apt-install-fix-broken b/test/integration/test-dpkg-i-apt-install-fix-broken index 0b75b5f..5c517aa 100755 --- a/test/integration/test-dpkg-i-apt-install-fix-broken +++ b/test/integration/test-dpkg-i-apt-install-fix-broken @@ -14,6 +14,28 @@ setupaptarchive testfailure dpkg -i incoming/autopkgtest-*.deb testsuccessequal 'Reading package lists... Building dependency tree... +Correcting dependencies...MANUAL autopkgtest-satdep:amd64 +[0] Install:autopkgtest-satdep:amd64 () +[0] Install:autopkgtest-satdep:amd64=1 (autopkgtest-satdep:amd64) +[0] Install:debhelper:amd64=1 (autopkgtest-satdep:amd64 -> autopkgtest-satdep:amd64=1) + Done +Solving dependencies...AUTOMATIC debhelper:amd64 - upgrade +MANUAL autopkgtest-satdep:amd64 +[0] Install:autopkgtest-satdep:amd64 () +[0] Install:autopkgtest-satdep:amd64=1 (autopkgtest-satdep:amd64) +[0] Install:debhelper:amd64=1 (autopkgtest-satdep:amd64 -> autopkgtest-satdep:amd64=1) + +The following additional packages will be installed: + debhelper +The following NEW packages will be installed: + debhelper +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +1 not fully installed or removed. +Inst debhelper (1 stable [all]) +Conf debhelper (1 stable [all]) +Conf autopkgtest-satdep (1 stable [amd64])' apt install -fso Debug::APT::Solver=1 --solver 3.0 +testsuccessequal 'Reading package lists... +Building dependency tree... Correcting dependencies... MarkInstall autopkgtest-satdep:amd64 < 1 @iU K Nb Ib > FU=0 MarkInstall debhelper:amd64 < none -> 1 @un uN > FU=0 Starting pkgProblemResolver with broken count: 0 @@ -31,4 +53,4 @@ The following NEW packages will be installed: 1 not fully installed or removed. Inst debhelper (1 stable [all]) Conf debhelper (1 stable [all]) -Conf autopkgtest-satdep (1 stable [amd64])' apt install -fso Debug::pkgProblemResolver=1 -o DEbug::pkgDepCache::Marker=1 +Conf autopkgtest-satdep (1 stable [amd64])' apt install -fso Debug::pkgProblemResolver=1 -o DEbug::pkgDepCache::Marker=1 --solver internal diff --git a/test/integration/test-external-installation-planner-protocol b/test/integration/test-external-installation-planner-protocol index 192f21b..1a04d24 100755 --- a/test/integration/test-external-installation-planner-protocol +++ b/test/integration/test-external-installation-planner-protocol @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' buildsimplenativepackage 'libfoo' 'amd64' '3' 'experimental' 'Multi-Arch: same' diff --git a/test/integration/test-handling-broken-orgroups b/test/integration/test-handling-broken-orgroups index 564ea88..1c20ae4 100755 --- a/test/integration/test-handling-broken-orgroups +++ b/test/integration/test-handling-broken-orgroups @@ -47,6 +47,7 @@ Inst coolstuff2 (1.0-1 unstable [all]) Conf stuff (1.0-1 unstable [all]) Conf coolstuff2 (1.0-1 unstable [all])' aptget install coolstuff2 -s +testfailuremsg 'E: Unsatisfiable dependency group coolstuff-broken:i386=1.0-1 -> cool2:i386' aptget install coolstuff-broken --solver 3.0 -s testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -58,7 +59,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: coolstuff-broken : Depends: cool2 but it is not installable or stuff2 but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget install coolstuff-broken -s +E: Unable to correct problems, you have held broken packages.' aptget install coolstuff-broken --solver internal -s testsuccessequal 'Reading package lists... Building dependency tree... @@ -94,6 +95,7 @@ Inst coolstuff-provided (1.0-1 unstable [all]) Conf extrastuff (1.0-1 unstable [all]) Conf coolstuff-provided (1.0-1 unstable [all])' aptget install coolstuff-provided -s +testfailuremsg 'E: Unsatisfiable dependency group coolstuff-provided-broken:i386=1.0-1 -> cool2:i386' aptget install coolstuff-provided-broken --solver 3.0 -s testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -105,4 +107,4 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: coolstuff-provided-broken : Depends: cool2 but it is not installable or stuff-abi-2 -E: Unable to correct problems, you have held broken packages.' aptget install coolstuff-provided-broken -s +E: Unable to correct problems, you have held broken packages.' aptget install coolstuff-provided-broken --solver internal -s diff --git a/test/integration/test-ignore-provides-if-versioned-breaks b/test/integration/test-ignore-provides-if-versioned-breaks index ebcbecf..7947d6d 100755 --- a/test/integration/test-ignore-provides-if-versioned-breaks +++ b/test/integration/test-ignore-provides-if-versioned-breaks @@ -32,7 +32,10 @@ insertpackage 'unstable' 'foo-same-breaker-none' 'i386' '1.0' 'Breaks: foo-same' setupaptarchive - +testfailuremsg 'E: Conflict: foo:i386 but no versions are installable +E: Uninstallable version: foo-breaker-none:i386=1.0 -> not foo:i386=4.0 +E: Uninstallable version: foo-breaker-none:i386=1.0 -> not foo:i386=2.0 +E: Uninstallable version: foo-breaker-none:i386=1.0 -> not foo:i386=2.0' aptget install foo-provider foo-breaker-none -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -43,7 +46,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo-breaker-none : Breaks: foo -E: Unable to correct problems, you have held broken packages.' aptget install foo-provider foo-breaker-none -s +E: Unable to correct problems, you have held broken packages.' aptget install foo-provider foo-breaker-none -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... @@ -71,6 +74,10 @@ Conf foo (4.0 unstable [i386]) Conf foo-breaker-3 (1.0 unstable [i386]) Conf foo-provider (1.0 unstable [i386])' aptget install foo-provider foo-breaker-3 -s +testfailuremsg 'E: Conflict: foo-foreign:amd64 but no versions are installable +E: Uninstallable version: foo-foreign-breaker-none:i386=1.0 -> not foo-foreign:amd64=4.0 +E: Uninstallable version: foo-foreign-breaker-none:i386=1.0 -> not foo-foreign:amd64=2.0 +E: Uninstallable version: foo-foreign-breaker-none:i386=1.0 -> not foo-foreign:amd64=4.0' aptget install foo-foreign-provider foo-foreign-breaker-none -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -81,7 +88,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo-foreign-breaker-none : Breaks: foo-foreign -E: Unable to correct problems, you have held broken packages.' aptget install foo-foreign-provider foo-foreign-breaker-none -s +E: Unable to correct problems, you have held broken packages.' aptget install foo-foreign-provider foo-foreign-breaker-none -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... @@ -109,6 +116,7 @@ Conf foo-foreign:amd64 (4.0 unstable [amd64]) Conf foo-foreign-breaker-3 (1.0 unstable [i386]) Conf foo-foreign-provider (1.0 unstable [i386])' aptget install foo-foreign-provider foo-foreign-breaker-3 -s +testfailuremsg 'E: Conflict: -> foo-same:i386 but foo-same-breaker-none:i386=1.0 -> not foo-same:i386=2.0 -> not foo-same:i386' aptget install foo-same-provider foo-same-breaker-none -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -119,7 +127,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo-same-breaker-none : Breaks: foo-same -E: Unable to correct problems, you have held broken packages.' aptget install foo-same-provider foo-same-breaker-none -s +E: Unable to correct problems, you have held broken packages.' aptget install foo-same-provider foo-same-breaker-none -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... diff --git a/test/integration/test-ignore-provides-if-versioned-conflicts b/test/integration/test-ignore-provides-if-versioned-conflicts index 3243cfb..dd24263 100755 --- a/test/integration/test-ignore-provides-if-versioned-conflicts +++ b/test/integration/test-ignore-provides-if-versioned-conflicts @@ -33,6 +33,10 @@ insertpackage 'unstable' 'foo-same-breaker-none' 'i386' '1.0' 'Conflicts: foo-sa setupaptarchive +testfailuremsg 'E: Conflict: foo:i386 but no versions are installable +E: Uninstallable version: foo-breaker-none:i386=1.0 -> not foo:i386=4.0 +E: Uninstallable version: foo-breaker-none:i386=1.0 -> not foo:i386=2.0 +E: Uninstallable version: foo-breaker-none:i386=1.0 -> not foo:i386=2.0' aptget install foo-provider foo-breaker-none -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -43,7 +47,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo-breaker-none : Conflicts: foo -E: Unable to correct problems, you have held broken packages.' aptget install foo-provider foo-breaker-none -s +E: Unable to correct problems, you have held broken packages.' aptget install foo-provider foo-breaker-none -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... @@ -71,6 +75,10 @@ Conf foo (4.0 unstable [i386]) Conf foo-breaker-3 (1.0 unstable [i386]) Conf foo-provider (1.0 unstable [i386])' aptget install foo-provider foo-breaker-3 -s +testfailuremsg 'E: Conflict: foo-foreign:amd64 but no versions are installable +E: Uninstallable version: foo-foreign-breaker-none:i386=1.0 -> not foo-foreign:amd64=4.0 +E: Uninstallable version: foo-foreign-breaker-none:i386=1.0 -> not foo-foreign:amd64=2.0 +E: Uninstallable version: foo-foreign-breaker-none:i386=1.0 -> not foo-foreign:amd64=4.0' aptget install foo-foreign-provider foo-foreign-breaker-none -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -81,7 +89,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo-foreign-breaker-none : Conflicts: foo-foreign -E: Unable to correct problems, you have held broken packages.' aptget install foo-foreign-provider foo-foreign-breaker-none -s +E: Unable to correct problems, you have held broken packages.' aptget install foo-foreign-provider foo-foreign-breaker-none -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... @@ -109,6 +117,7 @@ Conf foo-foreign:amd64 (4.0 unstable [amd64]) Conf foo-foreign-breaker-3 (1.0 unstable [i386]) Conf foo-foreign-provider (1.0 unstable [i386])' aptget install foo-foreign-provider foo-foreign-breaker-3 -s +testfailuremsg 'E: Conflict: -> foo-same:i386 but foo-same-breaker-none:i386=1.0 -> not foo-same:i386=2.0 -> not foo-same:i386' aptget install foo-same-provider foo-same-breaker-none -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -119,7 +128,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo-same-breaker-none : Conflicts: foo-same -E: Unable to correct problems, you have held broken packages.' aptget install foo-same-provider foo-same-breaker-none -s +E: Unable to correct problems, you have held broken packages.' aptget install foo-same-provider foo-same-breaker-none -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... diff --git a/test/integration/test-multiarch-allowed b/test/integration/test-multiarch-allowed index fc63d0e..298867c 100755 --- a/test/integration/test-multiarch-allowed +++ b/test/integration/test-multiarch-allowed @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' insertpackage 'unstable' 'foo' 'amd64,i386' '1' 'Multi-Arch: allowed' @@ -63,20 +64,23 @@ Inst needsfoo:i386 (1 unstable [i386]) Conf foo:i386 (1 unstable [i386]) Conf needsfoo:i386 (1 unstable [i386])' aptget install needsfoo:i386 -s # FIXME: same problem, but two different unmet dependency messages depending on install order +testfailuremsg "E: Conflict: -> needsfoo:i386=1 but foo:amd64=1 -> not foo:i386=1 -> not needsfoo:i386=1" aptget install needsfoo:i386 foo:amd64 -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: foo : Conflicts: foo:i386 but 1 is to be installed foo:i386 : Conflicts: foo but 1 is to be installed -E: Unable to correct problems, you have held broken packages." aptget install needsfoo:i386 foo:amd64 -s +E: Unable to correct problems, you have held broken packages." aptget install needsfoo:i386 foo:amd64 -s --solver internal +testfailuremsg "E: Conflict: -> needsfoo:i386=1 but foo:amd64=1 -> not foo:i386=1 -> not needsfoo:i386=1" aptget install foo:amd64 needsfoo:i386 -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: needsfoo:i386 : Depends: foo:i386 but it is not installable -E: Unable to correct problems, you have held broken packages." aptget install foo:amd64 needsfoo:i386 -s +E: Unable to correct problems, you have held broken packages." aptget install foo:amd64 needsfoo:i386 -s --solver internal +testfailuremsg "E: Conflict: -> needsfoo:amd64=1 but foo:i386=1 -> not foo:amd64=1 -> not needsfoo:amd64=1" aptget install needsfoo foo:i386 -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: foo : Conflicts: foo:i386 but 1 is to be installed foo:i386 : Conflicts: foo but 1 is to be installed -E: Unable to correct problems, you have held broken packages." aptget install needsfoo foo:i386 -s +E: Unable to correct problems, you have held broken packages." aptget install needsfoo foo:i386 -s --solver internal solveableinsinglearch1() { testsuccessequal "Reading package lists... @@ -127,6 +131,16 @@ Conf $1 (1 unstable [amd64])" aptget install $1 foo:i386 -s testneedsfooallgood 'needsfooany' testneedsfooallgood 'needsfoover1' +if [ "$APT_SOLVER" = "3.0" ]; then +NEEDSFOO2NATIVE="$BADPREFIX +The following packages have unmet dependencies: + needsfoover2 : Depends: foo:any (>= 2) +E: Unsatisfiable dependency group needsfoover2:amd64=1 -> foo:any:any" +NEEDSFOO2FOREIGN="$BADPREFIX +The following packages have unmet dependencies: + needsfoover2:i386 : Depends: foo:any (>= 2) +E: Unsatisfiable dependency group needsfoover2:i386=1 -> foo:any:any" +else NEEDSFOO2NATIVE="$BADPREFIX The following packages have unmet dependencies: needsfoover2 : Depends: foo:any (>= 2) @@ -135,32 +149,38 @@ NEEDSFOO2FOREIGN="$BADPREFIX The following packages have unmet dependencies: needsfoover2:i386 : Depends: foo:any (>= 2) E: Unable to correct problems, you have held broken packages." +fi testfailureequal "$NEEDSFOO2NATIVE" aptget install needsfoover2 -s testfailureequal "$NEEDSFOO2FOREIGN" aptget install needsfoover2:i386 -s testfailureequal "$NEEDSFOO2FOREIGN" aptget install needsfoover2:i386 foo:i386 -s testfailureequal "$NEEDSFOO2NATIVE" aptget install needsfoover2 foo:i386 -s solveableinsinglearch2() { + testfailuremsg 'E: Conflict: hatesfoo:amd64=1 -> not foo:amd64=1 but foo:amd64=1' aptget install foo hatesfoo -s --solver 3.0 + testfailuremsg 'E: Conflict: hatesfooany:amd64=1 -> not foo:amd64=1 but foo:amd64=1' aptget install foo hatesfooany -s --solver 3.0 + testfailuremsg 'E: Conflict: hatesfoonative:amd64=1 -> not foo:amd64=1 but foo:amd64=1' aptget install foo hatesfoonative -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: hatesfoo : Conflicts: foo but 1 is to be installed -E: Unable to correct problems, you have held broken packages." aptget install foo hatesfoo -s +E: Unable to correct problems, you have held broken packages." aptget install foo hatesfoo -s --solver internal # the message differs slightly between single and multiarch - testfailuremsg 'E: Unable to correct problems, you have held broken packages.' aptget install foo hatesfooany -s + testfailuremsg 'E: Unable to correct problems, you have held broken packages.' aptget install foo hatesfooany -s --solver internal testfailureequal "$BADPREFIX The following packages have unmet dependencies: hatesfoonative : Conflicts: foo:amd64 -E: Unable to correct problems, you have held broken packages." aptget install foo hatesfoonative -s +E: Unable to correct problems, you have held broken packages." aptget install foo hatesfoonative -s --solver internal } solveableinsinglearch2 +testfailuremsg "E: Conflict: hatesfoo:amd64=1 -> not foo:i386=1 but foo:i386=1" aptget install foo:i386 hatesfoo -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: hatesfoo : Conflicts: foo:i386 but 1 is to be installed -E: Unable to correct problems, you have held broken packages." aptget install foo:i386 hatesfoo -s +E: Unable to correct problems, you have held broken packages." aptget install foo:i386 hatesfoo -s --solver internal +testfailuremsg "E: Conflict: hatesfooany:amd64=1 -> not foo:i386=1 but foo:i386=1" aptget install foo:i386 hatesfooany -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: hatesfooany : Conflicts: foo:any -E: Unable to correct problems, you have held broken packages." aptget install foo:i386 hatesfooany -s +E: Unable to correct problems, you have held broken packages." aptget install foo:i386 hatesfooany -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... The following NEW packages will be installed: @@ -171,11 +191,12 @@ Inst hatesfoonative (1 unstable [amd64]) Conf foo:i386 (1 unstable [i386]) Conf hatesfoonative (1 unstable [amd64])' aptget install foo:i386 hatesfoonative -s +testfailuremsg "E: Unsatisfiable dependency group needscoolfoo:i386=1 -> coolfoo:i386" aptget install needscoolfoo:i386 -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: needscoolfoo:i386 : Depends: coolfoo:i386 but it is not installable Depends: coolbar:i386 but it is not installable -E: Unable to correct problems, you have held broken packages." aptget install needscoolfoo:i386 -s +E: Unable to correct problems, you have held broken packages." aptget install needscoolfoo:i386 -s --solver internal solveneedscoolfooanyin() { local NEEDSCOOL='needscoolfooany' if [ "$1" != 'amd64' ]; then NEEDSCOOL="${NEEDSCOOL}:$1"; fi @@ -243,15 +264,17 @@ Inst needscoolfoover1 (1 unstable [amd64]) Conf coolfoo (1 unstable [amd64]) Conf coolfoover (1 unstable [amd64]) Conf needscoolfoover1 (1 unstable [amd64])' aptget install needscoolfoover1 -s + testfailuremsg "E: Unsatisfiable dependency group needscoolfoover2:amd64=1 -> coolfoo:any:any" aptget install needscoolfoover2 -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: needscoolfoover2 : Depends: coolfoo:any (>= 2) -E: Unable to correct problems, you have held broken packages." aptget install needscoolfoover2 -s +E: Unable to correct problems, you have held broken packages." aptget install needscoolfoover2 -s --solver internal + testfailuremsg "E: Unsatisfiable dependency group needscoolfoover3:amd64=1 -> coolfoo:any:any" aptget install needscoolfoover3 -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: needscoolfoover3 : Depends: coolfoo:any (>= 2) Depends: coolbar:any (>= 3) -E: Unable to correct problems, you have held broken packages." aptget install needscoolfoover3 -s +E: Unable to correct problems, you have held broken packages." aptget install needscoolfoover3 -s --solver internal } solveableinsinglearch3 diff --git a/test/integration/test-multiarch-barbarian b/test/integration/test-multiarch-barbarian index 293f227..b897834 100755 --- a/test/integration/test-multiarch-barbarian +++ b/test/integration/test-multiarch-barbarian @@ -5,6 +5,7 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' buildsimplenativepackage 'foreign-foo' 'amd64,i386' '1' 'stable' 'Multi-Arch: foreign diff --git a/test/integration/test-multiarch-foreign b/test/integration/test-multiarch-foreign index 713b27b..228fa88 100755 --- a/test/integration/test-multiarch-foreign +++ b/test/integration/test-multiarch-foreign @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' 'armel' insertpackage 'unstable' 'cool-foo' 'amd64,i386' '1.0' 'Depends: foo' @@ -178,16 +179,18 @@ distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: ' + testfailuremsg "E: Conflict: -> ${1%:*}:$4=1.0 but hates-foo:amd64=1.0 -> not ${1%:*}:$4=1.0" aptget install $1 hates-foo -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: hates-foo : Conflicts: foo Conflicts: foo:i386 Conflicts: foo:armel -E: Unable to correct problems, you have held broken packages." aptget install $1 hates-foo -s +E: Unable to correct problems, you have held broken packages." aptget install $1 hates-foo -s --solver internal + testfailuremsg "E: Conflict: $2:amd64=1.0 -> not foo:$4=1.0 but foo:$4=1.0" aptget install $1 $2 -s --solver 3.0 testfailureequal "$BADPREFIX The following packages have unmet dependencies: $2 : Conflicts: foo:$4 -E: Unable to correct problems, you have held broken packages." aptget install $1 $2 -s +E: Unable to correct problems, you have held broken packages." aptget install $1 $2 -s --solver internal testsuccessequal "Reading package lists... Building dependency tree... The following NEW packages will be installed: diff --git a/test/integration/test-not-upgrading-removed-depends b/test/integration/test-not-upgrading-removed-depends index 54b2042..c7d67af 100755 --- a/test/integration/test-not-upgrading-removed-depends +++ b/test/integration/test-not-upgrading-removed-depends @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' insertpackage 'unstable' 'untouchable-for-solving' 'all' '1' 'Conflicts: main' diff --git a/test/integration/test-prefer-higher-priority-providers b/test/integration/test-prefer-higher-priority-providers index 7c3f323..6f07db5 100755 --- a/test/integration/test-prefer-higher-priority-providers +++ b/test/integration/test-prefer-higher-priority-providers @@ -90,6 +90,10 @@ Inst awesome (1 unstable [all]) Conf baz (1 unstable [all]) Conf awesome (1 unstable [all])" aptget install awesome foo- bar- -s +testfailuremsg "E: Unsatisfiable dependency: awesome:amd64=1 -> foo:amd64=1 | bar:amd64=1 | baz:amd64=1 +E: Not considered: foo:amd64=1: not foo:amd64 -> not foo:amd64=1 +E: Not considered: bar:amd64=1: not bar:amd64 -> not bar:amd64=1 +E: Not considered: baz:amd64=1: not baz:amd64 -> not baz:amd64=1" aptget install awesome foo- bar- baz- -s --solver 3.0 testfailureequal "Reading package lists... Building dependency tree... Package 'foo' is not installed, so not removed @@ -103,4 +107,4 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: awesome : Depends: stuff -E: Unable to correct problems, you have held broken packages." aptget install awesome foo- bar- baz- -s +E: Unable to correct problems, you have held broken packages." aptget install awesome foo- bar- baz- -s --solver internal diff --git a/test/integration/test-resolver-delays-remove-decisions b/test/integration/test-resolver-delays-remove-decisions index a069954..062a2e7 100755 --- a/test/integration/test-resolver-delays-remove-decisions +++ b/test/integration/test-resolver-delays-remove-decisions @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' insertinstalledpackage 'stuff' 'all' '1' @@ -21,6 +22,18 @@ setupaptarchive # as we do not question the remove later on testsuccessequal "Reading package lists... Building dependency tree... +The following additional packages will be installed: + bar +The following NEW packages will be installed: + bar foobar +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst bar (1 unstable [all]) +Inst foobar (1 unstable [all]) +Conf bar (1 unstable [all]) +Conf foobar (1 unstable [all])" apt install foobar -s + +testsuccessequal "Reading package lists... +Building dependency tree... MarkInstall foobar:amd64 < none -> 1 @un puN Ib > FU=1 Installing foo:amd64 as Depends of foobar:amd64 Delayed Removing: stuff:amd64 as upgrade is not an option for foo:amd64 (1) @@ -41,12 +54,29 @@ The following NEW packages will be installed: Inst bar (1 unstable [all]) Inst foobar (1 unstable [all]) Conf bar (1 unstable [all]) -Conf foobar (1 unstable [all])" apt install foobar -s -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 +Conf foobar (1 unstable [all])" apt install foobar -s -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 --solver internal insertinstalledpackage 'uninstallable' 'all' '1' testsuccessequal "Reading package lists... Building dependency tree... +The following additional packages will be installed: + foo foo-dep +The following packages will be REMOVED: + stuff +The following NEW packages will be installed: + foo foo-dep foobar +0 upgraded, 3 newly installed, 1 to remove and 0 not upgraded. +Remv stuff [1] +Inst foo-dep (1 unstable [all]) +Inst foo (1 unstable [all]) +Inst foobar (1 unstable [all]) +Conf foo-dep (1 unstable [all]) +Conf foo (1 unstable [all]) +Conf foobar (1 unstable [all])" apt install foobar -s + +testsuccessequal "Reading package lists... +Building dependency tree... MarkInstall foobar:amd64 < none -> 1 @un puN Ib > FU=1 Installing foo:amd64 as Depends of foobar:amd64 Delayed Removing: stuff:amd64 as upgrade is not an option for foo:amd64 (1) @@ -71,11 +101,29 @@ Inst foo (1 unstable [all]) Inst foobar (1 unstable [all]) Conf foo-dep (1 unstable [all]) Conf foo (1 unstable [all]) -Conf foobar (1 unstable [all])" apt install foobar -s -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 +Conf foobar (1 unstable [all])" apt install foobar -s -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 --solver internal # Same solution but the installs are considered protected now as there is no other solution testsuccessequal "Reading package lists... Building dependency tree... +Package 'bar' is not installed, so not removed +The following additional packages will be installed: + foo foo-dep +The following packages will be REMOVED: + stuff +The following NEW packages will be installed: + foo foo-dep foobar +0 upgraded, 3 newly installed, 1 to remove and 0 not upgraded. +Remv stuff [1] +Inst foo-dep (1 unstable [all]) +Inst foo (1 unstable [all]) +Inst foobar (1 unstable [all]) +Conf foo-dep (1 unstable [all]) +Conf foo (1 unstable [all]) +Conf foobar (1 unstable [all])" apt install foobar bar- -q=0 -s + +testsuccessequal "Reading package lists... +Building dependency tree... MarkInstall foobar:amd64 < none -> 1 @un puN Ib > FU=1 Installing foo:amd64 as Depends of foobar:amd64 Removing: stuff:amd64 as upgrade is not an option for foo:amd64 (1) @@ -103,4 +151,4 @@ Inst foo (1 unstable [all]) Inst foobar (1 unstable [all]) Conf foo-dep (1 unstable [all]) Conf foo (1 unstable [all]) -Conf foobar (1 unstable [all])" apt install foobar bar- -q=0 -s -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 +Conf foobar (1 unstable [all])" apt install foobar bar- -q=0 -s -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 --solver internal diff --git a/test/integration/test-resolver-provider-exchange b/test/integration/test-resolver-provider-exchange index 0a85db3..45d9369 100755 --- a/test/integration/test-resolver-provider-exchange +++ b/test/integration/test-resolver-provider-exchange @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' insertinstalledpackage 'fuse' 'all' '2' diff --git a/test/integration/test-specific-architecture-dependencies b/test/integration/test-specific-architecture-dependencies index 447e407..ca39f18 100755 --- a/test/integration/test-specific-architecture-dependencies +++ b/test/integration/test-specific-architecture-dependencies @@ -4,6 +4,7 @@ set -e TESTDIR="$(readlink -f "$(dirname "$0")")" . "$TESTDIR/framework" setupenvironment +allowremovemanual configarchitecture 'amd64' 'i386' insertpackage 'unstable' 'libc6' 'amd64,i386' '1' 'Multi-Arch: same' @@ -193,6 +194,7 @@ The following NEW packages will be installed: Inst foo-depender (1 unstable [amd64]) Conf foo-depender (1 unstable [amd64])' aptget install foo-depender -s +testfailuremsg 'E: Unsatisfiable dependency group foo-depender:i386=1 -> foo:i386' aptget install foo-depender:i386 -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -203,7 +205,7 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: foo-depender:i386 : Depends: foo:i386 but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget install foo-depender:i386 -s +E: Unable to correct problems, you have held broken packages.' aptget install foo-depender:i386 -s --solver internal testsuccessequal 'Reading package lists... Building dependency tree... @@ -311,6 +313,7 @@ Remv libold [1] Inst breaker-x64 (1 unstable [amd64]) Conf breaker-x64 (1 unstable [amd64])' aptget install breaker-x64:amd64 -s +testfailuremsg 'E: Unsatisfiable dependency group depender-x32:amd64=1 -> libc6:i386:any' aptget install depender-x32 -s --solver 3.0 testfailureequal 'Reading package lists... Building dependency tree... Some packages could not be installed. This may mean that you have @@ -321,4 +324,4 @@ The following information may help to resolve the situation: The following packages have unmet dependencies: depender-x32 : Depends: libc6:i386 but it is not installable -E: Unable to correct problems, you have held broken packages.' aptget install depender-x32 -s +E: Unable to correct problems, you have held broken packages.' aptget install depender-x32 -s --solver internal diff --git a/test/integration/test-ubuntu-bug-1974196 b/test/integration/test-ubuntu-bug-1974196 index 7c38723..08dccff 100755 --- a/test/integration/test-ubuntu-bug-1974196 +++ b/test/integration/test-ubuntu-bug-1974196 @@ -22,6 +22,19 @@ noprogress() { testsuccessequal "Reading package lists... Building dependency tree... +The following additional packages will be installed: + depends pkg1 +The following packages will be upgraded: + depends pkg0 pkg1 +3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst depends [1] (2 unstable [all]) [] +Inst pkg0 [1] (2 unstable [all]) [] +Inst pkg1 [1] (2 unstable [all]) +Conf depends (2 unstable [all]) +Conf pkg0 (2 unstable [all]) +Conf pkg1 (2 unstable [all])" aptget install pkg0 -s +testsuccessequal "Reading package lists... +Building dependency tree... Upgrading: depends:arm64 < 1 | 2 @ii umH Ib > due to depends:arm64 Depends on pkg0:arm64 < 1 -> 2 @ii pumU > (= 1) MarkInstall pkg0:arm64 < 1 -> 2 @ii pumU > FU=1 MarkInstall depends:arm64 < 1 -> 2 @ii umU Ib > FU=0 @@ -40,7 +53,7 @@ Inst pkg0 [1] (2 unstable [all]) [] Inst pkg1 [1] (2 unstable [all]) Conf depends (2 unstable [all]) Conf pkg0 (2 unstable [all]) -Conf pkg1 (2 unstable [all])" aptget install pkg0 -o debug::pkgdepcache::marker=1 -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::AutoInstall=1 -s +Conf pkg1 (2 unstable [all])" aptget install pkg0 -o debug::pkgdepcache::marker=1 -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::AutoInstall=1 -s --solver internal testsuccessequal "Percentage: 0 Message: Start up solver… diff --git a/test/integration/test-unpack-different-version-unpacked b/test/integration/test-unpack-different-version-unpacked index e7da64c..810e2e9 100755 --- a/test/integration/test-unpack-different-version-unpacked +++ b/test/integration/test-unpack-different-version-unpacked @@ -14,14 +14,24 @@ cleanstatus() { rm rootdir/var/cache/apt/*.bin } -#FIXME: the reported version is wrong, it should be 1, not 2 insertinstalledpackage 'libqtcore4' 'i386,amd64' '1' 'Multi-Arch: same' '' 'install ok unpacked' +#FIXME(internal): the reported version is wrong, it should be 1, not 2 testsuccessequal 'Reading package lists... Building dependency tree... 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. 2 not fully installed or removed. Conf libqtcore4 (2 unstable [amd64]) -Conf libqtcore4:i386 (2 unstable [i386])' aptget install -s -f +Conf libqtcore4:i386 (2 unstable [i386])' aptget install -s -f --solver internal + +# FIXED(3.0): the reported version is correct now +testsuccessequal 'Reading package lists... +Building dependency tree... +Solving dependencies... +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded. +2 not fully installed or removed. +Conf libqtcore4 (1 [amd64]) +Conf libqtcore4:i386 (1 [i386])' aptget install -s -f --solver 3.0 + cleanstatus insertinstalledpackage 'libqtcore4' 'amd64' '2' 'Multi-Arch: same' '' 'install ok unpacked' diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc index 9771c5d..296750b 100644 --- a/test/libapt/parsedepends_test.cc +++ b/test/libapt/parsedepends_test.cc @@ -311,3 +311,55 @@ TEST(ParseDependsTest, SpaceHate) EXPECT_EQ("1", Version); EXPECT_EQ(pkgCache::Dep::Equals, Op); } + +static void ArchLimitSpaceTesting(char const * const Depends) +{ + SCOPED_TRACE(Depends); + _config->Set("APT::Architecture", "amd64"); + const char* const End = Depends + strlen(Depends); + const char* Start = Depends; + std::string Package; + std::string Version; + unsigned int Op = 29; + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, true, false, true, "amd64"); + EXPECT_NE(nullptr, Start); + EXPECT_EQ("foobar", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(pkgCache::Dep::NoOp, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, true, false, true, "amd64"); + EXPECT_NE(nullptr, Start); + EXPECT_EQ("", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(pkgCache::Dep::NoOp, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, true, false, true, "amd64"); + EXPECT_EQ(End, Start); + EXPECT_EQ("baz", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(pkgCache::Dep::NoOp, Op); +} +TEST(ParseDependsTest, ArchLimitSpaceNormal) +{ + ArchLimitSpaceTesting("foobar [i386 armhf armel amd64], blah [!arm64 !x32 !amd64], baz"); +} +TEST(ParseDependsTest, ArchLimitSpaceLove) +{ + ArchLimitSpaceTesting("foobar [ i386 armhf armel amd64 ] , blah [ !arm64 !x32 !amd64 ] , baz"); +} +TEST(ParseDependsTest, ArchLimitSpaceNoLove) +{ + ArchLimitSpaceTesting("foobar[i386 armhf armel amd64],blah[!arm64 !x32 !amd64],baz"); +} +TEST(ParseDependsTest, ArchLimitBadSyntax) +{ + std::string Package; + std::string Version; + unsigned int Op = 29; + for (auto const * const Depends : { "foobar [! amd64]", "foobar []", "foobar [ ]" }) + { + SCOPED_TRACE(Depends); + EXPECT_EQ(nullptr, debListParser::ParseDepends(Depends, Depends + strlen(Depends), Package, Version, Op, true, false, true, "amd64")); + } +} |