diff options
150 files changed, 7527 insertions, 4909 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dfc753ae8..6a6ff0611 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,11 @@ image: debian:unstable variables: DEBIAN_FRONTEND: noninteractive + CCACHE_DIR: $CI_PROJECT_DIR/.ccache + CCACHE_BASEDIR: $CI_PROJECT_DIR +cache: + paths: + - .ccache test as root: stage: test @@ -8,15 +13,14 @@ test as root: - adduser --home /home/travis travis --quiet --disabled-login --gecos "" --uid 1000 - rm -f /etc/dpkg/dpkg.cfg.d/excludes - apt-get update - - apt-get install -qq build-essential expect gcovr sudo + - apt-get install -qq build-essential expect sudo ccache - chmod -R o+rwX $PWD - ./prepare-release travis-ci - - sudo -u travis mkdir build - - sudo -u travis env -C build cmake -DCMAKE_BUILD_TYPE=Coverage -G Ninja .. - - sudo -u travis ninja -C build + - sudo -u travis mkdir -p build .ccache + - sudo -u travis env -C build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -G Ninja .. + - sudo -u travis --preserve-env=CCACHE_DIR,CCACHE_BASEDIR ninja -C build - CTEST_OUTPUT_ON_FAILURE=1 ninja -C build test - unbuffer ./test/integration/run-tests -q -j 4 - - gcovr test as user: stage: test @@ -24,13 +28,12 @@ test as user: - adduser --home /home/travis travis --quiet --disabled-login --gecos "" --uid 1000 - rm -f /etc/dpkg/dpkg.cfg.d/excludes - apt-get update - - apt-get install -qq build-essential expect gcovr sudo + - apt-get install -qq build-essential expect sudo ccache - chmod 755 /root - chmod -R o+rwX $PWD - ./prepare-release travis-ci - - sudo -u travis mkdir build - - sudo -u travis env -C build cmake -DCMAKE_BUILD_TYPE=Coverage -G Ninja .. - - sudo -u travis ninja -C build + - sudo -u travis mkdir -p build .ccache + - sudo -u travis env -C build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -G Ninja .. + - sudo -u travis --preserve-env=CCACHE_DIR,CCACHE_BASEDIR ninja -C build - sudo -u travis CTEST_OUTPUT_ON_FAILURE=1 ninja -C build test - sudo -u travis unbuffer ./test/integration/run-tests -q -j 4 - - sudo -u travis gcovr diff --git a/CMake/FindGcrypt.cmake b/CMake/FindGcrypt.cmake new file mode 100644 index 000000000..56bfc9fef --- /dev/null +++ b/CMake/FindGcrypt.cmake @@ -0,0 +1,25 @@ +# - Try to find GCRYPT +# Once done, this will define +# +# GCRYPT_FOUND - system has GCRYPT +# GCRYPT_INCLUDE_DIRS - the GCRYPT include directories +# GCRYPT_LIBRARIES - the GCRYPT library +find_package(PkgConfig) + +pkg_check_modules(GCRYPT_PKGCONF libgcrypt) + +find_path(GCRYPT_INCLUDE_DIRS + NAMES gcrypt.h + PATHS ${GCRYPT_PKGCONF_INCLUDE_DIRS} +) + + +find_library(GCRYPT_LIBRARIES + NAMES gcrypt + PATHS ${GCRYPT_PKGCONF_LIBRARY_DIRS} +) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(GCRYPT DEFAULT_MSG GCRYPT_INCLUDE_DIRS GCRYPT_LIBRARIES) + +mark_as_advanced(GCRYPT_INCLUDE_DIRS GCRYPT_LIBRARIES) diff --git a/CMake/config.h.in b/CMake/config.h.in index b89f7297d..911d42464 100644 --- a/CMake/config.h.in +++ b/CMake/config.h.in @@ -64,6 +64,9 @@ /* The mail address to reach upstream */ #define PACKAGE_MAIL "${PACKAGE_MAIL}" +/* Guard for code that should only be emitted when compiling apt */ +#define APT_COMPILING_APT + /* Various directories */ #cmakedefine CMAKE_INSTALL_FULL_BINDIR "${CMAKE_INSTALL_FULL_BINDIR}" #cmakedefine STATE_DIR "${STATE_DIR}" diff --git a/CMakeLists.txt b/CMakeLists.txt index 160f7f913..7ad97c40b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ include_directories(${PROJECT_BINARY_DIR}/include) enable_testing() option(WITH_DOC "Build documentation." ON) +option(WITH_TESTS "Build tests" ON) option(USE_NLS "Localisation support." ON) set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake") @@ -133,6 +134,8 @@ if (SECCOMP_FOUND) set(HAVE_SECCOMP 1) endif() +find_package(Gcrypt REQUIRED) + # Mount()ing and stat()ing and friends check_symbol_exists(statfs sys/vfs.h HAVE_VFS_H) check_include_files(sys/params.h HAVE_PARAMS_H) @@ -201,7 +204,7 @@ check_cxx_target(HAVE_FMV_SSE42_AND_CRC32DI "sse4.2" "__builtin_ia32_crc32di(0, # 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 "1.9.3") +set(PACKAGE_VERSION "1.9.10") string(REGEX MATCH "^[0-9.]+" PROJECT_VERSION ${PACKAGE_VERSION}) if (NOT DEFINED DPKG_DATADIR) @@ -63,7 +63,7 @@ You can also use the Ninja generator of CMake, to do that pass to the cmake invocation, and then use ninja instead of make. The source code uses in most parts a relatively uncommon indent convention, -namely 3 spaces with 8 space tab (see [doc/style.txt](https://anonscm.debian.org/git/apt/apt.git/tree/doc/style.txt) for more on this). +namely 3 spaces with 8 space tab (see [doc/style.txt](./doc/style.txt) for more on this). Adhering to it avoids unnecessary code-churn destroying history (aka: `git blame`) and you are therefore encouraged to write patches in this style. Your editor can surely help you with this, for vim the settings would be @@ -173,7 +173,7 @@ APT works in its internal resolver in two stages: First all packages are visited and marked for installation, keep back or removal. Option `Debug::pkgDepCache::Marker` shows this. This also decides which packages are to be installed to satisfy dependencies, which can be seen by `Debug::pkgDepCache::AutoInstall`. After this is done, we might -be in a situation in which two packages want to be installed, but only on of them can be. +be in a situation in which two packages want to be installed, but only one of them can be. It is the job of the `pkgProblemResolver` to decide which of two packages 'wins' and can therefore decide what has to happen. You can see the contenders as well as their fight and the resulting resolution with `Debug::pkgProblemResolver`. @@ -190,7 +190,7 @@ webserver for simpler and more controlled testing. ### Installation order -Dependencies are solved, packages downloaded: Everything read for the installation! +Dependencies are solved, packages downloaded: Everything is ready for the installation! The last step in the chain is often forgotten, but still very important: Packages have to be installed in a particular order so that their dependencies are satisfied, but at the same time you don't want to install very important and optional diff --git a/apt-pkg/CMakeLists.txt b/apt-pkg/CMakeLists.txt index db23a30f7..e9a629ccf 100644 --- a/apt-pkg/CMakeLists.txt +++ b/apt-pkg/CMakeLists.txt @@ -48,6 +48,7 @@ target_include_directories(apt-pkg $<$<BOOL:${UDEV_FOUND}>:${UDEV_INCLUDE_DIRS}> $<$<BOOL:${SYSTEMD_FOUND}>:${SYSTEMD_INCLUDE_DIRS}> ${ICONV_INCLUDE_DIRS} + $<$<BOOL:${GCRYPT_FOUND}>:${GCRYPT_INCLUDE_DIRS}> ) target_link_libraries(apt-pkg @@ -61,6 +62,7 @@ target_link_libraries(apt-pkg $<$<BOOL:${UDEV_FOUND}>:${UDEV_LIBRARIES}> $<$<BOOL:${SYSTEMD_FOUND}>:${SYSTEMD_LIBRARIES}> ${ICONV_LIBRARIES} + $<$<BOOL:${GCRYPT_FOUND}>:${GCRYPT_LIBRARIES}> ) set_target_properties(apt-pkg PROPERTIES VERSION ${MAJOR}.${MINOR}) set_target_properties(apt-pkg PROPERTIES SOVERSION ${MAJOR}) diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 58bd6475e..bbbda3bd3 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -25,7 +25,6 @@ #include <apt-pkg/hashes.h> #include <apt-pkg/indexfile.h> #include <apt-pkg/metaindex.h> -#include <apt-pkg/netrc.h> #include <apt-pkg/pkgcache.h> #include <apt-pkg/pkgrecords.h> #include <apt-pkg/sourcelist.h> @@ -2025,7 +2024,6 @@ void pkgAcqMetaClearSig::Failed(string const &Message,pkgAcquire::MethodConfig c * they would be considered as trusted later on */ string const FinalRelease = GetFinalFileNameFromURI(DetachedDataTarget.URI); string const PartialRelease = GetPartialFileNameFromURI(DetachedDataTarget.URI); - string const FinalReleasegpg = GetFinalFileNameFromURI(DetachedSigTarget.URI); string const FinalInRelease = GetFinalFilename(); Rename(DestFile, PartialRelease); TransactionManager->TransactionStageCopy(this, PartialRelease, FinalRelease); @@ -2225,6 +2223,11 @@ void pkgAcqMetaSig::Failed(string const &Message,pkgAcquire::MethodConfig const return; // ensures that a Release.gpg file in the lists/ is removed by the transaction + if (not MetaIndexFileSignature.empty()) + { + DestFile = MetaIndexFileSignature; + MetaIndexFileSignature.clear(); + } TransactionManager->TransactionStageRemoval(this, DestFile); // only allow going further if the user explicitly wants it @@ -2586,14 +2589,18 @@ bool pkgAcqDiffIndex::ParseDiffIndex(string const &IndexDiffFile) /*{{{*/ return false; } - for (auto const &patch: available_patches) - if (patch.result_hashes.usable() == false || - patch.patch_hashes.usable() == false || - patch.download_hashes.usable() == false) + { + auto const patch = std::find_if(available_patches.cbegin(), available_patches.cend(), [](auto const &patch) { + return not patch.result_hashes.usable() || + not patch.patch_hashes.usable() || + not patch.download_hashes.usable(); + }); + if (patch != available_patches.cend()) { - strprintf(ErrorText, "Provides no usable hashes for %s", patch.file.c_str()); + strprintf(ErrorText, "Provides no usable hashes for %s", patch->file.c_str()); return false; } + } // patching with too many files is rather slow compared to a fast download unsigned long const fileLimit = _config->FindI("Acquire::PDiffs::FileLimit", 0); @@ -2655,13 +2662,15 @@ bool pkgAcqDiffIndex::ParseDiffIndex(string const &IndexDiffFile) /*{{{*/ return false; std::string const PartialFile = GetPartialFileNameFromURI(Target.URI); std::string const PatchedFile = GetKeepCompressedFileName(PartialFile + "-patched", Target); - if (RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PartialFile) == false || - RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PatchedFile) == false) + if (not RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PartialFile) || + not RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PatchedFile)) return false; - for (auto const &ext : APT::Configuration::getCompressorExtensions()) { - if (RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PartialFile + ext) == false || - RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PatchedFile + ext) == false) + auto const exts = APT::Configuration::getCompressorExtensions(); + if (not std::all_of(exts.cbegin(), exts.cend(), [&](auto const &ext) { + return RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PartialFile + ext) && + RemoveFileForBootstrapLinking(ErrorText, CurrentPackagesFile, PatchedFile + ext); + })) return false; } std::string const Ext = Final.substr(CurrentPackagesFile.length()); @@ -3260,19 +3269,14 @@ void pkgAcqIndex::StageDownloadDone(string const &Message) // we need to verify the file against the current Release file again // on if-modfied-since hit to avoid a stale attack against us - if(StringToBool(LookupTag(Message,"IMS-Hit"),false) == true) + if (StringToBool(LookupTag(Message, "IMS-Hit"), false)) { - // copy FinalFile into partial/ so that we check the hash again - string const FinalFile = GetExistingFilename(GetFinalFileNameFromURI(Target.URI)); - if (symlink(FinalFile.c_str(), DestFile.c_str()) != 0) - _error->WarningE("pkgAcqIndex::StageDownloadDone", "Symlinking final file %s back to %s failed", FinalFile.c_str(), DestFile.c_str()); - else - { - EraseFileName = DestFile; - Filename = DestFile; - } + Filename = GetExistingFilename(GetFinalFileNameFromURI(Target.URI)); + EraseFileName = DestFile = flCombine(flNotFile(DestFile), flNotDir(Filename)); + if (symlink(Filename.c_str(), DestFile.c_str()) != 0) + _error->WarningE("pkgAcqIndex::StageDownloadDone", "Symlinking file %s to %s failed", Filename.c_str(), DestFile.c_str()); Stage = STAGE_DECOMPRESS_AND_VERIFY; - Desc.URI = "store:" + Filename; + Desc.URI = "store:" + DestFile; QueueURI(Desc); SetActiveSubprocess(::URI(Desc.URI).Access); return; @@ -3382,7 +3386,6 @@ pkgAcqArchive::pkgAcqArchive(pkgAcquire *const Owner, pkgSourceList *const Sourc Trusted = false; StoreFilename.clear(); - std::vector<std::unique_ptr<FileFd>> authconfs; for (auto Vf = Version.FileList(); Vf.end() == false; ++Vf) { auto const PkgF = Vf.File(); @@ -3390,8 +3393,6 @@ pkgAcqArchive::pkgAcqArchive(pkgAcquire *const Owner, pkgSourceList *const Sourc continue; if (PkgF.Flagged(pkgCache::Flag::NotSource)) continue; - if (PkgF.Flagged(pkgCache::Flag::PackagesRequireAuthorization) && !IsAuthorized(PkgF, authconfs)) - continue; pkgIndexFile *Index; if (Sources->FindIndex(PkgF, Index) == false) continue; diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc index f2a61a144..9656caf14 100644 --- a/apt-pkg/acquire-method.cc +++ b/apt-pkg/acquire-method.cc @@ -21,9 +21,6 @@ #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> #include <apt-pkg/hashes.h> -#include <apt-pkg/md5.h> -#include <apt-pkg/sha1.h> -#include <apt-pkg/sha2.h> #include <apt-pkg/strutl.h> #include <algorithm> diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 776c82b3b..8ebac6d2a 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -691,12 +691,12 @@ pkgAcquire::RunResult pkgAcquire::Run(int PulseIntervall) CheckDropPrivsMustBeDisabled(*this); Running = true; - - for (Queue *I = Queues; I != 0; I = I->Next) - I->Startup(); - + if (Log != 0) Log->Start(); + + for (Queue *I = Queues; I != 0; I = I->Next) + I->Startup(); bool WasCancelled = false; @@ -1378,8 +1378,6 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) int fd = _config->FindI("APT::Status-Fd",-1); if(fd > 0) { - ostringstream status; - unsigned long long ETA = 0; if(CurrentCPS > 0 && TotalBytes > CurrentBytes) ETA = (TotalBytes - CurrentBytes) / CurrentCPS; diff --git a/apt-pkg/cachefilter-patterns.cc b/apt-pkg/cachefilter-patterns.cc index bf6166ee4..5a58a9767 100644 --- a/apt-pkg/cachefilter-patterns.cc +++ b/apt-pkg/cachefilter-patterns.cc @@ -6,13 +6,43 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <config.h> + #include <apt-pkg/cachefilter-patterns.h> +#include <apti18n.h> + namespace APT { namespace Internal { +static const constexpr struct +{ + APT::StringView shortName; + APT::StringView longName; + bool takesArgument; +} shortPatterns[] = { + {"r"_sv, "?architecture"_sv, true}, + {"A"_sv, "?archive"_sv, true}, + {"M"_sv, "?automatic"_sv, false}, + {"b"_sv, "?broken"_sv, false}, + {"c"_sv, "?config-files"_sv, false}, + {"E"_sv, "?essential"_sv, false}, + {"F"_sv, "?false"_sv, false}, + {"g"_sv, "?garbage"_sv, false}, + {"i"_sv, "?installed"_sv, false}, + {"n"_sv, "?name"_sv, true}, + {"o"_sv, "?obsolete"_sv, false}, + {"O"_sv, "?origin"_sv, true}, + {"s"_sv, "?section"_sv, true}, + {"e"_sv, "?source-package"_sv, true}, + {"T"_sv, "?true"_sv, false}, + {"U"_sv, "?upgradable"_sv, false}, + {"V"_sv, "?version"_sv, true}, + {"v"_sv, "?virtual"_sv, false}, +}; + template <class... Args> std::string rstrprintf(Args... args) { @@ -28,41 +58,197 @@ std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseTop() auto node = parse(); skipSpace(); + if (node == nullptr) + throw Error{Node{0, sentence.size()}, "Expected pattern"}; + if (node->end != sentence.size()) + throw Error{Node{node->end, sentence.size()}, "Expected end of file"}; + + return node; +} + +// Parse any pattern +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parse() +{ + return parseOr(); +} + +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseOr() +{ + auto start = state.offset; + std::vector<std::unique_ptr<PatternTreeParser::Node>> nodes; + + auto firstNode = parseAnd(); + + if (firstNode == nullptr) + return nullptr; + + nodes.push_back(std::move(firstNode)); + for (skipSpace(); sentence[state.offset] == '|'; skipSpace()) + { + state.offset++; + skipSpace(); + auto node = parseAnd(); + + if (node == nullptr) + throw Error{Node{state.offset, sentence.size()}, "Expected pattern after |"}; + + nodes.push_back(std::move(node)); + } + + if (nodes.size() == 0) + return nullptr; + if (nodes.size() == 1) + return std::move(nodes[0]); + + auto node = std::make_unique<PatternNode>(); + node->start = start; + node->end = nodes[nodes.size() - 1]->end; + node->term = "?or"; + node->arguments = std::move(nodes); + node->haveArgumentList = true; + + return node; +} + +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseAnd() +{ + auto start = state.offset; + std::vector<std::unique_ptr<PatternTreeParser::Node>> nodes; + + for (skipSpace(); state.offset < sentence.size(); skipSpace()) { - Node node2; + auto node = parseUnary(); - node2.start = node->end; - node2.end = sentence.size(); - throw Error{node2, "Expected end of file"}; + if (node == nullptr) + break; + + nodes.push_back(std::move(node)); } + if (nodes.size() == 0) + return nullptr; + if (nodes.size() == 1) + return std::move(nodes[0]); + + auto node = std::make_unique<PatternNode>(); + node->start = start; + node->end = nodes[nodes.size() - 1]->end; + node->term = "?and"; + node->arguments = std::move(nodes); + node->haveArgumentList = true; + return node; } -// Parse any pattern -std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parse() +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseUnary() +{ + + if (sentence[state.offset] != '!') + return parsePrimary(); + + auto start = ++state.offset; + auto primary = parsePrimary(); + + if (primary == nullptr) + throw Error{Node{start, sentence.size()}, "Expected pattern"}; + + auto node = std::make_unique<PatternNode>(); + node->start = start; + node->end = primary->end; + node->term = "?not"; + node->arguments.push_back(std::move(primary)); + node->haveArgumentList = true; + return node; +} + +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parsePrimary() { std::unique_ptr<Node> node; + if ((node = parseShortPattern()) != nullptr) + return node; if ((node = parsePattern()) != nullptr) return node; + if ((node = parseGroup()) != nullptr) + return node; + + return nullptr; +} + +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseGroup() +{ + if (sentence[state.offset] != '(') + return nullptr; + + auto start = state.offset++; + + skipSpace(); + auto node = parse(); + if (node == nullptr) + throw Error{Node{state.offset, sentence.size()}, + "Expected pattern after '('"}; + skipSpace(); + + if (sentence[state.offset] != ')') + throw Error{Node{state.offset, sentence.size()}, + "Expected closing parenthesis"}; + + auto end = ++state.offset; + node->start = start; + node->end = end; + return node; +} + +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseArgument(bool shrt) +{ + std::unique_ptr<Node> node; if ((node = parseQuotedWord()) != nullptr) return node; - if ((node = parseWord()) != nullptr) + if ((node = parseWord(shrt)) != nullptr) + return node; + if ((node = parse()) != nullptr) + return node; + + throw Error{Node{state.offset, sentence.size()}, + "Expected pattern, quoted word, or word"}; +} + +// Parse a short pattern +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseShortPattern() +{ + if (sentence[state.offset] != '~') + return nullptr; + + for (auto &sp : shortPatterns) + { + if (sentence.substr(state.offset + 1, sp.shortName.size()) != sp.shortName) + continue; + + auto node = std::make_unique<PatternNode>(); + node->end = node->start = state.offset; + node->term = sp.longName; + + state.offset += sp.shortName.size() + 1; + if (sp.takesArgument) + { + node->arguments.push_back(parseArgument(true)); + node->haveArgumentList = true; + } + node->end = state.offset; + return node; + } - Node eNode; - eNode.end = eNode.start = state.offset; - throw Error{eNode, "Expected pattern, quoted word, or word"}; + throw Error{Node{state.offset, sentence.size()}, "Unknown short pattern"}; } // Parse a list pattern (or function call pattern) std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parsePattern() { - static const APT::StringView CHARS("0123456789" - "abcdefghijklmnopqrstuvwxyz" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "-"); + static constexpr auto CHARS = ("0123456789" + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "-"_sv); if (sentence[state.offset] != '?') return nullptr; @@ -77,6 +263,9 @@ std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parsePattern() node->term = sentence.substr(node->start, state.offset - node->start); + if (node->term.size() <= 1) + throw Error{*node, "Pattern must have a term/name"}; + node->end = skipSpace(); // We don't have any arguments, return node; if (sentence[state.offset] != '(') @@ -93,7 +282,7 @@ std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parsePattern() return node; } - node->arguments.push_back(parse()); + node->arguments.push_back(parseArgument(false)); skipSpace(); while (sentence[state.offset] == ',') { @@ -102,7 +291,7 @@ std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parsePattern() // This was a trailing comma - allow it and break the loop if (sentence[state.offset] == ')') break; - node->arguments.push_back(parse()); + node->arguments.push_back(parseArgument(false)); skipSpace(); } @@ -142,10 +331,13 @@ std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseQuotedWord() } // Parse a bare word atom -std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseWord() +std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseWord(bool shrt) { - static const APT::StringView DISALLOWED_START("?~,()\0", 6); - static const APT::StringView DISALLOWED(",()\0", 4); + static const constexpr auto DISALLOWED_START = "!?~|,() \0"_sv; + static const constexpr auto DISALLOWED_LONG = "|,()\0"_sv; + static const constexpr auto DISALLOWED_SHRT = "|,() ?\0"_sv; + const auto DISALLOWED = shrt ? DISALLOWED_SHRT : DISALLOWED_LONG; + if (DISALLOWED_START.find(sentence[state.offset]) != APT::StringView::npos) return nullptr; @@ -163,20 +355,21 @@ std::unique_ptr<PatternTreeParser::Node> PatternTreeParser::parseWord() // Rendering of the tree in JSON for debugging std::ostream &PatternTreeParser::PatternNode::render(std::ostream &os) { - os << "{" - << "\"term\": \"" << term.to_string() << "\",\n" - << "\"arguments\": [\n"; - for (auto &node : arguments) - node->render(os) << "," << std::endl; - os << "null]\n"; - os << "}\n"; + + os << term.to_string(); + if (haveArgumentList) + { + os << "("; + for (auto &node : arguments) + node->render(os) << ","; + os << ")"; + } return os; } std::ostream &PatternTreeParser::WordNode::render(std::ostream &os) { - os << '"' << word.to_string() << '"'; - return os; + return quoted ? os << '"' << word.to_string() << '"' : os << word.to_string(); } std::nullptr_t PatternTreeParser::Node::error(std::string message) @@ -210,6 +403,12 @@ std::unique_ptr<APT::CacheFilter::Matcher> PatternParser::aPattern(std::unique_p if (node->matches("?architecture", 1, 1)) return std::make_unique<APT::CacheFilter::PackageArchitectureMatchesSpecification>(aWord(node->arguments[0])); + if (node->matches("?archive", 1, 1)) + return std::make_unique<Patterns::VersionIsArchive>(aWord(node->arguments[0])); + if (node->matches("?all-versions", 1, 1)) + return std::make_unique<Patterns::VersionIsAllVersions>(aPattern(node->arguments[0])); + if (node->matches("?any-version", 1, 1)) + return std::make_unique<Patterns::VersionIsAnyVersion>(aPattern(node->arguments[0])); if (node->matches("?automatic", 0, 0)) return std::make_unique<Patterns::PackageIsAutomatic>(file); if (node->matches("?broken", 0, 0)) @@ -232,21 +431,33 @@ std::unique_ptr<APT::CacheFilter::Matcher> PatternParser::aPattern(std::unique_p return std::make_unique<APT::CacheFilter::NOTMatcher>(aPattern(node->arguments[0]).release()); if (node->matches("?obsolete", 0, 0)) return std::make_unique<Patterns::PackageIsObsolete>(); + if (node->matches("?origin", 1, 1)) + return std::make_unique<Patterns::VersionIsOrigin>(aWord(node->arguments[0])); + if (node->matches("?section", 1, 1)) + return std::make_unique<Patterns::VersionIsSection>(aWord(node->arguments[0])); + if (node->matches("?source-package", 1, 1)) + return std::make_unique<Patterns::VersionIsSourcePackage>(aWord(node->arguments[0])); + if (node->matches("?source-version", 1, 1)) + return std::make_unique<Patterns::VersionIsSourceVersion>(aWord(node->arguments[0])); if (node->matches("?true", 0, 0)) return std::make_unique<APT::CacheFilter::TrueMatcher>(); if (node->matches("?upgradable", 0, 0)) return std::make_unique<Patterns::PackageIsUpgradable>(file); + if (node->matches("?version", 1, 1)) + return std::make_unique<Patterns::VersionIsVersion>(aWord(node->arguments[0])); if (node->matches("?virtual", 0, 0)) return std::make_unique<Patterns::PackageIsVirtual>(); if (node->matches("?x-name-fnmatch", 1, 1)) return std::make_unique<APT::CacheFilter::PackageNameMatchesFnmatch>(aWord(node->arguments[0])); // Variable argument patterns - if (node->matches("?and", 0, -1)) + if (node->matches("?and", 0, -1) || node->matches("?narrow", 0, -1)) { auto pattern = std::make_unique<APT::CacheFilter::ANDMatcher>(); for (auto &arg : node->arguments) pattern->AND(aPattern(arg).release()); + if (node->term == "?narrow") + return std::make_unique<Patterns::VersionIsAnyVersion>(std::move(pattern)); return pattern; } if (node->matches("?or", 0, -1)) @@ -272,6 +483,38 @@ std::string PatternParser::aWord(std::unique_ptr<PatternTreeParser::Node> &nodeP return node->word.to_string(); } +namespace Patterns +{ + +BaseRegexMatcher::BaseRegexMatcher(std::string const &Pattern) +{ + pattern = new regex_t; + int const Res = regcomp(pattern, Pattern.c_str(), REG_EXTENDED | REG_ICASE | REG_NOSUB); + if (Res == 0) + return; + + delete pattern; + pattern = NULL; + char Error[300]; + regerror(Res, pattern, Error, sizeof(Error)); + _error->Error(_("Regex compilation error - %s"), Error); +} +bool BaseRegexMatcher::operator()(const char *string) +{ + if (unlikely(pattern == NULL)) + return false; + else + return regexec(pattern, string, 0, 0, 0) == 0; +} +BaseRegexMatcher::~BaseRegexMatcher() +{ + if (pattern == NULL) + return; + regfree(pattern); + delete pattern; +} +} // namespace Patterns + } // namespace Internal // The bridge into the public world diff --git a/apt-pkg/cachefilter-patterns.h b/apt-pkg/cachefilter-patterns.h index d37da815f..4eeb68594 100644 --- a/apt-pkg/cachefilter-patterns.h +++ b/apt-pkg/cachefilter-patterns.h @@ -39,6 +39,8 @@ struct PatternTreeParser size_t start = 0; size_t end = 0; + explicit Node(size_t start = 0, size_t end = 0) : start(start), end(end) {} + virtual std::ostream &render(std::ostream &os) { return os; }; std::nullptr_t error(std::string message); }; @@ -71,7 +73,7 @@ struct PatternTreeParser struct State { - off_t offset = 0; + size_t offset = 0; }; APT::StringView sentence; @@ -90,11 +92,18 @@ struct PatternTreeParser /// There may not be anything before or after the pattern, except for /// whitespace. std::unique_ptr<Node> parseTop(); + std::unique_ptr<Node> parse(); // public for test cases only private: - std::unique_ptr<Node> parse(); + std::unique_ptr<Node> parseOr(); + std::unique_ptr<Node> parseAnd(); + std::unique_ptr<Node> parseUnary(); + std::unique_ptr<Node> parsePrimary(); + std::unique_ptr<Node> parseGroup(); std::unique_ptr<Node> parsePattern(); - std::unique_ptr<Node> parseWord(); + std::unique_ptr<Node> parseShortPattern(); + std::unique_ptr<Node> parseArgument(bool shrt); + std::unique_ptr<Node> parseWord(bool shrt); std::unique_ptr<Node> parseQuotedWord(); }; @@ -117,6 +126,21 @@ namespace Patterns { using namespace APT::CacheFilter; +/** \brief Basic helper class for matching regex */ +class BaseRegexMatcher +{ + regex_t *pattern; + + public: + BaseRegexMatcher(std::string const &string); + ~BaseRegexMatcher(); + bool operator()(const char *cstring); + bool operator()(std::string const &string) + { + return (*this)(string.c_str()); + } +}; + struct PackageIsAutomatic : public PackageMatcher { pkgCacheFile *Cache; @@ -229,6 +253,121 @@ struct PackageIsVirtual : public PackageMatcher return Pkg->VersionList == 0; } }; + +struct VersionAnyMatcher : public Matcher +{ + bool operator()(pkgCache::GrpIterator const &Grp) override { return false; } + bool operator()(pkgCache::VerIterator const &Ver) override = 0; + bool operator()(pkgCache::PkgIterator const &Pkg) override + { + for (auto Ver = Pkg.VersionList(); not Ver.end(); Ver++) + { + if ((*this)(Ver)) + return true; + } + return false; + } +}; + +struct VersionIsAllVersions : public Matcher +{ + std::unique_ptr<APT::CacheFilter::Matcher> base; + VersionIsAllVersions(std::unique_ptr<APT::CacheFilter::Matcher> base) : base(std::move(base)) {} + bool operator()(pkgCache::GrpIterator const &) override { return false; } + bool operator()(pkgCache::VerIterator const &Ver) override + { + return (*base)(Ver); + } + bool operator()(pkgCache::PkgIterator const &Pkg) override + { + for (auto Ver = Pkg.VersionList(); not Ver.end(); Ver++) + { + if (not(*this)(Ver)) + return false; + } + return true; + } +}; + +struct VersionIsAnyVersion : public VersionAnyMatcher +{ + std::unique_ptr<APT::CacheFilter::Matcher> base; + VersionIsAnyVersion(std::unique_ptr<APT::CacheFilter::Matcher> base) : base(std::move(base)) {} + bool operator()(pkgCache::VerIterator const &Ver) override + { + return (*base)(Ver); + } +}; + +struct VersionIsArchive : public VersionAnyMatcher +{ + BaseRegexMatcher matcher; + VersionIsArchive(std::string const &pattern) : matcher(pattern) {} + bool operator()(pkgCache::VerIterator const &Ver) override + { + for (auto VF = Ver.FileList(); not VF.end(); VF++) + { + if (VF.File().Archive() && matcher(VF.File().Archive())) + return true; + } + return false; + } +}; + +struct VersionIsOrigin : public VersionAnyMatcher +{ + BaseRegexMatcher matcher; + VersionIsOrigin(std::string const &pattern) : matcher(pattern) {} + bool operator()(pkgCache::VerIterator const &Ver) override + { + for (auto VF = Ver.FileList(); not VF.end(); VF++) + { + if (VF.File().Origin() && matcher(VF.File().Origin())) + return true; + } + return false; + } +}; + +struct VersionIsSection : public VersionAnyMatcher +{ + BaseRegexMatcher matcher; + VersionIsSection(std::string const &pattern) : matcher(pattern) {} + bool operator()(pkgCache::VerIterator const &Ver) override + { + return matcher(Ver.Section()); + } +}; + +struct VersionIsSourcePackage : public VersionAnyMatcher +{ + BaseRegexMatcher matcher; + VersionIsSourcePackage(std::string const &pattern) : matcher(pattern) {} + bool operator()(pkgCache::VerIterator const &Ver) override + { + return matcher(Ver.SourcePkgName()); + } +}; + +struct VersionIsSourceVersion : public VersionAnyMatcher +{ + BaseRegexMatcher matcher; + VersionIsSourceVersion(std::string const &pattern) : matcher(pattern) {} + bool operator()(pkgCache::VerIterator const &Ver) override + { + return matcher(Ver.SourceVerStr()); + } +}; + +struct VersionIsVersion : public VersionAnyMatcher +{ + BaseRegexMatcher matcher; + VersionIsVersion(std::string const &pattern) : matcher(pattern) {} + bool operator()(pkgCache::VerIterator const &Ver) override + { + return matcher(Ver.VerStr()); + } +}; } // namespace Patterns } // namespace Internal } // namespace APT diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index fbd4bcb8d..ff2b65cdf 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -116,6 +116,7 @@ class pkgCache::GrpIterator: public Iterator<Group, GrpIterator> { inline const char *Name() const {return S->Name == 0?0:Owner->StrP + S->Name;} inline PkgIterator PackageList() const; + inline VerIterator VersionsInSource() const; PkgIterator FindPkg(APT::StringView Arch = APT::StringView("any", 3)) const; /** \brief find the package with the "best" architecture @@ -193,6 +194,13 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> { inline VerIterator& operator++() {if (S != Owner->VerP) S = Owner->VerP + S->NextVer; return *this;} inline VerIterator operator++(int) { VerIterator const tmp(*this); operator++(); return tmp; } + inline VerIterator NextInSource() + { + if (S != Owner->VerP) + S = Owner->VerP + S->NextInSource; + return *this; + } + // Comparison int CompareVer(const VerIterator &B) const; /** \brief compares two version and returns if they are similar @@ -220,6 +228,7 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> { inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + S->ParentPkg);} inline DescIterator DescriptionList() const; + DescIterator TranslatedDescriptionForLanguage(APT::StringView lang) const; DescIterator TranslatedDescription() const; inline DepIterator DependsList() const; inline PrvIterator ProvidesList() const; @@ -493,6 +502,10 @@ class pkgCache::DescFileIterator : public Iterator<DescFile, DescFileIterator> { // Inlined Begin functions can't be in the class because of order problems /*{{{*/ inline pkgCache::PkgIterator pkgCache::GrpIterator::PackageList() const {return PkgIterator(*Owner,Owner->PkgP + S->FirstPackage);} + inline pkgCache::VerIterator pkgCache::GrpIterator::VersionsInSource() const + { + return VerIterator(*Owner, Owner->VerP + S->VersionsInSource); + } inline pkgCache::VerIterator pkgCache::PkgIterator::VersionList() const {return VerIterator(*Owner,Owner->VerP + S->VersionList);} inline pkgCache::VerIterator pkgCache::PkgIterator::CurrentVer() const diff --git a/apt-pkg/cacheset.cc b/apt-pkg/cacheset.cc index dd55edb4e..ae1d5ee3e 100644 --- a/apt-pkg/cacheset.cc +++ b/apt-pkg/cacheset.cc @@ -125,8 +125,16 @@ bool CacheSetHelper::PackageFromTask(PackageContainerInterface * const pci, pkgC // PackageFromRegEx - Return all packages in the cache matching a pattern /*{{{*/ bool CacheSetHelper::PackageFromRegEx(PackageContainerInterface * const pci, pkgCacheFile &Cache, std::string pattern) { static const char * const isregex = ".?+*|[^$"; - if (pattern.find_first_of(isregex) == std::string::npos) - return false; + + if (_config->FindB("APT::Cmd::Pattern-Only", false)) + { + // Only allow explicit regexp pattern. + if (pattern.size() == 0 || (pattern[0] != '^' && pattern[pattern.size() - 1] != '$')) + return false; + } else { + if (pattern.find_first_of(isregex) == std::string::npos) + return false; + } bool const wasEmpty = pci->empty(); if (wasEmpty == true) @@ -181,6 +189,8 @@ bool CacheSetHelper::PackageFromFnmatch(PackageContainerInterface * const pci, pkgCacheFile &Cache, std::string pattern) { static const char * const isfnmatch = ".?*[]!"; + if (_config->FindB("APT::Cmd::Pattern-Only", false)) + return false; if (pattern.find_first_of(isfnmatch) == std::string::npos) return false; @@ -285,7 +295,7 @@ bool CacheSetHelper::PackageFromPackageName(PackageContainerInterface * const pc bool CacheSetHelper::PackageFromPattern(PackageContainerInterface *const pci, pkgCacheFile &Cache, std::string const &pattern) { - if (pattern.size() < 1 || pattern[0] != '?') + if (pattern.size() < 1 || (pattern[0] != '?' && pattern[0] != '~')) return false; auto compiledPattern = APT::CacheFilter::ParsePattern(pattern, &Cache); diff --git a/apt-pkg/contrib/cdromutl.cc b/apt-pkg/contrib/cdromutl.cc index 9db3980da..c0fe869d2 100644 --- a/apt-pkg/contrib/cdromutl.cc +++ b/apt-pkg/contrib/cdromutl.cc @@ -15,7 +15,7 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> -#include <apt-pkg/md5.h> +#include <apt-pkg/hashes.h> #include <apt-pkg/strutl.h> #include <iostream> @@ -181,7 +181,7 @@ bool MountCdrom(string Path, string DeviceName) from effecting the outcome. */ bool IdentCdrom(string CD,string &Res,unsigned int Version) { - MD5Summation Hash; + Hashes Hash(Hashes::MD5SUM); bool writable_media = false; int dirfd = open(CD.c_str(), O_RDONLY | O_DIRECTORY | O_CLOEXEC); @@ -254,7 +254,7 @@ bool IdentCdrom(string CD,string &Res,unsigned int Version) strprintf(S, "-%u.debug", Version); closedir(D); - Res = Hash.Result().Value().append(std::move(S)); + Res = Hash.GetHashString(Hashes::MD5SUM).HashValue().append(std::move(S)); return true; } /*}}}*/ diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc index 997ef7423..931df9f6c 100644 --- a/apt-pkg/contrib/configuration.cc +++ b/apt-pkg/contrib/configuration.cc @@ -32,6 +32,7 @@ #include <algorithm> #include <fstream> #include <iterator> +#include <numeric> #include <sstream> #include <stack> #include <string> @@ -1149,10 +1150,10 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool const &AsSectio bool ReadConfigDir(Configuration &Conf,const string &Dir, bool const &AsSectional, unsigned const &Depth) { - bool good = true; - for (auto const &I : GetListOfFilesInDir(Dir, "conf", true, true)) - good = ReadConfigFile(Conf, I, AsSectional, Depth) && good; - return good; + auto const files = GetListOfFilesInDir(Dir, "conf", true, true); + return std::accumulate(files.cbegin(), files.cend(), true, [&](bool good, auto const &file) { + return ReadConfigFile(Conf, file, AsSectional, Depth) && good; + }); } /*}}}*/ // MatchAgainstConfig Constructor /*{{{*/ diff --git a/apt-pkg/contrib/crc-16.cc b/apt-pkg/contrib/crc-16.cc deleted file mode 100644 index 2e396ab78..000000000 --- a/apt-pkg/contrib/crc-16.cc +++ /dev/null @@ -1,77 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - CRC16 - Compute a 16bit crc very quickly - - This was ripped out of the linux 2.2 kernel source (irda/crc.c) and - is credited to ppp.c by Michael Callahan <callahan@maths.ox.ac.uk> and - Al Longyear <longyear@netcom.com> - - Modified by Jason Gunthorpe <jgg@debian.org> to fit the local coding - style, this code is believed to be in the Public Domain. - - ##################################################################### */ - /*}}}*/ -// Include Files /*{{{*/ -#include <config.h> - -#include <apt-pkg/crc-16.h> - /*}}}*/ - -/* - * This mysterious table is just the CRC of each possible byte. It can be - * computed using the standard bit-at-a-time methods. The polynomial can - * be seen in entry 128, 0x8408. This corresponds to x^0 + x^5 + x^12. - * Add the implicit x^16, and you have the standard CRC-CCITT. - */ -static unsigned short const crc16_table[256] = -{ - 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, - 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, - 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, - 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, - 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, - 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, - 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, - 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, - 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, - 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, - 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, - 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, - 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, - 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, - 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, - 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, - 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, - 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, - 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, - 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, - 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, - 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, - 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, - 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, - 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, - 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, - 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, - 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, - 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, - 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, - 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, - 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 -}; - -/* Recompute the FCS with one more character appended. */ -#define CalcFCS(fcs, c) (((fcs) >> 8) ^ crc16_table[((fcs) ^ (c)) & 0xff]) -unsigned short AddCRC16Byte(unsigned short fcs, unsigned char byte) -{ - return CalcFCS(fcs, byte); -} -unsigned short AddCRC16(unsigned short fcs, void const *Buf, - unsigned long long len) -{ - unsigned char const *buf = (unsigned char const *)Buf; - while (len--) - fcs = CalcFCS(fcs, *buf++); - return fcs; -} diff --git a/apt-pkg/contrib/crc-16.h b/apt-pkg/contrib/crc-16.h deleted file mode 100644 index 3e0756007..000000000 --- a/apt-pkg/contrib/crc-16.h +++ /dev/null @@ -1,19 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - CRC16 - Compute a 16bit crc very quickly - - ##################################################################### */ - /*}}}*/ -#ifndef APTPKG_CRC16_H -#define APTPKG_CRC16_H - -#include <apt-pkg/macros.h> - -#define INIT_FCS 0xffff -unsigned short AddCRC16Byte(unsigned short fcs, unsigned char byte) APT_PURE; -unsigned short AddCRC16(unsigned short fcs, void const *buf, - unsigned long long len) APT_PURE; - -#endif diff --git a/apt-pkg/contrib/error.h b/apt-pkg/contrib/error.h index d0f450742..5ab7b9f85 100644 --- a/apt-pkg/contrib/error.h +++ b/apt-pkg/contrib/error.h @@ -360,6 +360,8 @@ private: /*{{{*/ // The 'extra-ansi' syntax is used to help with collisions. GlobalError *_GetErrorObj(); -#define _error _GetErrorObj() +static struct { + inline GlobalError* operator ->() { return _GetErrorObj(); } +} _error APT_UNUSED; #endif diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 336f979d6..db5463be2 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -85,9 +85,6 @@ using namespace std; -/* Should be a multiple of the common page size (4096) */ -static constexpr unsigned long long APT_BUFFER_SIZE = 64 * 1024; - // RunScripts - Run a set of scripts from a configuration subtree /*{{{*/ // --------------------------------------------------------------------- /* */ @@ -1781,7 +1778,7 @@ class APT_HIDDEN ZstdFileFdPrivate : public FileFdPrivate #ifdef HAVE_ZSTD ZSTD_DStream *dctx; ZSTD_CStream *cctx; - size_t res; + size_t res = 0; FileFd backend; simple_buffer zstd_buffer; // Count of bytes that the decompressor expects to read next, or buffer size. diff --git a/apt-pkg/contrib/hashes.cc b/apt-pkg/contrib/hashes.cc index 366133b02..6afd0815f 100644 --- a/apt-pkg/contrib/hashes.cc +++ b/apt-pkg/contrib/hashes.cc @@ -15,18 +15,32 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/fileutl.h> #include <apt-pkg/hashes.h> -#include <apt-pkg/md5.h> -#include <apt-pkg/sha1.h> -#include <apt-pkg/sha2.h> +#include <apt-pkg/macros.h> +#include <apt-pkg/strutl.h> #include <algorithm> #include <iostream> #include <string> +#include <assert.h> #include <stddef.h> #include <stdlib.h> #include <unistd.h> + +#include <gcrypt.h> /*}}}*/ +static const constexpr struct HashAlgo +{ + const char *name; + int gcryAlgo; + Hashes::SupportedHashes ourAlgo; +} Algorithms[] = { + {"MD5Sum", GCRY_MD_MD5, Hashes::MD5SUM}, + {"SHA1", GCRY_MD_SHA1, Hashes::SHA1SUM}, + {"SHA256", GCRY_MD_SHA256, Hashes::SHA256SUM}, + {"SHA512", GCRY_MD_SHA512, Hashes::SHA512SUM}, +}; + const char * HashString::_SupportedHashes[] = { "SHA512", "SHA256", "SHA1", "MD5Sum", "Checksum-FileSize", NULL @@ -89,27 +103,27 @@ std::string HashString::GetHashForFile(std::string filename) const /*{{{*/ FileFd Fd(filename, FileFd::ReadOnly); if(strcasecmp(Type.c_str(), "MD5Sum") == 0) { - MD5Summation MD5; + Hashes MD5(Hashes::MD5SUM); MD5.AddFD(Fd); - fileHash = (std::string)MD5.Result(); + fileHash = MD5.GetHashString(Hashes::MD5SUM).Hash; } else if (strcasecmp(Type.c_str(), "SHA1") == 0) { - SHA1Summation SHA1; + Hashes SHA1(Hashes::SHA1SUM); SHA1.AddFD(Fd); - fileHash = (std::string)SHA1.Result(); + fileHash = SHA1.GetHashString(Hashes::SHA1SUM).Hash; } else if (strcasecmp(Type.c_str(), "SHA256") == 0) { - SHA256Summation SHA256; + Hashes SHA256(Hashes::SHA256SUM); SHA256.AddFD(Fd); - fileHash = (std::string)SHA256.Result(); + fileHash = SHA256.GetHashString(Hashes::SHA256SUM).Hash; } else if (strcasecmp(Type.c_str(), "SHA512") == 0) { - SHA512Summation SHA512; + Hashes SHA512(Hashes::SHA512SUM); SHA512.AddFD(Fd); - fileHash = (std::string)SHA512.Result(); + fileHash = SHA512.GetHashString(Hashes::SHA512SUM).Hash; } else if (strcasecmp(Type.c_str(), "Checksum-FileSize") == 0) strprintf(fileHash, "%llu", Fd.FileSize()); @@ -286,43 +300,45 @@ bool HashStringList::operator!=(HashStringList const &other) const class PrivateHashes { public: unsigned long long FileSize; - unsigned int CalcHashes; + gcry_md_hd_t hd; + + explicit PrivateHashes(unsigned int const CalcHashes) : FileSize(0) + { + gcry_md_open(&hd, 0, 0); + for (auto & Algo : Algorithms) + { + if ((CalcHashes & Algo.ourAlgo) == Algo.ourAlgo) + gcry_md_enable(hd, Algo.gcryAlgo); + } + } - explicit PrivateHashes(unsigned int const CalcHashes) : FileSize(0), CalcHashes(CalcHashes) {} explicit PrivateHashes(HashStringList const &Hashes) : FileSize(0) { - unsigned int calcHashes = Hashes.usable() ? 0 : ~0; - if (Hashes.find("MD5Sum") != NULL) - calcHashes |= Hashes::MD5SUM; - if (Hashes.find("SHA1") != NULL) - calcHashes |= Hashes::SHA1SUM; - if (Hashes.find("SHA256") != NULL) - calcHashes |= Hashes::SHA256SUM; - if (Hashes.find("SHA512") != NULL) - calcHashes |= Hashes::SHA512SUM; - CalcHashes = calcHashes; + gcry_md_open(&hd, 0, 0); + for (auto & Algo : Algorithms) + { + if (not Hashes.usable() || Hashes.find(Algo.name) != NULL) + gcry_md_enable(hd, Algo.gcryAlgo); + } + } + ~PrivateHashes() + { + gcry_md_close(hd); } }; /*}}}*/ // Hashes::Add* - Add the contents of data or FD /*{{{*/ bool Hashes::Add(const unsigned char * const Data, unsigned long long const Size) { - if (Size == 0) - return true; - bool Res = true; - if ((d->CalcHashes & MD5SUM) == MD5SUM) - Res &= MD5.Add(Data, Size); - if ((d->CalcHashes & SHA1SUM) == SHA1SUM) - Res &= SHA1.Add(Data, Size); - if ((d->CalcHashes & SHA256SUM) == SHA256SUM) - Res &= SHA256.Add(Data, Size); - if ((d->CalcHashes & SHA512SUM) == SHA512SUM) - Res &= SHA512.Add(Data, Size); - d->FileSize += Size; - return Res; + if (Size != 0) + { + gcry_md_write(d->hd, Data, Size); + d->FileSize += Size; + } + return true; } bool Hashes::AddFD(int const Fd,unsigned long long Size) { - unsigned char Buf[64*64]; + unsigned char Buf[APT_BUFFER_SIZE]; bool const ToEOF = (Size == UntilEOF); while (Size != 0 || ToEOF) { @@ -341,7 +357,7 @@ bool Hashes::AddFD(int const Fd,unsigned long long Size) } bool Hashes::AddFD(FileFd &Fd,unsigned long long Size) { - unsigned char Buf[64*64]; + unsigned char Buf[APT_BUFFER_SIZE]; bool const ToEOF = (Size == 0); while (Size != 0 || ToEOF) { @@ -364,20 +380,49 @@ bool Hashes::AddFD(FileFd &Fd,unsigned long long Size) return true; } /*}}}*/ + +static APT_PURE std::string HexDigest(gcry_md_hd_t hd, int algo) +{ + char Conv[16] = + {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', + 'c', 'd', 'e', 'f'}; + + auto Size = gcry_md_get_algo_dlen(algo); + char Result[((Size)*2) + 1]; + Result[(Size)*2] = 0; + + auto Sum = gcry_md_read(hd, algo); + + // Convert each char into two letters + size_t J = 0; + size_t I = 0; + for (; I != (Size)*2; J++, I += 2) + { + Result[I] = Conv[Sum[J] >> 4]; + Result[I + 1] = Conv[Sum[J] & 0xF]; + } + return std::string(Result); +}; + HashStringList Hashes::GetHashStringList() { HashStringList hashes; - if ((d->CalcHashes & MD5SUM) == MD5SUM) - hashes.push_back(HashString("MD5Sum", MD5.Result().Value())); - if ((d->CalcHashes & SHA1SUM) == SHA1SUM) - hashes.push_back(HashString("SHA1", SHA1.Result().Value())); - if ((d->CalcHashes & SHA256SUM) == SHA256SUM) - hashes.push_back(HashString("SHA256", SHA256.Result().Value())); - if ((d->CalcHashes & SHA512SUM) == SHA512SUM) - hashes.push_back(HashString("SHA512", SHA512.Result().Value())); + for (auto & Algo : Algorithms) + if (gcry_md_is_enabled(d->hd, Algo.gcryAlgo)) + hashes.push_back(HashString(Algo.name, HexDigest(d->hd, Algo.gcryAlgo))); hashes.FileSize(d->FileSize); + return hashes; } + +HashString Hashes::GetHashString(SupportedHashes hash) +{ + for (auto & Algo : Algorithms) + if (hash == Algo.ourAlgo) + return HashString(Algo.name, HexDigest(d->hd, Algo.gcryAlgo)); + + abort(); +} Hashes::Hashes() : d(new PrivateHashes(~0)) { } Hashes::Hashes(unsigned int const Hashes) : d(new PrivateHashes(Hashes)) {} Hashes::Hashes(HashStringList const &Hashes) : d(new PrivateHashes(Hashes)) {} diff --git a/apt-pkg/contrib/hashes.h b/apt-pkg/contrib/hashes.h index e9b8a0519..e2a9927ef 100644 --- a/apt-pkg/contrib/hashes.h +++ b/apt-pkg/contrib/hashes.h @@ -13,12 +13,10 @@ #define APTPKG_HASHES_H #include <apt-pkg/macros.h> -#include <apt-pkg/md5.h> -#include <apt-pkg/sha1.h> -#include <apt-pkg/sha2.h> #include <cstring> #include <string> +#include <vector> @@ -171,19 +169,16 @@ class PrivateHashes; class Hashes { PrivateHashes * const d; - /* TODO: those will disappear in the future as it is hard to add new ones this way. - * Use Add* to build the results and get them via GetHashStringList() instead */ - MD5Summation MD5; - SHA1Summation SHA1; - SHA256Summation SHA256; - SHA512Summation SHA512; - public: static const int UntilEOF = 0; bool Add(const unsigned char * const Data, unsigned long long const Size) APT_NONNULL(2); inline bool Add(const char * const Data) APT_NONNULL(2) {return Add(reinterpret_cast<unsigned char const *>(Data),strlen(Data));}; + inline bool Add(const char *const Data, unsigned long long const Size) APT_NONNULL(2) + { + return Add(reinterpret_cast<unsigned char const *>(Data), Size); + }; inline bool Add(const unsigned char * const Beg,const unsigned char * const End) APT_NONNULL(2,3) {return Add(Beg,End-Beg);}; @@ -194,6 +189,9 @@ class Hashes HashStringList GetHashStringList(); + /** Get a specific hash. It is an error to use a hash that was not hashes */ + HashString GetHashString(SupportedHashes hash); + /** create a Hashes object to calculate all supported hashes * * If ALL is too much, you can limit which Hashes are calculated diff --git a/apt-pkg/contrib/macros.h b/apt-pkg/contrib/macros.h index 4d9f780c7..f37eb585b 100644 --- a/apt-pkg/contrib/macros.h +++ b/apt-pkg/contrib/macros.h @@ -13,40 +13,9 @@ #ifndef MACROS_H #define MACROS_H -// MIN_VAL(SINT16) will return -0x8000 and MAX_VAL(SINT16) = 0x7FFF -#define MIN_VAL(t) (((t)(-1) > 0) ? (t)( 0) : (t)(((1L<<(sizeof(t)*8-1)) ))) -#define MAX_VAL(t) (((t)(-1) > 0) ? (t)(-1) : (t)(((1L<<(sizeof(t)*8-1))-1))) - -// Min/Max functions -#if !defined(MIN) -#if defined(__HIGHC__) -#define MIN(x,y) _min(x,y) -#define MAX(x,y) _max(x,y) -#endif - -// GNU C++ has a min/max operator <coolio> -#if defined(__GNUG__) -#define MIN(A,B) ((A) <? (B)) -#define MAX(A,B) ((A) >? (B)) -#endif - -/* Templates tend to mess up existing code that uses min/max because of the - strict matching requirements */ -#if !defined(MIN) -#define MIN(A,B) ((A) < (B)?(A):(B)) -#define MAX(A,B) ((A) > (B)?(A):(B)) -#endif -#endif - -/* Bound functions, bound will return the value b within the limits a-c - bounv will change b so that it is within the limits of a-c. */ -#define _bound(a,b,c) MIN(c,MAX(b,a)) -#define _boundv(a,b,c) b = _bound(a,b,c) -#define ABS(a) (((a) < (0)) ?-(a) : (a)) - /* Useful count macro, use on an array of things and it will return the number of items in the array */ -#define _count(a) (sizeof(a)/sizeof(a[0])) +#define APT_ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) // Flag Macros #define FLAG(f) (1L << (f)) @@ -60,6 +29,7 @@ #define APT_GCC_VERSION 0 #endif +#ifdef APT_COMPILING_APT /* likely() and unlikely() can be used to mark boolean expressions as (not) likely true which will help the compiler to optimise */ #if APT_GCC_VERSION >= 0x0300 @@ -69,24 +39,25 @@ #define likely(x) (x) #define unlikely(x) (x) #endif +#endif #if APT_GCC_VERSION >= 0x0300 #define APT_DEPRECATED __attribute__ ((deprecated)) #define APT_DEPRECATED_MSG(X) __attribute__ ((deprecated(X))) // __attribute__((const)) is too dangerous for us, we end up using it wrongly - #define APT_CONST __attribute__((pure)) #define APT_PURE __attribute__((pure)) #define APT_NORETURN __attribute__((noreturn)) #define APT_PRINTF(n) __attribute__((format(printf, n, n + 1))) #define APT_WEAK __attribute__((weak)); + #define APT_UNUSED __attribute__((unused)) #else #define APT_DEPRECATED #define APT_DEPRECATED_MSG - #define APT_CONST #define APT_PURE #define APT_NORETURN #define APT_PRINTF(n) #define APT_WEAK + #define APT_UNUSED #endif #if APT_GCC_VERSION > 0x0302 @@ -145,16 +116,12 @@ // reverse-dependencies of libapt-pkg against the new SONAME. // Non-ABI-Breaks should only increase RELEASE number. // See also buildlib/libversion.mak -#define APT_PKG_MAJOR 5 -#define APT_PKG_MINOR 90 +#define APT_PKG_MAJOR 6 +#define APT_PKG_MINOR 0 #define APT_PKG_RELEASE 0 #define APT_PKG_ABI ((APT_PKG_MAJOR * 100) + APT_PKG_MINOR) - -#if APT_PKG_ABI > 590 -#define APT_PKG_590(msg) __attribute__((error(msg))) -#else -#define APT_PKG_590(msg) -#endif +/* Should be a multiple of the common page size (4096) */ +static constexpr unsigned long long APT_BUFFER_SIZE = 64 * 1024; #endif diff --git a/apt-pkg/contrib/md5.cc b/apt-pkg/contrib/md5.cc deleted file mode 100644 index c3b529922..000000000 --- a/apt-pkg/contrib/md5.cc +++ /dev/null @@ -1,279 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - MD5Sum - MD5 Message Digest Algorithm. - - This code implements the MD5 message-digest algorithm. The algorithm is - due to Ron Rivest. This code was written by Colin Plumb in 1993, no - copyright is claimed. This code is in the public domain; do with it what - you wish. - - Equivalent code is available from RSA Data Security, Inc. This code has - been tested against that, and is equivalent, except that you don't need to - include two pages of legalese with every copy. - - To compute the message digest of a chunk of bytes, instantiate the class, - and repeatedly call one of the Add() members. When finished the Result - method will return the Hash and finalize the value. - - Changed so as no longer to depend on Colin Plumb's `usual.h' header - definitions; now uses stuff from dpkg's config.h. - - Ian Jackson <ijackson@nyx.cs.du.edu>. - - Changed into a C++ interface and made work with APT's config.h. - - Jason Gunthorpe <jgg@gpu.srv.ualberta.ca> - - Still in the public domain. - - The classes use arrays of char that are a specific size. We cast those - arrays to uint8_t's and go from there. This allows us to advoid using - the uncommon inttypes.h in a public header or internally newing memory. - In theory if C9x becomes nicely accepted - - ##################################################################### */ - /*}}}*/ -// Include Files /*{{{*/ -#include <config.h> - -#include <apt-pkg/md5.h> - -#include <stdint.h> -#include <string.h> - /*}}}*/ - -// byteSwap - Swap bytes in a buffer /*{{{*/ -// --------------------------------------------------------------------- -/* Swap n 32 bit longs in given buffer */ -#ifdef WORDS_BIGENDIAN -static void byteSwap(uint32_t *buf, unsigned words) -{ - uint8_t *p = (uint8_t *)buf; - - do - { - *buf++ = (uint32_t)((unsigned)p[3] << 8 | p[2]) << 16 | - ((unsigned)p[1] << 8 | p[0]); - p += 4; - } while (--words); -} -#else -#define byteSwap(buf,words) -#endif - /*}}}*/ -// MD5Transform - Alters an existing MD5 hash /*{{{*/ -// --------------------------------------------------------------------- -/* The core of the MD5 algorithm, this alters an existing MD5 hash to - reflect the addition of 16 longwords of new data. Add blocks - the data and converts bytes into longwords for this routine. */ - -// The four core functions - F1 is optimized somewhat -// #define F1(x, y, z) (x & y | ~x & z) -#define F1(x, y, z) (z ^ (x & (y ^ z))) -#define F2(x, y, z) F1(z, x, y) -#define F3(x, y, z) (x ^ y ^ z) -#define F4(x, y, z) (y ^ (x | ~z)) - -// This is the central step in the MD5 algorithm. -#define MD5STEP(f,w,x,y,z,in,s) \ - (w += f(x,y,z) + in, w = (w<<s | w>>(32-s)) + x) - -static void MD5Transform(uint32_t buf[4], uint32_t const in[16]) -{ - uint32_t a, b, c, d; - - a = buf[0]; - b = buf[1]; - c = buf[2]; - d = buf[3]; - - MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); - MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); - MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); - MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); - MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); - MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); - MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); - MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); - MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); - MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); - MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); - MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); - MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); - MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); - MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); - MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); - - MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); - MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); - MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); - MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); - MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); - MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); - MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); - MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); - MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); - MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); - MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); - MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); - MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); - MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); - MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); - MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); - - MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); - MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); - MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); - MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); - MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); - MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); - MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); - MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); - MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); - MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); - MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); - MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); - MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); - MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); - MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); - MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); - - MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); - MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); - MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); - MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); - MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); - MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); - MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); - MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); - MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); - MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); - MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); - MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); - MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); - MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); - MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); - MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); - - buf[0] += a; - buf[1] += b; - buf[2] += c; - buf[3] += d; -} - /*}}}*/ -// MD5Summation::MD5Summation - Initialize the summer /*{{{*/ -// --------------------------------------------------------------------- -/* This assigns the deep magic initial values */ -MD5Summation::MD5Summation() -{ - uint32_t *buf = (uint32_t *)Buf; - uint32_t *bytes = (uint32_t *)Bytes; - - buf[0] = 0x67452301; - buf[1] = 0xefcdab89; - buf[2] = 0x98badcfe; - buf[3] = 0x10325476; - - bytes[0] = 0; - bytes[1] = 0; - Done = false; -} - /*}}}*/ -// MD5Summation::Add - 'Add' a data set to the hash /*{{{*/ -// --------------------------------------------------------------------- -/* */ -bool MD5Summation::Add(const unsigned char *data,unsigned long long len) -{ - if (Done == true) - return false; - if (len == 0) - return true; - - uint32_t *buf = (uint32_t *)Buf; - uint32_t *bytes = (uint32_t *)Bytes; - uint32_t *in = (uint32_t *)In; - - // Update byte count and carry (this could be done with a long long?) - uint32_t t = bytes[0]; - if ((bytes[0] = t + len) < t) - bytes[1]++; - - // Space available (at least 1) - t = 64 - (t & 0x3f); - if (t > len) - { - memcpy((unsigned char *)in + 64 - t,data,len); - return true; - } - - // First chunk is an odd size - memcpy((unsigned char *)in + 64 - t,data,t); - byteSwap(in, 16); - MD5Transform(buf,in); - data += t; - len -= t; - - // Process data in 64-byte chunks - while (len >= 64) - { - memcpy(in,data,64); - byteSwap(in,16); - MD5Transform(buf,in); - data += 64; - len -= 64; - } - - // Handle any remaining bytes of data. - memcpy(in,data,len); - - return true; -} - /*}}}*/ -// MD5Summation::Result - Returns the value of the sum /*{{{*/ -// --------------------------------------------------------------------- -/* Because this must add in the last bytes of the series it prevents anyone - from calling add after. */ -MD5SumValue MD5Summation::Result() -{ - uint32_t *buf = (uint32_t *)Buf; - uint32_t *bytes = (uint32_t *)Bytes; - uint32_t *in = (uint32_t *)In; - - if (Done == false) - { - // Number of bytes in In - int count = bytes[0] & 0x3f; - unsigned char *p = (unsigned char *)in + count; - - // Set the first char of padding to 0x80. There is always room. - *p++ = 0x80; - - // Bytes of padding needed to make 56 bytes (-8..55) - count = 56 - 1 - count; - - // Padding forces an extra block - if (count < 0) - { - memset(p,0,count + 8); - byteSwap(in, 16); - MD5Transform(buf,in); - p = (unsigned char *)in; - count = 56; - } - - memset(p, 0, count); - byteSwap(in, 14); - - // Append length in bits and transform - in[14] = bytes[0] << 3; - in[15] = bytes[1] << 3 | bytes[0] >> 29; - MD5Transform(buf,in); - byteSwap(buf,4); - Done = true; - } - - MD5SumValue V; - V.Set((unsigned char *)buf); - return V; -} - /*}}}*/ diff --git a/apt-pkg/contrib/md5.h b/apt-pkg/contrib/md5.h deleted file mode 100644 index d1287c573..000000000 --- a/apt-pkg/contrib/md5.h +++ /dev/null @@ -1,49 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - MD5SumValue - Storage for a MD5Sum - MD5Summation - MD5 Message Digest Algorithm. - - This is a C++ interface to a set of MD5Sum functions. The class can - store a MD5Sum in 16 bytes of memory. - - A MD5Sum is used to generate a (hopefully) unique 16 byte number for a - block of data. This can be used to guard against corruption of a file. - MD5 should not be used for tamper protection, use SHA or something more - secure. - - There are two classes because computing a MD5 is not a continual - operation unless 64 byte blocks are used. Also the summation requires an - extra 18*4 bytes to operate. - - ##################################################################### */ - /*}}}*/ -#ifndef APTPKG_MD5_H -#define APTPKG_MD5_H - -#include <stdint.h> - -#include "hashsum_template.h" - - -typedef HashSumValue<128> MD5SumValue; - -class MD5Summation : public SummationImplementation -{ - uint32_t Buf[4]; - unsigned char Bytes[2*4]; - unsigned char In[16*4]; - bool Done; - - public: - - bool Add(const unsigned char *inbuf, unsigned long long inlen) APT_OVERRIDE APT_NONNULL(2); - using SummationImplementation::Add; - - MD5SumValue Result(); - - MD5Summation(); -}; - -#endif diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc index ee6a21c83..020491172 100644 --- a/apt-pkg/contrib/mmap.cc +++ b/apt-pkg/contrib/mmap.cc @@ -357,25 +357,26 @@ unsigned long DynamicMMap::Allocate(unsigned long ItemSize) // Look for a matching pool entry Pool *I; - Pool *Empty = 0; for (I = Pools; I != Pools + PoolCount; ++I) { - if (I->ItemSize == 0) - Empty = I; if (I->ItemSize == ItemSize) break; } - // No pool is allocated, use an unallocated one - if (I == Pools + PoolCount) + // No pool is allocated, use an unallocated one. + if (unlikely(I == Pools + PoolCount)) { + for (I = Pools; I != Pools + PoolCount; ++I) + { + if (I->ItemSize == 0) + break; + } // Woops, we ran out, the calling code should allocate more. - if (Empty == 0) + if (I == Pools + PoolCount) { _error->Error("Ran out of allocation pools"); return 0; } - - I = Empty; + I->ItemSize = ItemSize; I->Count = 0; } diff --git a/apt-pkg/contrib/netrc.cc b/apt-pkg/contrib/netrc.cc index ee1996f8d..a6f408c0e 100644 --- a/apt-pkg/contrib/netrc.cc +++ b/apt-pkg/contrib/netrc.cc @@ -11,6 +11,7 @@ ##################################################################### */ /*}}}*/ #include <config.h> +#include <apti18n.h> #include <apt-pkg/configuration.h> #include <apt-pkg/error.h> @@ -47,6 +48,8 @@ bool MaybeAddAuth(FileFd &NetRCFile, URI &Uri) std::string line; while (NetRCFile.Eof() == false || line.empty() == false) { + bool protocolSpecified = false; + if (line.empty()) { if (NetRCFile.ReadLine(line) == false) @@ -72,6 +75,20 @@ bool MaybeAddAuth(FileFd &NetRCFile, URI &Uri) active_token = MACHINE; break; case MACHINE: + // If token contains a protocol: Check it first, and strip it away if + // it matches. If it does not match, ignore this stanza. + // If there is no protocol, only allow https protocols. + protocolSpecified = token.find("://") != std::string::npos; + if (protocolSpecified) + { + if (not APT::String::Startswith(token, Uri.Access + "://")) + { + active_token = NO; + break; + } + token.erase(0, Uri.Access.length() + 3); + } + if (token.find('/') == std::string::npos) { if (Uri.Port != 0 && Uri.Host == token) @@ -88,6 +105,15 @@ bool MaybeAddAuth(FileFd &NetRCFile, URI &Uri) else active_token = NO; } + + if (active_token == GOOD_MACHINE && not protocolSpecified) + { + if (Uri.Access != "https" && Uri.Access != "tor+https") + { + _error->Warning(_("%s: Credentials for %s match, but the protocol is not encrypted. Annotate with %s:// to use."), NetRCFile.Name().c_str(), token.c_str(), Uri.Access.c_str()); + active_token = NO; + } + } break; case GOOD_MACHINE: if (token == "login") @@ -141,46 +167,3 @@ bool MaybeAddAuth(FileFd &NetRCFile, URI &Uri) } return false; } - -/* Check if we are authorized. */ -bool IsAuthorized(pkgCache::PkgFileIterator const I, std::vector<std::unique_ptr<FileFd>> &authconfs) -{ - if (authconfs.empty()) - { - _error->PushToStack(); - auto const netrc = _config->FindFile("Dir::Etc::netrc"); - if (not netrc.empty()) - { - authconfs.emplace_back(new FileFd()); - authconfs.back()->Open(netrc, FileFd::ReadOnly); - } - - auto const netrcparts = _config->FindDir("Dir::Etc::netrcparts"); - if (not netrcparts.empty()) - { - for (auto const &netrc : GetListOfFilesInDir(netrcparts, "conf", true, true)) - { - authconfs.emplace_back(new FileFd()); - authconfs.back()->Open(netrc, FileFd::ReadOnly); - } - } - _error->RevertToStack(); - } - - // FIXME: Use the full base url - URI uri(std::string("http://") + I.Site() + "/"); - for (auto &authconf : authconfs) - { - if (not authconf->IsOpen()) - continue; - if (not authconf->Seek(0)) - continue; - - MaybeAddAuth(*authconf, uri); - - if (not uri.User.empty() || not uri.Password.empty()) - return true; - } - - return false; -} diff --git a/apt-pkg/contrib/netrc.h b/apt-pkg/contrib/netrc.h index c8a03a4b7..b13f18187 100644 --- a/apt-pkg/contrib/netrc.h +++ b/apt-pkg/contrib/netrc.h @@ -13,12 +13,9 @@ #ifndef NETRC_H #define NETRC_H -#include <memory> #include <string> -#include <vector> #include <apt-pkg/macros.h> -#include <apt-pkg/pkgcache.h> @@ -26,5 +23,4 @@ class URI; class FileFd; bool MaybeAddAuth(FileFd &NetRCFile, URI &Uri); -bool IsAuthorized(pkgCache::PkgFileIterator const I, std::vector<std::unique_ptr<FileFd>> &authconfs) APT_HIDDEN; #endif diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc index 806bd47f8..971198270 100644 --- a/apt-pkg/contrib/progress.cc +++ b/apt-pkg/contrib/progress.cc @@ -123,7 +123,7 @@ bool OpProgress::CheckChange(float Interval) std::chrono::duration<decltype(Interval)> Delta = std::chrono::seconds(NowTime.tv_sec - LastTime.tv_sec) + - std::chrono::microseconds(NowTime.tv_sec - LastTime.tv_usec); + std::chrono::microseconds(NowTime.tv_usec - LastTime.tv_usec); if (Delta.count() < Interval) return false; diff --git a/apt-pkg/contrib/sha1.cc b/apt-pkg/contrib/sha1.cc deleted file mode 100644 index bf0b9d634..000000000 --- a/apt-pkg/contrib/sha1.cc +++ /dev/null @@ -1,273 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - SHA1 - SHA-1 Secure Hash Algorithm. - - This file is a Public Domain wrapper for the Public Domain SHA1 - calculation code that is at it's end. - - The algorithm was originally implemented by - Steve Reid <sreid@sea-to-sky.net> and later modified by - James H. Brown <jbrown@burgoyne.com>. - - Modifications for APT were done by Alfredo K. Kojima and Jason - Gunthorpe. - - Still in the public domain. - - Test Vectors (from FIPS PUB 180-1) - "abc" - A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D - "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" - 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 - A million repetitions of "a" - 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F - - ##################################################################### - */ - /*}}} */ -// Include Files /*{{{*/ -#include <config.h> - -#include <apt-pkg/sha1.h> - -#include <stdint.h> -#include <string.h> - /*}}}*/ - -// SHA1Transform - Alters an existing SHA-1 hash /*{{{*/ -// --------------------------------------------------------------------- -/* The core of the SHA-1 algorithm. This alters an existing SHA-1 hash to - reflect the addition of 16 longwords of new data. Other routines convert - incoming stream data into 16 long word chunks for this routine */ - -#define rol(value,bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) - -/* blk0() and blk() perform the initial expand. */ -/* I got the idea of expanding during the round function from SSLeay */ -#ifndef WORDS_BIGENDIAN -#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \ - |(rol(block->l[i],8)&0x00FF00FF)) -#else -#define blk0(i) block->l[i] -#endif -#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \ - ^block->l[(i+2)&15]^block->l[i&15],1)) - -/* (R0+R1),R2,R3,R4 are the different operations used in SHA1 */ -#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30); -#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30); -#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30); -#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30); -#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30); - -static void SHA1Transform(uint32_t state[5],uint8_t const buffer[64]) -{ - uint32_t a,b,c,d,e; - typedef union - { - uint8_t c[64]; - uint32_t l[16]; - } - CHAR64LONG16; - CHAR64LONG16 workspace, *block; - - block = &workspace; - memcpy(block,buffer,sizeof(workspace)); - - /* Copy context->state[] to working vars */ - a = state[0]; - b = state[1]; - c = state[2]; - d = state[3]; - e = state[4]; - - /* 4 rounds of 20 operations each. Loop unrolled. */ - R0(a,b,c,d,e,0); - R0(e,a,b,c,d,1); - R0(d,e,a,b,c,2); - R0(c,d,e,a,b,3); - R0(b,c,d,e,a,4); - R0(a,b,c,d,e,5); - R0(e,a,b,c,d,6); - R0(d,e,a,b,c,7); - R0(c,d,e,a,b,8); - R0(b,c,d,e,a,9); - R0(a,b,c,d,e,10); - R0(e,a,b,c,d,11); - R0(d,e,a,b,c,12); - R0(c,d,e,a,b,13); - R0(b,c,d,e,a,14); - R0(a,b,c,d,e,15); - R1(e,a,b,c,d,16); - R1(d,e,a,b,c,17); - R1(c,d,e,a,b,18); - R1(b,c,d,e,a,19); - R2(a,b,c,d,e,20); - R2(e,a,b,c,d,21); - R2(d,e,a,b,c,22); - R2(c,d,e,a,b,23); - R2(b,c,d,e,a,24); - R2(a,b,c,d,e,25); - R2(e,a,b,c,d,26); - R2(d,e,a,b,c,27); - R2(c,d,e,a,b,28); - R2(b,c,d,e,a,29); - R2(a,b,c,d,e,30); - R2(e,a,b,c,d,31); - R2(d,e,a,b,c,32); - R2(c,d,e,a,b,33); - R2(b,c,d,e,a,34); - R2(a,b,c,d,e,35); - R2(e,a,b,c,d,36); - R2(d,e,a,b,c,37); - R2(c,d,e,a,b,38); - R2(b,c,d,e,a,39); - R3(a,b,c,d,e,40); - R3(e,a,b,c,d,41); - R3(d,e,a,b,c,42); - R3(c,d,e,a,b,43); - R3(b,c,d,e,a,44); - R3(a,b,c,d,e,45); - R3(e,a,b,c,d,46); - R3(d,e,a,b,c,47); - R3(c,d,e,a,b,48); - R3(b,c,d,e,a,49); - R3(a,b,c,d,e,50); - R3(e,a,b,c,d,51); - R3(d,e,a,b,c,52); - R3(c,d,e,a,b,53); - R3(b,c,d,e,a,54); - R3(a,b,c,d,e,55); - R3(e,a,b,c,d,56); - R3(d,e,a,b,c,57); - R3(c,d,e,a,b,58); - R3(b,c,d,e,a,59); - R4(a,b,c,d,e,60); - R4(e,a,b,c,d,61); - R4(d,e,a,b,c,62); - R4(c,d,e,a,b,63); - R4(b,c,d,e,a,64); - R4(a,b,c,d,e,65); - R4(e,a,b,c,d,66); - R4(d,e,a,b,c,67); - R4(c,d,e,a,b,68); - R4(b,c,d,e,a,69); - R4(a,b,c,d,e,70); - R4(e,a,b,c,d,71); - R4(d,e,a,b,c,72); - R4(c,d,e,a,b,73); - R4(b,c,d,e,a,74); - R4(a,b,c,d,e,75); - R4(e,a,b,c,d,76); - R4(d,e,a,b,c,77); - R4(c,d,e,a,b,78); - R4(b,c,d,e,a,79); - - /* Add the working vars back into context.state[] */ - state[0] += a; - state[1] += b; - state[2] += c; - state[3] += d; - state[4] += e; -} - /*}}}*/ - -// SHA1Summation::SHA1Summation - Constructor /*{{{*/ -// --------------------------------------------------------------------- -/* */ -SHA1Summation::SHA1Summation() -{ - uint32_t *state = (uint32_t *)State; - uint32_t *count = (uint32_t *)Count; - - /* SHA1 initialization constants */ - state[0] = 0x67452301; - state[1] = 0xEFCDAB89; - state[2] = 0x98BADCFE; - state[3] = 0x10325476; - state[4] = 0xC3D2E1F0; - count[0] = 0; - count[1] = 0; - Done = false; -} - /*}}}*/ -// SHA1Summation::Result - Return checksum value /*{{{*/ -// --------------------------------------------------------------------- -/* Add() may not be called after this */ -SHA1SumValue SHA1Summation::Result() -{ - uint32_t *state = (uint32_t *)State; - uint32_t *count = (uint32_t *)Count; - - // Apply the padding - if (Done == false) - { - unsigned char finalcount[8]; - - for (unsigned i = 0; i < 8; i++) - { - // Endian independent - finalcount[i] = (unsigned char) ((count[(i >= 4 ? 0 : 1)] - >> ((3 - (i & 3)) * 8)) & 255); - } - - Add((unsigned char *) "\200",1); - while ((count[0] & 504) != 448) - Add((unsigned char *) "\0",1); - - Add(finalcount,8); /* Should cause a SHA1Transform() */ - - } - - Done = true; - - // Transfer over the result - SHA1SumValue Value; - unsigned char res[20]; - for (unsigned i = 0; i < 20; i++) - { - res[i] = (unsigned char) - ((state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255); - } - Value.Set(res); - return Value; -} - /*}}}*/ -// SHA1Summation::Add - Adds content of buffer into the checksum /*{{{*/ -// --------------------------------------------------------------------- -/* May not be called after Result() is called */ -bool SHA1Summation::Add(const unsigned char *data,unsigned long long len) -{ - if (Done) - return false; - if (len == 0) - return true; - - uint32_t *state = (uint32_t *)State; - uint32_t *count = (uint32_t *)Count; - uint8_t *buffer = (uint8_t *)Buffer; - uint32_t i,j; - - j = (count[0] >> 3) & 63; - if ((count[0] += len << 3) < (len << 3)) - count[1]++; - count[1] += (len >> 29); - if ((j + len) > 63) - { - memcpy(&buffer[j],data,(i = 64 - j)); - SHA1Transform(state,buffer); - for (; i + 63 < len; i += 64) - { - SHA1Transform(state,&data[i]); - } - j = 0; - } - else - i = 0; - memcpy(&buffer[j],&data[i],len - i); - - return true; -} - /*}}}*/ diff --git a/apt-pkg/contrib/sha1.h b/apt-pkg/contrib/sha1.h deleted file mode 100644 index 7149da97f..000000000 --- a/apt-pkg/contrib/sha1.h +++ /dev/null @@ -1,38 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - SHA1SumValue - Storage for a SHA-1 hash. - SHA1Summation - SHA-1 Secure Hash Algorithm. - - This is a C++ interface to a set of SHA1Sum functions, that mirrors - the equivalent MD5 classes. - - ##################################################################### */ - /*}}}*/ -#ifndef APTPKG_SHA1_H -#define APTPKG_SHA1_H - -#include "hashsum_template.h" - - -typedef HashSumValue<160> SHA1SumValue; - -class SHA1Summation : public SummationImplementation -{ - /* assumes 64-bit alignment just in case */ - unsigned char Buffer[64] __attribute__((aligned(8))); - unsigned char State[5*4] __attribute__((aligned(8))); - unsigned char Count[2*4] __attribute__((aligned(8))); - bool Done; - - public: - bool Add(const unsigned char *inbuf, unsigned long long inlen) APT_OVERRIDE APT_NONNULL(2); - using SummationImplementation::Add; - - SHA1SumValue Result(); - - SHA1Summation(); -}; - -#endif diff --git a/apt-pkg/contrib/sha2.h b/apt-pkg/contrib/sha2.h deleted file mode 100644 index 5489007a2..000000000 --- a/apt-pkg/contrib/sha2.h +++ /dev/null @@ -1,103 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - SHA{512,256}SumValue - Storage for a SHA-{512,256} hash. - SHA{512,256}Summation - SHA-{512,256} Secure Hash Algorithm. - - This is a C++ interface to a set of SHA{512,256}Sum functions, that mirrors - the equivalent MD5 & SHA1 classes. - - ##################################################################### */ - /*}}}*/ -#ifndef APTPKG_SHA2_H -#define APTPKG_SHA2_H - -#include <cstring> - -#include "hashsum_template.h" -#include "sha2_internal.h" - - - -typedef HashSumValue<512> SHA512SumValue; -typedef HashSumValue<256> SHA256SumValue; - -class SHA2SummationBase : public SummationImplementation -{ - protected: - bool Done; - public: - bool Add(const unsigned char *inbuf, unsigned long long len) APT_OVERRIDE APT_NONNULL(2) = 0; - - void Result(); -}; - -class SHA256Summation : public SHA2SummationBase -{ - SHA256_CTX ctx; - unsigned char Sum[32]; - - public: - bool Add(const unsigned char *inbuf, unsigned long long len) APT_OVERRIDE APT_NONNULL(2) - { - if (Done) - return false; - SHA256_Update(&ctx, inbuf, len); - return true; - }; - using SummationImplementation::Add; - - SHA256SumValue Result() - { - if (!Done) { - SHA256_Final(Sum, &ctx); - Done = true; - } - SHA256SumValue res; - res.Set(Sum); - return res; - }; - SHA256Summation() - { - SHA256_Init(&ctx); - Done = false; - memset(&Sum, 0, sizeof(Sum)); - }; -}; - -class SHA512Summation : public SHA2SummationBase -{ - SHA512_CTX ctx; - unsigned char Sum[64]; - - public: - bool Add(const unsigned char *inbuf, unsigned long long len) APT_OVERRIDE APT_NONNULL(2) - { - if (Done) - return false; - SHA512_Update(&ctx, inbuf, len); - return true; - }; - using SummationImplementation::Add; - - SHA512SumValue Result() - { - if (!Done) { - SHA512_Final(Sum, &ctx); - Done = true; - } - SHA512SumValue res; - res.Set(Sum); - return res; - }; - SHA512Summation() - { - SHA512_Init(&ctx); - Done = false; - memset(&Sum, 0, sizeof(Sum)); - }; -}; - - -#endif diff --git a/apt-pkg/contrib/sha256.h b/apt-pkg/contrib/sha256.h deleted file mode 100644 index 15146c948..000000000 --- a/apt-pkg/contrib/sha256.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef APTPKG_SHA256_H -#define APTPKG_SHA256_H - -#include "sha2.h" - -#warning "This header is deprecated, please include sha2.h instead" - -#endif diff --git a/apt-pkg/contrib/sha2_internal.cc b/apt-pkg/contrib/sha2_internal.cc deleted file mode 100644 index 92a4a8619..000000000 --- a/apt-pkg/contrib/sha2_internal.cc +++ /dev/null @@ -1,1089 +0,0 @@ -/* - * FILE: sha2.c - * AUTHOR: Aaron D. Gifford - http://www.aarongifford.com/ - * - * Copyright (c) 2000-2001, Aaron D. Gifford - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holder nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ -#include <config.h> - -#include "sha2_internal.h" -#include <assert.h> /* assert() */ -#include <endian.h> -#include <string.h> /* memcpy()/memset() or bcopy()/bzero() */ - -/* - * ASSERT NOTE: - * Some sanity checking code is included using assert(). On my FreeBSD - * system, this additional code can be removed by compiling with NDEBUG - * defined. Check your own systems manpage on assert() to see how to - * compile WITHOUT the sanity checking code on your system. - * - * UNROLLED TRANSFORM LOOP NOTE: - * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform - * loop version for the hash transform rounds (defined using macros - * later in this file). Either define on the command line, for example: - * - * cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c - * - * or define below: - * - * #define SHA2_UNROLL_TRANSFORM - * - */ - - -/*** SHA-256/384/512 Machine Architecture Definitions *****************/ -/* - * BYTE_ORDER NOTE: - * - * Please make sure that your system defines BYTE_ORDER. If your - * architecture is little-endian, make sure it also defines - * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are - * equivalent. - * - * If your system does not define the above, then you can do so by - * hand like this: - * - * #define LITTLE_ENDIAN 1234 - * #define BIG_ENDIAN 4321 - * - * And for little-endian machines, add: - * - * #define BYTE_ORDER LITTLE_ENDIAN - * - * Or for big-endian machines: - * - * #define BYTE_ORDER BIG_ENDIAN - * - * The FreeBSD machine this was written on defines BYTE_ORDER - * appropriately by including <sys/types.h> (which in turn includes - * <machine/endian.h> where the appropriate definitions are actually - * made). - */ -#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN) -#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN -#endif - -/* - * Define the followingsha2_* types to types of the correct length on - * the native architecture. Most BSD systems and Linux define u_intXX_t - * types. Machines with very recent ANSI C headers, can use the - * uintXX_t definintions from inttypes.h by defining SHA2_USE_INTTYPES_H - * during compile or in the sha.h header file. - * - * Machines that support neither u_intXX_t nor inttypes.h's uintXX_t - * will need to define these three typedefs below (and the appropriate - * ones in sha.h too) by hand according to their system architecture. - * - * Thank you, Jun-ichiro itojun Hagino, for suggesting using u_intXX_t - * types and pointing out recent ANSI C support for uintXX_t in inttypes.h. - */ -#ifdef SHA2_USE_INTTYPES_H - -typedef uint8_t sha2_byte; /* Exactly 1 byte */ -typedef uint32_t sha2_word32; /* Exactly 4 bytes */ -typedef uint64_t sha2_word64; /* Exactly 8 bytes */ - -#else /* SHA2_USE_INTTYPES_H */ - -typedef u_int8_t sha2_byte; /* Exactly 1 byte */ -typedef u_int32_t sha2_word32; /* Exactly 4 bytes */ -typedef u_int64_t sha2_word64; /* Exactly 8 bytes */ - -#endif /* SHA2_USE_INTTYPES_H */ - - -/*** SHA-256/384/512 Various Length Definitions ***********************/ -/* NOTE: Most of these are in sha2.h */ -#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8) -#define SHA384_SHORT_BLOCK_LENGTH (SHA384_BLOCK_LENGTH - 16) -#define SHA512_SHORT_BLOCK_LENGTH (SHA512_BLOCK_LENGTH - 16) - - -/*** ENDIAN REVERSAL MACROS *******************************************/ -#if BYTE_ORDER == LITTLE_ENDIAN -#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) -#define REVERSE32(w,x) { \ - (x) = __builtin_bswap32(w); \ -} -#define REVERSE64(w,x) { \ - (x) = __builtin_bswap64(w); \ -} -#else -#define REVERSE32(w,x) { \ - sha2_word32 tmp = (w); \ - tmp = (tmp >> 16) | (tmp << 16); \ - (x) = ((tmp & 0xff00ff00UL) >> 8) | ((tmp & 0x00ff00ffUL) << 8); \ -} -#define REVERSE64(w,x) { \ - sha2_word64 tmp = (w); \ - tmp = (tmp >> 32) | (tmp << 32); \ - tmp = ((tmp & 0xff00ff00ff00ff00ULL) >> 8) | \ - ((tmp & 0x00ff00ff00ff00ffULL) << 8); \ - (x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \ - ((tmp & 0x0000ffff0000ffffULL) << 16); \ -} -#endif -#endif /* BYTE_ORDER == LITTLE_ENDIAN */ - -/* - * Macro for incrementally adding the unsigned 64-bit integer n to the - * unsigned 128-bit integer (represented using a two-element array of - * 64-bit words): - */ -#define ADDINC128(w,n) { \ - (w)[0] += (sha2_word64)(n); \ - if ((w)[0] < (n)) { \ - (w)[1]++; \ - } \ -} - -/* - * Macros for copying blocks of memory and for zeroing out ranges - * of memory. Using these macros makes it easy to switch from - * using memset()/memcpy() and using bzero()/bcopy(). - * - * Please define either SHA2_USE_MEMSET_MEMCPY or define - * SHA2_USE_BZERO_BCOPY depending on which function set you - * choose to use: - */ -#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY) -/* Default to memset()/memcpy() if no option is specified */ -#define SHA2_USE_MEMSET_MEMCPY 1 -#endif -#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY) -/* Abort with an error if BOTH options are defined */ -#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both! -#endif - -#ifdef SHA2_USE_MEMSET_MEMCPY -#define MEMSET_BZERO(p,l) memset((p), 0, (l)) -#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l)) -#endif -#ifdef SHA2_USE_BZERO_BCOPY -#define MEMSET_BZERO(p,l) bzero((p), (l)) -#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l)) -#endif - - -/*** THE SIX LOGICAL FUNCTIONS ****************************************/ -/* - * Bit shifting and rotation (used by the six SHA-XYZ logical functions: - * - * NOTE: The naming of R and S appears backwards here (R is a SHIFT and - * S is a ROTATION) because the SHA-256/384/512 description document - * (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this - * same "backwards" definition. - */ -/* Shift-right (used in SHA-256, SHA-384, and SHA-512): */ -#define R(b,x) ((x) >> (b)) -/* 32-bit Rotate-right (used in SHA-256): */ -#define S32(b,x) (((x) >> (b)) | ((x) << (32 - (b)))) -/* 64-bit Rotate-right (used in SHA-384 and SHA-512): */ -#define S64(b,x) (((x) >> (b)) | ((x) << (64 - (b)))) - -/* Two of six logical functions used in SHA-256, SHA-384, and SHA-512: */ -#define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z))) -#define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) - -/* Four of six logical functions used in SHA-256: */ -#define Sigma0_256(x) (S32(2, (x)) ^ S32(13, (x)) ^ S32(22, (x))) -#define Sigma1_256(x) (S32(6, (x)) ^ S32(11, (x)) ^ S32(25, (x))) -#define sigma0_256(x) (S32(7, (x)) ^ S32(18, (x)) ^ R(3 , (x))) -#define sigma1_256(x) (S32(17, (x)) ^ S32(19, (x)) ^ R(10, (x))) - -/* Four of six logical functions used in SHA-384 and SHA-512: */ -#define Sigma0_512(x) (S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x))) -#define Sigma1_512(x) (S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x))) -#define sigma0_512(x) (S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7, (x))) -#define sigma1_512(x) (S64(19, (x)) ^ S64(61, (x)) ^ R( 6, (x))) - -/*** INTERNAL FUNCTION PROTOTYPES *************************************/ -/* NOTE: These should not be accessed directly from outside this - * library -- they are intended for private internal visibility/use - * only. - */ -static void SHA512_Last(SHA512_CTX*); -static void SHA256_Transform(SHA256_CTX*, const sha2_word32*); -static void SHA512_Transform(SHA512_CTX*, const sha2_word64*); - - -/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/ -/* Hash constant words K for SHA-256: */ -const static sha2_word32 K256[64] = { - 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, - 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, - 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL, - 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL, - 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL, - 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, - 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, - 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL, - 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL, - 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL, - 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, - 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, - 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL, - 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL, - 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL, - 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL -}; - -/* Initial hash value H for SHA-256: */ -const static sha2_word32 sha256_initial_hash_value[8] = { - 0x6a09e667UL, - 0xbb67ae85UL, - 0x3c6ef372UL, - 0xa54ff53aUL, - 0x510e527fUL, - 0x9b05688cUL, - 0x1f83d9abUL, - 0x5be0cd19UL -}; - -/* Hash constant words K for SHA-384 and SHA-512: */ -const static sha2_word64 K512[80] = { - 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, - 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, - 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, - 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, - 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, - 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, - 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, - 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, - 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, - 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, - 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, - 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, - 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, - 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, - 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, - 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, - 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, - 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, - 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, - 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, - 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, - 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, - 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, - 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, - 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, - 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, - 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, - 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, - 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, - 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, - 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, - 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, - 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, - 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, - 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, - 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, - 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, - 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, - 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, - 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL -}; - -/* Initial hash value H for SHA-384 */ -const static sha2_word64 sha384_initial_hash_value[8] = { - 0xcbbb9d5dc1059ed8ULL, - 0x629a292a367cd507ULL, - 0x9159015a3070dd17ULL, - 0x152fecd8f70e5939ULL, - 0x67332667ffc00b31ULL, - 0x8eb44a8768581511ULL, - 0xdb0c2e0d64f98fa7ULL, - 0x47b5481dbefa4fa4ULL -}; - -/* Initial hash value H for SHA-512 */ -const static sha2_word64 sha512_initial_hash_value[8] = { - 0x6a09e667f3bcc908ULL, - 0xbb67ae8584caa73bULL, - 0x3c6ef372fe94f82bULL, - 0xa54ff53a5f1d36f1ULL, - 0x510e527fade682d1ULL, - 0x9b05688c2b3e6c1fULL, - 0x1f83d9abfb41bd6bULL, - 0x5be0cd19137e2179ULL -}; - -/* - * Constant used by SHA256/384/512_End() functions for converting the - * digest to a readable hexadecimal character string: - */ -static const char *sha2_hex_digits = "0123456789abcdef"; - - -/*** SHA-256: *********************************************************/ -void SHA256_Init(SHA256_CTX* context) { - if (context == (SHA256_CTX*)0) { - return; - } - MEMCPY_BCOPY(context->state, sha256_initial_hash_value, SHA256_DIGEST_LENGTH); - MEMSET_BZERO(context->buffer, SHA256_BLOCK_LENGTH); - context->bitcount = 0; -} - -#ifdef SHA2_UNROLL_TRANSFORM - -/* Unrolled SHA-256 round macros: */ - -#if BYTE_ORDER == LITTLE_ENDIAN - -#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) \ - REVERSE32(*data++, W256[j]); \ - T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \ - K256[j] + W256[j]; \ - (d) += T1; \ - (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \ - j++ - - -#else /* BYTE_ORDER == LITTLE_ENDIAN */ - -#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) \ - T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \ - K256[j] + (W256[j] = *data++); \ - (d) += T1; \ - (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \ - j++ - -#endif /* BYTE_ORDER == LITTLE_ENDIAN */ - -#define ROUND256(a,b,c,d,e,f,g,h) \ - s0 = W256[(j+1)&0x0f]; \ - s0 = sigma0_256(s0); \ - s1 = W256[(j+14)&0x0f]; \ - s1 = sigma1_256(s1); \ - T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + K256[j] + \ - (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0); \ - (d) += T1; \ - (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \ - j++ - -static void SHA256_Transform(SHA256_CTX* context, const sha2_word32* data) { - sha2_word32 a, b, c, d, e, f, g, h, s0, s1; - sha2_word32 T1, *W256; - int j; - - W256 = (sha2_word32*)context->buffer; - - /* Initialize registers with the prev. intermediate value */ - a = context->state[0]; - b = context->state[1]; - c = context->state[2]; - d = context->state[3]; - e = context->state[4]; - f = context->state[5]; - g = context->state[6]; - h = context->state[7]; - - j = 0; - do { - /* Rounds 0 to 15 (unrolled): */ - ROUND256_0_TO_15(a,b,c,d,e,f,g,h); - ROUND256_0_TO_15(h,a,b,c,d,e,f,g); - ROUND256_0_TO_15(g,h,a,b,c,d,e,f); - ROUND256_0_TO_15(f,g,h,a,b,c,d,e); - ROUND256_0_TO_15(e,f,g,h,a,b,c,d); - ROUND256_0_TO_15(d,e,f,g,h,a,b,c); - ROUND256_0_TO_15(c,d,e,f,g,h,a,b); - ROUND256_0_TO_15(b,c,d,e,f,g,h,a); - } while (j < 16); - - /* Now for the remaining rounds to 64: */ - do { - ROUND256(a,b,c,d,e,f,g,h); - ROUND256(h,a,b,c,d,e,f,g); - ROUND256(g,h,a,b,c,d,e,f); - ROUND256(f,g,h,a,b,c,d,e); - ROUND256(e,f,g,h,a,b,c,d); - ROUND256(d,e,f,g,h,a,b,c); - ROUND256(c,d,e,f,g,h,a,b); - ROUND256(b,c,d,e,f,g,h,a); - } while (j < 64); - - /* Compute the current intermediate hash value */ - context->state[0] += a; - context->state[1] += b; - context->state[2] += c; - context->state[3] += d; - context->state[4] += e; - context->state[5] += f; - context->state[6] += g; - context->state[7] += h; - - /* Clean up */ - a = b = c = d = e = f = g = h = T1 = 0; -} - -#else /* SHA2_UNROLL_TRANSFORM */ - -static void SHA256_Transform(SHA256_CTX* context, const sha2_word32* data) { - sha2_word32 a, b, c, d, e, f, g, h, s0, s1; - sha2_word32 T1, T2, *W256; - int j; - - W256 = (sha2_word32*)context->buffer; - - /* Initialize registers with the prev. intermediate value */ - a = context->state[0]; - b = context->state[1]; - c = context->state[2]; - d = context->state[3]; - e = context->state[4]; - f = context->state[5]; - g = context->state[6]; - h = context->state[7]; - - j = 0; - do { -#if BYTE_ORDER == LITTLE_ENDIAN - /* Copy data while converting to host byte order */ - REVERSE32(*data++,W256[j]); - /* Apply the SHA-256 compression function to update a..h */ - T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + W256[j]; -#else /* BYTE_ORDER == LITTLE_ENDIAN */ - /* Apply the SHA-256 compression function to update a..h with copy */ - T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + (W256[j] = *data++); -#endif /* BYTE_ORDER == LITTLE_ENDIAN */ - T2 = Sigma0_256(a) + Maj(a, b, c); - h = g; - g = f; - f = e; - e = d + T1; - d = c; - c = b; - b = a; - a = T1 + T2; - - j++; - } while (j < 16); - - do { - /* Part of the message block expansion: */ - s0 = W256[(j+1)&0x0f]; - s0 = sigma0_256(s0); - s1 = W256[(j+14)&0x0f]; - s1 = sigma1_256(s1); - - /* Apply the SHA-256 compression function to update a..h */ - T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + - (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0); - T2 = Sigma0_256(a) + Maj(a, b, c); - h = g; - g = f; - f = e; - e = d + T1; - d = c; - c = b; - b = a; - a = T1 + T2; - - j++; - } while (j < 64); - - /* Compute the current intermediate hash value */ - context->state[0] += a; - context->state[1] += b; - context->state[2] += c; - context->state[3] += d; - context->state[4] += e; - context->state[5] += f; - context->state[6] += g; - context->state[7] += h; - - /* Clean up */ - a = b = c = d = e = f = g = h = T1 = T2 = 0; -} - -#endif /* SHA2_UNROLL_TRANSFORM */ - -void SHA256_Update(SHA256_CTX* context, const sha2_byte *data, size_t len) { - unsigned int freespace, usedspace; - - if (len == 0) { - /* Calling with no data is valid - we do nothing */ - return; - } - - /* Sanity check: */ - assert(context != (SHA256_CTX*)0 && data != (sha2_byte*)0); - - usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH; - if (usedspace > 0) { - /* Calculate how much free space is available in the buffer */ - freespace = SHA256_BLOCK_LENGTH - usedspace; - - if (len >= freespace) { - /* Fill the buffer completely and process it */ - MEMCPY_BCOPY(&context->buffer[usedspace], data, freespace); - context->bitcount += freespace << 3; - len -= freespace; - data += freespace; - SHA256_Transform(context, (sha2_word32*)context->buffer); - } else { - /* The buffer is not yet full */ - MEMCPY_BCOPY(&context->buffer[usedspace], data, len); - context->bitcount += len << 3; - /* Clean up: */ - usedspace = freespace = 0; - return; - } - } - while (len >= SHA256_BLOCK_LENGTH) { - /* Process as many complete blocks as we can */ - sha2_byte buffer[SHA256_BLOCK_LENGTH]; - MEMCPY_BCOPY(buffer, data, SHA256_BLOCK_LENGTH); - SHA256_Transform(context, (sha2_word32*)buffer); - context->bitcount += SHA256_BLOCK_LENGTH << 3; - len -= SHA256_BLOCK_LENGTH; - data += SHA256_BLOCK_LENGTH; - } - if (len > 0) { - /* There's left-overs, so save 'em */ - MEMCPY_BCOPY(context->buffer, data, len); - context->bitcount += len << 3; - } - /* Clean up: */ - usedspace = freespace = 0; -} - -void SHA256_Final(sha2_byte digest[], SHA256_CTX* context) { - sha2_word32 *d = (sha2_word32*)digest; - unsigned int usedspace; - - /* Sanity check: */ - assert(context != (SHA256_CTX*)0); - - /* If no digest buffer is passed, we don't bother doing this: */ - if (digest != (sha2_byte*)0) { - usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH; -#if BYTE_ORDER == LITTLE_ENDIAN - /* Convert FROM host byte order */ - REVERSE64(context->bitcount,context->bitcount); -#endif - if (usedspace > 0) { - /* Begin padding with a 1 bit: */ - context->buffer[usedspace++] = 0x80; - - if (usedspace <= SHA256_SHORT_BLOCK_LENGTH) { - /* Set-up for the last transform: */ - MEMSET_BZERO(&context->buffer[usedspace], SHA256_SHORT_BLOCK_LENGTH - usedspace); - } else { - if (usedspace < SHA256_BLOCK_LENGTH) { - MEMSET_BZERO(&context->buffer[usedspace], SHA256_BLOCK_LENGTH - usedspace); - } - /* Do second-to-last transform: */ - SHA256_Transform(context, (sha2_word32*)context->buffer); - - /* And set-up for the last transform: */ - MEMSET_BZERO(context->buffer, SHA256_SHORT_BLOCK_LENGTH); - } - } else { - /* Set-up for the last transform: */ - MEMSET_BZERO(context->buffer, SHA256_SHORT_BLOCK_LENGTH); - - /* Begin padding with a 1 bit: */ - *context->buffer = 0x80; - } - /* Set the bit count: */ - union { - sha2_byte* c; - sha2_word64* l; - } bitcount; - bitcount.c = &context->buffer[SHA256_SHORT_BLOCK_LENGTH]; - *(bitcount.l) = context->bitcount; - - /* Final transform: */ - SHA256_Transform(context, (sha2_word32*)context->buffer); - -#if BYTE_ORDER == LITTLE_ENDIAN - { - /* Convert TO host byte order */ - int j; - for (j = 0; j < 8; j++) { - REVERSE32(context->state[j],context->state[j]); - *d++ = context->state[j]; - } - } -#else - MEMCPY_BCOPY(d, context->state, SHA256_DIGEST_LENGTH); -#endif - } - - /* Clean up state data: */ - MEMSET_BZERO(context, sizeof(*context)); - usedspace = 0; -} - -char *SHA256_End(SHA256_CTX* context, char buffer[]) { - sha2_byte digest[SHA256_DIGEST_LENGTH], *d = digest; - int i; - - /* Sanity check: */ - assert(context != (SHA256_CTX*)0); - - if (buffer != (char*)0) { - SHA256_Final(digest, context); - - for (i = 0; i < SHA256_DIGEST_LENGTH; i++) { - *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4]; - *buffer++ = sha2_hex_digits[*d & 0x0f]; - d++; - } - *buffer = (char)0; - } else { - MEMSET_BZERO(context, sizeof(*context)); - } - MEMSET_BZERO(digest, SHA256_DIGEST_LENGTH); - return buffer; -} - -char* SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIGEST_STRING_LENGTH]) { - SHA256_CTX context; - - SHA256_Init(&context); - SHA256_Update(&context, data, len); - return SHA256_End(&context, digest); -} - - -/*** SHA-512: *********************************************************/ -void SHA512_Init(SHA512_CTX* context) { - if (context == (SHA512_CTX*)0) { - return; - } - MEMCPY_BCOPY(context->state, sha512_initial_hash_value, SHA512_DIGEST_LENGTH); - MEMSET_BZERO(context->buffer, SHA512_BLOCK_LENGTH); - context->bitcount[0] = context->bitcount[1] = 0; -} - -#ifdef SHA2_UNROLL_TRANSFORM - -/* Unrolled SHA-512 round macros: */ -#if BYTE_ORDER == LITTLE_ENDIAN - -#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \ - REVERSE64(*data++, W512[j]); \ - T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \ - K512[j] + W512[j]; \ - (d) += T1, \ - (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)), \ - j++ - - -#else /* BYTE_ORDER == LITTLE_ENDIAN */ - -#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \ - T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \ - K512[j] + (W512[j] = *data++); \ - (d) += T1; \ - (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \ - j++ - -#endif /* BYTE_ORDER == LITTLE_ENDIAN */ - -#define ROUND512(a,b,c,d,e,f,g,h) \ - s0 = W512[(j+1)&0x0f]; \ - s0 = sigma0_512(s0); \ - s1 = W512[(j+14)&0x0f]; \ - s1 = sigma1_512(s1); \ - T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + K512[j] + \ - (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0); \ - (d) += T1; \ - (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \ - j++ - -static void SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) { - sha2_word64 a, b, c, d, e, f, g, h, s0, s1; - sha2_word64 T1, *W512 = (sha2_word64*)context->buffer; - int j; - - /* Initialize registers with the prev. intermediate value */ - a = context->state[0]; - b = context->state[1]; - c = context->state[2]; - d = context->state[3]; - e = context->state[4]; - f = context->state[5]; - g = context->state[6]; - h = context->state[7]; - - j = 0; - do { - ROUND512_0_TO_15(a,b,c,d,e,f,g,h); - ROUND512_0_TO_15(h,a,b,c,d,e,f,g); - ROUND512_0_TO_15(g,h,a,b,c,d,e,f); - ROUND512_0_TO_15(f,g,h,a,b,c,d,e); - ROUND512_0_TO_15(e,f,g,h,a,b,c,d); - ROUND512_0_TO_15(d,e,f,g,h,a,b,c); - ROUND512_0_TO_15(c,d,e,f,g,h,a,b); - ROUND512_0_TO_15(b,c,d,e,f,g,h,a); - } while (j < 16); - - /* Now for the remaining rounds up to 79: */ - do { - ROUND512(a,b,c,d,e,f,g,h); - ROUND512(h,a,b,c,d,e,f,g); - ROUND512(g,h,a,b,c,d,e,f); - ROUND512(f,g,h,a,b,c,d,e); - ROUND512(e,f,g,h,a,b,c,d); - ROUND512(d,e,f,g,h,a,b,c); - ROUND512(c,d,e,f,g,h,a,b); - ROUND512(b,c,d,e,f,g,h,a); - } while (j < 80); - - /* Compute the current intermediate hash value */ - context->state[0] += a; - context->state[1] += b; - context->state[2] += c; - context->state[3] += d; - context->state[4] += e; - context->state[5] += f; - context->state[6] += g; - context->state[7] += h; - - /* Clean up */ - a = b = c = d = e = f = g = h = T1 = 0; -} - -#else /* SHA2_UNROLL_TRANSFORM */ - -static void SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) { - sha2_word64 a, b, c, d, e, f, g, h, s0, s1; - sha2_word64 T1, T2, *W512 = (sha2_word64*)context->buffer; - int j; - - /* Initialize registers with the prev. intermediate value */ - a = context->state[0]; - b = context->state[1]; - c = context->state[2]; - d = context->state[3]; - e = context->state[4]; - f = context->state[5]; - g = context->state[6]; - h = context->state[7]; - - j = 0; - do { -#if BYTE_ORDER == LITTLE_ENDIAN - /* Convert TO host byte order */ - REVERSE64(*data++, W512[j]); - /* Apply the SHA-512 compression function to update a..h */ - T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + W512[j]; -#else /* BYTE_ORDER == LITTLE_ENDIAN */ - /* Apply the SHA-512 compression function to update a..h with copy */ - T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + (W512[j] = *data++); -#endif /* BYTE_ORDER == LITTLE_ENDIAN */ - T2 = Sigma0_512(a) + Maj(a, b, c); - h = g; - g = f; - f = e; - e = d + T1; - d = c; - c = b; - b = a; - a = T1 + T2; - - j++; - } while (j < 16); - - do { - /* Part of the message block expansion: */ - s0 = W512[(j+1)&0x0f]; - s0 = sigma0_512(s0); - s1 = W512[(j+14)&0x0f]; - s1 = sigma1_512(s1); - - /* Apply the SHA-512 compression function to update a..h */ - T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + - (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0); - T2 = Sigma0_512(a) + Maj(a, b, c); - h = g; - g = f; - f = e; - e = d + T1; - d = c; - c = b; - b = a; - a = T1 + T2; - - j++; - } while (j < 80); - - /* Compute the current intermediate hash value */ - context->state[0] += a; - context->state[1] += b; - context->state[2] += c; - context->state[3] += d; - context->state[4] += e; - context->state[5] += f; - context->state[6] += g; - context->state[7] += h; - - /* Clean up */ - a = b = c = d = e = f = g = h = T1 = T2 = 0; -} - -#endif /* SHA2_UNROLL_TRANSFORM */ - -void SHA512_Update(SHA512_CTX* context, const sha2_byte *data, size_t len) { - unsigned int freespace, usedspace; - - if (len == 0) { - /* Calling with no data is valid - we do nothing */ - return; - } - - /* Sanity check: */ - assert(context != (SHA512_CTX*)0 && data != (sha2_byte*)0); - - usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH; - if (usedspace > 0) { - /* Calculate how much free space is available in the buffer */ - freespace = SHA512_BLOCK_LENGTH - usedspace; - - if (len >= freespace) { - /* Fill the buffer completely and process it */ - MEMCPY_BCOPY(&context->buffer[usedspace], data, freespace); - ADDINC128(context->bitcount, freespace << 3); - len -= freespace; - data += freespace; - SHA512_Transform(context, (sha2_word64*)context->buffer); - } else { - /* The buffer is not yet full */ - MEMCPY_BCOPY(&context->buffer[usedspace], data, len); - ADDINC128(context->bitcount, len << 3); - /* Clean up: */ - usedspace = freespace = 0; - return; - } - } - while (len >= SHA512_BLOCK_LENGTH) { - /* Process as many complete blocks as we can */ - sha2_byte buffer[SHA512_BLOCK_LENGTH]; - MEMCPY_BCOPY(buffer, data, SHA512_BLOCK_LENGTH); - SHA512_Transform(context, (sha2_word64*)buffer); - ADDINC128(context->bitcount, SHA512_BLOCK_LENGTH << 3); - len -= SHA512_BLOCK_LENGTH; - data += SHA512_BLOCK_LENGTH; - } - if (len > 0) { - /* There's left-overs, so save 'em */ - MEMCPY_BCOPY(context->buffer, data, len); - ADDINC128(context->bitcount, len << 3); - } - /* Clean up: */ - usedspace = freespace = 0; -} - -static void SHA512_Last(SHA512_CTX* context) { - unsigned int usedspace; - - usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH; -#if BYTE_ORDER == LITTLE_ENDIAN - /* Convert FROM host byte order */ - REVERSE64(context->bitcount[0],context->bitcount[0]); - REVERSE64(context->bitcount[1],context->bitcount[1]); -#endif - if (usedspace > 0) { - /* Begin padding with a 1 bit: */ - context->buffer[usedspace++] = 0x80; - - if (usedspace <= SHA512_SHORT_BLOCK_LENGTH) { - /* Set-up for the last transform: */ - MEMSET_BZERO(&context->buffer[usedspace], SHA512_SHORT_BLOCK_LENGTH - usedspace); - } else { - if (usedspace < SHA512_BLOCK_LENGTH) { - MEMSET_BZERO(&context->buffer[usedspace], SHA512_BLOCK_LENGTH - usedspace); - } - /* Do second-to-last transform: */ - SHA512_Transform(context, (sha2_word64*)context->buffer); - - /* And set-up for the last transform: */ - MEMSET_BZERO(context->buffer, SHA512_BLOCK_LENGTH - 2); - } - } else { - /* Prepare for final transform: */ - MEMSET_BZERO(context->buffer, SHA512_SHORT_BLOCK_LENGTH); - - /* Begin padding with a 1 bit: */ - *context->buffer = 0x80; - } - /* Store the length of input data (in bits): */ - union { - sha2_byte* c; - sha2_word64* l; - } bitcount; - bitcount.c = &context->buffer[SHA512_SHORT_BLOCK_LENGTH]; - bitcount.l[0] = context->bitcount[1]; - bitcount.l[1] = context->bitcount[0]; - - /* Final transform: */ - SHA512_Transform(context, (sha2_word64*)context->buffer); -} - -void SHA512_Final(sha2_byte digest[], SHA512_CTX* context) { - sha2_word64 *d = (sha2_word64*)digest; - - /* Sanity check: */ - assert(context != (SHA512_CTX*)0); - - /* If no digest buffer is passed, we don't bother doing this: */ - if (digest != (sha2_byte*)0) { - SHA512_Last(context); - - /* Save the hash data for output: */ -#if BYTE_ORDER == LITTLE_ENDIAN - { - /* Convert TO host byte order */ - int j; - for (j = 0; j < 8; j++) { - REVERSE64(context->state[j],context->state[j]); - *d++ = context->state[j]; - } - } -#else - MEMCPY_BCOPY(d, context->state, SHA512_DIGEST_LENGTH); -#endif - } - - /* Zero out state data */ - MEMSET_BZERO(context, sizeof(*context)); -} - -char *SHA512_End(SHA512_CTX* context, char buffer[]) { - sha2_byte digest[SHA512_DIGEST_LENGTH], *d = digest; - int i; - - /* Sanity check: */ - assert(context != (SHA512_CTX*)0); - - if (buffer != (char*)0) { - SHA512_Final(digest, context); - - for (i = 0; i < SHA512_DIGEST_LENGTH; i++) { - *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4]; - *buffer++ = sha2_hex_digits[*d & 0x0f]; - d++; - } - *buffer = (char)0; - } else { - MEMSET_BZERO(context, sizeof(*context)); - } - MEMSET_BZERO(digest, SHA512_DIGEST_LENGTH); - return buffer; -} - -char* SHA512_Data(const sha2_byte* data, size_t len, char digest[SHA512_DIGEST_STRING_LENGTH]) { - SHA512_CTX context; - - SHA512_Init(&context); - SHA512_Update(&context, data, len); - return SHA512_End(&context, digest); -} - - -/*** SHA-384: *********************************************************/ -void SHA384_Init(SHA384_CTX* context) { - if (context == (SHA384_CTX*)0) { - return; - } - MEMCPY_BCOPY(context->state, sha384_initial_hash_value, SHA512_DIGEST_LENGTH); - MEMSET_BZERO(context->buffer, SHA384_BLOCK_LENGTH); - context->bitcount[0] = context->bitcount[1] = 0; -} - -void SHA384_Update(SHA384_CTX* context, const sha2_byte* data, size_t len) { - SHA512_Update((SHA512_CTX*)context, data, len); -} - -void SHA384_Final(sha2_byte digest[], SHA384_CTX* context) { - sha2_word64 *d = (sha2_word64*)digest; - - /* Sanity check: */ - assert(context != (SHA384_CTX*)0); - - /* If no digest buffer is passed, we don't bother doing this: */ - if (digest != (sha2_byte*)0) { - SHA512_Last((SHA512_CTX*)context); - - /* Save the hash data for output: */ -#if BYTE_ORDER == LITTLE_ENDIAN - { - /* Convert TO host byte order */ - int j; - for (j = 0; j < 6; j++) { - REVERSE64(context->state[j],context->state[j]); - *d++ = context->state[j]; - } - } -#else - MEMCPY_BCOPY(d, context->state, SHA384_DIGEST_LENGTH); -#endif - } - - /* Zero out state data */ - MEMSET_BZERO(context, sizeof(*context)); -} - -char *SHA384_End(SHA384_CTX* context, char buffer[]) { - sha2_byte digest[SHA384_DIGEST_LENGTH], *d = digest; - int i; - - /* Sanity check: */ - assert(context != (SHA384_CTX*)0); - - if (buffer != (char*)0) { - SHA384_Final(digest, context); - - for (i = 0; i < SHA384_DIGEST_LENGTH; i++) { - *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4]; - *buffer++ = sha2_hex_digits[*d & 0x0f]; - d++; - } - *buffer = (char)0; - } else { - MEMSET_BZERO(context, sizeof(*context)); - } - MEMSET_BZERO(digest, SHA384_DIGEST_LENGTH); - return buffer; -} - -char* SHA384_Data(const sha2_byte* data, size_t len, char digest[SHA384_DIGEST_STRING_LENGTH]) { - SHA384_CTX context; - - SHA384_Init(&context); - SHA384_Update(&context, data, len); - return SHA384_End(&context, digest); -} - diff --git a/apt-pkg/contrib/sha2_internal.h b/apt-pkg/contrib/sha2_internal.h deleted file mode 100644 index 78d1d3618..000000000 --- a/apt-pkg/contrib/sha2_internal.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - * FILE: sha2.h - * AUTHOR: Aaron D. Gifford - http://www.aarongifford.com/ - * - * Copyright (c) 2000-2001, Aaron D. Gifford - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holder nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -#ifndef __SHA2_H__ -#define __SHA2_H__ - -/* - * Import u_intXX_t size_t type definitions from system headers. You - * may need to change this, or define these things yourself in this - * file. - */ -#include <sys/types.h> - -#ifdef SHA2_USE_INTTYPES_H - -#include <inttypes.h> -#include <stddef.h> - -#endif /* SHA2_USE_INTTYPES_H */ - - -/*** SHA-256/384/512 Various Length Definitions ***********************/ -#define SHA256_BLOCK_LENGTH 64 -#define SHA256_DIGEST_LENGTH 32 -#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1) -#define SHA384_BLOCK_LENGTH 128 -#define SHA384_DIGEST_LENGTH 48 -#define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1) -#define SHA512_BLOCK_LENGTH 128 -#define SHA512_DIGEST_LENGTH 64 -#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1) - - -/*** SHA-256/384/512 Context Structures *******************************/ -/* NOTE: If your architecture does not define either u_intXX_t types or - * uintXX_t (from inttypes.h), you may need to define things by hand - * for your system: - */ -#if 0 -typedef unsigned char u_int8_t; /* 1-byte (8-bits) */ -typedef unsigned int u_int32_t; /* 4-bytes (32-bits) */ -typedef unsigned long long u_int64_t; /* 8-bytes (64-bits) */ -#endif -/* - * Most BSD systems already define u_intXX_t types, as does Linux. - * Some systems, however, like Compaq's Tru64 Unix instead can use - * uintXX_t types defined by very recent ANSI C standards and included - * in the file: - * - * #include <inttypes.h> - * - * If you choose to use <inttypes.h> then please define: - * - * #define SHA2_USE_INTTYPES_H - * - * Or on the command line during compile: - * - * cc -DSHA2_USE_INTTYPES_H ... - */ -#ifdef SHA2_USE_INTTYPES_H - -typedef struct _SHA256_CTX { - uint32_t state[8]; - uint64_t bitcount; - uint8_t buffer[SHA256_BLOCK_LENGTH]; -} SHA256_CTX; -typedef struct _SHA512_CTX { - uint64_t state[8]; - uint64_t bitcount[2]; - uint8_t buffer[SHA512_BLOCK_LENGTH]; -} SHA512_CTX; - -#else /* SHA2_USE_INTTYPES_H */ - -typedef struct _SHA256_CTX { - u_int32_t state[8]; - u_int64_t bitcount; - u_int8_t buffer[SHA256_BLOCK_LENGTH]; -} SHA256_CTX; -typedef struct _SHA512_CTX { - u_int64_t state[8]; - u_int64_t bitcount[2]; - u_int8_t buffer[SHA512_BLOCK_LENGTH]; -} SHA512_CTX; - -#endif /* SHA2_USE_INTTYPES_H */ - -typedef SHA512_CTX SHA384_CTX; - - -/*** SHA-256/384/512 Function Prototypes ******************************/ -#ifndef NOPROTO -#ifdef SHA2_USE_INTTYPES_H - -void SHA256_Init(SHA256_CTX *); -void SHA256_Update(SHA256_CTX*, const uint8_t*, size_t); -void SHA256_Final(uint8_t[SHA256_DIGEST_LENGTH], SHA256_CTX*); -char* SHA256_End(SHA256_CTX*, char[SHA256_DIGEST_STRING_LENGTH]); -char* SHA256_Data(const uint8_t*, size_t, char[SHA256_DIGEST_STRING_LENGTH]); - -void SHA384_Init(SHA384_CTX*); -void SHA384_Update(SHA384_CTX*, const uint8_t*, size_t); -void SHA384_Final(uint8_t[SHA384_DIGEST_LENGTH], SHA384_CTX*); -char* SHA384_End(SHA384_CTX*, char[SHA384_DIGEST_STRING_LENGTH]); -char* SHA384_Data(const uint8_t*, size_t, char[SHA384_DIGEST_STRING_LENGTH]); - -void SHA512_Init(SHA512_CTX*); -void SHA512_Update(SHA512_CTX*, const uint8_t*, size_t); -void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*); -char* SHA512_End(SHA512_CTX*, char[SHA512_DIGEST_STRING_LENGTH]); -char* SHA512_Data(const uint8_t*, size_t, char[SHA512_DIGEST_STRING_LENGTH]); - -#else /* SHA2_USE_INTTYPES_H */ - -void SHA256_Init(SHA256_CTX *); -void SHA256_Update(SHA256_CTX*, const u_int8_t*, size_t); -void SHA256_Final(u_int8_t[SHA256_DIGEST_LENGTH], SHA256_CTX*); -char* SHA256_End(SHA256_CTX*, char[SHA256_DIGEST_STRING_LENGTH]); -char* SHA256_Data(const u_int8_t*, size_t, char[SHA256_DIGEST_STRING_LENGTH]); - -void SHA384_Init(SHA384_CTX*); -void SHA384_Update(SHA384_CTX*, const u_int8_t*, size_t); -void SHA384_Final(u_int8_t[SHA384_DIGEST_LENGTH], SHA384_CTX*); -char* SHA384_End(SHA384_CTX*, char[SHA384_DIGEST_STRING_LENGTH]); -char* SHA384_Data(const u_int8_t*, size_t, char[SHA384_DIGEST_STRING_LENGTH]); - -void SHA512_Init(SHA512_CTX*); -void SHA512_Update(SHA512_CTX*, const u_int8_t*, size_t); -void SHA512_Final(u_int8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*); -char* SHA512_End(SHA512_CTX*, char[SHA512_DIGEST_STRING_LENGTH]); -char* SHA512_Data(const u_int8_t*, size_t, char[SHA512_DIGEST_STRING_LENGTH]); - -#endif /* SHA2_USE_INTTYPES_H */ - -#else /* NOPROTO */ - -void SHA256_Init(); -void SHA256_Update(); -void SHA256_Final(); -char* SHA256_End(); -char* SHA256_Data(); - -void SHA384_Init(); -void SHA384_Update(); -void SHA384_Final(); -char* SHA384_End(); -char* SHA384_Data(); - -void SHA512_Init(); -void SHA512_Update(); -void SHA512_Final(); -char* SHA512_End(); -char* SHA512_Data(); - -#endif /* NOPROTO */ - -#endif /* __SHA2_H__ */ - diff --git a/apt-pkg/contrib/string_view.h b/apt-pkg/contrib/string_view.h index f4f0c645f..05aad3327 100644 --- a/apt-pkg/contrib/string_view.h +++ b/apt-pkg/contrib/string_view.h @@ -123,7 +123,10 @@ static inline int StringViewCompareFast(StringView a, StringView b) { return memcmp(a.data(), b.data(), a.size()); } - +static constexpr inline APT::StringView operator""_sv(const char *data, size_t size) +{ + return APT::StringView(data, size); +} } inline bool operator ==(const char *other, APT::StringView that); diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index 860e3fe47..70befdc48 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -40,6 +40,7 @@ #include <string.h> #include <time.h> #include <unistd.h> +#include <wchar.h> #include <apti18n.h> /*}}}*/ @@ -96,6 +97,53 @@ std::string Join(std::vector<std::string> list, const std::string &sep) return oss.str(); } +// Returns string display length honoring multi-byte characters +size_t DisplayLength(StringView str) +{ + size_t len = 0; + + const char *p = str.data(); + const char *const end = str.end(); + + mbstate_t state{}; + while (p < end) + { + wchar_t wch; + size_t res = mbrtowc(&wch, p, end - p, &state); + switch (res) + { + case 0: + // Null wide character (i.e. L'\0') - stop + p = end; + break; + + case static_cast<size_t>(-1): + // Byte sequence is invalid. Assume that it's + // a single-byte single-width character. + len += 1; + p += 1; + + // state is undefined in this case - reset it + state = {}; + + break; + + case static_cast<size_t>(-2): + // Byte sequence is too short. Assume that it's + // an incomplete single-width character and stop. + len += 1; + p = end; + break; + + default: + len += wcwidth(wch); + p += res; + } + } + + return len; +} + } } /*}}}*/ diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h index fc02357a8..56487b60f 100644 --- a/apt-pkg/contrib/strutl.h +++ b/apt-pkg/contrib/strutl.h @@ -33,6 +33,8 @@ namespace APT { bool Endswith(const std::string &s, const std::string &ending); bool Startswith(const std::string &s, const std::string &starting); std::string Join(std::vector<std::string> list, const std::string &sep); + // Returns string display length honoring multi-byte characters + size_t DisplayLength(StringView str); } } @@ -81,7 +83,6 @@ std::string TimeRFC1123(time_t Date, bool const NumericTimezone); * parsing is successful, undefined otherwise. * @return \b true if parsing was successful, otherwise \b false. */ -bool RFC1123StrToTime(const char* const str,time_t &time) APT_MUSTCHECK APT_PKG_590("Replaced by std::string variant"); bool RFC1123StrToTime(const std::string &str,time_t &time) APT_MUSTCHECK; bool FTPMDTMStrToTime(const char* const str,time_t &time) APT_MUSTCHECK; std::string LookupTag(const std::string &Message,const char *Tag,const char *Default = 0); diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index 279f35a38..e4ceebff2 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -23,6 +23,7 @@ #include <apt-pkg/pkgcache.h> #include <apt-pkg/pkgrecords.h> #include <apt-pkg/srcrecords.h> +#include <apt-pkg/strutl.h> #include <iostream> #include <memory> diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 75fc2d242..eaa9dfda9 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -14,11 +14,10 @@ #include <apt-pkg/aptconfiguration.h> #include <apt-pkg/cachefilter.h> #include <apt-pkg/configuration.h> -#include <apt-pkg/crc-16.h> #include <apt-pkg/deblistparser.h> #include <apt-pkg/error.h> +#include <apt-pkg/hashes.h> #include <apt-pkg/macros.h> -#include <apt-pkg/md5.h> #include <apt-pkg/pkgcache.h> #include <apt-pkg/strutl.h> #include <apt-pkg/tagfile-keys.h> @@ -166,8 +165,12 @@ bool debListParser::NewVersion(pkgCache::VerIterator &Ver) } // Parse the source package name pkgCache::GrpIterator G = Ver.ParentPkg().Group(); + + // Setup the defaults Ver->SourcePkgName = G->Name; Ver->SourceVerStr = Ver->VerStr; + + // Parse the name and version str if (Section.Find(pkgTagSection::Key::Source,Start,Stop) == true) { const char * const Space = static_cast<const char *>(memchr(Start, ' ', Stop - Start)); @@ -194,30 +197,19 @@ bool debListParser::NewVersion(pkgCache::VerIterator &Ver) } APT::StringView const pkgname(Start, Stop - Start); + // Oh, our group is the wrong one for the source package. Make a new one. if (pkgname != G.Name()) { - for (pkgCache::PkgIterator P = G.PackageList(); P.end() == false; P = G.NextPkg(P)) - { - for (V = P.VersionList(); V.end() == false; ++V) - { - if (pkgname == V.SourcePkgName()) - { - Ver->SourcePkgName = V->SourcePkgName; - break; - } - } - if (V.end() == false) - break; - } - if (V.end() == true) - { - map_stringitem_t const idx = StoreString(pkgCacheGenerator::PKGNAME, pkgname); - G = Ver.ParentPkg().Group(); - Ver->SourcePkgName = idx; - } + if (not NewGroup(G, pkgname)) + return false; } } + // Link into by source package group. + Ver->SourcePkgName = G->Name; + Ver->NextInSource = G->VersionsInSource; + G->VersionsInSource = Ver.Index(); + Ver->MultiArch = ParseMultiArch(true); // Archive Size Ver->Size = Section.FindULL(pkgTagSection::Key::Size); @@ -295,10 +287,10 @@ APT::StringView debListParser::Description_md5() if (desc == "\n") return StringView(); - MD5Summation md5; + Hashes md5(Hashes::MD5SUM); md5.Add(desc.data(), desc.size()); md5.Add("\n"); - MD5Buffer = md5.Result(); + MD5Buffer = md5.GetHashString(Hashes::MD5SUM).HashValue(); return StringView(MD5Buffer); } else if (likely(value.size() == 32)) @@ -346,7 +338,7 @@ bool debListParser::UsePackage(pkgCache::PkgIterator &Pkg, // ListParser::VersionHash - Compute a unique hash for this version /*{{{*/ // --------------------------------------------------------------------- /* */ -unsigned short debListParser::VersionHash() +uint32_t debListParser::VersionHash() { static constexpr pkgTagSection::Key Sections[] ={ pkgTagSection::Key::Installed_Size, @@ -357,7 +349,7 @@ unsigned short debListParser::VersionHash() pkgTagSection::Key::Conflicts, pkgTagSection::Key::Breaks, pkgTagSection::Key::Replaces}; - unsigned long Result = INIT_FCS; + unsigned long Result = 5381; for (auto I : Sections) { const char *Start; @@ -378,7 +370,7 @@ unsigned short debListParser::VersionHash() } if (isspace_ascii(*Start) != 0 || *Start == '=') continue; - Result = AddCRC16Byte(Result, tolower_ascii_unsafe(*Start)); + Result = 33 * Result + tolower_ascii_unsafe(*Start); } @@ -998,7 +990,7 @@ unsigned char debListParser::GetPrio(string Str) return Out; } /*}}}*/ -bool debListParser::SameVersion(unsigned short const Hash, /*{{{*/ +bool debListParser::SameVersion(uint32_t Hash, /*{{{*/ pkgCache::VerIterator const &Ver) { if (pkgCacheListParser::SameVersion(Hash, Ver) == false) diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h index c041585e6..eefce2a6a 100644 --- a/apt-pkg/deb/deblistparser.h +++ b/apt-pkg/deb/deblistparser.h @@ -11,7 +11,6 @@ #define PKGLIB_DEBLISTPARSER_H #include <apt-pkg/macros.h> -#include <apt-pkg/md5.h> #include <apt-pkg/pkgcache.h> #include <apt-pkg/pkgcachegen.h> #include <apt-pkg/tagfile.h> @@ -65,8 +64,8 @@ class APT_HIDDEN debListParser : public pkgCacheListParser virtual bool NewVersion(pkgCache::VerIterator &Ver) APT_OVERRIDE; virtual std::vector<std::string> AvailableDescriptionLanguages() APT_OVERRIDE; virtual APT::StringView Description_md5() APT_OVERRIDE; - virtual unsigned short VersionHash() APT_OVERRIDE; - virtual bool SameVersion(unsigned short const Hash, pkgCache::VerIterator const &Ver) APT_OVERRIDE; + virtual uint32_t VersionHash() APT_OVERRIDE; + virtual bool SameVersion(uint32_t Hash, pkgCache::VerIterator const &Ver) APT_OVERRIDE; virtual bool UsePackage(pkgCache::PkgIterator &Pkg, pkgCache::VerIterator &Ver) APT_OVERRIDE; virtual map_filesize_t Offset() APT_OVERRIDE {return iOffset;}; diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index a88b19807..2c0ab1d0d 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -915,7 +915,6 @@ bool debReleaseIndex::Merge(pkgCacheGenerator &Gen,OpProgress * /*Prog*/) const/ #undef APT_INRELEASE Section.FindFlag("NotAutomatic", File->Flags, pkgCache::Flag::NotAutomatic); Section.FindFlag("ButAutomaticUpgrades", File->Flags, pkgCache::Flag::ButAutomaticUpgrades); - Section.FindFlag("Packages-Require-Authorization", File->Flags, pkgCache::Flag::PackagesRequireAuthorization); return true; } diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 4de36d528..0b807d668 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1775,6 +1775,7 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress) case Item::Remove: case Item::Purge: ADDARGC("--force-depends"); + ADDARGC("--abort-after=1"); if (std::any_of(I, J, ItemIsEssential)) { ADDARGC("--force-remove-essential"); diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc index 0d5fe150b..fe6f55dcb 100644 --- a/apt-pkg/edsp.cc +++ b/apt-pkg/edsp.cc @@ -94,7 +94,7 @@ static bool WriteScenarioVersion(FileFd &output, pkgCache::PkgIterator const &Pk // WriteScenarioDependency /*{{{*/ static bool WriteScenarioDependency(FileFd &output, pkgCache::VerIterator const &Ver, bool const OnlyCritical) { - std::array<std::string, _count(DepMap)> dependencies; + std::array<std::string, APT_ARRAY_SIZE(DepMap)> dependencies; bool orGroup = false; for (pkgCache::DepIterator Dep = Ver.DependsList(); Dep.end() == false; ++Dep) { @@ -141,7 +141,7 @@ static bool WriteScenarioLimitedDependency(FileFd &output, std::vector<bool> const &pkgset, bool const OnlyCritical) { - std::array<std::string, _count(DepMap)> dependencies; + std::array<std::string, APT_ARRAY_SIZE(DepMap)> dependencies; bool orGroup = false; for (pkgCache::DepIterator Dep = Ver.DependsList(); Dep.end() == false; ++Dep) { diff --git a/apt-pkg/edsp/edsplistparser.cc b/apt-pkg/edsp/edsplistparser.cc index 31bded9ca..45abdbc61 100644 --- a/apt-pkg/edsp/edsplistparser.cc +++ b/apt-pkg/edsp/edsplistparser.cc @@ -15,10 +15,10 @@ #include <apt-pkg/deblistparser.h> #include <apt-pkg/edsplistparser.h> #include <apt-pkg/fileutl.h> -#include <apt-pkg/md5.h> #include <apt-pkg/pkgcache.h> #include <apt-pkg/pkgsystem.h> #include <apt-pkg/string_view.h> +#include <apt-pkg/strutl.h> #include <apt-pkg/tagfile.h> #include <array> @@ -59,7 +59,7 @@ APT::StringView edspLikeListParser::Description_md5() } /*}}}*/ // ListParser::VersionHash - Compute a unique hash for this version /*{{{*/ -unsigned short edspLikeListParser::VersionHash() +uint32_t edspLikeListParser::VersionHash() { if (Section.Exists("APT-Hash") == true) return Section.FindI("APT-Hash"); diff --git a/apt-pkg/edsp/edsplistparser.h b/apt-pkg/edsp/edsplistparser.h index 6087e77e6..41bfd1f79 100644 --- a/apt-pkg/edsp/edsplistparser.h +++ b/apt-pkg/edsp/edsplistparser.h @@ -13,7 +13,6 @@ #include <apt-pkg/deblistparser.h> #include <apt-pkg/fileutl.h> -#include <apt-pkg/md5.h> #include <apt-pkg/pkgcache.h> #include <string> @@ -28,7 +27,7 @@ class APT_HIDDEN edspLikeListParser : public debListParser virtual bool NewVersion(pkgCache::VerIterator &Ver) APT_OVERRIDE; virtual std::vector<std::string> AvailableDescriptionLanguages() APT_OVERRIDE; virtual APT::StringView Description_md5() APT_OVERRIDE; - virtual unsigned short VersionHash() APT_OVERRIDE; + virtual uint32_t VersionHash() APT_OVERRIDE; explicit edspLikeListParser(FileFd *File); virtual ~edspLikeListParser(); diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index 2e8fac236..aadd28e51 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -382,7 +382,7 @@ bool PackageManagerFancy::DrawStatusLine() if (_config->FindB("Dpkg::Progress-Fancy::Progress-Bar", true)) { int padding = 4; - auto const progressbar_size = size.columns - padding - progress_str.size(); + auto const progressbar_size = size.columns - padding - String::DisplayLength(progress_str); auto const current_percent = percentage / 100.0f; std::cout << " " << GetTextProgressStr(current_percent, progressbar_size) diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index ba9a39f13..59f4256ea 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -275,6 +275,10 @@ uint32_t pkgCache::CacheHash() header.CacheFileSize = 0; adler = hash32(adler, + reinterpret_cast<const unsigned char *>(PACKAGE_VERSION), + APT_ARRAY_SIZE(PACKAGE_VERSION)); + + adler = hash32(adler, reinterpret_cast<const unsigned char *>(&header), sizeof(header)); @@ -381,7 +385,7 @@ const char *pkgCache::Priority(unsigned char Prio) { const char *Mapping[] = {0,_("required"),_("important"),_("standard"), _("optional"),_("extra")}; - if (Prio < _count(Mapping)) + if (Prio < APT_ARRAY_SIZE(Mapping)) return Mapping[Prio]; return 0; } @@ -992,6 +996,23 @@ string pkgCache::PkgFileIterator::RelStr() /*{{{*/ return Res; } /*}}}*/ +// VerIterator::TranslatedDescriptionForLanguage - Return a DescIter for language/*{{{*/ +// --------------------------------------------------------------------- +/* return a DescIter for the specified language + */ +pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescriptionForLanguage(StringView lang) const +{ + for (pkgCache::DescIterator Desc = DescriptionList(); Desc.end() == false; ++Desc) + if (lang == Desc.LanguageCode()) + return Desc; + + if (lang == "en") + return TranslatedDescriptionForLanguage(""); + + return DescIterator(); +} + + /*}}}*/ // VerIterator::TranslatedDescription - Return the a DescIter for locale/*{{{*/ // --------------------------------------------------------------------- /* return a DescIter for the current locale or the default if none is @@ -1003,30 +1024,15 @@ pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescription() const for (std::vector<string>::const_iterator l = lang.begin(); l != lang.end(); ++l) { - pkgCache::DescIterator Desc = DescriptionList(); - for (; Desc.end() == false; ++Desc) - if (*l == Desc.LanguageCode()) - break; - if (Desc.end() == true) - { - if (*l == "en") - { - Desc = DescriptionList(); - for (; Desc.end() == false; ++Desc) - if (strcmp(Desc.LanguageCode(), "") == 0) - break; - if (Desc.end() == true) - continue; - } - else - continue; - } - return Desc; + pkgCache::DescIterator Desc = TranslatedDescriptionForLanguage(*l); + if (Desc.IsGood()) + return Desc; } - for (pkgCache::DescIterator Desc = DescriptionList(); - Desc.end() == false; ++Desc) - if (strcmp(Desc.LanguageCode(), "") == 0) - return Desc; + + pkgCache::DescIterator Desc = TranslatedDescriptionForLanguage(""); + if (Desc.IsGood()) + return Desc; + return DescriptionList(); } diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index 3f77d5eae..84fc56db8 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -177,11 +177,9 @@ class pkgCache /*{{{*/ LocalSource=(1<<1), /*!< local sources can't and will not be verified by hashes */ NoPackages=(1<<2), /*!< the file includes no package records itself, but additions like Translations */ }; - enum ReleaseFileFlags - { - NotAutomatic = (1 << 0), /*!< archive has a default pin of 1 */ - ButAutomaticUpgrades = (1 << 1), /*!< (together with the previous) archive has a default pin of 100 */ - PackagesRequireAuthorization = (1 << 2), /*!< (together with the previous) archive has a default pin of 100 */ + enum ReleaseFileFlags { + NotAutomatic=(1<<0), /*!< archive has a default pin of 1 */ + ButAutomaticUpgrades=(1<<1), /*!< (together with the previous) archive has a default pin of 100 */ }; enum ProvidesFlags { MultiArchImplicit=pkgCache::Dep::MultiArchImplicit, /*!< generated internally, not spelled out in the index */ @@ -383,7 +381,11 @@ struct pkgCache::Header On or more packages with the same name form a group, so we have a simple way to access a package built for different architectures Group exists in a singly linked list of group records starting at - the hash index of the name in the pkgCache::Header::GrpHashTable */ + the hash index of the name in the pkgCache::Header::GrpHashTable + + They also act as a representation of source packages, allowing you to + iterate over all binaries produced by a source package. + */ struct pkgCache::Group { /** \brief Name of the group */ @@ -394,11 +396,15 @@ struct pkgCache::Group map_pointer_t FirstPackage; // Package /** \brief Link to the last package which belongs to the group */ map_pointer_t LastPackage; // Package + /** \brief Link to the next Group */ map_pointer_t Next; // Group /** \brief unique sequel ID */ map_id_t ID; + /** \brief List of binary produces by source package with this name. */ + map_pointer_t VersionsInSource; // Version + }; /*}}}*/ // Package structure /*{{{*/ @@ -637,11 +643,13 @@ struct pkgCache::Version No two packages in existence should have the same VerStr and Hash with different contents. */ - unsigned short Hash; + uint32_t Hash; /** \brief unique sequel ID */ map_id_t ID; /** \brief parsed priority value */ map_number_t Priority; + /** \brief next version in the source package (might be different binary) */ + map_pointer_t NextInSource; // Version }; /*}}}*/ // Description structure /*{{{*/ diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 030f4df0a..5a7272e84 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -17,7 +17,6 @@ #include <apt-pkg/hashsum_template.h> #include <apt-pkg/indexfile.h> #include <apt-pkg/macros.h> -#include <apt-pkg/md5.h> #include <apt-pkg/metaindex.h> #include <apt-pkg/mmap.h> #include <apt-pkg/pkgcache.h> @@ -377,7 +376,7 @@ bool pkgCacheGenerator::MergeListVersion(ListParser &List, pkgCache::PkgIterator map_pointer_t *LastVer = &Pkg->VersionList; void const * oldMap = Map.Data(); - unsigned short const Hash = List.VersionHash(); + auto Hash = List.VersionHash(); if (Ver.end() == false) { /* We know the list is sorted so we use that fact in the search. @@ -558,10 +557,11 @@ bool pkgCacheGenerator::NewGroup(pkgCache::GrpIterator &Grp, StringView Name) if (unlikely(Group == 0)) return false; - Grp = pkgCache::GrpIterator(Cache, Cache.GrpP + Group); - map_stringitem_t const idxName = StoreString(PKGNAME, Name); + map_stringitem_t const idxName = WriteStringInMap(Name); if (unlikely(idxName == 0)) return false; + + Grp = pkgCache::GrpIterator(Cache, Cache.GrpP + Group); Grp->Name = idxName; // Insert it into the hash table @@ -849,7 +849,7 @@ bool pkgCacheGenerator::NewFileVer(pkgCache::VerIterator &Ver, map_pointer_t pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver, APT::StringView const &VerStr, map_pointer_t const ParentPkg, - unsigned short const Hash, + uint32_t Hash, map_pointer_t const Next) { // Get a structure @@ -1204,7 +1204,7 @@ bool pkgCacheListParser::NewProvidesAllArch(pkgCache::VerIterator &Ver, StringVi Dynamic<StringView> DynPackage(Package); Dynamic<StringView> DynVersion(Version); - if (Grp.end() == true) + if (Grp.end() == true || Grp->FirstPackage == 0) return NewProvides(Ver, Package, Cache.NativeArch(), Version, Flags); else { @@ -1234,7 +1234,7 @@ bool pkgCacheListParser::NewProvidesAllArch(pkgCache::VerIterator &Ver, StringVi return true; } /*}}}*/ -bool pkgCacheListParser::SameVersion(unsigned short const Hash, /*{{{*/ +bool pkgCacheListParser::SameVersion(uint32_t Hash, /*{{{*/ pkgCache::VerIterator const &Ver) { return Hash == Ver->Hash; @@ -1336,7 +1336,6 @@ map_stringitem_t pkgCacheGenerator::StoreString(enum StringType const type, cons auto strings = &strMixed; switch(type) { case MIXED: strings = &strMixed; break; - case PKGNAME: strings = &strPkgNames; break; case VERSIONNUMBER: strings = &strVersions; break; case SECTION: strings = &strSections; break; default: _error->Fatal("Unknown enum type used for string storage of '%.*s'", Size, S); return 0; diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h index 1f639c526..70192c28e 100644 --- a/apt-pkg/pkgcachegen.h +++ b/apt-pkg/pkgcachegen.h @@ -19,7 +19,6 @@ #define PKGLIB_PKGCACHEGEN_H #include <apt-pkg/macros.h> -#include <apt-pkg/md5.h> #include <apt-pkg/mmap.h> #include <apt-pkg/pkgcache.h> @@ -70,7 +69,6 @@ class APT_HIDDEN pkgCacheGenerator /*{{{*/ }; std::unordered_set<string_pointer, hash> strMixed; - std::unordered_set<string_pointer, hash> strPkgNames; std::unordered_set<string_pointer, hash> strVersions; std::unordered_set<string_pointer, hash> strSections; #endif @@ -111,7 +109,7 @@ class APT_HIDDEN pkgCacheGenerator /*{{{*/ bool NewGroup(pkgCache::GrpIterator &Grp, APT::StringView Name); bool NewPackage(pkgCache::PkgIterator &Pkg, APT::StringView Name, APT::StringView Arch); map_pointer_t NewVersion(pkgCache::VerIterator &Ver, APT::StringView const &VerStr, - map_pointer_t const ParentPkg, unsigned short const Hash, + map_pointer_t const ParentPkg, uint32_t Hash, map_pointer_t const Next); map_pointer_t NewDescription(pkgCache::DescIterator &Desc,const std::string &Lang, APT::StringView md5sum,map_stringitem_t const idxmd5str); bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List); @@ -124,7 +122,7 @@ class APT_HIDDEN pkgCacheGenerator /*{{{*/ public: - enum StringType { MIXED, PKGNAME, VERSIONNUMBER, SECTION }; + enum StringType { MIXED, VERSIONNUMBER, SECTION }; map_stringitem_t StoreString(StringType const type, const char * S, unsigned int const Size); inline map_stringitem_t StoreString(enum StringType const type, APT::StringView S) {return StoreString(type, S.data(),S.length());}; @@ -179,7 +177,7 @@ class APT_HIDDEN pkgCacheListParser void * const d; protected: - + inline bool NewGroup(pkgCache::GrpIterator &Grp, APT::StringView Name) { return Owner->NewGroup(Grp, Name); } inline map_stringitem_t StoreString(pkgCacheGenerator::StringType const type, const char *S,unsigned int Size) {return Owner->StoreString(type, S, Size);}; inline map_stringitem_t StoreString(pkgCacheGenerator::StringType const type, APT::StringView S) {return Owner->StoreString(type, S);}; inline map_stringitem_t WriteString(APT::StringView S) {return Owner->WriteStringInMap(S.data(), S.size());}; @@ -203,13 +201,13 @@ class APT_HIDDEN pkgCacheListParser virtual bool NewVersion(pkgCache::VerIterator &Ver) = 0; virtual std::vector<std::string> AvailableDescriptionLanguages() = 0; virtual APT::StringView Description_md5() = 0; - virtual unsigned short VersionHash() = 0; + virtual uint32_t VersionHash() = 0; /** compare currently parsed version with given version * * \param Hash of the currently parsed version * \param Ver to compare with */ - virtual bool SameVersion(unsigned short const Hash, pkgCache::VerIterator const &Ver); + virtual bool SameVersion(uint32_t Hash, pkgCache::VerIterator const &Ver); virtual bool UsePackage(pkgCache::PkgIterator &Pkg, pkgCache::VerIterator &Ver) = 0; virtual map_filesize_t Offset() = 0; diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index b9bdfd20f..034fce79c 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -18,7 +18,6 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> -#include <apt-pkg/netrc.h> #include <apt-pkg/pkgcache.h> #include <apt-pkg/policy.h> #include <apt-pkg/strutl.h> @@ -85,7 +84,6 @@ pkgPolicy::pkgPolicy(pkgCache *Owner) : VerPins(nullptr), /* */ bool pkgPolicy::InitDefaults() { - std::vector<std::unique_ptr<FileFd>> authconfs; // Initialize the priorities based on the status of the package file for (pkgCache::PkgFileIterator I = Cache->FileBegin(); I != Cache->FileEnd(); ++I) { @@ -96,8 +94,6 @@ bool pkgPolicy::InitDefaults() PFPriority[I->ID] = 100; else if (I.Flagged(pkgCache::Flag::NotAutomatic)) PFPriority[I->ID] = 1; - if (I.Flagged(pkgCache::Flag::PackagesRequireAuthorization) && !IsAuthorized(I, authconfs)) - PFPriority[I->ID] = NEVER_PIN; } // Apply the defaults.. @@ -175,6 +171,11 @@ void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name, return; } + bool IsSourcePin = APT::String::Startswith(Name, "src:"); + if (IsSourcePin) { + Name = Name.substr(sizeof("src:") - 1); + } + size_t found = Name.rfind(':'); string Arch; if (found != string::npos) { @@ -190,10 +191,11 @@ void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name, for (pkgCache::GrpIterator G = Cache->GrpBegin(); G.end() != true; ++G) if (Name != G.Name() && match.ExpressionMatches(Name, G.Name())) { + auto NameToPinFor = IsSourcePin ? string("src:").append(G.Name()) : string(G.Name()); if (Arch.empty() == false) - CreatePin(Type, string(G.Name()).append(":").append(Arch), Data, Priority); + CreatePin(Type, NameToPinFor.append(":").append(Arch), Data, Priority); else - CreatePin(Type, G.Name(), Data, Priority); + CreatePin(Type, NameToPinFor, Data, Priority); } return; } @@ -209,20 +211,19 @@ void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name, else MatchingArch = Arch; APT::CacheFilter::PackageArchitectureMatchesSpecification pams(MatchingArch); - for (pkgCache::PkgIterator Pkg = Grp.PackageList(); Pkg.end() != true; Pkg = Grp.NextPkg(Pkg)) - { - if (pams(Pkg.Arch()) == false) - continue; - - PkgPin P(Pkg.FullName()); - P.Type = Type; - P.Priority = Priority; - P.Data = Data; - // Find matching version(s) and copy the pin into it - pkgVersionMatch Match(P.Data,P.Type); - for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() != true; ++Ver) + if (IsSourcePin) { + for (pkgCache::VerIterator Ver = Grp.VersionsInSource(); not Ver.end(); Ver = Ver.NextInSource()) { + if (pams(Ver.ParentPkg().Arch()) == false) + continue; + + PkgPin P(Ver.ParentPkg().FullName()); + P.Type = Type; + P.Priority = Priority; + P.Data = Data; + // Find matching version(s) and copy the pin into it + pkgVersionMatch Match(P.Data,P.Type); if (Match.VersionMatches(Ver)) { Pin *VP = VerPins + Ver->ID; if (VP->Type == pkgVersionMatch::None) { @@ -231,6 +232,30 @@ void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name, } } } + } else { + for (pkgCache::PkgIterator Pkg = Grp.PackageList(); Pkg.end() != true; Pkg = Grp.NextPkg(Pkg)) + { + if (pams(Pkg.Arch()) == false) + continue; + + PkgPin P(Pkg.FullName()); + P.Type = Type; + P.Priority = Priority; + P.Data = Data; + + // Find matching version(s) and copy the pin into it + pkgVersionMatch Match(P.Data,P.Type); + for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() != true; ++Ver) + { + if (Match.VersionMatches(Ver)) { + Pin *VP = VerPins + Ver->ID; + if (VP->Type == pkgVersionMatch::None) { + *VP = P; + matched = true; + } + } + } + } } } @@ -285,6 +310,21 @@ APT_PURE signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &Fi return PFPriority[File->ID]; } /*}}}*/ +// SetPriority - Directly set priority /*{{{*/ +// --------------------------------------------------------------------- +void pkgPolicy::SetPriority(pkgCache::VerIterator const &Ver, signed short Priority) +{ + Pin pin; + pin.Data = "pkgPolicy::SetPriority"; + pin.Priority = Priority; + VerPins[Ver->ID] = pin; +} +void pkgPolicy::SetPriority(pkgCache::PkgFileIterator const &File, signed short Priority) +{ + PFPriority[File->ID] = Priority; +} + + /*}}}*/ // ReadPinDir - Load the pin files from this dir into a Policy /*{{{*/ // --------------------------------------------------------------------- /* This will load each pin file in the given dir into a Policy. If the diff --git a/apt-pkg/policy.h b/apt-pkg/policy.h index 277aff3dd..2fd2f8197 100644 --- a/apt-pkg/policy.h +++ b/apt-pkg/policy.h @@ -76,6 +76,8 @@ class pkgPolicy : public pkgDepCache::Policy virtual signed short GetPriority(pkgCache::VerIterator const &Ver, bool ConsiderFiles = true) APT_OVERRIDE; virtual signed short GetPriority(pkgCache::PkgFileIterator const &File) APT_OVERRIDE; + void SetPriority(pkgCache::VerIterator const &Ver, signed short Priority); + void SetPriority(pkgCache::PkgFileIterator const &File, signed short Priority); bool InitDefaults(); explicit pkgPolicy(pkgCache *Owner); diff --git a/apt-pkg/srcrecords.cc b/apt-pkg/srcrecords.cc index a830a28f0..03bda75e9 100644 --- a/apt-pkg/srcrecords.cc +++ b/apt-pkg/srcrecords.cc @@ -52,7 +52,7 @@ pkgSrcRecords::pkgSrcRecords(pkgSourceList &List) : d(NULL), Files(0) // Doesn't work without any source index files if (Files.empty() == true) { - _error->Error(_("You must put some 'source' URIs" + _error->Error(_("You must put some 'deb-src' URIs" " in your sources.list")); return; } diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index 5944e530d..c5edae5d0 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -59,7 +59,7 @@ static bool addArgumentsAPTCache(std::vector<CommandLine::Args> &Args, char cons addArg('n', "names-only", "APT::Cache::NamesOnly", 0); addArg('f', "full", "APT::Cache::ShowFull", 0); } - else if (CmdMatches("show")) + else if (CmdMatches("show") | CmdMatches("info")) { addArg('a', "all-versions", "APT::Cache::AllVersions", 0); } @@ -344,7 +344,7 @@ static bool addArgumentsAPT(std::vector<CommandLine::Args> &Args, char const * c addArg('v', "verbose", "APT::Cmd::List-Include-Summary", 0); addArg('a', "all-versions", "APT::Cmd::All-Versions", 0); } - else if (CmdMatches("show")) + else if (CmdMatches("show") || CmdMatches("info")) { addArg('a', "all-versions", "APT::Cache::AllVersions", 0); } @@ -474,6 +474,7 @@ static void BinarySpecificConfiguration(char const * const Binary) /*{{{*/ _config->CndSet("Binary::apt::DPkg::Progress-Fancy", true); _config->CndSet("Binary::apt::APT::Keep-Downloaded-Packages", false); _config->CndSet("Binary::apt::APT::Get::Update::InteractiveReleaseInfoChanges", true); + _config->CndSet("Binary::apt::APT::Cmd::Pattern-Only", true); } _config->Set("Binary", binary); diff --git a/apt-private/private-list.cc b/apt-private/private-list.cc index 6071129a7..f5c31bbcd 100644 --- a/apt-private/private-list.cc +++ b/apt-private/private-list.cc @@ -48,8 +48,8 @@ class PackageNameMatcher : public Matcher { std::string pattern = patterns[i]; APT::CacheFilter::Matcher *cachefilter = NULL; - if (pattern.size() > 0 && pattern[0] == '?') - cachefilter = APT::CacheFilter::ParsePattern(pattern, &cacheFile).release(); + if (pattern.size() > 0 && (pattern[0] == '?' || pattern[0] == '~')) + cachefilter = APT::CacheFilter::ParsePattern(pattern, &cacheFile).release(); else if(_config->FindB("APT::Cmd::Use-Regexp", false) == true) cachefilter = new APT::CacheFilter::PackageNameMatchesRegEx(pattern); else diff --git a/apt-private/private-search.cc b/apt-private/private-search.cc index de1b19758..b3f9469ac 100644 --- a/apt-private/private-search.cc +++ b/apt-private/private-search.cc @@ -1,6 +1,7 @@ // Includes /*{{{*/ #include <config.h> +#include <apt-pkg/aptconfiguration.h> #include <apt-pkg/cachefile.h> #include <apt-pkg/cacheset.h> #include <apt-pkg/cmndline.h> @@ -24,11 +25,30 @@ #include <sstream> #include <string> #include <utility> +#include <vector> #include <string.h> #include <apti18n.h> /*}}}*/ +static std::vector<pkgCache::DescIterator> const TranslatedDescriptionsList(pkgCache::VerIterator const &V) /*{{{*/ +{ + std::vector<pkgCache::DescIterator> Descriptions; + + for (std::string const &lang: APT::Configuration::getLanguages()) + { + pkgCache::DescIterator Desc = V.TranslatedDescriptionForLanguage(lang); + if (Desc.IsGood()) + Descriptions.push_back(Desc); + } + + if (Descriptions.empty()) + Descriptions.push_back(V.TranslatedDescription()); + + return Descriptions; +} + + /*}}}*/ static bool FullTextSearch(CommandLine &CmdL) /*{{{*/ { @@ -94,27 +114,49 @@ static bool FullTextSearch(CommandLine &CmdL) /*{{{*/ if (PkgsDone[P->ID] == true) continue; - char const * const PkgName = P.Name(); - pkgCache::DescIterator Desc = V.TranslatedDescription(); - std::string LongDesc = ""; - if (Desc.end() == false) + std::vector<std::string> PkgDescriptions; + if (not NamesOnly) { - pkgRecords::Parser &parser = records.Lookup(Desc.FileList()); - LongDesc = parser.LongDesc(); + for (auto &Desc: TranslatedDescriptionsList(V)) + { + pkgRecords::Parser &parser = records.Lookup(Desc.FileList()); + PkgDescriptions.push_back(parser.LongDesc()); + } } bool all_found = true; + + char const * const PkgName = P.Name(); + std::vector<bool> SkipDescription(PkgDescriptions.size(), false); for (std::vector<regex_t>::const_iterator pattern = Patterns.begin(); - pattern != Patterns.end(); ++pattern) + pattern != Patterns.end(); ++pattern) { - if (regexec(&(*pattern), PkgName, 0, 0, 0) == 0) - continue; - else if (NamesOnly == false && regexec(&(*pattern), LongDesc.c_str(), 0, 0, 0) == 0) - continue; - // search patterns are AND, so one failing fails all - all_found = false; - break; + if (regexec(&(*pattern), PkgName, 0, 0, 0) == 0) + continue; + else if (not NamesOnly) + { + bool found = false; + + for (std::vector<std::string>::size_type i = 0; i < PkgDescriptions.size(); ++i) + { + if (not SkipDescription[i]) + { + if (regexec(&(*pattern), PkgDescriptions[i].c_str(), 0, 0, 0) == 0) + found = true; + else + SkipDescription[i] = true; + } + } + + if (found) + continue; + } + + // search patterns are AND, so one failing fails all + all_found = false; + break; } + if (all_found == true) { PkgsDone[P->ID] = true; @@ -290,19 +332,43 @@ static bool Search(CommandLine &CmdL) // Iterate over all the version records and check them for (ExDescFile *J = DFList; J->Df != 0; ++J) { - pkgRecords::Parser &P = Recs.Lookup(pkgCache::DescFileIterator(*Cache,J->Df)); size_t const PatternOffset = J->ID * NumPatterns; - - if (NamesOnly == false) + if (not NamesOnly) { - std::string const LongDesc = P.LongDesc(); - for (unsigned I = 0; I < NumPatterns; ++I) - { - if (PatternMatch[PatternOffset + I] == true) - continue; - else if (regexec(&Patterns[I],LongDesc.c_str(),0,0,0) == 0) - PatternMatch[PatternOffset + I] = true; - } + std::vector<std::string> PkgDescriptions; + for (auto &Desc: TranslatedDescriptionsList(J->V)) + { + pkgRecords::Parser &parser = Recs.Lookup(Desc.FileList()); + PkgDescriptions.push_back(parser.LongDesc()); + } + + std::vector<bool> SkipDescription(PkgDescriptions.size(), false); + for (unsigned I = 0; I < NumPatterns; ++I) + { + if (PatternMatch[PatternOffset + I]) + continue; + else + { + bool found = false; + + for (std::vector<std::string>::size_type k = 0; k < PkgDescriptions.size(); ++k) + { + if (not SkipDescription[k]) + { + if (regexec(&Patterns[I], PkgDescriptions[k].c_str(), 0, 0, 0) == 0) + { + found = true; + PatternMatch[PatternOffset + I] = true; + } + else + SkipDescription[k] = true; + } + } + + if (not found) + break; + } + } } bool matchedAll = true; @@ -325,7 +391,10 @@ static bool Search(CommandLine &CmdL) DisplayRecordV1(CacheFile, Recs, J->V, Vf, Start, Length, std::cout); } else - printf("%s - %s\n",P.Name().c_str(),P.ShortDesc().c_str()); + { + pkgRecords::Parser &P = Recs.Lookup(pkgCache::DescFileIterator(*Cache, J->Df)); + printf("%s - %s\n", P.Name().c_str(), P.ShortDesc().c_str()); + } } } diff --git a/apt-private/private-show.cc b/apt-private/private-show.cc index 9ebbe6ac0..103fa57e4 100644 --- a/apt-private/private-show.cc +++ b/apt-private/private-show.cc @@ -8,6 +8,7 @@ #include <apt-pkg/depcache.h> #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> +#include <apt-pkg/hashes.h> #include <apt-pkg/indexfile.h> #include <apt-pkg/macros.h> #include <apt-pkg/pkgcache.h> @@ -415,9 +416,9 @@ bool ShowPackage(CommandLine &CmdL) /*{{{*/ static std::string Sha1FromString(std::string const &input) /*{{{*/ { // XXX: move to hashes.h: HashString::FromString() ? - SHA1Summation sha1; + Hashes sha1(Hashes::SHA1SUM); sha1.Add(input.c_str(), input.length()); - return sha1.Result().Value(); + return sha1.GetHashString(Hashes::SHA1SUM).HashValue(); } /*}}}*/ bool ShowSrcPackage(CommandLine &CmdL) /*{{{*/ diff --git a/apt-private/private-source.cc b/apt-private/private-source.cc index 3964ca48e..9b47ce31f 100644 --- a/apt-private/private-source.cc +++ b/apt-private/private-source.cc @@ -693,7 +693,7 @@ bool DoBuildDep(CommandLine &CmdL) // Reject '>' and '<' as operators, as they have strange meanings. bool insideVersionRestriction = false; - for (auto C = Start; C + 1 != Stop; C++) + for (auto C = Start; C + 1 < Stop; C++) { if (*C == '(') insideVersionRestriction = true; diff --git a/apt-private/private-update.cc b/apt-private/private-update.cc index 59d1d6d3f..248f1f36e 100644 --- a/apt-private/private-update.cc +++ b/apt-private/private-update.cc @@ -10,6 +10,7 @@ #include <apt-pkg/fileutl.h> #include <apt-pkg/metaindex.h> #include <apt-pkg/sourcelist.h> +#include <apt-pkg/strutl.h> #include <apt-pkg/update.h> #include <apt-private/acqprogress.h> diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 5d81c08a4..efb5cfd73 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -42,7 +42,6 @@ #include <apt-pkg/indexfile.h> #include <apt-pkg/init.h> #include <apt-pkg/macros.h> -#include <apt-pkg/md5.h> #include <apt-pkg/metaindex.h> #include <apt-pkg/pkgcache.h> #include <apt-pkg/pkgrecords.h> diff --git a/cmdline/apt-mark.cc b/cmdline/apt-mark.cc index 942f58f0f..92efa0c81 100644 --- a/cmdline/apt-mark.cc +++ b/cmdline/apt-mark.cc @@ -56,7 +56,8 @@ static bool DoAuto(CommandLine &CmdL) return _error->Error(_("No packages found")); bool MarkAuto = strcasecmp(CmdL.FileList[0],"auto") == 0; - int AutoMarkChanged = 0; + + vector<string> PackagesMarked; for (APT::PackageList::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg) { @@ -74,16 +75,27 @@ static bool DoAuto(CommandLine &CmdL) continue; } - if (MarkAuto == false) - ioprintf(c1out,_("%s set to manually installed.\n"), Pkg.FullName(true).c_str()); - else - ioprintf(c1out,_("%s set to automatically installed.\n"), Pkg.FullName(true).c_str()); - + PackagesMarked.push_back(Pkg.FullName(true)); DepCache->MarkAuto(Pkg, MarkAuto); - ++AutoMarkChanged; } - if (AutoMarkChanged > 0 && _config->FindB("APT::Mark::Simulate", false) == false) - return DepCache->writeStateFile(NULL); + + bool MarkWritten = false; + bool IsSimulation = _config->FindB("APT::Mark::Simulate", false); + if (PackagesMarked.size() > 0 && !IsSimulation) { + MarkWritten = DepCache->writeStateFile(NULL); + if(!MarkWritten) { + return MarkWritten; + } + } + + if(IsSimulation || MarkWritten) { + for (vector<string>::const_iterator I = PackagesMarked.begin(); I != PackagesMarked.end(); ++I) { + if (MarkAuto == false) + ioprintf(c1out,_("%s set to manually installed.\n"), (*I).c_str()); + else + ioprintf(c1out,_("%s set to automatically installed.\n"), (*I).c_str()); + } + } return true; } /*}}}*/ diff --git a/debian/NEWS b/debian/NEWS index e8cb4e279..35b562dda 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,3 +1,26 @@ +apt (1.9.6) experimental; urgency=medium + + apt(8) no longer treats package names passed as regular expressions or fnmatch + expressions, requiring the use of patterns (apt-patterns(5)) to perform complex + searches. For ease of use, regular expressions starting with ^ or ending with + $ continue to work. + + This fixes the problem where e.g. g++ could mean either "the package g++" + or, if there is no g++ package, "all packages containing g". This change + will propagate to apt-* after the release of Debian bullseye. + + -- Julian Andres Klode <jak@debian.org> Wed, 15 Jan 2020 21:45:18 +0100 + +apt (1.9.5) unstable; urgency=medium + + Credentials in apt_auth.conf(5) now only apply to https and tor+https + sources to avoid them being leaked over plaintext (Closes: #945911). To + opt-in to http, add http:// before the hostname. Note that this will transmit + credentials in plain text, which you do not want on devices that could be + operating in an untrusted network. + + -- Julian Andres Klode <juliank@ubuntu.com> Mon, 02 Dec 2019 11:45:52 +0100 + apt (1.8.0~alpha3) unstable; urgency=medium The PATH for running dpkg is now configured by the option DPkg::Path, diff --git a/debian/apt.conf.autoremove b/debian/apt.conf.autoremove index f9d9e85d4..478c571e0 100644 --- a/debian/apt.conf.autoremove +++ b/debian/apt.conf.autoremove @@ -10,31 +10,13 @@ APT VersionedKernelPackages { - # linux kernels - "linux-image"; - "linux-headers"; - "linux-image-extra"; - "linux-modules"; - "linux-modules-extra"; - "linux-signed-image"; - "linux-image-unsigned"; - # kfreebsd kernels - "kfreebsd-image"; - "kfreebsd-headers"; - # hurd kernels - "gnumach-image"; + # kernels + "linux-.*"; + "kfreebsd-.*"; + "gnumach-.*"; # (out-of-tree) modules ".*-modules"; ".*-kernel"; - "linux-backports-modules-.*"; - "linux-modules-.*"; - # tools - "linux-tools"; - "linux-cloud-tools"; - # build info - "linux-buildinfo"; - # source code - "linux-source"; }; Never-MarkAuto-Sections diff --git a/debian/changelog b/debian/changelog index 52a960359..4664128e6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,134 @@ +apt (1.9.10) experimental; urgency=medium + + [ David Kalnischkies ] + * Fix remaining usec vs sec time-delta calculation typos. + Thanks to Trent W. Buck for initial patch (Closes: #950776) + + [ Julian Andres Klode ] + * seccomp: Allow time64 variants (>402,<415) of allowed syscalls + (Closes: #951012) + * debian/control: Bump libseccomp-dev Build-Depends to >= 2.4.2 + * seccomp: Allow recvmmsg_time64() and futex_time64() + * policy: Add SetPriority() methods + * Revert "Add a Packages-Require-Authorization Release file field" + + [ Michael Vogt ] + * doc: remove "WIP" from apt.8.xml + + -- Julian Andres Klode <jak@debian.org> Tue, 18 Feb 2020 12:32:42 +0100 + +apt (1.9.9) experimental; urgency=medium + + * Widen regular expressions for versioned kernel packages (LP: #1607845) + * Implement short patterns (patterns starting with ~) + + -- Julian Andres Klode <jak@debian.org> Tue, 04 Feb 2020 17:42:21 +0100 + +apt (1.9.8) experimental; urgency=medium + + * pkgcache.cc: Mix PACKAGE_VERSION into the cache hash + * mmap: Do not look for empty pool unless we need to + * apt-verbatim.ent: Update ubuntu-codename from disco to focal + * NewGroup: Create GrpIterator after allocation (fix segfault) + + -- Julian Andres Klode <jak@debian.org> Mon, 27 Jan 2020 13:25:52 +0100 + +apt (1.9.7) experimental; urgency=medium + + * Trim trailing whitespace (thanks lintian-brush) + * NewProvidesAllArch: Check if group is empty before using it. + This caused automake-1.16 to not be provided by automake anymore, + because apt wanted to add provides to packages in an empty automake-1.16 + group. LP: #1859952 + * Fix debian-rules-uses-deprecated-systemd-override. + We accidentally managed to restart apt-daily{,-upgrade}.service + again because our dh_systemd_start override was being ignored + since we switched to debhelper 12. Override dh_installsystemd + instead. + + -- Julian Andres Klode <jak@debian.org> Thu, 16 Jan 2020 12:13:50 +0100 + +apt (1.9.6) experimental; urgency=medium + + [ Julian Andres Klode ] + * gitlab-ci: Do not do coverage + * gitlab-ci: Use ccache + * satisfy: Fix segmentation fault when called with empty argument + * Add support for GTest 1.9, do not fail silently if its missing + * gtests: Fix netrc parser test regression from https-only changes + * Macro cleanup: + - Avoid #define _error, use anonymous C++ struct instead (Closes: #948338) + - Rename _count() macro to APT_ARRAY_SIZE() + - Remove various unused macros like MAX/MIN/ABS/APT_CONST + - Only define likely/unlikely if APT_COMPILING_APT set + * Performance: Avoid extra out-of-cache hash table deduplication for + package names, this saved about 10-16% on gencaches in memory + * acquire: Move queue startup after calling log's Start(), fixes abort() + calls in python-apt + * hashes: Use Libgcrypt for hashing purposes + - Raise buffer size for Hashes::AddFD() from 4 KiB to 64 KiB + - Convert users of {MD5,SHA1,SHA256,SHA512}Summation to use Hashes + - Deprecate the Summation classes and mark them for removal + - Remove includes of (md5|sha1|sha2).h headers + * netrc: Add warning when ignoring entries for unencrypted protocols + * apt(8): Disable regular expressions and fnmatch + + [ David Kalnischkies ] + * Drop g++ build-dependency to help crossbuilding (Closes: #948201) + + [ Denis Mosolov ] + * Fix typo in README.md + + -- Julian Andres Klode <jak@debian.org> Wed, 15 Jan 2020 23:06:49 +0100 + +apt (1.9.5) experimental; urgency=medium + + [ Julian Andres Klode ] + * Parse 'show' arguments for the 'info' alias as well (LP: #1843812) + * patterns: Add base class for regular expression matching + * patterns: Add ?version + * patterns: Add ?source-name and ?source-version + * patterns: Add ?archive + * patterns: Add ?origin + * patterns: Add ?any-version + * patterns: Implement ?narrow(...), as ?any-version(?and(...)) + * patterns: Add ?all-versions + * patterns: Add ?section + * netrc: Restrict auth.conf entries to https by default (Closes: #945911) + + [ Anatoly Borodin ] + * README.md: fix dead anonscm link + + [ ÐлекÑей Шилин ] + * Search in all available description translations (Closes: #490000) + * strutl: Add APT::String::DisplayLength() function + * Fix progress bar width for multibyte charsets + + [ Chris Leick ] + * German manpage translation update + + [ David Kalnischkies ] + * Use correct filename on IMS-hit reverify for indices + * Remove failed trusted signature instead of index on IMS hit + + [ Anthony Papillon ] + * Fix a mistake in man french translation + + -- Julian Andres Klode <jak@debian.org> Mon, 02 Dec 2019 18:17:56 +0100 + +apt (1.9.4) experimental; urgency=medium + + * CMake: Pass -Werror=return-type to gcc + * CMake: Produce a fatal error if triehash could not be found + * apt.systemd.daily: Do not numerically check if intervals equal 0 + (LP: #1840995) + * srvrec: Use re-entrant resolver functions + * Pass --abort-after=1 to dpkg when using --force-depends (Closes: #935910) + (LP: #1844634) + * Fix use of GTest to adjust for GTest 1.9 + + -- Julian Andres Klode <jak@debian.org> Thu, 19 Sep 2019 11:13:47 +0200 + apt (1.9.3) experimental; urgency=medium * Fix segfault in pkgAcquire::Enqueue() with Acquire::Queue-Mode=access @@ -2636,7 +2767,7 @@ apt (1.1~exp4) experimental; urgency=medium - add new -o Debug::Acquire::Transaction=1 debug option * feature/expected-size: Do not download more data in the mehotds than expected if we know - the size. For the InRelease/Release/Release.gpg add new + the size. For the InRelease/Release/Release.gpg add new Acquire::MaxReleaseFileSize that defaults to 10Mb for now * Verify the hashes of the downloaded compressed files early * Only load unauthenticated data into our parsers when the user @@ -2712,7 +2843,7 @@ apt (1.1~exp3) experimental; urgency=medium * Make /var/lib/apt/lists and /var/cache/apt/archives owned by the new _apt user * Drop Privileges in the following acquire methods: - copy, http, https, ftp, gpgv, gzip/bzip2/lzma/xz + copy, http, https, ftp, gpgv, gzip/bzip2/lzma/xz * DropPrivs: Improvements based on feedback from error@debian.org [ Julian Andres Klode ] @@ -2989,7 +3120,7 @@ apt (1.0.9.2) unstable; urgency=medium * generalize Acquire::GzipIndex to support all compressions that apt supports * Fix regression for cdrom: sources from latest security update - * Ensure that iTFRewritePackageOrder is "MD5sum" to match + * Ensure that iTFRewritePackageOrder is "MD5sum" to match apt-ftparchive * debian/rules: add hardening=+all. Thanks to Simon Ruderich, Markus Waldeck @@ -3058,16 +3189,16 @@ apt (1.0.8) unstable; urgency=medium * Add testcase for apt list --all-versions * * apt-pkg/deb/dpkgpm.cc: - update string matching for dpkg I/O errors. (LP: #1363257) - - properly parse the dpkg status line so that package name - is properly set and an apport report is created. Thanks + - properly parse the dpkg status line so that package name + is properly set and an apport report is created. Thanks to Anders Kaseorg for the patch (LP: #1353171) * Use heap to allocate PatternMatch to avoid potential stack overflow (Closes: 759612) * Run autopkgtest tests with "env -i" to avoid pollution from the host env (Closes: #759655) - * test/integration/test-ubuntu-bug-346386-apt-get-update-paywall: + * test/integration/test-ubuntu-bug-346386-apt-get-update-paywall: - use downloadfile() to fix test failure - * Fix incorrect upgradable listing in "apt list" + * Fix incorrect upgradable listing in "apt list" (thanks to Michael Musenbrock) (Closes: #753297) * apt-pkg/cachefile.cc: - ensure we have a Policy in CacheFile.BuildDepCache() @@ -3075,7 +3206,7 @@ apt (1.0.8) unstable; urgency=medium - Improve Debug::Acquire::http debug output [ Dimitri John Ledkov ] - * apt-ftparchive: make Packages & Sources generation optional, + * apt-ftparchive: make Packages & Sources generation optional, during Generate call [ David Kalnischkies ] @@ -3206,7 +3337,7 @@ apt (1.0.4) unstable; urgency=low * Fix various errors found by clang scan-build * Show unauthenticated warning for source packages as well (Closes: #749795) * Add compat mode for old (32bit FileSize) CacheDB (LP: #1274466) - * cmdline/apt-helper.cc: use less generic description/short-description + * cmdline/apt-helper.cc: use less generic description/short-description in apt-helper download * add pkgSrcRecords::Step() to step through all the pkgSrcRecords (thanks to Helmut Grohne) @@ -3272,7 +3403,7 @@ apt (1.0.2) unstable; urgency=medium * fix apt list output for pkgs in dpkg ^rc state * Notice the user about "apt list -a" when only a single hit if found * fix test-failure in adt - * apt-private/acqprogress.cc: fix output when ctrl-c is hit during + * apt-private/acqprogress.cc: fix output when ctrl-c is hit during apt update (LP: #1310548, closes: #744297) * Fix option name DPkg::Progress-Fancy in apt.8 manpage (LP: #1310506) @@ -3323,7 +3454,7 @@ apt (1.0) unstable; urgency=low The "Happy birthday and 10000b years in the making" release [ Julian Andres Klode ] - * apt-inst: Do not try to create a substring of an empty string in + * apt-inst: Do not try to create a substring of an empty string in error reporting (LP: #1288718) [ Beatrice Torracca ] @@ -3356,7 +3487,7 @@ apt (1.0) unstable; urgency=low * refresh po/pot and unfuzzy apt-extracttemplate manpage change * remove no longer needed apt.7 page * install "apt" binary by default - * add sun-java{5,6}-jdk to breaks/replaces as they provided a + * add sun-java{5,6}-jdk to breaks/replaces as they provided a "apt" binary as well [ Trần Ngá»c Quân ] @@ -3378,7 +3509,7 @@ apt (0.9.16.1) unstable; urgency=medium apt (0.9.16) unstable; urgency=medium [ Michael Vogt ] - * add hashsum support in apt-helper download-file and + * add hashsum support in apt-helper download-file and add more tests [ Trần Ngá»c Quân ] @@ -3430,7 +3561,7 @@ apt (0.9.15.4) unstable; urgency=low * remove auto-generated apt-key and sources.list on clean (closes: 739749) * add testcase for Bug#718329 * various fixes for ADT failures - + [ Jon Severinsson ] * add apt-vendor information for tanglu @@ -3447,9 +3578,9 @@ apt (0.9.15.3) unstable; urgency=medium [ Michael Vogt ] * disable https->http redirects in libcurl, thanks to Julien Cristau - * ADT: use "Restrictions: allow-stderr and avoid apt-stderr.log in + * ADT: use "Restrictions: allow-stderr and avoid apt-stderr.log in debian/tests/run-tests - * test/integration/test-bug-723705-tagfile-truncates-fields: + * test/integration/test-bug-723705-tagfile-truncates-fields: - fix autopkgtest failure * add missing canNotFindFnmatch/showFnmatchSelection (for the next ABI break) @@ -3559,7 +3690,7 @@ apt (0.9.14.3~exp3) experimental; urgency=low * add "apt upgrade --dist" * add "apt purge" * flock() the file edited in "apt edit-sources" - * apt-private/private-show.cc: + * apt-private/private-show.cc: - do not show Description-lang: header * reword apt !isatty() warning * add missing integration test for "apt list" and fix bugs @@ -3586,7 +3717,7 @@ apt (0.9.14.3~exp2) experimental; urgency=medium * rename URL to Uri in deb822-sources * support multiple "Suite:" entries in deb822 style sources.list: "Suite: stable testing unstable" - + -- Michael Vogt <mvo@debian.org> Thu, 16 Jan 2014 21:43:22 +0100 apt (0.9.14.3~exp1) experimental; urgency=low @@ -3607,14 +3738,14 @@ apt (0.9.14.2) unstable; urgency=low [ Joe Hansen ] * Danish translation update. Closes: #732166 - + [ Peter Green ] * add apt-vendor for raspbian. Closes: #732749 [ Thomas Bechtold ] * apt-pkg/contrib/gpgv.cc: use /tmp as fallback dir if the directory from $TMPDIR is not available (closes: #728500) - + [ Michael Vogt ] * vendor/getinfo: - fix ubuntu-codename @@ -3674,9 +3805,9 @@ apt (0.9.13.1) unstable; urgency=low [ Colin Watson ] * fix "apt-get --purge build-dep" (closes: #720597) * fix regression that APT::Keep-Fds is not honored (closes: #730490) - + [ Michael Vogt ] - * add "-f" option to "build-dep" as sbuild is using it to fix + * add "-f" option to "build-dep" as sbuild is using it to fix regression with cross-building (LP: #1255806) * add autopkgtest support for the integration testsuite * merge mvo/feature/short-list @@ -3690,7 +3821,7 @@ apt (0.9.13.1) unstable; urgency=low apt (0.9.13) unstable; urgency=low [ TJ Guthrie ] - * Changed MinAgeSec to MinAge in /etc/cron.daily/apt:200,204 + * Changed MinAgeSec to MinAge in /etc/cron.daily/apt:200,204 LP: #1206047 -- Michael Vogt <mvo@debian.org> Sun, 24 Nov 2013 10:56:22 +0100 @@ -3739,7 +3870,7 @@ apt (0.9.12) unstable; urgency=low [ Christian Perrier ] * Fix typo in apt-private/private-show.cc. Thanks to Benjamin Keresa. Closes: #724073 - + [ Mark Hymers ] * fix libapt-inst for >2G debs (closes: #725483) @@ -3763,16 +3894,16 @@ apt (0.9.12) unstable; urgency=low * Add new "apt-get upgrade --with-new-pkgs" option (and add man-page for it). So "apt-get upgrade --with-new-pkgs" will pull in new dependencies but never remove packages - * Rename "--dpkg-progress" to "--show-progress" and document it in + * Rename "--dpkg-progress" to "--show-progress" and document it in apt-get.8. This will show global install progress information in the terminal. * Fix status-fd progress calculation for certain multi-arch install/upgrade situations - * add new -o DpkgPM::Progress-Fancy for nicer dpkg progress output + * add new -o DpkgPM::Progress-Fancy for nicer dpkg progress output on vt100+ terminals - * fix libapt-inst for >2G debs (closes: #725483), thanks to Mark Hymers - * debian/apt.postinst: use --compare-versions lt instead of lt-nl, - to ensure the apt-auto-removal file is correctly create, + * fix libapt-inst for >2G debs (closes: #725483), thanks to Mark Hymers + * debian/apt.postinst: use --compare-versions lt instead of lt-nl, + to ensure the apt-auto-removal file is correctly create, thanks to Ben Hutchings * update Uploaders to match recent uploaders better * Set the default "Acquire::PDiffs::FileLimit" to 20. If the amount @@ -3797,7 +3928,7 @@ apt (0.9.11.4) unstable; urgency=low apt (0.9.11.3) unstable; urgency=low [ Michael Vogt ] - * Add DPkgPM::Progress option to enable terminal install + * Add DPkgPM::Progress option to enable terminal install progress * fix typo (mkostemp->mkstemp) * Remove invalid "-f" option for apt-get check, thanks to @@ -3815,10 +3946,10 @@ apt (0.9.11.2) unstable; urgency=low [ Milo Casagrande ] * Update Italian translation. Closes: #721030 - + [ Trần Ngá»c Quân ] * Update Vietnamese translation. Closes: #720752 - + [ Michael Vogt ] * dselect/install: - remove "-f" option for apt-get clean/auto-clean (closes: #720532) @@ -3838,11 +3969,11 @@ apt (0.9.11.1) unstable; urgency=low [ Michael Vogt ] * more coverity fixes: - - explicit init + - explicit init - always chdir("/") after chroot() - - ftparchive/override.cc: fix "skip empty lines" code, the pointer + - ftparchive/override.cc: fix "skip empty lines" code, the pointer needs to get de-referenced first - * dselect/update: + * dselect/update: - remove "-f" option for apt-get update to fix breakage (closes: 720532) [ Christopher Baines ] @@ -3866,7 +3997,7 @@ apt (0.9.11) unstable; urgency=low [ Michael Vogt ] * lp:~mvo/apt/config-clear: - - support Configuration.Clear() for a clear of the entire + - support Configuration.Clear() for a clear of the entire configuration * lp:~mvo/apt/add-glob-function: - add Glob() to fileutl.{cc,h} @@ -3874,7 +4005,7 @@ apt (0.9.11) unstable; urgency=low - refactor large chunks of cmdline/*.cc into a new libapt-private library that is shared between the internal apt cmdline tools - install libapt-private* into the apt binary - - add PACKAGE_MATCHER_ABI_COMPAT define so that this branch can be + - add PACKAGE_MATCHER_ABI_COMPAT define so that this branch can be merged without breaking ABI - add lintian override for no-shlibs-control-file so that the internal libapt-private.so.0.0.0 can be shipped @@ -3893,7 +4024,7 @@ apt (0.9.11) unstable; urgency=low apt (0.9.10) unstable; urgency=low The "Hello to Debconf" upload - + [ Christian Perrier ] * Vietnamese translation update. Closes: #718615 * Japanese translation update. Closes: #719279 @@ -3908,7 +4039,7 @@ apt (0.9.10) unstable; urgency=low * make the code -Wall clean again * remove duplicated #include<list> * add .travis.yml - * use the 'abi-complicance-checker' package and remove the buildin + * use the 'abi-complicance-checker' package and remove the buildin copy for the abi checks [ David Kalnischkies ] @@ -3931,7 +4062,7 @@ apt (0.9.10) unstable; urgency=low * make the keyring locations in apt-key configurable * let apt-key del work better with softlink and single key keyrings * do not call 'apt-key update' in apt.postinst - + [ Colin Watson ] * prefer native arch over higher priority for providers (Closes: #718482) @@ -3943,7 +4074,7 @@ apt (0.9.9.4) unstable; urgency=low * pick up Translation-* even if only compressed available (Closes: 717665) * request absolute URIs from proxies again (0.9.9.3 regression) (Closes: 717891) - + [ Michael vogt ] * fix missing changelog entry for 0.9.9.3 (git-dch issue) @@ -3953,9 +4084,9 @@ apt (0.9.9.3) unstable; urgency=low [ Ben Hutchings ] * debian/apt.auto-removal.sh: - - do not include debug symbol packages for the kernel in the + - do not include debug symbol packages for the kernel in the blacklist (closes: #717616) - + [ Michael Vogt ] * debian/apt.postinst: - run /etc/kernel/postinst.d/apt-auto-removal once on upgrade @@ -3968,7 +4099,7 @@ apt (0.9.9.3) unstable; urgency=low [ Raphael Geissert ] * Do not send a connection: keep-alive, at all - + -- Michael Vogt <mvo@debian.org> Thu, 25 Jul 2013 17:14:58 +0200 apt (0.9.9.2) unstable; urgency=low @@ -4053,14 +4184,14 @@ apt (0.9.8.2) unstable; urgency=low [ Guillem Jover ] * Update Vcs fields (Closes: #708562) - + [ Michael Vogt ] * buildlib/apti18n.h.in: - fix build failure when building without NLS (closes: #671587) - + [ Gregoire Menuel ] * Fix double free (closes: #711045) - + [ Raphael Geissert ] * Fix crash when the "mirror" method does not find any entry (closes: #699303) @@ -4078,7 +4209,7 @@ apt (0.9.8.1) unstable; urgency=low * apt-pkg/indexcopy.cc: - non-inline RunGPGV methods to restore ABI compatibility with previous versions to fix partial upgrades (Closes: #707771) - + [ Michael Vogt ] * moved source to http://git.debian.org/apt/apt.git * updated gbp.conf to match what bzr-buildpackage is doing @@ -4089,18 +4220,18 @@ apt (0.9.8.1) unstable; urgency=low apt (0.9.8) unstable; urgency=low [ Ludovico Cavedon ] - * properly handle if-modfied-since with libcurl/https + * properly handle if-modfied-since with libcurl/https (closes: #705648) - + [ Andreas Beckman ] * apt-pkg/algorithms.cc: - Do not propagate negative scores from rdepends. Propagating the absolute value of a negative score may boost obsolete packages and keep them installed instead of installing their successors. (Closes: #699759) - + [ Michael Vogt ] * apt-pkg/sourcelist.cc: - - fix segfault when a hostname contains a [, thanks to + - fix segfault when a hostname contains a [, thanks to Tzafrir Cohen (closes: #704653) * debian/control: - replace manpages-it (closes: #704723) @@ -4127,14 +4258,14 @@ apt (0.9.8) unstable; urgency=low [ Marc Deslauriers ] * make apt-ftparchive generate missing deb-src hashes (LP: #1078697) - + [ Yaroslav Halchenko ] * Fix English spelling error in a message ('A error'). Unfuzzy translations. Closes: #705087 [ Programs translations ] * French translation completed (Christian Perrier) - + [ Manpages translations ] * French translation completed (Christian Perrier) @@ -4154,7 +4285,7 @@ apt (0.9.8) unstable; urgency=low - environment variables do not override an explicit no proxy directive ("DIRECT") in apt.conf - disregard all_proxy environment variable, like other methods - + -- Michael Vogt <mvo@debian.org> Wed, 08 May 2013 18:43:28 +0200 apt (0.9.7.9~exp2) experimental; urgency=low @@ -4162,7 +4293,7 @@ apt (0.9.7.9~exp2) experimental; urgency=low [ Programs translations ] * Update all PO files and apt-all.pot * French translation completed (Christian Perrier) - + [ Daniel Hartwig ] * cmdline/apt-get.cc: - do not have space between "-a" and option when cross building @@ -4209,7 +4340,7 @@ apt (0.9.7.9~exp1) experimental; urgency=low [ Niels Thykier ] * test/libapt/assert.h, test/libapt/run-tests: - exit with status 1 on test failure - + [ Daniel Hartwig ] * test/integration/framework: - continue after test failure but preserve exit status @@ -4221,9 +4352,9 @@ apt (0.9.7.9~exp1) experimental; urgency=low * methods/connect.cc: - provide useful error message in case of EAI_SYSTEM (closes: #703603) - + [ Michael Vogt ] - * add new config options "Acquire::ForceIPv4" and + * add new config options "Acquire::ForceIPv4" and "Acquire::ForceIPv6" to allow focing one or the other (closes: #611891) * lp:~mvo/apt/fix-tagfile-hash: @@ -4238,7 +4369,7 @@ apt (0.9.7.8) unstable; urgency=critical * SECURITY UPDATE: InRelease verification bypass - CVE-2013-1051 - + [ David Kalnischk ] * apt-pkg/deb/debmetaindex.cc, test/integration/test-bug-595691-empty-and-broken-archive-files, @@ -4251,7 +4382,7 @@ apt (0.9.7.8) unstable; urgency=critical apt (0.9.7.8~exp2) experimental; urgency=low * include two missing patches to really fix bug #696225, thanks to - Guillem Jover + Guillem Jover * ensure sha512 is really used when available, thanks to Tyler Hicks (LP: #1098752) @@ -4261,12 +4392,12 @@ apt (0.9.7.8~exp1) experimental; urgency=low [ Manpages translation updates ] * Italian (Beatrice Torracca). Closes: #696601 - + [ Programs translation updates ] * Japanese (Kenshi Muto). Closes: #699783 - + [ Michael Vogt ] - * fix pkgProblemResolver::Scores, thanks to Paul Wise. + * fix pkgProblemResolver::Scores, thanks to Paul Wise. Closes: #697577 * fix missing translated apt.8 manpages, thanks to Helge Kreutzmann for the report. Closes: #696923 @@ -4286,7 +4417,7 @@ apt (0.9.7.8~exp1) experimental; urgency=low * methods/http.cc: - quote spaces in filenames to ensure as the http method is also (potentially) used for non deb,dsc content that may contain - spaces, thanks to Daniel Hartwig and Thomas Bushnell + spaces, thanks to Daniel Hartwig and Thomas Bushnell (LP: #1086997) - quote plus in filenames to work around a bug in the S3 server (LP: #1003633) @@ -4325,7 +4456,7 @@ apt (0.9.7.7) unstable; urgency=low * apt-pkg/algorithms.cc: - ensure pkgProblemResolver calls MarkDelete without FromUser set so that it can't overrule holds and the protection flag - + [ Michael Vogt ] * change permissions of /var/log/apt/term.log to 0640 (LP: #975199) @@ -4365,7 +4496,7 @@ apt (0.9.7.6) unstable; urgency=low * apt-pkg/contrib/netrc.cc: - remove the 64 char limit for login/password in internal usage - remove 256 char line limit by using getline() (POSIX.1-2008) - + [ Colin Watson ] * apt-pkg/pkgcachegen.cc: - Fix crash if the cache is remapped while writing a Provides version @@ -4752,7 +4883,7 @@ apt (0.9.4) unstable; urgency=low [ Michael Vogt ] * merged updated de.po, thanks to Holger Wansing (closes: #672466) - + [ Raphael Geissert ] * apt-pkg/acquire*.cc: - handle redirections in the worker with the right method instead of @@ -4881,7 +5012,7 @@ apt (0.9.1) unstable; urgency=low Merci, les Titeps! * Drop hardcoded "en.html" suffix in apt-secure manpage. Thanks to David Prevot. - + -- Michael Vogt <mvo@debian.org> Tue, 17 Apr 2012 09:49:31 +0200 apt (0.9.0) unstable; urgency=low @@ -4898,10 +5029,10 @@ apt (0.9.0~exp1) experimental; urgency=low - add APT::pkgPackageManager::MaxLoopCount to ensure that the ordering code does not get into a endless loop when it flip-flops between two states - * update libapt-inst1.4 to libapt-inst1.5 because of the cleanup + * update libapt-inst1.4 to libapt-inst1.5 because of the cleanup performed * prepare debian/unstable upload, if there are no issues with this - upload it will directly go into unstable as 0.9.0 + upload it will directly go into unstable as 0.9.0 [ David Kalnischkies ] * do not update po and pot files in the process of the build as this @@ -5270,7 +5401,7 @@ apt (0.8.16~exp6) experimental; urgency=low size are pretty unlikely for now, but we need it for deb packages which could become bigger than 4GB now (LP: #815895) * merged the debian-sid branch - + [ Michael Vogt ] * bump ABI version @@ -5282,7 +5413,7 @@ apt (0.8.16~exp5) experimental; urgency=low * apt-pkg/makefile: - install sha256.h compat header * apt-pkg/pkgcachegen.{cc,h}: - - use ref-to-ptr semantic in NewDepends() to ensure that the + - use ref-to-ptr semantic in NewDepends() to ensure that the libapt does not segfault if the cache is remapped in between (LP: #812862) - fix crash when P.Arch() was used but the cache got remapped @@ -5292,7 +5423,7 @@ apt (0.8.16~exp5) experimental; urgency=low * apt-pkg/acquire.cc: - fix potential divide-by-zero * methods/mirror.cc: - - include the architecture(s) in the query string as well so + - include the architecture(s) in the query string as well so that the server can make better decisions -- Michael Vogt <mvo@debian.org> Mon, 15 Aug 2011 14:52:54 +0200 @@ -5306,7 +5437,7 @@ apt (0.8.16~exp4) experimental; urgency=low - Write the file size to the cache * apt-pkg/pkgcache.cc: - Check that cache is at least CacheFileSize bytes large (LP: #16467) - + [ Michael Vogt ] * merged latest fixes from debian-sid * apt-pkg/cdrom.{cc,h}: @@ -5348,7 +5479,7 @@ apt (0.8.16~exp3) experimental; urgency=low [ Michael Vogt ] * merge fixes from the debian/unstable upload - * merge lp:~mvo/apt/sha512-template to get fixes for the + * merge lp:~mvo/apt/sha512-template to get fixes for the sha1/md5 verifiation (closes: #632520) -- Michael Vogt <mvo@debian.org> Fri, 15 Jul 2011 09:56:17 +0200 @@ -5378,7 +5509,7 @@ apt (0.8.16~exp2) experimental; urgency=low [ Stefano Zacchiroli ] * doc/external-dependency-solver-protocol.txt: - describe EDSP and the configuration interface around it - + [ Michael Vogt ] * [ABI-Break] merge lp:~mvo/apt/sha512-template to add support for sha512 * [ABI-Break] merge lp:~mvo/apt/dpointer to support easier extending @@ -5547,7 +5678,7 @@ apt (0.8.15.6) unstable; urgency=low * apt-pkg/sourcelist.{cc,h}: - add pkgSourceList::GetLastModifiedTime() helper * apt-pkg/pkgcachegen.{cc,h}: - - use ref-to-ptr semantic in NewDepends() to ensure that the + - use ref-to-ptr semantic in NewDepends() to ensure that the libapt does not segfault if the cache is remapped in between (LP: #812862) - fix crash when P.Arch() was used but the cache got remapped @@ -5556,7 +5687,7 @@ apt (0.8.15.6) unstable; urgency=low * apt-pkg/acquire-item.cc: - if no Release.gpg file is found, still load the hashes for verification (closes: #636314) and add test - + [ David Kalnischkies ] * lots of cppcheck fixes @@ -5585,7 +5716,7 @@ apt (0.8.15.4) unstable; urgency=low unescape character escapes like \0XX and \xXX (plus added test) * refresh po/* - + -- Michael Vogt <mvo@debian.org> Tue, 26 Jul 2011 12:12:27 +0200 apt (0.8.15.3) unstable; urgency=low @@ -5636,7 +5767,7 @@ apt (0.8.15.3) unstable; urgency=low apt (0.8.15.2) unstable; urgency=high - * fix from David Kalnischkies for the InRelease gpg verification + * fix from David Kalnischkies for the InRelease gpg verification code (LP: #784473) -- Michael Vogt <mvo@debian.org> Tue, 12 Jul 2011 11:54:47 +0200 @@ -5757,7 +5888,7 @@ apt (0.8.15) unstable; urgency=low - ignore lines starting with "#" in the mirror file - ignore non http urls in the mirrors - append the dist (e.g. sid, wheezy) as a query string when - asking for a suitable mirror + asking for a suitable mirror * apt-pkg/deb/deblistparser.cc: - include all known languages when building the apt cache (LP: #794907) @@ -5767,7 +5898,7 @@ apt (0.8.15) unstable; urgency=low [ Kenneth Solbø Andersen ] * apt-pkg/deb/dpkgpm.cc: - set permissions of term.log to root.adm and 644 (LP: #404724) - + [ Chris Leick ] * various typo and syntax corrections in doc/*.xml @@ -5776,7 +5907,7 @@ apt (0.8.15) unstable; urgency=low apt (0.8.15~exp3) experimental; urgency=low * debian/control: - - add Breaks: 0.8.15~exp3) for libapt-pkg4.10 and + - add Breaks: 0.8.15~exp3) for libapt-pkg4.10 and libapt-inst1.2 (thanks to Jonathan Nieder, closes: #630214) - use depends for the ${shlibs:Depends} to make the breaks work @@ -5871,7 +6002,7 @@ apt (0.8.15~exp1) experimental; urgency=low - ignore lines starting with "#" in the mirror file - ignore non http urls in the mirrors - append the dist (e.g. sid, wheezy) as a query string when - asking for a suitable mirror + asking for a suitable mirror * debian/control: - add libapt-pkg4.10 and libapt-inst1.2 library packages @@ -5977,7 +6108,7 @@ apt (0.8.14) unstable; urgency=low (Closes: #121132) * debian/control: - Set Standards-Version to 3.9.2 - + [ Michael Vogt ] * mirror method: - do not crash if the mirror file fails to download @@ -6042,8 +6173,8 @@ apt (0.8.13) unstable; urgency=low [ Thorsten Spindler ] * methods/rsh.cc - fix rsh/ssh option parsing (LP: #678080), thanks to - Ville Mattila - + Ville Mattila + [ Michael Vogt ] * apt-pkg/acquire-item.cc: - mark pkgAcqIndexTrans as Index-File to avoid asking the @@ -6137,7 +6268,7 @@ apt (0.8.11.4) unstable; urgency=low - ensure that va_list is not invalid in second try * cmdline/apt-get.cc: - don't remove new dependencies of garbage packages (Closes: #613420) - + [ Michael Vogt ] * test/integration/* - fix dashish in the integration tests @@ -6159,11 +6290,11 @@ apt (0.8.11.2) unstable; urgency=low [ Michael Vogt ] * merged lp:~evfool/apt/fix641673: - - String-fix in the source and the translations for the grammatical + - String-fix in the source and the translations for the grammatical mistake reported in bug LP: #641673, thanks to Robert Roth * merged lp:~evfool/apt/fix418552: - Grammar fix for bug LP: #418552, thanks to Robert Roth - + [ David Kalnischkies ] * cmdline/apt-get.cc: - add --install-suggests option (Closes: #473089) @@ -6334,7 +6465,7 @@ apt (0.8.10.1) unstable; urgency=low if packages could not found (LP: #647045) [ Programs translations ] - * Spanish update by Javier Fernández-Sanguino Peña. Closes: #607145 + * Spanish update by Javier Fernández-Sanguino Peña. Closes: #607145 [ Manpages translations ] * Correct a typo and an error in French manpages translation. @@ -6513,9 +6644,9 @@ apt (0.8.4) unstable; urgency=low available LP: #633967. Thanks to Colin Watson * apt-pkg/contrib/cdromutl.cc: - if apt-cdrom is used on writable media (like usb-sticks), do - not use the root directory to identify the medium (as all - changes there change the ident id). Use the .disk directory - instead + not use the root directory to identify the medium (as all + changes there change the ident id). Use the .disk directory + instead [ David Kalnischkies ] * ftparchive/writer.cc: @@ -6758,7 +6889,7 @@ apt (0.7.26~exp11) experimental; urgency=low - try to install another or-group member in DepRemove before breaking the or group (Closes: #590438) - configure also the replacement before remove by adding Immediate flag - + [ Michael Vogt ] * apt-pkg/contrib/error.{cc,h} - docstring cleanup @@ -6908,7 +7039,7 @@ apt (0.7.26~exp6) experimental; urgency=low - enable cdrom autodetection via libudev by default - show message about Vcs in use when apt-get source is run for packages maintained in a Vcs - - better support transitional packages with mark auto-installed. + - better support transitional packages with mark auto-installed. when the transitional package is in "oldlibs" the new package is not marked auto installed (same is true for section metapackages) @@ -6918,7 +7049,7 @@ apt (0.7.26~exp6) experimental; urgency=low - write apport crash file on package failure (disabled by default on debian until apport is available) - support mirror failure reporting (disabled by default on debian) - + [ David Kalnischkies ] * apt-pkg/deb/dpkgpm.cc: - write Disappeared also to the history.log @@ -7034,7 +7165,7 @@ apt (0.7.26~exp5) experimental; urgency=low [ Michael Vogt ] * methods/http.{cc,h}: - code cleanup, use enums instead of magic ints - + [ Jari Aalto ] * debian/rules: - spell out some less known options to reduce manpage consultation-rate @@ -7044,7 +7175,7 @@ apt (0.7.26~exp5) experimental; urgency=low [ Julian Andres Klode ] * apt-pkg/acquire-item.cc: - Fix pkgAcqFile::Custom600Headers() to always return something. - + [ Christian Perrier ] * Slovak translation update. Closes: #581159 @@ -7124,7 +7255,7 @@ apt (0.7.26~exp4) experimental; urgency=low * apt-pkg/deb/debrecords.cc: - fix max tag buffer size (LP: #545336, closes: #578959) * debian/rules: - - install html doxygen in libapt-pkg-doc + - install html doxygen in libapt-pkg-doc * debian/control: - build-depend on doxygen @@ -7243,7 +7374,7 @@ apt (0.7.26~exp3) experimental; urgency=low - if apt-get source foo=version or foo/distro can not be found, error out (LP: #502641) * apt-pkg/packagemanager.cc: - - better debug output + - better debug output * doc/examples/configure-index: - add missing Debug::pkgPackageManager option @@ -7296,7 +7427,7 @@ apt (0.7.26~exp1) experimental; urgency=low [ Ivan Masár ] * Slovak translation update. Closes: #568294 - + [ Michael Vogt ] * [BREAK] merged lp:~mvo/apt/history - this writes a /var/log/apt/history tagfile that contains details @@ -7304,8 +7435,8 @@ apt (0.7.26~exp1) experimental; urgency=low * methods/http.cc: - add cache-control headers even if no cache is given to allow adding options for intercepting proxies - - add Acquire::http::ProxyAutoDetect configuration that - can be used to call a external helper to figure out the + - add Acquire::http::ProxyAutoDetect configuration that + can be used to call a external helper to figure out the proxy configuration and return it to apt via stdout (this is a step towards WPAD and zeroconf/avahi support) * abicheck/ @@ -7456,11 +7587,11 @@ apt (0.7.25) unstable; urgency=low Closes: #551534 * Italian translation update by Milo Casagrande Closes: #555797 - * Simplified Chinese translation update by Aron Xu + * Simplified Chinese translation update by Aron Xu Closes: #558737 * Slovak translation update by Ivan Masár Closes: #559277 - + [ Michael Vogt ] * apt-pkg/packagemanager.cc: - add output about pre-depends configuring when debug::pkgPackageManager @@ -7483,7 +7614,7 @@ apt (0.7.25) unstable; urgency=low [ Brian Murray ] * apt-pkg/depcache.cc, apt-pkg/indexcopy.cc: - typo fix (LP: #462328) - + [ Loïc Minier ] * cmdline/apt-key: - Emit a warning if removed keys keyring is missing and skip associated @@ -7598,7 +7729,7 @@ apt (0.7.24) unstable; urgency=low [ Michael Vogt ] * apt-pkg/deb/dpkgpm.cc: - - when tcgetattr() returns non-zero skip all pty magic + - when tcgetattr() returns non-zero skip all pty magic (thanks to Simon Richter, closes: #509866) * apt-inst/contrib/arfile.cc: - show proper error message for Invalid archive members @@ -7655,7 +7786,7 @@ apt (0.7.23.1) unstable; urgency=low [ Michael Vogt ] * apt-pkg/pkgcache.cc: - - do not set internal "needs-configure" state for packages in + - do not set internal "needs-configure" state for packages in triggers-pending state. dpkg will deal with the trigger and it if does it before we trigger it, dpkg will error out (LP: #414631) @@ -7673,7 +7804,7 @@ apt (0.7.23) unstable; urgency=low and '{http,ftp}_proxy' environment variables are used only if options mentioned above are not specified. (Closes: #445985, #157759, #320184, #365880, #479617) - + [ David Kalnischkies ] * cmdline/apt-get.cc: - add APT::Get::HideAutoRemove=small to display only a short line @@ -7758,7 +7889,7 @@ apt (0.7.22) unstable; urgency=low Thanks to Aurélien Couderc. * Translations: - fr.po - - sk.po. Closes: #525857 + - sk.po. Closes: #525857 - ru.po. Closes: #526816 - eu.po. Closes: #528985 - zh_CN.po. Closes: #531390 @@ -7769,7 +7900,7 @@ apt (0.7.22) unstable; urgency=low * Added translations - ast.po (Asturian by Marcos Alvareez Costales). Closes: #529007, #529730, #535328 - + [ David Kalnischkies ] * [ABI break] support '#' in apt.conf and /etc/apt/preferences (closes: #189866) @@ -7777,7 +7908,7 @@ apt (0.7.22) unstable; urgency=low * support running "--simulate" as user * add depth information to the debug output and show what depends type triggers a autoinst (closes: #458389) - * add Debug::pkgDepCache::Marker with more detailed debug output + * add Debug::pkgDepCache::Marker with more detailed debug output (closes: #87520) * add Debug::pkgProblemResolver::ShowScores and make the scores adjustable @@ -7807,14 +7938,14 @@ apt (0.7.22) unstable; urgency=low - provide DPkg::Chroot-Directory config option (useful for testing) - fix potential hang when in a background process group * apt-pkg/algorithms.cc: - - consider recommends when making the scores for the problem + - consider recommends when making the scores for the problem resolver * apt-pkg/acquire-worker.cc: - show error details of failed methods * apt-pkg/contrib/fileutl.cc: - if a process aborts with signal, show signal number * methods/http.cc: - - ignore SIGPIPE, we deal with EPIPE from write in + - ignore SIGPIPE, we deal with EPIPE from write in HttpMethod::ServerDie() (LP: #385144) * Only run Download-Upgradable and Unattended-Upgrades if the initial update was successful Closes: #341970 @@ -7822,7 +7953,7 @@ apt (0.7.22) unstable; urgency=low - support having CDs with no Packages file (just a Packages.gz) by not forcing a verification on non-existing files (LP: #255545) - - remove the gettext from a string that consists entirely + - remove the gettext from a string that consists entirely of variables (LP: #56792) * apt-pkg/cacheiterators.h: - add missing checks for Owner == 0 in end() @@ -7832,9 +7963,9 @@ apt (0.7.22) unstable; urgency=low - add new strprintf() function to make i18n strings easier - fix compiler warning * apt-pkg/deb/debsystem.cc: - - make strings i18n able - * fix problematic use of tolower() when calculating the version - hash by using locale independent tolower_ascii() function. + - make strings i18n able + * fix problematic use of tolower() when calculating the version + hash by using locale independent tolower_ascii() function. Thanks to M. Vefa Bicakci (LP: #80248) * build fixes for g++-4.4 * cmdline/apt-mark: @@ -7845,13 +7976,13 @@ apt (0.7.22) unstable; urgency=low - merged patch from Aurélien Couderc to improve the text (thanks!) * [ABI] merged the libudev-dlopen branch, this allows one to pass - "apt-udev-auto" to Acquire::Cdrom::mount and the cdrom method will + "apt-udev-auto" to Acquire::Cdrom::mount and the cdrom method will dynamically find/mount the cdrom device (if libhal is available) [ Julian Andres Klode ] * apt-pkg/contrib/configuration.cc: Fix a small memory leak in ReadConfigFile. - * Introduce support for the Enhances field. (Closes: #137583) + * Introduce support for the Enhances field. (Closes: #137583) * Support /etc/apt/preferences.d, by adding ReadPinDir() (Closes: #535512) * configure-index: document Dir::Etc::SourceParts and some other options (Closes: #459605) @@ -7861,15 +7992,15 @@ apt (0.7.22) unstable; urgency=low SHA1Summation and SHA256Summation [ Osamu Aoki ] - * Updated cron script to support backups by hardlinks and - verbose levels. All features turned off by default. + * Updated cron script to support backups by hardlinks and + verbose levels. All features turned off by default. * Added more error handlings. Closes: #438803, #462734, #454989 - * Documented all cron script related configuration items in + * Documented all cron script related configuration items in configure-index. [ Dereck Wonnacott ] * apt-ftparchive might write corrupt Release files (LP: #46439) - * Apply --important option to apt-cache depends (LP: #16947) + * Apply --important option to apt-cache depends (LP: #16947) [ Otavio Salvador ] * Apply patch from Sami Liedes <sliedes@cc.hut.fi> to reduce the @@ -7892,7 +8023,7 @@ apt (0.7.21) unstable; urgency=low - sk.po. Closes: #520403 - it.po. Closes: #522222 - sk.po. Closes: #520403 - + [ Jamie Strandboge ] * apt.cron.daily: catch invalid dates due to DST time changes in the stamp files @@ -7913,7 +8044,7 @@ apt (0.7.21) unstable; urgency=low * Clarify the --help for 'purge' (LP: #243948) * cmdline/apt-get.cc - fix "apt-get source pkg" if there is a binary package and - a source package of the same name but from different + a source package of the same name but from different packages (LP: #330103) [ Colin Watson ] @@ -7936,9 +8067,9 @@ apt (0.7.20.1) unstable; urgency=low [ Michael Vogt ] * apt-pkg/pkgcachegen.cc: - - fix apt-cache search for localized description + - fix apt-cache search for localized description (closes: #512110) - + [ Christian Perrier ] * Translations: - fr.po: fix spelling error to "défectueux". Thanks to Thomas Péteul. @@ -7971,10 +8102,10 @@ apt (0.7.20) unstable; urgency=low (Closes: #440049, #509337) [ Michael Vogt ] - * add option to "apt-get build-dep" to mark the needed - build-dep packages as automatic installed. + * add option to "apt-get build-dep" to mark the needed + build-dep packages as automatic installed. This is controlled via the value of - APT::Get::Build-Dep-Automatic and is set "false" by default. + APT::Get::Build-Dep-Automatic and is set "false" by default. Thanks to Aaron Haviland, closes: #448743 * apt-inst/contrib/arfile.cc: - support members ending with '/' as well (thanks to Michal Cihr, @@ -7982,12 +8113,12 @@ apt (0.7.20) unstable; urgency=low [ Christian Perrier ] * Translations: - - Finnish updated. Closes: #508449 + - Finnish updated. Closes: #508449 - Galician updated. Closes: #509151 - Catalan updated. Closes: #509375 - Vietnamese updated. Closes: #509422 - Traditional Chinese added. Closes: #510664 - - French corrected (remove awful use of first person) + - French corrected (remove awful use of first person) -- Michael Vogt <mvo@debian.org> Mon, 05 Jan 2009 08:59:20 +0100 @@ -8031,9 +8162,9 @@ apt (0.7.19) unstable; urgency=low - Norwegian BokmÃ¥l updated. Closes: #505934 - Brazilian Portuguese updated. Closes: #505949 - Basque updated. Closes: #506085 - - Russian updated. Closes: #506452 - - Marathi updated. - - Ukrainian updated. Closes: #506545 + - Russian updated. Closes: #506452 + - Marathi updated. + - Ukrainian updated. Closes: #506545 -- Michael Vogt <mvo@debian.org> Mon, 24 Nov 2008 10:33:54 +0100 @@ -8133,7 +8264,7 @@ apt (0.7.17~exp4) experimental; urgency=low apt (0.7.17~exp3) experimental; urgency=low * apt-pkg/acquire-item.cc: - - fix a merge mistake that prevents the fallback to the + - fix a merge mistake that prevents the fallback to the uncompressed 'Packages' to work correctly (closes: #409284) -- Michael Vogt <mvo@debian.org> Wed, 29 Oct 2008 09:36:24 +0100 @@ -8147,7 +8278,7 @@ apt (0.7.17~exp2) experimental; urgency=low * apt-pkg/algorithm.cc: - Strip username and password from source URL in error message. (Closes: #425150) - + [ Michael Vogt ] * fix various -Wall warnings @@ -8194,7 +8325,7 @@ apt (0.7.16) unstable; urgency=low * Retitle the apt-mark.8 manpage (thanks to Justin Pryzby, closes: #471276) * Better documentation on using both APT::Default-Release and /etc/apt/preferences (thanks to Ingo Saitz, closes: #145575) - + [ Michael Vogt ] * doc/apt-cache.8.xml: - add missing citerefentry @@ -8231,7 +8362,7 @@ apt (0.7.15~exp2) experimental; urgency=low [ Michael Vogt ] * apt-pkg/pkgcachegen.cc: - - do not add multiple identical descriptions for the same + - do not add multiple identical descriptions for the same language (closes: #400768) [ Program translations ] @@ -8286,7 +8417,7 @@ apt (0.7.15~exp1) experimental; urgency=low (thanks to Joey Hess) * doc/makefile: - add examples/apt-https-method-example.conf - + -- Michael Vogt <mvo@debian.org> Tue, 16 Sep 2008 21:27:03 +0200 apt (0.7.14) unstable; urgency=low @@ -8322,10 +8453,10 @@ apt (0.7.14) unstable; urgency=low * Apply patch to avoid truncating of arbitrary files. Thanks to Bryan Donlan <bdonlan@fushizen.net> for the patch. Closes: #482476 * Avoid using dbus if dbus-daemon isn't running. Closes: #438803 - + [ Michael Vogt ] * debian/apt.cron.daily: - - apply patch based on the ideas of Francesco Poli for better + - apply patch based on the ideas of Francesco Poli for better behavior when the cache can not be locked (closes: #459344) -- Michael Vogt <mvo@debian.org> Wed, 28 May 2008 15:19:12 +0200 @@ -8342,10 +8473,10 @@ apt (0.7.13) unstable; urgency=low [ Goswin von Brederlow ] * Add support for --no-download on apt-get update. Closes: #478517 - + [ Program translations ] - Vietnamese updated. Closes: #479008 - + -- Otavio Salvador <otavio@debian.org> Fri, 02 May 2008 14:46:00 -0300 apt (0.7.12) unstable; urgency=low @@ -8358,7 +8489,7 @@ apt (0.7.12) unstable; urgency=low * apt-pkg/deb/dpkgpm.cc: - merged patch from Kees Cook to fix annoying upper-case display on amd64 in sbuild - * apt-pkg/algorithms.cc: + * apt-pkg/algorithms.cc: - add APT::Update::Post-Invoke-Success script slot - Make the breaks handling use the kill list. This means, that a Breaks: Pkg (<< version) may put Pkg onto the remove list. @@ -8397,7 +8528,7 @@ apt (0.7.12) unstable; urgency=low - French updated. - Bulgarian updated. Closes: #448492 - Galician updated. Closes: #476839 - + [ Daniel Burrows ] * apt-pkg/depcache.cc: - Patch MarkInstall to follow currently satisfied Recommends even @@ -8417,7 +8548,7 @@ apt (0.7.12) unstable; urgency=low -- Daniel Burrows <dburrows@debian.org> Sat, 26 Apr 2008 12:24:35 -0700 apt (0.7.11) unstable; urgency=critical - + [ Raise urgency to critical since it fixes a critical but for Debian Installer Lenny Beta1 release ] @@ -8489,7 +8620,7 @@ apt (0.7.10) unstable; urgency=low - make the authentication download code more robust against servers/proxies with broken If-Range implementations * apt-pkg/packagemanager.{cc,h}: - - propergate the Immediate flag to make hitting the + - propergate the Immediate flag to make hitting the "E: Internal Error, Could not perform immediate configuration (2)" harder * debian/control: @@ -8503,7 +8634,7 @@ apt (0.7.10) unstable; urgency=low - support lzma data members * ftparchive/multicompress.cc: - support lzma output - + [ Daniel Burrows ] * apt-pkg/contrib/configuration.cc: - if RootDir is set, then FindFile and FindDir will return paths @@ -8559,11 +8690,11 @@ apt (0.7.7) unstable; urgency=low - remove zero size files on I-M-S hit * methods/https.cc: - only send LastModified if we actually have a file - - send range request with if-range + - send range request with if-range - delete failed downloads - delete zero size I-M-S hits * apt-pkg/deb/dpkgpm.{cc,h}: - - merged dpkg-log branch, this lets you specify a + - merged dpkg-log branch, this lets you specify a Dir::Log::Terminal file to log dpkg output to (ABI break) - fix parse error when dpkg sends unexpected data @@ -8595,7 +8726,7 @@ apt (0.7.7) unstable; urgency=low - set "APT::Install-Recommends" to true by default (OMG!) * debian/apt.cron.daily: - only run the cron job if apt-get check succeeds (LP: #131719) - + [ Program translations ] - French updated - Basque updated. Closes: #436425 @@ -8637,7 +8768,7 @@ apt (0.7.7) unstable; urgency=low [ Colin Watson ] * apt-pkg/contrib/mmap.cc: - don't fail if msync() returns > 0 - + -- Michael Vogt <mvo@debian.org> Tue, 23 Oct 2007 14:58:03 +0200 apt (0.7.6) unstable; urgency=low @@ -8706,14 +8837,14 @@ apt (0.7.4) unstable; urgency=low apt (0.7.3) unstable; urgency=low - * fixed compile errors with g++ 4.3 (thanks to + * fixed compile errors with g++ 4.3 (thanks to Daniel Burrows, closes: #429378) * fixes in the auto-mark code (thanks to Daniel Burrows) * fix FTBFS by changing build-depends to libcurl4-gnutls-dev (closes: #428363) * cmdline/apt-get.cc: - - fix InstallTask code when a pkgRecord ends + - fix InstallTask code when a pkgRecord ends with a single '\n' (thanks to Soren Hansen for reporting) * merged from Christian Perrier: * vi.po: completed to 532t, again. Closes: #429899 @@ -8736,7 +8867,7 @@ apt (0.7.2-0.1) unstable; urgency=low -- Steve Langasek <vorlon@debian.org> Thu, 28 Jun 2007 18:46:53 -0700 apt (0.7.2) unstable; urgency=low - + * merged the debian/experimental changes back into the debian/sid branch * merged from Christian Perrier: @@ -8769,20 +8900,20 @@ apt (0.7.2) unstable; urgency=low * add --dsc-only option, thanks to K. Richard Pixley * Removed the more leftover #pragma interface/implementation closes: #306937 (thanks to Andreas Henriksson for the patch) - + -- Michael Vogt <mvo@debian.org> Wed, 06 Jun 2007 23:19:50 +0200 apt (0.7.1) experimental; urgency=low * ABI library name change because it's built against new glibc - * implement SourceVer() in pkgRecords + * implement SourceVer() in pkgRecords (thanks to Daniel Burrows for the patch!) * apt-pkg/algorithm.cc: - use clog for all debugging - - only increase the score of installed applications if they - are not obsolete - - fix resolver bug on removal triggered by weak-dependencies + - only increase the score of installed applications if they + are not obsolete + - fix resolver bug on removal triggered by weak-dependencies with or-groups * methods/http.cc: - send apt version in User-Agent @@ -8790,12 +8921,12 @@ apt (0.7.1) experimental; urgency=low - fix SHA1Hash() return value * apt-pkg/cdrom.cc: - only unmount if APT::CDROM::NoMount is false - * methods/cdrom.cc: + * methods/cdrom.cc: - only umount if it was mounted by the method before * po/gl.po: - fix error translation that causes trouble to lsb_release * apt-pkg/acquire-item.cc: - - if decompression of a index fails, delete the index + - if decompression of a index fails, delete the index * apt-pkg/acquire.{cc,h}: - deal better with duplicated sources.list entries (avoid double queuing of URLs) - this fixes hangs in bzip/gzip @@ -8830,15 +8961,15 @@ apt (0.7.0) experimental; urgency=low * translated package descriptions * task install support * automatic dependency removal (thanks to Daniel Burrows) - * merged support for the new dpkg "Breaks" field + * merged support for the new dpkg "Breaks" field (thanks to Ian Jackson) * handle network failures more gracefully on "update" * support for unattended-upgrades (via unattended-upgrades package) * added apt-transport-https method - * merged "install-recommends" branch (ABI break): + * merged "install-recommends" branch (ABI break): - new "--install-recommends" - - install new recommends on "upgrade" if --install-recommends is + - install new recommends on "upgrade" if --install-recommends is given - new "--fix-policy" option to install all packages with unmet important dependencies (useful with --install-recommends to @@ -8850,7 +8981,7 @@ apt (0.7.0) experimental; urgency=low -- Michael Vogt <mvo@debian.org> Fri, 12 Jan 2007 20:48:07 +0100 apt (0.6.46.4-0.1) unstable; urgency=emergency - + * NMU * Fix broken use of awk in apt-key that caused removal of the wrong keys from the keyring. Closes: #412572 @@ -8883,8 +9014,8 @@ apt (0.6.46.3-0.2) unstable; urgency=high * Non-maintainer upload with permission of Michael Vogt. * Fix FTBFS on most arches (regression from the fix of #400874) - -- Andreas Barth <aba@not.so.argh.org> Tue, 5 Dec 2006 15:51:22 +0000 - + -- Andreas Barth <aba@not.so.argh.org> Tue, 5 Dec 2006 15:51:22 +0000 + apt (0.6.46.3-0.1) unstable; urgency=high * Non-maintainer upload with permission of Michael Vogt. @@ -8892,14 +9023,14 @@ apt (0.6.46.3-0.1) unstable; urgency=high * Add apt-key update in postinst, so that debian-archive-keyring doesn't need to depend on apt >= 0.6. Closes: #401114 * Don't double-queue pdiff files. Closes: #401017 - + -- Andreas Barth <aba@not.so.argh.org> Tue, 5 Dec 2006 10:34:56 +0000 apt (0.6.46.3) unstable; urgency=low * apt-pkg/deb/dpkgpm.cc: - make progress reporting robust against multiline error - messages + messages * Merged from Christian Perrier bzr branch: - ca.po: Updated to 514t @@ -8923,7 +9054,7 @@ apt (0.6.46.3) unstable; urgency=low apt (0.6.46.2) unstable; urgency=low * debian/control: - - depend on debian-archive-keyring to offer clean upgrade path + - depend on debian-archive-keyring to offer clean upgrade path (closes: #386800) * Merged from Christian Perrier bzr branch: - es.po: Updated to 514t. Closes: #391661 @@ -8937,13 +9068,13 @@ apt (0.6.46.2) unstable; urgency=low apt (0.6.46.1) unstable; urgency=low * methods/gzip.cc: - - deal with empty files + - deal with empty files * Applied patch from Daniel Schepler to make apt bin-NMU able. (closes: bug#359634) * rebuild against current g++ because of: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29289 (closes: #390189) - * fix broken i18n in the dpkg progress reporting, thanks to + * fix broken i18n in the dpkg progress reporting, thanks to Frans Pop and Steinar Gunderson. (closes: #389261) * Merged from Christian Perrier bzr branch: * fi.po: Updated to 514t. Closes: #390149 @@ -8951,7 +9082,7 @@ apt (0.6.46.1) unstable; urgency=low * vi.po: Updated to 514t. Closes: #388555 * make the internal buffer in pkgTagFile grow dynamically (closes: #388708) - + -- Michael Vogt <mvo@debian.org> Mon, 2 Oct 2006 20:42:20 +0200 apt (0.6.46) unstable; urgency=low @@ -8985,9 +9116,9 @@ apt (0.6.46) unstable; urgency=low * apt-pkg/tagfile.cc: - applied patch from Jeroen van Wolffelaar to make the tags caseinsensitive (closes: #384182) - - reverted MMap use in the tagfile because it does not work - across pipes (closes: #383487) - + - reverted MMap use in the tagfile because it does not work + across pipes (closes: #383487) + -- Michael Vogt <mvo@debian.org> Thu, 21 Sep 2006 10:25:03 +0200 apt (0.6.45) unstable; urgency=low @@ -9005,16 +9136,16 @@ apt (0.6.45) unstable; urgency=low - make progress reporting more robust against multiline error messages (first half of a fix for #374195) * doc/examples/configure-index: - - document Debug::pkgAcquire::Auth + - document Debug::pkgAcquire::Auth * methods/gpgv.cc: - - deal with gpg error "NODATA". Closes: #296103, Thanks to + - deal with gpg error "NODATA". Closes: #296103, Thanks to Luis Rodrigo Gallardo Cruz for the patch * apt-inst/contrib/extracttar.cc: - fix for string mangling, closes: #373864 * apt-pkg/acquire-item.cc: - check for bzip2 in /bin (closes: #377391) * apt-pkg/tagfile.cc: - - make it work on non-mapable files again, thanks + - make it work on non-mapable files again, thanks to James Troup for confirming the fix (closes: #376777) * Merged from Christian Perrier bzr branch: * ko.po: Updated to 512t. Closes: #378901 @@ -9039,7 +9170,7 @@ apt (0.6.44.2exp1) experimental; urgency=low * added support for i18n of the package descriptions * added support for aptitude like auto-install tracking (a HUGE - HUGE thanks to Daniel Burrows who made this possible) + HUGE thanks to Daniel Burrows who made this possible) * synced with the http://people.debian.org/~mvo/bzr/apt/debian-sid branch * build from http://people.debian.org/~mvo/bzr/apt/debian-experimental @@ -9052,7 +9183,7 @@ apt (0.6.44.2) unstable; urgency=low * apt-pkg/acquire-item.cc: - fix missing chmod() in the new acquire code (thanks to Bastian Blank, Closes: #367425) - * merged from + * merged from http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: * sk.po: Completed to 512t * eu.po: Completed to 512t @@ -9075,7 +9206,7 @@ apt (0.6.44.1) unstable; urgency=low * apt-pkg/acquire-item.cc: - fix reversed logic of the "Acquire::PDiffs" option - * merged from + * merged from http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: - po/LINGUAS: added "bg" Closes: #360262 - po/gl.po: Galician translation update. Closes: #366849 @@ -9090,13 +9221,13 @@ apt (0.6.44.1) unstable; urgency=low apt (0.6.44) unstable; urgency=low * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large - * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256 + * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256 (thanks to Anthony Towns) - * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations + * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations (thanks to Anthony Towns) * apt pdiff support from experimental merged * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman) - * apt-pkg/deb/dpkgpm.cc: + * apt-pkg/deb/dpkgpm.cc: - wording fixes (thanks to Matt Zimmerman) - fix error in dpkg interaction (closes: #364513, thanks to Martin Dickopp) * apt-pkg/tagfile.{cc,h}: @@ -9171,7 +9302,7 @@ apt (0.6.43.2) unstable; urgency=low - gl.po: Completed to 511 strings Closes: #347729 - it.po: Yet another update Closes: #347435 * added debian-archive-keyring to the Recommends (closes: #347970) - * fixed message in apt-key to install debian-archive-keyring + * fixed message in apt-key to install debian-archive-keyring * typos fixed in apt-cache.8 (closes: #348348, #347349) * add patch to fix http download corruption problem (thanks to Petr Vandrovec, closes: #280844, #290694) @@ -9203,10 +9334,10 @@ apt (0.6.43.1) unstable; urgency=low apt (0.6.43) unstable; urgency=medium - * Merge bubulle@debian.org--2005/apt--main--0 up to patch-132: + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-132: * zh_CN.po: Completed to 510 strings(Closes: #338267) * gl.po: Completed to 510 strings (Closes: #338356) - * added support for "/etc/apt/sources.list.d" directory + * added support for "/etc/apt/sources.list.d" directory (closes: #66325) * make pkgDirStream (a bit) more complete * fix bug in pkgCache::VerIterator::end() (thanks to Daniel Burrows) @@ -9218,7 +9349,7 @@ apt (0.6.43) unstable; urgency=medium * ABI change, library name changed (closes: #339147) * Fix GNU/kFreeBSD crash on non-existing server file (closes: #317718) * switch to libdb4.3 in build-depends - + -- Michael Vogt <mvo@debian.org> Tue, 29 Nov 2005 00:17:07 +0100 apt (0.6.42.3) unstable; urgency=low @@ -9227,7 +9358,7 @@ apt (0.6.42.3) unstable; urgency=low - patch-118: Russian translation update by Yuri Kozlov (closes: #335164) - patch-119: add update-po as a pre-req for binary (closes: #329910) - patch-121: Complete French translation - - patch-125: Fixed localization of y/n questions in German translation + - patch-125: Fixed localization of y/n questions in German translation (closes: #337078) - patch-126: Swedish translation update (closes: #337163) - patch-127: Complete Tagalog translation (closes: #337306) @@ -9238,7 +9369,7 @@ apt (0.6.42.3) unstable; urgency=low * added armeb to archtable (closes: #333599) * with --allow-unauthenticated use the old fallback behaviour for sources (closes: #335112) - + -- Michael Vogt <mvo@debian.org> Wed, 9 Nov 2005 07:22:31 +0100 apt (0.6.42.2) unstable; urgency=high @@ -9249,13 +9380,13 @@ apt (0.6.42.2) unstable; urgency=high * Priority high to get the AMD key into testing ASAP. -- Frans Pop <fjp@debian.org> Sun, 30 Oct 2005 21:29:11 +0100 - + apt (0.6.42.1) unstable; urgency=low * fix a incorrect example in the apt_preferences man page (thanks to Filipus Klutiero, closes: #282918) * apt-pkg/pkgrecords.cc: - - revert patch from last version, it causes trouble on alpha + - revert patch from last version, it causes trouble on alpha and ia64 (closes: #335102, #335103) * cmdline/apt-get.cc: - be extra careful in FindSrc (closes: #335213) @@ -9268,13 +9399,13 @@ apt (0.6.42) unstable; urgency=low - unmount the cdrom when apt failed to locate any package files * allow cdrom failures and fallback to other sources in that case (closes: #44135) - * better error text when dpkg-source fails + * better error text when dpkg-source fails * Merge bubulle@debian.org--2005/apt--main--0 up to patch-115: - patch-99: Added Galician translation - patch-100: Completed Danish translation (Closes: #325686) - patch-104: French translation completed - patch-109: Italian translation completed - - patch-112: Swedish translation update + - patch-112: Swedish translation update - patch-115: Basque translation completed (Closes: #333299) * applied french man-page update (thanks to Philippe Batailler) (closes: #316638, #327456) @@ -9288,9 +9419,9 @@ apt (0.6.42) unstable; urgency=low * apt-pkg/contrib/md5.cc: - fix a alignment problem on sparc64 that gives random bus errors (thanks to Fabbione for providing a test-case) - * init the default ScreenWidth to 79 columns by default + * init the default ScreenWidth to 79 columns by default (Closes: #324921) - * cmdline/apt-cdrom.cc: + * cmdline/apt-cdrom.cc: - fix some missing gettext() calls (closes: #334539) * doc/apt-cache.8.xml: fix typo (closes: #334714) @@ -9301,8 +9432,8 @@ apt (0.6.41) unstable; urgency=low * improved the support for "error" and "conffile" reporting from dpkg, added the format to README.progress-reporting * added README.progress-reporting to the apt-doc package - * improved the network timeout handling, if a index file from a - sources.list times out or EAI_AGAIN is returned from getaddrinfo, + * improved the network timeout handling, if a index file from a + sources.list times out or EAI_AGAIN is returned from getaddrinfo, don't try to get the other files from that entry * Support architecture-specific extra overrides (closes: #225947). Thanks to Anthony Towns for idea and @@ -9310,10 +9441,10 @@ apt (0.6.41) unstable; urgency=low * Javier Fernandez-Sanguino Pen~a: - Added a first version of an apt-secure.8 manpage, and modified apt-key and apt.end accordingly. Also added the 'update' - argument to apt-key which was previously not documented + argument to apt-key which was previously not documented (Closes: #322120) * Andreas Pakulat: - - added example apt-ftparchive.conf file to doc/examples + - added example apt-ftparchive.conf file to doc/examples (closes: #322483) * Fix a incorrect example in the man-page (closes: #282918) * Fix a bug for very long lines in the apt-cdrom code (closes: #280356) @@ -9322,14 +9453,14 @@ apt (0.6.41) unstable; urgency=low * Change pkgPolicy::Pin from private to protected to let subclasses access it too (closes: #321799) * add default constructor for PrvIterator (closes: #322267) - * Reread status configuration on debSystem::Initialize() + * Reread status configuration on debSystem::Initialize() (needed for apt-proxy, thanks to Otavio for this patch) - + -- Michael Vogt <mvo@debian.org> Mon, 5 Sep 2005 22:59:03 +0200 apt (0.6.40.1) unstable; urgency=low - * bugfix in the parsing code for the apt<->dpkg communication. apt + * bugfix in the parsing code for the apt<->dpkg communication. apt crashed when dpkg sends the same state more than once under certain conditions * 0.6.40 breaks the ABI but I accidentally didn't change the soname :/ @@ -9372,10 +9503,10 @@ apt (0.6.38) unstable; urgency=low - debian/rules: install all keyrings * Add the current Debian archive signing key (4F368D5D) to debian-archive.gpg - * make pinning on the "component" work again (using the section of the + * make pinning on the "component" work again (using the section of the archive, we don't use per-section Release files anymore with apt-0.6) (closes ubuntu #9935) - + -- Matt Zimmerman <mdz@debian.org> Sat, 25 Jun 2005 09:51:00 -0700 apt (0.6.37) breezy; urgency=low @@ -9408,7 +9539,7 @@ apt (0.6.36ubuntu1) breezy; urgency=low warning; - Lock database at start of DoInstall routine to avoid concurrent runs of install/remove and update commands (Closes: #194467) - - Fix warnings while compiling with GCC 4.0 compiler + - Fix warnings while compiling with GCC 4.0 compiler -- Michael Vogt <michael.vogt@ubuntu.com> Mon, 23 May 2005 11:57:53 +0200 @@ -9416,13 +9547,13 @@ apt (0.6.36) experimental; urgency=low * Merge apt--mvo--0: - apt-pkg/acquire-item.cc: - added "Acquire::BrokenProxy" that will force apt to always + added "Acquire::BrokenProxy" that will force apt to always re-get the Release.gpg file (for broken proxies) - debian/apt.cron.daily: MinAge is defaulting to 2 days now to prevent over-aggressive removal - apt-pkg/cdrom.cc: honor "Acquire::gpgv::Options" when verifying the signature (Ubuntu #8496) - + -- Michael Vogt <mvo@debian.org> Thu, 31 Mar 2005 20:37:11 +0200 apt (0.6.35) hoary; urgency=low @@ -9491,13 +9622,13 @@ apt (0.6.30) unstable; urgency=low * Merge michael.vogt@canonical.com--2004/apt--status-fd--0 - Support preserving dpkg status file descriptor, to support better integration with synaptic - + -- Matt Zimmerman <mdz@ubuntu.com> Wed, 19 Jan 2005 00:26:01 -0800 apt (0.6.29) hoary; urgency=low * Merge apt--mvo--0 (0.6.27ubuntu4) - + -- Matt Zimmerman <mdz@canonical.com> Tue, 28 Dec 2004 17:18:02 -0800 @@ -9536,7 +9667,7 @@ apt (0.6.27ubuntu2) hoary; urgency=low apt (0.6.27ubuntu1) hoary; urgency=low * chmod 755 /usr/bin/apt-key - * don't display a error when a apt-get update don't find a + * don't display a error when a apt-get update don't find a Packages.bz2/Sources.bz2 file -- Michael Vogt <mvo@debian.org> Mon, 13 Dec 2004 18:40:21 +0100 @@ -9811,7 +9942,7 @@ apt (0.5.31) unstable; urgency=low apt (0.5.30ubuntu2) hoary; urgency=low - * bzip2 is now "Suggested" and it will detect if bzip2 is installed + * bzip2 is now "Suggested" and it will detect if bzip2 is installed and only then trying to get Packages.bz2 -- Michael Vogt <mvo@debian.org> Fri, 19 Nov 2004 12:00:39 +0100 diff --git a/debian/control b/debian/control index a112f1a92..0a8594f86 100644 --- a/debian/control +++ b/debian/control @@ -12,15 +12,15 @@ Build-Depends: cmake (>= 3.4), docbook-xml, docbook-xsl, dpkg-dev (>= 1.17.14), - g++ (>= 4:7), gettext (>= 0.12), googletest <!nocheck> | libgtest-dev <!nocheck>, libbz2-dev, libdb-dev, libgnutls28-dev (>= 3.4.6), + libgcrypt20-dev, liblz4-dev (>= 0.0~r126), liblzma-dev, - libseccomp-dev [amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x hppa powerpc powerpcspe ppc64 x32], + libseccomp-dev (>= 2.4.2) [amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x hppa powerpc powerpcspe ppc64 x32], libsystemd-dev [linux-any], libudev-dev [linux-any], libzstd-dev (>= 1.0), @@ -38,7 +38,7 @@ Package: apt Architecture: any Depends: adduser, gpgv | gpgv2 | gpgv1, - libapt-pkg5.90 (>= ${binary:Version}), + libapt-pkg6.0 (>= ${binary:Version}), ${apt:keyring}, ${misc:Depends}, ${shlibs:Depends} @@ -68,7 +68,7 @@ Description: commandline package manager * apt-config as an interface to the configuration settings * apt-key as an interface to manage authentication keys -Package: libapt-pkg5.90 +Package: libapt-pkg6.0 Architecture: any Multi-Arch: same Priority: optional diff --git a/debian/libapt-pkg5.90.install b/debian/libapt-pkg6.0.install index 9ac53bc82..9ac53bc82 100644 --- a/debian/libapt-pkg5.90.install +++ b/debian/libapt-pkg6.0.install diff --git a/debian/libapt-pkg5.90.symbols b/debian/libapt-pkg6.0.symbols index 44f4df7de..af66bf981 100644 --- a/debian/libapt-pkg5.90.symbols +++ b/debian/libapt-pkg6.0.symbols @@ -1,1510 +1,1508 @@ -libapt-pkg.so.5.90 libapt-pkg5.90 #MINVER# +libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# * Build-Depends-Package: libapt-pkg-dev - TFRewritePackageOrder@APTPKG_5.90 0.8.0 - TFRewriteSourceOrder@APTPKG_5.90 0.8.0 - (c++)"FileExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"IdentCdrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@APTPKG_5.90" 0.8.0 - (c++)"ListUpdate(pkgAcquireStatus&, pkgSourceList&, int)@APTPKG_5.90" 0.8.0 - (c++)"MountCdrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"ParseCWord(char const*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_5.90" 0.8.0 - (c++)"ReadPinDir(pkgPolicy&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"RunScripts(char const*)@APTPKG_5.90" 0.8.0 - (c++)"SafeGetCWD[abi:cxx11]()@APTPKG_5.90" 0.8.0 - (c++)"QuoteString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@APTPKG_5.90" 0.8.0 - (c++)"ReadPinFile(pkgPolicy&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"RegexChoice(RxChoiceList*, char const**, char const**)@APTPKG_5.90" 0.8.0 - (c++)"SetNonBlock(int, bool)@APTPKG_5.90" 0.8.0 - (c++)"flExtension(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"Base64Encode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"ReadMessages(int, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_5.90" 0.8.0 - (c++)"SetCloseExec(int, bool)@APTPKG_5.90" 0.8.0 - (c++)"StringToBool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@APTPKG_5.90" 0.8.0 - (c++)"UnmountCdrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"_GetErrorObj()@APTPKG_5.90" 0.8.0 - (c++)"Base256ToNum(char const*, unsigned long long&, unsigned int)@APTPKG_5.90" 1.0.5 - (c++)"pkgFixBroken(pkgDepCache&)@APTPKG_5.90" 0.8.0 - (c++)"DeQuoteString(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)@APTPKG_5.90" 0.8.0 - (c++)"DeQuoteString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"OutputInDepth[abi:cxx11](unsigned long, char const*)@APTPKG_5.90" 0.8.0 - (c++)"ReadConfigDir(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@APTPKG_5.90" 0.8.0 - (c++)"URItoFileName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"UTF8ToCodeset(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@APTPKG_5.90" 0.8.0 - (c++)"pkgInitConfig(Configuration&)@APTPKG_5.90" 0.8.0 - (c++)"pkgInitSystem(Configuration&, pkgSystem*&)@APTPKG_5.90" 0.8.0 - (c++)"safe_snprintf(char*, char*, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@APTPKG_5.90" 0.8.0 - (c++)"stringcasecmp(char const*, char const*, char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"tolower_ascii(int)@APTPKG_5.90" 0.8.0 - (c++)"ParseQuoteWord(char const*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_5.90" 0.8.0 - (c++)"ReadConfigFile(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@APTPKG_5.90" 0.8.0 - (c++)"TokSplitString(char, char*, char**, unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"pkgApplyStatus(pkgDepCache&)@APTPKG_5.90" 0.8.0 - (c++)"CheckDomainList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"CreateDirectory(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"DirectoryExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"VectorizeString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgPrioSortList(pkgCache&, pkgCache::Version**)@APTPKG_5.90" 0.8.0 - (c++)"pkgMinimizeUpgrade(pkgDepCache&)@APTPKG_5.90" 0.8.0 - (c++)"GetListOfFilesInDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool const&)@APTPKG_5.90" 0.8.0 - (c++)"GetListOfFilesInDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&)@APTPKG_5.90" 0.8.0 - (c++)"WaitFd(int, bool, unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"GetLock(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_5.90" 0.8.0 - (c++)"Hex2Num(APT::StringView, unsigned char*, unsigned int)@APTPKG_5.90" 1.9~ - (c++)"CopyFile(FileFd&, FileFd&)@APTPKG_5.90" 0.8.0 - (c++)"ExecFork()@APTPKG_5.90" 0.8.0 - (c++)"ExecWait(int, char const*, bool)@APTPKG_5.90" 0.8.0 - (c++)"StrToNum(char const*, unsigned long&, unsigned int, unsigned int)@APTPKG_5.90" 0.8.0 - (c++)"SubstVar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"SubstVar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SubstVar const*)@APTPKG_5.90" 0.8.0 - (c++)"flNoLink(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"flNotDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"ioprintf(std::basic_ostream<char, std::char_traits<char> >&, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"IsMounted(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_5.90" 0.8.0 - (c++)"LookupTag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"SizeToStr[abi:cxx11](double)@APTPKG_5.90" 0.8.0 - (c++)"TimeToStr[abi:cxx11](unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"_strstrip(char*)@APTPKG_5.90" 0.8.0 - (c++)"flCombine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"flNotFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@APTPKG_5.90" 0.8.0 - (c++)"stringcmp(char const*, char const*, char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"strprintf(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"HashString::SupportedHashes()@APTPKG_5.90" 0.8.0 - (c++)"HashString::_SupportedHashes@APTPKG_5.90" 0.8.0 - (c++)"HashString::HashString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"HashString::HashString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"HashString::HashString()@APTPKG_5.90" 0.8.0 - (c++)"OpProgress::CheckChange(float)@APTPKG_5.90" 0.8.0 - (c++)"OpProgress::OpProgress()@APTPKG_5.90" 0.8.0 - (c++)"SourceCopy::~SourceCopy()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqFile::~pkgAcqFile()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::WorkerStep(pkgAcquire::Worker*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::FetchNeeded()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::TotalNeeded()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::MethodConfig::MethodConfig()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::PartialPresent()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Add(pkgAcquire::Item*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Add(pkgAcquire::Worker*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Run(int)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Bump()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Item::Finished()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Item::~Item()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Clean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::Bump()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::Cycle()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::Dequeue(pkgAcquire::Item*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::Enqueue(pkgAcquire::ItemDesc&)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::Startup()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::FindItem(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::Worker*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::ItemDone(pkgAcquire::Queue::QItem*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::Shutdown(bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Queue::~Queue()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Remove(pkgAcquire::Item*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Remove(pkgAcquire::Worker*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::RunFds(fd_set*, fd_set*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::RunFdsSane(fd_set*, fd_set*)@APTPKG_5.90" 1.1.1 - (c++)"pkgAcquire::SetFds(int&, fd_set*, fd_set*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::UriEnd()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::OutFdReady()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::MediaChange(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::RunMessages()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::Capabilities(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::ReadMessages()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::MethodFailure()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::SendConfiguration()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::Pulse()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::Start()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::ItemDone()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::Construct()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::InFdReady()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::Worker(pkgAcquire::MethodConfig*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::Worker(pkgAcquire::Queue*, pkgAcquire::MethodConfig*, pkgAcquireStatus*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Worker::~Worker()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Dequeue(pkgAcquire::Item*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Enqueue(pkgAcquire::ItemDesc&)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::Shutdown()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::UriBegin()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::GetConfig(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::QueueName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig const*&)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::pkgAcquire(pkgAcquireStatus*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::pkgAcquire()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquire::~pkgAcquire()@APTPKG_5.90" 0.8.0 - (c++)"pkgRecords::Lookup(pkgCache::VerFileIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgRecords::Lookup(pkgCache::DescFileIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgRecords::pkgRecords(pkgCache&)@APTPKG_5.90" 0.8.0 - (c++)"pkgRecords::~pkgRecords()@APTPKG_5.90" 0.8.0 - (c++)"pkgTagFile::Step(pkgTagSection&)@APTPKG_5.90" 0.8.0 - (c++)"pkgTagFile::~pkgTagFile()@APTPKG_5.90" 0.8.0 - (c++)"CommandLine::DispatchArg(CommandLine::Dispatch*, bool)@APTPKG_5.90" 0.8.0 - (c++)"CommandLine::SaveInConfig(unsigned int const&, char const* const*)@APTPKG_5.90" 0.8.0 - (c++)"CommandLine::Parse(int, char const**)@APTPKG_5.90" 0.8.0 - (c++)"CommandLine::HandleOpt(int&, int, char const**, char const*&, CommandLine::Args*, bool)@APTPKG_5.90" 0.8.0 - (c++)"CommandLine::CommandLine(CommandLine::Args*, Configuration*)@APTPKG_5.90" 0.8.0 - (c++)"CommandLine::~CommandLine()@APTPKG_5.90" 0.8.0 - (c++)"DynamicMMap::WriteString(char const*, unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"DynamicMMap::Grow()@APTPKG_5.90" 0.8.0 - (c++)"DynamicMMap::Allocate(unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"DynamicMMap::DynamicMMap(FileFd&, unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@APTPKG_5.90" 0.8.0 - (c++)"DynamicMMap::DynamicMMap(unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@APTPKG_5.90" 0.8.0 - (c++)"DynamicMMap::~DynamicMMap()@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::DumpErrors(std::basic_ostream<char, std::char_traits<char> >&, GlobalError::MsgType const&, bool const&)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::PopMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::InsertErrno(GlobalError::MsgType const&, char const*, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::PushToStack()@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::RevertToStack()@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::MergeWithStack()@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Debug(char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Errno(char const*, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Error(char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Fatal(char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::DebugE(char const*, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::FatalE(char const*, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Insert(GlobalError::MsgType const&, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Notice(char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Discard()@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::NoticeE(char const*, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::Warning(char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::WarningE(char const*, char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::GlobalError()@APTPKG_5.90" 0.8.0 - (c++)"PackageCopy::~PackageCopy()@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::IsDeleteOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::MarkDelete(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::StateCache::Update(pkgCache::PkgIterator, pkgCache&)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::ActionGroup::release()@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::ActionGroup::ActionGroup(pkgDepCache&)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::ActionGroup::~ActionGroup()@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::IsInstallOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::MarkInstall(pkgCache::PkgIterator const&, bool, unsigned long, bool, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::SetReInstall(pkgCache::PkgIterator const&, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::BuildGroupOrs(pkgCache::VerIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::readStateFile(OpProgress*)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::GetRootSetFunc()@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::writeStateFile(OpProgress*, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::MarkFollowsSuggests()@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::MarkFollowsRecommends()@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::Init(OpProgress*)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::Update(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::Update(OpProgress*)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::Update(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::MarkAuto(pkgCache::PkgIterator const&, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::MarkKeep(pkgCache::PkgIterator const&, bool, bool, unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::MarkRequired(pkgDepCache::InRootSetFunc&)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::Sweep()@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::pkgDepCache(pkgCache*, pkgDepCache::Policy*)@APTPKG_5.90" 0.8.0 - (c++)"pkgDepCache::~pkgDepCache()@APTPKG_5.90" 0.8.0 - (c++)"pkgSimulate::Remove(pkgCache::PkgIterator, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgSimulate::Install(pkgCache::PkgIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgSimulate::Configure(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgSimulate::pkgSimulate(pkgDepCache*)@APTPKG_5.90" 0.8.0 - (c++)"pkgSimulate::~pkgSimulate()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::FetchResult::TakeHashes(Hashes&)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::FetchResult::FetchResult()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::Configuration(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::Log(char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::Run(bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::Fail(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::Fail(bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::Status(char const*, ...)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::URIDone(pkgAcqMethod::FetchResult&, pkgAcqMethod::FetchResult*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::Redirect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::URIStart(pkgAcqMethod::FetchResult&)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::MediaFail(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::pkgAcqMethod(char const*, unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqMethod::~pkgAcqMethod()@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::BuildCaches(OpProgress*, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::BuildPolicy(OpProgress*)@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::BuildDepCache(OpProgress*)@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::BuildSourceList(OpProgress*)@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::Open(OpProgress*, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::Close()@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::pkgCacheFile()@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheFile::~pkgCacheFile()@APTPKG_5.90" 0.8.0 - (c++)"pkgIndexFile::Type::GlobalList@APTPKG_5.90" 0.8.0 - (c++)"pkgIndexFile::Type::GlobalListLen@APTPKG_5.90" 0.8.0 - (c++)"pkgIndexFile::Type::GetType(char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgIndexFile::Type::Type()@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::VisitRDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::OrderUnpack(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::DepConfigure(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::DepUnPackDep(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::DepUnPackPre(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::DepUnPackCrit(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::DepUnPackPreD(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::OrderCritical()@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::VisitProvides(pkgCache::DepIterator, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::OrderConfigure()@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::VisitRProvides(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::VerIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::DoRun()@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::Score(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::AddLoop(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::FileCmp(pkgCache::PkgIterator, pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::CheckDep(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::DepRemove(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::IsMissing(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::VisitDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::WipeFlags(unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::pkgOrderList(pkgDepCache*)@APTPKG_5.90" 0.8.0 - (c++)"pkgOrderList::~pkgOrderList()@APTPKG_5.90" 0.8.0 - (c++)"Configuration::MatchAgainstConfig::MatchAgainstConfig(char const*)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::MatchAgainstConfig::~MatchAgainstConfig()@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Set(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Set(char const*, int const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Dump(std::basic_ostream<char, std::char_traits<char> >&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Clear(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Clear(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Clear(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::CndSet(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Lookup(char const*, bool const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Lookup(Configuration::Item*, char const*, unsigned long const&, bool const&)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Configuration(Configuration::Item const*)@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Configuration()@APTPKG_5.90" 0.8.0 - (c++)"Configuration::~Configuration()@APTPKG_5.90" 0.8.0 - (c++)"debListParser::ConvertRelation(char const*, unsigned int&)@APTPKG_5.90" 0.8.0 - (c++)"debListParser::GetPrio(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqArchive::Finished()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqArchive::QueueNext()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqArchive::pkgAcqArchive(pkgAcquire*, pkgSourceList*, pkgRecords*, pkgCache::VerIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcqArchive::~pkgAcqArchive()@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::Type::GlobalList@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::Type::GlobalListLen@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::Type::GetType(char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::ReadMainList()@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::Reset()@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::pkgSourceList()@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::~pkgSourceList()@APTPKG_5.90" 0.8.0 - (c++)"pkgSrcRecords::Find(char const*, bool const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgSrcRecords::Parser::BuildDepType(unsigned char const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgSrcRecords::Restart()@APTPKG_5.90" 0.8.0 - (c++)"pkgSrcRecords::pkgSrcRecords(pkgSourceList&)@APTPKG_5.90" 0.8.0 - (c++)"pkgSrcRecords::~pkgSrcRecords()@APTPKG_5.90" 0.8.0 - (c++)"pkgTagSection::TrimRecord(bool, char const*&)@APTPKG_5.90" 0.8.0 - (c++)"pkgTagSection::Trim()@APTPKG_5.90" 0.8.0 - (c++)"OpTextProgress::Done()@APTPKG_5.90" 0.8.0 - (c++)"OpTextProgress::Write(char const*)@APTPKG_5.90" 0.8.0 - (c++)"OpTextProgress::Update()@APTPKG_5.90" 0.8.0 - (c++)"OpTextProgress::OpTextProgress(Configuration&)@APTPKG_5.90" 0.8.0 - (c++)"pkgVersionMatch::ExpressionMatches(char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgVersionMatch::ExpressionMatches(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgVersionMatch::Find(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgVersionMatch::MatchVer(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgVersionMatch::pkgVersionMatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgVersionMatch::MatchType)@APTPKG_5.90" 0.8.0 - (c++)"TranslationsCopy::CopyTranslations(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquireStatus::Stop()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquireStatus::Pulse(pkgAcquire*)@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquireStatus::Start()@APTPKG_5.90" 0.8.0 - (c++)"pkgAcquireStatus::pkgAcquireStatus()@APTPKG_5.90" 0.8.0 - (c++)"pkgArchiveCleaner::Go(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgCache&)@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgCacheGenerator::MakeOnlyStatusCache(OpProgress*, DynamicMMap**)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::FixMissing()@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::GetArchives(pkgAcquire*, pkgSourceList*, pkgRecords*)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::SmartRemove(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::ConfigureAll()@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::ImmediateAdd(pkgCache::PkgIterator, bool, unsigned int const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::OrderInstall()@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::DepAlwaysTrue(pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::CheckRConflicts(pkgCache::PkgIterator, pkgCache::DepIterator, char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::CreateOrderList()@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::pkgPackageManager(pkgDepCache*)@APTPKG_5.90" 0.8.0 - (c++)"pkgPackageManager::~pkgPackageManager()@APTPKG_5.90" 0.8.0 - (c++)"pkgProblemResolver::pkgProblemResolver(pkgDepCache*)@APTPKG_5.90" 0.8.0 - (c++)"pkgProblemResolver::~pkgProblemResolver()@APTPKG_5.90" 0.8.0 - (c++)"debVersioningSystem::CmpFragment(char const*, char const*, char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"debVersioningSystem::DoCmpVersion(char const*, char const*, char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"debVersioningSystem::UpstreamVersion[abi:cxx11](char const*)@APTPKG_5.90" 0.8.0 - (c++)"debVersioningSystem::CheckDep(char const*, int, char const*)@APTPKG_5.90" 0.8.0 - (c++)"debVersioningSystem::debVersioningSystem()@APTPKG_5.90" 0.8.0 - (c++)"pkgUdevCdromDevices::Scan()@APTPKG_5.90" 0.8.0 - (c++)"pkgUdevCdromDevices::Dlopen()@APTPKG_5.90" 0.8.0 - (c++)"pkgUdevCdromDevices::pkgUdevCdromDevices()@APTPKG_5.90" 0.8.0 - (c++)"pkgUdevCdromDevices::~pkgUdevCdromDevices()@APTPKG_5.90" 0.8.0 - (c++)"pkgVersioningSystem::GlobalList@APTPKG_5.90" 0.8.0 - (c++)"pkgVersioningSystem::GlobalListLen@APTPKG_5.90" 0.8.0 - (c++)"pkgVersioningSystem::GetVS(char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgVersioningSystem::pkgVersioningSystem()@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheFilter::PackageNameMatchesRegEx::PackageNameMatchesRegEx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheFilter::PackageNameMatchesRegEx::~PackageNameMatchesRegEx()@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::GrpIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::Configuration::checkArchitecture(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindPkgName(pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindNewestVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"APT::CacheSetHelper::~CacheSetHelper()@APTPKG_5.90" 0.8.0 - (c++)"URI::NoUserPassword(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"URI::CopyFrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"URI::SiteOnly(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.0 - (c++)"URI::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >()@APTPKG_5.90" 0.8.0 - (c++)"MMap::Map(FileFd&)@APTPKG_5.90" 0.8.0 - (c++)"MMap::Sync(unsigned long, unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"MMap::Sync()@APTPKG_5.90" 0.8.0 - (c++)"MMap::Close(bool)@APTPKG_5.90" 0.8.0 - (c++)"MMap::MMap(FileFd&, unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"MMap::MMap(unsigned long)@APTPKG_5.90" 0.8.0 - (c++)"MMap::~MMap()@APTPKG_5.90" 0.8.0 - (c++)"FileFd::Size()@APTPKG_5.90" 0.8.0 - (c++)"FileFd::Sync()@APTPKG_5.90" 0.8.0 - (c++)"FileFd::Tell()@APTPKG_5.90" 0.8.0 - (c++)"FileFd::Close()@APTPKG_5.90" 0.8.0 - (c++)"FileFd::~FileFd()@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::CompTypeDeb(unsigned char)@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::DepIterator::GlobOr(pkgCache::DepIterator&, pkgCache::DepIterator&)@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::DepIterator::operator++()@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::GrpIterator::operator++()@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::PkgIterator::operator++()@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::PkgFileIterator::RelStr[abi:cxx11]()@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::ReMap(bool const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::Header::Header()@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::DepType(unsigned char)@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::FindGrp(APT::StringView)@APTPKG_5.90" 1.9~ - (c++)"pkgCache::FindPkg(APT::StringView)@APTPKG_5.90" 1.9~ - (c++)"pkgCache::FindPkg(APT::StringView, APT::StringView)@APTPKG_5.90" 1.9~ - (c++)"pkgCache::CompType(unsigned char)@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::Priority(unsigned char)@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::pkgCache(MMap*, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::~pkgCache()@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::DropRepeats(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::FindPackages(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*, unsigned int)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::WriteDatabase(Configuration&)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::DropBinaryArch(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::WriteSourceList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::ReduceSourcelist(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::Add(pkgCdromStatus*)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::Ident(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*)@APTPKG_5.90" 0.8.0 - (c++)"pkgCdrom::Score(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"IndexCopy::CopyPackages(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@APTPKG_5.90" 0.8.0 - (c++)"IndexCopy::ReconstructChop(unsigned long&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"IndexCopy::ReconstructPrefix(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"IndexCopy::ConvertToSourceList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_5.90" 0.8.0 - (c++)"IndexCopy::ChopDirs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)@APTPKG_5.90" 0.8.0 - (c++)"IndexCopy::GrabFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@APTPKG_5.90" 0.8.0 - (c++)"SigVerify::CopyAndVerify(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)@APTPKG_5.90" 0.8.0 - (c++)"debSystem::Initialize(Configuration&)@APTPKG_5.90" 0.8.0 - (c++)"debSystem::AddStatusFiles(std::vector<pkgIndexFile*, std::allocator<pkgIndexFile*> >&)@APTPKG_5.90" 0.8.0 - (c++)"debSystem::ArchiveSupported(char const*)@APTPKG_5.90" 0.8.0 - (c++)"debSystem::Lock()@APTPKG_5.90" 0.8.0 - (c++)"debSystem::Score(Configuration const&)@APTPKG_5.90" 0.8.0 - (c++)"debSystem::UnLock(bool)@APTPKG_5.90" 0.8.0 - (c++)"debSystem::debSystem()@APTPKG_5.90" 0.8.0 - (c++)"debSystem::~debSystem()@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::DoTerminalPty(int)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::WriteHistoryTag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::WriteApportReport(char const*, char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::RunScriptsWithPkgs(char const*)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::Reset()@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::Remove(pkgCache::PkgIterator, bool)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::DoStdin(int)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::Install(pkgCache::PkgIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::OpenLog()@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::CloseLog()@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::Configure(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::pkgDPkgPM(pkgDepCache*)@APTPKG_5.90" 0.8.0 - (c++)"pkgDPkgPM::~pkgDPkgPM()@APTPKG_5.90" 0.8.0 - (c++)"pkgPolicy::GetPriority(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgPolicy::InitDefaults()@APTPKG_5.90" 0.8.0 - (c++)"pkgPolicy::GetCandidateVer(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgPolicy::GetMatch(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.0 - (c++)"pkgPolicy::CreatePin(pkgVersionMatch::MatchType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, short)@APTPKG_5.90" 0.8.0 - (c++)"pkgPolicy::pkgPolicy(pkgCache*)@APTPKG_5.90" 0.8.0 - (c++)"pkgPolicy::~pkgPolicy()@APTPKG_5.90" 0.8.0 - (c++)"pkgSystem::GlobalList@APTPKG_5.90" 0.8.0 - (c++)"pkgSystem::GlobalListLen@APTPKG_5.90" 0.8.0 - (c++)"pkgSystem::GetSystem(char const*)@APTPKG_5.90" 0.8.0 - (c++)"HashString::VerifyFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_5.90" 0.8.0 - (c++)"HashString::empty() const@APTPKG_5.90" 0.8.0 - (c++)"HashString::toStr[abi:cxx11]() const@APTPKG_5.90" 0.8.0 - (c++)"CommandLine::FileSize() const@APTPKG_5.90" 0.8.0 - (c++)"GlobalError::empty(GlobalError::MsgType const&) const@APTPKG_5.90" 0.8.0 - (c++)"pkgIndexFile::FindInCache(pkgCache&) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::MatchAgainstConfig::Match(char const*) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Find[abi:cxx11](char const*, char const*) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Item::FullTag[abi:cxx11](Configuration::Item const*) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::FindB(char const*, bool const&) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::FindI(char const*, int const&) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::Exists(char const*) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::FindAny[abi:cxx11](char const*, char const*) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::FindDir[abi:cxx11](char const*, char const*) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::FindFile[abi:cxx11](char const*, char const*) const@APTPKG_5.90" 0.8.0 - (c++)"Configuration::ExistsAny(char const*) const@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::GetIndexes(pkgAcquire*, bool) const@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::Type::FixupURI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) const@APTPKG_5.90" 0.8.0 - (c++)"pkgSourceList::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@APTPKG_5.90" 0.8.0 - (c++)"pkgTagSection::Find(APT::StringView, char const*&, char const*&) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::Find(APT::StringView, unsigned int&) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::FindI(APT::StringView, long) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::Find(APT::StringView) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::FindULL(APT::StringView, unsigned long long const&) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::FindFlag(APT::StringView, unsigned long&, unsigned long) const@APTPKG_5.90" 1.9~ - (c++)"pkgCache::DepIterator::AllTargets() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::DepIterator::IsCritical() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::DepIterator::SmartTargetPkg(pkgCache::PkgIterator&) const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::GrpIterator::FindPreferredPkg(bool const&) const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::GrpIterator::FindPkg(APT::StringView) const@APTPKG_5.90" 1.9~ - (c++)"pkgCache::GrpIterator::NextPkg(pkgCache::PkgIterator const&) const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::PkgIterator::CurVersion() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::PkgIterator::State() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::VerIterator::CompareVer(pkgCache::VerIterator const&) const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::VerIterator::NewestFile() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::VerIterator::Downloadable() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::VerIterator::TranslatedDescription() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::VerIterator::RelStr[abi:cxx11]() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::VerIterator::Automatic() const@APTPKG_5.90" 0.8.0 - (c++)"pkgCache::sHash(APT::StringView) const@APTPKG_5.90" 1.9~ - (c++)"pkgCache::Header::CheckSizes(pkgCache::Header&) const@APTPKG_5.90" 0.8.0 - (c++)"debSystem::CreatePM(pkgDepCache*) const@APTPKG_5.90" 0.8.0 - (c++)"debSystem::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@APTPKG_5.90" 0.8.0 - (c++)"metaIndex::GetURI[abi:cxx11]() const@APTPKG_5.90" 0.8.0 - (c++)"metaIndex::GetDist[abi:cxx11]() const@APTPKG_5.90" 0.8.0 - (c++)"metaIndex::GetType() const@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for OpProgress@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for SourceCopy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgAcqFile@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgAcquire@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for DynamicMMap@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for PackageCopy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgDepCache@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgSimulate@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgAcqMethod@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgCacheFile@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgIndexFile@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for WeakPointable@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgAcqArchive@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgTagSection@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for OpTextProgress@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgAcquireStatus@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgPackageManager@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for debVersioningSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgUdevCdromDevices@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgVersioningSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for MMap@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for FileFd@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgCache@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for IndexCopy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for debSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for metaIndex@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgDPkgPM@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgPolicy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgAcquire::Item@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgRecords::Parser@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgDepCache::InRootSetFunc@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgDepCache::DefaultRootSetFunc@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgDepCache::Policy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgSimulate::Policy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgIndexFile::Type@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for Configuration::MatchAgainstConfig@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgSourceList::Type@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgSrcRecords::Parser@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for APT::CacheSetHelper@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgCache::Namespace@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for OpProgress@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for SourceCopy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgAcqFile@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgAcquire@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for DynamicMMap@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for PackageCopy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgDepCache@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgSimulate@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgAcqMethod@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgCacheFile@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgIndexFile@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for WeakPointable@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgAcqArchive@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgTagSection@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for OpTextProgress@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgAcquireStatus@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgPackageManager@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for debVersioningSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgUdevCdromDevices@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgVersioningSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for MMap@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for FileFd@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgCache@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for IndexCopy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for debSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for metaIndex@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgDPkgPM@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgPolicy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgSystem@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgAcquire::Item@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgRecords::Parser@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgDepCache::InRootSetFunc@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgDepCache::DefaultRootSetFunc@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgDepCache::Policy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgSimulate::Policy@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgIndexFile::Type@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for Configuration::MatchAgainstConfig@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgSourceList::Type@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgSrcRecords::Parser@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for APT::CacheSetHelper@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgCache::Namespace@APTPKG_5.90" 0.8.0 - (c++)"vtable for OpProgress@APTPKG_5.90" 0.8.0 - (c++)"vtable for SourceCopy@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgAcqFile@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgAcquire@APTPKG_5.90" 0.8.0 - (c++)"vtable for DynamicMMap@APTPKG_5.90" 0.8.0 - (c++)"vtable for PackageCopy@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgDepCache@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgSimulate@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgAcqMethod@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgCacheFile@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgIndexFile@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgAcqArchive@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgTagSection@APTPKG_5.90" 0.8.0 - (c++)"vtable for OpTextProgress@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgAcquireStatus@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgPackageManager@APTPKG_5.90" 0.8.0 - (c++)"vtable for debVersioningSystem@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgUdevCdromDevices@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgVersioningSystem@APTPKG_5.90" 0.8.0 - (c++)"vtable for MMap@APTPKG_5.90" 0.8.0 - (c++)"vtable for FileFd@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgCache@APTPKG_5.90" 0.8.0 - (c++)"vtable for IndexCopy@APTPKG_5.90" 0.8.0 - (c++)"vtable for debSystem@APTPKG_5.90" 0.8.0 - (c++)"vtable for metaIndex@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgDPkgPM@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgPolicy@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgSystem@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgAcquire::Item@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgRecords::Parser@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgDepCache::InRootSetFunc@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgDepCache::DefaultRootSetFunc@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgDepCache::Policy@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgSimulate::Policy@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgIndexFile::Type@APTPKG_5.90" 0.8.0 - (c++)"vtable for Configuration::MatchAgainstConfig@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgSourceList::Type@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgSrcRecords::Parser@APTPKG_5.90" 0.8.0 - (c++)"vtable for APT::CacheSetHelper@APTPKG_5.90" 0.8.0 - (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::DepIterator)@APTPKG_5.90" 0.8.0 - (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::PkgIterator)@APTPKG_5.90" 0.8.0 - _config@APTPKG_5.90 0.8.0 - _system@APTPKG_5.90 0.8.0 - debSys@APTPKG_5.90 0.8.0 - debVS@APTPKG_5.90 0.8.0 - pkgLibVersion@APTPKG_5.90 0.8.0 - pkgVersion@APTPKG_5.90 0.8.0 - (c++)"pkgAcquireStatus::~pkgAcquireStatus()@APTPKG_5.90" 0.8.0 - (c++)"IndexCopy::~IndexCopy()@APTPKG_5.90" 0.8.0 - (c++)"pkgArchiveCleaner::~pkgArchiveCleaner()@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgArchiveCleaner@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgArchiveCleaner@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgArchiveCleaner@APTPKG_5.90" 0.8.0 + TFRewritePackageOrder@APTPKG_6.0 0.8.0 + TFRewriteSourceOrder@APTPKG_6.0 0.8.0 + (c++)"FileExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"IdentCdrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@APTPKG_6.0" 0.8.0 + (c++)"ListUpdate(pkgAcquireStatus&, pkgSourceList&, int)@APTPKG_6.0" 0.8.0 + (c++)"MountCdrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"ParseCWord(char const*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_6.0" 0.8.0 + (c++)"ReadPinDir(pkgPolicy&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"RunScripts(char const*)@APTPKG_6.0" 0.8.0 + (c++)"SafeGetCWD[abi:cxx11]()@APTPKG_6.0" 0.8.0 + (c++)"QuoteString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@APTPKG_6.0" 0.8.0 + (c++)"ReadPinFile(pkgPolicy&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"RegexChoice(RxChoiceList*, char const**, char const**)@APTPKG_6.0" 0.8.0 + (c++)"SetNonBlock(int, bool)@APTPKG_6.0" 0.8.0 + (c++)"flExtension(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"Base64Encode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"ReadMessages(int, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_6.0" 0.8.0 + (c++)"SetCloseExec(int, bool)@APTPKG_6.0" 0.8.0 + (c++)"StringToBool(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@APTPKG_6.0" 0.8.0 + (c++)"UnmountCdrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"_GetErrorObj()@APTPKG_6.0" 0.8.0 + (c++)"Base256ToNum(char const*, unsigned long long&, unsigned int)@APTPKG_6.0" 1.0.5 + (c++)"pkgFixBroken(pkgDepCache&)@APTPKG_6.0" 0.8.0 + (c++)"DeQuoteString(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)@APTPKG_6.0" 0.8.0 + (c++)"DeQuoteString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"OutputInDepth[abi:cxx11](unsigned long, char const*)@APTPKG_6.0" 0.8.0 + (c++)"ReadConfigDir(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@APTPKG_6.0" 0.8.0 + (c++)"URItoFileName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"UTF8ToCodeset(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@APTPKG_6.0" 0.8.0 + (c++)"pkgInitConfig(Configuration&)@APTPKG_6.0" 0.8.0 + (c++)"pkgInitSystem(Configuration&, pkgSystem*&)@APTPKG_6.0" 0.8.0 + (c++)"safe_snprintf(char*, char*, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@APTPKG_6.0" 0.8.0 + (c++)"stringcasecmp(char const*, char const*, char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"tolower_ascii(int)@APTPKG_6.0" 0.8.0 + (c++)"ParseQuoteWord(char const*&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_6.0" 0.8.0 + (c++)"ReadConfigFile(Configuration&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@APTPKG_6.0" 0.8.0 + (c++)"TokSplitString(char, char*, char**, unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"pkgApplyStatus(pkgDepCache&)@APTPKG_6.0" 0.8.0 + (c++)"CheckDomainList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"CreateDirectory(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"DirectoryExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"VectorizeString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgPrioSortList(pkgCache&, pkgCache::Version**)@APTPKG_6.0" 0.8.0 + (c++)"pkgMinimizeUpgrade(pkgDepCache&)@APTPKG_6.0" 0.8.0 + (c++)"GetListOfFilesInDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool const&)@APTPKG_6.0" 0.8.0 + (c++)"GetListOfFilesInDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&)@APTPKG_6.0" 0.8.0 + (c++)"WaitFd(int, bool, unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"GetLock(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_6.0" 0.8.0 + (c++)"Hex2Num(APT::StringView, unsigned char*, unsigned int)@APTPKG_6.0" 1.9~ + (c++)"CopyFile(FileFd&, FileFd&)@APTPKG_6.0" 0.8.0 + (c++)"ExecFork()@APTPKG_6.0" 0.8.0 + (c++)"ExecWait(int, char const*, bool)@APTPKG_6.0" 0.8.0 + (c++)"StrToNum(char const*, unsigned long&, unsigned int, unsigned int)@APTPKG_6.0" 0.8.0 + (c++)"SubstVar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"SubstVar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, SubstVar const*)@APTPKG_6.0" 0.8.0 + (c++)"flNoLink(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"flNotDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"ioprintf(std::basic_ostream<char, std::char_traits<char> >&, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"IsMounted(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_6.0" 0.8.0 + (c++)"LookupTag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"SizeToStr[abi:cxx11](double)@APTPKG_6.0" 0.8.0 + (c++)"TimeToStr[abi:cxx11](unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"_strstrip(char*)@APTPKG_6.0" 0.8.0 + (c++)"flCombine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"flNotFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@APTPKG_6.0" 0.8.0 + (c++)"stringcmp(char const*, char const*, char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"strprintf(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"HashString::SupportedHashes()@APTPKG_6.0" 0.8.0 + (c++)"HashString::_SupportedHashes@APTPKG_6.0" 0.8.0 + (c++)"HashString::HashString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"HashString::HashString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"HashString::HashString()@APTPKG_6.0" 0.8.0 + (c++)"OpProgress::CheckChange(float)@APTPKG_6.0" 0.8.0 + (c++)"OpProgress::OpProgress()@APTPKG_6.0" 0.8.0 + (c++)"SourceCopy::~SourceCopy()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqFile::~pkgAcqFile()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::WorkerStep(pkgAcquire::Worker*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::FetchNeeded()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::TotalNeeded()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::MethodConfig::MethodConfig()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::PartialPresent()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Add(pkgAcquire::Item*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Add(pkgAcquire::Worker*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Run(int)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Bump()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Item::Finished()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Item::~Item()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Clean(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::Bump()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::Cycle()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::Dequeue(pkgAcquire::Item*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::Enqueue(pkgAcquire::ItemDesc&)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::Startup()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::FindItem(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::Worker*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::ItemDone(pkgAcquire::Queue::QItem*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::Shutdown(bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Queue::~Queue()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Remove(pkgAcquire::Item*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Remove(pkgAcquire::Worker*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::RunFds(fd_set*, fd_set*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::RunFdsSane(fd_set*, fd_set*)@APTPKG_6.0" 1.1.1 + (c++)"pkgAcquire::SetFds(int&, fd_set*, fd_set*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::UriEnd()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::OutFdReady()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::MediaChange(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::RunMessages()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::Capabilities(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::ReadMessages()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::MethodFailure()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::SendConfiguration()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::Pulse()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::Start()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::ItemDone()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::Construct()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::InFdReady()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::Worker(pkgAcquire::MethodConfig*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::Worker(pkgAcquire::Queue*, pkgAcquire::MethodConfig*, pkgAcquireStatus*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Worker::~Worker()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Dequeue(pkgAcquire::Item*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Enqueue(pkgAcquire::ItemDesc&)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::Shutdown()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::UriBegin()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::GetConfig(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::QueueName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig const*&)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::pkgAcquire(pkgAcquireStatus*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::pkgAcquire()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquire::~pkgAcquire()@APTPKG_6.0" 0.8.0 + (c++)"pkgRecords::Lookup(pkgCache::VerFileIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgRecords::Lookup(pkgCache::DescFileIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgRecords::pkgRecords(pkgCache&)@APTPKG_6.0" 0.8.0 + (c++)"pkgRecords::~pkgRecords()@APTPKG_6.0" 0.8.0 + (c++)"pkgTagFile::Step(pkgTagSection&)@APTPKG_6.0" 0.8.0 + (c++)"pkgTagFile::~pkgTagFile()@APTPKG_6.0" 0.8.0 + (c++)"CommandLine::DispatchArg(CommandLine::Dispatch*, bool)@APTPKG_6.0" 0.8.0 + (c++)"CommandLine::SaveInConfig(unsigned int const&, char const* const*)@APTPKG_6.0" 0.8.0 + (c++)"CommandLine::Parse(int, char const**)@APTPKG_6.0" 0.8.0 + (c++)"CommandLine::HandleOpt(int&, int, char const**, char const*&, CommandLine::Args*, bool)@APTPKG_6.0" 0.8.0 + (c++)"CommandLine::CommandLine(CommandLine::Args*, Configuration*)@APTPKG_6.0" 0.8.0 + (c++)"CommandLine::~CommandLine()@APTPKG_6.0" 0.8.0 + (c++)"DynamicMMap::WriteString(char const*, unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"DynamicMMap::Grow()@APTPKG_6.0" 0.8.0 + (c++)"DynamicMMap::Allocate(unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"DynamicMMap::DynamicMMap(FileFd&, unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@APTPKG_6.0" 0.8.0 + (c++)"DynamicMMap::DynamicMMap(unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@APTPKG_6.0" 0.8.0 + (c++)"DynamicMMap::~DynamicMMap()@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::DumpErrors(std::basic_ostream<char, std::char_traits<char> >&, GlobalError::MsgType const&, bool const&)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::PopMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::InsertErrno(GlobalError::MsgType const&, char const*, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::PushToStack()@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::RevertToStack()@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::MergeWithStack()@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Debug(char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Errno(char const*, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Error(char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Fatal(char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::DebugE(char const*, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::FatalE(char const*, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Insert(GlobalError::MsgType const&, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Notice(char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Discard()@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::NoticeE(char const*, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::Warning(char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::WarningE(char const*, char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::GlobalError()@APTPKG_6.0" 0.8.0 + (c++)"PackageCopy::~PackageCopy()@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::IsDeleteOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::MarkDelete(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::StateCache::Update(pkgCache::PkgIterator, pkgCache&)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::ActionGroup::release()@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::ActionGroup::ActionGroup(pkgDepCache&)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::ActionGroup::~ActionGroup()@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::IsInstallOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::MarkInstall(pkgCache::PkgIterator const&, bool, unsigned long, bool, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::SetReInstall(pkgCache::PkgIterator const&, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::BuildGroupOrs(pkgCache::VerIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::readStateFile(OpProgress*)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::GetRootSetFunc()@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::writeStateFile(OpProgress*, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::MarkFollowsSuggests()@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::MarkFollowsRecommends()@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::Init(OpProgress*)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::Update(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::Update(OpProgress*)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::Update(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::MarkAuto(pkgCache::PkgIterator const&, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::MarkKeep(pkgCache::PkgIterator const&, bool, bool, unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::MarkRequired(pkgDepCache::InRootSetFunc&)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::Sweep()@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::pkgDepCache(pkgCache*, pkgDepCache::Policy*)@APTPKG_6.0" 0.8.0 + (c++)"pkgDepCache::~pkgDepCache()@APTPKG_6.0" 0.8.0 + (c++)"pkgSimulate::Remove(pkgCache::PkgIterator, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgSimulate::Install(pkgCache::PkgIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgSimulate::Configure(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgSimulate::pkgSimulate(pkgDepCache*)@APTPKG_6.0" 0.8.0 + (c++)"pkgSimulate::~pkgSimulate()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::FetchResult::TakeHashes(Hashes&)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::FetchResult::FetchResult()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::Configuration(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::Log(char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::Run(bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::Fail(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::Fail(bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::Status(char const*, ...)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::URIDone(pkgAcqMethod::FetchResult&, pkgAcqMethod::FetchResult*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::Redirect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::URIStart(pkgAcqMethod::FetchResult&)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::MediaFail(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::pkgAcqMethod(char const*, unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqMethod::~pkgAcqMethod()@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::BuildCaches(OpProgress*, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::BuildPolicy(OpProgress*)@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::BuildDepCache(OpProgress*)@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::BuildSourceList(OpProgress*)@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::Open(OpProgress*, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::Close()@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::pkgCacheFile()@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheFile::~pkgCacheFile()@APTPKG_6.0" 0.8.0 + (c++)"pkgIndexFile::Type::GlobalList@APTPKG_6.0" 0.8.0 + (c++)"pkgIndexFile::Type::GlobalListLen@APTPKG_6.0" 0.8.0 + (c++)"pkgIndexFile::Type::GetType(char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgIndexFile::Type::Type()@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::VisitRDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::OrderUnpack(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::DepConfigure(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::DepUnPackDep(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::DepUnPackPre(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::DepUnPackCrit(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::DepUnPackPreD(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::OrderCritical()@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::VisitProvides(pkgCache::DepIterator, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::OrderConfigure()@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::VisitRProvides(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::VerIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::DoRun()@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::Score(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::AddLoop(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::FileCmp(pkgCache::PkgIterator, pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::CheckDep(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::DepRemove(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::IsMissing(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::VisitDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::WipeFlags(unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::pkgOrderList(pkgDepCache*)@APTPKG_6.0" 0.8.0 + (c++)"pkgOrderList::~pkgOrderList()@APTPKG_6.0" 0.8.0 + (c++)"Configuration::MatchAgainstConfig::MatchAgainstConfig(char const*)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::MatchAgainstConfig::~MatchAgainstConfig()@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Set(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Set(char const*, int const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Dump(std::basic_ostream<char, std::char_traits<char> >&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Clear(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Clear(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Clear(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::CndSet(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Lookup(char const*, bool const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Lookup(Configuration::Item*, char const*, unsigned long const&, bool const&)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Configuration(Configuration::Item const*)@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Configuration()@APTPKG_6.0" 0.8.0 + (c++)"Configuration::~Configuration()@APTPKG_6.0" 0.8.0 + (c++)"debListParser::ConvertRelation(char const*, unsigned int&)@APTPKG_6.0" 0.8.0 + (c++)"debListParser::GetPrio(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqArchive::Finished()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqArchive::QueueNext()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqArchive::pkgAcqArchive(pkgAcquire*, pkgSourceList*, pkgRecords*, pkgCache::VerIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcqArchive::~pkgAcqArchive()@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::Type::GlobalList@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::Type::GlobalListLen@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::Type::GetType(char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::ReadMainList()@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::Reset()@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::pkgSourceList()@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::~pkgSourceList()@APTPKG_6.0" 0.8.0 + (c++)"pkgSrcRecords::Find(char const*, bool const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgSrcRecords::Parser::BuildDepType(unsigned char const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgSrcRecords::Restart()@APTPKG_6.0" 0.8.0 + (c++)"pkgSrcRecords::pkgSrcRecords(pkgSourceList&)@APTPKG_6.0" 0.8.0 + (c++)"pkgSrcRecords::~pkgSrcRecords()@APTPKG_6.0" 0.8.0 + (c++)"pkgTagSection::TrimRecord(bool, char const*&)@APTPKG_6.0" 0.8.0 + (c++)"pkgTagSection::Trim()@APTPKG_6.0" 0.8.0 + (c++)"OpTextProgress::Done()@APTPKG_6.0" 0.8.0 + (c++)"OpTextProgress::Write(char const*)@APTPKG_6.0" 0.8.0 + (c++)"OpTextProgress::Update()@APTPKG_6.0" 0.8.0 + (c++)"OpTextProgress::OpTextProgress(Configuration&)@APTPKG_6.0" 0.8.0 + (c++)"pkgVersionMatch::ExpressionMatches(char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgVersionMatch::ExpressionMatches(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgVersionMatch::Find(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgVersionMatch::MatchVer(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgVersionMatch::pkgVersionMatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgVersionMatch::MatchType)@APTPKG_6.0" 0.8.0 + (c++)"TranslationsCopy::CopyTranslations(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquireStatus::Stop()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquireStatus::Pulse(pkgAcquire*)@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquireStatus::Start()@APTPKG_6.0" 0.8.0 + (c++)"pkgAcquireStatus::pkgAcquireStatus()@APTPKG_6.0" 0.8.0 + (c++)"pkgArchiveCleaner::Go(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgCache&)@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgCacheGenerator::MakeOnlyStatusCache(OpProgress*, DynamicMMap**)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::FixMissing()@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::GetArchives(pkgAcquire*, pkgSourceList*, pkgRecords*)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::SmartRemove(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::ConfigureAll()@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::ImmediateAdd(pkgCache::PkgIterator, bool, unsigned int const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::OrderInstall()@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::DepAlwaysTrue(pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::CheckRConflicts(pkgCache::PkgIterator, pkgCache::DepIterator, char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::CreateOrderList()@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::pkgPackageManager(pkgDepCache*)@APTPKG_6.0" 0.8.0 + (c++)"pkgPackageManager::~pkgPackageManager()@APTPKG_6.0" 0.8.0 + (c++)"pkgProblemResolver::pkgProblemResolver(pkgDepCache*)@APTPKG_6.0" 0.8.0 + (c++)"pkgProblemResolver::~pkgProblemResolver()@APTPKG_6.0" 0.8.0 + (c++)"debVersioningSystem::CmpFragment(char const*, char const*, char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"debVersioningSystem::DoCmpVersion(char const*, char const*, char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"debVersioningSystem::UpstreamVersion[abi:cxx11](char const*)@APTPKG_6.0" 0.8.0 + (c++)"debVersioningSystem::CheckDep(char const*, int, char const*)@APTPKG_6.0" 0.8.0 + (c++)"debVersioningSystem::debVersioningSystem()@APTPKG_6.0" 0.8.0 + (c++)"pkgUdevCdromDevices::Scan()@APTPKG_6.0" 0.8.0 + (c++)"pkgUdevCdromDevices::Dlopen()@APTPKG_6.0" 0.8.0 + (c++)"pkgUdevCdromDevices::pkgUdevCdromDevices()@APTPKG_6.0" 0.8.0 + (c++)"pkgUdevCdromDevices::~pkgUdevCdromDevices()@APTPKG_6.0" 0.8.0 + (c++)"pkgVersioningSystem::GlobalList@APTPKG_6.0" 0.8.0 + (c++)"pkgVersioningSystem::GlobalListLen@APTPKG_6.0" 0.8.0 + (c++)"pkgVersioningSystem::GetVS(char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgVersioningSystem::pkgVersioningSystem()@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::PackageNameMatchesRegEx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::~PackageNameMatchesRegEx()@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::GrpIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::Configuration::checkArchitecture(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindPkgName(pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindNewestVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"APT::CacheSetHelper::~CacheSetHelper()@APTPKG_6.0" 0.8.0 + (c++)"URI::NoUserPassword(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"URI::CopyFrom(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"URI::SiteOnly(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.0 + (c++)"URI::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >()@APTPKG_6.0" 0.8.0 + (c++)"MMap::Map(FileFd&)@APTPKG_6.0" 0.8.0 + (c++)"MMap::Sync(unsigned long, unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"MMap::Sync()@APTPKG_6.0" 0.8.0 + (c++)"MMap::Close(bool)@APTPKG_6.0" 0.8.0 + (c++)"MMap::MMap(FileFd&, unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"MMap::MMap(unsigned long)@APTPKG_6.0" 0.8.0 + (c++)"MMap::~MMap()@APTPKG_6.0" 0.8.0 + (c++)"FileFd::Size()@APTPKG_6.0" 0.8.0 + (c++)"FileFd::Sync()@APTPKG_6.0" 0.8.0 + (c++)"FileFd::Tell()@APTPKG_6.0" 0.8.0 + (c++)"FileFd::Close()@APTPKG_6.0" 0.8.0 + (c++)"FileFd::~FileFd()@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::CompTypeDeb(unsigned char)@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::DepIterator::GlobOr(pkgCache::DepIterator&, pkgCache::DepIterator&)@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::DepIterator::operator++()@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::GrpIterator::operator++()@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::PkgIterator::operator++()@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::PkgFileIterator::RelStr[abi:cxx11]()@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::ReMap(bool const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::Header::Header()@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::DepType(unsigned char)@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::FindGrp(APT::StringView)@APTPKG_6.0" 1.9~ + (c++)"pkgCache::FindPkg(APT::StringView)@APTPKG_6.0" 1.9~ + (c++)"pkgCache::FindPkg(APT::StringView, APT::StringView)@APTPKG_6.0" 1.9~ + (c++)"pkgCache::CompType(unsigned char)@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::Priority(unsigned char)@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::pkgCache(MMap*, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::~pkgCache()@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::DropRepeats(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::FindPackages(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*, unsigned int)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::WriteDatabase(Configuration&)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::DropBinaryArch(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::WriteSourceList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::ReduceSourcelist(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::Add(pkgCdromStatus*)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::Ident(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*)@APTPKG_6.0" 0.8.0 + (c++)"pkgCdrom::Score(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"IndexCopy::CopyPackages(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@APTPKG_6.0" 0.8.0 + (c++)"IndexCopy::ReconstructChop(unsigned long&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"IndexCopy::ReconstructPrefix(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"IndexCopy::ConvertToSourceList(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_6.0" 0.8.0 + (c++)"IndexCopy::ChopDirs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)@APTPKG_6.0" 0.8.0 + (c++)"IndexCopy::GrabFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@APTPKG_6.0" 0.8.0 + (c++)"SigVerify::CopyAndVerify(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)@APTPKG_6.0" 0.8.0 + (c++)"debSystem::Initialize(Configuration&)@APTPKG_6.0" 0.8.0 + (c++)"debSystem::AddStatusFiles(std::vector<pkgIndexFile*, std::allocator<pkgIndexFile*> >&)@APTPKG_6.0" 0.8.0 + (c++)"debSystem::ArchiveSupported(char const*)@APTPKG_6.0" 0.8.0 + (c++)"debSystem::Lock()@APTPKG_6.0" 0.8.0 + (c++)"debSystem::Score(Configuration const&)@APTPKG_6.0" 0.8.0 + (c++)"debSystem::UnLock(bool)@APTPKG_6.0" 0.8.0 + (c++)"debSystem::debSystem()@APTPKG_6.0" 0.8.0 + (c++)"debSystem::~debSystem()@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::DoTerminalPty(int)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::WriteHistoryTag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::WriteApportReport(char const*, char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::RunScriptsWithPkgs(char const*)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::Reset()@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::Remove(pkgCache::PkgIterator, bool)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::DoStdin(int)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::Install(pkgCache::PkgIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::OpenLog()@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::CloseLog()@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::Configure(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::pkgDPkgPM(pkgDepCache*)@APTPKG_6.0" 0.8.0 + (c++)"pkgDPkgPM::~pkgDPkgPM()@APTPKG_6.0" 0.8.0 + (c++)"pkgPolicy::GetPriority(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgPolicy::InitDefaults()@APTPKG_6.0" 0.8.0 + (c++)"pkgPolicy::GetCandidateVer(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgPolicy::GetMatch(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.0 + (c++)"pkgPolicy::CreatePin(pkgVersionMatch::MatchType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, short)@APTPKG_6.0" 0.8.0 + (c++)"pkgPolicy::pkgPolicy(pkgCache*)@APTPKG_6.0" 0.8.0 + (c++)"pkgPolicy::~pkgPolicy()@APTPKG_6.0" 0.8.0 + (c++)"pkgSystem::GlobalList@APTPKG_6.0" 0.8.0 + (c++)"pkgSystem::GlobalListLen@APTPKG_6.0" 0.8.0 + (c++)"pkgSystem::GetSystem(char const*)@APTPKG_6.0" 0.8.0 + (c++)"HashString::VerifyFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_6.0" 0.8.0 + (c++)"HashString::empty() const@APTPKG_6.0" 0.8.0 + (c++)"HashString::toStr[abi:cxx11]() const@APTPKG_6.0" 0.8.0 + (c++)"CommandLine::FileSize() const@APTPKG_6.0" 0.8.0 + (c++)"GlobalError::empty(GlobalError::MsgType const&) const@APTPKG_6.0" 0.8.0 + (c++)"pkgIndexFile::FindInCache(pkgCache&) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::MatchAgainstConfig::Match(char const*) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Find[abi:cxx11](char const*, char const*) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Item::FullTag[abi:cxx11](Configuration::Item const*) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::FindB(char const*, bool const&) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::FindI(char const*, int const&) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::Exists(char const*) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::FindAny[abi:cxx11](char const*, char const*) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::FindDir[abi:cxx11](char const*, char const*) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::FindFile[abi:cxx11](char const*, char const*) const@APTPKG_6.0" 0.8.0 + (c++)"Configuration::ExistsAny(char const*) const@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::GetIndexes(pkgAcquire*, bool) const@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::Type::FixupURI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) const@APTPKG_6.0" 0.8.0 + (c++)"pkgSourceList::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@APTPKG_6.0" 0.8.0 + (c++)"pkgTagSection::Find(APT::StringView, char const*&, char const*&) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::Find(APT::StringView, unsigned int&) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::FindI(APT::StringView, long) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::Find(APT::StringView) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::FindULL(APT::StringView, unsigned long long const&) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::FindFlag(APT::StringView, unsigned long&, unsigned long) const@APTPKG_6.0" 1.9~ + (c++)"pkgCache::DepIterator::AllTargets() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::DepIterator::IsCritical() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::DepIterator::SmartTargetPkg(pkgCache::PkgIterator&) const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::GrpIterator::FindPreferredPkg(bool const&) const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::GrpIterator::FindPkg(APT::StringView) const@APTPKG_6.0" 1.9~ + (c++)"pkgCache::GrpIterator::NextPkg(pkgCache::PkgIterator const&) const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::PkgIterator::CurVersion() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::PkgIterator::State() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::VerIterator::CompareVer(pkgCache::VerIterator const&) const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::VerIterator::NewestFile() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::VerIterator::Downloadable() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::VerIterator::TranslatedDescription() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::VerIterator::RelStr[abi:cxx11]() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::VerIterator::Automatic() const@APTPKG_6.0" 0.8.0 + (c++)"pkgCache::sHash(APT::StringView) const@APTPKG_6.0" 1.9~ + (c++)"pkgCache::Header::CheckSizes(pkgCache::Header&) const@APTPKG_6.0" 0.8.0 + (c++)"debSystem::CreatePM(pkgDepCache*) const@APTPKG_6.0" 0.8.0 + (c++)"debSystem::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@APTPKG_6.0" 0.8.0 + (c++)"metaIndex::GetURI[abi:cxx11]() const@APTPKG_6.0" 0.8.0 + (c++)"metaIndex::GetDist[abi:cxx11]() const@APTPKG_6.0" 0.8.0 + (c++)"metaIndex::GetType() const@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for OpProgress@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for SourceCopy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgAcqFile@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgAcquire@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for DynamicMMap@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for PackageCopy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgDepCache@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgSimulate@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgAcqMethod@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgCacheFile@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgIndexFile@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for WeakPointable@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgAcqArchive@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgTagSection@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for OpTextProgress@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgAcquireStatus@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgPackageManager@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for debVersioningSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgUdevCdromDevices@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgVersioningSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for MMap@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for FileFd@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgCache@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for IndexCopy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for debSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for metaIndex@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgDPkgPM@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgPolicy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgAcquire::Item@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgRecords::Parser@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgDepCache::InRootSetFunc@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgDepCache::DefaultRootSetFunc@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgDepCache::Policy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgSimulate::Policy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgIndexFile::Type@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for Configuration::MatchAgainstConfig@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgSourceList::Type@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgSrcRecords::Parser@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for APT::CacheSetHelper@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgCache::Namespace@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for OpProgress@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for SourceCopy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgAcqFile@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgAcquire@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for DynamicMMap@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for PackageCopy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgDepCache@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgSimulate@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgAcqMethod@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgCacheFile@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgIndexFile@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for WeakPointable@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgAcqArchive@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgTagSection@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for OpTextProgress@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgAcquireStatus@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgPackageManager@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for debVersioningSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgUdevCdromDevices@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgVersioningSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for MMap@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for FileFd@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgCache@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for IndexCopy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for debSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for metaIndex@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgDPkgPM@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgPolicy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgSystem@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgAcquire::Item@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgRecords::Parser@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgDepCache::InRootSetFunc@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgDepCache::DefaultRootSetFunc@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgDepCache::Policy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgSimulate::Policy@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgIndexFile::Type@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for Configuration::MatchAgainstConfig@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgSourceList::Type@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgSrcRecords::Parser@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for APT::CacheSetHelper@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgCache::Namespace@APTPKG_6.0" 0.8.0 + (c++)"vtable for OpProgress@APTPKG_6.0" 0.8.0 + (c++)"vtable for SourceCopy@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgAcqFile@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgAcquire@APTPKG_6.0" 0.8.0 + (c++)"vtable for DynamicMMap@APTPKG_6.0" 0.8.0 + (c++)"vtable for PackageCopy@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgDepCache@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgSimulate@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgAcqMethod@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgCacheFile@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgIndexFile@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgAcqArchive@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgTagSection@APTPKG_6.0" 0.8.0 + (c++)"vtable for OpTextProgress@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgAcquireStatus@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgPackageManager@APTPKG_6.0" 0.8.0 + (c++)"vtable for debVersioningSystem@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgUdevCdromDevices@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgVersioningSystem@APTPKG_6.0" 0.8.0 + (c++)"vtable for MMap@APTPKG_6.0" 0.8.0 + (c++)"vtable for FileFd@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgCache@APTPKG_6.0" 0.8.0 + (c++)"vtable for IndexCopy@APTPKG_6.0" 0.8.0 + (c++)"vtable for debSystem@APTPKG_6.0" 0.8.0 + (c++)"vtable for metaIndex@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgDPkgPM@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgPolicy@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgSystem@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgAcquire::Item@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgRecords::Parser@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgDepCache::InRootSetFunc@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgDepCache::DefaultRootSetFunc@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgDepCache::Policy@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgSimulate::Policy@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgIndexFile::Type@APTPKG_6.0" 0.8.0 + (c++)"vtable for Configuration::MatchAgainstConfig@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgSourceList::Type@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgSrcRecords::Parser@APTPKG_6.0" 0.8.0 + (c++)"vtable for APT::CacheSetHelper@APTPKG_6.0" 0.8.0 + (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::DepIterator)@APTPKG_6.0" 0.8.0 + (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::PkgIterator)@APTPKG_6.0" 0.8.0 + _config@APTPKG_6.0 0.8.0 + _system@APTPKG_6.0 0.8.0 + debSys@APTPKG_6.0 0.8.0 + debVS@APTPKG_6.0 0.8.0 + pkgLibVersion@APTPKG_6.0 0.8.0 + pkgVersion@APTPKG_6.0 0.8.0 + (c++)"pkgAcquireStatus::~pkgAcquireStatus()@APTPKG_6.0" 0.8.0 + (c++)"IndexCopy::~IndexCopy()@APTPKG_6.0" 0.8.0 + (c++)"pkgArchiveCleaner::~pkgArchiveCleaner()@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgArchiveCleaner@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgArchiveCleaner@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgArchiveCleaner@APTPKG_6.0" 0.8.0 ### architecture specific: va_list - (arch=armel armhf arm64|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, std::__va_list&) const@APTPKG_5.90" 0.8.15~exp1 - (arch=i386 hurd-i386 kfreebsd-i386 ppc64 ppc64el|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, char*&) const@APTPKG_5.90" 0.8.15~exp1 - (arch=hppa ia64 mips mipsel mips64el sparc sparc64|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, void*&) const@APTPKG_5.90" 0.8.15~exp1 - (arch=amd64 kfreebsd-amd64 powerpc powerpcspe s390 s390x x32|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag (&) [1]) const@APTPKG_5.90" 0.8.15~exp1 - (arch=sh4|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __builtin_va_list&) const@APTPKG_5.90" 0.8.15~exp1 - (arch=alpha|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag&) const@APTPKG_5.90" 0.8.15~exp1 + (arch=armel armhf arm64|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, std::__va_list&) const@APTPKG_6.0" 0.8.15~exp1 + (arch=i386 hurd-i386 kfreebsd-i386 ppc64 ppc64el|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, char*&) const@APTPKG_6.0" 0.8.15~exp1 + (arch=hppa ia64 mips mipsel mips64el sparc sparc64|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, void*&) const@APTPKG_6.0" 0.8.15~exp1 + (arch=amd64 kfreebsd-amd64 powerpc powerpcspe s390 s390x x32|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag (&) [1]) const@APTPKG_6.0" 0.8.15~exp1 + (arch=sh4|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __builtin_va_list&) const@APTPKG_6.0" 0.8.15~exp1 + (arch=alpha|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag&) const@APTPKG_6.0" 0.8.15~exp1 ### architecture specific: va_list & size_t - (arch=i386 hurd-i386 kfreebsd-i386|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=armel armhf|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=arm64|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&, unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=alpha|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag&, unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=powerpc powerpcspe x32|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=amd64 kfreebsd-amd64 s390 s390x|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=hppa mips mipsel sparc|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=ia64 sparc64 mips64el|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=sh4|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __builtin_va_list&, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=ppc64 ppc64el|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&, unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=i386 hurd-i386 kfreebsd-i386|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&, int, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=armel armhf|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&, int, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=arm64|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&, int, unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=alpha|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag&, int, unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=powerpc powerpcspe x32|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=amd64 kfreebsd-amd64 s390 s390x|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned long&)@APTPKG_5.90" 0.8.11.4 - (arch=hppa mips mipsel sparc|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=ia64 sparc64 mips64el|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned long&)@APTPKG_5.90" 0.8.11.4 1 - (arch=sh4|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __builtin_va_list&, int, unsigned int&)@APTPKG_5.90" 0.8.11.4 - (arch=ppc64 ppc64el|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&, int, unsigned long&)@APTPKG_5.90" 0.8.11.4 + (arch=i386 hurd-i386 kfreebsd-i386|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=armel armhf|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=arm64|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&, unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=alpha|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag&, unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=powerpc powerpcspe x32|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=amd64 kfreebsd-amd64 s390 s390x|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=hppa mips mipsel sparc|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=ia64 sparc64 mips64el|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=sh4|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __builtin_va_list&, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=ppc64 ppc64el|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&, unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=i386 hurd-i386 kfreebsd-i386|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&, int, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=armel armhf|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&, int, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=arm64|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&, int, unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=alpha|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag&, int, unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=powerpc powerpcspe x32|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=amd64 kfreebsd-amd64 s390 s390x|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned long&)@APTPKG_6.0" 0.8.11.4 + (arch=hppa mips mipsel sparc|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=ia64 sparc64 mips64el|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned long&)@APTPKG_6.0" 0.8.11.4 1 + (arch=sh4|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __builtin_va_list&, int, unsigned int&)@APTPKG_6.0" 0.8.11.4 + (arch=ppc64 ppc64el|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&, int, unsigned long&)@APTPKG_6.0" 0.8.11.4 ### architecture specific: size_t - (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mips mipsel powerpc powerpcspe sh4 sparc x32|c++)"_strtabexpand(char*, unsigned int)@APTPKG_5.90" 0.8.0 - (arch=alpha amd64 arm64 ia64 kfreebsd-amd64 mips64el s390 s390x sparc64 ppc64 ppc64el|c++)"_strtabexpand(char*, unsigned long)@APTPKG_5.90" 0.8.0 + (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mips mipsel powerpc powerpcspe sh4 sparc x32|c++)"_strtabexpand(char*, unsigned int)@APTPKG_6.0" 0.8.0 + (arch=alpha amd64 arm64 ia64 kfreebsd-amd64 mips64el s390 s390x sparc64 ppc64 ppc64el|c++)"_strtabexpand(char*, unsigned long)@APTPKG_6.0" 0.8.0 ### architecture specific: time_t - (arch=!x32|c++)"FTPMDTMStrToTime(char const*, long&)@APTPKG_5.90" 0.8.0 - (arch=x32|c++)"FTPMDTMStrToTime(char const*, long long&)@APTPKG_5.90" 0.8.0 - (arch=!x32|c++)"RFC1123StrToTime(char const*, long&)@APTPKG_5.90" 0.8.0 - (arch=x32|c++)"RFC1123StrToTime(char const*, long long&)@APTPKG_5.90" 0.8.0 - (arch=!x32|c++)"RFC1123StrToTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long&)@APTPKG_5.90" 1.9.0 - (arch=x32|c++)"RFC1123StrToTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long long&)@APTPKG_5.90" 1.9.0 + (arch=!x32|c++)"FTPMDTMStrToTime(char const*, long&)@APTPKG_6.0" 0.8.0 + (arch=x32|c++)"FTPMDTMStrToTime(char const*, long long&)@APTPKG_6.0" 0.8.0 + (arch=!x32|c++)"RFC1123StrToTime(char const*, long&)@APTPKG_6.0" 0.8.0 + (arch=x32|c++)"RFC1123StrToTime(char const*, long long&)@APTPKG_6.0" 0.8.0 + (arch=!x32|c++)"RFC1123StrToTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long&)@APTPKG_6.0" 1.9.0 + (arch=x32|c++)"RFC1123StrToTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long long&)@APTPKG_6.0" 1.9.0 ### architecture specific: mode_t - (arch=!kfreebsd-i386 !kfreebsd-amd64|c++)"ChangeOwnerAndPermissionOfFile(char const*, char const*, char const*, char const*, unsigned int)@APTPKG_5.90" 1.1~exp9 - (arch=kfreebsd-i386 kfreebsd-amd64|c++)"ChangeOwnerAndPermissionOfFile(char const*, char const*, char const*, char const*, unsigned short)@APTPKG_5.90" 1.1~exp9 + (arch=!kfreebsd-i386 !kfreebsd-amd64|c++)"ChangeOwnerAndPermissionOfFile(char const*, char const*, char const*, char const*, unsigned int)@APTPKG_6.0" 1.1~exp9 + (arch=kfreebsd-i386 kfreebsd-amd64|c++)"ChangeOwnerAndPermissionOfFile(char const*, char const*, char const*, char const*, unsigned short)@APTPKG_6.0" 1.1~exp9 ### - (c++)"CreateAPTDirectoryIfNeeded(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.2 - (c++)"FileFd::FileSize()@APTPKG_5.90" 0.8.8 - (c++)"Base256ToNum(char const*, unsigned long&, unsigned int)@APTPKG_5.90" 0.8.11 - (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::list<std::pair<pkgCache::VerIterator, pkgCache::VerIterator>, std::allocator<std::pair<pkgCache::VerIterator, pkgCache::VerIterator> > >&)@APTPKG_5.90" 0.8.11 - (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.11 - (c++)"RealFileExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.11 - (c++)"StripEpoch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.11 - (c++)"pkgTagSection::FindFlag(unsigned long&, unsigned long, char const*, char const*)@APTPKG_5.90" 0.8.11 - (c++)"FindMountPointForDevice[abi:cxx11](char const*)@APTPKG_5.90" 0.8.12 - (c++)"pkgUdevCdromDevices::ScanForRemovable(bool)@APTPKG_5.90" 0.8.12 - (c++)"APT::Configuration::Compressor::Compressor(char const*, char const*, char const*, char const*, char const*, unsigned short)@APTPKG_5.90" 0.8.12 - (c++)"APT::Configuration::getCompressors(bool)@APTPKG_5.90" 0.8.12 - (c++)"APT::Configuration::getCompressorExtensions[abi:cxx11]()@APTPKG_5.90" 0.8.12 - (c++)"pkgCache::DepIterator::IsNegative() const@APTPKG_5.90" 0.8.15~exp1 - (c++)"Configuration::CndSet(char const*, int)@APTPKG_5.90" 0.8.15.3 - (c++)"pkgProblemResolver::InstOrNewPolicyBroken(pkgCache::PkgIterator)@APTPKG_5.90" 0.8.15.3 - (c++)"DeEscapeString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.15.4 - (c++)"GetModificationTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.15.6 - (c++)"pkgSourceList::GetLastModifiedTime()@APTPKG_5.90" 0.8.15.6 - (c++)"pkgCacheFile::RemoveCaches()@APTPKG_5.90" 0.8.15.7 - (c++)"pkgOrderList::VisitNode(pkgCache::PkgIterator, char const*)@APTPKG_5.90" 0.8.15.7 + (c++)"CreateAPTDirectoryIfNeeded(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.2 + (c++)"FileFd::FileSize()@APTPKG_6.0" 0.8.8 + (c++)"Base256ToNum(char const*, unsigned long&, unsigned int)@APTPKG_6.0" 0.8.11 + (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::list<std::pair<pkgCache::VerIterator, pkgCache::VerIterator>, std::allocator<std::pair<pkgCache::VerIterator, pkgCache::VerIterator> > >&)@APTPKG_6.0" 0.8.11 + (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.11 + (c++)"RealFileExists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.11 + (c++)"StripEpoch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.11 + (c++)"pkgTagSection::FindFlag(unsigned long&, unsigned long, char const*, char const*)@APTPKG_6.0" 0.8.11 + (c++)"FindMountPointForDevice[abi:cxx11](char const*)@APTPKG_6.0" 0.8.12 + (c++)"pkgUdevCdromDevices::ScanForRemovable(bool)@APTPKG_6.0" 0.8.12 + (c++)"APT::Configuration::Compressor::Compressor(char const*, char const*, char const*, char const*, char const*, unsigned short)@APTPKG_6.0" 0.8.12 + (c++)"APT::Configuration::getCompressors(bool)@APTPKG_6.0" 0.8.12 + (c++)"APT::Configuration::getCompressorExtensions[abi:cxx11]()@APTPKG_6.0" 0.8.12 + (c++)"pkgCache::DepIterator::IsNegative() const@APTPKG_6.0" 0.8.15~exp1 + (c++)"Configuration::CndSet(char const*, int)@APTPKG_6.0" 0.8.15.3 + (c++)"pkgProblemResolver::InstOrNewPolicyBroken(pkgCache::PkgIterator)@APTPKG_6.0" 0.8.15.3 + (c++)"DeEscapeString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.15.4 + (c++)"GetModificationTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.15.6 + (c++)"pkgSourceList::GetLastModifiedTime()@APTPKG_6.0" 0.8.15.6 + (c++)"pkgCacheFile::RemoveCaches()@APTPKG_6.0" 0.8.15.7 + (c++)"pkgOrderList::VisitNode(pkgCache::PkgIterator, char const*)@APTPKG_6.0" 0.8.15.7 ### external dependency resolver ### - (c++)"EDSP::ApplyRequest(std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, pkgDepCache&)@APTPKG_5.90" 0.8.16~exp2 - (c++)"EDSP::ReadResponse(int, pkgDepCache&, OpProgress*)@APTPKG_5.90" 0.8.16~exp2 - (c++)"pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const&)@APTPKG_5.90" 0.8.16~exp6 + (c++)"EDSP::ApplyRequest(std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, pkgDepCache&)@APTPKG_6.0" 0.8.16~exp2 + (c++)"EDSP::ReadResponse(int, pkgDepCache&, OpProgress*)@APTPKG_6.0" 0.8.16~exp2 + (c++)"pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const&)@APTPKG_6.0" 0.8.16~exp6 ### generalisation of checksums (with lfs) -- mostly api-compatible available (without sha512 in previous versions) - (c++)"AddCRC16(unsigned short, void const*, unsigned long long)@APTPKG_5.90" 0.8.16~exp2 - (c++)"MD5Summation::Add(unsigned char const*, unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"MD5Summation::Result()@APTPKG_5.90" 0.8.16~exp2 - (c++)"MD5Summation::MD5Summation()@APTPKG_5.90" 0.8.16~exp2 - (c++)"SHA1Summation::SHA1Summation()@APTPKG_5.90" 0.8.16~exp2 - (c++)"SHA1Summation::Add(unsigned char const*, unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"SHA1Summation::Result()@APTPKG_5.90" 0.8.16~exp2 - (c++)"SummationImplementation::AddFD(int, unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for MD5Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for SHA1Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for SHA256Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for SHA512Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for SHA2SummationBase@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for SummationImplementation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for MD5Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for SHA1Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for SHA256Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for SHA512Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for SHA2SummationBase@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for SummationImplementation@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for MD5Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for SHA1Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for SHA256Summation@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for SHA512Summation@APTPKG_5.90" 0.8.16~exp6 + (c++)"MD5Summation::Add(unsigned char const*, unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"MD5Summation::Result()@APTPKG_6.0" 0.8.16~exp2 + (c++)"MD5Summation::MD5Summation()@APTPKG_6.0" 0.8.16~exp2 + (c++)"SHA1Summation::SHA1Summation()@APTPKG_6.0" 0.8.16~exp2 + (c++)"SHA1Summation::Add(unsigned char const*, unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"SHA1Summation::Result()@APTPKG_6.0" 0.8.16~exp2 + (c++)"SummationImplementation::AddFD(int, unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for MD5Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for SHA1Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for SHA256Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for SHA512Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for SHA2SummationBase@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for SummationImplementation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for MD5Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for SHA1Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for SHA256Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for SHA512Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for SHA2SummationBase@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for SummationImplementation@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for MD5Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for SHA1Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for SHA256Summation@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for SHA512Summation@APTPKG_6.0" 0.8.16~exp6 ### large file support - available in older api-compatible versions without lfs ### - (c++)"StrToNum(char const*, unsigned long long&, unsigned int, unsigned int)@APTPKG_5.90" 0.8.16~exp6 - (c++)"OpProgress::SubProgress(unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, float)@APTPKG_5.90" 0.8.16~exp6 - (c++)"OpProgress::OverallProgress(unsigned long long, unsigned long long, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.16~exp6 - (c++)"OpProgress::Progress(unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"SourceCopy::GetFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long long&)@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgAcquire::UriIterator::~UriIterator()@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgAcquire::MethodConfig::~MethodConfig()@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgTagFile::Jump(pkgTagSection&, unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgTagFile::Offset()@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgTagFile::pkgTagFile(FileFd*, unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"DynamicMMap::RawAllocate(unsigned long long, unsigned long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"PackageCopy::GetFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long long&)@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgTagSection::~pkgTagSection()@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgAcquireStatus::Fetched(unsigned long long, unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"FileFd::Read(void*, unsigned long long, unsigned long long*)@APTPKG_5.90" 0.8.16~exp6 - (c++)"FileFd::Seek(unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"FileFd::Skip(unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"FileFd::Write(void const*, unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"FileFd::Truncate(unsigned long long)@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgPolicy::GetPriority(pkgCache::PkgFileIterator const&)@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for pkgTagFile@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for pkgSrcRecords@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for pkgAcquire::UriIterator@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for pkgAcquire::MethodConfig@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for pkgAcquire::Queue@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo for pkgAcquire::Worker@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for pkgTagFile@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for pkgSrcRecords@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for pkgAcquire::UriIterator@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for pkgAcquire::MethodConfig@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for pkgAcquire::Queue@APTPKG_5.90" 0.8.16~exp6 - (c++)"typeinfo name for pkgAcquire::Worker@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for pkgTagFile@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for pkgSrcRecords@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for pkgAcquire::UriIterator@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for pkgAcquire::MethodConfig@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for pkgAcquire::Queue@APTPKG_5.90" 0.8.16~exp6 - (c++)"vtable for pkgAcquire::Worker@APTPKG_5.90" 0.8.16~exp6 + (c++)"StrToNum(char const*, unsigned long long&, unsigned int, unsigned int)@APTPKG_6.0" 0.8.16~exp6 + (c++)"OpProgress::SubProgress(unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, float)@APTPKG_6.0" 0.8.16~exp6 + (c++)"OpProgress::OverallProgress(unsigned long long, unsigned long long, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.16~exp6 + (c++)"OpProgress::Progress(unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"SourceCopy::GetFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long long&)@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgAcquire::UriIterator::~UriIterator()@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgAcquire::MethodConfig::~MethodConfig()@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgTagFile::Jump(pkgTagSection&, unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgTagFile::Offset()@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgTagFile::pkgTagFile(FileFd*, unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"DynamicMMap::RawAllocate(unsigned long long, unsigned long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"PackageCopy::GetFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long long&)@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgTagSection::~pkgTagSection()@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgAcquireStatus::Fetched(unsigned long long, unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"FileFd::Read(void*, unsigned long long, unsigned long long*)@APTPKG_6.0" 0.8.16~exp6 + (c++)"FileFd::Seek(unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"FileFd::Skip(unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"FileFd::Write(void const*, unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"FileFd::Truncate(unsigned long long)@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgPolicy::GetPriority(pkgCache::PkgFileIterator const&)@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for pkgTagFile@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for pkgSrcRecords@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for pkgAcquire::UriIterator@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for pkgAcquire::MethodConfig@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for pkgAcquire::Queue@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo for pkgAcquire::Worker@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for pkgTagFile@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for pkgSrcRecords@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for pkgAcquire::UriIterator@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for pkgAcquire::MethodConfig@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for pkgAcquire::Queue@APTPKG_6.0" 0.8.16~exp6 + (c++)"typeinfo name for pkgAcquire::Worker@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for pkgTagFile@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for pkgSrcRecords@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for pkgAcquire::UriIterator@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for pkgAcquire::MethodConfig@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for pkgAcquire::Queue@APTPKG_6.0" 0.8.16~exp6 + (c++)"vtable for pkgAcquire::Worker@APTPKG_6.0" 0.8.16~exp6 ### remove deprecated parameter - (c++)"pkgDepCache::SetCandidateVersion(pkgCache::VerIterator)@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, bool)@APTPKG_5.90" 0.8.16~exp6 - (c++)"pkgDepCache::AddStates(pkgCache::PkgIterator const&, bool)@APTPKG_5.90" 0.8.16~exp6 + (c++)"pkgDepCache::SetCandidateVersion(pkgCache::VerIterator)@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, bool)@APTPKG_6.0" 0.8.16~exp6 + (c++)"pkgDepCache::AddStates(pkgCache::PkgIterator const&, bool)@APTPKG_6.0" 0.8.16~exp6 ### used internally by public interfaces - if you use them directly, you can keep the pieces - (c++|optional=internal|regex)"^SHA256_.*@APTPKG_5.90$" 0.8.16~exp2 - (c++|optional=internal|regex)"^SHA384_.*@APTPKG_5.90$" 0.8.16~exp2 - (c++|optional=internal|regex)"^SHA512_.*@APTPKG_5.90$" 0.8.16~exp2 + (c++|optional=internal|regex)"^SHA256_.*@APTPKG_6.0$" 0.8.16~exp2 + (c++|optional=internal|regex)"^SHA384_.*@APTPKG_6.0$" 0.8.16~exp2 + (c++|optional=internal|regex)"^SHA512_.*@APTPKG_6.0$" 0.8.16~exp2 ### orderlist rework: the touched methods are protected - (c++)"SigINT(int)@APTPKG_5.90" 0.8.16~exp14 - (c++)"pkgPackageManager::SigINTStop@APTPKG_5.90" 0.8.16~exp14 - (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int)@APTPKG_5.90" 0.8.16~exp14 - (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator, int)@APTPKG_5.90" 0.8.16~exp14 + (c++)"SigINT(int)@APTPKG_6.0" 0.8.16~exp14 + (c++)"pkgPackageManager::SigINTStop@APTPKG_6.0" 0.8.16~exp14 + (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int)@APTPKG_6.0" 0.8.16~exp14 + (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator, int)@APTPKG_6.0" 0.8.16~exp14 ### FileFd rework: supporting different on-the-fly (de)compressing needs more parameter (abi), but the api is stable - (c++)"FileFd::OpenDescriptor(int, unsigned int, FileFd::CompressMode, bool)@APTPKG_5.90" 0.8.16~exp9 - (c++)"FileFd::OpenDescriptor(int, unsigned int, APT::Configuration::Compressor const&, bool)@APTPKG_5.90" 0.8.16~exp9 - (c++)"FileFd::ModificationTime()@APTPKG_5.90" 0.8.16~exp9 - (c++)"FileFd::Open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, FileFd::CompressMode, unsigned long)@APTPKG_5.90" 0.8.16~exp9 - (c++)"FileFd::Open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, APT::Configuration::Compressor const&, unsigned long)@APTPKG_5.90" 0.8.16~exp9 - (c++)"FileFd::ReadLine(char*, unsigned long long)@APTPKG_5.90" 0.8.16~exp9 - (c++)"SummationImplementation::AddFD(FileFd&, unsigned long long)@APTPKG_5.90" 0.8.16~exp9 + (c++)"FileFd::OpenDescriptor(int, unsigned int, FileFd::CompressMode, bool)@APTPKG_6.0" 0.8.16~exp9 + (c++)"FileFd::OpenDescriptor(int, unsigned int, APT::Configuration::Compressor const&, bool)@APTPKG_6.0" 0.8.16~exp9 + (c++)"FileFd::ModificationTime()@APTPKG_6.0" 0.8.16~exp9 + (c++)"FileFd::Open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, FileFd::CompressMode, unsigned long)@APTPKG_6.0" 0.8.16~exp9 + (c++)"FileFd::Open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, APT::Configuration::Compressor const&, unsigned long)@APTPKG_6.0" 0.8.16~exp9 + (c++)"FileFd::ReadLine(char*, unsigned long long)@APTPKG_6.0" 0.8.16~exp9 + (c++)"SummationImplementation::AddFD(FileFd&, unsigned long long)@APTPKG_6.0" 0.8.16~exp9 ### CacheSet rework: making them real containers breaks bigtime the API (for the CacheSetHelper) - (c++)"APT::CacheSetHelper::canNotFindTask(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::canNotFindRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::canNotFindAllVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::canNotFindPackage(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::canNotFindCandInstVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::CacheSetHelper::canNotFindInstCandVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::VersionContainerInterface::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::VersionContainerInterface::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"APT::VersionContainerInterface::FromModifierCommandLine(unsigned short&, APT::VersionContainerInterface*, pkgCacheFile&, char const*, std::__cxx11::list<APT::VersionContainerInterface::Modifier, std::allocator<APT::VersionContainerInterface::Modifier> > const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo for APT::PackageContainerInterface@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo for APT::VersionContainerInterface@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo name for APT::PackageContainerInterface@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo name for APT::VersionContainerInterface@APTPKG_5.90" 0.8.16~exp9 - (c++)"vtable for APT::PackageContainerInterface@APTPKG_5.90" 0.8.16~exp9 - (c++)"vtable for APT::VersionContainerInterface@APTPKG_5.90" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindTask(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindAllVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindPackage(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindCandInstVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindInstCandVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::FromModifierCommandLine(unsigned short&, APT::VersionContainerInterface*, pkgCacheFile&, char const*, std::__cxx11::list<APT::VersionContainerInterface::Modifier, std::allocator<APT::VersionContainerInterface::Modifier> > const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainerInterface@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo for APT::VersionContainerInterface@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainerInterface@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo name for APT::VersionContainerInterface@APTPKG_6.0" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainerInterface@APTPKG_6.0" 0.8.16~exp9 + (c++)"vtable for APT::VersionContainerInterface@APTPKG_6.0" 0.8.16~exp9 ### rework of the packagemanager rework - (c++)"APT::Progress::PackageManagerFancy::HandleSIGWINCH(int)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerFancy::~PackageManagerFancy()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerFancy::PackageManagerFancy()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerFancy::SetupTerminalScrollArea(int)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerFancy::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerFancy::Stop()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManager::~PackageManager()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::ConffilePrompt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::Error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::~PackageManagerProgressDeb822Fd()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::PackageManagerProgressDeb822Fd(int)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::StartDpkg()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::Stop()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressDeb822Fd::WriteToStatusFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFactory()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::ConffilePrompt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::Error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::~PackageManagerProgressFd()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::PackageManagerProgressFd(int)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::StartDpkg()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::Stop()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerProgressFd::WriteToStatusFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManager::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerText::~PackageManagerText()@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerText::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::String::Strip(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.9.13~exp1 - (c++)"pkgDPkgPM::BuildPackagesProgressMap()@APTPKG_5.90" 0.9.13~exp1 - (c++)"pkgDPkgPM::DoDpkgStatusFd(int)@APTPKG_5.90" 0.9.13~exp1 - (c++)"pkgDPkgPM::ProcessDpkgStatusLine(char*)@APTPKG_5.90" 0.9.13~exp1 - (c++)"pkgDPkgPM::StartPtyMagic()@APTPKG_5.90" 0.9.13~exp1 - (c++)"pkgDPkgPM::StopPtyMagic()@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo for APT::Progress::PackageManager@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo for APT::Progress::PackageManagerFancy@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo for APT::Progress::PackageManagerProgressDeb822Fd@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo for APT::Progress::PackageManagerProgressFd@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo for APT::Progress::PackageManagerText@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo name for APT::Progress::PackageManager@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo name for APT::Progress::PackageManagerFancy@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo name for APT::Progress::PackageManagerProgressDeb822Fd@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo name for APT::Progress::PackageManagerProgressFd@APTPKG_5.90" 0.9.13~exp1 - (c++)"typeinfo name for APT::Progress::PackageManagerText@APTPKG_5.90" 0.9.13~exp1 - (c++)"vtable for APT::Progress::PackageManager@APTPKG_5.90" 0.9.13~exp1 - (c++)"vtable for APT::Progress::PackageManagerFancy@APTPKG_5.90" 0.9.13~exp1 - (c++)"vtable for APT::Progress::PackageManagerProgressDeb822Fd@APTPKG_5.90" 0.9.13~exp1 - (c++)"vtable for APT::Progress::PackageManagerProgressFd@APTPKG_5.90" 0.9.13~exp1 - (c++)"vtable for APT::Progress::PackageManagerText@APTPKG_5.90" 0.9.13~exp1 - (c++)"APT::Progress::PackageManagerFancy::instances@APTPKG_5.90" 0.9.14.2 - (c++)"APT::Progress::PackageManagerFancy::Start(int)@APTPKG_5.90" 0.9.14.2 + (c++)"APT::Progress::PackageManagerFancy::HandleSIGWINCH(int)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerFancy::~PackageManagerFancy()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerFancy::PackageManagerFancy()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerFancy::SetupTerminalScrollArea(int)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerFancy::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerFancy::Stop()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManager::~PackageManager()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::ConffilePrompt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::Error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::~PackageManagerProgressDeb822Fd()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::PackageManagerProgressDeb822Fd(int)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::StartDpkg()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::Stop()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressDeb822Fd::WriteToStatusFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFactory()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::ConffilePrompt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::Error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::~PackageManagerProgressFd()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::PackageManagerProgressFd(int)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::StartDpkg()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::Stop()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerProgressFd::WriteToStatusFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManager::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerText::~PackageManagerText()@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerText::StatusChanged(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::String::Strip(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.9.13~exp1 + (c++)"pkgDPkgPM::BuildPackagesProgressMap()@APTPKG_6.0" 0.9.13~exp1 + (c++)"pkgDPkgPM::DoDpkgStatusFd(int)@APTPKG_6.0" 0.9.13~exp1 + (c++)"pkgDPkgPM::ProcessDpkgStatusLine(char*)@APTPKG_6.0" 0.9.13~exp1 + (c++)"pkgDPkgPM::StartPtyMagic()@APTPKG_6.0" 0.9.13~exp1 + (c++)"pkgDPkgPM::StopPtyMagic()@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo for APT::Progress::PackageManager@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo for APT::Progress::PackageManagerFancy@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo for APT::Progress::PackageManagerProgressDeb822Fd@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo for APT::Progress::PackageManagerProgressFd@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo for APT::Progress::PackageManagerText@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo name for APT::Progress::PackageManager@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo name for APT::Progress::PackageManagerFancy@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo name for APT::Progress::PackageManagerProgressDeb822Fd@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo name for APT::Progress::PackageManagerProgressFd@APTPKG_6.0" 0.9.13~exp1 + (c++)"typeinfo name for APT::Progress::PackageManagerText@APTPKG_6.0" 0.9.13~exp1 + (c++)"vtable for APT::Progress::PackageManager@APTPKG_6.0" 0.9.13~exp1 + (c++)"vtable for APT::Progress::PackageManagerFancy@APTPKG_6.0" 0.9.13~exp1 + (c++)"vtable for APT::Progress::PackageManagerProgressDeb822Fd@APTPKG_6.0" 0.9.13~exp1 + (c++)"vtable for APT::Progress::PackageManagerProgressFd@APTPKG_6.0" 0.9.13~exp1 + (c++)"vtable for APT::Progress::PackageManagerText@APTPKG_6.0" 0.9.13~exp1 + (c++)"APT::Progress::PackageManagerFancy::instances@APTPKG_6.0" 0.9.14.2 + (c++)"APT::Progress::PackageManagerFancy::Start(int)@APTPKG_6.0" 0.9.14.2 ### install foo.deb support - (c++)"flAbsPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.1~exp1 - (c++)"metaIndex::~metaIndex()@APTPKG_5.90" 1.1~exp1 + (c++)"flAbsPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.1~exp1 + (c++)"metaIndex::~metaIndex()@APTPKG_6.0" 1.1~exp1 ### CacheFilter functors - (c++)"APT::CacheFilter::ANDMatcher::AND(APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::~ANDMatcher()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ANDMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::FalseMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::FalseMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::FalseMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::Matcher::~Matcher()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::NOTMatcher::NOTMatcher(APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::NOTMatcher::~NOTMatcher()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::NOTMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::NOTMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::NOTMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::OR(APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::~ORMatcher()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::ORMatcher::ORMatcher()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::PackageIsNewInstall::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::PackageIsNewInstall::~PackageIsNewInstall()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::PackageIsNewInstall::PackageIsNewInstall(pkgCacheFile*)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::PackageMatcher::~PackageMatcher()@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::PackageNameMatchesFnmatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::TrueMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::TrueMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheFilter::TrueMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::ANDMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::FalseMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::Matcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::NOTMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::ORMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::PackageArchitectureMatchesSpecification@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::PackageIsNewInstall@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::PackageMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::PackageNameMatchesFnmatch@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::PackageNameMatchesRegEx@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::CacheFilter::TrueMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::ANDMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::FalseMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::Matcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::NOTMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::ORMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::PackageArchitectureMatchesSpecification@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::PackageIsNewInstall@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::PackageMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::PackageNameMatchesFnmatch@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::PackageNameMatchesRegEx@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo name for APT::CacheFilter::TrueMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::ANDMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::FalseMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::Matcher@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::NOTMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::ORMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::PackageArchitectureMatchesSpecification@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::PackageIsNewInstall@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::PackageMatcher@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::PackageNameMatchesFnmatch@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::PackageNameMatchesRegEx@APTPKG_5.90" 1.1~exp4 - (c++)"vtable for APT::CacheFilter::TrueMatcher@APTPKG_5.90" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::AND(APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher(APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::ANDMatcher()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::~ANDMatcher()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ANDMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::FalseMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::FalseMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::FalseMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::Matcher::~Matcher()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::NOTMatcher::NOTMatcher(APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::NOTMatcher::~NOTMatcher()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::NOTMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::NOTMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::NOTMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::OR(APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*, APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::ORMatcher(APT::CacheFilter::Matcher*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::~ORMatcher()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::ORMatcher::ORMatcher()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::PackageIsNewInstall::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::PackageIsNewInstall::~PackageIsNewInstall()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::PackageIsNewInstall::PackageIsNewInstall(pkgCacheFile*)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::PackageMatcher::~PackageMatcher()@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::PackageNameMatchesFnmatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::TrueMatcher::operator()(pkgCache::GrpIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::TrueMatcher::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheFilter::TrueMatcher::operator()(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::ANDMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::FalseMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::Matcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::NOTMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::ORMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::PackageArchitectureMatchesSpecification@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::PackageIsNewInstall@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::PackageMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::PackageNameMatchesFnmatch@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::PackageNameMatchesRegEx@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::CacheFilter::TrueMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::ANDMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::FalseMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::Matcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::NOTMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::ORMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::PackageArchitectureMatchesSpecification@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::PackageIsNewInstall@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::PackageMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::PackageNameMatchesFnmatch@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::PackageNameMatchesRegEx@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo name for APT::CacheFilter::TrueMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::ANDMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::FalseMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::Matcher@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::NOTMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::ORMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::PackageArchitectureMatchesSpecification@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::PackageIsNewInstall@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::PackageMatcher@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::PackageNameMatchesFnmatch@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::PackageNameMatchesRegEx@APTPKG_6.0" 1.1~exp4 + (c++)"vtable for APT::CacheFilter::TrueMatcher@APTPKG_6.0" 1.1~exp4 ### cacheset redesign (API, but not ABI compatible) -# (c++|optional=inline)"APT::PackageContainerInterface::FromCommandLine(APT::PackageContainerInterface*, pkgCacheFile&, char const**, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++|optional=inline)"APT::PackageContainerInterface::FromModifierCommandLine(unsigned short&, APT::PackageContainerInterface*, pkgCacheFile&, char const*, std::__cxx11::list<APT::PackageContainerInterface::Modifier, std::allocator<APT::PackageContainerInterface::Modifier> > const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++|optional=inline)"APT::PackageContainerInterface::FromName(pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++|optional=inline)"APT::PackageContainerInterface::FromTask(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++|optional=inline)"APT::PackageContainerInterface::FromRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++|optional=inline)"APT::VersionContainerInterface::FromString(APT::VersionContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&, bool)@APTPKG_5.90" 0.8.16~exp9 -# (c++|optional=inline)"APT::VersionContainerInterface::FromPackage(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++|optional=inline)"APT::VersionContainerInterface::FromCommandLine(APT::VersionContainerInterface*, pkgCacheFile&, char const**, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++)"APT::PackageContainerInterface::FromString(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@APTPKG_5.90" 0.8.16~exp9 -# (c++)"APT::PackageContainerInterface::FromGroup(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_5.90" 0.9.7 -# (c++)"APT::PackageContainerInterface::FromFnmatch(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_5.90" 0.9.11 - (c++)"APT::CacheSetHelper::canNotFindFnmatch(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::canNotFindPackage(APT::CacheSetHelper::PkgSelector, APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::canNotFindVersion(APT::CacheSetHelper::VerSelector, APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::canNotGetCandInstVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::canNotGetInstCandVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::canNotGetVersion(APT::CacheSetHelper::VerSelector, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFrom(APT::CacheSetHelper::PkgSelector, APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFromCommandLine(APT::PackageContainerInterface*, pkgCacheFile&, char const**)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFromFnmatch(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFromModifierCommandLine(unsigned short&, APT::PackageContainerInterface*, pkgCacheFile&, char const*, std::__cxx11::list<APT::CacheSetHelper::PkgModifier, std::allocator<APT::CacheSetHelper::PkgModifier> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFromPackageName(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFromRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFromString(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::PackageFromTask(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::showFnmatchSelection(pkgCache::PkgIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::showPackageSelection(pkgCache::PkgIterator const&, APT::CacheSetHelper::PkgSelector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::CacheSetHelper::showVersionSelection(pkgCache::PkgIterator const&, pkgCache::VerIterator const&, APT::CacheSetHelper::VerSelector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::VersionContainerInterface::FromCommandLine(APT::VersionContainerInterface*, pkgCacheFile&, char const**, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::VersionContainerInterface::FromPackage(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&)@APTPKG_5.90" 1.1~exp4 - (c++)"APT::VersionContainerInterface::FromString(APT::VersionContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&, bool)@APTPKG_5.90" 1.1~exp4 - (c++)"typeinfo for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo for APT::PackageContainer<std::__cxx11::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo for APT::VersionContainer<std::__cxx11::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo name for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo name for APT::PackageContainer<std::__cxx11::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo name for APT::VersionContainer<std::__cxx11::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"vtable for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"vtable for APT::PackageContainer<std::__cxx11::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"vtable for APT::VersionContainer<std::__cxx11::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_5.90" 0.8.16~exp9 - (c++)"typeinfo for APT::VersionContainer<std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_5.90" 1.1~exp15 - (c++)"typeinfo name for APT::VersionContainer<std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_5.90" 1.1~exp15 - (c++)"vtable for APT::VersionContainer<std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_5.90" 1.1~exp15 +# (c++|optional=inline)"APT::PackageContainerInterface::FromCommandLine(APT::PackageContainerInterface*, pkgCacheFile&, char const**, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++|optional=inline)"APT::PackageContainerInterface::FromModifierCommandLine(unsigned short&, APT::PackageContainerInterface*, pkgCacheFile&, char const*, std::__cxx11::list<APT::PackageContainerInterface::Modifier, std::allocator<APT::PackageContainerInterface::Modifier> > const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++|optional=inline)"APT::PackageContainerInterface::FromName(pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++|optional=inline)"APT::PackageContainerInterface::FromTask(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++|optional=inline)"APT::PackageContainerInterface::FromRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++|optional=inline)"APT::VersionContainerInterface::FromString(APT::VersionContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&, bool)@APTPKG_6.0" 0.8.16~exp9 +# (c++|optional=inline)"APT::VersionContainerInterface::FromPackage(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++|optional=inline)"APT::VersionContainerInterface::FromCommandLine(APT::VersionContainerInterface*, pkgCacheFile&, char const**, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++)"APT::PackageContainerInterface::FromString(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@APTPKG_6.0" 0.8.16~exp9 +# (c++)"APT::PackageContainerInterface::FromGroup(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_6.0" 0.9.7 +# (c++)"APT::PackageContainerInterface::FromFnmatch(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@APTPKG_6.0" 0.9.11 + (c++)"APT::CacheSetHelper::canNotFindFnmatch(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::canNotFindPackage(APT::CacheSetHelper::PkgSelector, APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::canNotFindVersion(APT::CacheSetHelper::VerSelector, APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::canNotGetCandInstVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::canNotGetInstCandVer(pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::canNotGetVersion(APT::CacheSetHelper::VerSelector, pkgCacheFile&, pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFrom(APT::CacheSetHelper::PkgSelector, APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFromCommandLine(APT::PackageContainerInterface*, pkgCacheFile&, char const**)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFromFnmatch(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFromModifierCommandLine(unsigned short&, APT::PackageContainerInterface*, pkgCacheFile&, char const*, std::__cxx11::list<APT::CacheSetHelper::PkgModifier, std::allocator<APT::CacheSetHelper::PkgModifier> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFromPackageName(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFromRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFromString(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::PackageFromTask(APT::PackageContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::showFnmatchSelection(pkgCache::PkgIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::showPackageSelection(pkgCache::PkgIterator const&, APT::CacheSetHelper::PkgSelector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::CacheSetHelper::showVersionSelection(pkgCache::PkgIterator const&, pkgCache::VerIterator const&, APT::CacheSetHelper::VerSelector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::VersionContainerInterface::FromCommandLine(APT::VersionContainerInterface*, pkgCacheFile&, char const**, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::VersionContainerInterface::FromPackage(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&)@APTPKG_6.0" 1.1~exp4 + (c++)"APT::VersionContainerInterface::FromString(APT::VersionContainerInterface*, pkgCacheFile&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&, bool)@APTPKG_6.0" 1.1~exp4 + (c++)"typeinfo for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainer<std::__cxx11::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo for APT::VersionContainer<std::__cxx11::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainer<std::__cxx11::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo name for APT::VersionContainer<std::__cxx11::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainer<std::__cxx11::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"vtable for APT::VersionContainer<std::__cxx11::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_6.0" 0.8.16~exp9 + (c++)"typeinfo for APT::VersionContainer<std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_6.0" 1.1~exp15 + (c++)"typeinfo name for APT::VersionContainer<std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_6.0" 1.1~exp15 + (c++)"vtable for APT::VersionContainer<std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@APTPKG_6.0" 1.1~exp15 ### all the hashes are belong to us - (c++)"Hashes::GetHashStringList()@APTPKG_5.90" 1.1~exp1 - (c++)"Hashes::Hashes()@APTPKG_5.90" 1.1~exp1 - (c++)"Hashes::~Hashes()@APTPKG_5.90" 1.1~exp1 - (c++)"HashStringList::find(char const*) const@APTPKG_5.90" 1.1~exp1 - (c++)"HashStringList::operator==(HashStringList const&) const@APTPKG_5.90" 1.1~exp1 - (c++)"HashStringList::operator!=(HashStringList const&) const@APTPKG_5.90" 1.1~exp1 - (c++)"HashStringList::push_back(HashString const&)@APTPKG_5.90" 1.1~exp1 - (c++)"HashStringList::supported(char const*)@APTPKG_5.90" 1.1~exp1 - (c++)"HashStringList::usable() const@APTPKG_5.90" 1.1~exp1 - (c++)"HashStringList::VerifyFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_5.90" 1.1~exp1 - (c++)"HashString::operator==(HashString const&) const@APTPKG_5.90" 1.1~exp1 - (c++)"HashString::operator!=(HashString const&) const@APTPKG_5.90" 1.1~exp1 - (c++)"pkgAcqArchive::IsTrusted() const@APTPKG_5.90" 1.1~exp1 - (c++)"pkgAcqFile::Custom600Headers[abi:cxx11]() const@APTPKG_5.90" 1.1~exp1 - (c++)"pkgAcqMethod::DropPrivsOrDie()@APTPKG_5.90" 1.1~exp1 - (c++)"pkgAcquire::Item::Custom600Headers[abi:cxx11]() const@APTPKG_5.90" 1.1~exp1 - (c++)"pkgAcquire::Item::IsTrusted() const@APTPKG_5.90" 1.1~exp1 - (c++)"typeinfo for Hashes@APTPKG_5.90" 1.1~exp1 - (c++)"typeinfo name for Hashes@APTPKG_5.90" 1.1~exp1 - (c++)"vtable for Hashes@APTPKG_5.90" 1.1~exp1 + (c++)"Hashes::GetHashStringList()@APTPKG_6.0" 1.1~exp1 + (c++)"Hashes::Hashes()@APTPKG_6.0" 1.1~exp1 + (c++)"Hashes::~Hashes()@APTPKG_6.0" 1.1~exp1 + (c++)"HashStringList::find(char const*) const@APTPKG_6.0" 1.1~exp1 + (c++)"HashStringList::operator==(HashStringList const&) const@APTPKG_6.0" 1.1~exp1 + (c++)"HashStringList::operator!=(HashStringList const&) const@APTPKG_6.0" 1.1~exp1 + (c++)"HashStringList::push_back(HashString const&)@APTPKG_6.0" 1.1~exp1 + (c++)"HashStringList::supported(char const*)@APTPKG_6.0" 1.1~exp1 + (c++)"HashStringList::usable() const@APTPKG_6.0" 1.1~exp1 + (c++)"HashStringList::VerifyFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_6.0" 1.1~exp1 + (c++)"HashString::operator==(HashString const&) const@APTPKG_6.0" 1.1~exp1 + (c++)"HashString::operator!=(HashString const&) const@APTPKG_6.0" 1.1~exp1 + (c++)"pkgAcqArchive::IsTrusted() const@APTPKG_6.0" 1.1~exp1 + (c++)"pkgAcqFile::Custom600Headers[abi:cxx11]() const@APTPKG_6.0" 1.1~exp1 + (c++)"pkgAcqMethod::DropPrivsOrDie()@APTPKG_6.0" 1.1~exp1 + (c++)"pkgAcquire::Item::Custom600Headers[abi:cxx11]() const@APTPKG_6.0" 1.1~exp1 + (c++)"pkgAcquire::Item::IsTrusted() const@APTPKG_6.0" 1.1~exp1 + (c++)"typeinfo for Hashes@APTPKG_6.0" 1.1~exp1 + (c++)"typeinfo name for Hashes@APTPKG_6.0" 1.1~exp1 + (c++)"vtable for Hashes@APTPKG_6.0" 1.1~exp1 ### more transactional update - (c++)"pkgAcquire::GetLock(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"pkgAcquire::Item::Dequeue()@APTPKG_5.90" 1.1~exp4 - (c++)"pkgAcquire::Item::QueueURI(pkgAcquire::ItemDesc&)@APTPKG_5.90" 1.1~exp4 - (c++)"pkgAcquire::Item::SetActiveSubprocess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp4 - (c++)"pkgDepCache::MarkAndSweep()@APTPKG_5.90" 1.1~exp4 - (c++)"pkgDepCache::MarkAndSweep(pkgDepCache::InRootSetFunc&)@APTPKG_5.90" 1.1~exp4 + (c++)"pkgAcquire::GetLock(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"pkgAcquire::Item::Dequeue()@APTPKG_6.0" 1.1~exp4 + (c++)"pkgAcquire::Item::QueueURI(pkgAcquire::ItemDesc&)@APTPKG_6.0" 1.1~exp4 + (c++)"pkgAcquire::Item::SetActiveSubprocess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp4 + (c++)"pkgDepCache::MarkAndSweep()@APTPKG_6.0" 1.1~exp4 + (c++)"pkgDepCache::MarkAndSweep(pkgDepCache::InRootSetFunc&)@APTPKG_6.0" 1.1~exp4 ### mixed stuff - (c++)"GetListOfFilesInDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_5.90" 0.8.16~exp13 - (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PkgIterator const&) const@APTPKG_5.90" 0.8.16~exp10 - (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PrvIterator const&) const@APTPKG_5.90" 0.8.16~exp10 - (c++)"FileFd::Write(int, void const*, unsigned long long)@APTPKG_5.90" 0.8.16~exp14 - (c++)"_strrstrip(char*)@APTPKG_5.90" 0.9.7.9~exp2 - (c++)"SplitClearSignedFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, FileFd*)@APTPKG_5.90" 0.9.7.9~exp2 - (c++)"OpenMaybeClearSignedFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd&)@APTPKG_5.90" 0.9.7.9~exp2 - (c++)"Configuration::Dump(std::basic_ostream<char, std::char_traits<char> >&, char const*, char const*, bool)@APTPKG_5.90" 0.9.3 - (c++)"AcquireUpdate(pkgAcquire&, int, bool, bool)@APTPKG_5.90" 0.9.3 - (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::PackageArchitectureMatchesSpecification(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_5.90" 0.9.7 - (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::~PackageArchitectureMatchesSpecification()@APTPKG_5.90" 0.9.7 - (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.9.7 - (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::operator()(char const* const&)@APTPKG_5.90" 0.9.7 - (c++)"APT::Configuration::checkLanguage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_5.90" 0.9.7.5 - (c++)"pkgCdrom::DropTranslation(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_5.90" 0.9.7.5 - (c++)"pkgCache::DepIterator::IsSatisfied(pkgCache::PrvIterator const&) const@APTPKG_5.90" 0.9.8 - (c++)"pkgCache::DepIterator::IsSatisfied(pkgCache::VerIterator const&) const@APTPKG_5.90" 0.9.8 - (c++)"pkgDepCache::IsDeleteOkProtectInstallRequests(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_5.90" 0.9.9.1 - (c++)"pkgDepCache::IsInstallOkMultiArchSameVersionSynced(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_5.90" 0.9.9.1 - (c++)"pkgDPkgPM::SendPkgsInfo(_IO_FILE*, unsigned int const&)@APTPKG_5.90" 0.9.9.1 - (c++)"pkgCache::VerIterator::MultiArchType() const@APTPKG_5.90" 0.9.9.1 - (c++)"AutoDetectProxy(URI&)@APTPKG_5.90" 0.9.10 - (c++)"CommandLine::GetCommand(CommandLine::Dispatch const*, unsigned int, char const* const*)@APTPKG_5.90" 0.9.11 - (c++)"CommandLine::MakeArgs(char, char const*, char const*, unsigned long)@APTPKG_5.90" 0.9.11 - (c++)"Configuration::Clear()@APTPKG_5.90" 0.9.11 - (c++)"Glob(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@APTPKG_5.90" 0.9.11 - (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::operator()(pkgCache::GrpIterator const&)@APTPKG_5.90" 0.9.11 - (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::operator()(pkgCache::PkgIterator const&)@APTPKG_5.90" 0.9.11 - (c++)"pkgTagSection::pkgTagSection()@APTPKG_5.90" 0.9.11 - (c++)"strv_length(char const**)@APTPKG_5.90" 0.9.11 - (c++)"StringSplit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)@APTPKG_5.90" 0.9.11.3 - (c++)"pkgAcquire::Item::RenameOnError(pkgAcquire::Item::RenameOnErrorState)@APTPKG_5.90" 0.9.12 - (c++)"APT::String::Endswith(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 0.9.13.1 - (c++)"ExecFork(std::set<int, std::less<int>, std::allocator<int> >)@APTPKG_5.90" 0.9.13.1 - (c++)"MergeKeepFdsFromConfiguration(std::set<int, std::less<int>, std::allocator<int> >&)@APTPKG_5.90" 0.9.13.1 - (c++)"HashString::FromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.13.1 - (c++)"HashString::GetHashForFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_5.90" 0.9.13.1 - (c++)"GetTempDir[abi:cxx11]()@APTPKG_5.90" 0.9.14.2 - (c++)"APT::Configuration::getBuildProfiles[abi:cxx11]()@APTPKG_5.90" 0.9.16 - (c++)"APT::Configuration::getBuildProfilesString[abi:cxx11]()@APTPKG_5.90" 0.9.16 - (c++)"Rename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 0.9.16 - (c++)"pkgDepCache::IsInstallOkDependenciesSatisfiableByCandidates(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_5.90" 1.0 - (c++)"APT::Progress::PackageManagerFancy::GetTerminalSize()@APTPKG_5.90" 1.0 - (c++)"APT::Progress::PackageManagerFancy::GetTextProgressStr[abi:cxx11](float, int)@APTPKG_5.90" 1.0 - (c++)"EDSP::ExecuteSolver(char const*, int*, int*, bool)@APTPKG_5.90" 1.0.4 - (c++)"pkgPackageManager::EarlyRemove(pkgCache::PkgIterator, pkgCache::DepIterator const*)@APTPKG_5.90" 1.0.4 - (c++)"pkgSrcRecords::Step()@APTPKG_5.90" 1.0.4 - (c++)"pkgDPkgPM::SetupSlavePtyMagic()@APTPKG_5.90" 1.0.8 - (c++)"HashStringList::find(char const*) const@APTPKG_5.90" 1.0.9.4 - (c++)"HashStringList::operator==(HashStringList const&) const@APTPKG_5.90" 1.0.9.4 - (c++)"HashStringList::operator!=(HashStringList const&) const@APTPKG_5.90" 1.0.9.4 - (c++)"HashStringList::push_back(HashString const&)@APTPKG_5.90" 1.0.9.4 - (c++)"HashStringList::supported(char const*)@APTPKG_5.90" 1.0.9.4 - (c++)"HashStringList::VerifyFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_5.90" 1.0.9.4 - (c++)"HashString::operator==(HashString const&) const@APTPKG_5.90" 1.0.9.4 - (c++)"HashString::operator!=(HashString const&) const@APTPKG_5.90" 1.0.9.4 - (c++)"APT::Progress::PackageManager::PackageManager()@APTPKG_5.90" 1.1~exp1 - (c++)"pkgDPkgPM::Go(APT::Progress::PackageManager*)@APTPKG_5.90" 1.1~exp1 - (c++)"pkgPackageManager::DoInstall(APT::Progress::PackageManager*)@APTPKG_5.90" 1.1~exp1 - (c++)"pkgPackageManager::DoInstallPostFork(APT::Progress::PackageManager*)@APTPKG_5.90" 1.1~exp1 - (c++)"pkgTagFile::Init(FileFd*, unsigned long long)@APTPKG_5.90" 1.1~exp1 - (c++)"pkgTagSection::Count() const@APTPKG_5.90" 1.1~exp1 - (c++)"pkgTagSection::Exists(APT::StringView) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::FindB(APT::StringView, bool) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::Scan(char const*, unsigned long, bool)@APTPKG_5.90" 1.1~exp1 - (c++)"StartsWithGPGClearTextSignature(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp1 - (c++)"Popen(char const**, FileFd&, int&, FileFd::OpenMode, bool, bool)@APTPKG_5.90" 1.9.0~ - (c++)"APT::String::Startswith(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp2 - (c++)"APT::Upgrade::Upgrade(pkgDepCache&, int, OpProgress*)@APTPKG_5.90" 1.1~exp4 - (c++)"pkgProblemResolver::Resolve(bool, OpProgress*)@APTPKG_5.90" 1.1~exp4 - (c++)"pkgProblemResolver::ResolveByKeep(OpProgress*)@APTPKG_5.90" 1.1~exp4 - (c++)"DropPrivileges()@APTPKG_5.90" 1.1~exp4 - (c++)"FileFd::FileFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned long)@APTPKG_5.90" 1.1~exp4 - (c++)"metaIndex::metaIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgTagSection::Get(char const*&, char const*&, unsigned int) const@APTPKG_5.90" 1.1~exp9 + (c++)"GetListOfFilesInDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_6.0" 0.8.16~exp13 + (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PkgIterator const&) const@APTPKG_6.0" 0.8.16~exp10 + (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PrvIterator const&) const@APTPKG_6.0" 0.8.16~exp10 + (c++)"FileFd::Write(int, void const*, unsigned long long)@APTPKG_6.0" 0.8.16~exp14 + (c++)"_strrstrip(char*)@APTPKG_6.0" 0.9.7.9~exp2 + (c++)"SplitClearSignedFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, FileFd*)@APTPKG_6.0" 0.9.7.9~exp2 + (c++)"OpenMaybeClearSignedFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd&)@APTPKG_6.0" 0.9.7.9~exp2 + (c++)"Configuration::Dump(std::basic_ostream<char, std::char_traits<char> >&, char const*, char const*, bool)@APTPKG_6.0" 0.9.3 + (c++)"AcquireUpdate(pkgAcquire&, int, bool, bool)@APTPKG_6.0" 0.9.3 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::PackageArchitectureMatchesSpecification(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_6.0" 0.9.7 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::~PackageArchitectureMatchesSpecification()@APTPKG_6.0" 0.9.7 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.9.7 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::operator()(char const* const&)@APTPKG_6.0" 0.9.7 + (c++)"APT::Configuration::checkLanguage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@APTPKG_6.0" 0.9.7.5 + (c++)"pkgCdrom::DropTranslation(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@APTPKG_6.0" 0.9.7.5 + (c++)"pkgCache::DepIterator::IsSatisfied(pkgCache::PrvIterator const&) const@APTPKG_6.0" 0.9.8 + (c++)"pkgCache::DepIterator::IsSatisfied(pkgCache::VerIterator const&) const@APTPKG_6.0" 0.9.8 + (c++)"pkgDepCache::IsDeleteOkProtectInstallRequests(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_6.0" 0.9.9.1 + (c++)"pkgDepCache::IsInstallOkMultiArchSameVersionSynced(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_6.0" 0.9.9.1 + (c++)"pkgDPkgPM::SendPkgsInfo(_IO_FILE*, unsigned int const&)@APTPKG_6.0" 0.9.9.1 + (c++)"pkgCache::VerIterator::MultiArchType() const@APTPKG_6.0" 0.9.9.1 + (c++)"AutoDetectProxy(URI&)@APTPKG_6.0" 0.9.10 + (c++)"CommandLine::GetCommand(CommandLine::Dispatch const*, unsigned int, char const* const*)@APTPKG_6.0" 0.9.11 + (c++)"CommandLine::MakeArgs(char, char const*, char const*, unsigned long)@APTPKG_6.0" 0.9.11 + (c++)"Configuration::Clear()@APTPKG_6.0" 0.9.11 + (c++)"Glob(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@APTPKG_6.0" 0.9.11 + (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::operator()(pkgCache::GrpIterator const&)@APTPKG_6.0" 0.9.11 + (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::operator()(pkgCache::PkgIterator const&)@APTPKG_6.0" 0.9.11 + (c++)"pkgTagSection::pkgTagSection()@APTPKG_6.0" 0.9.11 + (c++)"strv_length(char const**)@APTPKG_6.0" 0.9.11 + (c++)"StringSplit(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)@APTPKG_6.0" 0.9.11.3 + (c++)"pkgAcquire::Item::RenameOnError(pkgAcquire::Item::RenameOnErrorState)@APTPKG_6.0" 0.9.12 + (c++)"APT::String::Endswith(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 0.9.13.1 + (c++)"ExecFork(std::set<int, std::less<int>, std::allocator<int> >)@APTPKG_6.0" 0.9.13.1 + (c++)"MergeKeepFdsFromConfiguration(std::set<int, std::less<int>, std::allocator<int> >&)@APTPKG_6.0" 0.9.13.1 + (c++)"HashString::FromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.13.1 + (c++)"HashString::GetHashForFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_6.0" 0.9.13.1 + (c++)"GetTempDir[abi:cxx11]()@APTPKG_6.0" 0.9.14.2 + (c++)"APT::Configuration::getBuildProfiles[abi:cxx11]()@APTPKG_6.0" 0.9.16 + (c++)"APT::Configuration::getBuildProfilesString[abi:cxx11]()@APTPKG_6.0" 0.9.16 + (c++)"Rename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 0.9.16 + (c++)"pkgDepCache::IsInstallOkDependenciesSatisfiableByCandidates(pkgCache::PkgIterator const&, bool, unsigned long, bool)@APTPKG_6.0" 1.0 + (c++)"APT::Progress::PackageManagerFancy::GetTerminalSize()@APTPKG_6.0" 1.0 + (c++)"APT::Progress::PackageManagerFancy::GetTextProgressStr[abi:cxx11](float, int)@APTPKG_6.0" 1.0 + (c++)"EDSP::ExecuteSolver(char const*, int*, int*, bool)@APTPKG_6.0" 1.0.4 + (c++)"pkgPackageManager::EarlyRemove(pkgCache::PkgIterator, pkgCache::DepIterator const*)@APTPKG_6.0" 1.0.4 + (c++)"pkgSrcRecords::Step()@APTPKG_6.0" 1.0.4 + (c++)"pkgDPkgPM::SetupSlavePtyMagic()@APTPKG_6.0" 1.0.8 + (c++)"HashStringList::find(char const*) const@APTPKG_6.0" 1.0.9.4 + (c++)"HashStringList::operator==(HashStringList const&) const@APTPKG_6.0" 1.0.9.4 + (c++)"HashStringList::operator!=(HashStringList const&) const@APTPKG_6.0" 1.0.9.4 + (c++)"HashStringList::push_back(HashString const&)@APTPKG_6.0" 1.0.9.4 + (c++)"HashStringList::supported(char const*)@APTPKG_6.0" 1.0.9.4 + (c++)"HashStringList::VerifyFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_6.0" 1.0.9.4 + (c++)"HashString::operator==(HashString const&) const@APTPKG_6.0" 1.0.9.4 + (c++)"HashString::operator!=(HashString const&) const@APTPKG_6.0" 1.0.9.4 + (c++)"APT::Progress::PackageManager::PackageManager()@APTPKG_6.0" 1.1~exp1 + (c++)"pkgDPkgPM::Go(APT::Progress::PackageManager*)@APTPKG_6.0" 1.1~exp1 + (c++)"pkgPackageManager::DoInstall(APT::Progress::PackageManager*)@APTPKG_6.0" 1.1~exp1 + (c++)"pkgPackageManager::DoInstallPostFork(APT::Progress::PackageManager*)@APTPKG_6.0" 1.1~exp1 + (c++)"pkgTagFile::Init(FileFd*, unsigned long long)@APTPKG_6.0" 1.1~exp1 + (c++)"pkgTagSection::Count() const@APTPKG_6.0" 1.1~exp1 + (c++)"pkgTagSection::Exists(APT::StringView) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::FindB(APT::StringView, bool) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::Scan(char const*, unsigned long, bool)@APTPKG_6.0" 1.1~exp1 + (c++)"StartsWithGPGClearTextSignature(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp1 + (c++)"Popen(char const**, FileFd&, int&, FileFd::OpenMode, bool, bool)@APTPKG_6.0" 1.9.0~ + (c++)"APT::String::Startswith(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp2 + (c++)"APT::Upgrade::Upgrade(pkgDepCache&, int, OpProgress*)@APTPKG_6.0" 1.1~exp4 + (c++)"pkgProblemResolver::Resolve(bool, OpProgress*)@APTPKG_6.0" 1.1~exp4 + (c++)"pkgProblemResolver::ResolveByKeep(OpProgress*)@APTPKG_6.0" 1.1~exp4 + (c++)"DropPrivileges()@APTPKG_6.0" 1.1~exp4 + (c++)"FileFd::FileFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned long)@APTPKG_6.0" 1.1~exp4 + (c++)"metaIndex::metaIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgTagSection::Get(char const*&, char const*&, unsigned int) const@APTPKG_6.0" 1.1~exp9 ### ABI 5 changed so much (+ abicxx11 transition) - (c++)"APT::CacheSetHelper::CacheSetHelper(bool, GlobalError::MsgType)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::Configuration::getArchitectures[abi:cxx11](bool const&)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::Configuration::getCompressionTypes[abi:cxx11](bool const&)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::Configuration::getLanguages[abi:cxx11](bool const&, bool const&, char const**)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::PackageContainerInterface::operator=(APT::PackageContainerInterface const&)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::PackageContainerInterface::PackageContainerInterface(APT::CacheSetHelper::PkgSelector)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::PackageContainerInterface::~PackageContainerInterface()@APTPKG_5.90" 1.1~exp9 - (c++)"APT::PackageContainerInterface::PackageContainerInterface()@APTPKG_5.90" 1.1~exp9 - (c++)"APT::PackageUniverse::~PackageUniverse()@APTPKG_5.90" 1.1~exp9 - (c++)"APT::PackageUniverse::PackageUniverse(pkgCache*)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::PackageUniverse::PackageUniverse(pkgCacheFile*)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::Progress::PackageManagerText::PackageManagerText()@APTPKG_5.90" 1.1~exp9 - (c++)"APT::VersionContainerInterface::FromDependency(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::DepIterator const&, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::VersionContainerInterface::operator=(APT::VersionContainerInterface const&)@APTPKG_5.90" 1.1~exp9 - (c++)"APT::VersionContainerInterface::~VersionContainerInterface()@APTPKG_5.90" 1.1~exp9 - (c++)"APT::VersionContainerInterface::VersionContainerInterface()@APTPKG_5.90" 1.1~exp9 - (c++)"CommandLine::CommandLine()@APTPKG_5.90" 1.1~exp9 - (c++)"Configuration::FindVector(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const@APTPKG_5.90" 1.1~exp9 - (c++)"debDebianSourceDirIndex::GetType() const@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::~debDebPkgFileIndex()@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::debDebPkgFileIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::FindInCache(pkgCache&) const@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::GetArchitecture[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::GetComponent[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::GetContent(std::basic_ostream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::GetIndexFlags() const@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::GetType() const@APTPKG_5.90" 1.1~exp9 - (c++)"debDebPkgFileIndex::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"debDscFileIndex::CreateSrcParser() const@APTPKG_5.90" 1.1~exp9 - (c++)"debDscFileIndex::~debDscFileIndex()@APTPKG_5.90" 1.1~exp9 - (c++)"debDscFileIndex::debDscFileIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"debDscFileIndex::GetType() const@APTPKG_5.90" 1.1~exp9 - (c++)"debPackagesIndex::ArchiveInfo[abi:cxx11](pkgCache::VerIterator const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"debPackagesIndex::~debPackagesIndex()@APTPKG_5.90" 1.1~exp9 - (c++)"debPackagesIndex::debPackagesIndex(IndexTarget const&, bool)@APTPKG_5.90" 1.1~exp9 - (c++)"debPackagesIndex::GetIndexFlags() const@APTPKG_5.90" 1.1~exp9 - (c++)"debPackagesIndex::GetType() const@APTPKG_5.90" 1.1~exp9 - (c++)"debSourcesIndex::CreateSrcParser() const@APTPKG_5.90" 1.1~exp9 - (c++)"debSourcesIndex::~debSourcesIndex()@APTPKG_5.90" 1.1~exp9 - (c++)"debSourcesIndex::debSourcesIndex(IndexTarget const&, bool)@APTPKG_5.90" 1.1~exp9 - (c++)"debSourcesIndex::GetIndexFlags() const@APTPKG_5.90" 1.1~exp9 - (c++)"debSourcesIndex::GetType() const@APTPKG_5.90" 1.1~exp9 - (c++)"debSourcesIndex::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"debSourcesIndex::SourceInfo[abi:cxx11](pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"debStatusIndex::~debStatusIndex()@APTPKG_5.90" 1.1~exp9 - (c++)"debStatusIndex::debStatusIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"debStatusIndex::GetArchitecture[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"debStatusIndex::GetComponent[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"debStatusIndex::GetIndexFlags() const@APTPKG_5.90" 1.1~exp9 - (c++)"debStatusIndex::GetType() const@APTPKG_5.90" 1.1~exp9 - (c++)"debTranslationsIndex::~debTranslationsIndex()@APTPKG_5.90" 1.1~exp9 - (c++)"debTranslationsIndex::debTranslationsIndex(IndexTarget const&)@APTPKG_5.90" 1.1~exp9 - (c++)"debTranslationsIndex::GetArchitecture[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"debTranslationsIndex::GetIndexFlags() const@APTPKG_5.90" 1.1~exp9 - (c++)"debTranslationsIndex::GetType() const@APTPKG_5.90" 1.1~exp9 - (c++)"debTranslationsIndex::HasPackages() const@APTPKG_5.90" 1.1~exp9 - (c++)"debTranslationsIndex::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"ExecGPGV(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&, int*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"FileFd::FileFd()@APTPKG_5.90" 1.1~exp9 - (c++)"FileFd::FileFd(int, bool)@APTPKG_5.90" 1.1~exp9 - (c++)"FileFd::FileFd(int, unsigned int, FileFd::CompressMode)@APTPKG_5.90" 1.1~exp9 - (c++)"FileFd::FileFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, FileFd::CompressMode, unsigned long)@APTPKG_5.90" 1.1~exp9 - (c++)"GetTempFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, FileFd*)@APTPKG_5.90" 1.1~exp9 - (c++)"Hashes::AddFD(FileFd&, unsigned long long)@APTPKG_5.90" 1.1~exp9 - (c++)"Hashes::AddFD(int, unsigned long long)@APTPKG_5.90" 1.1~exp9 - (c++)"Hashes::Add(unsigned char const*, unsigned long long)@APTPKG_5.90" 1.1~exp9 - (c++)"Hashes::Hashes(HashStringList const&)@APTPKG_5.90" 1.1~exp9 - (c++)"Hashes::Hashes(unsigned int)@APTPKG_5.90" 1.1~exp9 - (c++)"HashStringList::FileSize() const@APTPKG_5.90" 1.1~exp9 - (c++)"HashStringList::FileSize(unsigned long long)@APTPKG_5.90" 1.1~exp9 - (c++)"IndexCopy::IndexCopy()@APTPKG_5.90" 1.1~exp9 - (c++)"IndexTarget::Format(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_5.90" 1.1~exp9 - (c++)"IndexTarget::IndexTarget(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"IndexTarget::Option[abi:cxx11](IndexTarget::OptionKeys) const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::CheckDist(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::Describe[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::Exists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::FindInCache(pkgCache&, bool) const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetCodename[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetDate() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetExpectedDist[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetLoadedSuccessfully() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetSignedBy[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetSuite[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetSupportsAcquireByHash() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetTrusted() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::GetValidUntil() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::Lookup(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::MetaKeys[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"metaIndex::swapLoad(metaIndex*)@APTPKG_5.90" 1.1~exp9 - (c++)"PackageCopy::PackageCopy()@APTPKG_5.90" 1.1~exp9 - (c++)"PackageCopy::RewriteEntry(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqArchive::DescURI[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqArchive::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqArchive::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqArchive::GetExpectedHashes() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqArchive::GetFinalFilename[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqArchive::HashesRequired() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqArchive::ShortDesc[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::~pkgAcqChangelog()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::pkgAcqChangelog(pkgAcquire*, pkgCache::RlsFileIterator const&, char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::pkgAcqChangelog(pkgAcquire*, pkgCache::VerIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::pkgAcqChangelog(pkgAcquire*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::URI[abi:cxx11](pkgCache::RlsFileIterator const&, char const*, char const*, char const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::URI[abi:cxx11](pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::URI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, char const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqChangelog::URITemplate[abi:cxx11](pkgCache::RlsFileIterator const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqFile::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqFile::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqFile::GetExpectedHashes() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqFile::HashesRequired() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqFile::pkgAcqFile(pkgAcquire*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqMethod::FetchItem::FetchItem()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqMethod::FetchItem::~FetchItem()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcqMethod::FetchResult::~FetchResult()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::GetFinalFilename[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::GetItemDesc()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::GetOwner() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::HashSum[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::Item(pkgAcquire*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::Rename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::ShortDesc[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::Start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Item::VerifyDone(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Queue::QItem::Custom600Headers[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Queue::QItem::GetExpectedHashes() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Queue::QItem::GetMaximumSize() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Queue::QItem::SyncDestinationFiles() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::Queue::Queue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgAcquire::UriIterator::UriIterator(pkgAcquire::Queue*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgArchiveCleaner::pkgArchiveCleaner()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCache::DepIterator::IsImplicit() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCacheFile::pkgCacheFile(pkgDepCache*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCache::PkgIterator::FullName[abi:cxx11](bool const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCache::RlsFileIterator::RelStr[abi:cxx11]()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCdrom::~pkgCdrom()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCdrom::pkgCdrom()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCdromStatus::~pkgCdromStatus()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgCdromStatus::pkgCdromStatus()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexFile::FindInCache(pkgCache&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexFile::~pkgDebianIndexFile()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexFile::pkgDebianIndexFile(bool)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::ArchiveURI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::Describe[abi:cxx11](bool) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::Exists() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::GetProgressDescription[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::IndexFileName[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::~pkgDebianIndexRealFile()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::pkgDebianIndexRealFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexRealFile::Size() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::ArchiveURI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::Describe[abi:cxx11](bool) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::Exists() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::GetArchitecture[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::GetComponent[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::GetProgressDescription[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::IndexFileName[abi:cxx11]() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::~pkgDebianIndexTargetFile()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::pkgDebianIndexTargetFile(IndexTarget const&, bool)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDebianIndexTargetFile::Size() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDepCache::CheckDep(pkgCache::DepIterator const&, int, pkgCache::PkgIterator&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDepCache::DependencyState(pkgCache::DepIterator const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDepCache::Policy::IsImportantDep(pkgCache::DepIterator const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDepCache::UpdateVerState(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgDepCache::VersionState(pkgCache::DepIterator, unsigned char, unsigned char, unsigned char) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgIndexFile::ArchiveInfo[abi:cxx11](pkgCache::VerIterator const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgIndexFile::~pkgIndexFile()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgIndexFile::pkgIndexFile(bool)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgIndexFile::SourceInfo[abi:cxx11](pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgRecords::Parser::~Parser()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgRecords::Parser::Parser()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::AddVolatileFile(pkgIndexFile*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::GetVolatileFiles() const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::ReadAppend(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::ReadSourceDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::Read(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::Type::ParseLine(std::vector<metaIndex*, std::allocator<metaIndex*> >&, char const*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::Type::ParseStanza(std::vector<metaIndex*, std::allocator<metaIndex*> >&, pkgTagSection&, unsigned int, FileFd&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::Type::~Type()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::Type::Type(char const*, char const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSrcRecords::Parser::~Parser()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSrcRecords::Parser::Parser(pkgIndexFile const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSystem::~pkgSystem()@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSystem::pkgSystem(char const*, pkgVersioningSystem*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgTagSection::FindFlag(APT::StringView, unsigned char&, unsigned char) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::FindFlag(unsigned char&, unsigned char, char const*, char const*)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgTagSection::FindRaw(APT::StringView) const@APTPKG_5.90" 1.9~ - (c++)"pkgTagSection::Tag::Remove(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgTagSection::Tag::Rename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgTagSection::Tag::Rewrite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgTagSection::Write(FileFd&, char const* const*, std::vector<pkgTagSection::Tag, std::allocator<pkgTagSection::Tag> > const&) const@APTPKG_5.90" 1.1~exp9 - (c++)"pkgVersioningSystem::~pkgVersioningSystem()@APTPKG_5.90" 1.1~exp9 - (c++)"SigVerify::~SigVerify()@APTPKG_5.90" 1.1~exp9 - (c++)"SigVerify::SigVerify()@APTPKG_5.90" 1.1~exp9 - (c++)"SourceCopy::RewriteEntry(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"SourceCopy::SourceCopy()@APTPKG_5.90" 1.1~exp9 - (c++)"TranslationsCopy::~TranslationsCopy()@APTPKG_5.90" 1.1~exp9 - (c++)"TranslationsCopy::TranslationsCopy()@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for APT::PackageUniverse@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for debDebianSourceDirIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for debDebPkgFileIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for debDscFileIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for debPackagesIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for debSourcesIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for debStatusIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for debTranslationsIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgAcqChangelog@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgAcqMethod::FetchItem@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgAcqMethod::FetchResult@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgCdrom@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgCdromStatus@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgDebianIndexFile@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgDebianIndexRealFile@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgDebianIndexTargetFile@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgDepCache::ActionGroup@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgOrderList@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgProblemResolver@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgRecords@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for pkgSourceList@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for SigVerify@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo for TranslationsCopy@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for APT::PackageUniverse@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for debDebianSourceDirIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for debDebPkgFileIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for debDscFileIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for debPackagesIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for debSourcesIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for debStatusIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for debTranslationsIndex@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgAcqChangelog@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgAcqMethod::FetchItem@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgAcqMethod::FetchResult@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgCdrom@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgCdromStatus@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgDebianIndexFile@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgDebianIndexRealFile@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgDebianIndexTargetFile@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgDepCache::ActionGroup@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgOrderList@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgProblemResolver@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgRecords@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for pkgSourceList@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for SigVerify@APTPKG_5.90" 1.1~exp9 - (c++)"typeinfo name for TranslationsCopy@APTPKG_5.90" 1.1~exp9 - (c++)"URI::ArchiveOnly(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for APT::PackageUniverse@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for debDebianSourceDirIndex@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for debDebPkgFileIndex@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for debDscFileIndex@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for debPackagesIndex@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for debSourcesIndex@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for debStatusIndex@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for debTranslationsIndex@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgAcqChangelog@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgAcqMethod::FetchItem@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgAcqMethod::FetchResult@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgCdrom@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgCdromStatus@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgDebianIndexFile@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgDebianIndexRealFile@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgDebianIndexTargetFile@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgDepCache::ActionGroup@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgOrderList@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgProblemResolver@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgRecords@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for pkgSourceList@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for SigVerify@APTPKG_5.90" 1.1~exp9 - (c++)"vtable for TranslationsCopy@APTPKG_5.90" 1.1~exp9 + (c++)"APT::CacheSetHelper::CacheSetHelper(bool, GlobalError::MsgType)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::Configuration::getArchitectures[abi:cxx11](bool const&)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::Configuration::getCompressionTypes[abi:cxx11](bool const&)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::Configuration::getLanguages[abi:cxx11](bool const&, bool const&, char const**)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::PackageContainerInterface::operator=(APT::PackageContainerInterface const&)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::PackageContainerInterface::PackageContainerInterface(APT::CacheSetHelper::PkgSelector)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::PackageContainerInterface::~PackageContainerInterface()@APTPKG_6.0" 1.1~exp9 + (c++)"APT::PackageContainerInterface::PackageContainerInterface()@APTPKG_6.0" 1.1~exp9 + (c++)"APT::PackageUniverse::~PackageUniverse()@APTPKG_6.0" 1.1~exp9 + (c++)"APT::PackageUniverse::PackageUniverse(pkgCache*)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::PackageUniverse::PackageUniverse(pkgCacheFile*)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::Progress::PackageManagerText::PackageManagerText()@APTPKG_6.0" 1.1~exp9 + (c++)"APT::VersionContainerInterface::FromDependency(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::DepIterator const&, APT::CacheSetHelper::VerSelector, APT::CacheSetHelper&)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::VersionContainerInterface::operator=(APT::VersionContainerInterface const&)@APTPKG_6.0" 1.1~exp9 + (c++)"APT::VersionContainerInterface::~VersionContainerInterface()@APTPKG_6.0" 1.1~exp9 + (c++)"APT::VersionContainerInterface::VersionContainerInterface()@APTPKG_6.0" 1.1~exp9 + (c++)"CommandLine::CommandLine()@APTPKG_6.0" 1.1~exp9 + (c++)"Configuration::FindVector(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const@APTPKG_6.0" 1.1~exp9 + (c++)"debDebianSourceDirIndex::GetType() const@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::~debDebPkgFileIndex()@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::debDebPkgFileIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::FindInCache(pkgCache&) const@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::GetArchitecture[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::GetComponent[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::GetContent(std::basic_ostream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::GetIndexFlags() const@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::GetType() const@APTPKG_6.0" 1.1~exp9 + (c++)"debDebPkgFileIndex::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debDscFileIndex::CreateSrcParser() const@APTPKG_6.0" 1.1~exp9 + (c++)"debDscFileIndex::~debDscFileIndex()@APTPKG_6.0" 1.1~exp9 + (c++)"debDscFileIndex::debDscFileIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debDscFileIndex::GetType() const@APTPKG_6.0" 1.1~exp9 + (c++)"debPackagesIndex::ArchiveInfo[abi:cxx11](pkgCache::VerIterator const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"debPackagesIndex::~debPackagesIndex()@APTPKG_6.0" 1.1~exp9 + (c++)"debPackagesIndex::debPackagesIndex(IndexTarget const&, bool)@APTPKG_6.0" 1.1~exp9 + (c++)"debPackagesIndex::GetIndexFlags() const@APTPKG_6.0" 1.1~exp9 + (c++)"debPackagesIndex::GetType() const@APTPKG_6.0" 1.1~exp9 + (c++)"debSourcesIndex::CreateSrcParser() const@APTPKG_6.0" 1.1~exp9 + (c++)"debSourcesIndex::~debSourcesIndex()@APTPKG_6.0" 1.1~exp9 + (c++)"debSourcesIndex::debSourcesIndex(IndexTarget const&, bool)@APTPKG_6.0" 1.1~exp9 + (c++)"debSourcesIndex::GetIndexFlags() const@APTPKG_6.0" 1.1~exp9 + (c++)"debSourcesIndex::GetType() const@APTPKG_6.0" 1.1~exp9 + (c++)"debSourcesIndex::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debSourcesIndex::SourceInfo[abi:cxx11](pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"debStatusIndex::~debStatusIndex()@APTPKG_6.0" 1.1~exp9 + (c++)"debStatusIndex::debStatusIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debStatusIndex::GetArchitecture[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"debStatusIndex::GetComponent[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"debStatusIndex::GetIndexFlags() const@APTPKG_6.0" 1.1~exp9 + (c++)"debStatusIndex::GetType() const@APTPKG_6.0" 1.1~exp9 + (c++)"debTranslationsIndex::~debTranslationsIndex()@APTPKG_6.0" 1.1~exp9 + (c++)"debTranslationsIndex::debTranslationsIndex(IndexTarget const&)@APTPKG_6.0" 1.1~exp9 + (c++)"debTranslationsIndex::GetArchitecture[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"debTranslationsIndex::GetIndexFlags() const@APTPKG_6.0" 1.1~exp9 + (c++)"debTranslationsIndex::GetType() const@APTPKG_6.0" 1.1~exp9 + (c++)"debTranslationsIndex::HasPackages() const@APTPKG_6.0" 1.1~exp9 + (c++)"debTranslationsIndex::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"ExecGPGV(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&, int*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"FileFd::FileFd()@APTPKG_6.0" 1.1~exp9 + (c++)"FileFd::FileFd(int, bool)@APTPKG_6.0" 1.1~exp9 + (c++)"FileFd::FileFd(int, unsigned int, FileFd::CompressMode)@APTPKG_6.0" 1.1~exp9 + (c++)"FileFd::FileFd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, FileFd::CompressMode, unsigned long)@APTPKG_6.0" 1.1~exp9 + (c++)"GetTempFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, FileFd*)@APTPKG_6.0" 1.1~exp9 + (c++)"Hashes::AddFD(FileFd&, unsigned long long)@APTPKG_6.0" 1.1~exp9 + (c++)"Hashes::AddFD(int, unsigned long long)@APTPKG_6.0" 1.1~exp9 + (c++)"Hashes::Add(unsigned char const*, unsigned long long)@APTPKG_6.0" 1.1~exp9 + (c++)"Hashes::Hashes(HashStringList const&)@APTPKG_6.0" 1.1~exp9 + (c++)"Hashes::Hashes(unsigned int)@APTPKG_6.0" 1.1~exp9 + (c++)"HashStringList::FileSize() const@APTPKG_6.0" 1.1~exp9 + (c++)"HashStringList::FileSize(unsigned long long)@APTPKG_6.0" 1.1~exp9 + (c++)"IndexCopy::IndexCopy()@APTPKG_6.0" 1.1~exp9 + (c++)"IndexTarget::Format(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@APTPKG_6.0" 1.1~exp9 + (c++)"IndexTarget::IndexTarget(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"IndexTarget::Option[abi:cxx11](IndexTarget::OptionKeys) const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::CheckDist(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::Describe[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::Exists(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::FindInCache(pkgCache&, bool) const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetCodename[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetDate() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetExpectedDist[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetLoadedSuccessfully() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetSignedBy[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetSuite[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetSupportsAcquireByHash() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetTrusted() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::GetValidUntil() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::Lookup(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::MetaKeys[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"metaIndex::swapLoad(metaIndex*)@APTPKG_6.0" 1.1~exp9 + (c++)"PackageCopy::PackageCopy()@APTPKG_6.0" 1.1~exp9 + (c++)"PackageCopy::RewriteEntry(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqArchive::DescURI[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqArchive::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqArchive::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqArchive::GetExpectedHashes() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqArchive::GetFinalFilename[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqArchive::HashesRequired() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqArchive::ShortDesc[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::~pkgAcqChangelog()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::pkgAcqChangelog(pkgAcquire*, pkgCache::RlsFileIterator const&, char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::pkgAcqChangelog(pkgAcquire*, pkgCache::VerIterator const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::pkgAcqChangelog(pkgAcquire*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::URI[abi:cxx11](pkgCache::RlsFileIterator const&, char const*, char const*, char const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::URI[abi:cxx11](pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::URI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, char const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqChangelog::URITemplate[abi:cxx11](pkgCache::RlsFileIterator const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqFile::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqFile::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqFile::GetExpectedHashes() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqFile::HashesRequired() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqFile::pkgAcqFile(pkgAcquire*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqMethod::FetchItem::FetchItem()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqMethod::FetchItem::~FetchItem()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcqMethod::FetchResult::~FetchResult()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::Done(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashStringList const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::Failed(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::GetFinalFilename[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::GetItemDesc()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::GetOwner() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::HashSum[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::Item(pkgAcquire*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::Rename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::ShortDesc[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::Start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Item::VerifyDone(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire::MethodConfig const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Queue::QItem::Custom600Headers[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Queue::QItem::GetExpectedHashes() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Queue::QItem::GetMaximumSize() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Queue::QItem::SyncDestinationFiles() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::Queue::Queue(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgAcquire*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgAcquire::UriIterator::UriIterator(pkgAcquire::Queue*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgArchiveCleaner::pkgArchiveCleaner()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCache::DepIterator::IsImplicit() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCacheFile::pkgCacheFile(pkgDepCache*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCache::PkgIterator::FullName[abi:cxx11](bool const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCache::RlsFileIterator::RelStr[abi:cxx11]()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCdrom::~pkgCdrom()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCdrom::pkgCdrom()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCdromStatus::~pkgCdromStatus()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgCdromStatus::pkgCdromStatus()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexFile::FindInCache(pkgCache&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexFile::~pkgDebianIndexFile()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexFile::pkgDebianIndexFile(bool)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::ArchiveURI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::Describe[abi:cxx11](bool) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::Exists() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::GetProgressDescription[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::IndexFileName[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::~pkgDebianIndexRealFile()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::pkgDebianIndexRealFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexRealFile::Size() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::ArchiveURI(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::Describe[abi:cxx11](bool) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::Exists() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::GetArchitecture[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::GetComponent[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::GetProgressDescription[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::IndexFileName[abi:cxx11]() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::OpenListFile(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::~pkgDebianIndexTargetFile()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::pkgDebianIndexTargetFile(IndexTarget const&, bool)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDebianIndexTargetFile::Size() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDepCache::CheckDep(pkgCache::DepIterator const&, int, pkgCache::PkgIterator&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDepCache::DependencyState(pkgCache::DepIterator const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDepCache::Policy::IsImportantDep(pkgCache::DepIterator const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDepCache::UpdateVerState(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgDepCache::VersionState(pkgCache::DepIterator, unsigned char, unsigned char, unsigned char) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgIndexFile::ArchiveInfo[abi:cxx11](pkgCache::VerIterator const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgIndexFile::~pkgIndexFile()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgIndexFile::pkgIndexFile(bool)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgIndexFile::SourceInfo[abi:cxx11](pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgRecords::Parser::~Parser()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgRecords::Parser::Parser()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::AddVolatileFile(pkgIndexFile*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::GetVolatileFiles() const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::ReadAppend(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::ReadSourceDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::Read(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::Type::ParseLine(std::vector<metaIndex*, std::allocator<metaIndex*> >&, char const*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::Type::ParseStanza(std::vector<metaIndex*, std::allocator<metaIndex*> >&, pkgTagSection&, unsigned int, FileFd&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::Type::~Type()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::Type::Type(char const*, char const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSrcRecords::Parser::~Parser()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSrcRecords::Parser::Parser(pkgIndexFile const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSystem::~pkgSystem()@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSystem::pkgSystem(char const*, pkgVersioningSystem*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgTagSection::FindFlag(APT::StringView, unsigned char&, unsigned char) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::FindFlag(unsigned char&, unsigned char, char const*, char const*)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgTagSection::FindRaw(APT::StringView) const@APTPKG_6.0" 1.9~ + (c++)"pkgTagSection::Tag::Remove(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgTagSection::Tag::Rename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgTagSection::Tag::Rewrite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgTagSection::Write(FileFd&, char const* const*, std::vector<pkgTagSection::Tag, std::allocator<pkgTagSection::Tag> > const&) const@APTPKG_6.0" 1.1~exp9 + (c++)"pkgVersioningSystem::~pkgVersioningSystem()@APTPKG_6.0" 1.1~exp9 + (c++)"SigVerify::~SigVerify()@APTPKG_6.0" 1.1~exp9 + (c++)"SigVerify::SigVerify()@APTPKG_6.0" 1.1~exp9 + (c++)"SourceCopy::RewriteEntry(FileFd&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"SourceCopy::SourceCopy()@APTPKG_6.0" 1.1~exp9 + (c++)"TranslationsCopy::~TranslationsCopy()@APTPKG_6.0" 1.1~exp9 + (c++)"TranslationsCopy::TranslationsCopy()@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for APT::PackageUniverse@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for debDebianSourceDirIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for debDebPkgFileIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for debDscFileIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for debPackagesIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for debSourcesIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for debStatusIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for debTranslationsIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgAcqChangelog@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgAcqMethod::FetchItem@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgAcqMethod::FetchResult@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgCdrom@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgCdromStatus@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgDebianIndexFile@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgDebianIndexRealFile@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgDebianIndexTargetFile@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgDepCache::ActionGroup@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgOrderList@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgProblemResolver@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgRecords@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for pkgSourceList@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for SigVerify@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo for TranslationsCopy@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for APT::PackageUniverse@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for debDebianSourceDirIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for debDebPkgFileIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for debDscFileIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for debPackagesIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for debSourcesIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for debStatusIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for debTranslationsIndex@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgAcqChangelog@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgAcqMethod::FetchItem@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgAcqMethod::FetchResult@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgCdrom@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgCdromStatus@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgDebianIndexFile@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgDebianIndexRealFile@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgDebianIndexTargetFile@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgDepCache::ActionGroup@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgOrderList@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgProblemResolver@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgRecords@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for pkgSourceList@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for SigVerify@APTPKG_6.0" 1.1~exp9 + (c++)"typeinfo name for TranslationsCopy@APTPKG_6.0" 1.1~exp9 + (c++)"URI::ArchiveOnly(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for APT::PackageUniverse@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for debDebianSourceDirIndex@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for debDebPkgFileIndex@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for debDscFileIndex@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for debPackagesIndex@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for debSourcesIndex@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for debStatusIndex@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for debTranslationsIndex@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgAcqChangelog@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgAcqMethod::FetchItem@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgAcqMethod::FetchResult@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgCdrom@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgCdromStatus@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgDebianIndexFile@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgDebianIndexRealFile@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgDebianIndexTargetFile@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgDepCache::ActionGroup@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgOrderList@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgProblemResolver@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgRecords@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for pkgSourceList@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for SigVerify@APTPKG_6.0" 1.1~exp9 + (c++)"vtable for TranslationsCopy@APTPKG_6.0" 1.1~exp9 ### dpkg selection state changer & general dpkg interfacing - (c++)"APT::StateChanges::clear()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::empty() const@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Error()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Hold()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Hold(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Install()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Install(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::operator=(APT::StateChanges&&)@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Purge()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Purge(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Remove()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Remove(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Save(bool)@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::~StateChanges()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::StateChanges()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::StateChanges(APT::StateChanges&&)@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Unhold()@APTPKG_5.90" 1.1~exp15 - (c++)"APT::StateChanges::Unhold(pkgCache::VerIterator const&)@APTPKG_5.90" 1.1~exp15 - (c++)"pkgSystem::ArchitecturesSupported[abi:cxx11]() const@APTPKG_5.90" 1.1~exp15 - (c++)"pkgSystem::MultiArchSupported() const@APTPKG_5.90" 1.1~exp15 - (c++)"metaIndex::IsArchitectureSupported(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.1~exp15 + (c++)"APT::StateChanges::clear()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::empty() const@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Error()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Hold()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Hold(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Install()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Install(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::operator=(APT::StateChanges&&)@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Purge()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Purge(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Remove()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Remove(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Save(bool)@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::~StateChanges()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::StateChanges()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::StateChanges(APT::StateChanges&&)@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Unhold()@APTPKG_6.0" 1.1~exp15 + (c++)"APT::StateChanges::Unhold(pkgCache::VerIterator const&)@APTPKG_6.0" 1.1~exp15 + (c++)"pkgSystem::ArchitecturesSupported[abi:cxx11]() const@APTPKG_6.0" 1.1~exp15 + (c++)"pkgSystem::MultiArchSupported() const@APTPKG_6.0" 1.1~exp15 + (c++)"metaIndex::IsArchitectureSupported(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.1~exp15 ### misc stuff - (c++)"RemoveFile(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp15 - (c++)"pkgOrderList::OrderCompareA(pkgCache::Package*, pkgCache::Package*)@APTPKG_5.90" 1.1~exp15 - (c++)"pkgOrderList::OrderCompareB(pkgCache::Package*, pkgCache::Package*)@APTPKG_5.90" 1.1~exp15 - (c++)"CommandLine::DispatchArg(CommandLine::Dispatch const*, bool)@APTPKG_5.90" 1.1~exp15 - (c++)"Configuration::MoveSubTree(char const*, char const*)@APTPKG_5.90" 1.1~exp15 - (c++)"GetTempDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp15 - (c++)"HashString::usable() const@APTPKG_5.90" 1.1~exp15 - (c++)"IndexTarget::OptionBool(IndexTarget::OptionKeys) const@APTPKG_5.90" 1.1~exp12 - (c++)"pkgDepCache::GetCandidateVersion(pkgCache::PkgIterator const&)@APTPKG_5.90" 1.1~exp15 - (c++)"pkgDepCache::Policy::GetPriority(pkgCache::VerIterator const&, bool)@APTPKG_5.90" 1.1~exp15 - (c++)"pkgPackageManager::CheckRBreaks(pkgCache::PkgIterator const&, pkgCache::DepIterator, char const*)@APTPKG_5.90" 1.1~exp11 - (c++)"pkgPolicy::GetPriority(pkgCache::VerIterator const&, bool)@APTPKG_5.90" 1.1~exp9 - (c++)"pkgSourceList::AddVolatileFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.1~exp15 - (c++)"pkgVersionMatch::VersionMatches(pkgCache::VerIterator)@APTPKG_5.90" 1.1~exp9 - (c++)"GetSrvRecords(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::vector<SrvRec, std::allocator<SrvRec> >&)@APTPKG_5.90" 1.1~exp15 - (c++)"GetSrvRecords(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<SrvRec, std::allocator<SrvRec> >&)@APTPKG_5.90" 1.1~exp15 - (c++)"PopFromSrvRecs(std::vector<SrvRec, std::allocator<SrvRec> >&)@APTPKG_5.90" 1.1~exp15 - (c++)"SrvRec::operator==(SrvRec const&) const@APTPKG_5.90" 1.1~exp15 - (c++)"debDebianSourceDirIndex::GetComponent[abi:cxx11]() const@APTPKG_5.90" 1.1.4 - (c++)"debDscFileIndex::GetArchitecture[abi:cxx11]() const@APTPKG_5.90" 1.1.4 - (c++)"debDscFileIndex::GetComponent[abi:cxx11]() const@APTPKG_5.90" 1.1.4 - (c++)"debDscFileIndex::GetIndexFlags() const@APTPKG_5.90" 1.1.4 - (c++)"FileFd::Flush()@APTPKG_5.90" 1.1.9 - (c++)"isspace_ascii(int)@APTPKG_5.90" 1.1.9 - (c++)"metaIndex::IsArchitectureAllSupportedFor(IndexTarget const&) const@APTPKG_5.90" 1.1.9 - (c++)"pkgTagFile::Init(FileFd*, pkgTagFile::Flags, unsigned long long)@APTPKG_5.90" 1.2~exp1 - (c++)"pkgTagFile::pkgTagFile(FileFd*, pkgTagFile::Flags, unsigned long long)@APTPKG_5.90" 1.2~exp1 + (c++)"RemoveFile(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp15 + (c++)"pkgOrderList::OrderCompareA(pkgCache::Package*, pkgCache::Package*)@APTPKG_6.0" 1.1~exp15 + (c++)"pkgOrderList::OrderCompareB(pkgCache::Package*, pkgCache::Package*)@APTPKG_6.0" 1.1~exp15 + (c++)"CommandLine::DispatchArg(CommandLine::Dispatch const*, bool)@APTPKG_6.0" 1.1~exp15 + (c++)"Configuration::MoveSubTree(char const*, char const*)@APTPKG_6.0" 1.1~exp15 + (c++)"GetTempDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp15 + (c++)"HashString::usable() const@APTPKG_6.0" 1.1~exp15 + (c++)"IndexTarget::OptionBool(IndexTarget::OptionKeys) const@APTPKG_6.0" 1.1~exp12 + (c++)"pkgDepCache::GetCandidateVersion(pkgCache::PkgIterator const&)@APTPKG_6.0" 1.1~exp15 + (c++)"pkgDepCache::Policy::GetPriority(pkgCache::VerIterator const&, bool)@APTPKG_6.0" 1.1~exp15 + (c++)"pkgPackageManager::CheckRBreaks(pkgCache::PkgIterator const&, pkgCache::DepIterator, char const*)@APTPKG_6.0" 1.1~exp11 + (c++)"pkgPolicy::GetPriority(pkgCache::VerIterator const&, bool)@APTPKG_6.0" 1.1~exp9 + (c++)"pkgSourceList::AddVolatileFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.1~exp15 + (c++)"pkgVersionMatch::VersionMatches(pkgCache::VerIterator)@APTPKG_6.0" 1.1~exp9 + (c++)"GetSrvRecords(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::vector<SrvRec, std::allocator<SrvRec> >&)@APTPKG_6.0" 1.1~exp15 + (c++)"GetSrvRecords(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<SrvRec, std::allocator<SrvRec> >&)@APTPKG_6.0" 1.1~exp15 + (c++)"PopFromSrvRecs(std::vector<SrvRec, std::allocator<SrvRec> >&)@APTPKG_6.0" 1.1~exp15 + (c++)"SrvRec::operator==(SrvRec const&) const@APTPKG_6.0" 1.1~exp15 + (c++)"debDebianSourceDirIndex::GetComponent[abi:cxx11]() const@APTPKG_6.0" 1.1.4 + (c++)"debDscFileIndex::GetArchitecture[abi:cxx11]() const@APTPKG_6.0" 1.1.4 + (c++)"debDscFileIndex::GetComponent[abi:cxx11]() const@APTPKG_6.0" 1.1.4 + (c++)"debDscFileIndex::GetIndexFlags() const@APTPKG_6.0" 1.1.4 + (c++)"FileFd::Flush()@APTPKG_6.0" 1.1.9 + (c++)"isspace_ascii(int)@APTPKG_6.0" 1.1.9 + (c++)"metaIndex::IsArchitectureAllSupportedFor(IndexTarget const&) const@APTPKG_6.0" 1.1.9 + (c++)"pkgTagFile::Init(FileFd*, pkgTagFile::Flags, unsigned long long)@APTPKG_6.0" 1.2~exp1 + (c++)"pkgTagFile::pkgTagFile(FileFd*, pkgTagFile::Flags, unsigned long long)@APTPKG_6.0" 1.2~exp1 ### symbol versioning: - APTPKG_5.90@APTPKG_5.90 1.1~exp9 + APTPKG_6.0@APTPKG_6.0 1.1~exp9 ### gcc artifacts - (c++|optional=std)"void std::vector<char const*, std::allocator<char const*> >::emplace_back<char const*>(char const*&&)@APTPKG_5.90" 1.1~exp9 - (c++|optional=std)"void std::vector<pkgCache::GrpIterator*, std::allocator<pkgCache::GrpIterator*> >::emplace_back<pkgCache::GrpIterator*>(pkgCache::GrpIterator*&&)@APTPKG_5.90" 1.1~exp9 - (c++|optional=std)"void std::vector<pkgCache::PkgIterator*, std::allocator<pkgCache::PkgIterator*> >::emplace_back<pkgCache::PkgIterator*>(pkgCache::PkgIterator*&&)@APTPKG_5.90" 1.1~exp9 -# (c++|optional=std)"void std::vector<pkgCache::RlsFileIterator*, std::allocator<pkgCache::RlsFileIterator*> >::emplace_back<pkgCache::RlsFileIterator*>(pkgCache::RlsFileIterator*&&)@APTPKG_5.90" 1.1~exp9 - (c++|optional=std)"void std::vector<pkgCache::VerIterator*, std::allocator<pkgCache::VerIterator*> >::emplace_back<pkgCache::VerIterator*>(pkgCache::VerIterator*&&)@APTPKG_5.90" 1.1~exp9 - (c++|optional=std)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item>(pkgDPkgPM::Item&&)@APTPKG_5.90" 1.1~exp9 - (c++|optional=std)"void std::vector<pkgIndexFile*, std::allocator<pkgIndexFile*> >::emplace_back<pkgIndexFile*>(pkgIndexFile*&&)@APTPKG_5.90" 1.1~exp9 - (c++|optional=std)"void std::vector<pkgTagSection::Tag, std::allocator<pkgTagSection::Tag> >::emplace_back<pkgTagSection::Tag>(pkgTagSection::Tag&&)@APTPKG_5.90" 1.1~exp9 - (c++|optional=std)"void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@APTPKG_5.90" 1.1~exp9 - (arch=!x32|c++|optional=std)"void std::vector<long, std::allocator<long> >::emplace_back<long>(long&&)@APTPKG_5.90" 1.1~exp15 - (arch=x32|c++|optional=std)"void std::vector<long long, std::allocator<long long> >::emplace_back<long long>(long long&&)@APTPKG_5.90" 1.1~exp15 - (c++|optional=std)"void std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> >::emplace_back<pkgCache::VerIterator>(pkgCache::VerIterator&&)@APTPKG_5.90" 1.1~exp15 - (c++|optional=std)"SrvRec* std::__move_merge<__gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, SrvRec*, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, __gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, __gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, __gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, SrvRec*, __gnu_cxx::__ops::_Iter_less_iter)@APTPKG_5.90" 1.1~exp15 - (c++|optional=std)"void std::vector<std::pair<char*, unsigned long>, std::allocator<std::pair<char*, unsigned long> > >::emplace_back<std::pair<char*, unsigned long> >(std::pair<char*, unsigned long>&&)@APTPKG_5.90" 1.1 - (c++|optional=std)"char const* const* std::__find_if<char const* const*, __gnu_cxx::__ops::_Iter_equals_val<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const> >(char const* const*, char const* const*, __gnu_cxx::__ops::_Iter_equals_val<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, std::random_access_iterator_tag)@APTPKG_5.90" 1.3~exp1 + (c++|optional=std)"void std::vector<char const*, std::allocator<char const*> >::emplace_back<char const*>(char const*&&)@APTPKG_6.0" 1.1~exp9 + (c++|optional=std)"void std::vector<pkgCache::GrpIterator*, std::allocator<pkgCache::GrpIterator*> >::emplace_back<pkgCache::GrpIterator*>(pkgCache::GrpIterator*&&)@APTPKG_6.0" 1.1~exp9 + (c++|optional=std)"void std::vector<pkgCache::PkgIterator*, std::allocator<pkgCache::PkgIterator*> >::emplace_back<pkgCache::PkgIterator*>(pkgCache::PkgIterator*&&)@APTPKG_6.0" 1.1~exp9 +# (c++|optional=std)"void std::vector<pkgCache::RlsFileIterator*, std::allocator<pkgCache::RlsFileIterator*> >::emplace_back<pkgCache::RlsFileIterator*>(pkgCache::RlsFileIterator*&&)@APTPKG_6.0" 1.1~exp9 + (c++|optional=std)"void std::vector<pkgCache::VerIterator*, std::allocator<pkgCache::VerIterator*> >::emplace_back<pkgCache::VerIterator*>(pkgCache::VerIterator*&&)@APTPKG_6.0" 1.1~exp9 + (c++|optional=std)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item>(pkgDPkgPM::Item&&)@APTPKG_6.0" 1.1~exp9 + (c++|optional=std)"void std::vector<pkgIndexFile*, std::allocator<pkgIndexFile*> >::emplace_back<pkgIndexFile*>(pkgIndexFile*&&)@APTPKG_6.0" 1.1~exp9 + (c++|optional=std)"void std::vector<pkgTagSection::Tag, std::allocator<pkgTagSection::Tag> >::emplace_back<pkgTagSection::Tag>(pkgTagSection::Tag&&)@APTPKG_6.0" 1.1~exp9 + (c++|optional=std)"void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@APTPKG_6.0" 1.1~exp9 + (arch=!x32|c++|optional=std)"void std::vector<long, std::allocator<long> >::emplace_back<long>(long&&)@APTPKG_6.0" 1.1~exp15 + (arch=x32|c++|optional=std)"void std::vector<long long, std::allocator<long long> >::emplace_back<long long>(long long&&)@APTPKG_6.0" 1.1~exp15 + (c++|optional=std)"void std::vector<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> >::emplace_back<pkgCache::VerIterator>(pkgCache::VerIterator&&)@APTPKG_6.0" 1.1~exp15 + (c++|optional=std)"SrvRec* std::__move_merge<__gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, SrvRec*, __gnu_cxx::__ops::_Iter_less_iter>(__gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, __gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, __gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, __gnu_cxx::__normal_iterator<SrvRec*, std::vector<SrvRec, std::allocator<SrvRec> > >, SrvRec*, __gnu_cxx::__ops::_Iter_less_iter)@APTPKG_6.0" 1.1~exp15 + (c++|optional=std)"void std::vector<std::pair<char*, unsigned long>, std::allocator<std::pair<char*, unsigned long> > >::emplace_back<std::pair<char*, unsigned long> >(std::pair<char*, unsigned long>&&)@APTPKG_6.0" 1.1 + (c++|optional=std)"char const* const* std::__find_if<char const* const*, __gnu_cxx::__ops::_Iter_equals_val<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const> >(char const* const*, char const* const*, __gnu_cxx::__ops::_Iter_equals_val<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, std::random_access_iterator_tag)@APTPKG_6.0" 1.3~exp1 ### try to ignore std:: template instances - (c++|regex|optional=std)"^std::vector<.+ >::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@APTPKG_5.90$" 0.8.0 - (c++|regex|optional=std)"^(void |)std::[^ ]+<.+ >::(_|~).+\(.*\)@APTPKG_5.90$" 0.8.0 - (c++|regex|optional=std)"^std::[^ ]+<.+ >::(append|insert|reserve|operator[^ ]+)\(.*\)@APTPKG_5.90$" 0.8.0 - (c++|regex|optional=std)"^(void |DiffInfo\* |)std::_.*@APTPKG_5.90$" 0.8.0 - (c++|regex|optional=std)"^__gnu_cxx::__[^ ]+<.*@APTPKG_5.90$" 0.8.0 + (c++|regex|optional=std)"^std::vector<.+ >::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@APTPKG_6.0$" 0.8.0 + (c++|regex|optional=std)"^(void |)std::[^ ]+<.+ >::(_|~).+\(.*\)@APTPKG_6.0$" 0.8.0 + (c++|regex|optional=std)"^std::[^ ]+<.+ >::(append|insert|reserve|operator[^ ]+)\(.*\)@APTPKG_6.0$" 0.8.0 + (c++|regex|optional=std)"^(void |DiffInfo\* |)std::_.*@APTPKG_6.0$" 0.8.0 + (c++|regex|optional=std)"^__gnu_cxx::__[^ ]+<.*@APTPKG_6.0$" 0.8.0 ### - (c++)"debStringPackageIndex::~debStringPackageIndex()@APTPKG_5.90" 1.2.2 - (c++)"debStringPackageIndex::debStringPackageIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.2.2 - (c++)"debStringPackageIndex::GetArchitecture[abi:cxx11]() const@APTPKG_5.90" 1.2.2 - (c++)"debStringPackageIndex::GetComponent[abi:cxx11]() const@APTPKG_5.90" 1.2.2 - (c++)"debStringPackageIndex::GetIndexFlags() const@APTPKG_5.90" 1.2.2 - (c++)"debStringPackageIndex::GetType() const@APTPKG_5.90" 1.2.2 - (c++)"pkgCacheFile::AddIndexFile(pkgIndexFile*)@APTPKG_5.90" 1.2.2 - (c++)"typeinfo for debStringPackageIndex@APTPKG_5.90" 1.2.2 - (c++)"typeinfo name for debStringPackageIndex@APTPKG_5.90" 1.2.2 - (c++)"vtable for debStringPackageIndex@APTPKG_5.90" 1.2.2 - (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, APT::PrettyDep const&)@APTPKG_5.90" 1.3~exp1 - (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, APT::PrettyPkg const&)@APTPKG_5.90" 1.3~exp1 - (c++)"EDSP::ReadRequest(int, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, unsigned int&)@APTPKG_5.90" 1.3~exp2 - (c++)"EDSP::ResolveExternal(char const*, pkgDepCache&, unsigned int, OpProgress*)@APTPKG_5.90" 1.3~exp2 - (c++)"EDSP::WriteError(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd&)@APTPKG_5.90" 1.3~exp2 - (c++)"EDSP::WriteLimitedScenario(pkgDepCache&, FileFd&, std::vector<bool, std::allocator<bool> > const&, OpProgress*)@APTPKG_5.90" 1.3~exp2 - (c++)"EDSP::WriteProgress(unsigned short, char const*, FileFd&)@APTPKG_5.90" 1.3~exp2 - (c++)"EDSP::WriteRequest(pkgDepCache&, FileFd&, unsigned int, OpProgress*)@APTPKG_5.90" 1.3~exp2 - (c++)"EDSP::WriteScenario(pkgDepCache&, FileFd&, OpProgress*)@APTPKG_5.90" 1.3~exp2 - (c++)"EDSP::WriteSolutionStanza(FileFd&, char const*, pkgCache::VerIterator const&)@APTPKG_5.90" 1.3~exp2 - (c++)"int __gnu_cxx::__stoa<long, int, char, int>(long (*)(char const*, char**, int), char const*, char const*, unsigned long*, int)@APTPKG_5.90" 1.3~exp2 - (c++)"EIPP::ApplyRequest(std::__cxx11::list<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION> > >&, pkgDepCache&)@APTPKG_5.90" 1.3~rc2 - (c++)"EIPP::ReadRequest(int, std::__cxx11::list<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION> > >&, unsigned int&)@APTPKG_5.90" 1.3~rc2 - (c++)"FileFd::Read(int, void*, unsigned long long, unsigned long long*)@APTPKG_5.90" 1.3~rc2 - (c++)"pkgSourceList::AddVolatileFiles(CommandLine&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@APTPKG_5.90" 1.3~rc2 - (c++)"pkgSourceList::AddVolatileFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@APTPKG_5.90" 1.3~rc2 - (c++)"TimeRFC1123[abi:cxx11](long, bool)@APTPKG_5.90" 1.3~rc2 - (c++)"unsigned long std::uniform_int_distribution<unsigned long>::operator()<std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul> >(std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&, std::uniform_int_distribution<unsigned long>::param_type const&)@APTPKG_5.90" 1.3~rc2 - (c++)"void std::shuffle<__gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&>(__gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, __gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&)@APTPKG_5.90" 1.3~rc2 - (c++)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item::Ops, pkgCache::PkgIterator>(pkgDPkgPM::Item::Ops&&, pkgCache::PkgIterator&&)@APTPKG_5.90" 1.3~rc2 - (c++)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item::Ops, pkgCache::PkgIterator&>(pkgDPkgPM::Item::Ops&&, pkgCache::PkgIterator&)@APTPKG_5.90" 1.3~rc2 - (c++)"void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.3~rc2 - (c++)"void std::vector<std::pair<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::emplace_back<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(pkgDPkgPM::Item*&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@APTPKG_5.90" 1.3~rc2 - (c++)"AddCRC16Byte(unsigned short, unsigned char)@APTPKG_5.90" 1.4~beta1 - (c++)"APT::String::Join(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.4~beta4 - (c++)"debListParser::ParseDepends(char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, bool const&, bool const&, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.4~beta3 - (c++)"debListParser::ParseDepends(char const*, char const*, APT::StringView&, APT::StringView&, unsigned int&, bool, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.9.0~ - (c++)"pkgTagHash(char const*, unsigned long)@APTPKG_5.90" 1.4~beta1 - (c++|optional=std)"void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<char const (&) [4]>(char const (&) [4])@APTPKG_5.90" 1.4~beta4 - (c++)"FileFd::ReadLine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_5.90" 1.5~beta2~ - (c++)"MaybeAddAuth(FileFd&, URI&)@APTPKG_5.90" 1.5~beta2~ - (c++)"metaIndex::GetDefaultPin() const@APTPKG_5.90" 1.5~beta2~ - (c++)"metaIndex::GetLabel[abi:cxx11]() const@APTPKG_5.90" 1.5~beta2~ - (c++)"metaIndex::GetOrigin[abi:cxx11]() const@APTPKG_5.90" 1.5~beta2~ - (c++)"metaIndex::GetReleaseNotes[abi:cxx11]() const@APTPKG_5.90" 1.5~beta2~ - (c++)"metaIndex::GetVersion[abi:cxx11]() const@APTPKG_5.90" 1.5~beta2~ - (c++)"metaIndex::HasSupportForComponent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_5.90" 1.5~beta2~ - (c++)"pkgAcquireStatus::ReleaseInfoChanges(metaIndex const*, metaIndex const*, std::vector<pkgAcquireStatus::ReleaseInfoChange, std::allocator<pkgAcquireStatus::ReleaseInfoChange> >&&)@APTPKG_5.90" 1.5~beta2~ - (c++)"RemoveFileAt(char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_5.90" 1.5~beta2~ - (c++|optional=std)"void std::vector<pkgAcquireStatus::ReleaseInfoChange, std::allocator<pkgAcquireStatus::ReleaseInfoChange> >::emplace_back<pkgAcquireStatus::ReleaseInfoChange>(pkgAcquireStatus::ReleaseInfoChange&&)@APTPKG_5.90" 1.5~beta2~ - (c++)"pkgAcqMethod::FetchItem::Proxy[abi:cxx11]()@APTPKG_5.90" 1.6~alpha1~ - (c++)"pkgSystem::IsLocked()@APTPKG_5.90" 1.7.0~alpha3~ - (c++)"pkgSystem::LockInner()@APTPKG_5.90" 1.7.0~alpha3~ - (c++)"pkgSystem::UnLockInner(bool)@APTPKG_5.90" 1.7.0~alpha3~ + (c++)"debStringPackageIndex::~debStringPackageIndex()@APTPKG_6.0" 1.2.2 + (c++)"debStringPackageIndex::debStringPackageIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.2.2 + (c++)"debStringPackageIndex::GetArchitecture[abi:cxx11]() const@APTPKG_6.0" 1.2.2 + (c++)"debStringPackageIndex::GetComponent[abi:cxx11]() const@APTPKG_6.0" 1.2.2 + (c++)"debStringPackageIndex::GetIndexFlags() const@APTPKG_6.0" 1.2.2 + (c++)"debStringPackageIndex::GetType() const@APTPKG_6.0" 1.2.2 + (c++)"pkgCacheFile::AddIndexFile(pkgIndexFile*)@APTPKG_6.0" 1.2.2 + (c++)"typeinfo for debStringPackageIndex@APTPKG_6.0" 1.2.2 + (c++)"typeinfo name for debStringPackageIndex@APTPKG_6.0" 1.2.2 + (c++)"vtable for debStringPackageIndex@APTPKG_6.0" 1.2.2 + (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, APT::PrettyDep const&)@APTPKG_6.0" 1.3~exp1 + (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, APT::PrettyPkg const&)@APTPKG_6.0" 1.3~exp1 + (c++)"EDSP::ReadRequest(int, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, unsigned int&)@APTPKG_6.0" 1.3~exp2 + (c++)"EDSP::ResolveExternal(char const*, pkgDepCache&, unsigned int, OpProgress*)@APTPKG_6.0" 1.3~exp2 + (c++)"EDSP::WriteError(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd&)@APTPKG_6.0" 1.3~exp2 + (c++)"EDSP::WriteLimitedScenario(pkgDepCache&, FileFd&, std::vector<bool, std::allocator<bool> > const&, OpProgress*)@APTPKG_6.0" 1.3~exp2 + (c++)"EDSP::WriteProgress(unsigned short, char const*, FileFd&)@APTPKG_6.0" 1.3~exp2 + (c++)"EDSP::WriteRequest(pkgDepCache&, FileFd&, unsigned int, OpProgress*)@APTPKG_6.0" 1.3~exp2 + (c++)"EDSP::WriteScenario(pkgDepCache&, FileFd&, OpProgress*)@APTPKG_6.0" 1.3~exp2 + (c++)"EDSP::WriteSolutionStanza(FileFd&, char const*, pkgCache::VerIterator const&)@APTPKG_6.0" 1.3~exp2 + (c++)"int __gnu_cxx::__stoa<long, int, char, int>(long (*)(char const*, char**, int), char const*, char const*, unsigned long*, int)@APTPKG_6.0" 1.3~exp2 + (c++)"EIPP::ApplyRequest(std::__cxx11::list<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION> > >&, pkgDepCache&)@APTPKG_6.0" 1.3~rc2 + (c++)"EIPP::ReadRequest(int, std::__cxx11::list<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, EIPP::PKG_ACTION> > >&, unsigned int&)@APTPKG_6.0" 1.3~rc2 + (c++)"FileFd::Read(int, void*, unsigned long long, unsigned long long*)@APTPKG_6.0" 1.3~rc2 + (c++)"pkgSourceList::AddVolatileFiles(CommandLine&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@APTPKG_6.0" 1.3~rc2 + (c++)"pkgSourceList::AddVolatileFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@APTPKG_6.0" 1.3~rc2 + (c++)"TimeRFC1123[abi:cxx11](long, bool)@APTPKG_6.0" 1.3~rc2 + (c++)"unsigned long std::uniform_int_distribution<unsigned long>::operator()<std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul> >(std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&, std::uniform_int_distribution<unsigned long>::param_type const&)@APTPKG_6.0" 1.3~rc2 + (c++)"void std::shuffle<__gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&>(__gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, __gnu_cxx::__normal_iterator<IndexTarget*, std::vector<IndexTarget, std::allocator<IndexTarget> > >, std::linear_congruential_engine<unsigned long, 16807ul, 0ul, 2147483647ul>&)@APTPKG_6.0" 1.3~rc2 + (c++)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item::Ops, pkgCache::PkgIterator>(pkgDPkgPM::Item::Ops&&, pkgCache::PkgIterator&&)@APTPKG_6.0" 1.3~rc2 + (c++)"void std::vector<pkgDPkgPM::Item, std::allocator<pkgDPkgPM::Item> >::emplace_back<pkgDPkgPM::Item::Ops, pkgCache::PkgIterator&>(pkgDPkgPM::Item::Ops&&, pkgCache::PkgIterator&)@APTPKG_6.0" 1.3~rc2 + (c++)"void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.3~rc2 + (c++)"void std::vector<std::pair<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::emplace_back<pkgDPkgPM::Item*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(pkgDPkgPM::Item*&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@APTPKG_6.0" 1.3~rc2 + (c++)"APT::String::Join(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.4~beta4 + (c++)"debListParser::ParseDepends(char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, bool const&, bool const&, bool const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.4~beta3 + (c++)"debListParser::ParseDepends(char const*, char const*, APT::StringView&, APT::StringView&, unsigned int&, bool, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.9.0~ + (c++)"pkgTagHash(char const*, unsigned long)@APTPKG_6.0" 1.4~beta1 + (c++|optional=std)"void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<char const (&) [4]>(char const (&) [4])@APTPKG_6.0" 1.4~beta4 + (c++)"FileFd::ReadLine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@APTPKG_6.0" 1.5~beta2~ + (c++)"MaybeAddAuth(FileFd&, URI&)@APTPKG_6.0" 1.5~beta2~ + (c++)"metaIndex::GetDefaultPin() const@APTPKG_6.0" 1.5~beta2~ + (c++)"metaIndex::GetLabel[abi:cxx11]() const@APTPKG_6.0" 1.5~beta2~ + (c++)"metaIndex::GetOrigin[abi:cxx11]() const@APTPKG_6.0" 1.5~beta2~ + (c++)"metaIndex::GetReleaseNotes[abi:cxx11]() const@APTPKG_6.0" 1.5~beta2~ + (c++)"metaIndex::GetVersion[abi:cxx11]() const@APTPKG_6.0" 1.5~beta2~ + (c++)"metaIndex::HasSupportForComponent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@APTPKG_6.0" 1.5~beta2~ + (c++)"pkgAcquireStatus::ReleaseInfoChanges(metaIndex const*, metaIndex const*, std::vector<pkgAcquireStatus::ReleaseInfoChange, std::allocator<pkgAcquireStatus::ReleaseInfoChange> >&&)@APTPKG_6.0" 1.5~beta2~ + (c++)"RemoveFileAt(char const*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.5~beta2~ + (c++|optional=std)"void std::vector<pkgAcquireStatus::ReleaseInfoChange, std::allocator<pkgAcquireStatus::ReleaseInfoChange> >::emplace_back<pkgAcquireStatus::ReleaseInfoChange>(pkgAcquireStatus::ReleaseInfoChange&&)@APTPKG_6.0" 1.5~beta2~ + (c++)"pkgAcqMethod::FetchItem::Proxy[abi:cxx11]()@APTPKG_6.0" 1.6~alpha1~ + (c++)"pkgSystem::IsLocked()@APTPKG_6.0" 1.7.0~alpha3~ + (c++)"pkgSystem::LockInner()@APTPKG_6.0" 1.7.0~alpha3~ + (c++)"pkgSystem::UnLockInner(bool)@APTPKG_6.0" 1.7.0~alpha3~ # gcc-8 artifacts - (c++|optional=std)"std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<IndexTarget> >, std::is_move_constructible<IndexTarget>, std::is_move_assignable<IndexTarget> >::value, void>::type std::swap<IndexTarget>(IndexTarget&, IndexTarget&)@APTPKG_5.90" 1.5~beta2~ - (c++|optional=std)"pkgAcqMethod::SendMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [3], char const (&) [4], char const (&) [3], char const (&) [3], char const (&) [3], int>(char const (&) [3], char const (&) [4], char const (&) [3], char const (&) [3], char const (&) [3], int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [3], char const (&) [4], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [3], char const (&) [4], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], char const (&) [3], int>(char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], char const (&) [3], int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [4], char const (&) [5], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [4], char const (&) [5], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], int>(char const (&) [5], char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [4], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [5], char const (&) [4], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [5], char const (&) [5], char const (&) [4], char const (&) [3], int>(char const (&) [5], char const (&) [5], char const (&) [5], char const (&) [4], char const (&) [3], int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [5], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [5], char const (&) [5], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [6], char const (&) [5], char const (&) [3], char const (&) [3], int>(char const (&) [5], char const (&) [6], char const (&) [5], char const (&) [3], char const (&) [3], int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [6], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [5], char const (&) [6], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [6], char const (&) [5], char const (&) [6], char const (&) [3], char const (&) [3], int>(char const (&) [6], char const (&) [5], char const (&) [6], char const (&) [3], char const (&) [3], int&&)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [6], char const (&) [5], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [6], char const (&) [5], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_5.90" 1.7.0~alpha3~ + (c++|optional=std)"std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<IndexTarget> >, std::is_move_constructible<IndexTarget>, std::is_move_assignable<IndexTarget> >::value, void>::type std::swap<IndexTarget>(IndexTarget&, IndexTarget&)@APTPKG_6.0" 1.5~beta2~ + (c++|optional=std)"pkgAcqMethod::SendMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [3], char const (&) [4], char const (&) [3], char const (&) [3], char const (&) [3], int>(char const (&) [3], char const (&) [4], char const (&) [3], char const (&) [3], char const (&) [3], int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [3], char const (&) [4], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [3], char const (&) [4], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], char const (&) [3], int>(char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], char const (&) [3], int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [4], char const (&) [5], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [4], char const (&) [5], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], int>(char const (&) [5], char const (&) [4], char const (&) [5], char const (&) [4], char const (&) [3], int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [4], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [5], char const (&) [4], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [5], char const (&) [5], char const (&) [4], char const (&) [3], int>(char const (&) [5], char const (&) [5], char const (&) [5], char const (&) [4], char const (&) [3], int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [5], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [5], char const (&) [5], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [6], char const (&) [5], char const (&) [3], char const (&) [3], int>(char const (&) [5], char const (&) [6], char const (&) [5], char const (&) [3], char const (&) [3], int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [5], char const (&) [6], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [5], char const (&) [6], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [6], char const (&) [5], char const (&) [6], char const (&) [3], char const (&) [3], int>(char const (&) [6], char const (&) [5], char const (&) [6], char const (&) [3], char const (&) [3], int&&)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<char const (&) [6], char const (&) [5], char const (&) [6], decltype(nullptr), decltype(nullptr), int>(char const (&) [6], char const (&) [5], char const (&) [6], decltype(nullptr)&&, decltype(nullptr)&&, int&&)@APTPKG_6.0" 1.7.0~alpha3~ * Build-Depends-Package: libapt-pkg-dev - (c++)"ExtractTar::Done()@APTPKG_5.90" 1.1~exp12 - (c++)"ExtractTar::Go(pkgDirStream&)@APTPKG_5.90" 0.8.0 - (c++)"ExtractTar::StartGzip()@APTPKG_5.90" 0.8.0 - (c++)"ExtractTar::ExtractTar(FileFd&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_5.90" 1.0.5 - (c++)"ExtractTar::~ExtractTar()@APTPKG_5.90" 0.8.0 - (c++)"debDebFile::GotoMember(char const*)@APTPKG_5.90" 0.8.0 - (c++)"debDebFile::CheckMember(char const*)@APTPKG_5.90" 0.8.0 - (c++)"debDebFile::ControlExtract::DoItem(pkgDirStream::Item&, int&)@APTPKG_5.90" 0.8.0 - (c++)"debDebFile::ExtractTarMember(pkgDirStream&, char const*)@APTPKG_5.90" 0.9.15.4 - (c++)"debDebFile::ExtractArchive(pkgDirStream&)@APTPKG_5.90" 0.8.0 - (c++)"debDebFile::MemControlExtract::TakeControl(void const*, unsigned long long)@APTPKG_5.90" 1.0.5 - (c++)"debDebFile::MemControlExtract::Read(debDebFile&)@APTPKG_5.90" 0.8.0 - (c++)"debDebFile::MemControlExtract::DoItem(pkgDirStream::Item&, int&)@APTPKG_5.90" 0.8.0 - (c++)"debDebFile::MemControlExtract::Process(pkgDirStream::Item&, unsigned char const*, unsigned long long, unsigned long long)@APTPKG_5.90" 1.0.5 - (c++)"debDebFile::debDebFile(FileFd&)@APTPKG_5.90" 0.8.0 - (c++)"pkgDirStream::FinishedFile(pkgDirStream::Item&, int)@APTPKG_5.90" 0.8.0 - (c++)"pkgDirStream::Fail(pkgDirStream::Item&, int)@APTPKG_5.90" 0.8.0 - (c++)"pkgDirStream::DoItem(pkgDirStream::Item&, int&)@APTPKG_5.90" 0.8.0 - (c++)"ARArchive::LoadHeaders()@APTPKG_5.90" 0.8.0 - (c++)"ARArchive::ARArchive(FileFd&)@APTPKG_5.90" 0.8.0 - (c++)"ARArchive::~ARArchive()@APTPKG_5.90" 0.8.0 - (c++)"ARArchive::FindMember(char const*) const@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for ExtractTar@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for pkgDirStream@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for debDebFile::ControlExtract@APTPKG_5.90" 0.8.0 - (c++)"typeinfo for debDebFile::MemControlExtract@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for ExtractTar@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for pkgDirStream@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for debDebFile::ControlExtract@APTPKG_5.90" 0.8.0 - (c++)"typeinfo name for debDebFile::MemControlExtract@APTPKG_5.90" 0.8.0 - (c++)"vtable for ExtractTar@APTPKG_5.90" 0.8.0 - (c++)"vtable for pkgDirStream@APTPKG_5.90" 0.8.0 - (c++)"vtable for debDebFile::ControlExtract@APTPKG_5.90" 0.8.0 - (c++)"vtable for debDebFile::MemControlExtract@APTPKG_5.90" 0.8.0 + (c++)"ExtractTar::Done()@APTPKG_6.0" 1.1~exp12 + (c++)"ExtractTar::Go(pkgDirStream&)@APTPKG_6.0" 0.8.0 + (c++)"ExtractTar::StartGzip()@APTPKG_6.0" 0.8.0 + (c++)"ExtractTar::ExtractTar(FileFd&, unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.0.5 + (c++)"ExtractTar::~ExtractTar()@APTPKG_6.0" 0.8.0 + (c++)"debDebFile::GotoMember(char const*)@APTPKG_6.0" 0.8.0 + (c++)"debDebFile::CheckMember(char const*)@APTPKG_6.0" 0.8.0 + (c++)"debDebFile::ControlExtract::DoItem(pkgDirStream::Item&, int&)@APTPKG_6.0" 0.8.0 + (c++)"debDebFile::ExtractTarMember(pkgDirStream&, char const*)@APTPKG_6.0" 0.9.15.4 + (c++)"debDebFile::ExtractArchive(pkgDirStream&)@APTPKG_6.0" 0.8.0 + (c++)"debDebFile::MemControlExtract::TakeControl(void const*, unsigned long long)@APTPKG_6.0" 1.0.5 + (c++)"debDebFile::MemControlExtract::Read(debDebFile&)@APTPKG_6.0" 0.8.0 + (c++)"debDebFile::MemControlExtract::DoItem(pkgDirStream::Item&, int&)@APTPKG_6.0" 0.8.0 + (c++)"debDebFile::MemControlExtract::Process(pkgDirStream::Item&, unsigned char const*, unsigned long long, unsigned long long)@APTPKG_6.0" 1.0.5 + (c++)"debDebFile::debDebFile(FileFd&)@APTPKG_6.0" 0.8.0 + (c++)"pkgDirStream::FinishedFile(pkgDirStream::Item&, int)@APTPKG_6.0" 0.8.0 + (c++)"pkgDirStream::Fail(pkgDirStream::Item&, int)@APTPKG_6.0" 0.8.0 + (c++)"pkgDirStream::DoItem(pkgDirStream::Item&, int&)@APTPKG_6.0" 0.8.0 + (c++)"ARArchive::LoadHeaders()@APTPKG_6.0" 0.8.0 + (c++)"ARArchive::ARArchive(FileFd&)@APTPKG_6.0" 0.8.0 + (c++)"ARArchive::~ARArchive()@APTPKG_6.0" 0.8.0 + (c++)"ARArchive::FindMember(char const*) const@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for ExtractTar@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for pkgDirStream@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for debDebFile::ControlExtract@APTPKG_6.0" 0.8.0 + (c++)"typeinfo for debDebFile::MemControlExtract@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for ExtractTar@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for pkgDirStream@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for debDebFile::ControlExtract@APTPKG_6.0" 0.8.0 + (c++)"typeinfo name for debDebFile::MemControlExtract@APTPKG_6.0" 0.8.0 + (c++)"vtable for ExtractTar@APTPKG_6.0" 0.8.0 + (c++)"vtable for pkgDirStream@APTPKG_6.0" 0.8.0 + (c++)"vtable for debDebFile::ControlExtract@APTPKG_6.0" 0.8.0 + (c++)"vtable for debDebFile::MemControlExtract@APTPKG_6.0" 0.8.0 ### gcc artifacts - (c++|optional=std)"std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::~vector()@APTPKG_5.90" 0.8.12 - (c++|optional=std)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag)@APTPKG_5.90" 1.7.0~alpha3~ - (c++|optional=std)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)@APTPKG_5.90" 1.7.0~alpha3~ + (c++|optional=std)"std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::~vector()@APTPKG_6.0" 0.8.12 + (c++|optional=std)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag)@APTPKG_6.0" 1.7.0~alpha3~ + (c++|optional=std)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)@APTPKG_6.0" 1.7.0~alpha3~ ### try to ignore std:: template instances - (c++)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<APT::Configuration::Compressor>(APT::Configuration::Compressor&&)@APTPKG_5.90" 1.9~ - (c++)"void std::vector<APT::StringView*, std::allocator<APT::StringView*> >::emplace_back<APT::StringView*>(APT::StringView*&&)@APTPKG_5.90" 1.9~ - (c++)"void std::vector<std::unique_ptr<FileFd, std::default_delete<FileFd> >, std::allocator<std::unique_ptr<FileFd, std::default_delete<FileFd> > > >::emplace_back<FileFd*>(FileFd*&&)@APTPKG_5.90" 1.9~ - (optional)_ZL6hash32jPKhm._GLOBAL___.._apt_pkg_pkgcache.cc_FB5499C7_0x5f8f5e3a3ed634d9.ifunc@APTPKG_5.90 1.9~ + (c++)"void std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::emplace_back<APT::Configuration::Compressor>(APT::Configuration::Compressor&&)@APTPKG_6.0" 1.9~ + (c++)"void std::vector<APT::StringView*, std::allocator<APT::StringView*> >::emplace_back<APT::StringView*>(APT::StringView*&&)@APTPKG_6.0" 1.9~ + (c++)"void std::vector<std::unique_ptr<FileFd, std::default_delete<FileFd> >, std::allocator<std::unique_ptr<FileFd, std::default_delete<FileFd> > > >::emplace_back<FileFd*>(FileFd*&&)@APTPKG_6.0" 1.9~ + (optional)_ZL6hash32jPKhm._GLOBAL___.._apt_pkg_pkgcache.cc_FB5499C7_0x5f8f5e3a3ed634d9.ifunc@APTPKG_6.0 1.9~ diff --git a/debian/rules b/debian/rules index d94105aff..7997739fa 100755 --- a/debian/rules +++ b/debian/rules @@ -10,6 +10,13 @@ export DPKG_GENSYMBOLS_CHECK_LEVEL=0 export CTEST_OUTPUT_ON_FAILURE=1 + +ifneq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),) + configure_test_flags = -DWITH_TESTS=OFF +else + configure_test_flags = +endif + %: dh $@ --buildsystem=cmake+ninja @@ -30,15 +37,15 @@ override_dh_gencontrol: override_dh_installcron: dh_installcron --name=apt-compat -override_dh_systemd_start: +override_dh_installsystemd: # Do not restart "apt-daily.service" because this script runs # unattended-upgrades. So if apt itself is upgraded as part of # an unattended-upgrades run it would kill itself - dh_systemd_start -papt apt-daily.timer apt-daily-upgrade.timer - dh_systemd_start --remaining-packages + dh_installsystemd -papt apt-daily.timer apt-daily-upgrade.timer + dh_installsystemd -papt --no-restart-on-upgrade --no-restart-after-upgrade --no-start apt-daily.service apt-daily-upgrade.service + dh_installsystemd --remaining-packages override_dh_auto_configure-arch: flags=-DWITH_DOC=OFF override_dh_auto_configure-indep: flags=-DWITH_DOC=ON override_dh_auto_configure-arch override_dh_auto_configure-indep: - dh_auto_configure -- $(flags) - + dh_auto_configure -- $(flags) $(configure_test_flags) diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index ab6074802..e603ec5bb 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -14,7 +14,7 @@ &apt-email; &apt-product; <!-- The last update date --> - <date>2019-05-09T00:00:00Z</date> + <date>2020-01-15T00:00:00Z</date> </refentryinfo> <refmeta> @@ -140,7 +140,10 @@ to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring so 'lo.*' matches 'how-lo' and 'lowest'. If this is undesired, anchor the regular expression - with a '^' or '$' character, or create a more specific regular expression.</para></listitem> + with a '^' or '$' character, or create a more specific regular expression.</para> + <para>Fallback to regular expressions is deprecated in APT 2.0, has been removed in + &apt;, except for anchored expressions, and will be removed from &apt-get; + in a future version. Use &apt-patterns; instead.</para></listitem> </varlistentry> <varlistentry><term><option>reinstall</option></term> diff --git a/doc/apt-patterns.7.xml b/doc/apt-patterns.7.xml index efd4293dc..84063a092 100644 --- a/doc/apt-patterns.7.xml +++ b/doc/apt-patterns.7.xml @@ -13,7 +13,7 @@ &apt-email; &apt-product; <!-- The last update date --> - <date>2019-08-15T00:00:00Z</date> + <date>2020-02-04T00:00:00Z</date> </refentryinfo> <refmeta> @@ -43,21 +43,41 @@ patterns. </para> <variablelist> - <varlistentry><term><code>?and(PATTERN, PATTERN, ...)</code></term> + <varlistentry><term><code>?and(PATTERN, PATTERN, ...)</code></term><term><code>PATTERN PATTERN ...</code></term> <listitem><para>Selects objects where all specified patterns match.</para></listitem> </varlistentry> - <varlistentry><term><code>?false</code></term> + <varlistentry><term><code>?false</code></term><term><code>~F</code></term> <listitem><para>Selects nothing.</para></listitem> </varlistentry> - <varlistentry><term><code>?not(PATTERN)</code></term> + <varlistentry><term><code>?not(PATTERN)</code></term><term><code>!PATTERN</code></term> <listitem><para>Selects objects where PATTERN does not match.</para></listitem> </varlistentry> - <varlistentry><term><code>?or(PATTERN, PATTERN, ...)</code></term> + <varlistentry><term><code>?or(PATTERN, PATTERN, ...)</code></term><term><code>PATTERN | PATTERN | ...</code></term> <listitem><para>Selects objects where at least one of the specified patterns match.</para></listitem> </varlistentry> - <varlistentry><term><code>?true</code></term> + <varlistentry><term><code>?true</code></term><term><code>~T</code></term> <listitem><para>Selects all objects.</para></listitem> </varlistentry> + <varlistentry><term><code>(PATTERN)</code></term> + <listitem><para>Selects the same as <code>PATTERN</code>, can be used to work around precedence, for example, <code>(~ramd64|~ri386)~nfoo</code></para></listitem> + </varlistentry> + </variablelist> + </refsect1> + <refsect1> + <title>Narrowing patterns</title> + <para> + </para> + <variablelist> + <varlistentry><term><code>?all-versions(PATTERN)</code></term> + <listitem><para>Selects packages where all versions match PATTERN. When matching versions instead, same as PATTERN.</para></listitem> + </varlistentry> + <varlistentry><term><code>?any-version(PATTERN)</code></term> + <listitem><para>Selects any version where the pattern matches on the version.</para> + <para>For example, while <code>?and(?version(1),?version(2))</code> matches a package which has one version containing 1 and one version containing 2, <code>?any-version(?and(?version(1),?version(2)))</code> restricts the <code>?and</code> to act on the same version.</para></listitem> + </varlistentry> + <varlistentry><term><code>?narrow(PATTERN...)</code></term> + <listitem><para>Selects any version matching all PATTERNs, short for<code>?any-version(?and(PATTERN...))</code>.</para></listitem> + </varlistentry> </variablelist> </refsect1> <refsect1> @@ -66,46 +86,72 @@ These patterns select specific packages. </para> <variablelist> - <varlistentry><term><code>?architecture(WILDCARD)</code></term> + <varlistentry><term><code>?architecture(WILDCARD)</code></term><term><code>~rWILDCARD</code></term> <listitem><para>Selects packages matching the specified architecture, which may contain wildcards using any.</para></listitem> </varlistentry> - <varlistentry><term><code>?automatic</code></term> + <varlistentry><term><code>?automatic</code></term><term><code>~M</code></term> <listitem><para>Selects packages that were installed automatically.</para></listitem> </varlistentry> - <varlistentry><term><code>?broken</code></term> + <varlistentry><term><code>?broken</code></term><term><code>~b</code></term> <listitem><para>Selects packages that have broken dependencies.</para></listitem> </varlistentry> - <varlistentry><term><code>?config-files</code></term> + <varlistentry><term><code>?config-files</code></term><term><code>~c</code></term> <listitem><para>Selects packages that are not fully installed, but have solely residual configuration files left.</para></listitem> </varlistentry> - <varlistentry><term><code>?essential</code></term> + <varlistentry><term><code>?essential</code></term><term><code>~E</code></term> <listitem><para>Selects packages that have Essential: yes set in their control file.</para></listitem> </varlistentry> <varlistentry><term><code>?exact-name(NAME)</code></term> <listitem><para>Selects packages with the exact specified name.</para></listitem> </varlistentry> - <varlistentry><term><code>?garbage</code></term> + <varlistentry><term><code>?garbage</code></term><term><code>~g</code></term> <listitem><para>Selects packages that can be removed automatically.</para></listitem> </varlistentry> - <varlistentry><term><code>?installed</code></term> + <varlistentry><term><code>?installed</code></term><term><code>~i</code></term> <listitem><para>Selects packages that are currently installed.</para></listitem> </varlistentry> - <varlistentry><term><code>?name(REGEX)</code></term> + <varlistentry><term><code>?name(REGEX)</code></term><term><code>~nREGEX</code></term> <listitem><para>Selects packages where the name matches the given regular expression.</para></listitem> </varlistentry> - <varlistentry><term><code>?obsolete</code></term> + <varlistentry><term><code>?obsolete</code></term><term><code>~o</code></term> <listitem><para>Selects packages that no longer exist in repositories.</para></listitem> </varlistentry> - <varlistentry><term><code>?upgradable</code></term> + <varlistentry><term><code>?upgradable</code></term><term><code>~U</code></term> <listitem><para>Selects packages that can be upgraded (have a newer candidate).</para></listitem> </varlistentry> - <varlistentry><term><code>?virtual</code></term> + <varlistentry><term><code>?virtual</code></term><term><code>~v</code></term> <listitem><para>Selects all virtual packages; that is packages without a version. These exist when they are referenced somewhere in the archive, for example because something depends on that name.</para></listitem> </varlistentry> </variablelist> </refsect1> + <refsect1> + <title>Version patterns</title> + <para> + These patterns select specific versions of a package. + </para> + <variablelist> + <varlistentry><term><code>?archive(REGEX)</code></term><term><code>~AREGEX</code></term> + <listitem><para>Selects versions that come from the archive that matches the specified regular expression. Archive, here, means the values after <code>a=</code> in <command>apt-cache policy</command>.</para></listitem> + </varlistentry> + <varlistentry><term><code>?origin(REGEX)</code></term><term><code>~OREGEX</code></term> + <listitem><para>Selects versions that come from the origin that matches the specified regular expression. Origin, here, means the values after <code>o=</code> in <command>apt-cache policy</command>.</para></listitem> + </varlistentry> + <varlistentry><term><code>?section(REGEX)</code></term><term><code>~sREGEX</code></term> + <listitem><para>Selects versions where the section matches the specified regular expression.</para></listitem> + </varlistentry> + <varlistentry><term><code>?source-package(REGEX)</code></term><term><code>~eREGEX</code></term> + <listitem><para>Selects versions where the source package name matches the specified regular expression.</para></listitem> + </varlistentry> + <varlistentry><term><code>?source-version(REGEX)</code></term> + <listitem><para>Selects versions where the source package version matches the specified regular expression.</para></listitem> + </varlistentry> + <varlistentry><term><code>?version(REGEX)</code></term><term><code>~VREGEX</code></term> + <listitem><para>Selects versions where the version string matching the specified regular expression.</para></listitem> + </varlistentry> + </variablelist> + </refsect1> <refsect1><title>Examples</title> @@ -116,6 +162,9 @@ <varlistentry><term><code>apt purge ?config-files</code></term> <listitem><para>Purge all packages that only have configuration files left</para></listitem> </varlistentry> + <varlistentry><term><code>apt list '~i !~M (~slibs|~sperl|~spython)'</code></term> + <listitem><para>List all manually-installed packages in sections matching libs, perl, or python.</para></listitem> + </varlistentry> </variablelist> </refsect1> @@ -125,9 +174,6 @@ </para> <itemizedlist> <listitem> - <para>Only long forms — the ones starting with ? — are supported</para> - </listitem> - <listitem> <para> Syntax is uniform: If there is an opening parenthesis after a term, it is always assumed to be the beginning of an argument list. </para> @@ -147,6 +193,19 @@ <listitem> <para>A trailing comma is allowed in argument lists</para> </listitem> + <listitem> + <para>?narrow accepts infinite arguments</para> + </listitem> + <listitem> + <para><code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, as this can cause typos to go unnoticed: + Consider <code>?and(...,~poptional)</code>: + this requires the package to have <code>required</code> priority, but + if you do not type the <code>~</code>, it would require the package name to contain <code>poptional</code>.</para> + </listitem> + <listitem> + <para>Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> as <code>A|B</code> are not supported. We + do not believe that the use of <code>|</code> is that common, and the grouping is not necessary without it.</para> + </listitem> </itemizedlist> </refsect1> diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent index 70f643e48..f337055c2 100644 --- a/doc/apt-verbatim.ent +++ b/doc/apt-verbatim.ent @@ -57,6 +57,12 @@ </citerefentry>" > +<!ENTITY apt-patterns "<citerefentry> + <refentrytitle><abbrev>apt-patterns</abbrev></refentrytitle> + <manvolnum>5</manvolnum> + </citerefentry>" +> + <!ENTITY apt-preferences "<citerefentry> <refentrytitle><filename>apt_preferences</filename></refentrytitle> <manvolnum>5</manvolnum> @@ -268,14 +274,14 @@ "> <!-- this will be updated by 'prepare-release' --> -<!ENTITY apt-product-version "1.9.3"> +<!ENTITY apt-product-version "1.9.10"> <!-- (Code)names for various things used all over the place --> <!ENTITY debian-oldstable-codename "stretch"> <!ENTITY debian-stable-codename "buster"> <!ENTITY debian-testing-codename "bullseye"> <!ENTITY debian-stable-version "10"> -<!ENTITY ubuntu-codename "disco"> +<!ENTITY ubuntu-codename "focal"> <!-- good and bad just refers to matching and not matching a pattern… It is not a remark about the specific perl version. diff --git a/doc/apt.8.xml b/doc/apt.8.xml index 1bbae0180..21470cc32 100644 --- a/doc/apt.8.xml +++ b/doc/apt.8.xml @@ -13,7 +13,7 @@ &apt-email; &apt-product; <!-- The last update date --> - <date>2019-05-09T00:00:00Z</date> + <date>2020-02-13T00:00:00Z</date> </refentryinfo> <refmeta> @@ -137,7 +137,7 @@ </para></listitem> </varlistentry> - <varlistentry><term><option>list</option> (work-in-progress)</term> + <varlistentry><term><option>list</option></term> <listitem><para><option>list</option> is somewhat similar to <command>dpkg-query --list</command> in that it can display a list of packages satisfying certain criteria. It supports &glob; patterns for matching package names as diff --git a/doc/apt_auth.conf.5.xml b/doc/apt_auth.conf.5.xml index e7961ef81..5eee43ef4 100644 --- a/doc/apt_auth.conf.5.xml +++ b/doc/apt_auth.conf.5.xml @@ -13,7 +13,7 @@ &apt-email; &apt-product; <!-- The last update date --> - <date>2018-12-03T00:00:00Z</date> + <date>2019-12-02T00:00:00Z</date> </refentryinfo> <refmeta> @@ -50,7 +50,7 @@ Unknown tokens will be ignored. Tokens may be separated by spaces, tabs or newli <variablelist> <varlistentry> -<term><literal>machine</literal> <replaceable>hostname</replaceable>[:<replaceable>port</replaceable>][/<replaceable>path</replaceable>]</term> +<term><literal>machine</literal> <replaceable>[protocol://]</replaceable><replaceable>hostname</replaceable>[:<replaceable>port</replaceable>][/<replaceable>path</replaceable>]</term> <listitem><para>Entries are looked up by searching for the <emphasis><literal>machine</literal></emphasis> token matching the hostname of the URI apt needs login information for. Extending the netrc-format @@ -60,7 +60,8 @@ different login information reside on the same server. A machine token with a pa matches if the path in the URI starts with the path given in the token. Once a match is made, the subsequent tokens are processed, stopping when the end of file is reached or another <emphasis><literal>machine</literal></emphasis> -token is encountered.</para></listitem> +token is encountered.</para> +<para>If protocol is not specified, the entry only matches https and tor+https.</para></listitem> </varlistentry> <varlistentry> @@ -80,9 +81,9 @@ token is encountered.</para></listitem> <refsect1><title>Example</title> <para>Supplying login information for a user named <literal>apt</literal> with the password <literal>debian</literal> for the &sources-list; entry -<literallayout>deb http://example.org/debian &debian-stable-codename; main</literallayout> +<literallayout>deb https://example.org/debian &debian-stable-codename; main</literallayout> could be done in the entry directly: -<literallayout>deb http://apt:debian@example.org/debian &debian-stable-codename; main</literallayout> +<literallayout>deb https://apt:debian@example.org/debian &debian-stable-codename; main</literallayout> Alternatively an entry like the following in the auth.conf file could be used: <literallayout>machine example.org login apt @@ -95,7 +96,7 @@ machine example.org/debian login apt password debian machine example.org/debian/ login apt password debian </literallayout> On the other hand neither of the following lines apply: -<literallayout>machine example.org:80 login apt password debian +<literallayout>machine example.org:443 login apt password debian machine example.org/deb/ login apt password debian machine example.org/ubuntu login apt password debian machine example.orga login apt password debian @@ -111,6 +112,9 @@ also the implementation slightly. For maximum backward compatibility you should avoid multiple <literal>machine</literal> tokens with the same hostname, but if you need multiple they should all have a path specified in the <literal>machine</literal> token.</para> +<para>Login information in auth.conf are more flexible than those in sources.list. For +example, login information can be specified for parts of a repository only, or if the +sources.list entry redirects elsewhere, login information for the redirect destination can be supplied.</para> </refsect1> <refsect1> diff --git a/doc/apt_preferences.5.xml b/doc/apt_preferences.5.xml index cac9a96e1..dacf3dc21 100644 --- a/doc/apt_preferences.5.xml +++ b/doc/apt_preferences.5.xml @@ -303,7 +303,28 @@ a &glob; expression in itself. </para> </refsect2> +<refsect2><title>Pinning by source package</title> +<para>APT supports pinning by source packages. To pin by a source package, +prepend "src:" to the package name.</para> +<para>For example, to pin all binaries produced by the apt source package +of this APT's version to 990, you can do:</para> +<programlisting> +Package: src:apt +Pin: version &apt-product-version; +Pin-Priority: 990 +</programlisting> + +<para>Source package pinning can be combined with regular expressions and +glob patterns, and can also take a binary architecture.</para> +<para>For example, let's pin all binaries for all architectures produced by +any source package containing apt in its name to 990:</para> +<programlisting> +Package: src:*apt*:any +Pin: version * +Pin-Priority: 990 +</programlisting> +</refsect2> diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 25378a809..cc70465d6 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -695,6 +695,7 @@ apt::cmd::list-include-summary "<BOOL>"; apt::cmd::use-regexp "<BOOL>"; apt::cmd::all-versions "<BOOL>"; apt::cmd::format "<STRING>"; +apt::cmd::pattern-only "<BOOL>"; // internal apt::config::dump::emptyvalue "<BOOL>"; apt::config::dump::format "<STRING>"; diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot index 6318c33bb..5c91571d8 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 1.9.3\n" +"Project-Id-Version: apt-doc 1.9.10\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\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" @@ -673,11 +673,6 @@ msgid "" "searching for new packages to install." msgstr "" -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -689,6 +684,11 @@ msgid "" "(<option>--all-versions</option>) versions." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -899,6 +899,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from " +"&apt-get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml +msgid "" "<literal>reinstall</literal> is an alias for <literal>install " "--reinstall</literal>." msgstr "" @@ -6976,7 +6984,7 @@ msgstr "" #: apt_auth.conf.5.xml msgid "" "<literal>machine</literal> " -"<replaceable>hostname</replaceable>[:<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<replaceable>[protocol://]</replaceable><replaceable>hostname</replaceable>[:<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> @@ -6994,6 +7002,11 @@ msgid "" "<emphasis><literal>machine</literal></emphasis> token is encountered." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<literal>login</literal> <replaceable>name</replaceable>" @@ -7022,13 +7035,13 @@ msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, no-wrap -msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, no-wrap -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -7059,7 +7072,7 @@ msgstr "" #: apt_auth.conf.5.xml #, no-wrap msgid "" -"machine example.org:80 login apt password debian\n" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -7097,6 +7110,15 @@ msgid "" "the <literal>machine</literal> token." msgstr "" +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in " +"sources.list. For example, login information can be specified for parts of a " +"repository only, or if the sources.list entry redirects elsewhere, login " +"information for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<filename>/etc/apt/auth.conf</filename>" @@ -7757,6 +7779,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -7767,6 +7794,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -7777,6 +7809,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -7787,6 +7824,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -7797,11 +7839,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short " +"for<code>?any-version(?and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -7817,6 +7924,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -7829,6 +7941,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -7839,6 +7956,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -7849,6 +7971,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -7861,6 +7988,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -7881,6 +8013,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -7891,6 +8028,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -7901,6 +8043,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -7911,6 +8058,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -7921,6 +8073,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -7931,6 +8088,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -7939,6 +8101,113 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Version patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -7961,6 +8230,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -7975,11 +8256,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -8015,6 +8291,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider " +"<code>?and(...,~poptional)</code>: this requires the package to have " +"<code>required</code> priority, but if you do not type the <code>~</code>, " +"it would require the package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml msgid "&apt-get;, &apt;" diff --git a/doc/po/de.po b/doc/po/de.po index 9ec060dba..b1168a83a 100644 --- a/doc/po/de.po +++ b/doc/po/de.po @@ -1,14 +1,14 @@ # Translation of apt/doc to German # Copyright (C) 1997, 1998, 1999 Jason Gunthorpe and others. # This file is distributed under the same license as the apt package. -# Chris Leick <c.leick@vollbio.de>, 2009-2018. +# Chris Leick <c.leick@vollbio.de>, 2009-2019. # msgid "" msgstr "" -"Project-Id-Version: apt 1.6\n" +"Project-Id-Version: apt 1.9.2\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" -"PO-Revision-Date: 2018-10-21 12:58+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" +"PO-Revision-Date: 2019-08-15 10:22+0200\n" "Last-Translator: Chris Leick <c.leick@vollbio.de>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" "Language: de\n" @@ -818,6 +818,9 @@ msgid "" "Depends. It also handles conflicts, by prefixing an argument with <literal>" "\"Conflicts: \"</literal>." msgstr "" +"<option>satisfy</option> erfüllt Abhängigkeitszeichenketten, wie sie in " +"Build-Depends benutzt werden. Es handhabt auch Konflikte, indem es einem " +"Argument ein <literal>\"Conflicts: \"</literal> voranstellt." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml @@ -825,6 +828,8 @@ msgid "" "Example: <literal>apt satisfy \"foo, bar (>= 1.0)\" \"Conflicts: baz, fuzz" "\"</literal>" msgstr "" +"Beispiel: <literal>apt satisfy \"foo, bar (>= 1.0)\" \"Conflicts: baz, fuzz" +"\"</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt.8.xml @@ -861,11 +866,6 @@ msgstr "" "bevor Sie &apt; gestatten, ein Paket zu entfernen oder wenn Sie neue Pakete " "zur Installation suchen." -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "(in Arbeit)" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -884,6 +884,11 @@ msgstr "" "werden kann (<option>--upgradeable</option>) oder allen verfügbaren " "(<option>--all-versions</option>)." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "(in Arbeit)" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1194,12 +1199,20 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml -#, fuzzy -#| msgid "the <literal>Archive:</literal> or <literal>Suite:</literal> line" +msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml msgid "" "<literal>reinstall</literal> is an alias for <literal>install --reinstall</" "literal>." -msgstr "die <literal>Archive:</literal>- oder <literal>Suite:</literal>-Zeile" +msgstr "" +"<literal>reinstall</literal> ist ein Alias für <literal>install --reinstall</" +"literal>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -1254,6 +1267,9 @@ msgid "" "The arguments are interpreted as binary and source package names. See the " "<option>--only-source</option> option if you want to change that." msgstr "" +"Die Argumente werden als Binär- und Quellpaketnamen interpretiert. Falls Sie " +"dies ändern möchten, sehen Sie sich die Option <option>--only-source</" +"option> an." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -1335,6 +1351,9 @@ msgid "" "The arguments are interpreted as binary or source package names. See the " "<option>--only-source</option> option if you want to change that." msgstr "" +"Die Argumente werden als Binär- oder Quellpaketnamen interpretiert. Falls " +"Sie dies ändern möchten, sehen Sie sich die Option <option>--only-source</" +"option> an." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -1345,6 +1364,12 @@ msgid "" "with <literal>\"Conflicts: \"</literal> to unsatisfy the dependency string. " "Multiple strings of the same type can be specified." msgstr "" +"<literal>satisfy</literal> veranlasst apt-get, die angegebenen " +"Abhängigkeitszeichenketten zu erfüllen. Die Abhängigkeitszeichenketten " +"könnten Bauprofile und Architekturbeschränkungslisten in ihren " +"Bauabhängigkeiten haben. Ihnen kann wahlweise <literal>\"Conflicts: \"</" +"literal> vorangestellt sein, um die Abhängigkeitszeichenkette nicht zu " +"erfüllen. Es dürfen mehrere Zeichenketten desselben Typs angegeben werden." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -1352,12 +1377,16 @@ msgid "" "Example: <literal>apt-get satisfy \"foo\" \"Conflicts: bar\" \"baz (>> " "1.0) | bar (= 2.0), moo\"</literal>" msgstr "" +"Beispiel: <literal>apt-get satisfy \"foo\" \"Conflicts: bar\" \"baz (>" +"> 1.0) | bar (= 2.0), moo\"</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml msgid "" "The legacy operator '</>' is not supported, use '<=/>=' instead." msgstr "" +"Der veraltete Operator »</>« wird nicht unterstützt, benutzen Sie " +"stattdessen »<=/>=«." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -3126,11 +3155,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-mark.8.xml -#, fuzzy -#| msgid "" -#| "<literal>auto</literal> is used to mark a package as being automatically " -#| "installed, which will cause the package to be removed when no more " -#| "manually installed packages depend on this package." msgid "" "<literal>minimize-manual</literal> is used to mark (transitive) dependencies " "of metapackages as automatically installed. This can be used after an " @@ -3138,9 +3162,11 @@ msgid "" "packages; or continuously on systems managed by system configuration " "metapackages." msgstr "" -"<literal>auto</literal> wird benutzt, um ein Paket als automatisch " -"installiert zu markieren, was veranlasst, dass das Paket entfernt wird, wenn " -"keine manuell installierten Pakete von ihm abhängen." +"<literal>minimize-manual</literal> wird benutzt, um (transitive) " +"Abhängigkeiten von Metapaketen als automatisch installiert zu markieren. " +"Dies kann zum Beispiel nach einer Installation benutzt werden, um die Anzahl " +"manuell installierter Pakete gering zu halten oder stetig auf Systemen, die " +"durch Systemkonfigurations-Metapakete verwaltet werden." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-mark.8.xml @@ -5592,6 +5618,10 @@ msgid "" "used when running dpkg. It may be set to any valid value of that environment " "variable; or the empty string, in which case the variable is not changed." msgstr "" +"Dies ist eine Zeichenkette, die beim Ausführen von Dpkg die " +"Umgebungsvariable <envar>PATH</envar> definiert. Sie kann auf jeden Wert " +"dieser Umgebungsvariable oder eine leere Zeichenkette gesetzt werden, falls " +"sich die Variable nicht geändert hat." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.conf.5.xml @@ -7705,7 +7735,7 @@ msgstr "" "Derivaten benutzte Dateien, wie Metadatendateien, die APT von den " "konfigurierten Quellen herunterlädt oder der Datei <filename>debian/control</" "filename> in einem Debian-Quellpaket. Individuelle Einträge werden durch " -"eine leere Zeile getrennt: Zusätzliche leere Zeilen werden ignoriert und " +"eine leere Zeile getrennt; zusätzliche leere Zeilen werden ignoriert und " "<literal>#</literal>-Zeichen am Anfang einer Zeile kennzeichnen die ganze " "Zeile als Kommentar. Ein Eintrag kann daher deaktiviert werden, indem jede " "Zeile, die zum Absatz gehört, auskommentiert wird. Es ist üblicherweise " @@ -8129,20 +8159,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> #: sources.list.5.xml -#, fuzzy -#| msgid "" -#| "<option>Signed-By</option> (<option>signed-by</option>) is either an " -#| "absolute path to a keyring file (has to be accessible and readable for " -#| "the <literal>_apt</literal> user, so ensure everyone has read-permissions " -#| "on the file) or one or more fingerprints of keys either in the " -#| "<filename>trusted.gpg</filename> keyring or in the keyrings in the " -#| "<filename>trusted.gpg.d/</filename> directory (see <command>apt-key " -#| "fingerprint</command>). If the option is set, only the key(s) in this " -#| "keyring or only the keys with these fingerprints are used for the &apt-" -#| "secure; verification of this repository. Defaults to the value of the " -#| "option with the same name if set in the previously acquired " -#| "<filename>Release</filename> file. Otherwise all keys in the trusted " -#| "keyrings are considered valid signers for this repository." msgid "" "<option>Signed-By</option> (<option>signed-by</option>) is an option to " "require a repository to pass &apt-secure; verification with a certain set of " @@ -8162,18 +8178,25 @@ msgid "" "(only fingerprints can be specified there through). Otherwise all keys in " "the trusted keyrings are considered valid signers for this repository." msgstr "" -"<option>Signed-By</option> (<option>signed-by</option>) ist entweder ein " -"absoluter Pfad zu einer Schlüsselbunddatei (muss für den Benutzer von " -"<literal>_apt</literal> zugänglich und lesbar sein, sorgen Sie also dafür, " -"dass jeder Leserechte an der Datei hat) oder einer oder mehrere " -"Fingerabdrücke von Schlüsseln, die entweder im <filename>trusted.gpg</" -"filename>-Schlüsselbund oder in den Schlüsselbunden im Verzeichnis " -"<filename>trusted.gpg.d/</filename> liegen (siehe <command>apt-key " -"fingerprint</command>). Falls die Option gesetzt ist, wird/werden nur der/" -"die Schlüssel in diesem Schlüsselbund oder nur die Schlüssel mit diesen " -"Fingerabdrücken für die &apt-secure;-Überprüfung dieses Depots benutzt. Sie " -"ist auf den Wert der Option mit demselben Namen voreingestellt, falls sie in " -"der vorher beschafften <filename>Release</filename>-Datei gesetzt ist. " +"<option>Signed-By</option> (<option>signed-by</option>) ist eine Option, die " +"erfordert, dass ein Depot die &apt-secure;-Prüfung mit einem bestimmten Satz " +"von Schlüsseln, statt mit allen vertrauenswürdigen Schlüsseln, durchläuft, " +"die für APT konfiguriert sind. Sie wird als eine Liste absoluter Pfade zu " +"Schlüsselbunddateien angegeben (müssen für den Systembenutzer <literal>_apt</" +"literal> zugreif- und lesbar sein, stellen Sie also sicher, dass jedermann " +"Leserechte für die Datei hat) sowie Fingerabdrücke von Schlüsseln, um diese " +"aus Schlüsselbunden auszuwählen. Falls keine Schlüsselbunddateien angegeben " +"wurden, sind der Schlüsselbund <filename>trusted.gpg</filename> und alle " +"Schlüsselbunde im Verzeichnis <filename>trusted.gpg.d/</filename> " +"voreingestellt (siehe <command>apt-key fingerprint</command>). Falls kein " +"Fingerabdruck angegeben wurde, werden alle Schlüssel in den Schlüsselbunden " +"ausgewählt. Ein Fingerabdruck wird außerdem alle Signaturen eines " +"Unterschlüssels dieses Schlüssels akzeptieren, falls dies nicht gewünscht " +"wird, kann ein Ausrufezeichen (<literal>!</literal>) an den Fingerabdruck " +"angehängt werden, um dieses Verhalten zu deaktivieren. Die Option ist auf " +"den Wert der Option mit demselben Namen voreingestellt, falls sie in der " +"vorher beschafften <filename>Release</filename>-Datei dieses Depots gesetzt " +"ist (allerdings können dadurch nur Fingerabdrücke angegeben werden). " "Andernfalls werden alle Schlüssel in den vertrauenswürdigen Schlüsselbunden " "als gültige Unterzeichner für dieses Depot angesehen." @@ -9941,19 +9964,15 @@ msgstr "" #. type: Content of: <refentry><refsect1><para> #: apt_auth.conf.5.xml -#, fuzzy -#| msgid "" -#| "The APT auth.conf file <filename>/etc/apt/auth.conf</filename> can be " -#| "used to store login information in a netrc-like format with restrictive " -#| "file permissions." msgid "" "The APT auth.conf file <filename>/etc/apt/auth.conf</filename>, and .conf " "files inside <filename>/etc/apt/auth.conf.d</filename> can be used to store " "login information in a netrc-like format with restrictive file permissions." msgstr "" -"Die APT-Auth.conf-Datei <filename>/etc/apt/auth.conf</filename> kann benutzt " +"Die APT-Auth.conf-Datei <filename>/etc/apt/auth.conf</filename> und .conf-" +"Dateien innerhalb <filename>/etc/apt/auth.conf.d</filename> können benutzt " "werden, um Anmeldeinformationen in einem Netrc-ähnlichen Format mit " -"einschränkenden Dateizugriffsrechten gespeichert." +"beschränkten Dateizugriffsrechten zu speichern." #. type: Content of: <refentry><refsect1><title> #: apt_auth.conf.5.xml @@ -9981,9 +10000,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml +#, fuzzy +#| msgid "" +#| "<literal>machine</literal> <replaceable>hostname</replaceable>[:" +#| "<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" "<literal>machine</literal> <replaceable>Rechnername</replaceable>[:" "<replaceable>Port</replaceable>][/<replaceable>Pfad</replaceable>]" @@ -10014,6 +10038,12 @@ msgstr "" "Kürzel verarbeitet. Dies endet, wenn das Dateiende erreicht wurde oder ein " "anderes <emphasis><literal>machine</literal></emphasis>-Kürzel auftritt." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<literal>login</literal> <replaceable>name</replaceable>" @@ -10041,14 +10071,16 @@ msgstr "Beispiel" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb http://example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb http://apt:debian@example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -10083,9 +10115,15 @@ msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap +#, fuzzy, no-wrap +#| msgid "" +#| "machine example.org:80 login apt password debian\n" +#| "machine example.org/deb/ login apt password debian\n" +#| "machine example.org/ubuntu login apt password debian\n" +#| "machine example.orga login apt password debian\n" +#| "machine example.net login apt password debian\n" msgid "" -"machine example.org:80 login apt password debian\n" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -10147,6 +10185,15 @@ msgstr "" "falls Sie aber mehrere benötigen, sollte für alle ein Pfad im " "<literal>machine</literal>-Kürzel angegeben werden." +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<filename>/etc/apt/auth.conf</filename>" @@ -10163,23 +10210,17 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml -#, fuzzy -#| msgid "<filename>/etc/apt/auth.conf</filename>" msgid "<filename>/etc/apt/auth.conf.d/*.conf</filename>" -msgstr "<filename>/etc/apt/auth.conf</filename>" +msgstr "<filename>/etc/apt/auth.conf.d/*.conf</filename>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt_auth.conf.5.xml -#, fuzzy -#| msgid "" -#| "Login information for APT sources and proxies in a netrc-like format. " -#| "Configuration Item: <literal>Dir::Etc::netrc</literal>." msgid "" "Login information for APT sources and proxies in a netrc-like format. " "Configuration Item: <literal>Dir::Etc::netrcparts</literal>." msgstr "" "Anmeldeinformationen für APT-Quellen und -Proxys in einem Netrc-ähnlichen " -"Format. Konfigurationselement: <literal>Dir::Etc::netrc</literal>." +"Format. Konfigurationselement: <literal>Dir::Etc::netrcparts</literal>." #. type: Content of: <refentry><refsect1><para> #: apt_auth.conf.5.xml @@ -11135,6 +11176,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -11145,6 +11191,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -11155,6 +11206,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -11165,6 +11221,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -11175,11 +11236,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -11195,6 +11321,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11207,6 +11338,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -11217,6 +11353,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -11227,6 +11368,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11239,6 +11385,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -11259,6 +11410,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -11269,6 +11425,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -11279,6 +11440,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -11289,6 +11455,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -11299,6 +11470,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -11309,6 +11485,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11317,6 +11498,116 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "Version &apt-product-version;" +msgid "Version patterns" +msgstr "Version &apt-product-version;" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -11339,6 +11630,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -11353,11 +11656,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -11393,6 +11691,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/es.po b/doc/po/es.po index 6ed290322..40407efbd 100644 --- a/doc/po/es.po +++ b/doc/po/es.po @@ -38,7 +38,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2014-07-04 01:31+0200\n" "Last-Translator: Omar Campagne <ocampagne@gmail.com>\n" "Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n" @@ -899,11 +899,6 @@ msgid "" "searching for new packages to install." msgstr "" -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -915,6 +910,11 @@ msgid "" "option>) versions." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1222,6 +1222,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml +msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml #, fuzzy #| msgid "the <literal>Archive:</literal> or <literal>Suite:</literal> line" msgid "" @@ -9761,8 +9769,9 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> @@ -9780,6 +9789,12 @@ msgid "" "emphasis> token is encountered." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -9815,14 +9830,14 @@ msgstr "Ejemplos" #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -9853,7 +9868,7 @@ msgstr "" #: apt_auth.conf.5.xml #, no-wrap msgid "" -"machine example.org:80 login apt password debian\n" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -9891,6 +9906,15 @@ msgid "" "the <literal>machine</literal> token." msgstr "" +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -10636,6 +10660,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -10646,6 +10675,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -10656,6 +10690,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -10666,6 +10705,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -10676,11 +10720,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -10696,6 +10805,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10708,6 +10822,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -10718,6 +10837,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -10728,6 +10852,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10740,6 +10869,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -10760,6 +10894,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -10770,6 +10909,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -10780,6 +10924,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -10790,6 +10939,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -10800,6 +10954,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -10810,6 +10969,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10818,6 +10982,114 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Version patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -10840,6 +11112,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -10854,11 +11138,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -10894,6 +11173,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/fr.po b/doc/po/fr.po index b9b6b2e76..2062320e9 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 1.8.0\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2019-05-01 17:00+0100\n" "Last-Translator: Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\n" @@ -855,11 +855,6 @@ msgstr "" "d'autoriser &apt; à supprimer un paquet ou lors d'une recherche de nouveaux " "paquets à installer." -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "(travail en cours)" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -878,6 +873,11 @@ msgstr "" "mises à jour <option>--upgradeable</option>, ou toutes les versions " "disponibles <option>--all-versions</option>." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "(travail en cours)" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1190,6 +1190,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml +msgid "" "<literal>reinstall</literal> is an alias for <literal>install --reinstall</" "literal>." msgstr "" @@ -3609,7 +3617,7 @@ msgid "" "clearsign -o InRelease Release</command> and <command>gpg -abs -o Release." "gpg Release</command>." msgstr "" -"<emphasis>le signer</emphasis>, avec les commande <command>gpg -- clearsign -" +"<emphasis>le signer</emphasis>, avec les commandes <command>gpg --clearsign -" "o InRelease Release</command> et <command>gpg -abs -o Release.gpg Release</" "command>." @@ -9941,9 +9949,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml +#, fuzzy +#| msgid "" +#| "<literal>machine</literal> <replaceable>hostname</replaceable>[:" +#| "<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" "<literal>machine</literal> <replaceable>nom d'hôte</replaceable>[:" "<replaceable>port</replaceable>][/<replaceable>chemin</replaceable>]" @@ -9975,6 +9988,12 @@ msgstr "" "lorsque la fin du fichier est atteinte ou qu'un autre jeton de " "<emphasis><literal>machine</literal></emphasis> est rencontré." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<literal>login</literal> <replaceable>name</replaceable>" @@ -10002,14 +10021,16 @@ msgstr "Exemple" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb http://example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb http://apt:debian@example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -10044,9 +10065,15 @@ msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "" -"machine example.org:80 login apt password debian\n" +#, fuzzy, no-wrap +#| msgid "" +#| "machine example.org:80 login apt password debian\n" +#| "machine example.org/deb/ login apt password debian\n" +#| "machine example.org/ubuntu login apt password debian\n" +#| "machine example.orga login apt password debian\n" +#| "machine example.net login apt password debian\n" +msgid "" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -10107,6 +10134,15 @@ msgstr "" "nom d'hôte, mais si vous devez en avoir plusieurs, il faudrait qu'un chemin " "soit précisé dans le jeton de <literal>machine</literal>." +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<filename>/etc/apt/auth.conf</filename>" @@ -11074,6 +11110,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -11084,6 +11125,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -11094,6 +11140,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -11104,6 +11155,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -11114,11 +11170,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -11134,6 +11255,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11146,6 +11272,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -11156,6 +11287,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -11166,6 +11302,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11178,6 +11319,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -11198,6 +11344,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -11208,6 +11359,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -11218,6 +11374,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -11228,6 +11389,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -11238,6 +11404,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -11248,6 +11419,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11256,6 +11432,116 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "Version &apt-product-version;" +msgid "Version patterns" +msgstr "Version &apt-product-version;" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -11278,6 +11564,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -11292,11 +11590,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -11332,6 +11625,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/it.po b/doc/po/it.po index 6cb1358be..432c466ec 100644 --- a/doc/po/it.po +++ b/doc/po/it.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2017-03-27 19:05+0200\n" "Last-Translator: Beatrice Torracca <beatricet@libero.it>\n" "Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n" @@ -905,11 +905,6 @@ msgstr "" "permettere ad &apt; di rimuovere un pacchetto o quando si cercano nuovi " "pacchetti da installare." -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "(lavoro-in-corso)" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -927,6 +922,11 @@ msgstr "" "versioni installate (<option>--installed</option>), aggiornabili (<option>--" "upgradeable</option>) o disponibili (<option>--all-versions</option>)." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "(lavoro-in-corso)" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1235,6 +1235,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml +msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml #, fuzzy #| msgid "" #| "A new <literal>list</literal> command is available similar to " @@ -9905,8 +9913,9 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> @@ -9924,6 +9933,12 @@ msgid "" "emphasis> token is encountered." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -9959,14 +9974,14 @@ msgstr "Esempi" #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -9997,7 +10012,7 @@ msgstr "" #: apt_auth.conf.5.xml #, no-wrap msgid "" -"machine example.org:80 login apt password debian\n" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -10035,6 +10050,15 @@ msgid "" "the <literal>machine</literal> token." msgstr "" +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -10812,6 +10836,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -10822,6 +10851,13 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~F</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -10832,6 +10868,13 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>!PATTERN</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -10842,6 +10885,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -10852,11 +10900,84 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~T</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>(PATTERN)</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "Packages" +msgid "Narrowing patterns" +msgstr "Packages" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml #, fuzzy @@ -10874,6 +10995,13 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~rWILDCARD</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10886,6 +11014,13 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~M</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -10896,6 +11031,13 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~b</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -10906,6 +11048,13 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~c</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10918,6 +11067,13 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~E</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -10938,6 +11094,13 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~g</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -10950,6 +11113,13 @@ msgstr "" msgid "<code>?installed</code>" msgstr "<option>--installed</option>" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~i</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -10960,6 +11130,13 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~nREGEX</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -10970,6 +11147,13 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~o</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -10980,6 +11164,13 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~U</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -10990,6 +11181,13 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~v</code>" +msgstr "<option>--installed</option>" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10998,6 +11196,134 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "Packages" +msgid "Version patterns" +msgstr "Packages" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>?archive(REGEX)</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~AREGEX</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>?origin(REGEX)</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~OREGEX</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>?section(REGEX)</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~sREGEX</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~eREGEX</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>?version(REGEX)</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "<option>--installed</option>" +msgid "<code>~VREGEX</code>" +msgstr "<option>--installed</option>" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -11020,6 +11346,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -11034,11 +11372,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -11074,6 +11407,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/ja.po b/doc/po/ja.po index 6c2cbf2ba..5eaecbb73 100644 --- a/doc/po/ja.po +++ b/doc/po/ja.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 1.4\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2017-01-06 04:50+0900\n" "Last-Translator: Takuma Yamada <tyamada@takumayamada.com>\n" "Language-Team: Japanese <debian-japanese@lists.debian.org>\n" @@ -894,11 +894,6 @@ msgstr "" "å«ã¿ã¾ã™ã€‚例ãˆã° &apt; ã«ãƒ‘ッケージã®å‰Šé™¤ã‚’ã•ã›ã‚‹å‰ã‚„ã€ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹æ–°ã—ã„" "パッケージを検索ã™ã‚‹ã¨ãã«ã€ã“ã®æƒ…å ±ã‚’è¦‹ã¦å‚考ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "(作æ¥ä¸)" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -916,6 +911,11 @@ msgstr "" "versions</option>) ã®ä¸€è¦§ã‚ªãƒ—ションã§ã‚‚ã€ãƒ‘ッケージåをマッãƒã•ã›ã‚‹ &glob; パ" "ターンをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "(作æ¥ä¸)" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1210,6 +1210,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml +msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml #, fuzzy #| msgid "the <literal>Archive:</literal> or <literal>Suite:</literal> line" msgid "" @@ -9523,8 +9531,9 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> @@ -9542,6 +9551,12 @@ msgid "" "emphasis> token is encountered." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -9577,14 +9592,14 @@ msgstr "サンプル" #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -9615,7 +9630,7 @@ msgstr "" #: apt_auth.conf.5.xml #, no-wrap msgid "" -"machine example.org:80 login apt password debian\n" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -9653,6 +9668,15 @@ msgid "" "the <literal>machine</literal> token." msgstr "" +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<filename>/etc/apt/auth.conf</filename>" @@ -10417,6 +10441,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -10427,6 +10456,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -10437,6 +10471,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -10447,6 +10486,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -10457,11 +10501,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -10477,6 +10586,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10489,6 +10603,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -10499,6 +10618,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -10509,6 +10633,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10521,6 +10650,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -10541,6 +10675,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -10551,6 +10690,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -10561,6 +10705,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -10571,6 +10720,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -10581,6 +10735,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -10591,6 +10750,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -10599,6 +10763,116 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "Version &apt-product-version;" +msgid "Version patterns" +msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ &apt-product-version;" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -10621,6 +10895,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -10635,11 +10921,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -10675,6 +10956,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/nl.po b/doc/po/nl.po index 55ec72034..ebf1a8567 100644 --- a/doc/po/nl.po +++ b/doc/po/nl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 1.8.0~rc3\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2019-02-16 20:46+0100\n" "Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n" "Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n" @@ -914,11 +914,6 @@ msgstr "" "vooraleer u &apt; toestaat om een pakket te verwijderen of bij het zoeken " "naar nieuw te installeren pakketten." -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "(werk-in-uitvoering)" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -937,6 +932,11 @@ msgstr "" "opwaardeerbare (<option>--upgradable</option>) of alle beschikbare " "(<option>--all-versions</option>) versies weer te geven." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "(werk-in-uitvoering)" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1257,6 +1257,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml +msgid "" "<literal>reinstall</literal> is an alias for <literal>install --reinstall</" "literal>." msgstr "" @@ -10120,9 +10128,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml +#, fuzzy +#| msgid "" +#| "<literal>machine</literal> <replaceable>hostname</replaceable>[:" +#| "<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" "<literal>machine</literal> <replaceable>computernaam</replaceable>[:" "<replaceable>poort</replaceable>][/<replaceable>pad</replaceable>]" @@ -10155,6 +10168,12 @@ msgstr "" "wordt of tot een ander trefwoord <emphasis><literal>machine</literal></" "emphasis> gevonden wordt." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<literal>login</literal> <replaceable>name</replaceable>" @@ -10182,14 +10201,16 @@ msgstr "Voorbeeld" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb http://example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb http://apt:debian@example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -10224,9 +10245,15 @@ msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "" -"machine example.org:80 login apt password debian\n" +#, fuzzy, no-wrap +#| msgid "" +#| "machine example.org:80 login apt password debian\n" +#| "machine example.org/deb/ login apt password debian\n" +#| "machine example.org/ubuntu login apt password debian\n" +#| "machine example.orga login apt password debian\n" +#| "machine example.net login apt password debian\n" +msgid "" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -10287,6 +10314,15 @@ msgstr "" "meerdere nodig heeft, moet er bij alle in het trefwoord <literal>machine</" "literal> een pad opgegeven worden." +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<filename>/etc/apt/auth.conf</filename>" @@ -11271,6 +11307,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -11281,6 +11322,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -11291,6 +11337,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -11301,6 +11352,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -11311,11 +11367,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -11331,6 +11452,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11343,6 +11469,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -11353,6 +11484,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -11363,6 +11499,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11375,6 +11516,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -11395,6 +11541,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -11405,6 +11556,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -11415,6 +11571,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -11425,6 +11586,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -11435,6 +11601,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -11445,6 +11616,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11453,6 +11629,116 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "Version &apt-product-version;" +msgid "Version patterns" +msgstr "Versie &apt-product-version;" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -11475,6 +11761,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -11489,11 +11787,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -11529,6 +11822,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/pl.po b/doc/po/pl.po index 6f7847882..e57ef8da3 100644 --- a/doc/po/pl.po +++ b/doc/po/pl.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2014-07-04 02:13+0200\n" "Last-Translator: Robert Luberda <robert@debian.org>\n" "Language-Team: Polish <manpages-pl-list@lists.sourceforge.net>\n" @@ -861,11 +861,6 @@ msgid "" "searching for new packages to install." msgstr "" -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -877,6 +872,11 @@ msgid "" "option>) versions." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1200,6 +1200,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml +msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml #, fuzzy #| msgid "the <literal>Archive:</literal> or <literal>Suite:</literal> line" msgid "" @@ -8971,8 +8979,9 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> @@ -8990,6 +8999,12 @@ msgid "" "emphasis> token is encountered." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -9025,14 +9040,14 @@ msgstr "PrzykÅ‚ady" #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, fuzzy, no-wrap #| msgid "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -9063,7 +9078,7 @@ msgstr "" #: apt_auth.conf.5.xml #, no-wrap msgid "" -"machine example.org:80 login apt password debian\n" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -9101,6 +9116,15 @@ msgid "" "the <literal>machine</literal> token." msgstr "" +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -9793,6 +9817,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -9803,6 +9832,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -9813,6 +9847,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -9823,6 +9862,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -9833,11 +9877,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -9853,6 +9962,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -9865,6 +9979,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -9875,6 +9994,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -9885,6 +10009,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -9897,6 +10026,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -9917,6 +10051,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -9927,6 +10066,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -9937,6 +10081,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -9947,6 +10096,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -9957,6 +10111,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -9967,6 +10126,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -9975,6 +10139,114 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Version patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -9997,6 +10269,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -10011,11 +10295,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -10051,6 +10330,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/pt.po b/doc/po/pt.po index 68bf10c0d..64d0b9d50 100644 --- a/doc/po/pt.po +++ b/doc/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.8.0\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2019-04-07 22:02+0000\n" "Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n" "Language-Team: Portuguese <>\n" @@ -899,11 +899,6 @@ msgstr "" "Pode, por exemplo, ser útil para ver esta informação antes de permitir ao " "&apt; remover um pacote ou enquanto procura por novos pacotes para instalar." -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "(work-in-progress)" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -921,6 +916,11 @@ msgstr "" "actualizáveis (<option>--upgradeable</option>) ou todas as versões " "disponÃveis (<option>--all-versions</option>)." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "(work-in-progress)" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -1227,6 +1227,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml +msgid "" "<literal>reinstall</literal> is an alias for <literal>install --reinstall</" "literal>." msgstr "" @@ -9852,9 +9860,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml +#, fuzzy +#| msgid "" +#| "<literal>machine</literal> <replaceable>hostname</replaceable>[:" +#| "<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" "<literal>machine</literal> <replaceable>nome-de-máquina</replaceable>[:" "<replaceable>porto</replaceable>][/<replaceable>caminho</replaceable>]" @@ -9885,6 +9898,12 @@ msgstr "" "subsequentes são processados, parando quando é alcançado o final do ficheiro " "ou é encontrado outro token <emphasis><literal>machine</literal></emphasis>." +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<literal>login</literal> <replaceable>name</replaceable>" @@ -9912,14 +9931,16 @@ msgstr "Exemplo" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "deb http://example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +#, fuzzy, no-wrap +#| msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "deb http://apt:debian@example.org/debian &debian-stable-codename; main" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -9954,9 +9975,15 @@ msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml -#, no-wrap -msgid "" -"machine example.org:80 login apt password debian\n" +#, fuzzy, no-wrap +#| msgid "" +#| "machine example.org:80 login apt password debian\n" +#| "machine example.org/deb/ login apt password debian\n" +#| "machine example.org/ubuntu login apt password debian\n" +#| "machine example.orga login apt password debian\n" +#| "machine example.net login apt password debian\n" +msgid "" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -10017,6 +10044,15 @@ msgstr "" "múltiplos eles deves todos ter um caminha especificado no token " "<literal>machine</literal>." +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "<filename>/etc/apt/auth.conf</filename>" @@ -10967,6 +11003,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -10977,6 +11018,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -10987,6 +11033,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -10997,6 +11048,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -11007,11 +11063,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -11027,6 +11148,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11039,6 +11165,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -11049,6 +11180,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -11059,6 +11195,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11071,6 +11212,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -11091,6 +11237,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -11101,6 +11252,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -11111,6 +11267,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -11121,6 +11282,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -11131,6 +11297,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -11141,6 +11312,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -11149,6 +11325,116 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +#, fuzzy +#| msgid "Version &apt-product-version;" +msgid "Version patterns" +msgstr "Versão &apt-product-version;" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -11171,6 +11457,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -11185,11 +11483,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -11225,6 +11518,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/doc/po/pt_BR.po b/doc/po/pt_BR.po index ac57cc791..88fb24f04 100644 --- a/doc/po/pt_BR.po +++ b/doc/po/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 1.0.5\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\n" "PO-Revision-Date: 2004-09-20 17:02+0000\n" "Last-Translator: André LuÃs Lopes <andrelop@debian.org>\n" "Language-Team: <debian-l10n-portuguese@lists.debian.org>\n" @@ -656,11 +656,6 @@ msgid "" "searching for new packages to install." msgstr "" -#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> -#: apt.8.xml -msgid "(work-in-progress)" -msgstr "" - #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -672,6 +667,11 @@ msgid "" "option>) versions." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt.8.xml +msgid "(work-in-progress)" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.8.xml msgid "" @@ -880,6 +880,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml +msgid "" +"Fallback to regular expressions is deprecated in APT 2.0, has been removed " +"in &apt;, except for anchored expressions, and will be removed from &apt-" +"get; in a future version. Use &apt-patterns; instead." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-get.8.xml #, fuzzy msgid "" "<literal>reinstall</literal> is an alias for <literal>install --reinstall</" @@ -7295,8 +7303,9 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml msgid "" -"<literal>machine</literal> <replaceable>hostname</replaceable>[:" -"<replaceable>port</replaceable>][/<replaceable>path</replaceable>]" +"<literal>machine</literal> <replaceable>[protocol://]</" +"replaceable><replaceable>hostname</replaceable>[:<replaceable>port</" +"replaceable>][/<replaceable>path</replaceable>]" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> @@ -7314,6 +7323,12 @@ msgid "" "emphasis> token is encountered." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt_auth.conf.5.xml +msgid "" +"If protocol is not specified, the entry only matches https and tor+https." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -7348,13 +7363,13 @@ msgstr "Exemplos" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, no-wrap -msgid "deb http://example.org/debian &debian-stable-codename; main" +msgid "deb https://example.org/debian &debian-stable-codename; main" msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> #: apt_auth.conf.5.xml #, no-wrap -msgid "deb http://apt:debian@example.org/debian &debian-stable-codename; main" +msgid "deb https://apt:debian@example.org/debian &debian-stable-codename; main" msgstr "" #. type: Content of: <refentry><refsect1><para><literallayout> @@ -7385,7 +7400,7 @@ msgstr "" #: apt_auth.conf.5.xml #, no-wrap msgid "" -"machine example.org:80 login apt password debian\n" +"machine example.org:443 login apt password debian\n" "machine example.org/deb/ login apt password debian\n" "machine example.org/ubuntu login apt password debian\n" "machine example.orga login apt password debian\n" @@ -7423,6 +7438,15 @@ msgid "" "the <literal>machine</literal> token." msgstr "" +#. type: Content of: <refentry><refsect1><para> +#: apt_auth.conf.5.xml +msgid "" +"Login information in auth.conf are more flexible than those in sources.list. " +"For example, login information can be specified for parts of a repository " +"only, or if the sources.list entry redirects elsewhere, login information " +"for the redirect destination can be supplied." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt_auth.conf.5.xml #, fuzzy @@ -8090,6 +8114,11 @@ msgstr "" msgid "<code>?and(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN PATTERN ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where all specified patterns match." @@ -8100,6 +8129,11 @@ msgstr "" msgid "<code>?false</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~F</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects nothing." @@ -8110,6 +8144,11 @@ msgstr "" msgid "<code>?not(PATTERN)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>!PATTERN</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where PATTERN does not match." @@ -8120,6 +8159,11 @@ msgstr "" msgid "<code>?or(PATTERN, PATTERN, ...)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>PATTERN | PATTERN | ...</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects objects where at least one of the specified patterns match." @@ -8130,11 +8174,76 @@ msgstr "" msgid "<code>?true</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~T</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects all objects." msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects the same as <code>PATTERN</code>, can be used to work around " +"precedence, for example, <code>(~ramd64|~ri386)~nfoo</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Narrowing patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?all-versions(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects packages where all versions match PATTERN. When matching versions " +"instead, same as PATTERN." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?any-version(PATTERN)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "Selects any version where the pattern matches on the version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"For example, while <code>?and(?version(1),?version(2))</code> matches a " +"package which has one version containing 1 and one version containing 2, " +"<code>?any-version(?and(?version(1),?version(2)))</code> restricts the " +"<code>?and</code> to act on the same version." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?narrow(PATTERN...)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects any version matching all PATTERNs, short for<code>?any-version(?" +"and(PATTERN...))</code>." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Package patterns" @@ -8150,6 +8259,11 @@ msgstr "" msgid "<code>?architecture(WILDCARD)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~rWILDCARD</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -8162,6 +8276,11 @@ msgstr "" msgid "<code>?automatic</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~M</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that were installed automatically." @@ -8172,6 +8291,11 @@ msgstr "" msgid "<code>?broken</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~b</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have broken dependencies." @@ -8182,6 +8306,11 @@ msgstr "" msgid "<code>?config-files</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~c</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -8194,6 +8323,11 @@ msgstr "" msgid "<code>?essential</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~E</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that have Essential: yes set in their control file." @@ -8214,6 +8348,11 @@ msgstr "" msgid "<code>?garbage</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~g</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be removed automatically." @@ -8224,6 +8363,11 @@ msgstr "" msgid "<code>?installed</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~i</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that are currently installed." @@ -8234,6 +8378,11 @@ msgstr "" msgid "<code>?name(REGEX)</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~nREGEX</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages where the name matches the given regular expression." @@ -8244,6 +8393,11 @@ msgstr "" msgid "<code>?obsolete</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~o</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that no longer exist in repositories." @@ -8254,6 +8408,11 @@ msgstr "" msgid "<code>?upgradable</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~U</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "Selects packages that can be upgraded (have a newer candidate)." @@ -8264,6 +8423,11 @@ msgstr "" msgid "<code>?virtual</code>" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~v</code>" +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-patterns.7.xml msgid "" @@ -8272,6 +8436,114 @@ msgid "" "something depends on that name." msgstr "" +#. type: Content of: <refentry><refsect1><title> +#: apt-patterns.7.xml +msgid "Version patterns" +msgstr "" + +#. type: Content of: <refentry><refsect1><para> +#: apt-patterns.7.xml +msgid "These patterns select specific versions of a package." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?archive(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~AREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the archive that matches the specified " +"regular expression. Archive, here, means the values after <code>a=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?origin(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~OREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions that come from the origin that matches the specified " +"regular expression. Origin, here, means the values after <code>o=</code> in " +"<command>apt-cache policy</command>." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?section(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~sREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the section matches the specified regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-package(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~eREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package name matches the specified regular " +"expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?source-version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the source package version matches the specified " +"regular expression." +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>?version(REGEX)</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>~VREGEX</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Selects versions where the version string matching the specified regular " +"expression." +msgstr "" + #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-patterns.7.xml msgid "<code>apt remove ?garbage</code>" @@ -8294,6 +8566,18 @@ msgstr "" msgid "Purge all packages that only have configuration files left" msgstr "" +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> +#: apt-patterns.7.xml +msgid "<code>apt list '~i !~M (~slibs|~sperl|~spython)'</code>" +msgstr "" + +#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> +#: apt-patterns.7.xml +msgid "" +"List all manually-installed packages in sections matching libs, perl, or " +"python." +msgstr "" + #. type: Content of: <refentry><refsect1><title> #: apt-patterns.7.xml msgid "Migrating from aptitude" @@ -8308,11 +8592,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-patterns.7.xml -msgid "Only long forms — the ones starting with ? — are supported" -msgstr "" - -#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> -#: apt-patterns.7.xml msgid "" "Syntax is uniform: If there is an opening parenthesis after a term, it is " "always assumed to be the beginning of an argument list." @@ -8348,6 +8627,29 @@ msgstr "" msgid "A trailing comma is allowed in argument lists" msgstr "" +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "?narrow accepts infinite arguments" +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"<code>foo</code> cannot be used as a shortform for <code>?name(foo)</code>, " +"as this can cause typos to go unnoticed: Consider <code>?and(...," +"~poptional)</code>: this requires the package to have <code>required</code> " +"priority, but if you do not type the <code>~</code>, it would require the " +"package name to contain <code>poptional</code>." +msgstr "" + +#. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> +#: apt-patterns.7.xml +msgid "" +"Grouping patterns with <code>(...)</code> or writing <code>?or(A,B)</code> " +"as <code>A|B</code> are not supported. We do not believe that the use of " +"<code>|</code> is that common, and the grouping is not necessary without it." +msgstr "" + #. type: Content of: <refentry><refsect1><para> #: apt-patterns.7.xml #, fuzzy diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index 077701cc0..87ce9153c 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -56,6 +56,15 @@ static struct timeval GetTimevalFromSteadyClock() /*{{{*/ return { Time_sec.count(), Time_usec.count() }; } /*}}}*/ +static auto GetTimeDeltaSince(struct timeval StartTime) /*{{{*/ +{ + auto const NewTime = GetTimevalFromSteadyClock(); + std::chrono::duration<double> Delta = + std::chrono::seconds(NewTime.tv_sec - StartTime.tv_sec) + + std::chrono::microseconds(NewTime.tv_usec - StartTime.tv_usec); + return llround(Delta.count()); +} + /*}}}*/ // struct PackageMap - List of all package files in the config file /*{{{*/ // --------------------------------------------------------------------- @@ -241,16 +250,11 @@ bool PackageMap::GenPackages(Configuration &Setup,struct CacheDB::Stats &Stats) << SizeToStr(Size) << "B "; else c0out << ' '; - - struct timeval NewTime = GetTimevalFromSteadyClock(); - std::chrono::duration<double> Delta = - std::chrono::seconds(NewTime.tv_sec - StartTime.tv_sec) + - std::chrono::microseconds(NewTime.tv_sec - StartTime.tv_usec); c0out << Packages.Stats.Packages << " files " << /* SizeToStr(Packages.Stats.MD5Bytes) << "B/" << */ SizeToStr(Packages.Stats.Bytes) << "B " << - TimeToStr(llround(Delta.count())) << endl; + TimeToStr(GetTimeDeltaSince(StartTime)) << endl; if(_config->FindB("APT::FTPArchive::ShowCacheMisses", false) == true) c0out << " Misses in Cache: " << Packages.Stats.Misses<< endl; @@ -328,13 +332,8 @@ bool PackageMap::GenSources(Configuration &Setup,struct CacheDB::Stats &Stats) else c0out << ' '; - struct timeval NewTime = GetTimevalFromSteadyClock(); - std::chrono::duration<double> Delta = - std::chrono::seconds(NewTime.tv_sec - StartTime.tv_sec) + - std::chrono::microseconds(NewTime.tv_sec - StartTime.tv_usec); - c0out << Sources.Stats.Packages << " pkgs in " << - TimeToStr(llround(Delta.count())) << endl; + TimeToStr(GetTimeDeltaSince(StartTime)) << endl; if(_config->FindB("APT::FTPArchive::ShowCacheMisses", false) == true) c0out << " Misses in Cache: " << Sources.Stats.Misses << endl; @@ -444,17 +443,12 @@ bool PackageMap::GenContents(Configuration &Setup, else c0out << ' '; - struct timeval NewTime = GetTimevalFromSteadyClock(); - std::chrono::duration<double> Delta = - std::chrono::seconds(NewTime.tv_sec - StartTime.tv_sec) + - std::chrono::microseconds(NewTime.tv_sec - StartTime.tv_usec); - if(_config->FindB("APT::FTPArchive::ShowCacheMisses", false) == true) c0out << " Misses in Cache: " << Contents.Stats.Misses<< endl; c0out << Contents.Stats.Packages << " files " << SizeToStr(Contents.Stats.Bytes) << "B " << - TimeToStr(llround(Delta.count())) << endl; + TimeToStr(GetTimeDeltaSince(StartTime)) << endl; return true; } @@ -970,12 +964,8 @@ static bool Generate(CommandLine &CmdL) return false; } - struct timeval NewTime = GetTimevalFromSteadyClock(); - std::chrono::duration<double> Delta = - std::chrono::seconds(NewTime.tv_sec - StartTime.tv_sec) + - std::chrono::microseconds(NewTime.tv_sec - StartTime.tv_usec); c1out << "Done. " << SizeToStr(Stats.Bytes) << "B in " << Stats.Packages - << " archives. Took " << TimeToStr(llround(Delta.count())) << endl; + << " archives. Took " << TimeToStr(GetTimeDeltaSince(StartTime)) << endl; UnloadTree(TransList); return true; diff --git a/ftparchive/cachedb.cc b/ftparchive/cachedb.cc index 1890c28d0..dedb01eaa 100644 --- a/ftparchive/cachedb.cc +++ b/ftparchive/cachedb.cc @@ -17,9 +17,6 @@ #include <apt-pkg/fileutl.h> #include <apt-pkg/gpgv.h> #include <apt-pkg/hashes.h> -#include <apt-pkg/md5.h> -#include <apt-pkg/sha1.h> -#include <apt-pkg/sha2.h> #include <apt-pkg/strutl.h> #include <ctype.h> diff --git a/ftparchive/multicompress.cc b/ftparchive/multicompress.cc index f5fe14164..cdaa7a60a 100644 --- a/ftparchive/multicompress.cc +++ b/ftparchive/multicompress.cc @@ -18,8 +18,7 @@ #include <apt-pkg/aptconfiguration.h> #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> -#include <apt-pkg/hashsum_template.h> -#include <apt-pkg/md5.h> +#include <apt-pkg/hashes.h> #include <apt-pkg/strutl.h> #include <ctype.h> @@ -267,7 +266,7 @@ bool MultiCompress::Child(int const &FD) SetNonBlock(FD,false); unsigned char Buffer[32*1024]; unsigned long long FileSize = 0; - MD5Summation MD5; + Hashes MD5(Hashes::MD5SUM); while (1) { WaitFd(FD,false); @@ -315,7 +314,7 @@ bool MultiCompress::Child(int const &FD) } // Compute the hash - MD5Summation OldMD5; + Hashes OldMD5(Hashes::MD5SUM); unsigned long long NewFileSize = 0; while (1) { @@ -330,7 +329,7 @@ bool MultiCompress::Child(int const &FD) CompFd.Close(); // Check the hash - if (OldMD5.Result() == MD5.Result() && + if (OldMD5.GetHashString(Hashes::MD5SUM) == MD5.GetHashString(Hashes::MD5SUM) && FileSize == NewFileSize) { for (Files *I = Outputs; I != 0; I = I->Next) diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 078638c41..5dcb98c9c 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -19,10 +19,7 @@ #include <apt-pkg/fileutl.h> #include <apt-pkg/gpgv.h> #include <apt-pkg/hashes.h> -#include <apt-pkg/md5.h> #include <apt-pkg/pkgcache.h> -#include <apt-pkg/sha1.h> -#include <apt-pkg/sha2.h> #include <apt-pkg/strutl.h> #include <apt-pkg/tagfile.h> @@ -493,9 +490,9 @@ bool PackagesWriter::DoPackage(string FileName) string DescriptionMd5; if (LongDescription == false) { - MD5Summation descmd5; + Hashes descmd5(Hashes::MD5SUM); descmd5.Add(desc.c_str()); - DescriptionMd5 = descmd5.Result().Value(); + DescriptionMd5 = descmd5.GetHashString(Hashes::MD5SUM).HashValue(); Changes.push_back(pkgTagSection::Tag::Rewrite("Description-md5", DescriptionMd5)); if (TransWriter != NULL) TransWriter->DoPackage(Package, desc, DescriptionMd5); diff --git a/methods/aptmethod.h b/methods/aptmethod.h index 5d792ceb7..67d5a3a0b 100644 --- a/methods/aptmethod.h +++ b/methods/aptmethod.h @@ -8,6 +8,7 @@ #include <apt-pkg/error.h> #include <apt-pkg/fileutl.h> #include <apt-pkg/netrc.h> +#include <apt-pkg/strutl.h> #include <algorithm> #include <locale> @@ -137,8 +138,11 @@ protected: ALLOW(chown); ALLOW(chown32); ALLOW(clock_getres); + ALLOW(clock_getres_time64); ALLOW(clock_gettime); + ALLOW(clock_gettime64); ALLOW(clock_nanosleep); + ALLOW(clock_nanosleep_time64); ALLOW(close); ALLOW(creat); ALLOW(dup); @@ -166,6 +170,7 @@ protected: ALLOW(ftruncate); ALLOW(ftruncate64); ALLOW(futex); + ALLOW(futex_time64); ALLOW(futimesat); ALLOW(getegid); ALLOW(getegid32); @@ -220,9 +225,11 @@ protected: ALLOW(pipe2); ALLOW(poll); ALLOW(ppoll); + ALLOW(ppoll_time64); ALLOW(prctl); ALLOW(prlimit64); ALLOW(pselect6); + ALLOW(pselect6_time64); ALLOW(read); ALLOW(readv); ALLOW(rename); @@ -264,6 +271,7 @@ protected: ALLOW(unlinkat); ALLOW(utime); ALLOW(utimensat); + ALLOW(utimensat_time64); ALLOW(utimes); ALLOW(write); ALLOW(writev); @@ -277,6 +285,7 @@ protected: ALLOW(recv); ALLOW(recvfrom); ALLOW(recvmmsg); + ALLOW(recvmmsg_time64); ALLOW(recvmsg); ALLOW(send); ALLOW(sendmmsg); @@ -525,6 +534,7 @@ class aptAuthConfMethod : public aptMethod if (uri.User.empty() == false || uri.Password.empty() == false) return true; + _error->PushToStack(); for (auto &authconf : authconfs) { if (authconf->IsOpen() == false) @@ -538,6 +548,17 @@ class aptAuthConfMethod : public aptMethod result &= MaybeAddAuth(*authconf, uri); } + if (not _error->empty()) + { + std::string message; + while (not _error->empty()) + { + _error->PopMessage(message); + Warning("%s", message.c_str()); + } + } + _error->RevertToStack(); + return result; } diff --git a/methods/gpgv.cc b/methods/gpgv.cc index 04a4f6a83..1ca62557c 100644 --- a/methods/gpgv.cc +++ b/methods/gpgv.cc @@ -83,7 +83,8 @@ static constexpr Digest Digests[] = { static Digest FindDigest(std::string const & Digest) { int id = atoi(Digest.c_str()); - if (id >= 0 && static_cast<unsigned>(id) < _count(Digests)) { + if (id >= 0 && static_cast<unsigned>(id) < APT_ARRAY_SIZE(Digests)) + { return Digests[id]; } else { return Digests[0]; @@ -309,18 +310,16 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, auto const master = SubKeyMapping.find(l); if (master == SubKeyMapping.end()) continue; - for (auto const &sub : master->second) - if (IsTheSameKey(sub, good)) - { - if (std::find(Signers.Valid.cbegin(), Signers.Valid.cend(), sub) == Signers.Valid.cend()) - continue; - found = true; - Signers.SignedBy.push_back(l); - Signers.SignedBy.push_back(sub + "!"); - break; - } - if (found) + auto const validsubkeysig = std::find_if(master->second.cbegin(), master->second.cend(), [&](auto const subkey) { + return IsTheSameKey(subkey, good) && std::find(Signers.Valid.cbegin(), Signers.Valid.cend(), subkey) != Signers.Valid.cend(); + }); + if (validsubkeysig != master->second.cend()) + { + found = true; + Signers.SignedBy.push_back(l); + Signers.SignedBy.push_back(*validsubkeysig + "!"); break; + } } } if (Debug) diff --git a/po/apt-all.pot b/po/apt-all.pot index 34cb5c862..c9c07ef2a 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt 1.9.3\n" +"Project-Id-Version: apt 1.9.10\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-19 16:22+0200\n" +"POT-Creation-Date: 2020-02-18 12:32+0100\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" @@ -339,7 +339,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -841,6 +842,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -6,7 +6,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -347,7 +347,8 @@ msgstr "قد يساعدك تنÙيذ الأمر apt-get update ÙÙŠ تصØÙŠØ Ù msgid "The list of sources could not be read." msgstr "تعذرت قراءة قائمة المصادر." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -854,6 +855,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -4,7 +4,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -348,7 +348,8 @@ msgstr "Has d'executar apt-get update pa iguar estos problemes" msgid "The list of sources could not be read." msgstr "Nun pudo lleese la llista de fontes." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Error de compilación d'espresión regular - %s" @@ -873,6 +874,13 @@ msgstr "" "Nun pudó incrementase'l tamañu de MMap ya que crecer automáticamente ta " "desactivao pol usuariu." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -10,7 +10,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -365,7 +365,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "СпиÑъкът Ñ Ð¸Ð·Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ†Ð¸ не можа да бъде прочетен." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Грешка при компилирането на регулÑÑ€Ð½Ð¸Ñ Ð¸Ð·Ñ€Ð°Ð· - %s" @@ -895,6 +896,13 @@ msgstr "" "ÐеуÑпех при увеличаване на паметта за MMap. Ðвтоматичното увеличаване е " "забранено от потребителÑ." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -6,7 +6,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -341,7 +341,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -849,6 +850,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -9,7 +9,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2016-12-05 21:09+0100\n" "Last-Translator: Oriol Debian <oriol.debian@gmail.com>\n" "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n" @@ -396,7 +396,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "No s'ha pogut llegir la llista de les fonts." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "S'ha produït un error de compilació de l'expressió regular - %s" @@ -931,6 +932,13 @@ msgstr "" "No s'ha pogut incrementar la mida del MMap ja que el creixement automà tic " "està deshabilitat per l'usuari." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.4.2\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2017-05-06 11:08+0200\n" "Last-Translator: Miroslav Kure <kurem@debian.cz>\n" "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n" @@ -380,7 +380,8 @@ msgstr "Pro nápravu tÄ›chto problémů můžete zkusit spustit apt-get update" msgid "The list of sources could not be read." msgstr "Nelze pÅ™eÄÃst seznam zdrojů." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Chyba pÅ™i kompilaci regulárnÃho výrazu - %s" @@ -901,6 +902,13 @@ msgstr "" "Nelze zvýšit velikost MMapu, protože automatické zvÄ›tÅ¡ovánà bylo uživatelem " "zakázáno." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -6,7 +6,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -353,7 +353,8 @@ msgstr "Efallai hoffech rhedege apt-get update er mwyn cywiro'r problemau hyn." msgid "The list of sources could not be read." msgstr "Methwyd darllen y rhestr ffynhonellau." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Gwall crynhoi patrwm - %s" @@ -872,6 +873,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -12,7 +12,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -388,7 +388,8 @@ msgstr "Du kan muligvis rette problemet ved at køre »apt-get update«" msgid "The list of sources could not be read." msgstr "Listen med kilder kunne ikke læses." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Fejl ved tolkning af regulært udtryk - %s" @@ -910,6 +911,13 @@ msgstr "" "Kunne ikke øge størrelsen pÃ¥ MMap da automatisk øgning er deaktiveret af " "bruger." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.6\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2018-01-11 21:11+0100\n" "Last-Translator: Holger Wansing <linux@wansing-online.de>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" @@ -405,7 +405,8 @@ msgstr "Probieren Sie »apt-get update«, um diese Probleme zu korrigieren." msgid "The list of sources could not be read." msgstr "Die Liste der Quellen konnte nicht gelesen werden." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Fehler beim Kompilieren eines regulären Ausdrucks - %s" @@ -946,6 +947,13 @@ msgstr "" "Unmöglich, die Größe der MMap zu erhöhen, da das automatische Anwachsen der " "MMap vom Benutzer deaktiviert ist." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -4,7 +4,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -349,7 +349,8 @@ msgstr "འ་ནི་དཀའ་ངལ་འདི་ཚུ་སེལ་ན msgid "The list of sources could not be read." msgstr "འབྱུང་à½à½´à½„ས་ཚུ་ཀྱི་à½à½¼à¼‹à½¡à½²à½‚་དེ་ལྷག་མི་ཚུགས་པསà¼" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "རི་ཇེགསི་ཕྱོགས་སྒྲིག་འཛོལ་བ་- %s" @@ -859,6 +860,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -16,7 +16,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2008-08-26 18:25+0300\n" "Last-Translator: Θανάσης Îάτσης <natsisthanasis@gmail.com>\n" "Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n" @@ -362,7 +362,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "ΑδÏνατη η ανάγνωση της λίστας πηγών." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "σφάλμα μεταγλωτισμου - %s" @@ -878,6 +879,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -34,7 +34,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2016-01-26 01:51+0100\n" "Last-Translator: Manuel \"Venturi\" Porras Peralta <venturi@openmailbox." "org>\n" @@ -453,7 +453,8 @@ msgstr "Tal vez deba ejecutar «apt-get update» para corregir estos problemas" msgid "The list of sources could not be read." msgstr "No se pudieron leer las listas de fuentes." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Error de compilación de expresiones regulares - %s" @@ -994,6 +995,13 @@ msgstr "" "No se pudo incrementar el tamaño de MMap dado que el usuario ha " "deshabilitado el crecimiento automático." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -7,7 +7,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -348,7 +348,8 @@ msgstr "Beharbada 'apt-get update' exekutatu nahiko duzu arazoak konpontzeko" msgid "The list of sources could not be read." msgstr "Ezin izan da Iturburu zerrenda irakurri." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Adierazpen erregularren konpilazio errorea - %s" @@ -863,6 +864,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -8,7 +8,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -348,7 +348,8 @@ msgstr "Voit haluta suorittaa apt-get update näiden pulmien korjaamiseksi" msgid "The list of sources could not be read." msgstr "Lähteiden luetteloa ei pystynyt lukemaan." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Käännösvirhe lausekkeessa - %s" @@ -857,6 +858,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -396,7 +396,8 @@ msgstr "Vous pouvez lancer « apt-get update » pour corriger ces problèmes." msgid "The list of sources could not be read." msgstr "La liste des sources ne peut être lue." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Erreur de compilation de l'expression rationnelle - %s" @@ -943,6 +944,13 @@ msgstr "" "Impossible d'augmenter la taille de la « mmap » car l'augmentation " "automatique a été désactivée par une option utilisateur." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -358,7 +358,8 @@ msgstr "Pode querer executar «apt-get update» para corrixir estes problemas" msgid "The list of sources could not be read." msgstr "Non foi posÃbel ler a lista de orixes." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Produciuse un erro na compilación da expresión regular - %s" @@ -891,6 +892,13 @@ msgstr "" "Non é posÃbel aumentar o tamaño de MMap xa que o crecemento automático foi " "desactivado polo usuario." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -7,7 +7,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -392,7 +392,8 @@ msgstr "Próbálja futtatni az „apt-get update†parancsot ezen hibák javÃt msgid "The list of sources could not be read." msgstr "A források listája olvashatatlan." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Regex fordÃtási hiba - %s" @@ -924,6 +925,13 @@ msgstr "" "Nem lehet növelni az MMap méretét, mert a felhasználó letiltotta az " "automatikus emelést." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -391,7 +391,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Impossibile leggere l'elenco dei sorgenti." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Errore di compilazione dell'espressione regolare - %s" @@ -936,6 +937,13 @@ msgstr "" "Impossibile incrementare la dimensione della MMap poiché il " "ridimensionamento automatico è stato disabilitato dall'utente." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.4\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2017-01-06 04:50+0900\n" "Last-Translator: Takuma Yamada <tyamada@takumayamada.com>\n" "Language-Team: Japanese <debian-japanese@lists.debian.org>\n" @@ -394,7 +394,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "ソースã®ãƒªã‚¹ãƒˆã‚’èªã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“。" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "æ£è¦è¡¨ç¾ã®å±•開エラー - %s" @@ -920,6 +921,13 @@ msgid "" msgstr "" "è‡ªå‹•å¢—åŠ ãŒãƒ¦ãƒ¼ã‚¶ã«ã‚ˆã£ã¦ç„¡åйã«ã•れã¦ã„ã‚‹ãŸã‚ã€MMap ã®ã‚µã‚¤ã‚ºã‚’増やã›ã¾ã›ã‚“。" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -351,7 +351,8 @@ msgstr "អ្នកប្រហែលជា​ចង់ភាពទាន់ស msgid "The list of sources could not be read." msgstr "មិន​អាច​អាន​បញ្ជី​ប្រភព​បាន​ឡើយ​ ។" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Regex កំហុស​ការចងក្រង​ - %s" @@ -860,6 +861,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -5,7 +5,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -348,7 +348,8 @@ msgstr "apt-get update를 실행하면 ì´ ë¬¸ì œë¥¼ ë°”ë¡œìž¡ì„ ìˆ˜ë„ ìžˆìŠµë msgid "The list of sources could not be read." msgstr "소스 목ë¡ì„ ì½ì„ 수 없습니다." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "ì •ê·œì‹ ì»´íŒŒì¼ ì˜¤ë¥˜ - %s" @@ -860,6 +861,13 @@ msgid "" msgstr "" "mmap í¬ê¸°ë¥¼ 늘릴 수 없습니다. ìžë™ìœ¼ë¡œ 늘리는 ê¸°ëŠ¥ì„ ì‚¬ìš©ìžê°€ 금지했습니다." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -6,7 +6,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -341,7 +341,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -848,6 +849,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -347,7 +347,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Nepavyko perskaityti Å¡altinių sÄ…raÅ¡o." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -855,6 +856,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -7,7 +7,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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 " @@ -348,7 +348,8 @@ msgstr "तà¥à¤®à¥à¤¹à¥€ हà¥à¤¯à¤¾ समसà¥à¤¯à¤¾à¤‚चे निवा msgid "The list of sources could not be read." msgstr "उगमांचà¥à¤¯à¤¾ यादà¥à¤¯à¤¾ वाचता येणार नाहीत." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "रिजेकà¥à¤¸ कंपायलेशन तà¥à¤°à¥à¤Ÿà¥€ -%s " @@ -857,6 +858,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -12,7 +12,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -365,7 +365,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Kan ikke lese kildlista." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Kompileringsfeil i regulært uttrykk - %s" @@ -887,6 +888,13 @@ msgstr "" "Klarte ikke øke størrelsen pÃ¥ MMap-en siden automatisk voksing er deaktivert " "av brukeren." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -6,7 +6,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -347,7 +347,8 @@ msgstr "यो समसà¥à¤¯à¤¾à¤¹à¤°à¥‚ सà¥à¤§à¤¾à¤°à¥à¤¨ तपाईठmsgid "The list of sources could not be read." msgstr "सà¥à¤°à¥‹à¤¤à¤¹à¤°à¥à¤•ो सूचि पढà¥à¤¨ सकिà¤à¤¨ ।" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "संकलन तà¥à¤°à¥à¤Ÿà¤¿ रिजेकà¥à¤¸ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ - %s" @@ -856,6 +857,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.8.0~rc3\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2019-02-16 20:35+0100\n" "Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n" "Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n" @@ -401,7 +401,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "De lijst van bronnen kon niet gelezen worden." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Regex-compilatiefout - %s" @@ -940,6 +941,13 @@ msgstr "" "Kan het formaat van de MMap niet vergroten omdat het automatisch vergroten " "door de gebruiker is uitgeschakeld." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -355,7 +355,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Kjeldelista kan ikkje lesast." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Regex-kompileringsfeil - %s" @@ -863,6 +864,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -11,7 +11,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -363,7 +363,8 @@ msgstr "Należy uruchomić apt-get update aby naprawić te problemy." msgid "The list of sources could not be read." msgstr "Nie udaÅ‚o siÄ™ odczytać list źródeÅ‚." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Błąd kompilacji wyrażenia regularnego - %s" @@ -897,6 +898,13 @@ msgstr "" "Nie udaÅ‚o siÄ™ zwiÄ™kszyć rozmiaru MMap, ponieważ automatycznie powiÄ™kszanie " "zostaÅ‚o wyłączone przez użytkownika." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -7,7 +7,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -365,7 +365,8 @@ msgstr "Você terá que executar apt-get update para corrigir estes problemas" msgid "The list of sources could not be read." msgstr "A lista de fontes não pôde ser lida." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Erro de compilação de regex - %s" @@ -900,6 +901,13 @@ msgstr "" "Não foi possÃvel aumentar o tamanho do MMap pois o crescimento automático " "está desabilitado pelo utilizador." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" diff --git a/po/pt_BR.po b/po/pt_BR.po index bbbde8aae..3fec6cf4a 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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." @@ -353,7 +353,8 @@ msgstr "Você terá que executar apt-get update para corrigir estes problemas" msgid "The list of sources could not be read." msgstr "A lista de fontes não pode ser lida." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Erro de compilação de regex - %s" @@ -865,6 +866,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -7,7 +7,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2008-11-15 02:21+0200\n" "Last-Translator: Eddy PetriÈ™or <eddy.petrisor@gmail.com>\n" "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n" @@ -353,7 +353,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Lista surselor nu poate fi citită." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Eroare de compilare expresie regulată - %s" @@ -867,6 +868,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.8.0\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2019-02-10 11:50+0300\n" "Last-Translator: Aleksej Shilin <rootlexx@mail.ru>\n" "Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n" @@ -394,7 +394,8 @@ msgstr "Ð’Ñ‹ можете запуÑтить «apt-get update» Ð´Ð»Ñ Ð¸ÑпрРmsgid "The list of sources could not be read." msgstr "Ðе удалоÑÑŒ прочитать перечень иÑточников." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Ошибка компилÑции регулÑрного выражениÑ: %s" @@ -932,6 +933,13 @@ msgstr "" "Ðевозможно увеличить размер Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² памÑть, так как автоматичеÑкое " "увеличение отключено пользователем." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -358,7 +358,8 @@ msgstr "Na opravu týchto problémov môžete skúsiÅ¥ spustiÅ¥ apt-get update" msgid "The list of sources could not be read." msgstr "Nedá sa naÄÃtaÅ¥ zoznam zdrojov." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Chyba pri preklade regulárneho výrazu - %s" @@ -882,6 +883,13 @@ msgstr "" "Napodarilo sa zväÄÅ¡iÅ¥ veľkosÅ¥ MMap, pretože automatické zväÄovanie vypol " "použÃvateľ." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -4,7 +4,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -358,7 +358,8 @@ msgstr "Za odpravljanje težav poskusite zagnati apt-get update." msgid "The list of sources could not be read." msgstr "Seznama virov ni mogoÄe brati." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Napaka med prevajanjem logiÄnega izraza - %s" @@ -878,6 +879,13 @@ msgid "" msgstr "" "Ni mogoÄe poveÄati velikosti MMap, ker je samodejno poveÄevanje onemogoÄeno." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -368,7 +368,8 @@ msgstr "Du kan möjligen rätta till problemet genom att köra â€apt-get update msgid "The list of sources could not be read." msgstr "Listan över källor kunde inte läsas." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Fel vid kompilering av reguljärt uttryck - %s" @@ -895,6 +896,13 @@ msgstr "" "Kunde inte öka storleken för MMap eftersom automatisk växt har inaktiverats " "av användaren." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -355,7 +355,8 @@ msgstr "คุณà¸à¸²à¸ˆà¹€à¸£à¸µà¸¢à¸ `apt-get update' เพื่à¸à¹à¸ msgid "The list of sources could not be read." msgstr "ไม่สามารถà¸à¹ˆà¸²à¸™à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸à¹à¸«à¸¥à¹ˆà¸‡à¹à¸žà¸à¹€à¸à¸ˆà¹„ด้" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "คà¸à¸¡à¹„พล์นิพจน์เรà¸à¸´à¸§à¸¥à¸²à¸£à¹Œà¹„ม่สำเร็จ - %s" @@ -865,6 +866,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "ไม่สามารถเพิ่มขนาดขà¸à¸‡ MMap เนื่à¸à¸‡à¸ˆà¸²à¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸›à¸´à¸”à¸à¸²à¸£à¸‚ยายขนาดà¸à¸±à¸•โนมัติ" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -357,7 +357,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Hindi mabasa ang talaan ng pagkukunan (sources)." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Error sa pag-compile ng regex - %s" @@ -874,6 +875,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2018-01-03 16:32+0300\n" "Last-Translator: Mert Dirik <mertdirik@gmail.com>\n" "Language-Team: Debian l10n Turkish <debian-l10n-turkish@lists.debian.org>\n" @@ -392,7 +392,8 @@ msgstr "Bu sorunları gidermek için apt-get update komutunu çalıştırabilirs msgid "The list of sources could not be read." msgstr "Kaynak listesi okunamadı." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Regex derleme hatası - %s" @@ -919,6 +920,13 @@ msgstr "" "Otomatik büyüme kullanıcı tarafından kapatıldığı için MMap boyutu " "artırılamadı." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -12,7 +12,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -364,7 +364,8 @@ msgstr "Ð”Ð»Ñ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… помилок Ви можете в msgid "The list of sources could not be read." msgstr "Ðеможливо прочитати перелік вихідних кодів." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Помилка компілÑції регулÑрного виразу - %s" @@ -895,6 +896,13 @@ msgstr "" "Ðеможливо збільшити розмір MMap, так Ñк автоматичне Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾ " "кориÑтувачем." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" @@ -8,7 +8,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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" @@ -364,7 +364,8 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Không thể Ä‘á»c danh sách nguồn." -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "Lá»—i biên dịch biểu thức chÃnh quy - %s" @@ -887,6 +888,13 @@ msgstr "" "Không thể tăng kÃch cỡ cá»§a ánh xạ bá»™ nhá»›, vì chức năng tá»± động tăng bị ngưá»i " "dùng tắt Ä‘i." +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" diff --git a/po/zh_CN.po b/po/zh_CN.po index 7c3df907e..853e37aa3 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 1.7.x\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\n" "PO-Revision-Date: 2019-01-12 00:00+0000\n" "Last-Translator: Mo Zhou <cdluminate@gmail.com>\n" "Language-Team: Chinese (simplified) <debian-l10n-chinese@lists.debian.org>\n" @@ -361,7 +361,8 @@ msgstr "您å¯èƒ½éœ€è¦è¿è¡Œ apt-get update æ¥è§£å†³è¿™äº›é—®é¢˜" msgid "The list of sources could not be read." msgstr "æ— æ³•è¯»å–æºåˆ—表。" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "编译æ£åˆ™è¡¨è¾¾å¼æ—¶å‡ºé”™ - %s" @@ -872,6 +873,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "æ— æ³•å¢žåŠ MMap 大å°ï¼Œå› 为用户已ç¦ç”¨è‡ªåŠ¨å¢žåŠ ã€‚" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" diff --git a/po/zh_TW.po b/po/zh_TW.po index 8c2b6dc11..11fda50a2 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -9,7 +9,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: 2019-08-05 21:25+0200\n" +"POT-Creation-Date: 2020-01-15 23:07+0100\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." @@ -349,7 +349,8 @@ msgstr "您也許得執行 apt-get update 以修æ£é€™äº›å•題" msgid "The list of sources could not be read." msgstr "無法讀å–來æºåˆ—表。" -#: apt-pkg/cachefilter.cc apt-private/private-output.cc +#: apt-pkg/cachefilter-patterns.cc apt-pkg/cachefilter.cc +#: apt-private/private-output.cc #, c-format msgid "Regex compilation error - %s" msgstr "ç·¨è¯æ£è¦è¡¨ç¤ºå¼æ™‚發生錯誤 - %s" @@ -858,6 +859,13 @@ msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +#: apt-pkg/contrib/netrc.cc +#, c-format +msgid "" +"%s: Credentials for %s match, but the protocol is not encrypted. Annotate " +"with %s:// to use." +msgstr "" + #: apt-pkg/contrib/progress.cc #, c-format msgid "%c%s... Error!" diff --git a/test/integration/skip-bug-601016-description-translation b/test/integration/skip-bug-601016-description-translation index fd0465acd..3f68ce2d5 100755 --- a/test/integration/skip-bug-601016-description-translation +++ b/test/integration/skip-bug-601016-description-translation @@ -47,11 +47,11 @@ Description-${LOCALE}: Mächtige Oberfläche für dpkg auf den dpkg-Paketmanager. Es beinhaltet das apt-get-Werkzeug und die APT-Dselect-Methode. Beides sind einfache und sicherere Wege, um Pakete zu installieren und Upgrades durchzuführen. -$MD5Sum" | bzip2 > aptarchive/${LOCALE}.bz2 +$MD5Sum" > "aptarchive/${LOCALE}" -# the $LOCALE translation file will not be included as it is a flat archive it came from and therefore -# its name can not be guessed correctly… (in non-flat archives the files are called Translation-*) -echo 'APT::Cache::Generate "false";' > rootdir/etc/apt/apt.conf.d/00nogenerate +# add our $LOCALE translation file explicitly to be picked up by apt-ftparchive +echo "APT::FTPArchive::Release::Patterns:: \"en\"; +APT::FTPArchive::Release::Patterns:: \"${LOCALE}\";" > rootdir/etc/apt/apt.conf.d/ftparchivepattern NOLONGSTANZA="$PACKAGESTANZA Description: Advanced front-end for dpkg @@ -90,7 +90,8 @@ testrun() { testequal "$LOCALESTANZA2" aptcache show apt:amd64 -o Test=File-${LOCALE} testequal "$NOLONGSTANZA" aptcache show apt -o Acquire::Languages="ww" -o Test=File-${LOCALE} testequal "$LOCALESTANZA" aptcache show apt -o Acquire::Languages::="ww" -o Test=File-${LOCALE} - LC_ALL=C testequal "$ENGLISHSTANZA" aptcache show apt -o Test=File-${LOCALE} + LC_ALL=C.UTF-8 testequal "$LOCALESTANZA" aptcache show apt -o Test=File-${LOCALE} + LC_ALL=C.UTF-8 testequal "$ENGLISHSTANZA" aptcache show apt -o Test=File-${LOCALE} -o Acquire::Languages="environment,${LOCALE}" export LC_ALL="" echo "Acquire::Languages { \"ww\"; \"${LOCALE}\"; \"en\"; };" > rootdir/etc/apt/apt.conf.d/00languages testequal "$LOCALESTANZA" aptcache show apt -o Test=File-ww-${LOCALE} @@ -113,7 +114,7 @@ Description-en: Advanced front-end for dpkg This is Debian's next generation front-end for the dpkg package manager. It provides the apt-get utility and APT dselect method that provides a simpler, safer way to install and upgrade packages. -$MD5Sum" | bzip2 > aptarchive/en.bz2 +$MD5Sum" > aptarchive/en ENGLISHSTANZA="$PACKAGESTANZA Description-en: Advanced front-end for dpkg diff --git a/test/integration/test-apt-cli-show b/test/integration/test-apt-cli-show index a37dbd8e6..4f9e9a16c 100755 --- a/test/integration/test-apt-cli-show +++ b/test/integration/test-apt-cli-show @@ -20,6 +20,8 @@ insertpackage 'unstable' 'bar' 'i386,amd64' '1' '' '' "$DESCR" insertpackage 'unstable' 'big' 'i386,amd64' '1' 'Installed-Size: 4129421' '' "$DESCR" insertpackage 'unstable' 'large' 'all' '1' "Provides: pkga$(generatelotsofnames)" '' "$DESCR" insertpackage 'unstable' 'large2' 'all' '1' "Provides: foobar, pkga$(generatelotsofnames)" '' "$DESCR" +insertpackage 'unstable' 'multi' 'all' '1.0' '' '' "$DESCR" +insertpackage 'unstable' 'multi' 'all' '2.0' '' '' "$DESCR" insertinstalledpackage 'foo' 'all' '1.0' setupaptarchive @@ -99,6 +101,80 @@ Description: Some description That has multiple lines " apt show large2 +# Test for multiple versions +testsuccessequal "Package: multi +Version: 2.0 +Priority: optional +Section: other +Maintainer: Joe Sixpack <joe@example.org> +Installed-Size: 43.0 kB +Download-Size: unknown +APT-Sources: file:$APTARCHIVE unstable/main all Packages +Description: Some description + That has multiple lines + +N: There is 1 additional record. Please use the '-a' switch to see it" apt show multi + +testsuccessequal "Package: multi +Version: 2.0 +Priority: optional +Section: other +Maintainer: Joe Sixpack <joe@example.org> +Installed-Size: 43.0 kB +Download-Size: unknown +APT-Sources: file:$APTARCHIVE unstable/main all Packages +Description: Some description + That has multiple lines + +Package: multi +Version: 1.0 +Priority: optional +Section: other +Maintainer: Joe Sixpack <joe@example.org> +Installed-Size: 43.0 kB +Download-Size: unknown +APT-Sources: file:$APTARCHIVE unstable/main all Packages +Description: Some description + That has multiple lines +" apt show multi -a + +# test apt info +testsuccessequal "Package: multi +Version: 2.0 +Priority: optional +Section: other +Maintainer: Joe Sixpack <joe@example.org> +Installed-Size: 43.0 kB +Download-Size: unknown +APT-Sources: file:$APTARCHIVE unstable/main all Packages +Description: Some description + That has multiple lines + +N: There is 1 additional record. Please use the '-a' switch to see it" apt info multi + +testsuccessequal "Package: multi +Version: 2.0 +Priority: optional +Section: other +Maintainer: Joe Sixpack <joe@example.org> +Installed-Size: 43.0 kB +Download-Size: unknown +APT-Sources: file:$APTARCHIVE unstable/main all Packages +Description: Some description + That has multiple lines + +Package: multi +Version: 1.0 +Priority: optional +Section: other +Maintainer: Joe Sixpack <joe@example.org> +Installed-Size: 43.0 kB +Download-Size: unknown +APT-Sources: file:$APTARCHIVE unstable/main all Packages +Description: Some description + That has multiple lines +" apt info multi -a + # this is the default, but disabled by the testcases testsuccess apt show foo -o Apt::Cmd::Disable-Script-Warning=0 cp rootdir/tmp/testsuccess.output aptshow.output diff --git a/test/integration/test-apt-get-remove-depends b/test/integration/test-apt-get-remove-depends new file mode 100755 index 000000000..2d2cf0dd6 --- /dev/null +++ b/test/integration/test-apt-get-remove-depends @@ -0,0 +1,29 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'i386' + +buildsimplenativepackage 'alpha' 'all' '1' 'unstable' 'Depends: beta' +buildsimplenativepackage 'beta' 'all' '1' 'unstable' +setupaptarchive + +testsuccess aptget install alpha -y + +cat > rootdir/var/lib/dpkg/info/alpha.prerm << EOF +#!/bin/sh +exit 42 +EOF +chmod 755 rootdir/var/lib/dpkg/info/alpha.prerm + + +testdpkginstalled 'alpha' 'beta' + + +testfailure aptget remove -y beta + +# Beta should not be removed because alpha failed to be removed and depends on it + +testdpkginstalled 'alpha' 'beta' diff --git a/test/integration/test-apt-get-satisfy b/test/integration/test-apt-get-satisfy index f2e04d789..23daf069a 100755 --- a/test/integration/test-apt-get-satisfy +++ b/test/integration/test-apt-get-satisfy @@ -70,3 +70,7 @@ testfailureequal "E: Invalid operator '>' at offset 5, did you mean '>>' or '>=' msgmsg "Unsupported dependency type" testfailureequal "E: Problem parsing dependency: Recommends: foo" aptget satisfy 'Recommends: foo' -s + + +msgmsg "Empty dependency" +testfailureequal "E: Problem parsing dependency: " aptget satisfy '' -s diff --git a/test/integration/test-apt-patterns b/test/integration/test-apt-patterns index 92c76edd1..cdba76146 100755 --- a/test/integration/test-apt-patterns +++ b/test/integration/test-apt-patterns @@ -5,15 +5,16 @@ TESTDIR="$(readlink -f "$(dirname "$0")")" setupenvironment configarchitecture 'i386' 'amd64' -insertpackage 'unstable' 'available' 'all' '1.0' +insertpackage 'unstable' 'available' 'all' '1.0' 'Section: asection' insertinstalledpackage 'manual1' 'i386' '1.0' 'Depends: automatic1' insertinstalledpackage 'manual2' 'i386' '1.0' -insertinstalledpackage 'automatic1' 'i386' '1.0' -insertinstalledpackage 'automatic2' 'i386' '1.0' +insertinstalledpackage 'automatic1' 'i386' '1.0' 'Source: automatic (0)' +insertinstalledpackage 'automatic2' 'i386' '1.0' 'Source: automatic (1)' -insertinstalledpackage 'essential' 'i386' '1.0' 'Essential: yes' +insertinstalledpackage 'essential' 'i386' '1.0' 'Essential: yes +Section: asection' insertinstalledpackage 'conf-only' 'i386' '1.0' '' '' 'deinstall ok config-files' insertinstalledpackage 'broken' 'i386' '1.0' 'Depends: does-not-exist' @@ -22,6 +23,7 @@ insertpackage 'unstable' 'not-obsolete' 'all' '2.0' insertpackage 'unstable' 'foreign' 'amd64' '2.0' +getoriginfromsuite() { echo -n 'meow'; } setupaptarchive testsuccess aptmark auto automatic1 automatic2 @@ -32,16 +34,10 @@ testfailureequal "E: input:0-14: error: Unrecognized pattern '?not-a-pattern' ?not-a-pattern ^^^^^^^^^^^^^^ N: Unable to locate package ?not-a-pattern -N: Couldn't find any package by glob '?not-a-pattern' -E: Regex compilation error - Invalid preceding regular expression -N: Couldn't find any package by regex '?not-a-pattern' E: input:0-14: error: Unrecognized pattern '?not-a-pattern' ?not-a-pattern ^^^^^^^^^^^^^^ N: Unable to locate package ?not-a-pattern -N: Couldn't find any package by glob '?not-a-pattern' -E: Regex compilation error - Invalid preceding regular expression -N: Couldn't find any package by regex '?not-a-pattern' E: No packages found" apt show '?not-a-pattern' testfailureequal "Listing... @@ -55,10 +51,7 @@ Reading state information... E: input:0-14: error: Unrecognized pattern '?not-a-pattern' ?not-a-pattern ^^^^^^^^^^^^^^ -E: Unable to locate package ?not-a-pattern -E: Couldn't find any package by glob '?not-a-pattern' -E: Regex compilation error - Invalid preceding regular expression -E: Couldn't find any package by regex '?not-a-pattern'" apt install -s '?not-a-pattern' +E: Unable to locate package ?not-a-pattern" apt install -s '?not-a-pattern' msgmsg "Ensure that argument lists are present where needed, and absent elsewhere" @@ -103,6 +96,27 @@ testsuccessequal "Listing... automatic1/now 1.0 i386 [installed,local]" apt list '?and(?name(^automatic),?name(1$))' +msgmsg "Narrow and friends" +testsuccessequal "Listing... +not-obsolete/unstable 2.0 i386 [upgradable from: 1.0] +N: There is 1 additional version. Please use the '-a' switch to see it" apt list '?and(?version(^1\.0$),?version(^2\.0$))' + +testsuccessequal "Listing..." apt list '?any-version(?and(?version(^1\.0$),?version(^2\.0$)))' +testsuccessequal "Listing..." apt list '?narrow(?version(^1\.0$),?version(^2\.0$))' + +# XXX FIXME: I guess we do want this to only show version 1.0? +testsuccessequal "Listing... +not-obsolete/unstable 2.0 i386 [upgradable from: 1.0] +N: There is 1 additional version. Please use the '-a' switch to see it" apt list '?any-version(?and(?version(^1\.0$),?name(not-obsolete)))' +testsuccessequal "Listing... +not-obsolete/unstable 2.0 i386 [upgradable from: 1.0] +N: There is 1 additional version. Please use the '-a' switch to see it" apt list '?narrow(?version(^1\.0$),?name(not-obsolete))' + + +testsuccessequal "Listing... +foreign/unstable 2.0 amd64 +not-obsolete/unstable 2.0 i386 [upgradable from: 1.0]" apt list '?not(?all-versions(?version(^1)))' + msgmsg "Package patterns" testsuccessequal "Listing... @@ -113,6 +127,11 @@ testsuccessequal "Listing..." apt list '?architecture(foreign)' testsuccessequal "Listing..." apt list '?architecture(native)' testsuccessequal "Listing... +available/unstable 1.0 all +foreign/unstable 2.0 amd64 +not-obsolete/unstable 2.0 i386 [upgradable from: 1.0]" apt list '?archive(^unstable$)' + +testsuccessequal "Listing... automatic1/now 1.0 i386 [installed,local] automatic2/now 1.0 i386 [installed,local]" apt list '?automatic' @@ -158,9 +177,29 @@ foreign/unstable 2.0 amd64 not-obsolete/unstable 2.0 i386 [upgradable from: 1.0]" apt list '?not(?obsolete)' testsuccessequal "Listing... +available/unstable 1.0 all +foreign/unstable 2.0 amd64 +not-obsolete/unstable 2.0 i386 [upgradable from: 1.0]" apt list '?origin(^meow$)' + +testsuccessequal "Listing... +available/unstable 1.0 all +essential/now 1.0 i386 [installed,local]" apt list '?section(asection)' + +testsuccessequal "Listing... +automatic1/now 1.0 i386 [installed,local] +automatic2/now 1.0 i386 [installed,local]" apt list '?source-package(^automatic$)' + +testsuccessequal "Listing... +automatic2/now 1.0 i386 [installed,local]" apt list '?source-version(^1$)' + +testsuccessequal "Listing... not-obsolete/unstable 2.0 i386 [upgradable from: 1.0] N: There is 1 additional version. Please use the '-a' switch to see it" apt list '?upgradable' +testsuccessequal "Listing... +foreign/unstable 2.0 amd64 +not-obsolete/unstable 2.0 i386 [upgradable from: 1.0]" apt list '?version(2.0)' + testsuccessequal "Package: does-not-exist State: not a real package (virtual) N: Can't select candidate version from package does-not-exist as it has no candidate diff --git a/test/integration/test-apt-update-repeated-ims-hit b/test/integration/test-apt-update-repeated-ims-hit new file mode 100755 index 000000000..74d46b31b --- /dev/null +++ b/test/integration/test-apt-update-repeated-ims-hit @@ -0,0 +1,75 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'amd64' +configcompression '.' 'bz2' + +echo 'Package: apt +Priority: important +Section: admin +Installed-Size: 5984 +Maintainer: APT Development Team <deity@lists.debian.org> +Architecture: i386 +Version: 0.8.7 +Filename: pool/main/a/apt/apt_0.8.7_i386.deb +Size: 2140230 +MD5sum: 74769bfbcef9ebc4fa74f7a5271b9c08 +Description: Advanced front-end for dpkg +Description-md5: d41ee493aa9fcc6cbc9ce4eb7069959c' > aptarchive/Packages +compressfile aptarchive/Packages + +echo "Package: apt +Description-en: Advanced front-end for dpkg + This is Debian's next generation front-end for the dpkg package manager. + It provides the apt-get utility and APT dselect method that provides a + simpler, safer way to install and upgrade packages. +$MD5Sum" > aptarchive/en +compressfile aptarchive/en + +echo "APT::FTPArchive::Release::Patterns:: \"en\"; +APT::FTPArchive::Release::Patterns:: \"en.*\";" > rootdir/etc/apt/apt.conf.d/ftparchivepattern + +export APT_DONT_SIGN='InRelease' +setupaptarchive --no-update +rm -f aptarchive/Packages aptarchive/en + +rm -f rootdir/etc/apt/trusted.gpg.d/* +sed -i -e 's#^deb #deb [trusted=yes] #' rootdir/etc/apt/sources.list.d/* + +APTARCHIVE="$(readlink -f ./aptarchive)" +GPGERROR="W: GPG error: file:$APTARCHIVE Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A90D141DBAC8DAE" + +msgmsg 'Running update again does not change result' '0' +testwarningmsg "$GPGERROR" apt update +listcurrentlistsdirectory > lists.before +testsuccess grep 'aptarchive_en$' lists.before +testsuccess grep 'aptarchive_Packages$' lists.before +testsuccess grep 'aptarchive_Release$' lists.before +testfailure grep 'aptarchive_Release.gpg$' lists.before + +for i in $(seq 1 3); do + msgmsg 'Running update again does not change result' "$i" + testwarningmsg "$GPGERROR" apt update + testfileequal lists.before "$(listcurrentlistsdirectory)" +done + +find rootdir/var/lib/apt/lists -name '*Release*' -delete +msgmsg 'Running update with a repository gaining hashsums' +testwarningmsg "$GPGERROR" apt update +testfileequal lists.before "$(listcurrentlistsdirectory)" + +changetowebserver +find aptarchive -name '*Release*' -delete +rm -rf rootdir/var/lib/apt/lists + +msgmsg 'Running update with no indexes' '0' +testsuccess apt update +listcurrentlistsdirectory > lists.before +for i in $(seq 1 3); do + msgmsg 'Running update with no indexes' "$i" + testsuccess apt update -o Debug::pkgAcquire::Worker=1 -o Debug::Acquire::Transaction=1 + testfileequal lists.before "$(listcurrentlistsdirectory)" +done diff --git a/test/integration/test-authentication-basic b/test/integration/test-authentication-basic index 211c73e35..784a00c03 100755 --- a/test/integration/test-authentication-basic +++ b/test/integration/test-authentication-basic @@ -65,35 +65,61 @@ runtest() { authfile '' testauthfailure "$1" + protocol="${1%%://*}" + # good auth - authfile 'machine localhost + authfile "machine ${protocol}://localhost login star@irc -password hunter2' +password hunter2" testauthsuccess "$1" # bad auth - authfile 'machine localhost + authfile "machine ${protocol}://localhost login anonymous -password hunter2' +password hunter2" testauthfailure "$1" # 2 stanzas: unmatching + good auth - authfile 'machine debian.org + authfile "machine ${protocol}://debian.org login debian password jessie -machine localhost +machine ${protocol}://localhost login star@irc -password hunter2' +password hunter2" testauthsuccess "$1" + # no protocol specifier + authfile "machine localhost +login star@irc +password hunter2" + if [ "$protocol" = "https" ]; then + testauthsuccess "$1" + else + testfailure apthelper download-file "${1}/bash" ./downloaded/bash + testsuccessequal "W: ${1}/bash: ${TMPWORKINGDIRECTORY}/rootdir/etc/apt/auth.conf: Credentials for localhost match, but the protocol is not encrypted. Annotate with http:// to use." grep "Credentials.*match" rootdir/tmp/testfailure.output + testauthfailure "$1" + fi + + # wrong protocol specifier + if [ "$protocol" = "https" ]; then + authfile "machine http://localhost +login star@irc +password hunter2" + else + authfile "machine https://localhost +login star@irc +password hunter2" + fi + testauthfailure "$1" + # delete file, make sure it fails; add auth.conf.d snippet, works again. rm rootdir/etc/apt/auth.conf testauthfailure "$1" - authfile 'machine localhost + authfile "machine ${protocol}://localhost login star@irc -password hunter2' rootdir/etc/apt/auth.conf.d/myauth.conf +password hunter2" rootdir/etc/apt/auth.conf.d/myauth.conf testauthsuccess "$1" rm rootdir/etc/apt/auth.conf.d/myauth.conf } diff --git a/test/integration/test-bug-490000-search-in-all-translations b/test/integration/test-bug-490000-search-in-all-translations new file mode 100755 index 000000000..3a034bc49 --- /dev/null +++ b/test/integration/test-bug-490000-search-in-all-translations @@ -0,0 +1,107 @@ +#!/bin/sh + +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "${TESTDIR}/framework" + +setupenvironment + +ARCH='amd64' +DIST='unstable' + +PKG_NAME='foo' +PKG_VERSION='1.0' + +SHORT_DESCRIPTION_EN='have you fooed today?' +LONG_DESCRIPTION_EN="${SHORT_DESCRIPTION_EN} + Where there's foo, there's fire." + +SHORT_DESCRIPTION_ZZ='bar alter ego' +LONG_DESCRIPTION_ZZ="${SHORT_DESCRIPTION_ZZ} + He who foos last foos best." + +configure_languages() +{ + { + echo '#clear Acquire::Languages;' + echo 'Acquire::Languages {' + for language in "$@" + do + echo " \"${language}\";" + done + echo '};' + } > rootdir/etc/apt/apt.conf.d/languages.conf +} + +new_translation_record() +{ + echo "Package: ${1:?Package name expected}" + echo "Description-md5: ${2:?Description-md5 expected}" + echo "Description-${3:?Language code expected}: ${4:?Package description expected}" + echo +} + +str_md5sum() +{ + echo -n "${1:?String expected}" | md5sum | cut -d ' ' -f 1 +} + +configarchitecture "${ARCH}" + +insertpackage "${DIST}" "${PKG_NAME}" "${ARCH}" "${PKG_VERSION}" '' '' "${LONG_DESCRIPTION_EN}" +# English translation was already added by insertpackage above +new_translation_record "${PKG_NAME}" "$(str_md5sum "${LONG_DESCRIPTION_EN}")" 'zz' "${LONG_DESCRIPTION_ZZ}" > "aptarchive/dists/${DIST}/main/i18n/Translation-zz" + +configure_languages en zz +setupaptarchive + +# =========================== +# +# Tests +# +# =========================== + +# ----------[ apt ]---------- + +# Test that all translations are searched, but the short +# description is in the first configured language + +configure_languages en zz +testequal "${PKG_NAME}/${DIST} ${PKG_VERSION} ${ARCH} + ${SHORT_DESCRIPTION_EN} +" apt -qq search alter ego + +configure_languages zz en +testequal "${PKG_NAME}/${DIST} ${PKG_VERSION} ${ARCH} + ${SHORT_DESCRIPTION_ZZ} +" apt -qq search you today + +# Search in configured languages only +configure_languages zz +testempty apt -qq search where fire + +# Patterns are AND-ed i.e. all must match against a single +# description translation +configure_languages en zz +testempty apt -qq search there best + +# -------[ apt-cache ]------- + +# Test that all translations are searched, but the short +# description is in the first configured language + +configure_languages en zz +testequal "${PKG_NAME} - ${SHORT_DESCRIPTION_EN}" aptcache search alter ego + +configure_languages zz en +testequal "${PKG_NAME} - ${SHORT_DESCRIPTION_ZZ}" aptcache search you today + +# Search in configured languages only +configure_languages zz +testempty aptcache search where fire + +# Patterns are AND-ed i.e. all must match against a single +# description translation +configure_languages en zz +testempty aptcache search there best diff --git a/test/integration/test-kernel-helper-autoremove b/test/integration/test-kernel-helper-autoremove index 8cde3432f..9cc978645 100755 --- a/test/integration/test-kernel-helper-autoremove +++ b/test/integration/test-kernel-helper-autoremove @@ -46,10 +46,10 @@ testprotected() { testfailure --nomsg grep '^[A-Z]: ' protected.list msgtest 'Check kernel autoremoval protection list includes' 'most recent kernel' - testsuccess --nomsg grep '^\^linux-image-100\\\.0\\\.0-1-generic\$$' protected.list + testsuccess --nomsg grep '^\^linux-.*-100\\\.0\\\.0-1-generic\$$' protected.list msgtest 'Check kernel autoremoval protection list includes' 'running kernel' - testsuccess --nomsg grep "^\\^linux-image-$(uname -r | tr '[A-Z]' '[a-z]' | sed -e 's#\.#\\\\.#g')\\\$\$" protected.list + testsuccess --nomsg grep "^\\^linux-.*-$(uname -r | tr '[A-Z]' '[a-z]' | sed -e 's#\.#\\\\.#g')\\\$\$" protected.list msgtest 'Check kernel autoremoval protection list does not include' 'metapackages' testfailure --nomsg grep -e '^\^linux-image-amd64\$$' -e '^\^linux-image-686-pae\$$' -e ':i386' protected.list @@ -115,7 +115,7 @@ Remv ${CURRENTKERNEL}-dbg [5-1]" aptget autoremove -sV msgmsg "run without parameter" testprotected msgtest 'Check kernel autoremoval protection list does not include' 'old kernel' -testfailure --nomsg grep '^\^linux-image-1\\\.0\\\.0-2-generic\$$' protected.list +testfailure --nomsg grep '^\^linux-.*-1\\\.0\\\.0-2-generic\$$' protected.list export COLUMNS=99999 testsuccessequal "Reading package lists... Building dependency tree... @@ -134,9 +134,9 @@ msgmsg "install unknown kernel" # know for sure without complicated detection mechanisms testprotected 1.0.0-2-ungeneric msgtest 'Check kernel autoremoval protection list does not include' 'old kernel' -testfailure --nomsg grep '^\^linux-image-1\\\.0\\\.0-2-generic\$$' protected.list +testfailure --nomsg grep '^\^linux-.*-1\\\.0\\\.0-2-generic\$$' protected.list msgtest 'Check kernel autoremoval protection list does include' 'unknown installed kernel' -testsuccess --nomsg grep '^\^linux-image-1\\\.0\\\.0-2-ungeneric\$$' protected.list +testsuccess --nomsg grep '^\^linux-.*-1\\\.0\\\.0-2-ungeneric\$$' protected.list export COLUMNS=9 testsuccessequal "Reading package lists... Building dependency tree... @@ -154,7 +154,7 @@ unset COLUMNS msgmsg "install an old kernel" testprotected 1.0.0-2-generic msgtest 'Check kernel autoremoval protection list includes' 'installed kernel' -testsuccess --nomsg grep '^\^linux-image-1\\\.0\\\.0-2-generic\$$' protected.list +testsuccess --nomsg grep '^\^linux-.*-1\\\.0\\\.0-2-generic\$$' protected.list export COLUMNS=9 testsuccessequal "Reading package lists... Building dependency tree... diff --git a/test/integration/test-packages-require-authorization b/test/integration/test-packages-require-authorization deleted file mode 100755 index 527497ce5..000000000 --- a/test/integration/test-packages-require-authorization +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -set -e - -TESTDIR="$(readlink -f "$(dirname "$0")")" -. "$TESTDIR/framework" -setupenvironment -configarchitecture 'amd64' - -insertpackage 'unstable' 'cool' 'amd64' '1.0' - -export APT_DONT_SIGN='InRelease' -setupaptarchive --no-update -changetowebserver - -echo 'Packages-Require-Authorization: yes' >> aptarchive/dists/unstable/Release -signreleasefiles - -testsuccess aptget update -testsuccessequal "Package files: - 100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status - release a=now --32768 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages - release a=unstable,n=sid,c=main,b=amd64 - origin localhost -Pinned packages:" aptcache policy - -mkdir rootdir/etc/apt/auth.conf.d -cat > rootdir/etc/apt/auth.conf.d/myauth.conf << EOF -machine localhost -login username -password usersPassword -EOF - - -testsuccessequal "Package files: - 100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status - release a=now - 500 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages - release a=unstable,n=sid,c=main,b=amd64 - origin localhost -Pinned packages:" aptcache policy - - -cat > rootdir/etc/apt/preferences.d/myauth.pref << EOF -Package: * -Pin: origin localhost -Pin-Priority: 990 - -Package: cool -Pin: origin localhost -Pin-Priority: 990 -EOF - -testsuccessequal "Package files: - 100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status - release a=now - 990 http://localhost:${APTHTTPPORT} unstable/main amd64 Packages - release a=unstable,n=sid,c=main,b=amd64 - origin localhost -Pinned packages: - cool -> 1.0 with priority 990" aptcache policy diff --git a/test/integration/test-provides-arch-all b/test/integration/test-provides-arch-all new file mode 100755 index 000000000..f212b513c --- /dev/null +++ b/test/integration/test-provides-arch-all @@ -0,0 +1,28 @@ +#!/bin/sh +# +# In apt 1.9.6, this test would have failed, outputting: +# The following packages will be REMOVED: +# libltdl-dev +# 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +# Remv libltdl-dev [1] +# +# Because we started inserting groups without packages, and then could not +# properly insert the provides. + +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture "i386" + +insertinstalledpackage 'automake' 'i386' '1' 'Provides: automake-1.16 +Source: automake-1.16 +Multi-Arch: foreign' +insertinstalledpackage 'libltdl-dev' 'i386' '1' 'Depends: automake-1.16' + +setupaptarchive + +testsuccessequal 'Reading package lists... +Building dependency tree... +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget install -f -s diff --git a/test/libapt/CMakeLists.txt b/test/libapt/CMakeLists.txt index d44d77ad4..11d4d22c7 100644 --- a/test/libapt/CMakeLists.txt +++ b/test/libapt/CMakeLists.txt @@ -1,28 +1,35 @@ -set(PROJECT_TEST_LIBRARIES apt-private) -find_path(GTEST_ROOT src/gtest.cc - /usr/src/googletest/googletest - /usr/src/gtest -) -find_package(GTest) -set(GTEST_DEPENDENCIES) - -if(NOT GTEST_FOUND AND EXISTS ${GTEST_ROOT}) - include(ExternalProject) - ExternalProject_Add(gtest PREFIX ./gtest - SOURCE_DIR ${GTEST_ROOT} - INSTALL_COMMAND true) - - link_directories(${CMAKE_CURRENT_BINARY_DIR}/gtest/src/gtest-build) - - set(GTEST_LIBRARIES "-lgtest") - set(GTEST_DEPENDENCIES "gtest") - set(GTEST_FOUND TRUE) - find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_ROOT}/include) - - message(STATUS "Found GTest at ${GTEST_ROOT}, headers at ${GTEST_INCLUDE_DIRS}") -endif() +if (WITH_TESTS) + set(PROJECT_TEST_LIBRARIES apt-private) + find_path(GTEST_ROOT src/gtest.cc + /usr/src/googletest/googletest + /usr/src/googletest + /usr/src/gtest + ) + find_package(GTest) + set(GTEST_DEPENDENCIES) + + if(NOT GTEST_FOUND AND EXISTS ${GTEST_ROOT}) + include(ExternalProject) + ExternalProject_Add(gtest PREFIX ./gtest + SOURCE_DIR ${GTEST_ROOT} + INSTALL_COMMAND true) + + link_directories(${CMAKE_CURRENT_BINARY_DIR}/gtest/src/gtest-build) + link_directories(${CMAKE_CURRENT_BINARY_DIR}/gtest/src/gtest-build/lib) + + set(GTEST_LIBRARIES "-lgtest") + set(GTEST_DEPENDENCIES "gtest") + set(GTEST_FOUND TRUE) + find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_ROOT}/include) + + message(STATUS "Found GTest at ${GTEST_ROOT}, headers at ${GTEST_INCLUDE_DIRS}") + endif() + + if (NOT GTEST_FOUND) + message(FATAL_ERROR "Could not find GTest") + endif() + -if(GTEST_FOUND) # gtest produces some warnings with the set of warnings we activate, # so disable the offending warnings while compiling tests for now add_optional_compile_options(Wno-undef) diff --git a/test/libapt/authconf_test.cc b/test/libapt/authconf_test.cc index a7b2f2c98..04d54e9be 100644 --- a/test/libapt/authconf_test.cc +++ b/test/libapt/authconf_test.cc @@ -13,7 +13,7 @@ TEST(NetRCTest, Parsing) { FileFd fd; - URI U("http://file.not/open"); + URI U("https://file.not/open"); EXPECT_FALSE(MaybeAddAuth(fd, U)); EXPECT_TRUE(U.User.empty()); EXPECT_TRUE(U.Password.empty()); @@ -38,8 +38,8 @@ machine example.com/bar password pass2 login user2 unknown token machine example.com/user login user machine example.netter login unused password firstentry -machine example.last/debian login debian password rules)apt"); - U = URI("http://example.net/foo"); +machine socks5h://example.last/debian login debian password rules)apt"); + U = URI("https://example.net/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo", U.User); EXPECT_EQ("bar", U.Password); @@ -47,7 +47,7 @@ machine example.last/debian login debian password rules)apt"); EXPECT_EQ("/foo", U.Path); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://user:pass@example.net/foo"); + U = URI("https://user:pass@example.net/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("user", U.User); EXPECT_EQ("pass", U.Password); @@ -55,7 +55,7 @@ machine example.last/debian login debian password rules)apt"); EXPECT_EQ("/foo", U.Path); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.org:90/foo"); + U = URI("https://example.org:90/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("apt", U.User); EXPECT_EQ("apt", U.Password); @@ -64,55 +64,55 @@ machine example.last/debian login debian password rules)apt"); EXPECT_EQ("/foo", U.Path); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.org:8080/foo"); + U = URI("https://example.org:8080/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("example", U.User); EXPECT_EQ("foobar", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.net:42/foo"); + U = URI("https://example.net:42/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo", U.User); EXPECT_EQ("bar", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.org/foo"); + U = URI("https://example.org/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("anonymous", U.User); EXPECT_EQ("pass", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.com/apt"); + U = URI("https://example.com/apt"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_TRUE(U.User.empty()); EXPECT_TRUE(U.Password.empty()); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.com/foo"); + U = URI("https://example.com/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("user1", U.User); EXPECT_EQ("pass1", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.com/fooo"); + U = URI("https://example.com/fooo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("user1", U.User); EXPECT_EQ("pass1", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.com/fo"); + U = URI("https://example.com/fo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_TRUE(U.User.empty()); EXPECT_TRUE(U.Password.empty()); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.com/bar"); + U = URI("https://example.com/bar"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("user2", U.User); EXPECT_EQ("pass2", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.com/user"); + U = URI("https://example.com/user"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("user", U.User); EXPECT_TRUE(U.Password.empty()); @@ -144,7 +144,7 @@ machin example.org login foo2 password bar machine2 example.org login foo3 password bar )apt"); - URI U("http://example.org/foo"); + URI U("https://example.org/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_TRUE(U.User.empty()); EXPECT_TRUE(U.Password.empty()); @@ -156,19 +156,19 @@ TEST(NetRCTest, BadFileEndsMachine) machine example.org login foo1 password bar machine)apt"); - URI U("http://example.org/foo"); + URI U("https://example.org/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo1", U.User); EXPECT_EQ("bar", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.net/foo"); + U = URI("https://example.net/foo"); EXPECT_FALSE(MaybeAddAuth(fd, U)); EXPECT_TRUE(U.User.empty()); EXPECT_TRUE(U.Password.empty()); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://foo:bar@example.net/foo"); + U = URI("https://foo:bar@example.net/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo", U.User); EXPECT_EQ("bar", U.Password); @@ -180,19 +180,19 @@ TEST(NetRCTest, BadFileEndsLogin) machine example.org login foo1 password bar machine example.net login)apt"); - URI U("http://example.org/foo"); + URI U("https://example.org/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo1", U.User); EXPECT_EQ("bar", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.net/foo"); + U = URI("https://example.net/foo"); EXPECT_FALSE(MaybeAddAuth(fd, U)); EXPECT_TRUE(U.User.empty()); EXPECT_TRUE(U.Password.empty()); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://foo:bar@example.net/foo"); + U = URI("https://foo:bar@example.net/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo", U.User); EXPECT_EQ("bar", U.Password); @@ -204,20 +204,53 @@ TEST(NetRCTest, BadFileEndsPassword) machine example.org login foo1 password bar machine example.net password)apt"); - URI U("http://example.org/foo"); + URI U("https://example.org/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo1", U.User); EXPECT_EQ("bar", U.Password); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://example.net/foo"); + U = URI("https://example.net/foo"); EXPECT_FALSE(MaybeAddAuth(fd, U)); EXPECT_TRUE(U.User.empty()); EXPECT_TRUE(U.Password.empty()); EXPECT_TRUE(fd.Seek(0)); - U = URI("http://foo:bar@example.net/foo"); + U = URI("https://foo:bar@example.net/foo"); EXPECT_TRUE(MaybeAddAuth(fd, U)); EXPECT_EQ("foo", U.User); EXPECT_EQ("bar", U.Password); } + +TEST(NetRCTest, MatchesOnlyHTTPS) +{ + FileFd fd; + createTemporaryFile("doublesignedfile", fd, nullptr, R"apt( +machine https.example login foo1 password bar +machine http://http.example login foo1 password bar +)apt"); + + URI U("https://https.example/foo"); + EXPECT_TRUE(MaybeAddAuth(fd, U)); + EXPECT_EQ("foo1", U.User); + EXPECT_EQ("bar", U.Password); + + EXPECT_TRUE(fd.Seek(0)); + U = URI("http://https.example/foo"); + EXPECT_TRUE(MaybeAddAuth(fd, U)); + EXPECT_TRUE(U.User.empty()); + EXPECT_TRUE(U.Password.empty()); + + EXPECT_TRUE(fd.Seek(0)); + U = URI("http://http.example/foo"); + EXPECT_TRUE(MaybeAddAuth(fd, U)); + EXPECT_EQ("foo1", U.User); + EXPECT_EQ("bar", U.Password); + + EXPECT_TRUE(fd.Seek(0)); + U = URI("https://http.example/foo"); + EXPECT_TRUE(MaybeAddAuth(fd, U)); + EXPECT_TRUE(U.User.empty()); + EXPECT_TRUE(U.Password.empty()); + +} diff --git a/test/libapt/hashsums_test.cc b/test/libapt/hashsums_test.cc index eede213cd..a8a826821 100644 --- a/test/libapt/hashsums_test.cc +++ b/test/libapt/hashsums_test.cc @@ -3,9 +3,6 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/fileutl.h> #include <apt-pkg/hashes.h> -#include <apt-pkg/md5.h> -#include <apt-pkg/sha1.h> -#include <apt-pkg/sha2.h> #include <apt-pkg/strutl.h> #include <iostream> @@ -25,83 +22,6 @@ template <class T> void Test(const char *In,const char *Out) -TEST(HashSumsTest,SummationStrings) -{ -#define EXPECT_SUM(Summation, In, Out) \ - { \ - Summation Sum; \ - Sum.Add(In); \ - EXPECT_EQ(Sum.Result().Value(), Out) << #Summation << " for '" << In << "'"; \ - } - - // From FIPS PUB 180-1 - EXPECT_SUM(SHA1Summation, "","da39a3ee5e6b4b0d3255bfef95601890afd80709"); - EXPECT_SUM(SHA1Summation, "abc","a9993e364706816aba3e25717850c26c9cd0d89d"); - EXPECT_SUM(SHA1Summation, "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", - "84983e441c3bd26ebaae4aa1f95129e5e54670f1"); - - // MD5 tests from RFC 1321 - EXPECT_SUM(MD5Summation, "","d41d8cd98f00b204e9800998ecf8427e"); - EXPECT_SUM(MD5Summation, "a","0cc175b9c0f1b6a831c399e269772661"); - EXPECT_SUM(MD5Summation, "abc","900150983cd24fb0d6963f7d28e17f72"); - EXPECT_SUM(MD5Summation, "message digest","f96b697d7cb7938d525a2f31aaf161d0"); - EXPECT_SUM(MD5Summation, "abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b"); - EXPECT_SUM(MD5Summation, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - "d174ab98d277d9f5a5611c2c9f419d9f"); - EXPECT_SUM(MD5Summation, "12345678901234567890123456789012345678901234567890123456789012345678901234567890", - "57edf4a22be3c955ac49da2e2107b67a"); - - // SHA-256, From FIPS 180-2 - EXPECT_SUM(SHA256Summation, "", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); - EXPECT_SUM(SHA256Summation, "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", - "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"); - - // SHA-512 - EXPECT_SUM(SHA512Summation, "", - "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce" - "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"); - EXPECT_SUM(SHA512Summation, "abc", - "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" - "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"); - - - EXPECT_SUM(MD5Summation, "The quick brown fox jumps over the lazy dog", "9e107d9d372bb6826bd81d3542a419d6"); - EXPECT_SUM(MD5Summation, "The quick brown fox jumps over the lazy dog.", "e4d909c290d0fb1ca068ffaddf22cbd0"); - EXPECT_SUM(SHA1Summation, "The quick brown fox jumps over the lazy dog", "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"); - EXPECT_SUM(SHA1Summation, "The quick brown fox jumps over the lazy cog", "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3"); - EXPECT_SUM(SHA256Summation, "The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"); - EXPECT_SUM(SHA256Summation, "The quick brown fox jumps over the lazy dog.", "ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c"); - EXPECT_SUM(SHA512Summation, "The quick brown fox jumps over the lazy dog", "07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb64" - "2e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6"); - EXPECT_SUM(SHA512Summation, "The quick brown fox jumps over the lazy dog.", "91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bb" - "c6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed"); - -#undef EXPECT_SUM -} -TEST(HashSumsTest, Mill) -{ - SHA1Summation Sum1; - - const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - size_t const AsCount = sizeof(As)/sizeof(As[0]) - 1; - size_t Count = 1000000; - while (Count != 0) - { - if (Count >= AsCount) - { - Sum1.Add(As, AsCount); - Count -= AsCount; - } - else - { - Sum1.Add(As,Count); - Count = 0; - } - } - - EXPECT_EQ("34aa973cd4c4daa4f61eeb2bdbad27316534016f", Sum1.Result().Value()); -} - static void getSummationString(char const * const type, std::string &sum) { /* to compare our result with an independent source we call the specific binaries @@ -146,20 +66,20 @@ TEST(HashSumsTest, FileBased) std::string summation; getSummationString("md5sum", summation); - MD5SumValue md5(summation); - EXPECT_EQ(md5.Value(), summation); + HashString md5("MD5Sum", summation); + EXPECT_EQ(md5.HashValue(), summation); getSummationString("sha1sum", summation); - SHA1SumValue sha1(summation); - EXPECT_EQ(sha1.Value(), summation); + HashString sha1("SHA1", summation); + EXPECT_EQ(sha1.HashValue(), summation); getSummationString("sha256sum", summation); - SHA256SumValue sha256(summation); - EXPECT_EQ(sha256.Value(), summation); + HashString sha256("SHA256", summation); + EXPECT_EQ(sha256.HashValue(), summation); getSummationString("sha512sum", summation); - SHA512SumValue sha512(summation); - EXPECT_EQ(sha512.Value(), summation); + HashString sha512("SHA512", summation); + EXPECT_EQ(sha512.HashValue(), summation); FileFd fd("/etc/os-release", FileFd::ReadOnly); EXPECT_TRUE(fd.IsOpen()); @@ -172,10 +92,10 @@ TEST(HashSumsTest, FileBased) HashStringList list = hashes.GetHashStringList(); EXPECT_FALSE(list.empty()); EXPECT_EQ(5u, list.size()); - EXPECT_EQ(md5.Value(), list.find("MD5Sum")->HashValue()); - EXPECT_EQ(sha1.Value(), list.find("SHA1")->HashValue()); - EXPECT_EQ(sha256.Value(), list.find("SHA256")->HashValue()); - EXPECT_EQ(sha512.Value(), list.find("SHA512")->HashValue()); + EXPECT_EQ(md5.HashValue(), list.find("MD5Sum")->HashValue()); + EXPECT_EQ(sha1.HashValue(), list.find("SHA1")->HashValue()); + EXPECT_EQ(sha256.HashValue(), list.find("SHA256")->HashValue()); + EXPECT_EQ(sha512.HashValue(), list.find("SHA512")->HashValue()); EXPECT_EQ(FileSize, list.find("Checksum-FileSize")->HashValue()); } unsigned long long sz = fd.FileSize(); @@ -186,10 +106,10 @@ TEST(HashSumsTest, FileBased) HashStringList list = hashes.GetHashStringList(); EXPECT_FALSE(list.empty()); EXPECT_EQ(5u, list.size()); - EXPECT_EQ(md5.Value(), list.find("MD5Sum")->HashValue()); - EXPECT_EQ(sha1.Value(), list.find("SHA1")->HashValue()); - EXPECT_EQ(sha256.Value(), list.find("SHA256")->HashValue()); - EXPECT_EQ(sha512.Value(), list.find("SHA512")->HashValue()); + EXPECT_EQ(md5.HashValue(), list.find("MD5Sum")->HashValue()); + EXPECT_EQ(sha1.HashValue(), list.find("SHA1")->HashValue()); + EXPECT_EQ(sha256.HashValue(), list.find("SHA256")->HashValue()); + EXPECT_EQ(sha512.HashValue(), list.find("SHA512")->HashValue()); EXPECT_EQ(FileSize, list.find("Checksum-FileSize")->HashValue()); } fd.Seek(0); @@ -199,10 +119,10 @@ TEST(HashSumsTest, FileBased) HashStringList list = hashes.GetHashStringList(); EXPECT_FALSE(list.empty()); EXPECT_EQ(3u, list.size()); - EXPECT_EQ(md5.Value(), list.find("MD5Sum")->HashValue()); + EXPECT_EQ(md5.HashValue(), list.find("MD5Sum")->HashValue()); EXPECT_EQ(NULL, list.find("SHA1")); EXPECT_EQ(NULL, list.find("SHA256")); - EXPECT_EQ(sha512.Value(), list.find("SHA512")->HashValue()); + EXPECT_EQ(sha512.HashValue(), list.find("SHA512")->HashValue()); EXPECT_EQ(FileSize, list.find("Checksum-FileSize")->HashValue()); fd.Seek(0); Hashes hashes2(list); @@ -210,39 +130,39 @@ TEST(HashSumsTest, FileBased) list = hashes2.GetHashStringList(); EXPECT_FALSE(list.empty()); EXPECT_EQ(3u, list.size()); - EXPECT_EQ(md5.Value(), list.find("MD5Sum")->HashValue()); + EXPECT_EQ(md5.HashValue(), list.find("MD5Sum")->HashValue()); EXPECT_EQ(NULL, list.find("SHA1")); EXPECT_EQ(NULL, list.find("SHA256")); - EXPECT_EQ(sha512.Value(), list.find("SHA512")->HashValue()); + EXPECT_EQ(sha512.HashValue(), list.find("SHA512")->HashValue()); EXPECT_EQ(FileSize, list.find("Checksum-FileSize")->HashValue()); } fd.Seek(0); { - MD5Summation MD5; + Hashes MD5(Hashes::MD5SUM); MD5.AddFD(fd.Fd()); - EXPECT_EQ(md5.Value(), MD5.Result().Value()); + EXPECT_EQ(md5, MD5.GetHashString(Hashes::MD5SUM)); } fd.Seek(0); { - SHA1Summation SHA1; + Hashes SHA1(Hashes::SHA1SUM); SHA1.AddFD(fd.Fd()); - EXPECT_EQ(sha1.Value(), SHA1.Result().Value()); + EXPECT_EQ(sha1, SHA1.GetHashString(Hashes::SHA1SUM)); } fd.Seek(0); { - SHA256Summation SHA2; + Hashes SHA2(Hashes::SHA256SUM); SHA2.AddFD(fd.Fd()); - EXPECT_EQ(sha256.Value(), SHA2.Result().Value()); + EXPECT_EQ(sha256, SHA2.GetHashString(Hashes::SHA256SUM)); } fd.Seek(0); { - SHA512Summation SHA2; + Hashes SHA2(Hashes::SHA512SUM); SHA2.AddFD(fd.Fd()); - EXPECT_EQ(sha512.Value(), SHA2.Result().Value()); + EXPECT_EQ(sha512, SHA2.GetHashString(Hashes::SHA512SUM)); } fd.Close(); - HashString sha2file("SHA512", sha512.Value()); + HashString sha2file("SHA512", sha512.HashValue()); EXPECT_TRUE(sha2file.VerifyFile("/etc/os-release")); HashString sha2wrong("SHA512", "00000000000"); EXPECT_FALSE(sha2wrong.VerifyFile("/etc/os-release")); @@ -251,9 +171,9 @@ TEST(HashSumsTest, FileBased) EXPECT_NE(sha2file, sha2wrong); EXPECT_TRUE(sha2file != sha2wrong); - HashString sha2big("SHA256", sha256.Value()); + HashString sha2big("SHA256", sha256.HashValue()); EXPECT_TRUE(sha2big.VerifyFile("/etc/os-release")); - HashString sha2small("sha256:" + sha256.Value()); + HashString sha2small("sha256:" + sha256.HashValue()); EXPECT_TRUE(sha2small.VerifyFile("/etc/os-release")); EXPECT_EQ(sha2big, sha2small); EXPECT_TRUE(sha2big == sha2small); diff --git a/test/libapt/pattern_test.cc b/test/libapt/pattern_test.cc index de2fbceb9..bfcaf2093 100644 --- a/test/libapt/pattern_test.cc +++ b/test/libapt/pattern_test.cc @@ -14,21 +14,53 @@ using namespace APT::Internal; +#define EXPECT_EXCEPTION(exp, exc, msg) \ + caught = false; \ + try \ + { \ + exp; \ + } \ + catch (exc & e) \ + { \ + caught = true; \ + EXPECT_TRUE(e.message.find(msg) != std::string::npos) << msg << " not in " << e.message; \ + }; \ + EXPECT_TRUE(caught) << #exp "should have thrown an exception" + +TEST(TreeParserTest, ParseInvalid) +{ + bool caught = false; + + // Not a valid pattern: Reject + EXPECT_EXCEPTION(PatternTreeParser("?").parse(), PatternTreeParser::Error, "Pattern must have a term"); + EXPECT_EXCEPTION(PatternTreeParser("?AB?").parse(), PatternTreeParser::Error, "Pattern must have a term"); + EXPECT_EXCEPTION(PatternTreeParser("~").parse(), PatternTreeParser::Error, "Unknown short pattern"); + + // Not a pattern at all: Report nullptr + EXPECT_EQ(PatternTreeParser("A?").parse(), nullptr); +} + TEST(TreeParserTest, ParseWord) { - auto node = PatternTreeParser("word").parseTop(); - auto wordNode = dynamic_cast<PatternTreeParser::WordNode *>(node.get()); + auto node = PatternTreeParser("?word(word)").parseTop(); + auto patternNode = dynamic_cast<PatternTreeParser::PatternNode *>(node.get()); - EXPECT_EQ(node.get(), wordNode); + ASSERT_EQ(patternNode->arguments.size(), 1u); + auto wordNode = dynamic_cast<PatternTreeParser::WordNode *>(patternNode->arguments[0].get()); + + EXPECT_EQ(patternNode->arguments[0].get(), wordNode); EXPECT_EQ(wordNode->word, "word"); } TEST(TreeParserTest, ParseQuotedWord) { - auto node = PatternTreeParser("\"a word\"").parseTop(); - auto wordNode = dynamic_cast<PatternTreeParser::WordNode *>(node.get()); + auto node = PatternTreeParser("?word(\"a word\")").parseTop(); + auto patternNode = dynamic_cast<PatternTreeParser::PatternNode *>(node.get()); - EXPECT_EQ(node.get(), wordNode); + ASSERT_EQ(patternNode->arguments.size(), 1u); + auto wordNode = dynamic_cast<PatternTreeParser::WordNode *>(patternNode->arguments[0].get()); + + EXPECT_EQ(patternNode->arguments[0].get(), wordNode); EXPECT_EQ(wordNode->word, "a word"); } @@ -93,3 +125,98 @@ TEST(TreeParserTest, ParseWithManyArgsWithSpacesWithTrailingComma) EXPECT_EQ(patternNode->term, "?hello"); EXPECT_EQ(2u, patternNode->arguments.size()); } + +// Helper +static bool samePattern(const std::unique_ptr<PatternTreeParser::Node> &a, const std::unique_ptr<PatternTreeParser::Node> &b) +{ + auto pa = dynamic_cast<const PatternTreeParser::PatternNode *>(a.get()); + auto pb = dynamic_cast<const PatternTreeParser::PatternNode *>(b.get()); + + if (pa && pb) + { + if (pa->term != pb->term || pa->haveArgumentList != pb->haveArgumentList || pa->arguments.size() != pb->arguments.size()) + return false; + + for (size_t i = 0; i < pa->arguments.size(); i++) + { + if (!samePattern(pa->arguments[i], pb->arguments[i])) + return false; + } + return true; + } + + auto wa = dynamic_cast<const PatternTreeParser::WordNode *>(a.get()); + auto wb = dynamic_cast<const PatternTreeParser::WordNode *>(b.get()); + if (wa && wb) + return wa->word == wb->word && wa->quoted == wb->quoted; + + return false; +} + +#define EXPECT_PATTERN_EQ(shrt, lng) \ + EXPECT_TRUE(samePattern(PatternTreeParser(shrt).parseTop(), PatternTreeParser(lng).parseTop())) +#define EXPECT_PATTERN_EQ_ATOMIC(shrt, lng) \ + EXPECT_TRUE(PatternTreeParser(shrt).parseTop()); \ + caught = false; \ + try \ + { \ + PatternTreeParser(shrt "XXX").parseTop(); \ + } \ + catch (PatternTreeParser::Error & e) \ + { \ + caught = true; \ + }; \ + EXPECT_TRUE(caught) << shrt "XXX should have thrown an exception"; \ + EXPECT_PATTERN_EQ(shrt, lng) + +TEST(TreeParserTest, ParseShortPattern) +{ + bool caught; + EXPECT_PATTERN_EQ("~ramd64", "?architecture(amd64)"); + EXPECT_PATTERN_EQ("~AanArchive", "?archive(anArchive)"); + EXPECT_PATTERN_EQ_ATOMIC("~M", "?automatic"); + EXPECT_PATTERN_EQ_ATOMIC("~b", "?broken"); + EXPECT_PATTERN_EQ_ATOMIC("~c", "?config-files"); + EXPECT_PATTERN_EQ_ATOMIC("~E", "?essential"); + EXPECT_PATTERN_EQ_ATOMIC("~F", "?false"); + EXPECT_PATTERN_EQ_ATOMIC("~g", "?garbage"); + EXPECT_PATTERN_EQ_ATOMIC("~i", "?installed"); + EXPECT_PATTERN_EQ("~napt", "?name(apt)"); + EXPECT_PATTERN_EQ_ATOMIC("~o", "?obsolete"); + EXPECT_PATTERN_EQ("~Obar", "?origin(bar)"); + EXPECT_PATTERN_EQ("~sfoo", "?section(foo)"); + EXPECT_PATTERN_EQ("~esourcename", "?source-package(sourcename)"); + EXPECT_PATTERN_EQ_ATOMIC("~T", "?true"); + EXPECT_PATTERN_EQ_ATOMIC("~U", "?upgradable"); + EXPECT_PATTERN_EQ("~Vverstr", "?version(verstr)"); + EXPECT_PATTERN_EQ_ATOMIC("~v", "?virtual"); + EXPECT_PATTERN_EQ("!?foo", "?not(?foo)"); + + caught = false; + try + { + PatternTreeParser("!x").parseTop(); + } + catch (PatternTreeParser::Error &e) + { + caught = true; + }; + EXPECT_TRUE(caught) << "!X should have thrown an exception"; + + EXPECT_PATTERN_EQ("?a?b", "?and(?a, ?b)"); + EXPECT_PATTERN_EQ("~T~F", "?and(?true, ?false)"); + EXPECT_PATTERN_EQ("~T ~F", "?and(?true, ?false)"); + EXPECT_PATTERN_EQ("~T !~F", "?and(?true, ?not(?false))"); + EXPECT_PATTERN_EQ("!~F ~T", "?and(?not(?false), ?true)"); + EXPECT_PATTERN_EQ("!~F~T", "?and(?not(?false), ?true)"); + + EXPECT_PATTERN_EQ("!~F~T | ~T", "?or(?and(?not(?false), ?true), ?true)"); + EXPECT_PATTERN_EQ("~ramd64|~rall", "?or(?architecture(amd64), ?architecture(all))"); + EXPECT_PATTERN_EQ("~ramd64 | ~rall", "?or(?architecture(amd64), ?architecture(all))"); + EXPECT_PATTERN_EQ("~ramd64?name(foo)", "?and(?architecture(amd64), ?name(foo))"); + + EXPECT_PATTERN_EQ("(?A|?B)?C", "?and(?or(?A, ?B), ?C)"); + EXPECT_PATTERN_EQ("?A|?B?C", "?or(?A, ?and(?B, ?C))"); + EXPECT_PATTERN_EQ("?A|(?B?C)", "?or(?A, ?and(?B, ?C))"); + EXPECT_PATTERN_EQ("(?B?C)|?A", "?or(?and(?B, ?C), ?A)"); +} |