diff options
29 files changed, 348 insertions, 354 deletions
diff --git a/CMake/FindBerkeleyDB.cmake b/CMake/FindBerkeley.cmake index 34bc3b0d1..a6215d728 100644 --- a/CMake/FindBerkeleyDB.cmake +++ b/CMake/FindBerkeley.cmake @@ -1,10 +1,10 @@ # - Try to find Berkeley DB # Once done this will define # -# BERKELEY_DB_FOUND - system has Berkeley DB -# BERKELEY_DB_INCLUDE_DIRS - the Berkeley DB include directory -# BERKELEY_DB_LIBRARIES - Link these to use Berkeley DB -# BERKELEY_DB_DEFINITIONS - Compiler switches required for using Berkeley DB +# BERKELEY_FOUND - system has Berkeley DB +# BERKELEY_INCLUDE_DIRS - the Berkeley DB include directory +# BERKELEY_LIBRARIES - Link these to use Berkeley DB +# BERKELEY_DEFINITIONS - Compiler switches required for using Berkeley DB # Copyright (c) 2006, Alexander Dymo, <adymo@kdevelop.org> # Copyright (c) 2016, Julian Andres Klode <jak@debian.org> @@ -35,7 +35,7 @@ # We need NO_DEFAULT_PATH here, otherwise CMake helpfully picks up the wrong # db.h on BSD systems instead of the Berkeley DB one. -find_path(BERKELEY_DB_INCLUDE_DIRS db.h +find_path(BERKELEY_INCLUDE_DIRS db.h ${CMAKE_INSTALL_FULL_INCLUDEDIR}/db5 /usr/local/include/db5 /usr/include/db5 @@ -51,9 +51,9 @@ find_path(BERKELEY_DB_INCLUDE_DIRS db.h NO_DEFAULT_PATH ) -find_library(BERKELEY_DB_LIBRARIES NAMES db db-5) +find_library(BERKELEY_LIBRARIES NAMES db db-5) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Berkeley "Could not find Berkeley DB >= 4.1" BERKELEY_DB_INCLUDE_DIRS BERKELEY_DB_LIBRARIES) -# show the BERKELEY_DB_INCLUDE_DIRS and BERKELEY_DB_LIBRARIES variables only in the advanced view -mark_as_advanced(BERKELEY_DB_INCLUDE_DIRS BERKELEY_DB_LIBRARIES) +find_package_handle_standard_args(Berkeley "Could not find Berkeley DB >= 4.1" BERKELEY_INCLUDE_DIRS BERKELEY_LIBRARIES) +# show the BERKELEY_INCLUDE_DIRS and BERKELEY_LIBRARIES variables only in the advanced view +mark_as_advanced(BERKELEY_INCLUDE_DIRS BERKELEY_LIBRARIES) diff --git a/CMake/FindGcrypt.cmake b/CMake/FindGCRYPT.cmake index 56bfc9fef..56bfc9fef 100644 --- a/CMake/FindGcrypt.cmake +++ b/CMake/FindGCRYPT.cmake diff --git a/CMake/FindSeccomp.cmake b/CMake/FindSECCOMP.cmake index 5cfd13a37..5cfd13a37 100644 --- a/CMake/FindSeccomp.cmake +++ b/CMake/FindSECCOMP.cmake diff --git a/CMake/FindZstd.cmake b/CMake/FindZSTD.cmake index 68118049b..68118049b 100644 --- a/CMake/FindZstd.cmake +++ b/CMake/FindZSTD.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 139623794..973fb2e9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,8 +80,8 @@ add_optional_compile_options(Wsuggest-override) add_optional_compile_options(Werror=suggest-override) add_optional_compile_options(Werror=return-type) # apt-ftparchive dependencies -find_package(BerkeleyDB REQUIRED) -if (BERKELEY_DB_FOUND) +find_package(Berkeley REQUIRED) +if (BERKELEY_FOUND) set(HAVE_BDB 1) endif() @@ -113,7 +113,7 @@ if (LZ4_FOUND) set(HAVE_LZ4 1) endif() -find_package(Zstd) +find_package(ZSTD) if (ZSTD_FOUND) set(HAVE_ZSTD 1) endif() @@ -129,12 +129,12 @@ if (SYSTEMD_FOUND) set(HAVE_SYSTEMD 1) endif() -find_package(Seccomp) +find_package(SECCOMP) if (SECCOMP_FOUND) set(HAVE_SECCOMP 1) endif() -find_package(Gcrypt REQUIRED) +find_package(GCRYPT REQUIRED) # Mount()ing and stat()ing and friends check_symbol_exists(statfs sys/vfs.h HAVE_VFS_H) @@ -204,7 +204,7 @@ check_cxx_target(HAVE_FMV_SSE42_AND_CRC32DI "sse4.2" "__builtin_ia32_crc32di(0,i # Configure some variables like package, version and architecture. set(PACKAGE ${PROJECT_NAME}) set(PACKAGE_MAIL "APT Development Team <deity@lists.debian.org>") -set(PACKAGE_VERSION "2.1.10") +set(PACKAGE_VERSION "2.1.12") string(REGEX MATCH "^[0-9.]+" PROJECT_VERSION ${PACKAGE_VERSION}) if (NOT DEFINED DPKG_DATADIR) diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index 515de972c..a1b3f4537 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -609,7 +609,8 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth) List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); - if ((Cache[Pkg].InstVerIter(Cache)->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same) + if ((Cache[Pkg].InstVerIter(Cache)->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same && + not List->IsFlag(Pkg, pkgOrderList::Immediate)) for (PkgIterator P = Pkg.Group().PackageList(); P.end() == false; P = Pkg.Group().NextPkg(P)) { @@ -1007,7 +1008,7 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c if (Immediate == true) { // Perform immediate configuration of the package. if (SmartConfigure(Pkg, Depth + 1) == false) - _error->Error(_("Could not perform immediate configuration on '%s'. " + _error->Warning(_("Could not perform immediate configuration on '%s'. " "Please see man 5 apt.conf under APT::Immediate-Configure for details. (%d)"),Pkg.FullName().c_str(),2); } diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index bcafe785b..588dea06b 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -362,6 +362,14 @@ static bool addArgumentsAPT(std::vector<CommandLine::Args> &Args, char const * c return true; } /*}}}*/ +static bool addArgumentsRred(std::vector<CommandLine::Args> &Args, char const * const /*Cmd*/)/*{{{*/ +{ + addArg('t', nullptr, "Rred::T", 0); + addArg('f', nullptr, "Rred::F", 0); + addArg('C', "compress", "Rred::Compress",CommandLine::HasArg); + return true; +} + /*}}}*/ std::vector<CommandLine::Args> getCommandArgs(APT_CMD const Program, char const * const Cmd)/*{{{*/ { std::vector<CommandLine::Args> Args; @@ -384,6 +392,7 @@ std::vector<CommandLine::Args> getCommandArgs(APT_CMD const Program, char const case APT_CMD::APT_INTERNAL_SOLVER: addArgumentsAPTInternalSolver(Args, Cmd); break; case APT_CMD::APT_MARK: addArgumentsAPTMark(Args, Cmd); break; case APT_CMD::APT_SORTPKG: addArgumentsAPTSortPkgs(Args, Cmd); break; + case APT_CMD::RRED: addArgumentsRred(Args, Cmd); break; } // options without a command @@ -441,11 +450,12 @@ static bool ShowCommonHelp(APT_CMD const Binary, CommandLine &CmdL, std::vector< case APT_CMD::APT_INTERNAL_SOLVER: cmd = nullptr; break; case APT_CMD::APT_MARK: cmd = "apt-mark(8)"; break; case APT_CMD::APT_SORTPKG: cmd = "apt-sortpkgs(1)"; break; + case APT_CMD::RRED: cmd = nullptr; break; } if (cmd != nullptr) ioprintf(std::cout, _("See %s for more information about the available commands."), cmd); if (Binary != APT_CMD::APT_DUMP_SOLVER && Binary != APT_CMD::APT_INTERNAL_SOLVER && - Binary != APT_CMD::APT_INTERNAL_PLANNER) + Binary != APT_CMD::APT_INTERNAL_PLANNER && Binary != APT_CMD::RRED) std::cout << std::endl << _("Configuration options and syntax is detailed in apt.conf(5).\n" "Information about how to configure sources can be found in sources.list(5).\n" diff --git a/apt-private/private-cmndline.h b/apt-private/private-cmndline.h index 37fe2c91a..22e25d280 100644 --- a/apt-private/private-cmndline.h +++ b/apt-private/private-cmndline.h @@ -23,6 +23,7 @@ enum class APT_CMD { APT_SORTPKG, APT_DUMP_SOLVER, APT_INTERNAL_PLANNER, + RRED, }; struct aptDispatchWithHelp { diff --git a/apt-private/private-main.cc b/apt-private/private-main.cc index e9f65bd83..d4ce0ab2a 100644 --- a/apt-private/private-main.cc +++ b/apt-private/private-main.cc @@ -33,6 +33,7 @@ void InitLocale(APT_CMD const binary) /*{{{*/ case APT_CMD::APT_HELPER: case APT_CMD::APT_GET: case APT_CMD::APT_MARK: + case APT_CMD::RRED: textdomain("apt"); break; case APT_CMD::APT_EXTRACTTEMPLATES: diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 23ab7e47f..ffe650970 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -980,15 +980,13 @@ static bool ShowPkgNames(CommandLine &CmdL) if (unlikely(CacheFile.BuildCaches(NULL, false) == false)) return false; pkgCache::GrpIterator I = CacheFile.GetPkgCache()->GrpBegin(); - bool const All = _config->FindB("APT::Cache::AllNames","false"); + bool const All = _config->FindB("APT::Cache::AllNames", false); if (CmdL.FileList[1] != 0) { for (;I.end() != true; ++I) { - if (All == false && I->FirstPackage == 0) - continue; - if (I.FindPkg("any")->VersionList == 0) + if (All == false && (I.PackageList().end() || I.PackageList()->VersionList == 0)) continue; if (strncmp(I.Name(),CmdL.FileList[1],strlen(CmdL.FileList[1])) == 0) cout << I.Name() << endl; @@ -1000,13 +998,11 @@ static bool ShowPkgNames(CommandLine &CmdL) // Show all pkgs for (;I.end() != true; ++I) { - if (All == false && I->FirstPackage == 0) - continue; - if (I.FindPkg("any")->VersionList == 0) + if (All == false && (I.PackageList().end() || I.PackageList()->VersionList == 0)) continue; cout << I.Name() << endl; } - + return true; } /*}}}*/ diff --git a/debian/apt.install b/debian/apt.install index f745b3de5..3658bf5e6 100644 --- a/debian/apt.install +++ b/debian/apt.install @@ -25,6 +25,7 @@ usr/share/man/*/*/apt-get.* usr/share/man/*/*/apt-key.* usr/share/man/*/*/apt-mark.* usr/share/man/*/*/apt-secure.* +usr/share/man/*/*/apt-patterns.* usr/share/man/*/*/apt.* usr/share/man/*/*/apt_preferences.* usr/share/man/*/*/apt_auth.* @@ -38,11 +39,9 @@ usr/share/man/*/apt-key.* usr/share/man/*/apt-mark.* usr/share/man/*/apt-secure.* usr/share/man/*/apt-patterns.* -usr/share/man/*/apt-transport-http.* -usr/share/man/*/apt-transport-https.* -usr/share/man/*/apt-transport-mirror.* usr/share/man/*/apt.* -usr/share/man/*/apt_auth.* usr/share/man/*/apt_preferences.* +usr/share/man/*/apt_auth.* +usr/share/man/*/apt-transport-*.* usr/share/man/*/sources.list.* var/ diff --git a/debian/apt.lintian-overrides b/debian/apt.lintian-overrides index 7d1e892a3..78a47a1b3 100644 --- a/debian/apt.lintian-overrides +++ b/debian/apt.lintian-overrides @@ -1,5 +1,11 @@ # the private library is for internal sharing only apt: package-name-doesnt-match-sonames -apt: systemd-service-file-missing-install-key lib/systemd/system/apt-daily.service -apt: shlib-calls-exit usr/lib*/libapt-private.so.0.0.0 +apt: exit-in-shared-library usr/lib*/libapt-private.so.0.0.0 apt: no-symbols-control-file usr/lib*/libapt-private.so.0.0.0 +# we are implementing our own fallback and it is a minor usecase only +apt: missing-depends-on-sensible-utils sensible-pager usr/lib*/libapt-private.so.0.0.0 +# these man pages document usage/config for things called via apt +apt: spare-manual-page usr/share/man*/man1/apt-transport-http.1.gz +apt: spare-manual-page usr/share/man*/man1/apt-transport-https.1.gz +apt: spare-manual-page usr/share/man*/man1/apt-transport-mirror.1.gz +apt: spare-manual-page usr/share/man*/man8/apt-secure.8.gz diff --git a/debian/apt.postinst b/debian/apt.postinst index 0c6b5db9c..837b46b7b 100755 --- a/debian/apt.postinst +++ b/debian/apt.postinst @@ -1,86 +1,10 @@ #! /bin/sh - set -e -# summary of how this script can be called: -# * <postinst> `configure' <most-recently-configured-version> -# * <old-postinst> `abort-upgrade' <new version> -# * <conflictor's-postinst> `abort-remove' `in-favour' <package> -# <new-version> -# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' -# <failed-install-package> <version> `removing' -# <conflicting-package> <version> -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - -case "$1" in - configure) - if dpkg --compare-versions "$2" lt 1.1~exp4; then - # apt-key before 0.9.10 could leave empty keyrings around - find /etc/apt/trusted.gpg.d/ -name '*.gpg' | while read keyring; do - if ! test -s "$keyring"; then - rm -f "$keyring" - fi - done - # apt-key before 0.9.8.2 could create 0600 trusted.gpg file - if test -e /etc/apt/trusted.gpg ; then - chmod -f 0644 /etc/apt/trusted.gpg || true - fi - fi - - if dpkg --compare-versions "$2" lt-nl 0.9.9.5; then - # we are using tmpfiles for both - rm -f /etc/apt/trustdb.gpg - # this removal was done unconditional since 0.8.15.3 - SECRING='/etc/apt/secring.gpg' - # test if secring is an empty normal file - if test -f $SECRING -a ! -s $SECRING; then - rm -f $SECRING - fi - fi - +if [ "$1" = 'configure' ]; then # add unprivileged user for the apt methods adduser --force-badname --system --home /nonexistent \ --no-create-home --quiet _apt || true - - # Fixup any mistake in the home directory of the _apt user - if dpkg --compare-versions "$2" lt-nl 1.1~exp10~; then - usermod --home /nonexistent _apt - fi - - # deal with upgrades from experimental - if dpkg --compare-versions "$2" 'eq' '1.1~exp3'; then - # libapt will setup partial/ at runtime - chown -R root:root /var/lib/apt/lists /var/cache/apt/archives || true - fi - - # ensure tighter permissions on the logs, see LP: #975199 - if dpkg --compare-versions "$2" lt-nl 0.9.7.7; then - # ensure permissions are right - chmod -f 0640 /var/log/apt/term.log* || true - fi - - # create kernel autoremoval denylist on update - if dpkg --compare-versions "$2" lt 0.9.9.3; then - /etc/kernel/postinst.d/apt-auto-removal - fi - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. +fi #DEBHELPER# - -exit 0 - - diff --git a/debian/changelog b/debian/changelog index cfc6b6ddc..39afd8340 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,38 @@ +apt (2.1.12) unstable; urgency=medium + + [ Julian Andres Klode ] + * pkgnames: Correctly set the default for AllNames to false (LP: #1876495) + * pkgnames: Do not exclude virtual packages with --all-names + * Remove expired domain that became nsfw from debian/changelog + * Do not immediately configure m-a: same packages in lockstep (LP: #1871268) + + [ Américo Monteiro ] + * Portuguese manpages translation update (Closes: #968414) + + [ David Kalnischkies ] + * Rename CMake find_package helpers to avoid developer warnings + * Install translated apt-patterns(7) man pages + * Remove ancient versions support from apts postinst + * Update libapt-pkg6.0 symbols file + * Refresh lintian-overrides of apt and libapt-pkg-doc + + -- Julian Andres Klode <jak@debian.org> Mon, 23 Nov 2020 17:52:37 +0100 + +apt (2.1.11) unstable; urgency=medium + + [ JCGoran ] + * Fix "extended_states" typo in apt-mark(8) (Closes: #969086) + + [ Julian Andres Klode ] + * doc: Bump Ubuntu release from focal to groovy + * Do not produce late error if immediate configuration fails, just warn + (Closes: #953260, #972552) (LP: #1871268) + + [ Frans Spiesschaert ] + * Dutch manpages translation update (Closes: #970037) + + -- Julian Andres Klode <juliank@ubuntu.com> Wed, 21 Oct 2020 11:53:18 +0200 + apt (2.1.10) unstable; urgency=medium * Default Acquire::AllowReleaseInfoChange::Suite to "true" (Closes: #931566) @@ -791,7 +826,6 @@ apt (1.7.0~alpha3) experimental; urgency=medium supply any InRelease file without it having to be verified. (LP: #1787752) - apt-pkg/acquire-item.cc:: clear alternative URIs for mirror:// between steps - CVE-2018-0501 - - https://mirror.fail/ [ Jean-Ralph Aviles ] * Add trailing newline to output of edit-sources. diff --git a/debian/libapt-pkg-doc.lintian-overrides b/debian/libapt-pkg-doc.lintian-overrides index d7cbc437e..72403d3a1 100644 --- a/debian/libapt-pkg-doc.lintian-overrides +++ b/debian/libapt-pkg-doc.lintian-overrides @@ -1,3 +1 @@ -# embedded by doxygen, see /usr/share/doc/doxygen/README.jquery -libapt-pkg-doc: embedded-javascript-library libapt-pkg-doc: duplicate-files usr/share/doc/libapt-pkg-doc/html/* diff --git a/debian/libapt-pkg6.0.symbols b/debian/libapt-pkg6.0.symbols index a9ffaf882..03a9e0902 100644 --- a/debian/libapt-pkg6.0.symbols +++ b/debian/libapt-pkg6.0.symbols @@ -35,7 +35,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -142,12 +141,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -339,13 +332,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -383,14 +369,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -453,8 +431,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -462,14 +438,12 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -478,11 +452,9 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -503,14 +475,12 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -519,11 +489,9 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -544,7 +512,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -559,11 +526,9 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -579,11 +544,8 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -672,7 +634,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -706,7 +667,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 ### orderlist rework: the touched methods are protected - (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 @@ -1032,46 +992,10 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"APT::VersionContainerInterface::VersionContainerInterface(APT::VersionContainerInterface const&)@APTPKG_6.0" 1.9.11~ (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::ArchiveInfo[abi:cxx11](pkgCache::VerIterator const&) 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 @@ -1219,13 +1143,7 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -1242,13 +1160,7 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -1266,13 +1178,7 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -1297,6 +1203,12 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"pkgCache::VerIterator::TranslatedDescriptionForLanguage(APT::StringView) const@APTPKG_6.0" 1.9.11~ (c++)"pkgPolicy::SetPriority(pkgCache::PkgFileIterator const&, short)@APTPKG_6.0" 1.9.11~ (c++)"pkgPolicy::SetPriority(pkgCache::VerIterator const&, short)@APTPKG_6.0" 1.9.11~ + (c++)"pkgDebianIndexFile::Merge(pkgCacheGenerator&, OpProgress*)@APTPKG_6.0" 1.9.11~ + (c++)"metaIndex::Merge(pkgCacheGenerator&, OpProgress*) const@APTPKG_6.0" 1.9.11~ + (c++)"typeinfo for APT::PackageContainer<std::vector<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 1.9.11~ + (c++)"typeinfo name for APT::PackageContainer<std::vector<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 1.9.11~ + (c++)"vtable for APT::PackageContainer<std::vector<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@APTPKG_6.0" 1.9.11~ + (c++)"pkgDepCache::CheckConsistency(char const*)@APTPKG_6.0" 2.1.5~ ### dpkg selection state changer & general dpkg interfacing (c++)"APT::StateChanges::clear()@APTPKG_6.0" 1.1~exp15 (c++)"APT::StateChanges::empty() const@APTPKG_6.0" 1.1~exp15 @@ -1336,12 +1248,10 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -1349,20 +1259,10 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# 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_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_6.0$" 0.8.0 (c++|regex|optional=std)"^(void |)std::[^ ]+<.+ >::(_|~).+\(.*\)@APTPKG_6.0$" 0.8.0 @@ -1397,7 +1297,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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 @@ -1405,7 +1304,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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~ @@ -1419,26 +1317,8 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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++)"debSystem::ArchitecturesSupported[abi:cxx11]() const@APTPKG_6.0" 1.9.11~ - (c++)"debSystem::MultiArchSupported() const@APTPKG_6.0" 1.9.11~ - (c++)"debSystem::IsLocked()@APTPKG_6.0" 1.9.11~ - (c++)"debSystem::LockInner()@APTPKG_6.0" 1.9.11~ - (c++)"debSystem::UnLockInner(bool)@APTPKG_6.0" 1.9.11~ # 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_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_6.0" 1.1~exp12 (c++)"ExtractTar::Go(pkgDirStream&)@APTPKG_6.0" 0.8.0 @@ -1475,25 +1355,12 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (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_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~ (c++|optional=std)"typeinfo for std::_Mutex_base<(__gnu_cxx::_Lock_policy)2>@APTPKG_6.0" 1.9.11~ (c++|optional=std)"typeinfo for std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>@APTPKG_6.0" 1.9.11~ - (c++|optional=std)"typeinfo for std::_Sp_counted_deleter<__res_state*, void (*)(__res_state*), std::allocator<void>, (__gnu_cxx::_Lock_policy)2>@APTPKG_6.0" 1.9.11~ (c++|optional=std)"typeinfo name for std::_Mutex_base<(__gnu_cxx::_Lock_policy)2>@APTPKG_6.0" 1.9.11~ (c++|optional=std)"typeinfo name for std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>@APTPKG_6.0" 1.9.11~ - (c++|optional=std)"typeinfo name for std::_Sp_counted_deleter<__res_state*, void (*)(__res_state*), std::allocator<void>, (__gnu_cxx::_Lock_policy)2>@APTPKG_6.0" 1.9.11~ - (c++|optional=std)"typeinfo name for void (*)(__res_state*)@APTPKG_6.0" 1.9.11~ - (c++|optional=std)"vtable for std::_Sp_counted_deleter<__res_state*, void (*)(__res_state*), std::allocator<void>, (__gnu_cxx::_Lock_policy)2>@APTPKG_6.0" 1.9.11~ -### 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_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~ - (regex|optional)".*hash32.*\.ifunc@APTPKG_6.0" 1.9.11~ ### Internal functions needed for testing purposes - (c++)"APT::Internal::Patterns::BaseRegexMatcher::~BaseRegexMatcher()@APTPKG_6.0" 1.9.11~ - (c++)"APT::Internal::Patterns::BaseRegexMatcher::BaseRegexMatcher(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@APTPKG_6.0" 1.9.11~ - (c++)"APT::Internal::Patterns::BaseRegexMatcher::operator()(char const*)@APTPKG_6.0" 1.9.11~ (c++)"APT::Internal::PatternTreeParser::Node::error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)@APTPKG_6.0" 1.9.11~ (c++)"APT::Internal::PatternTreeParser::parse()@APTPKG_6.0" 1.9.11~ (c++)"APT::Internal::PatternTreeParser::parseTop()@APTPKG_6.0" 1.9.11~ @@ -1505,7 +1372,6 @@ libapt-pkg.so.6.0 libapt-pkg6.0 #MINVER# (c++)"typeinfo name for APT::Internal::PatternTreeParser::Node@APTPKG_6.0" 1.9.11~ (c++)"typeinfo name for APT::Internal::PatternTreeParser::PatternNode@APTPKG_6.0" 1.9.11~ (c++)"typeinfo name for APT::Internal::PatternTreeParser::WordNode@APTPKG_6.0" 1.9.11~ - (c++)"void std::vector<std::unique_ptr<APT::Internal::PatternTreeParser::Node, std::default_delete<APT::Internal::PatternTreeParser::Node> >, std::allocator<std::unique_ptr<APT::Internal::PatternTreeParser::Node, std::default_delete<APT::Internal::PatternTreeParser::Node> > > >::emplace_back<std::unique_ptr<APT::Internal::PatternTreeParser::Node, std::default_delete<APT::Internal::PatternTreeParser::Node> > >(std::unique_ptr<APT::Internal::PatternTreeParser::Node, std::default_delete<APT::Internal::PatternTreeParser::Node> >&&)@APTPKG_6.0" 1.9.11~ (c++)"vtable for APT::Internal::PatternTreeParser::Error@APTPKG_6.0" 1.9.11~ (c++)"vtable for APT::Internal::PatternTreeParser::Node@APTPKG_6.0" 1.9.11~ (c++)"vtable for APT::Internal::PatternTreeParser::PatternNode@APTPKG_6.0" 1.9.11~ diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent index ab1461693..c75fef182 100644 --- a/doc/apt-verbatim.ent +++ b/doc/apt-verbatim.ent @@ -274,14 +274,14 @@ "> <!-- this will be updated by 'prepare-release' --> -<!ENTITY apt-product-version "2.1.10"> +<!ENTITY apt-product-version "2.1.12"> <!-- (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 "focal"> +<!ENTITY ubuntu-codename "groovy"> <!-- 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/examples/configure-index b/doc/examples/configure-index index d9f269344..0af923811 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -830,6 +830,9 @@ dir::filelistdir "<STRING>"; dir::dpkg::tupletable "<FILE>"; dir::dpkg::triplettable "<FILE>"; dir::dpkg::cputable "<FILE>"; +Rred::t "<BOOL>"; +Rred::f "<BOOL>"; +Rred::Compress "<STRING>"; APT::Internal::OpProgress::Absolute "<BOOL>"; APT::Color "<BOOL>"; diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot index be0b7063f..73ba791a9 100644 --- a/doc/po/apt-doc.pot +++ b/doc/po/apt-doc.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt-doc 2.1.10\n" +"Project-Id-Version: apt-doc 2.1.12\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2020-08-11 14:34+0200\n" +"POT-Creation-Date: 2020-11-23 17:52+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" diff --git a/doc/po/nl.po b/doc/po/nl.po index c8545a482..824b86ad9 100644 --- a/doc/po/nl.po +++ b/doc/po/nl.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: apt-doc 2.1.4\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2020-08-04 12:40+0200\n" -"PO-Revision-Date: 2020-05-24 16:39+0200\n" +"POT-Creation-Date: 2020-09-10 22:28+0200\n" +"PO-Revision-Date: 2020-08-18 22:34+0200\n" "Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n" "Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n" "Language: nl\n" @@ -1979,7 +1979,7 @@ msgid "" "Re-install packages that are already installed and at the newest version. " "Configuration Item: <literal>APT::Get::ReInstall</literal>." msgstr "" -"Pakketten die reeds met hun nieuwste versie geïnstalleerd zijn opnieuw " +"Pakketten die reeds met hun nieuwste versie geïnstalleerd zijn, opnieuw " "installeren. Configuratie-item: <literal>APT::Get::ReInstall</literal>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> @@ -2032,10 +2032,10 @@ msgid "" "option> will answer yes to any prompt, <option>--trivial-only</option> will " "answer no. Configuration Item: <literal>APT::Get::Trivial-Only</literal>." msgstr "" -"Voer enkel 'banale' operaties uit. Logisch gezien kan men dit beschouwen als " -"gerelateerd aan <option>--assume-yes</option>. Waar <option>--assume-yes</" -"option> op elke vraag ja antwoordt, zal <option>--trivial-only</option> nee " -"antwoorden. Configuratie-item: <literal>APT::Get::Trivial-Only</literal>." +"Enkel 'banale' operaties uitvoeren. Logisch gezien kan men dit beschouwen " +"als gerelateerd aan <option>--assume-yes</option>. Waar <option>--assume-" +"yes</option> op elke vraag ja antwoordt, zal <option>--trivial-only</option> " +"nee antwoorden. Configuratie-item: <literal>APT::Get::Trivial-Only</literal>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -2046,6 +2046,12 @@ msgid "" "equally to running <command>apt-mark auto</command> for all installed " "packages. Configuration Item: <literal>APT::Get::Mark-Auto</literal>." msgstr "" +"Na een succesvolle installatie alle pas geïnstalleerde pakketten markeren " +"als automatisch geïnstalleerd. Dit heeft als effect dat al deze pakketten " +"verwijderd zullen worden wanneer geen handmatig geïnstalleerde pakketten " +"deze nog vereisen. Dit is hetzelfde als het commando <command>apt-mark auto</" +"command> uitvoeren voor alle geïnstalleerde pakketten. Configuratie-item: " +"<literal>APT::Get::Mark-Auto</literal>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -2923,10 +2929,8 @@ msgstr "" #. type: Content of: <refentry><refnamediv><refpurpose> #: apt-key.8.xml -#, fuzzy -#| msgid "APT key management utility" msgid "Deprecated APT key management utility" -msgstr "Hulpprogramma voor het beheer van de sleutels van APT" +msgstr "Verouderd hulpprogramma voor het beheer van de sleutels van APT" #. type: Content of: <refentry><refsect1><para> #: apt-key.8.xml @@ -2949,11 +2953,18 @@ msgid "" "desired the additional installation of the GNU Privacy Guard suite (packaged " "in <package>gnupg</package>) is required." msgstr "" +"Het gebruik van <command>apt-key</command> is verouderd, behalve voor het " +"gebruik van <command>apt-key del</command> in scripts van pakketonderhouders " +"om bestaande sleutels te verwijderen uit de hoofdsleutelbos. Indien een " +"dergelijk gebruik van <command>apt-key</command> gewenst is, is bijkomend de " +"installatie vereist van de suite GNU Privacy Guard (verpakt in " +"<package>gnupg</package>)." #. type: Content of: <refentry><refsect1><para> #: apt-key.8.xml msgid "apt-key(8) will last be available in Debian 11 and Ubuntu 22.04." msgstr "" +"apt-key(8) zal voor het laatst beschikbaar zijn in Debian 11 en Ubuntu 22.04." #. type: Content of: <refentry><refsect1><title> #: apt-key.8.xml @@ -3041,10 +3052,8 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-key.8.xml -#, fuzzy -#| msgid "(deprecated)" msgid "(mostly deprecated)" -msgstr "(verouderd)" +msgstr "(meestal verouderd)" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-key.8.xml @@ -3285,6 +3294,12 @@ msgstr "" #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para> #: apt-mark.8.xml +#, fuzzy +#| msgid "" +#| "Read/Write package stats from the filename given with the parameter " +#| "&synopsis-param-filename; instead of from the default location, which is " +#| "<filename>extended_status</filename> in the directory defined by the " +#| "Configuration Item: <literal>Dir::State</literal>." msgid "" "Read/Write package stats from the filename given with the parameter " "&synopsis-param-filename; instead of from the default location, which is " @@ -13666,24 +13681,3 @@ msgstr " # apt-get -o dir::cache::archives=\"/disc/\" dist-upgrade\n" msgid "Which will use the already fetched archives on the disc." msgstr "" "En dit zal gebruik maken van de reeds opgehaalde archieven op de schijf." - -#~ msgid "" -#~ "Note that if usage of <command>apt-key</command> is desired the " -#~ "additional installation of the GNU Privacy Guard suite (packaged in " -#~ "<package>gnupg</package>) is required. For this reason alone the " -#~ "programmatic usage (especially in package maintainer scripts!) is " -#~ "strongly discouraged. Further more the output format of all commands is " -#~ "undefined and can and does change whenever the underlying commands " -#~ "change. <command>apt-key</command> will try to detect such usage and " -#~ "generates warnings on stderr in these cases." -#~ msgstr "" -#~ "Merk op dat als het gebruik van het commando <command>apt-key</command> " -#~ "gewenst is, dan ook de installatie van de GNU Privacy Guard suite " -#~ "(verpakt in het pakket <package>gnupg</package>) vereist is. Enkel " -#~ "omwille daarvan al wordt het gebruik ervan in programma's (zeker in " -#~ "scripts voor pakketonderhoud) sterk afgeraden. Daarenboven wordt de " -#~ "indeling van de uitvoer van alle commando's onvoorspelbaar en kan die " -#~ "wijzigen telkens wanneer de achterliggende commando's wijzigen. " -#~ "<command>apt-key</command> zal een dergelijk gebruik trachten te " -#~ "detecteren en geeft in dergelijke gevallen waarschuwingen op de standaard " -#~ "foutuitvoer." diff --git a/doc/po/pt.po b/doc/po/pt.po index 9319af6e4..b3e808656 100644 --- a/doc/po/pt.po +++ b/doc/po/pt.po @@ -5,10 +5,10 @@ # Américo Monteiro <a_monteiro@gmx.com>, 2014 - 2020. msgid "" msgstr "" -"Project-Id-Version: apt 2.1.6\n" +"Project-Id-Version: apt 2.1.10\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2020-08-04 12:40+0200\n" -"PO-Revision-Date: 2020-06-08 17:06+0000\n" +"POT-Creation-Date: 2020-11-04 15:54+0100\n" +"PO-Revision-Date: 2020-08-14 23:28+0000\n" "Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n" "Language-Team: Portuguese <>\n" "Language: pt\n" @@ -1991,6 +1991,12 @@ msgid "" "equally to running <command>apt-mark auto</command> for all installed " "packages. Configuration Item: <literal>APT::Get::Mark-Auto</literal>." msgstr "" +"Após instalação com sucesso, marca todos os pacotes de instalação recente " +"como instalados automaticamente, o que irá fazer com que cada um dos pacotes " +"seja removido quando mais nenhum pacote instalado manualmente depender " +"deste. Isto é igual a correr <command>apt-mark auto</command> para todos os " +"pacotes instalados. Item de configuração: <literal>APT::Get::Mark-Auto</" +"literal>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml @@ -2854,10 +2860,8 @@ msgstr "" #. type: Content of: <refentry><refnamediv><refpurpose> #: apt-key.8.xml -#, fuzzy -#| msgid "APT key management utility" msgid "Deprecated APT key management utility" -msgstr "Utilitário de gestão de chaves do APT" +msgstr "Utilitário de gestão de chaves do APT descontinuado" #. type: Content of: <refentry><refsect1><para> #: apt-key.8.xml @@ -2879,11 +2883,16 @@ msgid "" "desired the additional installation of the GNU Privacy Guard suite (packaged " "in <package>gnupg</package>) is required." msgstr "" +"O uso de <command>apt-key</command> está descontinuado, excepto para o uso " +"de <command>apt-key del</command> em scripts de maintainer para remover " +"chaves existentes do chaveiro principal. Se tal utilização do <command>apt-" +"key</command> é desejada, é requerida a instalação adicional da suite GNU " +"Privacy Guard (empacotada em <package>gnupg</package>)." #. type: Content of: <refentry><refsect1><para> #: apt-key.8.xml msgid "apt-key(8) will last be available in Debian 11 and Ubuntu 22.04." -msgstr "" +msgstr "apt-key(8) estará disponível por último em Debian 11 e Ubuntu 22.04." #. type: Content of: <refentry><refsect1><title> #: apt-key.8.xml @@ -2968,10 +2977,8 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-key.8.xml -#, fuzzy -#| msgid "(deprecated)" msgid "(mostly deprecated)" -msgstr "(descontinuado)" +msgstr "(maioritariamente descontinuado)" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-key.8.xml diff --git a/ftparchive/CMakeLists.txt b/ftparchive/CMakeLists.txt index 9aa6606f1..4af250474 100644 --- a/ftparchive/CMakeLists.txt +++ b/ftparchive/CMakeLists.txt @@ -1,4 +1,4 @@ -include_directories(${BERKELEY_DB_INCLUDE_DIRS}) +include_directories(${BERKELEY_INCLUDE_DIRS}) # Definition of the C++ files used to build the program - note that this # is expanded at CMake time, so you have to rerun cmake if you add or remove # a file (you can just run cmake . in the build directory) @@ -6,8 +6,8 @@ file(GLOB_RECURSE source "*.cc") add_executable(apt-ftparchive ${source}) # Link the executables against the libraries -target_include_directories(apt-ftparchive PRIVATE ${BERKELEY_DB_INCLUDE_DIRS}) -target_link_libraries(apt-ftparchive apt-pkg apt-private ${BERKELEY_DB_LIBRARIES}) +target_include_directories(apt-ftparchive PRIVATE ${BERKELEY_INCLUDE_DIRS}) +target_link_libraries(apt-ftparchive apt-pkg apt-private ${BERKELEY_LIBRARIES}) # Install the executables install(TARGETS apt-ftparchive RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/methods/CMakeLists.txt b/methods/CMakeLists.txt index d575382f7..a5a360217 100644 --- a/methods/CMakeLists.txt +++ b/methods/CMakeLists.txt @@ -23,6 +23,8 @@ target_include_directories(http PRIVATE $<$<BOOL:${SYSTEMD_FOUND}>:${SYSTEMD_INC target_link_libraries(http ${GNUTLS_LIBRARIES} $<$<BOOL:${SYSTEMD_FOUND}>:${SYSTEMD_LIBRARIES}>) target_link_libraries(ftp ${GNUTLS_LIBRARIES}) +target_link_libraries(rred apt-private) + # Install the library install(TARGETS file copy store gpgv cdrom http ftp rred rsh mirror RUNTIME DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/apt/methods) diff --git a/methods/rred.cc b/methods/rred.cc index 949fa4773..2164cd19e 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -15,6 +15,8 @@ #include <apt-pkg/init.h> #include <apt-pkg/strutl.h> +#include <apt-private/private-cmndline.h> + #include <iostream> #include <list> #include <string> @@ -33,6 +35,33 @@ #define BLOCK_SIZE (512*1024) +static bool ShowHelp(CommandLine &) +{ + std::cout << + "Usage: rred [options] -t input output patch-1 … patch-N\n" + " rred [options] -f patch-1 … patch-N < input > output\n" + " rred [options] patch-1 … patch-N > merged-patch\n" + "\n" + "The main use of this binary is by APTs acquire system, a mode reached\n" + "by calling it without any arguments and driven via messages on stdin.\n" + "\n" + "For the propose of testing as well as simpler direct usage the above\n" + "mentioned modes to work with \"reversed restricted ed\" patches as well.\n" + "\n" + "The arguments used above are:\n" + "* input: denotes a file you want to patch.\n" + "* output: a file you want to store the patched content in.\n" + "* patch-1 … patch-N: One or more files containing a patch.\n" + "* merged-patch: All changes by patch-1 … patch-N in one patch.\n" + "\n" + "This rred supports the commands 'a', 'c' and 'd', both single as well\n" + "as multi line. Other commands are not supported (hence 'restricted').\n" + "The command to patch the last line must appear first in the patch\n" + "(hence 'reversed'). Such a patch can e.g. be produced with 'diff --ed'.\n" + ; + return true; +} + class MemBlock { char *start; size_t size; @@ -727,62 +756,106 @@ class RredMethod : public aptMethod { } }; -int main(int argc, char **argv) +static const APT::Configuration::Compressor *FindCompressor(std::vector<APT::Configuration::Compressor> const &compressors, std::string const &name) /*{{{*/ { - int i; - bool just_diff = true; - bool test = false; - Patch patch; - - if (argc <= 1) { + APT::Configuration::Compressor const * compressor = nullptr; + for (auto const & c : compressors) + { + if (compressor != nullptr && c.Cost >= compressor->Cost) + continue; + if (c.Name == name || c.Extension == name || (!c.Extension.empty() && c.Extension.substr(1) == name)) + compressor = &c; + } + return compressor; +} + /*}}}*/ +static std::vector<aptDispatchWithHelp> GetCommands() +{ + return {{nullptr, nullptr, nullptr}}; +} +int main(int argc, const char *argv[]) +{ + if (argc <= 1) return RredMethod().Run(); + + CommandLine CmdL; + auto const Cmds = ParseCommandLine(CmdL, APT_CMD::RRED, &_config, nullptr, argc, argv, &ShowHelp, &GetCommands); + + FileFd input, output; + unsigned int argi = 0; + auto const argmax = CmdL.FileSize(); + bool const quiet = _config->FindI("quiet", 0) >= 2; + + std::string const compressorName = _config->Find("Rred::Compress", ""); + auto const compressors = APT::Configuration::getCompressors(); + APT::Configuration::Compressor const * compressor = nullptr; + if (not compressorName.empty()) + { + compressor = FindCompressor(compressors, compressorName); + if (compressor == nullptr) + { + std::cerr << "E: Could not find compressor: " << compressorName << '\n'; + return 101; + } + } + + bool just_diff = false; + if (_config->FindB("Rred::T", false)) + { + if (argmax < 3) + { + std::cerr << "E: Not enough filenames given on the command line for mode 't'\n"; + return 101; + } + if (not quiet) + std::clog << "Patching " << CmdL.FileList[0] << " into " << CmdL.FileList[1] << "\n"; + input.Open(CmdL.FileList[0], FileFd::ReadOnly,FileFd::Extension); + if (compressor == nullptr) + output.Open(CmdL.FileList[1], FileFd::WriteOnly | FileFd::Create | FileFd::Empty | FileFd::BufferedWrite, FileFd::Extension); + else + output.Open(CmdL.FileList[1], FileFd::WriteOnly | FileFd::Create | FileFd::Empty | FileFd::BufferedWrite, *compressor); + argi = 2; + } + else + { + if (compressor == nullptr) + output.OpenDescriptor(STDOUT_FILENO, FileFd::WriteOnly | FileFd::Create | FileFd::BufferedWrite); + else + output.OpenDescriptor(STDOUT_FILENO, FileFd::WriteOnly | FileFd::Create | FileFd::BufferedWrite, *compressor); + if (_config->FindB("Rred::F", false)) + input.OpenDescriptor(STDIN_FILENO, FileFd::ReadOnly); + else + just_diff = true; } - // Usage: rred -t input output diff ... - if (argc > 1 && strcmp(argv[1], "-t") == 0) { - // Read config files so we see compressors. - pkgInitConfig(*_config); - just_diff = false; - test = true; - i = 4; - } else if (argc > 1 && strcmp(argv[1], "-f") == 0) { - just_diff = false; - i = 2; - } else { - i = 1; + if (argi + 1 > argmax) + { + std::cerr << "E: At least one patch needs to be given on the command line\n"; + return 101; } - for (; i < argc; i++) { - FileFd p; - if (p.Open(argv[i], FileFd::ReadOnly) == false) { + Patch merged_patch; + for (; argi < argmax; ++argi) + { + FileFd patch; + if (not patch.Open(CmdL.FileList[argi], FileFd::ReadOnly, FileFd::Extension)) + { _error->DumpErrors(std::cerr); - exit(1); + return 1; } - if (patch.read_diff(p, NULL) == false) + if (not merged_patch.read_diff(patch, nullptr)) { _error->DumpErrors(std::cerr); - exit(2); + return 2; } } - if (test) { - FileFd out, inp; - std::cerr << "Patching " << argv[2] << " into " << argv[3] << "\n"; - inp.Open(argv[2], FileFd::ReadOnly,FileFd::Extension); - out.Open(argv[3], FileFd::WriteOnly | FileFd::Create | FileFd::Empty | FileFd::BufferedWrite, FileFd::Extension); - patch.apply_against_file(out, inp); - out.Close(); - } else if (just_diff) { - FileFd out; - out.OpenDescriptor(STDOUT_FILENO, FileFd::WriteOnly | FileFd::Create); - patch.write_diff(out); - out.Close(); - } else { - FileFd out, inp; - out.OpenDescriptor(STDOUT_FILENO, FileFd::WriteOnly | FileFd::Create | FileFd::BufferedWrite); - inp.OpenDescriptor(STDIN_FILENO, FileFd::ReadOnly); - patch.apply_against_file(out, inp); - out.Close(); - } - return 0; + if (just_diff) + merged_patch.write_diff(output); + else + merged_patch.apply_against_file(output, input); + + output.Close(); + input.Close(); + return DispatchCommandLine(CmdL, {}); } diff --git a/po/apt-all.pot b/po/apt-all.pot index 00623185e..e98aef3dd 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt 2.1.10\n" +"Project-Id-Version: apt 2.1.12\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2020-08-11 14:34+0200\n" +"POT-Creation-Date: 2020-11-23 17:52+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" diff --git a/test/integration/test-00-commands-have-help b/test/integration/test-00-commands-have-help index 4a0cc64d4..f91238d5d 100755 --- a/test/integration/test-00-commands-have-help +++ b/test/integration/test-00-commands-have-help @@ -49,7 +49,11 @@ for CMD in 'apt-cache' 'apt-cdrom' 'apt-config' \ checkoptions "$cmd" done -for CMD in 'apt-dump-solver' 'apt-internal-solver' 'apt-internal-planner'; do + +rred() { + runapt "${METHODSDIR}/rred" "$@" +} +for CMD in 'apt-dump-solver' 'apt-internal-solver' 'apt-internal-planner' 'rred'; do checkoptions "$(echo "$CMD" | tr -d '-')" done diff --git a/test/integration/test-method-rred b/test/integration/test-method-rred index 5a885e9d2..fcadac146 100755 --- a/test/integration/test-method-rred +++ b/test/integration/test-method-rred @@ -195,3 +195,54 @@ Package: supercoolstuff failrred 'Wrong order of commands' '7d 17d' failrred 'End before start' '7,6d' + +# deal correctly with patch merging +mergepatches() { + local CONTENT="$1" + shift + testsuccess runapt "${METHODSDIR}/rred" Packages.ed-* "$@" + cp -a rootdir/tmp/testsuccess.output patch.ed + if [ "$#" = '0' ]; then + testfileequal 'patch.ed' "$CONTENT" + fi +} +createpatch() { + echo "$2" +} + +createpatch 'Change dog to cat + kitties' '19c + And a cat! + +Package: extra-kittens +Version: unavailable +Description: fix later +.' > Packages.ed-0 +createpatch 'Remove more stuff and fix later' '23d, +6d' > Packages.ed-1 +testsuccess apthelper cat-file --compress gzip Packages.ed-1 +mv rootdir/tmp/testsuccess.output Packages.ed-1.gz +testsuccess rm Packages.ed-1 +createpatch 'Remove (old) dog paragraph' '10,19d' > Packages.ed-2 +mergepatches '11,19c +Package: extra-kittens +Version: unavailable +. +6d' -C 'gzip' +mv patch.ed patch.ed.gz +mergepatches '11,19c +Package: extra-kittens +Version: unavailable +. +6d' +testfileequal patch.ed "$(apt-helper cat-file patch.ed.gz)" +testrred 'Apply' 'merged patch' "$(cat patch.ed)" 'Package: coolstuff +Version: 0.8.15 +Description: collection of stuff + A lot, too much to iterate all, but at least this: + - stuff + - even more stuff + . + And a cow. + +Package: extra-kittens +Version: unavailable' diff --git a/test/integration/test-ubuntu-bug-1876495-pkgnames-virtual b/test/integration/test-ubuntu-bug-1876495-pkgnames-virtual new file mode 100755 index 000000000..00a767479 --- /dev/null +++ b/test/integration/test-ubuntu-bug-1876495-pkgnames-virtual @@ -0,0 +1,24 @@ + +#!/bin/sh + +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'i386' + +insertinstalledpackage 'coolstuff' 'all' '1.0' 'Provides: virtual-package +Source: source-package' + +setupaptarchive +changetowebserver + +testsuccess aptget update -o Debug::Acquire::gpg=1 +testsuccessequal "coolstuff +dpkg" aptcache pkgnames + +testsuccessequal "source-package +coolstuff +dpkg +virtual-package" aptcache pkgnames --all-names diff --git a/test/integration/test-ubuntu-bug-835625-multiarch-lockstep-installed-first b/test/integration/test-ubuntu-bug-835625-multiarch-lockstep-installed-first index 5a3e2762e..beb7c0854 100755 --- a/test/integration/test-ubuntu-bug-835625-multiarch-lockstep-installed-first +++ b/test/integration/test-ubuntu-bug-835625-multiarch-lockstep-installed-first @@ -26,9 +26,9 @@ The following packages will be upgraded: Inst libsame:i386 [1] (2 unstable [i386]) [apt:i386 ] Inst libsame (2 unstable [amd64]) [apt:i386 ] Conf libsame:i386 (2 unstable [i386]) [apt:i386 ] -Conf libsame (2 unstable [amd64]) [apt:i386 ] Inst apt:i386 [1] (2 unstable [i386]) -Conf apt:i386 (2 unstable [i386])' 'Reading package lists... +Conf apt:i386 (2 unstable [i386]) +Conf libsame (2 unstable [amd64])' 'Reading package lists... Building dependency tree... The following additional packages will be installed: apt:i386 libsame:i386 |