From ed9665aedf77b3b8345bd4ed33de7885738e29f0 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 27 Feb 2014 16:46:05 +0100 Subject: initial version of apt-helper --- test/integration/framework | 43 ++++++----------------------- test/integration/test-apt-https-no-redirect | 2 +- 2 files changed, 9 insertions(+), 36 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 99214ef73..911a4d742 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -111,6 +111,9 @@ aptftparchive() { runapt apt-ftparchive "$@"; } aptkey() { runapt apt-key "$@"; } aptmark() { runapt apt-mark "$@"; } apt() { runapt apt "$@"; } +apthelper() { + LD_LIBRARY_PATH=${APTHELPERBINDIR} ${APTHELPERBINDIR}/apt-helper "$@"; +} aptwebserver() { LD_LIBRARY_PATH=${APTWEBSERVERBINDIR} ${APTWEBSERVERBINDIR}/aptwebserver "$@"; } @@ -177,6 +180,7 @@ setupenvironment() { # allow overriding the default BUILDDIR location BUILDDIRECTORY=${APT_INTEGRATION_TESTS_BUILD_DIR:-"${TESTDIRECTORY}/../../build/bin"} METHODSDIR=${APT_INTEGRATION_TESTS_METHODS_DIR:-"${BUILDDIRECTORY}/methods"} + APTHELPERBINDIR=${APT_INTEGRATION_TESTS_LIBEXEC_DIR:-"${BUILDDIRECTORY}"} APTWEBSERVERBINDIR=${APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR:-"${BUILDDIRECTORY}"} test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" # ----- @@ -934,41 +938,10 @@ changetocdrom() { } downloadfile() { - PROTO="$(echo "$1" | cut -d':' -f 1)" - if [ ! -x "${METHODSDIR}/${PROTO}" ]; then - msgwarn "can not find ${METHODSDIR}/${PROTO}" - return 1 - fi - local DOWNLOG="${TMPWORKINGDIRECTORY}/download.log" - rm -f "$DOWNLOG" - touch "$DOWNLOG" - { - echo "601 Configuration -Config-Item: Acquire::https::CaInfo=${TESTDIR}/apt.pem -Config-Item: Debug::Acquire::${PROTO}=1 - -600 Acquire URI -URI: $1 -Filename: ${2} -" - # simple worker keeping stdin open until we are done (201) or error (400) - # and requesting new URIs on try-agains/redirects in-between - { tail -n 999 -f "$DOWNLOG" & echo "TAILPID: $!"; } | while read f1 f2; do - if [ "$f1" = 'TAILPID:' ]; then - TAILPID="$f2" - elif [ "$f1" = 'New-URI:' ]; then - echo "600 Acquire URI -URI: $f2 -Filename: ${2} -" - elif [ "$f1" = '201' ] || [ "$f1" = '400' ]; then - # tail would only die on next read – which never happens - test -z "$TAILPID" || kill -s HUP "$TAILPID" - break - fi - done - } | LD_LIBRARY_PATH=${BUILDDIRECTORY} ${METHODSDIR}/${PROTO} 2>&1 | tee "$DOWNLOG" - rm "$DOWNLOG" + PROTO="$(echo "$1" | cut -d':' -f 1)" + apthelper -o Acquire::https::CaInfo=${TESTDIR}/apt.pem \ + -o Debug::Acquire::${PROTO}=1 \ + download-file "$1" "$2" 2>&1 # only if the file exists the download was successful if [ -e "$2" ]; then return 0 diff --git a/test/integration/test-apt-https-no-redirect b/test/integration/test-apt-https-no-redirect index c405d1167..0408c6832 100755 --- a/test/integration/test-apt-https-no-redirect +++ b/test/integration/test-apt-https-no-redirect @@ -19,6 +19,6 @@ msgtest 'normal https download works' downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog >/dev/null 2>/dev/null && msgpass || msgfail msgtest 'redirecting https to http does not work' -downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 2>&1 | grep "Protocol http not supported or disabled in libcurl" > /dev/null && msgpass +downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 2>&1 | grep "Protocol http not supported or disabled in libcurl" > /dev/null && msgpass || msgfail -- cgit v1.2.3-70-g09d2 From e43a426e5d402d36eb180935fbbf1430a4a86e3f Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 27 Feb 2014 16:46:05 +0100 Subject: initial version of apt-helper --- apt-pkg/acquire-item.cc | 2 +- cmdline/apt-helper.cc | 127 ++++++++++++++++++++++++++++ cmdline/makefile | 7 ++ debian/rules | 3 + debian/tests/run-tests | 1 + test/integration/framework | 69 ++++----------- test/integration/test-apt-https-no-redirect | 20 ++++- 7 files changed, 174 insertions(+), 55 deletions(-) create mode 100644 cmdline/apt-helper.cc (limited to 'test') diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 36bb48382..de03011bf 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -2201,7 +2201,7 @@ pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string Hash, if (stat(DestFile.c_str(),&Buf) == 0) { // Hmm, the partial file is too big, erase it - if ((unsigned long long)Buf.st_size > Size) + if ((Size > 0) && (unsigned long long)Buf.st_size > Size) unlink(DestFile.c_str()); else PartialSize = Buf.st_size; diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc new file mode 100644 index 000000000..c1c8b2178 --- /dev/null +++ b/cmdline/apt-helper.cc @@ -0,0 +1,127 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +/* ##################################################################### + apt-helper - cmdline helpers + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + + +#include + /*}}}*/ +using namespace std; + +bool DoDownloadFile(CommandLine &CmdL) +{ + if (CmdL.FileSize() <= 2) + return _error->Error(_("Must specify at least one pair url/filename")); + + + pkgAcquire Fetcher; + AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0)); + Fetcher.Setup(&Stat); + std::string download_uri = CmdL.FileList[1]; + std::string targetfile = CmdL.FileList[2]; + new pkgAcqFile(&Fetcher, download_uri, "", 0, "desc", "short-desc", + "dest-dir-ignored", targetfile); + Fetcher.Run(); + if (!FileExists(targetfile)) + { + _error->Error(_("Download Failed")); + return false; + } + return true; +} + +bool ShowHelp(CommandLine &CmdL) +{ + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, + COMMON_ARCH,__DATE__,__TIME__); + + if (_config->FindB("version") == true) + return true; + + cout << + _("Usage: apt-helper [options] command\n" + " apt-helper [options] download-file uri target-path\n" + "\n" + "apt-helper is a internal helper for apt\n" + "\n" + "Commands:\n" + " download-file - download the given uri to the target-path\n" + "\n" + " This APT helper has Super Meep Powers.\n"); + return true; +} + + +int main(int argc,const char *argv[]) /*{{{*/ +{ + CommandLine::Dispatch Cmds[] = {{"help",&ShowHelp}, + {"download-file", &DoDownloadFile}, + {0,0}}; + + std::vector Args = getCommandArgs( + "apt-download", CommandLine::GetCommand(Cmds, argc, argv)); + + // Set up gettext support + setlocale(LC_ALL,""); + textdomain(PACKAGE); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args.data(),_config); + if (pkgInitConfig(*_config) == false || + CmdL.Parse(argc,argv) == false || + pkgInitSystem(*_config,_system) == false) + { + if (_config->FindB("version") == true) + ShowHelp(CmdL); + _error->DumpErrors(); + return 100; + } + + // See if the help should be shown + if (_config->FindB("help") == true || + _config->FindB("version") == true || + CmdL.FileSize() == 0) + { + ShowHelp(CmdL); + return 0; + } + + InitOutput(); + + // Match the operation + CmdL.DispatchArg(Cmds); + + // Print any errors or warnings found during parsing + bool const Errors = _error->PendingError(); + if (_config->FindI("quiet",0) > 0) + _error->DumpErrors(); + else + _error->DumpErrors(GlobalError::DEBUG); + return Errors == true ? 100 : 0; +} + /*}}}*/ diff --git a/cmdline/makefile b/cmdline/makefile index f89192e10..c4a249cd6 100644 --- a/cmdline/makefile +++ b/cmdline/makefile @@ -47,6 +47,13 @@ LIB_MAKES = apt-pkg/makefile SOURCE = apt-mark.cc include $(PROGRAM_H) +# The apt-helper +PROGRAM=apt-helper +SLIBS = -lapt-pkg -lapt-private $(INTLLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-helper.cc +include $(PROGRAM_H) + # The apt-report-mirror-failure program #SOURCE=apt-report-mirror-failure #TO=$(BIN) diff --git a/debian/rules b/debian/rules index 1b3782ab6..eec016607 100755 --- a/debian/rules +++ b/debian/rules @@ -207,6 +207,9 @@ apt: build-binary build-manpages debian/apt.install #mv debian/$@/usr/bin/apt-report-mirror-failure \ # debian/$@/usr/lib/apt/apt-report-mirror-failure \ + # move the apt-helper in place + mv debian/$@/usr/bin/apt-helper debian/$@/usr/lib/apt/apt-helper + dh_bugfiles -p$@ dh_lintian -p$@ dh_installexamples -p$@ $(BLD)/docs/examples/* diff --git a/debian/tests/run-tests b/debian/tests/run-tests index 6dc4eaa93..e03db9b0c 100644 --- a/debian/tests/run-tests +++ b/debian/tests/run-tests @@ -14,5 +14,6 @@ make -C test/interactive-helper/ # run against the installed apt APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR=$(pwd)/build/bin \ APT_INTEGRATION_TESTS_METHODS_DIR=/usr/lib/apt/methods \ +APT_INTEGRATION_TESTS_LIBEXEC_DIR=/usr/lib/apt/ \ APT_INTEGRATION_TESTS_BUILD_DIR=/usr/bin \ ./test/integration/run-tests diff --git a/test/integration/framework b/test/integration/framework index 99214ef73..d9bacef83 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -90,18 +90,18 @@ msgdone() { echo "${CDONE}DONE${CNORMAL}"; fi } - +getaptconfig() { + if [ -f ./aptconfig.conf ]; then + echo "./aptconfig.conf" + elif [ -f ../aptconfig.conf ]; then + echo "../aptconfig.conf" + fi +} runapt() { msgdebug "Executing: ${CCMD}$*${CDEBUG} " local CMD="$1" shift - if [ -f ./aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" - elif [ -f ../aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" - else - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" - fi + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" } aptconfig() { runapt apt-config "$@"; } aptcache() { runapt apt-cache "$@"; } @@ -111,6 +111,9 @@ aptftparchive() { runapt apt-ftparchive "$@"; } aptkey() { runapt apt-key "$@"; } aptmark() { runapt apt-mark "$@"; } apt() { runapt apt "$@"; } +apthelper() { + APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${APTHELPERBINDIR} ${APTHELPERBINDIR}/apt-helper "$@"; +} aptwebserver() { LD_LIBRARY_PATH=${APTWEBSERVERBINDIR} ${APTWEBSERVERBINDIR}/aptwebserver "$@"; } @@ -118,17 +121,11 @@ dpkg() { command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@" } aptitude() { - if [ -f ./aptconfig.conf ]; then - APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" - elif [ -f ../aptconfig.conf ]; then - APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" - else - LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" - fi + APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" } gdb() { echo "gdb: run »$*«" - APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command gdb ${BUILDDIRECTORY}/$1 --args "$@" + APT_CONFIG="$(getaptconfig)" LD_LIBRARY_PATH=${BUILDDIRECTORY} command gdb ${BUILDDIRECTORY}/$1 --args "$@" } http() { LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/methods/http @@ -177,6 +174,7 @@ setupenvironment() { # allow overriding the default BUILDDIR location BUILDDIRECTORY=${APT_INTEGRATION_TESTS_BUILD_DIR:-"${TESTDIRECTORY}/../../build/bin"} METHODSDIR=${APT_INTEGRATION_TESTS_METHODS_DIR:-"${BUILDDIRECTORY}/methods"} + APTHELPERBINDIR=${APT_INTEGRATION_TESTS_LIBEXEC_DIR:-"${BUILDDIRECTORY}"} APTWEBSERVERBINDIR=${APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR:-"${BUILDDIRECTORY}"} test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" # ----- @@ -934,41 +932,10 @@ changetocdrom() { } downloadfile() { - PROTO="$(echo "$1" | cut -d':' -f 1)" - if [ ! -x "${METHODSDIR}/${PROTO}" ]; then - msgwarn "can not find ${METHODSDIR}/${PROTO}" - return 1 - fi - local DOWNLOG="${TMPWORKINGDIRECTORY}/download.log" - rm -f "$DOWNLOG" - touch "$DOWNLOG" - { - echo "601 Configuration -Config-Item: Acquire::https::CaInfo=${TESTDIR}/apt.pem -Config-Item: Debug::Acquire::${PROTO}=1 - -600 Acquire URI -URI: $1 -Filename: ${2} -" - # simple worker keeping stdin open until we are done (201) or error (400) - # and requesting new URIs on try-agains/redirects in-between - { tail -n 999 -f "$DOWNLOG" & echo "TAILPID: $!"; } | while read f1 f2; do - if [ "$f1" = 'TAILPID:' ]; then - TAILPID="$f2" - elif [ "$f1" = 'New-URI:' ]; then - echo "600 Acquire URI -URI: $f2 -Filename: ${2} -" - elif [ "$f1" = '201' ] || [ "$f1" = '400' ]; then - # tail would only die on next read – which never happens - test -z "$TAILPID" || kill -s HUP "$TAILPID" - break - fi - done - } | LD_LIBRARY_PATH=${BUILDDIRECTORY} ${METHODSDIR}/${PROTO} 2>&1 | tee "$DOWNLOG" - rm "$DOWNLOG" + PROTO="$(echo "$1" | cut -d':' -f 1)" + apthelper -o Acquire::https::CaInfo=${TESTDIR}/apt.pem \ + -o Debug::Acquire::${PROTO}=1 \ + download-file "$1" "$2" 2>&1 # only if the file exists the download was successful if [ -e "$2" ]; then return 0 diff --git a/test/integration/test-apt-https-no-redirect b/test/integration/test-apt-https-no-redirect index c405d1167..106d4bced 100755 --- a/test/integration/test-apt-https-no-redirect +++ b/test/integration/test-apt-https-no-redirect @@ -12,13 +12,27 @@ setupaptarchive --no-update changetohttpswebserver -o 'aptwebserver::redirect::replace::/redirectme/=http://localhost:8080/' +DOWNLOG='download-testfile.log' msgtest 'normal http download works' -downloadfile 'http://localhost:8080/pool/apt_1.0/changelog' changelog2 >/dev/null 2>/dev/null && msgpass || msgfail +downloadfile 'http://localhost:8080/pool/apt_1.0/changelog' changelog2 > "$DOWNLOG" && msgpass || msgfail msgtest 'normal https download works' -downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog >/dev/null 2>/dev/null && msgpass || msgfail +downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog > "$DOWNLOG" && msgpass || msgfail msgtest 'redirecting https to http does not work' -downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 2>&1 | grep "Protocol http not supported or disabled in libcurl" > /dev/null && msgpass +if ! downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 > "$DOWNLOG"; then + msgpass +else + cat >&2 "$DOWNLOG" + msgfail +fi + +msgtest 'https methods given proper error on redirect attempt' +if grep -q 'Protocol http not supported or disabled in libcurl' "$DOWNLOG"; then + msgpass +else + cat >&2 "$DOWNLOG" + msgfail +fi -- cgit v1.2.3-70-g09d2 From c1409d1be88557529c62883be3174793481233de Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 12 Mar 2014 20:33:05 +0100 Subject: add hashsum support in apt-file download and add more tests --- apt-pkg/contrib/fileutl.cc | 11 +++++++++++ apt-pkg/contrib/fileutl.h | 1 + cmdline/apt-helper.cc | 11 +++++++++++ test/integration/test-apt-helper | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100755 test/integration/test-apt-helper (limited to 'test') diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 52411a762..79bcf112c 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1841,3 +1841,14 @@ std::string GetTempDir() return string(tmpdir); } + +bool Rename(std::string From, std::string To) +{ + if (rename(From.c_str(),To.c_str()) != 0) + { + _error->Error(_("rename failed, %s (%s -> %s)."),strerror(errno), + From.c_str(),To.c_str()); + return false; + } + return true; +} diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index e752e9621..f0569b6fd 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -164,6 +164,7 @@ bool RealFileExists(std::string File); bool DirectoryExists(std::string const &Path) __attrib_const; bool CreateDirectory(std::string const &Parent, std::string const &Path); time_t GetModificationTime(std::string const &Path); +bool Rename(std::string From, std::string To); std::string GetTempDir(); diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc index c1c8b2178..4a24b01d9 100644 --- a/cmdline/apt-helper.cc +++ b/cmdline/apt-helper.cc @@ -44,6 +44,9 @@ bool DoDownloadFile(CommandLine &CmdL) Fetcher.Setup(&Stat); std::string download_uri = CmdL.FileList[1]; std::string targetfile = CmdL.FileList[2]; + HashString hash; + if (CmdL.FileSize() > 3) + hash = HashString(CmdL.FileList[3]); new pkgAcqFile(&Fetcher, download_uri, "", 0, "desc", "short-desc", "dest-dir-ignored", targetfile); Fetcher.Run(); @@ -52,6 +55,14 @@ bool DoDownloadFile(CommandLine &CmdL) _error->Error(_("Download Failed")); return false; } + if(hash.empty() == false) + if(hash.VerifyFile(targetfile) == false) + { + _error->Error(_("HashSum Failed")); + Rename(targetfile, targetfile+".failed"); + return false; + } + return true; } diff --git a/test/integration/test-apt-helper b/test/integration/test-apt-helper new file mode 100755 index 000000000..37ed95181 --- /dev/null +++ b/test/integration/test-apt-helper @@ -0,0 +1,37 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +changetohttpswebserver + +echo "foo" > aptarchive/foo + +msgtest 'apt-file download-file md5sum' +apthelper -qq download-file http://localhost:8080/foo foo2 MD5Sum:d3b07384d113edec49eaa6238ad5ff00 && msgpass || msgfail +testfileequal foo2 'foo' + +msgtest 'apt-file download-file sha1' +apthelper -qq download-file http://localhost:8080/foo foo1 SHA1:f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 && msgpass || msgfail +testfileequal foo1 'foo' + +msgtest 'apt-file download-file sha256' +apthelper -qq download-file http://localhost:8080/foo foo3 SHA256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c && msgpass || msgfail +testfileequal foo3 'foo' + +msgtest 'apt-file download-file no-hash' +apthelper -qq download-file http://localhost:8080/foo foo4 && msgpass || msgfail +testfileequal foo4 'foo' + +msgtest 'apt-file download-file wrong hash' +if ! apthelper -qq download-file http://localhost:8080/foo foo5 MD5Sum:aabbcc 2>&1 2> download.stderr; then + msgpass +else + msgfail +fi +testfileequal download.stderr 'E: HashSum Failed' +testfileequal foo5.failed 'foo' -- cgit v1.2.3-70-g09d2 From 8daf68e366fa9fa2794ae667f51562663856237c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 15 Feb 2014 13:38:39 +0100 Subject: propagate a negative score point along breaks/conflicts versioned -dev packages like db and boost have the problem of no dependencies which would give them a competitive advantage against an older incarnation of the -dev package, so they tend to be kept back until the old version is removed from the archive, which, if the user has older releases in its sources can take a long time (or never happens). The newer version has a conflicts/breaks against the older one, but the older one hasn't against the newer, so by giving via the conflicts the older one a reduced score the newer one can win if there is no other reason to keep it. If both have a conflict against each other the scoring will cancel itself out, so no harm done. This gives "action" a slightly bigger edge in breaks/conflicts cases than before, but holding back isn't a really good solution anyway. --- apt-pkg/algorithms.cc | 39 +++++++++++------- .../test-allow-scores-for-all-dependency-types | 47 ++++++++++++++++++++++ 2 files changed, 72 insertions(+), 14 deletions(-) create mode 100755 test/integration/test-allow-scores-for-all-dependency-types (limited to 'test') diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 0363ab3e2..db1ebd7e3 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -394,8 +394,18 @@ void pkgProblemResolver::MakeScores() }; int PrioEssentials = _config->FindI("pkgProblemResolver::Scores::Essentials",100); int PrioInstalledAndNotObsolete = _config->FindI("pkgProblemResolver::Scores::NotObsolete",1); - int PrioDepends = _config->FindI("pkgProblemResolver::Scores::Depends",1); - int PrioRecommends = _config->FindI("pkgProblemResolver::Scores::Recommends",1); + int DepMap[] = { + 0, + _config->FindI("pkgProblemResolver::Scores::Depends",1), + _config->FindI("pkgProblemResolver::Scores::PreDepends",1), + _config->FindI("pkgProblemResolver::Scores::Suggests",0), + _config->FindI("pkgProblemResolver::Scores::Recommends",1), + _config->FindI("pkgProblemResolver::Scores::Conflicts",-1), + _config->FindI("pkgProblemResolver::Scores::Replaces",0), + _config->FindI("pkgProblemResolver::Scores::Obsoletes",0), + _config->FindI("pkgProblemResolver::Scores::Breaks",-1), + _config->FindI("pkgProblemResolver::Scores::Enhances",0) + }; int AddProtected = _config->FindI("pkgProblemResolver::Scores::AddProtected",10000); int AddEssential = _config->FindI("pkgProblemResolver::Scores::AddEssential",5000); @@ -408,8 +418,15 @@ void pkgProblemResolver::MakeScores() << " Extra => " << PrioMap[pkgCache::State::Extra] << endl << " Essentials => " << PrioEssentials << endl << " InstalledAndNotObsolete => " << PrioInstalledAndNotObsolete << endl - << " Depends => " << PrioDepends << endl - << " Recommends => " << PrioRecommends << endl + << " Pre-Depends => " << DepMap[pkgCache::Dep::PreDepends] << endl + << " Depends => " << DepMap[pkgCache::Dep::Depends] << endl + << " Recommends => " << DepMap[pkgCache::Dep::Recommends] << endl + << " Suggests => " << DepMap[pkgCache::Dep::Suggests] << endl + << " Conflicts => " << DepMap[pkgCache::Dep::Conflicts] << endl + << " Breaks => " << DepMap[pkgCache::Dep::DpkgBreaks] << endl + << " Replaces => " << DepMap[pkgCache::Dep::Replaces] << endl + << " Obsoletes => " << DepMap[pkgCache::Dep::Obsoletes] << endl + << " Enhances => " << DepMap[pkgCache::Dep::Enhances] << endl << " AddProtected => " << AddProtected << endl << " AddEssential => " << AddEssential << endl; @@ -446,17 +463,11 @@ void pkgProblemResolver::MakeScores() { if (Cache[I].InstallVer == 0) continue; - + for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; ++D) - { - if (D->Type == pkgCache::Dep::Depends || - D->Type == pkgCache::Dep::PreDepends) - Scores[D.TargetPkg()->ID] += PrioDepends; - else if (D->Type == pkgCache::Dep::Recommends) - Scores[D.TargetPkg()->ID] += PrioRecommends; - } - } - + Scores[D.TargetPkg()->ID] += DepMap[D->Type]; + } + // Copy the scores to advoid additive looping SPtrArray OldScores = new int[Size]; memcpy(OldScores,Scores,sizeof(*Scores)*Size); diff --git a/test/integration/test-allow-scores-for-all-dependency-types b/test/integration/test-allow-scores-for-all-dependency-types new file mode 100755 index 000000000..7e15a883b --- /dev/null +++ b/test/integration/test-allow-scores-for-all-dependency-types @@ -0,0 +1,47 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' + +insertinstalledpackage 'libdb-dev' 'amd64' '5.1.7' 'Depends: libdb5.1-dev' +insertinstalledpackage 'libdb5.1-dev' 'amd64' '5.1.29-7' + +insertpackage 'unstable' 'libdb-dev' 'amd64' '5.3.0' 'Depends: libdb5.3-dev +Conflicts: libdb5.1-dev' +insertpackage 'unstable' 'libdb5.1-dev' 'amd64' '5.1.29-7' +insertpackage 'unstable' 'libdb5.3-dev' 'amd64' '5.3.28-3' 'Conflicts: libdb5.1-dev' + +insertpackage 'unstable' 'foo' 'amd64' '1' +insertpackage 'unstable' 'bar' 'amd64' '1' +insertpackage 'unstable' 'foo' 'amd64' '2' 'Conflicts: bar' +insertpackage 'unstable' 'bar' 'amd64' '2' 'Conflicts: foo' + +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + libdb5.1-dev +The following NEW packages will be installed: + libdb5.3-dev +The following packages will be upgraded: + libdb-dev +1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. +Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ] +Inst libdb-dev [5.1.7] (5.3.0 unstable [amd64]) [] +Inst libdb5.3-dev (5.3.28-3 unstable [amd64]) +Conf libdb5.3-dev (5.3.28-3 unstable [amd64]) +Conf libdb-dev (5.3.0 unstable [amd64])' aptget dist-upgrade -s + +rm rootdir/var/lib/dpkg/status +insertinstalledpackage 'foo' 'amd64' '1' +insertinstalledpackage 'bar' 'amd64' '1' + +testequal 'Reading package lists... +Building dependency tree... +The following packages have been kept back: + bar foo +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -s -- cgit v1.2.3-70-g09d2 From 2252183c69fb5e3e020b45c37d9728b3437d797d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 23 Feb 2014 22:22:15 +0100 Subject: show debug output only if told so in packagemanager Git-Dch: Ignore --- apt-pkg/packagemanager.cc | 3 ++- test/integration/test-conflicts-loop | 12 +++--------- 2 files changed, 5 insertions(+), 10 deletions(-) (limited to 'test') diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index 5f9a31264..0be76b311 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -741,7 +741,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c // See if the current version is conflicting if (ConflictPkg.CurrentVer() == Ver && List->IsNow(ConflictPkg)) { - clog << OutputInDepth(Depth) << Pkg.FullName() << " conflicts with " << ConflictPkg.FullName() << endl; + if (Debug) + clog << OutputInDepth(Depth) << Pkg.FullName() << " conflicts with " << ConflictPkg.FullName() << endl; /* If a loop is not present or has not yet been detected, attempt to unpack packages to resolve this conflict. If there is a loop present, remove packages to resolve this conflict */ if (List->IsFlag(ConflictPkg,pkgOrderList::Loop) == false) diff --git a/test/integration/test-conflicts-loop b/test/integration/test-conflicts-loop index 4407fbd9d..4978fe1e8 100755 --- a/test/integration/test-conflicts-loop +++ b/test/integration/test-conflicts-loop @@ -6,11 +6,11 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture "i386" -insertinstalledpackage 'openjdk-6-jre' 'i386' '6b16-1.8-0ubuntu1' +insertinstalledpackage 'openjdk-6-jre' 'i386' '6b16-1.8-0ubuntu1' insertpackage 'unstable' 'openjdk-6-jre' 'i386' '6b20-1.9.8-0ubuntu1~10.04.1' 'Conflicts: openjdk-6-jre-headless (<< 6b17~pre3-1), openjdk-6-jre-lib (<< 6b17~pre3-1)' -insertinstalledpackage 'openjdk-6-jre-lib' 'i386' '6b16-1.8-0ubuntu1' +insertinstalledpackage 'openjdk-6-jre-lib' 'i386' '6b16-1.8-0ubuntu1' insertpackage 'unstable' 'openjdk-6-jre-lib' 'i386' '6b20-1.9.8-0ubuntu1~10.04.1' 'Conflicts: openjdk-6-jre (<< 6b17~pre3-1), openjdk-6-jre-headless (<< 6b17~pre3-1)' -insertinstalledpackage 'openjdk-6-jre-headless' 'i386' '6b16-1.8-0ubuntu1' +insertinstalledpackage 'openjdk-6-jre-headless' 'i386' '6b16-1.8-0ubuntu1' insertpackage 'unstable' 'openjdk-6-jre-headless' 'i386' '6b20-1.9.8-0ubuntu1~10.04.1' 'Conflicts: openjdk-6-jre (<< 6b17~pre3-1), openjdk-6-jre-lib (<< 6b17~pre3-1)' setupaptarchive @@ -19,16 +19,10 @@ testequal 'Reading package lists... Building dependency tree... The following packages will be upgraded: openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib - openjdk-6-jre-lib:i386 conflicts with openjdk-6-jre:i386 - openjdk-6-jre:i386 conflicts with openjdk-6-jre-headless:i386 - openjdk-6-jre-headless:i386 conflicts with openjdk-6-jre:i386 3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Remv openjdk-6-jre [6b16-1.8-0ubuntu1] - openjdk-6-jre-headless:i386 conflicts with openjdk-6-jre-lib:i386 Remv openjdk-6-jre-lib [6b16-1.8-0ubuntu1] Inst openjdk-6-jre-headless [6b16-1.8-0ubuntu1] (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386]) - openjdk-6-jre:i386 conflicts with openjdk-6-jre-lib:i386 - openjdk-6-jre:i386 conflicts with openjdk-6-jre-lib:i386 Inst openjdk-6-jre [6b16-1.8-0ubuntu1] (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386]) Inst openjdk-6-jre-lib [6b16-1.8-0ubuntu1] (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386]) Conf openjdk-6-jre-lib (6b20-1.9.8-0ubuntu1~10.04.1 unstable [i386]) -- cgit v1.2.3-70-g09d2 From 9ec748ff103840c4c65471ca00d3b72984131ce4 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 23 Feb 2014 22:24:27 +0100 Subject: check version before adding scores in resolver Prevents that "old" dependencies have an influence in the scoring. With positive dependencies this is usually not a problem, but negative dependencies can linger around for a long time. --- apt-pkg/algorithms.cc | 13 +- .../test-allow-scores-for-all-dependency-types | 131 ++++++++++++++++++--- 2 files changed, 126 insertions(+), 18 deletions(-) (limited to 'test') diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 4d86e5ff8..8320e7ef0 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -459,7 +459,18 @@ void pkgProblemResolver::MakeScores() // propagate score points along dependencies for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; ++D) - Scores[D.TargetPkg()->ID] += DepMap[D->Type]; + { + if (DepMap[D->Type] == 0) + continue; + pkgCache::PkgIterator const T = D.TargetPkg(); + if (D->Version != 0) + { + pkgCache::VerIterator const IV = Cache[T].InstVerIter(Cache); + if (IV.end() == true || D.IsSatisfied(IV) != D.IsNegative()) + continue; + } + Scores[T->ID] += DepMap[D->Type]; + } } // Copy the scores to advoid additive looping diff --git a/test/integration/test-allow-scores-for-all-dependency-types b/test/integration/test-allow-scores-for-all-dependency-types index 7e15a883b..a5c98f3d6 100755 --- a/test/integration/test-allow-scores-for-all-dependency-types +++ b/test/integration/test-allow-scores-for-all-dependency-types @@ -6,21 +6,51 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture 'amd64' -insertinstalledpackage 'libdb-dev' 'amd64' '5.1.7' 'Depends: libdb5.1-dev' -insertinstalledpackage 'libdb5.1-dev' 'amd64' '5.1.29-7' - -insertpackage 'unstable' 'libdb-dev' 'amd64' '5.3.0' 'Depends: libdb5.3-dev +insertpackage 'unversioned' 'libdb-dev' 'amd64' '5.3.0' 'Depends: libdb5.3-dev Conflicts: libdb5.1-dev' -insertpackage 'unstable' 'libdb5.1-dev' 'amd64' '5.1.29-7' -insertpackage 'unstable' 'libdb5.3-dev' 'amd64' '5.3.28-3' 'Conflicts: libdb5.1-dev' +insertpackage 'unversioned' 'libdb5.1-dev' 'amd64' '5.1.29-7' +insertpackage 'unversioned' 'libdb5.3-dev' 'amd64' '5.3.28-3' 'Conflicts: libdb5.1-dev' + +insertpackage 'unversioned' 'foo' 'amd64' '1' +insertpackage 'unversioned' 'bar' 'amd64' '1' +insertpackage 'unversioned' 'foo' 'amd64' '2' 'Conflicts: bar' +insertpackage 'unversioned' 'bar' 'amd64' '2' 'Conflicts: foo' +insertpackage 'unversioned' 'baz' 'amd64' '2' 'Depends: bar | foo' + +insertpackage 'versioned' 'libdb-dev' 'amd64' '5.3.0' 'Depends: libdb5.3-dev +Conflicts: libdb5.1-dev (<< 5.2)' +insertpackage 'versioned' 'libdb5.3-dev' 'amd64' '5.3.28-3' 'Conflicts: libdb5.1-dev (<< 5.2)' + +insertpackage 'versioned' 'foo' 'amd64' '2' 'Conflicts: bar (<= 2)' +insertpackage 'versioned' 'bar' 'amd64' '2' 'Conflicts: foo (<= 2)' +insertpackage 'versioned' 'baz' 'amd64' '2' 'Depends: bar (>= 2) | foo (>= 2)' + +insertpackage 'multipleno' 'foo' 'amd64' '2.1' 'Conflicts: bar (<= 3)' +insertpackage 'multipleno' 'bar' 'amd64' '2.1' 'Conflicts: foo (<= 3), foo (<= 1)' -insertpackage 'unstable' 'foo' 'amd64' '1' -insertpackage 'unstable' 'bar' 'amd64' '1' -insertpackage 'unstable' 'foo' 'amd64' '2' 'Conflicts: bar' -insertpackage 'unstable' 'bar' 'amd64' '2' 'Conflicts: foo' +insertpackage 'multipleyes' 'foo' 'amd64' '2.2' 'Conflicts: bar (<= 3)' +# having foo multiple times as conflict is a non-advisable hack in general +insertpackage 'multipleyes' 'bar' 'amd64' '2.2' 'Conflicts: foo (<= 3), foo (<= 3)' +cp rootdir/var/lib/dpkg/status rootdir/var/lib/dpkg/status-backup setupaptarchive +insertinstalledpackage 'libdb-dev' 'amd64' '5.1.7' 'Depends: libdb5.1-dev' +insertinstalledpackage 'libdb5.1-dev' 'amd64' '5.1.29-7' +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + libdb5.1-dev +The following NEW packages will be installed: + libdb5.3-dev +The following packages will be upgraded: + libdb-dev +1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. +Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ] +Inst libdb-dev [5.1.7] (5.3.0 unversioned [amd64]) [] +Inst libdb5.3-dev (5.3.28-3 unversioned [amd64]) +Conf libdb5.3-dev (5.3.28-3 unversioned [amd64]) +Conf libdb-dev (5.3.0 unversioned [amd64])' aptget dist-upgrade -st unversioned testequal 'Reading package lists... Building dependency tree... The following packages will be REMOVED: @@ -31,17 +61,84 @@ The following packages will be upgraded: libdb-dev 1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. Remv libdb5.1-dev [5.1.29-7] [libdb-dev:amd64 ] -Inst libdb-dev [5.1.7] (5.3.0 unstable [amd64]) [] -Inst libdb5.3-dev (5.3.28-3 unstable [amd64]) -Conf libdb5.3-dev (5.3.28-3 unstable [amd64]) -Conf libdb-dev (5.3.0 unstable [amd64])' aptget dist-upgrade -s +Inst libdb-dev [5.1.7] (5.3.0 versioned [amd64]) [] +Inst libdb5.3-dev (5.3.28-3 versioned [amd64]) +Conf libdb5.3-dev (5.3.28-3 versioned [amd64]) +Conf libdb-dev (5.3.0 versioned [amd64])' aptget dist-upgrade -st versioned -rm rootdir/var/lib/dpkg/status +cp -f rootdir/var/lib/dpkg/status-backup rootdir/var/lib/dpkg/status insertinstalledpackage 'foo' 'amd64' '1' insertinstalledpackage 'bar' 'amd64' '1' - testequal 'Reading package lists... Building dependency tree... The following packages have been kept back: bar foo -0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -s +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st unversioned +testequal 'Reading package lists... +Building dependency tree... +The following packages have been kept back: + bar foo +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st versioned +testequal 'Reading package lists... +Building dependency tree... +The following packages have been kept back: + bar foo +0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.' aptget dist-upgrade -st multipleno +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + foo +The following packages will be upgraded: + bar +1 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +Remv foo [1] +Inst bar [1] (2.2 multipleyes [amd64]) +Conf bar (2.2 multipleyes [amd64])' aptget dist-upgrade -st multipleyes + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + baz +0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. +Inst baz (2 unversioned [amd64]) +Conf baz (2 unversioned [amd64])' aptget install baz -st unversioned +testequal 'Reading package lists... +Building dependency tree... +The following extra packages will be installed: + foo +The following packages will be REMOVED: + bar +The following NEW packages will be installed: + baz +The following packages will be upgraded: + foo +1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. +Remv bar [1] +Inst foo [1] (2 versioned [amd64]) +Inst baz (2 versioned [amd64]) +Conf foo (2 versioned [amd64]) +Conf baz (2 versioned [amd64])' aptget install baz -st versioned + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + baz +0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. +Inst baz (2 unversioned [amd64]) +Conf baz (2 unversioned [amd64])' aptget install baz -st unversioned +testequal 'Reading package lists... +Building dependency tree... +The following extra packages will be installed: + foo +The following packages will be REMOVED: + bar +The following NEW packages will be installed: + baz +The following packages will be upgraded: + foo +1 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. +Remv bar [1] +Inst foo [1] (2 versioned [amd64]) +Inst baz (2 versioned [amd64]) +Conf foo (2 versioned [amd64]) +Conf baz (2 versioned [amd64])' aptget install baz -st versioned -- cgit v1.2.3-70-g09d2 From a5414e56403537678d5be87acf59c37a05f55719 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 24 Feb 2014 23:10:25 +0100 Subject: add default and override handling for Cnf::FindVector Automatically handle the override of list options via its parent value which can even be a comma-separated list of values. It also adds an easy way of providing a default for the list. --- apt-pkg/aptconfiguration.cc | 72 ++++++--------------------------------- apt-pkg/contrib/configuration.cc | 14 ++++++-- apt-pkg/contrib/configuration.h | 16 ++++++++- apt-pkg/contrib/strutl.cc | 4 ++- prepare-release | 1 + test/libapt/configuration_test.cc | 34 ++++++++++++++++-- test/libapt/getlanguages_test.cc | 8 +++++ 7 files changed, 81 insertions(+), 68 deletions(-) (limited to 'test') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 0b0b546c5..f5c758e14 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -49,11 +49,6 @@ const Configuration::getCompressionTypes(bool const &Cached) { setDefaultConfigurationForCompressors(); std::vector const compressors = getCompressors(); - // accept non-list order as override setting for config settings on commandline - std::string const overrideOrder = _config->Find("Acquire::CompressionTypes::Order",""); - if (overrideOrder.empty() == false) - types.push_back(overrideOrder); - // load the order setting into our vector std::vector const order = _config->FindVector("Acquire::CompressionTypes::Order"); for (std::vector::const_iterator o = order.begin(); @@ -227,61 +222,11 @@ std::vector const Configuration::getLanguages(bool const &All, } } } else { + // cornercase: LANG=C, so we use only "en" Translation environment.push_back("en"); } - // Support settings like Acquire::Languages=none on the command line to - // override the configuration settings vector of languages. - string const forceLang = _config->Find("Acquire::Languages",""); - if (forceLang.empty() == false) { - if (forceLang == "none") { - codes.clear(); - allCodes.clear(); - allCodes.push_back("none"); - } else { - if (forceLang == "environment") - codes = environment; - else - codes.push_back(forceLang); - allCodes = codes; - for (std::vector::const_iterator b = builtin.begin(); - b != builtin.end(); ++b) - if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) - allCodes.push_back(*b); - } - if (All == true) - return allCodes; - else - return codes; - } - - // cornercase: LANG=C, so we use only "en" Translation - if (envShort == "C") { - allCodes = codes = environment; - allCodes.insert(allCodes.end(), builtin.begin(), builtin.end()); - if (All == true) - return allCodes; - else - return codes; - } - - std::vector const lang = _config->FindVector("Acquire::Languages"); - // the default setting -> "environment, en" - if (lang.empty() == true) { - codes = environment; - if (envShort != "en") - codes.push_back("en"); - allCodes = codes; - for (std::vector::const_iterator b = builtin.begin(); - b != builtin.end(); ++b) - if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) - allCodes.push_back(*b); - if (All == true) - return allCodes; - else - return codes; - } - + std::vector const lang = _config->FindVector("Acquire::Languages", "environment,en"); // the configs define the order, so add the environment // then needed and ensure the codes are not listed twice. bool noneSeen = false; @@ -308,10 +253,15 @@ std::vector const Configuration::getLanguages(bool const &All, allCodes.push_back(*l); } - for (std::vector::const_iterator b = builtin.begin(); - b != builtin.end(); ++b) - if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) - allCodes.push_back(*b); + if (allCodes.empty() == false) { + for (std::vector::const_iterator b = builtin.begin(); + b != builtin.end(); ++b) + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) + allCodes.push_back(*b); + } else { + // "none" was forced + allCodes.push_back("none"); + } if (All == true) return allCodes; diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc index 4ef4663c0..8eddd56d4 100644 --- a/apt-pkg/contrib/configuration.cc +++ b/apt-pkg/contrib/configuration.cc @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -246,12 +247,18 @@ string Configuration::FindDir(const char *Name,const char *Default) const // Configuration::FindVector - Find a vector of values /*{{{*/ // --------------------------------------------------------------------- /* Returns a vector of config values under the given item */ -vector Configuration::FindVector(const char *Name) const +#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13) +vector Configuration::FindVector(const char *Name) const { return FindVector(Name, ""); } +#endif +vector Configuration::FindVector(const char *Name, std::string const &Default) const { vector Vec; const Item *Top = Lookup(Name); if (Top == NULL) - return Vec; + return VectorizeString(Default, ','); + + if (Top->Value.empty() == false) + return VectorizeString(Top->Value, ','); Item *I = Top->Child; while(I != NULL) @@ -259,6 +266,9 @@ vector Configuration::FindVector(const char *Name) const Vec.push_back(I->Value); I = I->Next; } + if (Vec.empty() == true) + return VectorizeString(Default, ','); + return Vec; } /*}}}*/ diff --git a/apt-pkg/contrib/configuration.h b/apt-pkg/contrib/configuration.h index 8e09ea0a6..c256139f4 100644 --- a/apt-pkg/contrib/configuration.h +++ b/apt-pkg/contrib/configuration.h @@ -74,8 +74,22 @@ class Configuration std::string Find(std::string const &Name, std::string const &Default) const {return Find(Name.c_str(),Default.c_str());}; std::string FindFile(const char *Name,const char *Default = 0) const; std::string FindDir(const char *Name,const char *Default = 0) const; + /** return a list of child options + * + * Options like Acquire::Languages are handled as lists which + * can be overridden and have a default. For the later two a comma + * separated list of values is supported. + * + * \param Name of the parent node + * \param Default list of values separated by commas */ + std::vector FindVector(const char *Name, std::string const &Default) const; + std::vector FindVector(std::string const &Name, std::string const &Default) const { return FindVector(Name.c_str(), Default); }; +#if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13) + std::vector FindVector(const char *Name) const { return FindVector(Name, ""); }; +#else std::vector FindVector(const char *Name) const; - std::vector FindVector(std::string const &Name) const { return FindVector(Name.c_str()); }; +#endif + std::vector FindVector(std::string const &Name) const { return FindVector(Name.c_str(), ""); }; int FindI(const char *Name,int const &Default = 0) const; int FindI(std::string const &Name,int const &Default = 0) const {return FindI(Name.c_str(),Default);}; bool FindB(const char *Name,bool const &Default = false) const; diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index d4f53ea3a..f8bb3890d 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -1130,9 +1130,11 @@ bool TokSplitString(char Tok,char *Input,char **List, also, but the advantage is that we have an iteratable vector */ vector VectorizeString(string const &haystack, char const &split) { + vector exploded; + if (haystack.empty() == true) + return exploded; string::const_iterator start = haystack.begin(); string::const_iterator end = start; - vector exploded; do { for (; end != haystack.end() && *end != split; ++end); exploded.push_back(string(start, end)); diff --git a/prepare-release b/prepare-release index 6141ce6e4..6229ee1fd 100755 --- a/prepare-release +++ b/prepare-release @@ -1,6 +1,7 @@ #!/bin/sh set -e +cd "$(readlink -f $(dirname $0))" dpkg-checkbuilddeps -d 'libxml2-utils' if [ -n "${GBP_BUILD_DIR}" ]; then diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc index 2c974ee0a..957e905d5 100644 --- a/test/libapt/configuration_test.cc +++ b/test/libapt/configuration_test.cc @@ -98,9 +98,37 @@ int main(int argc,const char *argv[]) { equals(Cnf.FindDir("Dir::State"), "/rootdir/dev/null"); equals(Cnf.FindDir("Dir::State::lists"), "/rootdir/dev/null"); - Cnf.Set("Moo::Bar", "1"); - Cnf.Clear(); - equals(Cnf.Find("Moo::Bar"), ""); + Cnf.Set("Moo::Bar", "1"); + Cnf.Clear(); + equals(Cnf.Find("Moo::Bar"), ""); + + std::vector vec = Cnf.FindVector("Test::Vector", ""); + equals(vec.size(), 0); + vec = Cnf.FindVector("Test::Vector", "foo"); + equals(vec.size(), 1); + equals(vec[0], "foo"); + vec = Cnf.FindVector("Test::Vector", "foo,bar"); + equals(vec.size(), 2); + equals(vec[0], "foo"); + equals(vec[1], "bar"); + Cnf.Set("Test::Vector::", "baz"); + Cnf.Set("Test::Vector::", "bob"); + Cnf.Set("Test::Vector::", "dob"); + vec = Cnf.FindVector("Test::Vector"); + equals(vec.size(), 3); + equals(vec[0], "baz"); + equals(vec[1], "bob"); + equals(vec[2], "dob"); + vec = Cnf.FindVector("Test::Vector", "foo,bar"); + equals(vec.size(), 3); + equals(vec[0], "baz"); + equals(vec[1], "bob"); + equals(vec[2], "dob"); + Cnf.Set("Test::Vector", "abel,bravo"); + vec = Cnf.FindVector("Test::Vector", "foo,bar"); + equals(vec.size(), 2); + equals(vec[0], "abel"); + equals(vec[1], "bravo"); //FIXME: Test for configuration file parsing; // currently only integration/ tests test them implicitly diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index cef89bde6..51cfecee3 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -105,6 +105,14 @@ int main(int argc,char *argv[]) vec = APT::Configuration::getLanguages(false, false, env); equals(vec.size(), 1); equals(vec[0], "fr"); + + _config->Set("Acquire::Languages", "environment,en"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + equals(vec.size(), 3); + equals(vec[0], "de_DE"); + equals(vec[1], "de"); + equals(vec[2], "en"); _config->Set("Acquire::Languages", ""); _config->Set("Acquire::Languages::1", "environment"); -- cgit v1.2.3-70-g09d2 From 565ded7b65240b25ad8551789ac388c8ce72b1f4 Mon Sep 17 00:00:00 2001 From: Johannes Schauer Date: Tue, 25 Feb 2014 00:12:20 +0100 Subject: implement BuildProfileSpec support as dpkg has in 1.17.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build-dependencies are now able to include a specification limiting usage similar to already supported [arch …]. More details: https://wiki.debian.org/BuildProfileSpec Closes: 661537 --- apt-pkg/deb/deblistparser.cc | 91 ++++++++++++++++++++++++++++++++++++++-- apt-pkg/deb/deblistparser.h | 17 ++++++-- apt-pkg/deb/debsrcrecords.cc | 2 +- test/libapt/parsedepends_test.cc | 88 ++++++++++++++++++++++++++------------ 4 files changed, 162 insertions(+), 36 deletions(-) (limited to 'test') diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index acdcc4554..a4795f15d 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -474,18 +474,31 @@ const char *debListParser::ConvertRelation(const char *I,unsigned int &Op) // --------------------------------------------------------------------- /* This parses the dependency elements out of a standard string in place, bit by bit. */ +const char *debListParser::ParseDepends(const char *Start,const char *Stop, + std::string &Package,std::string &Ver,unsigned int &Op) + { return ParseDepends(Start, Stop, Package, Ver, Op, false, true, false); } +const char *debListParser::ParseDepends(const char *Start,const char *Stop, + std::string &Package,std::string &Ver,unsigned int &Op, + bool const &ParseArchFlags) + { return ParseDepends(Start, Stop, Package, Ver, Op, ParseArchFlags, true, false); } +const char *debListParser::ParseDepends(const char *Start,const char *Stop, + std::string &Package,std::string &Ver,unsigned int &Op, + bool const &ParseArchFlags, bool const &StripMultiArch) + { return ParseDepends(Start, Stop, Package, Ver, Op, ParseArchFlags, StripMultiArch, false); } const char *debListParser::ParseDepends(const char *Start,const char *Stop, string &Package,string &Ver, unsigned int &Op, bool const &ParseArchFlags, - bool const &StripMultiArch) + bool const &StripMultiArch, + bool const &ParseRestrictionsList) { // Strip off leading space - for (;Start != Stop && isspace(*Start) != 0; Start++); + for (;Start != Stop && isspace(*Start) != 0; ++Start); // Parse off the package name const char *I = Start; for (;I != Stop && isspace(*I) == 0 && *I != '(' && *I != ')' && - *I != ',' && *I != '|' && *I != '[' && *I != ']'; I++); + *I != ',' && *I != '|' && *I != '[' && *I != ']' && + *I != '<' && *I != '>'; ++I); // Malformed, no '(' if (I != Stop && *I == ')') @@ -602,6 +615,76 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop, for (;I != Stop && isspace(*I) != 0; I++); } + if (ParseRestrictionsList == true) + { + // Parse a restrictions list + if (I != Stop && *I == '<') + { + ++I; + // malformed + if (unlikely(I == Stop)) + return 0; + + std::vector const profiles = _config->FindVector("APT::Build-Profiles"); + + const char *End = I; + bool Found = false; + bool NegRestriction = false; + while (I != Stop) + { + // look for whitespace or ending '>' + for (;End != Stop && !isspace(*End) && *End != '>'; ++End); + + if (unlikely(End == Stop)) + return 0; + + if (*I == '!') + { + NegRestriction = true; + ++I; + } + + std::string restriction(I, End); + + std::string prefix = "profile."; + // only support for "profile" prefix, ignore others + if (restriction.size() > prefix.size() && + restriction.substr(0, prefix.size()) == prefix) + { + // get the name of the profile + restriction = restriction.substr(prefix.size()); + + if (restriction.empty() == false && profiles.empty() == false && + std::find(profiles.begin(), profiles.end(), restriction) != profiles.end()) + { + Found = true; + if (I[-1] != '!') + NegRestriction = false; + // we found a match, so fast-forward to the end of the wildcards + for (; End != Stop && *End != '>'; ++End); + } + } + + if (*End++ == '>') { + I = End; + break; + } + + I = End; + for (;I != Stop && isspace(*I) != 0; I++); + } + + if (NegRestriction == true) + Found = !Found; + + if (Found == false) + Package = ""; /* not for this restriction */ + } + + // Skip whitespace + for (;I != Stop && isspace(*I) != 0; I++); + } + if (I != Stop && *I == '|') Op |= pkgCache::Dep::Or; @@ -635,7 +718,7 @@ bool debListParser::ParseDepends(pkgCache::VerIterator &Ver, string Version; unsigned int Op; - Start = ParseDepends(Start, Stop, Package, Version, Op, false, false); + Start = ParseDepends(Start, Stop, Package, Version, Op, false, false, false); if (Start == 0) return _error->Error("Problem parsing dependency %s",Tag); size_t const found = Package.rfind(':'); diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h index 386d291a2..0531b20f3 100644 --- a/apt-pkg/deb/deblistparser.h +++ b/apt-pkg/deb/deblistparser.h @@ -72,11 +72,20 @@ class debListParser : public pkgCacheGenerator::ListParser bool LoadReleaseInfo(pkgCache::PkgFileIterator &FileI,FileFd &File, std::string section); - + + static const char *ParseDepends(const char *Start,const char *Stop, + std::string &Package,std::string &Ver,unsigned int &Op); static const char *ParseDepends(const char *Start,const char *Stop, - std::string &Package,std::string &Ver,unsigned int &Op, - bool const &ParseArchFlags = false, - bool const &StripMultiArch = true); + std::string &Package,std::string &Ver,unsigned int &Op, + bool const &ParseArchFlags); + static const char *ParseDepends(const char *Start,const char *Stop, + std::string &Package,std::string &Ver,unsigned int &Op, + bool const &ParseArchFlags, bool const &StripMultiArch); + static const char *ParseDepends(const char *Start,const char *Stop, + std::string &Package,std::string &Ver,unsigned int &Op, + bool const &ParseArchFlags, bool const &StripMultiArch, + bool const &ParseRestrictionsList); + static const char *ConvertRelation(const char *I,unsigned int &Op); debListParser(FileFd *File, std::string const &Arch = ""); diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc index ce55ccd1f..90182b4a4 100644 --- a/apt-pkg/deb/debsrcrecords.cc +++ b/apt-pkg/deb/debsrcrecords.cc @@ -90,7 +90,7 @@ bool debSrcRecordParser::BuildDepends(std::vectorError("Problem parsing dependency: %s", fields[I]); diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc index e95016240..67dbab823 100644 --- a/test/libapt/parsedepends_test.cc +++ b/test/libapt/parsedepends_test.cc @@ -10,7 +10,9 @@ int main(int argc,char *argv[]) { unsigned int Null = 0; bool StripMultiArch = true; bool ParseArchFlags = false; + bool ParseRestrictionsList = false; _config->Set("APT::Architecture","amd64"); + _config->Set("APT::Build-Profiles","stage1"); const char* Depends = "debhelper:any (>= 5.0), " @@ -27,6 +29,9 @@ int main(int argc,char *argv[]) { "os-for-me [ linux-any ], " "cpu-not-for-me [ any-armel ], " "os-not-for-me [ kfreebsd-any ], " + "not-in-stage1 , " + "not-in-stage1-or-nodoc , " + "only-in-stage1 , " "overlord-dev:any (= 7.15.3~) | overlord-dev:native (>> 7.15.5), " ; @@ -39,7 +44,7 @@ test: const char* Start = Depends; const char* End = Depends + strlen(Depends); - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); if (StripMultiArch == true) equals("debhelper", Package); else @@ -47,7 +52,7 @@ test: equals("5.0", Version); equals(Null | pkgCache::Dep::GreaterEq, Op); - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); if (StripMultiArch == true) equals("libdb-dev", Package); else @@ -55,7 +60,7 @@ test: equals("", Version); equals(Null | pkgCache::Dep::NoOp, Op); - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); if (StripMultiArch == true) equals("gettext", Package); else @@ -63,7 +68,7 @@ test: equals("0.12", Version); equals(Null | pkgCache::Dep::LessEq, Op); - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); if (StripMultiArch == true) equals("libcurl4-gnutls-dev", Package); else @@ -71,104 +76,131 @@ test: equals("", Version); equals(Null | pkgCache::Dep::Or, Op); - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("libcurl3-gnutls-dev", Package); equals("7.15.5", Version); equals(Null | pkgCache::Dep::Greater, Op); - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("debiandoc-sgml", Package); equals("", Version); equals(Null | pkgCache::Dep::NoOp, Op); - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("apt", Package); equals("0.7.25", Version); equals(Null | pkgCache::Dep::GreaterEq, Op); if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("", Package); // not-for-me } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("only-for-me", Package); equals("", Version); equals(Null | pkgCache::Dep::NoOp, Op); } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("any-for-me", Package); equals("", Version); equals(Null | pkgCache::Dep::NoOp, Op); } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("not-for-darwin", Package); equals("", Version); equals(Null | pkgCache::Dep::NoOp, Op); } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("cpu-for-me", Package); equals("", Version); equals(Null | pkgCache::Dep::NoOp, Op); } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("os-for-me", Package); equals("", Version); equals(Null | pkgCache::Dep::NoOp, Op); } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("", Package); // cpu-not-for-me } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); equals("", Package); // os-not-for-me } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch)); + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); Start = strstr(Start, ","); Start++; } - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + equals("", Package); // not-in-stage1 + } else { + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + equals("", Package); // not-in-stage1-or-in-nodoc + } else { + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + equals("only-in-stage1", Package); + } else { + equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); if (StripMultiArch == true) equals("overlord-dev", Package); else @@ -176,7 +208,7 @@ test: equals("7.15.3~", Version); equals(Null | pkgCache::Dep::Equals | pkgCache::Dep::Or, Op); - debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch); + debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); if (StripMultiArch == true) equals("overlord-dev", Package); else @@ -185,11 +217,13 @@ test: equals(Null | pkgCache::Dep::Greater, Op); if (StripMultiArch == false) - ParseArchFlags = true; + if (ParseArchFlags == false) + ParseRestrictionsList = !ParseRestrictionsList; + ParseArchFlags = !ParseArchFlags; StripMultiArch = !StripMultiArch; runner++; - if (runner < 4) + if (runner < 8) goto test; // this is the prove: tests are really evil ;) return 0; -- cgit v1.2.3-70-g09d2 From ce7f128c020e1347f91c6074238fc5da58c5df71 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 25 Feb 2014 14:26:18 +0100 Subject: support DEB_BUILD_PROFILES and -P for build profiles Inspired by the rest of the patch in 661537, but abstract the parsing of various ways of setting the build profiles more so it can potentially be reused and all apt parts have the same behaviour. Especially config options, cmdline options and environment will not be combined as proposed as this isn't APTs usual behaviour and dpkg doesn't do it either, so one overrides the other as it normally does. --- apt-pkg/aptconfiguration.cc | 26 +++- apt-pkg/aptconfiguration.h | 5 + apt-pkg/deb/deblistparser.cc | 2 +- apt-private/private-cmndline.cc | 2 + cmdline/apt-config.cc | 5 + cmdline/apt-get.cc | 6 + debian/control | 2 +- doc/apt-get.8.xml | 13 +- doc/apt.conf.5.xml | 9 ++ test/integration/framework | 6 + .../test-bug-661537-build-profiles-support | 147 +++++++++++++++++++++ 11 files changed, 219 insertions(+), 4 deletions(-) create mode 100755 test/integration/test-bug-661537-build-profiles-support (limited to 'test') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index f5c758e14..3948854c6 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -426,7 +426,7 @@ void Configuration::setDefaultConfigurationForCompressors() { } } /*}}}*/ -// getCompressors - Return Vector of usbale compressors /*{{{*/ +// getCompressors - Return Vector of usealbe compressors /*{{{*/ // --------------------------------------------------------------------- /* return a vector of compressors used by apt-ftparchive in the multicompress functionality or to detect data.tar files */ @@ -508,4 +508,28 @@ Configuration::Compressor::Compressor(char const *name, char const *extension, UncompressArgs.push_back(uncompressArg); } /*}}}*/ +// getBuildProfiles - return a vector of enabled build profiles /*{{{*/ +std::vector const Configuration::getBuildProfiles() { + // order is: override value (~= commandline), environment variable, list (~= config file) + std::string profiles_env = getenv("DEB_BUILD_PROFILES") == 0 ? "" : getenv("DEB_BUILD_PROFILES"); + if (profiles_env.empty() == false) { + profiles_env = SubstVar(profiles_env, " ", ","); + std::string const bp = _config->Find("APT::Build-Profiles"); + _config->Clear("APT::Build-Profiles"); + if (bp.empty() == false) + _config->Set("APT::Build-Profiles", bp); + } + return _config->FindVector("APT::Build-Profiles", profiles_env); +} +std::string const Configuration::getBuildProfilesString() { + std::vector profiles = getBuildProfiles(); + if (profiles.empty() == true) + return ""; + std::vector::const_iterator p = profiles.begin(); + std::string list = *p; + for (; p != profiles.end(); ++p) + list.append(",").append(*p); + return list; +} + /*}}}*/ } diff --git a/apt-pkg/aptconfiguration.h b/apt-pkg/aptconfiguration.h index bf7deae85..026493c6d 100644 --- a/apt-pkg/aptconfiguration.h +++ b/apt-pkg/aptconfiguration.h @@ -117,6 +117,11 @@ public: /*{{{*/ /** \brief Return a vector of extensions supported for data.tar's */ std::vector static const getCompressorExtensions(); + + /** \return Return a vector of enabled build profile specifications */ + std::vector static const getBuildProfiles(); + /** \return Return a comma-separated list of enabled build profile specifications */ + std::string static const getBuildProfilesString(); /*}}}*/ private: /*{{{*/ void static setDefaultConfigurationForCompressors(); diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index a4795f15d..89f3514c9 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -625,7 +625,7 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop, if (unlikely(I == Stop)) return 0; - std::vector const profiles = _config->FindVector("APT::Build-Profiles"); + std::vector const profiles = APT::Configuration::getBuildProfiles(); const char *End = I; bool Found = false; diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index ef7d65f3c..b99443210 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -141,6 +141,7 @@ bool addArgumentsAPTGet(std::vector &Args, char const * const { addArg('b', "compile", "APT::Get::Compile", 0); addArg('b', "build", "APT::Get::Compile", 0); + addArg('P', "build-profiles", "APT::Build-Profiles", CommandLine::HasArg); addArg(0, "diff-only", "APT::Get::Diff-Only", 0); addArg(0, "debian-only", "APT::Get::Diff-Only", 0); addArg(0, "tar-only", "APT::Get::Tar-Only", 0); @@ -149,6 +150,7 @@ bool addArgumentsAPTGet(std::vector &Args, char const * const else if (CmdMatches("build-dep")) { addArg('a', "host-architecture", "APT::Get::Host-Architecture", CommandLine::HasArg); + addArg('P', "build-profiles", "APT::Build-Profiles", CommandLine::HasArg); addArg(0, "purge", "APT::Get::Purge", 0); addArg(0, "solver", "APT::Solver", CommandLine::HasArg); // this has no effect *but* sbuild is using it (see LP: #1255806) diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc index 30c2a22d5..9f20b3c1b 100644 --- a/cmdline/apt-config.cc +++ b/cmdline/apt-config.cc @@ -155,6 +155,11 @@ int main(int argc,const char *argv[]) /*{{{*/ _config->Set(comp + "UncompressArg::", *a); } + std::vector const profiles = APT::Configuration::getBuildProfiles(); + _config->Clear("APT::Build-Profiles"); + for (std::vector::const_iterator p = profiles.begin(); p != profiles.end(); ++p) + _config->Set("APT::Build-Profiles::", *p); + // Match the operation CmdL.DispatchArg(Cmds); diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 12e385b69..f8de80a91 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -970,6 +970,12 @@ bool DoSource(CommandLine &CmdL) string buildopts = _config->Find("APT::Get::Host-Architecture"); if (buildopts.empty() == false) buildopts = "-a" + buildopts + " "; + + // get all active build profiles + std::string const profiles = APT::Configuration::getBuildProfilesString(); + if (profiles.empty() == false) + buildopts.append(" -P").append(profiles).append(" "); + buildopts.append(_config->Find("DPkg::Build-Options","-b -uc")); // Call dpkg-buildpackage diff --git a/debian/control b/debian/control index 2d58d0711..5ce68414e 100644 --- a/debian/control +++ b/debian/control @@ -21,7 +21,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${apt:keyring}, gnupg Replaces: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~) Breaks: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~) Conflicts: python-apt (<< 0.7.93.2~) -Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, python-apt +Suggests: aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), apt-doc, python-apt Description: commandline package manager This package provides commandline tools for searching and managing as well as querying information about packages diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index 595ea875d..1ed08904e 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -371,7 +371,18 @@ by apt-get source --compile and how cross-builddependencies are satisfied. By default is it not set which means that the host architecture is the same as the build architecture (which is defined by APT::Architecture). - Configuration Item: APT::Get::Host-Architecture + Configuration Item: APT::Get::Host-Architecture. + + + + + + This option controls the activated build profiles for which + a source package is built by apt-get source --compile and + how build dependencies are satisfied. By default no build profile is active. + More than one build profile can be activated at a time by concatenating them + with a comma. + Configuration Item: APT::Build-Profiles. diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index bfc43ba29..78f6a27a2 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -177,6 +177,15 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + + List of all build profiles enabled for build-dependency resolution, + without the "profile." namespace prefix. + By default this list is empty. The DEB_BUILD_PROFILES + as used by &dpkg-buildpackage; overrides the list notation. + + + Default release to install packages from if more than one version is available. Contains release name, codename or release version. Examples: 'stable', 'testing', diff --git a/test/integration/framework b/test/integration/framework index 911a4d742..9c4ac87d3 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -120,6 +120,9 @@ aptwebserver() { dpkg() { command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@" } +dpkgcheckbuilddeps() { + command dpkg-checkbuilddeps --admindir=${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg "$@" +} aptitude() { if [ -f ./aptconfig.conf ]; then APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" @@ -240,6 +243,9 @@ setupenvironment() { # newer gpg versions are fine without it, but play it safe for now gpg --quiet --check-trustdb --secret-keyring $SECRETKEYRING --keyring $SECRETKEYRING >/dev/null 2>&1 + # cleanup the environment a bit + unset GREP_OPTIONS DEB_BUILD_PROFILES + msgdone "info" } diff --git a/test/integration/test-bug-661537-build-profiles-support b/test/integration/test-bug-661537-build-profiles-support new file mode 100755 index 000000000..ae1403f71 --- /dev/null +++ b/test/integration/test-bug-661537-build-profiles-support @@ -0,0 +1,147 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' 'i386' 'armel' + +insertinstalledpackage 'build-essential' 'all' '0' 'Multi-Arch: foreign' + +insertpackage 'unstable' 'foo' 'all' '1.0' +insertpackage 'unstable' 'bar' 'all' '1.0' + +insertsource 'unstable' 'buildprofiles' 'any' '1' 'Build-Depends: foo (>= 1.0) [i386 arm] , bar' + +# table from https://wiki.debian.org/BuildProfileSpec +insertsource 'unstable' 'spec-1' 'any' '1' 'Build-Depends: foo ' +insertsource 'unstable' 'spec-2' 'any' '1' 'Build-Depends: foo ' +insertsource 'unstable' 'spec-3' 'any' '1' 'Build-Depends: foo ' +insertsource 'unstable' 'spec-4' 'any' '1' 'Build-Depends: foo ' +insertsource 'unstable' 'spec-5' 'any' '1' 'Build-Depends: foo ' +insertsource 'unstable' 'spec-6' 'any' '1' 'Build-Depends: foo ' +# multiple stanzas not supported: error out +insertsource 'unstable' 'spec-7' 'any' '1' 'Build-Depends: foo ' +insertsource 'unstable' 'spec-8' 'any' '1' 'Build-Depends: foo ' + +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + bar +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst bar (1.0 unstable [all]) +Conf bar (1.0 unstable [all])' aptget build-dep buildprofiles -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + bar foo +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst bar (1.0 unstable [all]) +Inst foo (1.0 unstable [all]) +Conf bar (1.0 unstable [all]) +Conf foo (1.0 unstable [all])' aptget build-dep buildprofiles -s -o APT::Architecture=i386 + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + bar +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst bar (1.0 unstable [all]) +Conf bar (1.0 unstable [all])' aptget build-dep buildprofiles -s -o APT::Architecture=armel + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + bar +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst bar (1.0 unstable [all]) +Conf bar (1.0 unstable [all])' aptget build-dep buildprofiles -s -o APT::Architecture=i386 -P stage1 + +KEEP='Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + foo +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst foo (1.0 unstable [all]) +Conf foo (1.0 unstable [all])' +DROP='Reading package lists... +Building dependency tree... +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' + +msgtest 'Check if version of installed dpkg is high enough for' 'build profiles support' +if dpkg --compare-versions "$(command dpkg-query --showformat='${Version}' --show dpkg)" 'ge' '1.17.2'; then + msgpass + testwithdpkg() { + msgtest "Test with" "dpkg-checkbuilddeps -d '$1' -P '$2'" + local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testwithdpkg.output" + if dpkgcheckbuilddeps -d "$1" -P "$2" /dev/null >$OUTPUT 2>&1; then + if [ "$3" = "$DROP" ]; then + msgpass + else + cat $OUTPUT + msgfail + fi + else + if [ "$3" = "$KEEP" ]; then + msgpass + else + cat $OUTPUT + msgfail + fi + fi + } +else + msgskip + testwithdpkg() { + msgtest "Test with" "dpkg-checkbuilddeps -d '$1' -P '$2'" + msgskip + } +fi + +testprofile() { + if [ -n "$3" ]; then + testequal "$4" aptget build-dep "$1" -s -P "$3" + export DEB_BUILD_PROFILES="$(echo "$3" | tr ',' ' ')" + testequal "$4" aptget build-dep "$1" -s -o with::environment=1 + unset DEB_BUILD_PROFILES + else + testequal "$4" aptget build-dep "$1" -s + fi + testwithdpkg "$2" "$3" "$4" +} + +testprofile 'spec-1' 'foo ' '' "$KEEP" +testprofile 'spec-1' 'foo ' 'stage1' "$DROP" +testprofile 'spec-1' 'foo ' 'notest' "$KEEP" +testprofile 'spec-1' 'foo ' 'stage1,notest' "$DROP" + +testprofile 'spec-2' 'foo ' '' "$DROP" +testprofile 'spec-2' 'foo ' 'stage1' "$KEEP" +testprofile 'spec-2' 'foo ' 'notest' "$DROP" +testprofile 'spec-2' 'foo ' 'stage1,notest' "$KEEP" + +testprofile 'spec-3' 'foo ' '' "$KEEP" +testprofile 'spec-3' 'foo ' 'stage1' "$DROP" +testprofile 'spec-3' 'foo ' 'notest' "$DROP" +testprofile 'spec-3' 'foo ' 'stage1,notest' "$DROP" + +testprofile 'spec-4' 'foo ' '' "$DROP" +testprofile 'spec-4' 'foo ' 'stage1' "$KEEP" +testprofile 'spec-4' 'foo ' 'notest' "$KEEP" +testprofile 'spec-4' 'foo ' 'stage1,notest' "$KEEP" + +testprofile 'spec-5' 'foo ' '' "$KEEP" +testprofile 'spec-5' 'foo ' 'stage1' "$DROP" +testprofile 'spec-5' 'foo ' 'notest' "$KEEP" +testprofile 'spec-5' 'foo ' 'stage1,notest' "$DROP" + +testprofile 'spec-6' 'foo ' '' "$KEEP" +testprofile 'spec-6' 'foo ' 'stage1' "$KEEP" +testprofile 'spec-6' 'foo ' 'notest' "$DROP" +testprofile 'spec-6' 'foo ' 'stage1,notest' "$KEEP" + +testfailure aptget build-dep spec-7 -s +testfailure aptget build-dep spec-8 -s -- cgit v1.2.3-70-g09d2 From be2337962df21addb8386f4262bde0ed0fbcad86 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 25 Feb 2014 17:21:44 +0100 Subject: unset LANGUAGE in the testing framework directly Git-Dch: Ignore --- debian/tests/run-tests | 3 --- test/integration/framework | 5 +++-- 2 files changed, 3 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/debian/tests/run-tests b/debian/tests/run-tests index e03db9b0c..41bafda99 100644 --- a/debian/tests/run-tests +++ b/debian/tests/run-tests @@ -2,9 +2,6 @@ set -e -unset LANGUAGE -export LC_ALL=C - # we need the buildin webserver for the tests if [ ! -e environment.mak ]; then make startup diff --git a/test/integration/framework b/test/integration/framework index 9c4ac87d3..83deafe88 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -226,8 +226,6 @@ setupenvironment() { echo 'quiet::NoUpdate "true";' >> aptconfig.conf echo "Acquire::https::CaInfo \"${TESTDIR}/apt.pem\";" > rootdir/etc/apt/apt.conf.d/99https echo "Apt::Cmd::Disable-Script-Warning \"1\";" > rootdir/etc/apt/apt.conf.d/apt-binary - export LC_ALL=C.UTF-8 - export PATH="${PATH}:/usr/local/sbin:/usr/sbin:/sbin" configcompression '.' 'gz' #'bz2' 'lzma' 'xz' # gpg needs a trustdb to function, but it can't be invalid (not even empty) @@ -244,6 +242,9 @@ setupenvironment() { gpg --quiet --check-trustdb --secret-keyring $SECRETKEYRING --keyring $SECRETKEYRING >/dev/null 2>&1 # cleanup the environment a bit + export PATH="${PATH}:/usr/local/sbin:/usr/sbin:/sbin" + export LC_ALL=C.UTF-8 + unset LANGUAGE unset GREP_OPTIONS DEB_BUILD_PROFILES msgdone "info" -- cgit v1.2.3-70-g09d2 From c3ccac9232c2684b15f75fa8622a9a290aeca123 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 27 Feb 2014 03:11:54 +0100 Subject: warning: no previous declaration for foobar() [-Wmissing-declarations] Git-Dch: Ignore Reported-By: gcc -Wmissing-declarations --- apt-pkg/depcache.cc | 2 +- apt-private/private-cmndline.cc | 14 ++++----- apt-private/private-download.cc | 1 + apt-private/private-install.cc | 2 +- apt-private/private-list.cc | 2 +- apt-private/private-moo.cc | 4 +-- apt-private/private-output.cc | 16 +++++----- apt-private/private-show.cc | 3 +- apt-private/private-update.cc | 1 + cmdline/apt-cache.cc | 48 +++++++++++++++--------------- cmdline/apt-cdrom.cc | 8 ++--- cmdline/apt-config.cc | 6 ++-- cmdline/apt-dump-solver.cc | 2 +- cmdline/apt-extracttemplates.cc | 8 ++--- cmdline/apt-get.cc | 36 +++++++++++----------- cmdline/apt-helper.cc | 4 +-- cmdline/apt-internal-solver.cc | 2 +- cmdline/apt-mark.cc | 12 ++++---- cmdline/apt-sortpkgs.cc | 4 +-- cmdline/apt.cc | 2 +- debian/libapt-pkg4.12.symbols | 1 - ftparchive/apt-ftparchive.cc | 18 +++++------ test/interactive-helper/aptwebserver.cc | 30 +++++++++---------- test/interactive-helper/extract-control.cc | 2 +- test/interactive-helper/testdeb.cc | 2 +- test/libapt/assert.h | 9 ++++++ test/libapt/compareversion_test.cc | 6 ++-- test/libapt/sourcelist_test.cc | 2 +- test/libapt/tagfile_test.cc | 2 +- 29 files changed, 130 insertions(+), 119 deletions(-) (limited to 'test') diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 90d0c9314..946c1e254 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -889,7 +889,7 @@ bool pkgDepCache::IsDeleteOkProtectInstallRequests(PkgIterator const &Pkg, and prevents mode changes for packages on hold for example. If you want to check Mode specific stuff you can use the virtual public IsOk methods instead */ -char const* PrintMode(char const mode) +static char const* PrintMode(char const mode) { switch (mode) { diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index b99443210..132da04d5 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -14,7 +14,7 @@ #include /*}}}*/ -bool strcmp_match_in_list(char const * const Cmd, ...) /*{{{*/ +static bool strcmp_match_in_list(char const * const Cmd, ...) /*{{{*/ { va_list args; bool found = false; @@ -33,7 +33,7 @@ bool strcmp_match_in_list(char const * const Cmd, ...) /*{{{*/ /*}}}*/ #define addArg(w,x,y,z) Args.push_back(CommandLine::MakeArgs(w,x,y,z)) #define CmdMatches(...) strcmp_match_in_list(Cmd, __VA_ARGS__, NULL) -bool addArgumentsAPTCache(std::vector &Args, char const * const Cmd)/*{{{*/ +static bool addArgumentsAPTCache(std::vector &Args, char const * const Cmd)/*{{{*/ { if (CmdMatches("depends", "rdepends", "xvcg", "dotty")) { @@ -82,7 +82,7 @@ bool addArgumentsAPTCache(std::vector &Args, char const * con return true; } /*}}}*/ -bool addArgumentsAPTCDROM(std::vector &Args, char const * const Cmd)/*{{{*/ +static bool addArgumentsAPTCDROM(std::vector &Args, char const * const Cmd)/*{{{*/ { if (CmdMatches("add", "ident") == false) return false; @@ -100,7 +100,7 @@ bool addArgumentsAPTCDROM(std::vector &Args, char const * con return true; } /*}}}*/ -bool addArgumentsAPTConfig(std::vector &Args, char const * const Cmd)/*{{{*/ +static bool addArgumentsAPTConfig(std::vector &Args, char const * const Cmd)/*{{{*/ { if (CmdMatches("dump")) { @@ -115,7 +115,7 @@ bool addArgumentsAPTConfig(std::vector &Args, char const * co return true; } /*}}}*/ -bool addArgumentsAPTGet(std::vector &Args, char const * const Cmd)/*{{{*/ +static bool addArgumentsAPTGet(std::vector &Args, char const * const Cmd)/*{{{*/ { if (CmdMatches("install", "remove", "purge", "upgrade", "dist-upgrade", "dselect-upgrade", "autoremove")) @@ -202,7 +202,7 @@ bool addArgumentsAPTGet(std::vector &Args, char const * const return true; } /*}}}*/ -bool addArgumentsAPTMark(std::vector &Args, char const * const Cmd)/*{{{*/ +static bool addArgumentsAPTMark(std::vector &Args, char const * const Cmd)/*{{{*/ { if (CmdMatches("auto", "manual", "hold", "unhold", "showauto", "showmanual", "showhold", "showholds", "install", @@ -222,7 +222,7 @@ bool addArgumentsAPTMark(std::vector &Args, char const * cons return true; } /*}}}*/ -bool addArgumentsAPT(std::vector &Args, char const * const Cmd)/*{{{*/ +static bool addArgumentsAPT(std::vector &Args, char const * const Cmd)/*{{{*/ { if (CmdMatches("list")) { diff --git a/apt-private/private-download.cc b/apt-private/private-download.cc index f02991cde..80795f964 100644 --- a/apt-private/private-download.cc +++ b/apt-private/private-download.cc @@ -8,6 +8,7 @@ #include #include "private-output.h" +#include "private-download.h" #include diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index 3adb00b23..ff609f567 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -386,7 +386,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask, bool Safety) // DoAutomaticRemove - Remove all automatic unused packages /*{{{*/ // --------------------------------------------------------------------- /* Remove unused automatic packages */ -bool DoAutomaticRemove(CacheFile &Cache) +static bool DoAutomaticRemove(CacheFile &Cache) { bool Debug = _config->FindI("Debug::pkgAutoRemove",false); bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", false); diff --git a/apt-private/private-list.cc b/apt-private/private-list.cc index 44a766c84..bc4539aeb 100644 --- a/apt-private/private-list.cc +++ b/apt-private/private-list.cc @@ -99,7 +99,7 @@ private: #undef PackageMatcher }; /*}}}*/ -void ListAllVersions(pkgCacheFile &CacheFile, pkgRecords &records, /*{{{*/ +static void ListAllVersions(pkgCacheFile &CacheFile, pkgRecords &records,/*{{{*/ pkgCache::PkgIterator P, std::ostream &outs, bool include_summary=true) diff --git a/apt-private/private-moo.cc b/apt-private/private-moo.cc index 23255db6f..5d247041d 100644 --- a/apt-private/private-moo.cc +++ b/apt-private/private-moo.cc @@ -22,7 +22,7 @@ #include /*}}}*/ -std::string getMooLine() { /*{{{*/ +static std::string getMooLine() { /*{{{*/ time_t const timenow = time(NULL); struct tm special; localtime_r(&timenow, &special); @@ -60,7 +60,7 @@ std::string getMooLine() { /*{{{*/ return out.str(); } /*}}}*/ -bool printMooLine() { /*{{{*/ +static bool printMooLine() { /*{{{*/ std::cerr << getMooLine() << std::endl; return true; } diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc index 420ca14d5..dec518392 100644 --- a/apt-private/private-output.cc +++ b/apt-private/private-output.cc @@ -63,7 +63,7 @@ bool InitOutput() /*{{{*/ return true; } /*}}}*/ -std::string GetArchiveSuite(pkgCacheFile &CacheFile, pkgCache::VerIterator ver) /*{{{*/ +static std::string GetArchiveSuite(pkgCacheFile &CacheFile, pkgCache::VerIterator ver) /*{{{*/ { std::string suite = ""; if (ver && ver.FileList() && ver.FileList()) @@ -82,7 +82,7 @@ std::string GetArchiveSuite(pkgCacheFile &CacheFile, pkgCache::VerIterator ver) return suite; } /*}}}*/ -std::string GetFlagsStr(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ +static std::string GetFlagsStr(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ { pkgDepCache *DepCache = CacheFile.GetDepCache(); pkgDepCache::StateCache &state = (*DepCache)[P]; @@ -99,7 +99,7 @@ std::string GetFlagsStr(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ return flags_str; } /*}}}*/ -std::string GetCandidateVersion(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ +static std::string GetCandidateVersion(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ { pkgPolicy *policy = CacheFile.GetPolicy(); pkgCache::VerIterator cand = policy->GetCandidateVer(P); @@ -107,14 +107,14 @@ std::string GetCandidateVersion(pkgCacheFile &CacheFile, pkgCache::PkgIterator P return cand ? cand.VerStr() : "(none)"; } /*}}}*/ -std::string GetInstalledVersion(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ +static std::string GetInstalledVersion(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ { pkgCache::VerIterator inst = P.CurrentVer(); return inst ? inst.VerStr() : "(none)"; } /*}}}*/ -std::string GetVersion(pkgCacheFile &CacheFile, pkgCache::VerIterator V)/*{{{*/ +static std::string GetVersion(pkgCacheFile &CacheFile, pkgCache::VerIterator V)/*{{{*/ { pkgCache::PkgIterator P = V.ParentPkg(); if (V == P.CurrentVer()) @@ -134,16 +134,16 @@ std::string GetVersion(pkgCacheFile &CacheFile, pkgCache::VerIterator V)/*{{{*/ return "(none)"; } /*}}}*/ -std::string GetArchitecture(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ +static std::string GetArchitecture(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ { pkgPolicy *policy = CacheFile.GetPolicy(); pkgCache::VerIterator inst = P.CurrentVer(); pkgCache::VerIterator cand = policy->GetCandidateVer(P); - + return inst ? inst.Arch() : cand.Arch(); } /*}}}*/ -std::string GetShortDescription(pkgCacheFile &CacheFile, pkgRecords &records, pkgCache::PkgIterator P)/*{{{*/ +static std::string GetShortDescription(pkgCacheFile &CacheFile, pkgRecords &records, pkgCache::PkgIterator P)/*{{{*/ { pkgPolicy *policy = CacheFile.GetPolicy(); diff --git a/apt-private/private-show.cc b/apt-private/private-show.cc index 0a69debbf..94f944af1 100644 --- a/apt-private/private-show.cc +++ b/apt-private/private-show.cc @@ -24,6 +24,7 @@ #include "private-output.h" #include "private-cacheset.h" +#include "private-show.h" /*}}}*/ namespace APT { @@ -31,7 +32,7 @@ namespace APT { // DisplayRecord - Displays the complete record for the package /*{{{*/ // --------------------------------------------------------------------- -bool DisplayRecord(pkgCacheFile &CacheFile, pkgCache::VerIterator V, +static bool DisplayRecord(pkgCacheFile &CacheFile, pkgCache::VerIterator V, ostream &out) { pkgCache *Cache = CacheFile.GetPkgCache(); diff --git a/apt-private/private-update.cc b/apt-private/private-update.cc index f6c12c26a..1f6fb6f79 100644 --- a/apt-private/private-update.cc +++ b/apt-private/private-update.cc @@ -31,6 +31,7 @@ #include "private-cachefile.h" #include "private-output.h" +#include "private-update.h" #include "acqprogress.h" #include diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 22778eb24..7e569f2fc 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -58,7 +58,7 @@ using namespace std; // LocalitySort - Sort a version list by package file locality /*{{{*/ // --------------------------------------------------------------------- /* */ -int LocalityCompare(const void *a, const void *b) +static int LocalityCompare(const void *a, const void *b) { pkgCache::VerFile *A = *(pkgCache::VerFile **)a; pkgCache::VerFile *B = *(pkgCache::VerFile **)b; @@ -75,13 +75,13 @@ int LocalityCompare(const void *a, const void *b) return A->File - B->File; } -void LocalitySort(pkgCache::VerFile **begin, +static void LocalitySort(pkgCache::VerFile **begin, unsigned long Count,size_t Size) { qsort(begin,Count,Size,LocalityCompare); } -void LocalitySort(pkgCache::DescFile **begin, +static void LocalitySort(pkgCache::DescFile **begin, unsigned long Count,size_t Size) { qsort(begin,Count,Size,LocalityCompare); @@ -90,7 +90,7 @@ void LocalitySort(pkgCache::DescFile **begin, // UnMet - Show unmet dependencies /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowUnMet(pkgCache::VerIterator const &V, bool const Important) +static bool ShowUnMet(pkgCache::VerIterator const &V, bool const Important) { bool Header = false; for (pkgCache::DepIterator D = V.DependsList(); D.end() == false;) @@ -163,7 +163,7 @@ bool ShowUnMet(pkgCache::VerIterator const &V, bool const Important) } return true; } -bool UnMet(CommandLine &CmdL) +static bool UnMet(CommandLine &CmdL) { bool const Important = _config->FindB("APT::Cache::Important",false); @@ -193,7 +193,7 @@ bool UnMet(CommandLine &CmdL) // DumpPackage - Show a dump of a package record /*{{{*/ // --------------------------------------------------------------------- /* */ -bool DumpPackage(CommandLine &CmdL) +static bool DumpPackage(CommandLine &CmdL) { pkgCacheFile CacheFile; APT::CacheSetHelper helper(true, GlobalError::NOTICE); @@ -258,7 +258,7 @@ bool DumpPackage(CommandLine &CmdL) // Stats - Dump some nice statistics /*{{{*/ // --------------------------------------------------------------------- /* */ -bool Stats(CommandLine &Cmd) +static bool Stats(CommandLine &Cmd) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -371,7 +371,7 @@ bool Stats(CommandLine &Cmd) // Dump - show everything /*{{{*/ // --------------------------------------------------------------------- /* This is worthless except fer debugging things */ -bool Dump(CommandLine &Cmd) +static bool Dump(CommandLine &Cmd) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -423,7 +423,7 @@ bool Dump(CommandLine &Cmd) // --------------------------------------------------------------------- /* This is needed to make dpkg --merge happy.. I spent a bit of time to make this run really fast, perhaps I went a little overboard.. */ -bool DumpAvail(CommandLine &Cmd) +static bool DumpAvail(CommandLine &Cmd) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -562,7 +562,7 @@ bool DumpAvail(CommandLine &Cmd) } /*}}}*/ // ShowDepends - Helper for printing out a dependency tree /*{{{*/ -bool ShowDepends(CommandLine &CmdL, bool const RevDepends) +static bool ShowDepends(CommandLine &CmdL, bool const RevDepends) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -676,7 +676,7 @@ bool ShowDepends(CommandLine &CmdL, bool const RevDepends) // Depends - Print out a dependency tree /*{{{*/ // --------------------------------------------------------------------- /* */ -bool Depends(CommandLine &CmdL) +static bool Depends(CommandLine &CmdL) { return ShowDepends(CmdL, false); } @@ -684,7 +684,7 @@ bool Depends(CommandLine &CmdL) // RDepends - Print out a reverse dependency tree /*{{{*/ // --------------------------------------------------------------------- /* */ -bool RDepends(CommandLine &CmdL) +static bool RDepends(CommandLine &CmdL) { return ShowDepends(CmdL, true); } @@ -693,7 +693,7 @@ bool RDepends(CommandLine &CmdL) // --------------------------------------------------------------------- // Code contributed from Junichi Uekawa on 20 June 2002. -bool XVcg(CommandLine &CmdL) +static bool XVcg(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -905,7 +905,7 @@ bool XVcg(CommandLine &CmdL) /* Dotty is the graphvis program for generating graphs. It is a fairly simple queuing algorithm that just writes dependencies and nodes. http://www.research.att.com/sw/tools/graphviz/ */ -bool Dotty(CommandLine &CmdL) +static bool Dotty(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -1126,7 +1126,7 @@ static unsigned char const* skipDescriptionFields(unsigned char const * DescP) ++DescP; return DescP; } -bool DisplayRecord(pkgCacheFile &CacheFile, pkgCache::VerIterator V) +static bool DisplayRecord(pkgCacheFile &CacheFile, pkgCache::VerIterator V) { pkgCache *Cache = CacheFile.GetPkgCache(); if (unlikely(Cache == NULL)) @@ -1228,7 +1228,7 @@ struct ExDescFile // Search - Perform a search /*{{{*/ // --------------------------------------------------------------------- /* This searches the package names and package descriptions for a pattern */ -bool Search(CommandLine &CmdL) +static bool Search(CommandLine &CmdL) { bool const ShowFull = _config->FindB("APT::Cache::ShowFull",false); bool const NamesOnly = _config->FindB("APT::Cache::NamesOnly",false); @@ -1388,7 +1388,7 @@ bool Search(CommandLine &CmdL) } /*}}}*/ /* ShowAuto - show automatically installed packages (sorted) {{{*/ -bool ShowAuto(CommandLine &CmdL) +static bool ShowAuto(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -1415,7 +1415,7 @@ bool ShowAuto(CommandLine &CmdL) // ShowPackage - Dump the package record to the screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowPackage(CommandLine &CmdL) +static bool ShowPackage(CommandLine &CmdL) { pkgCacheFile CacheFile; CacheSetHelperVirtuals helper(true, GlobalError::NOTICE); @@ -1439,7 +1439,7 @@ bool ShowPackage(CommandLine &CmdL) // ShowPkgNames - Show package names /*{{{*/ // --------------------------------------------------------------------- /* This does a prefix match on the first argument */ -bool ShowPkgNames(CommandLine &CmdL) +static bool ShowPkgNames(CommandLine &CmdL) { pkgCacheFile CacheFile; if (unlikely(CacheFile.BuildCaches(NULL, false) == false)) @@ -1478,7 +1478,7 @@ bool ShowPkgNames(CommandLine &CmdL) // ShowSrcPackage - Show source package records /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowSrcPackage(CommandLine &CmdL) +static bool ShowSrcPackage(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgSourceList *List = CacheFile.GetSourceList(); @@ -1515,7 +1515,7 @@ bool ShowSrcPackage(CommandLine &CmdL) // Policy - Show the results of the preferences file /*{{{*/ // --------------------------------------------------------------------- /* */ -bool Policy(CommandLine &CmdL) +static bool Policy(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -1644,7 +1644,7 @@ bool Policy(CommandLine &CmdL) // Madison - Look a bit like katie's madison /*{{{*/ // --------------------------------------------------------------------- /* */ -bool Madison(CommandLine &CmdL) +static bool Madison(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgSourceList *SrcList = CacheFile.GetSourceList(); @@ -1717,7 +1717,7 @@ bool Madison(CommandLine &CmdL) // GenCaches - Call the main cache generator /*{{{*/ // --------------------------------------------------------------------- /* */ -bool GenCaches(CommandLine &Cmd) +static bool GenCaches(CommandLine &Cmd) { OpTextProgress Progress(*_config); @@ -1728,7 +1728,7 @@ bool GenCaches(CommandLine &Cmd) // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp(CommandLine &Cmd) +static bool ShowHelp(CommandLine &Cmd) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc index 9aaebefd7..dc0e050c3 100644 --- a/cmdline/apt-cdrom.cc +++ b/cmdline/apt-cdrom.cc @@ -111,7 +111,7 @@ OpProgress* pkgCdromTextStatus::GetOpProgress() } /*}}}*/ // SetupAutoDetect /*{{{*/ -bool AutoDetectCdrom(pkgUdevCdromDevices &UdevCdroms, unsigned int &i, bool &automounted) +static bool AutoDetectCdrom(pkgUdevCdromDevices &UdevCdroms, unsigned int &i, bool &automounted) { bool Debug = _config->FindB("Debug::Acquire::cdrom", false); @@ -155,7 +155,7 @@ bool AutoDetectCdrom(pkgUdevCdromDevices &UdevCdroms, unsigned int &i, bool &aut sequence is to mount/umount the CD, Ident it then scan it for package files and reduce that list. Then we copy over the package files and verify them. Then rewrite the database files */ -bool DoAdd(CommandLine &) +static bool DoAdd(CommandLine &) { pkgUdevCdromDevices UdevCdroms; pkgCdromTextStatus log; @@ -201,7 +201,7 @@ bool DoAdd(CommandLine &) // DoIdent - Ident a CDROM /*{{{*/ // --------------------------------------------------------------------- /* */ -bool DoIdent(CommandLine &) +static bool DoIdent(CommandLine &) { pkgUdevCdromDevices UdevCdroms; string ident; @@ -247,7 +247,7 @@ bool DoIdent(CommandLine &) // ShowHelp - Show the help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp(CommandLine &) +static bool ShowHelp(CommandLine &) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc index 9f20b3c1b..e83c4b64b 100644 --- a/cmdline/apt-config.cc +++ b/cmdline/apt-config.cc @@ -40,7 +40,7 @@ using namespace std; // DoShell - Handle the shell command /*{{{*/ // --------------------------------------------------------------------- /* */ -bool DoShell(CommandLine &CmdL) +static bool DoShell(CommandLine &CmdL) { for (const char **I = CmdL.FileList + 1; *I != 0; I += 2) { @@ -63,7 +63,7 @@ bool DoShell(CommandLine &CmdL) // DoDump - Dump the configuration space /*{{{*/ // --------------------------------------------------------------------- /* */ -bool DoDump(CommandLine &CmdL) +static bool DoDump(CommandLine &CmdL) { bool const empty = _config->FindB("APT::Config::Dump::EmptyValue", true); std::string const format = _config->Find("APT::Config::Dump::Format", "%f \"%v\";\n"); @@ -78,7 +78,7 @@ bool DoDump(CommandLine &CmdL) // ShowHelp - Show the help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &CmdL) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-dump-solver.cc b/cmdline/apt-dump-solver.cc index aa16b1271..c26cdc70a 100644 --- a/cmdline/apt-dump-solver.cc +++ b/cmdline/apt-dump-solver.cc @@ -18,7 +18,7 @@ // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp() { +static bool ShowHelp() { std::cout << PACKAGE " " PACKAGE_VERSION " for " COMMON_ARCH " compiled on " __DATE__ " " __TIME__ << std::endl << diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc index 2408a7d9d..2b01968e3 100644 --- a/cmdline/apt-extracttemplates.cc +++ b/cmdline/apt-extracttemplates.cc @@ -212,7 +212,7 @@ bool DebFile::ParseInfo() // ShowHelp - show a short help text /*{{{*/ // --------------------------------------------------------------------- /* */ -int ShowHelp(void) +static int ShowHelp(void) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); @@ -237,7 +237,7 @@ int ShowHelp(void) // WriteFile - write the contents of the passed string to a file /*{{{*/ // --------------------------------------------------------------------- /* */ -string WriteFile(const char *package, const char *prefix, const char *data) +static string WriteFile(const char *package, const char *prefix, const char *data) { char fn[512]; static int i; @@ -265,7 +265,7 @@ string WriteFile(const char *package, const char *prefix, const char *data) // WriteConfig - write out the config data from a debian package file /*{{{*/ // --------------------------------------------------------------------- /* */ -void WriteConfig(const DebFile &file) +static void WriteConfig(const DebFile &file) { string templatefile = WriteFile(file.Package.c_str(), "template", file.Template); string configscript = WriteFile(file.Package.c_str(), "config", file.Config); @@ -279,7 +279,7 @@ void WriteConfig(const DebFile &file) // InitCache - initialize the package cache /*{{{*/ // --------------------------------------------------------------------- /* */ -bool Go(CommandLine &CmdL) +static bool Go(CommandLine &CmdL) { // Initialize the apt cache MMap *Map = 0; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index f8de80a91..253b2f4a5 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -97,7 +97,7 @@ using namespace std; // --------------------------------------------------------------------- /* This used to be inlined in DoInstall, but with the advent of regex package name matching it was split out.. */ -bool TryToInstallBuildDep(pkgCache::PkgIterator Pkg,pkgCacheFile &Cache, +static bool TryToInstallBuildDep(pkgCache::PkgIterator Pkg,pkgCacheFile &Cache, pkgProblemResolver &Fix,bool Remove,bool BrokenFix, bool AllowFail = true) { @@ -138,7 +138,7 @@ bool TryToInstallBuildDep(pkgCache::PkgIterator Pkg,pkgCacheFile &Cache, // helper that can go wit hthe next ABI break #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13) -std::string MetaIndexFileNameOnDisk(metaIndex *metaindex) +static std::string MetaIndexFileNameOnDisk(metaIndex *metaindex) { // FIXME: this cast is the horror, the horror debReleaseIndex *r = (debReleaseIndex*)metaindex; @@ -159,7 +159,7 @@ std::string MetaIndexFileNameOnDisk(metaIndex *metaindex) // GetReleaseForSourceRecord - Return Suite for the given srcrecord /*{{{*/ // --------------------------------------------------------------------- /* */ -std::string GetReleaseForSourceRecord(pkgSourceList *SrcList, +static std::string GetReleaseForSourceRecord(pkgSourceList *SrcList, pkgSrcRecords::Parser *Parse) { // try to find release @@ -194,7 +194,7 @@ std::string GetReleaseForSourceRecord(pkgSourceList *SrcList, // FindSrc - Find a source record /*{{{*/ // --------------------------------------------------------------------- /* */ -pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs, +static pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs, pkgSrcRecords &SrcRecs,string &Src, CacheFile &CacheFile) { @@ -430,7 +430,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs, } /*}}}*/ /* mark packages as automatically/manually installed. {{{*/ -bool DoMarkAuto(CommandLine &CmdL) +static bool DoMarkAuto(CommandLine &CmdL) { bool Action = true; int AutoMarkChanged = 0; @@ -475,7 +475,7 @@ bool DoMarkAuto(CommandLine &CmdL) // DoDSelectUpgrade - Do an upgrade by following dselects selections /*{{{*/ // --------------------------------------------------------------------- /* Follows dselect's selections */ -bool DoDSelectUpgrade(CommandLine &CmdL) +static bool DoDSelectUpgrade(CommandLine &CmdL) { CacheFile Cache; if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false) @@ -551,7 +551,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL) // DoClean - Remove download archives /*{{{*/ // --------------------------------------------------------------------- /* */ -bool DoClean(CommandLine &CmdL) +static bool DoClean(CommandLine &CmdL) { std::string const archivedir = _config->FindDir("Dir::Cache::archives"); std::string const pkgcache = _config->FindFile("Dir::cache::pkgcache"); @@ -599,7 +599,7 @@ class LogCleaner : public pkgArchiveCleaner }; }; -bool DoAutoClean(CommandLine &CmdL) +static bool DoAutoClean(CommandLine &CmdL) { // Lock the archive directory FileFd Lock; @@ -623,7 +623,7 @@ bool DoAutoClean(CommandLine &CmdL) /*}}}*/ // DoDownload - download a binary /*{{{*/ // --------------------------------------------------------------------- -bool DoDownload(CommandLine &CmdL) +static bool DoDownload(CommandLine &CmdL) { CacheFile Cache; if (Cache.ReadOnlyOpen() == false) @@ -696,7 +696,7 @@ bool DoDownload(CommandLine &CmdL) // --------------------------------------------------------------------- /* Opening automatically checks the system, this command is mostly used for debugging */ -bool DoCheck(CommandLine &CmdL) +static bool DoCheck(CommandLine &CmdL) { CacheFile Cache; Cache.Open(); @@ -715,7 +715,7 @@ struct DscFile string Dsc; }; -bool DoSource(CommandLine &CmdL) +static bool DoSource(CommandLine &CmdL) { CacheFile Cache; if (Cache.Open(false) == false) @@ -1016,7 +1016,7 @@ bool DoSource(CommandLine &CmdL) // --------------------------------------------------------------------- /* This function will look at the build depends list of the given source package and install the necessary packages to make it true, or fail. */ -bool DoBuildDep(CommandLine &CmdL) +static bool DoBuildDep(CommandLine &CmdL) { CacheFile Cache; @@ -1410,7 +1410,7 @@ bool DoBuildDep(CommandLine &CmdL) * pool/ next to the deb itself) * Example return: "pool/main/a/apt/apt_0.8.8ubuntu3" */ -string GetChangelogPath(CacheFile &Cache, +static string GetChangelogPath(CacheFile &Cache, pkgCache::PkgIterator Pkg, pkgCache::VerIterator Ver) { @@ -1437,7 +1437,7 @@ string GetChangelogPath(CacheFile &Cache, * apt-get changelog mplayer-doc: * http://packages.medibuntu.org/pool/non-free/m/mplayer/mplayer_1.0~rc4~try1.dsfg1-1ubuntu1+medibuntu1.changelog */ -bool GuessThirdPartyChangelogUri(CacheFile &Cache, +static bool GuessThirdPartyChangelogUri(CacheFile &Cache, pkgCache::PkgIterator Pkg, pkgCache::VerIterator Ver, string &out_uri) @@ -1462,7 +1462,7 @@ bool GuessThirdPartyChangelogUri(CacheFile &Cache, /*}}}*/ // DownloadChangelog - Download the changelog /*{{{*/ // --------------------------------------------------------------------- -bool DownloadChangelog(CacheFile &CacheFile, pkgAcquire &Fetcher, +static bool DownloadChangelog(CacheFile &CacheFile, pkgAcquire &Fetcher, pkgCache::VerIterator Ver, string targetfile) /* Download a changelog file for the given package version to * targetfile. This will first try the server from Apt::Changelogs::Server @@ -1517,7 +1517,7 @@ bool DownloadChangelog(CacheFile &CacheFile, pkgAcquire &Fetcher, /*}}}*/ // DoChangelog - Get changelog from the command line /*{{{*/ // --------------------------------------------------------------------- -bool DoChangelog(CommandLine &CmdL) +static bool DoChangelog(CommandLine &CmdL) { CacheFile Cache; if (Cache.ReadOnlyOpen() == false) @@ -1581,7 +1581,7 @@ bool DoChangelog(CommandLine &CmdL) // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &CmdL) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); @@ -1677,7 +1677,7 @@ bool ShowHelp(CommandLine &CmdL) // SigWinch - Window size change signal handler /*{{{*/ // --------------------------------------------------------------------- /* */ -void SigWinch(int) +static void SigWinch(int) { // Riped from GNU ls #ifdef TIOCGWINSZ diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc index c1c8b2178..d8ea0435a 100644 --- a/cmdline/apt-helper.cc +++ b/cmdline/apt-helper.cc @@ -33,7 +33,7 @@ /*}}}*/ using namespace std; -bool DoDownloadFile(CommandLine &CmdL) +static bool DoDownloadFile(CommandLine &CmdL) { if (CmdL.FileSize() <= 2) return _error->Error(_("Must specify at least one pair url/filename")); @@ -55,7 +55,7 @@ bool DoDownloadFile(CommandLine &CmdL) return true; } -bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &CmdL) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc index bf5b8c1fe..108e86b9a 100644 --- a/cmdline/apt-internal-solver.cc +++ b/cmdline/apt-internal-solver.cc @@ -30,7 +30,7 @@ // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp(CommandLine &CmdL) { +static bool ShowHelp(CommandLine &CmdL) { ioprintf(std::cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-mark.cc b/cmdline/apt-mark.cc index d3a3a780b..1af17cd7a 100644 --- a/cmdline/apt-mark.cc +++ b/cmdline/apt-mark.cc @@ -35,7 +35,7 @@ ostream c1out(0); ostream c2out(0); ofstream devnull("/dev/null"); /* DoAuto - mark packages as automatically/manually installed {{{*/ -bool DoAuto(CommandLine &CmdL) +static bool DoAuto(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -82,7 +82,7 @@ bool DoAuto(CommandLine &CmdL) /* DoMarkAuto - mark packages as automatically/manually installed {{{*/ /* Does the same as DoAuto but tries to do it exactly the same why as the python implementation did it so it can be a drop-in replacement */ -bool DoMarkAuto(CommandLine &CmdL) +static bool DoMarkAuto(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -119,7 +119,7 @@ bool DoMarkAuto(CommandLine &CmdL) } /*}}}*/ /* ShowAuto - show automatically installed packages (sorted) {{{*/ -bool ShowAuto(CommandLine &CmdL) +static bool ShowAuto(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -159,7 +159,7 @@ bool ShowAuto(CommandLine &CmdL) } /*}}}*/ /* DoHold - mark packages as hold by dpkg {{{*/ -bool DoHold(CommandLine &CmdL) +static bool DoHold(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -335,7 +335,7 @@ bool DoHold(CommandLine &CmdL) } /*}}}*/ /* ShowHold - show packages set on hold in dpkg status {{{*/ -bool ShowHold(CommandLine &CmdL) +static bool ShowHold(CommandLine &CmdL) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -372,7 +372,7 @@ bool ShowHold(CommandLine &CmdL) // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &CmdL) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc index 46989044e..8d9cb23de 100644 --- a/cmdline/apt-sortpkgs.cc +++ b/cmdline/apt-sortpkgs.cc @@ -62,7 +62,7 @@ struct PkgName /*{{{*/ // DoIt - Sort a single file /*{{{*/ // --------------------------------------------------------------------- /* */ -bool DoIt(string InFile) +static bool DoIt(string InFile) { FileFd Fd(InFile,FileFd::ReadOnly); pkgTagFile Tags(&Fd); @@ -142,7 +142,7 @@ bool DoIt(string InFile) // ShowHelp - Show the help text /*{{{*/ // --------------------------------------------------------------------- /* */ -int ShowHelp() +static int ShowHelp() { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt.cc b/cmdline/apt.cc index 7ef9060aa..040ed6c25 100644 --- a/cmdline/apt.cc +++ b/cmdline/apt.cc @@ -61,7 +61,7 @@ -bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &CmdL) { ioprintf(c1out,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/debian/libapt-pkg4.12.symbols b/debian/libapt-pkg4.12.symbols index 17b9f69fa..c1747bc9e 100644 --- a/debian/libapt-pkg4.12.symbols +++ b/debian/libapt-pkg4.12.symbols @@ -1197,7 +1197,6 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"APT::Configuration::setDefaultConfigurationForCompressors()@Base" 0.8.12 (c++)"pkgAcqMetaClearSig::Custom600Headers()@Base" 0.8.13 (c++|optional=private)"debListParser::NewProvidesAllArch(pkgCache::VerIterator&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.13.2 - (c++|optional=private)"PrintMode(char)@Base" 0.8.13.2 (c++)"pkgDepCache::IsModeChangeOk(pkgDepCache::ModeList, pkgCache::PkgIterator const&, unsigned long, bool)@Base" 0.8.13.2 (c++)"pkgCache::DepIterator::IsNegative() const@Base" 0.8.15~exp1 (c++)"Configuration::CndSet(char const*, int)@Base" 0.8.15.3 diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index d14b68044..c28ad5c5c 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -438,7 +438,7 @@ bool PackageMap::GenContents(Configuration &Setup, // --------------------------------------------------------------------- /* This populates the PkgList with all the possible permutations of the section/arch lists. */ -void LoadTree(vector &PkgList,Configuration &Setup) +static void LoadTree(vector &PkgList,Configuration &Setup) { // Load the defaults string DDir = Setup.Find("TreeDefault::Directory", @@ -550,7 +550,7 @@ void LoadTree(vector &PkgList,Configuration &Setup) // LoadBinDir - Load a 'bindirectory' section from the Generate Config /*{{{*/ // --------------------------------------------------------------------- /* */ -void LoadBinDir(vector &PkgList,Configuration &Setup) +static void LoadBinDir(vector &PkgList,Configuration &Setup) { mode_t const Permissions = Setup.FindI("Default::FileMode",0644); @@ -586,7 +586,7 @@ void LoadBinDir(vector &PkgList,Configuration &Setup) // ShowHelp - Show the help text /*{{{*/ // --------------------------------------------------------------------- /* */ -bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &CmdL) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); @@ -639,7 +639,7 @@ bool ShowHelp(CommandLine &CmdL) // SimpleGenPackages - Generate a Packages file for a directory tree /*{{{*/ // --------------------------------------------------------------------- /* This emulates dpkg-scanpackages's command line interface. 'mostly' */ -bool SimpleGenPackages(CommandLine &CmdL) +static bool SimpleGenPackages(CommandLine &CmdL) { if (CmdL.FileSize() < 2) return ShowHelp(CmdL); @@ -667,7 +667,7 @@ bool SimpleGenPackages(CommandLine &CmdL) // SimpleGenContents - Generate a Contents listing /*{{{*/ // --------------------------------------------------------------------- /* */ -bool SimpleGenContents(CommandLine &CmdL) +static bool SimpleGenContents(CommandLine &CmdL) { if (CmdL.FileSize() < 2) return ShowHelp(CmdL); @@ -689,7 +689,7 @@ bool SimpleGenContents(CommandLine &CmdL) // SimpleGenSources - Generate a Sources file for a directory tree /*{{{*/ // --------------------------------------------------------------------- /* This emulates dpkg-scanpackages's command line interface. 'mostly' */ -bool SimpleGenSources(CommandLine &CmdL) +static bool SimpleGenSources(CommandLine &CmdL) { if (CmdL.FileSize() < 2) return ShowHelp(CmdL); @@ -722,7 +722,7 @@ bool SimpleGenSources(CommandLine &CmdL) /*}}}*/ // SimpleGenRelease - Generate a Release file for a directory tree /*{{{*/ // --------------------------------------------------------------------- -bool SimpleGenRelease(CommandLine &CmdL) +static bool SimpleGenRelease(CommandLine &CmdL) { if (CmdL.FileSize() < 2) return ShowHelp(CmdL); @@ -747,7 +747,7 @@ bool SimpleGenRelease(CommandLine &CmdL) // Generate - Full generate, using a config file /*{{{*/ // --------------------------------------------------------------------- /* */ -bool Generate(CommandLine &CmdL) +static bool Generate(CommandLine &CmdL) { struct CacheDB::Stats SrcStats; if (CmdL.FileSize() < 2) @@ -911,7 +911,7 @@ bool Generate(CommandLine &CmdL) // Clean - Clean out the databases /*{{{*/ // --------------------------------------------------------------------- /* */ -bool Clean(CommandLine &CmdL) +static bool Clean(CommandLine &CmdL) { if (CmdL.FileSize() != 2) return ShowHelp(CmdL); diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc index 992f802a6..7ed984fa9 100644 --- a/test/interactive-helper/aptwebserver.cc +++ b/test/interactive-helper/aptwebserver.cc @@ -23,7 +23,7 @@ #include #include -char const * const httpcodeToStr(int const httpcode) /*{{{*/ +static char const * const httpcodeToStr(int const httpcode) /*{{{*/ { switch (httpcode) { @@ -77,7 +77,7 @@ char const * const httpcodeToStr(int const httpcode) /*{{{*/ return NULL; } /*}}}*/ -void addFileHeaders(std::list &headers, FileFd &data) /*{{{*/ +static void addFileHeaders(std::list &headers, FileFd &data)/*{{{*/ { std::ostringstream contentlength; contentlength << "Content-Length: " << data.FileSize(); @@ -88,14 +88,14 @@ void addFileHeaders(std::list &headers, FileFd &data) /*{{{*/ headers.push_back(lastmodified); } /*}}}*/ -void addDataHeaders(std::list &headers, std::string &data) /*{{{*/ +static void addDataHeaders(std::list &headers, std::string &data)/*{{{*/ { std::ostringstream contentlength; contentlength << "Content-Length: " << data.size(); headers.push_back(contentlength.str()); } /*}}}*/ -bool sendHead(int const client, int const httpcode, std::list &headers)/*{{{*/ +static bool sendHead(int const client, int const httpcode, std::list &headers)/*{{{*/ { std::string response("HTTP/1.1 "); response.append(httpcodeToStr(httpcode)); @@ -128,7 +128,7 @@ bool sendHead(int const client, int const httpcode, std::list &head return Success; } /*}}}*/ -bool sendFile(int const client, FileFd &data) /*{{{*/ +static bool sendFile(int const client, FileFd &data) /*{{{*/ { bool Success = true; char buffer[500]; @@ -144,7 +144,7 @@ bool sendFile(int const client, FileFd &data) /*{{{*/ return Success; } /*}}}*/ -bool sendData(int const client, std::string const &data) /*{{{*/ +static bool sendData(int const client, std::string const &data) /*{{{*/ { if (FileFd::Write(client, data.c_str(), data.size()) == false) { @@ -154,7 +154,7 @@ bool sendData(int const client, std::string const &data) /*{{{*/ return true; } /*}}}*/ -void sendError(int const client, int const httpcode, std::string const &request,/*{{{*/ +static void sendError(int const client, int const httpcode, std::string const &request,/*{{{*/ bool content, std::string const &error = "") { std::list headers; @@ -179,13 +179,13 @@ void sendError(int const client, int const httpcode, std::string const &request, if (content == true) sendData(client, response); } -void sendSuccess(int const client, std::string const &request, +static void sendSuccess(int const client, std::string const &request, bool content, std::string const &error = "") { sendError(client, 200, request, content, error); } /*}}}*/ -void sendRedirect(int const client, int const httpcode, std::string const &uri,/*{{{*/ +static void sendRedirect(int const client, int const httpcode, std::string const &uri,/*{{{*/ std::string const &request, bool content) { std::list headers; @@ -222,7 +222,7 @@ void sendRedirect(int const client, int const httpcode, std::string const &uri,/ sendData(client, response); } /*}}}*/ -int filter_hidden_files(const struct dirent *a) /*{{{*/ +static int filter_hidden_files(const struct dirent *a) /*{{{*/ { if (a->d_name[0] == '.') return 0; @@ -236,7 +236,7 @@ int filter_hidden_files(const struct dirent *a) /*{{{*/ #endif return 1; } -int grouped_alpha_case_sort(const struct dirent **a, const struct dirent **b) { +static int grouped_alpha_case_sort(const struct dirent **a, const struct dirent **b) { #ifdef _DIRENT_HAVE_D_TYPE if ((*a)->d_type == DT_DIR && (*b)->d_type == DT_DIR); else if ((*a)->d_type == DT_DIR && (*b)->d_type == DT_REG) @@ -260,7 +260,7 @@ int grouped_alpha_case_sort(const struct dirent **a, const struct dirent **b) { return strcasecmp((*a)->d_name, (*b)->d_name); } /*}}}*/ -void sendDirectoryListing(int const client, std::string const &dir, /*{{{*/ +static void sendDirectoryListing(int const client, std::string const &dir,/*{{{*/ std::string const &request, bool content) { std::list headers; @@ -312,7 +312,7 @@ void sendDirectoryListing(int const client, std::string const &dir, /*{{{*/ sendData(client, response); } /*}}}*/ -bool parseFirstLine(int const client, std::string const &request, /*{{{*/ +static bool parseFirstLine(int const client, std::string const &request,/*{{{*/ std::string &filename, std::string ¶ms, bool &sendContent, bool &closeConnection) { @@ -432,7 +432,7 @@ bool parseFirstLine(int const client, std::string const &request, /*{{{*/ return true; } /*}}}*/ -bool handleOnTheFlyReconfiguration(int const client, std::string const &request, std::vector const &parts)/*{{{*/ +static bool handleOnTheFlyReconfiguration(int const client, std::string const &request, std::vector const &parts)/*{{{*/ { size_t const pcount = parts.size(); if (pcount == 4 && parts[1] == "set") @@ -475,7 +475,7 @@ bool handleOnTheFlyReconfiguration(int const client, std::string const &request, return false; } /*}}}*/ -void * handleClient(void * voidclient) /*{{{*/ +static void * handleClient(void * voidclient) /*{{{*/ { int client = *((int*)(voidclient)); std::clog << "ACCEPT client " << client << std::endl; diff --git a/test/interactive-helper/extract-control.cc b/test/interactive-helper/extract-control.cc index 3f7feabcb..94fe9dca8 100644 --- a/test/interactive-helper/extract-control.cc +++ b/test/interactive-helper/extract-control.cc @@ -7,7 +7,7 @@ using namespace std; -bool ExtractMember(const char *File,const char *Member) +static bool ExtractMember(const char *File,const char *Member) { FileFd Fd(File,FileFd::ReadOnly); debDebFile Deb(Fd); diff --git a/test/interactive-helper/testdeb.cc b/test/interactive-helper/testdeb.cc index d28f20114..89375af13 100644 --- a/test/interactive-helper/testdeb.cc +++ b/test/interactive-helper/testdeb.cc @@ -9,7 +9,7 @@ class NullStream : public pkgDirStream virtual bool DoItem(Item &Itm,int &Fd) {return true;}; }; -bool Test(const char *File) +static bool Test(const char *File) { FileFd Fd(File,FileFd::ReadOnly); debDebFile Deb(Fd); diff --git a/test/libapt/assert.h b/test/libapt/assert.h index 113c057ed..cde6a6351 100644 --- a/test/libapt/assert.h +++ b/test/libapt/assert.h @@ -1,6 +1,11 @@ #include #include +#if __GNUC__ >= 4 + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wmissing-declarations" +#endif + #define equals(x,y) assertEquals(y, x, __LINE__) #define equalsNot(x,y) assertEqualsNot(y, x, __LINE__) @@ -111,3 +116,7 @@ void dumpVector(X vec) { v != vec.end(); ++v) std::cout << *v << std::endl; } + +#if __GNUC__ >= 4 + #pragma GCC diagnostic pop +#endif diff --git a/test/libapt/compareversion_test.cc b/test/libapt/compareversion_test.cc index fdb1d5674..44f8e9d78 100644 --- a/test/libapt/compareversion_test.cc +++ b/test/libapt/compareversion_test.cc @@ -31,7 +31,7 @@ using namespace std; -bool callDPkg(const char *val, const char *ref, const char &op) { +static bool callDPkg(const char *val, const char *ref, const char &op) { pid_t Process = ExecFork(); if (Process == 0) { @@ -50,7 +50,7 @@ bool callDPkg(const char *val, const char *ref, const char &op) { return WIFEXITED(Ret) == true && WEXITSTATUS(Ret) == 0; } -void assertVersion(int const &CurLine, string const &A, string const &B, int const &Expected) { +static void assertVersion(int const &CurLine, string const &A, string const &B, int const &Expected) { int Res = debVS.CmpVersion(A.c_str(), B.c_str()); bool const dpkg = callDPkg(A.c_str(),B.c_str(), Expected); Res = (Res < 0) ? -1 : ( (Res > 0) ? 1 : Res); @@ -61,7 +61,7 @@ void assertVersion(int const &CurLine, string const &A, string const &B, int con _error->Error("DPkg differ with line: %u. '%s' '%s' '%s' == false",CurLine,A.c_str(),((Expected == 1) ? "<<" : ( (Expected == 0) ? "=" : ">>")),B.c_str()); } -bool RunTest(const char *File) +static bool RunTest(const char *File) { if (FileExists(File) == false) return _error->Error("Versiontestfile %s doesn't exist!", File); diff --git a/test/libapt/sourcelist_test.cc b/test/libapt/sourcelist_test.cc index 0300ce929..e79b6d65e 100644 --- a/test/libapt/sourcelist_test.cc +++ b/test/libapt/sourcelist_test.cc @@ -9,7 +9,7 @@ char *tempfile = NULL; int tempfile_fd = -1; -void remove_tmpfile(void) +static void remove_tmpfile(void) { if (tempfile_fd > 0) close(tempfile_fd); diff --git a/test/libapt/tagfile_test.cc b/test/libapt/tagfile_test.cc index d12c74c95..effc3244b 100644 --- a/test/libapt/tagfile_test.cc +++ b/test/libapt/tagfile_test.cc @@ -9,7 +9,7 @@ char *tempfile = NULL; int tempfile_fd = -1; -void remove_tmpfile(void) +static void remove_tmpfile(void) { if (tempfile_fd > 0) close(tempfile_fd); -- cgit v1.2.3-70-g09d2 From d64e130aa333837a8fda0f1bba51f2867ca520f7 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 1 Mar 2014 13:55:20 +0100 Subject: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] Reported-By: gcc -Wignored-qualifiers Git-Dch: Ignore --- apt-pkg/aptconfiguration.cc | 4 ++-- apt-pkg/aptconfiguration.h | 4 ++-- apt-pkg/pkgcache.h | 4 ++-- apt-pkg/tagfile.cc | 2 +- apt-pkg/tagfile.h | 2 +- test/interactive-helper/aptwebserver.cc | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 3948854c6..4c609c603 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -270,7 +270,7 @@ std::vector const Configuration::getLanguages(bool const &All, } /*}}}*/ // checkLanguage - are we interested in the given Language? /*{{{*/ -bool const Configuration::checkLanguage(std::string Lang, bool const All) { +bool Configuration::checkLanguage(std::string Lang, bool const All) { // the empty Language is always interesting as it is the original if (Lang.empty() == true) return true; @@ -390,7 +390,7 @@ std::vector const Configuration::getArchitectures(bool const &Cache } /*}}}*/ // checkArchitecture - are we interested in the given Architecture? /*{{{*/ -bool const Configuration::checkArchitecture(std::string const &Arch) { +bool Configuration::checkArchitecture(std::string const &Arch) { if (Arch == "all") return true; std::vector const archs = getArchitectures(true); diff --git a/apt-pkg/aptconfiguration.h b/apt-pkg/aptconfiguration.h index 026493c6d..dfed194ae 100644 --- a/apt-pkg/aptconfiguration.h +++ b/apt-pkg/aptconfiguration.h @@ -73,7 +73,7 @@ public: /*{{{*/ * \param All defines if we check against all codes or only against used codes * \return true if we are interested, false otherwise */ - bool static const checkLanguage(std::string Lang, bool const All = false); + bool static checkLanguage(std::string Lang, bool const All = false); /** \brief Returns a vector of Architectures we support * @@ -89,7 +89,7 @@ public: /*{{{*/ * \param Arch we want to check * \return true if we are interested, false otherwise */ - bool static const checkArchitecture(std::string const &Arch); + bool static checkArchitecture(std::string const &Arch); /** \brief Representation of supported compressors */ struct Compressor { diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index 9a88246a1..b3a714511 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -201,7 +201,7 @@ class pkgCache /*{{{*/ inline PkgFileIterator FileEnd(); inline bool MultiArchCache() const { return MultiArchEnabled; } - inline char const * const NativeArch() const; + inline char const * NativeArch(); // Make me a function pkgVersioningSystem *VS; @@ -661,7 +661,7 @@ struct pkgCache::StringItem /*}}}*/ -inline char const * const pkgCache::NativeArch() const +inline char const * pkgCache::NativeArch() { return StrP + HeaderP->Architecture; } #include diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index 832a40d1e..e1459c80e 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -471,7 +471,7 @@ bool pkgTagSection::FindFlag(const char *Tag,unsigned long &Flags, return true; return FindFlag(Flags, Flag, Start, Stop); } -bool const pkgTagSection::FindFlag(unsigned long &Flags, unsigned long Flag, +bool pkgTagSection::FindFlag(unsigned long &Flags, unsigned long Flag, char const* Start, char const* Stop) { switch (StringToBool(string(Start, Stop))) diff --git a/apt-pkg/tagfile.h b/apt-pkg/tagfile.h index 518d3dbcd..2f600d397 100644 --- a/apt-pkg/tagfile.h +++ b/apt-pkg/tagfile.h @@ -65,7 +65,7 @@ class pkgTagSection unsigned long long FindULL(const char *Tag, unsigned long long const &Default = 0) const; bool FindFlag(const char *Tag,unsigned long &Flags, unsigned long Flag) const; - bool static const FindFlag(unsigned long &Flags, unsigned long Flag, + bool static FindFlag(unsigned long &Flags, unsigned long Flag, const char* Start, const char* Stop); bool Scan(const char *Start,unsigned long MaxLength); inline unsigned long size() const {return Stop - Section;}; diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc index 7ed984fa9..fb9f7d34e 100644 --- a/test/interactive-helper/aptwebserver.cc +++ b/test/interactive-helper/aptwebserver.cc @@ -23,7 +23,7 @@ #include #include -static char const * const httpcodeToStr(int const httpcode) /*{{{*/ +static char const * httpcodeToStr(int const httpcode) /*{{{*/ { switch (httpcode) { -- cgit v1.2.3-70-g09d2 From 655122418d714f342b5d9789f45f8035f3fe8b9a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 1 Mar 2014 15:11:42 +0100 Subject: warning: unused parameter ‘foo’ [-Wunused-parameter] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported-By: gcc -Wunused-parameter Git-Dch: Ignore --- apt-inst/deb/debfile.cc | 2 +- apt-inst/dirstream.cc | 2 +- apt-inst/dirstream.h | 4 ++-- apt-inst/extract.cc | 2 +- apt-pkg/acquire-item.cc | 20 ++++++++++---------- apt-pkg/cachefile.cc | 4 ++-- apt-pkg/cacheset.cc | 28 ++++++++++++++-------------- apt-pkg/cdrom.cc | 2 +- apt-pkg/deb/debindexfile.h | 2 +- apt-pkg/deb/dpkgpm.cc | 2 +- apt-pkg/deb/dpkgpm.h | 4 ++-- apt-pkg/depcache.cc | 10 +++++----- apt-pkg/depcache.h | 2 +- apt-pkg/edsp.cc | 10 ++++------ apt-pkg/edsp.h | 6 ++---- apt-pkg/edsp/edspindexfile.cc | 2 +- apt-pkg/edsp/edsplistparser.cc | 4 ++-- apt-pkg/edsp/edspsystem.cc | 6 +++--- apt-pkg/indexcopy.cc | 2 +- apt-pkg/indexfile.cc | 6 +++--- apt-pkg/indexfile.h | 4 ++-- apt-pkg/install-progress.cc | 4 ++-- apt-pkg/install-progress.h | 18 +++++++++--------- apt-pkg/packagemanager.h | 4 ++-- apt-pkg/pkgcache.cc | 2 +- apt-pkg/pkgcachegen.cc | 2 +- apt-pkg/pkgcachegen.h | 4 ++-- apt-pkg/pkgrecords.h | 2 +- apt-pkg/policy.cc | 2 +- apt-pkg/vendor.cc | 2 +- apt-private/acqprogress.cc | 2 +- apt-private/private-cacheset.h | 8 ++++---- apt-private/private-moo.cc | 8 ++++---- apt-private/private-output.cc | 6 +++--- cmdline/apt-cache.cc | 12 ++++++------ cmdline/apt-cdrom.cc | 2 +- cmdline/apt-config.cc | 2 +- cmdline/apt-extracttemplates.cc | 2 +- cmdline/apt-get.cc | 10 +++++----- cmdline/apt-helper.cc | 2 +- cmdline/apt-internal-solver.cc | 2 +- cmdline/apt-mark.cc | 2 +- cmdline/apt.cc | 2 +- ftparchive/apt-ftparchive.cc | 2 +- ftparchive/contents.cc | 2 +- ftparchive/override.cc | 2 +- ftparchive/writer.cc | 6 +++--- methods/ftp.cc | 2 +- methods/gzip.cc | 2 +- methods/https.cc | 8 ++++---- methods/https.h | 16 ++++++++-------- methods/mirror.cc | 2 +- methods/rsh.cc | 4 ++-- test/interactive-helper/testdeb.cc | 7 ++++++- test/libapt/cdromreducesourcelist_test.cc | 2 +- test/libapt/configuration_test.cc | 2 +- test/libapt/fileutl_test.cc | 2 +- test/libapt/getarchitectures_test.cc | 2 +- test/libapt/globalerror_test.cc | 2 +- test/libapt/hashsums_test.cc | 5 +++++ test/libapt/parsedepends_test.cc | 2 +- test/libapt/sourcelist_test.cc | 2 +- test/libapt/strutil_test.cc | 2 +- test/libapt/tagfile_test.cc | 2 +- 64 files changed, 153 insertions(+), 147 deletions(-) (limited to 'test') diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index a811bbe88..8684f03f7 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -194,7 +194,7 @@ bool debDebFile::MemControlExtract::DoItem(Item &Itm,int &Fd) // --------------------------------------------------------------------- /* Just memcopy the block from the tar extractor and put it in the right place in the pre-allocated memory block. */ -bool debDebFile::MemControlExtract::Process(Item &Itm,const unsigned char *Data, +bool debDebFile::MemControlExtract::Process(Item &/*Itm*/,const unsigned char *Data, unsigned long Size,unsigned long Pos) { memcpy(Control + Pos, Data,Size); diff --git a/apt-inst/dirstream.cc b/apt-inst/dirstream.cc index e06c30a57..085a0dcbf 100644 --- a/apt-inst/dirstream.cc +++ b/apt-inst/dirstream.cc @@ -110,7 +110,7 @@ bool pkgDirStream::FinishedFile(Item &Itm,int Fd) // DirStream::Fail - Failed processing a file /*{{{*/ // --------------------------------------------------------------------- /* */ -bool pkgDirStream::Fail(Item &Itm,int Fd) +bool pkgDirStream::Fail(Item &/*Itm*/, int Fd) { if (Fd < 0) return true; diff --git a/apt-inst/dirstream.h b/apt-inst/dirstream.h index 9d1af2188..1be2688a1 100644 --- a/apt-inst/dirstream.h +++ b/apt-inst/dirstream.h @@ -49,8 +49,8 @@ class pkgDirStream virtual bool DoItem(Item &Itm,int &Fd); virtual bool Fail(Item &Itm,int Fd); virtual bool FinishedFile(Item &Itm,int Fd); - virtual bool Process(Item &Itm,const unsigned char *Data, - unsigned long Size,unsigned long Pos) {return true;}; + virtual bool Process(Item &/*Itm*/,const unsigned char * /*Data*/, + unsigned long /*Size*/,unsigned long /*Pos*/) {return true;}; virtual ~pkgDirStream() {}; }; diff --git a/apt-inst/extract.cc b/apt-inst/extract.cc index b3dfccfc6..60edc702e 100644 --- a/apt-inst/extract.cc +++ b/apt-inst/extract.cc @@ -79,7 +79,7 @@ pkgExtract::pkgExtract(pkgFLCache &FLCache,pkgCache::VerIterator Ver) : // Extract::DoItem - Handle a single item from the stream /*{{{*/ // --------------------------------------------------------------------- /* This performs the setup for the extraction.. */ -bool pkgExtract::DoItem(Item &Itm,int &Fd) +bool pkgExtract::DoItem(Item &Itm, int &/*Fd*/) { /* Strip any leading/trailing /s from the filename, then copy it to the temp buffer and re-apply the leading / We use a class variable diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 88b10d4b1..3b22743e7 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -108,8 +108,8 @@ void pkgAcquire::Item::Start(string /*Message*/,unsigned long long Size) // Acquire::Item::Done - Item downloaded OK /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgAcquire::Item::Done(string Message,unsigned long long Size,string Hash, - pkgAcquire::MethodConfig *Cnf) +void pkgAcquire::Item::Done(string Message,unsigned long long Size,string /*Hash*/, + pkgAcquire::MethodConfig * /*Cnf*/) { // We just downloaded something.. string FileName = LookupTag(Message,"Filename"); @@ -253,10 +253,10 @@ string pkgAcqSubIndex::Custom600Headers() return "\nIndex-File: true\nFail-Ignore: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); } /*}}}*/ -void pkgAcqSubIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/ +void pkgAcqSubIndex::Failed(string Message,pkgAcquire::MethodConfig * /*Cnf*/)/*{{{*/ { if(Debug) - std::clog << "pkgAcqSubIndex failed: " << Desc.URI << std::endl; + std::clog << "pkgAcqSubIndex failed: " << Desc.URI << " with " << Message << std::endl; Complete = false; Status = StatDone; @@ -544,10 +544,10 @@ bool pkgAcqDiffIndex::ParseDiffIndex(string IndexDiffFile) /*{{{*/ return false; } /*}}}*/ -void pkgAcqDiffIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/ +void pkgAcqDiffIndex::Failed(string Message,pkgAcquire::MethodConfig * /*Cnf*/)/*{{{*/ { if(Debug) - std::clog << "pkgAcqDiffIndex failed: " << Desc.URI << std::endl + std::clog << "pkgAcqDiffIndex failed: " << Desc.URI << " with " << Message << std::endl << "Falling back to normal index file acquire" << std::endl; new pkgAcqIndex(Owner, RealURI, Description, Desc.ShortDesc, @@ -624,10 +624,10 @@ pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire *Owner, } } /*}}}*/ -void pkgAcqIndexDiffs::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/ +void pkgAcqIndexDiffs::Failed(string Message,pkgAcquire::MethodConfig * /*Cnf*/)/*{{{*/ { if(Debug) - std::clog << "pkgAcqIndexDiffs failed: " << Desc.URI << std::endl + std::clog << "pkgAcqIndexDiffs failed: " << Desc.URI << " with " << Message << std::endl << "Falling back to normal index file acquire" << std::endl; new pkgAcqIndex(Owner, RealURI, Description,Desc.ShortDesc, ExpectedHash); @@ -808,7 +808,7 @@ pkgAcqIndexMergeDiffs::pkgAcqIndexMergeDiffs(pkgAcquire *Owner, QueueURI(Desc); } /*}}}*/ -void pkgAcqIndexMergeDiffs::Failed(string Message,pkgAcquire::MethodConfig *Cnf)/*{{{*/ +void pkgAcqIndexMergeDiffs::Failed(string Message,pkgAcquire::MethodConfig * /*Cnf*/)/*{{{*/ { if(Debug) std::clog << "pkgAcqIndexMergeDiffs failed: " << Desc.URI << " with " << Message << std::endl; @@ -1698,7 +1698,7 @@ bool pkgAcqMetaIndex::VerifyVendor(string Message) /*{{{*/ // pkgAcqMetaIndex::Failed - no Release file present or no signature file present /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) +void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig * /*Cnf*/) { if (AuthPass == true) { diff --git a/apt-pkg/cachefile.cc b/apt-pkg/cachefile.cc index 7c2276185..2401b015e 100644 --- a/apt-pkg/cachefile.cc +++ b/apt-pkg/cachefile.cc @@ -99,7 +99,7 @@ bool pkgCacheFile::BuildCaches(OpProgress *Progress, bool WithLock) // CacheFile::BuildSourceList - Open and build all relevant sources.list/*{{{*/ // --------------------------------------------------------------------- /* */ -bool pkgCacheFile::BuildSourceList(OpProgress *Progress) +bool pkgCacheFile::BuildSourceList(OpProgress * /*Progress*/) { if (SrcList != NULL) return true; @@ -113,7 +113,7 @@ bool pkgCacheFile::BuildSourceList(OpProgress *Progress) // CacheFile::BuildPolicy - Open and build all relevant preferences /*{{{*/ // --------------------------------------------------------------------- /* */ -bool pkgCacheFile::BuildPolicy(OpProgress *Progress) +bool pkgCacheFile::BuildPolicy(OpProgress * /*Progress*/) { if (Policy != NULL) return true; diff --git a/apt-pkg/cacheset.cc b/apt-pkg/cacheset.cc index 6b6fdb5ad..8a30d00a2 100644 --- a/apt-pkg/cacheset.cc +++ b/apt-pkg/cacheset.cc @@ -588,13 +588,13 @@ pkgCache::PkgIterator CacheSetHelper::canNotFindPkgName(pkgCacheFile &Cache, } /*}}}*/ // canNotFindTask - handle the case no package is found for a task /*{{{*/ -void CacheSetHelper::canNotFindTask(PackageContainerInterface * const pci, pkgCacheFile &Cache, std::string pattern) { +void CacheSetHelper::canNotFindTask(PackageContainerInterface * const /*pci*/, pkgCacheFile &/*Cache*/, std::string pattern) { if (ShowError == true) _error->Insert(ErrorType, _("Couldn't find task '%s'"), pattern.c_str()); } /*}}}*/ // canNotFindRegEx - handle the case no package is found by a regex /*{{{*/ -void CacheSetHelper::canNotFindRegEx(PackageContainerInterface * const pci, pkgCacheFile &Cache, std::string pattern) { +void CacheSetHelper::canNotFindRegEx(PackageContainerInterface * const /*pci*/, pkgCacheFile &/*Cache*/, std::string pattern) { if (ShowError == true) _error->Insert(ErrorType, _("Couldn't find any package by regex '%s'"), pattern.c_str()); } @@ -606,25 +606,25 @@ void CacheSetHelper::canNotFindFnmatch(PackageContainerInterface * const pci, pk } #endif /*}}}*/ // canNotFindPackage - handle the case no package is found from a string/*{{{*/ -void CacheSetHelper::canNotFindPackage(PackageContainerInterface * const pci, pkgCacheFile &Cache, std::string const &str) { +void CacheSetHelper::canNotFindPackage(PackageContainerInterface * const /*pci*/, pkgCacheFile &/*Cache*/, std::string const &/*str*/) { } /*}}}*/ // canNotFindAllVer /*{{{*/ -void CacheSetHelper::canNotFindAllVer(VersionContainerInterface * const vci, pkgCacheFile &Cache, +void CacheSetHelper::canNotFindAllVer(VersionContainerInterface * const /*vci*/, pkgCacheFile &/*Cache*/, pkgCache::PkgIterator const &Pkg) { if (ShowError == true) _error->Insert(ErrorType, _("Can't select versions from package '%s' as it is purely virtual"), Pkg.FullName(true).c_str()); } /*}}}*/ // canNotFindInstCandVer /*{{{*/ -void CacheSetHelper::canNotFindInstCandVer(VersionContainerInterface * const vci, pkgCacheFile &Cache, +void CacheSetHelper::canNotFindInstCandVer(VersionContainerInterface * const /*vci*/, pkgCacheFile &/*Cache*/, pkgCache::PkgIterator const &Pkg) { if (ShowError == true) _error->Insert(ErrorType, _("Can't select installed nor candidate version from package '%s' as it has neither of them"), Pkg.FullName(true).c_str()); } /*}}}*/ // canNotFindInstCandVer /*{{{*/ -void CacheSetHelper::canNotFindCandInstVer(VersionContainerInterface * const vci, pkgCacheFile &Cache, +void CacheSetHelper::canNotFindCandInstVer(VersionContainerInterface * const /*vci*/, pkgCacheFile &/*Cache*/, pkgCache::PkgIterator const &Pkg) { if (ShowError == true) _error->Insert(ErrorType, _("Can't select installed nor candidate version from package '%s' as it has neither of them"), Pkg.FullName(true).c_str()); @@ -655,13 +655,13 @@ pkgCache::VerIterator CacheSetHelper::canNotFindInstalledVer(pkgCacheFile &Cache } /*}}}*/ // showTaskSelection /*{{{*/ -void CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const &pkg, - std::string const &pattern) { +void CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const &/*pkg*/, + std::string const &/*pattern*/) { } /*}}}*/ // showRegExSelection /*{{{*/ -void CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const &pkg, - std::string const &pattern) { +void CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const &/*pkg*/, + std::string const &/*pattern*/) { } /*}}}*/ #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13) @@ -672,10 +672,10 @@ void CacheSetHelper::showFnmatchSelection(pkgCache::PkgIterator const &pkg, /*}}}*/ #endif // showSelectedVersion /*{{{*/ -void CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const &Pkg, - pkgCache::VerIterator const Ver, - std::string const &ver, - bool const verIsRel) { +void CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const &/*Pkg*/, + pkgCache::VerIterator const /*Ver*/, + std::string const &/*ver*/, + bool const /*verIsRel*/) { } /*}}}*/ } diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index ea5ed7e92..6f946b030 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -369,7 +369,7 @@ bool pkgCdrom::DropRepeats(vector &List,const char *Name) // --------------------------------------------------------------------- /* This takes the list of source list expressed entires and collects similar ones to form a single entry for each dist */ -void pkgCdrom::ReduceSourcelist(string CD,vector &List) +void pkgCdrom::ReduceSourcelist(string /*CD*/,vector &List) { sort(List.begin(),List.end()); diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index 9e64d4476..e079d40c2 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -33,7 +33,7 @@ class debStatusIndex : public pkgIndexFile virtual const Type *GetType() const; // Interface for acquire - virtual std::string Describe(bool Short) const {return File;}; + virtual std::string Describe(bool /*Short*/) const {return File;}; // Interface for the Cache Generator virtual bool Exists() const; diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 91893c4e1..adf59516e 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1581,7 +1581,7 @@ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress) return true; } -void SigINT(int sig) { +void SigINT(int /*sig*/) { pkgPackageManager::SigINTStop = true; } /*}}}*/ diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index 02e12a6d9..c144f78e1 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -109,10 +109,10 @@ class pkgDPkgPM : public pkgPackageManager void DoDpkgStatusFd(int statusfd); void ProcessDpkgStatusLine(char *line); #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13) - void DoDpkgStatusFd(int statusfd, int unused) { + void DoDpkgStatusFd(int statusfd, int /*unused*/) { DoDpkgStatusFd(statusfd); } - void ProcessDpkgStatusLine(int unused, char *line) { + void ProcessDpkgStatusLine(int /*unused*/, char *line) { ProcessDpkgStatusLine(line); } #endif diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 946c1e254..b45f5d9b5 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -222,7 +222,7 @@ bool pkgDepCache::readStateFile(OpProgress *Prog) /*{{{*/ return true; } /*}}}*/ -bool pkgDepCache::writeStateFile(OpProgress *prog, bool InstalledOnly) /*{{{*/ +bool pkgDepCache::writeStateFile(OpProgress * /*prog*/, bool InstalledOnly) /*{{{*/ { bool const debug_autoremove = _config->FindB("Debug::pkgAutoRemove",false); @@ -868,7 +868,7 @@ bool pkgDepCache::IsDeleteOk(PkgIterator const &Pkg,bool rPurge, return IsDeleteOkProtectInstallRequests(Pkg, rPurge, Depth, FromUser); } bool pkgDepCache::IsDeleteOkProtectInstallRequests(PkgIterator const &Pkg, - bool const rPurge, unsigned long const Depth, bool const FromUser) + bool const /*rPurge*/, unsigned long const Depth, bool const FromUser) { if (FromUser == false && Pkg->CurrentVer == 0) { @@ -1297,7 +1297,7 @@ bool pkgDepCache::IsInstallOk(PkgIterator const &Pkg,bool AutoInst, return IsInstallOkMultiArchSameVersionSynced(Pkg,AutoInst, Depth, FromUser); } bool pkgDepCache::IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg, - bool const AutoInst, unsigned long const Depth, bool const FromUser) + bool const /*AutoInst*/, unsigned long const Depth, bool const FromUser) { if (FromUser == true) // as always: user is always right return true; @@ -1685,9 +1685,9 @@ bool pkgDepCache::Policy::IsImportantDep(DepIterator const &Dep) } /*}}}*/ // Policy::GetPriority - Get the priority of the package pin /*{{{*/ -signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const &Pkg) +signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const &/*Pkg*/) { return 0; } -signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const &File) +signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const &/*File*/) { return 0; } /*}}}*/ pkgDepCache::InRootSetFunc *pkgDepCache::GetRootSetFunc() /*{{{*/ diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index a02a86b87..50f810806 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -61,7 +61,7 @@ class pkgDepCache : protected pkgCache::Namespace class InRootSetFunc { public: - virtual bool InRootSet(const pkgCache::PkgIterator &pkg) {return false;}; + virtual bool InRootSet(const pkgCache::PkgIterator &/*pkg*/) {return false;}; virtual ~InRootSetFunc() {}; }; diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc index e90598392..dbd2dba46 100644 --- a/apt-pkg/edsp.cc +++ b/apt-pkg/edsp.cc @@ -44,7 +44,7 @@ bool EDSP::WriteScenario(pkgDepCache &Cache, FILE* output, OpProgress *Progress) for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; ++Ver, ++p) { WriteScenarioVersion(Cache, output, Pkg, Ver); - WriteScenarioDependency(Cache, output, Pkg, Ver); + WriteScenarioDependency(output, Ver); fprintf(output, "\n"); if (Progress != NULL && p % 100 == 0) Progress->Progress(p); @@ -64,7 +64,7 @@ bool EDSP::WriteLimitedScenario(pkgDepCache &Cache, FILE* output, for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; ++Ver) { WriteScenarioVersion(Cache, output, Pkg, Ver); - WriteScenarioLimitedDependency(Cache, output, Pkg, Ver, pkgset); + WriteScenarioLimitedDependency(output, Ver, pkgset); fprintf(output, "\n"); if (Progress != NULL && p % 100 == 0) Progress->Progress(p); @@ -111,8 +111,7 @@ void EDSP::WriteScenarioVersion(pkgDepCache &Cache, FILE* output, pkgCache::PkgI } /*}}}*/ // EDSP::WriteScenarioDependency /*{{{*/ -void EDSP::WriteScenarioDependency(pkgDepCache &Cache, FILE* output, pkgCache::PkgIterator const &Pkg, - pkgCache::VerIterator const &Ver) +void EDSP::WriteScenarioDependency( FILE* output, pkgCache::VerIterator const &Ver) { std::string dependencies[pkgCache::Dep::Enhances + 1]; bool orGroup = false; @@ -148,8 +147,7 @@ void EDSP::WriteScenarioDependency(pkgDepCache &Cache, FILE* output, pkgCache::P } /*}}}*/ // EDSP::WriteScenarioLimitedDependency /*{{{*/ -void EDSP::WriteScenarioLimitedDependency(pkgDepCache &Cache, FILE* output, - pkgCache::PkgIterator const &Pkg, +void EDSP::WriteScenarioLimitedDependency(FILE* output, pkgCache::VerIterator const &Ver, APT::PackageSet const &pkgset) { diff --git a/apt-pkg/edsp.h b/apt-pkg/edsp.h index fd4436f60..828ee3753 100644 --- a/apt-pkg/edsp.h +++ b/apt-pkg/edsp.h @@ -35,11 +35,9 @@ class EDSP /*{{{*/ void static WriteScenarioVersion(pkgDepCache &Cache, FILE* output, pkgCache::PkgIterator const &Pkg, pkgCache::VerIterator const &Ver); - void static WriteScenarioDependency(pkgDepCache &Cache, FILE* output, - pkgCache::PkgIterator const &Pkg, + void static WriteScenarioDependency(FILE* output, pkgCache::VerIterator const &Ver); - void static WriteScenarioLimitedDependency(pkgDepCache &Cache, FILE* output, - pkgCache::PkgIterator const &Pkg, + void static WriteScenarioLimitedDependency(FILE* output, pkgCache::VerIterator const &Ver, APT::PackageSet const &pkgset); public: diff --git a/apt-pkg/edsp/edspindexfile.cc b/apt-pkg/edsp/edspindexfile.cc index 98ce4497a..80b9f79ea 100644 --- a/apt-pkg/edsp/edspindexfile.cc +++ b/apt-pkg/edsp/edspindexfile.cc @@ -63,7 +63,7 @@ bool edspIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const class edspIFType: public pkgIndexFile::Type { public: - virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator File) const + virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator) const { // we don't have a record parser for this type as the file is not presistent return NULL; diff --git a/apt-pkg/edsp/edsplistparser.cc b/apt-pkg/edsp/edsplistparser.cc index bcfdb1017..37959f37b 100644 --- a/apt-pkg/edsp/edsplistparser.cc +++ b/apt-pkg/edsp/edsplistparser.cc @@ -84,8 +84,8 @@ bool edspListParser::ParseStatus(pkgCache::PkgIterator &Pkg, } /*}}}*/ // ListParser::LoadReleaseInfo - Load the release information /*{{{*/ -bool edspListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI, - FileFd &File, std::string component) +bool edspListParser::LoadReleaseInfo(pkgCache::PkgFileIterator & /*FileI*/, + FileFd & /*File*/, std::string /*component*/) { return true; } diff --git a/apt-pkg/edsp/edspsystem.cc b/apt-pkg/edsp/edspsystem.cc index aae969d9d..b509fa001 100644 --- a/apt-pkg/edsp/edspsystem.cc +++ b/apt-pkg/edsp/edspsystem.cc @@ -49,7 +49,7 @@ bool edspSystem::Lock() } /*}}}*/ // System::UnLock - Drop a lock /*{{{*/ -bool edspSystem::UnLock(bool NoErrors) +bool edspSystem::UnLock(bool /*NoErrors*/) { return true; } @@ -58,7 +58,7 @@ bool edspSystem::UnLock(bool NoErrors) // --------------------------------------------------------------------- /* we can't use edsp input as input for real installations - just a simulation can work, but everything else will fail bigtime */ -pkgPackageManager *edspSystem::CreatePM(pkgDepCache *Cache) const +pkgPackageManager *edspSystem::CreatePM(pkgDepCache * /*Cache*/) const { return NULL; } @@ -81,7 +81,7 @@ bool edspSystem::Initialize(Configuration &Cnf) } /*}}}*/ // System::ArchiveSupported - Is a file format supported /*{{{*/ -bool edspSystem::ArchiveSupported(const char *Type) +bool edspSystem::ArchiveSupported(const char * /*Type*/) { return false; } diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc index 38356df18..59afa86ec 100644 --- a/apt-pkg/indexcopy.cc +++ b/apt-pkg/indexcopy.cc @@ -551,7 +551,7 @@ bool SigVerify::CopyMetaIndex(string CDROM, string CDName, /*{{{*/ } /*}}}*/ bool SigVerify::CopyAndVerify(string CDROM,string Name,vector &SigList, /*{{{*/ - vector PkgList,vector SrcList) + vector /*PkgList*/,vector /*SrcList*/) { if (SigList.empty() == true) return true; diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index 642a750d4..875c80336 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -47,7 +47,7 @@ pkgIndexFile::Type *pkgIndexFile::Type::GetType(const char *Type) // IndexFile::ArchiveInfo - Stub /*{{{*/ // --------------------------------------------------------------------- /* */ -std::string pkgIndexFile::ArchiveInfo(pkgCache::VerIterator Ver) const +std::string pkgIndexFile::ArchiveInfo(pkgCache::VerIterator /*Ver*/) const { return std::string(); } @@ -63,8 +63,8 @@ pkgCache::PkgFileIterator pkgIndexFile::FindInCache(pkgCache &Cache) const // IndexFile::SourceIndex - Stub /*{{{*/ // --------------------------------------------------------------------- /* */ -std::string pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const &Record, - pkgSrcRecords::File const &File) const +std::string pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const &/*Record*/, + pkgSrcRecords::File const &/*File*/) const { return std::string(); } diff --git a/apt-pkg/indexfile.h b/apt-pkg/indexfile.h index a0096fa34..9a5c74200 100644 --- a/apt-pkg/indexfile.h +++ b/apt-pkg/indexfile.h @@ -78,10 +78,10 @@ class pkgIndexFile virtual bool Exists() const = 0; virtual bool HasPackages() const = 0; virtual unsigned long Size() const = 0; - virtual bool Merge(pkgCacheGenerator &Gen, OpProgress* Prog) const { return false; }; + virtual bool Merge(pkgCacheGenerator &/*Gen*/, OpProgress* /*Prog*/) const { return false; }; __deprecated virtual bool Merge(pkgCacheGenerator &Gen, OpProgress &Prog) const { return Merge(Gen, &Prog); }; - virtual bool MergeFileProvides(pkgCacheGenerator &Gen,OpProgress* Prog) const {return true;}; + virtual bool MergeFileProvides(pkgCacheGenerator &/*Gen*/,OpProgress* /*Prog*/) const {return true;}; __deprecated virtual bool MergeFileProvides(pkgCacheGenerator &Gen, OpProgress &Prog) const {return MergeFileProvides(Gen, &Prog);}; virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index aec744360..657330b60 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -41,10 +41,10 @@ PackageManager* PackageManagerProgressFactory() return progress; } -bool PackageManager::StatusChanged(std::string PackageName, +bool PackageManager::StatusChanged(std::string /*PackageName*/, unsigned int StepsDone, unsigned int TotalSteps, - std::string HumanReadableAction) + std::string /*HumanReadableAction*/) { int reporting_steps = _config->FindI("DpkgPM::Reporting-Steps", 1); percentage = StepsDone/(float)TotalSteps * 100.0; diff --git a/apt-pkg/install-progress.h b/apt-pkg/install-progress.h index 8bcc32927..baf245376 100644 --- a/apt-pkg/install-progress.h +++ b/apt-pkg/install-progress.h @@ -29,7 +29,7 @@ namespace Progress { virtual ~PackageManager() {}; /* Global Start/Stop */ - virtual void Start(int child_pty=-1) {}; + virtual void Start(int /*child_pty*/=-1) {}; virtual void Stop() {}; /* When dpkg is invoked (may happen multiple times for each @@ -48,14 +48,14 @@ namespace Progress { unsigned int StepsDone, unsigned int TotalSteps, std::string HumanReadableAction); - virtual void Error(std::string PackageName, - unsigned int StepsDone, - unsigned int TotalSteps, - std::string ErrorMessage) {} - virtual void ConffilePrompt(std::string PackageName, - unsigned int StepsDone, - unsigned int TotalSteps, - std::string ConfMessage) {} + virtual void Error(std::string /*PackageName*/, + unsigned int /*StepsDone*/, + unsigned int /*TotalSteps*/, + std::string /*ErrorMessage*/) {} + virtual void ConffilePrompt(std::string /*PackageName*/, + unsigned int /*StepsDone*/, + unsigned int /*TotalSteps*/, + std::string /*ConfMessage*/) {} }; class PackageManagerProgressFd : public PackageManager diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h index 853b9bac8..d684463eb 100644 --- a/apt-pkg/packagemanager.h +++ b/apt-pkg/packagemanager.h @@ -89,9 +89,9 @@ class pkgPackageManager : protected pkgCache::Namespace virtual bool Configure(PkgIterator /*Pkg*/) {return false;}; virtual bool Remove(PkgIterator /*Pkg*/,bool /*Purge*/=false) {return false;}; #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13) - virtual bool Go(APT::Progress::PackageManager *progress) {return true;}; + virtual bool Go(APT::Progress::PackageManager * /*progress*/) {return true;}; #else - virtual bool Go(int statusFd=-1) {return true;}; + virtual bool Go(int /*statusFd*/=-1) {return true;}; #endif virtual void Reset() {}; diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 7d57640c5..9c14e626e 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -695,7 +695,7 @@ void pkgCache::DepIterator::GlobOr(DepIterator &Start,DepIterator &End) // --------------------------------------------------------------------- /* Deps like self-conflicts should be ignored as well as implicit conflicts on virtual packages. */ -bool pkgCache::DepIterator::IsIgnorable(PkgIterator const &Pkg) const +bool pkgCache::DepIterator::IsIgnorable(PkgIterator const &/*Pkg*/) const { if (IsNegative() == false) return false; diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 006f3952b..185b9ca45 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -1580,7 +1580,7 @@ static bool IsDuplicateDescription(pkgCache::DescIterator Desc, } /*}}}*/ // CacheGenerator::FinishCache /*{{{*/ -bool pkgCacheGenerator::FinishCache(OpProgress *Progress) +bool pkgCacheGenerator::FinishCache(OpProgress * /*Progress*/) { return true; } diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h index 428e8459b..e8901025e 100644 --- a/apt-pkg/pkgcachegen.h +++ b/apt-pkg/pkgcachegen.h @@ -170,8 +170,8 @@ class pkgCacheGenerator::ListParser virtual bool Step() = 0; inline bool HasFileDeps() {return FoundFileDeps;}; - virtual bool CollectFileProvides(pkgCache &Cache, - pkgCache::VerIterator &Ver) {return true;}; + virtual bool CollectFileProvides(pkgCache &/*Cache*/, + pkgCache::VerIterator &/*Ver*/) {return true;}; ListParser() : FoundFileDeps(false) {}; virtual ~ListParser() {}; diff --git a/apt-pkg/pkgrecords.h b/apt-pkg/pkgrecords.h index 3658435e8..ca0984bbf 100644 --- a/apt-pkg/pkgrecords.h +++ b/apt-pkg/pkgrecords.h @@ -70,7 +70,7 @@ class pkgRecords::Parser /*{{{*/ virtual std::string Homepage() {return std::string();} // An arbitrary custom field - virtual std::string RecordField(const char *fieldName) { return std::string();}; + virtual std::string RecordField(const char * /*fieldName*/) { return std::string();}; // The record in binary form virtual void GetRec(const char *&Start,const char *&Stop) {Start = Stop = 0;}; diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index d0f97441d..2176f1f42 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -349,7 +349,7 @@ signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &File) all over the place rather than forcing a special format */ class PreferenceSection : public pkgTagSection { - void TrimRecord(bool BeforeRecord, const char* &End) + void TrimRecord(bool /*BeforeRecord*/, const char* &End) { for (; Stop < End && (Stop[0] == '\n' || Stop[0] == '\r' || Stop[0] == '#'); Stop++) if (Stop[0] == '#') diff --git a/apt-pkg/vendor.cc b/apt-pkg/vendor.cc index fc03ec845..f19534171 100644 --- a/apt-pkg/vendor.cc +++ b/apt-pkg/vendor.cc @@ -31,7 +31,7 @@ const std::string Vendor::LookupFingerprint(std::string Print) const return (*Elt).second; } -bool Vendor::CheckDist(std::string Dist) +bool Vendor::CheckDist(std::string /*Dist*/) { return true; } diff --git a/apt-private/acqprogress.cc b/apt-private/acqprogress.cc index 66e1600f1..d08ed072f 100644 --- a/apt-private/acqprogress.cc +++ b/apt-private/acqprogress.cc @@ -93,7 +93,7 @@ void AcqTextStatus::Fetch(pkgAcquire::ItemDesc &Itm) // AcqTextStatus::Done - Completed a download /*{{{*/ // --------------------------------------------------------------------- /* We don't display anything... */ -void AcqTextStatus::Done(pkgAcquire::ItemDesc &Itm) +void AcqTextStatus::Done(pkgAcquire::ItemDesc &/*Itm*/) { Update = true; } diff --git a/apt-private/private-cacheset.h b/apt-private/private-cacheset.h index 322b3be6b..26c7f1ac2 100644 --- a/apt-private/private-cacheset.h +++ b/apt-private/private-cacheset.h @@ -42,8 +42,8 @@ typedef APT::VersionContainer< class Matcher { public: - virtual bool operator () (const pkgCache::PkgIterator &P) { - return true;}; + virtual bool operator () (const pkgCache::PkgIterator &/*P*/) { + return true;} }; // FIXME: add default argument for OpProgress (or overloaded function) @@ -111,8 +111,8 @@ public: Pkg.FullName(true).c_str(), pattern.c_str()); explicitlyNamed = false; } - virtual void showSelectedVersion(pkgCache::PkgIterator const &Pkg, pkgCache::VerIterator const Ver, - std::string const &ver, bool const verIsRel) { + virtual void showSelectedVersion(pkgCache::PkgIterator const &/*Pkg*/, pkgCache::VerIterator const Ver, + std::string const &ver, bool const /*verIsRel*/) { if (ver == Ver.VerStr()) return; selectedByRelease.push_back(make_pair(Ver, ver)); diff --git a/apt-private/private-moo.cc b/apt-private/private-moo.cc index 5d247041d..9c4f6bf15 100644 --- a/apt-private/private-moo.cc +++ b/apt-private/private-moo.cc @@ -65,7 +65,7 @@ static bool printMooLine() { /*{{{*/ return true; } /*}}}*/ -bool DoMoo1(CommandLine &CmdL) /*{{{*/ +bool DoMoo1(CommandLine &) /*{{{*/ { // our trustworthy super cow since 2001 if (_config->FindI("quiet") >= 2) @@ -83,7 +83,7 @@ bool DoMoo1(CommandLine &CmdL) /*{{{*/ return true; } /*}}}*/ -bool DoMoo2(CommandLine &CmdL) /*{{{*/ +bool DoMoo2(CommandLine &) /*{{{*/ { // by Fernando Ribeiro in lp:56125 if (_config->FindI("quiet") >= 2) @@ -117,7 +117,7 @@ bool DoMoo2(CommandLine &CmdL) /*{{{*/ return true; } /*}}}*/ -bool DoMoo3(CommandLine &CmdL) /*{{{*/ +bool DoMoo3(CommandLine &) /*{{{*/ { // by Robert Millan in deb:134156 if (_config->FindI("quiet") >= 2) @@ -134,7 +134,7 @@ bool DoMoo3(CommandLine &CmdL) /*{{{*/ return true; } /*}}}*/ -bool DoMooApril(CommandLine &CmdL) /*{{{*/ +bool DoMooApril(CommandLine &) /*{{{*/ { // by Christopher Allan Webber and proposed by Paul Tagliamonte // in a "Community outreach": https://lists.debian.org/debian-devel/2013/04/msg00045.html diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc index dec518392..52f65d794 100644 --- a/apt-private/private-output.cc +++ b/apt-private/private-output.cc @@ -63,7 +63,7 @@ bool InitOutput() /*{{{*/ return true; } /*}}}*/ -static std::string GetArchiveSuite(pkgCacheFile &CacheFile, pkgCache::VerIterator ver) /*{{{*/ +static std::string GetArchiveSuite(pkgCacheFile &/*CacheFile*/, pkgCache::VerIterator ver) /*{{{*/ { std::string suite = ""; if (ver && ver.FileList() && ver.FileList()) @@ -107,14 +107,14 @@ static std::string GetCandidateVersion(pkgCacheFile &CacheFile, pkgCache::PkgIte return cand ? cand.VerStr() : "(none)"; } /*}}}*/ -static std::string GetInstalledVersion(pkgCacheFile &CacheFile, pkgCache::PkgIterator P)/*{{{*/ +static std::string GetInstalledVersion(pkgCacheFile &/*CacheFile*/, pkgCache::PkgIterator P)/*{{{*/ { pkgCache::VerIterator inst = P.CurrentVer(); return inst ? inst.VerStr() : "(none)"; } /*}}}*/ -static std::string GetVersion(pkgCacheFile &CacheFile, pkgCache::VerIterator V)/*{{{*/ +static std::string GetVersion(pkgCacheFile &/*CacheFile*/, pkgCache::VerIterator V)/*{{{*/ { pkgCache::PkgIterator P = V.ParentPkg(); if (V == P.CurrentVer()) diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 7e569f2fc..d50e0c724 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -258,7 +258,7 @@ static bool DumpPackage(CommandLine &CmdL) // Stats - Dump some nice statistics /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool Stats(CommandLine &Cmd) +static bool Stats(CommandLine &) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -371,7 +371,7 @@ static bool Stats(CommandLine &Cmd) // Dump - show everything /*{{{*/ // --------------------------------------------------------------------- /* This is worthless except fer debugging things */ -static bool Dump(CommandLine &Cmd) +static bool Dump(CommandLine &) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -423,7 +423,7 @@ static bool Dump(CommandLine &Cmd) // --------------------------------------------------------------------- /* This is needed to make dpkg --merge happy.. I spent a bit of time to make this run really fast, perhaps I went a little overboard.. */ -static bool DumpAvail(CommandLine &Cmd) +static bool DumpAvail(CommandLine &) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -1388,7 +1388,7 @@ static bool Search(CommandLine &CmdL) } /*}}}*/ /* ShowAuto - show automatically installed packages (sorted) {{{*/ -static bool ShowAuto(CommandLine &CmdL) +static bool ShowAuto(CommandLine &) { pkgCacheFile CacheFile; pkgCache *Cache = CacheFile.GetPkgCache(); @@ -1717,7 +1717,7 @@ static bool Madison(CommandLine &CmdL) // GenCaches - Call the main cache generator /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool GenCaches(CommandLine &Cmd) +static bool GenCaches(CommandLine &) { OpTextProgress Progress(*_config); @@ -1728,7 +1728,7 @@ static bool GenCaches(CommandLine &Cmd) // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool ShowHelp(CommandLine &Cmd) +static bool ShowHelp(CommandLine &) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc index dc0e050c3..8e1d27e52 100644 --- a/cmdline/apt-cdrom.cc +++ b/cmdline/apt-cdrom.cc @@ -93,7 +93,7 @@ bool pkgCdromTextStatus::AskCdromName(string &name) } -void pkgCdromTextStatus::Update(string text, int current) +void pkgCdromTextStatus::Update(string text, int /*current*/) { if(text.size() > 0) cout << text << flush; diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc index e83c4b64b..26f0ea161 100644 --- a/cmdline/apt-config.cc +++ b/cmdline/apt-config.cc @@ -78,7 +78,7 @@ static bool DoDump(CommandLine &CmdL) // ShowHelp - Show the help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc index 2b01968e3..a27008233 100644 --- a/cmdline/apt-extracttemplates.cc +++ b/cmdline/apt-extracttemplates.cc @@ -137,7 +137,7 @@ bool DebFile::DoItem(Item &I, int &Fd) // DebFile::Process examine element in package and copy /*{{{*/ // --------------------------------------------------------------------- /* */ -bool DebFile::Process(Item &I, const unsigned char *data, +bool DebFile::Process(Item &/*I*/, const unsigned char *data, unsigned long size, unsigned long pos) { switch (Which) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 253b2f4a5..9a4eb0881 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -475,7 +475,7 @@ static bool DoMarkAuto(CommandLine &CmdL) // DoDSelectUpgrade - Do an upgrade by following dselects selections /*{{{*/ // --------------------------------------------------------------------- /* Follows dselect's selections */ -static bool DoDSelectUpgrade(CommandLine &CmdL) +static bool DoDSelectUpgrade(CommandLine &) { CacheFile Cache; if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false) @@ -551,7 +551,7 @@ static bool DoDSelectUpgrade(CommandLine &CmdL) // DoClean - Remove download archives /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool DoClean(CommandLine &CmdL) +static bool DoClean(CommandLine &) { std::string const archivedir = _config->FindDir("Dir::Cache::archives"); std::string const pkgcache = _config->FindFile("Dir::cache::pkgcache"); @@ -599,7 +599,7 @@ class LogCleaner : public pkgArchiveCleaner }; }; -static bool DoAutoClean(CommandLine &CmdL) +static bool DoAutoClean(CommandLine &) { // Lock the archive directory FileFd Lock; @@ -696,7 +696,7 @@ static bool DoDownload(CommandLine &CmdL) // --------------------------------------------------------------------- /* Opening automatically checks the system, this command is mostly used for debugging */ -static bool DoCheck(CommandLine &CmdL) +static bool DoCheck(CommandLine &) { CacheFile Cache; Cache.Open(); @@ -1581,7 +1581,7 @@ static bool DoChangelog(CommandLine &CmdL) // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc index d8ea0435a..8ff2fa037 100644 --- a/cmdline/apt-helper.cc +++ b/cmdline/apt-helper.cc @@ -55,7 +55,7 @@ static bool DoDownloadFile(CommandLine &CmdL) return true; } -static bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc index 108e86b9a..0c2ff0f43 100644 --- a/cmdline/apt-internal-solver.cc +++ b/cmdline/apt-internal-solver.cc @@ -30,7 +30,7 @@ // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool ShowHelp(CommandLine &CmdL) { +static bool ShowHelp(CommandLine &) { ioprintf(std::cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt-mark.cc b/cmdline/apt-mark.cc index 1af17cd7a..53b5ec158 100644 --- a/cmdline/apt-mark.cc +++ b/cmdline/apt-mark.cc @@ -372,7 +372,7 @@ static bool ShowHold(CommandLine &CmdL) // ShowHelp - Show a help screen /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/cmdline/apt.cc b/cmdline/apt.cc index 040ed6c25..1b7626948 100644 --- a/cmdline/apt.cc +++ b/cmdline/apt.cc @@ -61,7 +61,7 @@ -static bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &) { ioprintf(c1out,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index c28ad5c5c..f13e4648a 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -586,7 +586,7 @@ static void LoadBinDir(vector &PkgList,Configuration &Setup) // ShowHelp - Show the help text /*{{{*/ // --------------------------------------------------------------------- /* */ -static bool ShowHelp(CommandLine &CmdL) +static bool ShowHelp(CommandLine &) { ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); diff --git a/ftparchive/contents.cc b/ftparchive/contents.cc index 80fe6e17e..be4d2a61e 100644 --- a/ftparchive/contents.cc +++ b/ftparchive/contents.cc @@ -316,7 +316,7 @@ bool ContentsExtract::Read(debDebFile &Deb) // ContentsExtract::DoItem - Extract an item /*{{{*/ // --------------------------------------------------------------------- /* This just tacks the name onto the end of our memory buffer */ -bool ContentsExtract::DoItem(Item &Itm,int &Fd) +bool ContentsExtract::DoItem(Item &Itm, int &/*Fd*/) { unsigned long Len = strlen(Itm.Name); diff --git a/ftparchive/override.cc b/ftparchive/override.cc index 82cbc4c19..38d76a6a3 100644 --- a/ftparchive/override.cc +++ b/ftparchive/override.cc @@ -129,7 +129,7 @@ bool Override::ReadOverride(string const &File,bool const &Source) // Override::ReadExtraOverride - Read the extra override file /*{{{*/ // --------------------------------------------------------------------- /* This parses the extra override file and reads it into the map */ -bool Override::ReadExtraOverride(string const &File,bool const &Source) +bool Override::ReadExtraOverride(string const &File,bool const &/*Source*/) { if (File.empty() == true) return true; diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 7ecfe78ed..edc0fddea 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -72,9 +72,9 @@ FTWScanner::FTWScanner(string const &Arch): Arch(Arch) /*}}}*/ // FTWScanner::Scanner - FTW Scanner /*{{{*/ // --------------------------------------------------------------------- -/* This is the FTW scanner, it processes each directory element in the +/* This is the FTW scanner, it processes each directory element in the directory tree. */ -int FTWScanner::ScannerFTW(const char *File,const struct stat *sb,int Flag) +int FTWScanner::ScannerFTW(const char *File,const struct stat * /*sb*/,int Flag) { if (Flag == FTW_DNR) { @@ -951,7 +951,7 @@ bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres // ReleaseWriter::ReleaseWriter - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -ReleaseWriter::ReleaseWriter(string const &DB) +ReleaseWriter::ReleaseWriter(string const &/*DB*/) { if (_config->FindB("APT::FTPArchive::Release::Default-Patterns", true) == true) { diff --git a/methods/ftp.cc b/methods/ftp.cc index 5a87ded1c..4108b2da3 100644 --- a/methods/ftp.cc +++ b/methods/ftp.cc @@ -1098,7 +1098,7 @@ bool FtpMethod::Fetch(FetchItem *Itm) } /*}}}*/ -int main(int argc,const char *argv[]) +int main(int, const char *argv[]) { setlocale(LC_ALL, ""); diff --git a/methods/gzip.cc b/methods/gzip.cc index a2844e969..3269ffbb8 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -120,7 +120,7 @@ bool GzipMethod::Fetch(FetchItem *Itm) } /*}}}*/ -int main(int argc, char *argv[]) +int main(int, char *argv[]) { setlocale(LC_ALL, ""); diff --git a/methods/https.cc b/methods/https.cc index b0c7ee71d..041214179 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -83,9 +83,9 @@ HttpsMethod::write_data(void *buffer, size_t size, size_t nmemb, void *userp) return size*nmemb; } -int -HttpsMethod::progress_callback(void *clientp, double dltotal, double dlnow, - double ultotal, double ulnow) +int +HttpsMethod::progress_callback(void *clientp, double dltotal, double /*dlnow*/, + double /*ultotal*/, double /*ulnow*/) { HttpsMethod *me = (HttpsMethod *)clientp; if(dltotal > 0 && me->Res.Size == 0) { @@ -95,7 +95,7 @@ HttpsMethod::progress_callback(void *clientp, double dltotal, double dlnow, } // HttpsServerState::HttpsServerState - Constructor /*{{{*/ -HttpsServerState::HttpsServerState(URI Srv,HttpsMethod *Owner) : ServerState(Srv, NULL) +HttpsServerState::HttpsServerState(URI Srv,HttpsMethod * /*Owner*/) : ServerState(Srv, NULL) { TimeOut = _config->FindI("Acquire::https::Timeout",TimeOut); Reset(); diff --git a/methods/https.h b/methods/https.h index ab0dd3407..3199b29f2 100644 --- a/methods/https.h +++ b/methods/https.h @@ -25,23 +25,23 @@ class FileFd; class HttpsServerState : public ServerState { protected: - virtual bool ReadHeaderLines(std::string &Data) { return false; } - virtual bool LoadNextResponse(bool const ToFile, FileFd * const File) { return false; } + virtual bool ReadHeaderLines(std::string &/*Data*/) { return false; } + virtual bool LoadNextResponse(bool const /*ToFile*/, FileFd * const /*File*/) { return false; } public: - virtual bool WriteResponse(std::string const &Data) { return false; } + virtual bool WriteResponse(std::string const &/*Data*/) { return false; } /** \brief Transfer the data from the socket */ - virtual bool RunData(FileFd * const File) { return false; } + virtual bool RunData(FileFd * const /*File*/) { return false; } virtual bool Open() { return false; } virtual bool IsOpen() { return false; } virtual bool Close() { return false; } - virtual bool InitHashes(FileFd &File) { return false; } + virtual bool InitHashes(FileFd &/*File*/) { return false; } virtual Hashes * GetHashes() { return NULL; } - virtual bool Die(FileFd &File) { return false; } - virtual bool Flush(FileFd * const File) { return false; } - virtual bool Go(bool ToFile, FileFd * const File) { return false; } + virtual bool Die(FileFd &/*File*/) { return false; } + virtual bool Flush(FileFd * const /*File*/) { return false; } + virtual bool Go(bool /*ToFile*/, FileFd * const /*File*/) { return false; } HttpsServerState(URI Srv, HttpsMethod *Owner); virtual ~HttpsServerState() {Close();}; diff --git a/methods/mirror.cc b/methods/mirror.cc index 977eddcf5..b30636758 100644 --- a/methods/mirror.cc +++ b/methods/mirror.cc @@ -132,7 +132,7 @@ bool MirrorMethod::Clean(string Dir) } -bool MirrorMethod::DownloadMirrorFile(string mirror_uri_str) +bool MirrorMethod::DownloadMirrorFile(string /*mirror_uri_str*/) { // not that great to use pkgAcquire here, but we do not have // any other way right now diff --git a/methods/rsh.cc b/methods/rsh.cc index f065f6b89..8088cac38 100644 --- a/methods/rsh.cc +++ b/methods/rsh.cc @@ -390,7 +390,7 @@ bool RSHMethod::Configuration(std::string Message) // RSHMethod::SigTerm - Clean up and timestamp the files on exit /*{{{*/ // --------------------------------------------------------------------- /* */ -void RSHMethod::SigTerm(int sig) +void RSHMethod::SigTerm(int) { if (FailFd == -1) _exit(100); @@ -519,7 +519,7 @@ bool RSHMethod::Fetch(FetchItem *Itm) } /*}}}*/ -int main(int argc, const char *argv[]) +int main(int, const char *argv[]) { setlocale(LC_ALL, ""); diff --git a/test/interactive-helper/testdeb.cc b/test/interactive-helper/testdeb.cc index 89375af13..9520d1b50 100644 --- a/test/interactive-helper/testdeb.cc +++ b/test/interactive-helper/testdeb.cc @@ -6,7 +6,7 @@ class NullStream : public pkgDirStream { public: - virtual bool DoItem(Item &Itm,int &Fd) {return true;}; + virtual bool DoItem(Item &/*Itm*/, int &/*Fd*/) {return true;}; }; static bool Test(const char *File) @@ -33,6 +33,11 @@ static bool Test(const char *File) int main(int argc, const char *argv[]) { + if (argc != 2) { + std::cout << "One parameter expected - given " << argc << std::endl; + return 100; + } + Test(argv[1]); _error->DumpErrors(); return 0; diff --git a/test/libapt/cdromreducesourcelist_test.cc b/test/libapt/cdromreducesourcelist_test.cc index 729da23a6..b0314769d 100644 --- a/test/libapt/cdromreducesourcelist_test.cc +++ b/test/libapt/cdromreducesourcelist_test.cc @@ -15,7 +15,7 @@ public: } }; -int main(int argc, char const *argv[]) { +int main() { Cdrom cd; std::vector List; std::string CD("/media/cdrom/"); diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc index 957e905d5..d2efc1b4b 100644 --- a/test/libapt/configuration_test.cc +++ b/test/libapt/configuration_test.cc @@ -5,7 +5,7 @@ #include "assert.h" -int main(int argc,const char *argv[]) { +int main() { Configuration Cnf; std::vector fds; diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 462bdefd9..d256ea55a 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -10,7 +10,7 @@ #include -int main(int argc,char *argv[]) +int main() { std::vector files; diff --git a/test/libapt/getarchitectures_test.cc b/test/libapt/getarchitectures_test.cc index 807469263..508d5e458 100644 --- a/test/libapt/getarchitectures_test.cc +++ b/test/libapt/getarchitectures_test.cc @@ -7,7 +7,7 @@ #include -int main(int argc,char *argv[]) +int main() { std::vector vec; diff --git a/test/libapt/globalerror_test.cc b/test/libapt/globalerror_test.cc index b6939231d..742fa53bd 100644 --- a/test/libapt/globalerror_test.cc +++ b/test/libapt/globalerror_test.cc @@ -5,7 +5,7 @@ #include #include -int main(int argc,char *argv[]) +int main() { std::string const textOfErrnoZero(strerror(0)); diff --git a/test/libapt/hashsums_test.cc b/test/libapt/hashsums_test.cc index 3da89052b..410e2c44d 100644 --- a/test/libapt/hashsums_test.cc +++ b/test/libapt/hashsums_test.cc @@ -43,6 +43,11 @@ template void TestMill(const char *Out) int main(int argc, char** argv) { + if (argc != 6) { + std::cout << "Five parameter expected - given " << argc << std::endl; + return 100; + } + // test HashSumValue which doesn't calculate but just stores sums { string md5sum = argv[2]; diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc index 67dbab823..5a2c65573 100644 --- a/test/libapt/parsedepends_test.cc +++ b/test/libapt/parsedepends_test.cc @@ -3,7 +3,7 @@ #include "assert.h" -int main(int argc,char *argv[]) { +int main() { std::string Package; std::string Version; unsigned int Op = 5; diff --git a/test/libapt/sourcelist_test.cc b/test/libapt/sourcelist_test.cc index e79b6d65e..0637df03b 100644 --- a/test/libapt/sourcelist_test.cc +++ b/test/libapt/sourcelist_test.cc @@ -19,7 +19,7 @@ static void remove_tmpfile(void) } } -int main(int argc, char *argv[]) +int main() { _config->Set("APT::Sources::Use-Deb822", true); diff --git a/test/libapt/strutil_test.cc b/test/libapt/strutil_test.cc index 8215654d0..a4516e7a1 100644 --- a/test/libapt/strutil_test.cc +++ b/test/libapt/strutil_test.cc @@ -2,7 +2,7 @@ #include "assert.h" -int main(int argc,char *argv[]) +int main() { std::string input, output, expected; diff --git a/test/libapt/tagfile_test.cc b/test/libapt/tagfile_test.cc index effc3244b..24f258275 100644 --- a/test/libapt/tagfile_test.cc +++ b/test/libapt/tagfile_test.cc @@ -19,7 +19,7 @@ static void remove_tmpfile(void) } } -int main(int argc, char *argv[]) +int main() { FileFd fd; const char contents[] = "FieldA-12345678: the value of the field"; -- cgit v1.2.3-70-g09d2 From 453b82a388013e522b3a1b9fcd6ed0810dab1f4f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 5 Mar 2014 22:11:25 +0100 Subject: cleanup headers and especially #includes everywhere Beside being a bit cleaner it hopefully also resolves oddball problems I have with high levels of parallel jobs. Git-Dch: Ignore Reported-By: iwyu (include-what-you-use) --- apt-inst/contrib/arfile.cc | 4 +- apt-inst/contrib/extracttar.cc | 6 ++- apt-inst/deb/debfile.cc | 12 +++-- apt-inst/deb/debfile.h | 6 ++- apt-inst/dirstream.cc | 1 - apt-inst/extract.cc | 9 +++- apt-inst/extract.h | 5 +- apt-inst/filelist.cc | 2 - apt-pkg/acquire-item.cc | 15 ++++-- apt-pkg/acquire-item.h | 4 ++ apt-pkg/acquire-method.cc | 12 ++++- apt-pkg/acquire-method.h | 1 + apt-pkg/acquire-worker.cc | 7 ++- apt-pkg/acquire-worker.h | 3 ++ apt-pkg/acquire.cc | 6 +++ apt-pkg/acquire.h | 7 ++- apt-pkg/algorithms.cc | 13 +++-- apt-pkg/algorithms.h | 5 +- apt-pkg/aptconfiguration.cc | 9 +++- apt-pkg/cachefile.cc | 9 +++- apt-pkg/cachefile.h | 9 +++- apt-pkg/cachefilter.cc | 4 +- apt-pkg/cachefilter.h | 1 + apt-pkg/cacheiterators.h | 4 ++ apt-pkg/cacheset.cc | 16 ++++-- apt-pkg/cacheset.h | 7 ++- apt-pkg/cdrom.cc | 34 ++++++------ apt-pkg/cdrom.h | 2 + apt-pkg/clean.cc | 4 ++ apt-pkg/clean.h | 7 ++- apt-pkg/contrib/cdromutl.cc | 5 +- apt-pkg/contrib/cmndline.cc | 5 ++ apt-pkg/contrib/configuration.cc | 13 +++-- apt-pkg/contrib/error.cc | 4 +- apt-pkg/contrib/error.h | 27 +++++----- apt-pkg/contrib/fileutl.cc | 12 +++-- apt-pkg/contrib/fileutl.h | 11 ++-- apt-pkg/contrib/gpgv.cc | 18 ++++--- apt-pkg/contrib/gpgv.h | 14 +++-- apt-pkg/contrib/hashes.cc | 6 ++- apt-pkg/contrib/hashes.h | 13 +++-- apt-pkg/contrib/hashsum.cc | 3 ++ apt-pkg/contrib/hashsum_template.h | 10 ++-- apt-pkg/contrib/macros.h | 8 +-- apt-pkg/contrib/md5.cc | 6 +-- apt-pkg/contrib/md5.h | 9 ++-- apt-pkg/contrib/mmap.cc | 4 +- apt-pkg/contrib/netrc.cc | 3 +- apt-pkg/contrib/netrc.h | 6 ++- apt-pkg/contrib/progress.cc | 2 + apt-pkg/contrib/sha1.cc | 5 +- apt-pkg/contrib/sha1.h | 7 +-- apt-pkg/contrib/sha2.h | 10 ++-- apt-pkg/contrib/sha2_internal.cc | 1 + apt-pkg/contrib/sha2_internal.h | 1 + apt-pkg/contrib/strutl.cc | 9 +++- apt-pkg/contrib/strutl.h | 23 +++++---- apt-pkg/deb/debindexfile.cc | 14 ++++- apt-pkg/deb/debindexfile.h | 10 +++- apt-pkg/deb/deblistparser.cc | 9 ++++ apt-pkg/deb/deblistparser.h | 7 +++ apt-pkg/deb/debmetaindex.cc | 11 +++- apt-pkg/deb/debmetaindex.h | 8 ++- apt-pkg/deb/debrecords.cc | 8 ++- apt-pkg/deb/debrecords.h | 3 ++ apt-pkg/deb/debsrcrecords.cc | 11 +++- apt-pkg/deb/debsrcrecords.h | 7 ++- apt-pkg/deb/debsystem.cc | 9 +++- apt-pkg/deb/debsystem.h | 10 +++- apt-pkg/deb/debversion.cc | 2 + apt-pkg/deb/debversion.h | 6 +-- apt-pkg/deb/dpkgpm.cc | 52 ++++++++++--------- apt-pkg/deb/dpkgpm.h | 13 ++++- apt-pkg/depcache.cc | 14 +++-- apt-pkg/depcache.h | 12 ++++- apt-pkg/edsp.cc | 17 ++++-- apt-pkg/edsp.h | 5 +- apt-pkg/edsp/edspindexfile.cc | 17 +++--- apt-pkg/edsp/edspindexfile.h | 4 ++ apt-pkg/edsp/edsplistparser.cc | 10 ++-- apt-pkg/edsp/edsplistparser.h | 4 ++ apt-pkg/edsp/edspsystem.cc | 15 +++--- apt-pkg/edsp/edspsystem.h | 9 ++++ apt-pkg/indexcopy.cc | 6 +-- apt-pkg/indexcopy.h | 10 ++-- apt-pkg/indexfile.cc | 10 +++- apt-pkg/indexfile.h | 15 +++--- apt-pkg/indexrecords.cc | 7 ++- apt-pkg/indexrecords.h | 6 ++- apt-pkg/init.cc | 4 +- apt-pkg/init.h | 2 + apt-pkg/install-progress.cc | 30 ++++++----- apt-pkg/metaindex.h | 15 ++++-- apt-pkg/orderlist.cc | 6 ++- apt-pkg/orderlist.h | 6 ++- apt-pkg/packagemanager.cc | 11 +++- apt-pkg/packagemanager.h | 12 +++-- apt-pkg/pkgcache.cc | 7 ++- apt-pkg/pkgcachegen.cc | 20 ++++--- apt-pkg/pkgcachegen.h | 12 +++-- apt-pkg/pkgrecords.cc | 6 ++- apt-pkg/pkgrecords.h | 3 +- apt-pkg/pkgsystem.cc | 1 - apt-pkg/pkgsystem.h | 2 +- apt-pkg/policy.cc | 10 +++- apt-pkg/policy.h | 5 +- apt-pkg/sourcelist.cc | 11 +++- apt-pkg/sourcelist.h | 12 ++++- apt-pkg/srcrecords.cc | 7 ++- apt-pkg/tagfile.cc | 2 + apt-pkg/update.cc | 23 +++------ apt-pkg/upgrade.cc | 19 +++---- apt-pkg/upgrade.h | 2 + apt-pkg/vendor.cc | 8 ++- apt-pkg/vendor.h | 2 +- apt-pkg/vendorlist.cc | 9 +++- apt-pkg/vendorlist.h | 2 +- apt-pkg/version.cc | 2 +- apt-pkg/versionmatch.cc | 7 ++- apt-pkg/versionmatch.h | 3 +- apt-private/acqprogress.cc | 5 +- apt-private/private-cachefile.cc | 12 +++-- apt-private/private-cachefile.h | 2 + apt-private/private-cacheset.cc | 13 ++++- apt-private/private-cacheset.h | 15 ++++++ apt-private/private-cmndline.cc | 6 +-- apt-private/private-download.cc | 6 +-- apt-private/private-download.h | 2 +- apt-private/private-install.cc | 68 ++++++++++-------------- apt-private/private-install.h | 18 ++++++- apt-private/private-list.cc | 43 +++++----------- apt-private/private-list.h | 2 +- apt-private/private-main.cc | 12 +++-- apt-private/private-main.h | 3 +- apt-private/private-moo.cc | 12 +++-- apt-private/private-output.cc | 14 +++-- apt-private/private-output.h | 5 +- apt-private/private-search.cc | 44 ++++++---------- apt-private/private-search.h | 2 +- apt-private/private-show.cc | 40 +++++++------- apt-private/private-show.h | 2 +- apt-private/private-sources.cc | 21 ++++++-- apt-private/private-sources.h | 7 ++- apt-private/private-update.cc | 39 +++++--------- apt-private/private-upgrade.cc | 18 ++++--- apt-private/private-upgrade.h | 4 +- apt-private/private-utils.cc | 8 +-- apt-private/private-utils.h | 2 - buildlib/apti18n.h.in | 3 +- buildlib/config.h.in | 1 + cmdline/acqprogress.cc | 2 + cmdline/apt-cache.cc | 51 ++++++++++-------- cmdline/apt-cdrom.cc | 9 +--- cmdline/apt-config.cc | 2 +- cmdline/apt-dump-solver.cc | 6 ++- cmdline/apt-extracttemplates.cc | 9 ++-- cmdline/apt-extracttemplates.h | 3 +- cmdline/apt-get.cc | 83 +++++++++++++++--------------- cmdline/apt-helper.cc | 12 ++--- cmdline/apt-internal-solver.cc | 10 +++- cmdline/apt-mark.cc | 29 +++++++---- cmdline/apt-sortpkgs.cc | 6 +-- cmdline/apt.cc | 40 +++----------- ftparchive/apt-ftparchive.cc | 17 ++++-- ftparchive/cachedb.cc | 4 ++ ftparchive/cachedb.h | 8 +-- ftparchive/contents.cc | 3 +- ftparchive/contents.h | 8 +-- ftparchive/multicompress.cc | 6 ++- ftparchive/multicompress.h | 3 +- ftparchive/override.cc | 3 ++ ftparchive/writer.cc | 25 ++++++--- ftparchive/writer.h | 4 +- methods/cdrom.cc | 4 +- methods/connect.cc | 2 +- methods/copy.cc | 3 +- methods/file.cc | 3 +- methods/ftp.cc | 5 ++ methods/ftp.h | 2 + methods/gpgv.cc | 16 +++--- methods/gzip.cc | 14 ++--- methods/http.cc | 13 ++--- methods/http.h | 4 ++ methods/http_main.cc | 5 -- methods/https.cc | 9 ++-- methods/https.h | 7 ++- methods/mirror.cc | 10 ++-- methods/mirror.h | 2 + methods/rred.cc | 5 +- methods/rsh.cc | 4 ++ methods/rsh.h | 2 + methods/server.cc | 27 ++++------ methods/server.h | 3 ++ test/interactive-helper/aptwebserver.cc | 34 ++++++------ test/interactive-helper/extract-control.cc | 3 ++ test/interactive-helper/mthdcat.cc | 2 + test/interactive-helper/rpmver.cc | 2 + test/interactive-helper/test_udevcdrom.cc | 8 +-- test/interactive-helper/testdeb.cc | 7 +++ test/libapt/cdromfindpackages_test.cc | 4 ++ test/libapt/cdromreducesourcelist_test.cc | 4 +- test/libapt/commandline_test.cc | 3 ++ test/libapt/commandlineasstring_test.cc | 2 + test/libapt/compareversion_test.cc | 9 ++-- test/libapt/configuration_test.cc | 2 + test/libapt/fileutl_test.cc | 7 ++- test/libapt/getarchitectures_test.cc | 5 +- test/libapt/getlanguages_test.cc | 2 + test/libapt/getlistoffilesindir_test.cc | 7 +-- test/libapt/globalerror_test.cc | 6 ++- test/libapt/hashsums_test.cc | 15 +++--- test/libapt/indexcopytosourcelist_test.cc | 9 ++-- test/libapt/parsedepends_test.cc | 6 +++ test/libapt/sourcelist_test.cc | 9 +++- test/libapt/strutil_test.cc | 7 ++- test/libapt/tagfile_test.cc | 6 ++- test/libapt/uri_test.cc | 4 ++ 217 files changed, 1348 insertions(+), 788 deletions(-) (limited to 'test') diff --git a/apt-inst/contrib/arfile.cc b/apt-inst/contrib/arfile.cc index 77dbc55d6..905110781 100644 --- a/apt-inst/contrib/arfile.cc +++ b/apt-inst/contrib/arfile.cc @@ -21,7 +21,9 @@ #include #include -#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index 41c509809..0ba3f0521 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -23,9 +23,11 @@ #include #include #include -#include +#include -#include +#include +#include +#include #include #include #include diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index 8684f03f7..3803329fa 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -21,11 +21,17 @@ #include #include #include -#include #include - +#include +#include +#include +#include + +#include +#include +#include #include -#include + #include /*}}}*/ diff --git a/apt-inst/deb/debfile.h b/apt-inst/deb/debfile.h index ecef71d21..880bcf6c5 100644 --- a/apt-inst/deb/debfile.h +++ b/apt-inst/deb/debfile.h @@ -27,11 +27,15 @@ #include #include #include -#include + +#include #ifndef APT_8_CLEANER_HEADERS #include #endif +#ifndef APT_10_CLEANER_HEADERS +#include +#endif class FileFd; diff --git a/apt-inst/dirstream.cc b/apt-inst/dirstream.cc index 085a0dcbf..39ebb3bb4 100644 --- a/apt-inst/dirstream.cc +++ b/apt-inst/dirstream.cc @@ -18,7 +18,6 @@ #include #include -#include #include #include #include diff --git a/apt-inst/extract.cc b/apt-inst/extract.cc index 60edc702e..b2956d91d 100644 --- a/apt-inst/extract.cc +++ b/apt-inst/extract.cc @@ -50,13 +50,20 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include #include #include -#include #include #include #include + #include /*}}}*/ using namespace std; diff --git a/apt-inst/extract.h b/apt-inst/extract.h index 7143fa409..8ad9ac629 100644 --- a/apt-inst/extract.h +++ b/apt-inst/extract.h @@ -17,11 +17,12 @@ #ifndef PKGLIB_EXTRACT_H #define PKGLIB_EXTRACT_H - - #include #include #include +#include + +#include class pkgExtract : public pkgDirStream { diff --git a/apt-inst/filelist.cc b/apt-inst/filelist.cc index defc4f4df..b4a4f3d9d 100644 --- a/apt-inst/filelist.cc +++ b/apt-inst/filelist.cc @@ -39,8 +39,6 @@ #include #include -#include -#include #include #include #include diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 3b22743e7..44a1f32df 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -22,12 +22,21 @@ #include #include #include -#include #include #include #include -#include - +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include #include #include #include diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 0524743c6..f48d2a0d7 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -24,6 +24,10 @@ #include #include #include +#include + +#include +#include #ifndef APT_8_CLEANER_HEADERS #include diff --git a/apt-pkg/acquire-method.cc b/apt-pkg/acquire-method.cc index 5bc1c159a..746c553f1 100644 --- a/apt-pkg/acquire-method.cc +++ b/apt-pkg/acquire-method.cc @@ -23,10 +23,18 @@ #include #include #include - +#include +#include +#include + +#include +#include +#include +#include +#include +#include #include #include -#include /*}}}*/ using namespace std; diff --git a/apt-pkg/acquire-method.h b/apt-pkg/acquire-method.h index 00f99e0a0..f0f2a537a 100644 --- a/apt-pkg/acquire-method.h +++ b/apt-pkg/acquire-method.h @@ -21,6 +21,7 @@ #define PKGLIB_ACQUIRE_METHOD_H #include +#include #include #include diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc index de62080da..047a655ce 100644 --- a/apt-pkg/acquire-worker.cc +++ b/apt-pkg/acquire-worker.cc @@ -14,20 +14,23 @@ // Include Files /*{{{*/ #include +#include #include #include #include #include #include #include +#include +#include +#include #include #include -#include #include +#include #include -#include #include #include #include diff --git a/apt-pkg/acquire-worker.h b/apt-pkg/acquire-worker.h index a558f69a7..67aee4b59 100644 --- a/apt-pkg/acquire-worker.h +++ b/apt-pkg/acquire-worker.h @@ -22,6 +22,9 @@ #include #include +#include +#include +#include /** \brief A fetch subprocess. * diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index e8fa68338..a654d8219 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -23,12 +23,18 @@ #include #include +#include +#include #include #include #include +#include +#include +#include #include #include +#include #include #include diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index 2c0b37635..1aac0ba11 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -72,8 +72,13 @@ #include #include +#include #include +#include + +#ifndef APT_10_CLEANER_HEADERS #include +#endif #ifndef APT_8_CLEANER_HEADERS using std::vector; @@ -353,7 +358,7 @@ class pkgAcquire void SetLog(pkgAcquireStatus *Progress) { Log = Progress; } /** \brief Construct a new pkgAcquire. */ - pkgAcquire(pkgAcquireStatus *Log) __deprecated; + pkgAcquire(pkgAcquireStatus *Log) APT_DEPRECATED; pkgAcquire(); /** \brief Destroy this pkgAcquire object. diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 2e167119d..a7b676660 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -19,19 +19,18 @@ #include #include #include -#include #include -#include #include -#include -#include #include +#include +#include +#include +#include -#include +#include +#include #include -#include #include -#include #include /*}}}*/ diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 489d81159..82b6426c6 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -33,8 +33,11 @@ #include #include +#include +#include #include +#include #include @@ -140,7 +143,7 @@ class pkgProblemResolver /*{{{*/ // Try to resolve problems only by using keep bool ResolveByKeep(); - __deprecated void InstallProtect(); + APT_DEPRECATED void InstallProtect(); pkgProblemResolver(pkgDepCache *Cache); ~pkgProblemResolver(); diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 4c609c603..941a9c334 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -17,14 +17,19 @@ #include #include -#include #include #include #include - +#include +#include +#include +#include +#include #include #include #include + +#include /*}}}*/ namespace APT { // getCompressionTypes - Return Vector of usable compressiontypes /*{{{*/ diff --git a/apt-pkg/cachefile.cc b/apt-pkg/cachefile.cc index 2401b015e..0fd40106f 100644 --- a/apt-pkg/cachefile.cc +++ b/apt-pkg/cachefile.cc @@ -21,9 +21,16 @@ #include #include #include -#include #include #include +#include +#include +#include + +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/cachefile.h b/apt-pkg/cachefile.h index 802b12b61..36b20893a 100644 --- a/apt-pkg/cachefile.h +++ b/apt-pkg/cachefile.h @@ -17,8 +17,12 @@ #ifndef PKGLIB_CACHEFILE_H #define PKGLIB_CACHEFILE_H +#include + #include #include +#include +#include #ifndef APT_8_CLEANER_HEADERS #include @@ -26,6 +30,7 @@ #include #endif +class MMap; class pkgPolicy; class pkgSourceList; class OpProgress; @@ -60,13 +65,13 @@ class pkgCacheFile inline unsigned char &operator [](pkgCache::DepIterator const &I) {return (*DCache)[I];}; bool BuildCaches(OpProgress *Progress = NULL,bool WithLock = true); - __deprecated bool BuildCaches(OpProgress &Progress,bool const &WithLock = true) { return BuildCaches(&Progress, WithLock); }; + APT_DEPRECATED bool BuildCaches(OpProgress &Progress,bool const &WithLock = true) { return BuildCaches(&Progress, WithLock); }; bool BuildSourceList(OpProgress *Progress = NULL); bool BuildPolicy(OpProgress *Progress = NULL); bool BuildDepCache(OpProgress *Progress = NULL); bool Open(OpProgress *Progress = NULL, bool WithLock = true); inline bool ReadOnlyOpen(OpProgress *Progress = NULL) { return Open(Progress, false); }; - __deprecated bool Open(OpProgress &Progress,bool const &WithLock = true) { return Open(&Progress, WithLock); }; + APT_DEPRECATED bool Open(OpProgress &Progress,bool const &WithLock = true) { return Open(&Progress, WithLock); }; static void RemoveCaches(); void Close(); diff --git a/apt-pkg/cachefilter.cc b/apt-pkg/cachefilter.cc index 57b9af159..e388f2450 100644 --- a/apt-pkg/cachefilter.cc +++ b/apt-pkg/cachefilter.cc @@ -9,10 +9,12 @@ #include #include #include +#include #include +#include #include - +#include #include #include diff --git a/apt-pkg/cachefilter.h b/apt-pkg/cachefilter.h index 81ae1383c..49d2855f5 100644 --- a/apt-pkg/cachefilter.h +++ b/apt-pkg/cachefilter.h @@ -7,6 +7,7 @@ #define APT_CACHEFILTER_H // Include Files /*{{{*/ #include +#include #include diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 64fec5daa..d9c8ed1e4 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -29,7 +29,11 @@ /*}}}*/ #ifndef PKGLIB_CACHEITERATORS_H #define PKGLIB_CACHEITERATORS_H +#include + #include +#include +#include #include diff --git a/apt-pkg/cacheset.cc b/apt-pkg/cacheset.cc index 8a30d00a2..a58631d5b 100644 --- a/apt-pkg/cacheset.cc +++ b/apt-pkg/cacheset.cc @@ -16,14 +16,22 @@ #include #include #include -#include #include #include #include - -#include - +#include +#include +#include +#include +#include + +#include +#include +#include #include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/cacheset.h b/apt-pkg/cacheset.h index ef28bbc34..16a3daa42 100644 --- a/apt-pkg/cacheset.h +++ b/apt-pkg/cacheset.h @@ -9,7 +9,6 @@ #ifndef APT_CACHESET_H #define APT_CACHESET_H // Include Files /*{{{*/ -#include #include #include #include @@ -17,11 +16,17 @@ #include #include +#include + #include #include +#include #ifndef APT_8_CLEANER_HEADERS #include +#endif +#ifndef APT_10_CLEANER_HEADERS +#include #endif /*}}}*/ diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 6f946b030..262ff9eab 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -1,28 +1,30 @@ /* */ -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include #include -#include #include #include #include #include #include -#include "indexcopy.h" - #include using namespace std; diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index c58593550..f4a873808 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -4,6 +4,8 @@ #include #include +#include + #ifndef APT_8_CLEANER_HEADERS #include using namespace std; diff --git a/apt-pkg/clean.cc b/apt-pkg/clean.cc index 2dea8ffdd..0ee3b765d 100644 --- a/apt-pkg/clean.cc +++ b/apt-pkg/clean.cc @@ -16,7 +16,11 @@ #include #include #include +#include +#include +#include +#include #include #include #include diff --git a/apt-pkg/clean.h b/apt-pkg/clean.h index ad4049e83..930d54a7f 100644 --- a/apt-pkg/clean.h +++ b/apt-pkg/clean.h @@ -10,8 +10,13 @@ #ifndef APTPKG_CLEAN_H #define APTPKG_CLEAN_H - +#ifndef APT_10_CLEANER_HEADERS #include +#endif + +#include + +class pkgCache; class pkgArchiveCleaner { diff --git a/apt-pkg/contrib/cdromutl.cc b/apt-pkg/contrib/cdromutl.cc index 20210ec0a..096d3bcf5 100644 --- a/apt-pkg/contrib/cdromutl.cc +++ b/apt-pkg/contrib/cdromutl.cc @@ -19,7 +19,10 @@ #include #include -#include +#include +#include +#include +#include #include #include #include diff --git a/apt-pkg/contrib/cmndline.cc b/apt-pkg/contrib/cmndline.cc index ed5800007..3799c822d 100644 --- a/apt-pkg/contrib/cmndline.cc +++ b/apt-pkg/contrib/cmndline.cc @@ -18,6 +18,11 @@ #include #include +#include +#include +#include +#include + #include /*}}}*/ using namespace std; diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc index 003fd01d8..00f6ad0f9 100644 --- a/apt-pkg/contrib/configuration.cc +++ b/apt-pkg/contrib/configuration.cc @@ -21,11 +21,18 @@ #include #include #include -#include - +#include + +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include #include diff --git a/apt-pkg/contrib/error.cc b/apt-pkg/contrib/error.cc index 2d25f5ed9..892cd4874 100644 --- a/apt-pkg/contrib/error.cc +++ b/apt-pkg/contrib/error.cc @@ -17,12 +17,14 @@ #include +#include +#include +#include #include #include #include #include #include - #include #include diff --git a/apt-pkg/contrib/error.h b/apt-pkg/contrib/error.h index c06e45ee4..919b1e6d4 100644 --- a/apt-pkg/contrib/error.h +++ b/apt-pkg/contrib/error.h @@ -46,6 +46,7 @@ #include #include +#include #include class GlobalError /*{{{*/ @@ -73,7 +74,7 @@ public: /*{{{*/ * * \return \b false */ - bool FatalE(const char *Function,const char *Description,...) __like_printf(3) __cold; + bool FatalE(const char *Function,const char *Description,...) APT_PRINTF(3) APT_COLD; /** \brief add an Error message with errno to the list * @@ -82,7 +83,7 @@ public: /*{{{*/ * * \return \b false */ - bool Errno(const char *Function,const char *Description,...) __like_printf(3) __cold; + bool Errno(const char *Function,const char *Description,...) APT_PRINTF(3) APT_COLD; /** \brief add a warning message with errno to the list * @@ -94,7 +95,7 @@ public: /*{{{*/ * * \return \b false */ - bool WarningE(const char *Function,const char *Description,...) __like_printf(3) __cold; + bool WarningE(const char *Function,const char *Description,...) APT_PRINTF(3) APT_COLD; /** \brief add a notice message with errno to the list * @@ -103,7 +104,7 @@ public: /*{{{*/ * * \return \b false */ - bool NoticeE(const char *Function,const char *Description,...) __like_printf(3) __cold; + bool NoticeE(const char *Function,const char *Description,...) APT_PRINTF(3) APT_COLD; /** \brief add a debug message with errno to the list * @@ -112,7 +113,7 @@ public: /*{{{*/ * * \return \b false */ - bool DebugE(const char *Function,const char *Description,...) __like_printf(3) __cold; + bool DebugE(const char *Function,const char *Description,...) APT_PRINTF(3) APT_COLD; /** \brief adds an errno message with the given type * @@ -121,7 +122,7 @@ public: /*{{{*/ * \param Description of the error */ bool InsertErrno(MsgType const &type, const char* Function, - const char* Description,...) __like_printf(4) __cold; + const char* Description,...) APT_PRINTF(4) APT_COLD; /** \brief adds an errno message with the given type * @@ -155,7 +156,7 @@ public: /*{{{*/ * * \return \b false */ - bool Fatal(const char *Description,...) __like_printf(2) __cold; + bool Fatal(const char *Description,...) APT_PRINTF(2) APT_COLD; /** \brief add an Error message to the list * @@ -163,7 +164,7 @@ public: /*{{{*/ * * \return \b false */ - bool Error(const char *Description,...) __like_printf(2) __cold; + bool Error(const char *Description,...) APT_PRINTF(2) APT_COLD; /** \brief add a warning message to the list * @@ -174,7 +175,7 @@ public: /*{{{*/ * * \return \b false */ - bool Warning(const char *Description,...) __like_printf(2) __cold; + bool Warning(const char *Description,...) APT_PRINTF(2) APT_COLD; /** \brief add a notice message to the list * @@ -187,7 +188,7 @@ public: /*{{{*/ * * \return \b false */ - bool Notice(const char *Description,...) __like_printf(2) __cold; + bool Notice(const char *Description,...) APT_PRINTF(2) APT_COLD; /** \brief add a debug message to the list * @@ -195,14 +196,14 @@ public: /*{{{*/ * * \return \b false */ - bool Debug(const char *Description,...) __like_printf(2) __cold; + bool Debug(const char *Description,...) APT_PRINTF(2) APT_COLD; /** \brief adds an error message with the given type * * \param type of the error message * \param Description of the error */ - bool Insert(MsgType const &type, const char* Description,...) __like_printf(3) __cold; + bool Insert(MsgType const &type, const char* Description,...) APT_PRINTF(3) APT_COLD; /** \brief adds an error message with the given type * @@ -218,7 +219,7 @@ public: /*{{{*/ * should call this method again in that case */ bool Insert(MsgType type, const char* Description, - va_list &args, size_t &msgSize) __cold; + va_list &args, size_t &msgSize) APT_COLD; /** \brief is an error in the list? * diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 464950abd..55ba41128 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -26,16 +26,22 @@ #include #include #include - +#include + +#include +#include +#include +#include +#include +#include +#include #include #include #include - #include #include #include #include -#include #include #include #include diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index e752e9621..6fdea1294 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -27,6 +27,7 @@ #include #include #include +#include #include @@ -94,7 +95,7 @@ class FileFd And as the auto-conversation converts a 'unsigned long *' to a 'bool' instead of 'unsigned long long *' we need to provide this explicitely - otherwise applications magically start to fail… */ - __deprecated bool Read(void *To,unsigned long long Size,unsigned long *Actual) + bool Read(void *To,unsigned long long Size,unsigned long *Actual) APT_DEPRECATED { unsigned long long R; bool const T = Read(To, Size, &R); @@ -118,7 +119,7 @@ class FileFd // Simple manipulators inline int Fd() {return iFd;}; inline void Fd(int fd) { OpenDescriptor(fd, ReadWrite);}; - __deprecated gzFile gzFd(); + gzFile gzFd() APT_DEPRECATED; inline bool IsOpen() {return iFd >= 0;}; inline bool Failed() {return (Flags & Fail) == Fail;}; @@ -152,8 +153,8 @@ class FileFd bool OpenInternDescriptor(unsigned int const Mode, APT::Configuration::Compressor const &compressor); // private helpers to set Fail flag and call _error->Error - bool FileFdErrno(const char* Function, const char* Description,...) __like_printf(3) __cold; - bool FileFdError(const char* Description,...) __like_printf(2) __cold; + bool FileFdErrno(const char* Function, const char* Description,...) APT_PRINTF(3) APT_COLD; + bool FileFdError(const char* Description,...) APT_PRINTF(2) APT_COLD; }; bool RunScripts(const char *Cnf); @@ -161,7 +162,7 @@ bool CopyFile(FileFd &From,FileFd &To); int GetLock(std::string File,bool Errors = true); bool FileExists(std::string File); bool RealFileExists(std::string File); -bool DirectoryExists(std::string const &Path) __attrib_const; +bool DirectoryExists(std::string const &Path) APT_CONST; bool CreateDirectory(std::string const &Parent, std::string const &Path); time_t GetModificationTime(std::string const &Path); diff --git a/apt-pkg/contrib/gpgv.cc b/apt-pkg/contrib/gpgv.cc index 9de227062..f24dd9640 100644 --- a/apt-pkg/contrib/gpgv.cc +++ b/apt-pkg/contrib/gpgv.cc @@ -2,21 +2,23 @@ // Include Files /*{{{*/ #include +#include +#include +#include +#include +#include + #include #include #include #include #include -#include -#include #include #include - -#include -#include -#include -#include -#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/contrib/gpgv.h b/apt-pkg/contrib/gpgv.h index d9712d6a8..ab3c68de5 100644 --- a/apt-pkg/contrib/gpgv.h +++ b/apt-pkg/contrib/gpgv.h @@ -9,17 +9,17 @@ #ifndef CONTRIB_GPGV_H #define CONTRIB_GPGV_H +#include + #include #include +#ifndef APT_10_CLEANER_HEADERS #include - -#if __GNUC__ >= 4 - #define APT_noreturn __attribute__ ((noreturn)) -#else - #define APT_noreturn /* no support */ #endif +class FileFd; + /** \brief generates and run the command to verify a file with gpgv * * If File and FileSig specify the same file it is assumed that we @@ -40,15 +40,13 @@ * @param FileSig is the signature (detached or clear-signed) */ void ExecGPGV(std::string const &File, std::string const &FileSig, - int const &statusfd, int fd[2]) APT_noreturn; + int const &statusfd, int fd[2]) APT_NORETURN; inline void ExecGPGV(std::string const &File, std::string const &FileSig, int const &statusfd = -1) { int fd[2]; ExecGPGV(File, FileSig, statusfd, fd); } -#undef APT_noreturn - /** \brief Split an inline signature into message and signature * * Takes a clear-signed message and puts the first signed message diff --git a/apt-pkg/contrib/hashes.cc b/apt-pkg/contrib/hashes.cc index 890573d9c..5efafa511 100644 --- a/apt-pkg/contrib/hashes.cc +++ b/apt-pkg/contrib/hashes.cc @@ -16,8 +16,12 @@ #include #include #include -#include +#include +#include +#include +#include +#include #include #include #include diff --git a/apt-pkg/contrib/hashes.h b/apt-pkg/contrib/hashes.h index 636cad257..979ee1eb8 100644 --- a/apt-pkg/contrib/hashes.h +++ b/apt-pkg/contrib/hashes.h @@ -17,17 +17,22 @@ #include #include #include -#include -#include -#include #include - +#include #ifndef APT_8_CLEANER_HEADERS using std::min; using std::vector; #endif +#ifndef APT_10_CLEANER_HEADERS +#include +#include +#include +#endif + + +class FileFd; // helper class that contains hash function name // and hash diff --git a/apt-pkg/contrib/hashsum.cc b/apt-pkg/contrib/hashsum.cc index d02177724..25ccc187d 100644 --- a/apt-pkg/contrib/hashsum.cc +++ b/apt-pkg/contrib/hashsum.cc @@ -1,6 +1,9 @@ // Cryptographic API Base #include +#include + +#include #include #include "hashsum_template.h" diff --git a/apt-pkg/contrib/hashsum_template.h b/apt-pkg/contrib/hashsum_template.h index f96188eb8..869dc5cb7 100644 --- a/apt-pkg/contrib/hashsum_template.h +++ b/apt-pkg/contrib/hashsum_template.h @@ -10,20 +10,24 @@ #ifndef APTPKG_HASHSUM_TEMPLATE_H #define APTPKG_HASHSUM_TEMPLATE_H -#include #include #include -#include -#include #include +#ifndef APT_10_CLEANER_HEADERS +#include +#include +#include +#endif #ifndef APT_8_CLEANER_HEADERS using std::string; using std::min; #endif +class FileFd; + template class HashSumValue { diff --git a/apt-pkg/contrib/macros.h b/apt-pkg/contrib/macros.h index 294242e68..d97053553 100644 --- a/apt-pkg/contrib/macros.h +++ b/apt-pkg/contrib/macros.h @@ -71,13 +71,13 @@ #endif #if APT_GCC_VERSION >= 0x0300 - #define APT_UNUSED __attribute__((unused)) + #define APT_DEPRECATED __attribute__ ((deprecated)) #define APT_CONST __attribute__((const)) #define APT_PURE __attribute__((pure)) #define APT_NORETURN __attribute__((noreturn)) #define APT_PRINTF(n) __attribute__((format(printf, n, n + 1))) #else - #define APT_UNUSED + #define APT_DEPRECATED #define APT_CONST #define APT_PURE #define APT_NORETURN @@ -103,8 +103,8 @@ #define APT_COLD __attribute__ ((__cold__)) #define APT_HOT __attribute__ ((__hot__)) #else - #define __cold - #define __hot + #define APT_COLD + #define APT_HOT #endif #ifndef APT_10_CLEANER_HEADERS diff --git a/apt-pkg/contrib/md5.cc b/apt-pkg/contrib/md5.cc index 4351aeb22..b487a96f9 100644 --- a/apt-pkg/contrib/md5.cc +++ b/apt-pkg/contrib/md5.cc @@ -38,13 +38,9 @@ #include #include -#include -#include +#include #include -#include -#include // For htonl -#include /*}}}*/ // byteSwap - Swap bytes in a buffer /*{{{*/ diff --git a/apt-pkg/contrib/md5.h b/apt-pkg/contrib/md5.h index 195455645..f4992c223 100644 --- a/apt-pkg/contrib/md5.h +++ b/apt-pkg/contrib/md5.h @@ -23,14 +23,15 @@ #ifndef APTPKG_MD5_H #define APTPKG_MD5_H - -#include -#include -#include #include #include "hashsum_template.h" +#ifndef APT_10_CLEANER_HEADERS +#include +#include +#include +#endif #ifndef APT_8_CLEANER_HEADERS using std::string; using std::min; diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc index 37acba340..b2a53a6cb 100644 --- a/apt-pkg/contrib/mmap.cc +++ b/apt-pkg/contrib/mmap.cc @@ -22,11 +22,11 @@ #include #include #include +#include +#include #include -#include #include -#include #include #include #include diff --git a/apt-pkg/contrib/netrc.cc b/apt-pkg/contrib/netrc.cc index 32b146581..feaed67c8 100644 --- a/apt-pkg/contrib/netrc.cc +++ b/apt-pkg/contrib/netrc.cc @@ -15,14 +15,13 @@ #include #include -#include -#include #include #include #include #include #include +#include #include #include "netrc.h" diff --git a/apt-pkg/contrib/netrc.h b/apt-pkg/contrib/netrc.h index 6feb5b726..dbeb45386 100644 --- a/apt-pkg/contrib/netrc.h +++ b/apt-pkg/contrib/netrc.h @@ -16,6 +16,8 @@ #include +#include + #ifndef APT_8_CLEANER_HEADERS #include #endif @@ -25,9 +27,9 @@ class URI; -// kill this export on the next ABI break - strongly doubt its in use anyway +// FIXME: kill this export on the next ABI break - strongly doubt its in use anyway // outside of the apt itself, its really a internal interface -__deprecated int parsenetrc (char *host, char *login, char *password, char *filename); +APT_DEPRECATED int parsenetrc (char *host, char *login, char *password, char *filename); void maybe_add_auth (URI &Uri, std::string NetRCFile); #endif diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc index 9d74ed495..4ff4f181d 100644 --- a/apt-pkg/contrib/progress.cc +++ b/apt-pkg/contrib/progress.cc @@ -14,6 +14,8 @@ #include #include +#include +#include #include #include #include diff --git a/apt-pkg/contrib/sha1.cc b/apt-pkg/contrib/sha1.cc index b5a6a2440..bf6bc6cb6 100644 --- a/apt-pkg/contrib/sha1.cc +++ b/apt-pkg/contrib/sha1.cc @@ -32,12 +32,9 @@ #include #include -#include -#include +#include #include -#include -#include /*}}}*/ // SHA1Transform - Alters an existing SHA-1 hash /*{{{*/ diff --git a/apt-pkg/contrib/sha1.h b/apt-pkg/contrib/sha1.h index a8d55eb13..5770c315a 100644 --- a/apt-pkg/contrib/sha1.h +++ b/apt-pkg/contrib/sha1.h @@ -14,12 +14,13 @@ #ifndef APTPKG_SHA1_H #define APTPKG_SHA1_H +#include "hashsum_template.h" + +#ifndef APT_10_CLEANER_HEADERS #include #include #include - -#include "hashsum_template.h" - +#endif #ifndef APT_8_CLEANER_HEADERS using std::string; using std::min; diff --git a/apt-pkg/contrib/sha2.h b/apt-pkg/contrib/sha2.h index 8e0c99a1b..a25ad4d32 100644 --- a/apt-pkg/contrib/sha2.h +++ b/apt-pkg/contrib/sha2.h @@ -14,14 +14,18 @@ #ifndef APTPKG_SHA2_H #define APTPKG_SHA2_H -#include #include -#include -#include #include "sha2_internal.h" #include "hashsum_template.h" +#ifndef APT_10_CLEANER_HEADERS +#include +#include +#include +#endif + + typedef HashSumValue<512> SHA512SumValue; typedef HashSumValue<256> SHA256SumValue; diff --git a/apt-pkg/contrib/sha2_internal.cc b/apt-pkg/contrib/sha2_internal.cc index bb2560252..131ff5beb 100644 --- a/apt-pkg/contrib/sha2_internal.cc +++ b/apt-pkg/contrib/sha2_internal.cc @@ -33,6 +33,7 @@ */ #include +#include #include /* memcpy()/memset() or bcopy()/bzero() */ #include /* assert() */ #include "sha2_internal.h" diff --git a/apt-pkg/contrib/sha2_internal.h b/apt-pkg/contrib/sha2_internal.h index d9d429c92..1b82d965d 100644 --- a/apt-pkg/contrib/sha2_internal.h +++ b/apt-pkg/contrib/sha2_internal.h @@ -44,6 +44,7 @@ #ifdef SHA2_USE_INTTYPES_H +#include #include #endif /* SHA2_USE_INTTYPES_H */ diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index 61fcc6a7d..2100ee47b 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -21,6 +21,11 @@ #include #include +#include +#include +#include +#include +#include #include #include #include @@ -33,9 +38,9 @@ #include #include - -using namespace std; /*}}}*/ +using namespace std; + // Strip - Remove white space from the front and back of a string /*{{{*/ // --------------------------------------------------------------------- namespace APT { diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h index 3a6d38b75..79479957d 100644 --- a/apt-pkg/contrib/strutl.h +++ b/apt-pkg/contrib/strutl.h @@ -18,15 +18,18 @@ #include -#include #include #include #include #include #include +#include #include "macros.h" +#ifndef APT_10_CLEANER_HEADERS +#include +#endif #ifndef APT_8_CLEANER_HEADERS using std::string; using std::vector; @@ -60,9 +63,9 @@ std::string Base64Encode(const std::string &Str); std::string OutputInDepth(const unsigned long Depth, const char* Separator=" "); std::string URItoFileName(const std::string &URI); std::string TimeRFC1123(time_t Date); -bool RFC1123StrToTime(const char* const str,time_t &time) __must_check; -bool FTPMDTMStrToTime(const char* const str,time_t &time) __must_check; -__deprecated bool StrToTime(const std::string &Val,time_t &Result); +bool RFC1123StrToTime(const char* const str,time_t &time) APT_MUSTCHECK; +bool FTPMDTMStrToTime(const char* const str,time_t &time) APT_MUSTCHECK; +APT_DEPRECATED bool StrToTime(const std::string &Val,time_t &Result); std::string LookupTag(const std::string &Message,const char *Tag,const char *Default = 0); int StringToBool(const std::string &Text,int Default = -1); bool ReadMessages(int Fd, std::vector &List); @@ -76,7 +79,7 @@ bool TokSplitString(char Tok,char *Input,char **List, unsigned long ListMax); // split a given string by a char -std::vector VectorizeString(std::string const &haystack, char const &split) __attrib_const; +std::vector VectorizeString(std::string const &haystack, char const &split) APT_CONST; /* \brief Return a vector of strings from string "input" where "sep" * is used as the delimiter string. @@ -94,13 +97,13 @@ std::vector VectorizeString(std::string const &haystack, char const */ std::vector StringSplit(std::string const &input, std::string const &sep, - unsigned int maxsplit=std::numeric_limits::max()) __attrib_const; + unsigned int maxsplit=std::numeric_limits::max()) APT_CONST; -void ioprintf(std::ostream &out,const char *format,...) __like_printf(2); -void strprintf(std::string &out,const char *format,...) __like_printf(2); -char *safe_snprintf(char *Buffer,char *End,const char *Format,...) __like_printf(3); +void ioprintf(std::ostream &out,const char *format,...) APT_PRINTF(2); +void strprintf(std::string &out,const char *format,...) APT_PRINTF(2); +char *safe_snprintf(char *Buffer,char *End,const char *Format,...) APT_PRINTF(3); bool CheckDomainList(const std::string &Host, const std::string &List); -int tolower_ascii(int const c) __attrib_const __hot; +int tolower_ascii(int const c) APT_CONST APT_HOT; std::string StripEpoch(const std::string &VerStr); #define APT_MKSTRCMP(name,func) \ diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index 909dfcf47..1b35d0d52 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -23,7 +22,18 @@ #include #include #include - +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index e079d40c2..3bcb3b64f 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -16,9 +16,17 @@ #ifndef PKGLIB_DEBINDEXFILE_H #define PKGLIB_DEBINDEXFILE_H +#include +#include +#include +#include +#include + +class OpProgress; +class pkgAcquire; +class pkgCacheGenerator; -#include class debStatusIndex : public pkgIndexFile { diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 3374865ac..7777d654e 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -21,8 +21,17 @@ #include #include #include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h index 0531b20f3..c0973260f 100644 --- a/apt-pkg/deb/deblistparser.h +++ b/apt-pkg/deb/deblistparser.h @@ -13,11 +13,18 @@ #include #include +#include +#include + +#include +#include #ifndef APT_8_CLEANER_HEADERS #include #endif +class FileFd; + class debListParser : public pkgCacheGenerator::ListParser { public: diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index 504877558..6fd12add8 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -9,8 +9,15 @@ #include #include #include -#include - +#include +#include +#include + +#include +#include +#include +#include +#include #include #include diff --git a/apt-pkg/deb/debmetaindex.h b/apt-pkg/deb/debmetaindex.h index cef8d68f7..2286fa8b2 100644 --- a/apt-pkg/deb/debmetaindex.h +++ b/apt-pkg/deb/debmetaindex.h @@ -3,7 +3,7 @@ #define PKGLIB_DEBMETAINDEX_H #include -#include +#include #include #include @@ -12,6 +12,12 @@ #ifndef APT_8_CLEANER_HEADERS #include #endif +#ifndef APT_10_CLEANER_HEADERS +#include +#endif + +class pkgAcquire; +class pkgIndexFile; class debReleaseIndex : public metaIndex { public: diff --git a/apt-pkg/deb/debrecords.cc b/apt-pkg/deb/debrecords.cc index 184c07c33..6063db5a8 100644 --- a/apt-pkg/deb/debrecords.cc +++ b/apt-pkg/deb/debrecords.cc @@ -12,10 +12,16 @@ #include #include -#include #include #include +#include +#include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/deb/debrecords.h b/apt-pkg/deb/debrecords.h index b5e3bbdba..bdac6c90b 100644 --- a/apt-pkg/deb/debrecords.h +++ b/apt-pkg/deb/debrecords.h @@ -17,6 +17,9 @@ #include #include #include +#include + +#include #ifndef APT_8_CLEANER_HEADERS #include diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc index daa54d036..b09588dd3 100644 --- a/apt-pkg/deb/debsrcrecords.cc +++ b/apt-pkg/deb/debsrcrecords.cc @@ -15,12 +15,19 @@ #include #include #include -#include #include +#include +#include -using std::max; +#include +#include +#include +#include +#include +#include /*}}}*/ +using std::max; using std::string; // SrcRecordParser::Binaries - Return the binaries field /*{{{*/ diff --git a/apt-pkg/deb/debsrcrecords.h b/apt-pkg/deb/debsrcrecords.h index a8fb465bb..b65d1480b 100644 --- a/apt-pkg/deb/debsrcrecords.h +++ b/apt-pkg/deb/debsrcrecords.h @@ -11,11 +11,16 @@ #ifndef PKGLIB_DEBSRCRECORDS_H #define PKGLIB_DEBSRCRECORDS_H - #include #include #include +#include +#include +#include + +class pkgIndexFile; + class debSrcRecordParser : public pkgSrcRecords::Parser { /** \brief dpointer placeholder (for later in case we need it) */ diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index b95ff15df..db557e537 100644 --- a/apt-pkg/deb/debsystem.cc +++ b/apt-pkg/deb/debsystem.cc @@ -19,7 +19,14 @@ #include #include #include -#include +#include +#include + +#include +#include +#include +#include +#include #include #include #include diff --git a/apt-pkg/deb/debsystem.h b/apt-pkg/deb/debsystem.h index 855123516..a945f68fb 100644 --- a/apt-pkg/deb/debsystem.h +++ b/apt-pkg/deb/debsystem.h @@ -12,11 +12,19 @@ #include #include +#include +#include +class Configuration; +class pkgIndexFile; +class pkgPackageManager; class debSystemPrivate; -class debStatusIndex; class pkgDepCache; +#ifndef APT_10_CLEANER_HEADERS +class debStatusIndex; +#endif + class debSystem : public pkgSystem { // private d-pointer diff --git a/apt-pkg/deb/debversion.cc b/apt-pkg/deb/debversion.cc index 74e2552ff..a5eacb7f5 100644 --- a/apt-pkg/deb/debversion.cc +++ b/apt-pkg/deb/debversion.cc @@ -15,6 +15,8 @@ #include #include +#include +#include #include #include /*}}}*/ diff --git a/apt-pkg/deb/debversion.h b/apt-pkg/deb/debversion.h index f1d6f3cc5..981ea9ad2 100644 --- a/apt-pkg/deb/debversion.h +++ b/apt-pkg/deb/debversion.h @@ -12,12 +12,12 @@ #ifndef PKGLIB_DEBVERSION_H #define PKGLIB_DEBVERSION_H +#include +#include -#include - class debVersioningSystem : public pkgVersioningSystem -{ +{ public: static int CmpFragment(const char *A, const char *AEnd, const char *B, diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index adf59516e..9fee7c923 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -10,41 +10,45 @@ // Includes /*{{{*/ #include -#include -#include +#include #include #include -#include -#include +#include +#include #include -#include -#include #include +#include +#include +#include +#include +#include +#include -#include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - #include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index c144f78e1..859c74b46 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -11,11 +11,20 @@ #define PKGLIB_DPKGPM_H #include +#include +#include + #include #include #include -#include +#include + +#ifndef APT_10_CLEANER_HEADERS #include +#endif + +class pkgDepCache; +namespace APT { namespace Progress { class PackageManager; } } #ifndef APT_8_CLEANER_HEADERS using std::vector; @@ -82,7 +91,7 @@ class pkgDPkgPM : public pkgPackageManager // Helpers bool RunScriptsWithPkgs(const char *Cnf); - __deprecated bool SendV2Pkgs(FILE *F); + APT_DEPRECATED bool SendV2Pkgs(FILE *F); bool SendPkgsInfo(FILE * const F, unsigned int const &Version); void WriteHistoryTag(std::string const &tag, std::string value); std::string ExpandShortPackageName(pkgDepCache &Cache, diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index b45f5d9b5..149dbc0e7 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -11,20 +11,26 @@ #include #include -#include #include #include #include -#include #include #include #include #include -#include #include #include #include - +#include +#include +#include + +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index 50f810806..3ffc3b47d 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -40,18 +40,26 @@ #include #include +#include + +#include -#include #include -#include #include +#include +#include #ifndef APT_8_CLEANER_HEADERS #include #include #endif +#ifndef APT_10_CLEANER_HEADERS +#include +#include +#endif class OpProgress; +class pkgVersioningSystem; class pkgDepCache : protected pkgCache::Namespace { diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc index dbd2dba46..ee42267bc 100644 --- a/apt-pkg/edsp.cc +++ b/apt-pkg/edsp.cc @@ -11,16 +11,25 @@ #include #include #include -#include -#include #include #include #include +#include +#include +#include +#include -#include +#include +#include +#include +#include +#include #include - +#include +#include +#include #include +#include #include /*}}}*/ diff --git a/apt-pkg/edsp.h b/apt-pkg/edsp.h index 828ee3753..ae20ed7db 100644 --- a/apt-pkg/edsp.h +++ b/apt-pkg/edsp.h @@ -9,8 +9,11 @@ #ifndef PKGLIB_EDSP_H #define PKGLIB_EDSP_H -#include #include +#include +#include + +#include #include #include diff --git a/apt-pkg/edsp/edspindexfile.cc b/apt-pkg/edsp/edspindexfile.cc index 80b9f79ea..10313fd61 100644 --- a/apt-pkg/edsp/edspindexfile.cc +++ b/apt-pkg/edsp/edspindexfile.cc @@ -10,15 +10,20 @@ #include #include -#include -#include -#include #include -#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include -#include +#include +#include +#include /*}}}*/ // edspIndex::edspIndex - Constructor /*{{{*/ diff --git a/apt-pkg/edsp/edspindexfile.h b/apt-pkg/edsp/edspindexfile.h index de10f2d2f..bd3b41cf2 100644 --- a/apt-pkg/edsp/edspindexfile.h +++ b/apt-pkg/edsp/edspindexfile.h @@ -9,11 +9,15 @@ #define PKGLIB_EDSPINDEXFILE_H #include +#include #ifndef APT_8_CLEANER_HEADERS #include #endif +class OpProgress; +class pkgCacheGenerator; + class edspIndex : public debStatusIndex { /** \brief dpointer placeholder (for later in case we need it) */ diff --git a/apt-pkg/edsp/edsplistparser.cc b/apt-pkg/edsp/edsplistparser.cc index 37959f37b..139deb9f1 100644 --- a/apt-pkg/edsp/edsplistparser.cc +++ b/apt-pkg/edsp/edsplistparser.cc @@ -12,11 +12,13 @@ #include #include -#include -#include -#include #include -#include +#include +#include +#include +#include + +#include /*}}}*/ // ListParser::edspListParser - Constructor /*{{{*/ diff --git a/apt-pkg/edsp/edsplistparser.h b/apt-pkg/edsp/edsplistparser.h index a7bf9de95..959fb587f 100644 --- a/apt-pkg/edsp/edsplistparser.h +++ b/apt-pkg/edsp/edsplistparser.h @@ -12,6 +12,10 @@ #define PKGLIB_EDSPLISTPARSER_H #include +#include +#include + +#include #ifndef APT_8_CLEANER_HEADERS #include diff --git a/apt-pkg/edsp/edspsystem.cc b/apt-pkg/edsp/edspsystem.cc index b509fa001..92edb8d77 100644 --- a/apt-pkg/edsp/edspsystem.cc +++ b/apt-pkg/edsp/edspsystem.cc @@ -11,16 +11,17 @@ // Include Files /*{{{*/ #include -#include +#include #include #include -#include -#include +#include #include -#include -#include -#include -#include +#include +#include + +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/edsp/edspsystem.h b/apt-pkg/edsp/edspsystem.h index ca703fa84..eafff39ba 100644 --- a/apt-pkg/edsp/edspsystem.h +++ b/apt-pkg/edsp/edspsystem.h @@ -11,8 +11,17 @@ #define PKGLIB_EDSPSYSTEM_H #include +#include +#include +#include + +class Configuration; +class pkgDepCache; +class pkgIndexFile; +class pkgPackageManager; class edspIndex; + class edspSystem : public pkgSystem { /** \brief dpointer placeholder (for later in case we need it) */ diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc index 59afa86ec..3a1385fa5 100644 --- a/apt-pkg/indexcopy.cc +++ b/apt-pkg/indexcopy.cc @@ -20,17 +20,17 @@ #include #include #include -#include #include +#include +#include #include #include #include #include -#include -#include #include #include +#include #include "indexcopy.h" #include diff --git a/apt-pkg/indexcopy.h b/apt-pkg/indexcopy.h index e6a07a887..43cdb3f0a 100644 --- a/apt-pkg/indexcopy.h +++ b/apt-pkg/indexcopy.h @@ -14,16 +14,18 @@ #include #include -#include #include +#ifndef APT_10_CLEANER_HEADERS +#include +class FileFd; +#endif #ifndef APT_8_CLEANER_HEADERS using std::string; using std::vector; #endif class pkgTagSection; -class FileFd; class indexRecords; class pkgCdromStatus; @@ -99,9 +101,9 @@ class SigVerify /*{{{*/ bool CopyAndVerify(std::string CDROM,std::string Name,std::vector &SigList, std::vector PkgList,std::vector SrcList); - __deprecated static bool RunGPGV(std::string const &File, std::string const &FileOut, + APT_DEPRECATED static bool RunGPGV(std::string const &File, std::string const &FileOut, int const &statusfd, int fd[2]); - __deprecated static bool RunGPGV(std::string const &File, std::string const &FileOut, + APT_DEPRECATED static bool RunGPGV(std::string const &File, std::string const &FileOut, int const &statusfd = -1); }; /*}}}*/ diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index 875c80336..89615cb41 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -13,7 +13,13 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include #include /*}}}*/ @@ -82,7 +88,7 @@ bool pkgIndexFile::TranslationsAvailable() { is already done in getLanguages(). Note also that this check is rather bad (doesn't take three character like ast into account). TODO: Remove method with next API break */ -__attribute__ ((deprecated)) bool pkgIndexFile::CheckLanguageCode(const char *Lang) +APT_DEPRECATED bool pkgIndexFile::CheckLanguageCode(const char *Lang) { if (strlen(Lang) == 2 || (strlen(Lang) == 5 && Lang[2] == '_')) return true; @@ -98,7 +104,7 @@ __attribute__ ((deprecated)) bool pkgIndexFile::CheckLanguageCode(const char *La /* As we have now possibly more than one LanguageCode this method is supersided by a) private classmembers or b) getLanguages(). TODO: Remove method with next API break */ -__attribute__ ((deprecated)) std::string pkgIndexFile::LanguageCode() { +APT_DEPRECATED std::string pkgIndexFile::LanguageCode() { if (TranslationsAvailable() == false) return ""; return APT::Configuration::getLanguages()[0]; diff --git a/apt-pkg/indexfile.h b/apt-pkg/indexfile.h index 9a5c74200..98cdda603 100644 --- a/apt-pkg/indexfile.h +++ b/apt-pkg/indexfile.h @@ -22,18 +22,21 @@ #ifndef PKGLIB_INDEXFILE_H #define PKGLIB_INDEXFILE_H - -#include -#include #include #include +#include +#include #include +#include + #ifndef APT_8_CLEANER_HEADERS using std::string; #endif - +#ifndef APT_10_CLEANER_HEADERS class pkgAcquire; +#endif + class pkgCacheGenerator; class OpProgress; @@ -79,10 +82,10 @@ class pkgIndexFile virtual bool HasPackages() const = 0; virtual unsigned long Size() const = 0; virtual bool Merge(pkgCacheGenerator &/*Gen*/, OpProgress* /*Prog*/) const { return false; }; - __deprecated virtual bool Merge(pkgCacheGenerator &Gen, OpProgress &Prog) const + APT_DEPRECATED virtual bool Merge(pkgCacheGenerator &Gen, OpProgress &Prog) const { return Merge(Gen, &Prog); }; virtual bool MergeFileProvides(pkgCacheGenerator &/*Gen*/,OpProgress* /*Prog*/) const {return true;}; - __deprecated virtual bool MergeFileProvides(pkgCacheGenerator &Gen, OpProgress &Prog) const + APT_DEPRECATED virtual bool MergeFileProvides(pkgCacheGenerator &Gen, OpProgress &Prog) const {return MergeFileProvides(Gen, &Prog);}; virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; diff --git a/apt-pkg/indexrecords.cc b/apt-pkg/indexrecords.cc index c1c397e31..1123d1690 100644 --- a/apt-pkg/indexrecords.cc +++ b/apt-pkg/indexrecords.cc @@ -14,8 +14,13 @@ #include #include -#include +#include +#include #include +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/indexrecords.h b/apt-pkg/indexrecords.h index d003ec0fa..e31f889ad 100644 --- a/apt-pkg/indexrecords.h +++ b/apt-pkg/indexrecords.h @@ -5,17 +5,19 @@ #ifndef PKGLIB_INDEXRECORDS_H #define PKGLIB_INDEXRECORDS_H - -#include #include #include #include #include +#include #ifndef APT_8_CLEANER_HEADERS #include #endif +#ifndef APT_10_CLEANER_HEADERS +#include +#endif class indexRecords { diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index 6ab5ec42d..3a35f852e 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -15,9 +15,11 @@ #include #include #include +#include +#include +#include #include -#include #include /*}}}*/ diff --git a/apt-pkg/init.h b/apt-pkg/init.h index 4ee7a95ac..d062392e3 100644 --- a/apt-pkg/init.h +++ b/apt-pkg/init.h @@ -16,7 +16,9 @@ #include #include #endif +#ifndef APT_10_CLEANER_HEADERS #include +#endif class pkgSystem; class Configuration; diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index 657330b60..6f43e0bc0 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -1,17 +1,23 @@ +#include + #include #include #include #include -#include - -#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include + namespace APT { namespace Progress { @@ -329,15 +335,15 @@ bool PackageManagerFancy::StatusChanged(std::string PackageName, int row = GetNumberTerminalRows(); - static string save_cursor = "\033[s"; - static string restore_cursor = "\033[u"; - - static string set_bg_color = "\033[42m"; // green - static string set_fg_color = "\033[30m"; // black - - static string restore_bg = "\033[49m"; - static string restore_fg = "\033[39m"; - + static std::string save_cursor = "\033[s"; + static std::string restore_cursor = "\033[u"; + + static std::string set_bg_color = "\033[42m"; // green + static std::string set_fg_color = "\033[30m"; // black + + static std::string restore_bg = "\033[49m"; + static std::string restore_fg = "\033[39m"; + std::cout << save_cursor // move cursor position to last row << "\033[" << row << ";0f" diff --git a/apt-pkg/metaindex.h b/apt-pkg/metaindex.h index 18a90a29d..ffabaadbf 100644 --- a/apt-pkg/metaindex.h +++ b/apt-pkg/metaindex.h @@ -1,12 +1,19 @@ #ifndef PKGLIB_METAINDEX_H #define PKGLIB_METAINDEX_H - -#include -#include #include #include +#include + +#include +#include + +#ifndef APT_10_CLEANER_HEADERS +#include +class pkgCacheGenerator; +class OpProgress; +#endif #ifndef APT_8_CLEANER_HEADERS #include #include @@ -15,8 +22,6 @@ using std::string; #endif class pkgAcquire; -class pkgCacheGenerator; -class OpProgress; class metaIndex { diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc index 21b5fc4e7..a1fcbcc98 100644 --- a/apt-pkg/orderlist.cc +++ b/apt-pkg/orderlist.cc @@ -68,10 +68,14 @@ #include #include #include -#include #include #include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/orderlist.h b/apt-pkg/orderlist.h index a2d7b321b..1fdfbf559 100644 --- a/apt-pkg/orderlist.h +++ b/apt-pkg/orderlist.h @@ -16,10 +16,12 @@ #ifndef PKGLIB_ORDERLIST_H #define PKGLIB_ORDERLIST_H - #include +#include #include +#include + class pkgDepCache; class pkgOrderList : protected pkgCache::Namespace { @@ -46,7 +48,7 @@ class pkgOrderList : protected pkgCache::Namespace bool Debug; // Main visit function - __deprecated bool VisitNode(PkgIterator Pkg) { return VisitNode(Pkg, "UNKNOWN"); }; + APT_DEPRECATED bool VisitNode(PkgIterator Pkg) { return VisitNode(Pkg, "UNKNOWN"); }; bool VisitNode(PkgIterator Pkg, char const* from); bool VisitDeps(DepFunc F,PkgIterator Pkg); bool VisitRDeps(DepFunc F,PkgIterator Pkg); diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index 0be76b311..4d08fb3ba 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -13,7 +13,7 @@ ##################################################################### */ /*}}}*/ // Include Files /*{{{*/ -#include +#include #include #include @@ -24,7 +24,14 @@ #include #include #include - +#include +#include +#include +#include + +#include +#include +#include #include #include diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h index d684463eb..a86b176a4 100644 --- a/apt-pkg/packagemanager.h +++ b/apt-pkg/packagemanager.h @@ -23,15 +23,17 @@ #ifndef PKGLIB_PACKAGEMANAGER_H #define PKGLIB_PACKAGEMANAGER_H -#include #include -#include #include +#include #include -#include #include +#ifndef APT_10_CLEANER_HEADERS +#include +#include +#endif #ifndef APT_8_CLEANER_HEADERS #include using std::string; @@ -109,7 +111,7 @@ class pkgPackageManager : protected pkgCache::Namespace #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13) OrderResult DoInstall(APT::Progress::PackageManager *progress); // compat - __deprecated OrderResult DoInstall(int statusFd=-1); + APT_DEPRECATED OrderResult DoInstall(int statusFd=-1); #else OrderResult DoInstall(int statusFd=-1); #endif @@ -124,7 +126,7 @@ class pkgPackageManager : protected pkgCache::Namespace // stuff that needs to be done after the fork OrderResult DoInstallPostFork(APT::Progress::PackageManager *progress); // compat - __deprecated OrderResult DoInstallPostFork(int statusFd=-1); + APT_DEPRECATED OrderResult DoInstallPostFork(int statusFd=-1); #else OrderResult DoInstallPostFork(int statusFd=-1); #endif diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 9c14e626e..a19b9571c 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -29,12 +29,15 @@ #include #include #include +#include #include +#include +#include +#include +#include #include #include -#include -#include #include /*}}}*/ diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 185b9ca45..525f1dfb4 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -18,20 +18,26 @@ #include #include #include -#include #include #include #include #include -#include #include #include - +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include #include #include #include -#include -#include #include /*}}}*/ @@ -1333,7 +1339,7 @@ DynamicMMap* pkgCacheGenerator::CreateDynamicMMap(FileFd *CacheF, unsigned long the cache will be stored there. This is pretty much mandetory if you are using AllowMem. AllowMem lets the function be run as non-root where it builds the cache 'fast' into a memory buffer. */ -__deprecated bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, +APT_DEPRECATED bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, MMap **OutMap, bool AllowMem) { return pkgCacheGenerator::MakeStatusCache(List, &Progress, OutMap, AllowMem); } bool pkgCacheGenerator::MakeStatusCache(pkgSourceList &List,OpProgress *Progress, @@ -1534,7 +1540,7 @@ bool pkgCacheGenerator::MakeStatusCache(pkgSourceList &List,OpProgress *Progress // CacheGenerator::MakeOnlyStatusCache - Build only a status files cache/*{{{*/ // --------------------------------------------------------------------- /* */ -__deprecated bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap) +APT_DEPRECATED bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap) { return pkgCacheGenerator::MakeOnlyStatusCache(&Progress, OutMap); } bool pkgCacheGenerator::MakeOnlyStatusCache(OpProgress *Progress,DynamicMMap **OutMap) { diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h index e8901025e..9ccf71c7b 100644 --- a/apt-pkg/pkgcachegen.h +++ b/apt-pkg/pkgcachegen.h @@ -19,16 +19,18 @@ #ifndef PKGLIB_PKGCACHEGEN_H #define PKGLIB_PKGCACHEGEN_H - -#include #include +#include +#include +#include #include #include +#include +class FileFd; class pkgSourceList; class OpProgress; -class MMap; class pkgIndexFile; class pkgCacheGenerator /*{{{*/ @@ -80,7 +82,7 @@ class pkgCacheGenerator /*{{{*/ bool NewDepends(pkgCache::PkgIterator &Pkg, pkgCache::VerIterator &Ver, map_ptrloc const Version, unsigned int const &Op, unsigned int const &Type, map_ptrloc* &OldDepLast); - __deprecated unsigned long NewVersion(pkgCache::VerIterator &Ver,const std::string &VerStr,unsigned long Next) + unsigned long NewVersion(pkgCache::VerIterator &Ver,const std::string &VerStr,unsigned long Next) APT_DEPRECATED { return NewVersion(Ver, VerStr, 0, 0, Next); } unsigned long NewVersion(pkgCache::VerIterator &Ver,const std::string &VerStr, map_ptrloc const ParentPkg, unsigned long const Hash, @@ -102,7 +104,7 @@ class pkgCacheGenerator /*{{{*/ bool HasFileDeps() {return FoundFileDeps;}; bool MergeFileProvides(ListParser &List); - __deprecated bool FinishCache(OpProgress *Progress); + bool FinishCache(OpProgress *Progress) APT_DEPRECATED; static bool MakeStatusCache(pkgSourceList &List,OpProgress *Progress, MMap **OutMap = 0,bool AllowMem = false); diff --git a/apt-pkg/pkgrecords.cc b/apt-pkg/pkgrecords.cc index 36dab3480..c403e4dc3 100644 --- a/apt-pkg/pkgrecords.cc +++ b/apt-pkg/pkgrecords.cc @@ -14,7 +14,11 @@ #include #include #include -#include +#include +#include + +#include +#include #include /*}}}*/ diff --git a/apt-pkg/pkgrecords.h b/apt-pkg/pkgrecords.h index ca0984bbf..b5237b3a0 100644 --- a/apt-pkg/pkgrecords.h +++ b/apt-pkg/pkgrecords.h @@ -17,8 +17,9 @@ #ifndef PKGLIB_PKGRECORDS_H #define PKGLIB_PKGRECORDS_H - #include + +#include #include class pkgRecords /*{{{*/ diff --git a/apt-pkg/pkgsystem.cc b/apt-pkg/pkgsystem.cc index 05ba6e0e6..ee6c3f4ec 100644 --- a/apt-pkg/pkgsystem.cc +++ b/apt-pkg/pkgsystem.cc @@ -13,7 +13,6 @@ #include #include -#include #include #include /*}}}*/ diff --git a/apt-pkg/pkgsystem.h b/apt-pkg/pkgsystem.h index eb75df412..6e33c67ed 100644 --- a/apt-pkg/pkgsystem.h +++ b/apt-pkg/pkgsystem.h @@ -38,6 +38,7 @@ #define PKGLIB_PKGSYSTEM_H #include +#include #include @@ -50,7 +51,6 @@ class pkgPackageManager; class pkgVersioningSystem; class Configuration; class pkgIndexFile; -class PkgFileIterator; class pkgSystem { diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index 2176f1f42..ae30b6f50 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -33,7 +33,15 @@ #include #include #include - +#include +#include +#include + +#include +#include +#include +#include +#include #include #include diff --git a/apt-pkg/policy.h b/apt-pkg/policy.h index 5172a3c3b..f15d8c0a0 100644 --- a/apt-pkg/policy.h +++ b/apt-pkg/policy.h @@ -33,10 +33,13 @@ #ifndef PKGLIB_POLICY_H #define PKGLIB_POLICY_H - #include +#include +#include #include + #include +#include #ifndef APT_8_CLEANER_HEADERS using std::vector; diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc index 1f5179885..e37899ec6 100644 --- a/apt-pkg/sourcelist.cc +++ b/apt-pkg/sourcelist.cc @@ -18,7 +18,16 @@ #include #include #include - +#include +#include + +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/apt-pkg/sourcelist.h b/apt-pkg/sourcelist.h index 0ccb4aa00..af7569375 100644 --- a/apt-pkg/sourcelist.h +++ b/apt-pkg/sourcelist.h @@ -27,18 +27,26 @@ #ifndef PKGLIB_SOURCELIST_H #define PKGLIB_SOURCELIST_H +#include +#include + +#include + #include #include #include -#include -#include +#ifndef APT_8_CLEANER_HEADERS +#include +#endif #ifndef APT_8_CLEANER_HEADERS #include using std::string; using std::vector; #endif +class FileFd; +class pkgTagSection; class pkgAcquire; class pkgIndexFile; class metaIndex; diff --git a/apt-pkg/srcrecords.cc b/apt-pkg/srcrecords.cc index 60b62850a..775cf2e5f 100644 --- a/apt-pkg/srcrecords.cc +++ b/apt-pkg/srcrecords.cc @@ -16,8 +16,13 @@ #include #include #include -#include #include +#include +#include + +#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index e1459c80e..906321456 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/update.cc b/apt-pkg/update.cc index 97be5490b..5d5b19626 100644 --- a/apt-pkg/update.cc +++ b/apt-pkg/update.cc @@ -1,24 +1,17 @@ - // Include Files /*{{{*/ #include -#include -#include -#include -#include -#include -#include #include -#include -#include +#include +#include #include -#include +#include +#include +#include +#include -#include -#include -#include -#include -#include +#include +#include #include /*}}}*/ diff --git a/apt-pkg/upgrade.cc b/apt-pkg/upgrade.cc index d6f6933dd..7926845c2 100644 --- a/apt-pkg/upgrade.cc +++ b/apt-pkg/upgrade.cc @@ -1,24 +1,17 @@ - // Include Files /*{{{*/ #include #include -#include -#include #include -#include -#include -#include #include -#include -#include +#include #include +#include +#include +#include +#include -#include -#include -#include -#include -#include +#include #include /*}}}*/ diff --git a/apt-pkg/upgrade.h b/apt-pkg/upgrade.h index 436d38300..aa883df10 100644 --- a/apt-pkg/upgrade.h +++ b/apt-pkg/upgrade.h @@ -10,6 +10,8 @@ #ifndef PKGLIB_UPGRADE_H #define PKGLIB_UPGRADE_H +class pkgDepCache; + namespace APT { namespace Upgrade { // FIXME: make this "enum class UpgradeMode {" once we enable c++11 diff --git a/apt-pkg/vendor.cc b/apt-pkg/vendor.cc index f19534171..986636e97 100644 --- a/apt-pkg/vendor.cc +++ b/apt-pkg/vendor.cc @@ -1,10 +1,14 @@ #include -#include -#include #include #include +#include +#include +#include +#include +#include + Vendor::Vendor(std::string VendorID, std::string Origin, std::vector *FingerprintList) diff --git a/apt-pkg/vendor.h b/apt-pkg/vendor.h index 6484adf9b..2d2e2b0ae 100644 --- a/apt-pkg/vendor.h +++ b/apt-pkg/vendor.h @@ -11,7 +11,7 @@ using std::string; #endif // A class representing a particular software provider. -class __deprecated Vendor +class APT_DEPRECATED Vendor { public: struct Fingerprint diff --git a/apt-pkg/vendorlist.cc b/apt-pkg/vendorlist.cc index 602425624..fb33ff17d 100644 --- a/apt-pkg/vendorlist.cc +++ b/apt-pkg/vendorlist.cc @@ -3,9 +3,16 @@ #include #include #include + +#include +#include +#include +#include + #include #if __GNUC__ >= 4 + #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -157,5 +164,5 @@ const Vendor* pkgVendorList::FindVendor(const std::vector GPGVOutput) /* /*}}}*/ #if __GNUC__ >= 4 - #pragma GCC diagnostic warning "-Wdeprecated-declarations" + #pragma GCC diagnostic pop #endif diff --git a/apt-pkg/vendorlist.h b/apt-pkg/vendorlist.h index a86ccde7c..bc3702a93 100644 --- a/apt-pkg/vendorlist.h +++ b/apt-pkg/vendorlist.h @@ -27,7 +27,7 @@ using std::vector; class Vendor; class Configuration; -class __deprecated pkgVendorList +class APT_DEPRECATED pkgVendorList { protected: std::vector VendorList; diff --git a/apt-pkg/version.cc b/apt-pkg/version.cc index cb2c34c0f..29bee46da 100644 --- a/apt-pkg/version.cc +++ b/apt-pkg/version.cc @@ -11,8 +11,8 @@ #include #include -#include +#include #include /*}}}*/ diff --git a/apt-pkg/versionmatch.cc b/apt-pkg/versionmatch.cc index 26262a010..284098bdf 100644 --- a/apt-pkg/versionmatch.cc +++ b/apt-pkg/versionmatch.cc @@ -16,11 +16,16 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include #include #include -#include #include /*}}}*/ diff --git a/apt-pkg/versionmatch.h b/apt-pkg/versionmatch.h index 433396fc9..a889878ad 100644 --- a/apt-pkg/versionmatch.h +++ b/apt-pkg/versionmatch.h @@ -35,9 +35,10 @@ #ifndef PKGLIB_VERSIONMATCH_H #define PKGLIB_VERSIONMATCH_H +#include +#include #include -#include #ifndef APT_8_CLEANER_HEADERS using std::string; diff --git a/apt-private/acqprogress.cc b/apt-private/acqprogress.cc index d08ed072f..fe7a45e12 100644 --- a/apt-private/acqprogress.cc +++ b/apt-private/acqprogress.cc @@ -10,18 +10,21 @@ // Include files /*{{{*/ #include +#include #include #include #include #include #include +#include + +#include #include #include #include #include -#include "acqprogress.h" #include /*}}}*/ diff --git a/apt-private/private-cachefile.cc b/apt-private/private-cachefile.cc index c822b9bad..5e955ac39 100644 --- a/apt-private/private-cachefile.cc +++ b/apt-private/private-cachefile.cc @@ -4,11 +4,17 @@ #include #include #include +#include +#include +#include +#include -#include +#include +#include -#include "private-output.h" -#include "private-cachefile.h" +#include +#include +#include #include /*}}}*/ diff --git a/apt-private/private-cachefile.h b/apt-private/private-cachefile.h index f24d93020..94d93df2c 100644 --- a/apt-private/private-cachefile.h +++ b/apt-private/private-cachefile.h @@ -3,6 +3,8 @@ #include #include +#include +#include // class CacheFile - Cover class for some dependency cache functions /*{{{*/ diff --git a/apt-private/private-cacheset.cc b/apt-private/private-cacheset.cc index a7dc0e800..4a63c7e81 100644 --- a/apt-private/private-cacheset.cc +++ b/apt-private/private-cacheset.cc @@ -1,9 +1,18 @@ +#include + #include #include #include -#include +#include +#include +#include +#include + +#include + +#include -#include "private-cacheset.h" +#include bool GetLocalitySortedVersionSet(pkgCacheFile &CacheFile, LocalitySortedVersionSet &output_set, diff --git a/apt-private/private-cacheset.h b/apt-private/private-cacheset.h index 26c7f1ac2..854d16922 100644 --- a/apt-private/private-cacheset.h +++ b/apt-private/private-cacheset.h @@ -1,17 +1,32 @@ #ifndef APT_PRIVATE_CACHESET_H #define APT_PRIVATE_CACHESET_H +#include #include #include #include +#include +#include +#include +#include +#include +#include #include #include +#include +#include +#include +#include +#include +#include #include "private-output.h" #include +class OpProgress; + struct VersionSortDescriptionLocality { bool operator () (const pkgCache::VerIterator &v_lhs, diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index 132da04d5..2b2a35637 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -2,15 +2,13 @@ #include #include -#include -#include +#include +#include #include #include -#include "private-cmndline.h" - #include /*}}}*/ diff --git a/apt-private/private-download.cc b/apt-private/private-download.cc index 80795f964..a095f0c67 100644 --- a/apt-private/private-download.cc +++ b/apt-private/private-download.cc @@ -7,10 +7,8 @@ #include #include -#include "private-output.h" -#include "private-download.h" - -#include +#include +#include #include #include diff --git a/apt-private/private-download.h b/apt-private/private-download.h index b8cc8da1e..1447845ed 100644 --- a/apt-private/private-download.h +++ b/apt-private/private-download.h @@ -1,7 +1,7 @@ #ifndef APT_PRIVATE_DOWNLOAD_H #define APT_PRIVATE_DOWNLOAD_H -#include +class pkgAcquire; bool CheckAuth(pkgAcquire& Fetcher, bool const PromptUser); bool AcquireRun(pkgAcquire &Fetcher, int const PulseInterval, bool * const Failure, bool * const TransientNetworkFailure); diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index ff609f567..8092af939 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -1,57 +1,45 @@ // Include Files /*{{{*/ #include -#include -#include -#include -#include -#include -#include -#include +#include #include -#include -#include -#include -#include -#include +#include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include #include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include -#include "private-install.h" -#include "private-download.h" -#include "private-cachefile.h" -#include "private-output.h" -#include "private-cacheset.h" -#include "acqprogress.h" +#include +#include +#include +#include +#include +#include #include /*}}}*/ +class pkgSourceList; // InstallPackages - Actually download and install the packages /*{{{*/ // --------------------------------------------------------------------- diff --git a/apt-private/private-install.h b/apt-private/private-install.h index 2187146d3..79769d470 100644 --- a/apt-private/private-install.h +++ b/apt-private/private-install.h @@ -1,15 +1,29 @@ #ifndef APT_PRIVATE_INSTALL_H #define APT_PRIVATE_INSTALL_H +#include +#include +#include +#include +#include #include -#include #include +#include + +#include +#include +#include +#include +#include +#include -#include "private-cachefile.h" #include "private-output.h" #include +class CacheFile; +class CommandLine; + #define RAMFS_MAGIC 0x858458f6 bool DoInstall(CommandLine &Cmd); diff --git a/apt-private/private-list.cc b/apt-private/private-list.cc index bc4539aeb..7664ca134 100644 --- a/apt-private/private-list.cc +++ b/apt-private/private-list.cc @@ -1,43 +1,28 @@ // Include Files /*{{{*/ #include -#include #include #include #include -#include -#include -#include #include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include #include -#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "private-cmndline.h" -#include "private-list.h" -#include "private-output.h" -#include "private-cacheset.h" +#include #include /*}}}*/ diff --git a/apt-private/private-list.h b/apt-private/private-list.h index 6f5aad27a..749744dd1 100644 --- a/apt-private/private-list.h +++ b/apt-private/private-list.h @@ -1,7 +1,7 @@ #ifndef APT_PRIVATE_LIST_H #define APT_PRIVATE_LIST_H -#include +class CommandLine; bool List(CommandLine &Cmd); diff --git a/apt-private/private-main.cc b/apt-private/private-main.cc index 1fdf3f0be..2d3965172 100644 --- a/apt-private/private-main.cc +++ b/apt-private/private-main.cc @@ -1,9 +1,13 @@ +#include -#include -#include - +#include #include -#include "private-main.h" + +#include + +#include +#include +#include #include diff --git a/apt-private/private-main.h b/apt-private/private-main.h index f9a95c4ec..257c51a0b 100644 --- a/apt-private/private-main.h +++ b/apt-private/private-main.h @@ -1,9 +1,8 @@ #ifndef APT_PRIVATE_MAIN_H #define APT_PRIVATE_MAIN_H -#include +class CommandLine; void CheckSimulateMode(CommandLine &CmdL); - #endif diff --git a/apt-private/private-moo.cc b/apt-private/private-moo.cc index 9c4f6bf15..a87999150 100644 --- a/apt-private/private-moo.cc +++ b/apt-private/private-moo.cc @@ -13,11 +13,15 @@ #include #include -#include -#include +#include +#include -#include "private-moo.h" -#include "private-output.h" +#include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc index 52f65d794..bbd8545ad 100644 --- a/apt-private/private-output.cc +++ b/apt-private/private-output.cc @@ -7,16 +7,22 @@ #include #include #include +#include +#include +#include +#include +#include + +#include +#include +#include +#include #include #include -#include #include #include -#include "private-output.h" -#include "private-cachefile.h" - #include /*}}}*/ diff --git a/apt-private/private-output.h b/apt-private/private-output.h index 2a2a69458..81643f90a 100644 --- a/apt-private/private-output.h +++ b/apt-private/private-output.h @@ -1,17 +1,14 @@ #ifndef APT_PRIVATE_OUTPUT_H #define APT_PRIVATE_OUTPUT_H +#include -#include #include #include -#include "private-cachefile.h" - // forward declaration class pkgCacheFile; class CacheFile; -class pkgCache; class pkgDepCache; class pkgRecords; diff --git a/apt-private/private-search.cc b/apt-private/private-search.cc index 0b1a929b0..8106333b6 100644 --- a/apt-private/private-search.cc +++ b/apt-private/private-search.cc @@ -1,40 +1,30 @@ // Includes /*{{{*/ -#include +#include + #include -#include #include -#include -#include -#include #include -#include -#include #include -#include -#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include -#include -#include -#include -#include +#include +#include +#include + +#include #include -#include -#include -#include -#include -#include -#include +#include #include +#include +#include -#include "private-search.h" -#include "private-cacheset.h" +#include /*}}}*/ bool FullTextSearch(CommandLine &CmdL) /*{{{*/ diff --git a/apt-private/private-search.h b/apt-private/private-search.h index 17faffebc..539915f1f 100644 --- a/apt-private/private-search.h +++ b/apt-private/private-search.h @@ -1,7 +1,7 @@ #ifndef APT_PRIVATE_SEARCH_H #define APT_PRIVATE_SEARCH_H -#include +class CommandLine; bool FullTextSearch(CommandLine &CmdL); diff --git a/apt-private/private-show.cc b/apt-private/private-show.cc index 94f944af1..8ae6a6dac 100644 --- a/apt-private/private-show.cc +++ b/apt-private/private-show.cc @@ -1,30 +1,32 @@ // Includes /*{{{*/ -#include +#include + #include -#include #include -#include -#include -#include #include -#include +#include #include +#include #include -#include -#include -#include -#include -#include -#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include -#include +#include +#include +#include + +#include +#include +#include -#include "private-output.h" -#include "private-cacheset.h" -#include "private-show.h" +#include /*}}}*/ namespace APT { @@ -33,7 +35,7 @@ namespace APT { // DisplayRecord - Displays the complete record for the package /*{{{*/ // --------------------------------------------------------------------- static bool DisplayRecord(pkgCacheFile &CacheFile, pkgCache::VerIterator V, - ostream &out) + std::ostream &out) { pkgCache *Cache = CacheFile.GetPkgCache(); if (unlikely(Cache == NULL)) diff --git a/apt-private/private-show.h b/apt-private/private-show.h index b428c7af0..a15367e28 100644 --- a/apt-private/private-show.h +++ b/apt-private/private-show.h @@ -1,7 +1,7 @@ #ifndef APT_PRIVATE_SHOW_H #define APT_PRIVATE_SHOW_H -#include +class CommandLine; namespace APT { namespace Cmd { diff --git a/apt-private/private-sources.cc b/apt-private/private-sources.cc index 41cf6b313..301936b9d 100644 --- a/apt-private/private-sources.cc +++ b/apt-private/private-sources.cc @@ -1,10 +1,23 @@ +#include #include -#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include -#include "private-output.h" -#include "private-sources.h" -#include "private-utils.h" +#include +#include +#include +#include + +#include /* Interface discussion with donkult (for the future): apt [add-{archive,release,component}|edit|change-release|disable]-sources diff --git a/apt-private/private-sources.h b/apt-private/private-sources.h index b394622be..4c58af180 100644 --- a/apt-private/private-sources.h +++ b/apt-private/private-sources.h @@ -1,3 +1,8 @@ -#include +#ifndef APT_PRIVATE_SOURCES_H +#define APT_PRIVATE_SOURCES_H + +class CommandLine; bool EditSources(CommandLine &CmdL); + +#endif diff --git a/apt-private/private-update.cc b/apt-private/private-update.cc index 1f6fb6f79..da83d7741 100644 --- a/apt-private/private-update.cc +++ b/apt-private/private-update.cc @@ -1,38 +1,23 @@ // Include files /*{{{*/ #include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include #include +#include +#include -#include -#include -#include +#include +#include +#include +#include -#include "private-cachefile.h" -#include "private-output.h" -#include "private-update.h" -#include "acqprogress.h" +#include +#include #include /*}}}*/ diff --git a/apt-private/private-upgrade.cc b/apt-private/private-upgrade.cc index a97e6d25b..68b2c5e00 100644 --- a/apt-private/private-upgrade.cc +++ b/apt-private/private-upgrade.cc @@ -1,12 +1,18 @@ - // Includes /*{{{*/ -#include +#include + #include +#include +#include + +#include +#include +#include +#include + #include -#include "private-install.h" -#include "private-cachefile.h" -#include "private-upgrade.h" -#include "private-output.h" + +#include /*}}}*/ // this is actually performing the various upgrade operations diff --git a/apt-private/private-upgrade.h b/apt-private/private-upgrade.h index 5efc66bf7..64c4c0874 100644 --- a/apt-private/private-upgrade.h +++ b/apt-private/private-upgrade.h @@ -1,13 +1,11 @@ #ifndef APTPRIVATE_PRIVATE_UPGRADE_H #define APTPRIVATE_PRIVATE_UPGRADE_H -#include - +class CommandLine; bool DoDistUpgrade(CommandLine &CmdL); bool DoUpgrade(CommandLine &CmdL); bool DoUpgradeNoNewPackages(CommandLine &CmdL); bool DoUpgradeWithAllowNewPackages(CommandLine &CmdL); - #endif diff --git a/apt-private/private-utils.cc b/apt-private/private-utils.cc index 813f19329..9547a1b75 100644 --- a/apt-private/private-utils.cc +++ b/apt-private/private-utils.cc @@ -1,9 +1,12 @@ -#include +#include #include #include -#include "private-utils.h" +#include + +#include +#include // DisplayFileInPager - Display File with pager /*{{{*/ void DisplayFileInPager(std::string filename) @@ -26,7 +29,6 @@ void DisplayFileInPager(std::string filename) ExecWait(Process, "sensible-pager", false); } /*}}}*/ - // EditFileInSensibleEditor - Edit File with editor /*{{{*/ void EditFileInSensibleEditor(std::string filename) { diff --git a/apt-private/private-utils.h b/apt-private/private-utils.h index 258dd06a8..4bb535e86 100644 --- a/apt-private/private-utils.h +++ b/apt-private/private-utils.h @@ -6,6 +6,4 @@ void DisplayFileInPager(std::string filename); void EditFileInSensibleEditor(std::string filename); - - #endif diff --git a/buildlib/apti18n.h.in b/buildlib/apti18n.h.in index a9d48dd97..2202c5b19 100644 --- a/buildlib/apti18n.h.in +++ b/buildlib/apti18n.h.in @@ -8,7 +8,8 @@ #ifdef USE_NLS // apt will use the gettext implementation of the C library -# include +#include +#include # ifdef APT_DOMAIN # define _(x) dgettext(APT_DOMAIN,x) # define P_(msg,plural,n) dngettext(APT_DOMAIN,msg,plural,n) diff --git a/buildlib/config.h.in b/buildlib/config.h.in index bd43a40b9..6779e07bc 100644 --- a/buildlib/config.h.in +++ b/buildlib/config.h.in @@ -42,3 +42,4 @@ #define APT_8_CLEANER_HEADERS #define APT_9_CLEANER_HEADERS +#define APT_10_CLEANER_HEADERS diff --git a/cmdline/acqprogress.cc b/cmdline/acqprogress.cc index 3ac350aca..c362c1edf 100644 --- a/cmdline/acqprogress.cc +++ b/cmdline/acqprogress.cc @@ -10,12 +10,14 @@ // Include files /*{{{*/ #include +#include #include #include #include #include #include +#include #include #include #include diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index d50e0c724..0860ee7bf 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -15,40 +15,49 @@ // Include Files /*{{{*/ #include -#include +#include #include #include -#include -#include -#include #include -#include +#include #include +#include +#include +#include #include -#include -#include +#include #include -#include -#include +#include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include #include +#include -#include -#include -#include -#include -#include #include +#include #include -#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc index 8e1d27e52..facb6002b 100644 --- a/cmdline/apt-cdrom.cc +++ b/cmdline/apt-cdrom.cc @@ -20,22 +20,15 @@ #include #include #include -#include -#include #include #include #include -#include #include -#include #include -#include +#include #include -#include -#include #include -#include #include diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc index 26f0ea161..d95780c73 100644 --- a/cmdline/apt-config.cc +++ b/cmdline/apt-config.cc @@ -26,10 +26,10 @@ #include #include -#include #include #include #include +#include #include diff --git a/cmdline/apt-dump-solver.cc b/cmdline/apt-dump-solver.cc index c26cdc70a..04e13bde9 100644 --- a/cmdline/apt-dump-solver.cc +++ b/cmdline/apt-dump-solver.cc @@ -9,10 +9,12 @@ // Include Files /*{{{*/ #include -#include - +#include +#include #include #include + +#include /*}}}*/ // ShowHelp - Show a help screen /*{{{*/ diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc index a27008233..a82623444 100644 --- a/cmdline/apt-extracttemplates.cc +++ b/cmdline/apt-extracttemplates.cc @@ -18,8 +18,8 @@ #include #include #include +#include #include -#include #include #include #include @@ -30,14 +30,13 @@ #include #include #include +#include +#include +#include #include #include -#include #include -#include - -#include #include "apt-extracttemplates.h" diff --git a/cmdline/apt-extracttemplates.h b/cmdline/apt-extracttemplates.h index 6d07a09c2..9cc3f5f25 100644 --- a/cmdline/apt-extracttemplates.h +++ b/cmdline/apt-extracttemplates.h @@ -11,11 +11,12 @@ #define _APTEXTRACTTEMPLATE_H_ #include -#include #include #include +class pkgCache; + class DebFile : public pkgDirStream { FileFd File; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 9a4eb0881..a830c2387 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -27,66 +27,67 @@ // Include Files /*{{{*/ #include +#include +#include #include -#include +#include +#include +#include #include -#include +#include #include -#include -#include -#include -#include +#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include #include -#include -#include -#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include +#include +#include +#include +#include #include #include -#include +#include +#include #include -#include #include -#include -#include +#include #include -#include - -#include - -#include -#include -#include - -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include #include #include -#include -#include -#include -#include -#include #include - -#include -#include +#include +#include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc index 8ff2fa037..d66b3ffae 100644 --- a/cmdline/apt-helper.cc +++ b/cmdline/apt-helper.cc @@ -7,6 +7,7 @@ // Include Files /*{{{*/ #include +#include #include #include #include @@ -20,14 +21,9 @@ #include #include -#include -#include -#include -#include -#include -#include - - +#include +#include +#include #include /*}}}*/ diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc index 0c2ff0f43..b85c07c33 100644 --- a/cmdline/apt-internal-solver.cc +++ b/cmdline/apt-internal-solver.cc @@ -20,7 +20,15 @@ #include #include #include - +#include +#include +#include +#include + +#include +#include +#include +#include #include #include diff --git a/cmdline/apt-mark.cc b/cmdline/apt-mark.cc index 53b5ec158..ed348358a 100644 --- a/cmdline/apt-mark.cc +++ b/cmdline/apt-mark.cc @@ -11,20 +11,31 @@ #include #include #include +#include #include -#include #include -#include +#include +#include +#include +#include +#include +#include + +#include -#include #include -#include -#include -#include -#include #include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include /*}}}*/ diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc index 8d9cb23de..c2b11890a 100644 --- a/cmdline/apt-sortpkgs.cc +++ b/cmdline/apt-sortpkgs.cc @@ -25,9 +25,9 @@ #include #include - -#include -#include +#include +#include +#include #include /*}}}*/ diff --git a/cmdline/apt.cc b/cmdline/apt.cc index 1b7626948..5dbf868d7 100644 --- a/cmdline/apt.cc +++ b/cmdline/apt.cc @@ -11,39 +11,12 @@ // Include Files /*{{{*/ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - +#include #include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include - -#include +#include +#include #include #include @@ -55,11 +28,14 @@ #include #include #include -#include #include - /*}}}*/ +#include +#include +#include +#include + /*}}}*/ static bool ShowHelp(CommandLine &) { diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index f13e4648a..692f19e25 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -17,14 +17,23 @@ #include #include #include -#include +#include +#include #include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cachedb.h" +#include "override.h" #include "apt-ftparchive.h" -#include "contents.h" #include "multicompress.h" #include "writer.h" diff --git a/ftparchive/cachedb.cc b/ftparchive/cachedb.cc index c2318bf53..523c6b5fa 100644 --- a/ftparchive/cachedb.cc +++ b/ftparchive/cachedb.cc @@ -19,8 +19,12 @@ #include #include #include +#include #include // htonl, etc +#include +#include +#include #include "cachedb.h" diff --git a/ftparchive/cachedb.h b/ftparchive/cachedb.h index b9ced9418..49b9a0ef5 100644 --- a/ftparchive/cachedb.h +++ b/ftparchive/cachedb.h @@ -12,17 +12,19 @@ #ifndef CACHEDB_H #define CACHEDB_H - #include #include -#include -#include #include #include +#include +#include +#include #include "contents.h" +class FileFd; + class CacheDB { protected: diff --git a/ftparchive/contents.cc b/ftparchive/contents.cc index be4d2a61e..7a1fb779e 100644 --- a/ftparchive/contents.cc +++ b/ftparchive/contents.cc @@ -36,13 +36,12 @@ #include #include -#include +#include #include #include #include #include -#include #include "contents.h" diff --git a/ftparchive/contents.h b/ftparchive/contents.h index 4af9db574..dbbb83350 100644 --- a/ftparchive/contents.h +++ b/ftparchive/contents.h @@ -9,11 +9,13 @@ /*}}}*/ #ifndef CONTENTS_H #define CONTENTS_H - -#include -#include + #include +#include +#include +#include + class debDebFile; class GenContents diff --git a/ftparchive/multicompress.cc b/ftparchive/multicompress.cc index 1555d2f2d..f35d5304a 100644 --- a/ftparchive/multicompress.cc +++ b/ftparchive/multicompress.cc @@ -20,13 +20,15 @@ #include #include #include +#include +#include -#include +#include +#include #include #include #include #include -#include #include "multicompress.h" #include diff --git a/ftparchive/multicompress.h b/ftparchive/multicompress.h index 388fad22e..ddd1815a3 100644 --- a/ftparchive/multicompress.h +++ b/ftparchive/multicompress.h @@ -22,7 +22,8 @@ #include #include #include - +#include + class MultiCompress { // An output file diff --git a/ftparchive/override.cc b/ftparchive/override.cc index 38d76a6a3..b4cd49b6c 100644 --- a/ftparchive/override.cc +++ b/ftparchive/override.cc @@ -16,6 +16,9 @@ #include #include +#include +#include +#include #include "override.h" diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index edc0fddea..153c4fb42 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -13,28 +13,37 @@ // Include Files /*{{{*/ #include -#include -#include #include -#include -#include -#include #include +#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include #include #include #include +#include +#include "apt-ftparchive.h" #include "writer.h" #include "cachedb.h" -#include "apt-ftparchive.h" #include "multicompress.h" #include diff --git a/ftparchive/writer.h b/ftparchive/writer.h index 4932b0cc8..86884dcfc 100644 --- a/ftparchive/writer.h +++ b/ftparchive/writer.h @@ -13,14 +13,16 @@ #ifndef WRITER_H #define WRITER_H - #include #include #include #include #include #include +#include +#include +#include "contents.h" #include "cachedb.h" #include "override.h" #include "apt-ftparchive.h" diff --git a/methods/cdrom.cc b/methods/cdrom.cc index 3c14d9dfb..74e2ecc6b 100644 --- a/methods/cdrom.cc +++ b/methods/cdrom.cc @@ -19,9 +19,9 @@ #include #include +#include +#include #include -#include -#include #include #include diff --git a/methods/connect.cc b/methods/connect.cc index d9c9a1dd4..e2cbf4f5c 100644 --- a/methods/connect.cc +++ b/methods/connect.cc @@ -23,7 +23,7 @@ #include #include #include - +#include #include #include diff --git a/methods/copy.cc b/methods/copy.cc index f2a8f9ed8..d59f032ff 100644 --- a/methods/copy.cc +++ b/methods/copy.cc @@ -17,9 +17,10 @@ #include #include +#include #include #include -#include + #include /*}}}*/ diff --git a/methods/file.cc b/methods/file.cc index 3d0687c5b..12db62203 100644 --- a/methods/file.cc +++ b/methods/file.cc @@ -21,8 +21,9 @@ #include #include +#include #include -#include + #include /*}}}*/ diff --git a/methods/ftp.cc b/methods/ftp.cc index 4108b2da3..66787a7be 100644 --- a/methods/ftp.cc +++ b/methods/ftp.cc @@ -23,7 +23,11 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -42,6 +46,7 @@ #include "rfc2553emu.h" #include "connect.h" #include "ftp.h" + #include /*}}}*/ diff --git a/methods/ftp.h b/methods/ftp.h index 8055c389f..119d0c7e8 100644 --- a/methods/ftp.h +++ b/methods/ftp.h @@ -12,6 +12,8 @@ #include +#include +#include #include class FTPConn diff --git a/methods/gpgv.cc b/methods/gpgv.cc index 25bf64ddd..ae521a2ed 100644 --- a/methods/gpgv.cc +++ b/methods/gpgv.cc @@ -1,19 +1,21 @@ #include -#include #include -#include -#include -#include #include +#include #include +#include -#include -#include +#include #include +#include +#include +#include +#include #include +#include #include -#include +#include #include #include diff --git a/methods/gzip.cc b/methods/gzip.cc index 3269ffbb8..ace5e9f71 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -11,17 +11,19 @@ // Include Files /*{{{*/ #include -#include -#include #include -#include +#include +#include #include +#include +#include +#include #include #include -#include -#include -#include +#include +#include + #include /*}}}*/ diff --git a/methods/http.cc b/methods/http.cc index e1bb2e130..82f16e9b2 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -33,24 +33,21 @@ #include #include #include +#include +#include +#include +#include +#include #include #include #include -#include #include #include -#include -#include #include -#include - -// Internet stuff -#include #include "config.h" #include "connect.h" -#include "rfc2553emu.h" #include "http.h" #include diff --git a/methods/http.h b/methods/http.h index 450a42eed..5406ce4a7 100644 --- a/methods/http.h +++ b/methods/http.h @@ -12,14 +12,18 @@ #define APT_HTTP_H #include +#include #include +#include +#include #include "server.h" using std::cout; using std::endl; +class FileFd; class HttpMethod; class Hashes; diff --git a/methods/http_main.cc b/methods/http_main.cc index 2ca91bfc9..3b346a514 100644 --- a/methods/http_main.cc +++ b/methods/http_main.cc @@ -1,14 +1,9 @@ #include -#include -#include #include -#include "connect.h" -#include "rfc2553emu.h" #include "http.h" - int main() { setlocale(LC_ALL, ""); diff --git a/methods/https.cc b/methods/https.cc index 041214179..c4aff8f38 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -18,19 +18,20 @@ #include #include #include +#include +#include #include #include #include -#include #include -#include -#include #include #include +#include +#include -#include "config.h" #include "https.h" + #include /*}}}*/ using namespace std; diff --git a/methods/https.h b/methods/https.h index 3199b29f2..faac8a3cd 100644 --- a/methods/https.h +++ b/methods/https.h @@ -11,14 +11,19 @@ #ifndef APT_HTTPS_H #define APT_HTTPS_H -#include +#include + #include +#include +#include +#include #include "server.h" using std::cout; using std::endl; +class Hashes; class HttpsMethod; class FileFd; diff --git a/methods/mirror.cc b/methods/mirror.cc index b30636758..d3aef91bc 100644 --- a/methods/mirror.cc +++ b/methods/mirror.cc @@ -16,18 +16,18 @@ #include #include #include -#include #include #include #include +#include +#include +#include +#include #include -#include #include - -#include +#include #include -#include #include #include diff --git a/methods/mirror.h b/methods/mirror.h index 1dd9f2ec6..6c0ce370e 100644 --- a/methods/mirror.h +++ b/methods/mirror.h @@ -11,6 +11,8 @@ #ifndef APT_MIRROR_H #define APT_MIRROR_H +#include + #include #include #include diff --git a/methods/rred.cc b/methods/rred.cc index 7169fc731..cabb3c456 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -8,19 +8,18 @@ #include #include -#include #include #include #include #include #include +#include +#include #include #include #include -#include -#include #include #include #include diff --git a/methods/rsh.cc b/methods/rsh.cc index 8088cac38..bd46d2515 100644 --- a/methods/rsh.cc +++ b/methods/rsh.cc @@ -17,7 +17,11 @@ #include #include #include +#include +#include +#include +#include #include #include #include diff --git a/methods/rsh.h b/methods/rsh.h index d7efa3f06..c2c06acfe 100644 --- a/methods/rsh.h +++ b/methods/rsh.h @@ -11,6 +11,8 @@ #define APT_RSH_H #include +#include + #include class Hashes; diff --git a/methods/server.cc b/methods/server.cc index 90e83d1af..5a13f18a7 100644 --- a/methods/server.cc +++ b/methods/server.cc @@ -10,32 +10,27 @@ // Include Files /*{{{*/ #include -#include #include #include #include -#include -#include +#include +#include -#include +#include +#include +#include +#include #include #include +#include #include -#include -#include -#include -#include -#include #include +#include #include +#include +#include -// Internet stuff -#include - -#include "config.h" -#include "connect.h" -#include "rfc2553emu.h" -#include "http.h" +#include "server.h" #include /*}}}*/ diff --git a/methods/server.h b/methods/server.h index b4870698f..d1e151f8a 100644 --- a/methods/server.h +++ b/methods/server.h @@ -12,7 +12,10 @@ #define APT_SERVER_H #include +#include +#include +#include #include using std::cout; diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc index fb9f7d34e..34476e1af 100644 --- a/test/interactive-helper/aptwebserver.cc +++ b/test/interactive-helper/aptwebserver.cc @@ -1,27 +1,29 @@ #include -#include -#include -#include #include #include -#include - -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include -#include -#include -#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include static char const * httpcodeToStr(int const httpcode) /*{{{*/ { diff --git a/test/interactive-helper/extract-control.cc b/test/interactive-helper/extract-control.cc index 94fe9dca8..852ec4ee9 100644 --- a/test/interactive-helper/extract-control.cc +++ b/test/interactive-helper/extract-control.cc @@ -1,7 +1,10 @@ +#include + #include #include #include +#include #include #include diff --git a/test/interactive-helper/mthdcat.cc b/test/interactive-helper/mthdcat.cc index 25d09a3f5..2961b2080 100644 --- a/test/interactive-helper/mthdcat.cc +++ b/test/interactive-helper/mthdcat.cc @@ -2,6 +2,8 @@ All this does is cat a file into the method without closing the FD when the file ends */ +#include + #include int main() diff --git a/test/interactive-helper/rpmver.cc b/test/interactive-helper/rpmver.cc index 15c96cbbe..017c92fba 100644 --- a/test/interactive-helper/rpmver.cc +++ b/test/interactive-helper/rpmver.cc @@ -1,3 +1,5 @@ +#include + #include #include #include diff --git a/test/interactive-helper/test_udevcdrom.cc b/test/interactive-helper/test_udevcdrom.cc index 88f5f0153..b87dcd935 100644 --- a/test/interactive-helper/test_udevcdrom.cc +++ b/test/interactive-helper/test_udevcdrom.cc @@ -1,7 +1,10 @@ +#include + #include -#include -#include +#include +#include +#include #include #include @@ -17,5 +20,4 @@ int main() std::cerr << l[i].DeviceName << " " << l[i].Mounted << " " << l[i].MountPath << std::endl; - } diff --git a/test/interactive-helper/testdeb.cc b/test/interactive-helper/testdeb.cc index 9520d1b50..6aae9f563 100644 --- a/test/interactive-helper/testdeb.cc +++ b/test/interactive-helper/testdeb.cc @@ -1,7 +1,14 @@ +#include + #include #include #include #include +#include +#include + +#include +#include class NullStream : public pkgDirStream { diff --git a/test/libapt/cdromfindpackages_test.cc b/test/libapt/cdromfindpackages_test.cc index e9f5a51b0..583de1423 100644 --- a/test/libapt/cdromfindpackages_test.cc +++ b/test/libapt/cdromfindpackages_test.cc @@ -1,9 +1,13 @@ +#include + #include #include #include #include #include +#include +#include #include "assert.h" diff --git a/test/libapt/cdromreducesourcelist_test.cc b/test/libapt/cdromreducesourcelist_test.cc index b0314769d..196d0136e 100644 --- a/test/libapt/cdromreducesourcelist_test.cc +++ b/test/libapt/cdromreducesourcelist_test.cc @@ -1,7 +1,7 @@ +#include + #include -#include -#include #include #include diff --git a/test/libapt/commandline_test.cc b/test/libapt/commandline_test.cc index de8a30bd6..d8c5bc5bd 100644 --- a/test/libapt/commandline_test.cc +++ b/test/libapt/commandline_test.cc @@ -1,4 +1,7 @@ +#include + #include +#include #include "assert.h" diff --git a/test/libapt/commandlineasstring_test.cc b/test/libapt/commandlineasstring_test.cc index a38957d7e..5c005e956 100644 --- a/test/libapt/commandlineasstring_test.cc +++ b/test/libapt/commandlineasstring_test.cc @@ -1,3 +1,5 @@ +#include + #include #include diff --git a/test/libapt/compareversion_test.cc b/test/libapt/compareversion_test.cc index 44f8e9d78..43b98f240 100644 --- a/test/libapt/compareversion_test.cc +++ b/test/libapt/compareversion_test.cc @@ -16,17 +16,16 @@ ##################################################################### */ /*}}}*/ -#include +#include + #include -#include #include #include -#include -#include +#include +#include #include #include -#include #include using namespace std; diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc index d2efc1b4b..c9235500c 100644 --- a/test/libapt/configuration_test.cc +++ b/test/libapt/configuration_test.cc @@ -1,3 +1,5 @@ +#include + #include #include diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index d256ea55a..8da832ba9 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -1,14 +1,13 @@ +#include + #include #include -#include "assert.h" #include #include - -#include -#include #include +#include "assert.h" int main() { diff --git a/test/libapt/getarchitectures_test.cc b/test/libapt/getarchitectures_test.cc index 508d5e458..f4dfc6ae8 100644 --- a/test/libapt/getarchitectures_test.cc +++ b/test/libapt/getarchitectures_test.cc @@ -1,11 +1,12 @@ +#include + #include #include -#include "assert.h" #include #include -#include +#include "assert.h" int main() { diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index 51cfecee3..15aa4e879 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -1,3 +1,5 @@ +#include + #include #include diff --git a/test/libapt/getlistoffilesindir_test.cc b/test/libapt/getlistoffilesindir_test.cc index b2c95e840..df125fc83 100644 --- a/test/libapt/getlistoffilesindir_test.cc +++ b/test/libapt/getlistoffilesindir_test.cc @@ -1,12 +1,13 @@ +#include + #include -#include "assert.h" #include #include - -#include #include +#include "assert.h" + #define P(x) std::string(argv[1]).append("/").append(x) int main(int argc,char *argv[]) diff --git a/test/libapt/globalerror_test.cc b/test/libapt/globalerror_test.cc index 742fa53bd..e913fdc12 100644 --- a/test/libapt/globalerror_test.cc +++ b/test/libapt/globalerror_test.cc @@ -1,10 +1,14 @@ +#include + #include -#include "assert.h" +#include #include #include #include +#include "assert.h" + int main() { std::string const textOfErrnoZero(strerror(0)); diff --git a/test/libapt/hashsums_test.cc b/test/libapt/hashsums_test.cc index 410e2c44d..d743faec6 100644 --- a/test/libapt/hashsums_test.cc +++ b/test/libapt/hashsums_test.cc @@ -1,12 +1,15 @@ +#include + #include #include #include #include #include #include -#include -#include +#include +#include +#include #include "assert.h" @@ -50,22 +53,22 @@ int main(int argc, char** argv) // test HashSumValue which doesn't calculate but just stores sums { - string md5sum = argv[2]; + std::string md5sum = argv[2]; MD5SumValue md5(md5sum); equals(md5.Value(), md5sum); } { - string sha1sum = argv[3]; + std::string sha1sum = argv[3]; SHA1SumValue sha1(sha1sum); equals(sha1.Value(), sha1sum); } { - string sha2sum = argv[4]; + std::string sha2sum = argv[4]; SHA256SumValue sha2(sha2sum); equals(sha2.Value(), sha2sum); } { - string sha2sum = argv[5]; + std::string sha2sum = argv[5]; SHA512SumValue sha2(sha2sum); equals(sha2.Value(), sha2sum); } diff --git a/test/libapt/indexcopytosourcelist_test.cc b/test/libapt/indexcopytosourcelist_test.cc index 69d8fae86..e04ab261b 100644 --- a/test/libapt/indexcopytosourcelist_test.cc +++ b/test/libapt/indexcopytosourcelist_test.cc @@ -1,8 +1,11 @@ +#include + #include #include #include #include +#include #include "assert.h" @@ -12,14 +15,14 @@ public: IndexCopy::ConvertToSourceList(CD, Path); return Path; } - bool GetFile(std::string &Filename,unsigned long long &Size) { return false; } - bool RewriteEntry(FILE *Target,std::string File) { return false; } + bool GetFile(std::string &/*Filename*/, unsigned long long &/*Size*/) { return false; } + bool RewriteEntry(FILE * /*Target*/, std::string /*File*/) { return false; } const char *GetFileName() { return NULL; } const char *Type() { return NULL; } }; -int main(int argc, char const *argv[]) { +int main() { NoCopy ic; std::string const CD("/media/cdrom/"); diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc index 5a2c65573..5564e2bc0 100644 --- a/test/libapt/parsedepends_test.cc +++ b/test/libapt/parsedepends_test.cc @@ -1,5 +1,11 @@ +#include + #include #include +#include + +#include +#include #include "assert.h" diff --git a/test/libapt/sourcelist_test.cc b/test/libapt/sourcelist_test.cc index 0637df03b..71aa54f1e 100644 --- a/test/libapt/sourcelist_test.cc +++ b/test/libapt/sourcelist_test.cc @@ -1,11 +1,16 @@ +#include + +#include #include -#include +#include -#include "assert.h" +#include #include #include #include +#include "assert.h" + char *tempfile = NULL; int tempfile_fd = -1; diff --git a/test/libapt/strutil_test.cc b/test/libapt/strutil_test.cc index a4516e7a1..618f4daba 100644 --- a/test/libapt/strutil_test.cc +++ b/test/libapt/strutil_test.cc @@ -1,5 +1,10 @@ +#include + #include +#include +#include + #include "assert.h" int main() @@ -44,7 +49,7 @@ int main() // Split input = "status: libnet1:amd64: unpacked"; - vector result = StringSplit(input, ": "); + std::vector result = StringSplit(input, ": "); equals(result[0], "status"); equals(result[1], "libnet1:amd64"); equals(result[2], "unpacked"); diff --git a/test/libapt/tagfile_test.cc b/test/libapt/tagfile_test.cc index 24f258275..aaf46e3e9 100644 --- a/test/libapt/tagfile_test.cc +++ b/test/libapt/tagfile_test.cc @@ -1,11 +1,15 @@ +#include + #include #include -#include "assert.h" +#include #include #include #include +#include "assert.h" + char *tempfile = NULL; int tempfile_fd = -1; diff --git a/test/libapt/uri_test.cc b/test/libapt/uri_test.cc index 8216ade71..6559f1390 100644 --- a/test/libapt/uri_test.cc +++ b/test/libapt/uri_test.cc @@ -1,5 +1,9 @@ +#include + #include +#include + #include "assert.h" int main() { -- cgit v1.2.3-70-g09d2 From a02db58fd50ef7fc2f0284852c6b3f98e458a232 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 6 Mar 2014 00:33:10 +0100 Subject: follow method attribute suggestions by gcc Git-Dch: Ignore Reported-By: gcc -Wsuggest-attribute={pure,const,noreturn} --- apt-inst/extract.cc | 2 +- apt-inst/filelist.cc | 6 +++--- apt-pkg/acquire-item.cc | 2 +- apt-pkg/acquire.cc | 6 +++--- apt-pkg/acquire.h | 4 ++-- apt-pkg/algorithms.h | 2 +- apt-pkg/cacheiterators.h | 35 ++++++++++++++++++----------------- apt-pkg/cacheset.cc | 10 +++++----- apt-pkg/contrib/cmndline.h | 8 +++++--- apt-pkg/contrib/crc-16.h | 4 +++- apt-pkg/contrib/error.h | 8 ++++---- apt-pkg/contrib/fileutl.h | 2 +- apt-pkg/contrib/gpgv.h | 2 +- apt-pkg/contrib/hashes.cc | 2 +- apt-pkg/contrib/hashes.h | 2 +- apt-pkg/contrib/strutl.h | 36 ++++++++++++++++++------------------ apt-pkg/deb/debindexfile.cc | 2 +- apt-pkg/deb/debindexfile.h | 8 ++++---- apt-pkg/deb/debsystem.cc | 2 +- apt-pkg/deb/debversion.h | 14 +++++++------- apt-pkg/depcache.cc | 4 ++-- apt-pkg/depcache.h | 3 ++- apt-pkg/edsp/edspindexfile.h | 2 +- apt-pkg/edsp/edsplistparser.cc | 2 +- apt-pkg/edsp/edspsystem.h | 8 ++++---- apt-pkg/indexcopy.cc | 6 ++---- apt-pkg/indexfile.h | 2 +- apt-pkg/indexrecords.cc | 14 +++++++------- apt-pkg/install-progress.cc | 4 ++-- apt-pkg/orderlist.h | 8 ++++---- apt-pkg/packagemanager.h | 2 +- apt-pkg/pkgcache.h | 14 ++++++++------ apt-pkg/pkgcachegen.h | 2 +- apt-pkg/pkgsystem.cc | 4 +++- apt-pkg/policy.cc | 4 ++-- apt-pkg/sourcelist.h | 3 ++- apt-pkg/srcrecords.h | 3 ++- apt-pkg/tagfile.cc | 2 +- apt-pkg/vendor.cc | 2 +- apt-pkg/version.h | 2 +- apt-pkg/versionmatch.h | 14 +++++++------- apt-private/private-cachefile.h | 2 +- apt-private/private-cmndline.cc | 2 +- cmdline/apt-cache.cc | 2 +- cmdline/apt-cdrom.cc | 2 +- methods/ftp.h | 2 +- methods/http.cc | 4 ++-- methods/rsh.h | 2 +- methods/server.h | 2 +- test/libapt/assert.h | 4 +++- 50 files changed, 148 insertions(+), 136 deletions(-) (limited to 'test') diff --git a/apt-inst/extract.cc b/apt-inst/extract.cc index b2956d91d..b60784450 100644 --- a/apt-inst/extract.cc +++ b/apt-inst/extract.cc @@ -260,7 +260,7 @@ bool pkgExtract::DoItem(Item &Itm, int &/*Fd*/) // Extract::Finished - Sequence finished, erase the temp files /*{{{*/ // --------------------------------------------------------------------- /* */ -bool pkgExtract::Finished() +APT_CONST bool pkgExtract::Finished() { return true; } diff --git a/apt-inst/filelist.cc b/apt-inst/filelist.cc index b4a4f3d9d..4dbc4a2d7 100644 --- a/apt-inst/filelist.cc +++ b/apt-inst/filelist.cc @@ -85,7 +85,7 @@ pkgFLCache::Header::Header() // FLCache::Header::CheckSizes - Check if the two headers have same *sz /*{{{*/ // --------------------------------------------------------------------- /* Compare to make sure we are matching versions */ -bool pkgFLCache::Header::CheckSizes(Header &Against) const +APT_PURE bool pkgFLCache::Header::CheckSizes(Header &Against) const { if (HeaderSz == Against.HeaderSz && NodeSz == Against.NodeSz && @@ -353,7 +353,7 @@ pkgFLCache::NodeIterator pkgFLCache::GetNode(const char *Name, // --------------------------------------------------------------------- /* This is one of two hashing functions. The other is inlined into the GetNode routine. */ -pkgFLCache::Node *pkgFLCache::HashNode(NodeIterator const &Nde) +APT_PURE pkgFLCache::Node *pkgFLCache::HashNode(NodeIterator const &Nde) { // Hash the node unsigned long HashPos = 0; @@ -570,7 +570,7 @@ bool pkgFLCache::AddConfFile(const char *Name,const char *NameEnd, // --------------------------------------------------------------------- /* Since the package pointer is indirected in all sorts of interesting ways this is used to get a pointer to the owning package */ -pkgFLCache::Package *pkgFLCache::NodeIterator::RealPackage() const +APT_PURE pkgFLCache::Package *pkgFLCache::NodeIterator::RealPackage() const { if (Nde->Pointer == 0) return 0; diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 44a1f32df..ad38e3116 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -2162,7 +2162,7 @@ void pkgAcqArchive::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*}}}*/ // AcqArchive::IsTrusted - Determine whether this archive comes from a trusted source /*{{{*/ // --------------------------------------------------------------------- -bool pkgAcqArchive::IsTrusted() +APT_PURE bool pkgAcqArchive::IsTrusted() { return Trusted; } diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index a654d8219..a187a00ae 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -526,7 +526,7 @@ bool pkgAcquire::Clean(string Dir) // Acquire::TotalNeeded - Number of bytes to fetch /*{{{*/ // --------------------------------------------------------------------- /* This is the total number of bytes needed */ -unsigned long long pkgAcquire::TotalNeeded() +APT_PURE unsigned long long pkgAcquire::TotalNeeded() { unsigned long long Total = 0; for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I) @@ -537,7 +537,7 @@ unsigned long long pkgAcquire::TotalNeeded() // Acquire::FetchNeeded - Number of bytes needed to get /*{{{*/ // --------------------------------------------------------------------- /* This is the number of bytes that is not local */ -unsigned long long pkgAcquire::FetchNeeded() +APT_PURE unsigned long long pkgAcquire::FetchNeeded() { unsigned long long Total = 0; for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I) @@ -549,7 +549,7 @@ unsigned long long pkgAcquire::FetchNeeded() // Acquire::PartialPresent - Number of partial bytes we already have /*{{{*/ // --------------------------------------------------------------------- /* This is the number of bytes that is not local */ -unsigned long long pkgAcquire::PartialPresent() +APT_PURE unsigned long long pkgAcquire::PartialPresent() { unsigned long long Total = 0; for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I) diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index 1aac0ba11..ef16d8556 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -298,7 +298,7 @@ class pkgAcquire * \return the worker immediately following I, or \b NULL if none * exists. */ - Worker *WorkerStep(Worker *I); + Worker *WorkerStep(Worker *I) APT_PURE; /** \brief Get the head of the list of items. */ inline ItemIterator ItemsBegin() {return Items.begin();}; @@ -481,7 +481,7 @@ class pkgAcquire::Queue * \return the first item in the queue whose URI is #URI and that * is being downloaded by #Owner. */ - QItem *FindItem(std::string URI,pkgAcquire::Worker *Owner); + QItem *FindItem(std::string URI,pkgAcquire::Worker *Owner) APT_PURE; /** Presumably this should start downloading an item? * diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 82b6426c6..f35bd9a13 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -114,7 +114,7 @@ class pkgProblemResolver /*{{{*/ // Sort stuff static pkgProblemResolver *This; - static int ScoreSort(const void *a,const void *b); + static int ScoreSort(const void *a,const void *b) APT_PURE; struct PackageKill { diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index d9c8ed1e4..2fdf8404d 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -30,6 +30,7 @@ #ifndef PKGLIB_CACHEITERATORS_H #define PKGLIB_CACHEITERATORS_H #include +#include #include #include @@ -163,15 +164,15 @@ class pkgCache::PkgIterator: public Iterator { inline bool Purge() const {return S->CurrentState == pkgCache::State::Purge || (S->CurrentVer == 0 && S->CurrentState == pkgCache::State::NotInstalled);} inline const char *Arch() const {return S->Arch == 0?0:Owner->StrP + S->Arch;} - inline GrpIterator Group() const { return GrpIterator(*Owner, Owner->GrpP + S->Group);} + inline APT_PURE GrpIterator Group() const { return GrpIterator(*Owner, Owner->GrpP + S->Group);} - inline VerIterator VersionList() const; - inline VerIterator CurrentVer() const; - inline DepIterator RevDependsList() const; - inline PrvIterator ProvidesList() const; - OkState State() const; - const char *CandVersion() const; - const char *CurVersion() const; + inline VerIterator VersionList() const APT_PURE; + inline VerIterator CurrentVer() const APT_PURE; + inline DepIterator RevDependsList() const APT_PURE; + inline PrvIterator ProvidesList() const APT_PURE; + OkState State() const APT_PURE; + const char *CandVersion() const APT_PURE; + const char *CurVersion() const APT_PURE; //Nice printable representation friend std::ostream& operator <<(std::ostream& out, PkgIterator i); @@ -224,7 +225,7 @@ class pkgCache::VerIterator : public Iterator { inline VerFileIterator FileList() const; bool Downloadable() const; inline const char *PriorityType() const {return Owner->Priority(S->Priority);} - const char *MultiArchType() const; + const char *MultiArchType() const APT_PURE; std::string RelStr() const; bool Automatic() const; @@ -286,13 +287,13 @@ class pkgCache::DepIterator : public Iterator { inline VerIterator ParentVer() const {return VerIterator(*Owner,Owner->VerP + S->ParentVer);} inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Owner->VerP[S->ParentVer].ParentPkg);} inline bool Reverse() const {return Type == DepRev;} - bool IsCritical() const; - bool IsNegative() const; - bool IsIgnorable(PrvIterator const &Prv) const; - bool IsIgnorable(PkgIterator const &Pkg) const; - bool IsMultiArchImplicit() const; - bool IsSatisfied(VerIterator const &Ver) const; - bool IsSatisfied(PrvIterator const &Prv) const; + bool IsCritical() const APT_PURE; + bool IsNegative() const APT_PURE; + bool IsIgnorable(PrvIterator const &Prv) const APT_PURE; + bool IsIgnorable(PkgIterator const &Pkg) const APT_PURE; + bool IsMultiArchImplicit() const APT_PURE; + bool IsSatisfied(VerIterator const &Ver) const APT_PURE; + bool IsSatisfied(PrvIterator const &Prv) const APT_PURE; void GlobOr(DepIterator &Start,DepIterator &End); Version **AllTargets() const; bool SmartTargetPkg(PkgIterator &Result) const; @@ -337,7 +338,7 @@ class pkgCache::PrvIterator : public Iterator { inline VerIterator OwnerVer() const {return VerIterator(*Owner,Owner->VerP + S->Version);} inline PkgIterator OwnerPkg() const {return PkgIterator(*Owner,Owner->PkgP + Owner->VerP[S->Version].ParentPkg);} - bool IsMultiArchImplicit() const; + bool IsMultiArchImplicit() const APT_PURE; inline PrvIterator() : Iterator(), Type(PrvVer) {} inline PrvIterator(pkgCache &Owner, Provides *Trg, Version*) : diff --git a/apt-pkg/cacheset.cc b/apt-pkg/cacheset.cc index a58631d5b..d453a2bfb 100644 --- a/apt-pkg/cacheset.cc +++ b/apt-pkg/cacheset.cc @@ -614,7 +614,7 @@ void CacheSetHelper::canNotFindFnmatch(PackageContainerInterface * const pci, pk } #endif /*}}}*/ // canNotFindPackage - handle the case no package is found from a string/*{{{*/ -void CacheSetHelper::canNotFindPackage(PackageContainerInterface * const /*pci*/, pkgCacheFile &/*Cache*/, std::string const &/*str*/) { +APT_CONST void CacheSetHelper::canNotFindPackage(PackageContainerInterface * const /*pci*/, pkgCacheFile &/*Cache*/, std::string const &/*str*/) { } /*}}}*/ // canNotFindAllVer /*{{{*/ @@ -663,24 +663,24 @@ pkgCache::VerIterator CacheSetHelper::canNotFindInstalledVer(pkgCacheFile &Cache } /*}}}*/ // showTaskSelection /*{{{*/ -void CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const &/*pkg*/, +APT_CONST void CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const &/*pkg*/, std::string const &/*pattern*/) { } /*}}}*/ // showRegExSelection /*{{{*/ -void CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const &/*pkg*/, +APT_CONST void CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const &/*pkg*/, std::string const &/*pattern*/) { } /*}}}*/ #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13) // showFnmatchSelection /*{{{*/ -void CacheSetHelper::showFnmatchSelection(pkgCache::PkgIterator const &pkg, +APT_CONST void CacheSetHelper::showFnmatchSelection(pkgCache::PkgIterator const &pkg, std::string const &pattern) { } /*}}}*/ #endif // showSelectedVersion /*{{{*/ -void CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const &/*Pkg*/, +APT_CONST void CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const &/*Pkg*/, pkgCache::VerIterator const /*Ver*/, std::string const &/*ver*/, bool const /*verIsRel*/) { diff --git a/apt-pkg/contrib/cmndline.h b/apt-pkg/contrib/cmndline.h index 180276633..143df58b2 100644 --- a/apt-pkg/contrib/cmndline.h +++ b/apt-pkg/contrib/cmndline.h @@ -44,6 +44,8 @@ #ifndef PKGLIB_CMNDLINE_H #define PKGLIB_CMNDLINE_H +#include + #ifndef APT_8_CLEANER_HEADERS #include #endif @@ -80,14 +82,14 @@ class CommandLine bool Parse(int argc,const char **argv); void ShowHelp(); - unsigned int FileSize() const; + unsigned int FileSize() const APT_PURE; bool DispatchArg(Dispatch *List,bool NoMatch = true); static char const * GetCommand(Dispatch const * const Map, - unsigned int const argc, char const * const * const argv); + unsigned int const argc, char const * const * const argv) APT_PURE; static CommandLine::Args MakeArgs(char ShortOpt, char const *LongOpt, - char const *ConfName, unsigned long Flags); + char const *ConfName, unsigned long Flags) APT_CONST; CommandLine(Args *AList,Configuration *Conf); ~CommandLine(); diff --git a/apt-pkg/contrib/crc-16.h b/apt-pkg/contrib/crc-16.h index 702de40b2..08acdafb7 100644 --- a/apt-pkg/contrib/crc-16.h +++ b/apt-pkg/contrib/crc-16.h @@ -10,8 +10,10 @@ #ifndef APTPKG_CRC16_H #define APTPKG_CRC16_H +#include + #define INIT_FCS 0xffff unsigned short AddCRC16(unsigned short fcs, void const *buf, - unsigned long long len); + unsigned long long len) APT_PURE; #endif diff --git a/apt-pkg/contrib/error.h b/apt-pkg/contrib/error.h index 919b1e6d4..ed8c19153 100644 --- a/apt-pkg/contrib/error.h +++ b/apt-pkg/contrib/error.h @@ -141,7 +141,7 @@ public: /*{{{*/ */ bool InsertErrno(MsgType type, const char* Function, const char* Description, va_list &args, - int const errsv, size_t &msgSize); + int const errsv, size_t &msgSize) APT_COLD; /** \brief add an fatal error message to the list * @@ -225,7 +225,7 @@ public: /*{{{*/ * * \return \b true if an error is included in the list, \b false otherwise */ - inline bool PendingError() const {return PendingFlag;}; + inline bool PendingError() const APT_PURE {return PendingFlag;}; /** \brief is the list empty? * @@ -237,7 +237,7 @@ public: /*{{{*/ * * \return \b true if an the list is empty, \b false otherwise */ - bool empty(MsgType const &threshold = WARNING) const; + bool empty(MsgType const &threshold = WARNING) const APT_PURE; /** \brief returns and removes the first (or last) message in the list * @@ -303,7 +303,7 @@ public: /*{{{*/ void MergeWithStack(); /** \brief return the deep of the stack */ - size_t StackCount() const { + size_t StackCount() const APT_PURE { return Stacks.size(); } diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index 6fdea1294..35f3ab0f4 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -119,7 +119,7 @@ class FileFd // Simple manipulators inline int Fd() {return iFd;}; inline void Fd(int fd) { OpenDescriptor(fd, ReadWrite);}; - gzFile gzFd() APT_DEPRECATED; + gzFile gzFd() APT_DEPRECATED APT_PURE; inline bool IsOpen() {return iFd >= 0;}; inline bool Failed() {return (Flags & Fail) == Fail;}; diff --git a/apt-pkg/contrib/gpgv.h b/apt-pkg/contrib/gpgv.h index ab3c68de5..f018893fd 100644 --- a/apt-pkg/contrib/gpgv.h +++ b/apt-pkg/contrib/gpgv.h @@ -41,7 +41,7 @@ class FileFd; */ void ExecGPGV(std::string const &File, std::string const &FileSig, int const &statusfd, int fd[2]) APT_NORETURN; -inline void ExecGPGV(std::string const &File, std::string const &FileSig, +inline APT_NORETURN void ExecGPGV(std::string const &File, std::string const &FileSig, int const &statusfd = -1) { int fd[2]; ExecGPGV(File, FileSig, statusfd, fd); diff --git a/apt-pkg/contrib/hashes.cc b/apt-pkg/contrib/hashes.cc index 5efafa511..1fce0d75f 100644 --- a/apt-pkg/contrib/hashes.cc +++ b/apt-pkg/contrib/hashes.cc @@ -116,7 +116,7 @@ const char** HashString::SupportedHashes() return _SupportedHashes; } -bool HashString::empty() const +APT_PURE bool HashString::empty() const { return (Type.empty() || Hash.empty()); } diff --git a/apt-pkg/contrib/hashes.h b/apt-pkg/contrib/hashes.h index 979ee1eb8..5cd1af03b 100644 --- a/apt-pkg/contrib/hashes.h +++ b/apt-pkg/contrib/hashes.h @@ -66,7 +66,7 @@ class HashString bool empty() const; // return the list of hashes we support - static const char** SupportedHashes(); + static APT_CONST const char** SupportedHashes(); }; class Hashes diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h index 79479957d..185cdc3fc 100644 --- a/apt-pkg/contrib/strutl.h +++ b/apt-pkg/contrib/strutl.h @@ -107,43 +107,43 @@ int tolower_ascii(int const c) APT_CONST APT_HOT; std::string StripEpoch(const std::string &VerStr); #define APT_MKSTRCMP(name,func) \ -inline int name(const char *A,const char *B) {return func(A,A+strlen(A),B,B+strlen(B));} \ -inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));} \ -inline int name(const std::string& A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));} \ -inline int name(const std::string& A,const std::string& B) {return func(A.c_str(),A.c_str()+A.length(),B.c_str(),B.c_str()+B.length());} \ -inline int name(const std::string& A,const char *B,const char *BEnd) {return func(A.c_str(),A.c_str()+A.length(),B,BEnd);} +inline APT_PURE int name(const char *A,const char *B) {return func(A,A+strlen(A),B,B+strlen(B));} \ +inline APT_PURE int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));} \ +inline APT_PURE int name(const std::string& A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));} \ +inline APT_PURE int name(const std::string& A,const std::string& B) {return func(A.c_str(),A.c_str()+A.length(),B.c_str(),B.c_str()+B.length());} \ +inline APT_PURE int name(const std::string& A,const char *B,const char *BEnd) {return func(A.c_str(),A.c_str()+A.length(),B,BEnd);} #define APT_MKSTRCMP2(name,func) \ -inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));} \ -inline int name(const std::string& A,const char *B) {return func(A.begin(),A.end(),B,B+strlen(B));} \ -inline int name(const std::string& A,const std::string& B) {return func(A.begin(),A.end(),B.begin(),B.end());} \ -inline int name(const std::string& A,const char *B,const char *BEnd) {return func(A.begin(),A.end(),B,BEnd);} +inline APT_PURE int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));} \ +inline APT_PURE int name(const std::string& A,const char *B) {return func(A.begin(),A.end(),B,B+strlen(B));} \ +inline APT_PURE int name(const std::string& A,const std::string& B) {return func(A.begin(),A.end(),B.begin(),B.end());} \ +inline APT_PURE int name(const std::string& A,const char *B,const char *BEnd) {return func(A.begin(),A.end(),B,BEnd);} -int stringcmp(const char *A,const char *AEnd,const char *B,const char *BEnd); -int stringcasecmp(const char *A,const char *AEnd,const char *B,const char *BEnd); +int APT_PURE stringcmp(const char *A,const char *AEnd,const char *B,const char *BEnd); +int APT_PURE stringcasecmp(const char *A,const char *AEnd,const char *B,const char *BEnd); /* We assume that GCC 3 indicates that libstdc++3 is in use too. In that case the definition of string::const_iterator is not the same as const char * and we need these extra functions */ #if __GNUC__ >= 3 -int stringcmp(std::string::const_iterator A,std::string::const_iterator AEnd, +int APT_PURE stringcmp(std::string::const_iterator A,std::string::const_iterator AEnd, const char *B,const char *BEnd); -int stringcmp(std::string::const_iterator A,std::string::const_iterator AEnd, +int APT_PURE stringcmp(std::string::const_iterator A,std::string::const_iterator AEnd, std::string::const_iterator B,std::string::const_iterator BEnd); -int stringcasecmp(std::string::const_iterator A,std::string::const_iterator AEnd, +int APT_PURE stringcasecmp(std::string::const_iterator A,std::string::const_iterator AEnd, const char *B,const char *BEnd); -int stringcasecmp(std::string::const_iterator A,std::string::const_iterator AEnd, +int APT_PURE stringcasecmp(std::string::const_iterator A,std::string::const_iterator AEnd, std::string::const_iterator B,std::string::const_iterator BEnd); -inline int stringcmp(std::string::const_iterator A,std::string::const_iterator Aend,const char *B) {return stringcmp(A,Aend,B,B+strlen(B));} -inline int stringcasecmp(std::string::const_iterator A,std::string::const_iterator Aend,const char *B) {return stringcasecmp(A,Aend,B,B+strlen(B));} +inline APT_PURE int stringcmp(std::string::const_iterator A,std::string::const_iterator Aend,const char *B) {return stringcmp(A,Aend,B,B+strlen(B));} +inline APT_PURE int stringcasecmp(std::string::const_iterator A,std::string::const_iterator Aend,const char *B) {return stringcasecmp(A,Aend,B,B+strlen(B));} #endif APT_MKSTRCMP2(stringcmp,stringcmp) APT_MKSTRCMP2(stringcasecmp,stringcasecmp) // Return the length of a NULL-terminated string array -size_t strv_length(const char **str_array); +size_t APT_PURE strv_length(const char **str_array); inline const char *DeNull(const char *s) {return (s == 0?"(null)":s);} diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index 1b35d0d52..eee758b7a 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -660,7 +660,7 @@ pkgCache::PkgFileIterator debStatusIndex::FindInCache(pkgCache &Cache) const // StatusIndex::Exists - Check if the index is available /*{{{*/ // --------------------------------------------------------------------- /* */ -bool debStatusIndex::Exists() const +APT_CONST bool debStatusIndex::Exists() const { // Abort if the file does not exist. return true; diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index 3bcb3b64f..017c69a0a 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -38,7 +38,7 @@ class debStatusIndex : public pkgIndexFile public: - virtual const Type *GetType() const; + virtual const Type *GetType() const APT_CONST; // Interface for acquire virtual std::string Describe(bool /*Short*/) const {return File;}; @@ -71,7 +71,7 @@ class debPackagesIndex : public pkgIndexFile public: - virtual const Type *GetType() const; + virtual const Type *GetType() const APT_CONST; // Stuff for accessing files on remote items virtual std::string ArchiveInfo(pkgCache::VerIterator Ver) const; @@ -110,7 +110,7 @@ class debTranslationsIndex : public pkgIndexFile public: - virtual const Type *GetType() const; + virtual const Type *GetType() const APT_CONST; // Interface for acquire virtual std::string Describe(bool Short) const; @@ -142,7 +142,7 @@ class debSourcesIndex : public pkgIndexFile public: - virtual const Type *GetType() const; + virtual const Type *GetType() const APT_CONST; // Stuff for accessing files on remote items virtual std::string SourceInfo(pkgSrcRecords::Parser const &Record, diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index db557e537..142f3a6e6 100644 --- a/apt-pkg/deb/debsystem.cc +++ b/apt-pkg/deb/debsystem.cc @@ -202,7 +202,7 @@ bool debSystem::Initialize(Configuration &Cnf) // --------------------------------------------------------------------- /* The standard name for a deb is 'deb'.. There are no separate versions of .deb to worry about.. */ -bool debSystem::ArchiveSupported(const char *Type) +APT_PURE bool debSystem::ArchiveSupported(const char *Type) { if (strcmp(Type,"deb") == 0) return true; diff --git a/apt-pkg/deb/debversion.h b/apt-pkg/deb/debversion.h index 981ea9ad2..434ff4a2e 100644 --- a/apt-pkg/deb/debversion.h +++ b/apt-pkg/deb/debversion.h @@ -19,19 +19,19 @@ class debVersioningSystem : public pkgVersioningSystem { public: - + static int CmpFragment(const char *A, const char *AEnd, const char *B, - const char *BEnd); - + const char *BEnd) APT_PURE; + // Compare versions.. virtual int DoCmpVersion(const char *A,const char *Aend, - const char *B,const char *Bend); - virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer); - virtual int DoCmpReleaseVer(const char *A,const char *Aend, + const char *B,const char *Bend) APT_PURE; + virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer) APT_PURE; + virtual APT_PURE int DoCmpReleaseVer(const char *A,const char *Aend, const char *B,const char *Bend) { return DoCmpVersion(A,Aend,B,Bend); - } + } virtual std::string UpstreamVersion(const char *A); debVersioningSystem(); diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 149dbc0e7..e2c412757 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1691,9 +1691,9 @@ bool pkgDepCache::Policy::IsImportantDep(DepIterator const &Dep) } /*}}}*/ // Policy::GetPriority - Get the priority of the package pin /*{{{*/ -signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const &/*Pkg*/) +APT_CONST signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const &/*Pkg*/) { return 0; } -signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const &/*File*/) +APT_CONST signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const &/*File*/) { return 0; } /*}}}*/ pkgDepCache::InRootSetFunc *pkgDepCache::GetRootSetFunc() /*{{{*/ diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index 3ffc3b47d..bde648c65 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -41,6 +41,7 @@ #include #include #include +#include #include @@ -239,7 +240,7 @@ class pkgDepCache : protected pkgCache::Namespace unsigned char DepState; // DepState Flags // Update of candidate version - const char *StripEpoch(const char *Ver); + const char *StripEpoch(const char *Ver) APT_PURE; void Update(PkgIterator Pkg,pkgCache &Cache); // Various test members for the current status of the package diff --git a/apt-pkg/edsp/edspindexfile.h b/apt-pkg/edsp/edspindexfile.h index bd3b41cf2..609a2cde4 100644 --- a/apt-pkg/edsp/edspindexfile.h +++ b/apt-pkg/edsp/edspindexfile.h @@ -25,7 +25,7 @@ class edspIndex : public debStatusIndex public: - virtual const Type *GetType() const; + virtual const Type *GetType() const APT_CONST; virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const; diff --git a/apt-pkg/edsp/edsplistparser.cc b/apt-pkg/edsp/edsplistparser.cc index 139deb9f1..212dc7840 100644 --- a/apt-pkg/edsp/edsplistparser.cc +++ b/apt-pkg/edsp/edsplistparser.cc @@ -86,7 +86,7 @@ bool edspListParser::ParseStatus(pkgCache::PkgIterator &Pkg, } /*}}}*/ // ListParser::LoadReleaseInfo - Load the release information /*{{{*/ -bool edspListParser::LoadReleaseInfo(pkgCache::PkgFileIterator & /*FileI*/, +APT_CONST bool edspListParser::LoadReleaseInfo(pkgCache::PkgFileIterator & /*FileI*/, FileFd & /*File*/, std::string /*component*/) { return true; diff --git a/apt-pkg/edsp/edspsystem.h b/apt-pkg/edsp/edspsystem.h index eafff39ba..65e36d714 100644 --- a/apt-pkg/edsp/edspsystem.h +++ b/apt-pkg/edsp/edspsystem.h @@ -31,11 +31,11 @@ class edspSystem : public pkgSystem public: - virtual bool Lock(); - virtual bool UnLock(bool NoErrors = false); - virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const; + virtual bool Lock() APT_CONST; + virtual bool UnLock(bool NoErrors = false) APT_CONST; + virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const APT_CONST; virtual bool Initialize(Configuration &Cnf); - virtual bool ArchiveSupported(const char *Type); + virtual bool ArchiveSupported(const char *Type) APT_CONST; virtual signed Score(Configuration const &Cnf); virtual bool AddStatusFiles(std::vector &List); virtual bool FindIndex(pkgCache::PkgFileIterator File, diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc index 3a1385fa5..854ba1bd7 100644 --- a/apt-pkg/indexcopy.cc +++ b/apt-pkg/indexcopy.cc @@ -642,15 +642,13 @@ bool SigVerify::CopyAndVerify(string CDROM,string Name,vector &SigList, } /*}}}*/ // SigVerify::RunGPGV - deprecated wrapper calling ExecGPGV /*{{{*/ -bool SigVerify::RunGPGV(std::string const &File, std::string const &FileOut, +APT_NORETURN bool SigVerify::RunGPGV(std::string const &File, std::string const &FileOut, int const &statusfd, int fd[2]) { ExecGPGV(File, FileOut, statusfd, fd); - return false; } -bool SigVerify::RunGPGV(std::string const &File, std::string const &FileOut, +APT_NORETURN bool SigVerify::RunGPGV(std::string const &File, std::string const &FileOut, int const &statusfd) { ExecGPGV(File, FileOut, statusfd); - return false; } /*}}}*/ bool TranslationsCopy::CopyTranslations(string CDROM,string Name, /*{{{*/ diff --git a/apt-pkg/indexfile.h b/apt-pkg/indexfile.h index 98cdda603..b5c9ac77e 100644 --- a/apt-pkg/indexfile.h +++ b/apt-pkg/indexfile.h @@ -54,7 +54,7 @@ class pkgIndexFile // Global list of Items supported static Type **GlobalList; static unsigned long GlobalListLen; - static Type *GetType(const char *Type); + static Type *GetType(const char *Type) APT_PURE; const char *Label; diff --git a/apt-pkg/indexrecords.cc b/apt-pkg/indexrecords.cc index 1123d1690..5353d1098 100644 --- a/apt-pkg/indexrecords.cc +++ b/apt-pkg/indexrecords.cc @@ -27,33 +27,33 @@ using std::string; -string indexRecords::GetDist() const +APT_PURE string indexRecords::GetDist() const { return this->Dist; } -string indexRecords::GetSuite() const +APT_PURE string indexRecords::GetSuite() const { return this->Suite; } -bool indexRecords::CheckDist(const string MaybeDist) const +APT_PURE bool indexRecords::CheckDist(const string MaybeDist) const { return (this->Dist == MaybeDist || this->Suite == MaybeDist); } -string indexRecords::GetExpectedDist() const +APT_PURE string indexRecords::GetExpectedDist() const { return this->ExpectedDist; } -time_t indexRecords::GetValidUntil() const +APT_PURE time_t indexRecords::GetValidUntil() const { return this->ValidUntil; } -const indexRecords::checkSum *indexRecords::Lookup(const string MetaKey) +APT_PURE const indexRecords::checkSum *indexRecords::Lookup(const string MetaKey) { std::map::const_iterator sum = Entries.find(MetaKey); if (sum == Entries.end()) @@ -61,7 +61,7 @@ const indexRecords::checkSum *indexRecords::Lookup(const string MetaKey) return sum->second; } -bool indexRecords::Exists(string const &MetaKey) const +APT_PURE bool indexRecords::Exists(string const &MetaKey) const { return Entries.count(MetaKey) == 1; } diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index 6f43e0bc0..dfe4fb18c 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -93,7 +93,7 @@ void PackageManagerProgressFd::StartDpkg() WriteToStatusFd(status.str()); } -void PackageManagerProgressFd::Stop() +APT_CONST void PackageManagerProgressFd::Stop() { } @@ -176,7 +176,7 @@ void PackageManagerProgressDeb822Fd::StartDpkg() WriteToStatusFd(status.str()); } -void PackageManagerProgressDeb822Fd::Stop() +APT_CONST void PackageManagerProgressDeb822Fd::Stop() { } diff --git a/apt-pkg/orderlist.h b/apt-pkg/orderlist.h index 1fdfbf559..b8bad81b3 100644 --- a/apt-pkg/orderlist.h +++ b/apt-pkg/orderlist.h @@ -70,9 +70,9 @@ class pkgOrderList : protected pkgCache::Namespace // For pre sorting static pkgOrderList *Me; - static int OrderCompareA(const void *a, const void *b); - static int OrderCompareB(const void *a, const void *b); - int FileCmp(PkgIterator A,PkgIterator B); + static int OrderCompareA(const void *a, const void *b) APT_PURE; + static int OrderCompareB(const void *a, const void *b) APT_PURE; + int FileCmp(PkgIterator A,PkgIterator B) APT_PURE; public: @@ -102,7 +102,7 @@ class pkgOrderList : protected pkgCache::Namespace inline void RmFlag(Package *Pkg,unsigned long F) {Flags[Pkg->ID] &= ~F;}; // IsNow will return true if the Pkg has been not been either configured or unpacked inline bool IsNow(PkgIterator Pkg) {return (Flags[Pkg->ID] & (States & (~Removed))) == 0;}; - bool IsMissing(PkgIterator Pkg); + bool IsMissing(PkgIterator Pkg) APT_PURE; void WipeFlags(unsigned long F); void SetFileList(std::string *FileList) {this->FileList = FileList;}; diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h index a86b176a4..344ed9192 100644 --- a/apt-pkg/packagemanager.h +++ b/apt-pkg/packagemanager.h @@ -75,7 +75,7 @@ class pkgPackageManager : protected pkgCache::Namespace bool CreateOrderList(); // Analysis helpers - bool DepAlwaysTrue(DepIterator D); + bool DepAlwaysTrue(DepIterator D) APT_PURE; // Install helpers bool ConfigureAll(); diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index b3a714511..5e8a9630a 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -74,9 +74,11 @@ #ifndef PKGLIB_PKGCACHE_H #define PKGLIB_PKGCACHE_H +#include +#include + #include #include -#include #ifndef APT_8_CLEANER_HEADERS using std::string; @@ -156,8 +158,8 @@ class pkgCache /*{{{*/ std::string CacheFile; MMap ⤅ - unsigned long sHash(const std::string &S) const; - unsigned long sHash(const char *S) const; + unsigned long sHash(const std::string &S) const APT_PURE; + unsigned long sHash(const char *S) const APT_PURE; public: @@ -207,8 +209,8 @@ class pkgCache /*{{{*/ pkgVersioningSystem *VS; // Converters - static const char *CompTypeDeb(unsigned char Comp); - static const char *CompType(unsigned char Comp); + static const char *CompTypeDeb(unsigned char Comp) APT_CONST; + static const char *CompType(unsigned char Comp) APT_CONST; static const char *DepType(unsigned char Dep); pkgCache(MMap *Map,bool DoMap = true); @@ -318,7 +320,7 @@ struct pkgCache::Header /** \brief Size of the complete cache file */ unsigned long CacheFileSize; - bool CheckSizes(Header &Against) const; + bool CheckSizes(Header &Against) const APT_PURE; Header(); }; /*}}}*/ diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h index 9ccf71c7b..898b34358 100644 --- a/apt-pkg/pkgcachegen.h +++ b/apt-pkg/pkgcachegen.h @@ -104,7 +104,7 @@ class pkgCacheGenerator /*{{{*/ bool HasFileDeps() {return FoundFileDeps;}; bool MergeFileProvides(ListParser &List); - bool FinishCache(OpProgress *Progress) APT_DEPRECATED; + bool FinishCache(OpProgress *Progress) APT_DEPRECATED APT_CONST; static bool MakeStatusCache(pkgSourceList &List,OpProgress *Progress, MMap **OutMap = 0,bool AllowMem = false); diff --git a/apt-pkg/pkgsystem.cc b/apt-pkg/pkgsystem.cc index ee6c3f4ec..14d090c7a 100644 --- a/apt-pkg/pkgsystem.cc +++ b/apt-pkg/pkgsystem.cc @@ -13,6 +13,8 @@ #include #include +#include + #include #include /*}}}*/ @@ -35,7 +37,7 @@ pkgSystem::pkgSystem() : Label(NULL), VS(NULL) // System::GetSystem - Get the named system /*{{{*/ // --------------------------------------------------------------------- /* */ -pkgSystem *pkgSystem::GetSystem(const char *Label) +APT_PURE pkgSystem *pkgSystem::GetSystem(const char *Label) { for (unsigned I = 0; I != GlobalListLen; I++) if (strcmp(SysList[I]->Label,Label) == 0) diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index ae30b6f50..3cfc32829 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -333,7 +333,7 @@ pkgCache::VerIterator pkgPolicy::GetMatch(pkgCache::PkgIterator const &Pkg) // Policy::GetPriority - Get the priority of the package pin /*{{{*/ // --------------------------------------------------------------------- /* */ -signed short pkgPolicy::GetPriority(pkgCache::PkgIterator const &Pkg) +APT_PURE signed short pkgPolicy::GetPriority(pkgCache::PkgIterator const &Pkg) { if (Pins[Pkg->ID].Type != pkgVersionMatch::None) { @@ -345,7 +345,7 @@ signed short pkgPolicy::GetPriority(pkgCache::PkgIterator const &Pkg) return 0; } -signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &File) +APT_PURE signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &File) { return PFPriority[File->ID]; } diff --git a/apt-pkg/sourcelist.h b/apt-pkg/sourcelist.h index af7569375..9df0c1d74 100644 --- a/apt-pkg/sourcelist.h +++ b/apt-pkg/sourcelist.h @@ -29,6 +29,7 @@ #include #include +#include #include @@ -63,7 +64,7 @@ class pkgSourceList // Global list of Items supported static Type **GlobalList; static unsigned long GlobalListLen; - static Type *GetType(const char *Type); + static Type *GetType(const char *Type) APT_PURE; const char *Name; const char *Label; diff --git a/apt-pkg/srcrecords.h b/apt-pkg/srcrecords.h index ed69d0d72..9915debfe 100644 --- a/apt-pkg/srcrecords.h +++ b/apt-pkg/srcrecords.h @@ -13,6 +13,7 @@ #ifndef PKGLIB_SRCRECORDS_H #define PKGLIB_SRCRECORDS_H +#include #include #include @@ -73,7 +74,7 @@ class pkgSrcRecords //FIXME: Add a parameter to specify which architecture to use for [wildcard] matching virtual bool BuildDepends(std::vector &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch = true) = 0; - static const char *BuildDepType(unsigned char const &Type); + static const char *BuildDepType(unsigned char const &Type) APT_PURE; virtual bool Files(std::vector &F) = 0; diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index 906321456..91d176e3c 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -85,7 +85,7 @@ pkgTagFile::~pkgTagFile() } /*}}}*/ // TagFile::Offset - Return the current offset in the buffer /*{{{*/ -unsigned long pkgTagFile::Offset() +APT_PURE unsigned long pkgTagFile::Offset() { return d->iOffset; } diff --git a/apt-pkg/vendor.cc b/apt-pkg/vendor.cc index 986636e97..d4add560e 100644 --- a/apt-pkg/vendor.cc +++ b/apt-pkg/vendor.cc @@ -35,7 +35,7 @@ const std::string Vendor::LookupFingerprint(std::string Print) const return (*Elt).second; } -bool Vendor::CheckDist(std::string /*Dist*/) +APT_CONST bool Vendor::CheckDist(std::string /*Dist*/) { return true; } diff --git a/apt-pkg/version.h b/apt-pkg/version.h index e0e0e6c14..d98809f7e 100644 --- a/apt-pkg/version.h +++ b/apt-pkg/version.h @@ -33,7 +33,7 @@ class pkgVersioningSystem // Global list of VS's static pkgVersioningSystem **GlobalList; static unsigned long GlobalListLen; - static pkgVersioningSystem *GetVS(const char *Label); + static pkgVersioningSystem *GetVS(const char *Label) APT_PURE; const char *Label; diff --git a/apt-pkg/versionmatch.h b/apt-pkg/versionmatch.h index a889878ad..4c8f704c8 100644 --- a/apt-pkg/versionmatch.h +++ b/apt-pkg/versionmatch.h @@ -45,7 +45,7 @@ using std::string; #endif class pkgVersionMatch -{ +{ // Version Matching std::string VerStr; bool VerPrefixMatch; @@ -61,20 +61,20 @@ class pkgVersionMatch std::string RelComponent; std::string RelArchitecture; bool MatchAll; - + // Origin Matching std::string OrSite; - + public: - + enum MatchType {None = 0,Version,Release,Origin} Type; - - bool MatchVer(const char *A,std::string B,bool Prefix); + + bool MatchVer(const char *A,std::string B,bool Prefix) APT_PURE; bool ExpressionMatches(const char *pattern, const char *string); bool ExpressionMatches(const std::string& pattern, const char *string); bool FileMatch(pkgCache::PkgFileIterator File); pkgCache::VerIterator Find(pkgCache::PkgIterator Pkg); - + pkgVersionMatch(std::string Data,MatchType Type); }; diff --git a/apt-private/private-cachefile.h b/apt-private/private-cachefile.h index 94d93df2c..67c5e8cdc 100644 --- a/apt-private/private-cachefile.h +++ b/apt-private/private-cachefile.h @@ -13,7 +13,7 @@ class CacheFile : public pkgCacheFile { static pkgCache *SortCache; - static int NameComp(const void *a,const void *b); + static int NameComp(const void *a,const void *b) APT_PURE; public: pkgCache::Package **List; diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index 2b2a35637..682be0a19 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -12,7 +12,7 @@ #include /*}}}*/ -static bool strcmp_match_in_list(char const * const Cmd, ...) /*{{{*/ +APT_SENTINEL static bool strcmp_match_in_list(char const * const Cmd, ...) /*{{{*/ { va_list args; bool found = false; diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 0860ee7bf..84b775390 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1118,7 +1118,7 @@ static bool Dotty(CommandLine &CmdL) /* This displays the package record from the proper package index file. It is not used by DumpAvail for performance reasons. */ -static unsigned char const* skipDescriptionFields(unsigned char const * DescP) +static APT_PURE unsigned char const* skipDescriptionFields(unsigned char const * DescP) { char const * const TagName = "\nDescription"; size_t const TagLen = strlen(TagName); diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc index facb6002b..b7447463d 100644 --- a/cmdline/apt-cdrom.cc +++ b/cmdline/apt-cdrom.cc @@ -98,7 +98,7 @@ bool pkgCdromTextStatus::ChangeCdrom() return true; } -OpProgress* pkgCdromTextStatus::GetOpProgress() +APT_CONST OpProgress* pkgCdromTextStatus::GetOpProgress() { return &Progress; } diff --git a/methods/ftp.h b/methods/ftp.h index 119d0c7e8..dd92f0086 100644 --- a/methods/ftp.h +++ b/methods/ftp.h @@ -78,7 +78,7 @@ class FtpMethod : public pkgAcqMethod static std::string FailFile; static int FailFd; static time_t FailTime; - static void SigTerm(int); + static APT_NORETURN void SigTerm(int); public: diff --git a/methods/http.cc b/methods/http.cc index 82f16e9b2..ed6e3517d 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -470,7 +470,7 @@ bool HttpServerState::WriteResponse(const std::string &Data) /*{{{*/ return Out.Read(Data); } /*}}}*/ -bool HttpServerState::IsOpen() /*{{{*/ +APT_PURE bool HttpServerState::IsOpen() /*{{{*/ { return (ServerFd != -1); } @@ -485,7 +485,7 @@ bool HttpServerState::InitHashes(FileFd &File) /*{{{*/ return In.Hash->AddFD(File, StartPos); } /*}}}*/ -Hashes * HttpServerState::GetHashes() /*{{{*/ +APT_PURE Hashes * HttpServerState::GetHashes() /*{{{*/ { return In.Hash; } diff --git a/methods/rsh.h b/methods/rsh.h index c2c06acfe..dd259e744 100644 --- a/methods/rsh.h +++ b/methods/rsh.h @@ -64,7 +64,7 @@ class RSHMethod : public pkgAcqMethod static std::string FailFile; static int FailFd; static time_t FailTime; - static void SigTerm(int); + static APT_NORETURN void SigTerm(int); public: diff --git a/methods/server.h b/methods/server.h index d1e151f8a..0f45ab994 100644 --- a/methods/server.h +++ b/methods/server.h @@ -129,7 +129,7 @@ class ServerMethod : public pkgAcqMethod static std::string FailFile; static int FailFd; static time_t FailTime; - static void SigTerm(int); + static APT_NORETURN void SigTerm(int); virtual bool Configuration(std::string Message); virtual bool Flush() { return Server->Flush(File); }; diff --git a/test/libapt/assert.h b/test/libapt/assert.h index cde6a6351..357801592 100644 --- a/test/libapt/assert.h +++ b/test/libapt/assert.h @@ -1,6 +1,8 @@ #include #include +#include + #if __GNUC__ >= 4 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmissing-declarations" @@ -10,7 +12,7 @@ #define equalsNot(x,y) assertEqualsNot(y, x, __LINE__) template < typename X, typename Y > -void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) { +APT_NORETURN void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) { std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl; std::exit(EXIT_FAILURE); } -- cgit v1.2.3-70-g09d2 From 0caa5a4c6472d1b74444c4f38ced6c3b89fa50fe Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 8 Mar 2014 17:29:46 +0100 Subject: do not configure already unpacked packages needlessly The unpack of a M-A:same package will force the unpack of all its siblings directly to prevent that they could be separated by later immediate actions. In commit 634985f8 a call to SmartConfigure was introduced to configure these packages at the time the installation order encounters them. Usually, the unpack order is already okay, so that this 'earlier' unpack was not needed and if it wouldn't have been done, the package would now only be unpacked, but by configuring the package now we impose new requirements which must be satisfied. The code is clever enough to handle this most of the time (it worked for 2 years!), but it isn't needed and in very coupled cases this can fail. Removing this call again removes this extra burden and so simplifies the ordering as can be seen in the modified tests. Famous last words, but I don't see a reason for this extra burden to exist hence the remove. Closes: 740843 --- apt-pkg/packagemanager.cc | 17 +++---- test/integration/framework | 14 ++++-- .../test-bug-740843-versioned-up-down-breaks | 55 ++++++++++++++++++++++ test/integration/test-bug-multiarch-upgrade | 4 +- .../test-ignore-provides-if-versioned-breaks | 4 +- .../test-ignore-provides-if-versioned-conflicts | 4 +- ...prevent-markinstall-multiarch-same-versionscrew | 8 ++-- ...ight-loop-configure-with-unpacking-new-packages | 4 +- 8 files changed, 82 insertions(+), 28 deletions(-) create mode 100755 test/integration/test-bug-740843-versioned-up-down-breaks (limited to 'test') diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index 4d08fb3ba..5d6bc6bd2 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -622,6 +622,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c clog << " (replace version " << Pkg.CurrentVer().VerStr() << " with " << InstallVer.VerStr() << ")"; if (PkgLoop) clog << " (Only Perform PreUnpack Checks)"; + if (Immediate) + clog << " immediately"; clog << endl; } @@ -963,21 +965,14 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall() for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I) { PkgIterator Pkg(Cache,*I); - + if (List->IsNow(Pkg) == false) { - if (!List->IsFlag(Pkg,pkgOrderList::Configured) && !NoImmConfigure) { - if (SmartConfigure(Pkg, 0) == false && Debug) - _error->Warning("Internal Error, Could not configure %s",Pkg.FullName().c_str()); - // FIXME: The above warning message might need changing - } else { - if (Debug == true) - clog << "Skipping already done " << Pkg.FullName() << endl; - } + if (Debug == true) + clog << "Skipping already done " << Pkg.FullName() << endl; continue; - } - + if (List->IsMissing(Pkg) == true) { if (Debug == true) diff --git a/test/integration/framework b/test/integration/framework index 83deafe88..d66171783 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -1010,11 +1010,15 @@ testequalor2() { shift 2 msgtest "Test for equality OR of" "$*" $* >$COMPAREAGAINST 2>&1 || true - (checkdiff $COMPAREFILE1 $COMPAREAGAINST 1> /dev/null || - checkdiff $COMPAREFILE2 $COMPAREAGAINST 1> /dev/null) && msgpass || - ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(checkdiff $COMPAREFILE1 $COMPAREAGAINST)" \ - "\n${CINFO}Diff against OR 2${CNORMAL}" "$(checkdiff $COMPAREFILE2 $COMPAREAGAINST)" && - msgfail ) + if checkdiff $COMPAREFILE1 $COMPAREAGAINST 1> /dev/null || checkdiff $COMPAREFILE2 $COMPAREAGAINST 1> /dev/null; then + msgpass + else + echo -n "\n${CINFO}Diff against OR 1${CNORMAL}" + checkdiff $COMPAREFILE1 $COMPAREAGAINST || true + echo -n "${CINFO}Diff against OR 2${CNORMAL}" + checkdiff $COMPAREFILE2 $COMPAREAGAINST || true + msgfail + fi } testshowvirtual() { diff --git a/test/integration/test-bug-740843-versioned-up-down-breaks b/test/integration/test-bug-740843-versioned-up-down-breaks new file mode 100755 index 000000000..cb035a71f --- /dev/null +++ b/test/integration/test-bug-740843-versioned-up-down-breaks @@ -0,0 +1,55 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' 'i386' + +insertinstalledpackage 'foo-driver' 'amd64' '1' 'Depends: libfoo (= 1) +Recommends: libgl1-foo-glx (= 1) +Breaks: libgl1-foo-glx (<< 1), libgl1-foo-glx (>> 1)' +insertinstalledpackage 'libgl1-foo-glx' 'amd64,i386' '1' 'Depends: libfoo (= 1) +Multi-Arch: same' +insertinstalledpackage 'libfoo' 'amd64,i386' '1' 'Multi-Arch: same' + +buildsimplenativepackage 'foo-driver' 'amd64' '2' 'stable' 'Depends: libfoo (= 2) +Recommends: libgl1-foo-glx (= 2) +Breaks: libgl1-foo-glx (<< 2), libgl1-foo-glx (>> 2)' +buildsimplenativepackage 'libgl1-foo-glx' 'amd64,i386' '2' 'stable' 'Depends: libfoo (= 2) +Multi-Arch: same' +buildsimplenativepackage 'libfoo' 'amd64,i386' '2' 'stable' 'Multi-Arch: same' + +setupaptarchive + +testequalor2 'Reading package lists... +Building dependency tree... +The following packages will be upgraded: + foo-driver libfoo libfoo:i386 libgl1-foo-glx libgl1-foo-glx:i386 +5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst libgl1-foo-glx [1] (2 stable [amd64]) [libgl1-foo-glx:amd64 on libgl1-foo-glx:i386] [libgl1-foo-glx:i386 on libgl1-foo-glx:amd64] [foo-driver:amd64 on libgl1-foo-glx:amd64] [libgl1-foo-glx:i386 foo-driver:amd64 ] +Inst libgl1-foo-glx:i386 [1] (2 stable [i386]) [foo-driver:amd64 on libgl1-foo-glx:amd64] [foo-driver:amd64 on libgl1-foo-glx:i386] [foo-driver:amd64 ] +Inst foo-driver [1] (2 stable [amd64]) [] +Inst libfoo:i386 [1] (2 stable [i386]) [libfoo:amd64 on libfoo:i386] [libfoo:i386 on libfoo:amd64] [libfoo:amd64 ] +Inst libfoo [1] (2 stable [amd64]) +Conf libfoo:i386 (2 stable [i386]) +Conf libfoo (2 stable [amd64]) +Conf libgl1-foo-glx:i386 (2 stable [i386]) +Conf libgl1-foo-glx (2 stable [amd64]) +Conf foo-driver (2 stable [amd64])' 'Reading package lists... +Building dependency tree... +The following packages will be upgraded: + foo-driver libfoo libfoo:i386 libgl1-foo-glx libgl1-foo-glx:i386 +5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst libgl1-foo-glx [1] (2 stable [amd64]) [foo-driver:amd64 on libgl1-foo-glx:amd64] [libgl1-foo-glx:amd64 on libgl1-foo-glx:i386] [libgl1-foo-glx:i386 on libgl1-foo-glx:amd64] [foo-driver:amd64 libgl1-foo-glx:i386 ] +Inst libgl1-foo-glx:i386 [1] (2 stable [i386]) [foo-driver:amd64 on libgl1-foo-glx:amd64] [foo-driver:amd64 on libgl1-foo-glx:i386] [foo-driver:amd64 ] +Inst foo-driver [1] (2 stable [amd64]) [] +Inst libfoo:i386 [1] (2 stable [i386]) [libfoo:amd64 on libfoo:i386] [libfoo:i386 on libfoo:amd64] [libfoo:amd64 ] +Inst libfoo [1] (2 stable [amd64]) +Conf libfoo:i386 (2 stable [i386]) +Conf libfoo (2 stable [amd64]) +Conf libgl1-foo-glx:i386 (2 stable [i386]) +Conf libgl1-foo-glx (2 stable [amd64]) +Conf foo-driver (2 stable [amd64])' aptget dist-upgrade -s + +testsuccess aptget dist-upgrade -y -o Debug::pkgPackageManager=1 -o Debug::pkgOrderList=1 diff --git a/test/integration/test-bug-multiarch-upgrade b/test/integration/test-bug-multiarch-upgrade index dc3725df1..c29e1f903 100755 --- a/test/integration/test-bug-multiarch-upgrade +++ b/test/integration/test-bug-multiarch-upgrade @@ -25,5 +25,5 @@ The following packages will be upgraded: 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Inst libcups2 [1] (2 unstable [amd64]) [libcups2:amd64 on libcups2:i386] [libcups2:i386 on libcups2:amd64] [libcups2:i386 ] Inst libcups2:i386 [1] (2 unstable [i386]) -Conf libcups2 (2 unstable [amd64]) -Conf libcups2:i386 (2 unstable [i386])' aptget install -s libcups2:i386 +Conf libcups2:i386 (2 unstable [i386]) +Conf libcups2 (2 unstable [amd64])' aptget install -s libcups2:i386 diff --git a/test/integration/test-ignore-provides-if-versioned-breaks b/test/integration/test-ignore-provides-if-versioned-breaks index f8b4544a0..745f7d206 100755 --- a/test/integration/test-ignore-provides-if-versioned-breaks +++ b/test/integration/test-ignore-provides-if-versioned-breaks @@ -142,9 +142,9 @@ The following packages will be upgraded: 2 upgraded, 2 newly installed, 0 to remove and 2 not upgraded. Inst foo-same:amd64 [2.0] (4.0 unstable [amd64]) [foo-same:amd64 on foo-same:i386] [foo-same:i386 on foo-same:amd64] [foo-same:i386 ] Inst foo-same [2.0] (4.0 unstable [i386]) -Conf foo-same:amd64 (4.0 unstable [amd64]) -Conf foo-same (4.0 unstable [i386]) Inst foo-same-breaker-3 (1.0 unstable [i386]) Inst foo-same-provider (1.0 unstable [i386]) +Conf foo-same (4.0 unstable [i386]) +Conf foo-same:amd64 (4.0 unstable [amd64]) Conf foo-same-breaker-3 (1.0 unstable [i386]) Conf foo-same-provider (1.0 unstable [i386])' aptget install foo-same-provider foo-same-breaker-3 -s diff --git a/test/integration/test-ignore-provides-if-versioned-conflicts b/test/integration/test-ignore-provides-if-versioned-conflicts index 44eafcff1..a07252768 100755 --- a/test/integration/test-ignore-provides-if-versioned-conflicts +++ b/test/integration/test-ignore-provides-if-versioned-conflicts @@ -142,9 +142,9 @@ The following packages will be upgraded: 2 upgraded, 2 newly installed, 0 to remove and 2 not upgraded. Inst foo-same:amd64 [2.0] (4.0 unstable [amd64]) [foo-same:amd64 on foo-same:i386] [foo-same:i386 on foo-same:amd64] [foo-same:i386 ] Inst foo-same [2.0] (4.0 unstable [i386]) -Conf foo-same:amd64 (4.0 unstable [amd64]) -Conf foo-same (4.0 unstable [i386]) Inst foo-same-breaker-3 (1.0 unstable [i386]) Inst foo-same-provider (1.0 unstable [i386]) +Conf foo-same (4.0 unstable [i386]) +Conf foo-same:amd64 (4.0 unstable [amd64]) Conf foo-same-breaker-3 (1.0 unstable [i386]) Conf foo-same-provider (1.0 unstable [i386])' aptget install foo-same-provider foo-same-breaker-3 -s diff --git a/test/integration/test-prevent-markinstall-multiarch-same-versionscrew b/test/integration/test-prevent-markinstall-multiarch-same-versionscrew index fed12dad0..d647856cb 100755 --- a/test/integration/test-prevent-markinstall-multiarch-same-versionscrew +++ b/test/integration/test-prevent-markinstall-multiarch-same-versionscrew @@ -55,14 +55,14 @@ Remv out-of-sync-gone-foreign:i386 [1] Remv out-of-sync-gone-native [1] Inst fine [1] (2 unstable [amd64]) [fine:amd64 on fine:i386] [fine:i386 on fine:amd64] [fine:i386 ] Inst fine:i386 [1] (2 unstable [i386]) -Conf fine (2 unstable [amd64]) -Conf fine:i386 (2 unstable [i386]) Inst fine-installed [1] (2 unstable [amd64]) [fine-installed:amd64 on fine-installed:i386] [fine-installed:i386 on fine-installed:amd64] [fine-installed:i386 ] Inst fine-installed:i386 [1] (2 unstable [i386]) -Conf fine-installed (2 unstable [amd64]) -Conf fine-installed:i386 (2 unstable [i386]) Inst out-of-sync-gone-foreign [1] (2 unstable [amd64]) Inst out-of-sync-gone-native:i386 [1] (2 unstable [i386]) +Conf fine:i386 (2 unstable [i386]) +Conf fine (2 unstable [amd64]) +Conf fine-installed:i386 (2 unstable [i386]) +Conf fine-installed (2 unstable [amd64]) Conf out-of-sync-gone-foreign (2 unstable [amd64]) Conf out-of-sync-gone-native:i386 (2 unstable [i386])' aptget dist-upgrade -s #-o Debug::pkgDepCache::Marker=1 diff --git a/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages b/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages index 5856cd744..c1d454f88 100755 --- a/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages +++ b/test/integration/test-very-tight-loop-configure-with-unpacking-new-packages @@ -39,9 +39,9 @@ Inst libreoffice-core [3] (4 sid [amd64]) [libreoffice-core:amd64 on libreoffice Inst libreoffice-common [3] (4 sid [all]) [] Inst ure (4 sid [amd64]) Conf ure (4 sid [amd64]) -Conf libreoffice-style-galaxy (4 sid [amd64]) Conf libreoffice-common (4 sid [all]) Conf libreoffice-core (4 sid [amd64]) +Conf libreoffice-style-galaxy (4 sid [amd64]) Conf libreoffice (4 sid [amd64])' 'Reading package lists... Building dependency tree... The following NEW packages will be installed: @@ -55,7 +55,7 @@ Inst libreoffice-core [3] (4 sid [amd64]) [libreoffice-common:amd64 on libreoffi Inst libreoffice-common [3] (4 sid [all]) [] Inst ure (4 sid [amd64]) Conf ure (4 sid [amd64]) -Conf libreoffice-style-galaxy (4 sid [amd64]) Conf libreoffice-common (4 sid [all]) Conf libreoffice-core (4 sid [amd64]) +Conf libreoffice-style-galaxy (4 sid [amd64]) Conf libreoffice (4 sid [amd64])' aptget dist-upgrade -s -- cgit v1.2.3-70-g09d2 From 1e071c30340ef6b0f8279440a9fd369f27e9b34b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 8 Mar 2014 17:42:11 +0100 Subject: simplify apt-cdrom testcode Git-Dch: Ignore --- test/integration/test-apt-cdrom | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'test') diff --git a/test/integration/test-apt-cdrom b/test/integration/test-apt-cdrom index cc3483f9b..caaa351c0 100755 --- a/test/integration/test-apt-cdrom +++ b/test/integration/test-apt-cdrom @@ -24,9 +24,13 @@ cd - > /dev/null addtrap 'prefix' "chmod -R +w $PWD/rootdir/media/cdrom/dists/;" chmod -R -w rootdir/media/cdrom/dists -aptcdrom add -m -o quiet=1 > apt-cdrom.log 2>&1 -sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log -testfileequal apt-cdrom.log "Scanning disc for index files.. +aptcdromlog() { + rm -f rootdir/tmp/apt-cdrom.log + aptcdrom "$@" -o quiet=1 >rootdir/tmp/apt-cdrom.log 2>&1 + sed -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' rootdir/tmp/apt-cdrom.log +} + +testequal "Scanning disc for index files.. Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures Found label 'Debian APT Testdisk 0.8.15' This disc is called: @@ -35,7 +39,9 @@ Writing new source list Source list entries for this disc are: deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main -Repeat this process for the rest of the CDs in your set." +Repeat this process for the rest of the CDs in your set." aptcdromlog add -m + +testequal 'Stored label: Debian APT Testdisk 0.8.15' aptcdromlog ident -m testequal 'Reading package lists... Building dependency tree... @@ -54,9 +60,7 @@ Inst testing:i386 (0.8.15 stable [i386]) Conf testing:i386 (0.8.15 stable [i386])' aptget install testing:i386 -s # check Idempotence of apt-cdrom (and disabling of Translation dropping) -aptcdrom add -m -o quiet=1 -o APT::CDROM::DropTranslation=0 > apt-cdrom.log 2>&1 -sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log -testfileequal apt-cdrom.log "Scanning disc for index files.. +testequal "Scanning disc for index files.. Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures This disc is called: 'Debian APT Testdisk 0.8.15' @@ -64,12 +68,10 @@ Writing new source list Source list entries for this disc are: deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main -Repeat this process for the rest of the CDs in your set." +Repeat this process for the rest of the CDs in your set." aptcdromlog add -m -o APT::CDROM::DropTranslation=0 # take Translations from previous runs as needed -aptcdrom add -m -o quiet=1 > apt-cdrom.log 2>&1 -sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log -testfileequal apt-cdrom.log "Scanning disc for index files.. +testequal "Scanning disc for index files.. Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures This disc is called: 'Debian APT Testdisk 0.8.15' @@ -77,14 +79,12 @@ Writing new source list Source list entries for this disc are: deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main -Repeat this process for the rest of the CDs in your set." +Repeat this process for the rest of the CDs in your set." aptcdromlog add -m msgtest 'Test for the german description translation of' 'testing' aptcache show testing -o Acquire::Languages=de | grep -q '^Description-de: ' && msgpass || msgfail rm -rf rootdir/var/lib/apt/lists mkdir -p rootdir/var/lib/apt/lists/partial -aptcdrom add -m -o quiet=1 > apt-cdrom.log 2>&1 -sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log -testfileequal apt-cdrom.log "Scanning disc for index files.. +testequal "Scanning disc for index files.. Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures This disc is called: 'Debian APT Testdisk 0.8.15' @@ -92,7 +92,7 @@ Writing new source list Source list entries for this disc are: deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main -Repeat this process for the rest of the CDs in your set." +Repeat this process for the rest of the CDs in your set." aptcdromlog add -m msgtest 'Test for the english description translation of' 'testing' aptcache show testing -o Acquire::Languages=en | grep -q '^Description-en: ' && msgpass || msgfail -- cgit v1.2.3-70-g09d2 From a0975c8d97f06ac116c5cea9a98993817ced0e86 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Mar 2014 00:43:21 +0100 Subject: enable mount support for apt-cdrom in the tests Git-Dch: Ignore --- test/integration/framework | 13 +++++-- test/integration/test-apt-cdrom | 78 ++++++++++++++++++++++------------------- 2 files changed, 51 insertions(+), 40 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index d66171783..bf6fa0218 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -932,16 +932,23 @@ connect = 8080 changetocdrom() { mkdir -p rootdir/media/cdrom/.disk local CD="$(readlink -f rootdir/media/cdrom)" - echo "acquire::cdrom::mount \"${CD}\";" > rootdir/etc/apt/apt.conf.d/00cdrom - echo 'acquire::cdrom::autodetect 0;' >> rootdir/etc/apt/apt.conf.d/00cdrom + echo "acquire::cdrom::mount \"${CD}\"; +acquire::cdrom::${CD}/::mount \"mv ${CD}-unmounted ${CD}\"; +acquire::cdrom::${CD}/::umount \"mv ${CD} ${CD}-unmounted\"; +acquire::cdrom::autodetect 0;" > rootdir/etc/apt/apt.conf.d/00cdrom echo -n "$1" > ${CD}/.disk/info if [ ! -d aptarchive/dists ]; then msgdie 'Flat file archive cdroms can not be created currently' return 1 fi - mv aptarchive/dists $CD + mv aptarchive/dists "$CD" ln -s "$(readlink -f ./incoming)" $CD/pool find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list' -delete + # start with an unmounted disk + mv "${CD}" "${CD}-unmounted" + # we don't want the disk to be modifiable + addtrap 'prefix' "chmod -f -R +w $PWD/rootdir/media/cdrom/dists/ $PWD/rootdir/media/cdrom-unmounted/dists/ || true;" + chmod -R -w rootdir/media/cdrom-unmounted/dists } downloadfile() { diff --git a/test/integration/test-apt-cdrom b/test/integration/test-apt-cdrom index caaa351c0..fddd26bd9 100755 --- a/test/integration/test-apt-cdrom +++ b/test/integration/test-apt-cdrom @@ -12,36 +12,59 @@ setupaptarchive --no-update changetocdrom 'Debian APT Testdisk 0.8.15' # -de is not in the Release file, but picked up anyway for compatibility -cd rootdir/media/cdrom/dists/stable/main/i18n +cd rootdir/media/cdrom-unmounted/dists/stable/main/i18n +chmod +w . sed -e '/^Description-en:/ d' -e '/^ / d' -e '/^$/ d' Translation-en > Translation-de echo 'Description-de: automatisch generiertes Testpaket testing=0.8.15/stable Diese Pakete sind nur für das testen von APT gedacht, sie erfüllen keinen Zweck auf einem normalen System… ' >> Translation-de compressfile Translation-de -rm Translation-en Translation-de +rm -f Translation-en Translation-de +chmod -R -w . cd - > /dev/null -addtrap 'prefix' "chmod -R +w $PWD/rootdir/media/cdrom/dists/;" -chmod -R -w rootdir/media/cdrom/dists aptcdromlog() { rm -f rootdir/tmp/apt-cdrom.log - aptcdrom "$@" -o quiet=1 >rootdir/tmp/apt-cdrom.log 2>&1 - sed -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' rootdir/tmp/apt-cdrom.log + test ! -e rootdir/media/cdrom || echo "CD-ROM is mounted, but shouldn't be!" + test -e rootdir/media/cdrom-unmounted || echo "Unmounted CD-ROM doesn't exist, but it should!" + aptcdrom "$@" -o quiet=1 >rootdir/tmp/apt-cdrom.log 2>&1 Date: Mon, 10 Mar 2014 01:49:37 +0100 Subject: support very long mtab entries in mountpoint discovery MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Old code limited lines to 250 characters which is probably enough for everybody, but who knows… It also takes care of device nodes which start with the same prefix. --- apt-pkg/contrib/cdromutl.cc | 48 ++++++++++++------------ test/libapt/cdromfindmountpointfordevice_test.cc | 26 +++++++++++++ test/libapt/makefile | 6 +++ test/libapt/run-tests | 8 ++++ 4 files changed, 63 insertions(+), 25 deletions(-) create mode 100644 test/libapt/cdromfindmountpointfordevice_test.cc (limited to 'test') diff --git a/apt-pkg/contrib/cdromutl.cc b/apt-pkg/contrib/cdromutl.cc index f850e08a5..936e377fb 100644 --- a/apt-pkg/contrib/cdromutl.cc +++ b/apt-pkg/contrib/cdromutl.cc @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -262,37 +263,34 @@ bool IdentCdrom(string CD,string &Res,unsigned int Version) return true; } /*}}}*/ - // FindMountPointForDevice - Find mountpoint for the given device /*{{{*/ string FindMountPointForDevice(const char *devnode) { - char buf[255]; - char *out[10]; - int i=0; - // this is the order that mount uses as well - const char *mount[] = { "/etc/mtab", - "/proc/mount", - NULL }; + std::vector const mounts = _config->FindVector("Dir::state::MountPoints", "/etc/mtab,/proc/mount"); - for (i=0; mount[i] != NULL; i++) { - if (FileExists(mount[i])) { - FILE *f=fopen(mount[i], "r"); - while ( fgets(buf, sizeof(buf), f) != NULL) { - if (strncmp(buf, devnode, strlen(devnode)) == 0) { - if(TokSplitString(' ', buf, out, 10)) - { - fclose(f); - // unescape the \0XXX chars in the path - string mount_point = out[1]; - return DeEscapeString(mount_point); - } - } - } - fclose(f); + for (std::vector::const_iterator m = mounts.begin(); m != mounts.end(); ++m) + if (FileExists(*m) == true) + { + char * line = NULL; + size_t line_len = 0; + FILE * f = fopen(m->c_str(), "r"); + while(getline(&line, &line_len, f) != -1) + { + char * out[] = { NULL, NULL, NULL }; + TokSplitString(' ', line, out, 3); + if (out[2] != NULL || out[1] == NULL || out[0] == NULL) + continue; + if (strcmp(out[0], devnode) != 0) + continue; + fclose(f); + // unescape the \0XXX chars in the path + string mount_point = out[1]; + return DeEscapeString(mount_point); + } + fclose(f); } - } - + return string(); } /*}}}*/ diff --git a/test/libapt/cdromfindmountpointfordevice_test.cc b/test/libapt/cdromfindmountpointfordevice_test.cc new file mode 100644 index 000000000..26dcd1459 --- /dev/null +++ b/test/libapt/cdromfindmountpointfordevice_test.cc @@ -0,0 +1,26 @@ +#include + +#include +#include + +#include +#include + +#include "assert.h" + +int main(int argc, char const *argv[]) { + if (argc != 2) { + std::cout << "One parameter expected - given " << argc << std::endl; + return 100; + } + + _config->Set("Dir::state::Mountpoints", argv[1]); + equals("/", FindMountPointForDevice("rootfs")); + equals("/", FindMountPointForDevice("/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21")); + equals("/sys", FindMountPointForDevice("sysfs")); + equals("/sys0", FindMountPointForDevice("sysfs0")); + equals("/boot/efi", FindMountPointForDevice("/dev/sda1")); + equals("/tmp", FindMountPointForDevice("tmpfs")); + + return 0; +} diff --git a/test/libapt/makefile b/test/libapt/makefile index a8e053d6e..66d6ea783 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -94,6 +94,12 @@ SLIBS = -lapt-pkg SOURCE = cdromreducesourcelist_test.cc include $(PROGRAM_H) +# test cdroms FindMountPointForDevice for udev autodetection +PROGRAM = CdromFindMountPointForDevice${BASENAME} +SLIBS = -lapt-pkg +SOURCE = cdromfindmountpointfordevice_test.cc +include $(PROGRAM_H) + # test IndexCopy::ConvertToSourceList PROGRAM = IndexCopyToSourceList${BASENAME} SLIBS = -lapt-pkg diff --git a/test/libapt/run-tests b/test/libapt/run-tests index a056f31f9..0baedcf9e 100755 --- a/test/libapt/run-tests +++ b/test/libapt/run-tests @@ -108,6 +108,14 @@ do "${tmppath}/dists/unstable/InRelease" \ "${tmppath}/dists/broken/Release.gpg" ln -s "${tmppath}/dists/unstable" "${tmppath}/dists/sid" + elif [ $name = "CdromFindMountPointForDevice${EXT}" ]; then + tmppath=$(mktemp) + echo 'rootfs / rootfs rw 0 0 +sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 +sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0 +/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0 +/dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0 +tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0' > $tmppath fi echo -n "Testing with ${NAME} " -- cgit v1.2.3-70-g09d2 From 1166ea79889ecd6c88380f7988182647cf787f8f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Mar 2014 02:54:33 +0100 Subject: msgstr with elipses need three dots fixes some messages and their translation so that all of them have three dots for messages with an elipse. Many translations already had this. --- apt-pkg/cdrom.cc | 6 +++--- apt-private/private-install.cc | 2 +- po/ar.po | 15 +++++---------- po/ast.po | 16 ++++++---------- po/bg.po | 12 ++++-------- po/bs.po | 10 +++------- po/ca.po | 12 ++++-------- po/cs.po | 10 +++------- po/cy.po | 10 +++------- po/da.po | 22 +++++++++------------- po/de.po | 10 +++------- po/dz.po | 14 +++++--------- po/el.po | 10 +++------- po/es.po | 14 +++++--------- po/eu.po | 12 ++++-------- po/fi.po | 10 +++------- po/fr.po | 10 +++------- po/gl.po | 12 ++++-------- po/he.po | 10 +++------- po/hu.po | 10 +++------- po/it.po | 10 +++------- po/ja.po | 14 +++++--------- po/km.po | 14 +++++--------- po/ko.po | 12 ++++-------- po/ku.po | 10 +++------- po/lt.po | 14 +++++--------- po/mr.po | 14 +++++--------- po/nb.po | 14 +++++--------- po/ne.po | 12 ++++-------- po/nl.po | 10 +++------- po/nn.po | 13 ++++--------- po/pl.po | 14 +++++--------- po/pt.po | 16 ++++++---------- po/pt_BR.po | 16 ++++++---------- po/ro.po | 16 ++++++---------- po/ru.po | 14 +++++--------- po/sk.po | 14 +++++--------- po/sl.po | 14 +++++--------- po/sv.po | 18 +++++++----------- po/th.po | 16 ++++++---------- po/tl.po | 15 +++++---------- po/tr.po | 14 +++++--------- po/uk.po | 16 ++++++---------- po/vi.po | 10 +++------- po/zh_CN.po | 14 +++++--------- po/zh_TW.po | 14 +++++--------- test/integration/test-apt-cdrom | 4 ++-- 47 files changed, 205 insertions(+), 384 deletions(-) (limited to 'test') diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index dd6d51e97..2635ede76 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -584,7 +584,7 @@ bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, s if (interactive == true) { if(log != NULL) - log->Update(_("Unmounting CD-ROM\n"), STEP_UNMOUNT); + log->Update(_("Unmounting CD-ROM...\n"), STEP_LAST); UnmountCdrom(CDROM); if(log != NULL) @@ -607,7 +607,7 @@ bool pkgCdrom::MountAndIdentCDROM(Configuration &Database, std::string &CDROM, s // Hash the CD to get an ID if (log != NULL) - log->Update(_("Identifying.. "), STEP_IDENT); + log->Update(_("Identifying... "), STEP_IDENT); if (IdentCdrom(CDROM,ident) == false) { @@ -669,7 +669,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log) /*{{{*/ return false; if(log != NULL) - log->Update(_("Scanning disc for index files..\n"),STEP_SCAN); + log->Update(_("Scanning disc for index files...\n"),STEP_SCAN); // Get the CD structure vector List; diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index 8092af939..107ed398e 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -144,7 +144,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask, bool Safety) if (DebBytes != Cache->DebSize()) { c0out << DebBytes << ',' << Cache->DebSize() << std::endl; - c0out << _("How odd.. The sizes didn't match, email apt@packages.debian.org") << std::endl; + c0out << _("How odd... The sizes didn't match, email apt@packages.debian.org") << std::endl; } // Number of bytes diff --git a/po/ar.po b/po/ar.po index 959f1549f..123e762a7 100644 --- a/po/ar.po +++ b/po/ar.po @@ -1020,8 +1020,8 @@ msgid "Internal error, Ordering didn't finish" msgstr "خطأ داخلي، لم تنته عملية الترتيب" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "يا للغرابة.. لم تتطابق الأحجام، الرجاء مراسلة apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" +msgstr "يا للغرابة... لم تتطابق الأحجام، الرجاء مراسلة apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -2932,10 +2932,6 @@ msgstr "" msgid "Using CD-ROM mount point %s\n" msgstr "" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "فك تركيب القرص المدمج\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "بانتظار القرص...\n" @@ -2945,7 +2941,7 @@ msgid "Mounting CD-ROM...\n" msgstr "تركيب القرص...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "جاري التعرف..." #: apt-pkg/cdrom.cc:643 @@ -2954,12 +2950,11 @@ msgid "Stored label: %s\n" msgstr "" #: apt-pkg/cdrom.cc:652 apt-pkg/cdrom.cc:888 -#, fuzzy msgid "Unmounting CD-ROM...\n" -msgstr "فك تركيب القرص المدمج..." +msgstr "فك تركيب القرص المدمج...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "" #: apt-pkg/cdrom.cc:717 diff --git a/po/ast.po b/po/ast.po index 4adfc036a..7e9f8b827 100644 --- a/po/ast.po +++ b/po/ast.po @@ -1129,8 +1129,8 @@ msgid "Internal error, Ordering didn't finish" msgstr "Error internu, ordenar nun finó" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "Que raro.. Los tamaños nun concasen, escribe a apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" +msgstr "Que raro... Los tamaños nun concasen, escribe a apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3161,10 +3161,6 @@ msgstr "El bloque de fornidor %s nun contién una buelga dixital" msgid "Using CD-ROM mount point %s\n" msgstr "Usando el puntu de montaxe de CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Desmontando'l CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Esperando'l discu...\n" @@ -3174,8 +3170,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Montando'l CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identificando.. " +msgid "Identifying... " +msgstr "Identificando... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3184,10 +3180,10 @@ msgstr "Etiqueta guardada: %s\n" #: apt-pkg/cdrom.cc:652 apt-pkg/cdrom.cc:888 msgid "Unmounting CD-ROM...\n" -msgstr "Desmontando l CD-ROM...\n" +msgstr "Desmontando'l CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Buscando nel discu ficheros d'índices...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/bg.po b/po/bg.po index 2ac50d677..7c30864e8 100644 --- a/po/bg.po +++ b/po/bg.po @@ -1161,9 +1161,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Вътрешна грешка, „Ordering“ не завърши" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Странно.. Размерите не съвпадат, изпратете е-поща на apt@packages.debian.org" +"Странно... Размерите не съвпадат, изпратете е-поща на apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3217,10 +3217,6 @@ msgstr "Блокът на производителя %s не съдържа от msgid "Using CD-ROM mount point %s\n" msgstr "Използване на точка за монтиране на CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Демонтиране на CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Чакане за диск...\n" @@ -3230,7 +3226,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Монтиране на CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Идентифициране..." #: apt-pkg/cdrom.cc:643 @@ -3243,7 +3239,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Демонтиране на CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Сканиране на диска за индексни файлове...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/bs.po b/po/bs.po index a336a4edf..ba1935da2 100644 --- a/po/bs.po +++ b/po/bs.po @@ -1025,7 +1025,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" #. TRANSLATOR: The required space between number and unit is already included @@ -2924,10 +2924,6 @@ msgstr "" msgid "Using CD-ROM mount point %s\n" msgstr "" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "" - #: apt-pkg/cdrom.cc:588 #, fuzzy msgid "Waiting for disc...\n" @@ -2938,7 +2934,7 @@ msgid "Mounting CD-ROM...\n" msgstr "" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "" #: apt-pkg/cdrom.cc:643 @@ -2952,7 +2948,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Pogrešan CD" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "" #: apt-pkg/cdrom.cc:717 diff --git a/po/ca.po b/po/ca.po index a4779b71a..a30f1fd28 100644 --- a/po/ca.po +++ b/po/ca.po @@ -1148,7 +1148,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "S'ha produït un error intern, l'ordenació no ha acabat" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Què estrany… les mides no coincideixen, informeu a apt@packages.debian.org" @@ -3201,10 +3201,6 @@ msgstr "El camp del proveïdor %s no té una empremta digital" msgid "Using CD-ROM mount point %s\n" msgstr "S'està utilitzant el punt de muntatge de CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "S'està desmuntant el CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "S'està esperant al disc…\n" @@ -3214,7 +3210,7 @@ msgid "Mounting CD-ROM...\n" msgstr "S'està muntant el CD-ROM…\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "S'està identificant…" #: apt-pkg/cdrom.cc:643 @@ -3224,10 +3220,10 @@ msgstr "S'ha emmagatzemat l'etiqueta: %s\n" #: apt-pkg/cdrom.cc:652 apt-pkg/cdrom.cc:888 msgid "Unmounting CD-ROM...\n" -msgstr "S'esta desmuntant el CD-ROM…\n" +msgstr "S'està desmuntant el CD-ROM…\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "S'està analitzant el disc per a fitxers d'índex…\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/cs.po b/po/cs.po index c4f21b056..70b3cde8b 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1137,7 +1137,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Vnitřní chyba, třídění nedoběhlo do konce" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Jak podivné… velikosti nesouhlasí, ohlaste to na apt@packages.debian.org" @@ -3159,10 +3159,6 @@ msgstr "Blok výrobce %s neobsahuje otisk klíče" msgid "Using CD-ROM mount point %s\n" msgstr "Používám přípojný bod %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Odpojuji CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Čekám na disk…\n" @@ -3172,7 +3168,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Připojuji CD-ROM…\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Rozpoznávám… " #: apt-pkg/cdrom.cc:643 @@ -3185,7 +3181,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Odpojuji CD-ROM…\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Hledám na disku indexové soubory…\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/cy.po b/po/cy.po index 81731354a..6700b0aa1 100644 --- a/po/cy.po +++ b/po/cy.po @@ -1157,7 +1157,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Gwall Mewnol wrth ychwanegu dargyfeiriad" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" #. TRANSLATOR: The required space between number and unit is already included @@ -3218,10 +3218,6 @@ msgstr "Nid yw'r bloc darparwr %s yn cynnwys ôl bys" msgid "Using CD-ROM mount point %s\n" msgstr "" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "" - #: apt-pkg/cdrom.cc:588 #, fuzzy msgid "Waiting for disc...\n" @@ -3232,7 +3228,7 @@ msgid "Mounting CD-ROM...\n" msgstr "" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "" #: apt-pkg/cdrom.cc:643 @@ -3246,7 +3242,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD Anghywir" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "" #: apt-pkg/cdrom.cc:717 diff --git a/po/da.po b/po/da.po index d8d6e1b66..36abe8cd7 100644 --- a/po/da.po +++ b/po/da.po @@ -1171,8 +1171,8 @@ msgid "Internal error, Ordering didn't finish" msgstr "Intern fejl. Sortering blev ikke fuldført" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "Mystisk.. Størrelserne passede ikke, skriv til apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" +msgstr "Mystisk... Størrelserne passede ikke, skriv til apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3192,11 +3192,7 @@ msgstr "Leverandørblok %s inderholder intet fingeraftryk" #: apt-pkg/cdrom.cc:575 #, c-format msgid "Using CD-ROM mount point %s\n" -msgstr "Bruger cdrom-monteringspunktet %s\n" - -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Afmonterer cdrom\n" +msgstr "Bruger CD-ROM-monteringspunktet %s\n" #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" @@ -3204,11 +3200,11 @@ msgstr "Venter på disken ...\n" #: apt-pkg/cdrom.cc:597 msgid "Mounting CD-ROM...\n" -msgstr "Monterer cdrom ...\n" +msgstr "Monterer CD-ROM ...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identificerer .. " +msgid "Identifying... " +msgstr "Identificerer ... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3217,11 +3213,11 @@ msgstr "Gemt mærkat: %s \n" #: apt-pkg/cdrom.cc:652 apt-pkg/cdrom.cc:888 msgid "Unmounting CD-ROM...\n" -msgstr "Afmonterer cdrom ...\n" +msgstr "Afmonterer CD-ROM ...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Skanner disken for indeksfiler ..\n" +msgid "Scanning disc for index files...\n" +msgstr "Skanner disken for indeksfiler ...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/de.po b/po/de.po index 0ad8cf238..c62f3c9f1 100644 --- a/po/de.po +++ b/po/de.po @@ -1191,7 +1191,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Interner Fehler, Anordnung beendete nicht" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Wie merkwürdig ... die Größen haben nicht übereingestimmt; schreiben Sie " "eine E-Mail an apt@packages.debian.org (auf Englisch bitte)." @@ -3272,10 +3272,6 @@ msgstr "Herstellerblock %s enthält keinen Fingerabdruck." msgid "Using CD-ROM mount point %s\n" msgstr "Verwendeter CD-ROM-Einbindungspunkt: %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Lösen der CD-ROM-Einbindung\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Warten auf Medium ...\n" @@ -3285,7 +3281,7 @@ msgid "Mounting CD-ROM...\n" msgstr "CD-ROM wird eingebunden ...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Identifizieren ... " #: apt-pkg/cdrom.cc:643 @@ -3298,7 +3294,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Einbindung der CD-ROM wird gelöst ...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Durchsuchen des Mediums nach Index-Dateien ...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/dz.po b/po/dz.po index 2bb275d95..2e27d6bcb 100644 --- a/po/dz.po +++ b/po/dz.po @@ -1126,7 +1126,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "ནང་འཁོད་འཛོལ་བ་ གོ་རིམ་བཟོ་ནི་ཚུ་མཇུག་མ་བསྡུ་བས།" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "ག་ཅི་གི་ཡ་མཚན་ཆེ་མི་ཆེ་ ཚད་འདི་གིས་ email apt@packages.debian.org་ལུ་མཐུན་སྒྲིག་མི་འབད་" "བས།" @@ -3143,10 +3143,6 @@ msgstr "%sསིལ་ཚོང་པ་སྡེབ་ཚན་གྱི་ན msgid "Using CD-ROM mount point %s\n" msgstr " %s སི་ཌི-རོམ་སྦྱར་བརྩེགས་ཀྱི་ས་ཚིགས་ལག་ལེན་འཐབ་དོ།\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "སི་ཌི་-རོམ་བརྩེགས་བཤོལ་འབད་དོ།\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "ཌིསིཀ་གི་དོན་ལུ་བསྒུག་དོ...\n" @@ -3156,8 +3152,8 @@ msgid "Mounting CD-ROM...\n" msgstr "སི་ཌི་-རོམ་སྦྱར་བརྩེགས་འབད་དོ...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "ངོས་འཛིན་འབད་དོ.." +msgid "Identifying... " +msgstr "ངོས་འཛིན་འབད་དོ..." #: apt-pkg/cdrom.cc:643 #, c-format @@ -3170,8 +3166,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "སི་ཌི་-རོམ་སྦྱར་བརྩེགས་མ་འབད་བར་བཞག་དོ..." #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "ཟུར་ཐོ་ཡིག་སྣོད་ཚུ་གི་དོན་ལུ་ ཌིསིཀ་ཞིབ་ལྟ་འབད་དོ..\n" +msgid "Scanning disc for index files...\n" +msgstr "ཟུར་ཐོ་ཡིག་སྣོད་ཚུ་གི་དོན་ལུ་ ཌིསིཀ་ཞིབ་ལྟ་འབད་དོ...\n" #: apt-pkg/cdrom.cc:717 #, fuzzy, c-format diff --git a/po/el.po b/po/el.po index 8a17a0faf..4d28fdb1d 100644 --- a/po/el.po +++ b/po/el.po @@ -1141,7 +1141,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Εσωτερικό Σφάλμα, η Ταξινόμηση δεν ολοκληρώθηκε" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Πολύ περίεργο! Τα μεγέθη δεν ταιριάζουν, στείλτε μήνυμα στο apt@packages." "debian.org" @@ -3175,10 +3175,6 @@ msgstr "Η εγγραφή κατασκευαστή %s δεν περιέχει τ msgid "Using CD-ROM mount point %s\n" msgstr "Χρησιμοποιείται το σημείο προσάρτησης %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Αποπροσάρτηση του CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Αναμονή για δίσκο...\n" @@ -3188,7 +3184,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Προσάρτηση του CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Αναγνώριση..." #: apt-pkg/cdrom.cc:643 @@ -3201,7 +3197,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Αποπροσάρτηση του CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Σάρωση του δίσκου για περιεχόμενα...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/es.po b/po/es.po index 4345690fe..ee0d55c29 100644 --- a/po/es.po +++ b/po/es.po @@ -1197,9 +1197,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Error interno, no terminó la ordenación" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Qué raro.. Los tamaños no concuerdan, mande un correo a apt@packages.debian." +"Qué raro... Los tamaños no concuerdan, mande un correo a apt@packages.debian." "org" #. TRANSLATOR: The required space between number and unit is already included @@ -3260,10 +3260,6 @@ msgstr "Bloque de fabricante %s sin huella digital" msgid "Using CD-ROM mount point %s\n" msgstr "Usando el punto de montaje del CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Desmontando el CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Esperando el disco...\n" @@ -3273,8 +3269,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Montando el CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identificando.. " +msgid "Identifying... " +msgstr "Identificando... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3286,7 +3282,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Desmontando el CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Buscando en el disco archivos de índices...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/eu.po b/po/eu.po index c54c859f9..a3a81bd6c 100644 --- a/po/eu.po +++ b/po/eu.po @@ -1125,9 +1125,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Barne errorea, ez da ordenatzeaz amaitu" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Hau bitxia.. Tamainak ez dira berdina, idatzi apt@packages.debian.org-ra " +"Hau bitxia... Tamainak ez dira berdina, idatzi apt@packages.debian.org-ra " "berri emanez (ingelesez)" #. TRANSLATOR: The required space between number and unit is already included @@ -3142,10 +3142,6 @@ msgstr "%s saltzaile blokeak ez du egiaztapen markarik" msgid "Using CD-ROM mount point %s\n" msgstr "%s CD-ROM muntatze puntua erabiltzen\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "CD-ROM-a desmuntatzen\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Diska itxaroten...\n" @@ -3155,7 +3151,7 @@ msgid "Mounting CD-ROM...\n" msgstr "CD-ROM-a muntatzen...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Egiaztatzen... " #: apt-pkg/cdrom.cc:643 @@ -3168,7 +3164,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD-ROM Desmuntatzen...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Indize fitxategien bila diska arakatzen...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/fi.po b/po/fi.po index 78245b153..11c765edf 100644 --- a/po/fi.po +++ b/po/fi.po @@ -1117,7 +1117,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Tapahtui sisäinen virhe, järjestäminen keskeytyi" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "No jo on... Koot eivät täsmää, sähköpostita email apt@packages.debian.org" @@ -3133,10 +3133,6 @@ msgstr "Toimittajan lohkosta %s puuttuu sormenjälki" msgid "Using CD-ROM mount point %s\n" msgstr "Käytetään rompun liitoskohtaa %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Irrotetaan romppu\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Odotetaan levyä...\n" @@ -3146,7 +3142,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Liitetään romppu...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Tunnistetaan... " #: apt-pkg/cdrom.cc:643 @@ -3159,7 +3155,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Irrotetaan romppu...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Etsitään levyltä hakemistotiedostoja...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/fr.po b/po/fr.po index 5503dadb9..f5a93f9c9 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1189,7 +1189,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Erreur interne. Le tri a été interrompu." #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Étrangement, les tailles ne correspondent pas. Veuillez le signaler par " "courriel à apt@packages.debian.org." @@ -3292,10 +3292,6 @@ msgstr "Le bloc de fournisseur %s ne comporte pas d'empreinte" msgid "Using CD-ROM mount point %s\n" msgstr "Utilisation du point de montage %s pour le cédérom\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Démontage du cédérom\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Attente du disque...\n" @@ -3305,7 +3301,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Montage du cédérom...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Identification..." #: apt-pkg/cdrom.cc:643 @@ -3318,7 +3314,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Démontage du cédérom...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Examen du disque à la recherche de fichiers d'index...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/gl.po b/po/gl.po index 2a03773c2..273347481 100644 --- a/po/gl.po +++ b/po/gl.po @@ -1146,7 +1146,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Produciuse un erro interno; non rematou a ordenación" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Que estraño... Os tamaños non coinciden; envíe un correo-e a apt@packages." "debian.org" @@ -3201,10 +3201,6 @@ msgstr "O bloque de provedor %s non contén unha pegada dixital" msgid "Using CD-ROM mount point %s\n" msgstr "Empregando o punto de montaxe de CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Desmontando o CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Agardando polo disco...\n" @@ -3214,7 +3210,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Montando o CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Identificando... " #: apt-pkg/cdrom.cc:643 @@ -3227,8 +3223,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Desmontando o CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Buscando os ficheiros de índices no disco..\n" +msgid "Scanning disc for index files...\n" +msgstr "Buscando os ficheiros de índices no disco...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/he.po b/po/he.po index a2e3cba60..b70ae3b34 100644 --- a/po/he.po +++ b/po/he.po @@ -717,7 +717,7 @@ msgid "The list of sources could not be read." msgstr "רשימת המקורות לא ניתנת לקריאה." #: cmdline/apt-get.cc:836 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" #: cmdline/apt-get.cc:841 @@ -2604,7 +2604,7 @@ msgid "" msgstr "" #: apt-pkg/cdrom.cc:534 apt-pkg/cdrom.cc:622 -msgid "Identifying.. " +msgid "Identifying... " msgstr "" #: apt-pkg/cdrom.cc:559 @@ -2621,10 +2621,6 @@ msgstr "" msgid "Using CD-ROM mount point %s\n" msgstr "" -#: apt-pkg/cdrom.cc:603 -msgid "Unmounting CD-ROM\n" -msgstr "" - #: apt-pkg/cdrom.cc:607 msgid "Waiting for disc...\n" msgstr "" @@ -2635,7 +2631,7 @@ msgid "Mounting CD-ROM...\n" msgstr "" #: apt-pkg/cdrom.cc:633 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "" #: apt-pkg/cdrom.cc:673 diff --git a/po/hu.po b/po/hu.po index c28b83bfa..06c8efb6b 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1159,7 +1159,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Belső hiba, a rendezés nem fejeződött be" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "A méretek nem egyeznek, írjon az apt@packages.debian.org címre" #. TRANSLATOR: The required space between number and unit is already included @@ -3209,10 +3209,6 @@ msgstr "A(z) %s terjesztőblokk nem tartalmaz ujjlenyomatot" msgid "Using CD-ROM mount point %s\n" msgstr "%s CD-ROM csatolási pont használata\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "CD-ROM leválasztása\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Várakozás a lemezre...\n" @@ -3222,7 +3218,7 @@ msgid "Mounting CD-ROM...\n" msgstr "CD-ROM csatolása...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Azonosítás... " #: apt-pkg/cdrom.cc:643 @@ -3235,7 +3231,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD-ROM leválasztása...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Indexfájlok keresése a lemezen...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/it.po b/po/it.po index d15f8f115..b58f1fe10 100644 --- a/po/it.po +++ b/po/it.po @@ -1180,7 +1180,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Errore interno, l'ordinamento non è stato terminato" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Le dimensioni non corrispondono. Inviare un'email a: apt@packages.debian.org" @@ -3263,10 +3263,6 @@ msgstr "Il blocco vendor %s non contiene impronte" msgid "Using CD-ROM mount point %s\n" msgstr "Viene usato il punto di mount del CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Smontaggio CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "In attesa del disco...\n" @@ -3276,7 +3272,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Montaggio CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Identificazione... " #: apt-pkg/cdrom.cc:643 @@ -3289,7 +3285,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Smontaggio CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Analisi del disco per file indice...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/ja.po b/po/ja.po index 39899be0a..f85224cf9 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1160,7 +1160,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "内部エラー、調整が終わっていません" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "おっと、サイズがマッチしません。apt@packages.debian.org にメールしてください" @@ -3197,10 +3197,6 @@ msgstr "ベンダブロック %s は鍵指紋を含んでいません" msgid "Using CD-ROM mount point %s\n" msgstr "CD-ROM マウントポイント %s を使用します\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "CD-ROM をアンマウントしています\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "ディスクを待っています ...\n" @@ -3210,8 +3206,8 @@ msgid "Mounting CD-ROM...\n" msgstr "CD-ROM をマウントしています ...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "確認しています.. " +msgid "Identifying... " +msgstr "確認しています... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3223,8 +3219,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD-ROM をアンマウントしています ...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "ディスクのインデックスファイルを走査しています ..\n" +msgid "Scanning disc for index files...\n" +msgstr "ディスクのインデックスファイルを走査しています ...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/km.po b/po/km.po index bc7f492b9..f0bb75c19 100644 --- a/po/km.po +++ b/po/km.po @@ -1110,7 +1110,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "កំហុស​ខាងក្នុង​ ការ​រៀប​តាម​លំដាប់​មិន​បាន​បញ្ចប់ឡើយ" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "យី អី​ក៏​ចម្លែង​ម្លេះ.. ទំហំ​មិន​ដូច​គ្នា​ឡើយ ។ សូម​ផ្ញើ​អ៊ីមែល​ទៅ apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included @@ -3110,10 +3110,6 @@ msgstr "ប្លុក​ក្រុមហ៊ុន​លក់​ %s គ្ msgid "Using CD-ROM mount point %s\n" msgstr "ប្រើប្រាស់ចំណុចម៉ោន​ ស៊ីឌី​-រ៉ូម​ %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "ការមិនម៉ោន​ ស៊ីឌី-រ៉ូម​\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "កំពុង​រង់ចាំឌីស​...\n" @@ -3123,8 +3119,8 @@ msgid "Mounting CD-ROM...\n" msgstr "កំពុង​ម៉ោន​ ស៊ីឌី​-រ៉ូម​...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "កំពុង​ធ្វើអត្តសញ្ញាណនា​.. " +msgid "Identifying... " +msgstr "កំពុង​ធ្វើអត្តសញ្ញាណនា​... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3137,8 +3133,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "មិនកំពុងម៉ោន ស៊ីឌី​-រ៉ូម​ ទេ..." #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "កំពុង​ស្កេន​ឌីស​សម្រាប់​​ឯកសារ​លិបិក្រម​..\n" +msgid "Scanning disc for index files...\n" +msgstr "កំពុង​ស្កេន​ឌីស​សម្រាប់​​ឯកសារ​លិបិក្រម​...\n" #: apt-pkg/cdrom.cc:717 #, fuzzy, c-format diff --git a/po/ko.po b/po/ko.po index f6524c6dc..8b7f9ca86 100644 --- a/po/ko.po +++ b/po/ko.po @@ -1118,7 +1118,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "내부 오류. 순서변경작업이 끝나지 않았습니다" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "이상하게도 크기가 서로 다릅니다. apt@packages.debian.org로 이메일을 보내주십" "시오." @@ -3131,10 +3131,6 @@ msgstr "벤더 블럭 %s의 핑거프린트가 없습니다" msgid "Using CD-ROM mount point %s\n" msgstr "CD-ROM 마운트 위치 %s 사용\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "CD-ROM 마운트 해제하는 중입니다\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "디스크를 기다리는 중입니다...\n" @@ -3144,8 +3140,8 @@ msgid "Mounting CD-ROM...\n" msgstr "CD-ROM 마운트하는 중입니다...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "알아보는 중입니다.. " +msgid "Identifying... " +msgstr "알아보는 중입니다... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3157,7 +3153,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD-ROM을 마운트 해제하는 중입니다...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "디스크에서 색인 파일을 찾는 중입니다...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/ku.po b/po/ku.po index 421f1779f..078e0e745 100644 --- a/po/ku.po +++ b/po/ku.po @@ -1031,7 +1031,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" #. TRANSLATOR: The required space between number and unit is already included @@ -2942,10 +2942,6 @@ msgstr "" msgid "Using CD-ROM mount point %s\n" msgstr "" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "" @@ -2955,7 +2951,7 @@ msgid "Mounting CD-ROM...\n" msgstr "" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "" #: apt-pkg/cdrom.cc:643 @@ -2968,7 +2964,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "" #: apt-pkg/cdrom.cc:717 diff --git a/po/lt.po b/po/lt.po index b799099b6..362c69c58 100644 --- a/po/lt.po +++ b/po/lt.po @@ -1032,8 +1032,8 @@ msgid "Internal error, Ordering didn't finish" msgstr "" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "Keista.. Dydis neatitinka, Parašykite laišką apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" +msgstr "Keista... Dydis neatitinka, Parašykite laišką apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3035,10 +3035,6 @@ msgstr "" msgid "Using CD-ROM mount point %s\n" msgstr "Naudojama CD-ROM prijungimo vieta %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Atjungiamas CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Laukiama disko...\n" @@ -3048,8 +3044,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Prijungiamas CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identifikuojama.. " +msgid "Identifying... " +msgstr "Identifikuojama... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3061,7 +3057,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Atjungiamas CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "" #: apt-pkg/cdrom.cc:717 diff --git a/po/mr.po b/po/mr.po index ea1c478e9..c66fc52ac 100644 --- a/po/mr.po +++ b/po/mr.po @@ -1108,7 +1108,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "अंतर्गत त्रुटी,क्रम अजून संपला नाही" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "किती विचित्र...आकार जुळत नाहीत, ईमेल apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included @@ -3120,10 +3120,6 @@ msgstr "विक्रेता गट %s मध्ये बोटाचे msgid "Using CD-ROM mount point %s\n" msgstr "सिडी-रॉमचे माउंट स्थान %s वापरुन\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "सिडी-रॉम अनमाउंट करत आहे\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "डिस्क/चकती करिता प्रतिक्षा करीत आहे...\n" @@ -3133,8 +3129,8 @@ msgid "Mounting CD-ROM...\n" msgstr "सिडी-रॉम माउंट होत आहे...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "ओळखत आहे.." +msgid "Identifying... " +msgstr "ओळखत आहे..." #: apt-pkg/cdrom.cc:643 #, c-format @@ -3146,8 +3142,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "सिडी-रॉम अनमाउंट होत आहे...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "संचिकाच्या यादी/सूचीसाठी डिस्क/चकती बारकाईने तपासत आहे..\n" +msgid "Scanning disc for index files...\n" +msgstr "संचिकाच्या यादी/सूचीसाठी डिस्क/चकती बारकाईने तपासत आहे...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/nb.po b/po/nb.po index ff68ac0ca..6edc93013 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1126,7 +1126,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Intern feil, sortering fullførte ikke" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Så rart ... Størrelsene stemmer ikke overens, send en e-post til " "apt@packages.debian.org" @@ -3150,10 +3150,6 @@ msgstr "Utgivers blokk %s inneholder ikke no fingeravtrykk" msgid "Using CD-ROM mount point %s\n" msgstr "Bruker CD-ROM monteringspunkt %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Avmonterer CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Venter på CD-en...\n" @@ -3163,8 +3159,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Monterer CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Indentifiserer.." +msgid "Identifying... " +msgstr "Indentifiserer..." #: apt-pkg/cdrom.cc:643 #, c-format @@ -3176,8 +3172,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Avmonterer CD-ROM ...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Leter gjennom CD for indeksfiler..\n" +msgid "Scanning disc for index files...\n" +msgstr "Leter gjennom CD for indeksfiler...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/ne.po b/po/ne.po index 30b7be69d..59da544fa 100644 --- a/po/ne.po +++ b/po/ne.po @@ -1109,7 +1109,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "आन्तरिक त्रुटि, आदेश समाप्त भएको छैन" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "कस्तो नमिलेको.. साइजहरू मेल खाएन, apt@packages.debian.org इमेल गर्नुहोस्" #. TRANSLATOR: The required space between number and unit is already included @@ -3112,10 +3112,6 @@ msgstr "बिक्रता ब्ल्क %s ले कुनै औठा msgid "Using CD-ROM mount point %s\n" msgstr "सिडी रोम माउन्ट विन्दु प्रयोग गरिदैछ %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "सिडी रोम अनमाउन्ट गरिदैछ\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "डिस्को लागि पर्खिदै...\n" @@ -3125,8 +3121,8 @@ msgid "Mounting CD-ROM...\n" msgstr "सिडी रोम माउन्ट गरिदै...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "परिचय गराइदैछ.." +msgid "Identifying... " +msgstr "परिचय गराइदैछ..." #: apt-pkg/cdrom.cc:643 #, c-format @@ -3139,7 +3135,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "सिडी रोम अनमाउन्ट गरिदैछ..." #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "अनुक्रमणिका फाइलहरुको लागि डिस्क स्क्यान गरिदैछ...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/nl.po b/po/nl.po index 48ac54a1b..c68ada677 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1145,7 +1145,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Interne fout, rangschikken is niet voltooid" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Merkwaardig... De groottes kwamen niet overeen, gelieve apt@packages.debian." "org te mailen" @@ -3202,10 +3202,6 @@ msgstr "Verkopersblok %s bevat geen vingerafdruk" msgid "Using CD-ROM mount point %s\n" msgstr "Er wordt gebruik gemaakt van CD-aankoppelpunt %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "CD wordt losgekoppeld\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Er wordt gewacht op de schijf...\n" @@ -3215,7 +3211,7 @@ msgid "Mounting CD-ROM...\n" msgstr "CD wordt aangekoppeld...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Identificatie..." #: apt-pkg/cdrom.cc:643 @@ -3228,7 +3224,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD wordt afgekoppeld...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Er wordt gescand voor indexbestanden...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/nn.po b/po/nn.po index 8b5275196..6409df3fc 100644 --- a/po/nn.po +++ b/po/nn.po @@ -1119,7 +1119,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Intern feil ved tilleggjing av avleiing" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" #. TRANSLATOR: The required space between number and unit is already included @@ -3125,10 +3125,6 @@ msgstr "Utgjevarblokka %s inneheld ingen fingeravtrykk" msgid "Using CD-ROM mount point %s\n" msgstr "Brukar monteringspunktet %s for CD-ROM\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Avmonterer CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Ventar på disk ...\n" @@ -3138,7 +3134,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Monterer CD-ROM ...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Identifiserer ... " #: apt-pkg/cdrom.cc:643 @@ -3147,12 +3143,11 @@ msgid "Stored label: %s\n" msgstr "Lagra etikett: %s \n" #: apt-pkg/cdrom.cc:652 apt-pkg/cdrom.cc:888 -#, fuzzy msgid "Unmounting CD-ROM...\n" -msgstr "Avmonterer CD-ROM ..." +msgstr "Avmonterer CD-ROM ...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Leitar etter indeksfiler på disken ...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/pl.po b/po/pl.po index 40e1016e7..71d03395e 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1170,7 +1170,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Błąd wewnętrzny, sortowanie niezakończone" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Wystąpił dziwny błąd - rozmiary się nie zgadzają. Proszę to zgłosić pod " "apt@packages.debian.org" @@ -3231,10 +3231,6 @@ msgstr "Blok producenta %s nie zawiera odcisku" msgid "Using CD-ROM mount point %s\n" msgstr "Użycie %s jako punktu montowania CD-ROM-u\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Odmontowanie CD-ROM-u\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Oczekiwanie na płytę...\n" @@ -3244,8 +3240,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Montowanie CD-ROM-u...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identyfikacja.. " +msgid "Identifying... " +msgstr "Identyfikacja... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3257,8 +3253,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Odmontowanie CD-ROM-u...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Skanowanie płyty w poszukiwaniu plików indeksu..\n" +msgid "Scanning disc for index files...\n" +msgstr "Skanowanie płyty w poszukiwaniu plików indeksu...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/pt.po b/po/pt.po index 516c18892..c30934820 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1160,9 +1160,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Erro Interno, Ordering não terminou" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Estranho.. Os tamanhos não coincidiram, escreva para apt@packages.debian.org" +"Estranho... Os tamanhos não coincidiram, escreva para apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3221,10 +3221,6 @@ msgstr "O bloco de fabricante %s não contém a impressão digital" msgid "Using CD-ROM mount point %s\n" msgstr "A utilizar o ponto de montagem do CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "A desmontar o CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "A aguardar pelo disco...\n" @@ -3234,8 +3230,8 @@ msgid "Mounting CD-ROM...\n" msgstr "A montar o CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "A identificar.. " +msgid "Identifying... " +msgstr "A identificar... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3247,8 +3243,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "A desmontar o CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "A pesquisar os ficheiros de índice do disco..\n" +msgid "Scanning disc for index files...\n" +msgstr "A pesquisar os ficheiros de índice do disco...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/pt_BR.po b/po/pt_BR.po index a9cff2f35..5aab79c68 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1132,9 +1132,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Erro interno, Ordenação não finalizou" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Que estranho.. Os tamanhos não batem, mande e-mail para apt@packages.debian." +"Que estranho... Os tamanhos não batem, mande e-mail para apt@packages.debian." "org" #. TRANSLATOR: The required space between number and unit is already included @@ -3174,10 +3174,6 @@ msgstr "Bloco fornecedor %s não contém impressão digital (\"fingerprint\")" msgid "Using CD-ROM mount point %s\n" msgstr "Usando ponto de montagem de CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Desmontando CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Aguardando por disco...\n" @@ -3187,8 +3183,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Montando CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identificando.. " +msgid "Identifying... " +msgstr "Identificando... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3200,8 +3196,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Desmontando CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Procurando por arquivos de índice no disco..\n" +msgid "Scanning disc for index files...\n" +msgstr "Procurando por arquivos de índice no disco...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/ro.po b/po/ro.po index 1fde2d15b..d10785e00 100644 --- a/po/ro.po +++ b/po/ro.po @@ -1134,9 +1134,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Eroare internă, Ordering nu s-a terminat" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Ce ciudat.. Dimensiunile nu se potrivesc, scrieți la apt@packages.debian.org" +"Ce ciudat... Dimensiunile nu se potrivesc, scrieți la apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3180,10 +3180,6 @@ msgstr "Blocul vânzător %s nu conține amprentă" msgid "Using CD-ROM mount point %s\n" msgstr "Utilizare punct de montare CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Demontare CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Aștept discul...\n" @@ -3193,8 +3189,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Montez CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identificare.. " +msgid "Identifying... " +msgstr "Identificare... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3206,8 +3202,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Se demontează CD-ul...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Scanez discul de fișierele index..\n" +msgid "Scanning disc for index files...\n" +msgstr "Scanez discul de fișierele index...\n" # DEVELOPERS: please consider using somehow plural forms #: apt-pkg/cdrom.cc:717 diff --git a/po/ru.po b/po/ru.po index 286d558d0..d087cd2b1 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1170,7 +1170,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Внутренняя ошибка, Ordering не завершилась" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "Странно. Несовпадение размеров, напишите на apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included @@ -3236,10 +3236,6 @@ msgstr "Блок поставщика %s не содержит отпечатк msgid "Using CD-ROM mount point %s\n" msgstr "Использование %s в качестве точки монтирования CD-ROM\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Размонтирование CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Ожидание операции работы с диском…\n" @@ -3249,8 +3245,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Монтирование CD-ROM…\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Идентификация.. " +msgid "Identifying... " +msgstr "Идентификация... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3262,8 +3258,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Размонтирование CD-ROM…\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Поиск на диске индексных файлов..\n" +msgid "Scanning disc for index files...\n" +msgstr "Поиск на диске индексных файлов...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/sk.po b/po/sk.po index 3f3266fb2..b20c0ef48 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1147,7 +1147,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Vnútorná chyba, Triedenie sa neukončilo" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Nezvyčajná udalosť... Veľkosti nesúhlasia, pošlite e-mail na apt@packages." "debian.org" @@ -3180,10 +3180,6 @@ msgstr "Blok výrobcu %s neobsahuje otlačok (fingerprint)" msgid "Using CD-ROM mount point %s\n" msgstr "Použije sa prípojný bod CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "CD-ROM sa odpája\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Čaká sa na disk...\n" @@ -3193,8 +3189,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Pripája sa CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identifikuje sa.." +msgid "Identifying... " +msgstr "Identifikuje sa..." #: apt-pkg/cdrom.cc:643 #, c-format @@ -3206,8 +3202,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD-ROM sa odpája...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Na disku sa hľadajú indexové súbory..\n" +msgid "Scanning disc for index files...\n" +msgstr "Na disku sa hľadajú indexové súbory...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/sl.po b/po/sl.po index 0de57e349..00c581d77 100644 --- a/po/sl.po +++ b/po/sl.po @@ -1143,9 +1143,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Notranja napaka, Urejanje se ni končalo" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Kako čudno .. Velikosti se ne ujemata, pošljite sporočilo na apt@packages." +"Kako čudno ... Velikosti se ne ujemata, pošljite sporočilo na apt@packages." "debian.org" #. TRANSLATOR: The required space between number and unit is already included @@ -3188,10 +3188,6 @@ msgstr "Ponudnikov blok %s ne vsebuje prstnega podpisa" msgid "Using CD-ROM mount point %s\n" msgstr "Uporabljanje CD-ROM-ove priklopne točke %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Odklapljanje CD-ROM-a\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Čakanje na disk ...\n" @@ -3201,7 +3197,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Priklapljanje CD-ROM-a ...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Identificiranje ... " #: apt-pkg/cdrom.cc:643 @@ -3214,8 +3210,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Odklapljanje CD-ROM-a ...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Preiskovanje diska za datoteke kazala ..\n" +msgid "Scanning disc for index files...\n" +msgstr "Preiskovanje diska za datoteke kazala ...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/sv.po b/po/sv.po index 2423b54a9..9a5addfcf 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1134,9 +1134,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Internt fel. Sorteringen färdigställdes inte" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Konstigt.. storlekarna stämde inte överens, skicka e-post till apt@packages." +"Konstigt... storlekarna stämde inte överens, skicka e-post till apt@packages." "debian.org" #. TRANSLATOR: The required space between number and unit is already included @@ -1536,7 +1536,7 @@ msgstr "Fel vid kompilering av reguljärt uttryck - %s" #: apt-private/private-cachefile.cc:87 msgid "Correcting dependencies..." -msgstr "Korrigerar beroenden...." +msgstr "Korrigerar beroenden..." #: apt-private/private-cachefile.cc:90 msgid " failed." @@ -3180,10 +3180,6 @@ msgstr "Leverantörsblocket %s saknar fingeravtryck" msgid "Using CD-ROM mount point %s\n" msgstr "Använder cd-rom-monteringspunkten %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Avmonterar cd-rom\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Väntar på skiva...\n" @@ -3193,8 +3189,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Monterar cd-rom...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Identifierar.. " +msgid "Identifying... " +msgstr "Identifierar... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3203,10 +3199,10 @@ msgstr "Lagrad etikett: %s \n" #: apt-pkg/cdrom.cc:652 apt-pkg/cdrom.cc:888 msgid "Unmounting CD-ROM...\n" -msgstr "Avmonterar cd-rom...\n" +msgstr "Avmonterar CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Söker efter indexfiler på skivan...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/th.po b/po/th.po index a60dc7434..5c2c37fd8 100644 --- a/po/th.po +++ b/po/th.po @@ -1124,8 +1124,8 @@ msgid "Internal error, Ordering didn't finish" msgstr "ข้อผิดพลาดภายใน: การเรียงลำดับไม่เสร็จสิ้น" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "แปลกประหลาด.. ขนาดไม่ตรงกัน กรุณาอีเมลแจ้ง apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" +msgstr "แปลกประหลาด... ขนาดไม่ตรงกัน กรุณาอีเมลแจ้ง apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3116,10 +3116,6 @@ msgstr "บล็อคผู้ผลิต %s ไม่มีลายนิ msgid "Using CD-ROM mount point %s\n" msgstr "กำลังใช้จุดเมานท์ซีดีรอม %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "กำลังเลิกเมานท์ซีดีรอม\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "กำลังรอแผ่น...\n" @@ -3129,8 +3125,8 @@ msgid "Mounting CD-ROM...\n" msgstr "กำลังเมานท์ซีดีรอม...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "กำลังตรวจสอบชื่อแผ่น.. " +msgid "Identifying... " +msgstr "กำลังตรวจสอบชื่อแผ่น... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3142,8 +3138,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "กำลังเลิกเมานท์ซีดีรอม...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "กำลังสำรวจข้อมูลในแผ่นเพื่อหาแฟ้มดัชนี..\n" +msgid "Scanning disc for index files...\n" +msgstr "กำลังสำรวจข้อมูลในแผ่นเพื่อหาแฟ้มดัชนี...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/tl.po b/po/tl.po index fd43208ea..eedcc8ddd 100644 --- a/po/tl.po +++ b/po/tl.po @@ -1129,9 +1129,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "Error na internal, hindi natapos ang pagsaayos na pagkasunud-sunod" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Nakapagtataka.. Hindi magkatugma ang laki, mag-email sa apt@packages.debian." +"Nakapagtataka... Hindi magkatugma ang laki, mag-email sa apt@packages.debian." "org" #. TRANSLATOR: The required space between number and unit is already included @@ -3161,10 +3161,6 @@ msgstr "Block ng nagbebenta %s ay walang fingerprint" msgid "Using CD-ROM mount point %s\n" msgstr "Ginagamit ang %s bilang mount point ng CD-ROM\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Ina-unmount ang CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Hinihintay ang disc...\n" @@ -3174,7 +3170,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Sinasalang ang CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Kinikilala..." #: apt-pkg/cdrom.cc:643 @@ -3183,12 +3179,11 @@ msgid "Stored label: %s\n" msgstr "Naka-imbak na Label: %s \n" #: apt-pkg/cdrom.cc:652 apt-pkg/cdrom.cc:888 -#, fuzzy msgid "Unmounting CD-ROM...\n" -msgstr "Ina-unmount ang CD-ROM..." +msgstr "Ina-unmount ang CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Sinisiyasat ang Disc para sa talaksang index...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/tr.po b/po/tr.po index 4027ecc85..ce3042910 100644 --- a/po/tr.po +++ b/po/tr.po @@ -1149,9 +1149,9 @@ msgid "Internal error, Ordering didn't finish" msgstr "İç hata, Sıralama tamamlanamadı" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Ne kadar ilginç.. Boyutlar eşleşmedi, apt@packages.debian.org adresine " +"Ne kadar ilginç... Boyutlar eşleşmedi, apt@packages.debian.org adresine " "eposta atın." #. TRANSLATOR: The required space between number and unit is already included @@ -3206,10 +3206,6 @@ msgstr "Sağlayıcı bloğu %s parmak izi içermiyor" msgid "Using CD-ROM mount point %s\n" msgstr "CD-ROM bağlama noktası %s kullanılıyor\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "CD-ROM ayrılıyor\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Disk bekleniliyor...\n" @@ -3219,7 +3215,7 @@ msgid "Mounting CD-ROM...\n" msgstr "CD-ROM bağlanıyor...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Tanımlanıyor... " #: apt-pkg/cdrom.cc:643 @@ -3232,8 +3228,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "CD-ROM ayrılıyor...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Disk, indeks dosyaları için taranıyor..\n" +msgid "Scanning disc for index files...\n" +msgstr "Disk, indeks dosyaları için taranıyor...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/uk.po b/po/uk.po index 707124c13..770f83d3b 100644 --- a/po/uk.po +++ b/po/uk.po @@ -1167,8 +1167,8 @@ msgid "Internal error, Ordering didn't finish" msgstr "Внутрішня помилка, Ordering не завершилася" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" -msgstr "Дивно.. Розбіжність розмірів, напишіть на apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" +msgstr "Дивно... Розбіжність розмірів, напишіть на apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -3231,10 +3231,6 @@ msgstr "Блок постачальника %s не містить відбит msgid "Using CD-ROM mount point %s\n" msgstr "Використовується точка монтування CD-ROM: %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Демонтується CD-ROM\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Чекаю на диск...\n" @@ -3244,8 +3240,8 @@ msgid "Mounting CD-ROM...\n" msgstr "Монтується CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "Ідентифікація.. " +msgid "Identifying... " +msgstr "Ідентифікація... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3257,8 +3253,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "Демонтується CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "Сканується диск на вміст індексних файлів..\n" +msgid "Scanning disc for index files...\n" +msgstr "Сканується диск на вміст індексних файлів...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/vi.po b/po/vi.po index 61f5ef3fe..d4d94e994 100644 --- a/po/vi.po +++ b/po/vi.po @@ -1204,7 +1204,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "Gặp lỗi nội bộ: Tiến trình Sắp xếp chưa xong" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "" "Lạ nhỉ... Kích cỡ không khớp nhau. Hãy gửi thư cho " @@ -3259,10 +3259,6 @@ msgstr "Khối nhà bán %s không chứa vân tay" msgid "Using CD-ROM mount point %s\n" msgstr "Đang dùng điểm gắn đĩa CD-ROM %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "Đang bỏ gắn CD-ROM...\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "Đang đợi đĩa...\n" @@ -3272,7 +3268,7 @@ msgid "Mounting CD-ROM...\n" msgstr "Đang gắn đĩa CD-ROM...\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " +msgid "Identifying... " msgstr "Đang nhận diện... " #: apt-pkg/cdrom.cc:643 @@ -3285,7 +3281,7 @@ msgid "Unmounting CD-ROM...\n" msgstr "Đang bỏ gắn CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" +msgid "Scanning disc for index files...\n" msgstr "Đang quét đĩa tìm tập tin chỉ mục...\n" #: apt-pkg/cdrom.cc:717 diff --git a/po/zh_CN.po b/po/zh_CN.po index 31ae60ab0..970e35138 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1112,7 +1112,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "内部错误,Ordering 未能完成" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "怪了……文件大小不符,请发信给 apt@packages.debian.org 吧" #. TRANSLATOR: The required space between number and unit is already included @@ -3103,10 +3103,6 @@ msgstr "软件提供者数据块内 %s 没有包含指纹信息" msgid "Using CD-ROM mount point %s\n" msgstr "现把 %s 作为了 CD-ROM 的挂载点\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "正在卸载 CD-ROM 文件系统\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "等待插入盘片……\n" @@ -3116,8 +3112,8 @@ msgid "Mounting CD-ROM...\n" msgstr "正在挂载 CD-ROM 文件系统……\n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "正在鉴别.. " +msgid "Identifying... " +msgstr "正在鉴别... " #: apt-pkg/cdrom.cc:643 #, c-format @@ -3129,8 +3125,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "正在卸载 CD-ROM...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "正在盘片中查找索引文件..\n" +msgid "Scanning disc for index files...\n" +msgstr "正在盘片中查找索引文件...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/po/zh_TW.po b/po/zh_TW.po index cdb02aa55..bbe96b72d 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1105,7 +1105,7 @@ msgid "Internal error, Ordering didn't finish" msgstr "內部錯誤,排序未能完成" #: apt-private/private-install.cc:159 -msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgid "How odd... The sizes didn't match, email apt@packages.debian.org" msgstr "怪哉... 檔案大小不符,請發信給 apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included @@ -3097,10 +3097,6 @@ msgstr "提供者區塊 %s 沒有包含指紋碼" msgid "Using CD-ROM mount point %s\n" msgstr "使用光碟機掛載點 %s\n" -#: apt-pkg/cdrom.cc:583 -msgid "Unmounting CD-ROM\n" -msgstr "正在卸載光碟機\n" - #: apt-pkg/cdrom.cc:588 msgid "Waiting for disc...\n" msgstr "正在等待碟片...\n" @@ -3110,8 +3106,8 @@ msgid "Mounting CD-ROM...\n" msgstr "正在掛載光碟機... \n" #: apt-pkg/cdrom.cc:605 -msgid "Identifying.. " -msgstr "正在識別.." +msgid "Identifying... " +msgstr "正在識別..." #: apt-pkg/cdrom.cc:643 #, c-format @@ -3123,8 +3119,8 @@ msgid "Unmounting CD-ROM...\n" msgstr "正在卸載光碟機...\n" #: apt-pkg/cdrom.cc:667 -msgid "Scanning disc for index files..\n" -msgstr "正在掃描碟片中的索引檔..\n" +msgid "Scanning disc for index files...\n" +msgstr "正在掃描碟片中的索引檔...\n" #: apt-pkg/cdrom.cc:717 #, c-format diff --git a/test/integration/test-apt-cdrom b/test/integration/test-apt-cdrom index fddd26bd9..8d8fdf167 100755 --- a/test/integration/test-apt-cdrom +++ b/test/integration/test-apt-cdrom @@ -35,11 +35,11 @@ aptcdromlog() { } CDROM_PRE="Using CD-ROM mount point $(readlink -f ./rootdir/media)/cdrom/ -Unmounting CD-ROM +Unmounting CD-ROM... Waiting for disc... Please insert a Disc in the drive and press enter Mounting CD-ROM... -Scanning disc for index files.." +Scanning disc for index files..." CDROM_POST="This disc is called: 'Debian APT Testdisk 0.8.15' Writing new source list -- cgit v1.2.3-70-g09d2 From 0d58c26ad7b2308f08f4e6002cbf218605c1c7cf Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Mar 2014 14:15:45 +0100 Subject: improve debug output in case downloadfile fails Git-Dch: Ignore --- cmdline/apt-helper.cc | 15 +++--- test/integration/framework | 83 ++++++++++++++++++----------- test/integration/test-apt-https-no-redirect | 20 ++++--- test/integration/test-partial-file-support | 43 +++++---------- 4 files changed, 86 insertions(+), 75 deletions(-) (limited to 'test') diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc index d66b3ffae..37279ec28 100644 --- a/cmdline/apt-helper.cc +++ b/cmdline/apt-helper.cc @@ -19,6 +19,7 @@ #include #include +#include #include #include @@ -27,7 +28,6 @@ #include /*}}}*/ -using namespace std; static bool DoDownloadFile(CommandLine &CmdL) { @@ -43,23 +43,22 @@ static bool DoDownloadFile(CommandLine &CmdL) new pkgAcqFile(&Fetcher, download_uri, "", 0, "desc", "short-desc", "dest-dir-ignored", targetfile); Fetcher.Run(); - if (!FileExists(targetfile)) - { - _error->Error(_("Download Failed")); - return false; - } + bool Failed = false; + if (AcquireRun(Fetcher, 0, &Failed, NULL) == false || Failed == false || + FileExists(targetfile) == false) + return _error->Error(_("Download Failed")); return true; } static bool ShowHelp(CommandLine &) { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, + ioprintf(std::cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return true; - cout << + std::cout << _("Usage: apt-helper [options] command\n" " apt-helper [options] download-file uri target-path\n" "\n" diff --git a/test/integration/framework b/test/integration/framework index bf6fa0218..c623e6231 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -863,18 +863,16 @@ signreleasefiles() { webserverconfig() { msgtest "Set webserver config option '${1}' to" "$2" - downloadfile "http://localhost:8080/_config/set/${1}/${2}" '/dev/null' >/dev/null - local DOWNLOG='download-testfile.log' - rm -f "$DOWNLOG" - local STATUS="${TMPWORKINGDIRECTORY}/rootdir/tmp/webserverconfig.status" - downloadfile "http://localhost:8080/_config/find/aptwebserver::last-status-code" "$STATUS" > "$DOWNLOG" - if [ "$(cat "$STATUS")" = '200' ]; then + local DOWNLOG='rootdir/tmp/download-testfile.log' + local STATUS='rootdir/tmp/webserverconfig.status' + rm -f "$STATUS" "$DOWNLOG" + if downloadfile "http://localhost:8080/_config/set/${1}/${2}" "$STATUS" > "$DOWNLOG"; then msgpass else - cat >&2 "$DOWNLOG" - msgfail "Statuscode was $(cat "$STATUS")" + cat "$DOWNLOG" "$STATUS" + msgfail fi - rm "$STATUS" + testwebserverlaststatuscode '200' } rewritesourceslist() { @@ -952,10 +950,10 @@ acquire::cdrom::autodetect 0;" > rootdir/etc/apt/apt.conf.d/00cdrom } downloadfile() { - PROTO="$(echo "$1" | cut -d':' -f 1)" - apthelper -o Acquire::https::CaInfo=${TESTDIR}/apt.pem \ - -o Debug::Acquire::${PROTO}=1 \ - download-file "$1" "$2" 2>&1 + local PROTO="$(echo "$1" | cut -d':' -f 1 )" + apthelper -o Acquire::https::CaInfo=${TESTDIR}/apt.pem \ + -o Debug::Acquire::${PROTO}=1 \ + download-file "$1" "$2" 2>&1 || true # only if the file exists the download was successful if [ -e "$2" ]; then return 0 @@ -967,8 +965,8 @@ downloadfile() { checkdiff() { local DIFFTEXT="$(command diff -u "$@" | sed -e '/^---/ d' -e '/^+++/ d' -e '/^@@/ d')" if [ -n "$DIFFTEXT" ]; then - echo - echo "$DIFFTEXT" + echo >&2 + echo >&2 "$DIFFTEXT" return 1 else return 0 @@ -1017,7 +1015,9 @@ testequalor2() { shift 2 msgtest "Test for equality OR of" "$*" $* >$COMPAREAGAINST 2>&1 || true - if checkdiff $COMPAREFILE1 $COMPAREAGAINST 1> /dev/null || checkdiff $COMPAREFILE2 $COMPAREAGAINST 1> /dev/null; then + if checkdiff $COMPAREFILE1 $COMPAREAGAINST >/dev/null 2>&1 || \ + checkdiff $COMPAREFILE2 $COMPAREAGAINST >/dev/null 2>&1 + then msgpass else echo -n "\n${CINFO}Diff against OR 1${CNORMAL}" @@ -1051,24 +1051,24 @@ testnopackage() { msgtest "Test for non-existent packages" "apt-cache show $*" local SHOWPKG="$(aptcache show "$@" 2>&1 | grep '^Package: ')" if [ -n "$SHOWPKG" ]; then - echo - echo "$SHOWPKG" + echo >&2 + echo >&2 "$SHOWPKG" msgfail - return 1 + else + msgpass fi - msgpass } testdpkginstalled() { msgtest "Test for correctly installed package(s) with" "dpkg -l $*" local PKGS="$(dpkg -l "$@" 2>/dev/null | grep '^i' | wc -l)" if [ "$PKGS" != $# ]; then - echo $PKGS - dpkg -l "$@" | grep '^[a-z]' + echo >&2 $PKGS + dpkg -l "$@" | grep '^[a-z]' >&2 msgfail - return 1 + else + msgpass fi - msgpass } testdpkgnotinstalled() { @@ -1076,11 +1076,11 @@ testdpkgnotinstalled() { local PKGS="$(dpkg -l "$@" 2> /dev/null | grep '^i' | wc -l)" if [ "$PKGS" != 0 ]; then echo - dpkg -l "$@" | grep '^[a-z]' + dpkg -l "$@" | grep '^[a-z]' >&2 msgfail - return 1 + else + msgpass fi - msgpass } testmarkedauto() { @@ -1105,8 +1105,8 @@ testsuccess() { if $@ >${OUTPUT} 2>&1; then msgpass else - echo - cat $OUTPUT + echo >&2 + cat >&2 $OUTPUT msgfail fi } @@ -1119,14 +1119,35 @@ testfailure() { fi local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailure.output" if $@ >${OUTPUT} 2>&1; then - echo - cat $OUTPUT + echo >&2 + cat >&2 $OUTPUT msgfail else msgpass fi } +testwebserverlaststatuscode() { + local DOWNLOG='rootdir/tmp/webserverstatus-testfile.log' + local STATUS='rootdir/tmp/webserverstatus-statusfile.log' + rm -f "$DOWNLOG" "$STATUS" + msgtest 'Test last status code from the webserver was' "$1" + downloadfile "http://localhost:8080/_config/find/aptwebserver::last-status-code" "$STATUS" > "$DOWNLOG" + if [ "$(cat "$STATUS")" = "$1" ]; then + msgpass + else + echo >&2 + if [ -n "$2" ]; then + shift + echo >&2 '#### Additionally provided output files contain:' + cat >&2 "$@" + fi + echo >&2 '#### Download log of the status code:' + cat >&2 "$DOWNLOG" + msgfail "Status was $(cat "$STATUS")" + fi +} + pause() { echo "STOPPED execution. Press enter to continue" local IGNORE diff --git a/test/integration/test-apt-https-no-redirect b/test/integration/test-apt-https-no-redirect index 0408c6832..73352a28c 100755 --- a/test/integration/test-apt-https-no-redirect +++ b/test/integration/test-apt-https-no-redirect @@ -7,18 +7,24 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture "i386" -buildsimplenativepackage 'apt' 'all' '1.0' 'stable' +insertpackage 'stable' 'apt' 'all' '1' setupaptarchive --no-update +echo 'alright' > aptarchive/working changetohttpswebserver -o 'aptwebserver::redirect::replace::/redirectme/=http://localhost:8080/' -msgtest 'normal http download works' -downloadfile 'http://localhost:8080/pool/apt_1.0/changelog' changelog2 >/dev/null 2>/dev/null && msgpass || msgfail +msgtest 'download of a file works via' 'http' +downloadfile 'http://localhost:8080/working' httpfile >/dev/null 2>&1 && msgpass || msgfail +testfileequal httpfile 'alright' -msgtest 'normal https download works' -downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog >/dev/null 2>/dev/null && msgpass || msgfail +msgtest 'download of a file works via' 'https' +downloadfile 'https://localhost:4433/working' httpsfile >/dev/null 2>&1 && msgpass || msgfail +testfileequal httpsfile 'alright' -msgtest 'redirecting https to http does not work' -downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 2>&1 | grep "Protocol http not supported or disabled in libcurl" > /dev/null && msgpass || msgfail +msgtest 'download of a file does not work if' 'https redirected to http' +downloadfile 'https://localhost:4433/redirectme/working' redirectfile >curloutput 2>&1 && msgfail || msgpass + +msgtest 'libcurl has forbidden access in last request to' 'http resource' +grep -q -- 'Protocol http not supported or disabled in libcurl' curloutput && msgpass || msgfail diff --git a/test/integration/test-partial-file-support b/test/integration/test-partial-file-support index 382789e68..5ab326def 100755 --- a/test/integration/test-partial-file-support +++ b/test/integration/test-partial-file-support @@ -13,17 +13,18 @@ copysource() { touch -d "$(stat --format '%y' "${TESTFILE}")" "$3" } +DOWNLOADLOG='rootdir/tmp/testdownloadfile.log' + testdownloadfile() { - local DOWNLOG='download-testfile.log' - rm -f "$DOWNLOG" + rm -f "$DOWNLOADLOG" msgtest "Testing download of file $2 with" "$1" - if ! downloadfile "$2" "$3" > "$DOWNLOG"; then - cat >&2 "$DOWNLOG" + if ! downloadfile "$2" "$3" > "$DOWNLOADLOG"; then + cat >&2 "$DOWNLOADLOG" msgfail else msgpass fi - cat "$DOWNLOG" | while read field hash; do + cat "$DOWNLOADLOG" | while read field hash; do local EXPECTED case "$field" in 'MD5Sum-Hash:') EXPECTED="$(md5sum "$TESTFILE" | cut -d' ' -f 1)";; @@ -40,28 +41,12 @@ testdownloadfile() { if [ "$EXPECTED" "$4" "$hash" ]; then msgpass else - cat >&2 "$DOWNLOG" + cat >&2 "$DOWNLOADLOG" msgfail "expected: $EXPECTED ; got: $hash" fi done } -testwebserverlaststatuscode() { - local DOWNLOG='download-testfile.log' - rm -f "$DOWNLOG" - local STATUS="$(mktemp)" - addtrap "rm $STATUS;" - msgtest 'Test last status code from the webserver was' "$1" - downloadfile "http://localhost:8080/_config/find/aptwebserver::last-status-code" "$STATUS" > "$DOWNLOG" - if [ "$(cat "$STATUS")" = "$1" ]; then - msgpass - else - cat >&2 "$DOWNLOG" - msgfail "Status was $(cat "$STATUS")" - fi -} - - TESTFILE='aptarchive/testfile' cp -a ${TESTDIR}/framework $TESTFILE @@ -70,34 +55,34 @@ testrun() { copysource $TESTFILE 0 ./testfile testdownloadfile 'no data' "${1}/testfile" './testfile' '=' - testwebserverlaststatuscode '200' + testwebserverlaststatuscode '200' "$DOWNLOADLOG" copysource $TESTFILE 20 ./testfile testdownloadfile 'valid partial data' "${1}/testfile" './testfile' '=' - testwebserverlaststatuscode '206' + testwebserverlaststatuscode '206' "$DOWNLOADLOG" copysource /dev/zero 20 ./testfile testdownloadfile 'invalid partial data' "${1}/testfile" './testfile' '!=' - testwebserverlaststatuscode '206' + testwebserverlaststatuscode '206' "$DOWNLOADLOG" copysource $TESTFILE 1M ./testfile testdownloadfile 'completely downloaded file' "${1}/testfile" './testfile' '=' - testwebserverlaststatuscode '416' + testwebserverlaststatuscode '416' "$DOWNLOADLOG" copysource /dev/zero 1M ./testfile testdownloadfile 'too-big partial file' "${1}/testfile" './testfile' '=' - testwebserverlaststatuscode '200' + testwebserverlaststatuscode '200' "$DOWNLOADLOG" copysource /dev/zero 20 ./testfile touch ./testfile testdownloadfile 'old data' "${1}/testfile" './testfile' '=' - testwebserverlaststatuscode '200' + testwebserverlaststatuscode '200' "$DOWNLOADLOG" webserverconfig 'aptwebserver::support::range' 'false' copysource $TESTFILE 20 ./testfile testdownloadfile 'no server support' "${1}/testfile" './testfile' '=' - testwebserverlaststatuscode '200' + testwebserverlaststatuscode '200' "$DOWNLOADLOG" } testrun 'http://localhost:8080' -- cgit v1.2.3-70-g09d2 From b9b0f6222c489db78331cc8be3c093538d22c70b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Mar 2014 17:53:22 +0100 Subject: use a configurable list of versioned kernel packages With APT::VersionedKernelPackages users have the option of adding packages like pre-build out-of-tree modules to the list of automatically protected from being autoremoved. --- debian/apt.auto-removal.sh | 21 ++--- debian/apt.conf.autoremove | 9 +++ test/integration/framework | 10 ++- .../test-bug-1078697-missing-source-hashes | 35 --------- test/integration/test-kernel-helper-autoremove | 91 ++++++++++++---------- .../test-kernel-helper-autoremove.fake-dpkg | 13 ---- .../test-ubuntu-bug-1078697-missing-source-hashes | 35 +++++++++ 7 files changed, 113 insertions(+), 101 deletions(-) delete mode 100755 test/integration/test-bug-1078697-missing-source-hashes delete mode 100644 test/integration/test-kernel-helper-autoremove.fake-dpkg create mode 100755 test/integration/test-ubuntu-bug-1078697-missing-source-hashes (limited to 'test') diff --git a/debian/apt.auto-removal.sh b/debian/apt.auto-removal.sh index d105f440a..9c4a4157d 100644 --- a/debian/apt.auto-removal.sh +++ b/debian/apt.auto-removal.sh @@ -72,22 +72,23 @@ $previous_version EOF ) -cat > "$config_file".dpkg-new <> "$config_file".dpkg-new - echo " \"^linux-image-extra-${kernel}$\";" >> "$config_file".dpkg-new - echo " \"^linux-signed-image-${kernel}$\";" >> "$config_file".dpkg-new - echo " \"^linux-backports-modules-.*-${kernel}$\";" >> "$config_file".dpkg-new - echo " \"^linux-headers-${kernel}$\";" >> "$config_file".dpkg-new -done -cat >> "$config_file".dpkg-new < "${config_file}.dpkg-new" +mv "${config_file}.dpkg-new" "$config_file" diff --git a/debian/apt.conf.autoremove b/debian/apt.conf.autoremove index 9684c9c7d..ea68f88fc 100644 --- a/debian/apt.conf.autoremove +++ b/debian/apt.conf.autoremove @@ -9,6 +9,15 @@ APT "^gnumach-image.*"; }; + VersionedKernelPackages + { + "linux-image"; + "linux-image-extra"; + "linux-signed-image"; + "linux-backports-modules-.*"; + "linux-headers"; + }; + Never-MarkAuto-Sections { "metapackages"; diff --git a/test/integration/framework b/test/integration/framework index c623e6231..dad8c99f0 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -93,14 +93,15 @@ msgdone() { runapt() { msgdebug "Executing: ${CCMD}$*${CDEBUG} " - local CMD="$1" + local CMD="${BUILDDIRECTORY}/$1" + if [ "$1" = 'sh' ]; then CMD='sh'; fi shift if [ -f ./aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $CMD "$@" elif [ -f ../aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $CMD "$@" else - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@" + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} $CMD "$@" fi } aptconfig() { runapt apt-config "$@"; } @@ -198,6 +199,7 @@ setupenvironment() { touch var/lib/dpkg/available mkdir -p usr/lib/apt ln -s ${METHODSDIR} usr/lib/apt/methods + ln -s ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove etc/apt/apt.conf.d/01autoremove cd .. local PACKAGESFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Packages-/' -e 's/^skip-/Packages-/') if [ -f "${TESTDIRECTORY}/${PACKAGESFILE}" ]; then diff --git a/test/integration/test-bug-1078697-missing-source-hashes b/test/integration/test-bug-1078697-missing-source-hashes deleted file mode 100755 index 6fcb856b5..000000000 --- a/test/integration/test-bug-1078697-missing-source-hashes +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -set -e - -TESTDIR=$(readlink -f $(dirname $0)) -. $TESTDIR/framework -setupenvironment -configarchitecture "i386" - -msgtest 'Test apt-ftparchive source with missing hashes in .dsc' - -touch aptarchive/foo_1.0.tar.gz -cat > aptarchive/foo_1.0.dsc << EOF -Format: 3.0 (native) -Source: foo -Binary: foo -Architecture: all -Version: 1.0 -Package-List: - foo deb admin extra -Files: - d41d8cd98f00b204e9800998ecf8427e 0 foo_1.0.tar.gz -EOF - -# check for the SHA hashes -aptftparchive sources aptarchive/ > aptarchive/Sources 2>/dev/null || msgfail -test -n "$(grep Checksums-Sha512 aptarchive/Sources)" && msgpass || msgfail - -for hash in sha512sum sha256sum sha1sum; do - for f in foo_1.0.tar.gz foo_1.0.dsc; do - SUM=$($hash aptarchive/$f | cut -d' ' -f1) - msgtest "Test $hash hash matches for $f" - NEEDLE="$SUM $(stat -c%s aptarchive/$f) $f" - test -n "$SUM" && test -n "$(grep "$NEEDLE" aptarchive/Sources)" && msgpass || msgfail - done -done diff --git a/test/integration/test-kernel-helper-autoremove b/test/integration/test-kernel-helper-autoremove index 2b165d100..be30c6f6e 100755 --- a/test/integration/test-kernel-helper-autoremove +++ b/test/integration/test-kernel-helper-autoremove @@ -1,55 +1,68 @@ #!/bin/sh - set -e -# setup testdir TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework +setupenvironment +configarchitecture 'native' -TMPDIR=$(mktemp -d) -cd $TMPDIR -addtrap "cd /; rm -rf $TMPDIR" +# the executed script would use the installed apt-config, +# which is outside of our control +msgtest 'Check that the installed apt-config supports' '--no-empty' +if apt-config dump --no-empty >/dev/null 2>&1; then + msgpass +else + msgskip + exit 0 +fi -# create mock environment -mkdir apt.conf.d -cat > aptconfig.conf < ./fake-dpkg < rootdir/etc/apt/apt.conf.d/99fakedpkg -# install fake-dpkg into it -install -m755 $TESTDIR/test-kernel-helper-autoremove.fake-dpkg $TMPDIR/fake-dpkg +catfail() { + echo >&2 + echo >&2 '### List of protected kernels:' + cat >&2 protected.list + msgfail +} -# run the helper -sh ${TESTDIR}/../../debian/apt.auto-removal.sh +testprotected() { + rm -f rootdir/etc/apt/apt.conf.d/01autoremove-kernels protected.list -msgtest 'Check that kernel autoremoval list is correctly created' -# and ensure its there, valid and version 10.0.0-1 is there too -test -e $TMPDIR/apt.conf.d/01autoremove-kernels && msgpass || msgfail + testsuccess runapt sh ${TESTDIR}/../../debian/apt.auto-removal.sh "$@" -msgtest 'Check that most recent kernel is saved from autoremoval' -apt-config -c ${APT_CONFIG} dump|grep -q "APT::NeverAutoRemove::.*\^linux-image-10.0.0-1-generic" && msgpass || msgfail + msgtest 'Check kernel autoremoval protection list' 'is created' + test -e rootdir/etc/apt/apt.conf.d/01autoremove-kernels && msgpass || msgfail -# ... and also that the running kernel is excluded -msgtest 'Check that running kernel is saved from autoremoval' -apt-config -c ${APT_CONFIG} dump|grep -q "APT::NeverAutoRemove::.*\^linux-image-$(uname -r)" && msgpass || msgfail + msgtest 'Check kernel autoremoval protection list' 'can be dumped' + aptconfig dump --no-empty --format '%v%n' 'APT::NeverAutoRemove' >protected.list 2>&1 && msgpass || catfail -# and that the old kernel is *not* excluded from autoremoval -msgtest 'Check that older kernels are not excluded from autoremoval' -apt-config -c ${APT_CONFIG} dump|grep -q "APT::NeverAutoRemove::.*\^linux-image-1\.0\.01-2-generic" && msgfail || msgpass + msgtest 'Check kernel autoremoval protection list' 'can be parsed' + grep -q '^[A-Z]: ' protected.list && catfail || msgpass -msgtest "Check that the older kernel is retained when it's being installed" -sh ${TESTDIR}/../../debian/apt.auto-removal.sh 1.0.01-2-generic -test -e $TMPDIR/apt.conf.d/01autoremove-kernels -if ! apt-config -c ${APT_CONFIG} dump|grep -q "APT::NeverAutoRemove::.*\^linux-image-10.0.0-1-generic" \ - || ! apt-config -c ${APT_CONFIG} dump|grep -q "APT::NeverAutoRemove::.*\^linux-image-$(uname -r)" \ - || ! apt-config -c ${APT_CONFIG} dump|grep -q "APT::NeverAutoRemove::.*\^linux-image-1\.0\.01-2-generic" -then - msgfail -else - msgpass -fi + msgtest 'Check kernel autoremoval protection list includes' 'most recent kernel' + grep -q '^\^linux-image-100\.0\.0-1-generic\$$' protected.list && msgpass || catfail + + msgtest 'Check kernel autoremoval protection list includes' 'running kernel' + grep -q "^\\^linux-image-$(uname -r)\\\$\$" protected.list && msgpass || catfail +} + +testprotected +msgtest 'Check kernel autoremoval protection list does not include' 'old kernel' +grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list && catfail || msgpass -# done +testprotected 1.0.0-2-generic +msgtest 'Check kernel autoremoval protection list includes' 'installed kernel' +grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list && msgpass || catfail diff --git a/test/integration/test-kernel-helper-autoremove.fake-dpkg b/test/integration/test-kernel-helper-autoremove.fake-dpkg deleted file mode 100644 index a365c5370..000000000 --- a/test/integration/test-kernel-helper-autoremove.fake-dpkg +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -set -e - -if [ "$1" = "-l" ]; then - echo "ii linux-image-1.0.0-2-generic 1.0.01-2 amd64" - echo "ii linux-image-$(uname -r) not-used amd64" - echo "ii linux-image-10.0.0-1-generic 10.0.0.1-1 amd64" -elif [ "$1" = "--compare-versions" ]; then - dpkg "$1" "$2" "$3" "$4" -else - dpkg $@ -fi - diff --git a/test/integration/test-ubuntu-bug-1078697-missing-source-hashes b/test/integration/test-ubuntu-bug-1078697-missing-source-hashes new file mode 100755 index 000000000..6fcb856b5 --- /dev/null +++ b/test/integration/test-ubuntu-bug-1078697-missing-source-hashes @@ -0,0 +1,35 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" + +msgtest 'Test apt-ftparchive source with missing hashes in .dsc' + +touch aptarchive/foo_1.0.tar.gz +cat > aptarchive/foo_1.0.dsc << EOF +Format: 3.0 (native) +Source: foo +Binary: foo +Architecture: all +Version: 1.0 +Package-List: + foo deb admin extra +Files: + d41d8cd98f00b204e9800998ecf8427e 0 foo_1.0.tar.gz +EOF + +# check for the SHA hashes +aptftparchive sources aptarchive/ > aptarchive/Sources 2>/dev/null || msgfail +test -n "$(grep Checksums-Sha512 aptarchive/Sources)" && msgpass || msgfail + +for hash in sha512sum sha256sum sha1sum; do + for f in foo_1.0.tar.gz foo_1.0.dsc; do + SUM=$($hash aptarchive/$f | cut -d' ' -f1) + msgtest "Test $hash hash matches for $f" + NEEDLE="$SUM $(stat -c%s aptarchive/$f) $f" + test -n "$SUM" && test -n "$(grep "$NEEDLE" aptarchive/Sources)" && msgpass || msgfail + done +done -- cgit v1.2.3-70-g09d2 From 33677a0cddd552f96963eac6dc74d8ffe9c1f2f6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Mar 2014 20:57:07 +0100 Subject: support kfreebsd and hurd in the kernel hook kfreebsd as well as hurd kernel packages call the postinst script as well so we just need to enable the correct parsing for installed packages and disable the "protect every version" hammer for them. --- debian/apt.auto-removal.sh | 16 +++------- debian/apt.conf.autoremove | 8 ++--- test/integration/framework | 2 +- test/integration/test-kernel-helper-autoremove | 44 ++++++++++++++++++++------ 4 files changed, 44 insertions(+), 26 deletions(-) (limited to 'test') diff --git a/debian/apt.auto-removal.sh b/debian/apt.auto-removal.sh index 9c4a4157d..ab8201898 100644 --- a/debian/apt.auto-removal.sh +++ b/debian/apt.auto-removal.sh @@ -1,5 +1,4 @@ #!/bin/sh - set -e # Author: Steve Langasek @@ -42,7 +41,7 @@ version_test_gt () return "$?" } -list=$(${DPKG} -l 'linux-image-[0-9]*'|awk '/^ii/ && $2 !~ /-dbg$/ { print $2 }' | sed -e's/linux-image-//') +list="$(${DPKG} -l | awk '/^ii[ ]+(linux|kfreebsd|gnumach)-image-[0-9]*/ && $2 !~ /-dbg$/ { print $2 }' | sed -e 's#\(linux\|kfreebsd\|gnumach\)-image-##')" latest_version="" previous_version="" @@ -74,21 +73,16 @@ EOF generateconfig() { cat < "${config_file}.dpkg-new" mv "${config_file}.dpkg-new" "$config_file" diff --git a/debian/apt.conf.autoremove b/debian/apt.conf.autoremove index ea68f88fc..5b958c716 100644 --- a/debian/apt.conf.autoremove +++ b/debian/apt.conf.autoremove @@ -4,18 +4,18 @@ APT { "^firmware-linux.*"; "^linux-firmware$"; - "^kfreebsd-image.*"; - "^gnumach$"; - "^gnumach-image.*"; }; VersionedKernelPackages { "linux-image"; + "linux-headers"; "linux-image-extra"; "linux-signed-image"; "linux-backports-modules-.*"; - "linux-headers"; + "kfreebsd-image"; + "kfreebsd-headers"; + "gnumach-image"; }; Never-MarkAuto-Sections diff --git a/test/integration/framework b/test/integration/framework index dad8c99f0..6502dbad1 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -194,7 +194,7 @@ setupenvironment() { mkdir rootdir aptarchive keys cd rootdir mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d - mkdir -p var/cache var/lib var/log tmp + mkdir -p var/cache var/lib/apt var/log tmp mkdir -p var/lib/dpkg/info var/lib/dpkg/updates var/lib/dpkg/triggers touch var/lib/dpkg/available mkdir -p usr/lib/apt diff --git a/test/integration/test-kernel-helper-autoremove b/test/integration/test-kernel-helper-autoremove index be30c6f6e..cb1c54e81 100755 --- a/test/integration/test-kernel-helper-autoremove +++ b/test/integration/test-kernel-helper-autoremove @@ -4,7 +4,7 @@ set -e TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment -configarchitecture 'native' +configarchitecture 'amd64' # the executed script would use the installed apt-config, # which is outside of our control @@ -16,21 +16,21 @@ else exit 0 fi -# install fake-dpkg into it +CURRENTKERNEL="linux-image-$(uname -r)" +insertinstalledpackage "$CURRENTKERNEL" 'amd64' '1' +insertinstalledpackage 'linux-image-1.0.0-2-generic' 'amd64' '1.0.0-2' +insertinstalledpackage 'linux-image-100.0.0-1-generic' 'amd64' '100.0.0-1' + +testsuccess aptmark auto "$CURRENTKERNEL" 'linux-image-1.0.0-2-generic' 'linux-image-100.0.0-1-generic' + cat > ./fake-dpkg < rootdir/etc/apt/apt.conf.d/99fakedpkg +# install fake-dpkg into it catfail() { echo >&2 echo >&2 '### List of protected kernels:' @@ -59,10 +59,34 @@ testprotected() { grep -q "^\\^linux-image-$(uname -r)\\\$\$" protected.list && msgpass || catfail } +testequal "Reading package lists... +Building dependency tree... +Reading state information... +The following packages will be REMOVED: + linux-image-1.0.0-2-generic (1.0.0-2) + linux-image-100.0.0-1-generic (100.0.0-1) + $CURRENTKERNEL (1) +0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. +Remv linux-image-1.0.0-2-generic [1.0.0-2] +Remv linux-image-100.0.0-1-generic [100.0.0-1] +Remv $CURRENTKERNEL [1]" aptget autoremove -sV + testprotected msgtest 'Check kernel autoremoval protection list does not include' 'old kernel' grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list && catfail || msgpass +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following packages will be REMOVED: + linux-image-1.0.0-2-generic +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +Remv linux-image-1.0.0-2-generic [1.0.0-2]' aptget autoremove -s + testprotected 1.0.0-2-generic msgtest 'Check kernel autoremoval protection list includes' 'installed kernel' grep -q '^\^linux-image-1\.0\.0-2-generic\$$' protected.list && msgpass || catfail +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget autoremove -s -- cgit v1.2.3-70-g09d2 From 7ce1ac857d914f98069078b1ea70995e7b6cf764 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 10 Mar 2014 21:31:35 +0100 Subject: ensure that a dot is a dot in the hook As we deal with regex matchers here the dots are treated as wildcards if we don't take care of escaping them. Not very likely that this could be a real-world problem, but just to be sure. --- debian/apt.auto-removal.sh | 7 ++----- test/integration/test-kernel-helper-autoremove | 26 +++++++++++++++++--------- 2 files changed, 19 insertions(+), 14 deletions(-) (limited to 'test') diff --git a/debian/apt.auto-removal.sh b/debian/apt.auto-removal.sh index ab8201898..0c5158658 100644 --- a/debian/apt.auto-removal.sh +++ b/debian/apt.auto-removal.sh @@ -63,13 +63,10 @@ then previous_version= fi -kernels=$(sort -u < ./fake-dpkg < Date: Mon, 10 Mar 2014 22:31:00 +0100 Subject: correct LD_LIBRARY_PATH and config loading for apt-helper Mostly ensures that we use the build methods and not the system provided methods in the tests (if we don't want it that way). Git-Dch: Ignore --- debian/tests/run-tests | 1 + test/integration/framework | 40 +++++++++++++++------------------------- 2 files changed, 16 insertions(+), 25 deletions(-) (limited to 'test') diff --git a/debian/tests/run-tests b/debian/tests/run-tests index 41bafda99..e6bc5e0d1 100644 --- a/debian/tests/run-tests +++ b/debian/tests/run-tests @@ -13,4 +13,5 @@ APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR=$(pwd)/build/bin \ APT_INTEGRATION_TESTS_METHODS_DIR=/usr/lib/apt/methods \ APT_INTEGRATION_TESTS_LIBEXEC_DIR=/usr/lib/apt/ \ APT_INTEGRATION_TESTS_BUILD_DIR=/usr/bin \ +APT_INTEGRATION_TESTS_LIBRARY_PATH=/dev/null/does/not/exist \ ./test/integration/run-tests diff --git a/test/integration/framework b/test/integration/framework index 6502dbad1..1ab421c4c 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -93,15 +93,18 @@ msgdone() { runapt() { msgdebug "Executing: ${CCMD}$*${CDEBUG} " - local CMD="${BUILDDIRECTORY}/$1" - if [ "$1" = 'sh' ]; then CMD='sh'; fi + local CMD="$1" shift + case $CMD in + sh|aptitude|*/*) ;; + *) CMD="${BUILDDIRECTORY}/$CMD";; + esac if [ -f ./aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $CMD "$@" + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${LIBRARYPATH} $CMD "$@" elif [ -f ../aptconfig.conf ]; then - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $CMD "$@" + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${LIBRARYPATH} $CMD "$@" else - MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} $CMD "$@" + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${LIBRARYPATH} $CMD "$@" fi } aptconfig() { runapt apt-config "$@"; } @@ -112,33 +115,19 @@ aptftparchive() { runapt apt-ftparchive "$@"; } aptkey() { runapt apt-key "$@"; } aptmark() { runapt apt-mark "$@"; } apt() { runapt apt "$@"; } -apthelper() { - LD_LIBRARY_PATH=${APTHELPERBINDIR} ${APTHELPERBINDIR}/apt-helper "$@"; -} -aptwebserver() { - LD_LIBRARY_PATH=${APTWEBSERVERBINDIR} ${APTWEBSERVERBINDIR}/aptwebserver "$@"; -} +apthelper() { runapt "${APTHELPERBINDIR}/apt-helper" "$@"; } +aptwebserver() { runapt "${APTWEBSERVERBINDIR}/aptwebserver" "$@"; } +aptitude() { runapt aptitude "$@"; } + dpkg() { command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@" } dpkgcheckbuilddeps() { command dpkg-checkbuilddeps --admindir=${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg "$@" } -aptitude() { - if [ -f ./aptconfig.conf ]; then - APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" - elif [ -f ../aptconfig.conf ]; then - APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" - else - LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@" - fi -} gdb() { echo "gdb: run »$*«" - APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command gdb ${BUILDDIRECTORY}/$1 --args "$@" -} -http() { - LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/methods/http + APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${LIBRARYPATH} command gdb ${BUILDDIRECTORY}/$1 --args "$@" } gpg() { # see apt-key for the whole trickery. Setup is done in setupenvironment @@ -183,6 +172,7 @@ setupenvironment() { # allow overriding the default BUILDDIR location BUILDDIRECTORY=${APT_INTEGRATION_TESTS_BUILD_DIR:-"${TESTDIRECTORY}/../../build/bin"} + LIBRARYPATH=${APT_INTEGRATION_TESTS_LIBRARY_PATH:-"${BUILDDIRECTORY}"} METHODSDIR=${APT_INTEGRATION_TESTS_METHODS_DIR:-"${BUILDDIRECTORY}/methods"} APTHELPERBINDIR=${APT_INTEGRATION_TESTS_LIBEXEC_DIR:-"${BUILDDIRECTORY}"} APTWEBSERVERBINDIR=${APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR:-"${BUILDDIRECTORY}"} @@ -246,7 +236,7 @@ setupenvironment() { # cleanup the environment a bit export PATH="${PATH}:/usr/local/sbin:/usr/sbin:/sbin" export LC_ALL=C.UTF-8 - unset LANGUAGE + unset LANGUAGE APT_CONFIG unset GREP_OPTIONS DEB_BUILD_PROFILES msgdone "info" -- cgit v1.2.3-70-g09d2 From 3dcdc1f91a5646f882940ff055b972d6b31a0ba5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Mar 2014 13:31:41 +0100 Subject: factor out getting list of architectures from comma list Beside fixing this minor code duplication it also resolves the problem of messing up vim syntax-highlighting. Git-Dch: Ignore --- test/integration/framework | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 1ab421c4c..00c8f3abc 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -259,6 +259,10 @@ getarchitectures() { echo "$(aptconfig dump | grep APT::Architecture | cut -d'"' -f 2 | sed '/^$/ d' | sort | uniq | tr '\n' ' ')" } +getarchitecturesfromcommalist() { + echo "$1" | sed -e 's#,#\n#g' | sed -e "s/^native\$/$(getarchitecture 'native')/" +} + configarchitecture() { { echo "APT::Architecture \"$(getarchitecture $1)\";" @@ -432,7 +436,7 @@ Package: $NAME" >> ${BUILDDIR}/debian/control # fi done - for arch in $(echo "$ARCH" | sed -e 's#,#\n#g' | sed -e "s#^native\$#$(getarchitecture 'native')#"); do + for arch in $(getarchitecturesfromcommalist "$ARCH"); do rm -rf ${BUILDDIR}/debian/tmp mkdir -p ${BUILDDIR}/debian/tmp/DEBIAN ${BUILDDIR}/debian/tmp/usr/share/doc/${NAME} ${BUILDDIR}/debian/tmp/usr/bin cp ${BUILDDIR}/debian/copyright ${BUILDDIR}/debian/changelog ${BUILDDIR}/FEATURES ${BUILDDIR}/debian/tmp/usr/share/doc/${NAME} @@ -587,7 +591,7 @@ insertpackage() { something went horribly wrong! They are autogenerated und used only by testcases and surf no other propose…"}" local ARCHS="" - for arch in $(echo "$ARCH" | sed -e 's#,#\n#g' | sed -e "s#^native\$#$(getarchitecture 'native')#"); do + for arch in $(getarchitecturesfromcommalist "$ARCH"); do if [ "$arch" = 'all' -o "$arch" = 'none' ]; then ARCHS="$(getarchitectures)" else @@ -649,7 +653,7 @@ insertinstalledpackage() { local FILE='rootdir/var/lib/dpkg/status' local INFO='rootdir/var/lib/dpkg/info' - for arch in $(echo "$ARCH" | sed -e 's#,#\n#g' | sed -e "s#^native\$#$(getarchitecture 'native')#"); do + for arch in $(getarchitecturesfromcommalist "$ARCH"); do echo "Package: $NAME Status: $STATUS Priority: $PRIORITY @@ -943,8 +947,7 @@ acquire::cdrom::autodetect 0;" > rootdir/etc/apt/apt.conf.d/00cdrom downloadfile() { local PROTO="$(echo "$1" | cut -d':' -f 1 )" - apthelper -o Acquire::https::CaInfo=${TESTDIR}/apt.pem \ - -o Debug::Acquire::${PROTO}=1 \ + apthelper -o Debug::Acquire::${PROTO}=1 \ download-file "$1" "$2" 2>&1 || true # only if the file exists the download was successful if [ -e "$2" ]; then -- cgit v1.2.3-70-g09d2 From 36e7727f70cde14b95f72029a9e2663672ef4da8 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Mar 2014 13:36:08 +0100 Subject: ensure that gz compression test is run with gz The framework can be configured to use different compression algorithms to test different ones, but a testcase testing for gz support should always be run with gz, regardless of what compressions are configured otherwise. Git-Dch: Ignore --- test/integration/test-compressed-indexes | 1 + 1 file changed, 1 insertion(+) (limited to 'test') diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes index c6f5ab49e..67ca0ba27 100755 --- a/test/integration/test-compressed-indexes +++ b/test/integration/test-compressed-indexes @@ -5,6 +5,7 @@ TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment +configcompression '.' 'gz' # only gz is supported for this, so ensure it is used configarchitecture "i386" buildsimplenativepackage "testpkg" "i386" "1.0" -- cgit v1.2.3-70-g09d2 From a17482f89b636a52aacc57776bfc8041cf4da508 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 21 Mar 2014 11:47:56 +0100 Subject: only consider versioned kernel packages in autoremove Metapackages like "linux-image-amd64" are otherwise matched by our extraction as well, which later on can't be successfully compared via dpkg --compare-versions as the 'amd64' bit isn't a version number. (Luckily none of our architectures starts with a digit.) This was broken by me in 0.9.16 as I moved a shell-glob matcher to a regex-based one which has slightly different semantics regarding '*'. Closes: 741962 --- debian/apt.auto-removal.sh | 2 +- test/integration/test-kernel-helper-autoremove | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/debian/apt.auto-removal.sh b/debian/apt.auto-removal.sh index 0c5158658..c00416127 100644 --- a/debian/apt.auto-removal.sh +++ b/debian/apt.auto-removal.sh @@ -41,7 +41,7 @@ version_test_gt () return "$?" } -list="$(${DPKG} -l | awk '/^ii[ ]+(linux|kfreebsd|gnumach)-image-[0-9]*/ && $2 !~ /-dbg$/ { print $2 }' | sed -e 's#\(linux\|kfreebsd\|gnumach\)-image-##')" +list="$(${DPKG} -l | awk '/^ii[ ]+(linux|kfreebsd|gnumach)-image-[0-9]/ && $2 !~ /-dbg$/ { print $2 }' | sed -e 's#\(linux\|kfreebsd\|gnumach\)-image-##')" latest_version="" previous_version="" diff --git a/test/integration/test-kernel-helper-autoremove b/test/integration/test-kernel-helper-autoremove index 7713c0875..c51caa758 100755 --- a/test/integration/test-kernel-helper-autoremove +++ b/test/integration/test-kernel-helper-autoremove @@ -20,6 +20,7 @@ CURRENTKERNEL="linux-image-$(uname -r)" insertinstalledpackage "$CURRENTKERNEL" 'amd64' '1' insertinstalledpackage 'linux-image-1.0.0-2-generic' 'amd64' '1.0.0-2' insertinstalledpackage 'linux-image-100.0.0-1-generic' 'amd64' '100.0.0-1' +insertinstalledpackage 'linux-image-amd64' 'amd64' '100.0.0-1' # ensure that the '.' is really a dot and not a wildcard insertinstalledpackage 'linux-headers-1000000-1-generic' 'amd64' '100.0.0-1' -- cgit v1.2.3-70-g09d2 From a1b6a4e7c5f5a859d27e00c2753b7f7b7e9ae14d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 21 Mar 2014 13:31:34 +0100 Subject: add testcase for APT::Architectures "arch1,arch2" Git-Dch: Ignore --- test/integration/test-bug-612958-use-dpkg-multiarch-config | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test') diff --git a/test/integration/test-bug-612958-use-dpkg-multiarch-config b/test/integration/test-bug-612958-use-dpkg-multiarch-config index 4d1f00ca0..7bf5781e8 100755 --- a/test/integration/test-bug-612958-use-dpkg-multiarch-config +++ b/test/integration/test-bug-612958-use-dpkg-multiarch-config @@ -42,6 +42,15 @@ testpass 'apt config' 'armel' rm $CONFFILE +echo '#clear APT::Architectures;' >> $CONFFILE +echo 'APT::Architectures "i386,amd64";' >> $CONFFILE + +testpass 'apt config' 'i386' +testpass 'apt config' 'amd64' +testfail 'apt config' 'armel' + +rm $CONFFILE + echo '#clear APT::Architectures;' >> $CONFFILE echo 'Dir::Bin::dpkg "./dpkg-printer";' >> $CONFFILE -- cgit v1.2.3-70-g09d2 From d151adbf2cc4d23c240c6c4fcfbfda439a98c36f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 22 Mar 2014 21:35:57 +0100 Subject: ensure proper teardown in dpkg error cases We have to properly close our pseudo terminals even in error cases before we call post-invoke scripts. This is done now by breaking from the dpkg calling loop instead of copying the handling, which did it in the wrong order before. This also ensures that our state file is written in error cases to record autobit and co as this was forgotten before. Closes: 738969 --- apt-pkg/deb/dpkgpm.cc | 24 ++-- .../test-apt-progress-fd-error-postinst | 22 ---- test/integration/test-failing-maintainer-scripts | 132 +++++++++++++++++++++ 3 files changed, 139 insertions(+), 39 deletions(-) delete mode 100755 test/integration/test-apt-progress-fd-error-postinst create mode 100755 test/integration/test-failing-maintainer-scripts (limited to 'test') diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 9fee7c923..5a5fff13b 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1530,28 +1530,18 @@ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress) // here but keep the loop going and just report it as a error // for later bool const stopOnError = _config->FindB("Dpkg::StopOnError",true); - - if(stopOnError) - RunScripts("DPkg::Post-Invoke"); - if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) + if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) strprintf(d->dpkg_error, "Sub-process %s received a segmentation fault.",Args[0]); else if (WIFEXITED(Status) != 0) strprintf(d->dpkg_error, "Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status)); - else + else strprintf(d->dpkg_error, "Sub-process %s exited unexpectedly",Args[0]); + _error->Error("%s", d->dpkg_error.c_str()); - if(d->dpkg_error.size() > 0) - _error->Error("%s", d->dpkg_error.c_str()); - - if(stopOnError) - { - CloseLog(); - StopPtyMagic(); - d->progress->Stop(); - return false; - } - } + if(stopOnError) + break; + } } // dpkg is done at this point d->progress->Stop(); @@ -1582,7 +1572,7 @@ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress) } Cache.writeStateFile(NULL); - return true; + return d->dpkg_error.empty(); } void SigINT(int /*sig*/) { diff --git a/test/integration/test-apt-progress-fd-error-postinst b/test/integration/test-apt-progress-fd-error-postinst deleted file mode 100755 index 0b6e70212..000000000 --- a/test/integration/test-apt-progress-fd-error-postinst +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -set -e - -TESTDIR=$(readlink -f $(dirname $0)) -. $TESTDIR/framework - -setupenvironment -configarchitecture 'amd64' 'i386' - -mkdir -p DEBIAN/ -echo "#!/bin/sh\nexit 1" > DEBIAN/postinst -chmod 755 DEBIAN/postinst - -buildsimplenativepackage 'postinst-error' 'amd64,i386' '0.8.15' 'stable' '' 'pkg with posinst error' '' '' './DEBIAN' - -setupaptarchive - -exec 3> apt-progress.log -testfailure aptget install postinst-error -y -o APT::Status-Fd=3 -msgtest "Ensure correct error message for postinst error" -grep -q "pmerror:postinst-error :80:subprocess installed post-installation script returned error exit status 2" apt-progress.log && msgpass || msgfail - diff --git a/test/integration/test-failing-maintainer-scripts b/test/integration/test-failing-maintainer-scripts new file mode 100755 index 000000000..cb82ebc7a --- /dev/null +++ b/test/integration/test-failing-maintainer-scripts @@ -0,0 +1,132 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture 'native' + +# create a bunch of failures +createfailure() { + setupsimplenativepackage "failure-$1" 'native' '1.0' 'unstable' 'Depends: dependee' + BUILDDIR="incoming/failure-$1-1.0" + echo '#!/bin/sh +exit 29' > ${BUILDDIR}/debian/$1 + buildpackage "$BUILDDIR" 'unstable' 'main' 'native' + rm -rf "$BUILDDIR" +} + +buildsimplenativepackage 'dependee' 'native' '1.0' 'unstable' +createfailure 'preinst' +createfailure 'postinst' +createfailure 'prerm' +createfailure 'postrm' + +setupaptarchive + +# create a library to noop chroot() and rewrite maintainer script executions +# via execvp() as used by dpkg as we don't want our rootdir to be a fullblown +# chroot directory dpkg could chroot into to execute the maintainer scripts +cat << EOF > noopchroot.c +#define _GNU_SOURCE +#include +#include +#include +#include + +static char * chrootdir = NULL; + +int chroot(const char *path) { + printf("WARNING: CHROOTing to %s was ignored!\n", path); + free(chrootdir); + chrootdir = strdup(path); + return 0; +} +int execvp(const char *file, char *const argv[]) { + static int (*func_execvp) (const char *, char * const []) = NULL; + if (func_execvp == NULL) + func_execvp = (int (*) (const char *, char * const [])) dlsym(RTLD_NEXT, "execvp"); + if (chrootdir == NULL || strncmp(file, "/var/lib/dpkg/", strlen("/var/lib/dpkg/")) != 0) + return func_execvp(file, argv); + printf("REWRITE execvp call %s into %s\n", file, chrootdir); + char newfile[strlen(chrootdir) + strlen(file)]; + strcpy(newfile, chrootdir); + strcat(newfile, file); + return func_execvp(newfile, argv); +} +EOF +testsuccess gcc -fPIC -shared -o noopchroot.so noopchroot.c -ldl + +mkdir -p "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/" +DPKG="${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg" +echo "#!/bin/sh +if [ -n \"\$LD_PRELOAD\" ]; then + export LD_PRELOAD=\"${TMPWORKINGDIRECTORY}/noopchroot.so \${LD_PRELOAD}\" +else + export LD_PRELOAD=\"${TMPWORKINGDIRECTORY}/noopchroot.so\" +fi +dpkg \"\$@\"" > $DPKG +chmod +x $DPKG +sed -ie "s|^DPKG::options:: \"dpkg\";\$|DPKG::options:: \"$DPKG\";|" aptconfig.conf + +# setup some pre- and post- invokes to check the output isn't garbled later +APTHOOK="${TMPWORKINGDIRECTORY}/rootdir/usr/bin/apthook" +echo '#!/bin/sh +echo "$1: START" +echo "$1: MaiN" +echo "$1: ENd"' > $APTHOOK +chmod +x $APTHOOK +echo "DPKG::Pre-Invoke:: \"${APTHOOK} PRE\"; +DPKG::Post-Invoke:: \"${APTHOOK} POST\";" > rootdir/etc/apt/apt.conf.d/99apthooks + +testmyfailure() { + local PROGRESS='rootdir/tmp/progress.log' + exec 3> $PROGRESS + testfailure "$@" -o APT::Status-Fd=3 + msgtest 'Test for failure message of maintainerscript in' 'console log' + local TEST='rootdir/tmp/testfailure.output' + if grep -q 'exit status 29$' "$TEST"; then + msgpass + else + cat $TEST + msgfail + fi + msgtest 'Test for proper execution of invoke scripts in' 'console log' + if grep -q '^PRE: START$' $TEST && + grep -q '^PRE: MaiN$' $TEST && + grep -q '^PRE: ENd$' $TEST && + grep -q '^POST: START$' $TEST && + grep -q '^POST: MaiN$' $TEST && + grep -q '^POST: ENd$' $TEST; then + msgpass + else + cat $TEST + msgfail + fi + msgtest 'Test for failure message of maintainerscript in' 'progress log' + if grep -q '^pmerror:.\+exit status 29$' "$PROGRESS"; then + msgpass + else + cat $PROGRESS + msgfail + fi + testmarkedauto 'dependee' +} + +cp -a rootdir/var/lib/dpkg/status rootdir/var/lib/dpkg/status.backup +testmyfailure aptget install failure-preinst -y +cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status +testmyfailure aptget install failure-postinst -y +cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status +testsuccess aptget install failure-prerm -y +testdpkginstalled failure-prerm +testmyfailure aptget purge failure-prerm -y +cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status +testsuccess aptget install failure-postrm -y +testdpkginstalled failure-postrm +testmyfailure aptget purge failure-postrm -y + +# FIXME: test with output going to a PTY as it usually does +#cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status +#aptget install failure-preinst -y -- cgit v1.2.3-70-g09d2 From 21b3eac8f9ab8e12b43fa8998a5aa5465f29adc5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 11 Mar 2014 10:31:44 +0100 Subject: discard candidates via IsInstallOk to allow override In commit 446551c8 I changed MarkInstall to discard the candidate if the candidate can't satisfy the dependency. This breaks interactive solvers like aptitude which can change the candidate on-the-fly later. In commit df77d8a5 I introduced this 'early' loop-breaking to begin with which can't be that helpful for interactive solvers as well, but makes perfect sense for non-interactives to stop them from exploring trees which can't be satisfied, but it isn't perfect as ideally we would check this before auto-installing the first dependency. This commit therefore moves the loop into its own IsInstallOk hook so that frontends can override this check if they want to and in exchange removes the loop-breaking from MarkInstall itself and does it before any dependency is installed. Closes: 740750 --- apt-pkg/depcache.cc | 78 ++++++++++++++++------ apt-pkg/depcache.h | 2 + .../test-bug-735967-lib32-to-i386-unavailable | 3 + 3 files changed, 63 insertions(+), 20 deletions(-) (limited to 'test') diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 5fa88a5d2..19a6e0d7e 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1122,32 +1122,22 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, continue; /* Check if this dep should be consider for install. If it is a user - defined important dep and we are installed a new package then + defined important dep and we are installed a new package then it will be installed. Otherwise we only check for important - deps that have changed from the installed version - */ + deps that have changed from the installed version */ if (IsImportantDep(Start) == false) continue; - /* If we are in an or group locate the first or that can - succeed. We have already cached this.. */ + /* If we are in an or group locate the first or that can + succeed. We have already cached this… */ for (; Ors > 1 && (DepState[Start->ID] & DepCVer) != DepCVer; --Ors) ++Start; + + /* unsatisfiable dependency: IsInstallOkDependenciesSatisfiableByCandidates + would have prevented us to get here if not overridden, so just skip + over the problem here as the frontend will know what it is doing */ if (Ors == 1 && (DepState[Start->ID] &DepCVer) != DepCVer && Start.IsNegative() == false) - { - if(DebugAutoInstall == true) - std::clog << OutputInDepth(Depth) << Start << " can't be satisfied!" << std::endl; - if (Start.IsCritical() == false) - continue; - // if the dependency was critical, we have absolutely no chance to install it, - // so if it wasn't installed remove it again. If it was, discard the candidate - // as the problemresolver will trip over it otherwise trying to install it (#735967) - if (Pkg->CurrentVer == 0) - MarkDelete(Pkg,false,Depth + 1, false); - else - SetCandidateVersion(Pkg.CurrentVer()); - return false; - } + continue; /* Check if any ImportantDep() (but not Critical) were added * since we installed the package. Also check for deps that @@ -1299,7 +1289,8 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, bool pkgDepCache::IsInstallOk(PkgIterator const &Pkg,bool AutoInst, unsigned long Depth, bool FromUser) { - return IsInstallOkMultiArchSameVersionSynced(Pkg,AutoInst, Depth, FromUser); + return IsInstallOkMultiArchSameVersionSynced(Pkg,AutoInst, Depth, FromUser) && + IsInstallOkDependenciesSatisfiableByCandidates(Pkg,AutoInst, Depth, FromUser); } bool pkgDepCache::IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg, bool const /*AutoInst*/, unsigned long const Depth, bool const FromUser) @@ -1342,6 +1333,53 @@ bool pkgDepCache::IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg, return false; } + return true; +} +bool pkgDepCache::IsInstallOkDependenciesSatisfiableByCandidates(PkgIterator const &Pkg, + bool const AutoInst, unsigned long const Depth, bool const /*FromUser*/) +{ + if (AutoInst == false) + return true; + + VerIterator const CandVer = PkgState[Pkg->ID].CandidateVerIter(*this); + if (unlikely(CandVer.end() == true) || CandVer == Pkg.CurrentVer()) + return true; + + for (DepIterator Dep = CandVer.DependsList(); Dep.end() != true;) + { + // Grok or groups + DepIterator Start = Dep; + bool Result = true; + unsigned Ors = 0; + for (bool LastOR = true; Dep.end() == false && LastOR == true; ++Dep, ++Ors) + { + LastOR = (Dep->CompareOp & Dep::Or) == Dep::Or; + + if ((DepState[Dep->ID] & DepInstall) == DepInstall) + Result = false; + } + + if (Start.IsCritical() == false || Start.IsNegative() == true || Result == false) + continue; + + /* If we are in an or group locate the first or that can succeed. + We have already cached this… */ + for (; Ors > 1 && (DepState[Start->ID] & DepCVer) != DepCVer; --Ors) + ++Start; + + if (Ors == 1 && (DepState[Start->ID] &DepCVer) != DepCVer) + { + if (DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << Start << " can't be satisfied!" << std::endl; + + // the dependency is critical, but can't be installed, so discard the candidate + // as the problemresolver will trip over it otherwise trying to install it (#735967) + if (Pkg->CurrentVer != 0) + SetCandidateVersion(Pkg.CurrentVer()); + return false; + } + } + return true; } /*}}}*/ diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index bde648c65..bec651279 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -506,6 +506,8 @@ class pkgDepCache : protected pkgCache::Namespace // methods call by IsInstallOk bool IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg, bool const AutoInst, unsigned long const Depth, bool const FromUser); + bool IsInstallOkDependenciesSatisfiableByCandidates(PkgIterator const &Pkg, + bool const AutoInst, unsigned long const Depth, bool const FromUser); // methods call by IsDeleteOk bool IsDeleteOkProtectInstallRequests(PkgIterator const &Pkg, diff --git a/test/integration/test-bug-735967-lib32-to-i386-unavailable b/test/integration/test-bug-735967-lib32-to-i386-unavailable index 4dbe1d25d..e9f3bf96d 100755 --- a/test/integration/test-bug-735967-lib32-to-i386-unavailable +++ b/test/integration/test-bug-735967-lib32-to-i386-unavailable @@ -12,6 +12,9 @@ insertpackage 'unstable' 'libnss-mdns' 'amd64,i386' '0.10-6' 'Multi-Arch: same Breaks: lib32nss-mdns (<< 0.10-6)' insertpackage 'unstable' 'libnss-mdns-i386' 'i386' '0.10-6' 'Multi-Arch: foreign Depends: libnss-mdns' +# introduce some dummies so that there are versions, but none works +insertpackage 'unstable' 'libnss-mdns-i386' 'amd64' '0.1-6' +insertpackage 'experimental' 'libnss-mdns-amd64' 'i386,amd64' '0.10-6' 'Provides: libnss-mdns-i386' insertpackage 'unstable' 'foo' 'amd64' '1' 'Depends: libfoo' insertpackage 'unstable' 'libfoo' 'amd64' '1' 'Depends: libfoo-bin' -- cgit v1.2.3-70-g09d2 From fa211e2d3b0305cfdd184cdba9750259f6d9c98e Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 27 Mar 2014 07:56:42 +0100 Subject: Add progressbar to "Dpkg::Progress-Fancy" A text progressbar is now displayed in the Dpkg::Progress-Fancy mode. It can be turned off via the apt option Dpkg::Progress-Fancy::Progress-Bar=false --- apt-pkg/install-progress.cc | 63 +++++++++++++++++++++++++++++------- apt-pkg/install-progress.h | 11 ++++++- test/libapt/install_progress_test.cc | 30 +++++++++++++++++ test/libapt/makefile | 6 ++++ 4 files changed, 98 insertions(+), 12 deletions(-) create mode 100644 test/libapt/install_progress_test.cc (limited to 'test') diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index 96334b006..8bb587f67 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -252,17 +252,22 @@ void PackageManagerFancy::staticSIGWINCH(int signum) (*I)->HandleSIGWINCH(signum); } -int PackageManagerFancy::GetNumberTerminalRows() +PackageManagerFancy::TermSize +PackageManagerFancy::GetTerminalSize() { struct winsize win; + PackageManagerFancy::TermSize s; + // FIXME: get from "child_pty" instead? if(ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&win) != 0) - return -1; + return s; if(_config->FindB("Debug::InstallProgress::Fancy", false) == true) - std::cerr << "GetNumberTerminalRows: " << win.ws_row << std::endl; - - return win.ws_row; + std::cerr << "GetTerminalSize: " << win.ws_row << std::endl; + + s.rows = win.ws_row; + s.columns = win.ws_col; + return s; } void PackageManagerFancy::SetupTerminalScrollArea(int nr_rows) @@ -298,21 +303,21 @@ void PackageManagerFancy::SetupTerminalScrollArea(int nr_rows) void PackageManagerFancy::HandleSIGWINCH(int) { - int nr_terminal_rows = GetNumberTerminalRows(); + int nr_terminal_rows = GetTerminalSize().rows; SetupTerminalScrollArea(nr_terminal_rows); } void PackageManagerFancy::Start(int a_child_pty) { child_pty = a_child_pty; - int nr_terminal_rows = GetNumberTerminalRows(); + int nr_terminal_rows = GetTerminalSize().rows; if (nr_terminal_rows > 0) SetupTerminalScrollArea(nr_terminal_rows); } void PackageManagerFancy::Stop() { - int nr_terminal_rows = GetNumberTerminalRows(); + int nr_terminal_rows = GetTerminalSize().rows; if (nr_terminal_rows > 0) { SetupTerminalScrollArea(nr_terminal_rows + 1); @@ -324,6 +329,26 @@ void PackageManagerFancy::Stop() child_pty = -1; } +std::string +PackageManagerFancy::GetTextProgressStr(float Percent, int OutputSize) +{ + std::string output; + int i; + + // should we raise a exception here instead? + if (Percent < 0.0 || Percent > 1.0 || OutputSize < 3) + return output; + + int BarSize = OutputSize - 2; // bar without the leading "[" and trailing "]" + output += "["; + for(i=0; i < BarSize*Percent; i++) + output += "#"; + for (/*nothing*/; i < BarSize; i++) + output += "."; + output += "]"; + return output; +} + bool PackageManagerFancy::StatusChanged(std::string PackageName, unsigned int StepsDone, unsigned int TotalSteps, @@ -333,7 +358,7 @@ bool PackageManagerFancy::StatusChanged(std::string PackageName, HumanReadableAction)) return false; - int row = GetNumberTerminalRows(); + PackageManagerFancy::TermSize size = GetTerminalSize(); static std::string save_cursor = "\033[s"; static std::string restore_cursor = "\033[u"; @@ -350,14 +375,30 @@ bool PackageManagerFancy::StatusChanged(std::string PackageName, std::cout << save_cursor // move cursor position to last row - << "\033[" << row << ";0f" + << "\033[" << size.rows << ";0f" << set_bg_color << set_fg_color << progress_str - << restore_cursor << restore_bg << restore_fg; std::flush(std::cout); + + // draw text progress bar + if (_config->FindB("Dpkg::Progress-Fancy::Progress-Bar", true)) + { + int padding = 4; + float progressbar_size = size.columns - padding - progress_str.size(); + float current_percent = (float)StepsDone/(float)TotalSteps; + std::cout << " " + << GetTextProgressStr(current_percent, progressbar_size) + << " "; + std::flush(std::cout); + } + + // restore + std::cout << restore_cursor; + std::flush(std::cout); + last_reported_progress = percentage; return true; diff --git a/apt-pkg/install-progress.h b/apt-pkg/install-progress.h index baf245376..112b034fb 100644 --- a/apt-pkg/install-progress.h +++ b/apt-pkg/install-progress.h @@ -125,7 +125,12 @@ namespace Progress { void SetupTerminalScrollArea(int nr_rows); void HandleSIGWINCH(int); - int GetNumberTerminalRows(); + typedef struct { + int rows; + int columns; + } TermSize; + TermSize GetTerminalSize(); + sighandler_t old_SIGWINCH; int child_pty; @@ -138,6 +143,10 @@ namespace Progress { unsigned int StepsDone, unsigned int TotalSteps, std::string HumanReadableAction); + + // return a progress bar of the given size for the given progress + // percent between 0.0 and 1.0 in the form "[####...]" + static std::string GetTextProgressStr(float percent, int OutputSize); }; class PackageManagerText : public PackageManager diff --git a/test/libapt/install_progress_test.cc b/test/libapt/install_progress_test.cc new file mode 100644 index 000000000..be1a3411e --- /dev/null +++ b/test/libapt/install_progress_test.cc @@ -0,0 +1,30 @@ +#include + +#include + +#include + +#include "assert.h" + +int main() { + APT::Progress::PackageManagerFancy p; + std::string s; + + s= p.GetTextProgressStr(0.5, 60); + equals(s.size(), 60); + + s= p.GetTextProgressStr(0.5, 4); + equals(s, "[#.]"); + + s= p.GetTextProgressStr(0.1, 12); + equals(s, "[#.........]"); + + s= p.GetTextProgressStr(0.9, 12); + equals(s, "[#########.]"); + + // deal with incorrect inputs gracefully (or should we die instead?) + s= p.GetTextProgressStr(-999, 12); + equals(s, ""); + + return 0; +} diff --git a/test/libapt/makefile b/test/libapt/makefile index 66d6ea783..e03b5e6aa 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -123,3 +123,9 @@ SLIBS = -lapt-pkg SOURCE = sourcelist_test.cc include $(PROGRAM_H) +# test install-progress +PROGRAM = InstallProgress${BASENAME} +SLIBS = -lapt-pkg +SOURCE = install_progress_test.cc +include $(PROGRAM_H) + -- cgit v1.2.3-70-g09d2 From 8d50b63f28f0d68ca72b6dc6e50e09cfec9842be Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 27 Mar 2014 10:14:30 +0100 Subject: Use mkstemp() in apt-extracttemplaes (closes: #741627) Use mkstemp() in apt-extractemplates and add a integrationtest for apt-extracttemplates too. Thanks to Steve Kemp for the report. --- cmdline/apt-extracttemplates.cc | 15 ++++++---- doc/apt-extracttemplates.1.xml | 4 +-- test/integration/framework | 1 + test/integration/test-apt-extracttemplates | 45 ++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 8 deletions(-) create mode 100755 test/integration/test-apt-extracttemplates (limited to 'test') diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc index a82623444..e4428e051 100644 --- a/cmdline/apt-extracttemplates.cc +++ b/cmdline/apt-extracttemplates.cc @@ -37,6 +37,7 @@ #include #include #include +#include #include "apt-extracttemplates.h" @@ -239,23 +240,25 @@ static int ShowHelp(void) static string WriteFile(const char *package, const char *prefix, const char *data) { char fn[512]; - static int i; std::string tempdir = GetTempDir(); - snprintf(fn, sizeof(fn), "%s/%s.%s.%u%d", + snprintf(fn, sizeof(fn), "%s/%s.%s.XXXXXX", _config->Find("APT::ExtractTemplates::TempDir", tempdir.c_str()).c_str(), - package, prefix, getpid(), i++); + package, prefix); FileFd f; if (data == NULL) data = ""; - - if (!f.Open(fn, FileFd::WriteTemp, 0600)) + int fd = mkstemp(fn); + if (fd < 0) { + _error->Errno("ofstream::ofstream",_("Unable to mkstemp %s"),fn); + return string(); + } + if (!f.OpenDescriptor(fd, FileFd::WriteOnly, FileFd::None, true)) { _error->Errno("ofstream::ofstream",_("Unable to write to %s"),fn); return string(); } - f.Write(data, strlen(data)); f.Close(); return fn; diff --git a/doc/apt-extracttemplates.1.xml b/doc/apt-extracttemplates.1.xml index d27e05075..9f9888069 100644 --- a/doc/apt-extracttemplates.1.xml +++ b/doc/apt-extracttemplates.1.xml @@ -47,8 +47,8 @@ template-file and config-script are written to the temporary directory specified by the or (APT::ExtractTemplates::TempDir) directory, - with filenames of the form package.template.XXXX and - package.config.XXXX + with filenames of the form package.template.XXXXXX and + package.config.XXXXXX options diff --git a/test/integration/framework b/test/integration/framework index 8e401cb5f..1c6f041b0 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -118,6 +118,7 @@ apt() { runapt apt "$@"; } apthelper() { runapt "${APTHELPERBINDIR}/apt-helper" "$@"; } aptwebserver() { runapt "${APTWEBSERVERBINDIR}/aptwebserver" "$@"; } aptitude() { runapt aptitude "$@"; } +aptextracttemplates() { runapt apt-extracttemplates "$@"; } dpkg() { command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@" diff --git a/test/integration/test-apt-extracttemplates b/test/integration/test-apt-extracttemplates new file mode 100755 index 000000000..ae2cc8bc2 --- /dev/null +++ b/test/integration/test-apt-extracttemplates @@ -0,0 +1,45 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture 'amd64' + +# apt-extracttemplates needs this +insertinstalledpackage 'debconf' 'amd64' '1.5' +insertinstalledpackage 'pkg-with-template' 'amd64' '1.0' + +# build a simple package that contains a config and a tempalte +mkdir -p DEBIAN +TEMPLATE_STR="Template: foo/bar +Type: string +Description: Some bar var +" +echo "$TEMPLATE_STR" > DEBIAN/templates + +CONFIG_STR="#!/bin/sh +random shell stuff +" +echo "$CONFIG_STR" > DEBIAN/config + +buildsimplenativepackage 'pkg-with-template' 'amd64' '0.8.15' 'stable' '' 'pkg with template' '' '' './DEBIAN' + +# ensure we get the right stuff out of the file +mkdir extracttemplates-out +OUT="$(aptextracttemplates -t ./extracttemplates-out incoming/pkg-with-template*.deb)" + +PKG=$(printf "$OUT" | cut -f1 -d' ') +INSTALLED_VER=$(printf "$OUT" | cut -f2 -d' ') +TEMPLATE=$(printf "$OUT" | cut -f3 -d' ') +CONFIG=$(printf "$OUT" | cut -f4 -d' ') + +testequal "$CONFIG_STR" cat $CONFIG +testequal "$TEMPLATE_STR" cat $TEMPLATE + +# ensure that the format of the output string has the right number of dots +for s in "$CONFIG" "$TEMPLATE"; do + NR_DOTS=$(basename "$s" | tr -c -d .) + testequal ".." echo $NR_DOTS +done -- cgit v1.2.3-70-g09d2 From 01837669afa740b594d2075661dc9faa3ab6fe43 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 7 Apr 2014 16:40:12 +0200 Subject: make apt search case-insensitive by default --- apt-private/private-search.cc | 8 ++++++-- test/integration/test-apt-cli-search | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/apt-private/private-search.cc b/apt-private/private-search.cc index 8106333b6..ecd5d7fad 100644 --- a/apt-private/private-search.cc +++ b/apt-private/private-search.cc @@ -68,8 +68,12 @@ bool FullTextSearch(CommandLine &CmdL) /*{{{*/ const char *pattern = patterns[i]; all_found &= ( strstr(V.ParentPkg().Name(), pattern) != NULL || - parser.ShortDesc().find(pattern) != std::string::npos || - parser.LongDesc().find(pattern) != std::string::npos); + strcasestr(parser.ShortDesc().c_str(), pattern) != NULL || + strcasestr(parser.LongDesc().c_str(), pattern) != NULL); + // search patterns are AND by default so we can skip looking further + // on the first mismatch + if(all_found == false) + break; } if (all_found) { diff --git a/test/integration/test-apt-cli-search b/test/integration/test-apt-cli-search index 84650b366..58613717b 100755 --- a/test/integration/test-apt-cli-search +++ b/test/integration/test-apt-cli-search @@ -13,7 +13,7 @@ if [ ! -x ${BUILDDIRECTORY}/apt ]; then exit 0 fi -DESCR='Some description that has a unusual word xxyyzz and aabbcc' +DESCR='Some description that has a unusual word xxyyzz and aabbcc and a UPPERCASE' DESCR2='Some other description with the unusual aabbcc only' insertpackage 'unstable' 'foo' 'all' '1.0' '' '' "$DESCR" insertpackage 'testing' 'bar' 'i386' '2.0' '' '' "$DESCR2" @@ -39,6 +39,11 @@ testequal "foo/unstable 1.0 all $DESCR " apt search -qq aabbcc xxyyzz +# search is not case-sensitive by default +testequal "foo/unstable 1.0 all + $DESCR +" apt search -qq uppercase + # output is sorted and search word finds both package testequal "bar/testing 2.0 i386 $DESCR2 -- cgit v1.2.3-70-g09d2 From c8259fcde18ad9e08fffb04bf06ed64b87b1ac6a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 8 Apr 2014 09:04:15 +0200 Subject: fix apt list output for pkgs in dpkg ^rc state Packages in the "deinstall ok config-file" have no candidate or instaleld version. So they must be special cased in the apt list generation. --- apt-private/private-cacheset.cc | 8 +++++++- apt-private/private-output.cc | 4 ++++ test/integration/test-apt-cli-list | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/apt-private/private-cacheset.cc b/apt-private/private-cacheset.cc index 4a63c7e81..e37e7b227 100644 --- a/apt-private/private-cacheset.cc +++ b/apt-private/private-cacheset.cc @@ -73,7 +73,13 @@ bool GetLocalitySortedVersionSet(pkgCacheFile &CacheFile, else { pkgPolicy *policy = CacheFile.GetPolicy(); - output_set.insert(policy->GetCandidateVer(P)); + if (policy->GetCandidateVer(P).IsGood()) + output_set.insert(policy->GetCandidateVer(P)); + else + // no candidate, this may happen for packages in + // dpkg "deinstall ok config-file" state - we pick the first ver + // (which should be the only one) + output_set.insert(P.VersionList()); } } progress.Done(); diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc index bbd8545ad..757999167 100644 --- a/apt-private/private-output.cc +++ b/apt-private/private-output.cc @@ -146,6 +146,10 @@ static std::string GetArchitecture(pkgCacheFile &CacheFile, pkgCache::PkgIterato pkgCache::VerIterator inst = P.CurrentVer(); pkgCache::VerIterator cand = policy->GetCandidateVer(P); + // this may happen for packages in dpkg "deinstall ok config-file" state + if (inst.IsGood() == false && cand.IsGood() == false) + return P.VersionList().Arch(); + return inst ? inst.Arch() : cand.Arch(); } /*}}}*/ diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index 47cfb624a..6fc4bc7f6 100755 --- a/test/integration/test-apt-cli-list +++ b/test/integration/test-apt-cli-list @@ -51,3 +51,8 @@ bar/now 1.0 i386 [installed,local] an autogenerated dummy bar=1.0/installed " apt list bar --verbose +# test for dpkg ^rc state +insertinstalledpackage 'conf-only' 'i386' '1.0' '' '' 'deinstall ok config-files' +testequal "Listing... +conf-only/now 1.0 i386 [residual-config]" apt list conf-only + -- cgit v1.2.3-70-g09d2 From 5572f6bdcb947e11f32e2a035438d9d3899ad46d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Apr 2014 15:28:00 +0200 Subject: Fix possible race when stunnel/aptwebserver create their PID files This patch should fix spurious test failures in jenkins or travis that are caused by a race condition in the {stunnel,aptwebserver}.pid file creation --- test/integration/framework | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 1c6f041b0..8d8a0becc 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -879,6 +879,20 @@ rewritesourceslist() { done } +# wait for up to 10s for a pid file to appear to avoid possible race +# when a helper is started and dosn't write the PID quick enough +waitforpidfile() { + local PIDFILE="$1" + for i in $(seq 10); do + if test -s "$PIDFILE"; then + return 0 + fi + sleep 1 + done + msgdie "waiting for $PIDFILE failed" + return 1 +} + changetowebserver() { if [ "$1" != '--no-rewrite' ]; then rewritesourceslist 'http://localhost:8080/' @@ -892,6 +906,7 @@ changetowebserver() { cat $LOG false fi + waitforpidfile aptwebserver.pid local PID="$(cat aptwebserver.pid)" if [ -z "$PID" ]; then msgdie 'Could not fork aptwebserver successfully' @@ -919,7 +934,11 @@ accept = 4433 connect = 8080 " > ${TMPWORKINGDIRECTORY}/stunnel.conf stunnel4 "${TMPWORKINGDIRECTORY}/stunnel.conf" + waitforpidfile "${TMPWORKINGDIRECTORY}/aptarchive/stunnel.pid" local PID="$(cat ${TMPWORKINGDIRECTORY}/aptarchive/stunnel.pid)" + if [ -z "$PID" ]; then + msgdie 'Could not fork stunnel4 successfully' + fi addtrap 'prefix' "kill ${PID};" rewritesourceslist 'https://localhost:4433/' } -- cgit v1.2.3-70-g09d2 From d6570f8577a955a6950ef9fe1ee9def401759336 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Apr 2014 16:23:14 +0200 Subject: Notice the user about "apt list -a" when only a single hit if found If the user is using "apt list pattern" and there is only a single hit, notice about "--all-versions" as this is what the user may be interessted in --- apt-private/private-list.cc | 15 ++++++++++++++- test/integration/test-apt-cli-list | 12 ++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/apt-private/private-list.cc b/apt-private/private-list.cc index b053cbcbe..b69002103 100644 --- a/apt-private/private-list.cc +++ b/apt-private/private-list.cc @@ -130,10 +130,11 @@ bool DoList(CommandLine &Cmd) Cache->Head().PackageCount, _("Listing")); GetLocalitySortedVersionSet(CacheFile, bag, matcher, progress); + bool ShowAllVersions = _config->FindB("APT::Cmd::All-Versions", false); for (LocalitySortedVersionSet::iterator V = bag.begin(); V != bag.end(); ++V) { std::stringstream outs; - if(_config->FindB("APT::Cmd::All-Versions", false) == true) + if(ShowAllVersions == true) { ListAllVersions(CacheFile, records, V.ParentPkg(), outs, includeSummary); output_map.insert(std::make_pair( @@ -151,6 +152,18 @@ bool DoList(CommandLine &Cmd) std::cout << (*K).second << std::endl; + // be nice and tell the user if there is more to see + if (bag.size() == 1 && ShowAllVersions == false) + { + // start with -1 as we already displayed one version + int versions = -1; + pkgCache::VerIterator Ver = *bag.begin(); + for ( ; Ver.end() == false; Ver++) + versions++; + if (versions > 0) + _error->Notice(P_("There is %i additional version. Please use the '-a' switch to see it", "There are %i additional versions. Please use the '-a' switch to see them.", versions), versions); + } + return true; } diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index 47cfb624a..b738bcc66 100755 --- a/test/integration/test-apt-cli-list +++ b/test/integration/test-apt-cli-list @@ -19,12 +19,17 @@ insertinstalledpackage 'bar' 'i386' '1.0' insertinstalledpackage 'foobar' 'i386' '1.0' insertpackage 'unstable' 'foobar' 'i386' '2.0' +insertinstalledpackage 'baz' 'all' '0.1' +insertpackage 'testing' 'baz' 'all' '1.0' +insertpackage 'unstable' 'baz' 'all' '2.0' + setupaptarchive APTARCHIVE=$(readlink -f ./aptarchive) testequal "Listing... bar/now 1.0 i386 [installed,local] +baz/unstable 2.0 all [upgradable from: 0.1] foo/unstable 1.0 all foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list @@ -33,12 +38,14 @@ foo/unstable 1.0 all foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list "foo*" testequal "Listing... +baz/unstable 2.0 all [upgradable from: 0.1] foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list --upgradable # FIXME: hm, hm - does it make sense to have this different? shouldn't # we use "installed,upgradable" consitently? testequal "Listing... bar/now 1.0 i386 [installed,local] +baz/now 0.1 all [installed,upgradable to: 2.0] foobar/now 1.0 i386 [installed,upgradable to: 2.0]" apt list --installed testequal "Listing... @@ -51,3 +58,8 @@ bar/now 1.0 i386 [installed,local] an autogenerated dummy bar=1.0/installed " apt list bar --verbose +# ensure that the users learns about multiple versions too +testequal "Listing... +baz/unstable 2.0 all [upgradable from: 0.1] +N: There are 2 additional versions. Please use the '-a' switch to see them." apt list baz -o quiet=0 + -- cgit v1.2.3-70-g09d2 From f22b65b47990237bd5d9a1c171919c3059fbd9b0 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Apr 2014 10:12:10 +0200 Subject: Fix insecure file permissions when using FileFd with OpenMode::Atomic Commit 7335eebea6dd43581d4650a8818b06383ab89901 introduced a bug that caused FileFd to create insecure permissions when FileFd::Atomic is used. This commit fixes the permissions and adds a test. The bug is most likely caused by the confusing "Perm" parameter that is passed to Open() - its not the file permissions but intead the "mode" part of open/creat. --- apt-pkg/contrib/fileutl.cc | 8 ++++++-- test/libapt/fileutl_test.cc | 31 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 188bb87ee..8b57e87a3 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1067,6 +1067,10 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co if_FLAGGED_SET(Exclusive, O_EXCL); #undef if_FLAGGED_SET + // there is no getumask() so we read it by setting it and reset + mode_t current_umask = umask(0); + umask(current_umask); + if ((Mode & Atomic) == Atomic) { char *name = strdup((FileName + ".XXXXXX").c_str()); @@ -1080,11 +1084,11 @@ bool FileFd::Open(string FileName,unsigned int const Mode,APT::Configuration::Co TemporaryFileName = string(name); free(name); - if(Perms != 600 && fchmod(iFd, Perms) == -1) + if(Perms != 600 && fchmod(iFd, Perms & ~current_umask) == -1) return FileFdErrno("fchmod", "Could not change permissions for temporary file %s", TemporaryFileName.c_str()); } else - iFd = open(FileName.c_str(), fileflags, Perms); + iFd = open(FileName.c_str(), fileflags, Perms & ~current_umask); this->FileName = FileName; if (iFd == -1 || OpenInternDescriptor(Mode, compressor) == false) diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 8da832ba9..1d1a1a1b8 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -6,13 +6,44 @@ #include #include #include +#include #include "assert.h" +// regression test for permission bug LP: #1304657 +static bool +TestFileFdOpenPermissions(mode_t a_umask, mode_t ExpectedFilePermission) +{ + FileFd f; + struct stat buf; + static const char* fname = "test.txt"; + + umask(a_umask); + f.Open(fname, FileFd::ReadWrite|FileFd::Atomic); + f.Close(); + if (stat(fname, &buf) < 0) + { + _error->Errno("stat", "failed to stat"); + _error->DumpErrors(); + return false; + } + unlink(fname); + equals(buf.st_mode & 0777, ExpectedFilePermission); + return true; +} + int main() { std::vector files; + if (TestFileFdOpenPermissions(0002, 0664) == false || + TestFileFdOpenPermissions(0022, 0644) == false || + TestFileFdOpenPermissions(0077, 0600) == false || + TestFileFdOpenPermissions(0026, 0640) == false) + { + return 1; + } + // normal match files = Glob("*.lst"); if (files.size() != 1) -- cgit v1.2.3-70-g09d2 From 291a386f1e65c40a1acb01a9a5614ad00efc509d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 10 Apr 2014 13:53:28 +0200 Subject: fix test-failure in adt --- test/integration/framework | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 8d8a0becc..3b900a960 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -190,7 +190,13 @@ setupenvironment() { touch var/lib/dpkg/available mkdir -p usr/lib/apt ln -s ${METHODSDIR} usr/lib/apt/methods - ln -s ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove etc/apt/apt.conf.d/01autoremove + # use the autoremove from the BUILDDIRECTORY if its there, otherwise + # system + if [ -e ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove ]; then + ln -s ${BUILDDIRECTORY}/../../debian/apt.conf.autoremove etc/apt/apt.conf.d/01autoremove + else + ln -s /etc/apt/apt.conf.d/01autoremove etc/apt/apt.conf.d/01autoremove + fi cd .. local PACKAGESFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Packages-/' -e 's/^skip-/Packages-/') if [ -f "${TESTDIRECTORY}/${PACKAGESFILE}" ]; then -- cgit v1.2.3-70-g09d2 From f7feb041e8d8dac5fac3c6cd44c8108e12ea4cd6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Apr 2014 11:29:31 +0200 Subject: extend FileFd test behond basic permission tests We now do Open, Write and Read (the later multiple ways) for each permission and each compressor we have configured to cover more cases and especially ensure that compressors do not change our premissions. This test is also to be credited for discovering the skippos-fix. Git-Dch: Ignore --- test/libapt/fileutl_test.cc | 109 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 99 insertions(+), 10 deletions(-) (limited to 'test') diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 1d1a1a1b8..3a354814d 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -2,29 +2,93 @@ #include #include +#include #include #include #include #include +#include #include "assert.h" -// regression test for permission bug LP: #1304657 +static void assertStringEquals(char const * const expect, char const * const got, unsigned long const line) { + if (strncmp(expect, got, strlen(expect)) == 0) + return; + OutputAssertEqual(expect, "==", got, line); +} +#define strequals(x,y) assertStringEquals(x, y, __LINE__) + static bool -TestFileFdOpenPermissions(mode_t a_umask, mode_t ExpectedFilePermission) +TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned int const filemode, APT::Configuration::Compressor const &compressor) { FileFd f; struct stat buf; static const char* fname = "test.txt"; umask(a_umask); - f.Open(fname, FileFd::ReadWrite|FileFd::Atomic); + equals(f.Open(fname, filemode, compressor), true); + equals(f.IsOpen(), true); + equals(f.Failed(), false); + equals(umask(a_umask), a_umask); + + std::string test = "This is a test!"; + equals(f.Write(test.c_str(), test.size()), true); + equals(f.IsOpen(), true); + equals(f.Failed(), false); + f.Close(); + equals(f.IsOpen(), false); + equals(f.Failed(), false); + + equals(f.Open(fname, FileFd::ReadOnly, compressor), true); + equalsNot(f.FileSize(), 0); + equals(f.IsOpen(), true); + equals(f.Failed(), false); + + char readback[20]; + { + char const * const expect = "This"; + equals(f.Read(readback, strlen(expect)), true); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(expect, readback); + equals(strlen(expect), f.Tell()); + } + { + char const * const expect = "test!"; + equals(f.Skip((test.size() - f.Tell()) - strlen(expect)), true); + equals(f.Read(readback, strlen(expect)), true); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(expect, readback); + equals(test.size(), f.Tell()); + } + + equals(f.Seek(0), true); + equals(f.Read(readback, 20, true), true); + equals(f.Failed(), false); + equals(f.Eof(), true); + equals(test, readback); + equals(test.size(), strlen(readback)); + equals(f.Size(), f.Tell()); + + equals(f.Seek(0), true); + f.ReadLine(readback, 20); + equals(f.Failed(), false); + equals(f.Eof(), true); + equals(test, readback); + equals(test.size(), strlen(readback)); + equals(f.Size(), f.Tell()); + + f.Close(); + equals(f.IsOpen(), false); + equals(f.Failed(), false); + + // regression test for permission bug LP: #1304657 if (stat(fname, &buf) < 0) { _error->Errno("stat", "failed to stat"); - _error->DumpErrors(); return false; } unlink(fname); @@ -32,18 +96,43 @@ TestFileFdOpenPermissions(mode_t a_umask, mode_t ExpectedFilePermission) return true; } -int main() +static bool TestFileFd(unsigned int const filemode) { - std::vector files; + std::vector const compressors = APT::Configuration::getCompressors(); + for (std::vector::const_iterator c = compressors.begin(); c != compressors.end(); ++c) + { + if ((filemode & FileFd::ReadWrite) == FileFd::ReadWrite && + (c->Name.empty() != true && c->Binary.empty() != true)) + continue; + if (TestFileFd(0002, 0664, filemode, *c) == false || + TestFileFd(0022, 0644, filemode, *c) == false || + TestFileFd(0077, 0600, filemode, *c) == false || + TestFileFd(0026, 0640, filemode, *c) == false) + { + _error->DumpErrors(); + return false; + } + } + return true; +} - if (TestFileFdOpenPermissions(0002, 0664) == false || - TestFileFdOpenPermissions(0022, 0644) == false || - TestFileFdOpenPermissions(0077, 0600) == false || - TestFileFdOpenPermissions(0026, 0640) == false) +int main() +{ + if (TestFileFd(FileFd::WriteOnly | FileFd::Create) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Atomic) == false || + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Atomic) == false || + // short-hands for ReadWrite with these modes + TestFileFd(FileFd::WriteEmpty) == false || + TestFileFd(FileFd::WriteAny) == false || + TestFileFd(FileFd::WriteTemp) == false || + TestFileFd(FileFd::WriteAtomic) == false) { return 1; } + std::vector files; // normal match files = Glob("*.lst"); if (files.size() != 1) -- cgit v1.2.3-70-g09d2 From 4cd4a2e7033a2af214be1d830b56fab719088b7a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Apr 2014 13:33:31 +0200 Subject: consider priorities only for downloadable pkgs in resolver A package which can't be downloaded anymore is very likely dropped from a release and can therefore no longer be 'standard' (or similar). We therefore do not grant points for them anymore and demote them to prio:extra instead which helps other packages breaking them away even if they have a lower priority. The testcase was initially created by Michael Vogt and just amended. --- apt-pkg/algorithms.cc | 19 +++++---- ...t-ubuntu-bug-1304403-obsolete-priority-standard | 48 ++++++++++++++++++++++ 2 files changed, 59 insertions(+), 8 deletions(-) create mode 100755 test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard (limited to 'test') diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index a7b676660..608ec7fce 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -445,19 +445,22 @@ void pkgProblemResolver::MakeScores() || (I->Flags & pkgCache::Flag::Important) == pkgCache::Flag::Important) Score += PrioEssentials; - // We transform the priority - if (Cache[I].InstVerIter(Cache)->Priority <= 5) - Score += PrioMap[Cache[I].InstVerIter(Cache)->Priority]; - + pkgCache::VerIterator const InstVer = Cache[I].InstVerIter(Cache); + // We apply priorities only to downloadable packages, all others are prio:extra + // as an obsolete prio:standard package can't be that standard anymore… + if (InstVer->Priority <= pkgCache::State::Extra && InstVer.Downloadable() == true) + Score += PrioMap[InstVer->Priority]; + else + Score += PrioMap[pkgCache::State::Extra]; + /* This helps to fix oddball problems with conflicting packages - on the same level. We enhance the score of installed packages - if those are not obsolete - */ + on the same level. We enhance the score of installed packages + if those are not obsolete */ if (I->CurrentVer != 0 && Cache[I].CandidateVer != 0 && Cache[I].CandidateVerIter(Cache).Downloadable()) Score += PrioInstalledAndNotObsolete; // propagate score points along dependencies - for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; ++D) + for (pkgCache::DepIterator D = InstVer.DependsList(); D.end() == false; ++D) { if (DepMap[D->Type] == 0) continue; diff --git a/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard b/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard new file mode 100755 index 000000000..2f2d384e1 --- /dev/null +++ b/test/integration/test-ubuntu-bug-1304403-obsolete-priority-standard @@ -0,0 +1,48 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture 'i386' + +# Regression test for LP: #1304403 +# +# The issue here is that libkadm5srv-mit8 (priority standard) is replaced +# by a new libkadm5srv-mit9 and libkbd5-7 breaks on the old -mit8 package. +# The -mit8 package is no longer downloadable (and hence not upgradeable) + +# normal upradable pkg +# (libkdb5-7 that breaks on libkadm5srv-mit8 (<< 1.11+dfsg~) +insertinstalledpackage 'upgradable' 'all' '1.0' '' 'extra' +insertpackage 'unstable' 'upgradable' 'all' '2.0' 'Breaks: not-downloadable (<< 1.1)' 'optional' + +# no longer downloadable pkg (libkadm5srv-mit8, replaced by libkadm5srv-mit9) +# but priority standard pushes it higher +insertinstalledpackage 'not-downloadable' 'all' '1.0' '' 'standard' + +setupaptarchive + +# discourage keeping obsolete high-priority packages … +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + not-downloadable +The following packages will be upgraded: + upgradable +1 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +Remv not-downloadable [1.0] +Inst upgradable [1.0] (2.0 unstable [all]) +Conf upgradable (2.0 unstable [all])' aptget -s dist-upgrade + +# … but if it has dependencies we want to keep it as usual +for i in $(seq 1 10); do +insertinstalledpackage "depender$i" 'all' '1.0' 'Depends: not-downloadable' +done + +testequal 'Reading package lists... +Building dependency tree... +The following packages have been kept back: + upgradable +0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.' aptget -s dist-upgrade -- cgit v1.2.3-70-g09d2 From bb93178b8b5c2f8021977dbc34066f0d0fb8b9b9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 15 Apr 2014 10:21:52 +0200 Subject: clear HitEof flag in FileFd::Seek fseek and co do this to their eof-flags and it is more logic this way as we will usually seek away from the end (e.g. to re-read the file). The commit also improves the testcase further and adds a test for the binary compressor codepath (as gz, bzip2 and xz are handled by libraries) via the use of 'rev' as a 'compressor'. --- apt-pkg/contrib/fileutl.cc | 7 ++- test/libapt/assert.h | 2 + test/libapt/fileutl_test.cc | 110 ++++++++++++++++++++++++++++++++++---------- test/libapt/run-tests | 2 + 4 files changed, 96 insertions(+), 25 deletions(-) (limited to 'test') diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index c9d419fc4..de73a7fd8 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1360,7 +1360,10 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C Args.push_back(a->c_str()); if (Comp == false && FileName.empty() == false) { - Args.push_back("--stdout"); + // commands not needing arguments, do not need to be told about using standard output + // in reality, only testcases with tools like cat, rev, rot13, … are able to trigger this + if (compressor.CompressArgs.empty() == false && compressor.UncompressArgs.empty() == false) + Args.push_back("--stdout"); if (TemporaryFileName.empty() == false) Args.push_back(TemporaryFileName.c_str()); else @@ -1653,6 +1656,8 @@ bool FileFd::Write(int Fd, const void *From, unsigned long long Size) /* */ bool FileFd::Seek(unsigned long long To) { + Flags &= ~HitEof; + if (d != NULL && (d->pipe == true || d->InternalStream() == true)) { // Our poor man seeking in pipes is costly, so try to avoid it diff --git a/test/libapt/assert.h b/test/libapt/assert.h index 357801592..3e45143a3 100644 --- a/test/libapt/assert.h +++ b/test/libapt/assert.h @@ -2,6 +2,7 @@ #include #include +#include #if __GNUC__ >= 4 #pragma GCC diagnostic push @@ -14,6 +15,7 @@ template < typename X, typename Y > APT_NORETURN void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) { std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl; + _error->DumpErrors(std::cerr); std::exit(EXIT_FAILURE); } diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index 3a354814d..f3a3dd08e 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -24,7 +24,9 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i { FileFd f; struct stat buf; - static const char* fname = "test.txt"; + static const char* fname = "apt-filefd-test.txt"; + if (FileExists(fname) == true) + equals(unlink(fname), 0); umask(a_umask); equals(f.Open(fname, filemode, compressor), true); @@ -32,7 +34,7 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i equals(f.Failed(), false); equals(umask(a_umask), a_umask); - std::string test = "This is a test!"; + std::string test = "This is a test!\n"; equals(f.Write(test.c_str(), test.size()), true); equals(f.IsOpen(), true); equals(f.Failed(), false); @@ -42,12 +44,21 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i equals(f.Failed(), false); equals(f.Open(fname, FileFd::ReadOnly, compressor), true); - equalsNot(f.FileSize(), 0); equals(f.IsOpen(), true); equals(f.Failed(), false); + equals(f.Eof(), false); + equalsNot(f.FileSize(), 0); + equals(f.Failed(), false); + equalsNot(f.ModificationTime(), 0); + equals(f.Failed(), false); - char readback[20]; + // ensure the memory is as predictably messed up +# define APT_INIT_READBACK \ + char readback[20]; \ + memset(readback, 'D', sizeof(readback)/sizeof(readback[0])); \ + readback[19] = '\0'; { + APT_INIT_READBACK char const * const expect = "This"; equals(f.Read(readback, strlen(expect)), true); equals(f.Failed(), false); @@ -56,7 +67,8 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i equals(strlen(expect), f.Tell()); } { - char const * const expect = "test!"; + APT_INIT_READBACK + char const * const expect = "test!\n"; equals(f.Skip((test.size() - f.Tell()) - strlen(expect)), true); equals(f.Read(readback, strlen(expect)), true); equals(f.Failed(), false); @@ -64,22 +76,60 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i strequals(expect, readback); equals(test.size(), f.Tell()); } - - equals(f.Seek(0), true); - equals(f.Read(readback, 20, true), true); - equals(f.Failed(), false); - equals(f.Eof(), true); - equals(test, readback); - equals(test.size(), strlen(readback)); - equals(f.Size(), f.Tell()); - - equals(f.Seek(0), true); - f.ReadLine(readback, 20); - equals(f.Failed(), false); - equals(f.Eof(), true); - equals(test, readback); - equals(test.size(), strlen(readback)); - equals(f.Size(), f.Tell()); + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + equals(f.Read(readback, 20, true), true); + equals(f.Failed(), false); + equals(f.Eof(), true); + strequals(test.c_str(), readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + equals(f.Read(readback, test.size(), true), true); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(test.c_str(), readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + unsigned long long actual; + equals(f.Read(readback, 20, &actual), true); + equals(f.Failed(), false); + equals(f.Eof(), true); + equals(test.size(), actual); + strequals(test.c_str(), readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + f.ReadLine(readback, 20); + equals(f.Failed(), false); + equals(f.Eof(), false); + equals(test, readback); + equals(f.Size(), f.Tell()); + } + { + APT_INIT_READBACK + equals(f.Seek(0), true); + equals(f.Eof(), false); + char const * const expect = "This"; + f.ReadLine(readback, strlen(expect) + 1); + equals(f.Failed(), false); + equals(f.Eof(), false); + strequals(expect, readback); + equals(strlen(expect), f.Tell()); + } +#undef APT_INIT_READBACK f.Close(); equals(f.IsOpen(), false); @@ -91,14 +141,19 @@ TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned i _error->Errno("stat", "failed to stat"); return false; } - unlink(fname); + equals(unlink(fname), 0); equals(buf.st_mode & 0777, ExpectedFilePermission); return true; } static bool TestFileFd(unsigned int const filemode) { - std::vector const compressors = APT::Configuration::getCompressors(); + std::vector compressors = APT::Configuration::getCompressors(); + + // testing the (un)compress via pipe, as the 'real' compressors are usually built in via libraries + compressors.push_back(APT::Configuration::Compressor("rev", ".reversed", "rev", NULL, NULL, 42)); + //compressors.push_back(APT::Configuration::Compressor("cat", ".ident", "cat", NULL, NULL, 42)); + for (std::vector::const_iterator c = compressors.begin(); c != compressors.end(); ++c) { if ((filemode & FileFd::ReadWrite) == FileFd::ReadWrite && @@ -116,8 +171,13 @@ static bool TestFileFd(unsigned int const filemode) return true; } -int main() +int main(int const argc, char const * const * const argv) { + std::string startdir; + if (argc > 1 && DirectoryExists(argv[1]) == true) { + startdir = SafeGetCWD(); + equals(chdir(argv[1]), 0); + } if (TestFileFd(FileFd::WriteOnly | FileFd::Create) == false || TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty) == false || TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive) == false || @@ -131,6 +191,8 @@ int main() { return 1; } + if (startdir.empty() == false) + equals(chdir(startdir.c_str()), 0); std::vector files; // normal match diff --git a/test/libapt/run-tests b/test/libapt/run-tests index 0baedcf9e..574e51e90 100755 --- a/test/libapt/run-tests +++ b/test/libapt/run-tests @@ -116,6 +116,8 @@ sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0 /dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0 /dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0 tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0' > $tmppath + elif [ $name = "FileUtl${EXT}" ]; then + tmppath="$(mktemp -d)" fi echo -n "Testing with ${NAME} " -- cgit v1.2.3-70-g09d2 From f00832cc273e52a47fb88e49849891b771de4e17 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 16 Apr 2014 17:09:37 +0200 Subject: use Google C++ Testing Framework for libapt tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit My commit 45df0ad2 from 26. Nov 2009 had a little remark: "The commit also includes a very very simple testapp." This was never intended to be permanent, but as usually… The commit adds the needed make magic to compile gtest statically as it is required and links it against a small runner. All previous testcase binaries are reimplemented in gtest and combined in this runner. While most code is a 1:1 translation some had to be rewritten like compareversion_test.cc, but the coverage remains the same. --- debian/control | 2 +- test/libapt/assert.h | 126 ------- test/libapt/cdrom_test.cc | 114 ++++++ test/libapt/cdromfindmountpointfordevice_test.cc | 26 -- test/libapt/cdromfindpackages_test.cc | 169 +++++---- test/libapt/cdromreducesourcelist_test.cc | 86 ----- test/libapt/commandline_test.cc | 53 ++- test/libapt/commandlineasstring_test.cc | 41 -- test/libapt/compareversion_test.cc | 185 +++++---- test/libapt/configuration_test.cc | 167 +++++---- test/libapt/file-helpers.cc | 77 ++++ test/libapt/file-helpers.h | 29 ++ test/libapt/fileutl_test.cc | 272 +++++++------- test/libapt/getarchitectures_test.cc | 116 +++--- test/libapt/getlanguages_test.cc | 412 ++++++++++---------- test/libapt/getlistoffilesindir_test.cc | 159 ++++---- test/libapt/globalerror_test.cc | 213 ++++++----- test/libapt/gtest_runner.cc | 19 + test/libapt/hashsums_test.cc | 274 ++++++++------ test/libapt/indexcopytosourcelist_test.cc | 73 ++-- test/libapt/install_progress_test.cc | 26 +- test/libapt/makefile | 184 ++++----- test/libapt/parsedepends_test.cc | 458 ++++++++++++----------- test/libapt/run-tests | 135 ------- test/libapt/sourcelist_test.cc | 49 +-- test/libapt/strutil_test.cc | 138 +++---- test/libapt/tagfile_test.cc | 62 +-- test/libapt/uri_test.cc | 233 ++++++------ test/libapt/versions.lst | 106 ------ 29 files changed, 1918 insertions(+), 2086 deletions(-) delete mode 100644 test/libapt/assert.h create mode 100644 test/libapt/cdrom_test.cc delete mode 100644 test/libapt/cdromfindmountpointfordevice_test.cc delete mode 100644 test/libapt/cdromreducesourcelist_test.cc delete mode 100644 test/libapt/commandlineasstring_test.cc create mode 100644 test/libapt/file-helpers.cc create mode 100644 test/libapt/file-helpers.h create mode 100644 test/libapt/gtest_runner.cc delete mode 100755 test/libapt/run-tests delete mode 100644 test/libapt/versions.lst (limited to 'test') diff --git a/debian/control b/debian/control index c0526d30c..ff984db75 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 8.1.3~), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.4~), zlib1g-dev, libbz2-dev, liblzma-dev, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), - autotools-dev, autoconf, automake + autotools-dev, autoconf, automake, libgtest-dev Build-Depends-Indep: doxygen, debiandoc-sgml, graphviz Build-Conflicts: autoconf2.13, automake1.4 Vcs-Git: git://anonscm.debian.org/apt/apt.git diff --git a/test/libapt/assert.h b/test/libapt/assert.h deleted file mode 100644 index 3e45143a3..000000000 --- a/test/libapt/assert.h +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include - -#include -#include - -#if __GNUC__ >= 4 - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wmissing-declarations" -#endif - -#define equals(x,y) assertEquals(y, x, __LINE__) -#define equalsNot(x,y) assertEqualsNot(y, x, __LINE__) - -template < typename X, typename Y > -APT_NORETURN void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl; - _error->DumpErrors(std::cerr); - std::exit(EXIT_FAILURE); -} - -template < typename X, typename Y > -void assertEquals(X expect, Y get, unsigned long const &line) { - if (expect == get) - return; - OutputAssertEqual(expect, "==", get, line); -} - -template < typename X, typename Y > -void assertEqualsNot(X expect, Y get, unsigned long const &line) { - if (expect != get) - return; - OutputAssertEqual(expect, "!=", get, line); -} - -void assertEquals(unsigned int const &expect, int const &get, unsigned long const &line) { - if (get < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - -void assertEquals(int const &expect, unsigned int const &get, unsigned long const &line) { - if (expect < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - -void assertEquals(unsigned long const &expect, int const &get, unsigned long const &line) { - if (get < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - -void assertEquals(int const &expect, unsigned long const &get, unsigned long const &line) { - if (expect < 0) - OutputAssertEqual(expect, "==", get, line); - assertEquals(expect, get, line); -} - - -#define equalsOr2(x,y,z) assertEqualsOr2(y, z, x, __LINE__) - -template < typename X, typename Y > -void OutputAssertEqualOr2(X expect1, X expect2, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« " << compare << " »" << get << "« at line " << line << std::endl; -} - -template < typename X, typename Y > -void assertEqualsOr2(X expect1, X expect2, Y get, unsigned long const &line) { - if (expect1 == get || expect2 == get) - return; - OutputAssertEqualOr2(expect1, expect2, "==", get, line); -} - -void assertEqualsOr2(unsigned int const &expect1, unsigned int const &expect2, int const &get, unsigned long const &line) { - if (get < 0) - OutputAssertEqualOr2(expect1, expect2, "==", get, line); - assertEqualsOr2(expect1, expect2, get, line); -} - -void assertEqualsOr2(int const &expect1, int const &expect2, unsigned int const &get, unsigned long const &line) { - if (expect1 < 0 && expect2 < 0) - OutputAssertEqualOr2(expect1, expect2, "==", get, line); - assertEqualsOr2(expect1, expect2, get, line); -} - - -#define equalsOr3(w,x,y,z) assertEqualsOr3(x, y, z, w, __LINE__) - -template < typename X, typename Y > -void OutputAssertEqualOr3(X expect1, X expect2, X expect3, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« or »" << expect3 << "« " << compare << " »" << get << "« at line " << line << std::endl; -} - -template < typename X, typename Y > -void assertEqualsOr3(X expect1, X expect2, X expect3, Y get, unsigned long const &line) { - if (expect1 == get || expect2 == get || expect3 == get) - return; - OutputAssertEqualOr3(expect1, expect2, expect3, "==", get, line); -} - -#define equalsOr4(v,w,x,y,z) assertEqualsOr4(w, x, y, z, v, __LINE__) - -template < typename X, typename Y > -void OutputAssertEqualOr4(X expect1, X expect2, X expect3, X expect4, char const* compare, Y get, unsigned long const &line) { - std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« or »" << expect3 << "« or »" << expect4 << "« " << compare << " »" << get << "« at line " << line << std::endl; -} - -template < typename X, typename Y > -void assertEqualsOr4(X expect1, X expect2, X expect3, X expect4, Y get, unsigned long const &line) { - if (expect1 == get || expect2 == get || expect3 == get || expect4 == get) - return; - OutputAssertEqualOr4(expect1, expect2, expect3, expect4, "==", get, line); -} - -// simple helper to quickly output a vectors -template < typename X > -void dumpVector(X vec) { - for (typename X::const_iterator v = vec.begin(); - v != vec.end(); ++v) - std::cout << *v << std::endl; -} - -#if __GNUC__ >= 4 - #pragma GCC diagnostic pop -#endif diff --git a/test/libapt/cdrom_test.cc b/test/libapt/cdrom_test.cc new file mode 100644 index 000000000..626ef538e --- /dev/null +++ b/test/libapt/cdrom_test.cc @@ -0,0 +1,114 @@ +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include "file-helpers.h" + +class Cdrom : public pkgCdrom { +public: + std::vector ReduceSourcelist(std::string CD,std::vector List) { + pkgCdrom::ReduceSourcelist(CD, List); + return List; + } +}; + +TEST(CDROMTest,ReduceSourcelist) +{ + Cdrom cd; + std::vector List; + std::string CD("/media/cdrom/"); + + std::vector R = cd.ReduceSourcelist(CD, List); + EXPECT_TRUE(R.empty()); + + List.push_back(" wheezy main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(1, R.size()); + EXPECT_EQ(" wheezy main", R[0]); + + List.push_back(" wheezy main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(1, R.size()); + EXPECT_EQ(" wheezy main", R[0]); + + List.push_back(" wheezy contrib"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(1, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + + List.push_back(" wheezy-update contrib"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib", R[1]); + + List.push_back(" wheezy-update contrib"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib", R[1]); + + List.push_back(" wheezy-update non-free"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib non-free", R[1]); + + List.push_back(" wheezy-update main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main", R[0]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[1]); + + List.push_back(" wheezy non-free"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(2, R.size()); + EXPECT_EQ(" wheezy contrib main non-free", R[0]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[1]); + + List.push_back(" sid main"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(3, R.size()); + EXPECT_EQ(" sid main", R[0]); + EXPECT_EQ(" wheezy contrib main non-free", R[1]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[2]); + + List.push_back(" sid main-reduce"); + R = cd.ReduceSourcelist(CD, List); + ASSERT_EQ(3, R.size()); + EXPECT_EQ(" sid main main-reduce", R[0]); + EXPECT_EQ(" wheezy contrib main non-free", R[1]); + EXPECT_EQ(" wheezy-update contrib main non-free", R[2]); +} +TEST(CDROMTest, FindMountPointForDevice) +{ + char * tempfile; + FileFd fd; + createTemporaryFile("mountpoints", fd, &tempfile, + "rootfs / rootfs rw 0 0\n" + "sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0\n" + "sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0\n" + "/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0\n" + "/dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0\n" + "tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0\n"); + _config->Set("Dir::state::Mountpoints", tempfile); + + EXPECT_EQ("/", FindMountPointForDevice("rootfs")); + EXPECT_EQ("/", FindMountPointForDevice("/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21")); + EXPECT_EQ("/sys", FindMountPointForDevice("sysfs")); + EXPECT_EQ("/sys0", FindMountPointForDevice("sysfs0")); + EXPECT_EQ("/boot/efi", FindMountPointForDevice("/dev/sda1")); + EXPECT_EQ("/tmp", FindMountPointForDevice("tmpfs")); + + unlink(tempfile); + free(tempfile); +} diff --git a/test/libapt/cdromfindmountpointfordevice_test.cc b/test/libapt/cdromfindmountpointfordevice_test.cc deleted file mode 100644 index 26dcd1459..000000000 --- a/test/libapt/cdromfindmountpointfordevice_test.cc +++ /dev/null @@ -1,26 +0,0 @@ -#include - -#include -#include - -#include -#include - -#include "assert.h" - -int main(int argc, char const *argv[]) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } - - _config->Set("Dir::state::Mountpoints", argv[1]); - equals("/", FindMountPointForDevice("rootfs")); - equals("/", FindMountPointForDevice("/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21")); - equals("/sys", FindMountPointForDevice("sysfs")); - equals("/sys0", FindMountPointForDevice("sysfs0")); - equals("/boot/efi", FindMountPointForDevice("/dev/sda1")); - equals("/tmp", FindMountPointForDevice("tmpfs")); - - return 0; -} diff --git a/test/libapt/cdromfindpackages_test.cc b/test/libapt/cdromfindpackages_test.cc index 583de1423..719dd8f63 100644 --- a/test/libapt/cdromfindpackages_test.cc +++ b/test/libapt/cdromfindpackages_test.cc @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -9,82 +10,112 @@ #include #include -#include "assert.h" +#include + +#include "file-helpers.h" class Cdrom : public pkgCdrom { - public: - bool FindPackages(std::string const &CD, - std::vector &List, - std::vector &SList, - std::vector &SigList, - std::vector &TransList, - std::string &InfoDir) { - bool const result = pkgCdrom::FindPackages(CD, List, SList, SigList, TransList, InfoDir, NULL, 0); - std::sort(List.begin(), List.end()); - std::sort(SList.begin(), SList.end()); - std::sort(SigList.begin(), SigList.end()); - std::sort(TransList.begin(), TransList.end()); - return result; - } + public: + bool FindPackages(std::string const &CD, + std::vector &List, + std::vector &SList, + std::vector &SigList, + std::vector &TransList, + std::string &InfoDir) { + std::string const startdir = SafeGetCWD(); + EXPECT_FALSE(startdir.empty()); + bool const result = pkgCdrom::FindPackages(CD, List, SList, SigList, TransList, InfoDir, NULL, 0); + std::sort(List.begin(), List.end()); + std::sort(SList.begin(), SList.end()); + std::sort(SigList.begin(), SigList.end()); + std::sort(TransList.begin(), TransList.end()); + EXPECT_EQ(0, chdir(startdir.c_str())); + return result; + } - bool DropRepeats(std::vector &List, char const *Name) { - return pkgCdrom::DropRepeats(List, Name); - } + using pkgCdrom::DropRepeats; }; -int main(int argc, char const *argv[]) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } +TEST(CDROMTest,FindPackages) +{ + std::string path; + createTemporaryDirectory("findpackage", path); + + createDirectory(path, ".disk"); + createDirectory(path, "pool"); + createDirectory(path, "dists/stable/main/binary-i386"); + createDirectory(path, "dists/stable/main/source"); + createDirectory(path, "dists/stable/contrib/binary-amd64"); + createDirectory(path, "dists/stable/contrib/binary-all"); + createDirectory(path, "dists/unstable/main/binary-i386"); + createDirectory(path, "dists/unstable/main/i18n"); + createDirectory(path, "dists/unstable/main/source"); + createDirectory(path, "dists/broken/non-free/source"); + createFile(path, "dists/broken/.aptignr"); + createFile(path, "dists/stable/main/binary-i386/Packages"); + createFile(path, "dists/stable/main/binary-i386/Packages.bz2"); + createFile(path, "dists/stable/main/source/Sources.xz"); + createFile(path, "dists/stable/contrib/binary-amd64/Packages"); + createFile(path, "dists/stable/contrib/binary-amd64/Packages.gz"); + createFile(path, "dists/stable/contrib/binary-all/Packages"); + createFile(path, "dists/unstable/main/binary-i386/Packages.xz"); + createFile(path, "dists/unstable/main/binary-i386/Packages.lzma"); + createFile(path, "dists/unstable/main/i18n/Translation-en"); + createFile(path, "dists/unstable/main/i18n/Translation-de.bz2"); + createFile(path, "dists/unstable/main/source/Sources.xz"); + createFile(path, "dists/broken/non-free/source/Sources.gz"); + createFile(path, "dists/stable/Release.gpg"); + createFile(path, "dists/stable/Release"); + createFile(path, "dists/unstable/InRelease"); + createFile(path, "dists/broken/Release.gpg"); + createLink(path, "dists/unstable", "dists/sid"); - Cdrom cd; - std::vector Packages, Sources, Signatur, Translation; - std::string InfoDir; - std::string path = argv[1]; - equals(true, cd.FindPackages(path, Packages, Sources, Signatur, Translation, InfoDir)); - equals(4, Packages.size()); - equals(path + "/dists/sid/main/binary-i386/", Packages[0]); - equals(path + "/dists/stable/contrib/binary-amd64/", Packages[1]); - equals(path + "/dists/stable/main/binary-i386/", Packages[2]); - equals(path + "/dists/unstable/main/binary-i386/", Packages[3]); - equals(3, Sources.size()); - equals(path + "/dists/sid/main/source/", Sources[0]); - equals(path + "/dists/stable/main/source/", Sources[1]); - equals(path + "/dists/unstable/main/source/", Sources[2]); - equals(3, Signatur.size()); - equals(path + "/dists/sid/", Signatur[0]); - equals(path + "/dists/stable/", Signatur[1]); - equals(path + "/dists/unstable/", Signatur[2]); - equals(4, Translation.size()); - equals(path + "/dists/sid/main/i18n/Translation-de", Translation[0]); - equals(path + "/dists/sid/main/i18n/Translation-en", Translation[1]); - equals(path + "/dists/unstable/main/i18n/Translation-de", Translation[2]); - equals(path + "/dists/unstable/main/i18n/Translation-en", Translation[3]); - equals(path + "/.disk/", InfoDir); + Cdrom cd; + std::vector Packages, Sources, Signatur, Translation; + std::string InfoDir; + EXPECT_TRUE(cd.FindPackages(path, Packages, Sources, Signatur, Translation, InfoDir)); + EXPECT_EQ(4, Packages.size()); + EXPECT_EQ(path + "/dists/sid/main/binary-i386/", Packages[0]); + EXPECT_EQ(path + "/dists/stable/contrib/binary-amd64/", Packages[1]); + EXPECT_EQ(path + "/dists/stable/main/binary-i386/", Packages[2]); + EXPECT_EQ(path + "/dists/unstable/main/binary-i386/", Packages[3]); + EXPECT_EQ(3, Sources.size()); + EXPECT_EQ(path + "/dists/sid/main/source/", Sources[0]); + EXPECT_EQ(path + "/dists/stable/main/source/", Sources[1]); + EXPECT_EQ(path + "/dists/unstable/main/source/", Sources[2]); + EXPECT_EQ(3, Signatur.size()); + EXPECT_EQ(path + "/dists/sid/", Signatur[0]); + EXPECT_EQ(path + "/dists/stable/", Signatur[1]); + EXPECT_EQ(path + "/dists/unstable/", Signatur[2]); + EXPECT_EQ(4, Translation.size()); + EXPECT_EQ(path + "/dists/sid/main/i18n/Translation-de", Translation[0]); + EXPECT_EQ(path + "/dists/sid/main/i18n/Translation-en", Translation[1]); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-de", Translation[2]); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-en", Translation[3]); + EXPECT_EQ(path + "/.disk/", InfoDir); - cd.DropRepeats(Packages, "Packages"); - cd.DropRepeats(Sources, "Sources"); - _error->PushToStack(); - cd.DropRepeats(Signatur, "InRelease"); - cd.DropRepeats(Signatur, "Release.gpg"); - _error->RevertToStack(); - _error->DumpErrors(); - cd.DropRepeats(Translation, ""); + cd.DropRepeats(Packages, "Packages"); + cd.DropRepeats(Sources, "Sources"); + _error->PushToStack(); + cd.DropRepeats(Signatur, "InRelease"); + cd.DropRepeats(Signatur, "Release.gpg"); + _error->RevertToStack(); + _error->DumpErrors(); + cd.DropRepeats(Translation, ""); - equals(3, Packages.size()); - equals(path + "/dists/stable/contrib/binary-amd64/", Packages[0]); - equals(path + "/dists/stable/main/binary-i386/", Packages[1]); - equals(path + "/dists/unstable/main/binary-i386/", Packages[2]); - equals(2, Sources.size()); - equals(path + "/dists/stable/main/source/", Sources[0]); - equals(path + "/dists/unstable/main/source/", Sources[1]); - equals(2, Signatur.size()); - equals(path + "/dists/stable/", Signatur[0]); - equals(path + "/dists/unstable/", Signatur[1]); - equals(2, Translation.size()); - equals(path + "/dists/unstable/main/i18n/Translation-de", Translation[0]); - equals(path + "/dists/unstable/main/i18n/Translation-en", Translation[1]); + EXPECT_EQ(3, Packages.size()); + EXPECT_EQ(path + "/dists/stable/contrib/binary-amd64/", Packages[0]); + EXPECT_EQ(path + "/dists/stable/main/binary-i386/", Packages[1]); + EXPECT_EQ(path + "/dists/unstable/main/binary-i386/", Packages[2]); + EXPECT_EQ(2, Sources.size()); + EXPECT_EQ(path + "/dists/stable/main/source/", Sources[0]); + EXPECT_EQ(path + "/dists/unstable/main/source/", Sources[1]); + EXPECT_EQ(2, Signatur.size()); + EXPECT_EQ(path + "/dists/stable/", Signatur[0]); + EXPECT_EQ(path + "/dists/unstable/", Signatur[1]); + EXPECT_EQ(2, Translation.size()); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-de", Translation[0]); + EXPECT_EQ(path + "/dists/unstable/main/i18n/Translation-en", Translation[1]); - return 0; + removeDirectory(path); } diff --git a/test/libapt/cdromreducesourcelist_test.cc b/test/libapt/cdromreducesourcelist_test.cc deleted file mode 100644 index 196d0136e..000000000 --- a/test/libapt/cdromreducesourcelist_test.cc +++ /dev/null @@ -1,86 +0,0 @@ -#include - -#include - -#include -#include - -#include "assert.h" - -class Cdrom : public pkgCdrom { -public: - std::vector ReduceSourcelist(std::string CD,std::vector List) { - pkgCdrom::ReduceSourcelist(CD, List); - return List; - } -}; - -int main() { - Cdrom cd; - std::vector List; - std::string CD("/media/cdrom/"); - - std::vector R = cd.ReduceSourcelist(CD, List); - equals(R.empty(), true); - - List.push_back(" wheezy main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 1); - equals(R[0], " wheezy main"); - - List.push_back(" wheezy main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 1); - equals(R[0], " wheezy main"); - - List.push_back(" wheezy contrib"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 1); - equals(R[0], " wheezy contrib main"); - - List.push_back(" wheezy-update contrib"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib"); - - List.push_back(" wheezy-update contrib"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib"); - - List.push_back(" wheezy-update non-free"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib non-free"); - - List.push_back(" wheezy-update main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main"); - equals(R[1], " wheezy-update contrib main non-free"); - - List.push_back(" wheezy non-free"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 2); - equals(R[0], " wheezy contrib main non-free"); - equals(R[1], " wheezy-update contrib main non-free"); - - List.push_back(" sid main"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 3); - equals(R[0], " sid main"); - equals(R[1], " wheezy contrib main non-free"); - equals(R[2], " wheezy-update contrib main non-free"); - - List.push_back(" sid main-reduce"); - R = cd.ReduceSourcelist(CD, List); - equals(R.size(), 3); - equals(R[0], " sid main main-reduce"); - equals(R[1], " wheezy contrib main non-free"); - equals(R[2], " wheezy-update contrib main non-free"); - - return 0; -} diff --git a/test/libapt/commandline_test.cc b/test/libapt/commandline_test.cc index d8c5bc5bd..26e80bfde 100644 --- a/test/libapt/commandline_test.cc +++ b/test/libapt/commandline_test.cc @@ -3,33 +3,56 @@ #include #include -#include "assert.h" - -int main() +#include + +class CLT: public CommandLine { + public: + std::string static AsString(const char * const * const argv, + unsigned int const argc) { + std::string const static conf = "Commandline::AsString"; + _config->Clear(conf); + SaveInConfig(argc, argv); + return _config->Find(conf); + } +}; + +#define EXPECT_CMD(x, ...) { const char * const argv[] = { __VA_ARGS__ }; EXPECT_EQ(x, CLT::AsString(argv, sizeof(argv)/sizeof(argv[0]))); } + +TEST(CommandLineTest,SaveInConfig) +{ + EXPECT_CMD("apt-get install -sf", + "apt-get", "install", "-sf"); + EXPECT_CMD("apt-cache -s apt -so Debug::test=Test", + "apt-cache", "-s", "apt", "-so", "Debug::test=Test"); + EXPECT_CMD("apt-cache -s apt -so Debug::test=\"Das ist ein Test\"", + "apt-cache", "-s", "apt", "-so", "Debug::test=Das ist ein Test"); + EXPECT_CMD("apt-cache -s apt --hallo test=1.0", + "apt-cache", "-s", "apt", "--hallo", "test=1.0"); +} +TEST(CommandLineTest,Parsing) { CommandLine::Args Args[] = { { 't', 0, "Test::Worked", 0 }, { 'z', "zero", "Test::Zero", 0 }, {0,0,0,0} }; - CommandLine CmdL(Args,_config); + ::Configuration c; + CommandLine CmdL(Args, &c); char const * argv[] = { "test", "--zero", "-t" }; CmdL.Parse(3 , argv); - equals(true, _config->FindB("Test::Worked", false)); - equals(true, _config->FindB("Test::Zero", false)); + EXPECT_TRUE(c.FindB("Test::Worked", false)); + EXPECT_TRUE(c.FindB("Test::Zero", false)); - _config->Clear("Test"); - equals(false, _config->FindB("Test::Worked", false)); - equals(false, _config->FindB("Test::Zero", false)); + c.Clear("Test"); + EXPECT_FALSE(c.FindB("Test::Worked", false)); + EXPECT_FALSE(c.FindB("Test::Zero", false)); - _config->Set("Test::Zero", true); - equals(true, _config->FindB("Test::Zero", false)); + c.Set("Test::Zero", true); + EXPECT_TRUE(c.FindB("Test::Zero", false)); char const * argv2[] = { "test", "--no-zero", "-t" }; CmdL.Parse(3 , argv2); - equals(true, _config->FindB("Test::Worked", false)); - equals(false, _config->FindB("Test::Zero", false)); - - return 0; + EXPECT_TRUE(c.FindB("Test::Worked", false)); + EXPECT_FALSE(c.FindB("Test::Zero", false)); } diff --git a/test/libapt/commandlineasstring_test.cc b/test/libapt/commandlineasstring_test.cc deleted file mode 100644 index 5c005e956..000000000 --- a/test/libapt/commandlineasstring_test.cc +++ /dev/null @@ -1,41 +0,0 @@ -#include - -#include -#include - -#include - -#include "assert.h" - -class CLT: public CommandLine { - - public: - std::string static AsString(const char * const * const argv, - unsigned int const argc) { - std::string const static conf = "Commandline::AsString"; - _config->Clear(conf); - SaveInConfig(argc, argv); - return _config->Find(conf); - } -}; - -#define CMD(y,z) equals(CLT::AsString(argv, y), z); - -int main() { - { - const char* const argv[] = {"apt-get", "install", "-sf"}; - CMD(3, "apt-get install -sf"); - } - { - const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Test"}; - CMD(5, "apt-cache -s apt -so Debug::test=Test"); - } - { - const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Das ist ein Test"}; - CMD(5, "apt-cache -s apt -so Debug::test=\"Das ist ein Test\""); - } - { - const char* const argv[] = {"apt-cache", "-s", "apt", "--hallo", "test=1.0"}; - CMD(5, "apt-cache -s apt --hallo test=1.0"); - } -} diff --git a/test/libapt/compareversion_test.cc b/test/libapt/compareversion_test.cc index 43b98f240..3b2c0c209 100644 --- a/test/libapt/compareversion_test.cc +++ b/test/libapt/compareversion_test.cc @@ -28,9 +28,11 @@ #include #include +#include + using namespace std; -static bool callDPkg(const char *val, const char *ref, const char &op) { +static bool callDPKG(const char *val, const char *ref, const char &op) { pid_t Process = ExecFork(); if (Process == 0) { @@ -49,77 +51,130 @@ static bool callDPkg(const char *val, const char *ref, const char &op) { return WIFEXITED(Ret) == true && WEXITSTATUS(Ret) == 0; } -static void assertVersion(int const &CurLine, string const &A, string const &B, int const &Expected) { - int Res = debVS.CmpVersion(A.c_str(), B.c_str()); - bool const dpkg = callDPkg(A.c_str(),B.c_str(), Expected); - Res = (Res < 0) ? -1 : ( (Res > 0) ? 1 : Res); - if (Res != Expected) - _error->Error("Comparison failed on line %u. '%s' '%s' '%s' %i != %i",CurLine,A.c_str(),((Expected == 1) ? "<<" : ( (Expected == 0) ? "=" : ">>")) ,B.c_str(),Res,Expected); - if (dpkg == false) - _error->Error("DPkg differ with line: %u. '%s' '%s' '%s' == false",CurLine,A.c_str(),((Expected == 1) ? "<<" : ( (Expected == 0) ? "=" : ">>")),B.c_str()); +#define EXPECT_VERSION_PART(A, compare, B) \ +{ \ + int Res = debVS.CmpVersion(A, B); \ + Res = (Res < 0) ? -1 : ( (Res > 0) ? 1 : Res); \ + EXPECT_EQ(compare, Res) << "APT: A: »" << A << "« B: »" << B << "«"; \ + EXPECT_PRED3(callDPKG, A, B, compare); \ } +#define EXPECT_VERSION(A, compare, B) \ + EXPECT_VERSION_PART(A, compare, B); \ + EXPECT_VERSION_PART(B, compare * -1, A) + +// History-Remark: The versions used to be specified in a versions.lst file + +enum CompareVersionType { LESS = -1, GREATER = 1, EQUAL = 0 }; -static bool RunTest(const char *File) +TEST(CompareVersionTest,Basic) { - if (FileExists(File) == false) - return _error->Error("Versiontestfile %s doesn't exist!", File); + EXPECT_VERSION("7.6p2-4", GREATER, "7.6-0"); + EXPECT_VERSION("1.0.3-3", GREATER, "1.0-1"); + EXPECT_VERSION("1.3", GREATER, "1.2.2-2"); + EXPECT_VERSION("1.3", GREATER, "1.2.2"); - ifstream F(File,ios::in); - if (!F != 0) - return false; + /* disabled as dpkg doesn't like them… (versions have to start with a number) + EXPECT_VERSION("-", LESS, "."); + EXPECT_VERSION("p", LESS, "-"); + EXPECT_VERSION("a", LESS, "-"); + EXPECT_VERSION("z", LESS, "-"); + EXPECT_VERSION("a", LESS, "."); + EXPECT_VERSION("z", LESS, "."); + // */ - char Buffer[300]; - int CurLine = 0; - - while (1) - { - F.getline(Buffer,sizeof(Buffer)); - CurLine++; - if (F.eof() != 0) - return true; - if (!F != 0) - return _error->Error("Line %u in %s is too long",CurLine,File); - - // Comment - if (Buffer[0] == '#' || Buffer[0] == 0) - continue; - - // First version - char *I; - char *Start = Buffer; - for (I = Buffer; *I != 0 && *I != ' '; I++); - string A(Start, I - Start); - - if (*I == 0) - return _error->Error("Invalid line %u",CurLine); - - // Second version - I++; - Start = I; - for (I = Start; *I != 0 && *I != ' '; I++); - string B(Start,I - Start); - - if (*I == 0 || I[1] == 0) - return _error->Error("Invalid line %u",CurLine); - - // Result - I++; - int const Expected = atoi(I); - assertVersion(CurLine, A, B, Expected); - // Check the reverse as well - assertVersion(CurLine, B, A, Expected*-1); - } + /* disabled as dpkg doesn't like them… (versions have to start with a number) + EXPECT_VERSION("III-alpha9.8", LESS, "III-alpha9.8-1.5"); + // */ + + // Test some properties of text strings + EXPECT_VERSION("0-pre", EQUAL, "0-pre"); + EXPECT_VERSION("0-pre", LESS, "0-pree"); + + EXPECT_VERSION("1.1.6r2-2", GREATER, "1.1.6r-1"); + EXPECT_VERSION("2.6b2-1", GREATER, "2.6b-2"); + + EXPECT_VERSION("98.1p5-1", LESS, "98.1-pre2-b6-2"); + EXPECT_VERSION("0.4a6-2", GREATER, "0.4-1"); + + EXPECT_VERSION("1:3.0.5-2", LESS, "1:3.0.5.1"); } +TEST(CompareVersionTest,Epochs) +{ + EXPECT_VERSION("1:0.4", GREATER, "10.3"); + EXPECT_VERSION("1:1.25-4", LESS, "1:1.25-8"); + EXPECT_VERSION("0:1.18.36", EQUAL, "1.18.36"); + + EXPECT_VERSION("1.18.36", GREATER, "1.18.35"); + EXPECT_VERSION("0:1.18.36", GREATER, "1.18.35"); +} +TEST(CompareVersionTest,Strangeness) +{ + // Funky, but allowed, characters in upstream version + EXPECT_VERSION("9:1.18.36:5.4-20", LESS, "10:0.5.1-22"); + EXPECT_VERSION("9:1.18.36:5.4-20", LESS, "9:1.18.36:5.5-1"); + EXPECT_VERSION("9:1.18.36:5.4-20", LESS, " 9:1.18.37:4.3-22"); + EXPECT_VERSION("1.18.36-0.17.35-18", GREATER, "1.18.36-19"); + + // Junk + EXPECT_VERSION("1:1.2.13-3", LESS, "1:1.2.13-3.1"); + EXPECT_VERSION("2.0.7pre1-4", LESS, "2.0.7r-1"); -int main(int argc, char *argv[]) + // if a version includes a dash, it should be the debrev dash - policy says so… + EXPECT_VERSION("0:0-0-0", GREATER, "0-0"); + + // do we like strange versions? Yes we like strange versions… + EXPECT_VERSION("0", EQUAL, "0"); + EXPECT_VERSION("0", EQUAL, "00"); +} +TEST(CompareVersionTest,DebianBug) +{ + // #205960 + EXPECT_VERSION("3.0~rc1-1", LESS, "3.0-1"); + // #573592 - debian policy 5.6.12 + EXPECT_VERSION("1.0", EQUAL, "1.0-0"); + EXPECT_VERSION("0.2", LESS, "1.0-0"); + EXPECT_VERSION("1.0", LESS, "1.0-0+b1"); + EXPECT_VERSION("1.0", GREATER, "1.0-0~"); +} +TEST(CompareVersionTest,CuptTests) { - if (argc != 2) - return 1; - else - RunTest(argv[1]); - - // Print any errors or warnings found - _error->DumpErrors(); - return 0; + // "steal" the testcases from (old perl) cupt + EXPECT_VERSION("1.2.3", EQUAL, "1.2.3"); // identical + EXPECT_VERSION("4.4.3-2", EQUAL, "4.4.3-2"); // identical + EXPECT_VERSION("1:2ab:5", EQUAL, "1:2ab:5"); // this is correct... + EXPECT_VERSION("7:1-a:b-5", EQUAL, "7:1-a:b-5"); // and this + EXPECT_VERSION("57:1.2.3abYZ+~-4-5", EQUAL, "57:1.2.3abYZ+~-4-5"); // and those too + EXPECT_VERSION("1.2.3", EQUAL, "0:1.2.3"); // zero epoch + EXPECT_VERSION("1.2.3", EQUAL, "1.2.3-0"); // zero revision + EXPECT_VERSION("009", EQUAL, "9"); // zeroes… + EXPECT_VERSION("009ab5", EQUAL, "9ab5"); // there as well + EXPECT_VERSION("1.2.3", LESS, "1.2.3-1"); // added non-zero revision + EXPECT_VERSION("1.2.3", LESS, "1.2.4"); // just bigger + EXPECT_VERSION("1.2.4", GREATER, "1.2.3"); // order doesn't matter + EXPECT_VERSION("1.2.24", GREATER, "1.2.3"); // bigger, eh? + EXPECT_VERSION("0.10.0", GREATER, "0.8.7"); // bigger, eh? + EXPECT_VERSION("3.2", GREATER, "2.3"); // major number rocks + EXPECT_VERSION("1.3.2a", GREATER, "1.3.2"); // letters rock + EXPECT_VERSION("0.5.0~git", LESS, "0.5.0~git2"); // numbers rock + EXPECT_VERSION("2a", LESS, "21"); // but not in all places + EXPECT_VERSION("1.3.2a", LESS, "1.3.2b"); // but there is another letter + EXPECT_VERSION("1:1.2.3", GREATER, "1.2.4"); // epoch rocks + EXPECT_VERSION("1:1.2.3", LESS, "1:1.2.4"); // bigger anyway + EXPECT_VERSION("1.2a+~bCd3", LESS, "1.2a++"); // tilde doesn't rock + EXPECT_VERSION("1.2a+~bCd3", GREATER, "1.2a+~"); // but first is longer! + EXPECT_VERSION("5:2", GREATER, "304-2"); // epoch rocks + EXPECT_VERSION("5:2", LESS, "304:2"); // so big epoch? + EXPECT_VERSION("25:2", GREATER, "3:2"); // 25 > 3, obviously + EXPECT_VERSION("1:2:123", LESS, "1:12:3"); // 12 > 2 + EXPECT_VERSION("1.2-5", LESS, "1.2-3-5"); // 1.2 < 1.2-3 + EXPECT_VERSION("5.10.0", GREATER, "5.005"); // preceding zeroes don't matters + EXPECT_VERSION("3a9.8", LESS, "3.10.2"); // letters are before all letter symbols + EXPECT_VERSION("3a9.8", GREATER, "3~10"); // but after the tilde + EXPECT_VERSION("1.4+OOo3.0.0~", LESS, "1.4+OOo3.0.0-4"); // another tilde check + EXPECT_VERSION("2.4.7-1", LESS, "2.4.7-z"); // revision comparing + EXPECT_VERSION("1.002-1+b2", GREATER, "1.00"); // whatever... + /* disabled as dpkg doesn't like them… (versions with illegal char) + EXPECT_VERSION("2.2.4-47978_Debian_lenny", EQUAL, "2.2.4-47978_Debian_lenny"); // and underscore... + // */ } diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc index c9235500c..647d8a4af 100644 --- a/test/libapt/configuration_test.cc +++ b/test/libapt/configuration_test.cc @@ -5,135 +5,142 @@ #include #include -#include "assert.h" +#include -int main() { +//FIXME: Test for configuration file parsing; +// currently only integration/ tests test them implicitly + +TEST(ConfigurationTest,Lists) +{ Configuration Cnf; - std::vector fds; Cnf.Set("APT::Keep-Fds::",28); Cnf.Set("APT::Keep-Fds::",17); Cnf.Set("APT::Keep-Fds::2",47); Cnf.Set("APT::Keep-Fds::","broken"); - fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "28"); - equals(fds[1], "17"); - equals(fds[2], "47"); - equals(fds[3], "broken"); - equals(fds.size(), 4); - equals(Cnf.Exists("APT::Keep-Fds::2"), true); - equals(Cnf.Find("APT::Keep-Fds::2"), "47"); - equals(Cnf.FindI("APT::Keep-Fds::2"), 47); - equals(Cnf.Exists("APT::Keep-Fds::3"), false); - equals(Cnf.Find("APT::Keep-Fds::3"), ""); - equals(Cnf.FindI("APT::Keep-Fds::3", 56), 56); - equals(Cnf.Find("APT::Keep-Fds::3", "not-set"), "not-set"); + std::vector fds = Cnf.FindVector("APT::Keep-Fds"); + ASSERT_EQ(4, fds.size()); + EXPECT_EQ("28", fds[0]); + EXPECT_EQ("17", fds[1]); + EXPECT_EQ("47", fds[2]); + EXPECT_EQ("broken", fds[3]); + + EXPECT_TRUE(Cnf.Exists("APT::Keep-Fds::2")); + EXPECT_EQ("47", Cnf.Find("APT::Keep-Fds::2")); + EXPECT_EQ(47, Cnf.FindI("APT::Keep-Fds::2")); + EXPECT_FALSE(Cnf.Exists("APT::Keep-Fds::3")); + EXPECT_EQ("", Cnf.Find("APT::Keep-Fds::3")); + EXPECT_EQ(56, Cnf.FindI("APT::Keep-Fds::3", 56)); + EXPECT_EQ("not-set", Cnf.Find("APT::Keep-Fds::3", "not-set")); Cnf.Clear("APT::Keep-Fds::2"); + EXPECT_TRUE(Cnf.Exists("APT::Keep-Fds::2")); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "28"); - equals(fds[1], "17"); - equals(fds[2], ""); - equals(fds[3], "broken"); - equals(fds.size(), 4); - equals(Cnf.Exists("APT::Keep-Fds::2"), true); + ASSERT_EQ(4, fds.size()); + EXPECT_EQ("28", fds[0]); + EXPECT_EQ("17", fds[1]); + EXPECT_EQ("", fds[2]); + EXPECT_EQ("broken", fds[3]); Cnf.Clear("APT::Keep-Fds",28); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "17"); - equals(fds[1], ""); - equals(fds[2], "broken"); - equals(fds.size(), 3); + ASSERT_EQ(3, fds.size()); + EXPECT_EQ("17", fds[0]); + EXPECT_EQ("", fds[1]); + EXPECT_EQ("broken", fds[2]); Cnf.Clear("APT::Keep-Fds",""); - equals(Cnf.Exists("APT::Keep-Fds::2"), false); + EXPECT_FALSE(Cnf.Exists("APT::Keep-Fds::2")); Cnf.Clear("APT::Keep-Fds",17); Cnf.Clear("APT::Keep-Fds","broken"); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds.empty(), true); + EXPECT_TRUE(fds.empty()); Cnf.Set("APT::Keep-Fds::",21); Cnf.Set("APT::Keep-Fds::",42); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds[0], "21"); - equals(fds[1], "42"); - equals(fds.size(), 2); + ASSERT_EQ(2, fds.size()); + EXPECT_EQ("21", fds[0]); + EXPECT_EQ("42", fds[1]); Cnf.Clear("APT::Keep-Fds"); fds = Cnf.FindVector("APT::Keep-Fds"); - equals(fds.empty(), true); + EXPECT_TRUE(fds.empty()); +} +TEST(ConfigurationTest,Integers) +{ + Configuration Cnf; Cnf.CndSet("APT::Version", 42); Cnf.CndSet("APT::Version", "66"); - equals(Cnf.Find("APT::Version"), "42"); - equals(Cnf.FindI("APT::Version"), 42); - equals(Cnf.Find("APT::Version", "33"), "42"); - equals(Cnf.FindI("APT::Version", 33), 42); - equals(Cnf.Find("APT2::Version", "33"), "33"); - equals(Cnf.FindI("APT2::Version", 33), 33); - - equals(Cnf.FindFile("Dir::State"), ""); - equals(Cnf.FindFile("Dir::Aptitude::State"), ""); + EXPECT_EQ("42", Cnf.Find("APT::Version")); + EXPECT_EQ(42, Cnf.FindI("APT::Version")); + EXPECT_EQ("42", Cnf.Find("APT::Version", "33")); + EXPECT_EQ(42, Cnf.FindI("APT::Version", 33)); + EXPECT_EQ("33", Cnf.Find("APT2::Version", "33")); + EXPECT_EQ(33, Cnf.FindI("APT2::Version", 33)); +} +TEST(ConfigurationTest,DirsAndFiles) +{ + Configuration Cnf; + + EXPECT_EQ("", Cnf.FindFile("Dir::State")); + EXPECT_EQ("", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("Dir", "/srv/sid"); - equals(Cnf.FindFile("Dir::State"), ""); + EXPECT_EQ("", Cnf.FindFile("Dir::State")); Cnf.Set("Dir::State", "var/lib/apt"); Cnf.Set("Dir::Aptitude::State", "var/lib/aptitude"); - equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "/"); - equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "//./////.////"); - equals(Cnf.FindFile("Dir::State"), "/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "/rootdir"); - equals(Cnf.FindFile("Dir::State"), "/rootdir/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/rootdir/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/rootdir/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/rootdir/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("RootDir", "/rootdir/"); - equals(Cnf.FindFile("Dir::State"), "/rootdir/srv/sid/var/lib/apt"); - equals(Cnf.FindFile("Dir::Aptitude::State"), "/rootdir/srv/sid/var/lib/aptitude"); + EXPECT_EQ("/rootdir/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State")); + EXPECT_EQ("/rootdir/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State")); Cnf.Set("Dir::State", "/dev/null"); Cnf.Set("Dir::State::lists", "lists/"); - equals(Cnf.FindDir("Dir::State"), "/rootdir/dev/null"); - equals(Cnf.FindDir("Dir::State::lists"), "/rootdir/dev/null"); - - Cnf.Set("Moo::Bar", "1"); - Cnf.Clear(); - equals(Cnf.Find("Moo::Bar"), ""); + EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State")); + EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State::lists")); +} +TEST(ConfigurationTest,Vector) +{ + Configuration Cnf; std::vector vec = Cnf.FindVector("Test::Vector", ""); - equals(vec.size(), 0); + EXPECT_EQ(0, vec.size()); vec = Cnf.FindVector("Test::Vector", "foo"); - equals(vec.size(), 1); - equals(vec[0], "foo"); + ASSERT_EQ(1, vec.size()); + EXPECT_EQ("foo", vec[0]); vec = Cnf.FindVector("Test::Vector", "foo,bar"); - equals(vec.size(), 2); - equals(vec[0], "foo"); - equals(vec[1], "bar"); + EXPECT_EQ(2, vec.size()); + EXPECT_EQ("foo", vec[0]); + EXPECT_EQ("bar", vec[1]); Cnf.Set("Test::Vector::", "baz"); Cnf.Set("Test::Vector::", "bob"); Cnf.Set("Test::Vector::", "dob"); vec = Cnf.FindVector("Test::Vector"); - equals(vec.size(), 3); - equals(vec[0], "baz"); - equals(vec[1], "bob"); - equals(vec[2], "dob"); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("baz", vec[0]); + EXPECT_EQ("bob", vec[1]); + EXPECT_EQ("dob", vec[2]); vec = Cnf.FindVector("Test::Vector", "foo,bar"); - equals(vec.size(), 3); - equals(vec[0], "baz"); - equals(vec[1], "bob"); - equals(vec[2], "dob"); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("baz", vec[0]); + EXPECT_EQ("bob", vec[1]); + EXPECT_EQ("dob", vec[2]); Cnf.Set("Test::Vector", "abel,bravo"); vec = Cnf.FindVector("Test::Vector", "foo,bar"); - equals(vec.size(), 2); - equals(vec[0], "abel"); - equals(vec[1], "bravo"); - - //FIXME: Test for configuration file parsing; - // currently only integration/ tests test them implicitly - - return 0; + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("abel", vec[0]); + EXPECT_EQ("bravo", vec[1]); } diff --git a/test/libapt/file-helpers.cc b/test/libapt/file-helpers.cc new file mode 100644 index 000000000..5edb9a9fe --- /dev/null +++ b/test/libapt/file-helpers.cc @@ -0,0 +1,77 @@ +#include + +#include + +#include +#include +#include +#include + +#include + +#include "file-helpers.h" + +void helperCreateTemporaryDirectory(std::string const &id, std::string &dir) +{ + std::string const strtempdir = GetTempDir().append("/apt-tests-").append(id).append(".XXXXXX"); + char * tempdir = strdup(strtempdir.c_str()); + ASSERT_STREQ(tempdir, mkdtemp(tempdir)); + dir = tempdir; + free(tempdir); +} +void helperRemoveDirectory(std::string const &dir) +{ + // basic sanity check to avoid removing random directories based on earlier failures + if (dir.find("/apt-tests-") == std::string::npos || dir.find_first_of("*?") != std::string::npos) + FAIL() << "Directory '" << dir << "' seems invalid. It is therefore not removed!"; + else + ASSERT_EQ(0, system(std::string("rm -rf ").append(dir).c_str())); +} +void helperCreateFile(std::string const &dir, std::string const &name) +{ + std::string file = dir; + file.append("/"); + file.append(name); + int const fd = creat(file.c_str(), 0600); + ASSERT_NE(-1, fd); + close(fd); +} +void helperCreateDirectory(std::string const &dir, std::string const &name) +{ + std::string file = dir; + file.append("/"); + file.append(name); + ASSERT_TRUE(CreateDirectory(dir, file)); +} +void helperCreateLink(std::string const &dir, std::string const &targetname, std::string const &linkname) +{ + std::string target = dir; + target.append("/"); + target.append(targetname); + std::string link = dir; + link.append("/"); + link.append(linkname); + ASSERT_EQ(0, symlink(target.c_str(), link.c_str())); +} +void helperCreateTemporaryFile(std::string const &id, FileFd &fd, char * * const filename, char const * const content) +{ + std::string name("apt-test-"); + name.append(id).append(".XXXXXXXX"); + char * tempfile = strdup(name.c_str()); + int tempfile_fd = mkstemp(tempfile); + ASSERT_NE(-1, tempfile_fd); + if (filename != NULL) + *filename = tempfile; + else + { + unlink(tempfile); + free(tempfile); + } + + EXPECT_TRUE(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite)); + if (content != NULL) + { + ASSERT_TRUE(fd.Write(content, strlen(content))); + fd.Seek(0); + } +} diff --git a/test/libapt/file-helpers.h b/test/libapt/file-helpers.h new file mode 100644 index 000000000..e8472d503 --- /dev/null +++ b/test/libapt/file-helpers.h @@ -0,0 +1,29 @@ +#ifndef APT_TESTS_FILE_HELPERS +#define APT_TESTS_FILE_HELPERS + +#include + +#include + +class FileFd; + +#define createTemporaryDirectory(id, dir) \ + ASSERT_NO_FATAL_FAILURE(helperCreateTemporaryDirectory(id, dir)) +void helperCreateTemporaryDirectory(std::string const &id, std::string &dir); +#define removeDirectory(dir) \ + ASSERT_NO_FATAL_FAILURE(helperRemoveDirectory(dir)) +void helperRemoveDirectory(std::string const &dir); +#define createFile(dir, name) \ + ASSERT_NO_FATAL_FAILURE(helperCreateFile(dir, name)) +void helperCreateFile(std::string const &dir, std::string const &name); +#define createDirectory(dir, name) \ + ASSERT_NO_FATAL_FAILURE(helperCreateDirectory(dir, name)) +void helperCreateDirectory(std::string const &dir, std::string const &name); +#define createLink(dir, targetname, linkname) \ + ASSERT_NO_FATAL_FAILURE(helperCreateLink(dir, targetname, linkname)) +void helperCreateLink(std::string const &dir, std::string const &targetname, std::string const &linkname); +#define createTemporaryFile(id, fd, filename, content) \ + ASSERT_NO_FATAL_FAILURE(helperCreateTemporaryFile(id, fd, filename, content)) +void helperCreateTemporaryFile(std::string const &id, FileFd &fd, char * * const filename, char const * const content); + +#endif diff --git a/test/libapt/fileutl_test.cc b/test/libapt/fileutl_test.cc index f3a3dd08e..643c02297 100644 --- a/test/libapt/fileutl_test.cc +++ b/test/libapt/fileutl_test.cc @@ -2,151 +2,148 @@ #include #include +#include #include #include #include #include -#include #include -#include "assert.h" +#include -static void assertStringEquals(char const * const expect, char const * const got, unsigned long const line) { - if (strncmp(expect, got, strlen(expect)) == 0) - return; - OutputAssertEqual(expect, "==", got, line); -} -#define strequals(x,y) assertStringEquals(x, y, __LINE__) +#include "file-helpers.h" -static bool -TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, unsigned int const filemode, APT::Configuration::Compressor const &compressor) +static void TestFileFd(mode_t const a_umask, mode_t const ExpectedFilePermission, + unsigned int const filemode, APT::Configuration::Compressor const &compressor) { - FileFd f; - struct stat buf; + std::string trace; + strprintf(trace, "TestFileFd: Compressor: %s umask: %#o permission: %#o mode: %d", compressor.Name.c_str(), a_umask, ExpectedFilePermission, filemode); + SCOPED_TRACE(trace); + static const char* fname = "apt-filefd-test.txt"; if (FileExists(fname) == true) - equals(unlink(fname), 0); + EXPECT_EQ(0, unlink(fname)); + FileFd f; umask(a_umask); - equals(f.Open(fname, filemode, compressor), true); - equals(f.IsOpen(), true); - equals(f.Failed(), false); - equals(umask(a_umask), a_umask); + EXPECT_TRUE(f.Open(fname, filemode, compressor)); + EXPECT_TRUE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + EXPECT_EQ(umask(a_umask), a_umask); std::string test = "This is a test!\n"; - equals(f.Write(test.c_str(), test.size()), true); - equals(f.IsOpen(), true); - equals(f.Failed(), false); + EXPECT_TRUE(f.Write(test.c_str(), test.size())); + EXPECT_TRUE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); f.Close(); - equals(f.IsOpen(), false); - equals(f.Failed(), false); - - equals(f.Open(fname, FileFd::ReadOnly, compressor), true); - equals(f.IsOpen(), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - equalsNot(f.FileSize(), 0); - equals(f.Failed(), false); - equalsNot(f.ModificationTime(), 0); - equals(f.Failed(), false); + EXPECT_FALSE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + + EXPECT_TRUE(f.Open(fname, FileFd::ReadOnly, compressor)); + EXPECT_TRUE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_NE(0, f.FileSize()); + EXPECT_FALSE(f.Failed()); + EXPECT_NE(0, f.ModificationTime()); + EXPECT_FALSE(f.Failed()); // ensure the memory is as predictably messed up -# define APT_INIT_READBACK \ +#define APT_INIT_READBACK \ char readback[20]; \ memset(readback, 'D', sizeof(readback)/sizeof(readback[0])); \ readback[19] = '\0'; +#define EXPECT_N_STR(expect, actual) \ + EXPECT_EQ(0, strncmp(expect, actual, strlen(expect))); + { APT_INIT_READBACK char const * const expect = "This"; - equals(f.Read(readback, strlen(expect)), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(expect, readback); - equals(strlen(expect), f.Tell()); + EXPECT_TRUE(f.Read(readback, strlen(expect))); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(expect, readback); + EXPECT_EQ(strlen(expect), f.Tell()); } { APT_INIT_READBACK char const * const expect = "test!\n"; - equals(f.Skip((test.size() - f.Tell()) - strlen(expect)), true); - equals(f.Read(readback, strlen(expect)), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(expect, readback); - equals(test.size(), f.Tell()); + EXPECT_TRUE(f.Skip((test.size() - f.Tell()) - strlen(expect))); + EXPECT_TRUE(f.Read(readback, strlen(expect))); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(expect, readback); + EXPECT_EQ(test.size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); - equals(f.Read(readback, 20, true), true); - equals(f.Failed(), false); - equals(f.Eof(), true); - strequals(test.c_str(), readback); - equals(f.Size(), f.Tell()); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); + EXPECT_TRUE(f.Read(readback, 20, true)); + EXPECT_FALSE(f.Failed()); + EXPECT_TRUE(f.Eof()); + EXPECT_N_STR(test.c_str(), readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); - equals(f.Read(readback, test.size(), true), true); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(test.c_str(), readback); - equals(f.Size(), f.Tell()); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); + EXPECT_TRUE(f.Read(readback, test.size(), true)); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(test.c_str(), readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); unsigned long long actual; - equals(f.Read(readback, 20, &actual), true); - equals(f.Failed(), false); - equals(f.Eof(), true); - equals(test.size(), actual); - strequals(test.c_str(), readback); - equals(f.Size(), f.Tell()); + EXPECT_TRUE(f.Read(readback, 20, &actual)); + EXPECT_FALSE(f.Failed()); + EXPECT_TRUE(f.Eof()); + EXPECT_EQ(test.size(), actual); + EXPECT_N_STR(test.c_str(), readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); f.ReadLine(readback, 20); - equals(f.Failed(), false); - equals(f.Eof(), false); - equals(test, readback); - equals(f.Size(), f.Tell()); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_EQ(test, readback); + EXPECT_EQ(f.Size(), f.Tell()); } { APT_INIT_READBACK - equals(f.Seek(0), true); - equals(f.Eof(), false); + EXPECT_TRUE(f.Seek(0)); + EXPECT_FALSE(f.Eof()); char const * const expect = "This"; f.ReadLine(readback, strlen(expect) + 1); - equals(f.Failed(), false); - equals(f.Eof(), false); - strequals(expect, readback); - equals(strlen(expect), f.Tell()); + EXPECT_FALSE(f.Failed()); + EXPECT_FALSE(f.Eof()); + EXPECT_N_STR(expect, readback); + EXPECT_EQ(strlen(expect), f.Tell()); } #undef APT_INIT_READBACK f.Close(); - equals(f.IsOpen(), false); - equals(f.Failed(), false); + EXPECT_FALSE(f.IsOpen()); + EXPECT_FALSE(f.Failed()); // regression test for permission bug LP: #1304657 - if (stat(fname, &buf) < 0) - { - _error->Errno("stat", "failed to stat"); - return false; - } - equals(unlink(fname), 0); - equals(buf.st_mode & 0777, ExpectedFilePermission); - return true; + struct stat buf; + EXPECT_EQ(0, stat(fname, &buf)); + EXPECT_EQ(0, unlink(fname)); + EXPECT_EQ(ExpectedFilePermission, buf.st_mode & 0777); } -static bool TestFileFd(unsigned int const filemode) +static void TestFileFd(unsigned int const filemode) { std::vector compressors = APT::Configuration::getCompressors(); @@ -159,78 +156,71 @@ static bool TestFileFd(unsigned int const filemode) if ((filemode & FileFd::ReadWrite) == FileFd::ReadWrite && (c->Name.empty() != true && c->Binary.empty() != true)) continue; - if (TestFileFd(0002, 0664, filemode, *c) == false || - TestFileFd(0022, 0644, filemode, *c) == false || - TestFileFd(0077, 0600, filemode, *c) == false || - TestFileFd(0026, 0640, filemode, *c) == false) - { - _error->DumpErrors(); - return false; - } + TestFileFd(0002, 0664, filemode, *c); + TestFileFd(0022, 0644, filemode, *c); + TestFileFd(0077, 0600, filemode, *c); + TestFileFd(0026, 0640, filemode, *c); } - return true; } -int main(int const argc, char const * const * const argv) +TEST(FileUtlTest, FileFD) +{ + std::string const startdir = SafeGetCWD(); + EXPECT_FALSE(startdir.empty()); + std::string tempdir; + createTemporaryDirectory("filefd", tempdir); + EXPECT_EQ(0, chdir(tempdir.c_str())); + + TestFileFd(FileFd::WriteOnly | FileFd::Create); + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty); + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive); + TestFileFd(FileFd::WriteOnly | FileFd::Atomic); + TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Atomic); + // short-hands for ReadWrite with these modes + TestFileFd(FileFd::WriteEmpty); + TestFileFd(FileFd::WriteAny); + TestFileFd(FileFd::WriteTemp); + TestFileFd(FileFd::WriteAtomic); + + EXPECT_EQ(0, chdir(startdir.c_str())); + removeDirectory(tempdir); +} +TEST(FileUtlTest, Glob) { - std::string startdir; - if (argc > 1 && DirectoryExists(argv[1]) == true) { - startdir = SafeGetCWD(); - equals(chdir(argv[1]), 0); - } - if (TestFileFd(FileFd::WriteOnly | FileFd::Create) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Empty) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Exclusive) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Atomic) == false || - TestFileFd(FileFd::WriteOnly | FileFd::Create | FileFd::Atomic) == false || - // short-hands for ReadWrite with these modes - TestFileFd(FileFd::WriteEmpty) == false || - TestFileFd(FileFd::WriteAny) == false || - TestFileFd(FileFd::WriteTemp) == false || - TestFileFd(FileFd::WriteAtomic) == false) - { - return 1; - } - if (startdir.empty() == false) - equals(chdir(startdir.c_str()), 0); - std::vector files; // normal match - files = Glob("*.lst"); - if (files.size() != 1) - { - _error->DumpErrors(); - return 1; - } + files = Glob("*akefile"); + EXPECT_EQ(1, files.size()); // not there files = Glob("xxxyyyzzz"); - if (files.size() != 0 || _error->PendingError()) - { - _error->DumpErrors(); - return 1; - } + EXPECT_TRUE(files.empty()); + EXPECT_FALSE(_error->PendingError()); // many matches (number is a bit random) files = Glob("*.cc"); - if (files.size() < 10) - { - _error->DumpErrors(); - return 1; - } + EXPECT_LT(10, files.size()); +} +TEST(FileUtlTest, GetTempDir) +{ + char const * const envtmp = getenv("TMPDIR"); + std::string old_tmpdir; + if (envtmp != NULL) + old_tmpdir = envtmp; - // GetTempDir() unsetenv("TMPDIR"); - equals(GetTempDir(), "/tmp"); + EXPECT_EQ("/tmp", GetTempDir()); setenv("TMPDIR", "", 1); - equals(GetTempDir(), "/tmp"); + EXPECT_EQ("/tmp", GetTempDir()); setenv("TMPDIR", "/not-there-no-really-not", 1); - equals(GetTempDir(), "/tmp"); + EXPECT_EQ("/tmp", GetTempDir()); setenv("TMPDIR", "/usr", 1); - equals(GetTempDir(), "/usr"); + EXPECT_EQ("/usr", GetTempDir()); - return 0; + unsetenv("TMPDIR"); + if (old_tmpdir.empty() == false) + setenv("TMPDIR", old_tmpdir.c_str(), 1); } diff --git a/test/libapt/getarchitectures_test.cc b/test/libapt/getarchitectures_test.cc index f4dfc6ae8..53c00cd8f 100644 --- a/test/libapt/getarchitectures_test.cc +++ b/test/libapt/getarchitectures_test.cc @@ -6,56 +6,72 @@ #include #include -#include "assert.h" +#include -int main() +TEST(ArchitecturesTest,SimpleLists) { - std::vector vec; - - _config->Set("APT::Architectures::1", "i386"); - _config->Set("APT::Architectures::2", "amd64"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "i386"); - equals(vec[1], "amd64"); - - _config->Set("APT::Architecture", "i386"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "i386"); - equals(vec[1], "amd64"); - - _config->Set("APT::Architectures::2", ""); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 1); - equals(vec[0], "i386"); - - _config->Set("APT::Architecture", "armel"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "armel"); - equals(vec[1], "i386"); - - _config->Set("APT::Architectures::2", "armel"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 2); - equals(vec[0], "i386"); - equals(vec[1], "armel"); - - _config->Set("APT::Architectures::2", "amd64"); - _config->Set("APT::Architectures::3", "i386"); - _config->Set("APT::Architectures::4", "armel"); - _config->Set("APT::Architectures::5", "i386"); - _config->Set("APT::Architectures::6", "amd64"); - _config->Set("APT::Architectures::7", "armel"); - _config->Set("APT::Architectures::8", "armel"); - _config->Set("APT::Architectures::9", "amd64"); - _config->Set("APT::Architectures::10", "amd64"); - vec = APT::Configuration::getArchitectures(false); - equals(vec.size(), 3); - equals(vec[0], "i386"); - equals(vec[1], "amd64"); - equals(vec[2], "armel"); - - return 0; + _config->Clear(); + std::vector vec; + + _config->Set("APT::Architectures::1", "i386"); + _config->Set("APT::Architectures::2", "amd64"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("amd64", vec[1]); + + _config->Set("APT::Architecture", "i386"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("amd64", vec[1]); + + _config->Set("APT::Architectures::2", ""); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(1, vec.size()); + EXPECT_EQ("i386", vec[0]); + + _config->Set("APT::Architecture", "armel"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("armel", vec[0]); + EXPECT_EQ("i386", vec[1]); + + _config->Set("APT::Architectures::2", "armel"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("armel", vec[1]); + + _config->Set("APT::Architectures", "armel,armhf"); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("armel", vec[0]); + EXPECT_EQ("armhf", vec[1]); + _config->Clear(); +} +TEST(ArchitecturesTest,Duplicates) +{ + _config->Clear(); + + _config->Set("APT::Architecture", "armel"); + _config->Set("APT::Architectures::", "i386"); + _config->Set("APT::Architectures::", "amd64"); + _config->Set("APT::Architectures::", "i386"); + _config->Set("APT::Architectures::", "armel"); + _config->Set("APT::Architectures::", "i386"); + _config->Set("APT::Architectures::", "amd64"); + _config->Set("APT::Architectures::", "armel"); + _config->Set("APT::Architectures::", "armel"); + _config->Set("APT::Architectures::", "amd64"); + _config->Set("APT::Architectures::", "amd64"); + std::vector vec = _config->FindVector("APT::Architectures"); + ASSERT_EQ(10, vec.size()); + vec = APT::Configuration::getArchitectures(false); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("i386", vec[0]); + EXPECT_EQ("amd64", vec[1]); + EXPECT_EQ("armel", vec[2]); + + _config->Clear(); } diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index 15aa4e879..c50ff6ff8 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -2,199 +2,233 @@ #include #include +#include -#include "assert.h" +#include +#include #include #include -#include +#include +#include +#include + +#include + +#include "file-helpers.h" + +TEST(LanguagesTest,Environment) +{ + _config->Clear(); + + char const* env[2]; + env[0] = "de_DE.UTF-8"; + env[1] = ""; + + std::vector vec = APT::Configuration::getLanguages(false, false, env); + ASSERT_EQ(3 ,vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + // Special: Check if the cache is actually in use + env[0] = "en_GB.UTF-8"; + vec = APT::Configuration::getLanguages(false, true, env); + ASSERT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "en_GB.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("en_GB", vec[0]); + EXPECT_EQ("en", vec[1]); + + // esperanto + env[0] = "eo.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + ASSERT_EQ(2, vec.size()); + EXPECT_EQ("eo", vec[0]); + EXPECT_EQ("en", vec[1]); + + env[0] = "tr_DE@euro"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("tr_DE", vec[0]); + EXPECT_EQ("tr", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "de_NO"; + env[1] = "de_NO:en_GB:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(6, vec.size()); + EXPECT_EQ("de_NO", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en_GB", vec[2]); + EXPECT_EQ("nb_NO", vec[3]); + EXPECT_EQ("nb", vec[4]); + EXPECT_EQ("en", vec[5]); + + env[0] = "pt_PR.UTF-8"; + env[1] = ""; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("pt_PR", vec[0]); + EXPECT_EQ("pt", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "ast_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); // bogus, but syntactical correct + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("ast_DE", vec[0]); + EXPECT_EQ("ast", vec[1]); + EXPECT_EQ("en", vec[2]); + + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("en", vec[0]); + + _config->Set("Acquire::Languages", "none"); + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_TRUE(vec.empty()); + + _config->Set("Acquire::Languages", "environment"); + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("en", vec[0]); + + _config->Set("Acquire::Languages", "de"); + env[0] = "C"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("de", vec[0]); + + _config->Set("Acquire::Languages", "fr"); + env[0] = "ast_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("fr", vec[0]); + + _config->Set("Acquire::Languages", "environment,en"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + _config->Set("Acquire::Languages", ""); + + _config->Set("Acquire::Languages::1", "environment"); + _config->Set("Acquire::Languages::2", "en"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + _config->Set("Acquire::Languages::3", "de"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(3, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + + _config->Clear(); +} -int main(int argc,char *argv[]) +TEST(LanguagesTest,TranslationFiles) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } - - char const* env[2]; - env[0] = "de_DE.UTF-8"; - env[1] = ""; - - std::vector vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - // Special: Check if the cache is actually in use - env[0] = "en_GB.UTF-8"; - vec = APT::Configuration::getLanguages(false, true, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - env[0] = "en_GB.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 2); - equals(vec[0], "en_GB"); - equals(vec[1], "en"); - - // esperanto - env[0] = "eo.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 2); - equals(vec[0], "eo"); - equals(vec[1], "en"); - - env[0] = "tr_DE@euro"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "tr_DE"); - equals(vec[1], "tr"); - equals(vec[2], "en"); - - env[0] = "de_NO"; - env[1] = "de_NO:en_GB:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 6); - equals(vec[0], "de_NO"); - equals(vec[1], "de"); - equals(vec[2], "en_GB"); - equals(vec[3], "nb_NO"); - equals(vec[4], "nb"); - equals(vec[5], "en"); - - env[0] = "pt_PR.UTF-8"; - env[1] = ""; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "pt_PR"); - equals(vec[1], "pt"); - equals(vec[2], "en"); - - env[0] = "ast_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); // bogus, but syntactical correct - equals(vec.size(), 3); - equals(vec[0], "ast_DE"); - equals(vec[1], "ast"); - equals(vec[2], "en"); - - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "en"); - - _config->Set("Acquire::Languages", "none"); - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 0); - - _config->Set("Acquire::Languages", "environment"); - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "en"); - - _config->Set("Acquire::Languages", "de"); - env[0] = "C"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "de"); - - _config->Set("Acquire::Languages", "fr"); - env[0] = "ast_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "fr"); - - _config->Set("Acquire::Languages", "environment,en"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - _config->Set("Acquire::Languages", ""); - - _config->Set("Acquire::Languages::1", "environment"); - _config->Set("Acquire::Languages::2", "en"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - _config->Set("Acquire::Languages::3", "de"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 3); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - - _config->Set("Dir::State::lists", argv[1]); - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 8); - equals(vec[0], "de_DE"); - equals(vec[1], "de"); - equals(vec[2], "en"); - equals(vec[3], "none"); - equalsOr4(vec[4], "pt", "tr", "ast_DE", "tlh_DE"); - equalsOr4(vec[5], "tr", "pt", "ast_DE", "tlh_DE"); - equalsOr4(vec[6], "tr", "pt", "ast_DE", "tlh_DE"); - equalsOr4(vec[7], "tr", "pt", "ast_DE", "tlh_DE"); - equalsNot(vec[4], vec[5]); - equalsNot(vec[4], vec[6]); - equalsNot(vec[4], vec[7]); - equalsNot(vec[5], vec[6]); - equalsNot(vec[5], vec[7]); - equalsNot(vec[6], vec[7]); - - _config->Set("Acquire::Languages", "none"); - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); - equals(vec[0], "none"); - _config->Set("Acquire::Languages", ""); - - _config->Set("Dir::State::lists", "/non-existing-dir"); - _config->Set("Acquire::Languages::1", "none"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 0); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 2); - equals(vec[0], "en"); - equals(vec[1], "de"); - - _config->Set("Acquire::Languages::1", "fr"); - _config->Set("Acquire::Languages", "de_DE"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 1); - equals(vec[0], "de_DE"); - - _config->Set("Acquire::Languages", "none"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); - equals(vec[0], "none"); - - _config->Set("Acquire::Languages", ""); - //FIXME: Remove support for this deprecated setting - _config->Set("APT::Acquire::Translation", "ast_DE"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 2); - equals(vec[0], "ast_DE"); - equals(vec[1], "en"); - _config->Set("APT::Acquire::Translation", "none"); - env[0] = "de_DE.UTF-8"; - vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); - equals(vec[0], "en"); - - return 0; + _config->Clear(); + _config->Set("Acquire::Languages::1", "environment"); + _config->Set("Acquire::Languages::2", "en"); + _config->Set("Acquire::Languages::3", "de"); + + char const* env[2]; + env[0] = "de_DE.UTF-8"; + env[1] = ""; + + std::string tempdir; + createTemporaryDirectory("languages", tempdir); + +#define createTranslation(lang) \ + createFile(tempdir, std::string("/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-").append(lang)); + + createTranslation("tr"); + createTranslation("pt"); + createTranslation("se~"); + createTranslation("st.bak"); + createTranslation("ast_DE"); + createTranslation("tlh%5fDE"); + + _config->Set("Dir::State::lists", tempdir); + std::vector vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(8, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + EXPECT_EQ("de", vec[1]); + EXPECT_EQ("en", vec[2]); + EXPECT_EQ("none", vec[3]); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "pt")); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "tr")); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "ast_DE")); + EXPECT_NE(vec.end(), std::find(vec.begin(), vec.end(), "tlh_DE")); + EXPECT_NE(vec[4], vec[5]); + EXPECT_NE(vec[4], vec[6]); + EXPECT_NE(vec[4], vec[7]); + EXPECT_NE(vec[5], vec[6]); + EXPECT_NE(vec[5], vec[7]); + EXPECT_NE(vec[6], vec[7]); + + _config->Set("Acquire::Languages", "none"); + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("none", vec[0]); + _config->Set("Acquire::Languages", ""); + + _config->Set("Dir::State::lists", "/non-existing-dir"); + _config->Set("Acquire::Languages::1", "none"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_TRUE(vec.empty()); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(2, vec.size()); + EXPECT_EQ("en", vec[0]); + EXPECT_EQ("de", vec[1]); + + _config->Set("Acquire::Languages::1", "fr"); + _config->Set("Acquire::Languages", "de_DE"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("de_DE", vec[0]); + + _config->Set("Acquire::Languages", "none"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("none", vec[0]); + + _config->Set("Acquire::Languages", ""); + //FIXME: Remove support for this deprecated setting + _config->Set("APT::Acquire::Translation", "ast_DE"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(2, vec.size()); + EXPECT_EQ("ast_DE", vec[0]); + EXPECT_EQ("en", vec[1]); + _config->Set("APT::Acquire::Translation", "none"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); + EXPECT_EQ(1, vec.size()); + EXPECT_EQ("en", vec[0]); + + + EXPECT_EQ(0, system(std::string("rm -rf ").append(tempdir).c_str())); + _config->Clear(); } diff --git a/test/libapt/getlistoffilesindir_test.cc b/test/libapt/getlistoffilesindir_test.cc index df125fc83..2369c911a 100644 --- a/test/libapt/getlistoffilesindir_test.cc +++ b/test/libapt/getlistoffilesindir_test.cc @@ -6,71 +6,102 @@ #include #include -#include "assert.h" +#include -#define P(x) std::string(argv[1]).append("/").append(x) +#include "file-helpers.h" -int main(int argc,char *argv[]) +#define P(x) std::string(tempdir).append("/").append(x) + +TEST(FileUtlTest,GetListOfFilesInDir) { - if (argc != 2) { - std::cout << "One parameter expected - given " << argc << std::endl; - return 100; - } - - // Files with no extension - std::vector files = GetListOfFilesInDir(argv[1], "", true); - equals(files.size(), 2); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - - // Files with no extension - should be the same as above - files = GetListOfFilesInDir(argv[1], "", true, true); - equals(files.size(), 2); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - - // Files with impossible extension - files = GetListOfFilesInDir(argv[1], "impossible", true); - equals(files.size(), 0); - - // Files with impossible or no extension - files = GetListOfFilesInDir(argv[1], "impossible", true, true); - equals(files.size(), 2); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - - // Files with list extension - nothing more - files = GetListOfFilesInDir(argv[1], "list", true); - equals(files.size(), 4); - equals(files[0], P("01yet-anotherapt.list")); - equals(files[1], P("anormalapt.list")); - equals(files[2], P("linkedfile.list")); - equals(files[3], P("multi.dot.list")); - - // Files with conf or no extension - files = GetListOfFilesInDir(argv[1], "conf", true, true); - equals(files.size(), 5); - equals(files[0], P("01yet-anotherapt.conf")); - equals(files[1], P("01yet-anothernormalfile")); - equals(files[2], P("anormalapt.conf")); - equals(files[3], P("anormalfile")); - equals(files[4], P("multi.dot.conf")); - - // Files with disabled extension - nothing more - files = GetListOfFilesInDir(argv[1], "disabled", true); - equals(files.size(), 3); - equals(files[0], P("disabledfile.conf.disabled")); - equals(files[1], P("disabledfile.disabled")); - equals(files[2], P("disabledfile.list.disabled")); - - // Files with disabled or no extension - files = GetListOfFilesInDir(argv[1], "disabled", true, true); - equals(files.size(), 5); - equals(files[0], P("01yet-anothernormalfile")); - equals(files[1], P("anormalfile")); - equals(files[2], P("disabledfile.conf.disabled")); - equals(files[3], P("disabledfile.disabled")); - equals(files[4], P("disabledfile.list.disabled")); - - return 0; + std::string tempdir; + createTemporaryDirectory("getlistoffiles", tempdir); + + createFile(tempdir, "anormalfile"); + createFile(tempdir, "01yet-anothernormalfile"); + createFile(tempdir, "anormalapt.conf"); + createFile(tempdir, "01yet-anotherapt.conf"); + createFile(tempdir, "anormalapt.list"); + createFile(tempdir, "01yet-anotherapt.list"); + createFile(tempdir, "wrongextension.wron"); + createFile(tempdir, "wrong-extension.wron"); + createFile(tempdir, "strangefile."); + createFile(tempdir, "s.t.r.a.n.g.e.f.i.l.e"); + createFile(tempdir, ".hiddenfile"); + createFile(tempdir, ".hiddenfile.conf"); + createFile(tempdir, ".hiddenfile.list"); + createFile(tempdir, "multi..dot"); + createFile(tempdir, "multi.dot.conf"); + createFile(tempdir, "multi.dot.list"); + createFile(tempdir, "disabledfile.disabled"); + createFile(tempdir, "disabledfile.conf.disabled"); + createFile(tempdir, "disabledfile.list.disabled"); + createFile(tempdir, "invälid.conf"); + createFile(tempdir, "invalíd"); + createFile(tempdir, "01invalíd"); + createDirectory(tempdir, "invaliddir"); + createDirectory(tempdir, "directory.conf"); + createDirectory(tempdir, "directory.list"); + createDirectory(tempdir, "directory.wron"); + createDirectory(tempdir, "directory.list.disabled"); + createLink(tempdir, "anormalfile", "linkedfile.list"); + createLink(tempdir, "invaliddir", "linkeddir.list"); + createLink(tempdir, "non-existing-file", "brokenlink.list"); + + // Files with no extension + std::vector files = GetListOfFilesInDir(tempdir, "", true); + ASSERT_EQ(2, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + + // Files with no extension - should be the same as above + files = GetListOfFilesInDir(tempdir, "", true, true); + ASSERT_EQ(2, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + + // Files with impossible extension + files = GetListOfFilesInDir(tempdir, "impossible", true); + EXPECT_TRUE(files.empty()); + + // Files with impossible or no extension + files = GetListOfFilesInDir(tempdir, "impossible", true, true); + ASSERT_EQ(2, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + + // Files with list extension - nothing more + files = GetListOfFilesInDir(tempdir, "list", true); + ASSERT_EQ(4, files.size()); + EXPECT_EQ(P("01yet-anotherapt.list"), files[0]); + EXPECT_EQ(P("anormalapt.list"), files[1]); + EXPECT_EQ(P("linkedfile.list"), files[2]); + EXPECT_EQ(P("multi.dot.list"), files[3]); + + // Files with conf or no extension + files = GetListOfFilesInDir(tempdir, "conf", true, true); + ASSERT_EQ(5, files.size()); + EXPECT_EQ(P("01yet-anotherapt.conf"), files[0]); + EXPECT_EQ(P("01yet-anothernormalfile"), files[1]); + EXPECT_EQ(P("anormalapt.conf"), files[2]); + EXPECT_EQ(P("anormalfile"), files[3]); + EXPECT_EQ(P("multi.dot.conf"), files[4]); + + // Files with disabled extension - nothing more + files = GetListOfFilesInDir(tempdir, "disabled", true); + ASSERT_EQ(3, files.size()); + EXPECT_EQ(P("disabledfile.conf.disabled"), files[0]); + EXPECT_EQ(P("disabledfile.disabled"), files[1]); + EXPECT_EQ(P("disabledfile.list.disabled"), files[2]); + + // Files with disabled or no extension + files = GetListOfFilesInDir(tempdir, "disabled", true, true); + ASSERT_EQ(5, files.size()); + EXPECT_EQ(P("01yet-anothernormalfile"), files[0]); + EXPECT_EQ(P("anormalfile"), files[1]); + EXPECT_EQ(P("disabledfile.conf.disabled"), files[2]); + EXPECT_EQ(P("disabledfile.disabled"), files[3]); + EXPECT_EQ(P("disabledfile.list.disabled"), files[4]); + + removeDirectory(tempdir); } diff --git a/test/libapt/globalerror_test.cc b/test/libapt/globalerror_test.cc index e913fdc12..05b95db85 100644 --- a/test/libapt/globalerror_test.cc +++ b/test/libapt/globalerror_test.cc @@ -7,110 +7,129 @@ #include #include -#include "assert.h" +#include -int main() +TEST(GlobalErrorTest,BasicDiscard) { - std::string const textOfErrnoZero(strerror(0)); + GlobalError e; + EXPECT_TRUE(e.empty()); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Notice("%s Notice", "A")); + EXPECT_TRUE(e.empty()); + EXPECT_FALSE(e.empty(GlobalError::DEBUG)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); - equals(_error->empty(), true); - equals(_error->PendingError(), false); - equals(_error->Notice("%s Notice", "A"), false); - equals(_error->empty(), true); - equals(_error->empty(GlobalError::DEBUG), false); - equals(_error->PendingError(), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - std::string text; - equals(_error->PopMessage(text), false); - equals(_error->PendingError(), true); - equals(text, "A Notice"); - equals(_error->PopMessage(text), true); - equals(text, "Something horrible happened 2 times"); - equals(_error->empty(GlobalError::DEBUG), true); - equals(_error->PendingError(), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - equals(_error->empty(GlobalError::FATAL), false); - _error->Discard(); + std::string text; + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_TRUE(e.PendingError()); + EXPECT_EQ("A Notice", text); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ("Something horrible happened 2 times", text); + EXPECT_TRUE(e.empty(GlobalError::DEBUG)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.empty(GlobalError::FATAL)); + e.Discard(); - equals(_error->empty(), true); - equals(_error->PendingError(), false); - equals(_error->Notice("%s Notice", "A"), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - equals(_error->empty(GlobalError::NOTICE), false); - _error->PushToStack(); - equals(_error->empty(GlobalError::NOTICE), true); - equals(_error->PendingError(), false); - equals(_error->Warning("%s Warning", "A"), false); - equals(_error->empty(GlobalError::ERROR), true); - equals(_error->PendingError(), false); - _error->RevertToStack(); - equals(_error->empty(GlobalError::ERROR), false); - equals(_error->PendingError(), true); - equals(_error->PopMessage(text), false); - equals(_error->PendingError(), true); - equals(text, "A Notice"); - equals(_error->PopMessage(text), true); - equals(text, "Something horrible happened 2 times"); - equals(_error->PendingError(), false); - equals(_error->empty(), true); - - equals(_error->Notice("%s Notice", "A"), false); - equals(_error->Error("%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->PendingError(), true); - equals(_error->empty(GlobalError::NOTICE), false); - _error->PushToStack(); - equals(_error->empty(GlobalError::NOTICE), true); - equals(_error->PendingError(), false); - equals(_error->Warning("%s Warning", "A"), false); - equals(_error->empty(GlobalError::ERROR), true); - equals(_error->PendingError(), false); - _error->MergeWithStack(); - equals(_error->empty(GlobalError::ERROR), false); - equals(_error->PendingError(), true); - equals(_error->PopMessage(text), false); - equals(_error->PendingError(), true); - equals(text, "A Notice"); - equals(_error->PopMessage(text), true); - equals(text, "Something horrible happened 2 times"); - equals(_error->PendingError(), false); - equals(_error->empty(), false); - equals(_error->PopMessage(text), false); - equals(text, "A Warning"); - equals(_error->empty(), true); - - errno = 0; - equals(_error->Errno("errno", "%s horrible %s %d times", "Something", "happened", 2), false); - equals(_error->empty(), false); - equals(_error->PendingError(), true); - equals(_error->PopMessage(text), true); - equals(_error->PendingError(), false); - equals(text, std::string("Something horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")")); - equals(_error->empty(), true); + EXPECT_TRUE(e.empty()); + EXPECT_FALSE(e.PendingError()); +} +TEST(GlobalErrorTest,StackPushing) +{ + GlobalError e; + EXPECT_FALSE(e.Notice("%s Notice", "A")); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.empty(GlobalError::NOTICE)); + e.PushToStack(); + EXPECT_TRUE(e.empty(GlobalError::NOTICE)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Warning("%s Warning", "A")); + EXPECT_TRUE(e.empty(GlobalError::ERROR)); + EXPECT_FALSE(e.PendingError()); + e.RevertToStack(); + EXPECT_FALSE(e.empty(GlobalError::ERROR)); + EXPECT_TRUE(e.PendingError()); - std::string longText; - for (size_t i = 0; i < 500; ++i) - longText.append("a"); - equals(_error->Error("%s horrible %s %d times", longText.c_str(), "happened", 2), false); - equals(_error->PopMessage(text), true); - equals(text, std::string(longText).append(" horrible happened 2 times")); + std::string text; + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_TRUE(e.PendingError()); + EXPECT_EQ("A Notice", text); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ("Something horrible happened 2 times", text); + EXPECT_FALSE(e.PendingError()); + EXPECT_TRUE(e.empty()); - equals(_error->Errno("errno", "%s horrible %s %d times", longText.c_str(), "happened", 2), false); - equals(_error->PopMessage(text), true); - equals(text, std::string(longText).append(" horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")")); + EXPECT_FALSE(e.Notice("%s Notice", "A")); + EXPECT_FALSE(e.Error("%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.empty(GlobalError::NOTICE)); + e.PushToStack(); + EXPECT_TRUE(e.empty(GlobalError::NOTICE)); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.Warning("%s Warning", "A")); + EXPECT_TRUE(e.empty(GlobalError::ERROR)); + EXPECT_FALSE(e.PendingError()); + e.MergeWithStack(); + EXPECT_FALSE(e.empty(GlobalError::ERROR)); + EXPECT_TRUE(e.PendingError()); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_TRUE(e.PendingError()); + EXPECT_EQ("A Notice", text); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ("Something horrible happened 2 times", text); + EXPECT_FALSE(e.PendingError()); + EXPECT_FALSE(e.empty()); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_EQ("A Warning", text); + EXPECT_TRUE(e.empty()); +} +TEST(GlobalErrorTest,Errno) +{ + GlobalError e; + std::string const textOfErrnoZero(strerror(0)); + errno = 0; + EXPECT_FALSE(e.Errno("errno", "%s horrible %s %d times", "Something", "happened", 2)); + EXPECT_FALSE(e.empty()); + EXPECT_TRUE(e.PendingError()); + std::string text; + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_FALSE(e.PendingError()); + EXPECT_EQ(std::string("Something horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")"), text); + EXPECT_TRUE(e.empty()); +} +TEST(GlobalErrorTest,LongMessage) +{ + GlobalError e; + std::string const textOfErrnoZero(strerror(0)); + errno = 0; + std::string text, longText; + for (size_t i = 0; i < 500; ++i) + longText.append("a"); + EXPECT_FALSE(e.Error("%s horrible %s %d times", longText.c_str(), "happened", 2)); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ(std::string(longText).append(" horrible happened 2 times"), text); - equals(_error->Warning("Репозиторий не обновлён и будут %d %s", 4, "test"), false); - equals(_error->PopMessage(text), false); - equals(text, "Репозиторий не обновлён и будут 4 test"); + EXPECT_FALSE(e.Errno("errno", "%s horrible %s %d times", longText.c_str(), "happened", 2)); + EXPECT_TRUE(e.PopMessage(text)); + EXPECT_EQ(std::string(longText).append(" horrible happened 2 times - errno (0: ").append(textOfErrnoZero).append(")"), text); +} +TEST(GlobalErrorTest,UTF8Message) +{ + GlobalError e; + std::string text; - longText.clear(); - for (size_t i = 0; i < 50; ++i) - longText.append("РезийбёбAZ"); - equals(_error->Warning("%s", longText.c_str()), false); - equals(_error->PopMessage(text), false); - equals(text, longText); + EXPECT_FALSE(e.Warning("Репозиторий не обновлён и будут %d %s", 4, "test")); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_EQ("Репозиторий не обновлён и будут 4 test", text); - return 0; + std::string longText; + for (size_t i = 0; i < 50; ++i) + longText.append("РезийбёбAZ"); + EXPECT_FALSE(e.Warning("%s", longText.c_str())); + EXPECT_FALSE(e.PopMessage(text)); + EXPECT_EQ(longText, text); } diff --git a/test/libapt/gtest_runner.cc b/test/libapt/gtest_runner.cc new file mode 100644 index 000000000..5823c55de --- /dev/null +++ b/test/libapt/gtest_runner.cc @@ -0,0 +1,19 @@ +#include +#include +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + int result = RUN_ALL_TESTS(); + if (_error->empty() == false) + { + std::cerr << "The test generated the following global messages:" << std::endl; + _error->DumpErrors(std::cerr); + // messages on the stack can't be right, error out + // even if we have no idea where this message came from + if (result == 0) + { + std::cerr << "All tests successful, but messages were generated, so still a failure!" << std::endl; + return 29; + } + } + return result; +} diff --git a/test/libapt/hashsums_test.cc b/test/libapt/hashsums_test.cc index d743faec6..c06d85e03 100644 --- a/test/libapt/hashsums_test.cc +++ b/test/libapt/hashsums_test.cc @@ -11,7 +11,9 @@ #include #include -#include "assert.h" +#include + +#include "file-helpers.h" template void Test(const char *In,const char *Out) { @@ -20,167 +22,201 @@ template void Test(const char *In,const char *Out) equals(Sum.Result().Value(), Out); } -template void TestMill(const char *Out) + + +TEST(HashSumsTest,SummationStrings) { - T Sum; +#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"); - const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - unsigned Count = 1000000; - for (; Count != 0;) + // 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 >= 64) + if (Count >= AsCount) { - Sum.Add(As,64); - Count -= 64; + Sum1.Add(As, AsCount); + Count -= AsCount; } else { - Sum.Add(As,Count); + Sum1.Add(As,Count); Count = 0; } } - if (stringcasecmp(Sum.Result().Value(), Out) != 0) - abort(); + EXPECT_EQ("34aa973cd4c4daa4f61eeb2bdbad27316534016f", Sum1.Result().Value()); } -int main(int argc, char** argv) +static void getSummationString(char const * const type, std::string &sum) { - if (argc != 6) { - std::cout << "Five parameter expected - given " << argc << std::endl; - return 100; - } + /* to compare our result with an independent source we call the specific binaries + and read their result back. We do this with a little trick by claiming that the + summation is a compressor – and open the 'compressed' file later on directly to + read out the summation sum calculated by it */ + APT::Configuration::Compressor compress(type, ".ext", type, NULL, NULL, 99); + std::string name("apt-test-"); + name.append("hashsums").append(".XXXXXX"); + char * tempfile = strdup(name.c_str()); + int tempfile_fd = mkstemp(tempfile); + close(tempfile_fd); + ASSERT_NE(-1, tempfile_fd); + + FileFd fd; + ASSERT_TRUE(fd.Open(tempfile, FileFd::WriteOnly | FileFd::Empty, compress)); + ASSERT_TRUE(fd.IsOpen()); + FileFd input(__FILE__, FileFd::ReadOnly); + ASSERT_TRUE(input.IsOpen()); + ASSERT_NE(0, input.FileSize()); + ASSERT_TRUE(CopyFile(input, fd)); + ASSERT_TRUE(input.IsOpen()); + ASSERT_TRUE(fd.IsOpen()); + ASSERT_FALSE(fd.Failed()); + input.Close(); + fd.Close(); + ASSERT_TRUE(fd.Open(tempfile, FileFd::ReadOnly, FileFd::None)); + ASSERT_TRUE(fd.IsOpen()); + ASSERT_NE(0, fd.FileSize()); + ASSERT_FALSE(fd.Failed()); + unlink(tempfile); + free(tempfile); + char readback[2000]; + unsigned long long actual; + ASSERT_TRUE(fd.Read(readback, sizeof(readback)/sizeof(readback[0]), &actual)); + actual -= 4; + readback[actual] = '\0'; + sum = readback; +} +TEST(HashSumsTest, FileBased) +{ + std::string summation; - // test HashSumValue which doesn't calculate but just stores sums - { - std::string md5sum = argv[2]; - MD5SumValue md5(md5sum); - equals(md5.Value(), md5sum); - } - { - std::string sha1sum = argv[3]; - SHA1SumValue sha1(sha1sum); - equals(sha1.Value(), sha1sum); - } - { - std::string sha2sum = argv[4]; - SHA256SumValue sha2(sha2sum); - equals(sha2.Value(), sha2sum); - } - { - std::string sha2sum = argv[5]; - SHA512SumValue sha2(sha2sum); - equals(sha2.Value(), sha2sum); - } + getSummationString("md5sum", summation); + MD5SumValue md5(summation); + EXPECT_EQ(md5.Value(), summation); - // From FIPS PUB 180-1 - Test("","da39a3ee5e6b4b0d3255bfef95601890afd80709"); - Test("abc","a9993e364706816aba3e25717850c26c9cd0d89d"); - Test("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", - "84983e441c3bd26ebaae4aa1f95129e5e54670f1"); - TestMill("34aa973cd4c4daa4f61eeb2bdbad27316534016f"); + getSummationString("sha1sum", summation); + SHA1SumValue sha1(summation); + EXPECT_EQ(sha1.Value(), summation); - // MD5 tests from RFC 1321 - Test("","d41d8cd98f00b204e9800998ecf8427e"); - Test("a","0cc175b9c0f1b6a831c399e269772661"); - Test("abc","900150983cd24fb0d6963f7d28e17f72"); - Test("message digest","f96b697d7cb7938d525a2f31aaf161d0"); - Test("abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b"); - Test("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", - "d174ab98d277d9f5a5611c2c9f419d9f"); - Test("12345678901234567890123456789012345678901234567890123456789012345678901234567890", - "57edf4a22be3c955ac49da2e2107b67a"); + getSummationString("sha256sum", summation); + SHA256SumValue sha256(summation); + EXPECT_EQ(sha256.Value(), summation); - // SHA-256, From FIPS 180-2 - Test("", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); - Test("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", - "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"); + getSummationString("sha512sum", summation); + SHA512SumValue sha512(summation); + EXPECT_EQ(sha512.Value(), summation); + + FileFd fd(__FILE__, FileFd::ReadOnly); + EXPECT_TRUE(fd.IsOpen()); - // SHA-512 - Test("", - "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce" - "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"); - Test( - "abc", - "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" - "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"); - - - Test("The quick brown fox jumps over the lazy dog", "9e107d9d372bb6826bd81d3542a419d6"); - Test("The quick brown fox jumps over the lazy dog.", "e4d909c290d0fb1ca068ffaddf22cbd0"); - Test("The quick brown fox jumps over the lazy dog", "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"); - Test("The quick brown fox jumps over the lazy cog", "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3"); - Test("The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592"); - Test("The quick brown fox jumps over the lazy dog.", "ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c"); - Test("The quick brown fox jumps over the lazy dog", "07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb64" - "2e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6"); - Test("The quick brown fox jumps over the lazy dog.", "91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bb" - "c6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed"); - - FileFd fd(argv[1], FileFd::ReadOnly); - if (fd.IsOpen() == false) { - std::cerr << "Can't open file for 1. testing: " << argv[1] << std::endl; - return 1; - } { - Hashes hashes; - hashes.AddFD(fd.Fd()); - equals(argv[2], hashes.MD5.Result().Value()); - equals(argv[3], hashes.SHA1.Result().Value()); - equals(argv[4], hashes.SHA256.Result().Value()); - equals(argv[5], hashes.SHA512.Result().Value()); + Hashes hashes; + hashes.AddFD(fd.Fd()); + EXPECT_EQ(md5.Value(), hashes.MD5.Result().Value()); + EXPECT_EQ(sha1.Value(), hashes.SHA1.Result().Value()); + EXPECT_EQ(sha256.Value(), hashes.SHA256.Result().Value()); + EXPECT_EQ(sha512.Value(), hashes.SHA512.Result().Value()); } unsigned long sz = fd.FileSize(); fd.Seek(0); { - Hashes hashes; - hashes.AddFD(fd.Fd(), sz); - equals(argv[2], hashes.MD5.Result().Value()); - equals(argv[3], hashes.SHA1.Result().Value()); - equals(argv[4], hashes.SHA256.Result().Value()); - equals(argv[5], hashes.SHA512.Result().Value()); + Hashes hashes; + hashes.AddFD(fd.Fd(), sz); + EXPECT_EQ(md5.Value(), hashes.MD5.Result().Value()); + EXPECT_EQ(sha1.Value(), hashes.SHA1.Result().Value()); + EXPECT_EQ(sha256.Value(), hashes.SHA256.Result().Value()); + EXPECT_EQ(sha512.Value(), hashes.SHA512.Result().Value()); } fd.Seek(0); { - MD5Summation md5; - md5.AddFD(fd.Fd()); - equals(argv[2], md5.Result().Value()); + MD5Summation MD5; + MD5.AddFD(fd.Fd()); + EXPECT_EQ(md5.Value(), MD5.Result().Value()); } fd.Seek(0); { - SHA1Summation sha1; - sha1.AddFD(fd.Fd()); - equals(argv[3], sha1.Result().Value()); + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd()); + EXPECT_EQ(sha1.Value(), SHA1.Result().Value()); } fd.Seek(0); { - SHA256Summation sha2; - sha2.AddFD(fd.Fd()); - equals(argv[4], sha2.Result().Value()); + SHA256Summation SHA2; + SHA2.AddFD(fd.Fd()); + EXPECT_EQ(sha256.Value(), SHA2.Result().Value()); } fd.Seek(0); { - SHA512Summation sha2; - sha2.AddFD(fd.Fd()); - equals(argv[5], sha2.Result().Value()); + SHA512Summation SHA2; + SHA2.AddFD(fd.Fd()); + EXPECT_EQ(sha512.Value(), SHA2.Result().Value()); } fd.Close(); - // test HashString code { - HashString sha2("SHA256", argv[4]); - equals(sha2.VerifyFile(argv[1]), true); + HashString sha2("SHA256", sha256.Value()); + EXPECT_TRUE(sha2.VerifyFile(__FILE__)); } { - HashString sha2("SHA512", argv[5]); - equals(sha2.VerifyFile(argv[1]), true); + HashString sha2("SHA512", sha512.Value()); + EXPECT_TRUE(sha2.VerifyFile(__FILE__)); } { - HashString sha2("SHA256:" + std::string(argv[4])); - equals(sha2.VerifyFile(argv[1]), true); + HashString sha2("SHA256:" + sha256.Value()); + EXPECT_TRUE(sha2.VerifyFile(__FILE__)); } - - return 0; } - - diff --git a/test/libapt/indexcopytosourcelist_test.cc b/test/libapt/indexcopytosourcelist_test.cc index e04ab261b..bec87601f 100644 --- a/test/libapt/indexcopytosourcelist_test.cc +++ b/test/libapt/indexcopytosourcelist_test.cc @@ -7,30 +7,35 @@ #include #include -#include "assert.h" +#include class NoCopy : public IndexCopy { -public: - std::string ConvertToSourceList(std::string CD,std::string Path) { - IndexCopy::ConvertToSourceList(CD, Path); - return Path; - } - bool GetFile(std::string &/*Filename*/, unsigned long long &/*Size*/) { return false; } - bool RewriteEntry(FILE * /*Target*/, std::string /*File*/) { return false; } - const char *GetFileName() { return NULL; } - const char *Type() { return NULL; } + public: + std::string ConvertToSourceList(std::string CD,std::string Path) { + IndexCopy::ConvertToSourceList(CD, Path); + return Path; + } + bool GetFile(std::string &/*Filename*/, unsigned long long &/*Size*/) { return false; } + bool RewriteEntry(FILE * /*Target*/, std::string /*File*/) { return false; } + const char *GetFileName() { return NULL; } + const char *Type() { return NULL; } }; -int main() { +TEST(IndexCopyTest, ConvertToSourceList) +{ NoCopy ic; std::string const CD("/media/cdrom/"); char const * Releases[] = { "unstable", "wheezy-updates", NULL }; char const * Components[] = { "main", "non-free", NULL }; - for (char const ** Release = Releases; *Release != NULL; ++Release) { - for (char const ** Component = Components; *Component != NULL; ++Component) { + for (char const ** Release = Releases; *Release != NULL; ++Release) + { + SCOPED_TRACE(std::string("Release ") + *Release); + for (char const ** Component = Components; *Component != NULL; ++Component) + { + SCOPED_TRACE(std::string("Component ") + *Component); std::string const Path = std::string("dists/") + *Release + "/" + *Component + "/"; std::string const Binary = Path + "binary-"; std::string const A = Binary + "armel/"; @@ -41,49 +46,47 @@ int main() { _config->Clear("APT"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "mips"); _config->Set("APT::Architectures::", "mips"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "kfreebsd-mips"); _config->Set("APT::Architectures::", "kfreebsd-mips"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(A, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "armel"); _config->Set("APT::Architectures::", "armel"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(B, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); _config->Clear("APT"); _config->Set("APT::Architecture", "armel"); _config->Set("APT::Architectures::", "armel"); _config->Set("APT::Architectures::", "mips"); APT::Configuration::getArchitectures(false); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C); - equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + A)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + B)); + EXPECT_EQ(C, ic.ConvertToSourceList("/media/cdrom/", CD + C)); + EXPECT_EQ(List, ic.ConvertToSourceList("/media/cdrom/", CD + S)); } } - - return 0; } diff --git a/test/libapt/install_progress_test.cc b/test/libapt/install_progress_test.cc index be1a3411e..a70fc9261 100644 --- a/test/libapt/install_progress_test.cc +++ b/test/libapt/install_progress_test.cc @@ -4,27 +4,17 @@ #include -#include "assert.h" +#include -int main() { +TEST(InstallProgressTest, FancyGetTextProgressStr) +{ APT::Progress::PackageManagerFancy p; - std::string s; - s= p.GetTextProgressStr(0.5, 60); - equals(s.size(), 60); - - s= p.GetTextProgressStr(0.5, 4); - equals(s, "[#.]"); - - s= p.GetTextProgressStr(0.1, 12); - equals(s, "[#.........]"); - - s= p.GetTextProgressStr(0.9, 12); - equals(s, "[#########.]"); + EXPECT_EQ(60, p.GetTextProgressStr(0.5, 60).size()); + EXPECT_EQ("[#.]", p.GetTextProgressStr(0.5, 4)); + EXPECT_EQ("[#.........]", p.GetTextProgressStr(0.1, 12)); + EXPECT_EQ("[#########.]", p.GetTextProgressStr(0.9, 12)); // deal with incorrect inputs gracefully (or should we die instead?) - s= p.GetTextProgressStr(-999, 12); - equals(s, ""); - - return 0; + EXPECT_EQ("", p.GetTextProgressStr(-999, 12)); } diff --git a/test/libapt/makefile b/test/libapt/makefile index e03b5e6aa..69a13fd92 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -8,124 +8,66 @@ APT_DOMAIN=none include ../../buildlib/defaults.mak .PHONY: test -test: - ./run-tests - -# Program for testing getLanguageCode -PROGRAM = getLanguages${BASENAME} -SLIBS = -lapt-pkg -SOURCE = getlanguages_test.cc -include $(PROGRAM_H) - -PROGRAM = getArchitectures${BASENAME} -SLIBS = -lapt-pkg -SOURCE = getarchitectures_test.cc -include $(PROGRAM_H) - -# Program for testing ParseDepends -PROGRAM = ParseDepends${BASENAME} -SLIBS = -lapt-pkg -SOURCE = parsedepends_test.cc -include $(PROGRAM_H) - -# Program for testing GetListOfFilesInDir -PROGRAM = GetListOfFilesInDir${BASENAME} -SLIBS = -lapt-pkg -SOURCE = getlistoffilesindir_test.cc -include $(PROGRAM_H) - -# Program for testing CommandLine reconstruction -PROGRAM = Commandline${BASENAME} -SLIBS = -lapt-pkg -SOURCE = commandline_test.cc -include $(PROGRAM_H) - -# Program for testing CommandLine reconstruction -PROGRAM = CommandlineAsString${BASENAME} -SLIBS = -lapt-pkg -SOURCE = commandlineasstring_test.cc -include $(PROGRAM_H) - -# Program for testing debians version comparing -PROGRAM = CompareVersion${BASENAME} -SLIBS = -lapt-pkg -SOURCE = compareversion_test.cc -include $(PROGRAM_H) - -# test the GlobalError stack class -PROGRAM = GlobalError${BASENAME} -SLIBS = -lapt-pkg -SOURCE = globalerror_test.cc -include $(PROGRAM_H) - -# test the different Hashsum classes -PROGRAM = HashSums${BASENAME} -SLIBS = -lapt-pkg -SOURCE = hashsums_test.cc -include $(PROGRAM_H) - -# test the strutils stuff -PROGRAM = StrUtil${BASENAME} -SLIBS = -lapt-pkg -SOURCE = strutil_test.cc -include $(PROGRAM_H) - -# test the URI parsing stuff -PROGRAM = URI${BASENAME} -SLIBS = -lapt-pkg -SOURCE = uri_test.cc -include $(PROGRAM_H) - -# test the Configuration class -PROGRAM = Configuration${BASENAME} -SLIBS = -lapt-pkg -SOURCE = configuration_test.cc -include $(PROGRAM_H) - -# test cdroms core FindPackages -PROGRAM = CdromFindPackages${BASENAME} -SLIBS = -lapt-pkg -SOURCE = cdromfindpackages_test.cc -include $(PROGRAM_H) - -# test cdroms index reduction for source.list -PROGRAM = CdromReduceSourceList${BASENAME} -SLIBS = -lapt-pkg -SOURCE = cdromreducesourcelist_test.cc -include $(PROGRAM_H) - -# test cdroms FindMountPointForDevice for udev autodetection -PROGRAM = CdromFindMountPointForDevice${BASENAME} -SLIBS = -lapt-pkg -SOURCE = cdromfindmountpointfordevice_test.cc -include $(PROGRAM_H) - -# test IndexCopy::ConvertToSourceList -PROGRAM = IndexCopyToSourceList${BASENAME} -SLIBS = -lapt-pkg -SOURCE = indexcopytosourcelist_test.cc - -# test fileutls -PROGRAM = FileUtl${BASENAME} -SLIBS = -lapt-pkg -SOURCE = fileutl_test.cc -include $(PROGRAM_H) - -# test tagfile -PROGRAM = PkgTagFile${BASENAME} -SLIBS = -lapt-pkg -SOURCE = tagfile_test.cc -include $(PROGRAM_H) - -# test sourcelist -PROGRAM = SourceList${BASENAME} -SLIBS = -lapt-pkg -SOURCE = sourcelist_test.cc -include $(PROGRAM_H) - -# test install-progress -PROGRAM = InstallProgress${BASENAME} -SLIBS = -lapt-pkg -SOURCE = install_progress_test.cc -include $(PROGRAM_H) - +test: $(BIN)/gtest$(BASENAME) + MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=$(LIB) $(BIN)/gtest$(BASENAME) + +$(BIN)/gtest$(BASENAME): $(LIB)/gtest.a + +PROGRAM = gtest${BASENAME} +SLIBS = -lapt-pkg -pthread $(LIB)/gtest.a +LIB_MAKES = apt-pkg/makefile +SOURCE = gtest_runner.cc $(wildcard *-helpers.cc *_test.cc) +include $(PROGRAM_H) + + +MKDIRS += $(OBJ) $(LIB) +LOCAL=gtest +SOURCE=gtest-all +gtest-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(SOURCE))) + +# The rest of the file is based on the example found in +# /usr/share/doc/libgtest-dev/examples/make/Makefile +GTEST_DIR = /usr/src/gtest + +# Flags passed to the preprocessor. +# Set Google Test's header directory as a system directory, such that +# the compiler doesn't generate warnings in Google Test headers. +CPPFLAGS += -isystem $(GTEST_DIR)/include + +# Flags passed to the C++ compiler. +CXXFLAGS += -pthread +# disable some flags for gtest again +CXXFLAGS+= -Wno-missing-declarations +CXXFLAGS+= -Wno-missing-field-initializers +CXXFLAGS+= -Wno-suggest-attribute=pure -Wno-suggest-attribute=const -Wno-suggest-attribute=noreturn + +# All Google Test headers. Usually you shouldn't change this definition. +GTEST_HEADERS = /usr/include/gtest/*.h \ + /usr/include/gtest/internal/*.h + +# House-keeping build targets. +.PHONY: clean/gtest veryclean/gtest +clean: clean/gtest +clean/gtest: + rm -f $(gtest-OBJS) +veryclean: veryclean/gtest +veryclean/gtest: clean/gtest + rm -f $(LIB)/gtest.a + +# Usually you shouldn't tweak such internal variables, indicated by a +# trailing _. +GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS) + +# Builds gtest.a +# For simplicity and to avoid depending on Google Test's +# implementation details, the dependencies specified below are +# conservative and not optimized. This is fine as Google Test +# compiles fast and for ordinary users its source rarely changes. +$(gtest-OBJS): $(GTEST_SRCS_) + echo Compiling $@ + $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c -o $@ $(GTEST_DIR)/src/$(notdir $(basename $@)).cc + +$(LIB)/gtest.a: $(OBJ)/gtest-all.o + echo Building static library $@ + -rm -f $@ + $(AR) $(ARFLAGS) $@ $^ diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc index 5564e2bc0..1e0afb66c 100644 --- a/test/libapt/parsedepends_test.cc +++ b/test/libapt/parsedepends_test.cc @@ -7,230 +7,238 @@ #include #include -#include "assert.h" - -int main() { - std::string Package; - std::string Version; - unsigned int Op = 5; - unsigned int Null = 0; - bool StripMultiArch = true; - bool ParseArchFlags = false; - bool ParseRestrictionsList = false; - _config->Set("APT::Architecture","amd64"); - _config->Set("APT::Build-Profiles","stage1"); - - const char* Depends = - "debhelper:any (>= 5.0), " - "libdb-dev:any, " - "gettext:native (<= 0.12), " - "libcurl4-gnutls-dev:native | libcurl3-gnutls-dev (>> 7.15.5), " - "debiandoc-sgml, " - "apt (>= 0.7.25), " - "not-for-me [ !amd64 ], " - "only-for-me [ amd64 ], " - "any-for-me [ any ], " - "not-for-darwin [ !darwin-any ], " - "cpu-for-me [ any-amd64 ], " - "os-for-me [ linux-any ], " - "cpu-not-for-me [ any-armel ], " - "os-not-for-me [ kfreebsd-any ], " - "not-in-stage1 , " - "not-in-stage1-or-nodoc , " - "only-in-stage1 , " - "overlord-dev:any (= 7.15.3~) | overlord-dev:native (>> 7.15.5), " - ; - - unsigned short runner = 0; +#include + +static void parseDependency(bool const StripMultiArch, bool const ParseArchFlags, bool const ParseRestrictionsList) +{ + std::string Package; + std::string Version; + unsigned int Op = 5; + unsigned int Null = 0; + _config->Set("APT::Architecture","amd64"); + _config->Set("APT::Build-Profiles","stage1"); + + const char* Depends = + "debhelper:any (>= 5.0), " + "libdb-dev:any, " + "gettext:native (<= 0.12), " + "libcurl4-gnutls-dev:native | libcurl3-gnutls-dev (>> 7.15.5), " + "debiandoc-sgml, " + "apt (>= 0.7.25), " + "not-for-me [ !amd64 ], " + "only-for-me [ amd64 ], " + "any-for-me [ any ], " + "not-for-darwin [ !darwin-any ], " + "cpu-for-me [ any-amd64 ], " + "os-for-me [ linux-any ], " + "cpu-not-for-me [ any-armel ], " + "os-not-for-me [ kfreebsd-any ], " + "not-in-stage1 , " + "not-in-stage1-or-nodoc , " + "only-in-stage1 , " + "overlord-dev:any (= 7.15.3~) | overlord-dev:native (>> 7.15.5), " + ; + + // Stripping MultiArch is currently the default setting to not confuse + // non-MultiArch capable users of the library with "strange" extensions. + const char* Start = Depends; + const char* End = Depends + strlen(Depends); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("debhelper", Package); + else + EXPECT_EQ("debhelper:any", Package); + EXPECT_EQ("5.0", Version); + EXPECT_EQ(Null | pkgCache::Dep::GreaterEq, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("libdb-dev", Package); + else + EXPECT_EQ("libdb-dev:any", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("gettext", Package); + else + EXPECT_EQ("gettext:native", Package); + EXPECT_EQ("0.12", Version); + EXPECT_EQ(Null | pkgCache::Dep::LessEq, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("libcurl4-gnutls-dev", Package); + else + EXPECT_EQ("libcurl4-gnutls-dev:native", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::Or, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("libcurl3-gnutls-dev", Package); + EXPECT_EQ("7.15.5", Version); + EXPECT_EQ(Null | pkgCache::Dep::Greater, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("debiandoc-sgml", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("apt", Package); + EXPECT_EQ("0.7.25", Version); + EXPECT_EQ(Null | pkgCache::Dep::GreaterEq, Op); + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // not-for-me + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("only-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("any-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("not-for-darwin", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("cpu-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("os-for-me", Package); + EXPECT_EQ("", Version); + EXPECT_EQ(Null | pkgCache::Dep::NoOp, Op); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // cpu-not-for-me + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseArchFlags == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // os-not-for-me + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // not-in-stage1 + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("", Package); // not-in-stage1-or-in-nodoc + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + if (ParseRestrictionsList == true) { + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + EXPECT_EQ("only-in-stage1", Package); + } else { + EXPECT_EQ(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); + Start = strstr(Start, ","); + Start++; + } + + Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("overlord-dev", Package); + else + EXPECT_EQ("overlord-dev:any", Package); + EXPECT_EQ("7.15.3~", Version); + EXPECT_EQ(Null | pkgCache::Dep::Equals | pkgCache::Dep::Or, Op); + + debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); + if (StripMultiArch == true) + EXPECT_EQ("overlord-dev", Package); + else + EXPECT_EQ("overlord-dev:native", Package); + EXPECT_EQ("7.15.5", Version); + EXPECT_EQ(Null | pkgCache::Dep::Greater, Op); +} + +// FIXME: This testcase is too big/complex +TEST(ParseDependsTest, Everything) +{ + bool StripMultiArch = true; + bool ParseArchFlags = false; + bool ParseRestrictionsList = false; + unsigned short runner = 0; + test: -// std::clog << (StripMultiArch ? "NO-Multi" : "Multi") << " " << (ParseArchFlags ? "Flags" : "NO-Flags") << std::endl; - - // Stripping MultiArch is currently the default setting to not confuse - // non-MultiArch capable users of the library with "strange" extensions. - const char* Start = Depends; - const char* End = Depends + strlen(Depends); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("debhelper", Package); - else - equals("debhelper:any", Package); - equals("5.0", Version); - equals(Null | pkgCache::Dep::GreaterEq, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("libdb-dev", Package); - else - equals("libdb-dev:any", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("gettext", Package); - else - equals("gettext:native", Package); - equals("0.12", Version); - equals(Null | pkgCache::Dep::LessEq, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("libcurl4-gnutls-dev", Package); - else - equals("libcurl4-gnutls-dev:native", Package); - equals("", Version); - equals(Null | pkgCache::Dep::Or, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("libcurl3-gnutls-dev", Package); - equals("7.15.5", Version); - equals(Null | pkgCache::Dep::Greater, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("debiandoc-sgml", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("apt", Package); - equals("0.7.25", Version); - equals(Null | pkgCache::Dep::GreaterEq, Op); - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // not-for-me - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("only-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("any-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("not-for-darwin", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("cpu-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("os-for-me", Package); - equals("", Version); - equals(Null | pkgCache::Dep::NoOp, Op); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // cpu-not-for-me - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseArchFlags == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // os-not-for-me - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseRestrictionsList == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // not-in-stage1 - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseRestrictionsList == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("", Package); // not-in-stage1-or-in-nodoc - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - if (ParseRestrictionsList == true) { - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - equals("only-in-stage1", Package); - } else { - equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList)); - Start = strstr(Start, ","); - Start++; - } - - Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("overlord-dev", Package); - else - equals("overlord-dev:any", Package); - equals("7.15.3~", Version); - equals(Null | pkgCache::Dep::Equals | pkgCache::Dep::Or, Op); - - debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch, ParseRestrictionsList); - if (StripMultiArch == true) - equals("overlord-dev", Package); - else - equals("overlord-dev:native", Package); - equals("7.15.5", Version); - equals(Null | pkgCache::Dep::Greater, Op); - - if (StripMultiArch == false) - if (ParseArchFlags == false) - ParseRestrictionsList = !ParseRestrictionsList; - ParseArchFlags = !ParseArchFlags; - StripMultiArch = !StripMultiArch; - - runner++; - if (runner < 8) - goto test; // this is the prove: tests are really evil ;) - - return 0; + { + SCOPED_TRACE(std::string("StripMultiArch: ") + (StripMultiArch ? "true" : "false")); + SCOPED_TRACE(std::string("ParseArchFlags: ") + (ParseArchFlags ? "true" : "false")); + SCOPED_TRACE(std::string("ParseRestrictionsList: ") + (ParseRestrictionsList ? "true" : "false")); + parseDependency(StripMultiArch, ParseArchFlags, ParseRestrictionsList); + } + if (StripMultiArch == false) + if (ParseArchFlags == false) + ParseRestrictionsList = !ParseRestrictionsList; + ParseArchFlags = !ParseArchFlags; + StripMultiArch = !StripMultiArch; + + runner++; + if (runner < 8) + goto test; // this is the prove: tests are really evil ;) } diff --git a/test/libapt/run-tests b/test/libapt/run-tests deleted file mode 100755 index 574e51e90..000000000 --- a/test/libapt/run-tests +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/sh -set -e - -DIR=$(readlink -f $(dirname $0)) -if [ -z "$MAKELEVEL" ]; then - echo 'Compiling the tests …' - (cd $DIR && make) - echo 'Running all testcases …' -fi -LDPATH="$DIR/../../build/bin" -EXT="_libapt_test" -EXIT_CODE=0 - -# detect if output is on a terminal (colorful) or better not -if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then - COLHIGH='\033[1;35m' - COLRESET='\033[0m' - TESTOKAY='\033[1;32mOKAY\033[0m' - TESTFAIL='\033[1;31mFAILED\033[0m' -else - COLHIGH='' - COLRESET='' - TESTOKAY='OK' - TESTFAIL='###FAILED###' -fi - -for testapp in $(ls ${LDPATH}/*$EXT) -do - name=$(basename ${testapp}) - NAME="${COLHIGH}${name}${COLRESET}" - tmppath="" - - if [ $name = "GetListOfFilesInDir${EXT}" ]; then - # TODO: very-low: move env creation to the actual test-app - tmppath=$(mktemp -d) - touch "${tmppath}/anormalfile" \ - "${tmppath}/01yet-anothernormalfile" \ - "${tmppath}/anormalapt.conf" \ - "${tmppath}/01yet-anotherapt.conf" \ - "${tmppath}/anormalapt.list" \ - "${tmppath}/01yet-anotherapt.list" \ - "${tmppath}/wrongextension.wron" \ - "${tmppath}/wrong-extension.wron" \ - "${tmppath}/strangefile." \ - "${tmppath}/s.t.r.a.n.g.e.f.i.l.e" \ - "${tmppath}/.hiddenfile" \ - "${tmppath}/.hiddenfile.conf" \ - "${tmppath}/.hiddenfile.list" \ - "${tmppath}/multi..dot" \ - "${tmppath}/multi.dot.conf" \ - "${tmppath}/multi.dot.list" \ - "${tmppath}/disabledfile.disabled" \ - "${tmppath}/disabledfile.conf.disabled" \ - "${tmppath}/disabledfile.list.disabled" \ - "${tmppath}/invälid.conf" \ - "${tmppath}/invalíd" \ - "${tmppath}/01invalíd" - mkdir "${tmppath}/invaliddir" \ - "${tmppath}/directory.conf" \ - "${tmppath}/directory.list" \ - "${tmppath}/directory.wron" \ - "${tmppath}/directory.list.disabled" - ln -s "${tmppath}/anormalfile" "${tmppath}/linkedfile.list" - ln -s "${tmppath}/non-existing-file" "${tmppath}/brokenlink.list" - elif [ $name = "getLanguages${EXT}" ]; then - tmppath=$(mktemp -d) - touch "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tr" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-ast_DE" \ - "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tlh%5fDE" - elif [ $name = "HashSums${EXT}" ]; then - TMP="$(readlink -f "./${0}")" - tmppath="$TMP" - tmppath="${tmppath} $(md5sum $TMP | cut -d' ' -f 1)" - tmppath="${tmppath} $(sha1sum $TMP | cut -d' ' -f 1)" - tmppath="${tmppath} $(sha256sum $TMP | cut -d' ' -f 1)" - tmppath="${tmppath} $(sha512sum $TMP | cut -d' ' -f 1)" - elif [ $name = "CompareVersion${EXT}" ]; then - tmppath="${DIR}/versions.lst" - elif [ $name = "CdromFindPackages${EXT}" ]; then - tmppath=$(mktemp -d) - mkdir -p "${tmppath}/.disk" "${tmppath}/pool" \ - "${tmppath}/dists/stable/main/binary-i386" \ - "${tmppath}/dists/stable/main/source" \ - "${tmppath}/dists/stable/contrib/binary-amd64" \ - "${tmppath}/dists/stable/contrib/binary-all" \ - "${tmppath}/dists/unstable/main/binary-i386" \ - "${tmppath}/dists/unstable/main/i18n" \ - "${tmppath}/dists/unstable/main/source" \ - "${tmppath}/dists/broken/non-free/source" - touch "${tmppath}/dists/broken/.aptignr" \ - "${tmppath}/dists/stable/main/binary-i386/Packages" \ - "${tmppath}/dists/stable/main/binary-i386/Packages.bz2" \ - "${tmppath}/dists/stable/main/source/Sources.xz" \ - "${tmppath}/dists/stable/contrib/binary-amd64/Packages" \ - "${tmppath}/dists/stable/contrib/binary-amd64/Packages.gz" \ - "${tmppath}/dists/stable/contrib/binary-all/Packages" \ - "${tmppath}/dists/unstable/main/binary-i386/Packages.xz" \ - "${tmppath}/dists/unstable/main/binary-i386/Packages.lzma" \ - "${tmppath}/dists/unstable/main/i18n/Translation-en" \ - "${tmppath}/dists/unstable/main/i18n/Translation-de.bz2" \ - "${tmppath}/dists/unstable/main/source/Sources.xz" \ - "${tmppath}/dists/broken/non-free/source/Sources.gz" \ - "${tmppath}/dists/stable/Release.gpg" \ - "${tmppath}/dists/stable/Release" \ - "${tmppath}/dists/unstable/InRelease" \ - "${tmppath}/dists/broken/Release.gpg" - ln -s "${tmppath}/dists/unstable" "${tmppath}/dists/sid" - elif [ $name = "CdromFindMountPointForDevice${EXT}" ]; then - tmppath=$(mktemp) - echo 'rootfs / rootfs rw 0 0 -sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 -sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0 -/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0 -/dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0 -tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0' > $tmppath - elif [ $name = "FileUtl${EXT}" ]; then - tmppath="$(mktemp -d)" - fi - - echo -n "Testing with ${NAME} " - if MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} ; then - echo "$TESTOKAY" - else - echo "$TESTFAIL" - EXIT_CODE=1 - fi - - if [ -n "$tmppath" -a -d "$tmppath" ]; then - rm -rf "$tmppath" - fi -done -exit $EXIT_CODE diff --git a/test/libapt/sourcelist_test.cc b/test/libapt/sourcelist_test.cc index 71aa54f1e..eb2d76c43 100644 --- a/test/libapt/sourcelist_test.cc +++ b/test/libapt/sourcelist_test.cc @@ -1,6 +1,5 @@ #include -#include #include #include @@ -9,26 +8,20 @@ #include #include -#include "assert.h" +#include -char *tempfile = NULL; -int tempfile_fd = -1; +#include "file-helpers.h" -static void remove_tmpfile(void) -{ - if (tempfile_fd > 0) - close(tempfile_fd); - if (tempfile != NULL) { - unlink(tempfile); - free(tempfile); - } -} +class SourceList : public pkgSourceList { + public: + using pkgSourceList::ParseFileDeb822; +}; -int main() +TEST(SourceListTest,ParseFileDeb822) { - _config->Set("APT::Sources::Use-Deb822", true); - - const char contents[] = "" + FileFd fd; + char * tempfile; + createTemporaryFile("parsefiledeb822", fd, &tempfile, "Types: deb\n" "URIs: http://ftp.debian.org/debian\n" "Suites: stable\n" @@ -39,22 +32,12 @@ int main() "Types: deb\n" "URIs: http://ftp.debian.org/debian\n" "Suites: unstable\n" - "Sections: main non-free\n" - ; - - FileFd fd; - atexit(remove_tmpfile); - tempfile = strdup("apt-test.XXXXXXXX"); - tempfile_fd = mkstemp(tempfile); - - /* (Re-)Open (as FileFd), write and seek to start of the temp file */ - equals(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite), true); - equals(fd.Write(contents, strlen(contents)), true); - equals(fd.Seek(0), true); + "Sections: main non-free\n"); + fd.Close(); - pkgSourceList sources(tempfile); - equals(sources.size(), 2); + SourceList sources; + EXPECT_EQ(2, sources.ParseFileDeb822(tempfile)); + EXPECT_EQ(2, sources.size()); - /* clean up handled by atexit handler, so just return here */ - return 0; + unlink(tempfile); } diff --git a/test/libapt/strutil_test.cc b/test/libapt/strutil_test.cc index 618f4daba..bc004fd66 100644 --- a/test/libapt/strutil_test.cc +++ b/test/libapt/strutil_test.cc @@ -1,96 +1,72 @@ #include - #include - #include #include -#include "assert.h" +#include -int main() +TEST(StrUtilTest,DeEscapeString) { - std::string input, output, expected; - - // no input - input = "foobar"; - expected = "foobar"; - output = DeEscapeString(input); - equals(output, expected); - + // nothing special + EXPECT_EQ("", DeEscapeString("")); + EXPECT_EQ("foobar", DeEscapeString("foobar")); // hex and octal - input = "foo\\040bar\\x0abaz"; - expected = "foo bar\nbaz"; - output = DeEscapeString(input); - equals(output, expected); - - // at the end - input = "foo\\040"; - expected = "foo "; - output = DeEscapeString(input); - equals(output, expected); - - // double escape - input = "foo\\\\ x"; - expected = "foo\\ x"; - output = DeEscapeString(input); - equals(output, expected); - - // double escape at the end - input = "\\\\foo\\\\"; - expected = "\\foo\\"; - output = DeEscapeString(input); - equals(output, expected); - - // the string that we actually need it for - input = "/media/Ubuntu\\04011.04\\040amd64"; - expected = "/media/Ubuntu 11.04 amd64"; - output = DeEscapeString(input); - equals(output, expected); + EXPECT_EQ("foo bar\nbaz", DeEscapeString("foo\\040bar\\x0abaz")); + EXPECT_EQ("foo ", DeEscapeString("foo\\040")); + EXPECT_EQ("\nbaz", DeEscapeString("\\x0abaz")); + EXPECT_EQ("/media/Ubuntu 11.04 amd64", DeEscapeString("/media/Ubuntu\\04011.04\\040amd64")); + // double slashes + EXPECT_EQ("foo\\ x", DeEscapeString("foo\\\\ x")); + EXPECT_EQ("\\foo\\", DeEscapeString("\\\\foo\\\\")); +} +TEST(StrUtilTest,StringSplitBasic) +{ + std::vector result = StringSplit("", ""); + EXPECT_EQ(result.size(), 0); - // Split - input = "status: libnet1:amd64: unpacked"; - std::vector result = StringSplit(input, ": "); - equals(result[0], "status"); - equals(result[1], "libnet1:amd64"); - equals(result[2], "unpacked"); - equals(result.size(), 3); + result = StringSplit("abc", ""); + EXPECT_EQ(result.size(), 0); - input = "status: libnet1:amd64: unpacked"; - result = StringSplit(input, "xxx"); - equals(result[0], input); - equals(result.size(), 1); + result = StringSplit("", "abc"); + EXPECT_EQ(result.size(), 1); - input = "status: libnet1:amd64: unpacked"; - result = StringSplit(input, ""); - equals(result.size(), 0); + result = StringSplit("abc", "b"); + ASSERT_EQ(result.size(), 2); + EXPECT_EQ(result[0], "a"); + EXPECT_EQ(result[1], "c"); - input = "x:y:z"; - result = StringSplit(input, ":", 2); - equals(result.size(), 2); - equals(result[0], "x"); - equals(result[1], "y:z"); + result = StringSplit("abc", "abc"); + ASSERT_EQ(result.size(), 2); + EXPECT_EQ(result[0], ""); + EXPECT_EQ(result[1], ""); +} +TEST(StrUtilTest,StringSplitDpkgStatus) +{ + std::string const input = "status: libnet1:amd64: unpacked"; + std::vector result = StringSplit(input, "xxx"); + ASSERT_EQ(result.size(), 1); + EXPECT_EQ(result[0], input); - input = "abc"; result = StringSplit(input, ""); - equals(result.size(), 0); - - // endswith - bool b; - input = "abcd"; - b = APT::String::Endswith(input, "d"); - equals(b, true); - - b = APT::String::Endswith(input, "cd"); - equals(b, true); - - b = APT::String::Endswith(input, "abcd"); - equals(b, true); - - b = APT::String::Endswith(input, "x"); - equals(b, false); - - b = APT::String::Endswith(input, "abcndefg"); - equals(b, false); - - return 0; + EXPECT_EQ(result.size(), 0); + + result = StringSplit(input, ": "); + ASSERT_EQ(result.size(), 3); + EXPECT_EQ(result[0], "status"); + EXPECT_EQ(result[1], "libnet1:amd64"); + EXPECT_EQ(result[2], "unpacked"); + + result = StringSplit("x:y:z", ":", 2); + ASSERT_EQ(result.size(), 2); + EXPECT_EQ(result[0], "x"); + EXPECT_EQ(result[1], "y:z"); +} +TEST(StrUtilTest,EndsWith) +{ + using APT::String::Endswith; + EXPECT_TRUE(Endswith("abcd", "d")); + EXPECT_TRUE(Endswith("abcd", "cd")); + EXPECT_TRUE(Endswith("abcd", "abcd")); + EXPECT_FALSE(Endswith("abcd", "x")); + EXPECT_FALSE(Endswith("abcd", "abcndefg")); } diff --git a/test/libapt/tagfile_test.cc b/test/libapt/tagfile_test.cc index aaf46e3e9..1bac75b55 100644 --- a/test/libapt/tagfile_test.cc +++ b/test/libapt/tagfile_test.cc @@ -8,55 +8,29 @@ #include #include -#include "assert.h" +#include -char *tempfile = NULL; -int tempfile_fd = -1; +#include "file-helpers.h" -static void remove_tmpfile(void) -{ - if (tempfile_fd > 0) - close(tempfile_fd); - if (tempfile != NULL) { - unlink(tempfile); - free(tempfile); - } -} - -int main() +TEST(TagFileTest,SingleField) { FileFd fd; - const char contents[] = "FieldA-12345678: the value of the field"; - atexit(remove_tmpfile); - tempfile = strdup("apt-test.XXXXXXXX"); - tempfile_fd = mkstemp(tempfile); - - /* (Re-)Open (as FileFd), write and seek to start of the temp file */ - equals(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite), true); - equals(fd.Write(contents, strlen(contents)), true); - equals(fd.Seek(0), true); + createTemporaryFile("singlefield", fd, NULL, "FieldA-12345678: the value of the field"); pkgTagFile tfile(&fd); pkgTagSection section; - equals(tfile.Step(section), true); - - /* It has one field */ - equals(section.Count(), 1); - - /* ... and it is called FieldA-12345678 */ - equals(section.Exists("FieldA-12345678"), true); - - /* its value is correct */ - equals(section.FindS("FieldA-12345678"), std::string("the value of the field")); - /* A non-existent field has an empty string as value */ - equals(section.FindS("FieldB-12345678"), std::string()); - - /* ... and Exists does not lie about missing fields... */ - equalsNot(section.Exists("FieldB-12345678"), true); - - /* There is only one section in this tag file */ - equals(tfile.Step(section), false); - - /* clean up handled by atexit handler, so just return here */ - return 0; + ASSERT_TRUE(tfile.Step(section)); + + // It has one field + EXPECT_EQ(1, section.Count()); + // ... and it is called FieldA-12345678 + EXPECT_TRUE(section.Exists("FieldA-12345678")); + // its value is correct + EXPECT_EQ("the value of the field", section.FindS("FieldA-12345678")); + // A non-existent field has an empty string as value + EXPECT_EQ("", section.FindS("FieldB-12345678")); + // ... and Exists does not lie about missing fields... + EXPECT_FALSE(section.Exists("FieldB-12345678")); + // There is only one section in this tag file + EXPECT_FALSE(tfile.Step(section)); } diff --git a/test/libapt/uri_test.cc b/test/libapt/uri_test.cc index 6559f1390..1662f51f0 100644 --- a/test/libapt/uri_test.cc +++ b/test/libapt/uri_test.cc @@ -1,124 +1,119 @@ #include - #include - #include +#include -#include "assert.h" - -int main() { - // Basic stuff - { - URI U("http://www.debian.org:90/temp/test"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(90, U.Port); - equals("www.debian.org", U.Host); - equals("/temp/test", U.Path); - } { - URI U("http://jgg:foo@ualberta.ca/blah"); - equals("http", U.Access); - equals("jgg", U.User); - equals("foo", U.Password); - equals(0, U.Port); - equals("ualberta.ca", U.Host); - equals("/blah", U.Path); - } { - URI U("file:/usr/bin/foo"); - equals("file", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("", U.Host); - equals("/usr/bin/foo", U.Path); - } { - URI U("cdrom:Moo Cow Rom:/debian"); - equals("cdrom", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("Moo Cow Rom", U.Host); - equals("/debian", U.Path); - } { - URI U("gzip:./bar/cow"); - equals("gzip", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals(".", U.Host); - equals("/bar/cow", U.Path); - } { - URI U("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb"); - equals("ftp", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("ftp.fr.debian.org", U.Host); - equals("/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb", U.Path); - } - - // RFC 2732 stuff - { - URI U("http://[1080::8:800:200C:417A]/foo"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("1080::8:800:200C:417A", U.Host); - equals("/foo", U.Path); - } { - URI U("http://[::FFFF:129.144.52.38]:80/index.html"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(80, U.Port); - equals("::FFFF:129.144.52.38", U.Host); - equals("/index.html", U.Path); - } { - URI U("http://[::FFFF:129.144.52.38:]:80/index.html"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(80, U.Port); - equals("::FFFF:129.144.52.38:", U.Host); - equals("/index.html", U.Path); - } { - URI U("http://[::FFFF:129.144.52.38:]/index.html"); - equals("http", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("::FFFF:129.144.52.38:", U.Host); - equals("/index.html", U.Path); - } - /* My Evil Corruption of RFC 2732 to handle CDROM names! Fun for - the whole family! */ - { - URI U("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/"); - equals("cdrom", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("The Debian 1.2 disk, 1/2 R1:6", U.Host); - equals("/debian/", U.Path); - } { - URI U("cdrom:Foo Bar Cow/debian/"); - equals("cdrom", U.Access); - equals("", U.User); - equals("", U.Password); - equals(0, U.Port); - equals("Foo Bar Cow", U.Host); - equals("/debian/", U.Path); - } - - // Percent-encoding. - { - URI U("ftp://foo:b%40r@example.org"); - equals("foo", U.User); - equals("b@r", U.Password); - equals("ftp://foo:b%40r@example.org/", (std::string) U); - } - - return 0; +TEST(URITest, BasicHTTP) +{ + URI U("http://www.debian.org:90/temp/test"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(90, U.Port); + EXPECT_EQ("www.debian.org", U.Host); + EXPECT_EQ("/temp/test", U.Path); + // Login data + U = URI("http://jgg:foo@ualberta.ca/blah"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("jgg", U.User); + EXPECT_EQ("foo", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("ualberta.ca", U.Host); + EXPECT_EQ("/blah", U.Path); +} +TEST(URITest, SingeSlashFile) +{ + URI U("file:/usr/bin/foo"); + EXPECT_EQ("file", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("", U.Host); + EXPECT_EQ("/usr/bin/foo", U.Path); +} +TEST(URITest, BasicCDROM) +{ + URI U("cdrom:Moo Cow Rom:/debian"); + EXPECT_EQ("cdrom", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("Moo Cow Rom", U.Host); + EXPECT_EQ("/debian", U.Path); +} +TEST(URITest, RelativeGzip) +{ + URI U("gzip:./bar/cow"); + EXPECT_EQ("gzip", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ(".", U.Host); + EXPECT_EQ("/bar/cow", U.Path); +} +TEST(URITest, NoSlashFTP) +{ + URI U("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb"); + EXPECT_EQ("ftp", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("ftp.fr.debian.org", U.Host); + EXPECT_EQ("/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb", U.Path); +} +TEST(URITest, RFC2732) +{ + URI U("http://[1080::8:800:200C:417A]/foo"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("1080::8:800:200C:417A", U.Host); + EXPECT_EQ("/foo", U.Path); + // with port + U = URI("http://[::FFFF:129.144.52.38]:80/index.html"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(80, U.Port); + EXPECT_EQ("::FFFF:129.144.52.38", U.Host); + EXPECT_EQ("/index.html", U.Path); + // extra colon + U = URI("http://[::FFFF:129.144.52.38:]:80/index.html"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(80, U.Port); + EXPECT_EQ("::FFFF:129.144.52.38:", U.Host); + EXPECT_EQ("/index.html", U.Path); + // extra colon port + U = URI("http://[::FFFF:129.144.52.38:]/index.html"); + EXPECT_EQ("http", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("::FFFF:129.144.52.38:", U.Host); + EXPECT_EQ("/index.html", U.Path); + // My Evil Corruption of RFC 2732 to handle CDROM names! + // Fun for the whole family! */ + U = URI("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/"); + EXPECT_EQ("cdrom", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("The Debian 1.2 disk, 1/2 R1:6", U.Host); + EXPECT_EQ("/debian/", U.Path); + // no brackets + U = URI("cdrom:Foo Bar Cow/debian/"); + EXPECT_EQ("cdrom", U.Access); + EXPECT_EQ("", U.User); + EXPECT_EQ("", U.Password); + EXPECT_EQ(0, U.Port); + EXPECT_EQ("Foo Bar Cow", U.Host); + EXPECT_EQ("/debian/", U.Path); + // percent encoded + U = URI("ftp://foo:b%40r@example.org"); + EXPECT_EQ("foo", U.User); + EXPECT_EQ("b@r", U.Password); + EXPECT_EQ("ftp://foo:b%40r@example.org/", (std::string) U); } diff --git a/test/libapt/versions.lst b/test/libapt/versions.lst deleted file mode 100644 index 8dd8ebdc9..000000000 --- a/test/libapt/versions.lst +++ /dev/null @@ -1,106 +0,0 @@ -# List of -# ver1 ver2 ret -# Of versions worth testing -# 1 means that ver1 > ver2 -# -1 means that ver1 < ver2 -# 0 means that ver1 = ver2 -7.6p2-4 7.6-0 1 -1.0.3-3 1.0-1 1 -1.3 1.2.2-2 1 -1.3 1.2.2 1 - -# Important attributes -# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number) -#- . -1 -#p - -1 -#a - -1 -#z - -1 -#a . -1 -#z . -1 - -# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number) -#III-alpha9.8 III-alpha9.8-1.5 -1 - -# Epochs -1:0.4 10.3 1 -1:1.25-4 1:1.25-8 -1 -0:1.18.36 1.18.36 0 - -# native version -1.18.36 1.18.35 1 -0:1.18.36 1.18.35 1 - -# Funky, but allowed, characters in upstream version -9:1.18.36:5.4-20 10:0.5.1-22 -1 -9:1.18.36:5.4-20 9:1.18.36:5.5-1 -1 -9:1.18.36:5.4-20 9:1.18.37:4.3-22 -1 -1.18.36-0.17.35-18 1.18.36-19 1 - -# Junk -1:1.2.13-3 1:1.2.13-3.1 -1 -2.0.7pre1-4 2.0.7r-1 -1 - -# Test some properties of text strings -0-pre 0-pre 0 -0-pre 0-pree -1 - -1.1.6r2-2 1.1.6r-1 1 -2.6b2-1 2.6b-2 1 - -98.1p5-1 98.1-pre2-b6-2 -1 -0.4a6-2 0.4-1 1 - -1:3.0.5-2 1:3.0.5.1 -1 - -# #205960 -3.0~rc1-1 3.0-1 -1 - -# #573592 - debian policy 5.6.12 -1.0 1.0-0 0 -0.2 1.0-0 -1 -1.0 1.0-0+b1 -1 -1.0 1.0-0~ 1 - -# if a version includes a dash -# it should be the debrev dash - policy says so… -0:0-0-0 0-0 1 - -# do we like strange versions? Yes we like strange versions… -0 0 0 -0 00 0 - -# "steal" the testcases from cupt -1.2.3 1.2.3 0 # identical -4.4.3-2 4.4.3-2 0 # identical -1:2ab:5 1:2ab:5 0 # this is correct... -7:1-a:b-5 7:1-a:b-5 0 # and this -57:1.2.3abYZ+~-4-5 57:1.2.3abYZ+~-4-5 0 # and those too -1.2.3 0:1.2.3 0 # zero epoch -1.2.3 1.2.3-0 0 # zero revision -009 9 0 # zeroes... -009ab5 9ab5 0 # there as well -1.2.3 1.2.3-1 -1 # added non-zero revision -1.2.3 1.2.4 -1 # just bigger -1.2.4 1.2.3 1 # order doesn't matter -1.2.24 1.2.3 1 # bigger, eh? -0.10.0 0.8.7 1 # bigger, eh? -3.2 2.3 1 # major number rocks -1.3.2a 1.3.2 1 # letters rock -0.5.0~git 0.5.0~git2 -1 # numbers rock -2a 21 -1 # but not in all places -1.3.2a 1.3.2b -1 # but there is another letter -1:1.2.3 1.2.4 1 # epoch rocks -1:1.2.3 1:1.2.4 -1 # bigger anyway -1.2a+~bCd3 1.2a++ -1 # tilde doesn't rock -1.2a+~bCd3 1.2a+~ 1 # but first is longer! -5:2 304-2 1 # epoch rocks -5:2 304:2 -1 # so big epoch? -25:2 3:2 1 # 25 > 3, obviously -1:2:123 1:12:3 -1 # 12 > 2 -1.2-5 1.2-3-5 -1 # 1.2 < 1.2-3 -5.10.0 5.005 1 # preceding zeroes don't matters -3a9.8 3.10.2 -1 # letters are before all letter symbols -3a9.8 3~10 1 # but after the tilde -1.4+OOo3.0.0~ 1.4+OOo3.0.0-4 -1 # another tilde check -2.4.7-1 2.4.7-z -1 # revision comparing -1.002-1+b2 1.00 1 # whatever... -- cgit v1.2.3-70-g09d2 From d99854cac4065bc7b337815fb2116269d58dab73 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 21 Apr 2014 13:26:55 +0200 Subject: handle pkgnames shorter than modifiers The bugreport highlights the problem with an empty package name. We fix this by 'ignoring' these so that it behaves just like "apt-get install". The deeper problem is that modifier strings can be longer than a package name in which case the comparison doesn't make sense, so don't compare then. Was not noticed so far as all modifiers are of length 1, so the only package name shorter than this is in fact the empty package name. Closes: 744940 --- apt-pkg/cacheset.cc | 6 ++++-- test/integration/test-ubuntu-bug-365611-long-package-names | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/apt-pkg/cacheset.cc b/apt-pkg/cacheset.cc index d453a2bfb..2ed6a96da 100644 --- a/apt-pkg/cacheset.cc +++ b/apt-pkg/cacheset.cc @@ -391,6 +391,8 @@ bool VersionContainerInterface::FromModifierCommandLine(unsigned short &modID, CacheSetHelper &helper) { Version select = NEWEST; std::string str = cmdline; + if (unlikely(str.empty() == true)) + return false; bool modifierPresent = false; unsigned short fallback = modID; for (std::list::const_iterator mod = mods.begin(); @@ -400,8 +402,8 @@ bool VersionContainerInterface::FromModifierCommandLine(unsigned short &modID, size_t const alength = strlen(mod->Alias); switch(mod->Pos) { case Modifier::POSTFIX: - if (str.compare(str.length() - alength, alength, - mod->Alias, 0, alength) != 0) + if (str.length() <= alength || + str.compare(str.length() - alength, alength, mod->Alias, 0, alength) != 0) continue; str.erase(str.length() - alength); modID = mod->ID; diff --git a/test/integration/test-ubuntu-bug-365611-long-package-names b/test/integration/test-ubuntu-bug-365611-long-package-names index 894c8dc97..f22986e21 100755 --- a/test/integration/test-ubuntu-bug-365611-long-package-names +++ b/test/integration/test-ubuntu-bug-365611-long-package-names @@ -4,8 +4,12 @@ set -e TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment -configarchitecture "i386" +configarchitecture 'i386' setupaptarchive aptget install $(for i in $(seq 0 1000); do echo -n 'a'; done) 2> longpackagename.log > /dev/null || true testfileequal 'longpackagename.log' "E: Unable to locate package $(for i in $(seq 0 1000); do echo -n 'a'; done)" + +# … and the opposite of long: +aptget install "" -s >longpackagename.log 2>&1 || true +testfileequal 'longpackagename.log' "$(aptget install -s)" -- cgit v1.2.3-70-g09d2 From a11f6c973bc0dc226d8953e3edb6333d526c3143 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 30 Apr 2014 17:04:29 +0200 Subject: Only do openpty() if both stdin/stdout are terminals Closes: 746434 --- apt-pkg/deb/dpkgpm.cc | 11 ++++++----- test/integration/test-failing-maintainer-scripts | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index c52b83c6e..e410594df 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1053,14 +1053,15 @@ void pkgDPkgPM::StartPtyMagic() } // setup the pty and stuff - struct winsize win; + struct winsize win; - // if tcgetattr does not return zero there was a error - // and we do not do any pty magic + // if tcgetattr for both stdin/stdout returns 0 (no error) + // we do the pty magic _error->PushToStack(); - if (tcgetattr(STDOUT_FILENO, &d->tt) == 0) + if (tcgetattr(STDIN_FILENO, &d->tt) == 0 && + tcgetattr(STDOUT_FILENO, &d->tt) == 0) { - if (ioctl(1, TIOCGWINSZ, (char *)&win) < 0) + if (ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&win) < 0) { _error->Errno("ioctl", _("ioctl(TIOCGWINSZ) failed")); } else if (openpty(&d->master, &d->slave, NULL, &d->tt, &win) < 0) diff --git a/test/integration/test-failing-maintainer-scripts b/test/integration/test-failing-maintainer-scripts index cb82ebc7a..3dd7d643e 100755 --- a/test/integration/test-failing-maintainer-scripts +++ b/test/integration/test-failing-maintainer-scripts @@ -86,7 +86,7 @@ testmyfailure() { testfailure "$@" -o APT::Status-Fd=3 msgtest 'Test for failure message of maintainerscript in' 'console log' local TEST='rootdir/tmp/testfailure.output' - if grep -q 'exit status 29$' "$TEST"; then + if grep -q 'exit status 29' "$TEST"; then msgpass else cat $TEST -- cgit v1.2.3-70-g09d2