From 08fa1cab614ec50d2b1de807439195c71d1530cf Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 18:54:27 +0100 Subject: apply a very simple speed-up in case we try to set the candidate version of a package to the version which is already the candidate (apt-get does that for all packages it installs for simplicity) --- apt-pkg/depcache.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 23abc76c1..58e7ebf07 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1510,11 +1510,15 @@ void pkgDepCache::SetReInstall(PkgIterator const &Pkg,bool To) /* */ void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo) { - ActionGroup group(*this); pkgCache::PkgIterator Pkg = TargetVer.ParentPkg(); StateCache &P = PkgState[Pkg->ID]; + if (P.CandidateVer == TargetVer) + return; + + ActionGroup group(*this); + RemoveSizes(Pkg); RemoveStates(Pkg); @@ -1549,7 +1553,10 @@ void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo) } } } - + /*}}}*/ +// DepCache::MarkAuto - set the Auto flag for a package /*{{{*/ +// --------------------------------------------------------------------- +/* */ void pkgDepCache::MarkAuto(const PkgIterator &Pkg, bool Auto) { StateCache &state = PkgState[Pkg->ID]; -- cgit v1.2.3 From 9b78cda6873104b80ffdbc8b5d3965575ce0a31d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 18:55:46 +0100 Subject: add a way to add packages to generate a dists style environment without actually building all these packages --- test/integration/framework | 70 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 21 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index 2422f0886..5d849bda2 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -307,6 +307,37 @@ buildaptftparchivedirectorystructure() { done } +insertpackage() { + local RELEASE="$1" + local NAME="$2" + local ARCH="$3" + local VERSION="$4" + local DEPENDENCIES="$5" + local ARCHS="$ARCH" + if [ "$ARCHS" = "all" ]; then + ARCHS="$(aptconfig dump | grep APT::Architecture | cut -d'"' -f 2 | sed '/^$/ d' | sort | uniq | tr '\n' ' ')" + fi + for BUILDARCH in $ARCHS; do + local PPATH="aptarchive/dists/${RELEASE}/main/binary-${BUILDARCH}" + mkdir -p $PPATH aptarchive/dists/${RELEASE}/main/source + touch aptarchive/dists/${RELEASE}/main/source/Sources + local FILE="${PPATH}/Packages" + echo "Package: $NAME +Priority: optional +Section: other +Installed-Size: 23356 +Maintainer: Joe Sixpack +Architecture: $ARCH +Version: $VERSION" >> $FILE + test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> $FILE + echo "Description: an autogenerated dummy ${NAME}=${VERSION}/${RELEASE} + If you find such a package installed on your system, + YOU did something horribly wrong! They are autogenerated + und used only by testcases for APT and surf no other propose… +" >> $FILE + done +} + buildaptarchivefromincoming() { msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on incoming packages…" cd aptarchive @@ -315,36 +346,33 @@ buildaptarchivefromincoming() { [ -e dists ] || buildaptftparchivedirectorystructure msgninfo "\tGenerate Packages, Sources and Contents files… " aptftparchive -qq generate ftparchive.conf - msgdone "info" - msgninfo "\tGenerate Release files… " - for dir in $(find ./dists -mindepth 1 -maxdepth 1 -type d); do - aptftparchive -qq release $dir -o APT::FTPArchive::Release::Codename="$(echo "$dir" | cut -d'/' -f 3)" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference - done cd - > /dev/null msgdone "info" + generatereleasefiles } buildaptarchivefromfiles() { msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on prebuild files…" - cd aptarchive - if [ -f Packages ]; then - msgninfo "\tPackages file… " - cat Packages | gzip > Packages.gz - cat Packages | bzip2 > Packages.bz2 - cat Packages | lzma > Packages.lzma - msgdone "info" - fi - if [ -f Sources ]; then - msgninfo "\tSources file… " - cat Sources | gzip > Sources.gz - cat Sources | bzip2 > Sources.bz2 - cat Sources | lzma > Sources.lzma + find aptarchive -name 'Packages' -o -name 'Sources' | while read line; do + msgninfo "\t${line} file… " + cat ${line} | gzip > ${line}.gz + cat ${line} | bzip2 > ${line}.bz2 + cat ${line} | lzma > ${line}.lzma msgdone "info" + done + generatereleasefiles +} + +generatereleasefiles() { + msgninfo "\tGenerate Release files… " + if [ -e aptarchive/dists ]; then + for dir in $(find ./aptarchive/dists -mindepth 1 -maxdepth 1 -type d); do + aptftparchive -qq release $dir -o APT::FTPArchive::Release::Codename="$(echo "$dir" | cut -d'/' -f 4)" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference + done + else + aptftparchive -qq release ./aptarchive | sed -e '/0 Release$/ d' > aptarchive/Release # remove the self reference fi - msgninfo "\tRelease file… " - aptftparchive -qq release . | sed -e '/0 Release$/ d' > Release # remove the self reference msgdone "info" - cd .. } setupdistsaptarchive() { -- cgit v1.2.3 From 35faae110d5b0265fa2f8ea7f4e092b736161397 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 18:56:36 +0100 Subject: if the codename is "experimental" add NotAutomatic:yes by default --- test/integration/framework | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/integration/framework b/test/integration/framework index 5d849bda2..63962858a 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -367,7 +367,12 @@ generatereleasefiles() { msgninfo "\tGenerate Release files… " if [ -e aptarchive/dists ]; then for dir in $(find ./aptarchive/dists -mindepth 1 -maxdepth 1 -type d); do - aptftparchive -qq release $dir -o APT::FTPArchive::Release::Codename="$(echo "$dir" | cut -d'/' -f 4)" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference + local CODENAME="$(echo "$dir" | cut -d'/' -f 4)" + aptftparchive -qq release $dir -o APT::FTPArchive::Release::Codename="${CODENAME}" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference + if [ "$CODENAME" = "experimental" ]; then + sed -i '/^Date: / a\ +NotAutomatic: yes' $dir/Release + fi done else aptftparchive -qq release ./aptarchive | sed -e '/0 Release$/ d' > aptarchive/Release # remove the self reference -- cgit v1.2.3 From 2f6557b96c08c1adebf3b1e292ae636a27f624d0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 18:57:42 +0100 Subject: add the possibility to disable only the progress reporting stuff as the quiet level 1 does this, but also disables other stuff we might want to test against in a testcase --- apt-pkg/contrib/progress.cc | 2 +- doc/examples/configure-index | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc index cffdddc4f..45e81edcb 100644 --- a/apt-pkg/contrib/progress.cc +++ b/apt-pkg/contrib/progress.cc @@ -135,7 +135,7 @@ bool OpProgress::CheckChange(float Interval) OpTextProgress::OpTextProgress(Configuration &Config) : NoUpdate(false), NoDisplay(false), LastLen(0) { - if (Config.FindI("quiet",0) >= 1) + if (Config.FindI("quiet",0) >= 1 || Config.FindB("quiet::NoUpdate", false) == true) NoUpdate = true; if (Config.FindI("quiet",0) >= 2) NoDisplay = true; diff --git a/doc/examples/configure-index b/doc/examples/configure-index index c4c2acb64..6c078d75f 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -17,6 +17,7 @@ */ quiet "0"; +quiet::NoUpdate "true"; // never update progress information - included in -q=1 // Options for APT in general APT -- cgit v1.2.3 From 16b9e1e3b03ea352a4d9eb5b13db4724fcedbbe7 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:08:19 +0100 Subject: * cmdline/apt-get.cc: - if --print-uris is used don't setup downloader as we don't need progress, lock nor the directories it would create otherwise --- cmdline/apt-get.cc | 2 -- debian/changelog | 8 ++++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 8efcd0e2e..ca037c5c7 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1077,8 +1077,6 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, { // force a hashsum for compatibility reasons _config->CndSet("Acquire::ForceHash", "md5sum"); - if (Fetcher.Setup(&Stat, "") == false) - return false; } else if (Fetcher.Setup(&Stat, _config->FindDir("Dir::Cache::Archives")) == false) return false; diff --git a/debian/changelog b/debian/changelog index 96a2bd15b..b4a7c0177 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.11+wheezy) unstable; urgency=low + + * cmdline/apt-get.cc: + - if --print-uris is used don't setup downloader as we don't need + progress, lock nor the directories it would create otherwise + + -- David Kalnischkies Tue, 30 Nov 2010 19:07:07 +0100 + apt (0.8.10) unstable; urgency=low [ Programs translations ] -- cgit v1.2.3 From f6cc9c19a1fd47bc27b4c4a82044138c491166bb Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:08:44 +0100 Subject: * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) --- debian/changelog | 2 ++ debian/control | 1 + 2 files changed, 3 insertions(+) diff --git a/debian/changelog b/debian/changelog index b4a7c0177..a19df76cf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,8 @@ apt (0.8.11+wheezy) unstable; urgency=low * cmdline/apt-get.cc: - if --print-uris is used don't setup downloader as we don't need progress, lock nor the directories it would create otherwise + * debian/control: + - add Vcs-Browser now that loggerhead works again (Closes: #511168) -- David Kalnischkies Tue, 30 Nov 2010 19:07:07 +0100 diff --git a/debian/control b/debian/control index 87e885f6a..c4dedd496 100644 --- a/debian/control +++ b/debian/control @@ -9,6 +9,7 @@ Standards-Version: 3.9.0 Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen Build-Conflicts: autoconf2.13, automake1.4 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ +Vcs-Browser: http://bzr.debian.org/loggerhead/apt/debian-sid/ Package: apt Architecture: any -- cgit v1.2.3 From 898d27df204e3aadaba9692bcdcfbc50599801f9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:12:12 +0100 Subject: add a very simple testcase to ensure that the action modifiers are only interpreted if a package with this name doesn't exist: e.g. g++ --- .../Packages-bug-593360-modifiers-in-names | 42 ++++++++++++++ .../integration/test-bug-593360-modifiers-in-names | 64 ++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 test/integration/Packages-bug-593360-modifiers-in-names create mode 100755 test/integration/test-bug-593360-modifiers-in-names diff --git a/test/integration/Packages-bug-593360-modifiers-in-names b/test/integration/Packages-bug-593360-modifiers-in-names new file mode 100644 index 000000000..d2ac8d4e1 --- /dev/null +++ b/test/integration/Packages-bug-593360-modifiers-in-names @@ -0,0 +1,42 @@ +Package: g++ +Priority: optional +Section: devel +Installed-Size: 40 +Maintainer: Debian GCC Maintainers +Architecture: i386 +Source: gcc-defaults (1.96) +Version: 4:4.4.5-1 +Filename: pool/main/g/gcc-defaults/g++_4.4.5-1_i386.deb +Size: 1372 +MD5sum: 37e129a4b130e8b96a9b9d5b26a3fffa +SHA1: d98768d1547389a563e60433268143f42578c3e6 +SHA256: 18d933972392d233127bdd766cfcaaaa2e35f57de47c7af678d599be9613d562 +Description: The GNU C++ compiler + +Package: apt +Priority: important +Section: admin +Installed-Size: 5984 +Maintainer: APT Development Team +Architecture: all +Version: 0.8.8 +Filename: pool/main/a/apt/apt_0.8.8_i386.deb +Size: 2140632 +MD5sum: 4283aa3bb751253faf1b2204e0229e4f +SHA1: 59d432f56901faa86e814a436b8da010ee1c7b8a +SHA256: 072dcf4359dce9698aeaa54366eb20513f860c2bb6d44a95973c0b2ad413bfab +Description: Advanced front-end for dpkg + +Package: apt+ +Priority: important +Section: admin +Installed-Size: 5984 +Maintainer: APT Development Team +Architecture: all +Version: 0.8.8 +Filename: pool/main/a/apt/apt_0.8.8_i386.deb +Size: 2140632 +MD5sum: 4283aa3bb751253faf1b2204e0229e4f +SHA1: 59d432f56901faa86e814a436b8da010ee1c7b8a +SHA256: 072dcf4359dce9698aeaa54366eb20513f860c2bb6d44a95973c0b2ad413bfab +Description: Advanced front-end for dpkg diff --git a/test/integration/test-bug-593360-modifiers-in-names b/test/integration/test-bug-593360-modifiers-in-names new file mode 100755 index 000000000..c12503b0d --- /dev/null +++ b/test/integration/test-bug-593360-modifiers-in-names @@ -0,0 +1,64 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + g++ +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst g++ (4:4.4.5-1 localhost [i386]) +Conf g++ (4:4.4.5-1 localhost [i386])' aptget install g++ -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + g++ +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst g++ (4:4.4.5-1 localhost [i386]) +Conf g++ (4:4.4.5-1 localhost [i386])' aptget install g+++ -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + g++ +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst g++ (4:4.4.5-1 localhost [i386]) +Conf g++ (4:4.4.5-1 localhost [i386])' aptget purge g+++ -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + apt +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst apt (0.8.8 localhost [all]) +Conf apt (0.8.8 localhost [all])' aptget install apt -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + apt+ +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst apt+ (0.8.8 localhost [all]) +Conf apt+ (0.8.8 localhost [all])' aptget install apt+ -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + apt+ +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst apt+ (0.8.8 localhost [all]) +Conf apt+ (0.8.8 localhost [all])' aptget install apt++ -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + apt+ +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst apt+ (0.8.8 localhost [all]) +Conf apt+ (0.8.8 localhost [all])' aptget purge apt++ -s -- cgit v1.2.3 From af7a92c35accda98b667ff41f62ea500fca95a7c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:13:44 +0100 Subject: cleanup the debian/rules file a bit --- debian/rules | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/debian/rules b/debian/rules index 8bfcaf385..ea8f0daa0 100755 --- a/debian/rules +++ b/debian/rules @@ -2,17 +2,6 @@ # Made with the aid of dh_make, by Craig Small # Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. # Some lines taken from debmake, by Christoph Lameter. -# $Id: rules,v 1.68 2004/05/30 18:21:43 mdz Exp $ - -# LD_LIBRARY_PATH=pwd/debian/apt/usr/lib dh_shlibdeps -papt -# dpkg: /home/jgg/work/apt2/debian/apt/usr/lib/libapt-pkg.so.2.9 not found. - -# For the deb builder, you can run 'debian/rules cvs-build', which does all -# steps nescessary to produce a proper source tarball with the CVS/ removed. -# It builds in debian/cvs-build/apt-/, and places files in -# debian/cvs-build/. Optionally, you can run 'debian/rules cvs-mkul' to -# create ../upload-, with all the files needed to be uploaded placed -# in it. export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) @@ -139,7 +128,7 @@ binary-indep: apt-doc libapt-pkg-doc libapt-pkg-doc: build-doc debian/shlibs.local dh_testdir -p$@ dh_testroot -p$@ - dh_clean -p$@ -k + dh_prep -p$@ dh_installdirs -p$@ # # libapt-pkg-doc install @@ -165,7 +154,7 @@ libapt-pkg-doc: build-doc debian/shlibs.local apt-doc: build-doc dh_testdir -p$@ dh_testroot -p$@ - dh_clean -p$@ -k + dh_prep -p$@ # # apt-doc install # @@ -191,7 +180,7 @@ apt_MANPAGES = apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secur apt: build build-doc debian/shlibs.local dh_testdir -p$@ dh_testroot -p$@ - dh_clean -p$@ -k + dh_prep -p$@ dh_installdirs -p$@ # # apt install @@ -247,7 +236,7 @@ apt: build build-doc debian/shlibs.local libapt-pkg-dev: build debian/shlibs.local dh_testdir -p$@ dh_testroot -p$@ - dh_clean -p$@ -k + dh_prep -p$@ dh_installdirs -p$@ # # libapt-pkg-dev install @@ -272,7 +261,7 @@ apt-utils_MANPAGES = apt-sortpkgs apt-ftparchive apt-extracttemplates apt-utils: build debian/shlibs.local dh_testdir -p$@ dh_testroot -p$@ - dh_clean -p$@ -k + dh_prep -p$@ dh_installdirs -p$@ # install the shared libs @@ -300,7 +289,7 @@ apt-utils: build debian/shlibs.local apt-transport-https: build debian/shlibs.local libapt-pkg-dev dh_testdir -p$@ dh_testroot -p$@ - dh_clean -p$@ -k + dh_prep -p$@ dh_installdirs -p$@ # install the method -- cgit v1.2.3 From f425d4d5d65b317b84fd56ea40f469ca008b7773 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:14:26 +0100 Subject: ensure that the build methods are used and not these on the system --- test/integration/framework | 1 + 1 file changed, 1 insertion(+) diff --git a/test/integration/framework b/test/integration/framework index 63962858a..bc427c544 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -116,6 +116,7 @@ setupenvironment() { echo "Dir::state::status \"${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status\";" >> aptconfig.conf echo "Debug::NoLocking \"true\";" >> aptconfig.conf echo "APT::Get::Show-User-Simulation-Note \"false\";" >> aptconfig.conf + echo "Dir::Bin::Methods \"${BUILDDIRECTORY}/methods\";" >> aptconfig.conf echo "Dir::Bin::dpkg \"fakeroot\";" >> aptconfig.conf echo "DPKG::options:: \"dpkg\";" >> aptconfig.conf echo "DPKG::options:: \"--root=${TMPWORKINGDIRECTORY}/rootdir\";" >> aptconfig.conf -- cgit v1.2.3 From 0dc05bf095ebe2908f7d9096b3914b8c988c023e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:15:19 +0100 Subject: =?UTF-8?q?$!=20doesn't=20worked=20on=20the=20first=20try=20someho?= =?UTF-8?q?w,=20now=20it=20does=20and=20its=20(a=20lot)=20cleaner=20than?= =?UTF-8?q?=20using=20this=20ps=20"magic"=20as=20this=20fails=20now=20and?= =?UTF-8?q?=20then=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/integration/framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/framework b/test/integration/framework index bc427c544..a0bad4170 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -445,7 +445,7 @@ signreleasefiles() { changetowebserver() { if which weborf > /dev/null; then weborf -xb aptarchive/ 2>&1 > /dev/null & - CURRENTTRAP="kill $(ps | grep weborf | sed -e 's#^[ ]*##' | cut -d' ' -f 1); $CURRENTTRAP" + CURRENTTRAP="kill $!; $CURRENTTRAP" trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM local APTARCHIVE="file://$(readlink -f ./aptarchive)" for LIST in $(find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list'); do -- cgit v1.2.3 From a02f24e046d58b723a9283211cb558605a024bdf Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:22:29 +0100 Subject: show dependencies of essential packages which are going to remove only if they cause the remove of this essential (Closes: #601961) --- cmdline/apt-get.cc | 4 ++- debian/changelog | 4 ++- test/integration/status-bug-601961-install-info | 42 +++++++++++++++++++++++++ test/integration/test-bug-601961-install-info | 38 ++++++++++++++++++++++ 4 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 test/integration/status-bug-601961-install-info create mode 100755 test/integration/test-bug-601961-install-info diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index ca037c5c7..ca510178a 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -538,7 +538,9 @@ bool ShowEssential(ostream &out,CacheFile &Cache) //VersionsList += string(Cache[I].CurVersion) + "\n"; ??? } } - + else + continue; + if (I->CurrentVer == 0) continue; diff --git a/debian/changelog b/debian/changelog index a19df76cf..56865f713 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,10 +3,12 @@ apt (0.8.11+wheezy) unstable; urgency=low * cmdline/apt-get.cc: - if --print-uris is used don't setup downloader as we don't need progress, lock nor the directories it would create otherwise + - show dependencies of essential packages which are going to remove + only if they cause the remove of this essential (Closes: #601961) * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) - -- David Kalnischkies Tue, 30 Nov 2010 19:07:07 +0100 + -- David Kalnischkies Tue, 30 Nov 2010 19:16:31 +0100 apt (0.8.10) unstable; urgency=low diff --git a/test/integration/status-bug-601961-install-info b/test/integration/status-bug-601961-install-info new file mode 100644 index 000000000..c43cffab7 --- /dev/null +++ b/test/integration/status-bug-601961-install-info @@ -0,0 +1,42 @@ +Package: dpkg +Status: install ok installed +Essential: yes +Priority: required +Section: admin +Installed-Size: 6432 +Maintainer: Dpkg Developers +Architecture: i386 +Version: 1.15.8.5 +Description: Debian package management system + +Package: findutils +Status: install ok installed +Essential: yes +Priority: required +Section: utils +Installed-Size: 1704 +Maintainer: Andreas Metzler +Architecture: i386 +Version: 4.4.2-1+b1 +Depends: dpkg (>= 1.15.4) | install-info, essentialpkg +Description: utilities for finding files--find, xargs + +Package: install-info +Status: install ok installed +Priority: important +Section: doc +Installed-Size: 256 +Maintainer: Debian TeX maintainers +Architecture: i386 +Version: 4.13a.dfsg.1-6 +Description: Manage installed documentation in info format + +Package: essentialpkg +Status: install ok installed +Priority: important +Section: other +Installed-Size: 256 +Maintainer: Joe Sixpack +Architecture: i386 +Version: 4.13a.dfsg.1-6 +Description: ultra hypercool important package diff --git a/test/integration/test-bug-601961-install-info b/test/integration/test-bug-601961-install-info new file mode 100755 index 000000000..b91bf3615 --- /dev/null +++ b/test/integration/test-bug-601961-install-info @@ -0,0 +1,38 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + findutils +WARNING: The following essential packages will be removed. +This should NOT be done unless you know exactly what you are doing! + findutils +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +After this operation, 1745 kB disk space will be freed. +E: Trivial Only specified but this is not a trivial operation.' aptget remove findutils --trivial-only + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + install-info +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +After this operation, 262 kB disk space will be freed. +E: Trivial Only specified but this is not a trivial operation.' aptget remove install-info --trivial-only + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + essentialpkg findutils +WARNING: The following essential packages will be removed. +This should NOT be done unless you know exactly what you are doing! + findutils essentialpkg (due to findutils) +0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. +After this operation, 2007 kB disk space will be freed. +E: Trivial Only specified but this is not a trivial operation.' aptget remove essentialpkg --trivial-only -- cgit v1.2.3 From ceabaaa1f96eeb433a0530dc8f9d590bc57aa161 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:22:54 +0100 Subject: add usage info for create-test-data script --- test/integration/create-test-data | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/integration/create-test-data b/test/integration/create-test-data index ff9405502..b93218b7c 100755 --- a/test/integration/create-test-data +++ b/test/integration/create-test-data @@ -1,6 +1,11 @@ #!/bin/sh set +e # its okay to fail in these script, most of the time the apt* stuff will generate errors +if [ -z "$1" -o -z "$2" ]; then + echo "Usage: $0 file codename pkg…" + exit 1 +fi + local TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework BUILDDIRECTORY="${TESTDIR}/../../build/bin" @@ -16,6 +21,11 @@ TMPGEN=$WORKDIR/Packages export LANG=C LISTOFPKGS=$(aptget install $* -t $CODENAME -so Dir::state::status=$WORKDIR/status -o Dir::Cache::archives=$WORKDIR -o pkgCacheGen::Essential=none -o APT::Immediate-Configure=0 2> /dev/null | awk '/^Inst/ {print $2}' | sed -e "s#\$#/$CODENAME#") +if [ -z "$LISTOFPKGS" ]; then + echo "List of packages is empty: run apt-get install command again for you now" + aptget install $* -t $CODENAME -so Dir::state::status=$WORKDIR/status -o Dir::Cache::archives=$WORKDIR -o pkgCacheGen::Essential=none -o APT::Immediate-Configure=0 + exit 1 +fi aptcache show $LISTOFPKGS --no-all-versions 2> /dev/null > $TMPGEN sed -i $TMPGEN \ -e '/^ / d' \ -- cgit v1.2.3 From b6b5a542bd5a2580fff3d3ec2ce91a41e9622d6d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:23:54 +0100 Subject: add framework code to run the installed aptitude with the current build library in the test environment --- test/integration/framework | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/integration/framework b/test/integration/framework index a0bad4170..8abefc814 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -78,6 +78,15 @@ aptkey() { runapt apt-key $*; } dpkg() { $(which 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} $(which aptitude) $* + elif [ -f ../aptconfig.conf ]; then + APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $(which aptitude) $* + else + LD_LIBRARY_PATH=${BUILDDIRECTORY} $(which aptitude) $* + fi +} setupenvironment() { TMPWORKINGDIRECTORY=$(mktemp -d) -- cgit v1.2.3 From 4a4ea26c2d0f89c13e0ccf6fb2d96ad1caa6427d Mon Sep 17 00:00:00 2001 From: Andres Mejia Date: Tue, 30 Nov 2010 19:25:39 +0100 Subject: Add support for providing and autocopying Sources files along the way of status and Packages files with a testcase --- test/integration/framework | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/integration/framework b/test/integration/framework index 8abefc814..7af59deb0 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -119,6 +119,12 @@ setupenvironment() { else touch aptarchive/Packages fi + local SOURCESSFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Sources-/' -e 's/^skip-/Sources-/') + if [ -f "${TESTDIR}/${SOURCESSFILE}" ]; then + cp "${TESTDIR}/${SOURCESSFILE}" aptarchive/Sources + else + touch aptarchive/Sources + fi cp $(find $TESTDIR -name '*.pub' -o -name '*.sec') keys/ ln -s ${TMPWORKINGDIRECTORY}/keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg echo "Dir \"${TMPWORKINGDIRECTORY}/rootdir\";" > aptconfig.conf -- cgit v1.2.3 From db4b5f77e1f9f64a54baeff74c0400f0134c1d0d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 30 Nov 2010 19:29:22 +0100 Subject: do not touch Packages and Sources in the framework if the files do not exist to not generate sources.list entries later for them --- test/integration/framework | 4 ---- test/integration/test-bug-595691-empty-and-broken-archive-files | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index 7af59deb0..aa8cdacc6 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -116,14 +116,10 @@ setupenvironment() { local PACKAGESFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Packages-/' -e 's/^skip-/Packages-/') if [ -f "${TESTDIR}/${PACKAGESFILE}" ]; then cp "${TESTDIR}/${PACKAGESFILE}" aptarchive/Packages - else - touch aptarchive/Packages fi local SOURCESSFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Sources-/' -e 's/^skip-/Sources-/') if [ -f "${TESTDIR}/${SOURCESSFILE}" ]; then cp "${TESTDIR}/${SOURCESSFILE}" aptarchive/Sources - else - touch aptarchive/Sources fi cp $(find $TESTDIR -name '*.pub' -o -name '*.sec') keys/ ln -s ${TMPWORKINGDIRECTORY}/keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files index 11a5025d2..66792899a 100755 --- a/test/integration/test-bug-595691-empty-and-broken-archive-files +++ b/test/integration/test-bug-595691-empty-and-broken-archive-files @@ -7,6 +7,7 @@ setupenvironment configarchitecture "i386" buildaptarchive +touch aptarchive/Packages setupflataptarchive testaptgetupdate() { -- cgit v1.2.3 From 54f2f0a3e46e4369285be8c25912fd45413114c0 Mon Sep 17 00:00:00 2001 From: Nobuhiro Hayashi Date: Fri, 3 Dec 2010 12:09:09 +0900 Subject: Permit base256 encoded value in the numeric field of tar header. --- apt-inst/contrib/extracttar.cc | 12 ++++++++---- apt-pkg/contrib/strutl.cc | 18 ++++++++++++++++++ apt-pkg/contrib/strutl.h | 1 + 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc index 3d2788aaf..1a358d57e 100644 --- a/apt-inst/contrib/extracttar.cc +++ b/apt-inst/contrib/extracttar.cc @@ -195,10 +195,14 @@ bool ExtractTar::Go(pkgDirStream &Stream) // Decode all of the fields pkgDirStream::Item Itm; if (StrToNum(Tar->Mode,Itm.Mode,sizeof(Tar->Mode),8) == false || - StrToNum(Tar->UserID,Itm.UID,sizeof(Tar->UserID),8) == false || - StrToNum(Tar->GroupID,Itm.GID,sizeof(Tar->GroupID),8) == false || - StrToNum(Tar->Size,Itm.Size,sizeof(Tar->Size),8) == false || - StrToNum(Tar->MTime,Itm.MTime,sizeof(Tar->MTime),8) == false || + (Base256ToNum(Tar->UserID,Itm.UID,8) == false && + StrToNum(Tar->UserID,Itm.UID,sizeof(Tar->UserID),8) == false) || + (Base256ToNum(Tar->GroupID,Itm.GID,8) == false && + StrToNum(Tar->GroupID,Itm.GID,sizeof(Tar->GroupID),8) == false) || + (Base256ToNum(Tar->Size,Itm.Size,12) == false && + StrToNum(Tar->Size,Itm.Size,sizeof(Tar->Size),8) == false) || + (Base256ToNum(Tar->MTime,Itm.MTime,12) == false && + StrToNum(Tar->MTime,Itm.MTime,sizeof(Tar->MTime),8) == false) || StrToNum(Tar->Major,Itm.Major,sizeof(Tar->Major),8) == false || StrToNum(Tar->Minor,Itm.Minor,sizeof(Tar->Minor),8) == false) return _error->Error(_("Corrupted archive")); diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index 987f4c3a4..daf87c87f 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -968,6 +968,24 @@ bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base) return true; } /*}}}*/ +// Base256ToNum - Convert a fixed length binary to a number /*{{{*/ +// --------------------------------------------------------------------- +/* This is used in decoding the 256bit encoded fixed length fields in + tar files */ +bool Base256ToNum(const char *Str,unsigned long &Res,unsigned Len) +{ + int i; + if ((Str[0] & 0x80) == 0) + return false; + else + { + Res = Str[0] & 0x7F; + for(i=1; i &List); bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base = 0); +bool Base256ToNum(const char *Str,unsigned long &Res,unsigned Len); bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length); bool TokSplitString(char Tok,char *Input,char **List, unsigned long ListMax); -- cgit v1.2.3 From a8dfff90aa740889eb99d00fde5d70908d9fd88a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 3 Dec 2010 14:02:29 +0100 Subject: keep not installed garbage packages uninstalled instead of showing in the autoremove section and installing those (Closes: #604222) --- cmdline/apt-get.cc | 40 +++++++------ debian/changelog | 4 +- .../Packages-bug-604222-new-and-autoremove | 68 ++++++++++++++++++++++ .../status-bug-604222-new-and-autoremove | 10 ++++ .../integration/test-bug-604222-new-and-autoremove | 66 +++++++++++++++++++++ 5 files changed, 169 insertions(+), 19 deletions(-) create mode 100644 test/integration/Packages-bug-604222-new-and-autoremove create mode 100644 test/integration/status-bug-604222-new-and-autoremove create mode 100755 test/integration/test-bug-604222-new-and-autoremove diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index ca510178a..57065c528 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1608,10 +1608,6 @@ bool DoAutomaticRemove(CacheFile &Cache) if(Debug) std::cout << "DoAutomaticRemove()" << std::endl; - // we don't want to autoremove and we don't want to see it, so why calculating? - if (doAutoRemove == false && hideAutoRemove == true) - return true; - if (doAutoRemove == true && _config->FindB("APT::Get::Remove",true) == false) { @@ -1622,7 +1618,9 @@ bool DoAutomaticRemove(CacheFile &Cache) bool purgePkgs = _config->FindB("APT::Get::Purge", false); bool smallList = (hideAutoRemove == false && - strcasecmp(_config->Find("APT::Get::HideAutoRemove","").c_str(),"small") == 0); + strcasecmp(_config->Find("APT::Get::HideAutoRemove","").c_str(),"small") == 0) || + // we don't want to autoremove and we don't want to see it, so don't generate lists + (doAutoRemove == false && hideAutoRemove == true); string autoremovelist, autoremoveversions; unsigned long autoRemoveCount = 0; @@ -1645,8 +1643,12 @@ bool DoAutomaticRemove(CacheFile &Cache) } else { + // if the package is a new install and already garbage we don't need to + // install it in the first place, so nuke it instead of show it + if (Cache[Pkg].Install() == true && Pkg.CurrentVer() == 0) + Cache->MarkDelete(Pkg, false); // only show stuff in the list that is not yet marked for removal - if(Cache[Pkg].Delete() == false) + else if(Cache[Pkg].Delete() == false) { ++autoRemoveCount; // we don't need to fill the strings if we don't need them @@ -1659,6 +1661,20 @@ bool DoAutomaticRemove(CacheFile &Cache) } } } + + // Now see if we had destroyed anything (if we had done anything) + if (Cache->BrokenCount() != 0) + { + c1out << _("Hmm, seems like the AutoRemover destroyed something which really\n" + "shouldn't happen. Please file a bug report against apt.") << endl; + c1out << endl; + c1out << _("The following information may help to resolve the situation:") << endl; + c1out << endl; + ShowBroken(c1out,Cache,false); + + return _error->Error(_("Internal Error, AutoRemover broke stuff")); + } + // if we don't remove them, we should show them! if (doAutoRemove == false && (autoremovelist.empty() == false || autoRemoveCount != 0)) { @@ -1671,18 +1687,6 @@ bool DoAutomaticRemove(CacheFile &Cache) "%lu packages were automatically installed and are no longer required.\n", autoRemoveCount), autoRemoveCount); c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl; } - // Now see if we had destroyed anything (if we had done anything) - else if (Cache->BrokenCount() != 0) - { - c1out << _("Hmm, seems like the AutoRemover destroyed something which really\n" - "shouldn't happen. Please file a bug report against apt.") << endl; - c1out << endl; - c1out << _("The following information may help to resolve the situation:") << endl; - c1out << endl; - ShowBroken(c1out,Cache,false); - - return _error->Error(_("Internal Error, AutoRemover broke stuff")); - } return true; } /*}}}*/ diff --git a/debian/changelog b/debian/changelog index 56865f713..65603587d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,10 +5,12 @@ apt (0.8.11+wheezy) unstable; urgency=low progress, lock nor the directories it would create otherwise - show dependencies of essential packages which are going to remove only if they cause the remove of this essential (Closes: #601961) + - keep not installed garbage packages uninstalled instead of showing + in the autoremove section and installing those (Closes: #604222) * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) - -- David Kalnischkies Tue, 30 Nov 2010 19:16:31 +0100 + -- David Kalnischkies Fri, 03 Dec 2010 14:00:18 +0100 apt (0.8.10) unstable; urgency=low diff --git a/test/integration/Packages-bug-604222-new-and-autoremove b/test/integration/Packages-bug-604222-new-and-autoremove new file mode 100644 index 000000000..fdff9d702 --- /dev/null +++ b/test/integration/Packages-bug-604222-new-and-autoremove @@ -0,0 +1,68 @@ +Package: dummy-archive +Priority: extra +Section: admin +Installed-Size: 5984 +Maintainer: APT Development Team +Architecture: i386 +Version: 0.invalid.0 +Source: dummy-archive +Depends: libavcodec52, libvtk5-dev | libopenal-dev +Filename: pool/main/d/dummy/dummy_5.4.2-8_i386.deb +Size: 2280898 +MD5sum: 569719746f7ec4b96209a6152af20c00 +Description: some dummy package + +Package: libvtk5-dev +Priority: optional +Section: libdevel +Installed-Size: 13812 +Maintainer: A. Maitland Bottoms +Architecture: i386 +Source: vtk +Version: 5.4.2-8 +Depends: libvtk5.4 (= 5.4.2-8) +Filename: pool/main/v/vtk/libvtk5-dev_5.4.2-8_i386.deb +Size: 2280898 +MD5sum: 569719746f7ec4b96209a6152af20c00 +Description: VTK header files for building C++ code + +Package: libvtk5.4 +Priority: optional +Section: libs +Installed-Size: 39372 +Maintainer: A. Maitland Bottoms +Architecture: i386 +Source: vtk +Version: 5.4.2-8 +Depends: libavcodec52 (>= 4:0.5.1-1) +Filename: pool/main/v/vtk/libvtk5.4_5.4.2-8_i386.deb +Size: 13070848 +MD5sum: 3ba7abc3d58ec44e35ae71879406563d +Description: Visualization Toolkit - A high level 3D visualization library + +Package: libopenal-dev +Priority: optional +Section: libdevel +Installed-Size: 140 +Maintainer: Debian Games Team +Architecture: i386 +Source: openal-soft +Version: 1:1.12.854-2 +Filename: pool/main/o/openal-soft/libopenal-dev_1.12.854-2_i386.deb +Size: 21014 +MD5sum: e0bda4fbf5a3d38ef510a23a1642587f +Description-de: Software-Implementierung der OpenAL-API (Entwicklungsdateien) + +Package: libavcodec52 +Priority: optional +Section: libs +Installed-Size: 10772 +Maintainer: Debian multimedia packages maintainers +Architecture: i386 +Source: ffmpeg +Version: 4:0.5.2-6 +Conflicts: libvtk5-dev +Filename: pool/main/f/ffmpeg/libavcodec52_0.5.2-6_i386.deb +Size: 4001600 +MD5sum: a50aae4c8e8b9dd29612407e61bedc22 +Description-de: Ffmpeg-Codec-Bibliothek diff --git a/test/integration/status-bug-604222-new-and-autoremove b/test/integration/status-bug-604222-new-and-autoremove new file mode 100644 index 000000000..03cf4d307 --- /dev/null +++ b/test/integration/status-bug-604222-new-and-autoremove @@ -0,0 +1,10 @@ +Package: libvtk5.4 +Status: install ok installed +Priority: optional +Section: libs +Installed-Size: 39372 +Maintainer: A. Maitland Bottoms +Architecture: i386 +Source: vtk +Version: 5.4.2-7 +Description: Visualization Toolkit - A high level 3D visualization library diff --git a/test/integration/test-bug-604222-new-and-autoremove b/test/integration/test-bug-604222-new-and-autoremove new file mode 100755 index 000000000..fa6dcdc70 --- /dev/null +++ b/test/integration/test-bug-604222-new-and-autoremove @@ -0,0 +1,66 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +echo 'Package: libvtk5.4 +Auto-Installed: 1 +Architecture: i386' > rootdir/var/lib/apt/extended_states + +testequal "Reading package lists... +Building dependency tree... +Reading state information... +The following package was automatically installed and is no longer required: + libvtk5.4 +Use 'apt-get autoremove' to remove them. +The following NEW packages will be installed: + libavcodec52 +0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. +Inst libavcodec52 (4:0.5.2-6 localhost [i386]) +Conf libavcodec52 (4:0.5.2-6 localhost [i386])" aptget install libavcodec52 -s + +testequal "Reading package lists... +Building dependency tree... +Reading state information... +The following package was automatically installed and is no longer required: + libvtk5.4 +Use 'apt-get autoremove' to remove them. +The following extra packages will be installed: + libavcodec52 libopenal-dev libvtk5.4 +The following NEW packages will be installed: + dummy-archive libavcodec52 libopenal-dev +The following packages will be upgraded: + libvtk5.4 +1 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. +Need to get 0 B/19.4 MB of archives. +After this operation, 17.3 MB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install dummy-archive --trivial-only + +echo -n > rootdir/var/lib/dpkg/status +rm rootdir/var/lib/apt/extended_states + +CONFLICTING='Reading package lists... +Building dependency tree... + MarkInstall dummy-archive [ i386 ] < none -> 0.invalid.0 > ( admin ) FU=1 + MarkInstall libavcodec52 [ i386 ] < none -> 4:0.5.2-6 > ( libs ) FU=0 + MarkInstall libvtk5-dev [ i386 ] < none -> 5.4.2-8 > ( libdevel ) FU=0 + MarkInstall libvtk5.4 [ i386 ] < none -> 5.4.2-8 > ( libs ) FU=0 + MarkKeep libvtk5-dev [ i386 ] < none -> 5.4.2-8 > ( libdevel ) FU=0 + MarkKeep libvtk5-dev [ i386 ] < none -> 5.4.2-8 > ( libdevel ) FU=0 + MarkDelete libvtk5.4 [ i386 ] < none -> 5.4.2-8 > ( libs ) FU=1 +The following extra packages will be installed: + libavcodec52 libopenal-dev +The following NEW packages will be installed: + dummy-archive libavcodec52 libopenal-dev +0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. +Need to get 0 B/6304 kB of archives. +After this operation, 17.3 MB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation.' + +testequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=0 +testequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=1 +testequal "$CONFLICTING" aptget install dummy-archive --trivial-only -o Debug::pkgDepCache::Marker=1 -o APT::Get::HideAutoRemove=small -- cgit v1.2.3 From 2c085486d34c45e123c24b0e36294245fd5bf734 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 3 Dec 2010 17:06:34 +0100 Subject: * apt-pkg/depcache.cc: - add SetCandidateRelease() to set a candidate version and the candidates of dependencies if needed to a specified release (Closes: #572709) - change pkg/release behavior to use the new SetCandidateRelease so installing packages from experimental or backports is easier --- apt-pkg/depcache.cc | 161 ++++++++ apt-pkg/depcache.h | 19 + cmdline/apt-get.cc | 36 +- debian/NEWS | 9 + debian/changelog | 8 +- test/integration/framework | 10 +- test/integration/test-release-candidate-switching | 435 ++++++++++++++++++++++ 7 files changed, 670 insertions(+), 8 deletions(-) create mode 100755 test/integration/test-release-candidate-switching diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 58e7ebf07..4a8e53eb3 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -10,6 +10,7 @@ // Include Files /*{{{*/ #include #include +#include #include #include #include @@ -1554,6 +1555,166 @@ void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo) } } /*}}}*/ +// DepCache::SetCandidateRelease - Change the candidate version /*{{{*/ +// --------------------------------------------------------------------- +/* changes the candidate of a package and walks over all its dependencies + to check if it needs to change the candidate of the dependency, too, + to reach a installable versionstate */ +bool pkgDepCache::SetCandidateRelease(pkgCache::VerIterator TargetVer, + std::string const &TargetRel) +{ + std::list > Changed; + return SetCandidateRelease(TargetVer, TargetRel, Changed); +} +bool pkgDepCache::SetCandidateRelease(pkgCache::VerIterator TargetVer, + std::string const &TargetRel, + std::list > &Changed) +{ + SetCandidateVersion(TargetVer); + + if (TargetRel == "installed" || TargetRel == "candidate") // both doesn't make sense in this context + return true; + + pkgVersionMatch Match(TargetRel, pkgVersionMatch::Release); + // save the position of the last element we will not undo - if we have to + std::list >::iterator newChanged = --(Changed.end()); + + for (pkgCache::DepIterator D = TargetVer.DependsList(); D.end() == false; ++D) + { + if (D->Type != pkgCache::Dep::PreDepends && D->Type != pkgCache::Dep::Depends && + ((D->Type != pkgCache::Dep::Recommends && D->Type != pkgCache::Dep::Suggests) || + IsImportantDep(D) == false)) + continue; + + // walk over an or-group and check if we need to do anything + // for simpilicity no or-group is handled as a or-group including one dependency + pkgCache::DepIterator Start = D; + bool itsFine = false; + for (bool stillOr = true; stillOr == true; ++Start) + { + stillOr = (Start->CompareOp & Dep::Or) == Dep::Or; + pkgCache::PkgIterator const P = Start.TargetPkg(); + // virtual packages can't be a solution + if (P.end() == true || (P->ProvidesList == 0 && P->VersionList == 0)) + continue; + pkgCache::VerIterator const Cand = PkgState[P->ID].CandidateVerIter(*this); + // no versioned dependency - but is it installable? + if (Start.TargetVer() == 0 || Start.TargetVer()[0] == '\0') + { + // Check if one of the providers is installable + if (P->ProvidesList != 0) + { + pkgCache::PrvIterator Prv = P.ProvidesList(); + for (; Prv.end() == false; ++Prv) + { + pkgCache::VerIterator const C = PkgState[Prv.OwnerPkg()->ID].CandidateVerIter(*this); + if (C.end() == true || C != Prv.OwnerVer() || + (VersionState(C.DependsList(), DepInstall, DepCandMin, DepCandPolicy) & DepCandMin) != DepCandMin) + continue; + break; + } + if (Prv.end() == true) + continue; + } + // no providers, so check if we have an installable candidate version + else if (Cand.end() == true || + (VersionState(Cand.DependsList(), DepInstall, DepCandMin, DepCandPolicy) & DepCandMin) != DepCandMin) + continue; + itsFine = true; + break; + } + if (Cand.end() == true) + continue; + // check if the current candidate is enough for the versioned dependency - and installable? + if (VS().CheckDep(P.CandVersion(), Start->CompareOp, Start.TargetVer()) == true && + (VersionState(Cand.DependsList(), DepInstall, DepCandMin, DepCandPolicy) & DepCandMin) == DepCandMin) + { + itsFine = true; + break; + } + } + + if (itsFine == true) { + // something in the or-group was fine, skip all other members + for (; (D->CompareOp & Dep::Or) == Dep::Or; ++D); + continue; + } + + // walk again over the or-group and check each if a candidate switch would help + itsFine = false; + for (bool stillOr = true; stillOr == true; ++D) + { + stillOr = (D->CompareOp & Dep::Or) == Dep::Or; + // changing candidate will not help if the dependency is not versioned + if (D.TargetVer() == 0 || D.TargetVer()[0] == '\0') + { + if (stillOr == true) + continue; + break; + } + + pkgCache::VerIterator V; + if (TargetRel == "newest") + V = D.TargetPkg().VersionList(); + else + V = Match.Find(D.TargetPkg()); + + // check if the version from this release could satisfy the dependency + if (V.end() == true || VS().CheckDep(V.VerStr(), D->CompareOp, D.TargetVer()) == false) + { + if (stillOr == true) + continue; + break; + } + + pkgCache::VerIterator oldCand = PkgState[D.TargetPkg()->ID].CandidateVerIter(*this); + if (V == oldCand) + { + // Do we already touched this Version? If so, their versioned dependencies are okay, no need to check again + for (std::list >::const_iterator c = Changed.begin(); + c != Changed.end(); ++c) + { + if (c->first->ParentPkg != V->ParentPkg) + continue; + itsFine = true; + break; + } + } + + if (itsFine == false) + { + // change the candidate + Changed.push_back(make_pair(oldCand, TargetVer)); + if (SetCandidateRelease(V, TargetRel, Changed) == false) + { + if (stillOr == false) + break; + // undo the candidate changing + SetCandidateVersion(oldCand); + Changed.pop_back(); + continue; + } + itsFine = true; + } + + // something in the or-group was fine, skip all other members + for (; (D->CompareOp & Dep::Or) == Dep::Or; ++D); + break; + } + + if (itsFine == false && (D->Type == pkgCache::Dep::PreDepends || D->Type == pkgCache::Dep::Depends)) + { + // undo all changes which aren't lead to a solution + for (std::list >::const_iterator c = ++newChanged; + c != Changed.end(); ++c) + SetCandidateVersion(c->first); + Changed.erase(newChanged, Changed.end()); + return false; + } + } + return true; +} + /*}}}*/ // DepCache::MarkAuto - set the Auto flag for a package /*{{{*/ // --------------------------------------------------------------------- /* */ diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index 2d3dbdf77..dba3e22dc 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -396,6 +396,25 @@ class pkgDepCache : protected pkgCache::Namespace void SetReInstall(PkgIterator const &Pkg,bool To); void SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo = true); + bool SetCandidateRelease(pkgCache::VerIterator TargetVer, + std::string const &TargetRel); + /** Set the candidate version for dependencies too if needed. + * + * Sets not only the candidate version as SetCandidateVersion does, + * but walks also down the dependency tree and checks if it is required + * to set the candidate of the dependency to a version from the given + * release, too. + * + * \param TargetVer new candidate version of the package + * \param TargetRel try to switch to this release if needed + * \param[out] Changed a list of pairs consisting of the \b old + * version of the changed package and the version which + * required the switch of this dependency + * \return \b true if the switch was successful, \b false otherwise + */ + bool SetCandidateRelease(pkgCache::VerIterator TargetVer, + std::string const &TargetRel, + std::list > &Changed); /** Set the "is automatically installed" flag of Pkg. */ void MarkAuto(const PkgIterator &Pkg, bool Auto); diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 57065c528..476896322 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -628,6 +628,8 @@ class CacheSetHelperAPTGet : public APT::CacheSetHelper { APT::PackageSet virtualPkgs; public: + std::list > selectedByRelease; + CacheSetHelperAPTGet(std::ostream &out) : APT::CacheSetHelper(true), out(out) { explicitlyNamed = true; } @@ -646,9 +648,9 @@ public: } virtual void showSelectedVersion(pkgCache::PkgIterator const &Pkg, pkgCache::VerIterator const Ver, string const &ver, bool const &verIsRel) { - if (ver != Ver.VerStr()) - ioprintf(out, _("Selected version '%s' (%s) for '%s'\n"), - Ver.VerStr(), Ver.RelStr().c_str(), Pkg.FullName(true).c_str()); + if (ver == Ver.VerStr()) + return; + selectedByRelease.push_back(make_pair(Ver, ver)); } bool showVirtualPackageErrors(pkgCacheFile &Cache) { @@ -829,6 +831,33 @@ struct TryToInstall { } } + bool propergateReleaseCandiateSwitching(std::list > start, std::ostream &out) + { + bool Success = true; + std::list > Changed; + for (std::list >::const_iterator s = start.begin(); + s != start.end(); ++s) + { + Changed.push_back(std::make_pair(s->first, pkgCache::VerIterator(*Cache))); + // We continue here even if it failed to enhance the ShowBroken output + Success &= Cache->GetDepCache()->SetCandidateRelease(s->first, s->second, Changed); + } + for (std::list >::const_iterator c = Changed.begin(); + c != Changed.end(); ++c) + { + if (c->second.end() == true) + ioprintf(out, _("Selected version '%s' (%s) for '%s'\n"), + c->first.VerStr(), c->first.RelStr().c_str(), c->first.ParentPkg().FullName(true).c_str()); + else if (c->first.ParentPkg()->Group != c->second.ParentPkg()->Group) + { + pkgCache::VerIterator V = (*Cache)[c->first.ParentPkg()].CandidateVerIter(*Cache); + ioprintf(out, _("Selected version '%s' (%s) for '%s' because of '%s'\n"), V.VerStr(), + V.RelStr().c_str(), V.ParentPkg().FullName(true).c_str(), c->second.ParentPkg().FullName(true).c_str()); + } + } + return Success; + } + void doAutoInstall() { for (APT::PackageSet::const_iterator P = doAutoInstallLater.begin(); P != doAutoInstallLater.end(); ++P) { @@ -1779,6 +1808,7 @@ bool DoInstall(CommandLine &CmdL) { if (order[i] == MOD_INSTALL) { InstallAction = std::for_each(verset[MOD_INSTALL].begin(), verset[MOD_INSTALL].end(), InstallAction); + InstallAction.propergateReleaseCandiateSwitching(helper.selectedByRelease, c0out); InstallAction.doAutoInstall(); } else if (order[i] == MOD_REMOVE) diff --git a/debian/NEWS b/debian/NEWS index 775dc9458..c90cff6b2 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,3 +1,12 @@ +apt (0.8.11+wheezy) UNRELEASED; urgency=low + + * apt-get install pkg/experimental will now not only switch the + candidate of package pkg to the version from the release experimental + but also of all dependencies of pkg if the current candidate can't + satisfy a versioned dependency. + + -- David Kalnischkies Fri, 03 Dez 2010 14:09:12 +0100 + apt (0.7.26~exp3) experimental; urgency=low * apt-ftparchive now reads the standard configuration files in diff --git a/debian/changelog b/debian/changelog index 65603587d..9d7564462 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,9 @@ apt (0.8.11+wheezy) unstable; urgency=low + * apt-pkg/depcache.cc: + - add SetCandidateRelease() to set a candidate version and + the candidates of dependencies if needed to a specified + release (Closes: #572709) * cmdline/apt-get.cc: - if --print-uris is used don't setup downloader as we don't need progress, lock nor the directories it would create otherwise @@ -7,10 +11,12 @@ apt (0.8.11+wheezy) unstable; urgency=low only if they cause the remove of this essential (Closes: #601961) - keep not installed garbage packages uninstalled instead of showing in the autoremove section and installing those (Closes: #604222) + - change pkg/release behavior to use the new SetCandidateRelease + so installing packages from experimental or backports is easier * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) - -- David Kalnischkies Fri, 03 Dec 2010 14:00:18 +0100 + -- David Kalnischkies Fri, 03 Dec 2010 17:06:28 +0100 apt (0.8.10) unstable; urgency=low diff --git a/test/integration/framework b/test/integration/framework index aa8cdacc6..4bbe1b408 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -134,6 +134,7 @@ setupenvironment() { echo "DPKG::options:: \"--force-not-root\";" >> aptconfig.conf echo "DPKG::options:: \"--force-bad-path\";" >> aptconfig.conf echo "DPKG::options:: \"--log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log\";" >> aptconfig.conf + echo 'quiet::NoUpdate "true";' >> aptconfig.conf export LC_ALL=C msgdone "info" } @@ -337,10 +338,11 @@ insertpackage() { echo "Package: $NAME Priority: optional Section: other -Installed-Size: 23356 +Installed-Size: 42 Maintainer: Joe Sixpack Architecture: $ARCH -Version: $VERSION" >> $FILE +Version: $VERSION +Filename: pool/main/${NAME}/${NAME}_${VERSION}_${ARCH}.deb" >> $FILE test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> $FILE echo "Description: an autogenerated dummy ${NAME}=${VERSION}/${RELEASE} If you find such a package installed on your system, @@ -380,8 +382,8 @@ generatereleasefiles() { if [ -e aptarchive/dists ]; then for dir in $(find ./aptarchive/dists -mindepth 1 -maxdepth 1 -type d); do local CODENAME="$(echo "$dir" | cut -d'/' -f 4)" - aptftparchive -qq release $dir -o APT::FTPArchive::Release::Codename="${CODENAME}" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference - if [ "$CODENAME" = "experimental" ]; then + aptftparchive -qq release $dir -o APT::FTPArchive::Release::Suite="${CODENAME}" -o APT::FTPArchive::Release::Codename="${CODENAME}" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference + if [ "$CODENAME" = "experimental" -o "$CODENAME" = "experimental2" ]; then sed -i '/^Date: / a\ NotAutomatic: yes' $dir/Release fi diff --git a/test/integration/test-release-candidate-switching b/test/integration/test-release-candidate-switching new file mode 100755 index 000000000..ea601ae8b --- /dev/null +++ b/test/integration/test-release-candidate-switching @@ -0,0 +1,435 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'libc6' 'i386' '2.11.2-7+sid' +insertpackage 'unstable' 'phonon-backend-xine' 'i386' '4:4.6.0really4.4.2-1+sid' 'Provides: phonon-backend' +insertpackage 'unstable' 'phonon-backend-xine2' 'i386' '4:4.6.0really4.4.2-1+sid' +insertpackage 'unstable' 'phonon-backend-xine3' 'i386' '4:4.6.0really4.4.2-1+sid' +insertpackage 'unstable' 'phonon-backend-xine4' 'i386' '4:4.6.0really4.4.2-1+sid' +insertpackage 'unstable' 'phonon-backend-null' 'i386' '4:4.20.0+sid' 'Provides: phonon-backend' +insertpackage 'unstable' 'intermediatepkg' 'all' '1.0' + +insertpackage 'unstable' 'amarok-common' 'all' '2.3.1-1+sid' +insertpackage 'unstable' 'amarok-utils' 'i386' '2.3.1-1+sid' +insertpackage 'unstable' 'libmtp8' 'i386' '0.3.1+sid' +insertpackage 'unstable' 'amarok' 'i386' '2.3.1-1+sid' 'Depends: amarok-common (= 2.3.1-1+sid), amarok-utils (= 2.3.1-1+sid), phonon-backend-xine | phonon-backend, libmtp8 (>= 0.3.1), libc6' + +insertpackage 'experimental' 'amarok-common' 'all' '2.3.2-2+exp' +insertpackage 'experimental' 'amarok-utils' 'i386' '2.3.2-2+exp' +insertpackage 'experimental' 'libmtp8' 'i386' '0.3.3+exp' +insertpackage 'experimental' 'phonon-backend-xine' 'i386' '5:4.6.0+exp' 'Provides: phonon-backend' +insertpackage 'experimental' 'phonon-backend-xine2' 'i386' '5:4.6.0+exp' 'Depends: uninstallablepkg +Provides: phonon-backend-broken' +insertpackage 'experimental' 'phonon-backend-xine3' 'i386' '5:4.6.0+exp' 'Depends: intermediatepkg (>= 1.5)' +insertpackage 'experimental' 'phonon-backend-xine4' 'i386' '5:4.6.0+exp' 'Depends: intermediateuninstallablepkg (= 2.0) +Provides: phonon-backend-broken' +insertpackage 'experimental' 'intermediatepkg' 'all' '2.0' 'Depends: libc6' +insertpackage 'experimental' 'intermediateuninstallablepkg' 'all' '2.0' 'Depends: uninstallablepkg' +insertpackage 'experimental' 'phonon-backend-null' 'i386' '5:4.20.0+exp' 'Provides: phonon-backend' +insertpackage 'experimental' 'amarok' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), amarok-utils (= 2.3.2-2+exp), phonon-backend-xine | phonon-backend, libmtp8 (>= 0.3.1), libc6' + +insertpackage 'experimental2' 'phonon-backend-xine' 'i386' '5:4.00.0+exp' 'Provides: phonon-backend' +insertpackage 'experimental2' 'amarok-less' 'i386' '2.3.2-2+exp' 'Depends: amarok-common, phonon-backend-xine (>= 5:4.00.0+exp), libmtp8, libc6, amarok-utils' +insertpackage 'experimental' 'amarok-higher' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine (>= 5:4.6.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' + +insertpackage 'experimental' 'amarok-null' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine (= 1:1.0-1) | phonon-backend, libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' +insertpackage 'experimental' 'amarok-null2' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-null (= 1:1.0-1) | phonon-backend, libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' +insertpackage 'experimental' 'amarok-null2' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-null (= 1:1.0-1) | phonon-backend, libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' +insertpackage 'experimental' 'amarok-xine' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine (= 5:4.6.0+exp) | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' +insertpackage 'experimental' 'amarok-xine2' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine2 (= 5:4.6.0+exp) | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' +insertpackage 'experimental' 'amarok-xine3' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine3 (= 5:4.6.0+exp) | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' +insertpackage 'experimental' 'amarok-xine4' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine4 (= 5:4.6.0+exp) | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' +insertpackage 'experimental' 'amarok-broken' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-broken | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' + +insertpackage 'experimental' 'amarok-recommends' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp) +Recommends: amarok-utils (= 2.3.2-2+exp), phonon-backend-xine | phonon-backend, libmtp8 (>= 0.3.1), libc6' +insertpackage 'experimental' 'amarok-recommends2' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp) +Recommends: amarok-utils (= 2.30.2-2+exp), phonon-backend-xine | phonon-backend, libmtp8 (>= 0.3.1), libc6' + +insertpackage 'experimental' 'uninstallablepkg' 'all' '1.0' 'Depends: libmtp8 (>= 10:0.20.1), amarok-utils (= 2.3.2-2+exp)' + +setupaptarchive + +testequal "Reading package lists... +Building dependency tree... +The following extra packages will be installed: + amarok-common (2.3.1-1+sid) + amarok-utils (2.3.1-1+sid) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +The following NEW packages will be installed: + amarok (2.3.1-1+sid) + amarok-common (2.3.1-1+sid) + amarok-utils (2.3.1-1+sid) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok --trivial-only -V -q=0 + +testequal "Reading package lists... +Building dependency tree... +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.3+exp) + phonon-backend-xine (4.6.0+exp) +The following NEW packages will be installed: + amarok (2.3.2-2+exp) + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.3+exp) + phonon-backend-xine (4.6.0+exp) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok -t experimental --trivial-only -V -q=0 + +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok' +The following extra packages will be installed: + amarok (2.3.2-2+exp) + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +The following NEW packages will be installed: + amarok (2.3.2-2+exp) + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok/experimental --trivial-only -V -q=0 + +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-null' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-null' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-null' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-null (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+sid) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-null (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+sid) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-null/experimental --trivial-only -V -q=0 + +# do not select the same version multiple times +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-null' +The following extra packages will be installed: + amarok (2.3.2-2+exp) + amarok-common (2.3.2-2+exp) + amarok-null (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +The following NEW packages will be installed: + amarok (2.3.2-2+exp) + amarok-common (2.3.2-2+exp) + amarok-null (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. +After this operation, 301 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok/experimental amarok-null/experimental --trivial-only -V -q=0 + +# … but thighten the version if needed +# in theory, the second line is wrong, but printing the right version is too much of a hassle +# (we have to check if later in the Changed list is another change and if so use this version +# instead of the current candidate) - and it wouldn't be (really) useful anyway… +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental2 [i386]) for 'amarok-less' +Selected version '5:4.6.0+exp' (experimental [i386]) for 'phonon-backend-xine' because of 'amarok-less' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-higher' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-higher' +Selected version '5:4.6.0+exp' (experimental [i386]) for 'phonon-backend-xine' because of 'amarok-higher' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-higher' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-higher (2.3.2-2+exp) + amarok-less (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0+exp) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-higher (2.3.2-2+exp) + amarok-less (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0+exp) +0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. +After this operation, 301 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-less/experimental2 amarok-higher/experimental --trivial-only -V -q=0 + +# phonon-backend-null can't be used directly, but as it provides it is still fine… +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-null2' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-null2' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-null2' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-null2 (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+sid) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-null2 (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+sid) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-null2/experimental --trivial-only -V -q=0 + +# if an or-group satisfier is already found, do not set others +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-xine' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-xine' +Selected version '5:4.6.0+exp' (experimental [i386]) for 'phonon-backend-xine' because of 'amarok-xine' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-xine' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0+exp) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0+exp) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-xine/experimental --trivial-only -V -q=0 + +# … but proceed testing if the first doesn't work out +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-xine2' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-xine2' +Selected version '5:4.20.0+exp' (experimental [i386]) for 'phonon-backend-null' because of 'amarok-xine2' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-xine2' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine2 (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+exp) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine2 (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+exp) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-xine2/experimental --trivial-only -V -q=0 + +# sometimes, the second level need to be corrected, too +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-xine3' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-xine3' +Selected version '5:4.6.0+exp' (experimental [i386]) for 'phonon-backend-xine3' because of 'amarok-xine3' +Selected version '2.0' (experimental [all]) for 'intermediatepkg' because of 'phonon-backend-xine3' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-xine3' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine3 (2.3.2-2+exp) + intermediatepkg (2.0) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine3 (4.6.0+exp) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine3 (2.3.2-2+exp) + intermediatepkg (2.0) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine3 (4.6.0+exp) +0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. +After this operation, 301 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-xine3/experimental --trivial-only -V -q=0 + +# … but proceed testing if the first doesn't work out even in second deep +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-xine4' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-xine4' +Selected version '5:4.20.0+exp' (experimental [i386]) for 'phonon-backend-null' because of 'amarok-xine4' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-xine4' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine4 (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+exp) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + amarok-xine4 (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+exp) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-xine4/experimental --trivial-only -V -q=0 + +# providers can be broken, too +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-broken' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-broken' +Selected version '5:4.20.0+exp' (experimental [i386]) for 'phonon-backend-null' because of 'amarok-broken' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-broken' +The following extra packages will be installed: + amarok-broken (2.3.2-2+exp) + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+exp) +The following NEW packages will be installed: + amarok-broken (2.3.2-2+exp) + amarok-common (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-null (4.20.0+exp) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-broken/experimental --trivial-only -V -q=0 + +# switch the candidate for recommends too if they should be installed +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-recommends' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-recommends' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-recommends' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-recommends (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-recommends (2.3.2-2+exp) + amarok-utils (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. +After this operation, 258 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-recommends/experimental --trivial-only -V -q=0 -o APT::Install-Recommends=1 + +# … or not if not +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-recommends' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-recommends' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-recommends (2.3.2-2+exp) +Recommended packages: + amarok-utils (2.3.1-1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) + phonon-backend () + libmtp8 (0.3.1+sid) + libc6 (2.11.2-7+sid) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-recommends (2.3.2-2+exp) +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +After this operation, 86.0 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-recommends/experimental --trivial-only -V -q=0 -o APT::Install-Recommends=0 + +# but broken recommends are not the end of the world +# FIXME: the version output for recommend packages is a bit strange… but what would be better? +testequal "Reading package lists... +Building dependency tree... +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-recommends2' +Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-recommends2' +The following extra packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-recommends2 (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +Recommended packages: + amarok-utils (2.3.1-1+sid) +The following NEW packages will be installed: + amarok-common (2.3.2-2+exp) + amarok-recommends2 (2.3.2-2+exp) + libc6 (2.11.2-7+sid) + libmtp8 (0.3.1+sid) + phonon-backend-xine (4.6.0really4.4.2-1+sid) +0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. +After this operation, 215 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation." aptget install amarok-recommends2/experimental --trivial-only -V -q=0 -o APT::Install-Recommends=1 + +# if one depends doesn't work, we don't need to look deeper… +testequal "Reading package lists... +Building dependency tree... +Selected version '1.0' (experimental [all]) for 'uninstallablepkg' +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + uninstallablepkg : Depends: libmtp8 (>= 10:0.20.1) but it is not going to be installed + Depends: amarok-utils (= 2.3.2-2+exp) but 2.3.1-1+sid is to be installed +E: Broken packages" aptget install uninstallablepkg/experimental --trivial-only -V -q=0 -- cgit v1.2.3 From 6a2512be4addf9a874cc72c40d1ec56206fdd2fb Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 3 Dec 2010 18:05:52 +0100 Subject: really do not show packages in the extra section if they were requested on the commandline, e.g. with a modifier --- cmdline/apt-get.cc | 17 ++++++++--------- debian/changelog | 4 +++- test/integration/test-release-candidate-switching | 16 ---------------- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 476896322..67fc4dc25 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1873,16 +1873,15 @@ bool DoInstall(CommandLine &CmdL) pkgCache::PkgIterator I(Cache,Cache.List[J]); if ((*Cache)[I].Install() == false) continue; + pkgCache::VerIterator Cand = Cache[I].CandidateVerIter(Cache); + if (Cand.Pseudo() == true) + continue; - const char **J; - for (J = CmdL.FileList + 1; *J != 0; J++) - if (strcmp(*J,I.Name()) == 0) - break; - - if (*J == 0) { - List += I.FullName(true) + " "; - VersionsList += string(Cache[I].CandVersion) + "\n"; - } + if (verset[MOD_INSTALL].find(Cand) != verset[MOD_INSTALL].end()) + continue; + + List += I.FullName(true) + " "; + VersionsList += string(Cache[I].CandVersion) + "\n"; } ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList); diff --git a/debian/changelog b/debian/changelog index 9d7564462..2a0b5a8cf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,10 +13,12 @@ apt (0.8.11+wheezy) unstable; urgency=low in the autoremove section and installing those (Closes: #604222) - change pkg/release behavior to use the new SetCandidateRelease so installing packages from experimental or backports is easier + - really do not show packages in the extra section if they were + requested on the commandline, e.g. with a modifier * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) - -- David Kalnischkies Fri, 03 Dec 2010 17:06:28 +0100 + -- David Kalnischkies Fri, 03 Dec 2010 17:30:52 +0100 apt (0.8.10) unstable; urgency=low diff --git a/test/integration/test-release-candidate-switching b/test/integration/test-release-candidate-switching index ea601ae8b..5736945ab 100755 --- a/test/integration/test-release-candidate-switching +++ b/test/integration/test-release-candidate-switching @@ -39,7 +39,6 @@ insertpackage 'experimental' 'amarok-higher' 'i386' '2.3.2-2+exp' 'Depends: amar insertpackage 'experimental' 'amarok-null' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine (= 1:1.0-1) | phonon-backend, libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' insertpackage 'experimental' 'amarok-null2' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-null (= 1:1.0-1) | phonon-backend, libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' -insertpackage 'experimental' 'amarok-null2' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-null (= 1:1.0-1) | phonon-backend, libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' insertpackage 'experimental' 'amarok-xine' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine (= 5:4.6.0+exp) | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' insertpackage 'experimental' 'amarok-xine2' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine2 (= 5:4.6.0+exp) | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' insertpackage 'experimental' 'amarok-xine3' 'i386' '2.3.2-2+exp' 'Depends: amarok-common (= 2.3.2-2+exp), phonon-backend-xine3 (= 5:4.6.0+exp) | phonon-backend-null (= 5:4.20.0+exp), libmtp8 (>= 0.3.1), libc6, amarok-utils (= 2.3.2-2+exp)' @@ -99,7 +98,6 @@ Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok' Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok' Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok' The following extra packages will be installed: - amarok (2.3.2-2+exp) amarok-common (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) libc6 (2.11.2-7+sid) @@ -123,7 +121,6 @@ Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-null' The following extra packages will be installed: amarok-common (2.3.2-2+exp) - amarok-null (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) @@ -147,9 +144,7 @@ Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok' Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-null' The following extra packages will be installed: - amarok (2.3.2-2+exp) amarok-common (2.3.2-2+exp) - amarok-null (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) @@ -180,8 +175,6 @@ Selected version '5:4.6.0+exp' (experimental [i386]) for 'phonon-backend-xine' b Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-higher' The following extra packages will be installed: amarok-common (2.3.2-2+exp) - amarok-higher (2.3.2-2+exp) - amarok-less (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) @@ -206,7 +199,6 @@ Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-null2' The following extra packages will be installed: amarok-common (2.3.2-2+exp) - amarok-null2 (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) @@ -232,7 +224,6 @@ Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because The following extra packages will be installed: amarok-common (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) - amarok-xine (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) phonon-backend-xine (4.6.0+exp) @@ -257,7 +248,6 @@ Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because The following extra packages will be installed: amarok-common (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) - amarok-xine2 (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) phonon-backend-null (4.20.0+exp) @@ -283,7 +273,6 @@ Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because The following extra packages will be installed: amarok-common (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) - amarok-xine3 (2.3.2-2+exp) intermediatepkg (2.0) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) @@ -310,7 +299,6 @@ Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because The following extra packages will be installed: amarok-common (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) - amarok-xine4 (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) phonon-backend-null (4.20.0+exp) @@ -333,7 +321,6 @@ Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because Selected version '5:4.20.0+exp' (experimental [i386]) for 'phonon-backend-null' because of 'amarok-broken' Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-broken' The following extra packages will be installed: - amarok-broken (2.3.2-2+exp) amarok-common (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) libc6 (2.11.2-7+sid) @@ -358,7 +345,6 @@ Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-utils' because of 'amarok-recommends' The following extra packages will be installed: amarok-common (2.3.2-2+exp) - amarok-recommends (2.3.2-2+exp) amarok-utils (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) @@ -381,7 +367,6 @@ Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-recommends' Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-recommends' The following extra packages will be installed: amarok-common (2.3.2-2+exp) - amarok-recommends (2.3.2-2+exp) Recommended packages: amarok-utils (2.3.1-1+sid) phonon-backend-xine (4.6.0really4.4.2-1+sid) @@ -403,7 +388,6 @@ Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-recommends2' Selected version '2.3.2-2+exp' (experimental [all]) for 'amarok-common' because of 'amarok-recommends2' The following extra packages will be installed: amarok-common (2.3.2-2+exp) - amarok-recommends2 (2.3.2-2+exp) libc6 (2.11.2-7+sid) libmtp8 (0.3.1+sid) phonon-backend-xine (4.6.0really4.4.2-1+sid) -- cgit v1.2.3 From df6c9723de23f0c2c3ccf76b7b4310019fd33366 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 3 Dec 2010 19:11:22 +0100 Subject: simplify the new-and-autoremove fix a bit --- cmdline/apt-get.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 67fc4dc25..d586d9ab0 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1647,9 +1647,7 @@ bool DoAutomaticRemove(CacheFile &Cache) bool purgePkgs = _config->FindB("APT::Get::Purge", false); bool smallList = (hideAutoRemove == false && - strcasecmp(_config->Find("APT::Get::HideAutoRemove","").c_str(),"small") == 0) || - // we don't want to autoremove and we don't want to see it, so don't generate lists - (doAutoRemove == false && hideAutoRemove == true); + strcasecmp(_config->Find("APT::Get::HideAutoRemove","").c_str(),"small") == 0); string autoremovelist, autoremoveversions; unsigned long autoRemoveCount = 0; @@ -1677,7 +1675,7 @@ bool DoAutomaticRemove(CacheFile &Cache) if (Cache[Pkg].Install() == true && Pkg.CurrentVer() == 0) Cache->MarkDelete(Pkg, false); // only show stuff in the list that is not yet marked for removal - else if(Cache[Pkg].Delete() == false) + else if(hideAutoRemove == false && Cache[Pkg].Delete() == false) { ++autoRemoveCount; // we don't need to fill the strings if we don't need them -- cgit v1.2.3 From 067cc3695f46704b890211788a85ad05e7004c6d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 3 Dec 2010 19:12:17 +0100 Subject: set the Candidate for all before doing the propargation --- cmdline/apt-get.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index d586d9ab0..0a22fd42b 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -833,6 +833,10 @@ struct TryToInstall { bool propergateReleaseCandiateSwitching(std::list > start, std::ostream &out) { + for (std::list >::const_iterator s = start.begin(); + s != start.end(); ++s) + Cache->GetDepCache()->SetCandidateVersion(s->first); + bool Success = true; std::list > Changed; for (std::list >::const_iterator s = start.begin(); -- cgit v1.2.3 From b99d5aeff24b0b8477e5699ce391bfd63478d742 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 5 Dec 2010 12:46:56 +0100 Subject: experimental is an incomplete archive, so try to get the packages which could not be installed from experimental from unstable instead --- test/integration/create-test-data | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/integration/create-test-data b/test/integration/create-test-data index b93218b7c..581b62910 100755 --- a/test/integration/create-test-data +++ b/test/integration/create-test-data @@ -26,7 +26,7 @@ if [ -z "$LISTOFPKGS" ]; then aptget install $* -t $CODENAME -so Dir::state::status=$WORKDIR/status -o Dir::Cache::archives=$WORKDIR -o pkgCacheGen::Essential=none -o APT::Immediate-Configure=0 exit 1 fi -aptcache show $LISTOFPKGS --no-all-versions 2> /dev/null > $TMPGEN +aptcache show $LISTOFPKGS --no-all-versions 2> $WORKDIR/error.lst > $TMPGEN sed -i $TMPGEN \ -e '/^ / d' \ -e '/^SHA1: / d' -e '/^SHA256: / d' \ @@ -34,6 +34,10 @@ sed -i $TMPGEN \ -e '/^Xul-Appid: / d' \ -e '/^Status: / d' +if [ "$CODENAME" = "experimental" ]; then + aptcache show $(cat $WORKDIR/error.lst | cut -d"'" -f 4 | sed -e 's#$#/sid#') --no-all-versions 2> /dev/null >> $TMPGEN +fi + if echo "$GENERATE" | grep '^status-' > /dev/null; then sed -i $TMPGEN -e '/^Package: / a\ Status: install ok installed' \ -- cgit v1.2.3 From 758729c8084a19859d3c9ccf948bb2ec507b0d0c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 5 Dec 2010 12:59:07 +0100 Subject: check in the DepCache::SetCandidateVersion that the package is marked to be installed before setting the InstallVer as otherwise the Sizes states will be confused in some cases - this can happen now as SetCandidateRelease works also on packages which are not installed now (or will never in the final solution) --- apt-pkg/depcache.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 4a8e53eb3..594c085a5 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1523,7 +1523,7 @@ void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo) RemoveSizes(Pkg); RemoveStates(Pkg); - if (P.CandidateVer == P.InstallVer) + if (P.CandidateVer == P.InstallVer && P.Install() == true) P.InstallVer = (Version *)TargetVer; P.CandidateVer = (Version *)TargetVer; P.Update(Pkg,*this); @@ -1570,6 +1570,7 @@ bool pkgDepCache::SetCandidateRelease(pkgCache::VerIterator TargetVer, std::string const &TargetRel, std::list > &Changed) { + ActionGroup group(*this); SetCandidateVersion(TargetVer); if (TargetRel == "installed" || TargetRel == "candidate") // both doesn't make sense in this context -- cgit v1.2.3 From 92e52a4e9a534f9a9f6408aa19e6bc930d0da5e8 Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Wed, 15 Dec 2010 21:31:08 +0100 Subject: =?UTF-8?q?*=20Spanish=20update=20by=20Javier=20Fern=C3=A1ndez-San?= =?UTF-8?q?guino=20Pe=C3=B1a.=20Closes:=20#607145=20*=20Correct=20a=20typo?= =?UTF-8?q?=20and=20an=20error=20in=20French=20manpages=20translation.=20?= =?UTF-8?q?=20=20Closes:=20#=20607170?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 8 + doc/po/fr.po | 4 +- po/es.po | 1340 +++++++++++++++++++++++++++++------------------------- 3 files changed, 723 insertions(+), 629 deletions(-) diff --git a/debian/changelog b/debian/changelog index aa0ff30d4..df6edcebf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,16 @@ apt (0.8.11) unstable; urgency=low + [ Julian Andres Klode ] * cmdline/apt-cache.cc: Create an error for apt-cache depends if packages could not found (LP: #647045) + [ Programs translations ] + * Spanish update by Javier Fernández-Sanguino Peña. Closes: #607145 + + [ Manpages translations ] + * Correct a typo and an error in French manpages translation. + Closes: # 607170 + -- Julian Andres Klode Tue, 07 Dec 2010 15:47:11 +0100 apt (0.8.10) unstable; urgency=low diff --git a/doc/po/fr.po b/doc/po/fr.po index 124ffe6e4..cd95d1727 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -7895,7 +7895,7 @@ msgid "" "upgraded when apt-get install some-package or apt-get upgrade is executed." msgstr "" -"UEn général, la version installée d'un paquet (priorité 100) n'est pas aussi " +"En général, la version installée d'un paquet (priorité 100) n'est pas aussi " "récente que les versions disponibles dans les sources listées dans le " "fichier &sources-list; (priorité 500 ou 990). Et donc le paquet sera mis à " "niveau avec la commande : apt-get install paquet\"." msgstr "" "L'entrée suivante affecte une priorité basse à toutes les versions d'un " -"paquet appartenant à toute distribution dont le nom d'« Archive » est " +"paquet appartenant à toute distribution dont le nom de code est " "&testing-codename;." #. type: Content of: diff --git a/po/es.po b/po/es.po index f5cd13893..0754945f4 100644 --- a/po/es.po +++ b/po/es.po @@ -1,36 +1,89 @@ # Advanced Package Transfer - APT message translation catalog -# Copyright (C) 2002 Free Software Foundation, Inc. -# Rafael Sepulveda , 2002. -# Asier Llano Palacios -# Ruben Porras Campo 2004 -# Javier Fernandez-Sanguino 2003, 2006-2008 +# Copyright (C) 2002-2010 Free Software Foundation, Inc. +# +# +# Curren translator: +# - Javier Fernandez-Sanguino 2003, 2006-2008 +# +# Previous Translators and reviewers: +# - Rafael Sepulveda , 2002. +# - Asier Llano Palacios +# - Ruben Porras Campo 2004 +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas y normas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# Si tiene dudas o consultas sobre esta traducción consulte con el último +# traductor (campo Last-Translator) y ponga en copia a la lista de +# traducción de Debian al español () +# # msgid "" msgstr "" -"Project-Id-Version: apt 0.7.18\n" +"Project-Id-Version: apt 0.8.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-09-28 17:23+0200\n" -"PO-Revision-Date: 2008-11-15 21:52+0100\n" -"Last-Translator: Javier Fernandez-Sanguino \n" +"PO-Revision-Date: 2010-12-15 00:30+0100\n" +"Last-Translator: Javier Fernández-Sanguino Peña \n" "Language-Team: Debian Spanish \n" -"Language: \n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-POFile-SpellExtra: BD getaddrinfo dist show xvcg Filename sources cachés\n" +"X-POFile-SpellExtra: dumpavail apport scanpackages yes pts URIs upgrade\n" +"X-POFile-SpellExtra: Hash TAR mmap fix Immediate li source add Pathprefix\n" +"X-POFile-SpellExtra: ftparchive policy main URIS qq Resolve Incoming\n" +"X-POFile-SpellExtra: NewFileVer depends get libc GPG URI sdiversions\n" +"X-POFile-SpellExtra: Length Limit PASS ConfFile NewVersion showpkg IPC\n" +"X-POFile-SpellExtra: Super unmet APT registrable NewPackage AddDiversion\n" +"X-POFile-SpellExtra: dists release dselect dir Hmmm debconf force dump ej\n" +"X-POFile-SpellExtra: list Section GraphViz Priority FindPkg gencaches\n" +"X-POFile-SpellExtra: Valid remove Ign DEB PORT LoopBreak tmp ftp\n" +"X-POFile-SpellExtra: AutoRemover stats AF Until delink unmarkauto firms\n" +"X-POFile-SpellExtra: ref Dpkg tar autoremove Obj missing update binary\n" +"X-POFile-SpellExtra: sobreescribe proxy org packages debs generate MD\n" +"X-POFile-SpellExtra: search ProxyLogin limin AllUpgrade Md Range dotty Pre\n" +"X-POFile-SpellExtra: NewFileDesc empaquetamiento root realloc gpgv apt\n" +"X-POFile-SpellExtra: pkgnames Release BinaryPath old DeLink showauto\n" +"X-POFile-SpellExtra: pkgProblemResolver parseable nstall\n" +"X-POFile-SpellExtra: desempaquetamiento script DESACTUALIZARÁN\n" +"X-POFile-SpellExtra: InstallPackages PreDepende lu sobreescribir Packages\n" +"X-POFile-SpellExtra: shell desincronizado override MaxReports cdrom dpkg\n" +"X-POFile-SpellExtra: socket info md Force temp dep CollectFileProvides\n" +"X-POFile-SpellExtra: spartial scansources Only dev purge nfs Intro install\n" +"X-POFile-SpellExtra: deb Sobreescribiendo openpty USER UsePackage vd\n" +"X-POFile-SpellExtra: markauto DB DropNode Content rdepends conf zu hash\n" +"X-POFile-SpellExtra: check contents paq Err Sources MMap lih decompresor\n" +"X-POFile-SpellExtra: build config EPRT http Package liseg dscs Remove\n" +"X-POFile-SpellExtra: sortpkgs sB man extracttemplates bzr potato clear\n" +"X-POFile-SpellExtra: autoclean showsrc desactualizados clean gzip TYPE\n" +"X-POFile-SpellExtra: sinfo Acquire\n" #: cmdline/apt-cache.cc:156 #, c-format msgid "Package %s version %s has an unmet dep:\n" -msgstr "El paquete %s versin %s tiene dependencias incumplidas:\n" +msgstr "El paquete %s versión %s tiene dependencias incumplidas:\n" #: cmdline/apt-cache.cc:284 msgid "Total package names: " msgstr "Nombres de paquetes totales: " #: cmdline/apt-cache.cc:286 -#, fuzzy msgid "Total package structures: " -msgstr "Nombres de paquetes totales: " +msgstr "Estructuras de paquetes totales: " #: cmdline/apt-cache.cc:326 msgid " Normal packages: " @@ -42,7 +95,7 @@ msgstr " Paquetes virtuales puros: " #: cmdline/apt-cache.cc:328 msgid " Single virtual packages: " -msgstr " Paquetes virtuales nicos: " +msgstr " Paquetes virtuales únicos: " #: cmdline/apt-cache.cc:329 msgid " Mixed virtual packages: " @@ -58,7 +111,7 @@ msgstr "Versiones diferentes totales: " #: cmdline/apt-cache.cc:334 msgid "Total distinct descriptions: " -msgstr "Descipciones diferentes totales: " +msgstr "Descripciones diferentes totales: " #: cmdline/apt-cache.cc:336 msgid "Total dependencies: " @@ -66,11 +119,11 @@ msgstr "Dependencias totales: " #: cmdline/apt-cache.cc:339 msgid "Total ver/file relations: " -msgstr "Relaciones versin/archivo totales: " +msgstr "Relaciones versión/archivo totales: " #: cmdline/apt-cache.cc:341 msgid "Total Desc/File relations: " -msgstr "Relaciones descripcin/archivo totales: " +msgstr "Relaciones descripción/archivo totales: " #: cmdline/apt-cache.cc:343 msgid "Total Provides mappings: " @@ -83,7 +136,7 @@ msgstr "Cadenas globalizadas totales: " #: cmdline/apt-cache.cc:369 msgid "Total dependency version space: " -msgstr "Espacio de versin de dependencias total: " +msgstr "Espacio de versión de dependencias total: " #: cmdline/apt-cache.cc:374 msgid "Total slack space: " @@ -96,17 +149,16 @@ msgstr "Espacio registrado total: " #: cmdline/apt-cache.cc:513 cmdline/apt-cache.cc:1194 #, c-format msgid "Package file %s is out of sync." -msgstr "El archivo de paquetes %s est desincronizado." +msgstr "El archivo de paquetes %s está desincronizado." #: cmdline/apt-cache.cc:1273 -#, fuzzy msgid "You must give at least one search pattern" -msgstr "Debes dar cuando menos un nombre de archivo" +msgstr "Debe proporcionar al menos un patrón de búsqueda" #: cmdline/apt-cache.cc:1429 cmdline/apt-cache.cc:1431 #: cmdline/apt-cache.cc:1508 msgid "No packages found" -msgstr "No se encontr ningn paquete" +msgstr "No se encontró ningún paquete" #: cmdline/apt-cache.cc:1503 apt-pkg/cacheset.cc:440 #, c-format @@ -120,7 +172,7 @@ msgstr "Archivos de paquetes:" #: cmdline/apt-cache.cc:1540 cmdline/apt-cache.cc:1638 msgid "Cache is out of sync, can't x-ref a package file" msgstr "" -"Cach fuera de sincronismo, no se puede hacer x-ref a un archivo de paquetes" +"Caché fuera de sincronismo, no se puede hacer x-ref a un archivo de paquetes" #. Show any packages have explicit pins #: cmdline/apt-cache.cc:1554 @@ -150,7 +202,7 @@ msgstr " Pin del paquete: " #. Show the priority tables #: cmdline/apt-cache.cc:1624 msgid " Version table:" -msgstr " Tabla de versin:" +msgstr " Tabla de versión:" #: cmdline/apt-cache.cc:1738 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589 @@ -160,7 +212,6 @@ msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s para %s compilado en %s %s\n" #: cmdline/apt-cache.cc:1745 -#, fuzzy msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] add file1 [file2 ...]\n" @@ -199,59 +250,63 @@ msgid "" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" msgstr "" -"Uso: apt-cache [opciones] orden\n" -" apt-cache [opciones] add archivo1 [archivo2 ...]\n" -" apt-cache [opciones] showpkg paq1 [paq2 ...]\n" -" apt-cache [opciones] showsrc paq1 [paq2 ...]\n" +"Modo de uso: apt-cache [opciones] orden\n" +" apt-cache [opciones] add archivo1 [archivo2 ...]\n" +" apt-cache [opciones] showpkg paq1 [paq2 ...]\n" +" apt-cache [opciones] showsrc paq1 [paq2 ...]\n" "\n" "apt-cache es una herramienta de bajo nivel que se utiliza para manipular\n" -"los archivos binarios de cach de APT y consultar informacin sobre stos\n" +"los archivos binarios de caché de APT y consultar información sobre " +"éstos\n" "\n" -"rdenes:\n" -" add - Agrega un archivo de paquete a la cach fuente\n" -" gencaches - Crea el ambas cachs, la de paquetes y la de fuentes\n" -" showpkg - Muestra alguna informacin general para un slo paquete\n" -" showsrc - Muestra la informacin de fuente\n" -" stats - Muestra algunas estadsticas bsicas\n" +"Órdenes:\n" +" add - Agrega un archivo de paquete a la caché de fuentes\n" +" gencaches - Crea ambas cachés, la de paquetes y la de fuentes\n" +" showpkg - Muestra información general para un solo paquete\n" +" showsrc - Muestra la información de fuentes\n" +" stats - Muestra algunas estadísticas básicas\n" " dump - Muestra el archivo entero en un formato terso\n" -" dumpavail - Imprime un archivo disponible a la salida estndar\n" +" dumpavail - Imprime un archivo disponible a la salida estándar\n" " unmet - Muestra dependencias incumplidas\n" -" search - Busca en la lista de paquetes por un patrn de expresin " +" search - Busca en la lista de paquetes por un patrón de expresión " "regular\n" " show - Muestra un registro legible para el paquete\n" -" depends - Muestra la informacin de dependencias en bruto para el " +" showauto - Muestra una lista de los paquetes instalados de forma autom" +"tica\n" +" depends - Muestra la información de dependencias en bruto para el " "paquete\n" -" rdepends - Muestra la informacin de dependencias inversas del paquete\n" +" rdepends - Muestra la información de dependencias inversas del paquete\n" " pkgnames - Lista los nombres de todos los paquetes en el sistema\n" -" dotty - Genera grficas del paquete para GraphViz\n" -" xvcg - Genera grficas del paquete para xvcg\n" -" policy - Muestra parmetros de las normas\n" +" dotty - Genera gráficas del paquete para GraphViz\n" +" xvcg - Genera gráficas del paquete para xvcg\n" +" policy - Muestra parámetros de las normas\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" -" -p=? El cache del paquete.\n" -" -s=? El cache del fuente.\n" +" -p=? La caché de paquetes.\n" +" -s=? La caché de fuentes.\n" " -q Deshabilita el indicador de progreso.\n" -" -i Muestra slo dependencias importantes para la orden incumplida.\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, ej -o dir::\n" -"cache=/tmp\n" -"Vea las pginas del manual apt-cache(8) y apt.conf(5) para ms informacin.\n" +" -i Muestra sólo dependencias importantes para la orden incumplida.\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, \n" +" p.ej. -o dir::cache=/tmp\n" +"Vea las páginas del manual apt-cache(8) y apt.conf(5) para más " +"información.\n" #: cmdline/apt-cdrom.cc:77 -#, fuzzy msgid "Please provide a name for this Disc, such as 'Debian 5.0.3 Disk 1'" msgstr "" -"Por favor provea un nombre para este disco, como 'Debian 2.1r1 Disco 1'" +"Proporcione un nombre para este disco, como pueda ser «Debian 5.0.3 Disco " +"1»" #: cmdline/apt-cdrom.cc:92 msgid "Please insert a Disc in the drive and press enter" -msgstr "Por favor inserte un disco en la unidad y presione Intro" +msgstr "Por favor, introduzca un disco en la unidad y pulse Intro" #: cmdline/apt-cdrom.cc:127 -#, fuzzy, c-format +#, c-format msgid "Failed to mount '%s' to '%s'" -msgstr "Fall el renombre de %s a %s" +msgstr "No se pudo montar «%s» como «%s»" #: cmdline/apt-cdrom.cc:162 msgid "Repeat this process for the rest of the CDs in your set." @@ -278,22 +333,23 @@ msgid "" msgstr "" "Uso: apt-config [opciones] orden\n" "\n" -"apt-config es una herramienta para leer el archivo de configuracin de APT.\n" +"apt-config es una herramienta para leer el archivo de configuración de " +"APT.\n" "\n" "Comandos:\n" " shell - Modo shell\n" -" dump - Muestra la configuracin\n" +" dump - Muestra la configuración\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" " cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:98 #, c-format msgid "%s not a valid DEB package." -msgstr "%s no es un paquete DEB vlido." +msgstr "%s no es un paquete DEB válido." #: cmdline/apt-extracttemplates.cc:232 msgid "" @@ -310,14 +366,14 @@ msgid "" msgstr "" "Uso: apt-extracttemplates archivo1 [archivo2 ...]\n" "\n" -"apt-extracttemplates es una herramienta para extraer informacin de\n" -"configuracin y plantillas de paquetes de debian.\n" +"apt-extracttemplates es una herramienta para extraer información de\n" +"configuración y plantillas de paquetes de debian.\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" " -t Define el directorio temporal\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::" "cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1171 @@ -327,11 +383,12 @@ msgstr "No se puede escribir en %s" #: cmdline/apt-extracttemplates.cc:309 msgid "Cannot get debconf version. Is debconf installed?" -msgstr "No se puede encontrar la versin de debconf. Est debconf instalado?" +msgstr "" +"No se puede encontrar la versión de debconf. ¿Está debconf instalado?" #: ftparchive/apt-ftparchive.cc:170 ftparchive/apt-ftparchive.cc:347 msgid "Package extension list is too long" -msgstr "La lista de extensin de paquetes es demasiado larga" +msgstr "La lista de extensión de paquetes es demasiado larga" #: ftparchive/apt-ftparchive.cc:172 ftparchive/apt-ftparchive.cc:189 #: ftparchive/apt-ftparchive.cc:212 ftparchive/apt-ftparchive.cc:262 @@ -342,7 +399,7 @@ msgstr "Error procesando el directorio %s" #: ftparchive/apt-ftparchive.cc:260 msgid "Source extension list is too long" -msgstr "La lista de extensin de fuentes es demasiado larga" +msgstr "La lista de extensión de fuentes es demasiado larga" #: ftparchive/apt-ftparchive.cc:377 msgid "Error writing header to contents file" @@ -404,53 +461,53 @@ msgstr "" " generate config [grupos]\n" " clean config\n" "\n" -"apt-ftparchive genera ndices para archivos de Debian. Soporta\n" -"varios estilos de generacin de reemplazos desde los completamente\n" +"apt-ftparchive genera índices para archivos de Debian. Soporta\n" +"varios estilos de generación de reemplazos desde los completamente\n" "automatizados a los funcionales para dpkg-scanpackages y dpkg-scansources.\n" "\n" -"apt-ftparchive genera ficheros Package de un rbol de .debs. El fichero\n" +"apt-ftparchive genera ficheros Package de un árbol de .debs. El fichero\n" "Package contiene los contenidos de todos los campos de control de cada\n" -"paquete al igual que la suma MD5 y el tamao del archivo. Se puede usar\n" +"paquete al igual que la suma MD5 y el tamaño del archivo. Se puede usar\n" "un archivo de predominio para forzar el valor de Priority y\n" "Section.\n" "\n" -"Igualmente, apt-ftparchive genera ficheros Sources para un rbol de\n" -".dscs. Se puede utilizar la opcin --source-override para especificar un\n" +"Igualmente, apt-ftparchive genera ficheros Sources para un árbol de\n" +".dscs. Se puede utilizar la opción --source-override para especificar un\n" "fichero de predominio de fuente.\n" "\n" -"Las rdenes packages y sources deben ejecutarse en la raz del\n" -"rbol. BinaryPath debe apuntar a la base de la bsqueda\n" +"Las órdenes «packages» y «sources» deben ejecutarse en la raíz del\n" +"árbol. BinaryPath debe apuntar a la base de la búsqueda\n" "recursiva, y el archivo de predominio debe de contener banderas de\n" -"predominio. Se aade Pathprefix a los campos de nombre de fichero\n" -"si existen. A continuacin se muestra un ejemplo de uso basado en los \n" +"predominio. Se añade Pathprefix a los campos de nombre de fichero\n" +"si existen. A continuación se muestra un ejemplo de uso basado en los \n" "archivos de Debian:\n" " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\\\n" " dists/potato/main/binary-i386/Packages\n" "\n" "Opciones:\n" " -h Este texto de ayuda\n" -" --md5 Generacin de control MD5 \n" +" --md5 Generación de control MD5 \n" " -s=? Archivo fuente de predominio\n" " -q Silencioso\n" -" -d=? Selecciona la base de datos de cach opcional \n" -" --no-delink Habilita modo de depuracin delink\n" -" --contents Generacin del contenido del archivo Control\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria" +" -d=? Selecciona la base de datos de caché opcional \n" +" --no-delink Habilita modo de depuración delink\n" +" --contents Generación del contenido del archivo «Control»\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria" #: ftparchive/apt-ftparchive.cc:801 msgid "No selections matched" -msgstr "Ninguna seleccin coincide" +msgstr "Ninguna selección coincide" #: ftparchive/apt-ftparchive.cc:879 #, c-format msgid "Some files are missing in the package file group `%s'" -msgstr "Faltan algunos archivos en el grupo de archivo de paquetes `%s'" +msgstr "Faltan algunos archivos en el grupo de archivo de paquetes «%s»" #: ftparchive/cachedb.cc:43 #, c-format msgid "DB was corrupted, file renamed to %s.old" -msgstr "BD corrompida, archivo renombrado a %s.old" +msgstr "BD dañada, se renombró el archivo a %s.old" #: ftparchive/cachedb.cc:61 #, c-format @@ -458,13 +515,12 @@ msgid "DB is old, attempting to upgrade %s" msgstr "DB anticuada, intentando actualizar %s" #: ftparchive/cachedb.cc:72 -#, fuzzy msgid "" "DB format is invalid. If you upgraded from an older version of apt, please " "remove and re-create the database." msgstr "" -"El formato de la base de datos no es vlido. Debe eliminar y recrear la base " -"de datos si ha actualizado de una versin anterior de apt." +"El formato de la base de datos no es válido. Debe eliminar y recrear la " +"base de datos si vd. se actualizó de una versión anterior de apt." #: ftparchive/cachedb.cc:77 #, c-format @@ -505,7 +561,7 @@ msgstr "A: " #: ftparchive/writer.cc:143 msgid "E: Errors apply to file " -msgstr "E: Errores aplicables al archivo '" +msgstr "E: Errores aplicables al archivo " #: ftparchive/writer.cc:161 ftparchive/writer.cc:193 #, c-format @@ -514,7 +570,7 @@ msgstr "No se pudo resolver %s" #: ftparchive/writer.cc:174 msgid "Tree walking failed" -msgstr "Fall el recorrido por el rbol." +msgstr "Falló el recorrido por el árbol." #: ftparchive/writer.cc:201 #, c-format @@ -544,7 +600,7 @@ msgstr "*** No pude enlazar %s con %s" #: ftparchive/writer.cc:289 #, c-format msgid " DeLink limit of %sB hit.\n" -msgstr " DeLink se ha llegado al lmite de %sB.\n" +msgstr " DeLink se ha llegado al límite de %sB.\n" #: ftparchive/writer.cc:393 msgid "Archive had no package field" @@ -587,17 +643,17 @@ msgstr "No se pudo abrir %s" #: ftparchive/override.cc:60 ftparchive/override.cc:166 #, c-format msgid "Malformed override %s line %lu #1" -msgstr "Predominio mal formado %s lnea %lu #1" +msgstr "Predominio mal formado %s línea %lu #1" #: ftparchive/override.cc:74 ftparchive/override.cc:178 #, c-format msgid "Malformed override %s line %lu #2" -msgstr "Predominio mal formado %s lnea %lu #2" +msgstr "Predominio mal formado %s línea %lu #2" #: ftparchive/override.cc:88 ftparchive/override.cc:191 #, c-format msgid "Malformed override %s line %lu #3" -msgstr "Predominio mal formado %s lnea %lu #3" +msgstr "Predominio mal formado %s línea %lu #3" #: ftparchive/override.cc:127 ftparchive/override.cc:201 #, c-format @@ -607,16 +663,16 @@ msgstr "No se pudo leer el archivo de predominio %s" #: ftparchive/multicompress.cc:72 #, c-format msgid "Unknown compression algorithm '%s'" -msgstr "Algoritmo desconocido de compresin '%s'" +msgstr "Algoritmo desconocido de compresión «%s»" #: ftparchive/multicompress.cc:102 #, c-format msgid "Compressed output %s needs a compression set" -msgstr "Salida comprimida %s necesita una herramienta de compresin" +msgstr "Salida comprimida %s necesita una herramienta de compresión" #: ftparchive/multicompress.cc:169 methods/rsh.cc:91 msgid "Failed to create IPC pipe to subprocess" -msgstr "Fall la creacin de una tubera IPC para el subproceso" +msgstr "Falló la creación de una tubería IPC para el subproceso" #: ftparchive/multicompress.cc:195 msgid "Failed to create FILE*" @@ -628,7 +684,7 @@ msgstr "No se pudo bifurcar" #: ftparchive/multicompress.cc:212 msgid "Compress child" -msgstr "Hijo compresin" +msgstr "Hijo compresión" #: ftparchive/multicompress.cc:235 #, c-format @@ -649,7 +705,7 @@ msgstr "decompresor" #: ftparchive/multicompress.cc:403 msgid "IO to subprocess/file failed" -msgstr "Fall la ES a subproceso/archivo" +msgstr "Falló la ES a subproceso/archivo" #: ftparchive/multicompress.cc:455 msgid "Failed to read while computing MD5" @@ -658,12 +714,12 @@ msgstr "No se pudo leer mientras se computaba MD5" #: ftparchive/multicompress.cc:472 #, c-format msgid "Problem unlinking %s" -msgstr "Hay problemas desligando %s" +msgstr "Se produjo un problema al desligar %s" #: ftparchive/multicompress.cc:487 apt-inst/extract.cc:185 #, c-format msgid "Failed to rename %s to %s" -msgstr "Fall el renombre de %s a %s" +msgstr "Falló el renombre de %s a %s" #: cmdline/apt-get.cc:135 msgid "Y" @@ -672,7 +728,7 @@ msgstr "S" #: cmdline/apt-get.cc:157 apt-pkg/cachefilter.cc:29 #, c-format msgid "Regex compilation error - %s" -msgstr "Error de compilacin de expresiones regulares - %s" +msgstr "Error de compilación de expresiones regulares - %s" #: cmdline/apt-get.cc:252 msgid "The following packages have unmet dependencies:" @@ -681,7 +737,7 @@ msgstr "Los siguientes paquetes tienen dependencias incumplidas:" #: cmdline/apt-get.cc:342 #, c-format msgid "but %s is installed" -msgstr "pero %s est instalado" +msgstr "pero %s está instalado" #: cmdline/apt-get.cc:344 #, c-format @@ -698,7 +754,7 @@ msgstr "pero es un paquete virtual" #: cmdline/apt-get.cc:356 msgid "but it is not installed" -msgstr "pero no est instalado" +msgstr "pero no está instalado" #: cmdline/apt-get.cc:356 msgid "but it is not going to be installed" @@ -710,11 +766,11 @@ msgstr " o" #: cmdline/apt-get.cc:392 msgid "The following NEW packages will be installed:" -msgstr "Se instalarn los siguientes paquetes NUEVOS:" +msgstr "Se instalarán los siguientes paquetes NUEVOS:" #: cmdline/apt-get.cc:420 msgid "The following packages will be REMOVED:" -msgstr "Los siguientes paquetes se ELIMINARN:" +msgstr "Los siguientes paquetes se ELIMINARÁN:" #: cmdline/apt-get.cc:442 msgid "The following packages have been kept back:" @@ -722,15 +778,15 @@ msgstr "Los siguientes paquetes se han retenido:" #: cmdline/apt-get.cc:465 msgid "The following packages will be upgraded:" -msgstr "Se actualizarn los siguientes paquetes:" +msgstr "Se actualizarán los siguientes paquetes:" #: cmdline/apt-get.cc:488 msgid "The following packages will be DOWNGRADED:" -msgstr "Se DESACTUALIZARN los siguientes paquetes:" +msgstr "Se DESACTUALIZARÁN los siguientes paquetes:" #: cmdline/apt-get.cc:508 msgid "The following held packages will be changed:" -msgstr "Se cambiarn los siguientes paquetes retenidos:" +msgstr "Se cambiarán los siguientes paquetes retenidos:" #: cmdline/apt-get.cc:561 #, c-format @@ -743,12 +799,12 @@ msgid "" "This should NOT be done unless you know exactly what you are doing!" msgstr "" "AVISO: Se van a eliminar los siguientes paquetes esenciales.\n" -"NO debe hacerse a menos que sepa exactamente lo que est haciendo!" +"¡NO debe hacerse a menos que sepa exactamente lo que está haciendo!" #: cmdline/apt-get.cc:603 #, c-format msgid "%lu upgraded, %lu newly installed, " -msgstr "%lu actualizados, %lu se instalarn, " +msgstr "%lu actualizados, %lu se instalarán, " #: cmdline/apt-get.cc:607 #, c-format @@ -771,19 +827,19 @@ msgid "%lu not fully installed or removed.\n" msgstr "%lu no instalados del todo o eliminados.\n" #: cmdline/apt-get.cc:635 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' for task '%s'\n" -msgstr "Nota, seleccionando %s para la expresin regular '%s'\n" +msgstr "Nota, seleccionando «%s» para la tarea «%s»\n" #: cmdline/apt-get.cc:641 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' for regex '%s'\n" -msgstr "Nota, seleccionando %s para la expresin regular '%s'\n" +msgstr "Nota, seleccionando «%s» para la expresión regular «%s»\n" #: cmdline/apt-get.cc:648 -#, fuzzy, c-format +#, c-format msgid "Selected version '%s' (%s) for '%s'\n" -msgstr "Versin seleccionada %s (%s) para %s\n" +msgstr "Versión seleccionada «%s» (%s) para «%s»\n" #: cmdline/apt-get.cc:658 #, c-format @@ -795,13 +851,12 @@ msgid " [Installed]" msgstr " [Instalado]" #: cmdline/apt-get.cc:678 -#, fuzzy msgid " [Not candidate version]" -msgstr "Versiones candidatas" +msgstr " [No es la versión candidata]" #: cmdline/apt-get.cc:680 msgid "You should explicitly select one to install." -msgstr "Necesita seleccionar explcitamente uno para instalar." +msgstr "Necesita seleccionar explícitamente uno para instalar." #: cmdline/apt-get.cc:683 #, c-format @@ -810,8 +865,9 @@ msgid "" "This may mean that the package is missing, has been obsoleted, or\n" "is only available from another source\n" msgstr "" -"El paquete %s no est disponible, pero algn otro paquete hace referencia\n" -"a l. Esto puede significar que el paquete falta, est obsoleto o slo se\n" +"El paquete %s no está disponible, pero algún otro paquete hace referencia\n" +"a él. Esto puede significar que el paquete falta, está obsoleto o sólo " +"se\n" "encuentra disponible desde alguna otra fuente\n" #: cmdline/apt-get.cc:701 @@ -819,29 +875,32 @@ msgid "However the following packages replace it:" msgstr "Sin embargo, los siguientes paquetes lo reemplazan:" #: cmdline/apt-get.cc:713 -#, fuzzy, c-format +#, c-format msgid "Package '%s' has no installation candidate" -msgstr "El paquete %s no tiene candidato para su instalacin" +msgstr "El paquete «%s» no tiene un candidato para la instalación" #: cmdline/apt-get.cc:724 #, c-format msgid "Virtual packages like '%s' can't be removed\n" -msgstr "" +msgstr "No pueden eliminarse los paquetes virtuales como «%s»\n" #: cmdline/apt-get.cc:755 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' instead of '%s'\n" -msgstr "Nota, seleccionando %s en lugar de %s\n" +msgstr "Nota, seleccionando «%s» en lugar de «%s»\n" #: cmdline/apt-get.cc:785 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" -msgstr "Ignorando %s, ya esta instalado y la actualizacin no esta activada.\n" +msgstr "" +"Ignorando %s, ya está instalado y no está activada la actualización.\n" #: cmdline/apt-get.cc:789 -#, fuzzy, c-format +#, c-format msgid "Skipping %s, it is not installed and only upgrades are requested.\n" -msgstr "Ignorando %s, ya esta instalado y la actualizacin no esta activada.\n" +msgstr "" +"Ignorando %s, no está instalado y sólo se están solicitando " +"actualizaciones.\n" #: cmdline/apt-get.cc:799 #, c-format @@ -851,7 +910,7 @@ msgstr "No es posible reinstalar el paquete %s, no se puede descargar.\n" #: cmdline/apt-get.cc:804 #, c-format msgid "%s is already the newest version.\n" -msgstr "%s ya est en su versin ms reciente.\n" +msgstr "%s ya está en su versión más reciente.\n" #: cmdline/apt-get.cc:823 cmdline/apt-get.cc:1992 #, c-format @@ -861,7 +920,7 @@ msgstr "fijado %s como instalado manualmente.\n" #: cmdline/apt-get.cc:863 #, c-format msgid "Package %s is not installed, so not removed\n" -msgstr "El paquete %s no esta instalado, no se eliminar\n" +msgstr "El paquete %s no está instalado, no se eliminará\n" #: cmdline/apt-get.cc:938 msgid "Correcting dependencies..." @@ -869,7 +928,7 @@ msgstr "Corrigiendo dependencias..." #: cmdline/apt-get.cc:941 msgid " failed." -msgstr " fall." +msgstr " falló." #: cmdline/apt-get.cc:944 msgid "Unable to correct dependencies" @@ -877,7 +936,7 @@ msgstr "No se puede corregir las dependencias" #: cmdline/apt-get.cc:947 msgid "Unable to minimize the upgrade set" -msgstr "No se puede minimizar el conjunto de actualizacin" +msgstr "No se puede minimizar el conjunto de actualización" #: cmdline/apt-get.cc:949 msgid " Done" @@ -885,7 +944,7 @@ msgstr " Listo" #: cmdline/apt-get.cc:953 msgid "You might want to run 'apt-get -f install' to correct these." -msgstr "Tal vez quiera ejecutar 'apt-get -f install' para corregirlo." +msgstr "Tal vez quiera ejecutar «apt-get -f install» para corregirlo." #: cmdline/apt-get.cc:956 msgid "Unmet dependencies. Try using -f." @@ -893,15 +952,15 @@ msgstr "Dependencias incumplidas. Pruebe de nuevo usando -f." #: cmdline/apt-get.cc:981 msgid "WARNING: The following packages cannot be authenticated!" -msgstr "AVISO: No se han podido autenticar los siguientes paquetes!" +msgstr "AVISO: ¡No se han podido autenticar los siguientes paquetes!" #: cmdline/apt-get.cc:985 msgid "Authentication warning overridden.\n" -msgstr "Aviso de autenticacin ignorado.\n" +msgstr "Aviso de autenticación ignorado.\n" #: cmdline/apt-get.cc:992 msgid "Install these packages without verification [y/N]? " -msgstr "Instalar estos paquetes sin verificacin [s/N]? " +msgstr "¿Instalar estos paquetes sin verificación [s/N]? " #: cmdline/apt-get.cc:994 msgid "Some packages could not be authenticated" @@ -909,25 +968,27 @@ msgstr "Algunos paquetes no se pueden autenticar" #: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:1166 msgid "There are problems and -y was used without --force-yes" -msgstr "Hay problemas y se utiliz -y sin --force-yes" +msgstr "Hay problemas y se utilizó -y sin --force-yes" #: cmdline/apt-get.cc:1044 msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "Error interno, InstallPackages fue llamado con un paquete roto!" +msgstr "Error interno, ¡se llamó a «InstallPackages» con paquetes rotos!" #: cmdline/apt-get.cc:1053 msgid "Packages need to be removed but remove is disabled." -msgstr "Los paquetes necesitan eliminarse pero Remove est deshabilitado." +msgstr "" +"Los paquetes necesitan eliminarse pero está deshabilitado la posibilidad de " +"eliminar." #: cmdline/apt-get.cc:1064 msgid "Internal error, Ordering didn't finish" -msgstr "Error interno, no termin el ordenamiento" +msgstr "Error interno, no terminó la ordenación" #: cmdline/apt-get.cc:1104 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Que raro.. Los tamaos no concuerdan, mande un correo a \n" -"apt@packages.debian.org" +"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 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -949,14 +1010,15 @@ msgstr "Necesito descargar %sB de archivos.\n" #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "" -"Se utilizarn %sB de espacio de disco adicional despus de esta operacin.\n" +"Se utilizarán %sB de espacio de disco adicional después de esta " +"operación.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB #: cmdline/apt-get.cc:1128 #, c-format msgid "After this operation, %sB disk space will be freed.\n" -msgstr "Se liberarn %sB despus de esta operacin.\n" +msgstr "Se liberarán %sB después de esta operación.\n" #: cmdline/apt-get.cc:1143 cmdline/apt-get.cc:1146 cmdline/apt-get.cc:2332 #: cmdline/apt-get.cc:2335 @@ -971,11 +1033,11 @@ msgstr "No tiene suficiente espacio libre en %s." #: cmdline/apt-get.cc:1172 cmdline/apt-get.cc:1192 msgid "Trivial Only specified but this is not a trivial operation." -msgstr "Se especific Trivial Only pero sta no es una operacin trivial." +msgstr "Se especificó Trivial Only pero ésta no es una operación trivial." #: cmdline/apt-get.cc:1174 msgid "Yes, do as I say!" -msgstr "S, haga lo que le digo!" +msgstr "Sí, ¡haga lo que le digo!" #: cmdline/apt-get.cc:1176 #, c-format @@ -984,8 +1046,8 @@ msgid "" "To continue type in the phrase '%s'\n" " ?] " msgstr "" -"Est a punto de hacer algo potencialmente daino\n" -"Para continuar escriba la frase %s\n" +"Está a punto de hacer algo potencialmente dañino\n" +"Para continuar escriba la frase «%s»\n" " ?] " #: cmdline/apt-get.cc:1182 cmdline/apt-get.cc:1201 @@ -994,7 +1056,7 @@ msgstr "Abortado." #: cmdline/apt-get.cc:1197 msgid "Do you want to continue [Y/n]? " -msgstr "Desea continuar [S/n]? " +msgstr "¿Desea continuar [S/n]? " #: cmdline/apt-get.cc:1269 cmdline/apt-get.cc:2392 apt-pkg/algorithms.cc:1462 #, c-format @@ -1003,23 +1065,23 @@ msgstr "Imposible obtener %s %s\n" #: cmdline/apt-get.cc:1287 msgid "Some files failed to download" -msgstr "Algunos archivos no pudieron descargarse" +msgstr "No se pudieron descargar algunos archivos" #: cmdline/apt-get.cc:1288 cmdline/apt-get.cc:2401 msgid "Download complete and in download only mode" -msgstr "Descarga completa y en modo de slo descarga" +msgstr "Descarga completa y en modo de sólo descarga" #: cmdline/apt-get.cc:1294 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -"No se pudieron obtener algunos archivos, quizs deba ejecutar\n" -"apt-get update o deba intentarlo de nuevo con --fix-missing?" +"No se pudieron obtener algunos archivos, ¿quizás deba ejecutar «apt-get " +"update» o deba intentarlo de nuevo con --fix-missing?" #: cmdline/apt-get.cc:1298 msgid "--fix-missing and media swapping is not currently supported" -msgstr "Actualmente no estn soportados --fix-missing e intercambio de medio" +msgstr "Actualmente no están soportados --fix-missing e intercambio de medio" #: cmdline/apt-get.cc:1303 msgid "Unable to correct missing packages." @@ -1027,7 +1089,7 @@ msgstr "No se pudieron corregir los paquetes que faltan." #: cmdline/apt-get.cc:1304 msgid "Aborting install." -msgstr "Abortando la instalacin." +msgstr "Abortando la instalación." #: cmdline/apt-get.cc:1332 msgid "" @@ -1037,74 +1099,76 @@ msgid_plural "" "The following packages disappeared from your system as\n" "all files have been overwritten by other packages:" msgstr[0] "" +"El paquete mostrado a continuación ha desaparecido de su sistema\n" +"dado que todos sus ficheros han sido sobreescritos por otros paquetes:" msgstr[1] "" +"Los paquetes mostrados a continuación han desaparecido de su sistema\n" +"dado que todos sus ficheros han sido sobreescritos por otros paquetes:" #: cmdline/apt-get.cc:1336 msgid "Note: This is done automatic and on purpose by dpkg." -msgstr "" +msgstr "Nota: Dpkg realiza esto de forma automática y a propósito." #: cmdline/apt-get.cc:1466 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" msgstr "" +"Ignorar la distribución objetivo no disponible «%s» del paquete «%s»" #: cmdline/apt-get.cc:1498 -#, fuzzy, c-format +#, c-format msgid "Picking '%s' as source package instead of '%s'\n" -msgstr "No se puede leer la lista de paquetes fuente %s" +msgstr "Escogiendo «%s» como paquete fuente en lugar de «%s»\n" #. if (VerTag.empty() == false && Last == 0) #: cmdline/apt-get.cc:1536 #, c-format msgid "Ignore unavailable version '%s' of package '%s'" -msgstr "" +msgstr "Ignorar la versión no disponible «%s» del paquete «%s»" #: cmdline/apt-get.cc:1552 msgid "The update command takes no arguments" -msgstr "El comando de actualizacin no toma argumentos" +msgstr "El comando de actualización no toma argumentos" #: cmdline/apt-get.cc:1618 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -"Se supone que no vamos a eliminar cosas, no se pudo iniciar AutoRemover" +"Se supone que no vamos a eliminar cosas, no se pudo iniciar «AutoRemover»" #: cmdline/apt-get.cc:1666 -#, fuzzy msgid "" "The following package was automatically installed and is no longer required:" msgid_plural "" "The following packages were automatically installed and are no longer " "required:" msgstr[0] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." +"El paquete indicado a continuación se instaló de forma automática y ya no " +"es necesarios." msgstr[1] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." +"Los paquetes indicados a continuación se instalaron de forma automática y " +"ya no son necesarios." #: cmdline/apt-get.cc:1670 -#, fuzzy, c-format +#, c-format msgid "%lu package was automatically installed and is no longer required.\n" msgid_plural "" "%lu packages were automatically installed and are no longer required.\n" msgstr[0] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." +"Se instaló de forma automática %lu paquete y ya no es necesario.\n" msgstr[1] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." +"Se instalaron de forma automática %lu paquetes y ya no son necesarios.\n" #: cmdline/apt-get.cc:1672 msgid "Use 'apt-get autoremove' to remove them." -msgstr "Utilice apt-get autoremove para eliminarlos." +msgstr "Utilice «apt-get autoremove» para eliminarlos." #: cmdline/apt-get.cc:1677 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." msgstr "" -"Hmmm. Parece que AutoRemover destruy algo y eso no debera haber pasado. " -"Por favor, enve un informe de fallo al programa apt." +"Hmmm. Parece que «AutoRemover» destruyó algo y eso no debería haber " +"pasado. Por favor, envíe un informe de fallo al programa apt." #. #. if (Packages == 1) @@ -1118,27 +1182,27 @@ msgstr "" #. #: cmdline/apt-get.cc:1680 cmdline/apt-get.cc:1822 msgid "The following information may help to resolve the situation:" -msgstr "La siguiente informacin puede ayudar a resolver la situacin:" +msgstr "La siguiente información puede ayudar a resolver la situación:" #: cmdline/apt-get.cc:1684 msgid "Internal Error, AutoRemover broke stuff" -msgstr "Error interno, AutoRemover rompi cosas" +msgstr "Error interno, «AutoRemover» rompió cosas" #: cmdline/apt-get.cc:1703 msgid "Internal error, AllUpgrade broke stuff" -msgstr "Error Interno, AllUpgrade rompi cosas" +msgstr "Error Interno, AllUpgrade rompió cosas" #: cmdline/apt-get.cc:1792 msgid "You might want to run 'apt-get -f install' to correct these:" -msgstr "Tal vez quiera ejecutar 'apt-get -f install' para corregirlo:" +msgstr "Tal vez quiera ejecutar «apt-get -f install» para corregirlo:" #: cmdline/apt-get.cc:1795 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -"Dependencias incumplidas. Intente 'apt-get -f install' sin paquetes (o " -"especifique una solucin)." +"Dependencias incumplidas. Intente «apt-get -f install» sin paquetes (o " +"especifique una solución)." #: cmdline/apt-get.cc:1807 msgid "" @@ -1148,7 +1212,7 @@ msgid "" "or been moved out of Incoming." msgstr "" "No se pudieron instalar algunos paquetes. Esto puede significar que\n" -"usted pidi una situacin imposible o, si est usando la distribucin\n" +"usted pidió una situación imposible o, si está usando la distribución\n" "inestable, que algunos paquetes necesarios no han sido creados o han\n" "sido movidos fuera de Incoming." @@ -1158,7 +1222,7 @@ msgstr "Paquetes rotos" #: cmdline/apt-get.cc:1854 msgid "The following extra packages will be installed:" -msgstr "Se instalarn los siguientes paquetes extras:" +msgstr "Se instalarán los siguientes paquetes extras:" #: cmdline/apt-get.cc:1944 msgid "Suggested packages:" @@ -1166,7 +1230,7 @@ msgstr "Paquetes sugeridos:" #: cmdline/apt-get.cc:1945 msgid "Recommended packages:" -msgstr "Paquetes recomendados" +msgstr "Paquetes recomendados:" #: cmdline/apt-get.cc:1987 #, c-format @@ -1174,17 +1238,17 @@ msgid "Couldn't find package %s" msgstr "No se pudo encontrar el paquete %s" #: cmdline/apt-get.cc:1994 -#, fuzzy, c-format +#, c-format msgid "%s set to automatically installed.\n" -msgstr "fijado %s como instalado manualmente.\n" +msgstr "fijado %s como instalado automáticamente.\n" #: cmdline/apt-get.cc:2015 msgid "Calculating upgrade... " -msgstr "Calculando la actualizacin... " +msgstr "Calculando la actualización... " #: cmdline/apt-get.cc:2018 methods/ftp.cc:707 methods/connect.cc:111 msgid "Failed" -msgstr "Fall" +msgstr "Falló" #: cmdline/apt-get.cc:2023 msgid "Done" @@ -1193,8 +1257,7 @@ msgstr "Listo" #: cmdline/apt-get.cc:2090 cmdline/apt-get.cc:2098 msgid "Internal error, problem resolver broke stuff" msgstr "" -"Error interno, el sistema de solucin de problemas rompi\n" -"algunas cosas" +"Error interno, el sistema de solución de problemas rompió algunas cosas" #: cmdline/apt-get.cc:2122 cmdline/apt-get.cc:2155 msgid "Unable to lock the download directory" @@ -1202,7 +1265,7 @@ msgstr "No se puede bloquear el directorio de descarga" #: cmdline/apt-get.cc:2198 msgid "Must specify at least one package to fetch source for" -msgstr "Debe especificar al menos un paquete para obtener su cdigo fuente" +msgstr "Debe especificar al menos un paquete para obtener su código fuente" #: cmdline/apt-get.cc:2238 cmdline/apt-get.cc:2519 #, c-format @@ -1215,6 +1278,9 @@ msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" "%s\n" msgstr "" +"NOTA: el empaquetamiento de «%s» se mantiene en el sistema de control de " +"versiones «%s» en:\n" +"%s\n" #: cmdline/apt-get.cc:2259 #, c-format @@ -1223,11 +1289,15 @@ msgid "" "bzr get %s\n" "to retrieve the latest (possibly unreleased) updates to the package.\n" msgstr "" +"Por favor, utilice:\n" +"bzr get %s\n" +"para obtener las últimas actualizaciones (posiblemente no publicadas aún) " +"del paquete.\n" #: cmdline/apt-get.cc:2310 #, c-format msgid "Skipping already downloaded file '%s'\n" -msgstr "Ignorando fichero ya descargado '%s'\n" +msgstr "Omitiendo el fichero ya descargado «%s»\n" #: cmdline/apt-get.cc:2345 #, c-format @@ -1265,37 +1335,38 @@ msgstr "Ignorando desempaquetamiento de paquetes ya desempaquetados en %s\n" #: cmdline/apt-get.cc:2439 #, c-format msgid "Unpack command '%s' failed.\n" -msgstr "Fall la orden de desempaquetamiento '%s'.\n" +msgstr "Falló la orden de desempaquetamiento «%s».\n" #: cmdline/apt-get.cc:2440 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" -msgstr "Compruebe que el paquete dpkg-dev est instalado.\n" +msgstr "Compruebe que el paquete «dpkg-dev» esté instalado.\n" #: cmdline/apt-get.cc:2457 #, c-format msgid "Build command '%s' failed.\n" -msgstr "Fall la orden de construccin '%s'.\n" +msgstr "Falló la orden de construcción «%s».\n" #: cmdline/apt-get.cc:2477 msgid "Child process failed" -msgstr "Fall el proceso hijo" +msgstr "Falló el proceso hijo" #: cmdline/apt-get.cc:2493 msgid "Must specify at least one package to check builddeps for" msgstr "" -"Debe especificar al menos un paquete para verificar sus\n" -"dependencias de construccin" +"Debe especificar al menos un paquete para verificar sus dependencias de " +"construcción" #: cmdline/apt-get.cc:2524 #, c-format msgid "Unable to get build-dependency information for %s" -msgstr "No se pudo obtener informacin de dependencias de construccin para %s" +msgstr "" +"No se pudo obtener información de dependencias de construcción para %s" #: cmdline/apt-get.cc:2544 #, c-format msgid "%s has no build depends.\n" -msgstr "%s no tiene dependencias de construccin.\n" +msgstr "%s no tiene dependencias de construcción.\n" #: cmdline/apt-get.cc:2595 #, c-format @@ -1303,8 +1374,8 @@ msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -"La dependencia %s en %s no puede satisfacerse porque no se puede \n" -"encontrar el paquete %s" +"La dependencia %s en %s no puede satisfacerse porque no se puede encontrar " +"el paquete %s" #: cmdline/apt-get.cc:2648 #, c-format @@ -1312,8 +1383,8 @@ msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -"La dependencia %s en %s no puede satisfacerse porque ninguna versin\n" -"disponible del paquete %s satisface los requisitos de versin" +"La dependencia %s en %s no puede satisfacerse porque ninguna versión " +"disponible del paquete %s satisface los requisitos de versión" #: cmdline/apt-get.cc:2684 #, c-format @@ -1330,15 +1401,15 @@ msgstr "No se pudo satisfacer la dependencia %s para %s: %s" #: cmdline/apt-get.cc:2727 #, c-format msgid "Build-dependencies for %s could not be satisfied." -msgstr "No se pudieron satisfacer las dependencias de construccin de %s." +msgstr "No se pudieron satisfacer las dependencias de construcción de %s." #: cmdline/apt-get.cc:2732 msgid "Failed to process build dependencies" -msgstr "No se pudieron procesar las dependencias de construccin" +msgstr "No se pudieron procesar las dependencias de construcción" #: cmdline/apt-get.cc:2763 msgid "Supported modules:" -msgstr "Mdulos soportados:" +msgstr "Módulos soportados:" #: cmdline/apt-get.cc:2804 #, fuzzy @@ -1385,48 +1456,7 @@ msgid "" "See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" "pages for more information and options.\n" " This APT has Super Cow Powers.\n" -msgstr "" -"Uso: apt-get [opciones] orden\n" -" apt-get [opciones] install|remove paq1 [paq2 ...]\n" -" apt-get [opciones] source paq1 [paq2 ...]\n" -"\n" -"apt-get es una sencilla interfaz de lnea de rdenes para descargar e\n" -"instalar paquetes. Las rdenes ms utilizadas son update e install.\n" -"\n" -"rdenes:\n" -" update - Descarga nuevas listas de paquetes\n" -" upgrade - Realiza una actualizacin\n" -" install - Instala nuevos paquetes (paquete es libc6 y no libc6.deb)\n" -" remove - Elimina paquetes\n" -" purge - Elimina y purga paquetes\n" -" source - Descarga archivos fuente\n" -" build-dep - Configura las dependencias de construccin para paquetes " -"fuente\n" -" dist-upgrade - Actualiza la distribucin, vea apt-get(8)\n" -" dselect-upgrade - Sigue las selecciones de dselect\n" -" clean - Elimina los archivos descargados\n" -" autoclean - Elimina los archivos descargados antiguos\n" -" check - Verifica que no haya dependencias incumplidas\n" -"\n" -"Opciones:\n" -" -h Este texto de ayuda.\n" -" -q Salida registrable - sin indicador de progreso\n" -" -qq Sin salida, excepto si hay errores\n" -" -d Slo descarga - NO instala o desempaqueta los archivos\n" -" -s No acta. Realiza una simulacin\n" -" -y Asume S para todas las consultas\n" -" -f Intenta continuar si la comprobacin de integridad falla\n" -" -m Intenta continuar si los archivos no son localizables\n" -" -u Muestra tambin una lista de paquetes actualizados\n" -" -b Construye el paquete fuente despus de obtenerlo\n" -" -V Muesta nmeros de versin detallados\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. \n" -" -o dir::cache=/tmp\n" -"Consulte las pginas del manual de apt-get(8), sources.list(5) y apt.conf" -"(5)\n" -"para ms informacin y opciones.\n" -" Este APT tiene poderes de Super Vaca.\n" +msgstr "Des:" #: cmdline/apt-get.cc:2960 msgid "" @@ -1435,6 +1465,11 @@ msgid "" " Keep also in mind that locking is deactivated,\n" " so don't depend on the relevance to the real current situation!" msgstr "" +"NOTA: ¡Esto es sólo una simulación\n" +" apt-get necesita privilegios de administrador para la ejecución " +"real.\n" +" Tenga también en cuenta que se han desactivado los bloqueos,\n" +" ¡no dependa de la relevancia a la situación real actual!" #: cmdline/acqprogress.cc:55 msgid "Hit " @@ -1469,13 +1504,13 @@ msgid "" " '%s'\n" "in the drive '%s' and press enter\n" msgstr "" -"Cambio de medio: Por favor inserte el disco etiquetado\n" -" '%s'\n" -"en la unidad '%s' y presione Intro\n" +"Cambio de medio: Por favor, inserte el disco etiquetado como\n" +" «%s»\n" +"en la unidad «%s» y pulse Intro\n" #: cmdline/apt-sortpkgs.cc:86 msgid "Unknown package record!" -msgstr "Registro de paquete desconocido!" +msgstr "¡Registro de paquete desconocido!" #: cmdline/apt-sortpkgs.cc:150 msgid "" @@ -1493,60 +1528,58 @@ msgstr "" "Uso: apt-sortpkgs [opciones] archivo1 [archivo2 ...]\n" "\n" "apt-sortpkgs es una herramienta sencilla para ordenar archivos de paquetes.\n" -"La opcin -s se utiliza para indicar qu tipo de archivo es.\n" +"La opción -s se utiliza para indicar qué tipo de archivo es.\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" " -s Utiliza ordenamiento de archivos fuente\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" "cache=/tmp\n" #: dselect/install:32 msgid "Bad default setting!" -msgstr "Parmetro por omisin incorrecto!" +msgstr "¡Parámetro por omisión incorrecto!" #: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:94 #: dselect/install:105 dselect/update:45 msgid "Press enter to continue." -msgstr "Presione Intro para continuar." +msgstr "Pulse Intro para continuar." #: dselect/install:91 msgid "Do you want to erase any previously downloaded .deb files?" -msgstr "Desea borrar los archivos .deb descargados con anterioridad?" +msgstr "¿Desea borrar los archivos .deb descargados con anterioridad?" #: dselect/install:101 -#, fuzzy msgid "Some errors occurred while unpacking. Packages that were installed" msgstr "" -"Ocurrieron algunos errores mientras se desempaquetaba. Se va a configurar el" +"Se produjeron algunos problemas mientras se desempaquetaba. Los paquetes que " +"se instalaron" #: dselect/install:102 -#, fuzzy msgid "will be configured. This may result in duplicate errors" -msgstr "" -"paquetes que fueron instalados. Esto puede dar lugar a errores duplicados" +msgstr "van a configurarse. Esto puede dar lugar a errores duplicados" #: dselect/install:103 msgid "or errors caused by missing dependencies. This is OK, only the errors" msgstr "" -"o errores causados por dependencias no presentes. Esto est BIEN, slo los\n" +"o errores causados por dependencias no presentes. Esto está BIEN, sólo los " "errores" #: dselect/install:104 msgid "" "above this message are important. Please fix them and run [I]nstall again" msgstr "" -"encima de este mensaje son importantes. Por favor corrijalas y ejecute\n" -"[I]nstall otra vez" +"encima de este mensaje son importantes. Por favor, corríjalas y ejecute «[I]" +"nstall» otra vez" #: dselect/update:30 msgid "Merging available information" -msgstr "Fusionando informacin disponible" +msgstr "Fusionando información disponible" #: apt-inst/contrib/extracttar.cc:114 msgid "Failed to create pipes" -msgstr "No pude crear las tuberas" +msgstr "No pude crear las tuberías" #: apt-inst/contrib/extracttar.cc:141 msgid "Failed to exec gzip " @@ -1554,11 +1587,12 @@ msgstr "No pude ejecutar gzip" #: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204 msgid "Corrupted archive" -msgstr "Archivo corrompido" +msgstr "Archivo dañado" #: apt-inst/contrib/extracttar.cc:193 msgid "Tar checksum failed, archive corrupted" -msgstr "No se aprob la suma de control del tar, archive corrompido" +msgstr "" +"Se produjo un fallo al calcular la suma de control de tar, archive dañado" #: apt-inst/contrib/extracttar.cc:296 #, c-format @@ -1567,24 +1601,24 @@ msgstr "Cabecera del TAR tipo %u desconocida, miembro %s" #: apt-inst/contrib/arfile.cc:70 msgid "Invalid archive signature" -msgstr "Firma del archivo invlida" +msgstr "Firma del archivo inválida" #: apt-inst/contrib/arfile.cc:78 msgid "Error reading archive member header" msgstr "Error leyendo la cabecera de miembro del archivo" #: apt-inst/contrib/arfile.cc:90 -#, fuzzy, c-format +#, c-format msgid "Invalid archive member header %s" -msgstr "Cabecera de miembro del archivo invlida" +msgstr "Cabecera de miembro del archivo inválida %s" #: apt-inst/contrib/arfile.cc:102 msgid "Invalid archive member header" -msgstr "Cabecera de miembro del archivo invlida" +msgstr "Cabecera de miembro del archivo inválida" #: apt-inst/contrib/arfile.cc:128 msgid "Archive is too short" -msgstr "El archivo es muy pequeo" +msgstr "El archivo es muy pequeño" #: apt-inst/contrib/arfile.cc:132 msgid "Failed to read the archive headers" @@ -1592,15 +1626,15 @@ msgstr "No pude leer las cabeceras del archivo" #: apt-inst/filelist.cc:380 msgid "DropNode called on still linked node" -msgstr "DropNode llamado en un nodo todava ligado" +msgstr "DropNode llamado en un nodo todavía ligado" #: apt-inst/filelist.cc:412 msgid "Failed to locate the hash element!" -msgstr "No pude localizar el elemento enlazado!" +msgstr "¡No pude localizar el elemento enlazado!" #: apt-inst/filelist.cc:459 msgid "Failed to allocate diversion" -msgstr "No pude asignar una desviacin" +msgstr "No pude asignar una desviación" #: apt-inst/filelist.cc:464 msgid "Internal error in AddDiversion" @@ -1609,22 +1643,22 @@ msgstr "Error interno en AddDiversion" #: apt-inst/filelist.cc:477 #, c-format msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" -msgstr "Tratando de sobreescribir una desviacin, %s -> %s y %s/%s" +msgstr "Tratando de sobreescribir una desviación, %s -> %s y %s/%s" #: apt-inst/filelist.cc:506 #, c-format msgid "Double add of diversion %s -> %s" -msgstr "Doble suma de desviacin %s -> %s" +msgstr "Doble suma de desviación %s -> %s" #: apt-inst/filelist.cc:549 #, c-format msgid "Duplicate conf file %s/%s" -msgstr "Archivo de configuracin duplicado %s/%s" +msgstr "Archivo de configuración duplicado %s/%s" #: apt-inst/dirstream.cc:41 apt-inst/dirstream.cc:46 apt-inst/dirstream.cc:49 #, c-format msgid "Failed to write file %s" -msgstr "Fall la escritura del archivo %s" +msgstr "Falló la escritura del archivo %s" #: apt-inst/dirstream.cc:92 apt-inst/dirstream.cc:100 #, c-format @@ -1639,26 +1673,26 @@ msgstr "La trayectoria %s es demasiado larga" #: apt-inst/extract.cc:124 #, c-format msgid "Unpacking %s more than once" -msgstr "Desempaquetando %s ms de una vez" +msgstr "Desempaquetando %s más de una vez" #: apt-inst/extract.cc:134 #, c-format msgid "The directory %s is diverted" -msgstr "El directorio %s est desviado" +msgstr "El directorio %s está desviado" #: apt-inst/extract.cc:144 #, c-format msgid "The package is trying to write to the diversion target %s/%s" -msgstr "El paquete est tratando de escribir al blanco desviado %s/%s" +msgstr "El paquete está tratando de escribir al blanco desviado %s/%s" #: apt-inst/extract.cc:154 apt-inst/extract.cc:297 msgid "The diversion path is too long" -msgstr "La trayectoria de desviacin es demasiado larga" +msgstr "La trayectoria de desviación es demasiado larga" #: apt-inst/extract.cc:240 #, c-format msgid "The directory %s is being replaced by a non-directory" -msgstr "El directorio %s est siendo reemplazado por un no-directorio" +msgstr "El directorio %s está siendo reemplazado por un no-directorio" #: apt-inst/extract.cc:280 msgid "Failed to locate node in its hash bucket" @@ -1671,12 +1705,12 @@ msgstr "La trayectoria es muy larga" #: apt-inst/extract.cc:414 #, c-format msgid "Overwrite package match with no version for %s" -msgstr "Sobreescribiendo concordancia del paquete sin versin para %s" +msgstr "Sobreescribiendo concordancia del paquete sin versión para %s" #: apt-inst/extract.cc:431 #, c-format msgid "File %s/%s overwrites the one in the package %s" -msgstr "El archivo %s/%s sobreescribe al que est en el paquete %s" +msgstr "El archivo %s/%s sobreescribe al que está en el paquete %s" #. Only warn if there are no sources.list.d. #. Only warn if there is no sources.list file. @@ -1723,7 +1757,7 @@ msgstr "Leyendo lista de paquetes" #: apt-inst/deb/dpkgdb.cc:176 #, c-format msgid "Failed to change to the admin dir %sinfo" -msgstr "No pude cambiarme al directorio de administracin %sinfo" +msgstr "No pude cambiarme al directorio de administración %sinfo" #: apt-inst/deb/dpkgdb.cc:197 apt-inst/deb/dpkgdb.cc:351 #: apt-inst/deb/dpkgdb.cc:444 @@ -1741,9 +1775,9 @@ msgid "" "then make it empty and immediately re-install the same version of the " "package!" msgstr "" -"No pude abrir el archivo de lista '%sinfo/%s'. Si no puede restablecer este " -"archivo entonces cree uno vaco e inmediatamente reinstale la misma versin " -"del paquete!" +"No pude abrir el archivo de lista «%sinfo/%s». ¡Si no puede restablecer " +"este archivo entonces cree uno vacío e inmediatamente reinstale la misma " +"versión del paquete!" #: apt-inst/deb/dpkgdb.cc:225 apt-inst/deb/dpkgdb.cc:238 #, c-format @@ -1757,25 +1791,25 @@ msgstr "Error interno obteniendo un nodo" #: apt-inst/deb/dpkgdb.cc:305 #, c-format msgid "Failed to open the diversions file %sdiversions" -msgstr "No pude abrir el archivo de desviacin %sdiversions" +msgstr "No pude abrir el archivo de desviación %sdiversions" #: apt-inst/deb/dpkgdb.cc:320 msgid "The diversion file is corrupted" -msgstr "El archive de desviacin esta corrompido" +msgstr "El archive de desviaciones está dañado" #: apt-inst/deb/dpkgdb.cc:327 apt-inst/deb/dpkgdb.cc:332 #: apt-inst/deb/dpkgdb.cc:337 #, c-format msgid "Invalid line in the diversion file: %s" -msgstr "Linea invlida en el archivo de desviacin: %s" +msgstr "Linea inválida en el archivo de desviación: %s" #: apt-inst/deb/dpkgdb.cc:358 msgid "Internal error adding a diversion" -msgstr "Error interno agregando una desviacin" +msgstr "Error interno agregando una desviación" #: apt-inst/deb/dpkgdb.cc:379 msgid "The pkg cache must be initialized first" -msgstr "El cach del paquete debe de inicializarse primero" +msgstr "El caché del paquete debe de inicializarse primero" #: apt-inst/deb/dpkgdb.cc:439 #, c-format @@ -1785,7 +1819,7 @@ msgstr "No pude encontrar un paquete: Cabecera, desplazo %lu" #: apt-inst/deb/dpkgdb.cc:461 #, c-format msgid "Bad ConfFile section in the status file. Offset %lu" -msgstr "Mala seccin del ConfFile en el archivo de estado. Desplazo %lu" +msgstr "Mala sección del ConfFile en el archivo de estado. Desplazo %lu" #: apt-inst/deb/dpkgdb.cc:466 #, c-format @@ -1795,12 +1829,13 @@ msgstr "Error leyendo Md5. Desplazo %lu" #: apt-inst/deb/debfile.cc:38 apt-inst/deb/debfile.cc:43 #, c-format msgid "This is not a valid DEB archive, missing '%s' member" -msgstr "Este no es un archivo DEB vlido, falta el miembro '%s'" +msgstr "Este no es un archivo DEB válido, falta el miembro «%s»" #: apt-inst/deb/debfile.cc:50 #, c-format msgid "This is not a valid DEB archive, it has no '%s', '%s' or '%s' member" -msgstr "Este no es un archivo DEB vlido, falta el miembro '%s', '%s' o '%s'" +msgstr "" +"Este no es un archivo DEB válido, falta el miembro «%s», «%s» o «%s»" #: apt-inst/deb/debfile.cc:110 #, c-format @@ -1813,7 +1848,7 @@ msgstr "Error interno, no pude localizar el miembro" #: apt-inst/deb/debfile.cc:173 msgid "Failed to locate a valid control file" -msgstr "No pude localizar un archivo de control vlido" +msgstr "No pude localizar un archivo de control válido" #: apt-inst/deb/debfile.cc:258 msgid "Unparsable control file" @@ -1822,7 +1857,7 @@ msgstr "Archivo de control inanalizable" #: methods/bzip2.cc:65 #, c-format msgid "Couldn't open pipe for %s" -msgstr "No pude abrir una tubera para %s" +msgstr "No pude abrir una tubería para %s" #: methods/bzip2.cc:109 #, c-format @@ -1838,7 +1873,7 @@ msgstr "No pude leer" #: methods/bzip2.cc:147 methods/copy.cc:80 methods/gzip.cc:99 #: methods/rred.cc:492 msgid "Failed to set modification time" -msgstr "No pude poner el tiempo de modificacin" +msgstr "No pude poner el tiempo de modificación" #: methods/cdrom.cc:199 #, c-format @@ -1850,8 +1885,8 @@ msgid "" "Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " "cannot be used to add new CD-ROMs" msgstr "" -"Por favor utilice apt-cdrom para hacer que APT reconozca este CD.\n" -"apt-get update no se puede usar para agregar nuevos CDs" +"Por favor, utilice «apt-cdrom» para hacer que APT reconozca este CD. No " +"puede utilizar «apt-get update» para añadir nuevos CDs" #: methods/cdrom.cc:218 msgid "Wrong CD-ROM" @@ -1860,7 +1895,7 @@ msgstr "CD equivocado" #: methods/cdrom.cc:245 #, c-format msgid "Unable to unmount the CD-ROM in %s, it may still be in use." -msgstr "No pude desmontar el CD-ROM de %s, tal vez todava este en uso." +msgstr "No pude desmontar el CD-ROM de %s, tal vez todavía este en uso." #: methods/cdrom.cc:250 msgid "Disk not found." @@ -1872,7 +1907,7 @@ msgstr "Fichero no encontrado" #: methods/file.cc:44 msgid "Invalid URI, local URIS must not start with //" -msgstr "URI invlido, los URIS locales no deben de empezar con //" +msgstr "URI inválido, los URIS locales no deben de empezar con //" #. Login must be before getpeername otherwise dante won't work. #: methods/ftp.cc:168 @@ -1890,43 +1925,43 @@ msgstr "Imposible determinar el nombre local" #: methods/ftp.cc:210 methods/ftp.cc:238 #, c-format msgid "The server refused the connection and said: %s" -msgstr "El servidor rechaz nuestra conexin y dijo: %s" +msgstr "El servidor rechazó nuestra conexión y dijo: %s" #: methods/ftp.cc:216 #, c-format msgid "USER failed, server said: %s" -msgstr "Usuario (USER) fall, el servidor dijo: %s" +msgstr "Usuario (USER) falló, el servidor dijo: %s" #: methods/ftp.cc:223 #, c-format msgid "PASS failed, server said: %s" -msgstr "Clave (PASS) fall, el servidor dijo: %s" +msgstr "Clave (PASS) falló, el servidor dijo: %s" #: methods/ftp.cc:243 msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." msgstr "" -"Se especific un servidor proxy pero no un script de entrada,\n" -"Acquire::ftp::ProxyLogin est vaco." +"Se especificó un servidor proxy pero no un script de entrada, «Acquire::" +"ftp::ProxyLogin» está vacío." #: methods/ftp.cc:271 #, c-format msgid "Login script command '%s' failed, server said: %s" -msgstr "Fall la orden '%s' del script de entrada, el servidor dijo: %s" +msgstr "Falló la orden «%s» del script de entrada, el servidor dijo: %s" #: methods/ftp.cc:297 #, c-format msgid "TYPE failed, server said: %s" -msgstr "Tipo (TYPE) fall, el servidor dijo: %s" +msgstr "Tipo (TYPE) falló, el servidor dijo: %s" #: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:183 methods/rsh.cc:226 msgid "Connection timeout" -msgstr "La conexin expir" +msgstr "La conexión expiró" #: methods/ftp.cc:341 msgid "Server closed the connection" -msgstr "El servidor cerr la conexin" +msgstr "El servidor cerró la conexión" #: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:784 methods/rsh.cc:190 msgid "Read error" @@ -1934,11 +1969,11 @@ msgstr "Error de lectura" #: methods/ftp.cc:351 methods/rsh.cc:197 msgid "A response overflowed the buffer." -msgstr "Una respuesta desbord el buffer." +msgstr "No pude crear un socket." #: methods/ftp.cc:368 methods/ftp.cc:380 msgid "Protocol corruption" -msgstr "Corrupcin del protocolo" +msgstr "Fallo del protocolo" #: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:826 methods/rsh.cc:232 msgid "Write error" @@ -1950,7 +1985,7 @@ msgstr "No pude crear un socket" #: methods/ftp.cc:703 msgid "Could not connect data socket, connection timed out" -msgstr "No pude conectar el socket de datos, expir el tiempo de conexin" +msgstr "No pude conectar el socket de datos, expiró el tiempo de conexión" #: methods/ftp.cc:709 msgid "Could not connect passive socket." @@ -1979,38 +2014,38 @@ msgstr "No pude mandar la orden PORT" #: methods/ftp.cc:794 #, c-format msgid "Unknown address family %u (AF_*)" -msgstr "Direccin de familia %u desconocida (AF_*)" +msgstr "Dirección de familia %u desconocida (AF_*)" #: methods/ftp.cc:803 #, c-format msgid "EPRT failed, server said: %s" -msgstr "EPRT fall, el servidor dijo: %s" +msgstr "EPRT falló, el servidor dijo: %s" #: methods/ftp.cc:823 msgid "Data socket connect timed out" -msgstr "Expir conexin a socket de datos" +msgstr "Expiró conexión a socket de datos" #: methods/ftp.cc:830 msgid "Unable to accept connection" -msgstr "No pude aceptar la conexin" +msgstr "No pude aceptar la conexión" #: methods/ftp.cc:869 methods/http.cc:1006 methods/rsh.cc:302 msgid "Problem hashing file" -msgstr "Hay problemas enlazando fichero" +msgstr "Se produjo un problema al hacer un hash del archivo" #: methods/ftp.cc:882 #, c-format msgid "Unable to fetch file, server said '%s'" -msgstr "Imposible traer archivo, el servidor dijo '%s'" +msgstr "Imposible traer archivo, el servidor dijo «%s»" #: methods/ftp.cc:897 methods/rsh.cc:321 msgid "Data socket timed out" -msgstr "Expir el socket de datos" +msgstr "Expiró el socket de datos" #: methods/ftp.cc:927 #, c-format msgid "Data transfer failed, server said '%s'" -msgstr "Fall transferencia de datos, el servidor dijo '%s'" +msgstr "Falló transferencia de datos, el servidor dijo «%s»" #. Get the files information #: methods/ftp.cc:1004 @@ -2039,12 +2074,12 @@ msgstr "No pude crear un socket para %s (f=%u t=%u p=%u)" #: methods/connect.cc:95 #, c-format msgid "Cannot initiate the connection to %s:%s (%s)." -msgstr "No puedo iniciar la conexin a %s:%s (%s)." +msgstr "No puedo iniciar la conexión a %s:%s (%s)." #: methods/connect.cc:103 #, c-format msgid "Could not connect to %s:%s (%s), connection timed out" -msgstr "No pude conectarme a %s:%s (%s), expir tiempo para conexin" +msgstr "No pude conectarme a %s:%s (%s), expiró tiempo para conexión" #: methods/connect.cc:121 #, c-format @@ -2061,44 +2096,45 @@ msgstr "Conectando a %s" #: methods/connect.cc:168 methods/connect.cc:187 #, c-format msgid "Could not resolve '%s'" -msgstr "No pude resolver '%s'" +msgstr "No se pudo resolver «%s»" #: methods/connect.cc:193 #, c-format msgid "Temporary failure resolving '%s'" -msgstr "Fallo temporal al resolver '%s'" +msgstr "Fallo temporal al resolver «%s»" #: methods/connect.cc:196 -#, fuzzy, c-format +#, c-format msgid "Something wicked happened resolving '%s:%s' (%i - %s)" -msgstr "Algo raro pas resolviendo '%s:%s' (%i)" +msgstr "Algo raro pasó al resolver «%s:%s» (%i - %s)" #: methods/connect.cc:243 -#, fuzzy, c-format +#, c-format msgid "Unable to connect to %s:%s:" -msgstr "No pude conectarme a %s %s:" +msgstr "No se pudo conectar a %s:%s:" #. TRANSLATOR: %s is the trusted keyring parts directory #: methods/gpgv.cc:71 -#, fuzzy, c-format +#, c-format msgid "No keyring installed in %s." -msgstr "Abortando la instalacin." +msgstr "No se instaló ningún anillo de claves %s." #: methods/gpgv.cc:163 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -"Error interno: Firma correcta, pero no se pudo determinar su huella digital?!" +"Error interno: Firma correcta, ¡¿pero no se pudo determinar su huella " +"digital?!" #: methods/gpgv.cc:168 msgid "At least one invalid signature was encountered." -msgstr "Se encontr al menos una firma invlida." +msgstr "Se encontró al menos una firma inválida." #: methods/gpgv.cc:172 -#, fuzzy msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)" msgstr "" -"No se pudo ejecutar '%s' para verificar la firma (est instalado gpgv?)" +"No se pudo ejecutar «gpgv» para verificar la firma (¿está instalado " +"gpgv?)" #: methods/gpgv.cc:177 msgid "Unknown error executing gpgv" @@ -2106,15 +2142,15 @@ msgstr "Error desconocido ejecutando gpgv" #: methods/gpgv.cc:211 methods/gpgv.cc:218 msgid "The following signatures were invalid:\n" -msgstr "Las siguientes firms fueron invlidas:\n" +msgstr "Las siguientes firms fueron inválidas:\n" #: methods/gpgv.cc:225 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" msgstr "" -"Las firmas siguientes no se pudieron verificar porque su llave pblica no " -"est disponible:\n" +"Las firmas siguientes no se pudieron verificar porque su llave pública no " +"está disponible:\n" #: methods/http.cc:385 msgid "Waiting for headers" @@ -2123,27 +2159,27 @@ msgstr "Esperando las cabeceras" #: methods/http.cc:531 #, c-format msgid "Got a single header line over %u chars" -msgstr "Obtuve una sola lnea de cabecera arriba de %u caracteres" +msgstr "Obtuve una sola línea de cabecera arriba de %u caracteres" #: methods/http.cc:539 msgid "Bad header line" -msgstr "Mala lnea de cabecera" +msgstr "Mala línea de cabecera" #: methods/http.cc:564 methods/http.cc:571 msgid "The HTTP server sent an invalid reply header" -msgstr "El servidor de http envi una cabecera de respuesta invlida" +msgstr "El servidor de http envió una cabecera de respuesta inválida" #: methods/http.cc:600 msgid "The HTTP server sent an invalid Content-Length header" -msgstr "El servidor de http envi una cabecera de Content-Length invlida" +msgstr "El servidor de http envió una cabecera de Content-Length inválida" #: methods/http.cc:615 msgid "The HTTP server sent an invalid Content-Range header" -msgstr "El servidor de http envi una cabecera de Content-Range invlida" +msgstr "El servidor de http envió una cabecera de Content-Range inválida" #: methods/http.cc:617 msgid "This HTTP server has broken range support" -msgstr "ste servidor de http tiene el soporte de alcance roto" +msgstr "Éste servidor de http tiene el soporte de alcance roto" #: methods/http.cc:641 msgid "Unknown date format" @@ -2151,11 +2187,11 @@ msgstr "Formato de fecha desconocido" #: methods/http.cc:799 msgid "Select failed" -msgstr "Fall la seleccin" +msgstr "Falló la selección" #: methods/http.cc:804 msgid "Connection timed out" -msgstr "Expir la conexin" +msgstr "Expiró la conexión" #: methods/http.cc:827 msgid "Error writing to output file" @@ -2171,7 +2207,7 @@ msgstr "Error escribiendo al archivo" #: methods/http.cc:900 msgid "Error reading from server. Remote end closed connection" -msgstr "Error leyendo del servidor, el lado remoto cerr la conexin." +msgstr "Error leyendo del servidor, el lado remoto cerró la conexión." #: methods/http.cc:902 msgid "Error reading from server" @@ -2179,7 +2215,7 @@ msgstr "Error leyendo del servidor" #: methods/http.cc:991 apt-pkg/contrib/mmap.cc:281 msgid "Failed to truncate file" -msgstr "Fall al truncar el archivo" +msgstr "Falló al truncar el archivo" #: methods/http.cc:1160 msgid "Bad header data" @@ -2187,7 +2223,7 @@ msgstr "Mala cabecera Data" #: methods/http.cc:1177 methods/http.cc:1232 msgid "Connection failed" -msgstr "Fallo la conexin" +msgstr "Fallo la conexión" #: methods/http.cc:1324 msgid "Internal error" @@ -2195,12 +2231,12 @@ msgstr "Error interno" #: apt-pkg/contrib/mmap.cc:77 msgid "Can't mmap an empty file" -msgstr "No puedo hacer mmap de un fichero vaco" +msgstr "No puedo hacer mmap de un fichero vacío" #: apt-pkg/contrib/mmap.cc:89 -#, fuzzy, c-format +#, c-format msgid "Couldn't duplicate file descriptor %i" -msgstr "No pude abrir una tubera para %s" +msgstr "No pude duplicar el descriptor de fichero %i" #: apt-pkg/contrib/mmap.cc:97 apt-pkg/contrib/mmap.cc:250 #, c-format @@ -2208,14 +2244,12 @@ msgid "Couldn't make mmap of %lu bytes" msgstr "No pude hacer mmap de %lu bytes" #: apt-pkg/contrib/mmap.cc:124 -#, fuzzy msgid "Unable to close mmap" -msgstr "No se pudo abrir %s" +msgstr "No se pudo cerrar «mmap»" #: apt-pkg/contrib/mmap.cc:152 apt-pkg/contrib/mmap.cc:180 -#, fuzzy msgid "Unable to synchronize mmap" -msgstr "No pude invocar " +msgstr "No pude sincronizar «mmap»" #: apt-pkg/contrib/mmap.cc:300 #, c-format @@ -2223,6 +2257,8 @@ msgid "" "Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. " "Current value: %lu. (man 5 apt.conf)" msgstr "" +"La asignación dinámica MMap no tiene más espacio. Por favor, incrementa " +"el valor de «APT::Cache-Limit». El valor actual es: %lu (man 5 apt.conf)" #: apt-pkg/contrib/mmap.cc:399 #, c-format @@ -2230,50 +2266,54 @@ msgid "" "Unable to increase the size of the MMap as the limit of %lu bytes is already " "reached." msgstr "" +"No se pudo incrementar el tamaño del MMap dado que se ha alcanzado ya el lí" +"mite de %lu bytes." #: apt-pkg/contrib/mmap.cc:402 msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +"No se pudo incrementar el tamaño de MMap dado que el usuario ha " +"deshabilitado el crecimiento automático." #. d means days, h means hours, min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:371 #, c-format msgid "%lid %lih %limin %lis" -msgstr "" +msgstr "%lid %lih %limin. %liseg." #. h means hours, min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:378 #, c-format msgid "%lih %limin %lis" -msgstr "" +msgstr "%lih %limin. %liseg." #. min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:385 #, c-format msgid "%limin %lis" -msgstr "" +msgstr "%limin. %liseg." #. s means seconds #: apt-pkg/contrib/strutl.cc:390 #, c-format msgid "%lis" -msgstr "" +msgstr "%liseg." #: apt-pkg/contrib/strutl.cc:1119 #, c-format msgid "Selection %s not found" -msgstr "Seleccin %s no encontrada" +msgstr "Selección %s no encontrada" #: apt-pkg/contrib/configuration.cc:452 #, c-format msgid "Unrecognized type abbreviation: '%c'" -msgstr "Tipo de abreviacin no reconocida: '%c'" +msgstr "Tipo de abreviación no reconocida: «%c»" #: apt-pkg/contrib/configuration.cc:510 #, c-format msgid "Opening configuration file %s" -msgstr "Abriendo fichero de configuracin %s" +msgstr "Abriendo fichero de configuración %s" #: apt-pkg/contrib/configuration.cc:678 #, c-format @@ -2288,14 +2328,14 @@ msgstr "Error de sintaxis %s:%u: Marca mal formada" #: apt-pkg/contrib/configuration.cc:714 #, c-format msgid "Syntax error %s:%u: Extra junk after value" -msgstr "Error de sintaxis %s:%u: Basura extra despus del valor" +msgstr "Error de sintaxis %s:%u: Basura extra después del valor" #: apt-pkg/contrib/configuration.cc:754 #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -"Error de sintaxis %s:%u: Las directivas slo se pueden poner\n" -"en el primer nivel" +"Error de sintaxis %s:%u: Las directivas sólo se pueden poner en el primer " +"nivel" #: apt-pkg/contrib/configuration.cc:761 #, c-format @@ -2305,19 +2345,19 @@ msgstr "Error de sintaxis %s:%u: Demasiadas inclusiones anidadas" #: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770 #, c-format msgid "Syntax error %s:%u: Included from here" -msgstr "Error de sintaxis %s:%u: Incluido desde aqu" +msgstr "Error de sintaxis %s:%u: Incluido desde aquí" #: apt-pkg/contrib/configuration.cc:774 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" -msgstr "Error de sintaxis %s:%u: Directiva '%s' no soportada" +msgstr "Error de sintaxis %s:%u: Directiva «%s» no soportada" #: apt-pkg/contrib/configuration.cc:777 -#, fuzzy, c-format +#, c-format msgid "Syntax error %s:%u: clear directive requires an option tree as argument" msgstr "" -"Error de sintaxis %s:%u: Las directivas slo se pueden poner\n" -"en el primer nivel" +"Error de sintaxis %s:%u: la directiva «clear» tiene que incluir un árbol " +"de opciones como argumento" #: apt-pkg/contrib/configuration.cc:827 #, c-format @@ -2327,7 +2367,7 @@ msgstr "Error de sintaxis %s:%u: Basura extra al final del archivo" #: apt-pkg/contrib/progress.cc:153 #, c-format msgid "%c%s... Error!" -msgstr "%c%s... Error!" +msgstr "%c%s... ¡Error!" #: apt-pkg/contrib/progress.cc:155 #, c-format @@ -2337,40 +2377,40 @@ msgstr "%c%s... Hecho" #: apt-pkg/contrib/cmndline.cc:77 #, c-format msgid "Command line option '%c' [from %s] is not known." -msgstr "No se conoce la opcin de lnea de rdenes '%c' [ de %s]" +msgstr "No se conoce la opción de línea de órdenes «%c» [de %s]." #: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111 #: apt-pkg/contrib/cmndline.cc:119 #, c-format msgid "Command line option %s is not understood" -msgstr "No se entiende la opcin de lnea de rdenes %s" +msgstr "No se entiende la opción de línea de órdenes %s" #: apt-pkg/contrib/cmndline.cc:124 #, c-format msgid "Command line option %s is not boolean" -msgstr "La opcin de lnea de rdenes %s no es un booleano" +msgstr "La opción de línea de órdenes %s no es un booleano" #: apt-pkg/contrib/cmndline.cc:165 apt-pkg/contrib/cmndline.cc:186 #, c-format msgid "Option %s requires an argument." -msgstr "La opcin %s necesita un argumento." +msgstr "La opción %s necesita un argumento." #: apt-pkg/contrib/cmndline.cc:200 apt-pkg/contrib/cmndline.cc:206 #, c-format msgid "Option %s: Configuration item specification must have an =." msgstr "" -"Opcin %s: La especificacin del elemento de configuracin debe tener un " +"Opción %s: La especificación del elemento de configuración debe tener un " "=." #: apt-pkg/contrib/cmndline.cc:236 #, c-format msgid "Option %s requires an integer argument, not '%s'" -msgstr "La opcin %s exige un argumento entero, no '%s'" +msgstr "La opción %s exige un argumento entero, no «%s»" #: apt-pkg/contrib/cmndline.cc:267 #, c-format msgid "Option '%s' is too long" -msgstr "Opcin '%s' demasiado larga" +msgstr "Opción «%s» demasiado larga" #: apt-pkg/contrib/cmndline.cc:300 #, c-format @@ -2380,12 +2420,12 @@ msgstr "El sentido %s no se entiende, pruebe verdadero o falso." #: apt-pkg/contrib/cmndline.cc:350 #, c-format msgid "Invalid operation %s" -msgstr "Operacin invlida: %s" +msgstr "Operación inválida: %s" #: apt-pkg/contrib/cdromutl.cc:52 #, c-format msgid "Unable to stat the mount point %s" -msgstr "No se puede obtener informacin del punto de montaje %s" +msgstr "No se puede obtener información del punto de montaje %s" #: apt-pkg/contrib/cdromutl.cc:175 apt-pkg/contrib/cdromutl.cc:209 #: apt-pkg/acquire.cc:456 apt-pkg/acquire.cc:481 apt-pkg/clean.cc:39 @@ -2401,12 +2441,12 @@ msgstr "No pude montar el cdrom" #: apt-pkg/contrib/fileutl.cc:154 #, c-format msgid "Not using locking for read only lock file %s" -msgstr "No se utiliza bloqueos para el fichero de bloqueo de slo lectura %s" +msgstr "No se utiliza bloqueos para el fichero de bloqueo de sólo lectura %s" #: apt-pkg/contrib/fileutl.cc:159 #, c-format msgid "Could not open lock file %s" -msgstr "No se pudo abrir el fichero de bloqueo '%s'" +msgstr "No se pudo abrir el fichero de bloqueo «%s»" #: apt-pkg/contrib/fileutl.cc:177 #, c-format @@ -2421,27 +2461,27 @@ msgstr "No se pudo bloquear %s" #: apt-pkg/contrib/fileutl.cc:643 #, c-format msgid "Waited for %s but it wasn't there" -msgstr "Esperaba %s pero no estaba all" +msgstr "Esperaba %s pero no estaba allí" #: apt-pkg/contrib/fileutl.cc:655 #, c-format msgid "Sub-process %s received a segmentation fault." -msgstr "El subproceso %s recibi un fallo de segmentacin." +msgstr "El subproceso %s recibió un fallo de segmentación." #: apt-pkg/contrib/fileutl.cc:657 -#, fuzzy, c-format +#, c-format msgid "Sub-process %s received signal %u." -msgstr "El subproceso %s recibi un fallo de segmentacin." +msgstr "El subproceso %s recibió la señal %u." #: apt-pkg/contrib/fileutl.cc:661 #, c-format msgid "Sub-process %s returned an error code (%u)" -msgstr "El subproceso %s devolvi un cdigo de error (%u)" +msgstr "El subproceso %s devolvió un código de error (%u)" #: apt-pkg/contrib/fileutl.cc:663 #, c-format msgid "Sub-process %s exited unexpectedly" -msgstr "El subproceso %s termin de forma inesperada" +msgstr "El subproceso %s terminó de forma inesperada" #: apt-pkg/contrib/fileutl.cc:728 #, c-format @@ -2449,64 +2489,64 @@ msgid "Could not open file %s" msgstr "No pude abrir el fichero %s" #: apt-pkg/contrib/fileutl.cc:745 -#, fuzzy, c-format +#, c-format msgid "Could not open file descriptor %d" -msgstr "No pude abrir una tubera para %s" +msgstr "No se pudo abrir el descriptor de fichero %d" #: apt-pkg/contrib/fileutl.cc:805 #, c-format msgid "read, still have %lu to read but none left" -msgstr "ledos, todava deba leer %lu pero no queda nada" +msgstr "leídos, todavía debía leer %lu pero no queda nada" #: apt-pkg/contrib/fileutl.cc:838 #, c-format msgid "write, still have %lu to write but couldn't" -msgstr "escritos, todava tena que escribir %lu pero no pude hacerlo" +msgstr "escritos, todavía tenía que escribir %lu pero no pude hacerlo" #: apt-pkg/contrib/fileutl.cc:937 -#, fuzzy, c-format +#, c-format msgid "Problem closing the gzip file %s" -msgstr "Problemas cerrando el archivo" +msgstr "Se produjo un problema al cerrar el fichero gzip %s" #: apt-pkg/contrib/fileutl.cc:940 -#, fuzzy, c-format +#, c-format msgid "Problem closing the file %s" -msgstr "Problemas cerrando el archivo" +msgstr "Se produjo un problema al cerrar el fichero %s" #: apt-pkg/contrib/fileutl.cc:945 -#, fuzzy, c-format +#, c-format msgid "Problem renaming the file %s to %s" -msgstr "Hay problemas sincronizando el fichero" +msgstr "Se produjo un problema al renombrar el fichero %s a %s" #: apt-pkg/contrib/fileutl.cc:956 -#, fuzzy, c-format +#, c-format msgid "Problem unlinking the file %s" -msgstr "Hay problemas desligando el fichero %s" +msgstr "Se produjo un problema al desligar el fichero %s" #: apt-pkg/contrib/fileutl.cc:969 msgid "Problem syncing the file" -msgstr "Hay problemas sincronizando el fichero" +msgstr "Se produjo un problema al sincronizar el fichero" #: apt-pkg/pkgcache.cc:145 msgid "Empty package cache" -msgstr "Cach de paquetes vaca." +msgstr "Caché de paquetes vacía." #: apt-pkg/pkgcache.cc:151 msgid "The package cache file is corrupted" -msgstr "El archivo de cach de paquetes esta corrompido" +msgstr "El archivo de caché de paquetes está dañado" #: apt-pkg/pkgcache.cc:156 msgid "The package cache file is an incompatible version" -msgstr "El archivo de cach de paquetes es una versin incompatible" +msgstr "El archivo de caché de paquetes es una versión incompatible" #: apt-pkg/pkgcache.cc:161 #, c-format msgid "This APT does not support the versioning system '%s'" -msgstr "Este APT no soporta el sistema de versiones '%s'" +msgstr "Esta versión de APT no soporta el sistema de versiones «%s»" #: apt-pkg/pkgcache.cc:166 msgid "The package cache was built for a different architecture" -msgstr "La cach de paquetes se haba creado para una arquitectura diferente" +msgstr "La caché de paquetes se había creado para una arquitectura diferente" #: apt-pkg/pkgcache.cc:293 msgid "Depends" @@ -2542,7 +2582,7 @@ msgstr "Rompe" #: apt-pkg/pkgcache.cc:295 msgid "Enhances" -msgstr "" +msgstr "Mejora" #: apt-pkg/pkgcache.cc:306 msgid "important" @@ -2554,7 +2594,7 @@ msgstr "requiere" #: apt-pkg/pkgcache.cc:306 msgid "standard" -msgstr "estndar" +msgstr "estándar" #: apt-pkg/pkgcache.cc:307 msgid "optional" @@ -2566,7 +2606,7 @@ msgstr "extra" #: apt-pkg/depcache.cc:124 apt-pkg/depcache.cc:153 msgid "Building dependency tree" -msgstr "Creando rbol de dependencias" +msgstr "Creando árbol de dependencias" #: apt-pkg/depcache.cc:125 msgid "Candidate versions" @@ -2574,11 +2614,11 @@ msgstr "Versiones candidatas" #: apt-pkg/depcache.cc:154 msgid "Dependency generation" -msgstr "Generacin de dependencias" +msgstr "Generación de dependencias" #: apt-pkg/depcache.cc:174 apt-pkg/depcache.cc:207 apt-pkg/depcache.cc:211 msgid "Reading state information" -msgstr "Leyendo la informacin de estado" +msgstr "Leyendo la información de estado" #: apt-pkg/depcache.cc:236 #, c-format @@ -2588,12 +2628,13 @@ msgstr "No se pudo abrir el fichero de estado %s" #: apt-pkg/depcache.cc:242 #, c-format msgid "Failed to write temporary StateFile %s" -msgstr "Fall la escritura del fichero de estado temporal %s" +msgstr "Falló la escritura del fichero de estado temporal %s" #: apt-pkg/depcache.cc:921 -#, fuzzy, c-format +#, c-format msgid "Internal error, group '%s' has no installable pseudo package" -msgstr "Error interno, no pude leer un rcord del paquete" +msgstr "" +"Error interno, el grupo «%s» no tiene ningún pseudo-paquete instalable" #: apt-pkg/tagfile.cc:102 #, c-format @@ -2606,54 +2647,60 @@ msgid "Unable to parse package file %s (2)" msgstr "No se pudo tratar el archivo de paquetes %s (2)" #: apt-pkg/sourcelist.cc:92 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([option] unparseable)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "" +"Línea %lu mal formada en la lista de fuentes %s ([opción] no parseable)" #: apt-pkg/sourcelist.cc:95 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([option] too short)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (dist)" +msgstr "" +"Línea %lu mal formada en la lista de fuentes %s ([opción] demasiado corta)" #: apt-pkg/sourcelist.cc:106 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] is not an assignment)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "" +"Línea %lu mal formada en la lista de fuentes %s ([%s] no es una asignación)" #: apt-pkg/sourcelist.cc:112 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] has no key)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "" +"Línea %lu mal formada en la lista de fuentes %s (no hay clave para [%s])" #: apt-pkg/sourcelist.cc:115 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] key %s has no value)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "" +"Línea %lu mal formada en la lista de fuentes %s ([%s] la clave %s no tiene " +"asociado un valor)" #: apt-pkg/sourcelist.cc:128 #, c-format msgid "Malformed line %lu in source list %s (URI)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (URI)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (URI)" #: apt-pkg/sourcelist.cc:130 #, c-format msgid "Malformed line %lu in source list %s (dist)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (dist)" #: apt-pkg/sourcelist.cc:133 #, c-format msgid "Malformed line %lu in source list %s (URI parse)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de URI)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (análisis de URI)" #: apt-pkg/sourcelist.cc:139 #, c-format msgid "Malformed line %lu in source list %s (absolute dist)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (dist absoluta)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (dist absoluta)" #: apt-pkg/sourcelist.cc:146 #, c-format msgid "Malformed line %lu in source list %s (dist parse)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (análisis de dist)" #: apt-pkg/sourcelist.cc:244 #, c-format @@ -2663,17 +2710,17 @@ msgstr "Abriendo %s" #: apt-pkg/sourcelist.cc:261 apt-pkg/cdrom.cc:438 #, c-format msgid "Line %u too long in source list %s." -msgstr "Lnea %u demasiado larga en la lista de fuentes %s." +msgstr "Línea %u demasiado larga en la lista de fuentes %s." #: apt-pkg/sourcelist.cc:281 #, c-format msgid "Malformed line %u in source list %s (type)" -msgstr "Lnea %u mal formada en lista de fuentes %s (tipo)" +msgstr "Línea %u mal formada en la lista de fuentes %s (tipo)" #: apt-pkg/sourcelist.cc:285 #, c-format msgid "Type '%s' is not known on line %u in source list %s" -msgstr "Tipo '%s' desconocido en la lnea %u de lista de fuentes %s" +msgstr "Tipo «%s» desconocido en la línea %u de lista de fuentes %s" #: apt-pkg/packagemanager.cc:331 apt-pkg/packagemanager.cc:616 #, c-format @@ -2681,6 +2728,9 @@ msgid "" "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " "under APT::Immediate-Configure for details. (%d)" msgstr "" +"No se pudo realizar la configuración inmediata de «%s». Consulte la p" +"gina de manual con «man 5 apt.conf» bajo «APT::Immediate-Configure» " +"para más información. (%d)" #: apt-pkg/packagemanager.cc:452 #, c-format @@ -2689,10 +2739,10 @@ msgid "" "package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " "you really want to do it, activate the APT::Force-LoopBreak option." msgstr "" -"Esta ejecucin de la instalacin requiere eliminar temporalmente el \n" -"paquete esencial %s debido a un bucle de Conflictos/Pre-Dependencias. \n" -"Esto generalmente es malo, pero si realmente quiere hacerlo, active \n" -"la opcin APT::Force-LoopBreak." +"Esta ejecución de la instalación requiere eliminar temporalmente el " +"paquete esencial %s debido a un bucle de Conflictos/Pre-Dependencias. Esto " +"generalmente es malo, pero si realmente quiere hacerlo, active la opción |" +"APT::Force-LoopBreak»." #: apt-pkg/packagemanager.cc:495 #, c-format @@ -2700,11 +2750,14 @@ msgid "" "Could not perform immediate configuration on already unpacked '%s'. Please " "see man 5 apt.conf under APT::Immediate-Configure for details." msgstr "" +"No se pudo realizar la configuración inmediata sobre el paquete ya " +"desempaquetado «%s». Consulte la página de manual con «man 5 apt.conf» " +"bajo «APT::Immediate-Configure» para más información." #: apt-pkg/pkgrecords.cc:32 #, c-format msgid "Index file type '%s' is not supported" -msgstr "No se da soporte para el tipo de archivo de ndice '%s'" +msgstr "No se da soporte para el tipo de archivo de índice «%s»" #: apt-pkg/algorithms.cc:292 #, c-format @@ -2712,44 +2765,43 @@ msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" "El paquete %s necesita ser reinstalado, pero no se encuentra un archivo para " -"ste." +"éste." #: apt-pkg/algorithms.cc:1210 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -"Error, pkgProblemResolver::Resolve gener cortes, esto puede haber sido " +"Error, pkgProblemResolver::Resolve generó cortes, esto puede haber sido " "causado por paquetes retenidos." #: apt-pkg/algorithms.cc:1212 msgid "Unable to correct problems, you have held broken packages." msgstr "" -"No se pudieron corregir los problemas, usted ha retenido paquetes\n" -"rotos." +"No se pudieron corregir los problemas, usted ha retenido paquetes rotos." #: apt-pkg/algorithms.cc:1488 apt-pkg/algorithms.cc:1490 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -"Algunos archivos de ndice no se han podido descargar, se han ignorado,\n" -"o se ha utilizado unos antiguos en su lugar." +"No se han podido descargar algunos archivos de índice, se han ignorado, o se " +"ha utilizado unos antiguos en su lugar." #: apt-pkg/acquire.cc:79 -#, fuzzy, c-format +#, c-format msgid "List directory %spartial is missing." msgstr "Falta el directorio de listas %spartial." #: apt-pkg/acquire.cc:83 -#, fuzzy, c-format +#, c-format msgid "Archives directory %spartial is missing." msgstr "Falta el directorio de archivos %spartial." #: apt-pkg/acquire.cc:91 -#, fuzzy, c-format +#, c-format msgid "Unable to lock directory %s" -msgstr "No se pudo bloquear el directorio de listas" +msgstr "No se pudo bloquear el directorio %s" #. only show the ETA if it makes sense #. two days @@ -2766,22 +2818,22 @@ msgstr "Descargando fichero %li de %li" #: apt-pkg/acquire-worker.cc:110 #, c-format msgid "The method driver %s could not be found." -msgstr "No se pudo encontrar el mtodo %s." +msgstr "No se pudo encontrar el método %s." #: apt-pkg/acquire-worker.cc:159 #, c-format msgid "Method %s did not start correctly" -msgstr "El mtodo %s no se inici correctamente" +msgstr "El método %s no se inició correctamente" #: apt-pkg/acquire-worker.cc:413 #, c-format msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." -msgstr "Por favor, inserte el disco %s en la unidad %s y presione Intro" +msgstr "Por favor, inserte el disco «%s» en la unidad «%s» y pulse Intro." #: apt-pkg/init.cc:143 #, c-format msgid "Packaging system '%s' is not supported" -msgstr "El sistema de paquetes '%s' no est soportado" +msgstr "No está soportado el sistema de paquetes «%s»" #: apt-pkg/init.cc:159 msgid "Unable to determine a suitable packaging system type" @@ -2794,7 +2846,7 @@ msgstr "No se pudo leer %s." #: apt-pkg/srcrecords.cc:44 msgid "You must put some 'source' URIs in your sources.list" -msgstr "Debe poner algunos URIs 'fuente' en su sources.list" +msgstr "Debe poner algunos URIs fuente («source») en su sources.list" #: apt-pkg/cachefile.cc:84 msgid "The package lists or status file could not be parsed or opened." @@ -2804,17 +2856,19 @@ msgstr "" #: apt-pkg/cachefile.cc:88 msgid "You may want to run apt-get update to correct these problems" -msgstr "Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas" +msgstr "" +"Tal vez quiera ejecutar «apt-get update» para corregir estos problemas" #: apt-pkg/cachefile.cc:106 msgid "The list of sources could not be read." msgstr "No se pudieron leer las listas de fuentes." #: apt-pkg/policy.cc:344 -#, fuzzy, c-format +#, c-format msgid "Invalid record in the preferences file %s, no Package header" msgstr "" -"Registro invlido en el archivo de preferencias, no hay cabecera de paquete" +"Registro inválido en el archivo de preferencias %s, no hay cabecera " +"«Package»" #: apt-pkg/policy.cc:366 #, c-format @@ -2827,85 +2881,85 @@ msgstr "No hay prioridad especificada para pin (o es cero)" #: apt-pkg/pkgcachegen.cc:80 msgid "Cache has an incompatible versioning system" -msgstr "La cach tiene una versin incompatible de sistema de versiones" +msgstr "La caché tiene una versión incompatible de sistema de versiones" #: apt-pkg/pkgcachegen.cc:198 #, c-format msgid "Error occurred while processing %s (NewPackage)" -msgstr "Ocurri un error mientras se procesaba %s (NewPackage)" +msgstr "Se produjo un error mientras se procesaba %s (NewPackage)" #: apt-pkg/pkgcachegen.cc:215 #, c-format msgid "Error occurred while processing %s (UsePackage1)" -msgstr "Ocurri un error mientras se procesaba %s (UsePackage1)" +msgstr "Se produjo un error mientras se procesaba %s (UsePackage1)" #: apt-pkg/pkgcachegen.cc:253 #, c-format msgid "Error occurred while processing %s (NewFileDesc1)" -msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc1)" +msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc1)" #: apt-pkg/pkgcachegen.cc:285 #, c-format msgid "Error occurred while processing %s (UsePackage2)" -msgstr "Ocurri un error mientras se procesaba %s (UsePackage2)" +msgstr "Se produjo un error mientras se procesaba %s (UsePackage2)" #: apt-pkg/pkgcachegen.cc:289 #, c-format msgid "Error occurred while processing %s (NewFileVer1)" -msgstr "Ocurri un error mientras se procesaba %s (NewFileVer1)" +msgstr "Se produjo un error mientras se procesaba %s (NewFileVer1)" #: apt-pkg/pkgcachegen.cc:306 apt-pkg/pkgcachegen.cc:316 #: apt-pkg/pkgcachegen.cc:324 -#, fuzzy, c-format +#, c-format msgid "Error occurred while processing %s (NewVersion%d)" -msgstr "Ocurri un error mientras se procesaba %s (NewVersion1)" +msgstr "Se produjo un error mientras se procesaba %s (NewVersion%d)" #: apt-pkg/pkgcachegen.cc:320 #, c-format msgid "Error occurred while processing %s (UsePackage3)" -msgstr "Ocurri un error mientras se procesaba %s (UsePackage3)" +msgstr "Se produjo un error mientras se procesaba %s (UsePackage3)" #: apt-pkg/pkgcachegen.cc:353 #, c-format msgid "Error occurred while processing %s (NewFileDesc2)" -msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc2)" +msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc2)" #: apt-pkg/pkgcachegen.cc:360 msgid "Wow, you exceeded the number of package names this APT is capable of." msgstr "" -"Vaya, excedi el nmero de nombres de paquetes que este APT es capaz de " +"Vaya, excedió el número de nombres de paquetes que este APT es capaz de " "manejar." #: apt-pkg/pkgcachegen.cc:363 msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "Vaya, excedi el nmero de versiones que este APT es capaz de manejar." +msgstr "" +"Vaya, excedió el número de versiones que este APT es capaz de manejar." #: apt-pkg/pkgcachegen.cc:366 msgid "Wow, you exceeded the number of descriptions this APT is capable of." msgstr "" -"Vaya, excedi el nmero de descripciones que este APT es capaz de manejar." +"Vaya, excedió el número de descripciones que este APT es capaz de manejar." #: apt-pkg/pkgcachegen.cc:369 msgid "Wow, you exceeded the number of dependencies this APT is capable of." msgstr "" -"Vaya, excedi el nmero de dependencias que este APT es capaz de manejar." +"Vaya, excedió el número de dependencias que este APT es capaz de manejar." #: apt-pkg/pkgcachegen.cc:398 #, c-format msgid "Error occurred while processing %s (FindPkg)" -msgstr "Ocurri un error mientras procesaba %s (FindPkg)" +msgstr "Se produjo un error mientras se procesaba %s (FindPkg)" #: apt-pkg/pkgcachegen.cc:412 #, c-format msgid "Error occurred while processing %s (CollectFileProvides)" -msgstr "Ocurri un error mientras procesaba %s (CollectFileProvides)" +msgstr "Se produjo un error mientras se procesaba %s (CollectFileProvides)" #: apt-pkg/pkgcachegen.cc:418 #, c-format msgid "Package %s %s was not found while processing file dependencies" msgstr "" -"Al procesar las dependencias de archivos no se encontr el\n" -"paquete %s %s" +"Al procesar las dependencias de archivos no se encontró el paquete %s %s" #: apt-pkg/pkgcachegen.cc:982 #, c-format @@ -2918,12 +2972,12 @@ msgstr "Recogiendo archivos que proveen" #: apt-pkg/pkgcachegen.cc:1265 apt-pkg/pkgcachegen.cc:1272 msgid "IO Error saving source cache" -msgstr "Error de E/S guardando cach fuente" +msgstr "Error de E/S guardando caché fuente" #: apt-pkg/acquire-item.cc:136 #, c-format msgid "rename failed, %s (%s -> %s)." -msgstr "fall el cambio de nombre, %s (%s -> %s)." +msgstr "falló el cambio de nombre, %s (%s -> %s)." #: apt-pkg/acquire-item.cc:484 msgid "MD5Sum mismatch" @@ -2937,7 +2991,7 @@ msgstr "La suma hash difiere" #: apt-pkg/acquire-item.cc:1244 msgid "There is no public key available for the following key IDs:\n" msgstr "" -"No existe ninguna clave pblica disponible para los siguientes " +"No existe ninguna clave pública disponible para los siguientes " "identificadores de clave:\n" #. TRANSLATOR: The first %s is the URL of the bad Release file, the second is @@ -2947,11 +3001,12 @@ msgstr "" #, c-format msgid "Release file expired, ignoring %s (invalid since %s)" msgstr "" +"El archivo «Release» ha expirado, ignorando %s (inválido desde hace %s)" #: apt-pkg/acquire-item.cc:1302 #, c-format msgid "Conflicting distribution: %s (expected %s but got %s)" -msgstr "" +msgstr "Distribución conflictiva: %s (se esperaba %s, pero se obtuvo %s)" #: apt-pkg/acquire-item.cc:1328 #, c-format @@ -2959,11 +3014,14 @@ msgid "" "A error occurred during the signature verification. The repository is not " "updated and the previous index files will be used. GPG error: %s: %s\n" msgstr "" +"Se produjo un error durante la verificación de las firmas. El repositorio " +"no está actualizado y se utilizarán los ficheros de índice antiguos. El " +"error GPG es: %s: %s\n" #: apt-pkg/acquire-item.cc:1337 #, c-format msgid "GPG error: %s: %s" -msgstr "" +msgstr "Error de GPG: %s: %s" #: apt-pkg/acquire-item.cc:1365 #, c-format @@ -2989,37 +3047,37 @@ msgstr "" msgid "" "The package index files are corrupted. No Filename: field for package %s." msgstr "" -"Los archivos de ndice de paquetes estn corrompidos. El campo 'Filename:' " -"no existe para para el paquete %s." +"Los archivos de índice de paquetes están dañados. No existe un campo " +"«Filename:» para el paquete %s." #: apt-pkg/acquire-item.cc:1566 msgid "Size mismatch" -msgstr "El tamao difiere" +msgstr "El tamaño difiere" #: apt-pkg/indexrecords.cc:53 -#, fuzzy, c-format +#, c-format msgid "Unable to parse Release file %s" -msgstr "No se pudo tratar el archivo de paquetes %s (1)" +msgstr "No se pudo leer el archivo «Release» %s" #: apt-pkg/indexrecords.cc:60 -#, fuzzy, c-format +#, c-format msgid "No sections in Release file %s" -msgstr "Nota, seleccionando %s en lugar de %s\n" +msgstr "No se encontraron secciones en el archivo «Release» %s" #: apt-pkg/indexrecords.cc:94 #, c-format msgid "No Hash entry in Release file %s" -msgstr "" +msgstr "No existe una entrada «Hash» en el archivo «Release» %s" #: apt-pkg/indexrecords.cc:107 -#, fuzzy, c-format +#, c-format msgid "Invalid 'Valid-Until' entry in Release file %s" -msgstr "Linea invlida en el archivo de desviacin: %s" +msgstr "Entrada «Valid-Until» inválida en el archivo «Release» %s" #: apt-pkg/indexrecords.cc:122 -#, fuzzy, c-format +#, c-format msgid "Invalid 'Date' entry in Release file %s" -msgstr "No se pudo tratar el archivo de paquetes %s (1)" +msgstr "Entrada «Date» inválida en el archivo «Release» %s" #: apt-pkg/vendorlist.cc:66 #, c-format @@ -3068,7 +3126,7 @@ msgstr "Montando el CD-ROM...\n" #: apt-pkg/cdrom.cc:626 msgid "Scanning disc for index files..\n" -msgstr "Buscando en el disco archivos de ndices...\n" +msgstr "Buscando en el disco archivos de índices...\n" #: apt-pkg/cdrom.cc:666 #, c-format @@ -3076,26 +3134,25 @@ msgid "" "Found %zu package indexes, %zu source indexes, %zu translation indexes and " "%zu signatures\n" msgstr "" -"Se encontraron %zu ndices de paquetes, %zu ndices de fuentes, %zu ndices " -"de traduccin y %zu firmas\n" +"Se encontraron %zu índices de paquetes, %zu índices de fuentes, %zu índices " +"de traducción y %zu firmas\n" #: apt-pkg/cdrom.cc:677 -#, fuzzy msgid "" "Unable to locate any package files, perhaps this is not a Debian Disc or the " "wrong architecture?" msgstr "" -"No pude localizar ningn archivo de paquete, tal vez este no es un disco de " -"Debian" +"No pude localizar ningún archivo de paquete, ¿quizás este no sea un disco " +"de Debian o sea de otra arquitectura?" #: apt-pkg/cdrom.cc:703 #, c-format msgid "Found label '%s'\n" -msgstr "Se encontr la etiqueta: '%s'\n" +msgstr "Se encontró la etiqueta: «%s»\n" #: apt-pkg/cdrom.cc:732 msgid "That is not a valid name, try again.\n" -msgstr "Ese no es un nombre vlido, intntelo de nuevo.\n" +msgstr "Ese no es un nombre válido, inténtelo de nuevo.\n" #: apt-pkg/cdrom.cc:748 #, c-format @@ -3104,7 +3161,7 @@ msgid "" "'%s'\n" msgstr "" "Este disco se llama: \n" -"'%s'\n" +"«%s»\n" #: apt-pkg/cdrom.cc:752 msgid "Copying package lists..." @@ -3140,44 +3197,46 @@ msgstr "" "%i registros escritos con %i fichero de menos y %i ficheros mal emparejados\n" #: apt-pkg/indexcopy.cc:537 -#, fuzzy, c-format +#, c-format msgid "Skipping nonexistent file %s" -msgstr "Abriendo fichero de configuracin %s" +msgstr "Omitiendo el fichero inexistente %s" #: apt-pkg/indexcopy.cc:543 #, c-format msgid "Can't find authentication record for: %s" -msgstr "" +msgstr "No se pudo encontrar un registro de autenticación para: %s" #: apt-pkg/indexcopy.cc:549 -#, fuzzy, c-format +#, c-format msgid "Hash mismatch for: %s" -msgstr "La suma hash difiere" +msgstr "La suma hash difiere para: %s" #: apt-pkg/cacheset.cc:337 #, c-format msgid "Release '%s' for '%s' was not found" -msgstr "No se encontr la Distribucin '%s' para '%s'" +msgstr "No se encontró la Distribución «%s» para «%s»" #: apt-pkg/cacheset.cc:340 #, c-format msgid "Version '%s' for '%s' was not found" -msgstr "No se encontr la versin '%s' para '%s'" +msgstr "No se encontró la versión «%s» para «%s»" #: apt-pkg/cacheset.cc:447 -#, fuzzy, c-format +#, c-format msgid "Couldn't find task '%s'" -msgstr "No se pudo encontrar la tarea %s" +msgstr "No se pudo encontrar la tarea «%s»" #: apt-pkg/cacheset.cc:454 -#, fuzzy, c-format +#, c-format msgid "Couldn't find any package by regex '%s'" -msgstr "No se pudo encontrar el paquete %s" +msgstr "No se pudo encontrar ningún paquete con la expresión regular «%s»" #: apt-pkg/cacheset.cc:467 #, c-format msgid "Can't select versions from package '%s' as it purely virtual" msgstr "" +"No se pueden seleccionar distintas versiones del paquete «%s» porque es " +"puramente virtual" #: apt-pkg/cacheset.cc:475 apt-pkg/cacheset.cc:483 #, c-format @@ -3185,21 +3244,29 @@ msgid "" "Can't select installed nor candidate version from package '%s' as it has " "neither of them" msgstr "" +"No se puede seleccionar una versión instalada o candidata para el paquete " +"«%s» dado que éste no tiene ninguna de éstas" #: apt-pkg/cacheset.cc:491 #, c-format msgid "Can't select newest version from package '%s' as it is purely virtual" msgstr "" +"No se puede seleccionar la última versión del paquete «%s» dado que es " +"puramente virtual" #: apt-pkg/cacheset.cc:499 #, c-format msgid "Can't select candidate version from package %s as it has no candidate" msgstr "" +"No se puede seleccionar una versión candidata del paquete %s dado que no " +"tiene candidatos" #: apt-pkg/cacheset.cc:507 #, c-format msgid "Can't select installed version from package %s as it is not installed" msgstr "" +"No se puede seleccionar una versión instalada del paquete «%s» puesto que " +"no está instalado" #: apt-pkg/deb/dpkgpm.cc:52 #, c-format @@ -3217,30 +3284,30 @@ msgid "Removing %s" msgstr "Eliminando %s" #: apt-pkg/deb/dpkgpm.cc:55 -#, fuzzy, c-format +#, c-format msgid "Completely removing %s" -msgstr "Se borr completamente %s" +msgstr "Borrando completamente %s" #: apt-pkg/deb/dpkgpm.cc:56 #, c-format msgid "Noting disappearance of %s" -msgstr "" +msgstr "Se detectó la desaparición de %s" #: apt-pkg/deb/dpkgpm.cc:57 #, c-format msgid "Running post-installation trigger %s" -msgstr "Ejecutando disparador post-instalacin %s" +msgstr "Ejecutando disparador post-instalación %s" #. FIXME: use a better string after freeze #: apt-pkg/deb/dpkgpm.cc:646 #, c-format msgid "Directory '%s' missing" -msgstr "Falta el directorio '%s'." +msgstr "Falta el directorio «%s»." #: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:674 -#, fuzzy, c-format +#, c-format msgid "Could not open file '%s'" -msgstr "No pude abrir el fichero %s" +msgstr "No pude abrir el fichero «%s»" #: apt-pkg/deb/dpkgpm.cc:815 #, c-format @@ -3255,7 +3322,7 @@ msgstr "Desempaquetando %s" #: apt-pkg/deb/dpkgpm.cc:821 #, c-format msgid "Preparing to configure %s" -msgstr "Preparndose para configurar %s" +msgstr "Preparándose para configurar %s" #: apt-pkg/deb/dpkgpm.cc:823 #, c-format @@ -3265,7 +3332,7 @@ msgstr "%s instalado" #: apt-pkg/deb/dpkgpm.cc:828 #, c-format msgid "Preparing for removal of %s" -msgstr "Preparndose para eliminar %s" +msgstr "Preparándose para eliminar %s" #: apt-pkg/deb/dpkgpm.cc:830 #, c-format @@ -3275,54 +3342,63 @@ msgstr "%s eliminado" #: apt-pkg/deb/dpkgpm.cc:835 #, c-format msgid "Preparing to completely remove %s" -msgstr "Preparndose para eliminar completamente %s" +msgstr "Preparándose para eliminar completamente %s" #: apt-pkg/deb/dpkgpm.cc:836 #, c-format msgid "Completely removed %s" -msgstr "Se borr completamente %s" +msgstr "Se borró completamente %s" #: apt-pkg/deb/dpkgpm.cc:1042 +#, fuzzy msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" -msgstr "" -"No se pudo escbribir en el registro, fall la llamada a openpty() (est " -"montado /dev/pts?)\n" +msgstr "problemas de dependencias - dejando sin instalar" #: apt-pkg/deb/dpkgpm.cc:1073 msgid "Running dpkg" -msgstr "" +msgstr "Ejecutando dpkg" #: apt-pkg/deb/dpkgpm.cc:1276 msgid "No apport report written because MaxReports is reached already" msgstr "" +"No se escribió ningún informe «apport» porque ya se ha alcanzado el " +"valor de «MaxReports»" #. check if its not a follow up error #: apt-pkg/deb/dpkgpm.cc:1281 msgid "dependency problems - leaving unconfigured" -msgstr "" +msgstr "problemas de dependencias - dejando sin instalar" #: apt-pkg/deb/dpkgpm.cc:1283 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." msgstr "" +"No se escribió un informe «apport» porque el mensaje de error indica que " +"es un mensaje de error asociado a un fallo previo." #: apt-pkg/deb/dpkgpm.cc:1289 msgid "" "No apport report written because the error message indicates a disk full " "error" msgstr "" +"No se escribió un informe «apport» porque el mensaje de error indica que " +"el error es de disco lleno" #: apt-pkg/deb/dpkgpm.cc:1295 msgid "" "No apport report written because the error message indicates a out of memory " "error" msgstr "" +"No se escribió un informe «apport» porque el mensaje de error indica un " +"error de memoria excedida" #: apt-pkg/deb/dpkgpm.cc:1302 msgid "" "No apport report written because the error message indicates a dpkg I/O error" msgstr "" +"No se escribió un informe «apport» porque el mensaje de error indica un " +"error de E/S de dpkg" #: apt-pkg/deb/debsystem.cc:69 #, c-format @@ -3330,11 +3406,13 @@ msgid "" "Unable to lock the administration directory (%s), is another process using " "it?" msgstr "" +"No se pudo bloquear el directorio de administración (%s), ¿quizás haya " +"algún otro proceso utilizándolo?" #: apt-pkg/deb/debsystem.cc:72 -#, fuzzy, c-format +#, c-format msgid "Unable to lock the administration directory (%s), are you root?" -msgstr "No se pudo bloquear el directorio de listas" +msgstr "No se encontró un archivo de réplica «%s»" #. TRANSLATORS: the %s contains the recovery command, usually #. dpkg --configure -a @@ -3343,22 +3421,24 @@ msgstr "No se pudo bloquear el directorio de listas" msgid "" "dpkg was interrupted, you must manually run '%s' to correct the problem. " msgstr "" +"se interrumpió la ejecución de dpkg, debe ejecutar manualmente «%s» para " +"corregir el problema" #: apt-pkg/deb/debsystem.cc:106 msgid "Not locked" -msgstr "" +msgstr "No bloqueado" #. FIXME: fallback to a default mirror here instead #. and provide a config option to define that default #: methods/mirror.cc:200 #, c-format msgid "No mirror file '%s' found " -msgstr "" +msgstr "No se encontró un archivo de réplica «%s»" #: methods/mirror.cc:343 #, c-format msgid "[Mirror: %s]" -msgstr "" +msgstr "[Réplica: %s]" #: methods/rred.cc:465 #, c-format @@ -3366,6 +3446,8 @@ msgid "" "Could not patch %s with mmap and with file operation usage - the patch seems " "to be corrupt." msgstr "" +"No se pudo parchear %s con mmap y con el modo de uso de la operación de " +"ficheros - el paquete parece dañado." #: methods/rred.cc:470 #, c-format @@ -3373,13 +3455,15 @@ msgid "" "Could not patch %s with mmap (but no mmap specific fail) - the patch seems " "to be corrupt." msgstr "" +"No se pudo parchear %s con mmap (pero no hay un fallo mmap específico) - el " +"parche parece dañado." #: methods/rsh.cc:329 msgid "Connection closed prematurely" -msgstr "La conexin se cerr prematuramente" +msgstr "La conexión se cerró prematuramente" #~ msgid "You must give exactly one pattern" -#~ msgstr "Debe dar exactamente un patrn" +#~ msgstr "Debe dar exactamente un patrón" #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." #~ msgstr "" @@ -3387,13 +3471,13 @@ msgstr "La conexi #~ "Terminando." #~ msgid "Error occurred while processing %s (NewVersion2)" -#~ msgstr "Ocurri un error mientras se procesaba %s (NewVersion2)" +#~ msgstr "Se produjo un error mientras se procesaba %s (NewVersion2)" #~ msgid "Malformed line %u in source list %s (vendor id)" -#~ msgstr "Lnea %u mal formada en la lista de fuentes %s (id del fabricante)" +#~ msgstr "Línea %u mal formada en la lista de fuentes %s (id del fabricante)" #~ msgid "Couldn't access keyring: '%s'" -#~ msgstr "No se pudo acceder al anillo de claves: '%s'" +#~ msgstr "No se pudo acceder al anillo de claves: «%s»" #~ msgid "Could not patch file" #~ msgstr "No pude parchear el fichero" @@ -3408,29 +3492,30 @@ msgstr "La conexi #~ msgstr "Procesando disparadores para %s" #~ msgid "Dynamic MMap ran out of room" -#~ msgstr "La funcin Dynamic MMap se qued sin espacio" +#~ msgstr "La función «Dynamic MMap» se quedó sin espacio" #~ msgid "" #~ "Since you only requested a single operation it is extremely likely that\n" #~ "the package is simply not installable and a bug report against\n" #~ "that package should be filed." #~ msgstr "" -#~ "Como slo solicito una nica operacin, es extremadamente posible que el\n" -#~ "paquete simplemente no sea instalable y debera de rellenar un informe " +#~ "Como sólo solicito una única operación, es extremadamente posible que " +#~ "el\n" +#~ "paquete simplemente no sea instalable y debería de rellenar un informe " #~ "de\n" #~ "error contra ese paquete." #~ msgid "Line %d too long (max %lu)" -#~ msgstr "Lnea %d demasiado larga (mx %lu)" +#~ msgstr "Línea %d demasiado larga (máx %lu)" #~ msgid "Line %d too long (max %d)" -#~ msgstr "Lnea %d demasiado larga (mx %d)" +#~ msgstr "Línea %d demasiado larga (máx %d)" #~ msgid "Error occured while processing %s (NewFileDesc1)" -#~ msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc1)" +#~ msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc1)" #~ msgid "Error occured while processing %s (NewFileDesc2)" -#~ msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc2)" +#~ msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc2)" #~ msgid "Stored label: %s \n" #~ msgstr "Etiqueta guardada: %s \n" @@ -3439,14 +3524,14 @@ msgstr "La conexi #~ "Found %i package indexes, %i source indexes, %i translation indexes and " #~ "%i signatures\n" #~ msgstr "" -#~ "Se encontraron %i ndices de paquetes, %i ndices de fuentes, %i ndices " -#~ "de traduccin y %i firmas\n" +#~ "Se encontraron %i índices de paquetes, %i índices de fuentes, %i índices " +#~ "de traducción y %i firmas\n" #~ msgid "openpty failed\n" -#~ msgstr "Fall openpty\n" +#~ msgstr "Falló openpty\n" #~ msgid "File date has changed %s" -#~ msgstr "Cambi la fecha del archivo %s" +#~ msgstr "Cambió la fecha del archivo %s" #~ msgid "Reading file list" #~ msgstr "Leyendo Lista de Archivos" @@ -3455,14 +3540,14 @@ msgstr "La conexi #~ msgstr "No se pudo ejecutar " #~ msgid "Preparing for remove with config %s" -#~ msgstr "Preparndose para eliminar con su configuracin %s" +#~ msgstr "Preparándose para eliminar con su configuración %s" #~ msgid "Removed with config %s" -#~ msgstr "Eliminado con su configuracin %s" +#~ msgstr "Eliminado con su configuración %s" #~ msgid "Unknown vendor ID '%s' in line %u of source list %s" #~ msgstr "" -#~ "ID del fabricante '%s' desconocido en la lnea %u de la lista de\n" +#~ "ID del fabricante «%s» desconocido en la línea %u de la lista de\n" #~ "fuentes %s" #~ msgid "" @@ -3471,7 +3556,7 @@ msgstr "La conexi #~ "You might want to run 'apt-get -f install' to correct these." #~ msgstr "" #~ "Se encontraron algunos paquetes rotos mientras se intentaba procesar\n" -#~ "las dependencies de construccin. Tal vez quiera ejecutar \n" +#~ "las dependencies de construcción. Tal vez quiera ejecutar \n" #~ "'apt-get -f install' para corregirlos." #~ msgid "" @@ -3514,39 +3599,40 @@ msgstr "La conexi #~ " apt-cache [opciones] showpkg paq1 [paq2 ...]\n" #~ "\n" #~ "apt-cache es una herramienta usada para manipular los archivos binarios\n" -#~ "de cach de APT, y consultar informacin de stos.\n" +#~ "de caché de APT, y consultar información de éstos.\n" #~ "\n" #~ "Comandos:\n" -#~ " add - Aade un archivo de paquete a la cach fuente\n" -#~ " gencaches - Crea el cach de ambos, del paquete y del fuente\n" -#~ " showpkg - Muestra alguna informacin general para un solo paquete\n" -#~ " showsrc - Muestra la informacin de las fuentes\n" -#~ " stats - Muestra algunas estadsticas bsicas\n" +#~ " add - Añade un archivo de paquete a la caché fuente\n" +#~ " gencaches - Crea el caché de ambos, del paquete y del fuente\n" +#~ " showpkg - Muestra alguna información general para un solo paquete\n" +#~ " showsrc - Muestra la información de las fuentes\n" +#~ " stats - Muestra algunas estadísticas básicas\n" #~ " dump - Muestra el archivo entero en formato detallado\n" #~ " dumpavail - Imprime un archivo de paquetes disponibles a salida\n" -#~ "estndar\n" +#~ "estándar\n" #~ " unmet - Muestra dependencias incumplidas\n" -#~ " search - Busca en la lista de paquetes por un patrn de expresin\n" +#~ " search - Busca en la lista de paquetes por un patrón de expresión\n" #~ "regular\n" #~ " show - Muestra un registro del paquete\n" -#~ " depends - Muestra informacin de dependencias en bruto para el\n" +#~ " depends - Muestra información de dependencias en bruto para el\n" #~ "paquete\n" #~ " pkgnames - Lista los nombres de todos los paquetes\n" -#~ " dotty - Genera grficas del paquete para GraphVis\n" -#~ " policy - Muestra los parmetros de las normas\n" +#~ " dotty - Genera gráficas del paquete para GraphVis\n" +#~ " policy - Muestra los parámetros de las normas\n" #~ "\n" #~ "Opciones:\n" #~ " -h Este texto de ayuda.\n" -#~ " -p=? El cach del paquete.\n" -#~ " -s=? El cach de la fuente.\n" +#~ " -p=? El caché del paquete.\n" +#~ " -s=? El caché de la fuente.\n" #~ " -q Deshabilita el indicador de progreso.\n" -#~ " -i Muestra slo dependencias importantes para el comando de\n" +#~ " -i Muestra sólo dependencias importantes para el comando de\n" #~ "incumplido.\n" -#~ " -c=? Lee este archivo de configuracin\n" -#~ " -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::\n" +#~ " -c=? Lee este archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria, p. ej. -o " +#~ "dir::\n" #~ "cache=/tmp\n" -#~ "Consulte las pginas del manual apt-cache(8) y apt.conf(5) para ms\n" -#~ "informacin.\n" +#~ "Consulte las páginas del manual apt-cache(8) y apt.conf(5) para más\n" +#~ "información.\n" #~ msgid "" #~ "%s dependency on %s cannot be satisfied because the package %s cannot be " @@ -3556,7 +3642,7 @@ msgstr "La conexi #~ "no se puede encontrar" #~ msgid "The package cache was build for a different architecture" -#~ msgstr "La cach de archivos fue creado para una arquitectura diferente" +#~ msgstr "La caché de archivos fue creado para una arquitectura diferente" #~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." #~ msgstr "" @@ -3574,19 +3660,19 @@ msgstr "La conexi #~ msgstr "Necesito descargar %sB de ficheros. " #~ msgid "After unpacking %sB will be used.\n" -#~ msgstr "Se usarn %sB despus de desempaquetar.\n" +#~ msgstr "Se usarán %sB después de desempaquetar.\n" #~ msgid "After unpacking %sB will be freed.\n" -#~ msgstr "Se liberarn %sB despus de desempaquetar.\n" +#~ msgstr "Se liberarán %sB después de desempaquetar.\n" #~ msgid "" #~ "Sorry, re-installation of %s is not possible, it cannot be downloaded.\n" #~ msgstr "" -#~ "Lo siento, no es posible la reinstalacin del paquete %s, no puede ser " +#~ "Lo siento, no es posible la reinstalación del paquete %s, no puede ser " #~ "descargado.\n" #~ msgid "Sorry, %s is already the newest version.\n" -#~ msgstr "Lo siento, %s ya est en su versin ms reciente.\n" +#~ msgstr "Lo siento, %s ya está en su versión más reciente.\n" #~ msgid "Sorry, broken packages" #~ msgstr "Lo siento, paquetes rotos" @@ -3607,7 +3693,7 @@ msgstr "La conexi #~ msgstr "-> '" #~ msgid "Followed conf file from " -#~ msgstr "Archivo de configuracin seguido por" +#~ msgstr "Archivo de configuración seguido por" #~ msgid " to " #~ msgstr " a " @@ -3616,7 +3702,7 @@ msgstr "La conexi #~ msgstr "Extraer" #~ msgid "Aborted, backing out" -#~ msgstr "Abortado, retractndome" +#~ msgstr "Abortado, retractándome" #~ msgid "De-replaced " #~ msgstr "De-reemplazado" @@ -3634,25 +3720,25 @@ msgstr "La conexi #~ msgstr "Fichero reemplazado" #~ msgid "Unimplemented" -#~ msgstr "No est implementado" +#~ msgstr "No está implementado" #~ msgid "Generating cache" -#~ msgstr "Generando el cach" +#~ msgstr "Generando el caché" #~ msgid "Problem with SelectFile" -#~ msgstr "Hay problemas con SelectFile" +#~ msgstr "Se produjo un problema con «SelectFile»" #~ msgid "Problem with MergeList" -#~ msgstr "Hay problemas con MergeList" +#~ msgstr "Se produjo un problema con «MergeList»" #~ msgid "Regex compilation error" -#~ msgstr "Error de compilacin de Regex" +#~ msgstr "Error de compilación de Regex" #~ msgid "Write to stdout failed" -#~ msgstr "No pude escribir a la salida estndar" +#~ msgstr "No pude escribir a la salida estándar" #~ msgid "Generate must be enabled for this function" -#~ msgstr "Generate debe de estar habilitado para esta funcin" +#~ msgstr "Generate debe de estar habilitado para esta función" #~ msgid "Failed to stat %s%s" #~ msgstr "No pude leer %s%s" @@ -3661,22 +3747,22 @@ msgstr "La conexi #~ msgstr "No pude abrir %s.new" #~ msgid "Failed to rename %s.new to %s" -#~ msgstr "No pude renombrar %s.new a %s" +#~ msgstr "No se pudo renombrar %s.new a %s" #~ msgid "I found (binary):" -#~ msgstr "Encontr (binario):" +#~ msgstr "Encontré (binario):" #~ msgid "I found (source):" -#~ msgstr "Encontr (fuente):" +#~ msgstr "Encontré (fuente):" #~ msgid "Found " -#~ msgstr "Encontr " +#~ msgstr "Encontré " #~ msgid " source indexes." -#~ msgstr " ndice de fuentes." +#~ msgstr " índice de fuentes." #~ msgid " '" -#~ msgstr " '" +#~ msgstr " »" #~ msgid "" #~ "Usage: apt-cdrom [options] command\n" @@ -3703,22 +3789,22 @@ msgstr "La conexi #~ "Uso: apt-cdrom [opciones] orden\n" #~ "\n" #~ "apt-cdrom es una herramienta para agregar CDROM para las fuentes de\n" -#~ "APT. El punto de montaje del CDROM y la informacin del dispositivo\n" +#~ "APT. El punto de montaje del CDROM y la información del dispositivo\n" #~ "se extrae de apt.conf y /etc/fstab.\n" #~ "\n" #~ "Comandos:\n" #~ " add - Agrega un CDROM\n" -#~ " ident - Reporta la identificacin del CDROM\n" +#~ " ident - Reporta la identificación del CDROM\n" #~ "\n" #~ "Opciones:\n" #~ " -h Este texto de ayuda\n" #~ " -d Punto de montaje del CD-ROM\n" #~ " -r Renombra un CD-ROM reconocido\n" #~ " -m No monta\n" -#~ " -f Modo rpido, no comprueba archivos de paquetes\n" -#~ " -a A travs de modo de bsqueda\n" -#~ " -c=? Lee esto archivo de configuracin\n" -#~ " -o=? Establece una opcin de configuracin arbitraria, ej -o dir::\n" +#~ " -f Modo rápido, no comprueba archivos de paquetes\n" +#~ " -a A través de modo de búsqueda\n" +#~ " -c=? Lee esto archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria, ej -o dir::\n" #~ "cache=/tmp\n" #~ "Ver fstab(5)\n" @@ -3729,7 +3815,7 @@ msgstr "La conexi #~ msgstr "No pude esperar al subproceso" #~ msgid "....\"Have you mooed today?\"..." -#~ msgstr "....\"Has mugido hoy?\"..." +#~ msgstr "....\"¿Has mugido hoy?\"..." #~ msgid " New " #~ msgstr " Nuevo " @@ -3774,20 +3860,20 @@ msgstr "La conexi #~ msgstr "" #~ "Opciones:\n" #~ " -h Este texto de ayuda\n" -#~ " --md5 Generacin de control MD5 \n" +#~ " --md5 Generación de control MD5 \n" #~ " -s=? Archivo fuente de predominio\n" #~ " -q Callado\n" #~ " -d=? Selecciona la base de datos opcional de cache\n" -#~ " --no-delink Habilita modo de depuracin delink\n" -#~ " --contents Generacin del contenido del archivo 'Control'\n" -#~ " -c=? Lee este archivo de configuracin\n" -#~ " -o=? Establece una opcin de configuracin arbitraria\n" +#~ " --no-delink Habilita modo de depuración delink\n" +#~ " --contents Generación del contenido del archivo 'Control'\n" +#~ " -c=? Lee este archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria\n" #~ msgid "Done Packages, Starting contents." #~ msgstr "Paquetes terminados, empezando contenidos." #~ msgid "Hit contents update byte limit" -#~ msgstr "Se encontr el lmite de bytes de actualizacin de contenidos" +#~ msgstr "Se encontró el límite de bytes de actualización de contenidos" #~ msgid "Done. " #~ msgstr "Listo." @@ -3805,10 +3891,10 @@ msgstr "La conexi #~ msgstr " no " #~ msgid "DSC file '%s' is too large!" -#~ msgstr "El Archivo DSC '%s' es demasiado grande!" +#~ msgstr "¡El archivo DSC «%s» es demasiado grande!" #~ msgid "Could not find a record in the DSC '%s'" -#~ msgstr "No se pudo encontrar un registro en el archive DSC '%s'" +#~ msgstr "No se pudo encontrar un registro en el archive DSC «%s»" #~ msgid "Error parsing file record" #~ msgstr "Error leyendo archivo de registros" @@ -3817,10 +3903,10 @@ msgstr "La conexi #~ msgstr "No pude leer %s" #~ msgid "Errors apply to file '%s'" -#~ msgstr "Errores aplicables al fichero '%s'" +#~ msgstr "Los errores aplican al fichero «%s»" #~ msgid "Unkonwn address family %u (AF_*)" -#~ msgstr "Direccin de familia %u desconocida (AF_*)" +#~ msgstr "Dirección de familia %u desconocida (AF_*)" #~ msgid "Failed to mount the cdrom." #~ msgstr "No pude montar el cdrom" @@ -3847,25 +3933,25 @@ msgstr "La conexi #~ " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" #~ " dists/potato/main/binary-i386/Packages\n" #~ msgstr "" -#~ "apt-ftparchive genera archivos de ndice para archivos de Debian.\n" -#~ "Soporta varios estilos de generacin de reemplazos completamente\n" +#~ "apt-ftparchive genera archivos de índice para archivos de Debian.\n" +#~ "Soporta varios estilos de generación de reemplazos completamente\n" #~ "automatizados a funcionales para dpkg-scanpackages y dpkg-scansources\n" #~ "\n" -#~ "apt-ftparchive genera archivos Package de un rbol de .debs. El Archivo\n" +#~ "apt-ftparchive genera archivos Package de un árbol de .debs. El Archivo\n" #~ "Package contiene los contenidos de todos los campos de control de cada\n" -#~ "paquete al igual que el enlace MD5 y el tamao del archivo. Se\n" +#~ "paquete al igual que el enlace MD5 y el tamaño del archivo. Se\n" #~ "soporta el uso de un archivo de predominio para forzar el valor de\n" #~ "Priority y Section.\n" #~ "\n" -#~ "Igualmente, apt-ftparchive genera archivos de Fuentes para el rbol de\n" -#~ ".dscs. Puede usarse la opcin --source-override para especificar un\n" +#~ "Igualmente, apt-ftparchive genera archivos de Fuentes para el árbol de\n" +#~ ".dscs. Puede usarse la opción --source-override para especificar un\n" #~ "fichero de predominio fuente.\n" #~ "\n" -#~ "Las rdenes 'packages' y 'sources' se deben de ejecutar en la raz del\n" -#~ "rbol. BinaryPath debe de apuntar a la base del archivo de bsqueda\n" +#~ "Las órdenes 'packages' y 'sources' se deben de ejecutar en la raíz del\n" +#~ "árbol. BinaryPath debe de apuntar a la base del archivo de búsqueda\n" #~ "recursiva, y el archivo de predominio debe contener banderas de\n" #~ "predominio. Pathprefix se agregado a los campos del nombre del archivo\n" -#~ "si estn presentes. Ejemplo de uso tomado de los archivos de Debian:\n" +#~ "si están presentes. Ejemplo de uso tomado de los archivos de Debian:\n" #~ " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\\\n" #~ " dists/potato/main/binary-i386/Packages\n" @@ -3876,10 +3962,10 @@ msgstr "La conexi #~ msgstr "A: No se pudo leer " #~ msgid "E: Errors apply to file '" -#~ msgstr "E: Errores aplicables al archivo '" +#~ msgstr "E: Errores aplicables al archivo «" #~ msgid " DeLink limit of " -#~ msgstr " DeLink lmite de" +#~ msgstr " DeLink límite de" #~ msgid " has no override entry" #~ msgstr " no tiene entrada de predominio" -- cgit v1.2.3 From 64553ed102c5a52604ea632b268c81f789b12176 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 12 Jan 2011 16:32:38 +0100 Subject: * apt-pkg/contrib/weakptr.h: - fix compile error with g++ 4.6 --- apt-pkg/contrib/weakptr.h | 1 + debian/changelog | 2 ++ 2 files changed, 3 insertions(+) diff --git a/apt-pkg/contrib/weakptr.h b/apt-pkg/contrib/weakptr.h index 5158e393c..ed92eb3f9 100644 --- a/apt-pkg/contrib/weakptr.h +++ b/apt-pkg/contrib/weakptr.h @@ -21,6 +21,7 @@ #ifndef WEAK_POINTER_H #define WEAK_POINTER_H +#include #include /** * Class for objects providing support for weak pointers. diff --git a/debian/changelog b/debian/changelog index 98c127143..cf56a384e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -80,6 +80,8 @@ apt (0.8.7) unstable; urgency=low * apt-pkg/deb/debsystem.cc: - fix issues with dir::state::status and dir::state::extended_states when alternative rootdirs are used + * apt-pkg/contrib/weakptr.h: + - fix compile error with g++ 4.6 [ Martin Pitt ] * apt-pkg/deb/debindexfile.cc: -- cgit v1.2.3 From 36f1098aed548651a32a2c15cc9ad80c4330b4d9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Jan 2011 17:09:04 +0100 Subject: * apt-pkg/contrib/fileutl.cc: - add a RealFileExists method and check that your configuration files are real files to avoid endless loops if not (Closes: #604401) --- apt-pkg/contrib/fileutl.cc | 20 ++++++- apt-pkg/contrib/fileutl.h | 1 + apt-pkg/depcache.cc | 4 +- apt-pkg/init.cc | 6 +- apt-pkg/policy.cc | 2 +- apt-pkg/sourcelist.cc | 6 +- apt-pkg/vendorlist.cc | 4 +- debian/changelog | 5 +- .../test-bug-604401-files-are-directories | 66 ++++++++++++++++++++++ 9 files changed, 101 insertions(+), 13 deletions(-) create mode 100755 test/integration/test-bug-604401-files-are-directories diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index f4ab066d7..db6057ea3 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -191,7 +191,7 @@ int GetLock(string File,bool Errors) /*}}}*/ // FileExists - Check if a file exists /*{{{*/ // --------------------------------------------------------------------- -/* */ +/* Beware: Directories are also files! */ bool FileExists(string File) { struct stat Buf; @@ -200,6 +200,17 @@ bool FileExists(string File) return true; } /*}}}*/ +// RealFileExists - Check if a file exists and if it is really a file /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool RealFileExists(string File) +{ + struct stat Buf; + if (stat(File.c_str(),&Buf) != 0) + return false; + return ((Buf.st_mode & S_IFREG) != 0); +} + /*}}}*/ // DirectoryExists - Check if a directory exists and is really one /*{{{*/ // --------------------------------------------------------------------- /* */ @@ -304,6 +315,13 @@ std::vector GetListOfFilesInDir(string const &Dir, std::vector c } std::vector List; + + if (DirectoryExists(Dir.c_str()) == false) + { + _error->Error(_("List of files can't be created as '%s' is not a directory"), Dir.c_str()); + return List; + } + Configuration::MatchAgainstConfig SilentIgnore("Dir::Ignore-Files-Silently"); DIR *D = opendir(Dir.c_str()); if (D == 0) diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index 1380f06b4..146d917d8 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -93,6 +93,7 @@ bool RunScripts(const char *Cnf); bool CopyFile(FileFd &From,FileFd &To); int GetLock(string File,bool Errors = true); bool FileExists(string File); +bool RealFileExists(string File); bool DirectoryExists(string const &Path) __attrib_const; bool CreateDirectory(string const &Parent, string const &Path); diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 594c085a5..d2557386d 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -167,7 +167,7 @@ bool pkgDepCache::readStateFile(OpProgress *Prog) /*{{{*/ { FileFd state_file; string const state = _config->FindFile("Dir::State::extended_states"); - if(FileExists(state)) { + if(RealFileExists(state)) { state_file.Open(state, FileFd::ReadOnly); int const file_size = state_file.Size(); if(Prog != NULL) @@ -226,7 +226,7 @@ bool pkgDepCache::writeStateFile(OpProgress *prog, bool InstalledOnly) /*{{{*/ string const state = _config->FindFile("Dir::State::extended_states"); // if it does not exist, create a empty one - if(!FileExists(state)) + if(!RealFileExists(state)) { StateFile.Open(state, FileFd::WriteAtomic); StateFile.Close(); diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index f0bad78df..734f5b2c4 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -94,10 +94,10 @@ bool pkgInitConfig(Configuration &Cnf) const char *Cfg = getenv("APT_CONFIG"); if (Cfg != 0) { - if (FileExists(Cfg) == true) + if (RealFileExists(Cfg) == true) Res &= ReadConfigFile(Cnf,Cfg); else - _error->WarningE("FileExists",_("Unable to read %s"),Cfg); + _error->WarningE("RealFileExists",_("Unable to read %s"),Cfg); } // Read the configuration parts dir @@ -109,7 +109,7 @@ bool pkgInitConfig(Configuration &Cnf) // Read the main config file string FName = Cnf.FindFile("Dir::Etc::main"); - if (FileExists(FName) == true) + if (RealFileExists(FName) == true) Res &= ReadConfigFile(Cnf,FName); if (Res == false) diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index 4f9d56775..f05b6ca49 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -328,7 +328,7 @@ bool ReadPinFile(pkgPolicy &Plcy,string File) if (File.empty() == true) File = _config->FindFile("Dir::Etc::Preferences"); - if (FileExists(File) == false) + if (RealFileExists(File) == false) return true; FileFd Fd(File,FileFd::ReadOnly); diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc index c3ec9865a..851eefdfe 100644 --- a/apt-pkg/sourcelist.cc +++ b/apt-pkg/sourcelist.cc @@ -197,7 +197,7 @@ bool pkgSourceList::ReadMainList() string Main = _config->FindFile("Dir::Etc::sourcelist"); string Parts = _config->FindDir("Dir::Etc::sourceparts"); - if (FileExists(Main) == true) + if (RealFileExists(Main) == true) Res &= ReadAppend(Main); else if (DirectoryExists(Parts) == false) // Only warn if there are no sources.list.d. @@ -205,9 +205,9 @@ bool pkgSourceList::ReadMainList() if (DirectoryExists(Parts) == true) Res &= ReadSourceDir(Parts); - else if (FileExists(Main) == false) + else if (RealFileExists(Main) == false) // Only warn if there is no sources.list file. - _error->WarningE("FileExists", _("Unable to read %s"), Main.c_str()); + _error->WarningE("RealFileExists", _("Unable to read %s"), Main.c_str()); return Res; } diff --git a/apt-pkg/vendorlist.cc b/apt-pkg/vendorlist.cc index 589997081..92ff38894 100644 --- a/apt-pkg/vendorlist.cc +++ b/apt-pkg/vendorlist.cc @@ -21,11 +21,11 @@ bool pkgVendorList::ReadMainList() Configuration Cnf; string CnfFile = _config->FindDir("Dir::Etc::vendorparts"); - if (FileExists(CnfFile) == true) + if (DirectoryExists(CnfFile) == true) if (ReadConfigDir(Cnf,CnfFile,true) == false) return false; CnfFile = _config->FindFile("Dir::Etc::vendorlist"); - if (FileExists(CnfFile) == true) + if (RealFileExists(CnfFile) == true) if (ReadConfigFile(Cnf,CnfFile,true) == false) return false; diff --git a/debian/changelog b/debian/changelog index 2a0b5a8cf..123b88430 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,8 +17,11 @@ apt (0.8.11+wheezy) unstable; urgency=low requested on the commandline, e.g. with a modifier * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) + * apt-pkg/contrib/fileutl.cc: + - add a RealFileExists method and check that your configuration files + are real files to avoid endless loops if not (Closes: #604401) - -- David Kalnischkies Fri, 03 Dec 2010 17:30:52 +0100 + -- David Kalnischkies Wed, 12 Jan 2011 16:53:41 +0100 apt (0.8.10) unstable; urgency=low diff --git a/test/integration/test-bug-604401-files-are-directories b/test/integration/test-bug-604401-files-are-directories new file mode 100755 index 000000000..917fb106f --- /dev/null +++ b/test/integration/test-bug-604401-files-are-directories @@ -0,0 +1,66 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +test ! -e rootdir/etc/apt/apt.conf || mv rootdir/etc/apt/apt.conf rootdir/etc/apt/apt.conf.d/000move-away-apt.conf + +msgtest "Directory instead of a file as apt.conf ignored" +mkdir -p rootdir/etc/apt/apt.conf +aptconfig dump > /dev/null && msgpass || msgfail +rmdir rootdir/etc/apt/apt.conf + +msgtest "Good link instead of a file as apt.conf ignored" +echo 'Test::APT::Link "good";' > rootdir/etc/apt/good-link.conf +ln -s rootdir/etc/apt/good-link.conf rootdir/etc/apt/apt.conf +test -n "$(aptconfig shell TestLink 'Test::APT::Link')" && msgfail || msgpass +rm rootdir/etc/apt/apt.conf + +msgtest "Broken link instead of a file as apt.conf ignored" +ln -s /tmp/doesnt-exist rootdir/etc/apt/apt.conf +aptconfig dump > /dev/null && msgpass || msgfail +rm rootdir/etc/apt/apt.conf + + +test ! -e rootdir/etc/apt/sources.list || mv rootdir/etc/apt/sources.list rootdir/etc/apt/sources.list.d/000move-away-sources.list + +msgtest "Directory instead of a file as sources.list ignored" +mkdir -p rootdir/etc/apt/sources.list +aptget update --print-uris 2> /dev/null && msgpass || msgfail +rmdir rootdir/etc/apt/sources.list + +msgtest "Good link instead of a file as sources.list ignored" +echo 'deb file:///tmp/debian sid main' > rootdir/etc/apt/good-link.list +ln -s rootdir/etc/apt/good-link.list rootdir/etc/apt/sources.list +test -n "$(aptget update --print-uris)" && msgfail || msgpass +rm rootdir/etc/apt/sources.list + +msgtest "Broken link instead of a file as sources.list ignored" +ln -s /tmp/doesnt-exist rootdir/etc/apt/sources.list +test -n "$(aptget update --print-uris)" && msgfail || msgpass +rm rootdir/etc/apt/sources.list + + +test ! -e rootdir/etc/apt/preferences || mv rootdir/etc/apt/preferences rootdir/etc/apt/preferences.d/000move-away-preferences + +msgtest "Directory instead of a file as preferences ignored" +mkdir -p rootdir/etc/apt/preferences +aptcache policy > /dev/null 2> /dev/null && msgpass || msgfail +rmdir rootdir/etc/apt/preferences + +msgtest "Good link instead of a file as preferences ignored" +echo 'Package: apt +Pin: release a=now +Pin-Value: 1000' > rootdir/etc/apt/good-link.pref +ln -s rootdir/etc/apt/good-link.pref rootdir/etc/apt/preferences +test -n "$(aptcache policy | grep 1000)" && msgfail || msgpass +rm rootdir/etc/apt/preferences + +msgtest "Broken link instead of a file as preferences ignored" +ln -s /tmp/doesnt-exist rootdir/etc/apt/preferences +aptcache policy > /dev/null 2> /dev/null && msgpass || msgfail +rm rootdir/etc/apt/preferences -- cgit v1.2.3 From c65607c5ecc2c3a16d3432583dd859d6fb2dc3aa Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Jan 2011 17:15:26 +0100 Subject: * apt-pkg/contrib/weakptr.h: - include stddefs.h to fix compile error (undefined NULL) with gcc-4.6 --- apt-pkg/contrib/weakptr.h | 2 ++ debian/changelog | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apt-pkg/contrib/weakptr.h b/apt-pkg/contrib/weakptr.h index 5158e393c..8de727d89 100644 --- a/apt-pkg/contrib/weakptr.h +++ b/apt-pkg/contrib/weakptr.h @@ -22,6 +22,8 @@ #define WEAK_POINTER_H #include +#include + /** * Class for objects providing support for weak pointers. * diff --git a/debian/changelog b/debian/changelog index 123b88430..61b551cc9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,8 +20,10 @@ apt (0.8.11+wheezy) unstable; urgency=low * apt-pkg/contrib/fileutl.cc: - add a RealFileExists method and check that your configuration files are real files to avoid endless loops if not (Closes: #604401) + * apt-pkg/contrib/weakptr.h: + - include stddefs.h to fix compile error (undefined NULL) with gcc-4.6 - -- David Kalnischkies Wed, 12 Jan 2011 16:53:41 +0100 + -- David Kalnischkies Wed, 12 Jan 2011 17:14:14 +0100 apt (0.8.10) unstable; urgency=low -- cgit v1.2.3 From cda456d793c0f1e16a9572645caaa11ca636aec3 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Jan 2011 23:23:36 +0100 Subject: remove two unused variables gcc-4.6 reports from depcache.cc --- apt-pkg/depcache.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index d2557386d..5f59b6d49 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1330,8 +1330,6 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, for (DepIterator D = instVer.DependsList(); D.end() != true; D++) { //FIXME: deal better with or-groups(?) - DepIterator LocalStart = D; - if(IsImportantDep(D) && !D.IsCritical() && Start.TargetPkg() == D.TargetPkg()) { @@ -1921,10 +1919,11 @@ void pkgDepCache::MarkPackage(const pkgCache::PkgIterator &pkg, return; VerIterator const currver = pkg.CurrentVer(); - VerIterator const candver = state.CandidateVerIter(*this); VerIterator const instver = state.InstVerIter(*this); #if 0 + VerIterator const candver = state.CandidateVerIter(*this); + // If a package was garbage-collected but is now being marked, we // should re-select it // For cases when a pkg is set to upgrade and this trigger the -- cgit v1.2.3 From ed0fe654305469c1f9869f308e2f595ac8bc4c13 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Jan 2011 23:31:37 +0100 Subject: remove the unused Die boolean - error reporting is done by ExecWait --- apt-pkg/deb/dpkgpm.cc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 9f0da3be6..95a3f173b 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -322,7 +322,6 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf) return _error->Errno("fdopen","Faild to open new FD"); // Feed it the filenames. - bool Die = false; if (Version <= 1) { for (vector::iterator I = List.begin(); I != List.end(); I++) @@ -339,14 +338,11 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf) into the pipe. */ fprintf(F,"%s\n",I->File.c_str()); if (ferror(F) != 0) - { - Die = true; break; - } } } else - Die = !SendV2Pkgs(F); + SendV2Pkgs(F); fclose(F); -- cgit v1.2.3 From e3d26885659348e897774ea6f08f296f4b900781 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Jan 2011 23:34:56 +0100 Subject: FristOwner is never used in the blamed history and gcc-4.6 complains now --- apt-inst/extract.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apt-inst/extract.cc b/apt-inst/extract.cc index 85363b9a1..cd8edb27a 100644 --- a/apt-inst/extract.cc +++ b/apt-inst/extract.cc @@ -372,7 +372,6 @@ bool pkgExtract::HandleOverwrites(pkgFLCache::NodeIterator Nde, pkgFLCache::NodeIterator TmpNde = Nde; unsigned long DiverOwner = 0; unsigned long FileGroup = Nde->File; - const char *FirstOwner = 0; for (; Nde.end() == false && FileGroup == Nde->File; Nde++) { if ((Nde->Flags & pkgFLCache::Node::Diversion) != 0) @@ -392,8 +391,7 @@ bool pkgExtract::HandleOverwrites(pkgFLCache::NodeIterator Nde, if something has already been diverted by this diversion */ if (FPkg.Offset() == DiverOwner) continue; - FirstOwner = FPkg.Name(); - + // Now see if this package matches one in a replace depends pkgCache::DepIterator Dep = Ver.DependsList(); bool Ok = false; -- cgit v1.2.3 From 52b22cea95a1ba506ee633c1610bf241817ab529 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 12 Jan 2011 23:46:18 +0100 Subject: * methods/https.cc: - fix CURLOPT_SSL_VERIFYHOST by really passing 2 to it if enabled --- debian/changelog | 4 +- methods/https.cc | 6 +- po/apt-all.pot | 394 ++++++++++++++++++++++++++++--------------------------- 3 files changed, 207 insertions(+), 197 deletions(-) diff --git a/debian/changelog b/debian/changelog index 61b551cc9..81f741d03 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,8 +22,10 @@ apt (0.8.11+wheezy) unstable; urgency=low are real files to avoid endless loops if not (Closes: #604401) * apt-pkg/contrib/weakptr.h: - include stddefs.h to fix compile error (undefined NULL) with gcc-4.6 + * methods/https.cc: + - fix CURLOPT_SSL_VERIFYHOST by really passing 2 to it if enabled - -- David Kalnischkies Wed, 12 Jan 2011 17:14:14 +0100 + -- David Kalnischkies Wed, 12 Jan 2011 23:46:08 +0100 apt (0.8.10) unstable; urgency=low diff --git a/methods/https.cc b/methods/https.cc index aa6786aa8..fc649d6c2 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -143,13 +143,11 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, peer_verify); // ... and hostname against cert CN or subjectAltName - int default_verify = 2; bool verify = _config->FindB("Acquire::https::Verify-Host",true); knob = "Acquire::https::"+remotehost+"::Verify-Host"; verify = _config->FindB(knob.c_str(),verify); - if (!verify) - default_verify = 0; - curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, verify); + int const default_verify = (verify == true) ? 2 : 0; + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, default_verify); // Also enforce issuer of server certificate using its cert string issuercert = _config->Find("Acquire::https::IssuerCert",""); diff --git a/po/apt-all.pot b/po/apt-all.pot index 757f685da..71e212509 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-28 17:23+0200\n" +"POT-Creation-Date: 2011-01-12 17:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -149,7 +149,7 @@ msgstr "" #: cmdline/apt-cache.cc:1738 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589 -#: cmdline/apt-get.cc:2758 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2793 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "" @@ -616,75 +616,70 @@ msgstr "" msgid "The following held packages will be changed:" msgstr "" -#: cmdline/apt-get.cc:561 +#: cmdline/apt-get.cc:563 #, c-format msgid "%s (due to %s) " msgstr "" -#: cmdline/apt-get.cc:569 +#: cmdline/apt-get.cc:571 msgid "" "WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" msgstr "" -#: cmdline/apt-get.cc:603 +#: cmdline/apt-get.cc:605 #, c-format msgid "%lu upgraded, %lu newly installed, " msgstr "" -#: cmdline/apt-get.cc:607 +#: cmdline/apt-get.cc:609 #, c-format msgid "%lu reinstalled, " msgstr "" -#: cmdline/apt-get.cc:609 +#: cmdline/apt-get.cc:611 #, c-format msgid "%lu downgraded, " msgstr "" -#: cmdline/apt-get.cc:611 +#: cmdline/apt-get.cc:613 #, c-format msgid "%lu to remove and %lu not upgraded.\n" msgstr "" -#: cmdline/apt-get.cc:615 +#: cmdline/apt-get.cc:617 #, c-format msgid "%lu not fully installed or removed.\n" msgstr "" -#: cmdline/apt-get.cc:635 +#: cmdline/apt-get.cc:639 #, c-format msgid "Note, selecting '%s' for task '%s'\n" msgstr "" -#: cmdline/apt-get.cc:641 +#: cmdline/apt-get.cc:645 #, c-format msgid "Note, selecting '%s' for regex '%s'\n" msgstr "" -#: cmdline/apt-get.cc:648 -#, c-format -msgid "Selected version '%s' (%s) for '%s'\n" -msgstr "" - -#: cmdline/apt-get.cc:658 +#: cmdline/apt-get.cc:662 #, c-format msgid "Package %s is a virtual package provided by:\n" msgstr "" -#: cmdline/apt-get.cc:669 +#: cmdline/apt-get.cc:673 msgid " [Installed]" msgstr "" -#: cmdline/apt-get.cc:678 +#: cmdline/apt-get.cc:682 msgid " [Not candidate version]" msgstr "" -#: cmdline/apt-get.cc:680 +#: cmdline/apt-get.cc:684 msgid "You should explicitly select one to install." msgstr "" -#: cmdline/apt-get.cc:683 +#: cmdline/apt-get.cc:687 #, c-format msgid "" "Package %s is not available, but is referred to by another package.\n" @@ -692,167 +687,177 @@ msgid "" "is only available from another source\n" msgstr "" -#: cmdline/apt-get.cc:701 +#: cmdline/apt-get.cc:705 msgid "However the following packages replace it:" msgstr "" -#: cmdline/apt-get.cc:713 +#: cmdline/apt-get.cc:717 #, c-format msgid "Package '%s' has no installation candidate" msgstr "" -#: cmdline/apt-get.cc:724 +#: cmdline/apt-get.cc:728 #, c-format msgid "Virtual packages like '%s' can't be removed\n" msgstr "" -#: cmdline/apt-get.cc:755 +#: cmdline/apt-get.cc:759 #, c-format msgid "Note, selecting '%s' instead of '%s'\n" msgstr "" -#: cmdline/apt-get.cc:785 +#: cmdline/apt-get.cc:789 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" msgstr "" -#: cmdline/apt-get.cc:789 +#: cmdline/apt-get.cc:793 #, c-format msgid "Skipping %s, it is not installed and only upgrades are requested.\n" msgstr "" -#: cmdline/apt-get.cc:799 +#: cmdline/apt-get.cc:803 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" msgstr "" -#: cmdline/apt-get.cc:804 +#: cmdline/apt-get.cc:808 #, c-format msgid "%s is already the newest version.\n" msgstr "" -#: cmdline/apt-get.cc:823 cmdline/apt-get.cc:1992 +#: cmdline/apt-get.cc:827 cmdline/apt-get.cc:2027 #, c-format msgid "%s set to manually installed.\n" msgstr "" -#: cmdline/apt-get.cc:863 +#: cmdline/apt-get.cc:853 +#, c-format +msgid "Selected version '%s' (%s) for '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:858 +#, c-format +msgid "Selected version '%s' (%s) for '%s' because of '%s'\n" +msgstr "" + +#: cmdline/apt-get.cc:898 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "" -#: cmdline/apt-get.cc:938 +#: cmdline/apt-get.cc:973 msgid "Correcting dependencies..." msgstr "" -#: cmdline/apt-get.cc:941 +#: cmdline/apt-get.cc:976 msgid " failed." msgstr "" -#: cmdline/apt-get.cc:944 +#: cmdline/apt-get.cc:979 msgid "Unable to correct dependencies" msgstr "" -#: cmdline/apt-get.cc:947 +#: cmdline/apt-get.cc:982 msgid "Unable to minimize the upgrade set" msgstr "" -#: cmdline/apt-get.cc:949 +#: cmdline/apt-get.cc:984 msgid " Done" msgstr "" -#: cmdline/apt-get.cc:953 +#: cmdline/apt-get.cc:988 msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" -#: cmdline/apt-get.cc:956 +#: cmdline/apt-get.cc:991 msgid "Unmet dependencies. Try using -f." msgstr "" -#: cmdline/apt-get.cc:981 +#: cmdline/apt-get.cc:1016 msgid "WARNING: The following packages cannot be authenticated!" msgstr "" -#: cmdline/apt-get.cc:985 +#: cmdline/apt-get.cc:1020 msgid "Authentication warning overridden.\n" msgstr "" -#: cmdline/apt-get.cc:992 +#: cmdline/apt-get.cc:1027 msgid "Install these packages without verification [y/N]? " msgstr "" -#: cmdline/apt-get.cc:994 +#: cmdline/apt-get.cc:1029 msgid "Some packages could not be authenticated" msgstr "" -#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:1166 +#: cmdline/apt-get.cc:1038 cmdline/apt-get.cc:1199 msgid "There are problems and -y was used without --force-yes" msgstr "" -#: cmdline/apt-get.cc:1044 +#: cmdline/apt-get.cc:1079 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "" -#: cmdline/apt-get.cc:1053 +#: cmdline/apt-get.cc:1088 msgid "Packages need to be removed but remove is disabled." msgstr "" -#: cmdline/apt-get.cc:1064 +#: cmdline/apt-get.cc:1099 msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:1104 +#: cmdline/apt-get.cc:1137 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 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1111 +#: cmdline/apt-get.cc:1144 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1116 +#: cmdline/apt-get.cc:1149 #, c-format msgid "Need to get %sB of archives.\n" msgstr "" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1123 +#: cmdline/apt-get.cc:1156 #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1128 +#: cmdline/apt-get.cc:1161 #, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:1143 cmdline/apt-get.cc:1146 cmdline/apt-get.cc:2332 -#: cmdline/apt-get.cc:2335 +#: cmdline/apt-get.cc:1176 cmdline/apt-get.cc:1179 cmdline/apt-get.cc:2367 +#: cmdline/apt-get.cc:2370 #, c-format msgid "Couldn't determine free space in %s" msgstr "" -#: cmdline/apt-get.cc:1156 +#: cmdline/apt-get.cc:1189 #, c-format msgid "You don't have enough free space in %s." msgstr "" -#: cmdline/apt-get.cc:1172 cmdline/apt-get.cc:1192 +#: cmdline/apt-get.cc:1205 cmdline/apt-get.cc:1225 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" -#: cmdline/apt-get.cc:1174 +#: cmdline/apt-get.cc:1207 msgid "Yes, do as I say!" msgstr "" -#: cmdline/apt-get.cc:1176 +#: cmdline/apt-get.cc:1209 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -860,46 +865,46 @@ msgid "" " ?] " msgstr "" -#: cmdline/apt-get.cc:1182 cmdline/apt-get.cc:1201 +#: cmdline/apt-get.cc:1215 cmdline/apt-get.cc:1234 msgid "Abort." msgstr "" -#: cmdline/apt-get.cc:1197 +#: cmdline/apt-get.cc:1230 msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:1269 cmdline/apt-get.cc:2392 apt-pkg/algorithms.cc:1462 +#: cmdline/apt-get.cc:1302 cmdline/apt-get.cc:2427 apt-pkg/algorithms.cc:1470 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" -#: cmdline/apt-get.cc:1287 +#: cmdline/apt-get.cc:1320 msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:1288 cmdline/apt-get.cc:2401 +#: cmdline/apt-get.cc:1321 cmdline/apt-get.cc:2436 msgid "Download complete and in download only mode" msgstr "" -#: cmdline/apt-get.cc:1294 +#: cmdline/apt-get.cc:1327 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -#: cmdline/apt-get.cc:1298 +#: cmdline/apt-get.cc:1331 msgid "--fix-missing and media swapping is not currently supported" msgstr "" -#: cmdline/apt-get.cc:1303 +#: cmdline/apt-get.cc:1336 msgid "Unable to correct missing packages." msgstr "" -#: cmdline/apt-get.cc:1304 +#: cmdline/apt-get.cc:1337 msgid "Aborting install." msgstr "" -#: cmdline/apt-get.cc:1332 +#: cmdline/apt-get.cc:1365 msgid "" "The following package disappeared from your system as\n" "all files have been overwritten by other packages:" @@ -909,56 +914,35 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: cmdline/apt-get.cc:1336 +#: cmdline/apt-get.cc:1369 msgid "Note: This is done automatic and on purpose by dpkg." msgstr "" -#: cmdline/apt-get.cc:1466 +#: cmdline/apt-get.cc:1499 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" msgstr "" -#: cmdline/apt-get.cc:1498 +#: cmdline/apt-get.cc:1531 #, c-format msgid "Picking '%s' as source package instead of '%s'\n" msgstr "" #. if (VerTag.empty() == false && Last == 0) -#: cmdline/apt-get.cc:1536 +#: cmdline/apt-get.cc:1569 #, c-format msgid "Ignore unavailable version '%s' of package '%s'" msgstr "" -#: cmdline/apt-get.cc:1552 +#: cmdline/apt-get.cc:1585 msgid "The update command takes no arguments" msgstr "" -#: cmdline/apt-get.cc:1618 +#: cmdline/apt-get.cc:1647 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1666 -msgid "" -"The following package was automatically installed and is no longer required:" -msgid_plural "" -"The following packages were automatically installed and are no longer " -"required:" -msgstr[0] "" -msgstr[1] "" - -#: cmdline/apt-get.cc:1670 -#, c-format -msgid "%lu package was automatically installed and is no longer required.\n" -msgid_plural "" -"%lu packages were automatically installed and are no longer required.\n" -msgstr[0] "" -msgstr[1] "" - -#: cmdline/apt-get.cc:1672 -msgid "Use 'apt-get autoremove' to remove them." -msgstr "" - -#: cmdline/apt-get.cc:1677 +#: cmdline/apt-get.cc:1699 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -974,29 +958,50 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1680 cmdline/apt-get.cc:1822 +#: cmdline/apt-get.cc:1702 cmdline/apt-get.cc:1858 msgid "The following information may help to resolve the situation:" msgstr "" -#: cmdline/apt-get.cc:1684 +#: cmdline/apt-get.cc:1706 msgid "Internal Error, AutoRemover broke stuff" msgstr "" -#: cmdline/apt-get.cc:1703 +#: cmdline/apt-get.cc:1713 +msgid "" +"The following package was automatically installed and is no longer required:" +msgid_plural "" +"The following packages were automatically installed and are no longer " +"required:" +msgstr[0] "" +msgstr[1] "" + +#: cmdline/apt-get.cc:1717 +#, c-format +msgid "%lu package was automatically installed and is no longer required.\n" +msgid_plural "" +"%lu packages were automatically installed and are no longer required.\n" +msgstr[0] "" +msgstr[1] "" + +#: cmdline/apt-get.cc:1719 +msgid "Use 'apt-get autoremove' to remove them." +msgstr "" + +#: cmdline/apt-get.cc:1738 msgid "Internal error, AllUpgrade broke stuff" msgstr "" -#: cmdline/apt-get.cc:1792 +#: cmdline/apt-get.cc:1828 msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" -#: cmdline/apt-get.cc:1795 +#: cmdline/apt-get.cc:1831 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -#: cmdline/apt-get.cc:1807 +#: cmdline/apt-get.cc:1843 msgid "" "Some packages could not be installed. This may mean that you have\n" "requested an impossible situation or if you are using the unstable\n" @@ -1004,69 +1009,69 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1825 +#: cmdline/apt-get.cc:1861 msgid "Broken packages" msgstr "" -#: cmdline/apt-get.cc:1854 +#: cmdline/apt-get.cc:1889 msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1944 +#: cmdline/apt-get.cc:1979 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1945 +#: cmdline/apt-get.cc:1980 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1987 +#: cmdline/apt-get.cc:2022 #, c-format msgid "Couldn't find package %s" msgstr "" -#: cmdline/apt-get.cc:1994 +#: cmdline/apt-get.cc:2029 #, c-format msgid "%s set to automatically installed.\n" msgstr "" -#: cmdline/apt-get.cc:2015 +#: cmdline/apt-get.cc:2050 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:2018 methods/ftp.cc:707 methods/connect.cc:111 +#: cmdline/apt-get.cc:2053 methods/ftp.cc:707 methods/connect.cc:111 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:2023 +#: cmdline/apt-get.cc:2058 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:2090 cmdline/apt-get.cc:2098 +#: cmdline/apt-get.cc:2125 cmdline/apt-get.cc:2133 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:2122 cmdline/apt-get.cc:2155 +#: cmdline/apt-get.cc:2157 cmdline/apt-get.cc:2190 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:2198 +#: cmdline/apt-get.cc:2233 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:2238 cmdline/apt-get.cc:2519 +#: cmdline/apt-get.cc:2273 cmdline/apt-get.cc:2554 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:2254 +#: cmdline/apt-get.cc:2289 #, c-format msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" "%s\n" msgstr "" -#: cmdline/apt-get.cc:2259 +#: cmdline/apt-get.cc:2294 #, c-format msgid "" "Please use:\n" @@ -1074,115 +1079,115 @@ msgid "" "to retrieve the latest (possibly unreleased) updates to the package.\n" msgstr "" -#: cmdline/apt-get.cc:2310 +#: cmdline/apt-get.cc:2345 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:2345 +#: cmdline/apt-get.cc:2380 #, c-format msgid "You don't have enough free space in %s" msgstr "" #. 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 -#: cmdline/apt-get.cc:2353 +#: cmdline/apt-get.cc:2388 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:2358 +#: cmdline/apt-get.cc:2393 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2364 +#: cmdline/apt-get.cc:2399 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2397 +#: cmdline/apt-get.cc:2432 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2427 +#: cmdline/apt-get.cc:2462 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2439 +#: cmdline/apt-get.cc:2474 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2440 +#: cmdline/apt-get.cc:2475 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2457 +#: cmdline/apt-get.cc:2492 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2477 +#: cmdline/apt-get.cc:2512 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2493 +#: cmdline/apt-get.cc:2528 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2524 +#: cmdline/apt-get.cc:2559 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2544 +#: cmdline/apt-get.cc:2579 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2595 +#: cmdline/apt-get.cc:2630 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2648 +#: cmdline/apt-get.cc:2683 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -#: cmdline/apt-get.cc:2684 +#: cmdline/apt-get.cc:2719 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2711 +#: cmdline/apt-get.cc:2746 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2727 +#: cmdline/apt-get.cc:2762 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2732 +#: cmdline/apt-get.cc:2767 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2763 +#: cmdline/apt-get.cc:2798 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2804 +#: cmdline/apt-get.cc:2839 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1228,7 +1233,7 @@ msgid "" " This APT has Super Cow Powers.\n" msgstr "" -#: cmdline/apt-get.cc:2960 +#: cmdline/apt-get.cc:2995 msgid "" "NOTE: This is only a simulation!\n" " apt-get needs root privileges for real execution.\n" @@ -1236,33 +1241,33 @@ msgid "" " so don't depend on the relevance to the real current situation!" msgstr "" -#: cmdline/acqprogress.cc:55 +#: cmdline/acqprogress.cc:57 msgid "Hit " msgstr "" -#: cmdline/acqprogress.cc:79 +#: cmdline/acqprogress.cc:81 msgid "Get:" msgstr "" -#: cmdline/acqprogress.cc:110 +#: cmdline/acqprogress.cc:112 msgid "Ign " msgstr "" -#: cmdline/acqprogress.cc:114 +#: cmdline/acqprogress.cc:116 msgid "Err " msgstr "" -#: cmdline/acqprogress.cc:135 +#: cmdline/acqprogress.cc:137 #, c-format msgid "Fetched %sB in %s (%sB/s)\n" msgstr "" -#: cmdline/acqprogress.cc:225 +#: cmdline/acqprogress.cc:227 #, c-format msgid " [Working]" msgstr "" -#: cmdline/acqprogress.cc:271 +#: cmdline/acqprogress.cc:283 #, c-format msgid "" "Media change: please insert the disc labeled\n" @@ -1459,7 +1464,7 @@ msgstr "" #. Only warn if there are no sources.list.d. #. Only warn if there is no sources.list file. #: apt-inst/extract.cc:464 apt-pkg/contrib/cdromutl.cc:179 -#: apt-pkg/contrib/fileutl.cc:311 apt-pkg/sourcelist.cc:204 +#: apt-pkg/contrib/fileutl.cc:329 apt-pkg/sourcelist.cc:204 #: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100 #: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:307 #: methods/mirror.cc:87 @@ -1698,7 +1703,7 @@ msgstr "" msgid "Server closed the connection" msgstr "" -#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:784 methods/rsh.cc:190 +#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:802 methods/rsh.cc:190 msgid "Read error" msgstr "" @@ -1710,7 +1715,7 @@ msgstr "" msgid "Protocol corruption" msgstr "" -#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:826 methods/rsh.cc:232 +#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:844 methods/rsh.cc:232 msgid "Write error" msgstr "" @@ -2175,72 +2180,77 @@ msgstr "" msgid "Could not get lock %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:643 +#: apt-pkg/contrib/fileutl.cc:321 +#, c-format +msgid "List of files can't be created as '%s' is not a directory" +msgstr "" + +#: apt-pkg/contrib/fileutl.cc:661 #, c-format msgid "Waited for %s but it wasn't there" msgstr "" -#: apt-pkg/contrib/fileutl.cc:655 +#: apt-pkg/contrib/fileutl.cc:673 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "" -#: apt-pkg/contrib/fileutl.cc:657 +#: apt-pkg/contrib/fileutl.cc:675 #, c-format msgid "Sub-process %s received signal %u." msgstr "" -#: apt-pkg/contrib/fileutl.cc:661 +#: apt-pkg/contrib/fileutl.cc:679 #, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "" -#: apt-pkg/contrib/fileutl.cc:663 +#: apt-pkg/contrib/fileutl.cc:681 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "" -#: apt-pkg/contrib/fileutl.cc:728 +#: apt-pkg/contrib/fileutl.cc:746 #, c-format msgid "Could not open file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:745 +#: apt-pkg/contrib/fileutl.cc:763 #, c-format msgid "Could not open file descriptor %d" msgstr "" -#: apt-pkg/contrib/fileutl.cc:805 +#: apt-pkg/contrib/fileutl.cc:823 #, c-format msgid "read, still have %lu to read but none left" msgstr "" -#: apt-pkg/contrib/fileutl.cc:838 +#: apt-pkg/contrib/fileutl.cc:856 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "" -#: apt-pkg/contrib/fileutl.cc:937 +#: apt-pkg/contrib/fileutl.cc:985 #, c-format msgid "Problem closing the gzip file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:940 +#: apt-pkg/contrib/fileutl.cc:988 #, c-format msgid "Problem closing the file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:945 +#: apt-pkg/contrib/fileutl.cc:993 #, c-format msgid "Problem renaming the file %s to %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:956 +#: apt-pkg/contrib/fileutl.cc:1004 #, c-format msgid "Problem unlinking the file %s" msgstr "" -#: apt-pkg/contrib/fileutl.cc:969 +#: apt-pkg/contrib/fileutl.cc:1017 msgid "Problem syncing the file" msgstr "" @@ -2321,33 +2331,33 @@ msgstr "" msgid "extra" msgstr "" -#: apt-pkg/depcache.cc:124 apt-pkg/depcache.cc:153 +#: apt-pkg/depcache.cc:125 apt-pkg/depcache.cc:154 msgid "Building dependency tree" msgstr "" -#: apt-pkg/depcache.cc:125 +#: apt-pkg/depcache.cc:126 msgid "Candidate versions" msgstr "" -#: apt-pkg/depcache.cc:154 +#: apt-pkg/depcache.cc:155 msgid "Dependency generation" msgstr "" -#: apt-pkg/depcache.cc:174 apt-pkg/depcache.cc:207 apt-pkg/depcache.cc:211 +#: apt-pkg/depcache.cc:175 apt-pkg/depcache.cc:208 apt-pkg/depcache.cc:212 msgid "Reading state information" msgstr "" -#: apt-pkg/depcache.cc:236 +#: apt-pkg/depcache.cc:237 #, c-format msgid "Failed to open StateFile %s" msgstr "" -#: apt-pkg/depcache.cc:242 +#: apt-pkg/depcache.cc:243 #, c-format msgid "Failed to write temporary StateFile %s" msgstr "" -#: apt-pkg/depcache.cc:921 +#: apt-pkg/depcache.cc:922 #, c-format msgid "Internal error, group '%s' has no installable pseudo package" msgstr "" @@ -2465,17 +2475,17 @@ msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -#: apt-pkg/algorithms.cc:1210 +#: apt-pkg/algorithms.cc:1218 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -#: apt-pkg/algorithms.cc:1212 +#: apt-pkg/algorithms.cc:1220 msgid "Unable to correct problems, you have held broken packages." msgstr "" -#: apt-pkg/algorithms.cc:1488 apt-pkg/algorithms.cc:1490 +#: apt-pkg/algorithms.cc:1496 apt-pkg/algorithms.cc:1498 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." @@ -2923,12 +2933,12 @@ msgstr "" msgid "Installing %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:822 +#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:823 #, c-format msgid "Configuring %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:829 +#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:830 #, c-format msgid "Removing %s" msgstr "" @@ -2954,87 +2964,87 @@ msgstr "" msgid "Directory '%s' missing" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:674 +#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:675 #, c-format msgid "Could not open file '%s'" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:815 +#: apt-pkg/deb/dpkgpm.cc:816 #, c-format msgid "Preparing %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:816 +#: apt-pkg/deb/dpkgpm.cc:817 #, c-format msgid "Unpacking %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:821 +#: apt-pkg/deb/dpkgpm.cc:822 #, c-format msgid "Preparing to configure %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:823 +#: apt-pkg/deb/dpkgpm.cc:824 #, c-format msgid "Installed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:828 +#: apt-pkg/deb/dpkgpm.cc:829 #, c-format msgid "Preparing for removal of %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:830 +#: apt-pkg/deb/dpkgpm.cc:831 #, c-format msgid "Removed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:835 +#: apt-pkg/deb/dpkgpm.cc:836 #, c-format msgid "Preparing to completely remove %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:836 +#: apt-pkg/deb/dpkgpm.cc:837 #, c-format msgid "Completely removed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:1042 +#: apt-pkg/deb/dpkgpm.cc:1043 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:1073 +#: apt-pkg/deb/dpkgpm.cc:1074 msgid "Running dpkg" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:1276 +#: apt-pkg/deb/dpkgpm.cc:1277 msgid "No apport report written because MaxReports is reached already" msgstr "" #. check if its not a follow up error -#: apt-pkg/deb/dpkgpm.cc:1281 +#: apt-pkg/deb/dpkgpm.cc:1282 msgid "dependency problems - leaving unconfigured" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:1283 +#: apt-pkg/deb/dpkgpm.cc:1284 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." msgstr "" -#: apt-pkg/deb/dpkgpm.cc:1289 +#: apt-pkg/deb/dpkgpm.cc:1290 msgid "" "No apport report written because the error message indicates a disk full " "error" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:1295 +#: apt-pkg/deb/dpkgpm.cc:1296 msgid "" "No apport report written because the error message indicates a out of memory " "error" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:1302 +#: apt-pkg/deb/dpkgpm.cc:1303 msgid "" "No apport report written because the error message indicates a dpkg I/O error" msgstr "" -- cgit v1.2.3 From 23f3cfd036630c1c8f84159c60986f67167066e8 Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Wed, 12 Jan 2011 23:57:03 +0100 Subject: * deb/dpkgpm.cc: - fix popen/fclose mismatch reported by cppcheck. Thanks to Petter Reinholdtsen for report and patch! (Closes: #607803) --- apt-pkg/deb/dpkgpm.cc | 4 ++-- debian/changelog | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 95a3f173b..3b10e1a23 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1411,7 +1411,7 @@ void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg) { while( fgets(buf, sizeof(buf), log) != NULL) fprintf(report, " %s", buf); - fclose(log); + pclose(log); } } @@ -1427,7 +1427,7 @@ void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg) { while( fgets(buf, sizeof(buf), log) != NULL) fprintf(report, " %s", buf); - fclose(log); + pclose(log); } } diff --git a/debian/changelog b/debian/changelog index 81f741d03..dde28c635 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,8 +24,11 @@ apt (0.8.11+wheezy) unstable; urgency=low - include stddefs.h to fix compile error (undefined NULL) with gcc-4.6 * methods/https.cc: - fix CURLOPT_SSL_VERIFYHOST by really passing 2 to it if enabled + * deb/dpkgpm.cc: + - fix popen/fclose mismatch reported by cppcheck. Thanks to Petter + Reinholdtsen for report and patch! (Closes: #607803) - -- David Kalnischkies Wed, 12 Jan 2011 23:46:08 +0100 + -- David Kalnischkies Wed, 12 Jan 2011 23:53:32 +0100 apt (0.8.10) unstable; urgency=low -- cgit v1.2.3 From 1fc0d435891dc9496a71a680032918dab2372e6d Mon Sep 17 00:00:00 2001 From: Jakub Wilk Date: Thu, 13 Jan 2011 00:01:27 +0100 Subject: * doc/apt.conf.5.xml: - fix multipl{y,e} spelling error reported by Jakub Wilk (Closes: #607636) --- debian/changelog | 4 +++- doc/apt.conf.5.xml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index dde28c635..6028cc8f4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -27,8 +27,10 @@ apt (0.8.11+wheezy) unstable; urgency=low * deb/dpkgpm.cc: - fix popen/fclose mismatch reported by cppcheck. Thanks to Petter Reinholdtsen for report and patch! (Closes: #607803) + * doc/apt.conf.5.xml: + - fix multipl{y,e} spelling error reported by Jakub Wilk (Closes: #607636) - -- David Kalnischkies Wed, 12 Jan 2011 23:53:32 +0100 + -- David Kalnischkies Wed, 12 Jan 2011 23:59:38 +0100 apt (0.8.10) unstable; urgency=low diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index f00baacea..a19d85dbc 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -618,7 +618,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; dpkg trigger usage (and related options) APT can call dpkg in a way so it can make aggressive use of triggers over - multiply calls of dpkg. Without further options dpkg will use triggers only in between his + multiple calls of dpkg. Without further options dpkg will use triggers only in between his own run. Activating these options can therefore decrease the time needed to perform the install / upgrade. Note that it is intended to activate these options per default in the future, but as it changes the way APT calling dpkg drastically it needs a lot more testing. -- cgit v1.2.3 From c55b8a54780c4db6a5fa270ddd2d05ab837f6ffb Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 13 Jan 2011 17:16:11 +0100 Subject: * apt-pkg/cacheiterator.h: - do not segfault if cache is not build (Closes: #254770) --- apt-pkg/cacheiterators.h | 18 +++---- apt-pkg/policy.cc | 2 + debian/changelog | 4 +- ...test-bug-254770-segfault-if-cache-not-buildable | 57 ++++++++++++++++++++++ 4 files changed, 71 insertions(+), 10 deletions(-) create mode 100755 test/integration/test-bug-254770-segfault-if-cache-not-buildable diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 26070636e..449d4b441 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -96,7 +96,7 @@ class pkgCache::GrpIterator: public Iterator { protected: inline Group* OwnerPointer() const { - return Owner->GrpP; + return (Owner != 0) ? Owner->GrpP : 0; }; public: @@ -137,7 +137,7 @@ class pkgCache::PkgIterator: public Iterator { protected: inline Package* OwnerPointer() const { - return Owner->PkgP; + return (Owner != 0) ? Owner->PkgP : 0; }; public: @@ -184,7 +184,7 @@ class pkgCache::PkgIterator: public Iterator { class pkgCache::VerIterator : public Iterator { protected: inline Version* OwnerPointer() const { - return Owner->VerP; + return (Owner != 0) ? Owner->VerP : 0; }; public: @@ -241,7 +241,7 @@ class pkgCache::VerIterator : public Iterator { class pkgCache::DescIterator : public Iterator { protected: inline Description* OwnerPointer() const { - return Owner->DescP; + return (Owner != 0) ? Owner->DescP : 0; }; public: @@ -270,7 +270,7 @@ class pkgCache::DepIterator : public Iterator { protected: inline Dependency* OwnerPointer() const { - return Owner->DepP; + return (Owner != 0) ? Owner->DepP : 0; }; public: @@ -315,7 +315,7 @@ class pkgCache::PrvIterator : public Iterator { protected: inline Provides* OwnerPointer() const { - return Owner->ProvideP; + return (Owner != 0) ? Owner->ProvideP : 0; }; public: @@ -349,7 +349,7 @@ class pkgCache::PrvIterator : public Iterator { class pkgCache::PkgFileIterator : public Iterator { protected: inline PackageFile* OwnerPointer() const { - return Owner->PkgFileP; + return (Owner != 0) ? Owner->PkgFileP : 0; }; public: @@ -382,7 +382,7 @@ class pkgCache::PkgFileIterator : public Iterator class pkgCache::VerFileIterator : public pkgCache::Iterator { protected: inline VerFile* OwnerPointer() const { - return Owner->VerFileP; + return (Owner != 0) ? Owner->VerFileP : 0; }; public: @@ -401,7 +401,7 @@ class pkgCache::VerFileIterator : public pkgCache::Iterator { protected: inline DescFile* OwnerPointer() const { - return Owner->DescFileP; + return (Owner != 0) ? Owner->DescFileP : 0; }; public: diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index f05b6ca49..5427271b6 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -45,6 +45,8 @@ using namespace std; file matches the V0 policy engine. */ pkgPolicy::pkgPolicy(pkgCache *Owner) : Pins(0), PFPriority(0), Cache(Owner) { + if (Owner == 0 || &(Owner->Head()) == 0) + return; PFPriority = new signed short[Owner->Head().PackageFileCount]; Pins = new Pin[Owner->Head().PackageCount]; diff --git a/debian/changelog b/debian/changelog index 3a59ac171..febd259c0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -32,8 +32,10 @@ apt (0.8.11+wheezy) unstable; urgency=low * apt-inst/contrib/extracttar.cc: - let apt-utils work with encoded tar headers if uid/gid are large. Thanks to Nobuhiro Hayashi for the patch! (Closes: #330162) + * apt-pkg/cacheiterator.h: + - do not segfault if cache is not build (Closes: #254770) - -- David Kalnischkies Thu, 13 Jan 2011 00:25:32 +0100 + -- David Kalnischkies Thu, 13 Jan 2011 17:10:36 +0100 apt (0.8.10) unstable; urgency=low diff --git a/test/integration/test-bug-254770-segfault-if-cache-not-buildable b/test/integration/test-bug-254770-segfault-if-cache-not-buildable new file mode 100755 index 000000000..25c564daa --- /dev/null +++ b/test/integration/test-bug-254770-segfault-if-cache-not-buildable @@ -0,0 +1,57 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +CURRENTTRAP="chmod a+x rootdir/var/lib/dpkg; $CURRENTTRAP" +trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM +chmod a-x rootdir/var/lib/dpkg + +testsegfault() { + rm -f rootdir/var/cache/apt/*.bin + msgtest "No segfault in" "$*" + local TEST="$($* 2>&1 | grep -v 'E:')" + if [ -z "$TEST" ]; then + msgpass + else + echo + echo $TEST + msgfail + fi +} + +echo 'quiet 2;' > rootdir/etc/apt/apt.conf.d/00be-quiet + +testsegfault aptcache gencaches +testsegfault aptcache showpkg +testsegfault aptcache showsrc +testsegfault aptcache stats +testsegfault aptcache dump +testsegfault aptcache dumpavail +testsegfault aptcache unmet +testsegfault aptcache search +testsegfault aptcache show apt +testsegfault aptcache depends apt +testsegfault aptcache rdepends apt +testsegfault aptcache pkgnames apt +testsegfault aptcache dotty apt +testsegfault aptcache xvcg apt +testsegfault aptcache policy apt + +testsegfault aptget update +testsegfault aptget upgrade +testsegfault aptget dselect-upgrade +testsegfault aptget dist-upgrade +testsegfault aptget install apt +testsegfault aptget remove apt +testsegfault aptget purge apt +testsegfault aptget source apt +testsegfault aptget build-dep apt +testsegfault aptget check +testsegfault aptget clean +testsegfault aptget autoclean +testsegfault aptget autoremove -- cgit v1.2.3 From 491058e3570ec66769c4e7e9797f549c6d724848 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 13 Jan 2011 23:22:17 +0100 Subject: ignore non-regular files in GetListOfFilesInDir (Closes: #594694) --- apt-pkg/contrib/fileutl.cc | 28 ++++++++++++++++------------ debian/changelog | 3 ++- test/libapt/run-tests | 5 +++++ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index db6057ea3..52f517ee0 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -336,6 +336,20 @@ std::vector GetListOfFilesInDir(string const &Dir, std::vector c if (Ent->d_name[0] == '.') continue; + // Make sure it is a file and not something else + string const File = flCombine(Dir,Ent->d_name); +#ifdef _DIRENT_HAVE_D_TYPE + if (Ent->d_type != DT_REG) +#endif + { + if (RealFileExists(File.c_str()) == false) + { + if (SilentIgnore.Match(Ent->d_name) == false) + _error->Notice(_("Ignoring '%s' in directory '%s' as it is not a regular file"), Ent->d_name, Dir.c_str()); + continue; + } + } + // check for accepted extension: // no extension given -> periods are bad as hell! // extensions given -> "" extension allows no extension @@ -349,7 +363,7 @@ std::vector GetListOfFilesInDir(string const &Dir, std::vector c if (Debug == true) std::clog << "Bad file: " << Ent->d_name << " → no extension" << std::endl; if (SilentIgnore.Match(Ent->d_name) == false) - _error->Notice("Ignoring file '%s' in directory '%s' as it has no filename extension", Ent->d_name, Dir.c_str()); + _error->Notice(_("Ignoring file '%s' in directory '%s' as it has no filename extension"), Ent->d_name, Dir.c_str()); continue; } } @@ -358,7 +372,7 @@ std::vector GetListOfFilesInDir(string const &Dir, std::vector c if (Debug == true) std::clog << "Bad file: " << Ent->d_name << " → bad extension »" << flExtension(Ent->d_name) << "«" << std::endl; if (SilentIgnore.Match(Ent->d_name) == false) - _error->Notice("Ignoring file '%s' in directory '%s' as it has an invalid filename extension", Ent->d_name, Dir.c_str()); + _error->Notice(_("Ignoring file '%s' in directory '%s' as it has an invalid filename extension"), Ent->d_name, Dir.c_str()); continue; } } @@ -391,16 +405,6 @@ std::vector GetListOfFilesInDir(string const &Dir, std::vector c continue; } - // Make sure it is a file and not something else - string const File = flCombine(Dir,Ent->d_name); - struct stat St; - if (stat(File.c_str(),&St) != 0 || S_ISREG(St.st_mode) == 0) - { - if (Debug == true) - std::clog << "Bad file: " << Ent->d_name << " → stat says not a good file" << std::endl; - continue; - } - if (Debug == true) std::clog << "Accept file: " << Ent->d_name << " in " << Dir << std::endl; List.push_back(File); diff --git a/debian/changelog b/debian/changelog index febd259c0..ca5d4f235 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,7 @@ apt (0.8.11+wheezy) unstable; urgency=low * apt-pkg/contrib/fileutl.cc: - add a RealFileExists method and check that your configuration files are real files to avoid endless loops if not (Closes: #604401) + - ignore non-regular files in GetListOfFilesInDir (Closes: #594694) * apt-pkg/contrib/weakptr.h: - include stddefs.h to fix compile error (undefined NULL) with gcc-4.6 * methods/https.cc: @@ -35,7 +36,7 @@ apt (0.8.11+wheezy) unstable; urgency=low * apt-pkg/cacheiterator.h: - do not segfault if cache is not build (Closes: #254770) - -- David Kalnischkies Thu, 13 Jan 2011 17:10:36 +0100 + -- David Kalnischkies Thu, 13 Jan 2011 23:19:03 +0100 apt (0.8.10) unstable; urgency=low diff --git a/test/libapt/run-tests b/test/libapt/run-tests index f5fc03446..a66de386d 100755 --- a/test/libapt/run-tests +++ b/test/libapt/run-tests @@ -39,6 +39,11 @@ do "${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 -- cgit v1.2.3 From 39ad9b28cf43f121b410bd5874eebe9934c81482 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 13 Jan 2011 23:47:01 +0100 Subject: * doc/apt-get.8.xml: - remove duplicated mentioning of --install-recommends --- debian/changelog | 4 +++- doc/apt-get.8.xml | 8 -------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index ca5d4f235..4e50172c6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -35,8 +35,10 @@ apt (0.8.11+wheezy) unstable; urgency=low Thanks to Nobuhiro Hayashi for the patch! (Closes: #330162) * apt-pkg/cacheiterator.h: - do not segfault if cache is not build (Closes: #254770) + * doc/apt-get.8.xml: + - remove duplicated mentioning of --install-recommends - -- David Kalnischkies Thu, 13 Jan 2011 23:19:03 +0100 + -- David Kalnischkies Thu, 13 Jan 2011 23:46:23 +0100 apt (0.8.10) unstable; urgency=low diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index 57306c03f..1f14c6bd5 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -411,14 +411,6 @@ Configuration Item: APT::Get::Compile. - - Also install recommended packages. - - - - Do not install recommended packages. - - Ignore package Holds; This causes apt-get to ignore a hold placed on a package. This may be useful in conjunction with -- cgit v1.2.3 From cbd5fc0a6c666768ab8a127b9caabc6ee7a95b64 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Jan 2011 00:48:33 +0100 Subject: Add a testcase to verify that packages which are held back by dpkg are not causing installation/removal of other packages (#64141) --- ...ages-bug-64141-install-dependencies-for-on-hold | 42 ++++++++++++++++++++++ ...atus-bug-64141-install-dependencies-for-on-hold | 33 +++++++++++++++++ ...test-bug-64141-install-dependencies-for-on-hold | 34 ++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 test/integration/Packages-bug-64141-install-dependencies-for-on-hold create mode 100644 test/integration/status-bug-64141-install-dependencies-for-on-hold create mode 100755 test/integration/test-bug-64141-install-dependencies-for-on-hold diff --git a/test/integration/Packages-bug-64141-install-dependencies-for-on-hold b/test/integration/Packages-bug-64141-install-dependencies-for-on-hold new file mode 100644 index 000000000..7005fa4f4 --- /dev/null +++ b/test/integration/Packages-bug-64141-install-dependencies-for-on-hold @@ -0,0 +1,42 @@ +Package: apt +Priority: important +Section: admin +Installed-Size: 6048 +Maintainer: APT Development Team +Architecture: i386 +Version: 0.8.10 +Provides: libapt-pkg4.10 +Depends: libc6 (>= 2.10), libdb4.8 +Breaks: oldcrap +Filename: pool/main/a/apt/apt_0.8.10_i386.deb +Size: 2160758 +MD5sum: 5aa2234f7b91056d430669cddf6e6e50 +Description: Advanced front-end for dpkg + +Package: libc6 +Priority: required +Section: libs +Installed-Size: 9356 +Maintainer: GNU Libc Maintainers +Architecture: i386 +Source: eglibc +Version: 2.11.2-7 +Provides: glibc-2.11-1 +Filename: pool/main/e/eglibc/libc6_2.11.2-7_i386.deb +Size: 3880868 +MD5sum: c48fd2854fc62125824267d086600793 +Description: Embedded GNU C Library: Shared libraries + +Package: libdb4.8 +Priority: standard +Section: libs +Installed-Size: 1488 +Maintainer: Clint Adams +Architecture: i386 +Source: db4.8 +Version: 4.8.30-3 +Depends: libc6 (>= 2.3.6-6~) +Filename: pool/main/d/db4.8/libdb4.8_4.8.30-3_i386.deb +Size: 681988 +MD5sum: 0d58c15898a95436d2ec480aa22693ff +Description: Berkeley v4.8 Database Libraries [runtime] diff --git a/test/integration/status-bug-64141-install-dependencies-for-on-hold b/test/integration/status-bug-64141-install-dependencies-for-on-hold new file mode 100644 index 000000000..c82ebd19c --- /dev/null +++ b/test/integration/status-bug-64141-install-dependencies-for-on-hold @@ -0,0 +1,33 @@ +Package: apt +Status: install ok installed +Priority: important +Section: admin +Installed-Size: 6048 +Maintainer: APT Development Team +Architecture: i386 +Version: 0.8.9 +Provides: libapt-pkg4.10 +Depends: libc6 (>= 2.3.4) +Description: Advanced front-end for dpkg + +Package: libc6 +Status: install ok installed +Priority: required +Section: libs +Installed-Size: 9356 +Maintainer: GNU Libc Maintainers +Architecture: i386 +Source: eglibc +Version: 2.3.5-7 +Provides: glibc-2.11-1 +Description: Embedded GNU C Library: Shared libraries + +Package: oldcrap +Status: install ok installed +Priority: extra +Section: oldlibs +Installed-Size: 1 +Maintainer: Joe Sixpack +Architecture: all +Version: 1-1 +Description: Old crappy nothing package diff --git a/test/integration/test-bug-64141-install-dependencies-for-on-hold b/test/integration/test-bug-64141-install-dependencies-for-on-hold new file mode 100755 index 000000000..4633ffcc3 --- /dev/null +++ b/test/integration/test-bug-64141-install-dependencies-for-on-hold @@ -0,0 +1,34 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following packages will be REMOVED: + oldcrap +The following NEW packages will be installed: + libdb4.8 +The following packages will be upgraded: + apt libc6 +2 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. +Need to get 0 B/6724 kB of archives. +After this operation, 1523 kB of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only + +echo 'apt hold' | dpkg --set-selections + +testequal 'Reading package lists... +Building dependency tree... +The following packages have been kept back: + apt +The following packages will be upgraded: + libc6 +1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. +Need to get 0 B/3881 kB of archives. +After this operation, 0 B of additional disk space will be used. +E: Trivial Only specified but this is not a trivial operation.' aptget dist-upgrade --trivial-only -o Test='hold-back-apt' -- cgit v1.2.3 From 8b39570568ce96d3afd84c397b6722bc12104e9e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Jan 2011 01:50:55 +0100 Subject: remove duplicated text and refer to the sources.list manpage instead --- doc/files.sgml | 80 +++------------------------------------------------------- 1 file changed, 4 insertions(+), 76 deletions(-) diff --git a/doc/files.sgml b/doc/files.sgml index 108e73670..2d0ae4a44 100644 --- a/doc/files.sgml +++ b/doc/files.sgml @@ -118,82 +118,10 @@ fastest source listed first. The format of each line is:

The first item, type, indicates the format for the remainder of the line. It is designed to indicate the structure of the distribution -the line is talking about. Currently the only defined value is deb -which indicates a standard debian archive with a dists dir. - -The deb Type -

- The deb type is to be a typical two level debian distributions, - dist/distribution/component. Typically distribution - is one of stable, unstable or testing while component is one of main, - contrib, non-free or non-us. The format for the deb line is as follows: - -

- deb uri distribution component - [component ...] - -

- uri for the deb type must specify the base of the - debian distribution. APT will automatically generate the proper longer - URIs to get the information it needs. distribution can specify - an exact path, in this case the components must be omitted and - distribution must end in a slash. - -

- Since only one distribution can be specified per deb line it may be - necessary to list a number of deb lines for the same URI. APT will - sort the URI list after it has generated a complete set to allow - connection reuse. It is important to order things in the sourcelist - from most preferred to least preferred (fastest to slowest). - - -URI specification -

-URIs in the source list support a large number of access schemes which -are listed in the sources.list manpage and can be further extended by -transport binaries placed in /usr/lib/apt/methods. The most important -builtin schemes are: - - -cdrom - The cdrom scheme is special in that If Modified Since queries are never - performed and that APT knows how to match a cdrom to the name it - was given when first inserted. APT also knows all of the possible - mount points the cdrom drives and that the user should be prompted - to insert a CD if it cannot be found. The path is relative to an - arbitrary mount point (of APT's choosing) and must not start with a - slash. The first pathname component is the given name and is purely - descriptive and of the users choice. However, if a file in the root of - the cdrom is called '.disk/info' its contents will be used instead of - prompting. The name serves as a tag for the cdrom and should be unique. - - cdrom:Debian 1.3/debian - - -http - This scheme specifies a HTTP server for the debian archive. HTTP is preferred - over FTP because If Modified Since queries against the Package file are - possible as well as deep pipelining and resume capabilities. - - http://www.debian.org/archive - - -ftp - This scheme specifies a FTP connection to the server. FTP is limited because - there is no support for IMS and is hard to proxy over firewalls. - - ftp://ftp.debian.org/debian - - -file - The file scheme allows an arbitrary directory in the file system to be - considered as a debian archive. This is useful for NFS mounts and - local mirrors/archives. - - file:/var/debian - - - +the line is talking about. Currently the only defined values are deb +and deb-src which indicate a standard debian (source) archive with a +dists directory. More about these types and the URI specification can be found +in the sources.list manpage. Hashing the URI

-- cgit v1.2.3 From 3805b0a7ff4fa4b18367f0328a744402d0d21d3b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Jan 2011 01:54:24 +0100 Subject: * doc/sources.list.5.xml: - remove obsolete references to non-us (Closes: #594495) --- debian/changelog | 4 +++- doc/sources.list.5.xml | 30 +++++++++++++----------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4e50172c6..326ac7c98 100644 --- a/debian/changelog +++ b/debian/changelog @@ -37,8 +37,10 @@ apt (0.8.11+wheezy) unstable; urgency=low - do not segfault if cache is not build (Closes: #254770) * doc/apt-get.8.xml: - remove duplicated mentioning of --install-recommends + * doc/sources.list.5.xml: + - remove obsolete references to non-us (Closes: #594495) - -- David Kalnischkies Thu, 13 Jan 2011 23:46:23 +0100 + -- David Kalnischkies Fri, 14 Jan 2011 01:51:50 +0100 apt (0.8.10) unstable; urgency=low diff --git a/doc/sources.list.5.xml b/doc/sources.list.5.xml index 6029a7457..212ed6d98 100644 --- a/doc/sources.list.5.xml +++ b/doc/sources.list.5.xml @@ -63,11 +63,11 @@ The deb and deb-src types The deb type describes a typical two-level Debian archive, distribution/component. Typically, - distribution is generally one of - stable unstable or - testing while component is one of main - contrib non-free or - non-us. The + distribution is generally an archivename like + stable or testing or a codename like + &stable-codename; or &testing-codename; + while component is one of main contrib or + non-free. The deb-src type describes a debian distribution's source code in the same form as the deb type. A deb-src line is required to fetch source indexes. @@ -218,18 +218,14 @@ deb http://security.debian.org/ &stable-codename;/updates main contrib non-free a single FTP session will be used for both resource lines. deb ftp://ftp.debian.org/debian unstable contrib - Uses HTTP to access the archive at nonus.debian.org, under the - debian-non-US directory. - deb http://nonus.debian.org/debian-non-US stable/non-US main contrib non-free - - Uses HTTP to access the archive at nonus.debian.org, under the - debian-non-US directory, and uses only files found under - unstable/binary-i386 on i386 machines, - unstable/binary-m68k on m68k, and so - forth for other supported architectures. [Note this example only - illustrates how to use the substitution variable; non-us is no longer - structured like this] - deb http://ftp.de.debian.org/debian-non-US unstable/binary-$(ARCH)/ + Uses HTTP to access the archive at ftp.tlh.debian.org, under the + universe directory, and uses only files found under + unstable/binary-i386 on i386 machines, + unstable/binary-amd64 on amd64, and so + forth for other supported architectures. [Note this example only + illustrates how to use the substitution variable; official debian + archives are not structured like this] + deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/ -- cgit v1.2.3 From d064809654a66129bd75d52cfb1764d7592798b9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Jan 2011 12:40:08 +0100 Subject: * debian/rules: - use -- instead of deprecated -u for dh_gencontrol --- debian/changelog | 4 +++- debian/rules | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 326ac7c98..8ae1c459a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -39,8 +39,10 @@ apt (0.8.11+wheezy) unstable; urgency=low - remove duplicated mentioning of --install-recommends * doc/sources.list.5.xml: - remove obsolete references to non-us (Closes: #594495) + * debian/rules: + - use -- instead of deprecated -u for dh_gencontrol - -- David Kalnischkies Fri, 14 Jan 2011 01:51:50 +0100 + -- David Kalnischkies Fri, 14 Jan 2011 12:39:24 +0100 apt (0.8.10) unstable; urgency=low diff --git a/debian/rules b/debian/rules index ea8f0daa0..fbd309e97 100755 --- a/debian/rules +++ b/debian/rules @@ -147,7 +147,7 @@ libapt-pkg-doc: build-doc debian/shlibs.local dh_compress -p$@ dh_fixperms -p$@ dh_installdeb -p$@ - dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) + dh_gencontrol -p$@ -- -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) dh_md5sums -p$@ dh_builddeb -p$@ @@ -229,7 +229,7 @@ apt: build build-doc debian/shlibs.local dh_makeshlibs -p$@ --major=$(LIBAPTPKG_MAJOR) --version-info='$(LIBAPTPKG_PROVIDE)' dh_installdeb -p$@ dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt - dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) + dh_gencontrol -p$@ -- -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) dh_md5sums -p$@ dh_builddeb -p$@ @@ -253,7 +253,7 @@ libapt-pkg-dev: build debian/shlibs.local dh_compress -p$@ dh_fixperms -p$@ dh_installdeb -p$@ - dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE) + dh_gencontrol -p$@ -- -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE) dh_md5sums -p$@ dh_builddeb -p$@ @@ -282,7 +282,7 @@ apt-utils: build debian/shlibs.local dh_makeshlibs -p$@ --major=$(LIBAPTINST_MAJOR) --version-info='$(LIBAPTINST_PROVIDE)' dh_installdeb -p$@ dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils - dh_gencontrol -p$@ -u -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE) + dh_gencontrol -p$@ -- -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE) dh_md5sums -p$@ dh_builddeb -p$@ -- cgit v1.2.3 From c8eb7d6e3a1d2dad1b6ac2f65c1a0a1d4bfabdf9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Jan 2011 13:23:56 +0100 Subject: depend on debhelper 7 to raise compat level --- debian/changelog | 3 ++- debian/compat | 2 +- debian/control | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 8ae1c459a..5c016d6bd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,6 +17,7 @@ apt (0.8.11+wheezy) unstable; urgency=low requested on the commandline, e.g. with a modifier * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) + - depend on debhelper 7 to raise compat level * apt-pkg/contrib/fileutl.cc: - add a RealFileExists method and check that your configuration files are real files to avoid endless loops if not (Closes: #604401) @@ -42,7 +43,7 @@ apt (0.8.11+wheezy) unstable; urgency=low * debian/rules: - use -- instead of deprecated -u for dh_gencontrol - -- David Kalnischkies Fri, 14 Jan 2011 12:39:24 +0100 + -- David Kalnischkies Fri, 14 Jan 2011 13:23:08 +0100 apt (0.8.10) unstable; urgency=low diff --git a/debian/compat b/debian/compat index 7ed6ff82d..7f8f011eb 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -5 +7 diff --git a/debian/control b/debian/control index c4dedd496..a079ad19c 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: Michael Vogt , Otavio Salvador , Christian Perrier , Daniel Burrows , Luca Bruno , Julian Andres Klode Standards-Version: 3.9.0 -Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen +Build-Depends: debhelper (>= 7), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen Build-Conflicts: autoconf2.13, automake1.4 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ Vcs-Browser: http://bzr.debian.org/loggerhead/apt/debian-sid/ -- cgit v1.2.3 From 767bcf7826768ed8de7226d2b172a6436c727400 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Jan 2011 14:36:57 +0100 Subject: fix the invalid wrong locale month name in NEWS file --- debian/NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/NEWS b/debian/NEWS index c90cff6b2..59b319b86 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -5,7 +5,7 @@ apt (0.8.11+wheezy) UNRELEASED; urgency=low but also of all dependencies of pkg if the current candidate can't satisfy a versioned dependency. - -- David Kalnischkies Fri, 03 Dez 2010 14:09:12 +0100 + -- David Kalnischkies Fri, 03 Dec 2010 14:09:12 +0100 apt (0.7.26~exp3) experimental; urgency=low -- cgit v1.2.3 From 8d13be63fb62d683bf41d32295652c0780421cd4 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 14 Jan 2011 14:41:09 +0100 Subject: * pre-build.sh: - remove as it is not needed for a working 'bzr bd' --- .bzr-builddeb/default.conf | 3 --- debian/changelog | 4 +++- pre-build.sh | 3 --- 3 files changed, 3 insertions(+), 7 deletions(-) delete mode 100755 pre-build.sh diff --git a/.bzr-builddeb/default.conf b/.bzr-builddeb/default.conf index f2c082569..9c55498ce 100644 --- a/.bzr-builddeb/default.conf +++ b/.bzr-builddeb/default.conf @@ -1,5 +1,2 @@ [BUILDDEB] native = true - -[HOOKS] -pre-build=./pre-build.sh diff --git a/debian/changelog b/debian/changelog index 5c016d6bd..8dcdc93ff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -42,8 +42,10 @@ apt (0.8.11+wheezy) unstable; urgency=low - remove obsolete references to non-us (Closes: #594495) * debian/rules: - use -- instead of deprecated -u for dh_gencontrol + * pre-build.sh: + - remove as it is not needed for a working 'bzr bd' - -- David Kalnischkies Fri, 14 Jan 2011 13:23:08 +0100 + -- David Kalnischkies Fri, 14 Jan 2011 14:40:35 +0100 apt (0.8.10) unstable; urgency=low diff --git a/pre-build.sh b/pre-build.sh deleted file mode 100755 index 2c7d28c2c..000000000 --- a/pre-build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -make -f Makefile startup doc -- cgit v1.2.3 From 149daa16569b1763ab0ed76cc1fd80455980eddc Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 15 Jan 2011 02:43:13 +0100 Subject: * debian/control: - depend on dpkg-dev (>= 1.15.8) to have c++ symbol mangling * debian/rules: - remove shlibs.local creation and usage - show differences in the symbol files, but never fail * debian/{apt,apt-utils}.symbols: - ship experimental unmangled c++ symbol files --- debian/apt-utils.symbols | 119 +++++ debian/apt.symbols | 1263 ++++++++++++++++++++++++++++++++++++++++++++++ debian/changelog | 7 +- debian/control | 2 +- debian/rules | 37 +- 5 files changed, 1401 insertions(+), 27 deletions(-) create mode 100644 debian/apt-utils.symbols create mode 100644 debian/apt.symbols diff --git a/debian/apt-utils.symbols b/debian/apt-utils.symbols new file mode 100644 index 000000000..8313f6ffd --- /dev/null +++ b/debian/apt-utils.symbols @@ -0,0 +1,119 @@ +libapt-inst.so.1.2 libapt-inst1.2 +| apt-utils #MINVER# +* Build-Depends-Package: libapt-pkg-dev + (c++)"ExtractTar::Done(bool)@Base" 0.8.0 + (c++)"ExtractTar::Go(pkgDirStream&)@Base" 0.8.0 + (c++)"ExtractTar::StartGzip()@Base" 0.8.0 + (c++)"ExtractTar::ExtractTar(FileFd&, unsigned long, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"ExtractTar::~ExtractTar()@Base" 0.8.0 + (c++)"debDebFile::GotoMember(char const*)@Base" 0.8.0 + (c++)"debDebFile::CheckMember(char const*)@Base" 0.8.0 + (c++)"debDebFile::MergeControl(pkgDataBase&)@Base" 0.8.0 + (c++)"debDebFile::ControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0 + (c++)"debDebFile::ControlExtract::~ControlExtract()@Base" 0.8.0 + (c++)"debDebFile::ExtractArchive(pkgDirStream&)@Base" 0.8.0 + (c++)"debDebFile::ExtractControl(pkgDataBase&)@Base" 0.8.0 + (c++)"debDebFile::MemControlExtract::TakeControl(void const*, unsigned long)@Base" 0.8.0 + (c++)"debDebFile::MemControlExtract::Read(debDebFile&)@Base" 0.8.0 + (c++)"debDebFile::MemControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0 + (c++)"debDebFile::MemControlExtract::Process(pkgDirStream::Item&, unsigned char const*, unsigned long, unsigned long)@Base" 0.8.0 + (c++)"debDebFile::MemControlExtract::~MemControlExtract()@Base" 0.8.0 + (c++)"debDebFile::debDebFile(FileFd&)@Base" 0.8.0 + (c++)"pkgExtract::FinishedFile(pkgDirStream::Item&, int)@Base" 0.8.0 + (c++)"pkgExtract::CheckDirReplace(std::basic_string, std::allocator >, unsigned int)@Base" 0.8.0 + (c++)"pkgExtract::HandleOverwrites(pkgFLCache::NodeIterator, bool)@Base" 0.8.0 + (c++)"pkgExtract::Fail(pkgDirStream::Item&, int)@Base" 0.8.0 + (c++)"pkgExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0 + (c++)"pkgExtract::Aborted()@Base" 0.8.0 + (c++)"pkgExtract::Finished()@Base" 0.8.0 + (c++)"pkgExtract::pkgExtract(pkgFLCache&, pkgCache::VerIterator)@Base" 0.8.0 + (c++)"pkgExtract::~pkgExtract()@Base" 0.8.0 + (c++)"pkgFLCache::TreeLookup(unsigned int*, char const*, char const*, unsigned long, unsigned int*, bool)@Base" 0.8.0 + (c++)"pkgFLCache::AddConfFile(char const*, char const*, pkgFLCache::PkgIterator const&, unsigned char const*)@Base" 0.8.0 + (c++)"pkgFLCache::AddDiversion(pkgFLCache::PkgIterator const&, char const*, char const*)@Base" 0.8.0 + (c++)"pkgFLCache::BeginDiverLoad()@Base" 0.8.0 + (c++)"pkgFLCache::FinishDiverLoad()@Base" 0.8.0 + (c++)"pkgFLCache::GetPkg(char const*, char const*, bool)@Base" 0.8.0 + (c++)"pkgFLCache::Header::Header()@Base" 0.8.0 + (c++)"pkgFLCache::GetNode(char const*, char const*, unsigned int, bool, bool)@Base" 0.8.0 + (c++)"pkgFLCache::DropNode(unsigned int)@Base" 0.8.0 + (c++)"pkgFLCache::HashNode(pkgFLCache::NodeIterator const&)@Base" 0.8.0 + (c++)"pkgFLCache::PrintTree(unsigned int, unsigned long)@Base" 0.8.0 + (c++)"pkgFLCache::pkgFLCache(DynamicMMap&)@Base" 0.8.0 + (c++)"pkgDataBase::GetMetaTmp(std::basic_string, std::allocator >&)@Base" 0.8.0 + (c++)"pkgDataBase::~pkgDataBase()@Base" 0.8.0 + (c++)"pkgDirStream::FinishedFile(pkgDirStream::Item&, int)@Base" 0.8.0 + (c++)"pkgDirStream::Fail(pkgDirStream::Item&, int)@Base" 0.8.0 + (c++)"pkgDirStream::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0 + (c++)"pkgDirStream::Process(pkgDirStream::Item&, unsigned char const*, unsigned long, unsigned long)@Base" 0.8.0 + (c++)"pkgDirStream::~pkgDirStream()@Base" 0.8.0 + (c++|optional)"debListParser::~debListParser()@Base" 0.8.0 + (c++|optional)"pkgCacheGenerator::ListParser::CollectFileProvides(pkgCache&, pkgCache::VerIterator&)@Base" 0.8.0 + (c++|optional)"pkgCacheGenerator::ListParser::~ListParser()@Base" 0.8.0 + (c++|optional)"pkgCache::DepIterator::operator++(int)@Base" 0.8.0 + (c++|optional)"pkgCache::DepIterator::operator++()@Base" 0.8.0 + (c++|optional)"pkgCache::VerIterator::operator++(int)@Base" 0.8.0 + (c++|optional)"pkgCache::VerIterator::operator++()@Base" 0.8.0 + (c++)"ARArchive::LoadHeaders()@Base" 0.8.0 + (c++)"ARArchive::ARArchive(FileFd&)@Base" 0.8.0 + (c++)"ARArchive::~ARArchive()@Base" 0.8.0 + (c++)"debDpkgDB::InitMetaTmp(std::basic_string, std::allocator >&)@Base" 0.8.0 + (c++)"debDpkgDB::LoadChanges()@Base" 0.8.0 + (c++)"debDpkgDB::ReadConfFiles()@Base" 0.8.0 + (c++)"debDpkgDB::ReadyFileList(OpProgress&)@Base" 0.8.0 + (c++)"debDpkgDB::ReadyPkgCache(OpProgress&)@Base" 0.8.0 + (c++)"debDpkgDB::ReadDiversions()@Base" 0.8.0 + (c++)"debDpkgDB::ReadFList(OpProgress&)@Base" 0.8.0 + (c++)"debDpkgDB::debDpkgDB()@Base" 0.8.0 + (c++)"debDpkgDB::~debDpkgDB()@Base" 0.8.0 + (c++)"pkgFLCache::NodeIterator::RealPackage() const@Base" 0.8.0 + (c++)"pkgFLCache::Header::CheckSizes(pkgFLCache::Header&) const@Base" 0.8.0 + (c++|optional)"pkgCache::DepIterator::OwnerPointer() const@Base" 0.8.0 + (c++|optional)"pkgCache::VerIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"ARArchive::FindMember(char const*) const@Base" 0.8.0 + (c++)"typeinfo for ExtractTar@Base" 0.8.0 + (c++)"typeinfo for pkgExtract@Base" 0.8.0 + (c++)"typeinfo for pkgDataBase@Base" 0.8.0 + (c++)"typeinfo for pkgDirStream@Base" 0.8.0 + (c++)"typeinfo for debDpkgDB@Base" 0.8.0 + (c++)"typeinfo for debDebFile::ControlExtract@Base" 0.8.0 + (c++)"typeinfo for debDebFile::MemControlExtract@Base" 0.8.0 + (c++|optional)"typeinfo for pkgCacheGenerator::ListParser@Base" 0.8.0 + (c++|optional)"typeinfo for pkgCache::DepIterator@Base" 0.8.0 + (c++|optional)"typeinfo for pkgCache::VerIterator@Base" 0.8.0 + (c++|optional)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++|optional)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++|optional)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for ExtractTar@Base" 0.8.0 + (c++)"typeinfo name for pkgExtract@Base" 0.8.0 + (c++)"typeinfo name for pkgDataBase@Base" 0.8.0 + (c++)"typeinfo name for pkgDirStream@Base" 0.8.0 + (c++)"typeinfo name for debDpkgDB@Base" 0.8.0 + (c++)"typeinfo name for debDebFile::ControlExtract@Base" 0.8.0 + (c++)"typeinfo name for debDebFile::MemControlExtract@Base" 0.8.0 + (c++|optional)"typeinfo name for pkgCacheGenerator::ListParser@Base" 0.8.0 + (c++|optional)"typeinfo name for pkgCache::DepIterator@Base" 0.8.0 + (c++|optional)"typeinfo name for pkgCache::VerIterator@Base" 0.8.0 + (c++|optional)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++|optional)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++|optional)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for ExtractTar@Base" 0.8.0 + (c++)"vtable for pkgExtract@Base" 0.8.0 + (c++)"vtable for pkgDataBase@Base" 0.8.0 + (c++)"vtable for pkgDirStream@Base" 0.8.0 + (c++)"vtable for debDpkgDB@Base" 0.8.0 + (c++)"vtable for debDebFile::ControlExtract@Base" 0.8.0 + (c++)"vtable for debDebFile::MemControlExtract@Base" 0.8.0 + (c++|optional)"vtable for pkgCacheGenerator::ListParser@Base" 0.8.0 + (c++|optional)"vtable for pkgCache::DepIterator@Base" 0.8.0 + (c++|optional)"vtable for pkgCache::VerIterator@Base" 0.8.0 + (c++|optional)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++|optional)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++|optional)"vtable for pkgCache::Iterator@Base" 0.8.0 +### try to ignore std:: template instances + (c++|optional)"std::basic_string, std::allocator >& std::basic_string, std::allocator >::append(unsigned char*, unsigned char*)@Base" 0.8.0 + (c++|regex|optional)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0 + (c++|regex|optional)"^char\* std::[^ ]+<.+ >::_.+@Base$" 0.8.0 + (c++|regex|optional)"^typeinfo name for std::iterator<.*>@Base$" 0.8.0 + (c++|regex|optional)"^typeinfo for std::iterator<.*>@Base$" 0.8.0 +### diff --git a/debian/apt.symbols b/debian/apt.symbols new file mode 100644 index 000000000..10e17cc80 --- /dev/null +++ b/debian/apt.symbols @@ -0,0 +1,1263 @@ +libapt-pkg.so.4.10 libapt-pkg4.10 +| apt #MINVER# +* Build-Depends-Package: libapt-pkg-dev + TFRewritePackageOrder@Base 0.8.0 + TFRewriteSourceOrder@Base 0.8.0 + (c++)"FileExists(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"IdentCdrom(std::basic_string, std::allocator >, std::basic_string, std::allocator >&, unsigned int)@Base" 0.8.0 + (c++)"ListUpdate(pkgAcquireStatus&, pkgSourceList&, int)@Base" 0.8.0 + (c++)"MountCdrom(std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"ParseCWord(char const*&, std::basic_string, std::allocator >&)@Base" 0.8.0 + (c++)"ReadPinDir(pkgPolicy&, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"RunScripts(char const*)@Base" 0.8.0 + (c++)"SafeGetCWD()@Base" 0.8.0 + (c++)"parsenetrc(char*, char*, char*, char*)@Base" 0.8.0 + (c++)"QuoteString(std::basic_string, std::allocator > const&, char const*)@Base" 0.8.0 + (c++)"ReadPinFile(pkgPolicy&, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"RegexChoice(RxChoiceList*, char const**, char const**)@Base" 0.8.0 + (c++)"SetNonBlock(int, bool)@Base" 0.8.0 + (c++)"TimeRFC1123(long)@Base" 0.8.0 + (c++)"flExtension(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"Base64Encode(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"ReadMessages(int, std::vector, std::allocator >, std::allocator, std::allocator > > >&)@Base" 0.8.0 + (c++)"SetCloseExec(int, bool)@Base" 0.8.0 + (c++)"StringToBool(std::basic_string, std::allocator > const&, int)@Base" 0.8.0 + (c++)"UnmountCdrom(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"_GetErrorObj()@Base" 0.8.0 + (c++)"pkgFixBroken(pkgDepCache&)@Base" 0.8.0 + (c++)"DeQuoteString(__gnu_cxx::__normal_iterator, std::allocator > > const&, __gnu_cxx::__normal_iterator, std::allocator > > const&)@Base" 0.8.0 + (c++)"DeQuoteString(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"OutputInDepth(unsigned long, char const*)@Base" 0.8.0 + (c++)"ReadConfigDir(Configuration&, std::basic_string, std::allocator > const&, bool const&, unsigned int const&)@Base" 0.8.0 + (c++)"URItoFileName(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"UTF8ToCodeset(char const*, std::basic_string, std::allocator > const&, std::basic_string, std::allocator >*)@Base" 0.8.0 + (c++)"_strtabexpand(char*, unsigned int)@Base" 0.8.0 + (c++)"pkgAllUpgrade(pkgDepCache&)@Base" 0.8.0 + (c++)"pkgInitConfig(Configuration&)@Base" 0.8.0 + (c++)"pkgInitSystem(Configuration&, pkgSystem*&)@Base" 0.8.0 + (c++)"safe_snprintf(char*, char*, char const*, ...)@Base" 0.8.0 + (c++)"stringcasecmp(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, char const*, char const*)@Base" 0.8.0 + (c++)"stringcasecmp(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >)@Base" 0.8.0 + (c++)"stringcasecmp(char const*, char const*, char const*, char const*)@Base" 0.8.0 + (c++|optional=inline)"stringcasecmp(char const*, char const*, char const*)@Base" 0.8.0 + (c++|optional=inline)"stringcasecmp(std::basic_string, std::allocator > const&, char const*)@Base" 0.8.0 + (c++)"tolower_ascii(int)@Base" 0.8.0 + (c++)"ParseQuoteWord(char const*&, std::basic_string, std::allocator >&)@Base" 0.8.0 + (c++)"ReadConfigFile(Configuration&, std::basic_string, std::allocator > const&, bool const&, unsigned int const&)@Base" 0.8.0 + (c++)"TokSplitString(char, char*, char**, unsigned long)@Base" 0.8.0 + (c++)"maybe_add_auth(URI&, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgApplyStatus(pkgDepCache&)@Base" 0.8.0 + (c++)"pkgDistUpgrade(pkgDepCache&)@Base" 0.8.0 + (c++)"CheckDomainList(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"CreateDirectory(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"DirectoryExists(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"VectorizeString(std::basic_string, std::allocator > const&, char const&)@Base" 0.8.0 + (c++)"pkgPrioSortList(pkgCache&, pkgCache::Version**)@Base" 0.8.0 + (c++)"FTPMDTMStrToTime(char const*, long&)@Base" 0.8.0 + (c++)"RFC1123StrToTime(char const*, long&)@Base" 0.8.0 + (c++)"pkgMakeStatusCache(pkgSourceList&, OpProgress&, MMap**, bool)@Base" 0.8.0 + (c++)"pkgMinimizeUpgrade(pkgDepCache&)@Base" 0.8.0 + (c++)"GetListOfFilesInDir(std::basic_string, std::allocator > const&, std::vector, std::allocator >, std::allocator, std::allocator > > > const&, bool const&)@Base" 0.8.0 + (c++)"GetListOfFilesInDir(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, bool const&, bool const&)@Base" 0.8.0 + (c++)"pkgMakeStatusCacheMem(pkgSourceList&, OpProgress&)@Base" 0.8.0 + (c++)"pkgMakeOnlyStatusCache(OpProgress&, DynamicMMap**)@Base" 0.8.0 + (c++)"WaitFd(int, bool, unsigned long)@Base" 0.8.0 + (c++)"GetLock(std::basic_string, std::allocator >, bool)@Base" 0.8.0 + (c++)"Hex2Num(std::basic_string, std::allocator > const&, unsigned char*, unsigned int)@Base" 0.8.0 + (c++)"AddCRC16(unsigned short, void const*, unsigned long)@Base" 0.8.0 + (c++)"CopyFile(FileFd&, FileFd&)@Base" 0.8.0 + (c++)"ExecFork()@Base" 0.8.0 + (c++)"ExecWait(int, char const*, bool)@Base" 0.8.0 + (c++)"StrToNum(char const*, unsigned long&, unsigned int, unsigned int)@Base" 0.8.0 + (c++)"SubstVar(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"SubstVar(std::basic_string, std::allocator >, SubstVar const*)@Base" 0.8.0 + (c++)"flNoLink(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"flNotDir(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"ioprintf(std::basic_ostream >&, char const*, ...)@Base" 0.8.0 + (c++)"IsMounted(std::basic_string, std::allocator >&)@Base" 0.8.0 + (c++)"LookupTag(std::basic_string, std::allocator > const&, char const*, char const*)@Base" 0.8.0 + (c++)"SizeToStr(double)@Base" 0.8.0 + (c++)"StrToTime(std::basic_string, std::allocator > const&, long&)@Base" 0.8.0 + (c++)"TFRewrite(_IO_FILE*, pkgTagSection const&, char const**, TFRewriteData*)@Base" 0.8.0 + (c++)"TimeToStr(unsigned long)@Base" 0.8.0 + (c++)"_strstrip(char*)@Base" 0.8.0 + (c++)"flCombine(std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"flNotFile(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"stringcmp(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, char const*, char const*)@Base" 0.8.0 + (c++)"stringcmp(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >)@Base" 0.8.0 + (c++)"stringcmp(char const*, char const*, char const*, char const*)@Base" 0.8.0 + (c++)"strprintf(std::basic_string, std::allocator >&, char const*, ...)@Base" 0.8.0 + (c++)"guard variable for pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"guard variable for pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"guard variable for pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"guard variable for pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"guard variable for pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"guard variable for pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"guard variable for pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"HashString::SupportedHashes()@Base" 0.8.0 + (c++)"HashString::_SupportedHashes@Base" 0.8.0 + (c++)"HashString::HashString(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"HashString::HashString(std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"HashString::HashString()@Base" 0.8.0 + (c++)"HashString::~HashString()@Base" 0.8.0 + (c++)"OpProgress::CheckChange(float)@Base" 0.8.0 + (c++)"OpProgress::SubProgress(unsigned long)@Base" 0.8.0 + (c++)"OpProgress::SubProgress(unsigned long, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"OpProgress::OverallProgress(unsigned long, unsigned long, unsigned long, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"OpProgress::Done()@Base" 0.8.0 + (c++)"OpProgress::Update()@Base" 0.8.0 + (c++)"OpProgress::Progress(unsigned long)@Base" 0.8.0 + (c++)"OpProgress::OpProgress()@Base" 0.8.0 + (c++)"OpProgress::~OpProgress()@Base" 0.8.0 + (c++)"SourceCopy::GetFileName()@Base" 0.8.0 + (c++)"SourceCopy::RewriteEntry(_IO_FILE*, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"SourceCopy::Type()@Base" 0.8.0 + (c++)"SourceCopy::GetFile(std::basic_string, std::allocator >&, unsigned long&)@Base" 0.8.0 + (c++)"SourceCopy::~SourceCopy()@Base" 0.8.0 + (c++)"pkgAcqFile::Custom600Headers()@Base" 0.8.0 + (c++)"pkgAcqFile::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqFile::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqFile::DescURI()@Base" 0.8.0 + (c++)"pkgAcqFile::HashSum()@Base" 0.8.0 + (c++)"pkgAcqFile::pkgAcqFile(pkgAcquire*, std::basic_string, std::allocator >, std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, bool)@Base" 0.8.0 + (c++)"pkgAcqFile::~pkgAcqFile()@Base" 0.8.0 + (c++)"pkgAcquire::WorkerStep(pkgAcquire::Worker*)@Base" 0.8.0 + (c++)"pkgAcquire::FetchNeeded()@Base" 0.8.0 + (c++)"pkgAcquire::TotalNeeded()@Base" 0.8.0 + (c++)"pkgAcquire::MethodConfig::MethodConfig()@Base" 0.8.0 + (c++)"pkgAcquire::PartialPresent()@Base" 0.8.0 + (c++)"pkgAcquire::Add(pkgAcquire::Item*)@Base" 0.8.0 + (c++)"pkgAcquire::Add(pkgAcquire::Worker*)@Base" 0.8.0 + (c++)"pkgAcquire::Run(int)@Base" 0.8.0 + (c++)"pkgAcquire::Bump()@Base" 0.8.0 + (c++)"pkgAcquire::Item::Custom600Headers()@Base" 0.8.0 + (c++)"pkgAcquire::Item::ReportMirrorFailure(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcquire::Item::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcquire::Item::Start(std::basic_string, std::allocator >, unsigned long)@Base" 0.8.0 + (c++)"pkgAcquire::Item::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcquire::Item::Rename(std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcquire::Item::HashSum()@Base" 0.8.0 + (c++)"pkgAcquire::Item::Finished()@Base" 0.8.0 + (c++)"pkgAcquire::Item::IsTrusted()@Base" 0.8.0 + (c++)"pkgAcquire::Item::ShortDesc()@Base" 0.8.0 + (c++)"pkgAcquire::Item::Item(pkgAcquire*)@Base" 0.8.0 + (c++)"pkgAcquire::Item::~Item()@Base" 0.8.0 + (c++)"pkgAcquire::Clean(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcquire::Queue::Bump()@Base" 0.8.0 + (c++)"pkgAcquire::Queue::Cycle()@Base" 0.8.0 + (c++)"pkgAcquire::Queue::Dequeue(pkgAcquire::Item*)@Base" 0.8.0 + (c++)"pkgAcquire::Queue::Enqueue(pkgAcquire::ItemDesc&)@Base" 0.8.0 + (c++)"pkgAcquire::Queue::Startup()@Base" 0.8.0 + (c++)"pkgAcquire::Queue::FindItem(std::basic_string, std::allocator >, pkgAcquire::Worker*)@Base" 0.8.0 + (c++)"pkgAcquire::Queue::ItemDone(pkgAcquire::Queue::QItem*)@Base" 0.8.0 + (c++)"pkgAcquire::Queue::Shutdown(bool)@Base" 0.8.0 + (c++)"pkgAcquire::Queue::Queue(std::basic_string, std::allocator >, pkgAcquire*)@Base" 0.8.0 + (c++)"pkgAcquire::Queue::~Queue()@Base" 0.8.0 + (c++)"pkgAcquire::Setup(pkgAcquireStatus*, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgAcquire::Remove(pkgAcquire::Item*)@Base" 0.8.0 + (c++)"pkgAcquire::Remove(pkgAcquire::Worker*)@Base" 0.8.0 + (c++)"pkgAcquire::RunFds(fd_set*, fd_set*)@Base" 0.8.0 + (c++)"pkgAcquire::SetFds(int&, fd_set*, fd_set*)@Base" 0.8.0 + (c++)"pkgAcquire::UriEnd()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::OutFdReady()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::MediaChange(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcquire::Worker::RunMessages()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::Capabilities(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcquire::Worker::ReadMessages()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::MethodFailure()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::SendConfiguration()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::Pulse()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::Start()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::ItemDone()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::Construct()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::InFdReady()@Base" 0.8.0 + (c++)"pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem*)@Base" 0.8.0 + (c++)"pkgAcquire::Worker::Worker(pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcquire::Worker::Worker(pkgAcquire::Queue*, pkgAcquire::MethodConfig*, pkgAcquireStatus*)@Base" 0.8.0 + (c++)"pkgAcquire::Worker::~Worker()@Base" 0.8.0 + (c++)"pkgAcquire::Dequeue(pkgAcquire::Item*)@Base" 0.8.0 + (c++)"pkgAcquire::Enqueue(pkgAcquire::ItemDesc&)@Base" 0.8.0 + (c++)"pkgAcquire::ItemDesc::~ItemDesc()@Base" 0.8.0 + (c++)"pkgAcquire::Shutdown()@Base" 0.8.0 + (c++)"pkgAcquire::UriBegin()@Base" 0.8.0 + (c++)"pkgAcquire::GetConfig(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcquire::QueueName(std::basic_string, std::allocator >, pkgAcquire::MethodConfig const*&)@Base" 0.8.0 + (c++)"pkgAcquire::pkgAcquire(pkgAcquireStatus*)@Base" 0.8.0 + (c++)"pkgAcquire::pkgAcquire()@Base" 0.8.0 + (c++)"pkgAcquire::~pkgAcquire()@Base" 0.8.0 + (c++)"pkgRecords::Lookup(pkgCache::VerFileIterator const&)@Base" 0.8.0 + (c++)"pkgRecords::Lookup(pkgCache::DescFileIterator const&)@Base" 0.8.0 + (c++)"pkgRecords::Parser::Maintainer()@Base" 0.8.0 + (c++)"pkgRecords::Parser::SHA256Hash()@Base" 0.8.0 + (c++)"pkgRecords::Parser::Name()@Base" 0.8.0 + (c++)"pkgRecords::Parser::GetRec(char const*&, char const*&)@Base" 0.8.0 + (c++)"pkgRecords::Parser::MD5Hash()@Base" 0.8.0 + (c++)"pkgRecords::Parser::FileName()@Base" 0.8.0 + (c++)"pkgRecords::Parser::Homepage()@Base" 0.8.0 + (c++)"pkgRecords::Parser::LongDesc()@Base" 0.8.0 + (c++)"pkgRecords::Parser::SHA1Hash()@Base" 0.8.0 + (c++)"pkgRecords::Parser::ShortDesc()@Base" 0.8.0 + (c++)"pkgRecords::Parser::SourcePkg()@Base" 0.8.0 + (c++)"pkgRecords::Parser::SourceVer()@Base" 0.8.0 + (c++)"pkgRecords::Parser::~Parser()@Base" 0.8.0 + (c++)"pkgRecords::pkgRecords(pkgCache&)@Base" 0.8.0 + (c++)"pkgRecords::~pkgRecords()@Base" 0.8.0 + (c++)"pkgTagFile::Fill()@Base" 0.8.0 + (c++)"pkgTagFile::Jump(pkgTagSection&, unsigned long)@Base" 0.8.0 + (c++)"pkgTagFile::Step(pkgTagSection&)@Base" 0.8.0 + (c++)"pkgTagFile::Resize()@Base" 0.8.0 + (c++)"pkgTagFile::pkgTagFile(FileFd*, unsigned long)@Base" 0.8.0 + (c++)"pkgTagFile::~pkgTagFile()@Base" 0.8.0 + (c++)"CdromDevice::~CdromDevice()@Base" 0.8.0 + (c++)"CommandLine::DispatchArg(CommandLine::Dispatch*, bool)@Base" 0.8.0 + (c++)"CommandLine::SaveInConfig(unsigned int const&, char const* const*)@Base" 0.8.0 + (c++)"CommandLine::Parse(int, char const**)@Base" 0.8.0 + (c++)"CommandLine::HandleOpt(int&, int, char const**, char const*&, CommandLine::Args*, bool)@Base" 0.8.0 + (c++)"CommandLine::CommandLine(CommandLine::Args*, Configuration*)@Base" 0.8.0 + (c++)"CommandLine::~CommandLine()@Base" 0.8.0 + (c++)"DynamicMMap::RawAllocate(unsigned long, unsigned long)@Base" 0.8.0 + (c++)"DynamicMMap::WriteString(char const*, unsigned long)@Base" 0.8.0 + (c++)"DynamicMMap::Grow()@Base" 0.8.0 + (c++)"DynamicMMap::Allocate(unsigned long)@Base" 0.8.0 + (c++)"DynamicMMap::DynamicMMap(FileFd&, unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@Base" 0.8.0 + (c++)"DynamicMMap::DynamicMMap(unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@Base" 0.8.0 + (c++)"DynamicMMap::~DynamicMMap()@Base" 0.8.0 + (c++)"GlobalError::DumpErrors(std::basic_ostream >&, GlobalError::MsgType const&, bool const&)@Base" 0.8.0 + (c++)"GlobalError::PopMessage(std::basic_string, std::allocator >&)@Base" 0.8.0 + (arch=!armel|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&)@Base" 0.8.0 + (arch=armel|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&)@Base" 0.8.0 + (c++)"GlobalError::InsertErrno(GlobalError::MsgType const&, char const*, char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::PushToStack()@Base" 0.8.0 + (c++)"GlobalError::RevertToStack()@Base" 0.8.0 + (c++)"GlobalError::MergeWithStack()@Base" 0.8.0 + (c++)"GlobalError::Debug(char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::Errno(char const*, char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::Error(char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::Fatal(char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::DebugE(char const*, char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::FatalE(char const*, char const*, ...)@Base" 0.8.0 + (arch=!armel|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&)@Base" 0.8.0 + (arch=armel|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&)@Base" 0.8.0 + (c++)"GlobalError::Insert(GlobalError::MsgType const&, char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::Notice(char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::Discard()@Base" 0.8.0 + (c++)"GlobalError::NoticeE(char const*, char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::Warning(char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::WarningE(char const*, char const*, ...)@Base" 0.8.0 + (c++)"GlobalError::GlobalError()@Base" 0.8.0 + (c++)"MD5SumValue::Set(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"MD5SumValue::MD5SumValue(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"MD5SumValue::MD5SumValue()@Base" 0.8.0 + (c++)"PackageCopy::GetFileName()@Base" 0.8.0 + (c++)"PackageCopy::RewriteEntry(_IO_FILE*, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"PackageCopy::Type()@Base" 0.8.0 + (c++)"PackageCopy::GetFile(std::basic_string, std::allocator >&, unsigned long&)@Base" 0.8.0 + (c++)"PackageCopy::~PackageCopy()@Base" 0.8.0 + (c++)"pkgAcqIndex::Custom600Headers()@Base" 0.8.0 + (c++)"pkgAcqIndex::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqIndex::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqIndex::DescURI()@Base" 0.8.0 + (c++)"pkgAcqIndex::HashSum()@Base" 0.8.0 + (c++)"pkgAcqIndex::pkgAcqIndex(pkgAcquire*, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, HashString, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqIndex::~pkgAcqIndex()@Base" 0.8.0 + (c++)"pkgDepCache::IsDeleteOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0 + (c++)"pkgDepCache::MarkDelete(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0 + (c++)"pkgDepCache::StateCache::StripEpoch(char const*)@Base" 0.8.0 + (c++)"pkgDepCache::StateCache::Update(pkgCache::PkgIterator, pkgCache&)@Base" 0.8.0 + (c++)"pkgDepCache::ActionGroup::release()@Base" 0.8.0 + (c++)"pkgDepCache::ActionGroup::ActionGroup(pkgDepCache&)@Base" 0.8.0 + (c++)"pkgDepCache::ActionGroup::~ActionGroup()@Base" 0.8.0 + (c++)"pkgDepCache::IsInstallOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0 + (c++)"pkgDepCache::MarkInstall(pkgCache::PkgIterator const&, bool, unsigned long, bool, bool)@Base" 0.8.0 + (c++)"pkgDepCache::MarkPackage(pkgCache::PkgIterator const&, pkgCache::VerIterator const&, bool const&, bool const&)@Base" 0.8.0 + (c++)"pkgDepCache::MarkRequired(pkgDepCache::InRootSetFunc&)@Base" 0.8.0 + (c++)"pkgDepCache::SetReInstall(pkgCache::PkgIterator const&, bool)@Base" 0.8.0 + (c++)"pkgDepCache::VersionState(pkgCache::DepIterator, unsigned char, unsigned char, unsigned char)@Base" 0.8.0 + (c++)"pkgDepCache::BuildGroupOrs(pkgCache::VerIterator const&)@Base" 0.8.0 + (c++)"pkgDepCache::InRootSetFunc::InRootSet(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgDepCache::InRootSetFunc::~InRootSetFunc()@Base" 0.8.0 + (c++)"pkgDepCache::readStateFile(OpProgress*)@Base" 0.8.0 + (c++)"pkgDepCache::GetRootSetFunc()@Base" 0.8.0 + (c++)"pkgDepCache::UpdateVerState(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgDepCache::writeStateFile(OpProgress*, bool)@Base" 0.8.0 + (c++)"pkgDepCache::DependencyState(pkgCache::DepIterator&)@Base" 0.8.0 + (c++)"pkgDepCache::DefaultRootSetFunc::InRootSet(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgDepCache::DefaultRootSetFunc::~DefaultRootSetFunc()@Base" 0.8.0 + (c++)"pkgDepCache::MarkFollowsSuggests()@Base" 0.8.0 + (c++)"pkgDepCache::SetCandidateVersion(pkgCache::VerIterator, bool const&)@Base" 0.8.0 + (c++)"pkgDepCache::MarkFollowsRecommends()@Base" 0.8.0 + (c++)"pkgDepCache::ReInstallPseudoForGroup(pkgCache::PkgIterator const&, std::set, std::allocator >&)@Base" 0.8.0 + (c++)"pkgDepCache::ReInstallPseudoForGroup(unsigned long const&, std::set, std::allocator >&)@Base" 0.8.0 + (c++)"pkgDepCache::RemovePseudoInstalledPkg(pkgCache::PkgIterator&, std::set, std::allocator >&)@Base" 0.8.0 + (c++)"pkgDepCache::Init(OpProgress*)@Base" 0.8.0 + (c++)"pkgDepCache::Sweep()@Base" 0.8.0 + (c++)"pkgDepCache::Policy::IsImportantDep(pkgCache::DepIterator const&)@Base" 0.8.0 + (c++)"pkgDepCache::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgDepCache::Policy::~Policy()@Base" 0.8.0 + (c++)"pkgDepCache::Update(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgDepCache::Update(OpProgress*)@Base" 0.8.0 + (c++)"pkgDepCache::Update(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, bool const&)@Base" 0.8.0 + (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, long)@Base" 0.8.0 + (c++)"pkgDepCache::CheckDep(pkgCache::DepIterator, int, pkgCache::PkgIterator&)@Base" 0.8.0 + (c++)"pkgDepCache::MarkAuto(pkgCache::PkgIterator const&, bool)@Base" 0.8.0 + (c++)"pkgDepCache::MarkKeep(pkgCache::PkgIterator const&, bool, bool, unsigned long)@Base" 0.8.0 + (c++)"pkgDepCache::AddStates(pkgCache::PkgIterator const&, int)@Base" 0.8.0 + (c++)"pkgDepCache::pkgDepCache(pkgCache*, pkgDepCache::Policy*)@Base" 0.8.0 + (c++)"pkgDepCache::~pkgDepCache()@Base" 0.8.0 + (c++)"pkgSimulate::ShortBreaks()@Base" 0.8.0 + (c++)"pkgSimulate::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgSimulate::Policy::~Policy()@Base" 0.8.0 + (c++)"pkgSimulate::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0 + (c++)"pkgSimulate::Install(pkgCache::PkgIterator, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgSimulate::Describe(pkgCache::PkgIterator, std::basic_ostream >&, bool, bool)@Base" 0.8.0 + (c++)"pkgSimulate::Configure(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgSimulate::pkgSimulate(pkgDepCache*)@Base" 0.8.0 + (c++)"pkgSimulate::~pkgSimulate()@Base" 0.8.0 + (c++)"MD5Summation::Add(unsigned char const*, unsigned long)@Base" 0.8.0 + (c++)"MD5Summation::AddFD(int, unsigned long)@Base" 0.8.0 + (c++)"MD5Summation::Result()@Base" 0.8.0 + (c++)"MD5Summation::MD5Summation()@Base" 0.8.0 + (c++)"SHA1SumValue::Set(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"SHA1SumValue::SHA1SumValue(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"SHA1SumValue::SHA1SumValue()@Base" 0.8.0 + (c++)"debIFTypePkg::~debIFTypePkg()@Base" 0.8.0 + (c++)"debIFTypeSrc::~debIFTypeSrc()@Base" 0.8.0 + (c++)"debSLTypeDeb::~debSLTypeDeb()@Base" 0.8.0 + (c++)"indexRecords::parseSumData(char const*&, char const*, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, unsigned int&)@Base" 0.8.0 + (c++)"indexRecords::Load(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"indexRecords::Lookup(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"indexRecords::MetaKeys()@Base" 0.8.0 + (c++)"indexRecords::indexRecords(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"indexRecords::indexRecords()@Base" 0.8.0 + (c++)"indexRecords::~indexRecords()@Base" 0.8.0 + (c++)"pkgAcqMethod::FetchResult::TakeHashes(Hashes&)@Base" 0.8.0 + (c++)"pkgAcqMethod::FetchResult::FetchResult()@Base" 0.8.0 + (c++)"pkgAcqMethod::Configuration(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqMethod::Log(char const*, ...)@Base" 0.8.0 + (c++)"pkgAcqMethod::Run(bool)@Base" 0.8.0 + (c++)"pkgAcqMethod::Exit()@Base" 0.8.0 + (c++)"pkgAcqMethod::Fail(std::basic_string, std::allocator >, bool)@Base" 0.8.0 + (c++)"pkgAcqMethod::Fail(bool)@Base" 0.8.0 + (c++)"pkgAcqMethod::Fetch(pkgAcqMethod::FetchItem*)@Base" 0.8.0 + (c++)"pkgAcqMethod::Status(char const*, ...)@Base" 0.8.0 + (c++)"pkgAcqMethod::URIDone(pkgAcqMethod::FetchResult&, pkgAcqMethod::FetchResult*)@Base" 0.8.0 + (c++)"pkgAcqMethod::Redirect(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgAcqMethod::URIStart(pkgAcqMethod::FetchResult&)@Base" 0.8.0 + (c++)"pkgAcqMethod::MediaFail(std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqMethod::pkgAcqMethod(char const*, unsigned long)@Base" 0.8.0 + (c++)"pkgAcqMethod::~pkgAcqMethod()@Base" 0.8.0 + (c++)"pkgCacheFile::BuildCaches(OpProgress*, bool)@Base" 0.8.0 + (c++)"pkgCacheFile::BuildPolicy(OpProgress*)@Base" 0.8.0 + (c++)"pkgCacheFile::BuildDepCache(OpProgress*)@Base" 0.8.0 + (c++)"pkgCacheFile::BuildSourceList(OpProgress*)@Base" 0.8.0 + (c++)"pkgCacheFile::Open(OpProgress*, bool)@Base" 0.8.0 + (c++)"pkgCacheFile::Close()@Base" 0.8.0 + (c++)"pkgCacheFile::pkgCacheFile()@Base" 0.8.0 + (c++)"pkgCacheFile::~pkgCacheFile()@Base" 0.8.0 + (c++)"pkgIndexFile::LanguageCode()@Base" 0.8.0 + (c++)"pkgIndexFile::CheckLanguageCode(char const*)@Base" 0.8.0 + (c++)"pkgIndexFile::TranslationsAvailable()@Base" 0.8.0 + (c++)"pkgIndexFile::Type::GlobalList@Base" 0.8.0 + (c++)"pkgIndexFile::Type::GlobalListLen@Base" 0.8.0 + (c++)"pkgIndexFile::Type::GetType(char const*)@Base" 0.8.0 + (c++)"pkgIndexFile::Type::Type()@Base" 0.8.0 + (c++)"pkgIndexFile::Type::~Type()@Base" 0.8.0 + (c++)"pkgIndexFile::~pkgIndexFile()@Base" 0.8.0 + (c++)"pkgOrderList::VisitRDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgOrderList::OrderUnpack(std::basic_string, std::allocator >*)@Base" 0.8.0 + (c++)"pkgOrderList::DepConfigure(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::DepUnPackDep(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::DepUnPackPre(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::DepUnPackCrit(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::DepUnPackPreD(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::OrderCompareA(void const*, void const*)@Base" 0.8.0 + (c++)"pkgOrderList::OrderCompareB(void const*, void const*)@Base" 0.8.0 + (c++)"pkgOrderList::OrderCritical()@Base" 0.8.0 + (c++)"pkgOrderList::VisitProvides(pkgCache::DepIterator, bool)@Base" 0.8.0 + (c++)"pkgOrderList::OrderConfigure()@Base" 0.8.0 + (c++)"pkgOrderList::VisitRProvides(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::VerIterator)@Base" 0.8.0 + (c++)"pkgOrderList::Me@Base" 0.8.0 + (c++)"pkgOrderList::DoRun()@Base" 0.8.0 + (c++)"pkgOrderList::Score(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgOrderList::AddLoop(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::FileCmp(pkgCache::PkgIterator, pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgOrderList::CheckDep(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::DepRemove(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgOrderList::IsMissing(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgOrderList::VisitDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgOrderList::VisitNode(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgOrderList::WipeFlags(unsigned long)@Base" 0.8.0 + (c++)"pkgOrderList::pkgOrderList(pkgDepCache*)@Base" 0.8.0 + (c++)"pkgOrderList::~pkgOrderList()@Base" 0.8.0 + (c++)"Configuration::MatchAgainstConfig::MatchAgainstConfig(char const*)@Base" 0.8.0 + (c++)"Configuration::MatchAgainstConfig::~MatchAgainstConfig()@Base" 0.8.0 + (c++)"Configuration::Set(char const*, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"Configuration::Set(char const*, int const&)@Base" 0.8.0 + (c++)"Configuration::Dump(std::basic_ostream >&)@Base" 0.8.0 + (c++)"Configuration::Clear(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"Configuration::Clear(std::basic_string, std::allocator > const&, int const&)@Base" 0.8.0 + (c++)"Configuration::Clear(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"Configuration::CndSet(char const*, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"Configuration::Lookup(char const*, bool const&)@Base" 0.8.0 + (c++)"Configuration::Lookup(Configuration::Item*, char const*, unsigned long const&, bool const&)@Base" 0.8.0 + (c++)"Configuration::Configuration(Configuration::Item const*)@Base" 0.8.0 + (c++)"Configuration::Configuration()@Base" 0.8.0 + (c++)"Configuration::~Configuration()@Base" 0.8.0 + (c++)"SHA1Summation::Add(unsigned char const*, unsigned long)@Base" 0.8.0 + (c++)"SHA1Summation::AddFD(int, unsigned long)@Base" 0.8.0 + (c++)"SHA1Summation::Result()@Base" 0.8.0 + (c++)"SHA1Summation::SHA1Summation()@Base" 0.8.0 + (c++)"WeakPointable::~WeakPointable()@Base" 0.8.0 + (c++)"debListParser::NewVersion(pkgCache::VerIterator&)@Base" 0.8.0 + (c++)"debListParser::UsePackage(pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.0 + (c++)"debListParser::Description()@Base" 0.8.0 + (c++)"debListParser::ParseStatus(pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.0 + (c++)"debListParser::VersionHash()@Base" 0.8.0 + (c++)"debListParser::Architecture()@Base" 0.8.0 + (c++)"debListParser::ParseDepends(char const*, char const*, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, unsigned int&, bool const&, bool const&)@Base" 0.8.0 + (c++)"debListParser::ParseDepends(pkgCache::VerIterator&, char const*, unsigned int)@Base" 0.8.0 + (c++)"debListParser::ParseProvides(pkgCache::VerIterator&)@Base" 0.8.0 + (c++)"debListParser::ArchitectureAll()@Base" 0.8.0 + (c++)"debListParser::ConvertRelation(char const*, unsigned int&)@Base" 0.8.0 + (c++)"debListParser::Description_md5()@Base" 0.8.0 + (c++)"debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator&, FileFd&, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"debListParser::UniqFindTagWrite(char const*)@Base" 0.8.0 + (c++)"debListParser::DescriptionLanguage()@Base" 0.8.0 + (c++)"debListParser::Size()@Base" 0.8.0 + (c++)"debListParser::Step()@Base" 0.8.0 + (c++)"debListParser::Offset()@Base" 0.8.0 + (c++)"debListParser::GetPrio(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"debListParser::Package()@Base" 0.8.0 + (c++)"debListParser::Version()@Base" 0.8.0 + (c++)"debListParser::GrabWord(std::basic_string, std::allocator >, debListParser::WordList*, unsigned char&)@Base" 0.8.0 + (c++)"debListParser::debListParser(FileFd*, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"debListParser::~debListParser()@Base" 0.8.0 + (c++)"pkgAcqArchive::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqArchive::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqArchive::DescURI()@Base" 0.8.0 + (c++)"pkgAcqArchive::HashSum()@Base" 0.8.0 + (c++)"pkgAcqArchive::Finished()@Base" 0.8.0 + (c++)"pkgAcqArchive::IsTrusted()@Base" 0.8.0 + (c++)"pkgAcqArchive::QueueNext()@Base" 0.8.0 + (c++)"pkgAcqArchive::ShortDesc()@Base" 0.8.0 + (c++)"pkgAcqArchive::pkgAcqArchive(pkgAcquire*, pkgSourceList*, pkgRecords*, pkgCache::VerIterator const&, std::basic_string, std::allocator >&)@Base" 0.8.0 + (c++)"pkgAcqArchive::~pkgAcqArchive()@Base" 0.8.0 + (c++)"pkgAcqMetaSig::Custom600Headers()@Base" 0.8.0 + (c++)"pkgAcqMetaSig::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqMetaSig::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqMetaSig::DescURI()@Base" 0.8.0 + (c++)"pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire*, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::vector > const*, indexRecords*)@Base" 0.8.0 + (c++)"pkgAcqMetaSig::~pkgAcqMetaSig()@Base" 0.8.0 + (c++)"pkgSourceList::ReadAppend(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgSourceList::ReadMainList()@Base" 0.8.0 + (c++)"pkgSourceList::ReadSourceDir(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgSourceList::Read(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgSourceList::Type::GlobalList@Base" 0.8.0 + (c++)"pkgSourceList::Type::GlobalListLen@Base" 0.8.0 + (c++)"pkgSourceList::Type::GetType(char const*)@Base" 0.8.0 + (c++)"pkgSourceList::Type::Type()@Base" 0.8.0 + (c++)"pkgSourceList::Type::~Type()@Base" 0.8.0 + (c++)"pkgSourceList::Reset()@Base" 0.8.0 + (c++)"pkgSourceList::pkgSourceList(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgSourceList::pkgSourceList()@Base" 0.8.0 + (c++)"pkgSourceList::~pkgSourceList()@Base" 0.8.0 + (c++)"pkgSrcRecords::File::~File()@Base" 0.8.0 + (c++)"pkgSrcRecords::Find(char const*, bool const&)@Base" 0.8.0 + (c++)"pkgSrcRecords::Parser::BuildDepRec::~BuildDepRec()@Base" 0.8.0 + (c++)"pkgSrcRecords::Parser::BuildDepType(unsigned char const&)@Base" 0.8.0 + (c++)"pkgSrcRecords::Parser::~Parser()@Base" 0.8.0 + (c++)"pkgSrcRecords::Restart()@Base" 0.8.0 + (c++)"pkgSrcRecords::pkgSrcRecords(pkgSourceList&)@Base" 0.8.0 + (c++)"pkgSrcRecords::~pkgSrcRecords()@Base" 0.8.0 + (c++)"pkgTagSection::TrimRecord(bool, char const*&)@Base" 0.8.0 + (c++)"pkgTagSection::Scan(char const*, unsigned long)@Base" 0.8.0 + (c++)"pkgTagSection::Trim()@Base" 0.8.0 + (c++)"pkgVendorList::CreateList(Configuration&)@Base" 0.8.0 + (c++)"pkgVendorList::FindVendor(std::vector, std::allocator >, std::allocator, std::allocator > > >)@Base" 0.8.0 + (c++)"pkgVendorList::ReadMainList()@Base" 0.8.0 + (c++)"pkgVendorList::LookupFingerprint(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgVendorList::Read(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgVendorList::~pkgVendorList()@Base" 0.8.0 + (c++)"OpTextProgress::Done()@Base" 0.8.0 + (c++)"OpTextProgress::Write(char const*)@Base" 0.8.0 + (c++)"OpTextProgress::Update()@Base" 0.8.0 + (c++)"OpTextProgress::OpTextProgress(Configuration&)@Base" 0.8.0 + (c++)"OpTextProgress::~OpTextProgress()@Base" 0.8.0 + (c++)"SHA256SumValue::Set(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"SHA256SumValue::SHA256SumValue(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"SHA256SumValue::SHA256SumValue()@Base" 0.8.0 + (c++)"debIFTypeTrans::~debIFTypeTrans()@Base" 0.8.0 + (c++)"debStatusIndex::debStatusIndex(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"debStatusIndex::~debStatusIndex()@Base" 0.8.0 + (c++)"SHA256Summation::Add(unsigned char const*, unsigned long)@Base" 0.8.0 + (c++)"SHA256Summation::AddFD(int, unsigned long)@Base" 0.8.0 + (c++)"SHA256Summation::Result()@Base" 0.8.0 + (c++)"SHA256Summation::SHA256Summation()@Base" 0.8.0 + (c++)"debIFTypeStatus::~debIFTypeStatus()@Base" 0.8.0 + (c++)"debRecordParser::Maintainer()@Base" 0.8.0 + (c++)"debRecordParser::SHA256Hash()@Base" 0.8.0 + (c++)"debRecordParser::Jump(pkgCache::VerFileIterator const&)@Base" 0.8.0 + (c++)"debRecordParser::Jump(pkgCache::DescFileIterator const&)@Base" 0.8.0 + (c++)"debRecordParser::Name()@Base" 0.8.0 + (c++)"debRecordParser::GetRec(char const*&, char const*&)@Base" 0.8.0 + (c++)"debRecordParser::MD5Hash()@Base" 0.8.0 + (c++)"debRecordParser::FileName()@Base" 0.8.0 + (c++)"debRecordParser::Homepage()@Base" 0.8.0 + (c++)"debRecordParser::LongDesc()@Base" 0.8.0 + (c++)"debRecordParser::SHA1Hash()@Base" 0.8.0 + (c++)"debRecordParser::ShortDesc()@Base" 0.8.0 + (c++)"debRecordParser::SourcePkg()@Base" 0.8.0 + (c++)"debRecordParser::SourceVer()@Base" 0.8.0 + (c++)"debRecordParser::debRecordParser(std::basic_string, std::allocator >, pkgCache&)@Base" 0.8.0 + (c++)"debRecordParser::~debRecordParser()@Base" 0.8.0 + (c++)"debReleaseIndex::GetIndexFiles()@Base" 0.8.0 + (c++)"debReleaseIndex::debSectionEntry::debSectionEntry(std::basic_string, std::allocator > const&, bool const&)@Base" 0.8.0 + (c++)"debReleaseIndex::PushSectionEntry(debReleaseIndex::debSectionEntry const*)@Base" 0.8.0 + (c++)"debReleaseIndex::PushSectionEntry(std::basic_string, std::allocator > const&, debReleaseIndex::debSectionEntry const*)@Base" 0.8.0 + (c++)"debReleaseIndex::PushSectionEntry(std::vector, std::allocator >, std::allocator, std::allocator > > > const&, debReleaseIndex::debSectionEntry const*)@Base" 0.8.0 + (c++)"debReleaseIndex::debReleaseIndex(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"debReleaseIndex::~debReleaseIndex()@Base" 0.8.0 + (c++)"debSLTypeDebSrc::~debSLTypeDebSrc()@Base" 0.8.0 + (c++)"debSLTypeDebian::~debSLTypeDebian()@Base" 0.8.0 + (c++)"debSourcesIndex::debSourcesIndex(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, bool)@Base" 0.8.0 + (c++)"debSourcesIndex::~debSourcesIndex()@Base" 0.8.0 + (c++)"pkgAcqDiffIndex::ParseDiffIndex(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqDiffIndex::Custom600Headers()@Base" 0.8.0 + (c++)"pkgAcqDiffIndex::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqDiffIndex::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqDiffIndex::DescURI()@Base" 0.8.0 + (c++)"pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcquire*, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, HashString)@Base" 0.8.0 + (c++)"pkgAcqDiffIndex::~pkgAcqDiffIndex()@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::QueueIndexes(bool)@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::VerifyVendor(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::RetrievalDone(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::Custom600Headers()@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::DescURI()@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::AuthDone(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire*, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::vector > const*, indexRecords*)@Base" 0.8.0 + (c++)"pkgAcqMetaIndex::~pkgAcqMetaIndex()@Base" 0.8.0 + (c++)"pkgVersionMatch::ExpressionMatches(char const*, char const*)@Base" 0.8.0 + (c++)"pkgVersionMatch::ExpressionMatches(std::basic_string, std::allocator > const&, char const*)@Base" 0.8.0 + (c++)"pkgVersionMatch::Find(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgVersionMatch::MatchVer(char const*, std::basic_string, std::allocator >, bool)@Base" 0.8.0 + (c++)"pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator)@Base" 0.8.0 + (c++)"pkgVersionMatch::pkgVersionMatch(std::basic_string, std::allocator >, pkgVersionMatch::MatchType)@Base" 0.8.0 + (c++)"pkgVersionMatch::~pkgVersionMatch()@Base" 0.8.0 + (c++)"TranslationsCopy::CopyTranslations(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::vector, std::allocator >, std::allocator, std::allocator > > >&, pkgCdromStatus*)@Base" 0.8.0 + (c++)"debPackagesIndex::debPackagesIndex(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, bool const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"debPackagesIndex::~debPackagesIndex()@Base" 0.8.0 + (c++)"pkgAcqIndexDiffs::QueueNextDiff()@Base" 0.8.0 + (c++)"pkgAcqIndexDiffs::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqIndexDiffs::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqIndexDiffs::Finish(bool)@Base" 0.8.0 + (c++)"pkgAcqIndexDiffs::DescURI()@Base" 0.8.0 + (c++)"pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire*, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, HashString, std::basic_string, std::allocator >, std::vector >)@Base" 0.8.0 + (c++)"pkgAcqIndexDiffs::~pkgAcqIndexDiffs()@Base" 0.8.0 + (c++)"pkgAcqIndexTrans::Custom600Headers()@Base" 0.8.0 + (c++)"pkgAcqIndexTrans::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.0 + (c++)"pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire*, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgAcqIndexTrans::~pkgAcqIndexTrans()@Base" 0.8.0 + (c++)"pkgAcquireStatus::Done(pkgAcquire::ItemDesc&)@Base" 0.8.0 + (c++)"pkgAcquireStatus::Fail(pkgAcquire::ItemDesc&)@Base" 0.8.0 + (c++)"pkgAcquireStatus::Stop()@Base" 0.8.0 + (c++)"pkgAcquireStatus::Fetch(pkgAcquire::ItemDesc&)@Base" 0.8.0 + (c++)"pkgAcquireStatus::Pulse(pkgAcquire*)@Base" 0.8.0 + (c++)"pkgAcquireStatus::Start()@Base" 0.8.0 + (c++)"pkgAcquireStatus::IMSHit(pkgAcquire::ItemDesc&)@Base" 0.8.0 + (c++)"pkgAcquireStatus::Fetched(unsigned long, unsigned long)@Base" 0.8.0 + (c++)"pkgAcquireStatus::pkgAcquireStatus()@Base" 0.8.0 + (c++)"pkgAcquireStatus::~pkgAcquireStatus()@Base" 0.8.0 + (c++)"PreferenceSection::TrimRecord(bool, char const*&)@Base" 0.8.0 + (c++)"pkgArchiveCleaner::Go(std::basic_string, std::allocator >, pkgCache&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, unsigned int, unsigned int)@Base" 0.8.0 + (c++)"pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::ListParser::CollectFileProvides(pkgCache&, pkgCache::VerIterator&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::ListParser::~ListParser()@Base" 0.8.0 + (c++)"pkgCacheGenerator::NewDepends(pkgCache::PkgIterator&, pkgCache::VerIterator&, std::basic_string, std::allocator > const&, unsigned int const&, unsigned int const&, unsigned int*)@Base" 0.8.0 + (c++)"pkgCacheGenerator::NewFileVer(pkgCache::VerIterator&, pkgCacheGenerator::ListParser&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::NewPackage(pkgCache::PkgIterator&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::NewVersion(pkgCache::VerIterator&, std::basic_string, std::allocator > const&, unsigned long)@Base" 0.8.0 + (c++)"pkgCacheGenerator::SelectFile(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, pkgIndexFile const&, unsigned long)@Base" 0.8.0 + (c++)"pkgCacheGenerator::FinishCache(OpProgress*)@Base" 0.8.0 + (c++)"pkgCacheGenerator::NewFileDesc(pkgCache::DescIterator&, pkgCacheGenerator::ListParser&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::AllocateInMap(unsigned long const&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::NewDescription(pkgCache::DescIterator&, std::basic_string, std::allocator > const&, MD5SumValue const&, unsigned int)@Base" 0.8.0 + (c++)"pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool)@Base" 0.8.0 + (c++)"pkgCacheGenerator::WriteUniqString(char const*, unsigned int)@Base" 0.8.0 + (c++)"pkgCacheGenerator::WriteStringInMap(char const*)@Base" 0.8.0 + (c++)"pkgCacheGenerator::WriteStringInMap(char const*, unsigned long const&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::CreateDynamicMMap(FileFd*, unsigned long)@Base" 0.8.0 + (c++)"pkgCacheGenerator::MergeFileProvides(pkgCacheGenerator::ListParser&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::MakeOnlyStatusCache(OpProgress*, DynamicMMap**)@Base" 0.8.0 + (c++)"pkgCacheGenerator::ReMap(void const*, void const*)@Base" 0.8.0 + (c++)"pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"pkgCacheGenerator::Dynamic::toReMap@Base" 0.8.0 + (c++)"pkgCacheGenerator::NewGroup(pkgCache::GrpIterator&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgCacheGenerator::MergeList(pkgCacheGenerator::ListParser&, pkgCache::VerIterator*)@Base" 0.8.0 + (c++)"pkgCacheGenerator::pkgCacheGenerator(DynamicMMap*, OpProgress*)@Base" 0.8.0 + (c++)"pkgCacheGenerator::~pkgCacheGenerator()@Base" 0.8.0 + (c++)"pkgPackageManager::FixMissing()@Base" 0.8.0 + (c++)"pkgPackageManager::EarlyRemove(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgPackageManager::GetArchives(pkgAcquire*, pkgSourceList*, pkgRecords*)@Base" 0.8.0 + (c++)"pkgPackageManager::SmartRemove(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgPackageManager::ConfigureAll()@Base" 0.8.0 + (c++)"pkgPackageManager::ImmediateAdd(pkgCache::PkgIterator, bool, unsigned int const&)@Base" 0.8.0 + (c++)"pkgPackageManager::OrderInstall()@Base" 0.8.0 + (c++)"pkgPackageManager::DepAlwaysTrue(pkgCache::DepIterator)@Base" 0.8.0 + (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgPackageManager::CheckRConflicts(pkgCache::PkgIterator, pkgCache::DepIterator, char const*)@Base" 0.8.0 + (c++)"pkgPackageManager::CreateOrderList()@Base" 0.8.0 + (c++)"pkgPackageManager::DoInstallPostFork(int)@Base" 0.8.0 + (c++)"pkgPackageManager::Go(int)@Base" 0.8.0 + (c++)"pkgPackageManager::Reset()@Base" 0.8.0 + (c++)"pkgPackageManager::DepAdd(pkgOrderList&, pkgCache::PkgIterator, int)@Base" 0.8.0 + (c++)"pkgPackageManager::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0 + (c++)"pkgPackageManager::Install(pkgCache::PkgIterator, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgPackageManager::Configure(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgPackageManager::DoInstall(int)@Base" 0.8.0 + (c++)"pkgPackageManager::pkgPackageManager(pkgDepCache*)@Base" 0.8.0 + (c++)"pkgPackageManager::~pkgPackageManager()@Base" 0.8.0 + (c++)"debSrcRecordParser::BuildDepends(std::vector >&, bool const&, bool const&)@Base" 0.8.0 + (c++)"debSrcRecordParser::Jump(unsigned long const&)@Base" 0.8.0 + (c++)"debSrcRecordParser::Step()@Base" 0.8.0 + (c++)"debSrcRecordParser::AsStr()@Base" 0.8.0 + (c++)"debSrcRecordParser::Files(std::vector >&)@Base" 0.8.0 + (c++)"debSrcRecordParser::Offset()@Base" 0.8.0 + (c++)"debSrcRecordParser::Restart()@Base" 0.8.0 + (c++)"debSrcRecordParser::Binaries()@Base" 0.8.0 + (c++)"debSrcRecordParser::~debSrcRecordParser()@Base" 0.8.0 + (c++)"pkgProblemResolver::MakeScores()@Base" 0.8.0 + (c++)"pkgProblemResolver::ResolveByKeep()@Base" 0.8.0 + (c++)"pkgProblemResolver::InstallProtect()@Base" 0.8.0 + (c++)"pkgProblemResolver::This@Base" 0.8.0 + (c++)"pkgProblemResolver::Resolve(bool)@Base" 0.8.0 + (c++)"pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgProblemResolver::ScoreSort(void const*, void const*)@Base" 0.8.0 + (c++)"pkgProblemResolver::pkgProblemResolver(pkgDepCache*)@Base" 0.8.0 + (c++)"pkgProblemResolver::~pkgProblemResolver()@Base" 0.8.0 + (c++)"debVersioningSystem::CmpFragment(char const*, char const*, char const*, char const*)@Base" 0.8.0 + (c++)"debVersioningSystem::DoCmpVersion(char const*, char const*, char const*, char const*)@Base" 0.8.0 + (c++)"debVersioningSystem::DoCmpReleaseVer(char const*, char const*, char const*, char const*)@Base" 0.8.0 + (c++)"debVersioningSystem::UpstreamVersion(char const*)@Base" 0.8.0 + (c++)"debVersioningSystem::CheckDep(char const*, int, char const*)@Base" 0.8.0 + (c++)"debVersioningSystem::debVersioningSystem()@Base" 0.8.0 + (c++)"debVersioningSystem::~debVersioningSystem()@Base" 0.8.0 + (c++)"pkgUdevCdromDevices::Scan()@Base" 0.8.0 + (c++)"pkgUdevCdromDevices::Dlopen()@Base" 0.8.0 + (c++)"pkgUdevCdromDevices::pkgUdevCdromDevices()@Base" 0.8.0 + (c++)"pkgUdevCdromDevices::~pkgUdevCdromDevices()@Base" 0.8.0 + (c++)"pkgVersioningSystem::GlobalList@Base" 0.8.0 + (c++)"pkgVersioningSystem::GlobalListLen@Base" 0.8.0 + (c++)"pkgVersioningSystem::TestCompatibility(pkgVersioningSystem const&)@Base" 0.8.0 + (c++)"pkgVersioningSystem::GetVS(char const*)@Base" 0.8.0 + (c++)"pkgVersioningSystem::pkgVersioningSystem()@Base" 0.8.0 + (c++)"pkgVersioningSystem::~pkgVersioningSystem()@Base" 0.8.0 + (c++)"debTranslationsIndex::debTranslationsIndex(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, char const*)@Base" 0.8.0 + (c++)"debTranslationsIndex::~debTranslationsIndex()@Base" 0.8.0 + (c++)"APT::PackageSet::FromString(pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::PackageSet::FromCommandLine(pkgCacheFile&, char const**, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::PackageSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::PackageSet::FromName(pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::PackageSet::FromTask(pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::PackageSet::FromRegEx(pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::PackageSet::~PackageSet()@Base" 0.8.0 + (c++|optional=inherent)"APT::PackageSet::PackageSet(APT::PackageSet const&)@Base" 0.8.0 + (c++)"APT::VersionSet::FromString(pkgCacheFile&, std::basic_string, std::allocator >, APT::VersionSet::Version const&, APT::CacheSetHelper&, bool const&)@Base" 0.8.0 + (c++)"APT::VersionSet::FromPackage(pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::VersionSet::FromCommandLine(pkgCacheFile&, char const**, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::VersionSet::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::VersionSet::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::VersionSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0 + (c++)"APT::VersionSet::~VersionSet()@Base" 0.8.0 + (c++|optional=inline)"APT::VersionSet::insert(APT::VersionSet const&)@Base" 0.8.0 + (c++|optional=inline)"APT::VersionSet::insert(pkgCache::VerIterator const&)@Base" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::PackageNameMatchesRegEx(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::~PackageNameMatchesRegEx()@Base" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::GrpIterator const&)@Base" 0.8.0 + (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::Configuration::getLanguages(bool const&, bool const&, char const**)@Base" 0.8.0 + (c++)"APT::Configuration::getArchitectures(bool const&)@Base" 0.8.0 + (c++)"APT::Configuration::checkArchitecture(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"APT::Configuration::getCompressionTypes(bool const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindTask(pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindRegEx(pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindAllVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindPackage(pkgCacheFile&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindPkgName(pkgCacheFile&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::showTaskSelection(APT::PackageSet const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::showRegExSelection(APT::PackageSet const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindNewestVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::basic_string, std::allocator > const&, bool const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindCandInstVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindInstCandVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::canNotFindInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::CacheSetHelper::~CacheSetHelper()@Base" 0.8.0 + (c++)"URI::NoUserPassword(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"URI::CopyFrom(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"URI::SiteOnly(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"URI::~URI()@Base" 0.8.0 + (c++)"URI::operator std::basic_string, std::allocator >()@Base" 0.8.0 + (c++)"MMap::Map(FileFd&)@Base" 0.8.0 + (c++)"MMap::Sync(unsigned long, unsigned long)@Base" 0.8.0 + (c++)"MMap::Sync()@Base" 0.8.0 + (c++)"MMap::Close(bool)@Base" 0.8.0 + (c++)"MMap::MMap(FileFd&, unsigned long)@Base" 0.8.0 + (c++)"MMap::MMap(unsigned long)@Base" 0.8.0 + (c++)"MMap::~MMap()@Base" 0.8.0 + (c++)"FileFd::OpenDescriptor(int, FileFd::OpenMode, bool)@Base" 0.8.0 + (c++)"FileFd::Open(std::basic_string, std::allocator >, FileFd::OpenMode, unsigned long)@Base" 0.8.0 + (c++)"FileFd::Read(void*, unsigned long, unsigned long*)@Base" 0.8.0 + (c++)"FileFd::Seek(unsigned long)@Base" 0.8.0 + (c++)"FileFd::Size()@Base" 0.8.0 + (c++)"FileFd::Skip(unsigned long)@Base" 0.8.0 + (c++)"FileFd::Sync()@Base" 0.8.0 + (c++)"FileFd::Tell()@Base" 0.8.0 + (c++)"FileFd::Close()@Base" 0.8.0 + (c++)"FileFd::Write(void const*, unsigned long)@Base" 0.8.0 + (c++)"FileFd::Truncate(unsigned long)@Base" 0.8.0 + (c++|optional=inline)"FileFd::FileFd(std::basic_string, std::allocator >, FileFd::OpenMode, unsigned long)@Base" 0.8.0 + (c++)"FileFd::~FileFd()@Base" 0.8.0 + (c++)"Hashes::AddFD(int, unsigned long)@Base" 0.8.0 + (c++)"Vendor::CheckDist(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"Vendor::Vendor(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::vector >*)@Base" 0.8.0 + (c++)"Vendor::~Vendor()@Base" 0.8.0 + (c++)"DiffInfo::~DiffInfo()@Base" 0.8.0 + (c++)"pkgCache::CompTypeDeb(unsigned char)@Base" 0.8.0 + (c++)"pkgCache::DepIterator::GlobOr(pkgCache::DepIterator&, pkgCache::DepIterator&)@Base" 0.8.0 + (c++)"pkgCache::DepIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::DepIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::GrpIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::GrpIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::PkgIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::PkgIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::PrvIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::PrvIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::VerIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::VerIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::DescIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::DescIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::PkgFileIterator::IsOk()@Base" 0.8.0 + (c++)"pkgCache::PkgFileIterator::RelStr()@Base" 0.8.0 + (c++)"pkgCache::PkgFileIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::PkgFileIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::VerFileIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::VerFileIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::DescFileIterator::operator++(int)@Base" 0.8.0 + (c++)"pkgCache::DescFileIterator::operator++()@Base" 0.8.0 + (c++)"pkgCache::SingleArchFindPkg(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgCache::ReMap(bool const&)@Base" 0.8.0 + (c++)"pkgCache::Header::Header()@Base" 0.8.0 + (c++)"pkgCache::DepType(unsigned char)@Base" 0.8.0 + (c++)"pkgCache::FindGrp(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgCache::FindPkg(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgCache::FindPkg(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgCache::CompType(unsigned char)@Base" 0.8.0 + (c++)"pkgCache::Priority(unsigned char)@Base" 0.8.0 + (c++)"pkgCache::pkgCache(MMap*, bool)@Base" 0.8.0 + (c++)"pkgCache::~pkgCache()@Base" 0.8.0 + (c++)"pkgCdrom::DropRepeats(std::vector, std::allocator >, std::allocator, std::allocator > > >&, char const*)@Base" 0.8.0 + (c++)"pkgCdrom::FindPackages(std::basic_string, std::allocator >, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::basic_string, std::allocator >&, pkgCdromStatus*, unsigned int)@Base" 0.8.0 + (c++)"pkgCdrom::WriteDatabase(Configuration&)@Base" 0.8.0 + (c++)"pkgCdrom::DropBinaryArch(std::vector, std::allocator >, std::allocator, std::allocator > > >&)@Base" 0.8.0 + (c++)"pkgCdrom::WriteSourceList(std::basic_string, std::allocator >, std::vector, std::allocator >, std::allocator, std::allocator > > >&, bool)@Base" 0.8.0 + (c++)"pkgCdrom::ReduceSourcelist(std::basic_string, std::allocator >, std::vector, std::allocator >, std::allocator, std::allocator > > >&)@Base" 0.8.0 + (c++)"pkgCdrom::Add(pkgCdromStatus*)@Base" 0.8.0 + (c++)"pkgCdrom::Ident(std::basic_string, std::allocator >&, pkgCdromStatus*)@Base" 0.8.0 + (c++)"pkgCdrom::Score(std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"IndexCopy::CopyPackages(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::vector, std::allocator >, std::allocator, std::allocator > > >&, pkgCdromStatus*)@Base" 0.8.0 + (c++)"IndexCopy::ReconstructChop(unsigned long&, std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"IndexCopy::ReconstructPrefix(std::basic_string, std::allocator >&, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"IndexCopy::ConvertToSourceList(std::basic_string, std::allocator >, std::basic_string, std::allocator >&)@Base" 0.8.0 + (c++)"IndexCopy::ChopDirs(std::basic_string, std::allocator >, unsigned int)@Base" 0.8.0 + (c++)"IndexCopy::GrabFirst(std::basic_string, std::allocator >, std::basic_string, std::allocator >&, unsigned int)@Base" 0.8.0 + (c++)"IndexCopy::~IndexCopy()@Base" 0.8.0 + (c++|regex|optional=template)"^SPtrArray<[^ ]+>::~SPtrArray\(\)@Base$" 0.8.0 + (c++|optional=template)"SPtrArray::~SPtrArray()@Base" 0.8.0 + (c++)"SigVerify::CopyAndVerify(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::vector, std::allocator >, std::allocator, std::allocator > > >&, std::vector, std::allocator >, std::allocator, std::allocator > > >, std::vector, std::allocator >, std::allocator, std::allocator > > >)@Base" 0.8.0 + (c++)"SigVerify::CopyMetaIndex(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"SigVerify::Verify(std::basic_string, std::allocator >, std::basic_string, std::allocator >, indexRecords*)@Base" 0.8.0 + (c++)"SigVerify::RunGPGV(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, int const&, int*)@Base" 0.8.0 + (c++)"debSystem::Initialize(Configuration&)@Base" 0.8.0 + (c++)"debSystem::CheckUpdates()@Base" 0.8.0 + (c++)"debSystem::AddStatusFiles(std::vector >&)@Base" 0.8.0 + (c++)"debSystem::ArchiveSupported(char const*)@Base" 0.8.0 + (c++)"debSystem::Lock()@Base" 0.8.0 + (c++)"debSystem::Score(Configuration const&)@Base" 0.8.0 + (c++)"debSystem::UnLock(bool)@Base" 0.8.0 + (c++)"debSystem::debSystem()@Base" 0.8.0 + (c++)"debSystem::~debSystem()@Base" 0.8.0 + (c++)"metaIndex::~metaIndex()@Base" 0.8.0 + (c++)"pkgDPkgPM::SendV2Pkgs(_IO_FILE*)@Base" 0.8.0 + (c++)"pkgDPkgPM::DoTerminalPty(int)@Base" 0.8.0 + (c++)"pkgDPkgPM::DoDpkgStatusFd(int, int)@Base" 0.8.0 + (c++)"pkgDPkgPM::WriteHistoryTag(std::basic_string, std::allocator > const&, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgDPkgPM::WriteApportReport(char const*, char const*)@Base" 0.8.0 + (c++)"pkgDPkgPM::RunScriptsWithPkgs(char const*)@Base" 0.8.0 + (c++)"pkgDPkgPM::ProcessDpkgStatusLine(int, char*)@Base" 0.8.0 + (c++)"pkgDPkgPM::handleDisappearAction(std::basic_string, std::allocator > const&)@Base" 0.8.0 + (c++)"pkgDPkgPM::Go(int)@Base" 0.8.0 + (c++)"pkgDPkgPM::Reset()@Base" 0.8.0 + (c++)"pkgDPkgPM::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0 + (c++)"pkgDPkgPM::DoStdin(int)@Base" 0.8.0 + (c++)"pkgDPkgPM::Install(pkgCache::PkgIterator, std::basic_string, std::allocator >)@Base" 0.8.0 + (c++)"pkgDPkgPM::OpenLog()@Base" 0.8.0 + (c++)"pkgDPkgPM::CloseLog()@Base" 0.8.0 + (c++)"pkgDPkgPM::Configure(pkgCache::PkgIterator)@Base" 0.8.0 + (c++)"pkgDPkgPM::pkgDPkgPM(pkgDepCache*)@Base" 0.8.0 + (c++)"pkgDPkgPM::~pkgDPkgPM()@Base" 0.8.0 + (c++)"pkgPolicy::GetPriority(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgPolicy::InitDefaults()@Base" 0.8.0 + (c++)"pkgPolicy::IsImportantDep(pkgCache::DepIterator const&)@Base" 0.8.0 + (c++)"pkgPolicy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgPolicy::PkgPin::~PkgPin()@Base" 0.8.0 + (c++)"pkgPolicy::GetMatch(pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"pkgPolicy::CreatePin(pkgVersionMatch::MatchType, std::basic_string, std::allocator >, std::basic_string, std::allocator >, short)@Base" 0.8.0 + (c++)"pkgPolicy::pkgPolicy(pkgCache*)@Base" 0.8.0 + (c++)"pkgPolicy::~pkgPolicy()@Base" 0.8.0 + (c++)"pkgSystem::GlobalList@Base" 0.8.0 + (c++)"pkgSystem::Initialize(Configuration&)@Base" 0.8.0 + (c++)"pkgSystem::GlobalListLen@Base" 0.8.0 + (c++)"pkgSystem::Score(Configuration const&)@Base" 0.8.0 + (c++)"pkgSystem::GetSystem(char const*)@Base" 0.8.0 + (c++)"pkgSystem::pkgSystem()@Base" 0.8.0 + (c++)"pkgSystem::~pkgSystem()@Base" 0.8.0 + (c++)"HashString::VerifyFile(std::basic_string, std::allocator >) const@Base" 0.8.0 + (c++)"HashString::empty() const@Base" 0.8.0 + (c++)"HashString::toStr() const@Base" 0.8.0 + (c++|optional=inherent)"HashString::operator=(HashString const&)@Base" 0.8.0 + (c++)"CommandLine::FileSize() const@Base" 0.8.0 + (c++)"GlobalError::empty(GlobalError::MsgType const&) const@Base" 0.8.0 + (c++)"MD5SumValue::Value() const@Base" 0.8.0 + (c++)"MD5SumValue::operator==(MD5SumValue const&) const@Base" 0.8.0 + (c++)"SHA1SumValue::Value() const@Base" 0.8.0 + (c++)"SHA1SumValue::operator==(SHA1SumValue const&) const@Base" 0.8.0 + (c++)"debIFTypePkg::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0 + (c++)"debSLTypeDeb::CreateItem(std::vector >&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&) const@Base" 0.8.0 + (c++)"indexRecords::GetValidUntil() const@Base" 0.8.0 + (c++)"indexRecords::GetExpectedDist() const@Base" 0.8.0 + (c++)"indexRecords::Exists(std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"indexRecords::GetDist() const@Base" 0.8.0 + (c++)"indexRecords::CheckDist(std::basic_string, std::allocator >) const@Base" 0.8.0 + (c++)"pkgIndexFile::ArchiveURI(std::basic_string, std::allocator >) const@Base" 0.8.0 + (c++)"pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@Base" 0.8.0 + (c++)"pkgIndexFile::ArchiveInfo(pkgCache::VerIterator) const@Base" 0.8.0 + (c++)"pkgIndexFile::FindInCache(pkgCache&) const@Base" 0.8.0 + (c++)"pkgIndexFile::CreateSrcParser() const@Base" 0.8.0 + (c++)"pkgIndexFile::MergeFileProvides(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0 + (c++)"pkgIndexFile::MergeFileProvides(pkgCacheGenerator&, OpProgress&) const@Base" 0.8.0 + (c++)"pkgIndexFile::Type::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0 + (c++)"pkgIndexFile::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0 + (c++)"pkgIndexFile::Merge(pkgCacheGenerator&, OpProgress&) const@Base" 0.8.0 + (c++)"Configuration::FindVector(char const*) const@Base" 0.8.0 + (c++)"Configuration::MatchAgainstConfig::Match(char const*) const@Base" 0.8.0 + (c++)"Configuration::Find(char const*, char const*) const@Base" 0.8.0 + (c++)"Configuration::Item::FullTag(Configuration::Item const*) const@Base" 0.8.0 + (c++)"Configuration::FindB(char const*, bool const&) const@Base" 0.8.0 + (c++)"Configuration::FindI(char const*, int const&) const@Base" 0.8.0 + (c++)"Configuration::Exists(char const*) const@Base" 0.8.0 + (c++)"Configuration::FindAny(char const*, char const*) const@Base" 0.8.0 + (c++)"Configuration::FindDir(char const*, char const*) const@Base" 0.8.0 + (c++)"Configuration::FindFile(char const*, char const*) const@Base" 0.8.0 + (c++)"Configuration::ExistsAny(char const*) const@Base" 0.8.0 + (c++)"pkgSourceList::GetIndexes(pkgAcquire*, bool) const@Base" 0.8.0 + (c++)"pkgSourceList::Type::FixupURI(std::basic_string, std::allocator >&) const@Base" 0.8.0 + (c++)"pkgSourceList::Type::ParseLine(std::vector >&, char const*, unsigned long const&, std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"pkgSourceList::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@Base" 0.8.0 + (c++)"pkgTagSection::Find(char const*, char const*&, char const*&) const@Base" 0.8.0 + (c++)"pkgTagSection::Find(char const*, unsigned int&) const@Base" 0.8.0 + (c++)"pkgTagSection::FindI(char const*, long) const@Base" 0.8.0 + (c++)"pkgTagSection::FindS(char const*) const@Base" 0.8.0 + (c++)"pkgTagSection::FindULL(char const*, unsigned long long const&) const@Base" 0.8.0 + (c++)"pkgTagSection::FindFlag(char const*, unsigned long&, unsigned long) const@Base" 0.8.0 + (c++)"SHA256SumValue::Value() const@Base" 0.8.0 + (c++)"SHA256SumValue::operator==(SHA256SumValue const&) const@Base" 0.8.0 + (c++)"debStatusIndex::FindInCache(pkgCache&) const@Base" 0.8.0 + (c++)"debStatusIndex::HasPackages() const@Base" 0.8.0 + (c++)"debStatusIndex::Size() const@Base" 0.8.0 + (c++)"debStatusIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0 + (c++)"debStatusIndex::Exists() const@Base" 0.8.0 + (c++)"debStatusIndex::GetType() const@Base" 0.8.0 + (c++)"debStatusIndex::Describe(bool) const@Base" 0.8.0 + (c++)"debIFTypeStatus::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0 + (c++)"debReleaseIndex::ArchiveURI(std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"debReleaseIndex::GetIndexes(pkgAcquire*, bool const&) const@Base" 0.8.0 + (c++)"debReleaseIndex::MetaIndexURI(char const*) const@Base" 0.8.0 + (c++)"debReleaseIndex::MetaIndexFile(char const*) const@Base" 0.8.0 + (c++)"debReleaseIndex::MetaIndexInfo(char const*) const@Base" 0.8.0 + (c++)"debReleaseIndex::IndexURISuffix(char const*, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"debReleaseIndex::SourceIndexURI(char const*, std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"debReleaseIndex::ComputeIndexTargets() const@Base" 0.8.0 + (c++)"debReleaseIndex::SourceIndexURISuffix(char const*, std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"debReleaseIndex::Info(char const*, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"debReleaseIndex::IndexURI(char const*, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"debReleaseIndex::IsTrusted() const@Base" 0.8.0 + (c++)"debSLTypeDebSrc::CreateItem(std::vector >&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&) const@Base" 0.8.0 + (c++)"debSLTypeDebian::CreateItemInternal(std::vector >&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, bool const&, std::map, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > >, std::allocator, std::allocator > const, std::basic_string, std::allocator > > > > const&) const@Base" 0.8.0 + (c++)"debSourcesIndex::ArchiveURI(std::basic_string, std::allocator >) const@Base" 0.8.0 + (c++)"debSourcesIndex::SourceInfo(pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@Base" 0.8.0 + (c++)"debSourcesIndex::HasPackages() const@Base" 0.8.0 + (c++)"debSourcesIndex::CreateSrcParser() const@Base" 0.8.0 + (c++)"debSourcesIndex::Info(char const*) const@Base" 0.8.0 + (c++)"debSourcesIndex::Size() const@Base" 0.8.0 + (c++)"debSourcesIndex::Exists() const@Base" 0.8.0 + (c++)"debSourcesIndex::GetType() const@Base" 0.8.0 + (c++)"debSourcesIndex::Describe(bool) const@Base" 0.8.0 + (c++)"debSourcesIndex::IndexURI(char const*) const@Base" 0.8.0 + (c++)"debPackagesIndex::ArchiveURI(std::basic_string, std::allocator >) const@Base" 0.8.0 + (c++)"debPackagesIndex::ArchiveInfo(pkgCache::VerIterator) const@Base" 0.8.0 + (c++)"debPackagesIndex::FindInCache(pkgCache&) const@Base" 0.8.0 + (c++)"debPackagesIndex::HasPackages() const@Base" 0.8.0 + (c++)"debPackagesIndex::Info(char const*) const@Base" 0.8.0 + (c++)"debPackagesIndex::Size() const@Base" 0.8.0 + (c++)"debPackagesIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0 + (c++)"debPackagesIndex::Exists() const@Base" 0.8.0 + (c++)"debPackagesIndex::GetType() const@Base" 0.8.0 + (c++)"debPackagesIndex::Describe(bool) const@Base" 0.8.0 + (c++)"debPackagesIndex::IndexURI(char const*) const@Base" 0.8.0 + (c++)"debSrcRecordParser::Maintainer() const@Base" 0.8.0 + (c++)"debSrcRecordParser::Package() const@Base" 0.8.0 + (c++)"debSrcRecordParser::Section() const@Base" 0.8.0 + (c++)"debSrcRecordParser::Version() const@Base" 0.8.0 + (c++)"debTranslationsIndex::GetIndexes(pkgAcquire*) const@Base" 0.8.0 + (c++)"debTranslationsIndex::FindInCache(pkgCache&) const@Base" 0.8.0 + (c++)"debTranslationsIndex::HasPackages() const@Base" 0.8.0 + (c++)"debTranslationsIndex::Info(char const*) const@Base" 0.8.0 + (c++)"debTranslationsIndex::Size() const@Base" 0.8.0 + (c++)"debTranslationsIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0 + (c++)"debTranslationsIndex::Exists() const@Base" 0.8.0 + (c++)"debTranslationsIndex::GetType() const@Base" 0.8.0 + (c++)"debTranslationsIndex::Describe(bool) const@Base" 0.8.0 + (c++)"debTranslationsIndex::IndexURI(char const*) const@Base" 0.8.0 + (c++|optional=private)"debTranslationsIndex::IndexFile(char const*) const@Base" 0.8.0 + (c++)"Vendor::GetVendorID() const@Base" 0.8.0 + (c++)"Vendor::LookupFingerprint(std::basic_string, std::allocator >) const@Base" 0.8.0 + (c++|optional=inline)"pkgCache::Iterator::end() const@Base" 0.8.0 + (c++)"pkgCache::DepIterator::AllTargets() const@Base" 0.8.0 + (c++)"pkgCache::DepIterator::IsCritical() const@Base" 0.8.0 + (c++)"pkgCache::DepIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::DepIterator::SmartTargetPkg(pkgCache::PkgIterator&) const@Base" 0.8.0 + (c++)"pkgCache::GrpIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::GrpIterator::FindPreferredPkg(bool const&) const@Base" 0.8.0 + (c++)"pkgCache::GrpIterator::FindPkg(std::basic_string, std::allocator >) const@Base" 0.8.0 + (c++)"pkgCache::GrpIterator::NextPkg(pkgCache::PkgIterator const&) const@Base" 0.8.0 + (c++)"pkgCache::PkgIterator::CurVersion() const@Base" 0.8.0 + (c++)"pkgCache::PkgIterator::CandVersion() const@Base" 0.8.0 + (c++)"pkgCache::PkgIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::PkgIterator::State() const@Base" 0.8.0 + (c++)"pkgCache::PkgIterator::FullName(bool const&) const@Base" 0.8.0 + (c++)"pkgCache::PrvIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::CompareVer(pkgCache::VerIterator const&) const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::NewestFile() const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::Downloadable() const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::TranslatedDescription() const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::Pseudo() const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::RelStr() const@Base" 0.8.0 + (c++)"pkgCache::VerIterator::Automatic() const@Base" 0.8.0 + (c++)"pkgCache::DescIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::PkgFileIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::VerFileIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::DescFileIterator::OwnerPointer() const@Base" 0.8.0 + (c++)"pkgCache::sHash(char const*) const@Base" 0.8.0 + (c++)"pkgCache::sHash(std::basic_string, std::allocator > const&) const@Base" 0.8.0 + (c++)"pkgCache::Header::CheckSizes(pkgCache::Header&) const@Base" 0.8.0 + (c++)"debSystem::CreatePM(pkgDepCache*) const@Base" 0.8.0 + (c++)"debSystem::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@Base" 0.8.0 + (c++)"metaIndex::GetURI() const@Base" 0.8.0 + (c++)"metaIndex::GetDist() const@Base" 0.8.0 + (c++)"metaIndex::GetType() const@Base" 0.8.0 + (c++)"typeinfo for OpProgress@Base" 0.8.0 + (c++)"typeinfo for SourceCopy@Base" 0.8.0 + (c++)"typeinfo for pkgAcqFile@Base" 0.8.0 + (c++)"typeinfo for pkgAcquire@Base" 0.8.0 + (c++)"typeinfo for DynamicMMap@Base" 0.8.0 + (c++)"typeinfo for PackageCopy@Base" 0.8.0 + (c++)"typeinfo for pkgAcqIndex@Base" 0.8.0 + (c++)"typeinfo for pkgDepCache@Base" 0.8.0 + (c++)"typeinfo for pkgSimulate@Base" 0.8.0 + (c++)"typeinfo for debIFTypePkg@Base" 0.8.0 + (c++)"typeinfo for debIFTypeSrc@Base" 0.8.0 + (c++)"typeinfo for debSLTypeDeb@Base" 0.8.0 + (c++)"typeinfo for indexRecords@Base" 0.8.0 + (c++)"typeinfo for pkgAcqMethod@Base" 0.8.0 + (c++)"typeinfo for pkgCacheFile@Base" 0.8.0 + (c++)"typeinfo for pkgIndexFile@Base" 0.8.0 + (c++)"typeinfo for WeakPointable@Base" 0.8.0 + (c++)"typeinfo for debListParser@Base" 0.8.0 + (c++)"typeinfo for pkgAcqArchive@Base" 0.8.0 + (c++)"typeinfo for pkgAcqMetaSig@Base" 0.8.0 + (c++)"typeinfo for pkgTagSection@Base" 0.8.0 + (c++)"typeinfo for OpTextProgress@Base" 0.8.0 + (c++)"typeinfo for debIFTypeTrans@Base" 0.8.0 + (c++)"typeinfo for debStatusIndex@Base" 0.8.0 + (c++)"typeinfo for debIFTypeStatus@Base" 0.8.0 + (c++)"typeinfo for debRecordParser@Base" 0.8.0 + (c++)"typeinfo for debReleaseIndex@Base" 0.8.0 + (c++)"typeinfo for debSLTypeDebSrc@Base" 0.8.0 + (c++)"typeinfo for debSLTypeDebian@Base" 0.8.0 + (c++)"typeinfo for debSourcesIndex@Base" 0.8.0 + (c++)"typeinfo for pkgAcqDiffIndex@Base" 0.8.0 + (c++)"typeinfo for pkgAcqMetaIndex@Base" 0.8.0 + (c++)"typeinfo for debPackagesIndex@Base" 0.8.0 + (c++)"typeinfo for pkgAcqIndexDiffs@Base" 0.8.0 + (c++)"typeinfo for pkgAcqIndexTrans@Base" 0.8.0 + (c++)"typeinfo for pkgAcquireStatus@Base" 0.8.0 + (c++)"typeinfo for PreferenceSection@Base" 0.8.0 + (c++)"typeinfo for pkgPackageManager@Base" 0.8.0 + (c++)"typeinfo for debSrcRecordParser@Base" 0.8.0 + (c++)"typeinfo for debVersioningSystem@Base" 0.8.0 + (c++)"typeinfo for pkgUdevCdromDevices@Base" 0.8.0 + (c++)"typeinfo for pkgVersioningSystem@Base" 0.8.0 + (c++)"typeinfo for debTranslationsIndex@Base" 0.8.0 + (c++)"typeinfo for MMap@Base" 0.8.0 + (c++)"typeinfo for FileFd@Base" 0.8.0 + (c++)"typeinfo for Vendor@Base" 0.8.0 + (c++)"typeinfo for pkgCache@Base" 0.8.0 + (c++)"typeinfo for IndexCopy@Base" 0.8.0 + (c++)"typeinfo for debSystem@Base" 0.8.0 + (c++)"typeinfo for metaIndex@Base" 0.8.0 + (c++)"typeinfo for pkgDPkgPM@Base" 0.8.0 + (c++)"typeinfo for pkgPolicy@Base" 0.8.0 + (c++)"typeinfo for pkgSystem@Base" 0.8.0 + (c++)"typeinfo for pkgAcquire::Item@Base" 0.8.0 + (c++)"typeinfo for pkgRecords::Parser@Base" 0.8.0 + (c++)"typeinfo for pkgDepCache::InRootSetFunc@Base" 0.8.0 + (c++)"typeinfo for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0 + (c++)"typeinfo for pkgDepCache::Policy@Base" 0.8.0 + (c++)"typeinfo for pkgSimulate::Policy@Base" 0.8.0 + (c++)"typeinfo for pkgIndexFile::Type@Base" 0.8.0 + (c++)"typeinfo for Configuration::MatchAgainstConfig@Base" 0.8.0 + (c++)"typeinfo for pkgSourceList::Type@Base" 0.8.0 + (c++)"typeinfo for pkgSrcRecords::Parser@Base" 0.8.0 + (c++)"typeinfo for pkgCacheGenerator::ListParser@Base" 0.8.0 + (c++)"typeinfo for APT::CacheSetHelper@Base" 0.8.0 + (c++)"typeinfo for pkgCache::DepIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::GrpIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::PkgIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::PrvIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::VerIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::DescIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::PkgFileIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::VerFileIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::DescFileIterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo for pkgCache::Namespace@Base" 0.8.0 + (c++)"typeinfo name for OpProgress@Base" 0.8.0 + (c++)"typeinfo name for SourceCopy@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqFile@Base" 0.8.0 + (c++)"typeinfo name for pkgAcquire@Base" 0.8.0 + (c++)"typeinfo name for DynamicMMap@Base" 0.8.0 + (c++)"typeinfo name for PackageCopy@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqIndex@Base" 0.8.0 + (c++)"typeinfo name for pkgDepCache@Base" 0.8.0 + (c++)"typeinfo name for pkgSimulate@Base" 0.8.0 + (c++)"typeinfo name for debIFTypePkg@Base" 0.8.0 + (c++)"typeinfo name for debIFTypeSrc@Base" 0.8.0 + (c++)"typeinfo name for debSLTypeDeb@Base" 0.8.0 + (c++)"typeinfo name for indexRecords@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqMethod@Base" 0.8.0 + (c++)"typeinfo name for pkgCacheFile@Base" 0.8.0 + (c++)"typeinfo name for pkgIndexFile@Base" 0.8.0 + (c++)"typeinfo name for WeakPointable@Base" 0.8.0 + (c++)"typeinfo name for debListParser@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqArchive@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqMetaSig@Base" 0.8.0 + (c++)"typeinfo name for pkgTagSection@Base" 0.8.0 + (c++)"typeinfo name for OpTextProgress@Base" 0.8.0 + (c++)"typeinfo name for debIFTypeTrans@Base" 0.8.0 + (c++)"typeinfo name for debStatusIndex@Base" 0.8.0 + (c++)"typeinfo name for debIFTypeStatus@Base" 0.8.0 + (c++)"typeinfo name for debRecordParser@Base" 0.8.0 + (c++)"typeinfo name for debReleaseIndex@Base" 0.8.0 + (c++)"typeinfo name for debSLTypeDebSrc@Base" 0.8.0 + (c++)"typeinfo name for debSLTypeDebian@Base" 0.8.0 + (c++)"typeinfo name for debSourcesIndex@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqDiffIndex@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqMetaIndex@Base" 0.8.0 + (c++)"typeinfo name for debPackagesIndex@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqIndexDiffs@Base" 0.8.0 + (c++)"typeinfo name for pkgAcqIndexTrans@Base" 0.8.0 + (c++)"typeinfo name for pkgAcquireStatus@Base" 0.8.0 + (c++)"typeinfo name for PreferenceSection@Base" 0.8.0 + (c++)"typeinfo name for pkgPackageManager@Base" 0.8.0 + (c++)"typeinfo name for debSrcRecordParser@Base" 0.8.0 + (c++)"typeinfo name for debVersioningSystem@Base" 0.8.0 + (c++)"typeinfo name for pkgUdevCdromDevices@Base" 0.8.0 + (c++)"typeinfo name for pkgVersioningSystem@Base" 0.8.0 + (c++)"typeinfo name for debTranslationsIndex@Base" 0.8.0 + (c++)"typeinfo name for MMap@Base" 0.8.0 + (c++)"typeinfo name for FileFd@Base" 0.8.0 + (c++)"typeinfo name for Vendor@Base" 0.8.0 + (c++)"typeinfo name for pkgCache@Base" 0.8.0 + (c++)"typeinfo name for IndexCopy@Base" 0.8.0 + (c++)"typeinfo name for debSystem@Base" 0.8.0 + (c++)"typeinfo name for metaIndex@Base" 0.8.0 + (c++)"typeinfo name for pkgDPkgPM@Base" 0.8.0 + (c++)"typeinfo name for pkgPolicy@Base" 0.8.0 + (c++)"typeinfo name for pkgSystem@Base" 0.8.0 + (c++)"typeinfo name for pkgAcquire::Item@Base" 0.8.0 + (c++)"typeinfo name for pkgRecords::Parser@Base" 0.8.0 + (c++)"typeinfo name for pkgDepCache::InRootSetFunc@Base" 0.8.0 + (c++)"typeinfo name for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0 + (c++)"typeinfo name for pkgDepCache::Policy@Base" 0.8.0 + (c++)"typeinfo name for pkgSimulate::Policy@Base" 0.8.0 + (c++)"typeinfo name for pkgIndexFile::Type@Base" 0.8.0 + (c++)"typeinfo name for Configuration::MatchAgainstConfig@Base" 0.8.0 + (c++)"typeinfo name for pkgSourceList::Type@Base" 0.8.0 + (c++)"typeinfo name for pkgSrcRecords::Parser@Base" 0.8.0 + (c++)"typeinfo name for pkgCacheGenerator::ListParser@Base" 0.8.0 + (c++)"typeinfo name for APT::CacheSetHelper@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::DepIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::GrpIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::PkgIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::PrvIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::VerIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::DescIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::PkgFileIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::VerFileIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::DescFileIterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 + (c++)"typeinfo name for pkgCache::Namespace@Base" 0.8.0 + (c++)"vtable for OpProgress@Base" 0.8.0 + (c++)"vtable for SourceCopy@Base" 0.8.0 + (c++)"vtable for pkgAcqFile@Base" 0.8.0 + (c++)"vtable for pkgAcquire@Base" 0.8.0 + (c++)"vtable for DynamicMMap@Base" 0.8.0 + (c++)"vtable for PackageCopy@Base" 0.8.0 + (c++)"vtable for pkgAcqIndex@Base" 0.8.0 + (c++)"vtable for pkgDepCache@Base" 0.8.0 + (c++)"vtable for pkgSimulate@Base" 0.8.0 + (c++)"vtable for debIFTypePkg@Base" 0.8.0 + (c++)"vtable for debIFTypeSrc@Base" 0.8.0 + (c++)"vtable for debSLTypeDeb@Base" 0.8.0 + (c++)"vtable for indexRecords@Base" 0.8.0 + (c++)"vtable for pkgAcqMethod@Base" 0.8.0 + (c++)"vtable for pkgCacheFile@Base" 0.8.0 + (c++)"vtable for pkgIndexFile@Base" 0.8.0 + (c++)"vtable for debListParser@Base" 0.8.0 + (c++)"vtable for pkgAcqArchive@Base" 0.8.0 + (c++)"vtable for pkgAcqMetaSig@Base" 0.8.0 + (c++)"vtable for pkgTagSection@Base" 0.8.0 + (c++)"vtable for OpTextProgress@Base" 0.8.0 + (c++)"vtable for debIFTypeTrans@Base" 0.8.0 + (c++)"vtable for debStatusIndex@Base" 0.8.0 + (c++)"vtable for debIFTypeStatus@Base" 0.8.0 + (c++)"vtable for debRecordParser@Base" 0.8.0 + (c++)"vtable for debReleaseIndex@Base" 0.8.0 + (c++)"vtable for debSLTypeDebSrc@Base" 0.8.0 + (c++)"vtable for debSLTypeDebian@Base" 0.8.0 + (c++)"vtable for debSourcesIndex@Base" 0.8.0 + (c++)"vtable for pkgAcqDiffIndex@Base" 0.8.0 + (c++)"vtable for pkgAcqMetaIndex@Base" 0.8.0 + (c++)"vtable for debPackagesIndex@Base" 0.8.0 + (c++)"vtable for pkgAcqIndexDiffs@Base" 0.8.0 + (c++)"vtable for pkgAcqIndexTrans@Base" 0.8.0 + (c++)"vtable for pkgAcquireStatus@Base" 0.8.0 + (c++)"vtable for PreferenceSection@Base" 0.8.0 + (c++)"vtable for pkgPackageManager@Base" 0.8.0 + (c++)"vtable for debSrcRecordParser@Base" 0.8.0 + (c++)"vtable for debVersioningSystem@Base" 0.8.0 + (c++)"vtable for pkgUdevCdromDevices@Base" 0.8.0 + (c++)"vtable for pkgVersioningSystem@Base" 0.8.0 + (c++)"vtable for debTranslationsIndex@Base" 0.8.0 + (c++)"vtable for MMap@Base" 0.8.0 + (c++)"vtable for FileFd@Base" 0.8.0 + (c++)"vtable for Vendor@Base" 0.8.0 + (c++)"vtable for pkgCache@Base" 0.8.0 + (c++)"vtable for IndexCopy@Base" 0.8.0 + (c++)"vtable for debSystem@Base" 0.8.0 + (c++)"vtable for metaIndex@Base" 0.8.0 + (c++)"vtable for pkgDPkgPM@Base" 0.8.0 + (c++)"vtable for pkgPolicy@Base" 0.8.0 + (c++)"vtable for pkgSystem@Base" 0.8.0 + (c++)"vtable for pkgAcquire::Item@Base" 0.8.0 + (c++)"vtable for pkgRecords::Parser@Base" 0.8.0 + (c++)"vtable for pkgDepCache::InRootSetFunc@Base" 0.8.0 + (c++)"vtable for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0 + (c++)"vtable for pkgDepCache::Policy@Base" 0.8.0 + (c++)"vtable for pkgSimulate::Policy@Base" 0.8.0 + (c++)"vtable for pkgIndexFile::Type@Base" 0.8.0 + (c++)"vtable for Configuration::MatchAgainstConfig@Base" 0.8.0 + (c++)"vtable for pkgSourceList::Type@Base" 0.8.0 + (c++)"vtable for pkgSrcRecords::Parser@Base" 0.8.0 + (c++)"vtable for pkgCacheGenerator::ListParser@Base" 0.8.0 + (c++)"vtable for APT::CacheSetHelper@Base" 0.8.0 + (c++)"vtable for pkgCache::DepIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::GrpIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::PkgIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::PrvIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::VerIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::DescIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::PkgFileIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::VerFileIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::DescFileIterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"vtable for pkgCache::Iterator@Base" 0.8.0 + (c++)"non-virtual thunk to pkgDepCache::DefaultRootSetFunc::~DefaultRootSetFunc()@Base" 0.8.0 + (c++)"operator<<(std::basic_ostream >&, pkgCache::DepIterator)@Base" 0.8.0 + (c++)"operator<<(std::basic_ostream >&, pkgCache::PkgIterator)@Base" 0.8.0 + _apt_DebSrcType@Base 0.8.0 + _apt_DebType@Base 0.8.0 + _config@Base 0.8.0 + _system@Base 0.8.0 + debSys@Base 0.8.0 + debVS@Base 0.8.0 + pkgLibVersion@Base 0.8.0 + pkgVersion@Base 0.8.0 +### try to ignore std:: template instances + (c++|regex|optional=std)"^(void |)std::[^ ]+<.+ >::(_|~).+\(.*\)@Base$" 0.8.0 + (c++|regex|optional=std)"^pkgCache::(Dep|Pkg|Ver|Grp|Prv|Desc|PkgFile)Iterator\*\* std::_.+@Base$" 0.8.0 + (c++|regex|optional=std)"^std::[^ ]+<.+ >::(append|insert|reserve|operator[^ ]+)\(.*\)@Base$" 0.8.0 + (c++|regex|optional=std)"^(void |DiffInfo\* |)std::_.*@Base$" 0.8.0 + (c++|regex|optional=std)"^(bool|void) std::(operator|sort_heap|make_heap)[^ ]+<.+ >\(.+\)@Base$" 0.8.0 + (c++|regex|optional=std)"^std::reverse_iterator<.+ > std::__.+@Base$" 0.8.0 + (c++|regex|optional=std)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0 + (c++|regex|optional=std)"^char\* std::[^ ]+<.+ >::_.+@Base$" 0.8.0 + (c++|regex|optional=std)"^__gnu_cxx::__[^ ]+<.*@Base$" 0.8.0 + (c++|regex|optional=std)"^typeinfo name for std::iterator<.*>@Base$" 0.8.0 + (c++|regex|optional=std)"^typeinfo for std::iterator<.*>@Base$" 0.8.0 + (c++|regex|optional=std)"^std::vector<.+ >::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@Base$" 0.8.0 + (c++|regex|optional=std)"^std::basic_string, std::allocator >::basic_string\(.+\)@Base$" 0.8.0 + (c++|regex|optional=std)"^std::less<[^ ]+>::operator\(\)\(.+\) const@Base$" 0.8.0 +### + (c++)"Configuration::MatchAgainstConfig::clearPatterns()@Base" 0.8.1 1 + (c++)"CreateAPTDirectoryIfNeeded(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.2 1 + (c++)"FileFd::FileSize()@Base" 0.8.8 1 +### upcoming symbols + (c++)"Base256ToNum(char const*, unsigned long&, unsigned int)@Base" 0.8.11 1 + (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::basic_string, std::allocator > const&, std::list, std::allocator > >&)@Base" 0.8.11 1 + (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::basic_string, std::allocator > const&)@Base" 0.8.11 1 + (c++)"RealFileExists(std::basic_string, std::allocator >)@Base" 0.8.11 1 diff --git a/debian/changelog b/debian/changelog index 8dcdc93ff..11768794d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,7 @@ apt (0.8.11+wheezy) unstable; urgency=low * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) - depend on debhelper 7 to raise compat level + - depend on dpkg-dev (>= 1.15.8) to have c++ symbol mangling * apt-pkg/contrib/fileutl.cc: - add a RealFileExists method and check that your configuration files are real files to avoid endless loops if not (Closes: #604401) @@ -42,10 +43,14 @@ apt (0.8.11+wheezy) unstable; urgency=low - remove obsolete references to non-us (Closes: #594495) * debian/rules: - use -- instead of deprecated -u for dh_gencontrol + - remove shlibs.local creation and usage + - show differences in the symbol files, but never fail * pre-build.sh: - remove as it is not needed for a working 'bzr bd' + * debian/{apt,apt-utils}.symbols: + - ship experimental unmangled c++ symbol files - -- David Kalnischkies Fri, 14 Jan 2011 14:40:35 +0100 + -- David Kalnischkies Sat, 15 Jan 2011 02:42:18 +0100 apt (0.8.10) unstable; urgency=low diff --git a/debian/control b/debian/control index a079ad19c..46d19b246 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: Michael Vogt , Otavio Salvador , Christian Perrier , Daniel Burrows , Luca Bruno , Julian Andres Klode Standards-Version: 3.9.0 -Build-Depends: debhelper (>= 7), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen +Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 7), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen Build-Conflicts: autoconf2.13, automake1.4 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ Vcs-Browser: http://bzr.debian.org/loggerhead/apt/debian-sid/ diff --git a/debian/rules b/debian/rules index fbd309e97..fd872b4ce 100755 --- a/debian/rules +++ b/debian/rules @@ -74,18 +74,8 @@ include buildlib/libversion.mak LIBAPTPKG_PROVIDE=libapt-pkg$(LIBAPTPKG_MAJOR) LIBAPTINST_PROVIDE=libapt-inst$(LIBAPTINST_MAJOR) -debian/shlibs.local: apt-pkg/makefile - # We have 3 shlibs.local files: One for 'apt', one for 'apt-utils' and - # one for the rest of the packages. This ensures that each package gets - # the right overrides… - rm -rf $@ $@.apt $@.apt-utils - echo "libapt-pkg $(LIBAPTPKG_MAJOR)" > $@.apt - - echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils - echo "libapt-inst $(LIBAPTINST_MAJOR)" >> $@.apt-utils - - echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@ - echo "libapt-inst $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@ +# do not fail as we are just experimenting with symbol files for now +export DPKG_GENSYMBOLS_CHECK_LEVEL=0 build: build/build-stamp build-doc: build/build-doc-stamp @@ -120,12 +110,9 @@ clean: [ ! -f Makefile ] || $(MAKE) clean distclean rm -rf build - # Add here commands to clean up after the build process. - dh_clean debian/copyright debian/shlibs.local debian/shlibs.local.apt debian/shlibs.local.apt-utils - binary-indep: apt-doc libapt-pkg-doc # Build architecture-independent files here. -libapt-pkg-doc: build-doc debian/shlibs.local +libapt-pkg-doc: build-doc dh_testdir -p$@ dh_testroot -p$@ dh_prep -p$@ @@ -177,7 +164,7 @@ apt-doc: build-doc binary-arch: apt libapt-pkg-dev apt-utils apt-transport-https apt_MANPAGES = apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secure apt apt.conf apt_preferences sources.list -apt: build build-doc debian/shlibs.local +apt: build build-doc dh_testdir -p$@ dh_testroot -p$@ dh_prep -p$@ @@ -226,14 +213,14 @@ apt: build build-doc debian/shlibs.local dh_strip -p$@ dh_compress -p$@ dh_fixperms -p$@ - dh_makeshlibs -p$@ --major=$(LIBAPTPKG_MAJOR) --version-info='$(LIBAPTPKG_PROVIDE)' + dh_makeshlibs -p$@ dh_installdeb -p$@ - dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt + dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib dh_gencontrol -p$@ -- -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) dh_md5sums -p$@ dh_builddeb -p$@ -libapt-pkg-dev: build debian/shlibs.local +libapt-pkg-dev: build dh_testdir -p$@ dh_testroot -p$@ dh_prep -p$@ @@ -258,7 +245,7 @@ libapt-pkg-dev: build debian/shlibs.local dh_builddeb -p$@ apt-utils_MANPAGES = apt-sortpkgs apt-ftparchive apt-extracttemplates -apt-utils: build debian/shlibs.local +apt-utils: build dh_testdir -p$@ dh_testroot -p$@ dh_prep -p$@ @@ -279,14 +266,14 @@ apt-utils: build debian/shlibs.local dh_strip -p$@ dh_compress -p$@ dh_fixperms -p$@ - dh_makeshlibs -p$@ --major=$(LIBAPTINST_MAJOR) --version-info='$(LIBAPTINST_PROVIDE)' + dh_makeshlibs -p$@ dh_installdeb -p$@ - dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils + dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib dh_gencontrol -p$@ -- -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE) dh_md5sums -p$@ dh_builddeb -p$@ -apt-transport-https: build debian/shlibs.local libapt-pkg-dev +apt-transport-https: build libapt-pkg-dev dh_testdir -p$@ dh_testroot -p$@ dh_prep -p$@ @@ -321,4 +308,4 @@ really-clean: clean rm -f l33ch-stamp binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary debian/shlibs.local +.PHONY: build clean binary-indep binary-arch binary -- cgit v1.2.3 From 8e82a3e9b1170811fe09e7e559a8bbe12ecbef67 Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Sat, 15 Jan 2011 07:47:24 +0100 Subject: Fix encoding for Slovenian translation. PO file switched to UTF-8. Closes: #609957 --- debian/changelog | 7 ++++++ po/sl.po | 73 ++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 51 insertions(+), 29 deletions(-) diff --git a/debian/changelog b/debian/changelog index df6edcebf..6ddb0fc51 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.8.12) UNRELEASED; urgency=low + + * Fix encoding for Slovenian translation. PO file switched + to UTF-8. Closes: #609957 + + -- Christian Perrier Sat, 15 Jan 2011 07:46:34 +0100 + apt (0.8.11) unstable; urgency=low [ Julian Andres Klode ] diff --git a/po/sl.po b/po/sl.po index 8fcad1f86..d46cab3ea 100644 --- a/po/sl.po +++ b/po/sl.po @@ -6,11 +6,11 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-09-28 17:23+0200\n" "PO-Revision-Date: 2010-09-05 20:35+0100\n" -"Last-Translator: Andrej ®nidarąič \n" +"Last-Translator: Andrej Znidarąič \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" @@ -280,8 +280,7 @@ msgstr "" "Moľnosti:\n" " -h To besedilo pomoči.\n" " -c=? Prebere podano datoteko z nastavitvami\n" -" -o=? Nastavi poljubno nastavitveno moľnost, na primer. -o dir::cache=/" -"tmp\n" +" -o=? Nastavi poljubno nastavitveno moľnost, na primer. -o dir::cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:98 #, c-format @@ -310,8 +309,7 @@ msgstr "" " -h To besedilo pomoči\n" " -t Nastavi začasno mapo\n" " -c=? Prebere podano datoteko z nastavitvami\n" -" -o=? Nastavi poljubno nastavitveno moľnost, na primer. -o dir::cache=/" -"tmp\n" +" -o=? Nastavi poljubno nastavitveno moľnost, na primer. -o dir::cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1171 #, c-format @@ -450,7 +448,8 @@ msgid "" "DB format is invalid. If you upgraded from an older version of apt, please " "remove and re-create the database." msgstr "" -"Oblika podatkovne zbirke je neveljavna. V kolikor ste nadgradili s starejąe različice apt, podatkovno zbirko odstranite in jo znova ustvarite." +"Oblika podatkovne zbirke je neveljavna. V kolikor ste nadgradili s starejąe " +"različice apt, podatkovno zbirko odstranite in jo znova ustvarite." #: ftparchive/cachedb.cc:77 #, c-format @@ -910,7 +909,9 @@ msgstr "Notranja napaka, Urejanje se ni končalo" #: cmdline/apt-get.cc:1104 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.debian.org" +msgstr "" +"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 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -1069,7 +1070,8 @@ msgid_plural "" "required:" msgstr[0] "Naslednji paketi so bili samodejno nameąčeni in niso več zahtevani:" msgstr[1] "Naslednji paket je bil samodejno nameąčen in ni več zahtevan:" -msgstr[2] "Naslednja paketa sta bila samodejno nameąčena in nista več zahtevana:" +msgstr[2] "" +"Naslednja paketa sta bila samodejno nameąčena in nista več zahtevana:" msgstr[3] "Naslednji paketi so bili samodejno nameąčeni in niso več zahtevani:" #: cmdline/apt-get.cc:1670 @@ -1119,14 +1121,15 @@ msgstr "Notranja napaka zaradi AllUpgrade." #: cmdline/apt-get.cc:1792 msgid "You might want to run 'apt-get -f install' to correct these:" -msgstr "" -"Poskusite zagnati 'apt-get -f install', če ľelite popraviti naslednje:" +msgstr "Poskusite zagnati 'apt-get -f install', če ľelite popraviti naslednje:" #: cmdline/apt-get.cc:1795 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." -msgstr "Nereąene odvisnosti. Poskusite 'apt-get -f install' brez paketov (ali navedite reąitev)." +msgstr "" +"Nereąene odvisnosti. Poskusite 'apt-get -f install' brez paketov (ali " +"navedite reąitev)." #: cmdline/apt-get.cc:1807 msgid "" @@ -1308,7 +1311,8 @@ msgstr "" #: cmdline/apt-get.cc:2684 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" -msgstr "Ni mogoče zadostiti %s odvisnosti za %s. Nameąčen paket %s je preveč nov" +msgstr "" +"Ni mogoče zadostiti %s odvisnosti za %s. Nameąčen paket %s je preveč nov" #: cmdline/apt-get.cc:2711 #, c-format @@ -1482,7 +1486,8 @@ msgid "" msgstr "" "Uporaba: apt-sortpkgs [moľnosti] dat1 [dat2 ...]\n" "\n" -"apt-sortpkgs je preprosto orodje za razvrąčanje paketnih datotek. Moľnost -s\n" +"apt-sortpkgs je preprosto orodje za razvrąčanje paketnih datotek. Moľnost -" +"s\n" "določa vrsto datoteke.\n" "\n" "Moľnosti:\n" @@ -1506,7 +1511,8 @@ msgstr "Ali ľelite izbrisati vse predhodno prejete datoteke .deb?" #: dselect/install:101 msgid "Some errors occurred while unpacking. Packages that were installed" -msgstr "Med raząirajanjem je priąlo do nekaterih napak. Paketi, ki so bili nameąčeni" +msgstr "" +"Med raząirajanjem je priąlo do nekaterih napak. Paketi, ki so bili nameąčeni" #: dselect/install:102 msgid "will be configured. This may result in duplicate errors" @@ -1887,7 +1893,9 @@ msgstr "PASS je spodletel, streľnik je odgovoril: %s" msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." -msgstr "Naveden je bil posredniąki streľnik, ne pa tudi prijavni skript. Acquire::ftp::ProxyLogin je prazen." +msgstr "" +"Naveden je bil posredniąki streľnik, ne pa tudi prijavni skript. Acquire::" +"ftp::ProxyLogin je prazen." #: methods/ftp.cc:271 #, c-format @@ -2589,8 +2597,7 @@ msgstr "" #: apt-pkg/sourcelist.cc:95 #, c-format msgid "Malformed line %lu in source list %s ([option] too short)" -msgstr "" -"Slabo oblikovana vrstica %lu na seznamu virov %s ([moľnost] prekratka)" +msgstr "Slabo oblikovana vrstica %lu na seznamu virov %s ([moľnost] prekratka)" #: apt-pkg/sourcelist.cc:106 #, c-format @@ -2660,7 +2667,9 @@ msgstr "Vrsta '%s' v vrstici %u na seznamu virov %s ni znana " msgid "" "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " "under APT::Immediate-Configure for details. (%d)" -msgstr "Ni mogoče izvesti takojąnje nastavitve na '%s'. Oglejte si man5 apt.conf pod APT::Takojąnja-nastavitev za podrobnosti. (%d)" +msgstr "" +"Ni mogoče izvesti takojąnje nastavitve na '%s'. Oglejte si man5 apt.conf pod " +"APT::Takojąnja-nastavitev za podrobnosti. (%d)" #: apt-pkg/packagemanager.cc:452 #, c-format @@ -2678,8 +2687,8 @@ msgid "" "Could not perform immediate configuration on already unpacked '%s'. Please " "see man 5 apt.conf under APT::Immediate-Configure for details." msgstr "" -"Ni mogoče izvesti takojąnje nastavitve ľe razpakiranega '%s'. Oglejte si man 5 apt.conf pod APT::" -"Takojąnja-Nastavitev za podrobnosti" +"Ni mogoče izvesti takojąnje nastavitve ľe razpakiranega '%s'. Oglejte si man " +"5 apt.conf pod APT::Takojąnja-Nastavitev za podrobnosti" #: apt-pkg/pkgrecords.cc:32 #, c-format @@ -2696,7 +2705,9 @@ msgstr "Paket %s mora biti znova nameąčen, vendar ni mogoče najti arhiva zanj msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." -msgstr "Napaka. pkgProblemResolver::Napake pri razreąitvi, ki so jih morda povzročili zadrľani paketi." +msgstr "" +"Napaka. pkgProblemResolver::Napake pri razreąitvi, ki so jih morda " +"povzročili zadrľani paketi." #: apt-pkg/algorithms.cc:1212 msgid "Unable to correct problems, you have held broken packages." @@ -2921,8 +2932,8 @@ msgid "" "A error occurred during the signature verification. The repository is not " "updated and the previous index files will be used. GPG error: %s: %s\n" msgstr "" -"Med preverjanjem podpisa je priąlo do napake. Skladiąče ni posodobljeno. Uporabljene bodo predhodne datoteke kazala . Napaka GPG: " -"%s: %s\n" +"Med preverjanjem podpisa je priąlo do napake. Skladiąče ni posodobljeno. " +"Uporabljene bodo predhodne datoteke kazala . Napaka GPG: %s: %s\n" #: apt-pkg/acquire-item.cc:1337 #, c-format @@ -3148,13 +3159,15 @@ msgid "" "Can't select installed nor candidate version from package '%s' as it has " "neither of them" msgstr "" -"Ni mogoče izbrati nameąčene različice ali različice kandidata iz paketa '%s', saj nima nobenega od " -"njiju" +"Ni mogoče izbrati nameąčene različice ali različice kandidata iz paketa " +"'%s', saj nima nobenega od njiju" #: apt-pkg/cacheset.cc:491 #, c-format msgid "Can't select newest version from package '%s' as it is purely virtual" -msgstr "Ni mogoče izbrati najnovejąe različice iz paketa '%s', saj je popolnoma navidezen " +msgstr "" +"Ni mogoče izbrati najnovejąe različice iz paketa '%s', saj je popolnoma " +"navidezen " #: apt-pkg/cacheset.cc:499 #, c-format @@ -3259,7 +3272,8 @@ msgstr "Poganjanje dpkg" #: apt-pkg/deb/dpkgpm.cc:1276 msgid "No apport report written because MaxReports is reached already" -msgstr "Poročilo apport ni bilo napisano, ker je bilo ątevilo MaxReports ľe doseľeno" +msgstr "" +"Poročilo apport ni bilo napisano, ker je bilo ątevilo MaxReports ľe doseľeno" #. check if its not a follow up error #: apt-pkg/deb/dpkgpm.cc:1281 @@ -3302,7 +3316,8 @@ msgstr "" msgid "" "Unable to lock the administration directory (%s), is another process using " "it?" -msgstr "Skrbniąke mape (%s) ni mogoče zakleniti. Jo morda uporablja drugo opravilo?" +msgstr "" +"Skrbniąke mape (%s) ni mogoče zakleniti. Jo morda uporablja drugo opravilo?" #: apt-pkg/deb/debsystem.cc:72 #, c-format -- cgit v1.2.3 From caffd4807f612e931ecca8f7d9b0c0c10de27ce6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 15 Jan 2011 20:28:03 +0100 Subject: * methods/rred.cc: - operate optional on gzip compressed pdiffs * apt-pkg/acquire-item.cc: - don't uncompress downloaded pdiff files before feeding it to rred --- apt-pkg/acquire-item.cc | 19 +-------------- apt-pkg/acquire-item.h | 2 +- apt-pkg/contrib/fileutl.h | 1 + debian/changelog | 6 ++++- methods/rred.cc | 49 ++++++++++++++++++++++++++++++++------- test/integration/test-pdiff-usage | 1 + 6 files changed, 49 insertions(+), 29 deletions(-) diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 2c4ce91a0..d4e90b552 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -570,24 +570,7 @@ void pkgAcqIndexDiffs::Done(string Message,unsigned long Size,string Md5Hash, /* FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI); // sucess in downloading a diff, enter ApplyDiff state - if(State == StateFetchDiff) - { - - if(Debug) - std::clog << "Sending to gzip method: " << FinalFile << std::endl; - - string FileName = LookupTag(Message,"Filename"); - State = StateUnzipDiff; - Local = true; - Desc.URI = "gzip:" + FileName; - DestFile += ".decomp"; - QueueURI(Desc); - Mode = "gzip"; - return; - } - - // sucess in downloading a diff, enter ApplyDiff state - if(State == StateUnzipDiff) + if(State == StateFetchDiff) { // rred excepts the patch as $FinalFile.ed diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 943c61876..d97a96a0f 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -449,7 +449,7 @@ class pkgAcqIndexDiffs : public pkgAcquire::Item StateFetchDiff, /** \brief The diff is currently being uncompressed. */ - StateUnzipDiff, + StateUnzipDiff, // FIXME: No longer used /** \brief The diff is currently being applied. */ StateApplyDiff diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index 146d917d8..cde288ad2 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -72,6 +72,7 @@ class FileFd // Simple manipulators inline int Fd() {return iFd;}; inline void Fd(int fd) {iFd = fd;}; + inline gzFile gzFd() {return gz;}; inline bool IsOpen() {return iFd >= 0;}; inline bool Failed() {return (Flags & Fail) == Fail;}; inline void EraseOnFailure() {Flags |= DelOnFail;}; diff --git a/debian/changelog b/debian/changelog index 11768794d..5c8adb434 100644 --- a/debian/changelog +++ b/debian/changelog @@ -49,8 +49,12 @@ apt (0.8.11+wheezy) unstable; urgency=low - remove as it is not needed for a working 'bzr bd' * debian/{apt,apt-utils}.symbols: - ship experimental unmangled c++ symbol files + * methods/rred.cc: + - operate optional on gzip compressed pdiffs + * apt-pkg/acquire-item.cc: + - don't uncompress downloaded pdiff files before feeding it to rred - -- David Kalnischkies Sat, 15 Jan 2011 02:42:18 +0100 + -- David Kalnischkies Sat, 15 Jan 2011 20:24:03 +0100 apt (0.8.10) unstable; urgency=low diff --git a/methods/rred.cc b/methods/rred.cc index d51c45c85..1a18a381c 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -12,6 +12,7 @@ #include #include #include +#include #include /*}}}*/ /** \brief RredMethod - ed-style incremential patch method {{{ @@ -33,11 +34,14 @@ class RredMethod : public pkgAcqMethod { // return values enum State {ED_OK, ED_ORDERING, ED_PARSER, ED_FAILURE, MMAP_FAILED}; - State applyFile(FILE *ed_cmds, FILE *in_file, FILE *out_file, + State applyFile(gzFile &ed_cmds, FILE *in_file, FILE *out_file, unsigned long &line, char *buffer, Hashes *hash) const; void ignoreLineInFile(FILE *fin, char *buffer) const; + void ignoreLineInFile(gzFile &fin, char *buffer) const; void copyLinesFromFileToFile(FILE *fin, FILE *fout, unsigned int lines, Hashes *hash, char *buffer) const; + void copyLinesFromFileToFile(gzFile &fin, FILE *fout, unsigned int lines, + Hashes *hash, char *buffer) const; State patchFile(FileFd &Patch, FileFd &From, FileFd &out_file, Hashes *hash) const; State patchMMap(FileFd &Patch, FileFd &From, FileFd &out_file, Hashes *hash) const; @@ -65,10 +69,10 @@ public: * \param hash the created file for correctness * \return the success State of the ed command executor */ -RredMethod::State RredMethod::applyFile(FILE *ed_cmds, FILE *in_file, FILE *out_file, +RredMethod::State RredMethod::applyFile(gzFile &ed_cmds, FILE *in_file, FILE *out_file, unsigned long &line, char *buffer, Hashes *hash) const { // get the current command and parse it - if (fgets(buffer, BUF_SIZE, ed_cmds) == NULL) { + if (gzgets(ed_cmds, buffer, BUF_SIZE) == NULL) { if (Debug == true) std::clog << "rred: encounter end of file - we can start patching now." << std::endl; line = 0; @@ -123,7 +127,7 @@ RredMethod::State RredMethod::applyFile(FILE *ed_cmds, FILE *in_file, FILE *out_ unsigned char mode = *idx; // save the current position - unsigned const long pos = ftell(ed_cmds); + unsigned const long pos = gztell(ed_cmds); // if this is add or change then go to the next full stop unsigned int data_length = 0; @@ -157,7 +161,7 @@ RredMethod::State RredMethod::applyFile(FILE *ed_cmds, FILE *in_file, FILE *out_ // include data from ed script if (mode == MODE_CHANGED || mode == MODE_ADDED) { - fseek(ed_cmds, pos, SEEK_SET); + gzseek(ed_cmds, pos, SEEK_SET); copyLinesFromFileToFile(ed_cmds, out_file, data_length, hash, buffer); } @@ -183,6 +187,18 @@ void RredMethod::copyLinesFromFileToFile(FILE *fin, FILE *fout, unsigned int lin } } /*}}}*/ +void RredMethod::copyLinesFromFileToFile(gzFile &fin, FILE *fout, unsigned int lines,/*{{{*/ + Hashes *hash, char *buffer) const { + while (0 < lines--) { + do { + gzgets(fin, buffer, BUF_SIZE); + size_t const written = fwrite(buffer, 1, strlen(buffer), fout); + hash->Add((unsigned char*)buffer, written); + } while (strlen(buffer) == (BUF_SIZE - 1) && + buffer[BUF_SIZE - 2] != '\n'); + } +} + /*}}}*/ void RredMethod::ignoreLineInFile(FILE *fin, char *buffer) const { /*{{{*/ fgets(buffer, BUF_SIZE, fin); while (strlen(buffer) == (BUF_SIZE - 1) && @@ -192,11 +208,20 @@ void RredMethod::ignoreLineInFile(FILE *fin, char *buffer) const { /*{{{*/ } } /*}}}*/ +void RredMethod::ignoreLineInFile(gzFile &fin, char *buffer) const { /*{{{*/ + gzgets(fin, buffer, BUF_SIZE); + while (strlen(buffer) == (BUF_SIZE - 1) && + buffer[BUF_SIZE - 2] != '\n') { + gzgets(fin, buffer, BUF_SIZE); + buffer[0] = ' '; + } +} + /*}}}*/ RredMethod::State RredMethod::patchFile(FileFd &Patch, FileFd &From, /*{{{*/ FileFd &out_file, Hashes *hash) const { char buffer[BUF_SIZE]; FILE* fFrom = fdopen(From.Fd(), "r"); - FILE* fPatch = fdopen(Patch.Fd(), "r"); + gzFile fPatch = Patch.gzFd(); FILE* fTo = fdopen(out_file.Fd(), "w"); /* we do a tail recursion to read the commands in the right order */ @@ -228,6 +253,12 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ FileFd &out_file, Hashes *hash) const { #ifdef _POSIX_MAPPED_FILES MMap ed_cmds(Patch, MMap::ReadOnly); + if (Patch.gzFd() != NULL) { + unsigned long mapSize = Patch.Size(); + DynamicMMap dyn(0, mapSize, 0); + gzread(Patch.gzFd(), dyn.Data(), mapSize); + ed_cmds = dyn; + } MMap in_file(From, MMap::ReadOnly); if (ed_cmds.Size() == 0 || in_file.Size() == 0) @@ -445,7 +476,7 @@ bool RredMethod::Fetch(FetchItem *Itm) /*{{{*/ // Open the source and destination files (the d'tor of FileFd will do // the cleanup/closing of the fds) FileFd From(Path,FileFd::ReadOnly); - FileFd Patch(Path+".ed",FileFd::ReadOnly); + FileFd Patch(Path+".ed",FileFd::ReadOnlyGzip); FileFd To(Itm->DestFile,FileFd::WriteAtomic); To.EraseOnFailure(); if (_error->PendingError() == true) @@ -456,8 +487,8 @@ bool RredMethod::Fetch(FetchItem *Itm) /*{{{*/ State const result = patchMMap(Patch, From, To, &Hash); if (result == MMAP_FAILED) { // retry with patchFile - lseek(Patch.Fd(), 0, SEEK_SET); - lseek(From.Fd(), 0, SEEK_SET); + Patch.Seek(0); + From.Seek(0); To.Open(Itm->DestFile,FileFd::WriteAtomic); if (_error->PendingError() == true) return false; diff --git a/test/integration/test-pdiff-usage b/test/integration/test-pdiff-usage index a70b6122c..eb1818bcd 100755 --- a/test/integration/test-pdiff-usage +++ b/test/integration/test-pdiff-usage @@ -44,6 +44,7 @@ sed -i aptarchive/Release \ -e "/^SHA256:/ a\ \ $(sha256sum $PATCHINDEX | cut -d' ' -f 1) $(stat -c%s $PATCHINDEX) Packages.diff/Index" signreleasefiles +rm -f aptarchive/Packages aptarchive/Packages.gz aptarchive/Packages.bz2 aptarchive/Packages.lzma aptget update -qq testnopackage oldstuff -- cgit v1.2.3 From 063a17d7a9f9f6195067df46220be02c4f5f5d32 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 15 Jan 2011 23:08:22 +0100 Subject: move the lintian-overrides into the debian directory --- debian/apt.dirs | 1 - debian/apt.lintian-overrides | 3 +++ debian/rules | 4 +--- share/lintian-overrides | 3 --- 4 files changed, 4 insertions(+), 7 deletions(-) create mode 100644 debian/apt.lintian-overrides delete mode 100644 share/lintian-overrides diff --git a/debian/apt.dirs b/debian/apt.dirs index f25e4600b..2770d79bb 100644 --- a/debian/apt.dirs +++ b/debian/apt.dirs @@ -13,4 +13,3 @@ var/lib/apt/mirrors/partial var/lib/apt/periodic var/log/apt usr/share/bug/apt -usr/share/lintian/overrides diff --git a/debian/apt.lintian-overrides b/debian/apt.lintian-overrides new file mode 100644 index 000000000..49c5ce53c --- /dev/null +++ b/debian/apt.lintian-overrides @@ -0,0 +1,3 @@ +# apt-mark is rarely used auxiliary script, we don't want to depend on +# python-apt only for it. +apt binary: python-script-but-no-python-dep ./usr/bin/apt-mark diff --git a/debian/rules b/debian/rules index fd872b4ce..1c5b6d515 100755 --- a/debian/rules +++ b/debian/rules @@ -193,9 +193,6 @@ apt: build build-doc cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove - # copy lintian override - cp share/lintian-overrides debian/$@/usr/share/lintian/overrides/apt - # make rosetta happy and remove pot files in po/ (but leave stuff # in po/domains/* untouched) and cp *.po into each domain dir rm -f build/po/*.pot @@ -205,6 +202,7 @@ apt: build build-doc #mv debian/$@/usr/bin/apt-report-mirror-failure \ # debian/$@/usr/lib/apt/apt-report-mirror-failure \ + dh_lintian -p$@ dh_installexamples -p$@ $(BLD)/docs/examples/* dh_installman -p$@ $(wildcard $(patsubst %,doc/%.[158],$(apt_MANPAGES)) $(patsubst %,doc/*/%.*.[158],$(apt_MANPAGES))) dh_installcron -p$@ diff --git a/share/lintian-overrides b/share/lintian-overrides deleted file mode 100644 index 49c5ce53c..000000000 --- a/share/lintian-overrides +++ /dev/null @@ -1,3 +0,0 @@ -# apt-mark is rarely used auxiliary script, we don't want to depend on -# python-apt only for it. -apt binary: python-script-but-no-python-dep ./usr/bin/apt-mark -- cgit v1.2.3 From 304c041b175722a6c8f520fd52a0b65863ed9c55 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 15 Jan 2011 23:17:33 +0100 Subject: let dh_bugfiles take care of the bugscript instead of handcopying --- debian/apt.bug-script | 33 +++++++++++++++++++++++++++++++++ debian/bugscript | 33 --------------------------------- debian/rules | 2 +- 3 files changed, 34 insertions(+), 34 deletions(-) create mode 100755 debian/apt.bug-script delete mode 100755 debian/bugscript diff --git a/debian/apt.bug-script b/debian/apt.bug-script new file mode 100755 index 000000000..f5ec9e05d --- /dev/null +++ b/debian/apt.bug-script @@ -0,0 +1,33 @@ +#!/bin/bash -e + +# reportbug #169495 +if [ -z "$YESNO" ]; then + YESNO=$"yYnN" +fi + +cat <&3 + apt-config dump >&3 2>&1 +fi + +for config in /etc/apt/preferences /etc/apt/sources.list; do + if [ -f $config ]; then + yesno "May I include your $config configuration file? [Y/n] " yep + if [ "$REPLY" = "yep" ]; then + echo -e "\n-- $config --\n" >&3 + cat $config >&3 + else + echo -e "\n-- ($config present, but not submitted) --\n" >&3 + fi + else + echo -e "\n-- (no $config present) --\n" >&3 + fi +done diff --git a/debian/bugscript b/debian/bugscript deleted file mode 100755 index f5ec9e05d..000000000 --- a/debian/bugscript +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -e - -# reportbug #169495 -if [ -z "$YESNO" ]; then - YESNO=$"yYnN" -fi - -cat <&3 - apt-config dump >&3 2>&1 -fi - -for config in /etc/apt/preferences /etc/apt/sources.list; do - if [ -f $config ]; then - yesno "May I include your $config configuration file? [Y/n] " yep - if [ "$REPLY" = "yep" ]; then - echo -e "\n-- $config --\n" >&3 - cat $config >&3 - else - echo -e "\n-- ($config present, but not submitted) --\n" >&3 - fi - else - echo -e "\n-- (no $config present) --\n" >&3 - fi -done diff --git a/debian/rules b/debian/rules index 1c5b6d515..5331bea80 100755 --- a/debian/rules +++ b/debian/rules @@ -188,7 +188,6 @@ apt: build build-doc cp $(BLD)/scripts/dselect/* debian/$@/usr/lib/dpkg/methods/apt/ cp -r $(BLD)/locale debian/$@/usr/share/ - cp debian/bugscript debian/$@/usr/share/bug/apt/script cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove @@ -202,6 +201,7 @@ apt: build build-doc #mv debian/$@/usr/bin/apt-report-mirror-failure \ # debian/$@/usr/lib/apt/apt-report-mirror-failure \ + dh_bugfiles -p$@ dh_lintian -p$@ dh_installexamples -p$@ $(BLD)/docs/examples/* dh_installman -p$@ $(wildcard $(patsubst %,doc/%.[158],$(apt_MANPAGES)) $(patsubst %,doc/*/%.*.[158],$(apt_MANPAGES))) -- cgit v1.2.3 From 2cf8c58b3f5e850d44645c23e33ce1be96bcad0b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 16 Jan 2011 00:54:48 +0100 Subject: move file installation from rules to dh_install files --- debian/apt-transport-https.dirs | 1 + debian/apt-transport-https.install | 1 + debian/apt-utils.install | 1 + debian/apt.install | 5 +++++ debian/control | 2 +- debian/libapt-pkg-dev.install | 3 +++ debian/rules | 45 +++++++++++--------------------------- methods/makefile | 2 +- 8 files changed, 26 insertions(+), 34 deletions(-) create mode 100644 debian/apt-transport-https.dirs create mode 100644 debian/apt-transport-https.install create mode 100644 debian/apt-utils.install create mode 100644 debian/apt.install create mode 100644 debian/libapt-pkg-dev.install diff --git a/debian/apt-transport-https.dirs b/debian/apt-transport-https.dirs new file mode 100644 index 000000000..3abb3fee8 --- /dev/null +++ b/debian/apt-transport-https.dirs @@ -0,0 +1 @@ +usr/lib/apt/methods diff --git a/debian/apt-transport-https.install b/debian/apt-transport-https.install new file mode 100644 index 000000000..848f10c78 --- /dev/null +++ b/debian/apt-transport-https.install @@ -0,0 +1 @@ +bin/methods/https usr/lib/apt/methods diff --git a/debian/apt-utils.install b/debian/apt-utils.install new file mode 100644 index 000000000..d947f26d4 --- /dev/null +++ b/debian/apt-utils.install @@ -0,0 +1 @@ +bin/libapt-inst*.so.* usr/lib/ diff --git a/debian/apt.install b/debian/apt.install new file mode 100644 index 000000000..979e04ce2 --- /dev/null +++ b/debian/apt.install @@ -0,0 +1,5 @@ +bin/apt-* usr/bin/ +bin/libapt-pkg*.so.* usr/lib/ +bin/methods/* usr/lib/apt/methods/ +scripts/dselect/* usr/lib/dpkg/methods/apt/ +locale usr/share/ diff --git a/debian/control b/debian/control index 46d19b246..7e4b798d9 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: Michael Vogt , Otavio Salvador , Christian Perrier , Daniel Burrows , Luca Bruno , Julian Andres Klode Standards-Version: 3.9.0 -Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 7), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen +Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 7.2.3~), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen Build-Conflicts: autoconf2.13, automake1.4 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ Vcs-Browser: http://bzr.debian.org/loggerhead/apt/debian-sid/ diff --git a/debian/libapt-pkg-dev.install b/debian/libapt-pkg-dev.install new file mode 100644 index 000000000..bd1a6c174 --- /dev/null +++ b/debian/libapt-pkg-dev.install @@ -0,0 +1,3 @@ +bin/libapt-pkg*.so usr/lib/ +bin/libapt-inst*.so usr/lib/ +include/apt-pkg/*.h usr/include/apt-pkg/ diff --git a/debian/rules b/debian/rules index 5331bea80..640900678 100755 --- a/debian/rules +++ b/debian/rules @@ -172,24 +172,6 @@ apt: build build-doc # # apt install # - cp $(BLD)/bin/apt-* debian/$@/usr/bin/ - - # Remove the bits that are in apt-utils - rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS)) - - # install the shared libs - find $(BLD)/bin/ -type f -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; - find $(BLD)/bin/ -type l -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; - - cp $(BLD)/bin/methods/* debian/$@/usr/lib/apt/methods/ - # https has its own package - rm debian/$@/usr/lib/apt/methods/https - - cp $(BLD)/scripts/dselect/* debian/$@/usr/lib/dpkg/methods/apt/ - cp -r $(BLD)/locale debian/$@/usr/share/ - - cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt - cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove # make rosetta happy and remove pot files in po/ (but leave stuff @@ -197,6 +179,14 @@ apt: build build-doc rm -f build/po/*.pot rm -f po/*.pot + dh_install -p$@ --sourcedir=$(BLD) + + # Remove the bits that are in apt-utils + rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS)) + + # https has its own package + rm debian/$@/usr/lib/apt/methods/https + # move the mirror failure script in place #mv debian/$@/usr/bin/apt-report-mirror-failure \ # debian/$@/usr/lib/apt/apt-report-mirror-failure \ @@ -208,6 +198,7 @@ apt: build build-doc dh_installcron -p$@ dh_installdocs -p$@ dh_installchangelogs -p$@ + dh_installlogrotate -p$@ dh_strip -p$@ dh_compress -p$@ dh_fixperms -p$@ @@ -226,13 +217,8 @@ libapt-pkg-dev: build # # libapt-pkg-dev install # - cp -a $(BLD)/bin/libapt-pkg*.so debian/libapt-pkg-dev/usr/lib/ - cp -a $(BLD)/bin/libapt-inst*.so debian/libapt-pkg-dev/usr/lib/ -# ln -s libapt-pkg.so.$(LIBAPTPKG_MAJOR) debian/libapt-pkg-dev/usr/lib/libapt-pkg.so - cp $(BLD)/include/apt-pkg/*.h debian/libapt-pkg-dev/usr/include/apt-pkg/ - + dh_install -p$@ --sourcedir=$(BLD) dh_installdocs -p$@ - dh_installchangelogs -p$@ dh_strip -p$@ dh_compress -p$@ @@ -249,11 +235,9 @@ apt-utils: build dh_prep -p$@ dh_installdirs -p$@ - # install the shared libs - find $(BLD)/bin/ -type f -name "libapt-inst*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; - find $(BLD)/bin/ -type l -name "libapt-inst*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \; - cp $(addprefix $(BLD)/bin/apt-,$(APT_UTILS)) debian/$@/usr/bin/ + + dh_install -p$@ --sourcedir=$(BLD) dh_installdocs -p$@ dh_installexamples -p$@ @@ -277,10 +261,7 @@ apt-transport-https: build libapt-pkg-dev dh_prep -p$@ dh_installdirs -p$@ - # install the method - mkdir --parents debian/$@/usr/lib/apt/methods - cp $(BLD)/bin/methods/https debian/$@/usr/lib/apt/methods - + dh_install -p$@ --sourcedir=$(BLD) dh_installdocs -p$@ debian/apt-transport-https.README dh_installexamples -p$@ diff --git a/methods/makefile b/methods/makefile index d94a85340..4ee356cec 100644 --- a/methods/makefile +++ b/methods/makefile @@ -67,7 +67,7 @@ include $(PROGRAM_H) # The rred method PROGRAM=rred -SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) +SLIBS = -lapt-pkg -lz $(SOCKETLIBS) $(INTLLIBS) LIB_MAKES = apt-pkg/makefile SOURCE = rred.cc include $(PROGRAM_H) -- cgit v1.2.3 From 39cc82288036a005226564fadd05ef19ef0037bb Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 16 Jan 2011 13:33:24 +0100 Subject: implement i quiet run-tests mode which prints only one line per testcase --- test/integration/framework | 4 ++++ test/integration/run-tests | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/test/integration/framework b/test/integration/framework index 4bbe1b408..5d54e49b6 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -39,6 +39,10 @@ fi if [ $MSGLEVEL -le 2 ]; then msgmsg() { true; } msgnmsg() { true; } + msgtest() { true; } + msgpass() { echo -n " ${CPASS}P${CNORMAL}" >&2; } + msgskip() { echo -n " ${CWARNING}S${CNORMAL}" >&2; } + msgfail() { echo -n " ${CFAIL}FAIL${CNORMAL}" >&2; } fi if [ $MSGLEVEL -le 3 ]; then msginfo() { true; } diff --git a/test/integration/run-tests b/test/integration/run-tests index c7ea0a61a..5644f0a05 100755 --- a/test/integration/run-tests +++ b/test/integration/run-tests @@ -2,7 +2,19 @@ set -e DIR=$(readlink -f $(dirname $0)) +if [ "$1" = "-q" ]; then + export MSGLEVEL=2 +elif [ "$1" = "-v" ]; then + export MSGLEVEL=5 +fi for testcase in $(run-parts --list $DIR | grep '/test-'); do - echo "\033[1;32mRun Testcase \033[1;35m$(basename ${testcase})\033[0m" + if [ "$1" = "-q" ]; then + echo -n "\033[1;32mRun Testcase \033[1;35m$(basename ${testcase})\033[0m" + else + echo "\033[1;32mRun Testcase \033[1;35m$(basename ${testcase})\033[0m" + fi ${testcase} + if [ "$1" = "-q" ]; then + echo + fi done -- cgit v1.2.3 From 248ec5ab008a1dfa5bf441b0d40b6c1859954746 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 16 Jan 2011 17:32:33 +0100 Subject: * cmdline/apt-key: - don't set trustdb-name as non-root so 'list' and 'finger' can be used without being root (Closes: #393005, #592107) --- cmdline/apt-key | 7 ++++++- debian/changelog | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cmdline/apt-key b/cmdline/apt-key index b39ab12e4..c1e01a776 100755 --- a/cmdline/apt-key +++ b/cmdline/apt-key @@ -5,7 +5,12 @@ unset GREP_OPTIONS # We don't use a secret keyring, of course, but gpg panics and # implodes if there isn't one available -GPG_CMD="gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg" +GPG_CMD='gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg' + +if ! id -u > /dev/null; then + GPG_CMD="$GPG_CMD --trustdb-name /etc/apt/trustdb.gpg" +fi + GPG="$GPG_CMD" MASTER_KEYRING="" diff --git a/debian/changelog b/debian/changelog index 5c8adb434..b74508804 100644 --- a/debian/changelog +++ b/debian/changelog @@ -53,8 +53,11 @@ apt (0.8.11+wheezy) unstable; urgency=low - operate optional on gzip compressed pdiffs * apt-pkg/acquire-item.cc: - don't uncompress downloaded pdiff files before feeding it to rred + * cmdline/apt-key: + - don't set trustdb-name as non-root so 'list' and 'finger' + can be used without being root (Closes: #393005, #592107) - -- David Kalnischkies Sat, 15 Jan 2011 20:24:03 +0100 + -- David Kalnischkies Sun, 16 Jan 2011 17:23:28 +0100 apt (0.8.10) unstable; urgency=low -- cgit v1.2.3 From a953a42711d485a92794f157db41b33709856dbf Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 17 Jan 2011 13:57:42 +0100 Subject: releasing version 0.8.10.1 --- debian/changelog | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6ddb0fc51..e983bbb3f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,12 +1,9 @@ -apt (0.8.12) UNRELEASED; urgency=low +apt (0.8.10.1) unstable; urgency=low + [ Christian Perrier ] * Fix encoding for Slovenian translation. PO file switched to UTF-8. Closes: #609957 - -- Christian Perrier Sat, 15 Jan 2011 07:46:34 +0100 - -apt (0.8.11) unstable; urgency=low - [ Julian Andres Klode ] * cmdline/apt-cache.cc: Create an error for apt-cache depends if packages could not found (LP: #647045) @@ -18,7 +15,7 @@ apt (0.8.11) unstable; urgency=low * Correct a typo and an error in French manpages translation. Closes: # 607170 - -- Julian Andres Klode Tue, 07 Dec 2010 15:47:11 +0100 + -- Michael Vogt Mon, 17 Jan 2011 13:41:04 +0100 apt (0.8.10) unstable; urgency=low -- cgit v1.2.3 From fe0f7911b650918e1d511b3453664a07f6d966d0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 20 Jan 2011 14:53:52 +0100 Subject: - try downloading clearsigned InRelease before trying Release.gpg * apt-pkg/deb/deblistparser.cc: - rewrite LoadReleaseInfo to cope with clearsigned Releasefiles --- apt-pkg/acquire-item.cc | 54 ++++++- apt-pkg/acquire-item.h | 33 +++++ apt-pkg/deb/debindexfile.cc | 8 +- apt-pkg/deb/deblistparser.cc | 114 ++++++++++----- apt-pkg/deb/debmetaindex.cc | 34 +++-- apt-pkg/indexcopy.cc | 3 +- apt-pkg/indexrecords.cc | 17 ++- apt-pkg/tagfile.cc | 10 +- apt-pkg/tagfile.h | 2 + debian/changelog | 5 +- doc/apt-secure.8.xml | 5 +- test/integration/Packages-releasefile-verification | 18 +++ .../Packages-releasefile-verification-new | 21 +++ test/integration/framework | 7 + test/integration/marvinparanoid.pub | Bin 0 -> 629 bytes test/integration/marvinparanoid.sec | Bin 0 -> 1280 bytes .../test-bug-595691-empty-and-broken-archive-files | 32 ++--- test/integration/test-releasefile-verification | 160 +++++++++++++++++++++ 18 files changed, 430 insertions(+), 93 deletions(-) create mode 100644 test/integration/Packages-releasefile-verification create mode 100644 test/integration/Packages-releasefile-verification-new create mode 100644 test/integration/marvinparanoid.pub create mode 100644 test/integration/marvinparanoid.sec create mode 100755 test/integration/test-releasefile-verification diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index d4e90b552..2cd6ab359 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -1077,6 +1077,8 @@ void pkgAcqMetaIndex::Done(string Message,unsigned long Size,string Hash, /*{{{* { string FinalFile = _config->FindDir("Dir::State::lists"); FinalFile += URItoFileName(RealURI); + if (SigFile == DestFile) + SigFile = FinalFile; Rename(DestFile,FinalFile); chmod(FinalFile.c_str(),0644); DestFile = FinalFile; @@ -1110,6 +1112,8 @@ void pkgAcqMetaIndex::RetrievalDone(string Message) /*{{{*/ { string FinalFile = _config->FindDir("Dir::State::lists"); FinalFile += URItoFileName(RealURI); + if (SigFile == DestFile) + SigFile = FinalFile; DestFile = FinalFile; } Complete = true; @@ -1141,6 +1145,10 @@ void pkgAcqMetaIndex::AuthDone(string Message) /*{{{*/ // Download further indexes with verification QueueIndexes(true); + // is it a clearsigned MetaIndex file? + if (DestFile == SigFile) + return; + // Done, move signature file into position string VerifiedSigFile = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI) + ".gpg"; @@ -1300,13 +1308,20 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) if (AuthPass == true) { // gpgv method failed, if we have a good signature - string LastGoodSigFile = _config->FindDir("Dir::State::lists") + - "partial/" + URItoFileName(RealURI) + ".gpg.reverify"; + string LastGoodSigFile = _config->FindDir("Dir::State::lists"); + if (DestFile == SigFile) + LastGoodSigFile.append(URItoFileName(RealURI)); + else + LastGoodSigFile.append("partial/").append(URItoFileName(RealURI)).append(".gpg.reverify"); + if(FileExists(LastGoodSigFile)) { - string VerifiedSigFile = _config->FindDir("Dir::State::lists") + - URItoFileName(RealURI) + ".gpg"; - Rename(LastGoodSigFile,VerifiedSigFile); + if (DestFile != SigFile) + { + string VerifiedSigFile = _config->FindDir("Dir::State::lists") + + URItoFileName(RealURI) + ".gpg"; + Rename(LastGoodSigFile,VerifiedSigFile); + } Status = StatTransientNetworkError; _error->Warning(_("A error occurred during the signature " "verification. The repository is not updated " @@ -1330,6 +1345,35 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) QueueIndexes(false); } /*}}}*/ +pkgAcqMetaClearSig::pkgAcqMetaClearSig(pkgAcquire *Owner, /*{{{*/ + string const &URI, string const &URIDesc, string const &ShortDesc, + string const &MetaIndexURI, string const &MetaIndexURIDesc, string const &MetaIndexShortDesc, + string const &MetaSigURI, string const &MetaSigURIDesc, string const &MetaSigShortDesc, + const vector* IndexTargets, + indexRecords* MetaIndexParser) : + pkgAcqMetaIndex(Owner, URI, URIDesc, ShortDesc, "", IndexTargets, MetaIndexParser), + MetaIndexURI(MetaIndexURI), MetaIndexURIDesc(MetaIndexURIDesc), MetaIndexShortDesc(MetaIndexShortDesc), + MetaSigURI(MetaSigURI), MetaSigURIDesc(MetaSigURIDesc), MetaSigShortDesc(MetaSigShortDesc) +{ + SigFile = DestFile; +} + /*}}}*/ +void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/ +{ + if (AuthPass == false) + { + new pkgAcqMetaSig(Owner, + MetaSigURI, MetaSigURIDesc, MetaSigShortDesc, + MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, + IndexTargets, MetaIndexParser); + if (Cnf->LocalOnly == true || + StringToBool(LookupTag(Message, "Transient-Failure"), false) == false) + Dequeue(); + } + else + pkgAcqMetaIndex::Failed(Message, Cnf); +} + /*}}}*/ // AcqArchive::AcqArchive - Constructor /*{{{*/ // --------------------------------------------------------------------- /* This just sets up the initial fetch environment and queues the first diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index d97a96a0f..581761e32 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -772,6 +772,39 @@ class pkgAcqMetaIndex : public pkgAcquire::Item indexRecords* MetaIndexParser); }; /*}}}*/ +/** \brief An item repsonsible for downloading clearsigned metaindexes {{{*/ +class pkgAcqMetaClearSig : public pkgAcqMetaIndex +{ + /** \brief The URI of the meta-index file for the detached signature */ + string MetaIndexURI; + + /** \brief A "URI-style" description of the meta-index file */ + string MetaIndexURIDesc; + + /** \brief A brief description of the meta-index file */ + string MetaIndexShortDesc; + + /** \brief The URI of the detached meta-signature file if the clearsigned one failed. */ + string MetaSigURI; + + /** \brief A "URI-style" description of the meta-signature file */ + string MetaSigURIDesc; + + /** \brief A brief description of the meta-signature file */ + string MetaSigShortDesc; + +public: + void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + + /** \brief Create a new pkgAcqMetaClearSig. */ + pkgAcqMetaClearSig(pkgAcquire *Owner, + string const &URI, string const &URIDesc, string const &ShortDesc, + string const &MetaIndexURI, string const &MetaIndexURIDesc, string const &MetaIndexShortDesc, + string const &MetaSigURI, string const &MetaSigURIDesc, string const &MetaSigShortDesc, + const vector* IndexTargets, + indexRecords* MetaIndexParser); +}; + /*}}}*/ /** \brief An item that is responsible for fetching a package file. {{{ * * If the package file already exists in the cache, nothing will be diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index af1209ccb..9961b5ae4 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -324,8 +324,14 @@ bool debPackagesIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const return _error->Error("Problem with MergeList %s",PackageFile.c_str()); // Check the release file - string ReleaseFile = debReleaseIndex(URI,Dist).MetaIndexFile("Release"); + string ReleaseFile = debReleaseIndex(URI,Dist).MetaIndexFile("InRelease"); + bool releaseExists = false; if (FileExists(ReleaseFile) == true) + releaseExists = true; + else + ReleaseFile = debReleaseIndex(URI,Dist).MetaIndexFile("Release"); + + if (releaseExists == true || FileExists(ReleaseFile) == true) { FileFd Rel(ReleaseFile,FileFd::ReadOnly); if (_error->PendingError() == true) diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 1b3bfd6ae..9201e6a54 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -783,45 +783,89 @@ bool debListParser::Step() bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI, FileFd &File, string component) { - pkgTagFile Tags(&File, File.Size() + 256); // XXX - pkgTagSection Section; - if (Tags.Step(Section) == false) - return false; - - // FIXME: Do we need it now for multi-arch? - // mvo: I don't think we need to fill that in (it's unused since apt-0.6) -// FileI->Architecture = WriteUniqString(Arch); - // apt-secure does no longer download individual (per-section) Release // file. to provide Component pinning we use the section name now FileI->Component = WriteUniqString(component); - const char *Start; - const char *Stop; - if (Section.Find("Suite",Start,Stop) == true) - FileI->Archive = WriteUniqString(Start,Stop - Start); - if (Section.Find("Component",Start,Stop) == true) - FileI->Component = WriteUniqString(Start,Stop - Start); - if (Section.Find("Version",Start,Stop) == true) - FileI->Version = WriteUniqString(Start,Stop - Start); - if (Section.Find("Origin",Start,Stop) == true) - FileI->Origin = WriteUniqString(Start,Stop - Start); - if (Section.Find("Codename",Start,Stop) == true) - FileI->Codename = WriteUniqString(Start,Stop - Start); - if (Section.Find("Label",Start,Stop) == true) - FileI->Label = WriteUniqString(Start,Stop - Start); - if (Section.Find("Architecture",Start,Stop) == true) - FileI->Architecture = WriteUniqString(Start,Stop - Start); - - if (Section.FindFlag("NotAutomatic",FileI->Flags, - pkgCache::Flag::NotAutomatic) == false) - _error->Warning("Bad NotAutomatic flag"); - if (Section.FindFlag("ButAutomaticUpgrades",FileI->Flags, - pkgCache::Flag::ButAutomaticUpgrades) == false) - _error->Warning("Bad ButAutomaticUpgrades flag"); - // overrule the NotAutomatic setting if needed as they are both present for compatibility - else if ((FileI->Flags & pkgCache::Flag::ButAutomaticUpgrades) == pkgCache::Flag::ButAutomaticUpgrades) - FileI->Flags &= ~pkgCache::Flag::NotAutomatic; + FILE* release = fdopen(dup(File.Fd()), "r"); + if (release == NULL) + return false; + + char buffer[101]; + bool gpgClose = false; + while (fgets(buffer, sizeof(buffer), release) != NULL) + { + size_t len = 0; + + // Skip empty lines + for (; buffer[len] == '\r' && buffer[len] == '\n'; ++len); + if (buffer[len] == '\0') + continue; + + // only evalute the first GPG section + if (strncmp("-----", buffer, 5) == 0) + { + if (gpgClose == true) + break; + gpgClose = true; + continue; + } + + // seperate the tag from the data + for (; buffer[len] != ':' && buffer[len] != '\0'; ++len); + if (buffer[len] == '\0') + continue; + char* dataStart = buffer + len; + for (++dataStart; *dataStart == ' '; ++dataStart); + char* dataEnd = dataStart; + for (++dataEnd; *dataEnd != '\0'; ++dataEnd); + + // which datastorage need to be updated + map_ptrloc* writeTo = NULL; + if (buffer[0] == ' ') + ; + #define APT_PARSER_WRITETO(X, Y) else if (strncmp(Y, buffer, len) == 0) writeTo = &X; + APT_PARSER_WRITETO(FileI->Archive, "Suite") + APT_PARSER_WRITETO(FileI->Component, "Component") + APT_PARSER_WRITETO(FileI->Version, "Version") + APT_PARSER_WRITETO(FileI->Origin, "Origin") + APT_PARSER_WRITETO(FileI->Codename, "Codename") + APT_PARSER_WRITETO(FileI->Label, "Label") + #undef APT_PARSER_WRITETO + #define APT_PARSER_FLAGIT(X) else if (strncmp(#X, buffer, len) == 0) \ + pkgTagSection::FindFlag(FileI->Flags, pkgCache::Flag:: X, dataStart, dataEnd-1); + APT_PARSER_FLAGIT(NotAutomatic) + APT_PARSER_FLAGIT(ButAutomaticUpgrades) + #undef APT_PARSER_FLAGIT + + // load all data from the line and save it + string data; + if (writeTo != NULL) + data.append(dataStart, dataEnd); + if (sizeof(buffer) - 1 == (dataEnd - buffer)) + { + while (fgets(buffer, sizeof(buffer), release) != NULL) + { + if (writeTo != NULL) + data.append(buffer); + if (strlen(buffer) != sizeof(buffer) - 1) + break; + } + } + if (writeTo != NULL) + { + // remove spaces and stuff from the end of the data line + for (std::string::reverse_iterator s = data.rbegin(); + s != data.rend(); ++s) + { + if (*s != '\r' && *s != '\n' && *s != ' ') + break; + *s = '\0'; + } + *writeTo = WriteUniqString(data); + } + } + fclose(release); return !_error->PendingError(); } diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index 717d0bcde..e2c680b14 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -182,21 +182,15 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool const &GetAll) const new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, (*Target)->ShortDesc, HashString()); } - // this is normally created in pkgAcqMetaSig, but if we run - // in --print-uris mode, we add it here - new pkgAcqMetaIndex(Owner, MetaIndexURI("Release"), - MetaIndexInfo("Release"), "Release", - MetaIndexURI("Release.gpg"), - ComputeIndexTargets(), - new indexRecords (Dist)); - } - new pkgAcqMetaSig(Owner, MetaIndexURI("Release.gpg"), - MetaIndexInfo("Release.gpg"), "Release.gpg", - MetaIndexURI("Release"), MetaIndexInfo("Release"), "Release", - ComputeIndexTargets(), - new indexRecords (Dist)); + new pkgAcqMetaClearSig(Owner, MetaIndexURI("InRelease"), + MetaIndexInfo("InRelease"), "InRelease", + MetaIndexURI("Release"), MetaIndexInfo("Release"), "Release", + MetaIndexURI("Release.gpg"), MetaIndexInfo("Release.gpg"), "Release.gpg", + ComputeIndexTargets(), + new indexRecords (Dist)); + // Queue the translations std::vector const lang = APT::Configuration::getLanguages(true); @@ -224,16 +218,20 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool const &GetAll) const bool debReleaseIndex::IsTrusted() const { - string VerifiedSigFile = _config->FindDir("Dir::State::lists") + - URItoFileName(MetaIndexURI("Release")) + ".gpg"; - if(_config->FindB("APT::Authentication::TrustCDROM", false)) if(URI.substr(0,strlen("cdrom:")) == "cdrom:") return true; - + + string VerifiedSigFile = _config->FindDir("Dir::State::lists") + + URItoFileName(MetaIndexURI("Release")) + ".gpg"; + if (FileExists(VerifiedSigFile)) return true; - return false; + + VerifiedSigFile = _config->FindDir("Dir::State::lists") + + URItoFileName(MetaIndexURI("InRelease")); + + return FileExists(VerifiedSigFile); } vector *debReleaseIndex::GetIndexFiles() { diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc index f88d51fc5..c2ee1c347 100644 --- a/apt-pkg/indexcopy.cc +++ b/apt-pkg/indexcopy.cc @@ -722,7 +722,8 @@ bool SigVerify::RunGPGV(std::string const &File, std::string const &FileGPG, } Args.push_back(FileGPG.c_str()); - Args.push_back(File.c_str()); + if (FileGPG != File) + Args.push_back(File.c_str()); Args.push_back(NULL); if (Debug == true) diff --git a/apt-pkg/indexrecords.cc b/apt-pkg/indexrecords.cc index eb9a36866..10e154ad2 100644 --- a/apt-pkg/indexrecords.cc +++ b/apt-pkg/indexrecords.cc @@ -55,14 +55,17 @@ bool indexRecords::Load(const string Filename) /*{{{*/ } pkgTagSection Section; - if (TagFile.Step(Section) == false) - { - strprintf(ErrorText, _("No sections in Release file %s"), Filename.c_str()); - return false; - } - const char *Start, *End; - Section.Get (Start, End, 0); + // Skip over sections beginning with ----- as this is an idicator for clearsigns + do { + if (TagFile.Step(Section) == false) + { + strprintf(ErrorText, _("No sections in Release file %s"), Filename.c_str()); + return false; + } + + Section.Get (Start, End, 0); + } while (End - Start > 5 && strncmp(Start, "-----", 5) == 0); Suite = Section.FindS("Suite"); Dist = Section.FindS("Codename"); diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index 96a681bec..4a2f3f7e6 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -399,9 +399,13 @@ bool pkgTagSection::FindFlag(const char *Tag,unsigned long &Flags, const char *Stop; if (Find(Tag,Start,Stop) == false) return true; - - switch (StringToBool(string(Start,Stop))) - { + return FindFlag(Flags, Flag, Start, Stop); +} +bool const pkgTagSection::FindFlag(unsigned long &Flags, unsigned long Flag, + char const* Start, char const* Stop) +{ + switch (StringToBool(string(Start, Stop))) + { case 0: Flags &= ~Flag; return true; diff --git a/apt-pkg/tagfile.h b/apt-pkg/tagfile.h index 6891c1d81..61491aa04 100644 --- a/apt-pkg/tagfile.h +++ b/apt-pkg/tagfile.h @@ -60,6 +60,8 @@ 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, + const char* Start, const char* Stop); bool Scan(const char *Start,unsigned long MaxLength); inline unsigned long size() const {return Stop - Section;}; void Trim(); diff --git a/debian/changelog b/debian/changelog index b74508804..59f516751 100644 --- a/debian/changelog +++ b/debian/changelog @@ -53,11 +53,14 @@ apt (0.8.11+wheezy) unstable; urgency=low - operate optional on gzip compressed pdiffs * apt-pkg/acquire-item.cc: - don't uncompress downloaded pdiff files before feeding it to rred + - try downloading clearsigned InRelease before trying Release.gpg * cmdline/apt-key: - don't set trustdb-name as non-root so 'list' and 'finger' can be used without being root (Closes: #393005, #592107) + * apt-pkg/deb/deblistparser.cc: + - rewrite LoadReleaseInfo to cope with clearsigned Releasefiles - -- David Kalnischkies Sun, 16 Jan 2011 17:23:28 +0100 + -- David Kalnischkies Thu, 20 Jan 2011 14:52:32 +0100 apt (0.8.10) unstable; urgency=low diff --git a/doc/apt-secure.8.xml b/doc/apt-secure.8.xml index f345c3f89..f8ff678b9 100644 --- a/doc/apt-secure.8.xml +++ b/doc/apt-secure.8.xml @@ -148,8 +148,8 @@ (you should make sure you are using a trusted communication channel when retrieving it), add it with apt-key and then run apt-get update so that apt can download - and verify the Release.gpg files from the archives you - have configured. + and verify the InRelease or Release.gpg + files from the archives you have configured. @@ -166,6 +166,7 @@ (provided in apt-utils). Sign it. You can do this by running + gpg --clearsign -o InRelease Release and gpg -abs -o Release.gpg Release. Publish the key fingerprint, diff --git a/test/integration/Packages-releasefile-verification b/test/integration/Packages-releasefile-verification new file mode 100644 index 000000000..29a385f4f --- /dev/null +++ b/test/integration/Packages-releasefile-verification @@ -0,0 +1,18 @@ +Package: apt +Version: 0.7.25.3 +Architecture: i386 +Maintainer: APT Development Team +Installed-Size: 5244 +Replaces: libapt-pkg-dev (<< 0.3.7), libapt-pkg-doc (<< 0.3.7) +Provides: libapt-pkg-libc6.9-6-4.8 +Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt +Filename: apt.deb +Size: 0 +MD5sum: d41d8cd98f00b204e9800998ecf8427e +Description: Advanced front-end for dpkg + This is Debian's next generation front-end for the dpkg package manager. + It provides the apt-get utility and APT dselect method that provides a + simpler, safer way to install and upgrade packages. + . + APT features complete installation ordering, multiple source capability + and several other unique features, see the Users Guide in apt-doc. diff --git a/test/integration/Packages-releasefile-verification-new b/test/integration/Packages-releasefile-verification-new new file mode 100644 index 000000000..e3b2edf1f --- /dev/null +++ b/test/integration/Packages-releasefile-verification-new @@ -0,0 +1,21 @@ +Package: apt +Priority: important +Section: admin +Installed-Size: 5672 +Maintainer: APT Development Team +Architecture: i386 +Version: 0.8.0~pre1 +Replaces: manpages-pl (<< 20060617-3~) +Provides: libapt-pkg4.10 +Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt +Conflicts: python-apt (<< 0.7.93.2~) +Filename: apt.deb +Size: 0 +MD5sum: d41d8cd98f00b204e9800998ecf8427e +Description: Advanced front-end for dpkg + This is Debian's next generation front-end for the dpkg package manager. + It provides the apt-get utility and APT dselect method that provides a + simpler, safer way to install and upgrade packages. + . + APT features complete installation ordering, multiple source capability + and several other unique features, see the Users Guide in apt-doc. diff --git a/test/integration/framework b/test/integration/framework index 5d54e49b6..cb3fca35d 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -383,6 +383,7 @@ buildaptarchivefromfiles() { generatereleasefiles() { msgninfo "\tGenerate Release files… " + local DATE="${1:-now}" if [ -e aptarchive/dists ]; then for dir in $(find ./aptarchive/dists -mindepth 1 -maxdepth 1 -type d); do local CODENAME="$(echo "$dir" | cut -d'/' -f 4)" @@ -395,6 +396,11 @@ NotAutomatic: yes' $dir/Release else aptftparchive -qq release ./aptarchive | sed -e '/0 Release$/ d' > aptarchive/Release # remove the self reference fi + if [ "$DATE" != "now" ]; then + for release in $(find ./aptarchive -name 'Release'); do + touch -d "$1" $release + done + fi msgdone "info" } @@ -455,6 +461,7 @@ signreleasefiles() { done for RELEASE in $(find aptarchive/ -name Release); do gpg --yes --no-default-keyring $SECKEYS $PUBKEYS --default-key "$SIGNER" -abs -o ${RELEASE}.gpg ${RELEASE} + gpg --yes --no-default-keyring $SECKEYS $PUBKEYS --default-key "$SIGNER" --clearsign -o "$(echo "${RELEASE}" | sed 's#/Release$#/InRelease#')" $RELEASE done msgdone "info" } diff --git a/test/integration/marvinparanoid.pub b/test/integration/marvinparanoid.pub new file mode 100644 index 000000000..9a59c2e40 Binary files /dev/null and b/test/integration/marvinparanoid.pub differ diff --git a/test/integration/marvinparanoid.sec b/test/integration/marvinparanoid.sec new file mode 100644 index 000000000..ff54e8680 Binary files /dev/null and b/test/integration/marvinparanoid.sec differ diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files index 66792899a..c5379dca0 100755 --- a/test/integration/test-bug-595691-empty-and-broken-archive-files +++ b/test/integration/test-bug-595691-empty-and-broken-archive-files @@ -74,28 +74,24 @@ testoverfile() { setupcompressor "$1" createemptyfile 'en' - testaptgetupdate "Get:1 file: Release.gpg [] -Get:2 file: Release [] + testaptgetupdate "Get:1 file: InRelease [] Ign file:$(readlink -f aptarchive)/ Translation-en Reading package lists..." "empty file en.$COMPRESS over file" createemptyarchive 'en' - testaptgetupdate "Get:1 file: Release.gpg [] -Get:2 file: Release [] + testaptgetupdate "Get:1 file: InRelease [] Reading package lists..." "empty archive en.$COMPRESS over file" createemptyarchive 'Packages' # FIXME: Why omits the file transport the Packages Get line? #Get:3 file: Packages [] testaptgetupdate "Ign file:$(readlink -f aptarchive)/ Translation-en -Get:1 file: Release.gpg [] -Get:2 file: Release [] +Get:1 file: InRelease [] Reading package lists..." "empty archive Packages.$COMPRESS over file" createemptyfile 'Packages' testaptgetupdate "Ign file:$(readlink -f aptarchive)/ Translation-en -Get:1 file: Release.gpg [] -Get:2 file: Release [] +Get:1 file: InRelease [] Err file: Packages Undetermined Error W: Failed to fetch file:$(readlink -f aptarchive/Packages.$COMPRESS) Undetermined Error @@ -107,33 +103,29 @@ testoverhttp() { setupcompressor "$1" createemptyfile 'en' - testaptgetupdate "Get:1 http://localhost Release.gpg [] + testaptgetupdate "Get:1 http://localhost InRelease [] Get:2 http://localhost/ Translation-en -Get:3 http://localhost Release [] +Get:3 http://localhost Packages [] Ign http://localhost/ Translation-en -Get:4 http://localhost Packages [] Reading package lists..." "empty file en.$COMPRESS over http" createemptyarchive 'en' - testaptgetupdate "Get:1 http://localhost Release.gpg [] + testaptgetupdate "Get:1 http://localhost InRelease [] Get:2 http://localhost/ Translation-en [] -Get:3 http://localhost Release [] -Get:4 http://localhost Packages [] +Get:3 http://localhost Packages [] Reading package lists..." "empty archive en.$COMPRESS over http" createemptyarchive 'Packages' - testaptgetupdate "Get:1 http://localhost Release.gpg [] + testaptgetupdate "Get:1 http://localhost InRelease [] Ign http://localhost/ Translation-en -Get:2 http://localhost Release [] -Get:3 http://localhost Packages [] +Get:2 http://localhost Packages [] Reading package lists..." "empty archive Packages.$COMPRESS over http" createemptyfile 'Packages' #FIXME: we should response with a good error message instead - testaptgetupdate "Get:1 http://localhost Release.gpg [] + testaptgetupdate "Get:1 http://localhost InRelease [] Ign http://localhost/ Translation-en -Get:2 http://localhost Release [] -Get:3 http://localhost Packages +Get:2 http://localhost Packages Err http://localhost Packages Undetermined Error W: Failed to fetch http://localhost:8080/Packages.$COMPRESS Undetermined Error diff --git a/test/integration/test-releasefile-verification b/test/integration/test-releasefile-verification new file mode 100755 index 000000000..961c49895 --- /dev/null +++ b/test/integration/test-releasefile-verification @@ -0,0 +1,160 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +buildaptarchive +setupflataptarchive +changetowebserver + +prepare() { + local DATE="${2:-now}" + if [ "$DATE" = 'now' -a "$1" = "${PKGFILE}-new" ]; then + DATE='now + 6 days' + fi + for release in $(find rootdir/var/lib/apt/lists 2> /dev/null); do + touch -d 'now - 6 hours' $release + done + rm -rf rootdir/var/cache/apt/archives + rm -f rootdir/var/cache/apt/*.bin + cp $1 aptarchive/Packages + find aptarchive -name 'Release' -delete + cat aptarchive/Packages | gzip > aptarchive/Packages.gz + cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2 + cat aptarchive/Packages | lzma > aptarchive/Packages.lzma + generatereleasefiles "$DATE" +} + +installaptold() { + testequal 'Reading package lists... +Building dependency tree... +Suggested packages: + aptitude synaptic wajig dpkg-dev apt-doc bzip2 lzma python-apt +The following NEW packages will be installed: + apt +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +After this operation, 5370 kB of additional disk space will be used. +Get:1 http://localhost/ apt 0.7.25.3 +Download complete and in download only mode' aptget install apt -dy +} + +installaptnew() { + testequal 'Reading package lists... +Building dependency tree... +Suggested packages: + aptitude synaptic wajig dpkg-dev apt-doc bzip2 lzma python-apt +The following NEW packages will be installed: + apt +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +After this operation, 5808 kB of additional disk space will be used. +Get:1 http://localhost/ apt 0.8.0~pre1 +Download complete and in download only mode' aptget install apt -dy +} + +failaptold() { + testequal 'Reading package lists... +Building dependency tree... +Suggested packages: + aptitude synaptic wajig dpkg-dev apt-doc bzip2 lzma python-apt +The following NEW packages will be installed: + apt +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +After this operation, 5370 kB of additional disk space will be used. +WARNING: The following packages cannot be authenticated! + apt +E: There are problems and -y was used without --force-yes' aptget install apt -dy +} + +failaptnew() { + testequal 'Reading package lists... +Building dependency tree... +Suggested packages: + aptitude synaptic wajig dpkg-dev apt-doc bzip2 lzma python-apt +The following NEW packages will be installed: + apt +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +After this operation, 5808 kB of additional disk space will be used. +WARNING: The following packages cannot be authenticated! + apt +E: There are problems and -y was used without --force-yes' aptget install apt -dy +} + +# fake our downloadable file +touch aptarchive/apt.deb + +PKGFILE="${TESTDIR}/$(echo "$(basename $0)" | sed 's#^test-#Packages-#')" + +runtest() { + prepare ${PKGFILE} + rm -rf rootdir/var/lib/apt/lists + signreleasefiles 'Joe Sixpack' + find aptarchive/ -name "$DELETEFILE" -delete + msgtest 'Cold archive signed by' 'Joe Sixpack' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}) +" aptcache show apt + installaptold + + prepare ${PKGFILE}-new + signreleasefiles 'Joe Sixpack' + find aptarchive/ -name "$DELETEFILE" -delete + msgtest 'Good warm archive signed by' 'Joe Sixpack' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}-new) +" aptcache show apt + installaptnew + + + prepare ${PKGFILE} + rm -rf rootdir/var/lib/apt/lists + signreleasefiles 'Marvin Paranoid' + find aptarchive/ -name "$DELETEFILE" -delete + msgtest 'Cold archive signed by' 'Marvin Paranoid' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgpass || msgfail + testequal "$(cat ${PKGFILE}) +" aptcache show apt + failaptold + + prepare ${PKGFILE}-new + # weborf doesn't support If-Range + for release in $(find rootdir/var/lib/apt/lists/partial/ -name '*Release'); do + rm $release + touch $release + done + signreleasefiles 'Joe Sixpack' + find aptarchive/ -name "$DELETEFILE" -delete + msgtest 'Bad warm archive signed by' 'Joe Sixpack' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}-new) +" aptcache show apt + installaptnew + + + prepare ${PKGFILE} + rm -rf rootdir/var/lib/apt/lists + signreleasefiles 'Joe Sixpack' + find aptarchive/ -name "$DELETEFILE" -delete + msgtest 'Cold archive signed by' 'Joe Sixpack' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}) +" aptcache show apt + installaptold + + prepare ${PKGFILE}-new + signreleasefiles 'Marvin Paranoid' + find aptarchive/ -name "$DELETEFILE" -delete + msgtest 'Good warm archive signed by' 'Marvin Paranoid' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgpass || msgfail + testequal "$(cat ${PKGFILE}) +" aptcache show apt + installaptold +} + +DELETEFILE="InRelease" +runtest +DELETEFILE="Release.gpg" +runtest -- cgit v1.2.3 From 3cb3fe76e90283a5b3fe7105e4854d4bac13bfeb Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 20 Jan 2011 16:01:40 +0100 Subject: * ftparchive/writer.cc: - add config option to search for more patterns in release command --- debian/changelog | 4 +++- doc/apt-ftparchive.1.xml | 11 +++++++---- ftparchive/writer.cc | 26 +++++++++++++++----------- ftparchive/writer.h | 2 ++ 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/debian/changelog b/debian/changelog index 59f516751..ca88901a1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -59,8 +59,10 @@ apt (0.8.11+wheezy) unstable; urgency=low can be used without being root (Closes: #393005, #592107) * apt-pkg/deb/deblistparser.cc: - rewrite LoadReleaseInfo to cope with clearsigned Releasefiles + * ftparchive/writer.cc: + - add config option to search for more patterns in release command - -- David Kalnischkies Thu, 20 Jan 2011 14:52:32 +0100 + -- David Kalnischkies Thu, 20 Jan 2011 16:00:54 +0100 apt (0.8.10) unstable; urgency=low diff --git a/doc/apt-ftparchive.1.xml b/doc/apt-ftparchive.1.xml index 852da8ad1..0090d21d9 100644 --- a/doc/apt-ftparchive.1.xml +++ b/doc/apt-ftparchive.1.xml @@ -113,10 +113,13 @@ release The release command generates a Release file from a - directory tree. It recursively searches the given directory for - Packages, Packages.gz, Packages.bz2, Sources, Sources.gz, - Sources.bz2, Release and md5sum.txt files. It then writes to - stdout a Release file containing an MD5 digest and SHA1 digest + directory tree. It recursively searches the given directory for uncompressed + Packages and Sources files and the ones + compressed with gzip, bzip2 or lzma + as well as Release and md5sum.txt files by default + (APT::FTPArchive::Release::Default-Patterns). Additional filename patterns + can be added by listing them in APT::FTPArchive::Release::Patterns. + It then writes to stdout a Release file containing a MD5, SHA1 and SHA256 digest for each file. Values for the additional metadata fields in the Release file are diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index d7d699ddc..55fac89bd 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -306,7 +306,7 @@ PackagesWriter::PackagesWriter(string const &DB,string const &Overrides,string c Output = stdout; SetExts(".deb .udeb"); DeLinkLimit = 0; - + // Process the command line options DoMD5 = _config->FindB("APT::FTPArchive::MD5",true); DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true); @@ -907,16 +907,20 @@ bool ContentsWriter::ReadFromPkgs(string const &PkgFile,string const &PkgCompres /* */ ReleaseWriter::ReleaseWriter(string const &DB) { - AddPattern("Packages"); - AddPattern("Packages.gz"); - AddPattern("Packages.bz2"); - AddPattern("Packages.lzma"); - AddPattern("Sources"); - AddPattern("Sources.gz"); - AddPattern("Sources.bz2"); - AddPattern("Sources.lzma"); - AddPattern("Release"); - AddPattern("md5sum.txt"); + if (_config->FindB("APT::FTPArchive::Release::Default-Patterns", true) == true) + { + AddPattern("Packages"); + AddPattern("Packages.gz"); + AddPattern("Packages.bz2"); + AddPattern("Packages.lzma"); + AddPattern("Sources"); + AddPattern("Sources.gz"); + AddPattern("Sources.bz2"); + AddPattern("Sources.lzma"); + AddPattern("Release"); + AddPattern("md5sum.txt"); + } + AddPatterns(_config->FindVector("APT::FTPArchive::Release::Patterns")); Output = stdout; time_t const now = time(NULL); diff --git a/ftparchive/writer.h b/ftparchive/writer.h index 49d430c47..3796f79f6 100644 --- a/ftparchive/writer.h +++ b/ftparchive/writer.h @@ -69,6 +69,8 @@ class FTWScanner bool LoadFileList(string const &BaseDir,string const &File); void ClearPatterns() { Patterns.clear(); }; void AddPattern(string const &Pattern) { Patterns.push_back(Pattern); }; + void AddPattern(char const *Pattern) { Patterns.push_back(Pattern); }; + void AddPatterns(std::vector const &patterns) { Patterns.insert(Patterns.end(), patterns.begin(), patterns.end()); }; bool SetExts(string const &Vals); FTWScanner(string const &Arch = string()); -- cgit v1.2.3 From b720d0bd5308b65dc08b930005c2d9b6dfc31bb9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 20 Jan 2011 16:02:15 +0100 Subject: ensure that tempfiles used for comparision are removed --- test/integration/framework | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index cb3fca35d..f55cfddfa 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -92,6 +92,11 @@ aptitude() { fi } +addtrap() { + CURRENTTRAP="$CURRENTTRAP $1" + trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM +} + setupenvironment() { TMPWORKINGDIRECTORY=$(mktemp -d) local TESTDIR=$(readlink -f $(dirname $0)) @@ -99,8 +104,7 @@ setupenvironment() { BUILDDIRECTORY="${TESTDIR}/../../build/bin" test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" local OLDWORKINGDIRECTORY=$(pwd) - CURRENTTRAP="cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" - trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM + addtrap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY;" cd $TMPWORKINGDIRECTORY mkdir rootdir aptarchive keys cd rootdir @@ -469,8 +473,7 @@ signreleasefiles() { changetowebserver() { if which weborf > /dev/null; then weborf -xb aptarchive/ 2>&1 > /dev/null & - CURRENTTRAP="kill $!; $CURRENTTRAP" - trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM + addtrap "kill $!;" local APTARCHIVE="file://$(readlink -f ./aptarchive)" for LIST in $(find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list'); do sed -i $LIST -e "s#$APTARCHIVE#http://localhost:8080/#" @@ -504,17 +507,18 @@ testfileequal() { testequal() { local COMPAREFILE=$(mktemp) + addtrap "rm $COMPAREFILE;" echo "$1" > $COMPAREFILE shift msgtest "Test for equality of" "$*" $* 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail - rm $COMPAREFILE } testequalor2() { local COMPAREFILE1=$(mktemp) local COMPAREFILE2=$(mktemp) local COMPAREAGAINST=$(mktemp) + addtrap "rm $COMPAREFILE1 $COMPAREFILE2 $COMPAREAGAINST;" echo "$1" > $COMPAREFILE1 echo "$2" > $COMPAREFILE2 shift 2 @@ -525,7 +529,6 @@ testequalor2() { ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(checkdiff $COMPAREFILE1 $COMPAREAGAINST)" \ "\n${CINFO}Diff against OR 2${CNORMAL}" "$(checkdiff $COMPAREFILE2 $COMPAREAGAINST)" && msgfail ) - rm $COMPAREFILE1 $COMPAREFILE2 $COMPAREAGAINST } testshowvirtual() { @@ -542,11 +545,11 @@ N: Can't select versions from package '$1' as it purely virtual" VIRTUAL="${VIRTUAL} N: No packages found" local COMPAREFILE=$(mktemp) + addtrap "rm $COMPAREFILE;" local ARCH=$(dpkg-architecture -qDEB_HOST_ARCH_CPU) eval `apt-config shell ARCH APT::Architecture` echo "$VIRTUAL" | sed -e "s/:$ARCH//" -e 's/:all//' > $COMPAREFILE aptcache show -q=0 $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail - rm $COMPAREFILE } testnopackage() { -- cgit v1.2.3 From b761356f9a73e34325a0d85427300b58737c4d98 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 21 Jan 2011 22:03:42 +0100 Subject: avoid building simple packages with debhelper to speed it up a bit --- test/integration/framework | 48 ++++++++++++++++++++++++++++++-- test/integration/test-compressed-indexes | 6 ++-- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index f55cfddfa..5b83e7519 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -219,9 +219,53 @@ buildsimplenativepackage() { else DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)" fi - setupsimplenativepackage "$NAME" "$ARCH" "$VERSION" "$RELEASE" "$DEPENDENCIES" "$DESCRIPTION" "$SECTION" - buildpackage "incoming/${NAME}-${VERSION}" "$RELEASE" "$DISTSECTION" + local BUILDDIR=incoming/${NAME}-${VERSION} + + msgninfo "Build package ${NAME} in ${VERSIOM} for ${RELEASE} in ${DISTSECTION}… " + mkdir -p $BUILDDIR/debian/source + echo "* most suckless software product ever" > ${BUILDDIR}/FEATURES + echo "#!/bin/sh +echo '$NAME says \"Hello!\"'" > ${BUILDDIR}/${NAME} + + echo "Copyleft by Joe Sixpack $(date +%Y)" > ${BUILDDIR}/debian/copyright + echo "$NAME ($VERSION) $RELEASE; urgency=low + + * Initial release + + -- Joe Sixpack $(date -R)" > ${BUILDDIR}/debian/changelog + echo "Source: $NAME +Section: $SECTION +Priority: optional +Maintainer: Joe Sixpack +Standards-Version: 3.9.1 + +Package: $NAME +Architecture: $ARCH" > ${BUILDDIR}/debian/control + test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> ${BUILDDIR}/debian/control + if [ -z "$DESCRIPTION" ]; then + echo "Description: an autogenerated dummy ${NAME}=${VERSION}/${RELEASE} + If you find such a package installed on your system, + YOU did something horribly wrong! They are autogenerated + und used only by testcases for APT and surf no other propose…" >> ${BUILDDIR}/debian/control + else + echo "Description: $DESCRIPTION" >> ${BUILDIR}/debian/control + fi + echo '3.0 (native)' > ${BUILDDIR}/debian/source/format + local SRCS="$( (cd ${BUILDDIR}/..; dpkg-source -b ${NAME}-${VERSION} 2>&1) | grep '^dpkg-source: info: building' | grep -o '[a-z0-9._+~-]*$')" + + 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} + cp ${BUILDDIR}/${NAME} ${BUILDDIR}/debian/tmp/usr/bin + (cd ${BUILDDIR}; dpkg-gencontrol) + (cd ${BUILDDIR}/debian/tmp; md5sum $(find usr/ -type f) > DEBIAN/md5sums) + + dpkg-deb --build ${BUILDDIR}/debian/tmp incoming > /dev/null + echo "pool/${NAME}_${VERSION}_${ARCH}.deb" >> incoming/${RELEASE}.${DISTSECTION}.pkglist + for SRC in $SRCS; do + echo "pool/${SRC}" >> incoming/${RELEASE}.${DISTSECTION}.srclist + done rm -rf "incoming/${NAME}-${VERSION}" + msgdone "info" } buildpackage() { diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes index be33edbb7..99943574e 100755 --- a/test/integration/test-compressed-indexes +++ b/test/integration/test-compressed-indexes @@ -16,11 +16,11 @@ local GOODPOLICY="$(aptcache policy testpkg)" local GOODSHOWSRC="$(aptcache showsrc testpkg) " -test $(echo "$GOODSHOW" | grep -e '^Package: testpkg' -e '^Version: 1.0' -e '^Architecture: i386' | wc -l) -eq 3 +test $(echo "$GOODSHOW" | grep -e '^Package: testpkg' -e '^Version: 1.0' -e '^Architecture: i386' | wc -l) -eq 3 || msgdie 'show is broken' testequal "$GOODSHOW" aptcache show testpkg -test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 file:/' | wc -l) -eq 4 +test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 file:/' | wc -l) -eq 4 || msgdie 'policy is broken' testequal "$GOODPOLICY" aptcache policy testpkg -test $(echo "$GOODSHOWSRC" | grep -e '^Package: testpkg' -e '^Format: 3.0 (native)' -e '^Files:' -e '^Checksums-Sha256:' | wc -l) -eq 4 +test $(echo "$GOODSHOWSRC" | grep -e '^Package: testpkg' -e '^Format: 3.0 (native)' -e '^Files:' -e '^Checksums-Sha256:' | wc -l) -eq 4 || msgdie 'showsrc is broken' testequal "$GOODSHOWSRC" aptcache showsrc testpkg -- cgit v1.2.3 From b79eb4f7c93df4a4590d0f9ca2764a7a482bd579 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 22 Jan 2011 12:08:06 +0100 Subject: Close #184730: [apt-get] requested package abusively listed in "extra packages to be installed" --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index ca88901a1..3d5b26e52 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,7 +14,7 @@ apt (0.8.11+wheezy) unstable; urgency=low - change pkg/release behavior to use the new SetCandidateRelease so installing packages from experimental or backports is easier - really do not show packages in the extra section if they were - requested on the commandline, e.g. with a modifier + requested on the commandline, e.g. with a modifier (Closes: #184730) * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) - depend on debhelper 7 to raise compat level -- cgit v1.2.3 From 8d16c61781068762a83edb6a75b3343eb6000585 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 24 Jan 2011 15:37:59 +0100 Subject: include Index files by default in the Release file --- debian/changelog | 3 ++- ftparchive/writer.cc | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 3d5b26e52..399da2c8d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -61,8 +61,9 @@ apt (0.8.11+wheezy) unstable; urgency=low - rewrite LoadReleaseInfo to cope with clearsigned Releasefiles * ftparchive/writer.cc: - add config option to search for more patterns in release command + - include Index files by default in the Release file - -- David Kalnischkies Thu, 20 Jan 2011 16:00:54 +0100 + -- David Kalnischkies Mon, 24 Jan 2011 15:36:50 +0100 apt (0.8.10) unstable; urgency=low diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 55fac89bd..9cdca8d3e 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -918,6 +918,7 @@ ReleaseWriter::ReleaseWriter(string const &DB) AddPattern("Sources.bz2"); AddPattern("Sources.lzma"); AddPattern("Release"); + AddPattern("Index"); AddPattern("md5sum.txt"); } AddPatterns(_config->FindVector("APT::FTPArchive::Release::Patterns")); -- cgit v1.2.3 From 321dfa5e570389c489b0f7f0f34ab983cebe7463 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 24 Jan 2011 15:41:57 +0100 Subject: do not add Index file by hand now that ftparchive does it by itself --- test/integration/test-pdiff-usage | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/test/integration/test-pdiff-usage b/test/integration/test-pdiff-usage index eb1818bcd..0a8293018 100755 --- a/test/integration/test-pdiff-usage +++ b/test/integration/test-pdiff-usage @@ -23,7 +23,6 @@ cat aptarchive/Packages | gzip > aptarchive/Packages.gz cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2 cat aptarchive/Packages | lzma > aptarchive/Packages.lzma rm -rf aptarchive/Packages.diff -aptftparchive release aptarchive/ > aptarchive/Release mkdir -p aptarchive/Packages.diff PATCHFILE="aptarchive/Packages.diff/$(date +%Y-%m-%d-%H%M.%S)" diff -e ${PKGFILE} ${PKGFILE}-new > ${PATCHFILE} || true @@ -36,15 +35,9 @@ SHA1-History: SHA1-Patches: 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-0814.28 $(sha1sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE)" > $PATCHINDEX -sed -i aptarchive/Release \ - -e "/^MD5Sum:/ a\ - \ $(md5sum $PATCHINDEX | cut -d' ' -f 1) $(stat -c%s $PATCHINDEX) Packages.diff/Index" \ - -e "/^SHA1:/ a\ - \ $(sha1sum $PATCHINDEX | cut -d' ' -f 1) $(stat -c%s $PATCHINDEX) Packages.diff/Index" \ - -e "/^SHA256:/ a\ - \ $(sha256sum $PATCHINDEX | cut -d' ' -f 1) $(stat -c%s $PATCHINDEX) Packages.diff/Index" +generatereleasefiles signreleasefiles -rm -f aptarchive/Packages aptarchive/Packages.gz aptarchive/Packages.bz2 aptarchive/Packages.lzma +find aptarchive -name 'Packages*' -type f -delete aptget update -qq testnopackage oldstuff -- cgit v1.2.3 From 38b251951febed4617f7992e4965b09a8bb732ca Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 25 Jan 2011 10:23:23 +0100 Subject: * ftparchive/apt-ftparchive.cc: - fix endless loop for multiple TranslationsWriters --- debian/changelog | 4 ++++ ftparchive/apt-ftparchive.cc | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index cf56a384e..e08e99834 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,10 @@ apt (0.8.10) unstable; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. + [ David Kalnischkies ] + * ftparchive/apt-ftparchive.cc: + - fix endless loop for multiple TranslationsWriters + -- Michael Vogt Mon, 22 Nov 2010 10:40:45 +0100 apt (0.8.9) unstable; urgency=low diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index 73d34249b..0c29002e6 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -832,7 +832,7 @@ bool Generate(CommandLine &CmdL) } // close the Translation master files - for (vector::iterator I = PkgList.begin(); I != PkgList.end(); I++) + for (vector::reverse_iterator I = PkgList.rbegin(); I != PkgList.rend(); I++) if (I->TransWriter != NULL && I->TransWriter->DecreaseRefCounter() == 0) delete I->TransWriter; -- cgit v1.2.3 From f92800f801341091b25af96c34927529f36ad65a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 25 Jan 2011 11:06:21 +0100 Subject: releasing version 0.8.10.2 --- debian/changelog | 8 ++++++++ ftparchive/apt-ftparchive.cc | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index e983bbb3f..a4e8e5c90 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.10.2) unstable; urgency=low + + [ David Kalnischkies ] + * ftparchive/apt-ftparchive.cc: + - fix endless loop for multiple TranslationsWriters + + -- Michael Vogt Tue, 25 Jan 2011 10:26:15 +0100 + apt (0.8.10.1) unstable; urgency=low [ Christian Perrier ] diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index 73d34249b..0c29002e6 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -832,7 +832,7 @@ bool Generate(CommandLine &CmdL) } // close the Translation master files - for (vector::iterator I = PkgList.begin(); I != PkgList.end(); I++) + for (vector::reverse_iterator I = PkgList.rbegin(); I != PkgList.rend(); I++) if (I->TransWriter != NULL && I->TransWriter->DecreaseRefCounter() == 0) delete I->TransWriter; -- cgit v1.2.3 From 0321c13c6bb437d64d9e6e3b7de47373d241ef03 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 25 Jan 2011 11:49:07 +0100 Subject: po/es.po: Updated, plus fixes encoding issues and fixes two fuzzy strings, thanks to Javier Fernandez-Sanguino (closes: #610692) --- debian/changelog | 4 + po/es.po | 1373 +++++++++++++++++++++++++++--------------------------- 2 files changed, 699 insertions(+), 678 deletions(-) diff --git a/debian/changelog b/debian/changelog index e08e99834..a354c9f8c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,10 @@ apt (0.8.10) unstable; urgency=low * ftparchive/apt-ftparchive.cc: - fix endless loop for multiple TranslationsWriters + [ Programs translations ] + * po/es.po: Updated, plus fixes encoding issues and fixes two fuzzy + strings, thanks to Javier Fernandez-Sanguino (closes: #610692) + -- Michael Vogt Mon, 22 Nov 2010 10:40:45 +0100 apt (0.8.9) unstable; urgency=low diff --git a/po/es.po b/po/es.po index f5cd13893..a92ed128c 100644 --- a/po/es.po +++ b/po/es.po @@ -1,36 +1,90 @@ # Advanced Package Transfer - APT message translation catalog -# Copyright (C) 2002 Free Software Foundation, Inc. -# Rafael Sepulveda , 2002. -# Asier Llano Palacios -# Ruben Porras Campo 2004 -# Javier Fernandez-Sanguino 2003, 2006-2008 +# Copyright (C) 2002-2010 Free Software Foundation, Inc. +# +# +# Curren translator: +# - Javier Fernandez-Sanguino 2003, 2006-2008 +# +# Previous Translators and reviewers: +# - Rafael Sepulveda , 2002. +# - Asier Llano Palacios +# - Ruben Porras Campo 2004 +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas y normas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# Si tiene dudas o consultas sobre esta traducción consulte con el último +# traductor (campo Last-Translator) y ponga en copia a la lista de +# traducción de Debian al español () +# # msgid "" msgstr "" -"Project-Id-Version: apt 0.7.18\n" +"Project-Id-Version: apt 0.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-28 17:23+0200\n" -"PO-Revision-Date: 2008-11-15 21:52+0100\n" -"Last-Translator: Javier Fernandez-Sanguino \n" +"POT-Creation-Date: 2010-11-30 11:14+0100\n" +"PO-Revision-Date: 2011-01-24 11:47+0100\n" +"Last-Translator: Javier Fernández-Sanguino Peña \n" "Language-Team: Debian Spanish \n" -"Language: \n" +"Language: es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-POFile-SpellExtra: BD getaddrinfo dist show xvcg Filename sources cachés\n" +"X-POFile-SpellExtra: dumpavail apport scanpackages yes pts URIs upgrade\n" +"X-POFile-SpellExtra: Hash TAR mmap fix Immediate li source add Pathprefix\n" +"X-POFile-SpellExtra: ftparchive policy main URIS qq Resolve Incoming\n" +"X-POFile-SpellExtra: NewFileVer depends get libc GPG URI sdiversions\n" +"X-POFile-SpellExtra: Length Limit PASS ConfFile NewVersion showpkg IPC\n" +"X-POFile-SpellExtra: Super unmet APT registrable NewPackage AddDiversion\n" +"X-POFile-SpellExtra: dists release dselect dir Hmmm debconf force dump ej\n" +"X-POFile-SpellExtra: list Section GraphViz Priority FindPkg gencaches\n" +"X-POFile-SpellExtra: Valid remove Ign DEB PORT LoopBreak tmp ftp\n" +"X-POFile-SpellExtra: AutoRemover stats AF Until delink unmarkauto firms\n" +"X-POFile-SpellExtra: ref Dpkg tar autoremove Obj missing update binary\n" +"X-POFile-SpellExtra: sobreescribe proxy org packages debs generate MD\n" +"X-POFile-SpellExtra: search ProxyLogin limin AllUpgrade Md Range dotty Pre\n" +"X-POFile-SpellExtra: NewFileDesc empaquetamiento root realloc gpgv apt\n" +"X-POFile-SpellExtra: pkgnames Release BinaryPath old DeLink showauto\n" +"X-POFile-SpellExtra: pkgProblemResolver parseable nstall\n" +"X-POFile-SpellExtra: desempaquetamiento script DESACTUALIZARÁN\n" +"X-POFile-SpellExtra: InstallPackages PreDepende lu sobreescribir Packages\n" +"X-POFile-SpellExtra: shell desincronizado override MaxReports cdrom dpkg\n" +"X-POFile-SpellExtra: socket info md Force temp dep CollectFileProvides\n" +"X-POFile-SpellExtra: spartial scansources Only dev purge nfs Intro install\n" +"X-POFile-SpellExtra: deb Sobreescribiendo openpty USER UsePackage vd\n" +"X-POFile-SpellExtra: markauto DB DropNode Content rdepends conf zu hash\n" +"X-POFile-SpellExtra: check contents paq Err Sources MMap lih decompresor\n" +"X-POFile-SpellExtra: build config EPRT http Package liseg dscs Remove\n" +"X-POFile-SpellExtra: sortpkgs sB man extracttemplates bzr potato clear\n" +"X-POFile-SpellExtra: autoclean showsrc desactualizados clean gzip TYPE\n" +"X-POFile-SpellExtra: sinfo Acquire\n" + #: cmdline/apt-cache.cc:156 #, c-format msgid "Package %s version %s has an unmet dep:\n" -msgstr "El paquete %s versin %s tiene dependencias incumplidas:\n" +msgstr "El paquete %s versión %s tiene dependencias incumplidas:\n" #: cmdline/apt-cache.cc:284 msgid "Total package names: " msgstr "Nombres de paquetes totales: " #: cmdline/apt-cache.cc:286 -#, fuzzy msgid "Total package structures: " -msgstr "Nombres de paquetes totales: " +msgstr "Estructuras de paquetes totales: " #: cmdline/apt-cache.cc:326 msgid " Normal packages: " @@ -42,7 +96,7 @@ msgstr " Paquetes virtuales puros: " #: cmdline/apt-cache.cc:328 msgid " Single virtual packages: " -msgstr " Paquetes virtuales nicos: " +msgstr " Paquetes virtuales únicos: " #: cmdline/apt-cache.cc:329 msgid " Mixed virtual packages: " @@ -58,7 +112,7 @@ msgstr "Versiones diferentes totales: " #: cmdline/apt-cache.cc:334 msgid "Total distinct descriptions: " -msgstr "Descipciones diferentes totales: " +msgstr "Descripciones diferentes totales: " #: cmdline/apt-cache.cc:336 msgid "Total dependencies: " @@ -66,11 +120,11 @@ msgstr "Dependencias totales: " #: cmdline/apt-cache.cc:339 msgid "Total ver/file relations: " -msgstr "Relaciones versin/archivo totales: " +msgstr "Relaciones versión/archivo totales: " #: cmdline/apt-cache.cc:341 msgid "Total Desc/File relations: " -msgstr "Relaciones descripcin/archivo totales: " +msgstr "Relaciones descripción/archivo totales: " #: cmdline/apt-cache.cc:343 msgid "Total Provides mappings: " @@ -83,7 +137,7 @@ msgstr "Cadenas globalizadas totales: " #: cmdline/apt-cache.cc:369 msgid "Total dependency version space: " -msgstr "Espacio de versin de dependencias total: " +msgstr "Espacio de versión de dependencias total: " #: cmdline/apt-cache.cc:374 msgid "Total slack space: " @@ -96,17 +150,16 @@ msgstr "Espacio registrado total: " #: cmdline/apt-cache.cc:513 cmdline/apt-cache.cc:1194 #, c-format msgid "Package file %s is out of sync." -msgstr "El archivo de paquetes %s est desincronizado." +msgstr "El archivo de paquetes %s está desincronizado." #: cmdline/apt-cache.cc:1273 -#, fuzzy msgid "You must give at least one search pattern" -msgstr "Debes dar cuando menos un nombre de archivo" +msgstr "Debe proporcionar al menos un patrón de búsqueda" #: cmdline/apt-cache.cc:1429 cmdline/apt-cache.cc:1431 #: cmdline/apt-cache.cc:1508 msgid "No packages found" -msgstr "No se encontr ningn paquete" +msgstr "No se encontró ningún paquete" #: cmdline/apt-cache.cc:1503 apt-pkg/cacheset.cc:440 #, c-format @@ -120,7 +173,7 @@ msgstr "Archivos de paquetes:" #: cmdline/apt-cache.cc:1540 cmdline/apt-cache.cc:1638 msgid "Cache is out of sync, can't x-ref a package file" msgstr "" -"Cach fuera de sincronismo, no se puede hacer x-ref a un archivo de paquetes" +"Caché fuera de sincronismo, no se puede hacer x-ref a un archivo de paquetes" #. Show any packages have explicit pins #: cmdline/apt-cache.cc:1554 @@ -150,7 +203,7 @@ msgstr " Pin del paquete: " #. Show the priority tables #: cmdline/apt-cache.cc:1624 msgid " Version table:" -msgstr " Tabla de versin:" +msgstr " Tabla de versión:" #: cmdline/apt-cache.cc:1738 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589 @@ -160,7 +213,6 @@ msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s para %s compilado en %s %s\n" #: cmdline/apt-cache.cc:1745 -#, fuzzy msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] add file1 [file2 ...]\n" @@ -199,59 +251,56 @@ msgid "" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" msgstr "" -"Uso: apt-cache [opciones] orden\n" -" apt-cache [opciones] add archivo1 [archivo2 ...]\n" -" apt-cache [opciones] showpkg paq1 [paq2 ...]\n" -" apt-cache [opciones] showsrc paq1 [paq2 ...]\n" +"Modo de uso: apt-cache [opciones] orden\n" +" apt-cache [opciones] add archivo1 [archivo2 ...]\n" +" apt-cache [opciones] showpkg paq1 [paq2 ...]\n" +" apt-cache [opciones] showsrc paq1 [paq2 ...]\n" "\n" "apt-cache es una herramienta de bajo nivel que se utiliza para manipular\n" -"los archivos binarios de cach de APT y consultar informacin sobre stos\n" +"los archivos binarios de caché de APT y consultar información sobre éstos\n" "\n" -"rdenes:\n" -" add - Agrega un archivo de paquete a la cach fuente\n" -" gencaches - Crea el ambas cachs, la de paquetes y la de fuentes\n" -" showpkg - Muestra alguna informacin general para un slo paquete\n" -" showsrc - Muestra la informacin de fuente\n" -" stats - Muestra algunas estadsticas bsicas\n" +"Órdenes:\n" +" add - Agrega un archivo de paquete a la caché de fuentes\n" +" gencaches - Crea ambas cachés, la de paquetes y la de fuentes\n" +" showpkg - Muestra información general para un solo paquete\n" +" showsrc - Muestra la información de fuentes\n" +" stats - Muestra algunas estadísticas básicas\n" " dump - Muestra el archivo entero en un formato terso\n" -" dumpavail - Imprime un archivo disponible a la salida estndar\n" +" dumpavail - Imprime un archivo disponible a la salida estándar\n" " unmet - Muestra dependencias incumplidas\n" -" search - Busca en la lista de paquetes por un patrn de expresin " -"regular\n" +" search - Busca en la lista de paquetes por un patrón de expresión regular\n" " show - Muestra un registro legible para el paquete\n" -" depends - Muestra la informacin de dependencias en bruto para el " -"paquete\n" -" rdepends - Muestra la informacin de dependencias inversas del paquete\n" +" showauto - Muestra una lista de los paquetes instalados de forma automática\n" +" depends - Muestra la información de dependencias en bruto para el paquete\n" +" rdepends - Muestra la información de dependencias inversas del paquete\n" " pkgnames - Lista los nombres de todos los paquetes en el sistema\n" -" dotty - Genera grficas del paquete para GraphViz\n" -" xvcg - Genera grficas del paquete para xvcg\n" -" policy - Muestra parmetros de las normas\n" +" dotty - Genera gráficas del paquete para GraphViz\n" +" xvcg - Genera gráficas del paquete para xvcg\n" +" policy - Muestra parámetros de las normas\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" -" -p=? El cache del paquete.\n" -" -s=? El cache del fuente.\n" +" -p=? La caché de paquetes.\n" +" -s=? La caché de fuentes.\n" " -q Deshabilita el indicador de progreso.\n" -" -i Muestra slo dependencias importantes para la orden incumplida.\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, ej -o dir::\n" -"cache=/tmp\n" -"Vea las pginas del manual apt-cache(8) y apt.conf(5) para ms informacin.\n" +" -i Muestra sólo dependencias importantes para la orden incumplida.\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, \n" +" p.ej. -o dir::cache=/tmp\n" +"Vea las páginas del manual apt-cache(8) y apt.conf(5) para más información.\n" #: cmdline/apt-cdrom.cc:77 -#, fuzzy msgid "Please provide a name for this Disc, such as 'Debian 5.0.3 Disk 1'" -msgstr "" -"Por favor provea un nombre para este disco, como 'Debian 2.1r1 Disco 1'" +msgstr "Proporcione un nombre para este disco, como pueda ser «Debian 5.0.3 Disco 1»" #: cmdline/apt-cdrom.cc:92 msgid "Please insert a Disc in the drive and press enter" -msgstr "Por favor inserte un disco en la unidad y presione Intro" +msgstr "Por favor, introduzca un disco en la unidad y pulse Intro" #: cmdline/apt-cdrom.cc:127 -#, fuzzy, c-format +#, c-format msgid "Failed to mount '%s' to '%s'" -msgstr "Fall el renombre de %s a %s" +msgstr "No se pudo montar «%s» como «%s»" #: cmdline/apt-cdrom.cc:162 msgid "Repeat this process for the rest of the CDs in your set." @@ -278,22 +327,22 @@ msgid "" msgstr "" "Uso: apt-config [opciones] orden\n" "\n" -"apt-config es una herramienta para leer el archivo de configuracin de APT.\n" +"apt-config es una herramienta para leer el archivo de configuración de APT.\n" "\n" "Comandos:\n" " shell - Modo shell\n" -" dump - Muestra la configuracin\n" +" dump - Muestra la configuración\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" " cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:98 #, c-format msgid "%s not a valid DEB package." -msgstr "%s no es un paquete DEB vlido." +msgstr "%s no es un paquete DEB válido." #: cmdline/apt-extracttemplates.cc:232 msgid "" @@ -310,14 +359,14 @@ msgid "" msgstr "" "Uso: apt-extracttemplates archivo1 [archivo2 ...]\n" "\n" -"apt-extracttemplates es una herramienta para extraer informacin de\n" -"configuracin y plantillas de paquetes de debian.\n" +"apt-extracttemplates es una herramienta para extraer información de\n" +"configuración y plantillas de paquetes de debian.\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" " -t Define el directorio temporal\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::" "cache=/tmp\n" #: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1171 @@ -327,11 +376,11 @@ msgstr "No se puede escribir en %s" #: cmdline/apt-extracttemplates.cc:309 msgid "Cannot get debconf version. Is debconf installed?" -msgstr "No se puede encontrar la versin de debconf. Est debconf instalado?" +msgstr "No se puede encontrar la versión de debconf. ¿Está debconf instalado?" #: ftparchive/apt-ftparchive.cc:170 ftparchive/apt-ftparchive.cc:347 msgid "Package extension list is too long" -msgstr "La lista de extensin de paquetes es demasiado larga" +msgstr "La lista de extensión de paquetes es demasiado larga" #: ftparchive/apt-ftparchive.cc:172 ftparchive/apt-ftparchive.cc:189 #: ftparchive/apt-ftparchive.cc:212 ftparchive/apt-ftparchive.cc:262 @@ -342,7 +391,7 @@ msgstr "Error procesando el directorio %s" #: ftparchive/apt-ftparchive.cc:260 msgid "Source extension list is too long" -msgstr "La lista de extensin de fuentes es demasiado larga" +msgstr "La lista de extensión de fuentes es demasiado larga" #: ftparchive/apt-ftparchive.cc:377 msgid "Error writing header to contents file" @@ -404,53 +453,53 @@ msgstr "" " generate config [grupos]\n" " clean config\n" "\n" -"apt-ftparchive genera ndices para archivos de Debian. Soporta\n" -"varios estilos de generacin de reemplazos desde los completamente\n" +"apt-ftparchive genera índices para archivos de Debian. Soporta\n" +"varios estilos de generación de reemplazos desde los completamente\n" "automatizados a los funcionales para dpkg-scanpackages y dpkg-scansources.\n" "\n" -"apt-ftparchive genera ficheros Package de un rbol de .debs. El fichero\n" +"apt-ftparchive genera ficheros Package de un árbol de .debs. El fichero\n" "Package contiene los contenidos de todos los campos de control de cada\n" -"paquete al igual que la suma MD5 y el tamao del archivo. Se puede usar\n" +"paquete al igual que la suma MD5 y el tamaño del archivo. Se puede usar\n" "un archivo de predominio para forzar el valor de Priority y\n" "Section.\n" "\n" -"Igualmente, apt-ftparchive genera ficheros Sources para un rbol de\n" -".dscs. Se puede utilizar la opcin --source-override para especificar un\n" +"Igualmente, apt-ftparchive genera ficheros Sources para un árbol de\n" +".dscs. Se puede utilizar la opción --source-override para especificar un\n" "fichero de predominio de fuente.\n" "\n" -"Las rdenes packages y sources deben ejecutarse en la raz del\n" -"rbol. BinaryPath debe apuntar a la base de la bsqueda\n" +"Las órdenes «packages» y «sources» deben ejecutarse en la raíz del\n" +"árbol. BinaryPath debe apuntar a la base de la búsqueda\n" "recursiva, y el archivo de predominio debe de contener banderas de\n" -"predominio. Se aade Pathprefix a los campos de nombre de fichero\n" -"si existen. A continuacin se muestra un ejemplo de uso basado en los \n" +"predominio. Se añade Pathprefix a los campos de nombre de fichero\n" +"si existen. A continuación se muestra un ejemplo de uso basado en los \n" "archivos de Debian:\n" " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\\\n" " dists/potato/main/binary-i386/Packages\n" "\n" "Opciones:\n" " -h Este texto de ayuda\n" -" --md5 Generacin de control MD5 \n" +" --md5 Generación de control MD5 \n" " -s=? Archivo fuente de predominio\n" " -q Silencioso\n" -" -d=? Selecciona la base de datos de cach opcional \n" -" --no-delink Habilita modo de depuracin delink\n" -" --contents Generacin del contenido del archivo Control\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria" +" -d=? Selecciona la base de datos de caché opcional \n" +" --no-delink Habilita modo de depuración delink\n" +" --contents Generación del contenido del archivo «Control»\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria" #: ftparchive/apt-ftparchive.cc:801 msgid "No selections matched" -msgstr "Ninguna seleccin coincide" +msgstr "Ninguna selección coincide" #: ftparchive/apt-ftparchive.cc:879 #, c-format msgid "Some files are missing in the package file group `%s'" -msgstr "Faltan algunos archivos en el grupo de archivo de paquetes `%s'" +msgstr "Faltan algunos archivos en el grupo de archivo de paquetes «%s»" #: ftparchive/cachedb.cc:43 #, c-format msgid "DB was corrupted, file renamed to %s.old" -msgstr "BD corrompida, archivo renombrado a %s.old" +msgstr "BD dañada, se renombró el archivo a %s.old" #: ftparchive/cachedb.cc:61 #, c-format @@ -458,13 +507,10 @@ msgid "DB is old, attempting to upgrade %s" msgstr "DB anticuada, intentando actualizar %s" #: ftparchive/cachedb.cc:72 -#, fuzzy msgid "" "DB format is invalid. If you upgraded from an older version of apt, please " "remove and re-create the database." -msgstr "" -"El formato de la base de datos no es vlido. Debe eliminar y recrear la base " -"de datos si ha actualizado de una versin anterior de apt." +msgstr "El formato de la base de datos no es válido. Debe eliminar y recrear la base de datos si vd. se actualizó de una versión anterior de apt." #: ftparchive/cachedb.cc:77 #, c-format @@ -505,7 +551,7 @@ msgstr "A: " #: ftparchive/writer.cc:143 msgid "E: Errors apply to file " -msgstr "E: Errores aplicables al archivo '" +msgstr "E: Errores aplicables al archivo " #: ftparchive/writer.cc:161 ftparchive/writer.cc:193 #, c-format @@ -514,7 +560,7 @@ msgstr "No se pudo resolver %s" #: ftparchive/writer.cc:174 msgid "Tree walking failed" -msgstr "Fall el recorrido por el rbol." +msgstr "Falló el recorrido por el árbol." #: ftparchive/writer.cc:201 #, c-format @@ -544,7 +590,7 @@ msgstr "*** No pude enlazar %s con %s" #: ftparchive/writer.cc:289 #, c-format msgid " DeLink limit of %sB hit.\n" -msgstr " DeLink se ha llegado al lmite de %sB.\n" +msgstr " DeLink se ha llegado al límite de %sB.\n" #: ftparchive/writer.cc:393 msgid "Archive had no package field" @@ -587,17 +633,17 @@ msgstr "No se pudo abrir %s" #: ftparchive/override.cc:60 ftparchive/override.cc:166 #, c-format msgid "Malformed override %s line %lu #1" -msgstr "Predominio mal formado %s lnea %lu #1" +msgstr "Predominio mal formado %s línea %lu #1" #: ftparchive/override.cc:74 ftparchive/override.cc:178 #, c-format msgid "Malformed override %s line %lu #2" -msgstr "Predominio mal formado %s lnea %lu #2" +msgstr "Predominio mal formado %s línea %lu #2" #: ftparchive/override.cc:88 ftparchive/override.cc:191 #, c-format msgid "Malformed override %s line %lu #3" -msgstr "Predominio mal formado %s lnea %lu #3" +msgstr "Predominio mal formado %s línea %lu #3" #: ftparchive/override.cc:127 ftparchive/override.cc:201 #, c-format @@ -607,16 +653,16 @@ msgstr "No se pudo leer el archivo de predominio %s" #: ftparchive/multicompress.cc:72 #, c-format msgid "Unknown compression algorithm '%s'" -msgstr "Algoritmo desconocido de compresin '%s'" +msgstr "Algoritmo desconocido de compresión «%s»" #: ftparchive/multicompress.cc:102 #, c-format msgid "Compressed output %s needs a compression set" -msgstr "Salida comprimida %s necesita una herramienta de compresin" +msgstr "Salida comprimida %s necesita una herramienta de compresión" #: ftparchive/multicompress.cc:169 methods/rsh.cc:91 msgid "Failed to create IPC pipe to subprocess" -msgstr "Fall la creacin de una tubera IPC para el subproceso" +msgstr "Falló la creación de una tubería IPC para el subproceso" #: ftparchive/multicompress.cc:195 msgid "Failed to create FILE*" @@ -628,7 +674,7 @@ msgstr "No se pudo bifurcar" #: ftparchive/multicompress.cc:212 msgid "Compress child" -msgstr "Hijo compresin" +msgstr "Hijo compresión" #: ftparchive/multicompress.cc:235 #, c-format @@ -649,7 +695,7 @@ msgstr "decompresor" #: ftparchive/multicompress.cc:403 msgid "IO to subprocess/file failed" -msgstr "Fall la ES a subproceso/archivo" +msgstr "Falló la ES a subproceso/archivo" #: ftparchive/multicompress.cc:455 msgid "Failed to read while computing MD5" @@ -658,12 +704,12 @@ msgstr "No se pudo leer mientras se computaba MD5" #: ftparchive/multicompress.cc:472 #, c-format msgid "Problem unlinking %s" -msgstr "Hay problemas desligando %s" +msgstr "Se produjo un problema al desligar %s" #: ftparchive/multicompress.cc:487 apt-inst/extract.cc:185 #, c-format msgid "Failed to rename %s to %s" -msgstr "Fall el renombre de %s a %s" +msgstr "Falló el renombre de %s a %s" #: cmdline/apt-get.cc:135 msgid "Y" @@ -672,7 +718,7 @@ msgstr "S" #: cmdline/apt-get.cc:157 apt-pkg/cachefilter.cc:29 #, c-format msgid "Regex compilation error - %s" -msgstr "Error de compilacin de expresiones regulares - %s" +msgstr "Error de compilación de expresiones regulares - %s" #: cmdline/apt-get.cc:252 msgid "The following packages have unmet dependencies:" @@ -681,7 +727,7 @@ msgstr "Los siguientes paquetes tienen dependencias incumplidas:" #: cmdline/apt-get.cc:342 #, c-format msgid "but %s is installed" -msgstr "pero %s est instalado" +msgstr "pero %s está instalado" #: cmdline/apt-get.cc:344 #, c-format @@ -698,7 +744,7 @@ msgstr "pero es un paquete virtual" #: cmdline/apt-get.cc:356 msgid "but it is not installed" -msgstr "pero no est instalado" +msgstr "pero no está instalado" #: cmdline/apt-get.cc:356 msgid "but it is not going to be installed" @@ -710,11 +756,11 @@ msgstr " o" #: cmdline/apt-get.cc:392 msgid "The following NEW packages will be installed:" -msgstr "Se instalarn los siguientes paquetes NUEVOS:" +msgstr "Se instalarán los siguientes paquetes NUEVOS:" #: cmdline/apt-get.cc:420 msgid "The following packages will be REMOVED:" -msgstr "Los siguientes paquetes se ELIMINARN:" +msgstr "Los siguientes paquetes se ELIMINARÁN:" #: cmdline/apt-get.cc:442 msgid "The following packages have been kept back:" @@ -722,15 +768,15 @@ msgstr "Los siguientes paquetes se han retenido:" #: cmdline/apt-get.cc:465 msgid "The following packages will be upgraded:" -msgstr "Se actualizarn los siguientes paquetes:" +msgstr "Se actualizarán los siguientes paquetes:" #: cmdline/apt-get.cc:488 msgid "The following packages will be DOWNGRADED:" -msgstr "Se DESACTUALIZARN los siguientes paquetes:" +msgstr "Se DESACTUALIZARÁN los siguientes paquetes:" #: cmdline/apt-get.cc:508 msgid "The following held packages will be changed:" -msgstr "Se cambiarn los siguientes paquetes retenidos:" +msgstr "Se cambiarán los siguientes paquetes retenidos:" #: cmdline/apt-get.cc:561 #, c-format @@ -743,12 +789,12 @@ msgid "" "This should NOT be done unless you know exactly what you are doing!" msgstr "" "AVISO: Se van a eliminar los siguientes paquetes esenciales.\n" -"NO debe hacerse a menos que sepa exactamente lo que est haciendo!" +"¡NO debe hacerse a menos que sepa exactamente lo que está haciendo!" #: cmdline/apt-get.cc:603 #, c-format msgid "%lu upgraded, %lu newly installed, " -msgstr "%lu actualizados, %lu se instalarn, " +msgstr "%lu actualizados, %lu se instalarán, " #: cmdline/apt-get.cc:607 #, c-format @@ -771,19 +817,19 @@ msgid "%lu not fully installed or removed.\n" msgstr "%lu no instalados del todo o eliminados.\n" #: cmdline/apt-get.cc:635 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' for task '%s'\n" -msgstr "Nota, seleccionando %s para la expresin regular '%s'\n" +msgstr "Nota, seleccionando «%s» para la tarea «%s»\n" #: cmdline/apt-get.cc:641 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' for regex '%s'\n" -msgstr "Nota, seleccionando %s para la expresin regular '%s'\n" +msgstr "Nota, seleccionando «%s» para la expresión regular «%s»\n" #: cmdline/apt-get.cc:648 -#, fuzzy, c-format +#, c-format msgid "Selected version '%s' (%s) for '%s'\n" -msgstr "Versin seleccionada %s (%s) para %s\n" +msgstr "Versión seleccionada «%s» (%s) para «%s»\n" #: cmdline/apt-get.cc:658 #, c-format @@ -795,13 +841,12 @@ msgid " [Installed]" msgstr " [Instalado]" #: cmdline/apt-get.cc:678 -#, fuzzy msgid " [Not candidate version]" -msgstr "Versiones candidatas" +msgstr " [No es la versión candidata]" #: cmdline/apt-get.cc:680 msgid "You should explicitly select one to install." -msgstr "Necesita seleccionar explcitamente uno para instalar." +msgstr "Necesita seleccionar explícitamente uno para instalar." #: cmdline/apt-get.cc:683 #, c-format @@ -810,8 +855,8 @@ msgid "" "This may mean that the package is missing, has been obsoleted, or\n" "is only available from another source\n" msgstr "" -"El paquete %s no est disponible, pero algn otro paquete hace referencia\n" -"a l. Esto puede significar que el paquete falta, est obsoleto o slo se\n" +"El paquete %s no está disponible, pero algún otro paquete hace referencia\n" +"a él. Esto puede significar que el paquete falta, está obsoleto o sólo se\n" "encuentra disponible desde alguna otra fuente\n" #: cmdline/apt-get.cc:701 @@ -819,29 +864,29 @@ msgid "However the following packages replace it:" msgstr "Sin embargo, los siguientes paquetes lo reemplazan:" #: cmdline/apt-get.cc:713 -#, fuzzy, c-format +#, c-format msgid "Package '%s' has no installation candidate" -msgstr "El paquete %s no tiene candidato para su instalacin" +msgstr "El paquete «%s» no tiene un candidato para la instalación" #: cmdline/apt-get.cc:724 #, c-format msgid "Virtual packages like '%s' can't be removed\n" -msgstr "" +msgstr "No pueden eliminarse los paquetes virtuales como «%s»\n" #: cmdline/apt-get.cc:755 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' instead of '%s'\n" -msgstr "Nota, seleccionando %s en lugar de %s\n" +msgstr "Nota, seleccionando «%s» en lugar de «%s»\n" #: cmdline/apt-get.cc:785 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" -msgstr "Ignorando %s, ya esta instalado y la actualizacin no esta activada.\n" +msgstr "Ignorando %s, ya está instalado y no está activada la actualización.\n" #: cmdline/apt-get.cc:789 -#, fuzzy, c-format +#, c-format msgid "Skipping %s, it is not installed and only upgrades are requested.\n" -msgstr "Ignorando %s, ya esta instalado y la actualizacin no esta activada.\n" +msgstr "Ignorando %s, no está instalado y sólo se están solicitando actualizaciones.\n" #: cmdline/apt-get.cc:799 #, c-format @@ -851,7 +896,7 @@ msgstr "No es posible reinstalar el paquete %s, no se puede descargar.\n" #: cmdline/apt-get.cc:804 #, c-format msgid "%s is already the newest version.\n" -msgstr "%s ya est en su versin ms reciente.\n" +msgstr "%s ya está en su versión más reciente.\n" #: cmdline/apt-get.cc:823 cmdline/apt-get.cc:1992 #, c-format @@ -861,7 +906,7 @@ msgstr "fijado %s como instalado manualmente.\n" #: cmdline/apt-get.cc:863 #, c-format msgid "Package %s is not installed, so not removed\n" -msgstr "El paquete %s no esta instalado, no se eliminar\n" +msgstr "El paquete %s no está instalado, no se eliminará\n" #: cmdline/apt-get.cc:938 msgid "Correcting dependencies..." @@ -869,7 +914,7 @@ msgstr "Corrigiendo dependencias..." #: cmdline/apt-get.cc:941 msgid " failed." -msgstr " fall." +msgstr " falló." #: cmdline/apt-get.cc:944 msgid "Unable to correct dependencies" @@ -877,7 +922,7 @@ msgstr "No se puede corregir las dependencias" #: cmdline/apt-get.cc:947 msgid "Unable to minimize the upgrade set" -msgstr "No se puede minimizar el conjunto de actualizacin" +msgstr "No se puede minimizar el conjunto de actualización" #: cmdline/apt-get.cc:949 msgid " Done" @@ -885,7 +930,7 @@ msgstr " Listo" #: cmdline/apt-get.cc:953 msgid "You might want to run 'apt-get -f install' to correct these." -msgstr "Tal vez quiera ejecutar 'apt-get -f install' para corregirlo." +msgstr "Tal vez quiera ejecutar «apt-get -f install» para corregirlo." #: cmdline/apt-get.cc:956 msgid "Unmet dependencies. Try using -f." @@ -893,15 +938,15 @@ msgstr "Dependencias incumplidas. Pruebe de nuevo usando -f." #: cmdline/apt-get.cc:981 msgid "WARNING: The following packages cannot be authenticated!" -msgstr "AVISO: No se han podido autenticar los siguientes paquetes!" +msgstr "AVISO: ¡No se han podido autenticar los siguientes paquetes!" #: cmdline/apt-get.cc:985 msgid "Authentication warning overridden.\n" -msgstr "Aviso de autenticacin ignorado.\n" +msgstr "Aviso de autenticación ignorado.\n" #: cmdline/apt-get.cc:992 msgid "Install these packages without verification [y/N]? " -msgstr "Instalar estos paquetes sin verificacin [s/N]? " +msgstr "¿Instalar estos paquetes sin verificación [s/N]? " #: cmdline/apt-get.cc:994 msgid "Some packages could not be authenticated" @@ -909,25 +954,24 @@ msgstr "Algunos paquetes no se pueden autenticar" #: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:1166 msgid "There are problems and -y was used without --force-yes" -msgstr "Hay problemas y se utiliz -y sin --force-yes" +msgstr "Hay problemas y se utilizó -y sin --force-yes" #: cmdline/apt-get.cc:1044 msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "Error interno, InstallPackages fue llamado con un paquete roto!" +msgstr "Error interno, ¡se llamó a «InstallPackages» con paquetes rotos!" #: cmdline/apt-get.cc:1053 msgid "Packages need to be removed but remove is disabled." -msgstr "Los paquetes necesitan eliminarse pero Remove est deshabilitado." +msgstr "Los paquetes necesitan eliminarse pero está deshabilitado la posibilidad de eliminar." #: cmdline/apt-get.cc:1064 msgid "Internal error, Ordering didn't finish" -msgstr "Error interno, no termin el ordenamiento" +msgstr "Error interno, no terminó la ordenación" #: cmdline/apt-get.cc:1104 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Que raro.. Los tamaos no concuerdan, mande un correo a \n" -"apt@packages.debian.org" +"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 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -949,14 +993,14 @@ msgstr "Necesito descargar %sB de archivos.\n" #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "" -"Se utilizarn %sB de espacio de disco adicional despus de esta operacin.\n" +"Se utilizarán %sB de espacio de disco adicional después de esta operación.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB #: cmdline/apt-get.cc:1128 #, c-format msgid "After this operation, %sB disk space will be freed.\n" -msgstr "Se liberarn %sB despus de esta operacin.\n" +msgstr "Se liberarán %sB después de esta operación.\n" #: cmdline/apt-get.cc:1143 cmdline/apt-get.cc:1146 cmdline/apt-get.cc:2332 #: cmdline/apt-get.cc:2335 @@ -971,11 +1015,11 @@ msgstr "No tiene suficiente espacio libre en %s." #: cmdline/apt-get.cc:1172 cmdline/apt-get.cc:1192 msgid "Trivial Only specified but this is not a trivial operation." -msgstr "Se especific Trivial Only pero sta no es una operacin trivial." +msgstr "Se especificó Trivial Only pero ésta no es una operación trivial." #: cmdline/apt-get.cc:1174 msgid "Yes, do as I say!" -msgstr "S, haga lo que le digo!" +msgstr "Sí, ¡haga lo que le digo!" #: cmdline/apt-get.cc:1176 #, c-format @@ -984,8 +1028,8 @@ msgid "" "To continue type in the phrase '%s'\n" " ?] " msgstr "" -"Est a punto de hacer algo potencialmente daino\n" -"Para continuar escriba la frase %s\n" +"Está a punto de hacer algo potencialmente dañino\n" +"Para continuar escriba la frase «%s»\n" " ?] " #: cmdline/apt-get.cc:1182 cmdline/apt-get.cc:1201 @@ -994,32 +1038,32 @@ msgstr "Abortado." #: cmdline/apt-get.cc:1197 msgid "Do you want to continue [Y/n]? " -msgstr "Desea continuar [S/n]? " +msgstr "¿Desea continuar [S/n]? " -#: cmdline/apt-get.cc:1269 cmdline/apt-get.cc:2392 apt-pkg/algorithms.cc:1462 +#: cmdline/apt-get.cc:1269 cmdline/apt-get.cc:2392 apt-pkg/algorithms.cc:1470 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Imposible obtener %s %s\n" #: cmdline/apt-get.cc:1287 msgid "Some files failed to download" -msgstr "Algunos archivos no pudieron descargarse" +msgstr "No se pudieron descargar algunos archivos" #: cmdline/apt-get.cc:1288 cmdline/apt-get.cc:2401 msgid "Download complete and in download only mode" -msgstr "Descarga completa y en modo de slo descarga" +msgstr "Descarga completa y en modo de sólo descarga" #: cmdline/apt-get.cc:1294 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -"No se pudieron obtener algunos archivos, quizs deba ejecutar\n" -"apt-get update o deba intentarlo de nuevo con --fix-missing?" +"No se pudieron obtener algunos archivos, ¿quizás deba ejecutar " +"«apt-get update» o deba intentarlo de nuevo con --fix-missing?" #: cmdline/apt-get.cc:1298 msgid "--fix-missing and media swapping is not currently supported" -msgstr "Actualmente no estn soportados --fix-missing e intercambio de medio" +msgstr "Actualmente no están soportados --fix-missing e intercambio de medio" #: cmdline/apt-get.cc:1303 msgid "Unable to correct missing packages." @@ -1027,7 +1071,7 @@ msgstr "No se pudieron corregir los paquetes que faltan." #: cmdline/apt-get.cc:1304 msgid "Aborting install." -msgstr "Abortando la instalacin." +msgstr "Abortando la instalación." #: cmdline/apt-get.cc:1332 msgid "" @@ -1037,74 +1081,69 @@ msgid_plural "" "The following packages disappeared from your system as\n" "all files have been overwritten by other packages:" msgstr[0] "" +"El paquete mostrado a continuación ha desaparecido de su sistema\n" +"dado que todos sus ficheros han sido sobreescritos por otros paquetes:" msgstr[1] "" +"Los paquetes mostrados a continuación han desaparecido de su sistema\n" +"dado que todos sus ficheros han sido sobreescritos por otros paquetes:" #: cmdline/apt-get.cc:1336 msgid "Note: This is done automatic and on purpose by dpkg." -msgstr "" +msgstr "Nota: Dpkg realiza esto de forma automática y a propósito." #: cmdline/apt-get.cc:1466 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" -msgstr "" +msgstr "Ignorar la distribución objetivo no disponible «%s» del paquete «%s»" #: cmdline/apt-get.cc:1498 -#, fuzzy, c-format +#, c-format msgid "Picking '%s' as source package instead of '%s'\n" -msgstr "No se puede leer la lista de paquetes fuente %s" +msgstr "Escogiendo «%s» como paquete fuente en lugar de «%s»\n" #. if (VerTag.empty() == false && Last == 0) #: cmdline/apt-get.cc:1536 #, c-format msgid "Ignore unavailable version '%s' of package '%s'" -msgstr "" +msgstr "Ignorar la versión no disponible «%s» del paquete «%s»" #: cmdline/apt-get.cc:1552 msgid "The update command takes no arguments" -msgstr "El comando de actualizacin no toma argumentos" +msgstr "El comando de actualización no toma argumentos" #: cmdline/apt-get.cc:1618 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -"Se supone que no vamos a eliminar cosas, no se pudo iniciar AutoRemover" +"Se supone que no vamos a eliminar cosas, no se pudo iniciar «AutoRemover»" #: cmdline/apt-get.cc:1666 -#, fuzzy msgid "" "The following package was automatically installed and is no longer required:" msgid_plural "" "The following packages were automatically installed and are no longer " "required:" -msgstr[0] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." -msgstr[1] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." +msgstr[0] "El paquete indicado a continuación se instaló de forma automática y ya no es necesarios." +msgstr[1] "Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios." #: cmdline/apt-get.cc:1670 -#, fuzzy, c-format +#, c-format msgid "%lu package was automatically installed and is no longer required.\n" msgid_plural "" "%lu packages were automatically installed and are no longer required.\n" -msgstr[0] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." -msgstr[1] "" -"Se instalaron de forma automtica los siguientes paquetes y ya no son " -"necesarios." +msgstr[0] "Se instaló de forma automática %lu paquete y ya no es necesario.\n" +msgstr[1] "Se instalaron de forma automática %lu paquetes y ya no son necesarios.\n" #: cmdline/apt-get.cc:1672 msgid "Use 'apt-get autoremove' to remove them." -msgstr "Utilice apt-get autoremove para eliminarlos." +msgstr "Utilice «apt-get autoremove» para eliminarlos." #: cmdline/apt-get.cc:1677 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." msgstr "" -"Hmmm. Parece que AutoRemover destruy algo y eso no debera haber pasado. " -"Por favor, enve un informe de fallo al programa apt." +"Hmmm. Parece que «AutoRemover» destruyó algo y eso no debería haber pasado. " +"Por favor, envíe un informe de fallo al programa apt." #. #. if (Packages == 1) @@ -1118,27 +1157,25 @@ msgstr "" #. #: cmdline/apt-get.cc:1680 cmdline/apt-get.cc:1822 msgid "The following information may help to resolve the situation:" -msgstr "La siguiente informacin puede ayudar a resolver la situacin:" +msgstr "La siguiente información puede ayudar a resolver la situación:" #: cmdline/apt-get.cc:1684 msgid "Internal Error, AutoRemover broke stuff" -msgstr "Error interno, AutoRemover rompi cosas" +msgstr "Error interno, «AutoRemover» rompió cosas" #: cmdline/apt-get.cc:1703 msgid "Internal error, AllUpgrade broke stuff" -msgstr "Error Interno, AllUpgrade rompi cosas" +msgstr "Error Interno, AllUpgrade rompió cosas" #: cmdline/apt-get.cc:1792 msgid "You might want to run 'apt-get -f install' to correct these:" -msgstr "Tal vez quiera ejecutar 'apt-get -f install' para corregirlo:" +msgstr "Tal vez quiera ejecutar «apt-get -f install» para corregirlo:" #: cmdline/apt-get.cc:1795 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." -msgstr "" -"Dependencias incumplidas. Intente 'apt-get -f install' sin paquetes (o " -"especifique una solucin)." +msgstr "Dependencias incumplidas. Intente «apt-get -f install» sin paquetes (o especifique una solución)." #: cmdline/apt-get.cc:1807 msgid "" @@ -1148,7 +1185,7 @@ msgid "" "or been moved out of Incoming." msgstr "" "No se pudieron instalar algunos paquetes. Esto puede significar que\n" -"usted pidi una situacin imposible o, si est usando la distribucin\n" +"usted pidió una situación imposible o, si está usando la distribución\n" "inestable, que algunos paquetes necesarios no han sido creados o han\n" "sido movidos fuera de Incoming." @@ -1158,7 +1195,7 @@ msgstr "Paquetes rotos" #: cmdline/apt-get.cc:1854 msgid "The following extra packages will be installed:" -msgstr "Se instalarn los siguientes paquetes extras:" +msgstr "Se instalarán los siguientes paquetes extras:" #: cmdline/apt-get.cc:1944 msgid "Suggested packages:" @@ -1166,7 +1203,7 @@ msgstr "Paquetes sugeridos:" #: cmdline/apt-get.cc:1945 msgid "Recommended packages:" -msgstr "Paquetes recomendados" +msgstr "Paquetes recomendados:" #: cmdline/apt-get.cc:1987 #, c-format @@ -1174,17 +1211,17 @@ msgid "Couldn't find package %s" msgstr "No se pudo encontrar el paquete %s" #: cmdline/apt-get.cc:1994 -#, fuzzy, c-format +#, c-format msgid "%s set to automatically installed.\n" -msgstr "fijado %s como instalado manualmente.\n" +msgstr "fijado %s como instalado automáticamente.\n" #: cmdline/apt-get.cc:2015 msgid "Calculating upgrade... " -msgstr "Calculando la actualizacin... " +msgstr "Calculando la actualización... " #: cmdline/apt-get.cc:2018 methods/ftp.cc:707 methods/connect.cc:111 msgid "Failed" -msgstr "Fall" +msgstr "Falló" #: cmdline/apt-get.cc:2023 msgid "Done" @@ -1193,7 +1230,7 @@ msgstr "Listo" #: cmdline/apt-get.cc:2090 cmdline/apt-get.cc:2098 msgid "Internal error, problem resolver broke stuff" msgstr "" -"Error interno, el sistema de solucin de problemas rompi\n" +"Error interno, el sistema de solución de problemas rompió " "algunas cosas" #: cmdline/apt-get.cc:2122 cmdline/apt-get.cc:2155 @@ -1202,7 +1239,7 @@ msgstr "No se puede bloquear el directorio de descarga" #: cmdline/apt-get.cc:2198 msgid "Must specify at least one package to fetch source for" -msgstr "Debe especificar al menos un paquete para obtener su cdigo fuente" +msgstr "Debe especificar al menos un paquete para obtener su código fuente" #: cmdline/apt-get.cc:2238 cmdline/apt-get.cc:2519 #, c-format @@ -1215,6 +1252,8 @@ msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" "%s\n" msgstr "" +"NOTA: el empaquetamiento de «%s» se mantiene en el sistema de control de versiones «%s» en:\n" +"%s\n" #: cmdline/apt-get.cc:2259 #, c-format @@ -1223,11 +1262,14 @@ msgid "" "bzr get %s\n" "to retrieve the latest (possibly unreleased) updates to the package.\n" msgstr "" +"Por favor, utilice:\n" +"bzr get %s\n" +"para obtener las últimas actualizaciones (posiblemente no publicadas aún) del paquete.\n" #: cmdline/apt-get.cc:2310 #, c-format msgid "Skipping already downloaded file '%s'\n" -msgstr "Ignorando fichero ya descargado '%s'\n" +msgstr "Omitiendo el fichero ya descargado «%s»\n" #: cmdline/apt-get.cc:2345 #, c-format @@ -1265,37 +1307,37 @@ msgstr "Ignorando desempaquetamiento de paquetes ya desempaquetados en %s\n" #: cmdline/apt-get.cc:2439 #, c-format msgid "Unpack command '%s' failed.\n" -msgstr "Fall la orden de desempaquetamiento '%s'.\n" +msgstr "Falló la orden de desempaquetamiento «%s».\n" #: cmdline/apt-get.cc:2440 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" -msgstr "Compruebe que el paquete dpkg-dev est instalado.\n" +msgstr "Compruebe que el paquete «dpkg-dev» esté instalado.\n" #: cmdline/apt-get.cc:2457 #, c-format msgid "Build command '%s' failed.\n" -msgstr "Fall la orden de construccin '%s'.\n" +msgstr "Falló la orden de construcción «%s».\n" #: cmdline/apt-get.cc:2477 msgid "Child process failed" -msgstr "Fall el proceso hijo" +msgstr "Falló el proceso hijo" #: cmdline/apt-get.cc:2493 msgid "Must specify at least one package to check builddeps for" msgstr "" -"Debe especificar al menos un paquete para verificar sus\n" -"dependencias de construccin" +"Debe especificar al menos un paquete para verificar sus " +"dependencias de construcción" #: cmdline/apt-get.cc:2524 #, c-format msgid "Unable to get build-dependency information for %s" -msgstr "No se pudo obtener informacin de dependencias de construccin para %s" +msgstr "No se pudo obtener información de dependencias de construcción para %s" #: cmdline/apt-get.cc:2544 #, c-format msgid "%s has no build depends.\n" -msgstr "%s no tiene dependencias de construccin.\n" +msgstr "%s no tiene dependencias de construcción.\n" #: cmdline/apt-get.cc:2595 #, c-format @@ -1303,7 +1345,7 @@ msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -"La dependencia %s en %s no puede satisfacerse porque no se puede \n" +"La dependencia %s en %s no puede satisfacerse porque no se puede " "encontrar el paquete %s" #: cmdline/apt-get.cc:2648 @@ -1312,8 +1354,8 @@ msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -"La dependencia %s en %s no puede satisfacerse porque ninguna versin\n" -"disponible del paquete %s satisface los requisitos de versin" +"La dependencia %s en %s no puede satisfacerse porque ninguna versión " +"disponible del paquete %s satisface los requisitos de versión" #: cmdline/apt-get.cc:2684 #, c-format @@ -1330,18 +1372,17 @@ msgstr "No se pudo satisfacer la dependencia %s para %s: %s" #: cmdline/apt-get.cc:2727 #, c-format msgid "Build-dependencies for %s could not be satisfied." -msgstr "No se pudieron satisfacer las dependencias de construccin de %s." +msgstr "No se pudieron satisfacer las dependencias de construcción de %s." #: cmdline/apt-get.cc:2732 msgid "Failed to process build dependencies" -msgstr "No se pudieron procesar las dependencias de construccin" +msgstr "No se pudieron procesar las dependencias de construcción" #: cmdline/apt-get.cc:2763 msgid "Supported modules:" -msgstr "Mdulos soportados:" +msgstr "Módulos soportados:" #: cmdline/apt-get.cc:2804 -#, fuzzy msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1390,42 +1431,42 @@ msgstr "" " apt-get [opciones] install|remove paq1 [paq2 ...]\n" " apt-get [opciones] source paq1 [paq2 ...]\n" "\n" -"apt-get es una sencilla interfaz de lnea de rdenes para descargar e\n" -"instalar paquetes. Las rdenes ms utilizadas son update e install.\n" +"apt-get es una sencilla interfaz de línea de órdenes para descargar e\n" +"instalar paquetes. Las órdenes más utilizadas son update e install.\n" "\n" -"rdenes:\n" +"Órdenes:\n" " update - Descarga nuevas listas de paquetes\n" -" upgrade - Realiza una actualizacin\n" +" upgrade - Realiza una actualización\n" " install - Instala nuevos paquetes (paquete es libc6 y no libc6.deb)\n" " remove - Elimina paquetes\n" " purge - Elimina y purga paquetes\n" " source - Descarga archivos fuente\n" -" build-dep - Configura las dependencias de construccin para paquetes " -"fuente\n" -" dist-upgrade - Actualiza la distribucin, vea apt-get(8)\n" +" build-dep - Configura las dependencias de construcción para paquetes fuente\n" +" dist-upgrade - Actualiza la distribución, vea apt-get(8)\n" " dselect-upgrade - Sigue las selecciones de dselect\n" " clean - Elimina los archivos descargados\n" " autoclean - Elimina los archivos descargados antiguos\n" " check - Verifica que no haya dependencias incumplidas\n" +" markauto - Marca los paquetes indicados como instalados de forma automática\n" +" unmarkauto - Marca los paquetes indicados como instalado de forma manual\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" " -q Salida registrable - sin indicador de progreso\n" " -qq Sin salida, excepto si hay errores\n" -" -d Slo descarga - NO instala o desempaqueta los archivos\n" -" -s No acta. Realiza una simulacin\n" -" -y Asume S para todas las consultas\n" -" -f Intenta continuar si la comprobacin de integridad falla\n" +" -d Sólo descarga - NO instala o desempaqueta los archivos\n" +" -s No actúa. Realiza una simulación\n" +" -y Asume Sí para todas las consultas\n" +" -f Intenta continuar si la comprobación de integridad falla\n" " -m Intenta continuar si los archivos no son localizables\n" -" -u Muestra tambin una lista de paquetes actualizados\n" -" -b Construye el paquete fuente despus de obtenerlo\n" -" -V Muesta nmeros de versin detallados\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. \n" +" -u Muestra también una lista de paquetes actualizados\n" +" -b Construye el paquete fuente después de obtenerlo\n" +" -V Muesta números de versión detallados\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. \n" " -o dir::cache=/tmp\n" -"Consulte las pginas del manual de apt-get(8), sources.list(5) y apt.conf" -"(5)\n" -"para ms informacin y opciones.\n" +"Consulte las páginas del manual de apt-get(8), sources.list(5) y apt.conf(5)\n" +"para más información y opciones.\n" " Este APT tiene poderes de Super Vaca.\n" #: cmdline/apt-get.cc:2960 @@ -1435,47 +1476,51 @@ msgid "" " Keep also in mind that locking is deactivated,\n" " so don't depend on the relevance to the real current situation!" msgstr "" +"NOTA: ¡Esto es sólo una simulación\n" +" apt-get necesita privilegios de administrador para la ejecución real.\n" +" Tenga también en cuenta que se han desactivado los bloqueos,\n" +" ¡no dependa de la relevancia a la situación real actual!" -#: cmdline/acqprogress.cc:55 +#: cmdline/acqprogress.cc:57 msgid "Hit " msgstr "Obj " -#: cmdline/acqprogress.cc:79 +#: cmdline/acqprogress.cc:81 msgid "Get:" msgstr "Des:" -#: cmdline/acqprogress.cc:110 +#: cmdline/acqprogress.cc:112 msgid "Ign " msgstr "Ign " -#: cmdline/acqprogress.cc:114 +#: cmdline/acqprogress.cc:116 msgid "Err " msgstr "Err " -#: cmdline/acqprogress.cc:135 +#: cmdline/acqprogress.cc:137 #, c-format msgid "Fetched %sB in %s (%sB/s)\n" msgstr "Descargados %sB en %s (%sB/s)\n" -#: cmdline/acqprogress.cc:225 +#: cmdline/acqprogress.cc:227 #, c-format msgid " [Working]" msgstr " [Trabajando]" -#: cmdline/acqprogress.cc:271 +#: cmdline/acqprogress.cc:283 #, c-format msgid "" "Media change: please insert the disc labeled\n" " '%s'\n" "in the drive '%s' and press enter\n" msgstr "" -"Cambio de medio: Por favor inserte el disco etiquetado\n" -" '%s'\n" -"en la unidad '%s' y presione Intro\n" +"Cambio de medio: Por favor, inserte el disco etiquetado como\n" +" «%s»\n" +"en la unidad «%s» y pulse Intro\n" #: cmdline/apt-sortpkgs.cc:86 msgid "Unknown package record!" -msgstr "Registro de paquete desconocido!" +msgstr "¡Registro de paquete desconocido!" #: cmdline/apt-sortpkgs.cc:150 msgid "" @@ -1493,60 +1538,52 @@ msgstr "" "Uso: apt-sortpkgs [opciones] archivo1 [archivo2 ...]\n" "\n" "apt-sortpkgs es una herramienta sencilla para ordenar archivos de paquetes.\n" -"La opcin -s se utiliza para indicar qu tipo de archivo es.\n" +"La opción -s se utiliza para indicar qué tipo de archivo es.\n" "\n" "Opciones:\n" " -h Este texto de ayuda.\n" " -s Utiliza ordenamiento de archivos fuente\n" -" -c=? Lee este archivo de configuracin\n" -" -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" "cache=/tmp\n" #: dselect/install:32 msgid "Bad default setting!" -msgstr "Parmetro por omisin incorrecto!" +msgstr "¡Parámetro por omisión incorrecto!" #: dselect/install:51 dselect/install:83 dselect/install:87 dselect/install:94 #: dselect/install:105 dselect/update:45 msgid "Press enter to continue." -msgstr "Presione Intro para continuar." +msgstr "Pulse Intro para continuar." #: dselect/install:91 msgid "Do you want to erase any previously downloaded .deb files?" -msgstr "Desea borrar los archivos .deb descargados con anterioridad?" +msgstr "¿Desea borrar los archivos .deb descargados con anterioridad?" #: dselect/install:101 -#, fuzzy msgid "Some errors occurred while unpacking. Packages that were installed" -msgstr "" -"Ocurrieron algunos errores mientras se desempaquetaba. Se va a configurar el" +msgstr "Se produjeron algunos problemas mientras se desempaquetaba. Los paquetes que se instalaron" #: dselect/install:102 -#, fuzzy msgid "will be configured. This may result in duplicate errors" -msgstr "" -"paquetes que fueron instalados. Esto puede dar lugar a errores duplicados" +msgstr "van a configurarse. Esto puede dar lugar a errores duplicados" #: dselect/install:103 msgid "or errors caused by missing dependencies. This is OK, only the errors" -msgstr "" -"o errores causados por dependencias no presentes. Esto est BIEN, slo los\n" -"errores" +msgstr "o errores causados por dependencias no presentes. Esto está BIEN, sólo los errores" #: dselect/install:104 msgid "" "above this message are important. Please fix them and run [I]nstall again" -msgstr "" -"encima de este mensaje son importantes. Por favor corrijalas y ejecute\n" -"[I]nstall otra vez" +msgstr "encima de este mensaje son importantes. Por favor, corríjalas y ejecute «[I]nstall» otra vez" #: dselect/update:30 msgid "Merging available information" -msgstr "Fusionando informacin disponible" +msgstr "Fusionando información disponible" #: apt-inst/contrib/extracttar.cc:114 msgid "Failed to create pipes" -msgstr "No pude crear las tuberas" +msgstr "No pude crear las tuberías" #: apt-inst/contrib/extracttar.cc:141 msgid "Failed to exec gzip " @@ -1554,11 +1591,11 @@ msgstr "No pude ejecutar gzip" #: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204 msgid "Corrupted archive" -msgstr "Archivo corrompido" +msgstr "Archivo dañado" #: apt-inst/contrib/extracttar.cc:193 msgid "Tar checksum failed, archive corrupted" -msgstr "No se aprob la suma de control del tar, archive corrompido" +msgstr "Se produjo un fallo al calcular la suma de control de tar, archive dañado" #: apt-inst/contrib/extracttar.cc:296 #, c-format @@ -1567,24 +1604,24 @@ msgstr "Cabecera del TAR tipo %u desconocida, miembro %s" #: apt-inst/contrib/arfile.cc:70 msgid "Invalid archive signature" -msgstr "Firma del archivo invlida" +msgstr "Firma del archivo inválida" #: apt-inst/contrib/arfile.cc:78 msgid "Error reading archive member header" msgstr "Error leyendo la cabecera de miembro del archivo" #: apt-inst/contrib/arfile.cc:90 -#, fuzzy, c-format +#, c-format msgid "Invalid archive member header %s" -msgstr "Cabecera de miembro del archivo invlida" +msgstr "Cabecera de miembro del archivo inválida %s" #: apt-inst/contrib/arfile.cc:102 msgid "Invalid archive member header" -msgstr "Cabecera de miembro del archivo invlida" +msgstr "Cabecera de miembro del archivo inválida" #: apt-inst/contrib/arfile.cc:128 msgid "Archive is too short" -msgstr "El archivo es muy pequeo" +msgstr "El archivo es muy pequeño" #: apt-inst/contrib/arfile.cc:132 msgid "Failed to read the archive headers" @@ -1592,15 +1629,15 @@ msgstr "No pude leer las cabeceras del archivo" #: apt-inst/filelist.cc:380 msgid "DropNode called on still linked node" -msgstr "DropNode llamado en un nodo todava ligado" +msgstr "DropNode llamado en un nodo todavía ligado" #: apt-inst/filelist.cc:412 msgid "Failed to locate the hash element!" -msgstr "No pude localizar el elemento enlazado!" +msgstr "¡No pude localizar el elemento enlazado!" #: apt-inst/filelist.cc:459 msgid "Failed to allocate diversion" -msgstr "No pude asignar una desviacin" +msgstr "No pude asignar una desviación" #: apt-inst/filelist.cc:464 msgid "Internal error in AddDiversion" @@ -1609,22 +1646,22 @@ msgstr "Error interno en AddDiversion" #: apt-inst/filelist.cc:477 #, c-format msgid "Trying to overwrite a diversion, %s -> %s and %s/%s" -msgstr "Tratando de sobreescribir una desviacin, %s -> %s y %s/%s" +msgstr "Tratando de sobreescribir una desviación, %s -> %s y %s/%s" #: apt-inst/filelist.cc:506 #, c-format msgid "Double add of diversion %s -> %s" -msgstr "Doble suma de desviacin %s -> %s" +msgstr "Doble suma de desviación %s -> %s" #: apt-inst/filelist.cc:549 #, c-format msgid "Duplicate conf file %s/%s" -msgstr "Archivo de configuracin duplicado %s/%s" +msgstr "Archivo de configuración duplicado %s/%s" #: apt-inst/dirstream.cc:41 apt-inst/dirstream.cc:46 apt-inst/dirstream.cc:49 #, c-format msgid "Failed to write file %s" -msgstr "Fall la escritura del archivo %s" +msgstr "Falló la escritura del archivo %s" #: apt-inst/dirstream.cc:92 apt-inst/dirstream.cc:100 #, c-format @@ -1639,26 +1676,26 @@ msgstr "La trayectoria %s es demasiado larga" #: apt-inst/extract.cc:124 #, c-format msgid "Unpacking %s more than once" -msgstr "Desempaquetando %s ms de una vez" +msgstr "Desempaquetando %s más de una vez" #: apt-inst/extract.cc:134 #, c-format msgid "The directory %s is diverted" -msgstr "El directorio %s est desviado" +msgstr "El directorio %s está desviado" #: apt-inst/extract.cc:144 #, c-format msgid "The package is trying to write to the diversion target %s/%s" -msgstr "El paquete est tratando de escribir al blanco desviado %s/%s" +msgstr "El paquete está tratando de escribir al blanco desviado %s/%s" #: apt-inst/extract.cc:154 apt-inst/extract.cc:297 msgid "The diversion path is too long" -msgstr "La trayectoria de desviacin es demasiado larga" +msgstr "La trayectoria de desviación es demasiado larga" #: apt-inst/extract.cc:240 #, c-format msgid "The directory %s is being replaced by a non-directory" -msgstr "El directorio %s est siendo reemplazado por un no-directorio" +msgstr "El directorio %s está siendo reemplazado por un no-directorio" #: apt-inst/extract.cc:280 msgid "Failed to locate node in its hash bucket" @@ -1671,12 +1708,12 @@ msgstr "La trayectoria es muy larga" #: apt-inst/extract.cc:414 #, c-format msgid "Overwrite package match with no version for %s" -msgstr "Sobreescribiendo concordancia del paquete sin versin para %s" +msgstr "Sobreescribiendo concordancia del paquete sin versión para %s" #: apt-inst/extract.cc:431 #, c-format msgid "File %s/%s overwrites the one in the package %s" -msgstr "El archivo %s/%s sobreescribe al que est en el paquete %s" +msgstr "El archivo %s/%s sobreescribe al que está en el paquete %s" #. Only warn if there are no sources.list.d. #. Only warn if there is no sources.list file. @@ -1723,7 +1760,7 @@ msgstr "Leyendo lista de paquetes" #: apt-inst/deb/dpkgdb.cc:176 #, c-format msgid "Failed to change to the admin dir %sinfo" -msgstr "No pude cambiarme al directorio de administracin %sinfo" +msgstr "No pude cambiarme al directorio de administración %sinfo" #: apt-inst/deb/dpkgdb.cc:197 apt-inst/deb/dpkgdb.cc:351 #: apt-inst/deb/dpkgdb.cc:444 @@ -1740,10 +1777,7 @@ msgid "" "Failed to open the list file '%sinfo/%s'. If you cannot restore this file " "then make it empty and immediately re-install the same version of the " "package!" -msgstr "" -"No pude abrir el archivo de lista '%sinfo/%s'. Si no puede restablecer este " -"archivo entonces cree uno vaco e inmediatamente reinstale la misma versin " -"del paquete!" +msgstr "No pude abrir el archivo de lista «%sinfo/%s». ¡Si no puede restablecer este archivo entonces cree uno vacío e inmediatamente reinstale la misma versión del paquete!" #: apt-inst/deb/dpkgdb.cc:225 apt-inst/deb/dpkgdb.cc:238 #, c-format @@ -1757,25 +1791,25 @@ msgstr "Error interno obteniendo un nodo" #: apt-inst/deb/dpkgdb.cc:305 #, c-format msgid "Failed to open the diversions file %sdiversions" -msgstr "No pude abrir el archivo de desviacin %sdiversions" +msgstr "No pude abrir el archivo de desviación %sdiversions" #: apt-inst/deb/dpkgdb.cc:320 msgid "The diversion file is corrupted" -msgstr "El archive de desviacin esta corrompido" +msgstr "El archive de desviaciones está dañado" #: apt-inst/deb/dpkgdb.cc:327 apt-inst/deb/dpkgdb.cc:332 #: apt-inst/deb/dpkgdb.cc:337 #, c-format msgid "Invalid line in the diversion file: %s" -msgstr "Linea invlida en el archivo de desviacin: %s" +msgstr "Linea inválida en el archivo de desviación: %s" #: apt-inst/deb/dpkgdb.cc:358 msgid "Internal error adding a diversion" -msgstr "Error interno agregando una desviacin" +msgstr "Error interno agregando una desviación" #: apt-inst/deb/dpkgdb.cc:379 msgid "The pkg cache must be initialized first" -msgstr "El cach del paquete debe de inicializarse primero" +msgstr "El caché del paquete debe de inicializarse primero" #: apt-inst/deb/dpkgdb.cc:439 #, c-format @@ -1785,7 +1819,7 @@ msgstr "No pude encontrar un paquete: Cabecera, desplazo %lu" #: apt-inst/deb/dpkgdb.cc:461 #, c-format msgid "Bad ConfFile section in the status file. Offset %lu" -msgstr "Mala seccin del ConfFile en el archivo de estado. Desplazo %lu" +msgstr "Mala sección del ConfFile en el archivo de estado. Desplazo %lu" #: apt-inst/deb/dpkgdb.cc:466 #, c-format @@ -1795,12 +1829,12 @@ msgstr "Error leyendo Md5. Desplazo %lu" #: apt-inst/deb/debfile.cc:38 apt-inst/deb/debfile.cc:43 #, c-format msgid "This is not a valid DEB archive, missing '%s' member" -msgstr "Este no es un archivo DEB vlido, falta el miembro '%s'" +msgstr "Este no es un archivo DEB válido, falta el miembro «%s»" #: apt-inst/deb/debfile.cc:50 #, c-format msgid "This is not a valid DEB archive, it has no '%s', '%s' or '%s' member" -msgstr "Este no es un archivo DEB vlido, falta el miembro '%s', '%s' o '%s'" +msgstr "Este no es un archivo DEB válido, falta el miembro «%s», «%s» o «%s»" #: apt-inst/deb/debfile.cc:110 #, c-format @@ -1813,7 +1847,7 @@ msgstr "Error interno, no pude localizar el miembro" #: apt-inst/deb/debfile.cc:173 msgid "Failed to locate a valid control file" -msgstr "No pude localizar un archivo de control vlido" +msgstr "No pude localizar un archivo de control válido" #: apt-inst/deb/debfile.cc:258 msgid "Unparsable control file" @@ -1822,7 +1856,7 @@ msgstr "Archivo de control inanalizable" #: methods/bzip2.cc:65 #, c-format msgid "Couldn't open pipe for %s" -msgstr "No pude abrir una tubera para %s" +msgstr "No pude abrir una tubería para %s" #: methods/bzip2.cc:109 #, c-format @@ -1838,7 +1872,7 @@ msgstr "No pude leer" #: methods/bzip2.cc:147 methods/copy.cc:80 methods/gzip.cc:99 #: methods/rred.cc:492 msgid "Failed to set modification time" -msgstr "No pude poner el tiempo de modificacin" +msgstr "No pude poner el tiempo de modificación" #: methods/cdrom.cc:199 #, c-format @@ -1850,8 +1884,7 @@ msgid "" "Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " "cannot be used to add new CD-ROMs" msgstr "" -"Por favor utilice apt-cdrom para hacer que APT reconozca este CD.\n" -"apt-get update no se puede usar para agregar nuevos CDs" +"Por favor, utilice «apt-cdrom» para hacer que APT reconozca este CD. No puede utilizar «apt-get update» para añadir nuevos CDs" #: methods/cdrom.cc:218 msgid "Wrong CD-ROM" @@ -1860,7 +1893,7 @@ msgstr "CD equivocado" #: methods/cdrom.cc:245 #, c-format msgid "Unable to unmount the CD-ROM in %s, it may still be in use." -msgstr "No pude desmontar el CD-ROM de %s, tal vez todava este en uso." +msgstr "No pude desmontar el CD-ROM de %s, tal vez todavía este en uso." #: methods/cdrom.cc:250 msgid "Disk not found." @@ -1872,7 +1905,7 @@ msgstr "Fichero no encontrado" #: methods/file.cc:44 msgid "Invalid URI, local URIS must not start with //" -msgstr "URI invlido, los URIS locales no deben de empezar con //" +msgstr "URI inválido, los URIS locales no deben de empezar con //" #. Login must be before getpeername otherwise dante won't work. #: methods/ftp.cc:168 @@ -1890,43 +1923,42 @@ msgstr "Imposible determinar el nombre local" #: methods/ftp.cc:210 methods/ftp.cc:238 #, c-format msgid "The server refused the connection and said: %s" -msgstr "El servidor rechaz nuestra conexin y dijo: %s" +msgstr "El servidor rechazó nuestra conexión y dijo: %s" #: methods/ftp.cc:216 #, c-format msgid "USER failed, server said: %s" -msgstr "Usuario (USER) fall, el servidor dijo: %s" +msgstr "Usuario (USER) falló, el servidor dijo: %s" #: methods/ftp.cc:223 #, c-format msgid "PASS failed, server said: %s" -msgstr "Clave (PASS) fall, el servidor dijo: %s" +msgstr "Clave (PASS) falló, el servidor dijo: %s" #: methods/ftp.cc:243 msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." msgstr "" -"Se especific un servidor proxy pero no un script de entrada,\n" -"Acquire::ftp::ProxyLogin est vaco." +"Se especificó un servidor proxy pero no un script de entrada, «Acquire::ftp::ProxyLogin» está vacío." #: methods/ftp.cc:271 #, c-format msgid "Login script command '%s' failed, server said: %s" -msgstr "Fall la orden '%s' del script de entrada, el servidor dijo: %s" +msgstr "Falló la orden «%s» del script de entrada, el servidor dijo: %s" #: methods/ftp.cc:297 #, c-format msgid "TYPE failed, server said: %s" -msgstr "Tipo (TYPE) fall, el servidor dijo: %s" +msgstr "Tipo (TYPE) falló, el servidor dijo: %s" #: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:183 methods/rsh.cc:226 msgid "Connection timeout" -msgstr "La conexin expir" +msgstr "La conexión expiró" #: methods/ftp.cc:341 msgid "Server closed the connection" -msgstr "El servidor cerr la conexin" +msgstr "El servidor cerró la conexión" #: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:784 methods/rsh.cc:190 msgid "Read error" @@ -1934,11 +1966,11 @@ msgstr "Error de lectura" #: methods/ftp.cc:351 methods/rsh.cc:197 msgid "A response overflowed the buffer." -msgstr "Una respuesta desbord el buffer." +msgstr "No pude crear un socket." #: methods/ftp.cc:368 methods/ftp.cc:380 msgid "Protocol corruption" -msgstr "Corrupcin del protocolo" +msgstr "Fallo del protocolo" #: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:826 methods/rsh.cc:232 msgid "Write error" @@ -1950,7 +1982,7 @@ msgstr "No pude crear un socket" #: methods/ftp.cc:703 msgid "Could not connect data socket, connection timed out" -msgstr "No pude conectar el socket de datos, expir el tiempo de conexin" +msgstr "No pude conectar el socket de datos, expiró el tiempo de conexión" #: methods/ftp.cc:709 msgid "Could not connect passive socket." @@ -1979,38 +2011,38 @@ msgstr "No pude mandar la orden PORT" #: methods/ftp.cc:794 #, c-format msgid "Unknown address family %u (AF_*)" -msgstr "Direccin de familia %u desconocida (AF_*)" +msgstr "Dirección de familia %u desconocida (AF_*)" #: methods/ftp.cc:803 #, c-format msgid "EPRT failed, server said: %s" -msgstr "EPRT fall, el servidor dijo: %s" +msgstr "EPRT falló, el servidor dijo: %s" #: methods/ftp.cc:823 msgid "Data socket connect timed out" -msgstr "Expir conexin a socket de datos" +msgstr "Expiró conexión a socket de datos" #: methods/ftp.cc:830 msgid "Unable to accept connection" -msgstr "No pude aceptar la conexin" +msgstr "No pude aceptar la conexión" #: methods/ftp.cc:869 methods/http.cc:1006 methods/rsh.cc:302 msgid "Problem hashing file" -msgstr "Hay problemas enlazando fichero" +msgstr "Se produjo un problema al hacer un hash del archivo" #: methods/ftp.cc:882 #, c-format msgid "Unable to fetch file, server said '%s'" -msgstr "Imposible traer archivo, el servidor dijo '%s'" +msgstr "Imposible traer archivo, el servidor dijo «%s»" #: methods/ftp.cc:897 methods/rsh.cc:321 msgid "Data socket timed out" -msgstr "Expir el socket de datos" +msgstr "Expiró el socket de datos" #: methods/ftp.cc:927 #, c-format msgid "Data transfer failed, server said '%s'" -msgstr "Fall transferencia de datos, el servidor dijo '%s'" +msgstr "Falló transferencia de datos, el servidor dijo «%s»" #. Get the files information #: methods/ftp.cc:1004 @@ -2039,12 +2071,12 @@ msgstr "No pude crear un socket para %s (f=%u t=%u p=%u)" #: methods/connect.cc:95 #, c-format msgid "Cannot initiate the connection to %s:%s (%s)." -msgstr "No puedo iniciar la conexin a %s:%s (%s)." +msgstr "No puedo iniciar la conexión a %s:%s (%s)." #: methods/connect.cc:103 #, c-format msgid "Could not connect to %s:%s (%s), connection timed out" -msgstr "No pude conectarme a %s:%s (%s), expir tiempo para conexin" +msgstr "No pude conectarme a %s:%s (%s), expiró tiempo para conexión" #: methods/connect.cc:121 #, c-format @@ -2061,44 +2093,42 @@ msgstr "Conectando a %s" #: methods/connect.cc:168 methods/connect.cc:187 #, c-format msgid "Could not resolve '%s'" -msgstr "No pude resolver '%s'" +msgstr "No se pudo resolver «%s»" #: methods/connect.cc:193 #, c-format msgid "Temporary failure resolving '%s'" -msgstr "Fallo temporal al resolver '%s'" +msgstr "Fallo temporal al resolver «%s»" #: methods/connect.cc:196 -#, fuzzy, c-format +#, c-format msgid "Something wicked happened resolving '%s:%s' (%i - %s)" -msgstr "Algo raro pas resolviendo '%s:%s' (%i)" +msgstr "Algo raro pasó al resolver «%s:%s» (%i - %s)" #: methods/connect.cc:243 -#, fuzzy, c-format +#, c-format msgid "Unable to connect to %s:%s:" -msgstr "No pude conectarme a %s %s:" +msgstr "No se pudo conectar a %s:%s:" #. TRANSLATOR: %s is the trusted keyring parts directory #: methods/gpgv.cc:71 -#, fuzzy, c-format +#, c-format msgid "No keyring installed in %s." -msgstr "Abortando la instalacin." +msgstr "No se instaló ningún anillo de claves %s." #: methods/gpgv.cc:163 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -"Error interno: Firma correcta, pero no se pudo determinar su huella digital?!" +"Error interno: Firma correcta, ¡¿pero no se pudo determinar su huella digital?!" #: methods/gpgv.cc:168 msgid "At least one invalid signature was encountered." -msgstr "Se encontr al menos una firma invlida." +msgstr "Se encontró al menos una firma inválida." #: methods/gpgv.cc:172 -#, fuzzy msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)" -msgstr "" -"No se pudo ejecutar '%s' para verificar la firma (est instalado gpgv?)" +msgstr "No se pudo ejecutar «gpgv» para verificar la firma (¿está instalado gpgv?)" #: methods/gpgv.cc:177 msgid "Unknown error executing gpgv" @@ -2106,15 +2136,15 @@ msgstr "Error desconocido ejecutando gpgv" #: methods/gpgv.cc:211 methods/gpgv.cc:218 msgid "The following signatures were invalid:\n" -msgstr "Las siguientes firms fueron invlidas:\n" +msgstr "Las siguientes firms fueron inválidas:\n" #: methods/gpgv.cc:225 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" msgstr "" -"Las firmas siguientes no se pudieron verificar porque su llave pblica no " -"est disponible:\n" +"Las firmas siguientes no se pudieron verificar porque su llave pública no " +"está disponible:\n" #: methods/http.cc:385 msgid "Waiting for headers" @@ -2123,27 +2153,27 @@ msgstr "Esperando las cabeceras" #: methods/http.cc:531 #, c-format msgid "Got a single header line over %u chars" -msgstr "Obtuve una sola lnea de cabecera arriba de %u caracteres" +msgstr "Obtuve una sola línea de cabecera arriba de %u caracteres" #: methods/http.cc:539 msgid "Bad header line" -msgstr "Mala lnea de cabecera" +msgstr "Mala línea de cabecera" #: methods/http.cc:564 methods/http.cc:571 msgid "The HTTP server sent an invalid reply header" -msgstr "El servidor de http envi una cabecera de respuesta invlida" +msgstr "El servidor de http envió una cabecera de respuesta inválida" #: methods/http.cc:600 msgid "The HTTP server sent an invalid Content-Length header" -msgstr "El servidor de http envi una cabecera de Content-Length invlida" +msgstr "El servidor de http envió una cabecera de Content-Length inválida" #: methods/http.cc:615 msgid "The HTTP server sent an invalid Content-Range header" -msgstr "El servidor de http envi una cabecera de Content-Range invlida" +msgstr "El servidor de http envió una cabecera de Content-Range inválida" #: methods/http.cc:617 msgid "This HTTP server has broken range support" -msgstr "ste servidor de http tiene el soporte de alcance roto" +msgstr "Éste servidor de http tiene el soporte de alcance roto" #: methods/http.cc:641 msgid "Unknown date format" @@ -2151,11 +2181,11 @@ msgstr "Formato de fecha desconocido" #: methods/http.cc:799 msgid "Select failed" -msgstr "Fall la seleccin" +msgstr "Falló la selección" #: methods/http.cc:804 msgid "Connection timed out" -msgstr "Expir la conexin" +msgstr "Expiró la conexión" #: methods/http.cc:827 msgid "Error writing to output file" @@ -2171,7 +2201,7 @@ msgstr "Error escribiendo al archivo" #: methods/http.cc:900 msgid "Error reading from server. Remote end closed connection" -msgstr "Error leyendo del servidor, el lado remoto cerr la conexin." +msgstr "Error leyendo del servidor, el lado remoto cerró la conexión." #: methods/http.cc:902 msgid "Error reading from server" @@ -2179,7 +2209,7 @@ msgstr "Error leyendo del servidor" #: methods/http.cc:991 apt-pkg/contrib/mmap.cc:281 msgid "Failed to truncate file" -msgstr "Fall al truncar el archivo" +msgstr "Falló al truncar el archivo" #: methods/http.cc:1160 msgid "Bad header data" @@ -2187,7 +2217,7 @@ msgstr "Mala cabecera Data" #: methods/http.cc:1177 methods/http.cc:1232 msgid "Connection failed" -msgstr "Fallo la conexin" +msgstr "Fallo la conexión" #: methods/http.cc:1324 msgid "Internal error" @@ -2195,12 +2225,12 @@ msgstr "Error interno" #: apt-pkg/contrib/mmap.cc:77 msgid "Can't mmap an empty file" -msgstr "No puedo hacer mmap de un fichero vaco" +msgstr "No puedo hacer mmap de un fichero vacío" #: apt-pkg/contrib/mmap.cc:89 -#, fuzzy, c-format +#, c-format msgid "Couldn't duplicate file descriptor %i" -msgstr "No pude abrir una tubera para %s" +msgstr "No pude duplicar el descriptor de fichero %i" #: apt-pkg/contrib/mmap.cc:97 apt-pkg/contrib/mmap.cc:250 #, c-format @@ -2208,72 +2238,70 @@ msgid "Couldn't make mmap of %lu bytes" msgstr "No pude hacer mmap de %lu bytes" #: apt-pkg/contrib/mmap.cc:124 -#, fuzzy msgid "Unable to close mmap" -msgstr "No se pudo abrir %s" +msgstr "No se pudo cerrar «mmap»" #: apt-pkg/contrib/mmap.cc:152 apt-pkg/contrib/mmap.cc:180 -#, fuzzy msgid "Unable to synchronize mmap" -msgstr "No pude invocar " +msgstr "No pude sincronizar «mmap»" #: apt-pkg/contrib/mmap.cc:300 #, c-format msgid "" "Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. " "Current value: %lu. (man 5 apt.conf)" -msgstr "" +msgstr "La asignación dinámica MMap no tiene más espacio. Por favor, incrementa el valor de «APT::Cache-Limit». El valor actual es: %lu (man 5 apt.conf)" #: apt-pkg/contrib/mmap.cc:399 #, c-format msgid "" "Unable to increase the size of the MMap as the limit of %lu bytes is already " "reached." -msgstr "" +msgstr "No se pudo incrementar el tamaño del MMap dado que se ha alcanzado ya el límite de %lu bytes." #: apt-pkg/contrib/mmap.cc:402 msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." -msgstr "" +msgstr "No se pudo incrementar el tamaño de MMap dado que el usuario ha deshabilitado el crecimiento automático." #. d means days, h means hours, min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:371 #, c-format msgid "%lid %lih %limin %lis" -msgstr "" +msgstr "%lid %lih %limin. %liseg." #. h means hours, min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:378 #, c-format msgid "%lih %limin %lis" -msgstr "" +msgstr "%lih %limin. %liseg." #. min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:385 #, c-format msgid "%limin %lis" -msgstr "" +msgstr "%limin. %liseg." #. s means seconds #: apt-pkg/contrib/strutl.cc:390 #, c-format msgid "%lis" -msgstr "" +msgstr "%liseg." #: apt-pkg/contrib/strutl.cc:1119 #, c-format msgid "Selection %s not found" -msgstr "Seleccin %s no encontrada" +msgstr "Selección %s no encontrada" #: apt-pkg/contrib/configuration.cc:452 #, c-format msgid "Unrecognized type abbreviation: '%c'" -msgstr "Tipo de abreviacin no reconocida: '%c'" +msgstr "Tipo de abreviación no reconocida: «%c»" #: apt-pkg/contrib/configuration.cc:510 #, c-format msgid "Opening configuration file %s" -msgstr "Abriendo fichero de configuracin %s" +msgstr "Abriendo fichero de configuración %s" #: apt-pkg/contrib/configuration.cc:678 #, c-format @@ -2288,14 +2316,13 @@ msgstr "Error de sintaxis %s:%u: Marca mal formada" #: apt-pkg/contrib/configuration.cc:714 #, c-format msgid "Syntax error %s:%u: Extra junk after value" -msgstr "Error de sintaxis %s:%u: Basura extra despus del valor" +msgstr "Error de sintaxis %s:%u: Basura extra después del valor" #: apt-pkg/contrib/configuration.cc:754 #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -"Error de sintaxis %s:%u: Las directivas slo se pueden poner\n" -"en el primer nivel" +"Error de sintaxis %s:%u: Las directivas sólo se pueden poner en el primer nivel" #: apt-pkg/contrib/configuration.cc:761 #, c-format @@ -2305,19 +2332,17 @@ msgstr "Error de sintaxis %s:%u: Demasiadas inclusiones anidadas" #: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770 #, c-format msgid "Syntax error %s:%u: Included from here" -msgstr "Error de sintaxis %s:%u: Incluido desde aqu" +msgstr "Error de sintaxis %s:%u: Incluido desde aquí" #: apt-pkg/contrib/configuration.cc:774 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" -msgstr "Error de sintaxis %s:%u: Directiva '%s' no soportada" +msgstr "Error de sintaxis %s:%u: Directiva «%s» no soportada" #: apt-pkg/contrib/configuration.cc:777 -#, fuzzy, c-format +#, c-format msgid "Syntax error %s:%u: clear directive requires an option tree as argument" -msgstr "" -"Error de sintaxis %s:%u: Las directivas slo se pueden poner\n" -"en el primer nivel" +msgstr "Error de sintaxis %s:%u: la directiva «clear» tiene que incluir un árbol de opciones como argumento" #: apt-pkg/contrib/configuration.cc:827 #, c-format @@ -2327,7 +2352,7 @@ msgstr "Error de sintaxis %s:%u: Basura extra al final del archivo" #: apt-pkg/contrib/progress.cc:153 #, c-format msgid "%c%s... Error!" -msgstr "%c%s... Error!" +msgstr "%c%s... ¡Error!" #: apt-pkg/contrib/progress.cc:155 #, c-format @@ -2337,40 +2362,40 @@ msgstr "%c%s... Hecho" #: apt-pkg/contrib/cmndline.cc:77 #, c-format msgid "Command line option '%c' [from %s] is not known." -msgstr "No se conoce la opcin de lnea de rdenes '%c' [ de %s]" +msgstr "No se conoce la opción de línea de órdenes «%c» [de %s]." #: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111 #: apt-pkg/contrib/cmndline.cc:119 #, c-format msgid "Command line option %s is not understood" -msgstr "No se entiende la opcin de lnea de rdenes %s" +msgstr "No se entiende la opción de línea de órdenes %s" #: apt-pkg/contrib/cmndline.cc:124 #, c-format msgid "Command line option %s is not boolean" -msgstr "La opcin de lnea de rdenes %s no es un booleano" +msgstr "La opción de línea de órdenes %s no es un booleano" #: apt-pkg/contrib/cmndline.cc:165 apt-pkg/contrib/cmndline.cc:186 #, c-format msgid "Option %s requires an argument." -msgstr "La opcin %s necesita un argumento." +msgstr "La opción %s necesita un argumento." #: apt-pkg/contrib/cmndline.cc:200 apt-pkg/contrib/cmndline.cc:206 #, c-format msgid "Option %s: Configuration item specification must have an =." msgstr "" -"Opcin %s: La especificacin del elemento de configuracin debe tener un " +"Opción %s: La especificación del elemento de configuración debe tener un " "=." #: apt-pkg/contrib/cmndline.cc:236 #, c-format msgid "Option %s requires an integer argument, not '%s'" -msgstr "La opcin %s exige un argumento entero, no '%s'" +msgstr "La opción %s exige un argumento entero, no «%s»" #: apt-pkg/contrib/cmndline.cc:267 #, c-format msgid "Option '%s' is too long" -msgstr "Opcin '%s' demasiado larga" +msgstr "Opción «%s» demasiado larga" #: apt-pkg/contrib/cmndline.cc:300 #, c-format @@ -2380,12 +2405,12 @@ msgstr "El sentido %s no se entiende, pruebe verdadero o falso." #: apt-pkg/contrib/cmndline.cc:350 #, c-format msgid "Invalid operation %s" -msgstr "Operacin invlida: %s" +msgstr "Operación inválida: %s" #: apt-pkg/contrib/cdromutl.cc:52 #, c-format msgid "Unable to stat the mount point %s" -msgstr "No se puede obtener informacin del punto de montaje %s" +msgstr "No se puede obtener información del punto de montaje %s" #: apt-pkg/contrib/cdromutl.cc:175 apt-pkg/contrib/cdromutl.cc:209 #: apt-pkg/acquire.cc:456 apt-pkg/acquire.cc:481 apt-pkg/clean.cc:39 @@ -2401,12 +2426,12 @@ msgstr "No pude montar el cdrom" #: apt-pkg/contrib/fileutl.cc:154 #, c-format msgid "Not using locking for read only lock file %s" -msgstr "No se utiliza bloqueos para el fichero de bloqueo de slo lectura %s" +msgstr "No se utiliza bloqueos para el fichero de bloqueo de sólo lectura %s" #: apt-pkg/contrib/fileutl.cc:159 #, c-format msgid "Could not open lock file %s" -msgstr "No se pudo abrir el fichero de bloqueo '%s'" +msgstr "No se pudo abrir el fichero de bloqueo «%s»" #: apt-pkg/contrib/fileutl.cc:177 #, c-format @@ -2421,27 +2446,27 @@ msgstr "No se pudo bloquear %s" #: apt-pkg/contrib/fileutl.cc:643 #, c-format msgid "Waited for %s but it wasn't there" -msgstr "Esperaba %s pero no estaba all" +msgstr "Esperaba %s pero no estaba allí" #: apt-pkg/contrib/fileutl.cc:655 #, c-format msgid "Sub-process %s received a segmentation fault." -msgstr "El subproceso %s recibi un fallo de segmentacin." +msgstr "El subproceso %s recibió un fallo de segmentación." #: apt-pkg/contrib/fileutl.cc:657 -#, fuzzy, c-format +#, c-format msgid "Sub-process %s received signal %u." -msgstr "El subproceso %s recibi un fallo de segmentacin." +msgstr "El subproceso %s recibió la señal %u." #: apt-pkg/contrib/fileutl.cc:661 #, c-format msgid "Sub-process %s returned an error code (%u)" -msgstr "El subproceso %s devolvi un cdigo de error (%u)" +msgstr "El subproceso %s devolvió un código de error (%u)" #: apt-pkg/contrib/fileutl.cc:663 #, c-format msgid "Sub-process %s exited unexpectedly" -msgstr "El subproceso %s termin de forma inesperada" +msgstr "El subproceso %s terminó de forma inesperada" #: apt-pkg/contrib/fileutl.cc:728 #, c-format @@ -2449,64 +2474,64 @@ msgid "Could not open file %s" msgstr "No pude abrir el fichero %s" #: apt-pkg/contrib/fileutl.cc:745 -#, fuzzy, c-format +#, c-format msgid "Could not open file descriptor %d" -msgstr "No pude abrir una tubera para %s" +msgstr "No se pudo abrir el descriptor de fichero %d" #: apt-pkg/contrib/fileutl.cc:805 #, c-format msgid "read, still have %lu to read but none left" -msgstr "ledos, todava deba leer %lu pero no queda nada" +msgstr "leídos, todavía debía leer %lu pero no queda nada" #: apt-pkg/contrib/fileutl.cc:838 #, c-format msgid "write, still have %lu to write but couldn't" -msgstr "escritos, todava tena que escribir %lu pero no pude hacerlo" +msgstr "escritos, todavía tenía que escribir %lu pero no pude hacerlo" -#: apt-pkg/contrib/fileutl.cc:937 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:967 +#, c-format msgid "Problem closing the gzip file %s" -msgstr "Problemas cerrando el archivo" +msgstr "Se produjo un problema al cerrar el fichero gzip %s" -#: apt-pkg/contrib/fileutl.cc:940 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:970 +#, c-format msgid "Problem closing the file %s" -msgstr "Problemas cerrando el archivo" +msgstr "Se produjo un problema al cerrar el fichero %s" -#: apt-pkg/contrib/fileutl.cc:945 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:975 +#, c-format msgid "Problem renaming the file %s to %s" -msgstr "Hay problemas sincronizando el fichero" +msgstr "Se produjo un problema al renombrar el fichero %s a %s" -#: apt-pkg/contrib/fileutl.cc:956 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:986 +#, c-format msgid "Problem unlinking the file %s" -msgstr "Hay problemas desligando el fichero %s" +msgstr "Se produjo un problema al desligar el fichero %s" -#: apt-pkg/contrib/fileutl.cc:969 +#: apt-pkg/contrib/fileutl.cc:999 msgid "Problem syncing the file" -msgstr "Hay problemas sincronizando el fichero" +msgstr "Se produjo un problema al sincronizar el fichero" #: apt-pkg/pkgcache.cc:145 msgid "Empty package cache" -msgstr "Cach de paquetes vaca." +msgstr "Caché de paquetes vacía." #: apt-pkg/pkgcache.cc:151 msgid "The package cache file is corrupted" -msgstr "El archivo de cach de paquetes esta corrompido" +msgstr "El archivo de caché de paquetes está dañado" #: apt-pkg/pkgcache.cc:156 msgid "The package cache file is an incompatible version" -msgstr "El archivo de cach de paquetes es una versin incompatible" +msgstr "El archivo de caché de paquetes es una versión incompatible" #: apt-pkg/pkgcache.cc:161 #, c-format msgid "This APT does not support the versioning system '%s'" -msgstr "Este APT no soporta el sistema de versiones '%s'" +msgstr "Esta versión de APT no soporta el sistema de versiones «%s»" #: apt-pkg/pkgcache.cc:166 msgid "The package cache was built for a different architecture" -msgstr "La cach de paquetes se haba creado para una arquitectura diferente" +msgstr "La caché de paquetes se había creado para una arquitectura diferente" #: apt-pkg/pkgcache.cc:293 msgid "Depends" @@ -2542,7 +2567,7 @@ msgstr "Rompe" #: apt-pkg/pkgcache.cc:295 msgid "Enhances" -msgstr "" +msgstr "Mejora" #: apt-pkg/pkgcache.cc:306 msgid "important" @@ -2554,7 +2579,7 @@ msgstr "requiere" #: apt-pkg/pkgcache.cc:306 msgid "standard" -msgstr "estndar" +msgstr "estándar" #: apt-pkg/pkgcache.cc:307 msgid "optional" @@ -2566,7 +2591,7 @@ msgstr "extra" #: apt-pkg/depcache.cc:124 apt-pkg/depcache.cc:153 msgid "Building dependency tree" -msgstr "Creando rbol de dependencias" +msgstr "Creando árbol de dependencias" #: apt-pkg/depcache.cc:125 msgid "Candidate versions" @@ -2574,11 +2599,11 @@ msgstr "Versiones candidatas" #: apt-pkg/depcache.cc:154 msgid "Dependency generation" -msgstr "Generacin de dependencias" +msgstr "Generación de dependencias" #: apt-pkg/depcache.cc:174 apt-pkg/depcache.cc:207 apt-pkg/depcache.cc:211 msgid "Reading state information" -msgstr "Leyendo la informacin de estado" +msgstr "Leyendo la información de estado" #: apt-pkg/depcache.cc:236 #, c-format @@ -2588,12 +2613,12 @@ msgstr "No se pudo abrir el fichero de estado %s" #: apt-pkg/depcache.cc:242 #, c-format msgid "Failed to write temporary StateFile %s" -msgstr "Fall la escritura del fichero de estado temporal %s" +msgstr "Falló la escritura del fichero de estado temporal %s" #: apt-pkg/depcache.cc:921 -#, fuzzy, c-format +#, c-format msgid "Internal error, group '%s' has no installable pseudo package" -msgstr "Error interno, no pude leer un rcord del paquete" +msgstr "Error interno, el grupo «%s» no tiene ningún pseudo-paquete instalable" #: apt-pkg/tagfile.cc:102 #, c-format @@ -2606,54 +2631,54 @@ msgid "Unable to parse package file %s (2)" msgstr "No se pudo tratar el archivo de paquetes %s (2)" #: apt-pkg/sourcelist.cc:92 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([option] unparseable)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([opción] no parseable)" #: apt-pkg/sourcelist.cc:95 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([option] too short)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([opción] demasiado corta)" #: apt-pkg/sourcelist.cc:106 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] is not an assignment)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([%s] no es una asignación)" #: apt-pkg/sourcelist.cc:112 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] has no key)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (no hay clave para [%s])" #: apt-pkg/sourcelist.cc:115 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] key %s has no value)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([%s] la clave %s no tiene asociado un valor)" #: apt-pkg/sourcelist.cc:128 #, c-format msgid "Malformed line %lu in source list %s (URI)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (URI)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (URI)" #: apt-pkg/sourcelist.cc:130 #, c-format msgid "Malformed line %lu in source list %s (dist)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (dist)" #: apt-pkg/sourcelist.cc:133 #, c-format msgid "Malformed line %lu in source list %s (URI parse)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de URI)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (análisis de URI)" #: apt-pkg/sourcelist.cc:139 #, c-format msgid "Malformed line %lu in source list %s (absolute dist)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (dist absoluta)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (dist absoluta)" #: apt-pkg/sourcelist.cc:146 #, c-format msgid "Malformed line %lu in source list %s (dist parse)" -msgstr "Lnea %lu mal formada en lista de fuentes %s (anlisis de dist)" +msgstr "Línea %lu mal formada en la lista de fuentes %s (análisis de dist)" #: apt-pkg/sourcelist.cc:244 #, c-format @@ -2663,24 +2688,24 @@ msgstr "Abriendo %s" #: apt-pkg/sourcelist.cc:261 apt-pkg/cdrom.cc:438 #, c-format msgid "Line %u too long in source list %s." -msgstr "Lnea %u demasiado larga en la lista de fuentes %s." +msgstr "Línea %u demasiado larga en la lista de fuentes %s." #: apt-pkg/sourcelist.cc:281 #, c-format msgid "Malformed line %u in source list %s (type)" -msgstr "Lnea %u mal formada en lista de fuentes %s (tipo)" +msgstr "Línea %u mal formada en la lista de fuentes %s (tipo)" #: apt-pkg/sourcelist.cc:285 #, c-format msgid "Type '%s' is not known on line %u in source list %s" -msgstr "Tipo '%s' desconocido en la lnea %u de lista de fuentes %s" +msgstr "Tipo «%s» desconocido en la línea %u de lista de fuentes %s" #: apt-pkg/packagemanager.cc:331 apt-pkg/packagemanager.cc:616 #, c-format msgid "" "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " "under APT::Immediate-Configure for details. (%d)" -msgstr "" +msgstr "No se pudo realizar la configuración inmediata de «%s». Consulte la página de manual con «man 5 apt.conf» bajo «APT::Immediate-Configure» para más información. (%d)" #: apt-pkg/packagemanager.cc:452 #, c-format @@ -2689,22 +2714,22 @@ msgid "" "package %s due to a Conflicts/Pre-Depends loop. This is often bad, but if " "you really want to do it, activate the APT::Force-LoopBreak option." msgstr "" -"Esta ejecucin de la instalacin requiere eliminar temporalmente el \n" -"paquete esencial %s debido a un bucle de Conflictos/Pre-Dependencias. \n" -"Esto generalmente es malo, pero si realmente quiere hacerlo, active \n" -"la opcin APT::Force-LoopBreak." +"Esta ejecución de la instalación requiere eliminar temporalmente el " +"paquete esencial %s debido a un bucle de Conflictos/Pre-Dependencias. " +"Esto generalmente es malo, pero si realmente quiere hacerlo, active " +"la opción |APT::Force-LoopBreak»." #: apt-pkg/packagemanager.cc:495 #, c-format msgid "" "Could not perform immediate configuration on already unpacked '%s'. Please " "see man 5 apt.conf under APT::Immediate-Configure for details." -msgstr "" +msgstr "No se pudo realizar la configuración inmediata sobre el paquete ya desempaquetado «%s». Consulte la página de manual con «man 5 apt.conf» bajo «APT::Immediate-Configure» para más información." #: apt-pkg/pkgrecords.cc:32 #, c-format msgid "Index file type '%s' is not supported" -msgstr "No se da soporte para el tipo de archivo de ndice '%s'" +msgstr "No se da soporte para el tipo de archivo de índice «%s»" #: apt-pkg/algorithms.cc:292 #, c-format @@ -2712,44 +2737,44 @@ msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" "El paquete %s necesita ser reinstalado, pero no se encuentra un archivo para " -"ste." +"éste." -#: apt-pkg/algorithms.cc:1210 +#: apt-pkg/algorithms.cc:1218 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -"Error, pkgProblemResolver::Resolve gener cortes, esto puede haber sido " +"Error, pkgProblemResolver::Resolve generó cortes, esto puede haber sido " "causado por paquetes retenidos." -#: apt-pkg/algorithms.cc:1212 +#: apt-pkg/algorithms.cc:1220 msgid "Unable to correct problems, you have held broken packages." msgstr "" -"No se pudieron corregir los problemas, usted ha retenido paquetes\n" +"No se pudieron corregir los problemas, usted ha retenido paquetes " "rotos." -#: apt-pkg/algorithms.cc:1488 apt-pkg/algorithms.cc:1490 +#: apt-pkg/algorithms.cc:1496 apt-pkg/algorithms.cc:1498 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -"Algunos archivos de ndice no se han podido descargar, se han ignorado,\n" +"No se han podido descargar algunos archivos de índice, se han ignorado, " "o se ha utilizado unos antiguos en su lugar." #: apt-pkg/acquire.cc:79 -#, fuzzy, c-format +#, c-format msgid "List directory %spartial is missing." msgstr "Falta el directorio de listas %spartial." #: apt-pkg/acquire.cc:83 -#, fuzzy, c-format +#, c-format msgid "Archives directory %spartial is missing." msgstr "Falta el directorio de archivos %spartial." #: apt-pkg/acquire.cc:91 -#, fuzzy, c-format +#, c-format msgid "Unable to lock directory %s" -msgstr "No se pudo bloquear el directorio de listas" +msgstr "No se pudo bloquear el directorio %s" #. only show the ETA if it makes sense #. two days @@ -2766,22 +2791,22 @@ msgstr "Descargando fichero %li de %li" #: apt-pkg/acquire-worker.cc:110 #, c-format msgid "The method driver %s could not be found." -msgstr "No se pudo encontrar el mtodo %s." +msgstr "No se pudo encontrar el método %s." #: apt-pkg/acquire-worker.cc:159 #, c-format msgid "Method %s did not start correctly" -msgstr "El mtodo %s no se inici correctamente" +msgstr "El método %s no se inició correctamente" #: apt-pkg/acquire-worker.cc:413 #, c-format msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." -msgstr "Por favor, inserte el disco %s en la unidad %s y presione Intro" +msgstr "Por favor, inserte el disco «%s» en la unidad «%s» y pulse Intro." #: apt-pkg/init.cc:143 #, c-format msgid "Packaging system '%s' is not supported" -msgstr "El sistema de paquetes '%s' no est soportado" +msgstr "No está soportado el sistema de paquetes «%s»" #: apt-pkg/init.cc:159 msgid "Unable to determine a suitable packaging system type" @@ -2794,7 +2819,7 @@ msgstr "No se pudo leer %s." #: apt-pkg/srcrecords.cc:44 msgid "You must put some 'source' URIs in your sources.list" -msgstr "Debe poner algunos URIs 'fuente' en su sources.list" +msgstr "Debe poner algunos URIs fuente («source») en su sources.list" #: apt-pkg/cachefile.cc:84 msgid "The package lists or status file could not be parsed or opened." @@ -2804,17 +2829,16 @@ msgstr "" #: apt-pkg/cachefile.cc:88 msgid "You may want to run apt-get update to correct these problems" -msgstr "Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas" +msgstr "Tal vez quiera ejecutar «apt-get update» para corregir estos problemas" #: apt-pkg/cachefile.cc:106 msgid "The list of sources could not be read." msgstr "No se pudieron leer las listas de fuentes." #: apt-pkg/policy.cc:344 -#, fuzzy, c-format +#, c-format msgid "Invalid record in the preferences file %s, no Package header" -msgstr "" -"Registro invlido en el archivo de preferencias, no hay cabecera de paquete" +msgstr "Registro inválido en el archivo de preferencias %s, no hay cabecera «Package»" #: apt-pkg/policy.cc:366 #, c-format @@ -2827,84 +2851,84 @@ msgstr "No hay prioridad especificada para pin (o es cero)" #: apt-pkg/pkgcachegen.cc:80 msgid "Cache has an incompatible versioning system" -msgstr "La cach tiene una versin incompatible de sistema de versiones" +msgstr "La caché tiene una versión incompatible de sistema de versiones" #: apt-pkg/pkgcachegen.cc:198 #, c-format msgid "Error occurred while processing %s (NewPackage)" -msgstr "Ocurri un error mientras se procesaba %s (NewPackage)" +msgstr "Se produjo un error mientras se procesaba %s (NewPackage)" #: apt-pkg/pkgcachegen.cc:215 #, c-format msgid "Error occurred while processing %s (UsePackage1)" -msgstr "Ocurri un error mientras se procesaba %s (UsePackage1)" +msgstr "Se produjo un error mientras se procesaba %s (UsePackage1)" #: apt-pkg/pkgcachegen.cc:253 #, c-format msgid "Error occurred while processing %s (NewFileDesc1)" -msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc1)" +msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc1)" #: apt-pkg/pkgcachegen.cc:285 #, c-format msgid "Error occurred while processing %s (UsePackage2)" -msgstr "Ocurri un error mientras se procesaba %s (UsePackage2)" +msgstr "Se produjo un error mientras se procesaba %s (UsePackage2)" #: apt-pkg/pkgcachegen.cc:289 #, c-format msgid "Error occurred while processing %s (NewFileVer1)" -msgstr "Ocurri un error mientras se procesaba %s (NewFileVer1)" +msgstr "Se produjo un error mientras se procesaba %s (NewFileVer1)" #: apt-pkg/pkgcachegen.cc:306 apt-pkg/pkgcachegen.cc:316 #: apt-pkg/pkgcachegen.cc:324 -#, fuzzy, c-format +#, c-format msgid "Error occurred while processing %s (NewVersion%d)" -msgstr "Ocurri un error mientras se procesaba %s (NewVersion1)" +msgstr "Se produjo un error mientras se procesaba %s (NewVersion%d)" #: apt-pkg/pkgcachegen.cc:320 #, c-format msgid "Error occurred while processing %s (UsePackage3)" -msgstr "Ocurri un error mientras se procesaba %s (UsePackage3)" +msgstr "Se produjo un error mientras se procesaba %s (UsePackage3)" #: apt-pkg/pkgcachegen.cc:353 #, c-format msgid "Error occurred while processing %s (NewFileDesc2)" -msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc2)" +msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc2)" #: apt-pkg/pkgcachegen.cc:360 msgid "Wow, you exceeded the number of package names this APT is capable of." msgstr "" -"Vaya, excedi el nmero de nombres de paquetes que este APT es capaz de " +"Vaya, excedió el número de nombres de paquetes que este APT es capaz de " "manejar." #: apt-pkg/pkgcachegen.cc:363 msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "Vaya, excedi el nmero de versiones que este APT es capaz de manejar." +msgstr "Vaya, excedió el número de versiones que este APT es capaz de manejar." #: apt-pkg/pkgcachegen.cc:366 msgid "Wow, you exceeded the number of descriptions this APT is capable of." msgstr "" -"Vaya, excedi el nmero de descripciones que este APT es capaz de manejar." +"Vaya, excedió el número de descripciones que este APT es capaz de manejar." #: apt-pkg/pkgcachegen.cc:369 msgid "Wow, you exceeded the number of dependencies this APT is capable of." msgstr "" -"Vaya, excedi el nmero de dependencias que este APT es capaz de manejar." +"Vaya, excedió el número de dependencias que este APT es capaz de manejar." #: apt-pkg/pkgcachegen.cc:398 #, c-format msgid "Error occurred while processing %s (FindPkg)" -msgstr "Ocurri un error mientras procesaba %s (FindPkg)" +msgstr "Se produjo un error mientras se procesaba %s (FindPkg)" #: apt-pkg/pkgcachegen.cc:412 #, c-format msgid "Error occurred while processing %s (CollectFileProvides)" -msgstr "Ocurri un error mientras procesaba %s (CollectFileProvides)" +msgstr "Se produjo un error mientras se procesaba %s (CollectFileProvides)" #: apt-pkg/pkgcachegen.cc:418 #, c-format msgid "Package %s %s was not found while processing file dependencies" msgstr "" -"Al procesar las dependencias de archivos no se encontr el\n" +"Al procesar las dependencias de archivos no se encontró el " "paquete %s %s" #: apt-pkg/pkgcachegen.cc:982 @@ -2918,12 +2942,12 @@ msgstr "Recogiendo archivos que proveen" #: apt-pkg/pkgcachegen.cc:1265 apt-pkg/pkgcachegen.cc:1272 msgid "IO Error saving source cache" -msgstr "Error de E/S guardando cach fuente" +msgstr "Error de E/S guardando caché fuente" #: apt-pkg/acquire-item.cc:136 #, c-format msgid "rename failed, %s (%s -> %s)." -msgstr "fall el cambio de nombre, %s (%s -> %s)." +msgstr "falló el cambio de nombre, %s (%s -> %s)." #: apt-pkg/acquire-item.cc:484 msgid "MD5Sum mismatch" @@ -2937,7 +2961,7 @@ msgstr "La suma hash difiere" #: apt-pkg/acquire-item.cc:1244 msgid "There is no public key available for the following key IDs:\n" msgstr "" -"No existe ninguna clave pblica disponible para los siguientes " +"No existe ninguna clave pública disponible para los siguientes " "identificadores de clave:\n" #. TRANSLATOR: The first %s is the URL of the bad Release file, the second is @@ -2946,24 +2970,24 @@ msgstr "" #: apt-pkg/acquire-item.cc:1281 #, c-format msgid "Release file expired, ignoring %s (invalid since %s)" -msgstr "" +msgstr "El archivo «Release» ha expirado, ignorando %s (inválido desde hace %s)" #: apt-pkg/acquire-item.cc:1302 #, c-format msgid "Conflicting distribution: %s (expected %s but got %s)" -msgstr "" +msgstr "Distribución conflictiva: %s (se esperaba %s, pero se obtuvo %s)" #: apt-pkg/acquire-item.cc:1328 #, c-format msgid "" "A error occurred during the signature verification. The repository is not " "updated and the previous index files will be used. GPG error: %s: %s\n" -msgstr "" +msgstr "Se produjo un error durante la verificación de las firmas. El repositorio no está actualizado y se utilizarán los ficheros de índice antiguos. El error GPG es: %s: %s\n" #: apt-pkg/acquire-item.cc:1337 #, c-format msgid "GPG error: %s: %s" -msgstr "" +msgstr "Error de GPG: %s: %s" #: apt-pkg/acquire-item.cc:1365 #, c-format @@ -2988,38 +3012,36 @@ msgstr "" #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." -msgstr "" -"Los archivos de ndice de paquetes estn corrompidos. El campo 'Filename:' " -"no existe para para el paquete %s." +msgstr "Los archivos de índice de paquetes están dañados. No existe un campo «Filename:» para el paquete %s." #: apt-pkg/acquire-item.cc:1566 msgid "Size mismatch" -msgstr "El tamao difiere" +msgstr "El tamaño difiere" #: apt-pkg/indexrecords.cc:53 -#, fuzzy, c-format +#, c-format msgid "Unable to parse Release file %s" -msgstr "No se pudo tratar el archivo de paquetes %s (1)" +msgstr "No se pudo leer el archivo «Release» %s" #: apt-pkg/indexrecords.cc:60 -#, fuzzy, c-format +#, c-format msgid "No sections in Release file %s" -msgstr "Nota, seleccionando %s en lugar de %s\n" +msgstr "No se encontraron secciones en el archivo «Release» %s" #: apt-pkg/indexrecords.cc:94 #, c-format msgid "No Hash entry in Release file %s" -msgstr "" +msgstr "No existe una entrada «Hash» en el archivo «Release» %s" #: apt-pkg/indexrecords.cc:107 -#, fuzzy, c-format +#, c-format msgid "Invalid 'Valid-Until' entry in Release file %s" -msgstr "Linea invlida en el archivo de desviacin: %s" +msgstr "Entrada «Valid-Until» inválida en el archivo «Release» %s" #: apt-pkg/indexrecords.cc:122 -#, fuzzy, c-format +#, c-format msgid "Invalid 'Date' entry in Release file %s" -msgstr "No se pudo tratar el archivo de paquetes %s (1)" +msgstr "Entrada «Date» inválida en el archivo «Release» %s" #: apt-pkg/vendorlist.cc:66 #, c-format @@ -3068,7 +3090,7 @@ msgstr "Montando el CD-ROM...\n" #: apt-pkg/cdrom.cc:626 msgid "Scanning disc for index files..\n" -msgstr "Buscando en el disco archivos de ndices...\n" +msgstr "Buscando en el disco archivos de índices...\n" #: apt-pkg/cdrom.cc:666 #, c-format @@ -3076,26 +3098,23 @@ msgid "" "Found %zu package indexes, %zu source indexes, %zu translation indexes and " "%zu signatures\n" msgstr "" -"Se encontraron %zu ndices de paquetes, %zu ndices de fuentes, %zu ndices " -"de traduccin y %zu firmas\n" +"Se encontraron %zu índices de paquetes, %zu índices de fuentes, %zu índices " +"de traducción y %zu firmas\n" #: apt-pkg/cdrom.cc:677 -#, fuzzy msgid "" "Unable to locate any package files, perhaps this is not a Debian Disc or the " "wrong architecture?" -msgstr "" -"No pude localizar ningn archivo de paquete, tal vez este no es un disco de " -"Debian" +msgstr "No pude localizar ningún archivo de paquete, ¿quizás este no sea un disco de Debian o sea de otra arquitectura?" #: apt-pkg/cdrom.cc:703 #, c-format msgid "Found label '%s'\n" -msgstr "Se encontr la etiqueta: '%s'\n" +msgstr "Se encontró la etiqueta: «%s»\n" #: apt-pkg/cdrom.cc:732 msgid "That is not a valid name, try again.\n" -msgstr "Ese no es un nombre vlido, intntelo de nuevo.\n" +msgstr "Ese no es un nombre válido, inténtelo de nuevo.\n" #: apt-pkg/cdrom.cc:748 #, c-format @@ -3104,7 +3123,7 @@ msgid "" "'%s'\n" msgstr "" "Este disco se llama: \n" -"'%s'\n" +"«%s»\n" #: apt-pkg/cdrom.cc:752 msgid "Copying package lists..." @@ -3140,201 +3159,199 @@ msgstr "" "%i registros escritos con %i fichero de menos y %i ficheros mal emparejados\n" #: apt-pkg/indexcopy.cc:537 -#, fuzzy, c-format +#, c-format msgid "Skipping nonexistent file %s" -msgstr "Abriendo fichero de configuracin %s" +msgstr "Omitiendo el fichero inexistente %s" #: apt-pkg/indexcopy.cc:543 #, c-format msgid "Can't find authentication record for: %s" -msgstr "" +msgstr "No se pudo encontrar un registro de autenticación para: %s" #: apt-pkg/indexcopy.cc:549 -#, fuzzy, c-format +#, c-format msgid "Hash mismatch for: %s" -msgstr "La suma hash difiere" +msgstr "La suma hash difiere para: %s" #: apt-pkg/cacheset.cc:337 #, c-format msgid "Release '%s' for '%s' was not found" -msgstr "No se encontr la Distribucin '%s' para '%s'" +msgstr "No se encontró la Distribución «%s» para «%s»" #: apt-pkg/cacheset.cc:340 #, c-format msgid "Version '%s' for '%s' was not found" -msgstr "No se encontr la versin '%s' para '%s'" +msgstr "No se encontró la versión «%s» para «%s»" #: apt-pkg/cacheset.cc:447 -#, fuzzy, c-format +#, c-format msgid "Couldn't find task '%s'" -msgstr "No se pudo encontrar la tarea %s" +msgstr "No se pudo encontrar la tarea «%s»" #: apt-pkg/cacheset.cc:454 -#, fuzzy, c-format +#, c-format msgid "Couldn't find any package by regex '%s'" -msgstr "No se pudo encontrar el paquete %s" +msgstr "No se pudo encontrar ningún paquete con la expresión regular «%s»" #: apt-pkg/cacheset.cc:467 #, c-format msgid "Can't select versions from package '%s' as it purely virtual" -msgstr "" +msgstr "No se pueden seleccionar distintas versiones del paquete «%s» porque es puramente virtual" #: apt-pkg/cacheset.cc:475 apt-pkg/cacheset.cc:483 #, c-format msgid "" "Can't select installed nor candidate version from package '%s' as it has " "neither of them" -msgstr "" +msgstr "No se puede seleccionar una versión instalada o candidata para el paquete «%s» dado que éste no tiene ninguna de éstas" #: apt-pkg/cacheset.cc:491 #, c-format msgid "Can't select newest version from package '%s' as it is purely virtual" -msgstr "" +msgstr "No se puede seleccionar la última versión del paquete «%s» dado que es puramente virtual" #: apt-pkg/cacheset.cc:499 #, c-format msgid "Can't select candidate version from package %s as it has no candidate" -msgstr "" +msgstr "No se puede seleccionar una versión candidata del paquete %s dado que no tiene candidatos" #: apt-pkg/cacheset.cc:507 #, c-format msgid "Can't select installed version from package %s as it is not installed" -msgstr "" +msgstr "No se puede seleccionar una versión instalada del paquete «%s» puesto que no está instalado" #: apt-pkg/deb/dpkgpm.cc:52 #, c-format msgid "Installing %s" msgstr "Instalando %s" -#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:822 +#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:823 #, c-format msgid "Configuring %s" msgstr "Configurando %s" -#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:829 +#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:830 #, c-format msgid "Removing %s" msgstr "Eliminando %s" #: apt-pkg/deb/dpkgpm.cc:55 -#, fuzzy, c-format +#, c-format msgid "Completely removing %s" -msgstr "Se borr completamente %s" +msgstr "Borrando completamente %s" #: apt-pkg/deb/dpkgpm.cc:56 #, c-format msgid "Noting disappearance of %s" -msgstr "" +msgstr "Se detectó la desaparición de %s" #: apt-pkg/deb/dpkgpm.cc:57 #, c-format msgid "Running post-installation trigger %s" -msgstr "Ejecutando disparador post-instalacin %s" +msgstr "Ejecutando disparador post-instalación %s" #. FIXME: use a better string after freeze #: apt-pkg/deb/dpkgpm.cc:646 #, c-format msgid "Directory '%s' missing" -msgstr "Falta el directorio '%s'." +msgstr "Falta el directorio «%s»." -#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:674 -#, fuzzy, c-format +#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:675 +#, c-format msgid "Could not open file '%s'" -msgstr "No pude abrir el fichero %s" +msgstr "No pude abrir el fichero «%s»" -#: apt-pkg/deb/dpkgpm.cc:815 +#: apt-pkg/deb/dpkgpm.cc:816 #, c-format msgid "Preparing %s" msgstr "Preparando %s" -#: apt-pkg/deb/dpkgpm.cc:816 +#: apt-pkg/deb/dpkgpm.cc:817 #, c-format msgid "Unpacking %s" msgstr "Desempaquetando %s" -#: apt-pkg/deb/dpkgpm.cc:821 +#: apt-pkg/deb/dpkgpm.cc:822 #, c-format msgid "Preparing to configure %s" -msgstr "Preparndose para configurar %s" +msgstr "Preparándose para configurar %s" -#: apt-pkg/deb/dpkgpm.cc:823 +#: apt-pkg/deb/dpkgpm.cc:824 #, c-format msgid "Installed %s" msgstr "%s instalado" -#: apt-pkg/deb/dpkgpm.cc:828 +#: apt-pkg/deb/dpkgpm.cc:829 #, c-format msgid "Preparing for removal of %s" -msgstr "Preparndose para eliminar %s" +msgstr "Preparándose para eliminar %s" -#: apt-pkg/deb/dpkgpm.cc:830 +#: apt-pkg/deb/dpkgpm.cc:831 #, c-format msgid "Removed %s" msgstr "%s eliminado" -#: apt-pkg/deb/dpkgpm.cc:835 +#: apt-pkg/deb/dpkgpm.cc:836 #, c-format msgid "Preparing to completely remove %s" -msgstr "Preparndose para eliminar completamente %s" +msgstr "Preparándose para eliminar completamente %s" -#: apt-pkg/deb/dpkgpm.cc:836 +#: apt-pkg/deb/dpkgpm.cc:837 #, c-format msgid "Completely removed %s" -msgstr "Se borr completamente %s" +msgstr "Se borró completamente %s" -#: apt-pkg/deb/dpkgpm.cc:1042 +#: apt-pkg/deb/dpkgpm.cc:1043 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" -msgstr "" -"No se pudo escbribir en el registro, fall la llamada a openpty() (est " -"montado /dev/pts?)\n" +msgstr "No pudo escribirse el registro, falló la llamada a openpty() (¿está montado «/dev/pts?)\n" -#: apt-pkg/deb/dpkgpm.cc:1073 +#: apt-pkg/deb/dpkgpm.cc:1074 msgid "Running dpkg" -msgstr "" +msgstr "Ejecutando dpkg" -#: apt-pkg/deb/dpkgpm.cc:1276 +#: apt-pkg/deb/dpkgpm.cc:1277 msgid "No apport report written because MaxReports is reached already" -msgstr "" +msgstr "No se escribió ningún informe «apport» porque ya se ha alcanzado el valor de «MaxReports»" #. check if its not a follow up error -#: apt-pkg/deb/dpkgpm.cc:1281 +#: apt-pkg/deb/dpkgpm.cc:1282 msgid "dependency problems - leaving unconfigured" -msgstr "" +msgstr "problemas de dependencias - dejando sin instalar" -#: apt-pkg/deb/dpkgpm.cc:1283 +#: apt-pkg/deb/dpkgpm.cc:1284 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." -msgstr "" +msgstr "No se escribió un informe «apport» porque el mensaje de error indica que es un mensaje de error asociado a un fallo previo." -#: apt-pkg/deb/dpkgpm.cc:1289 +#: apt-pkg/deb/dpkgpm.cc:1290 msgid "" "No apport report written because the error message indicates a disk full " "error" -msgstr "" +msgstr "No se escribió un informe «apport» porque el mensaje de error indica que el error es de disco lleno" -#: apt-pkg/deb/dpkgpm.cc:1295 +#: apt-pkg/deb/dpkgpm.cc:1296 msgid "" "No apport report written because the error message indicates a out of memory " "error" -msgstr "" +msgstr "No se escribió un informe «apport» porque el mensaje de error indica un error de memoria excedida" -#: apt-pkg/deb/dpkgpm.cc:1302 +#: apt-pkg/deb/dpkgpm.cc:1303 msgid "" "No apport report written because the error message indicates a dpkg I/O error" -msgstr "" +msgstr "No se escribió un informe «apport» porque el mensaje de error indica un error de E/S de dpkg" #: apt-pkg/deb/debsystem.cc:69 #, c-format msgid "" "Unable to lock the administration directory (%s), is another process using " "it?" -msgstr "" +msgstr "No se pudo bloquear el directorio de administración (%s), ¿quizás haya algún otro proceso utilizándolo?" #: apt-pkg/deb/debsystem.cc:72 -#, fuzzy, c-format +#, c-format msgid "Unable to lock the administration directory (%s), are you root?" -msgstr "No se pudo bloquear el directorio de listas" +msgstr "No se encontró un archivo de réplica «%s»" #. TRANSLATORS: the %s contains the recovery command, usually #. dpkg --configure -a @@ -3342,44 +3359,44 @@ msgstr "No se pudo bloquear el directorio de listas" #, c-format msgid "" "dpkg was interrupted, you must manually run '%s' to correct the problem. " -msgstr "" +msgstr "se interrumpió la ejecución de dpkg, debe ejecutar manualmente «%s» para corregir el problema" #: apt-pkg/deb/debsystem.cc:106 msgid "Not locked" -msgstr "" +msgstr "No bloqueado" #. FIXME: fallback to a default mirror here instead #. and provide a config option to define that default #: methods/mirror.cc:200 #, c-format msgid "No mirror file '%s' found " -msgstr "" +msgstr "No se encontró un archivo de réplica «%s»" #: methods/mirror.cc:343 #, c-format msgid "[Mirror: %s]" -msgstr "" +msgstr "[Réplica: %s]" #: methods/rred.cc:465 #, c-format msgid "" "Could not patch %s with mmap and with file operation usage - the patch seems " "to be corrupt." -msgstr "" +msgstr "No se pudo parchear %s con mmap y con el modo de uso de la operación de ficheros - el paquete parece dañado." #: methods/rred.cc:470 #, c-format msgid "" "Could not patch %s with mmap (but no mmap specific fail) - the patch seems " "to be corrupt." -msgstr "" +msgstr "No se pudo parchear %s con mmap (pero no hay un fallo mmap específico) - el parche parece dañado." #: methods/rsh.cc:329 msgid "Connection closed prematurely" -msgstr "La conexin se cerr prematuramente" +msgstr "La conexión se cerró prematuramente" #~ msgid "You must give exactly one pattern" -#~ msgstr "Debe dar exactamente un patrn" +#~ msgstr "Debe dar exactamente un patrón" #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." #~ msgstr "" @@ -3387,13 +3404,13 @@ msgstr "La conexi #~ "Terminando." #~ msgid "Error occurred while processing %s (NewVersion2)" -#~ msgstr "Ocurri un error mientras se procesaba %s (NewVersion2)" +#~ msgstr "Se produjo un error mientras se procesaba %s (NewVersion2)" #~ msgid "Malformed line %u in source list %s (vendor id)" -#~ msgstr "Lnea %u mal formada en la lista de fuentes %s (id del fabricante)" +#~ msgstr "Línea %u mal formada en la lista de fuentes %s (id del fabricante)" #~ msgid "Couldn't access keyring: '%s'" -#~ msgstr "No se pudo acceder al anillo de claves: '%s'" +#~ msgstr "No se pudo acceder al anillo de claves: «%s»" #~ msgid "Could not patch file" #~ msgstr "No pude parchear el fichero" @@ -3408,29 +3425,29 @@ msgstr "La conexi #~ msgstr "Procesando disparadores para %s" #~ msgid "Dynamic MMap ran out of room" -#~ msgstr "La funcin Dynamic MMap se qued sin espacio" +#~ msgstr "La función «Dynamic MMap» se quedó sin espacio" #~ msgid "" #~ "Since you only requested a single operation it is extremely likely that\n" #~ "the package is simply not installable and a bug report against\n" #~ "that package should be filed." #~ msgstr "" -#~ "Como slo solicito una nica operacin, es extremadamente posible que el\n" -#~ "paquete simplemente no sea instalable y debera de rellenar un informe " +#~ "Como sólo solicito una única operación, es extremadamente posible que el\n" +#~ "paquete simplemente no sea instalable y debería de rellenar un informe " #~ "de\n" #~ "error contra ese paquete." #~ msgid "Line %d too long (max %lu)" -#~ msgstr "Lnea %d demasiado larga (mx %lu)" +#~ msgstr "Línea %d demasiado larga (máx %lu)" #~ msgid "Line %d too long (max %d)" -#~ msgstr "Lnea %d demasiado larga (mx %d)" +#~ msgstr "Línea %d demasiado larga (máx %d)" #~ msgid "Error occured while processing %s (NewFileDesc1)" -#~ msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc1)" +#~ msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc1)" #~ msgid "Error occured while processing %s (NewFileDesc2)" -#~ msgstr "Ocurri un error mientras se procesaba %s (NewFileDesc2)" +#~ msgstr "Se produjo un error mientras se procesaba %s (NewFileDesc2)" #~ msgid "Stored label: %s \n" #~ msgstr "Etiqueta guardada: %s \n" @@ -3439,14 +3456,14 @@ msgstr "La conexi #~ "Found %i package indexes, %i source indexes, %i translation indexes and " #~ "%i signatures\n" #~ msgstr "" -#~ "Se encontraron %i ndices de paquetes, %i ndices de fuentes, %i ndices " -#~ "de traduccin y %i firmas\n" +#~ "Se encontraron %i índices de paquetes, %i índices de fuentes, %i índices " +#~ "de traducción y %i firmas\n" #~ msgid "openpty failed\n" -#~ msgstr "Fall openpty\n" +#~ msgstr "Falló openpty\n" #~ msgid "File date has changed %s" -#~ msgstr "Cambi la fecha del archivo %s" +#~ msgstr "Cambió la fecha del archivo %s" #~ msgid "Reading file list" #~ msgstr "Leyendo Lista de Archivos" @@ -3455,14 +3472,14 @@ msgstr "La conexi #~ msgstr "No se pudo ejecutar " #~ msgid "Preparing for remove with config %s" -#~ msgstr "Preparndose para eliminar con su configuracin %s" +#~ msgstr "Preparándose para eliminar con su configuración %s" #~ msgid "Removed with config %s" -#~ msgstr "Eliminado con su configuracin %s" +#~ msgstr "Eliminado con su configuración %s" #~ msgid "Unknown vendor ID '%s' in line %u of source list %s" #~ msgstr "" -#~ "ID del fabricante '%s' desconocido en la lnea %u de la lista de\n" +#~ "ID del fabricante «%s» desconocido en la línea %u de la lista de\n" #~ "fuentes %s" #~ msgid "" @@ -3471,7 +3488,7 @@ msgstr "La conexi #~ "You might want to run 'apt-get -f install' to correct these." #~ msgstr "" #~ "Se encontraron algunos paquetes rotos mientras se intentaba procesar\n" -#~ "las dependencies de construccin. Tal vez quiera ejecutar \n" +#~ "las dependencies de construcción. Tal vez quiera ejecutar \n" #~ "'apt-get -f install' para corregirlos." #~ msgid "" @@ -3514,39 +3531,39 @@ msgstr "La conexi #~ " apt-cache [opciones] showpkg paq1 [paq2 ...]\n" #~ "\n" #~ "apt-cache es una herramienta usada para manipular los archivos binarios\n" -#~ "de cach de APT, y consultar informacin de stos.\n" +#~ "de caché de APT, y consultar información de éstos.\n" #~ "\n" #~ "Comandos:\n" -#~ " add - Aade un archivo de paquete a la cach fuente\n" -#~ " gencaches - Crea el cach de ambos, del paquete y del fuente\n" -#~ " showpkg - Muestra alguna informacin general para un solo paquete\n" -#~ " showsrc - Muestra la informacin de las fuentes\n" -#~ " stats - Muestra algunas estadsticas bsicas\n" +#~ " add - Añade un archivo de paquete a la caché fuente\n" +#~ " gencaches - Crea el caché de ambos, del paquete y del fuente\n" +#~ " showpkg - Muestra alguna información general para un solo paquete\n" +#~ " showsrc - Muestra la información de las fuentes\n" +#~ " stats - Muestra algunas estadísticas básicas\n" #~ " dump - Muestra el archivo entero en formato detallado\n" #~ " dumpavail - Imprime un archivo de paquetes disponibles a salida\n" -#~ "estndar\n" +#~ "estándar\n" #~ " unmet - Muestra dependencias incumplidas\n" -#~ " search - Busca en la lista de paquetes por un patrn de expresin\n" +#~ " search - Busca en la lista de paquetes por un patrón de expresión\n" #~ "regular\n" #~ " show - Muestra un registro del paquete\n" -#~ " depends - Muestra informacin de dependencias en bruto para el\n" +#~ " depends - Muestra información de dependencias en bruto para el\n" #~ "paquete\n" #~ " pkgnames - Lista los nombres de todos los paquetes\n" -#~ " dotty - Genera grficas del paquete para GraphVis\n" -#~ " policy - Muestra los parmetros de las normas\n" +#~ " dotty - Genera gráficas del paquete para GraphVis\n" +#~ " policy - Muestra los parámetros de las normas\n" #~ "\n" #~ "Opciones:\n" #~ " -h Este texto de ayuda.\n" -#~ " -p=? El cach del paquete.\n" -#~ " -s=? El cach de la fuente.\n" +#~ " -p=? El caché del paquete.\n" +#~ " -s=? El caché de la fuente.\n" #~ " -q Deshabilita el indicador de progreso.\n" -#~ " -i Muestra slo dependencias importantes para el comando de\n" +#~ " -i Muestra sólo dependencias importantes para el comando de\n" #~ "incumplido.\n" -#~ " -c=? Lee este archivo de configuracin\n" -#~ " -o=? Establece una opcin de configuracin arbitraria, p. ej. -o dir::\n" +#~ " -c=? Lee este archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" #~ "cache=/tmp\n" -#~ "Consulte las pginas del manual apt-cache(8) y apt.conf(5) para ms\n" -#~ "informacin.\n" +#~ "Consulte las páginas del manual apt-cache(8) y apt.conf(5) para más\n" +#~ "información.\n" #~ msgid "" #~ "%s dependency on %s cannot be satisfied because the package %s cannot be " @@ -3556,7 +3573,7 @@ msgstr "La conexi #~ "no se puede encontrar" #~ msgid "The package cache was build for a different architecture" -#~ msgstr "La cach de archivos fue creado para una arquitectura diferente" +#~ msgstr "La caché de archivos fue creado para una arquitectura diferente" #~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." #~ msgstr "" @@ -3574,19 +3591,19 @@ msgstr "La conexi #~ msgstr "Necesito descargar %sB de ficheros. " #~ msgid "After unpacking %sB will be used.\n" -#~ msgstr "Se usarn %sB despus de desempaquetar.\n" +#~ msgstr "Se usarán %sB después de desempaquetar.\n" #~ msgid "After unpacking %sB will be freed.\n" -#~ msgstr "Se liberarn %sB despus de desempaquetar.\n" +#~ msgstr "Se liberarán %sB después de desempaquetar.\n" #~ msgid "" #~ "Sorry, re-installation of %s is not possible, it cannot be downloaded.\n" #~ msgstr "" -#~ "Lo siento, no es posible la reinstalacin del paquete %s, no puede ser " +#~ "Lo siento, no es posible la reinstalación del paquete %s, no puede ser " #~ "descargado.\n" #~ msgid "Sorry, %s is already the newest version.\n" -#~ msgstr "Lo siento, %s ya est en su versin ms reciente.\n" +#~ msgstr "Lo siento, %s ya está en su versión más reciente.\n" #~ msgid "Sorry, broken packages" #~ msgstr "Lo siento, paquetes rotos" @@ -3607,7 +3624,7 @@ msgstr "La conexi #~ msgstr "-> '" #~ msgid "Followed conf file from " -#~ msgstr "Archivo de configuracin seguido por" +#~ msgstr "Archivo de configuración seguido por" #~ msgid " to " #~ msgstr " a " @@ -3616,7 +3633,7 @@ msgstr "La conexi #~ msgstr "Extraer" #~ msgid "Aborted, backing out" -#~ msgstr "Abortado, retractndome" +#~ msgstr "Abortado, retractándome" #~ msgid "De-replaced " #~ msgstr "De-reemplazado" @@ -3634,25 +3651,25 @@ msgstr "La conexi #~ msgstr "Fichero reemplazado" #~ msgid "Unimplemented" -#~ msgstr "No est implementado" +#~ msgstr "No está implementado" #~ msgid "Generating cache" -#~ msgstr "Generando el cach" +#~ msgstr "Generando el caché" #~ msgid "Problem with SelectFile" -#~ msgstr "Hay problemas con SelectFile" +#~ msgstr "Se produjo un problema con «SelectFile»" #~ msgid "Problem with MergeList" -#~ msgstr "Hay problemas con MergeList" +#~ msgstr "Se produjo un problema con «MergeList»" #~ msgid "Regex compilation error" -#~ msgstr "Error de compilacin de Regex" +#~ msgstr "Error de compilación de Regex" #~ msgid "Write to stdout failed" -#~ msgstr "No pude escribir a la salida estndar" +#~ msgstr "No pude escribir a la salida estándar" #~ msgid "Generate must be enabled for this function" -#~ msgstr "Generate debe de estar habilitado para esta funcin" +#~ msgstr "Generate debe de estar habilitado para esta función" #~ msgid "Failed to stat %s%s" #~ msgstr "No pude leer %s%s" @@ -3661,22 +3678,22 @@ msgstr "La conexi #~ msgstr "No pude abrir %s.new" #~ msgid "Failed to rename %s.new to %s" -#~ msgstr "No pude renombrar %s.new a %s" +#~ msgstr "No se pudo renombrar %s.new a %s" #~ msgid "I found (binary):" -#~ msgstr "Encontr (binario):" +#~ msgstr "Encontré (binario):" #~ msgid "I found (source):" -#~ msgstr "Encontr (fuente):" +#~ msgstr "Encontré (fuente):" #~ msgid "Found " -#~ msgstr "Encontr " +#~ msgstr "Encontré " #~ msgid " source indexes." -#~ msgstr " ndice de fuentes." +#~ msgstr " índice de fuentes." #~ msgid " '" -#~ msgstr " '" +#~ msgstr " »" #~ msgid "" #~ "Usage: apt-cdrom [options] command\n" @@ -3703,22 +3720,22 @@ msgstr "La conexi #~ "Uso: apt-cdrom [opciones] orden\n" #~ "\n" #~ "apt-cdrom es una herramienta para agregar CDROM para las fuentes de\n" -#~ "APT. El punto de montaje del CDROM y la informacin del dispositivo\n" +#~ "APT. El punto de montaje del CDROM y la información del dispositivo\n" #~ "se extrae de apt.conf y /etc/fstab.\n" #~ "\n" #~ "Comandos:\n" #~ " add - Agrega un CDROM\n" -#~ " ident - Reporta la identificacin del CDROM\n" +#~ " ident - Reporta la identificación del CDROM\n" #~ "\n" #~ "Opciones:\n" #~ " -h Este texto de ayuda\n" #~ " -d Punto de montaje del CD-ROM\n" #~ " -r Renombra un CD-ROM reconocido\n" #~ " -m No monta\n" -#~ " -f Modo rpido, no comprueba archivos de paquetes\n" -#~ " -a A travs de modo de bsqueda\n" -#~ " -c=? Lee esto archivo de configuracin\n" -#~ " -o=? Establece una opcin de configuracin arbitraria, ej -o dir::\n" +#~ " -f Modo rápido, no comprueba archivos de paquetes\n" +#~ " -a A través de modo de búsqueda\n" +#~ " -c=? Lee esto archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria, ej -o dir::\n" #~ "cache=/tmp\n" #~ "Ver fstab(5)\n" @@ -3729,7 +3746,7 @@ msgstr "La conexi #~ msgstr "No pude esperar al subproceso" #~ msgid "....\"Have you mooed today?\"..." -#~ msgstr "....\"Has mugido hoy?\"..." +#~ msgstr "....\"¿Has mugido hoy?\"..." #~ msgid " New " #~ msgstr " Nuevo " @@ -3774,20 +3791,20 @@ msgstr "La conexi #~ msgstr "" #~ "Opciones:\n" #~ " -h Este texto de ayuda\n" -#~ " --md5 Generacin de control MD5 \n" +#~ " --md5 Generación de control MD5 \n" #~ " -s=? Archivo fuente de predominio\n" #~ " -q Callado\n" #~ " -d=? Selecciona la base de datos opcional de cache\n" -#~ " --no-delink Habilita modo de depuracin delink\n" -#~ " --contents Generacin del contenido del archivo 'Control'\n" -#~ " -c=? Lee este archivo de configuracin\n" -#~ " -o=? Establece una opcin de configuracin arbitraria\n" +#~ " --no-delink Habilita modo de depuración delink\n" +#~ " --contents Generación del contenido del archivo 'Control'\n" +#~ " -c=? Lee este archivo de configuración\n" +#~ " -o=? Establece una opción de configuración arbitraria\n" #~ msgid "Done Packages, Starting contents." #~ msgstr "Paquetes terminados, empezando contenidos." #~ msgid "Hit contents update byte limit" -#~ msgstr "Se encontr el lmite de bytes de actualizacin de contenidos" +#~ msgstr "Se encontró el límite de bytes de actualización de contenidos" #~ msgid "Done. " #~ msgstr "Listo." @@ -3805,10 +3822,10 @@ msgstr "La conexi #~ msgstr " no " #~ msgid "DSC file '%s' is too large!" -#~ msgstr "El Archivo DSC '%s' es demasiado grande!" +#~ msgstr "¡El archivo DSC «%s» es demasiado grande!" #~ msgid "Could not find a record in the DSC '%s'" -#~ msgstr "No se pudo encontrar un registro en el archive DSC '%s'" +#~ msgstr "No se pudo encontrar un registro en el archive DSC «%s»" #~ msgid "Error parsing file record" #~ msgstr "Error leyendo archivo de registros" @@ -3817,10 +3834,10 @@ msgstr "La conexi #~ msgstr "No pude leer %s" #~ msgid "Errors apply to file '%s'" -#~ msgstr "Errores aplicables al fichero '%s'" +#~ msgstr "Los errores aplican al fichero «%s»" #~ msgid "Unkonwn address family %u (AF_*)" -#~ msgstr "Direccin de familia %u desconocida (AF_*)" +#~ msgstr "Dirección de familia %u desconocida (AF_*)" #~ msgid "Failed to mount the cdrom." #~ msgstr "No pude montar el cdrom" @@ -3847,25 +3864,25 @@ msgstr "La conexi #~ " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" #~ " dists/potato/main/binary-i386/Packages\n" #~ msgstr "" -#~ "apt-ftparchive genera archivos de ndice para archivos de Debian.\n" -#~ "Soporta varios estilos de generacin de reemplazos completamente\n" +#~ "apt-ftparchive genera archivos de índice para archivos de Debian.\n" +#~ "Soporta varios estilos de generación de reemplazos completamente\n" #~ "automatizados a funcionales para dpkg-scanpackages y dpkg-scansources\n" #~ "\n" -#~ "apt-ftparchive genera archivos Package de un rbol de .debs. El Archivo\n" +#~ "apt-ftparchive genera archivos Package de un árbol de .debs. El Archivo\n" #~ "Package contiene los contenidos de todos los campos de control de cada\n" -#~ "paquete al igual que el enlace MD5 y el tamao del archivo. Se\n" +#~ "paquete al igual que el enlace MD5 y el tamaño del archivo. Se\n" #~ "soporta el uso de un archivo de predominio para forzar el valor de\n" #~ "Priority y Section.\n" #~ "\n" -#~ "Igualmente, apt-ftparchive genera archivos de Fuentes para el rbol de\n" -#~ ".dscs. Puede usarse la opcin --source-override para especificar un\n" +#~ "Igualmente, apt-ftparchive genera archivos de Fuentes para el árbol de\n" +#~ ".dscs. Puede usarse la opción --source-override para especificar un\n" #~ "fichero de predominio fuente.\n" #~ "\n" -#~ "Las rdenes 'packages' y 'sources' se deben de ejecutar en la raz del\n" -#~ "rbol. BinaryPath debe de apuntar a la base del archivo de bsqueda\n" +#~ "Las órdenes 'packages' y 'sources' se deben de ejecutar en la raíz del\n" +#~ "árbol. BinaryPath debe de apuntar a la base del archivo de búsqueda\n" #~ "recursiva, y el archivo de predominio debe contener banderas de\n" #~ "predominio. Pathprefix se agregado a los campos del nombre del archivo\n" -#~ "si estn presentes. Ejemplo de uso tomado de los archivos de Debian:\n" +#~ "si están presentes. Ejemplo de uso tomado de los archivos de Debian:\n" #~ " apt-ftparchive packages dists/potato/main/binary-i386/ > \\\\\n" #~ " dists/potato/main/binary-i386/Packages\n" @@ -3876,10 +3893,10 @@ msgstr "La conexi #~ msgstr "A: No se pudo leer " #~ msgid "E: Errors apply to file '" -#~ msgstr "E: Errores aplicables al archivo '" +#~ msgstr "E: Errores aplicables al archivo «" #~ msgid " DeLink limit of " -#~ msgstr " DeLink lmite de" +#~ msgstr " DeLink límite de" #~ msgid " has no override entry" #~ msgstr " no tiene entrada de predominio" -- cgit v1.2.3 From 17c09907ffee9773ff416f9c5a0dc168326a8504 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 25 Jan 2011 11:52:07 +0100 Subject: po/es.po: Updated, plus fixes encoding issues and fixes two fuzzy strings, thanks to Javier Fernandez-Sanguino (closes: #610692) --- debian/changelog | 8 ++ po/es.po | 413 +++++++++++++++++++++++-------------------------------- 2 files changed, 180 insertions(+), 241 deletions(-) diff --git a/debian/changelog b/debian/changelog index a4e8e5c90..d4ac384e2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.10.3) unstable; urgency=low + + [ Programs translations ] + * po/es.po: Updated, plus fixes encoding issues and fixes two fuzzy + strings, thanks to Javier Fernandez-Sanguino (closes: #610692) + + -- Michael Vogt Tue, 25 Jan 2011 11:51:42 +0100 + apt (0.8.10.2) unstable; urgency=low [ David Kalnischkies ] diff --git a/po/es.po b/po/es.po index 0754945f4..a92ed128c 100644 --- a/po/es.po +++ b/po/es.po @@ -33,13 +33,13 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.8.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-09-28 17:23+0200\n" -"PO-Revision-Date: 2010-12-15 00:30+0100\n" +"POT-Creation-Date: 2010-11-30 11:14+0100\n" +"PO-Revision-Date: 2011-01-24 11:47+0100\n" "Last-Translator: Javier Fernández-Sanguino Peña \n" "Language-Team: Debian Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-POFile-SpellExtra: BD getaddrinfo dist show xvcg Filename sources cachés\n" @@ -72,6 +72,7 @@ msgstr "" "X-POFile-SpellExtra: autoclean showsrc desactualizados clean gzip TYPE\n" "X-POFile-SpellExtra: sinfo Acquire\n" + #: cmdline/apt-cache.cc:156 #, c-format msgid "Package %s version %s has an unmet dep:\n" @@ -256,8 +257,7 @@ msgstr "" " apt-cache [opciones] showsrc paq1 [paq2 ...]\n" "\n" "apt-cache es una herramienta de bajo nivel que se utiliza para manipular\n" -"los archivos binarios de caché de APT y consultar información sobre " -"éstos\n" +"los archivos binarios de caché de APT y consultar información sobre éstos\n" "\n" "Órdenes:\n" " add - Agrega un archivo de paquete a la caché de fuentes\n" @@ -268,13 +268,10 @@ msgstr "" " dump - Muestra el archivo entero en un formato terso\n" " dumpavail - Imprime un archivo disponible a la salida estándar\n" " unmet - Muestra dependencias incumplidas\n" -" search - Busca en la lista de paquetes por un patrón de expresión " -"regular\n" +" search - Busca en la lista de paquetes por un patrón de expresión regular\n" " show - Muestra un registro legible para el paquete\n" -" showauto - Muestra una lista de los paquetes instalados de forma autom" -"tica\n" -" depends - Muestra la información de dependencias en bruto para el " -"paquete\n" +" showauto - Muestra una lista de los paquetes instalados de forma automática\n" +" depends - Muestra la información de dependencias en bruto para el paquete\n" " rdepends - Muestra la información de dependencias inversas del paquete\n" " pkgnames - Lista los nombres de todos los paquetes en el sistema\n" " dotty - Genera gráficas del paquete para GraphViz\n" @@ -290,14 +287,11 @@ msgstr "" " -c=? Lee este archivo de configuración\n" " -o=? Establece una opción de configuración arbitraria, \n" " p.ej. -o dir::cache=/tmp\n" -"Vea las páginas del manual apt-cache(8) y apt.conf(5) para más " -"información.\n" +"Vea las páginas del manual apt-cache(8) y apt.conf(5) para más información.\n" #: cmdline/apt-cdrom.cc:77 msgid "Please provide a name for this Disc, such as 'Debian 5.0.3 Disk 1'" -msgstr "" -"Proporcione un nombre para este disco, como pueda ser «Debian 5.0.3 Disco " -"1»" +msgstr "Proporcione un nombre para este disco, como pueda ser «Debian 5.0.3 Disco 1»" #: cmdline/apt-cdrom.cc:92 msgid "Please insert a Disc in the drive and press enter" @@ -333,8 +327,7 @@ msgid "" msgstr "" "Uso: apt-config [opciones] orden\n" "\n" -"apt-config es una herramienta para leer el archivo de configuración de " -"APT.\n" +"apt-config es una herramienta para leer el archivo de configuración de APT.\n" "\n" "Comandos:\n" " shell - Modo shell\n" @@ -383,8 +376,7 @@ msgstr "No se puede escribir en %s" #: cmdline/apt-extracttemplates.cc:309 msgid "Cannot get debconf version. Is debconf installed?" -msgstr "" -"No se puede encontrar la versión de debconf. ¿Está debconf instalado?" +msgstr "No se puede encontrar la versión de debconf. ¿Está debconf instalado?" #: ftparchive/apt-ftparchive.cc:170 ftparchive/apt-ftparchive.cc:347 msgid "Package extension list is too long" @@ -518,9 +510,7 @@ msgstr "DB anticuada, intentando actualizar %s" msgid "" "DB format is invalid. If you upgraded from an older version of apt, please " "remove and re-create the database." -msgstr "" -"El formato de la base de datos no es válido. Debe eliminar y recrear la " -"base de datos si vd. se actualizó de una versión anterior de apt." +msgstr "El formato de la base de datos no es válido. Debe eliminar y recrear la base de datos si vd. se actualizó de una versión anterior de apt." #: ftparchive/cachedb.cc:77 #, c-format @@ -866,8 +856,7 @@ msgid "" "is only available from another source\n" msgstr "" "El paquete %s no está disponible, pero algún otro paquete hace referencia\n" -"a él. Esto puede significar que el paquete falta, está obsoleto o sólo " -"se\n" +"a él. Esto puede significar que el paquete falta, está obsoleto o sólo se\n" "encuentra disponible desde alguna otra fuente\n" #: cmdline/apt-get.cc:701 @@ -892,15 +881,12 @@ msgstr "Nota, seleccionando «%s» en lugar de «%s»\n" #: cmdline/apt-get.cc:785 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" -msgstr "" -"Ignorando %s, ya está instalado y no está activada la actualización.\n" +msgstr "Ignorando %s, ya está instalado y no está activada la actualización.\n" #: cmdline/apt-get.cc:789 #, c-format msgid "Skipping %s, it is not installed and only upgrades are requested.\n" -msgstr "" -"Ignorando %s, no está instalado y sólo se están solicitando " -"actualizaciones.\n" +msgstr "Ignorando %s, no está instalado y sólo se están solicitando actualizaciones.\n" #: cmdline/apt-get.cc:799 #, c-format @@ -976,9 +962,7 @@ msgstr "Error interno, ¡se llamó a «InstallPackages» con paquetes rotos!" #: cmdline/apt-get.cc:1053 msgid "Packages need to be removed but remove is disabled." -msgstr "" -"Los paquetes necesitan eliminarse pero está deshabilitado la posibilidad de " -"eliminar." +msgstr "Los paquetes necesitan eliminarse pero está deshabilitado la posibilidad de eliminar." #: cmdline/apt-get.cc:1064 msgid "Internal error, Ordering didn't finish" @@ -987,8 +971,7 @@ msgstr "Error interno, no terminó la ordenación" #: cmdline/apt-get.cc:1104 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.org" +"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 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB @@ -1010,8 +993,7 @@ msgstr "Necesito descargar %sB de archivos.\n" #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "" -"Se utilizarán %sB de espacio de disco adicional después de esta " -"operación.\n" +"Se utilizarán %sB de espacio de disco adicional después de esta operación.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB @@ -1058,7 +1040,7 @@ msgstr "Abortado." msgid "Do you want to continue [Y/n]? " msgstr "¿Desea continuar [S/n]? " -#: cmdline/apt-get.cc:1269 cmdline/apt-get.cc:2392 apt-pkg/algorithms.cc:1462 +#: cmdline/apt-get.cc:1269 cmdline/apt-get.cc:2392 apt-pkg/algorithms.cc:1470 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Imposible obtener %s %s\n" @@ -1076,8 +1058,8 @@ msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -"No se pudieron obtener algunos archivos, ¿quizás deba ejecutar «apt-get " -"update» o deba intentarlo de nuevo con --fix-missing?" +"No se pudieron obtener algunos archivos, ¿quizás deba ejecutar " +"«apt-get update» o deba intentarlo de nuevo con --fix-missing?" #: cmdline/apt-get.cc:1298 msgid "--fix-missing and media swapping is not currently supported" @@ -1112,8 +1094,7 @@ msgstr "Nota: Dpkg realiza esto de forma automática y a propósito." #: cmdline/apt-get.cc:1466 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" -msgstr "" -"Ignorar la distribución objetivo no disponible «%s» del paquete «%s»" +msgstr "Ignorar la distribución objetivo no disponible «%s» del paquete «%s»" #: cmdline/apt-get.cc:1498 #, c-format @@ -1141,22 +1122,16 @@ msgid "" msgid_plural "" "The following packages were automatically installed and are no longer " "required:" -msgstr[0] "" -"El paquete indicado a continuación se instaló de forma automática y ya no " -"es necesarios." -msgstr[1] "" -"Los paquetes indicados a continuación se instalaron de forma automática y " -"ya no son necesarios." +msgstr[0] "El paquete indicado a continuación se instaló de forma automática y ya no es necesarios." +msgstr[1] "Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios." #: cmdline/apt-get.cc:1670 #, c-format msgid "%lu package was automatically installed and is no longer required.\n" msgid_plural "" "%lu packages were automatically installed and are no longer required.\n" -msgstr[0] "" -"Se instaló de forma automática %lu paquete y ya no es necesario.\n" -msgstr[1] "" -"Se instalaron de forma automática %lu paquetes y ya no son necesarios.\n" +msgstr[0] "Se instaló de forma automática %lu paquete y ya no es necesario.\n" +msgstr[1] "Se instalaron de forma automática %lu paquetes y ya no son necesarios.\n" #: cmdline/apt-get.cc:1672 msgid "Use 'apt-get autoremove' to remove them." @@ -1167,8 +1142,8 @@ msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." msgstr "" -"Hmmm. Parece que «AutoRemover» destruyó algo y eso no debería haber " -"pasado. Por favor, envíe un informe de fallo al programa apt." +"Hmmm. Parece que «AutoRemover» destruyó algo y eso no debería haber pasado. " +"Por favor, envíe un informe de fallo al programa apt." #. #. if (Packages == 1) @@ -1200,9 +1175,7 @@ msgstr "Tal vez quiera ejecutar «apt-get -f install» para corregirlo:" msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." -msgstr "" -"Dependencias incumplidas. Intente «apt-get -f install» sin paquetes (o " -"especifique una solución)." +msgstr "Dependencias incumplidas. Intente «apt-get -f install» sin paquetes (o especifique una solución)." #: cmdline/apt-get.cc:1807 msgid "" @@ -1257,7 +1230,8 @@ msgstr "Listo" #: cmdline/apt-get.cc:2090 cmdline/apt-get.cc:2098 msgid "Internal error, problem resolver broke stuff" msgstr "" -"Error interno, el sistema de solución de problemas rompió algunas cosas" +"Error interno, el sistema de solución de problemas rompió " +"algunas cosas" #: cmdline/apt-get.cc:2122 cmdline/apt-get.cc:2155 msgid "Unable to lock the download directory" @@ -1278,8 +1252,7 @@ msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" "%s\n" msgstr "" -"NOTA: el empaquetamiento de «%s» se mantiene en el sistema de control de " -"versiones «%s» en:\n" +"NOTA: el empaquetamiento de «%s» se mantiene en el sistema de control de versiones «%s» en:\n" "%s\n" #: cmdline/apt-get.cc:2259 @@ -1291,8 +1264,7 @@ msgid "" msgstr "" "Por favor, utilice:\n" "bzr get %s\n" -"para obtener las últimas actualizaciones (posiblemente no publicadas aún) " -"del paquete.\n" +"para obtener las últimas actualizaciones (posiblemente no publicadas aún) del paquete.\n" #: cmdline/apt-get.cc:2310 #, c-format @@ -1354,14 +1326,13 @@ msgstr "Falló el proceso hijo" #: cmdline/apt-get.cc:2493 msgid "Must specify at least one package to check builddeps for" msgstr "" -"Debe especificar al menos un paquete para verificar sus dependencias de " -"construcción" +"Debe especificar al menos un paquete para verificar sus " +"dependencias de construcción" #: cmdline/apt-get.cc:2524 #, c-format msgid "Unable to get build-dependency information for %s" -msgstr "" -"No se pudo obtener información de dependencias de construcción para %s" +msgstr "No se pudo obtener información de dependencias de construcción para %s" #: cmdline/apt-get.cc:2544 #, c-format @@ -1374,8 +1345,8 @@ msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -"La dependencia %s en %s no puede satisfacerse porque no se puede encontrar " -"el paquete %s" +"La dependencia %s en %s no puede satisfacerse porque no se puede " +"encontrar el paquete %s" #: cmdline/apt-get.cc:2648 #, c-format @@ -1412,7 +1383,6 @@ msgid "Supported modules:" msgstr "Módulos soportados:" #: cmdline/apt-get.cc:2804 -#, fuzzy msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1456,7 +1426,48 @@ msgid "" "See the apt-get(8), sources.list(5) and apt.conf(5) manual\n" "pages for more information and options.\n" " This APT has Super Cow Powers.\n" -msgstr "Des:" +msgstr "" +"Uso: apt-get [opciones] orden\n" +" apt-get [opciones] install|remove paq1 [paq2 ...]\n" +" apt-get [opciones] source paq1 [paq2 ...]\n" +"\n" +"apt-get es una sencilla interfaz de línea de órdenes para descargar e\n" +"instalar paquetes. Las órdenes más utilizadas son update e install.\n" +"\n" +"Órdenes:\n" +" update - Descarga nuevas listas de paquetes\n" +" upgrade - Realiza una actualización\n" +" install - Instala nuevos paquetes (paquete es libc6 y no libc6.deb)\n" +" remove - Elimina paquetes\n" +" purge - Elimina y purga paquetes\n" +" source - Descarga archivos fuente\n" +" build-dep - Configura las dependencias de construcción para paquetes fuente\n" +" dist-upgrade - Actualiza la distribución, vea apt-get(8)\n" +" dselect-upgrade - Sigue las selecciones de dselect\n" +" clean - Elimina los archivos descargados\n" +" autoclean - Elimina los archivos descargados antiguos\n" +" check - Verifica que no haya dependencias incumplidas\n" +" markauto - Marca los paquetes indicados como instalados de forma automática\n" +" unmarkauto - Marca los paquetes indicados como instalado de forma manual\n" +"\n" +"Opciones:\n" +" -h Este texto de ayuda.\n" +" -q Salida registrable - sin indicador de progreso\n" +" -qq Sin salida, excepto si hay errores\n" +" -d Sólo descarga - NO instala o desempaqueta los archivos\n" +" -s No actúa. Realiza una simulación\n" +" -y Asume Sí para todas las consultas\n" +" -f Intenta continuar si la comprobación de integridad falla\n" +" -m Intenta continuar si los archivos no son localizables\n" +" -u Muestra también una lista de paquetes actualizados\n" +" -b Construye el paquete fuente después de obtenerlo\n" +" -V Muesta números de versión detallados\n" +" -c=? Lee este archivo de configuración\n" +" -o=? Establece una opción de configuración arbitraria, p. ej. \n" +" -o dir::cache=/tmp\n" +"Consulte las páginas del manual de apt-get(8), sources.list(5) y apt.conf(5)\n" +"para más información y opciones.\n" +" Este APT tiene poderes de Super Vaca.\n" #: cmdline/apt-get.cc:2960 msgid "" @@ -1466,38 +1477,37 @@ msgid "" " so don't depend on the relevance to the real current situation!" msgstr "" "NOTA: ¡Esto es sólo una simulación\n" -" apt-get necesita privilegios de administrador para la ejecución " -"real.\n" +" apt-get necesita privilegios de administrador para la ejecución real.\n" " Tenga también en cuenta que se han desactivado los bloqueos,\n" " ¡no dependa de la relevancia a la situación real actual!" -#: cmdline/acqprogress.cc:55 +#: cmdline/acqprogress.cc:57 msgid "Hit " msgstr "Obj " -#: cmdline/acqprogress.cc:79 +#: cmdline/acqprogress.cc:81 msgid "Get:" msgstr "Des:" -#: cmdline/acqprogress.cc:110 +#: cmdline/acqprogress.cc:112 msgid "Ign " msgstr "Ign " -#: cmdline/acqprogress.cc:114 +#: cmdline/acqprogress.cc:116 msgid "Err " msgstr "Err " -#: cmdline/acqprogress.cc:135 +#: cmdline/acqprogress.cc:137 #, c-format msgid "Fetched %sB in %s (%sB/s)\n" msgstr "Descargados %sB en %s (%sB/s)\n" -#: cmdline/acqprogress.cc:225 +#: cmdline/acqprogress.cc:227 #, c-format msgid " [Working]" msgstr " [Trabajando]" -#: cmdline/acqprogress.cc:271 +#: cmdline/acqprogress.cc:283 #, c-format msgid "" "Media change: please insert the disc labeled\n" @@ -1552,9 +1562,7 @@ msgstr "¿Desea borrar los archivos .deb descargados con anterioridad?" #: dselect/install:101 msgid "Some errors occurred while unpacking. Packages that were installed" -msgstr "" -"Se produjeron algunos problemas mientras se desempaquetaba. Los paquetes que " -"se instalaron" +msgstr "Se produjeron algunos problemas mientras se desempaquetaba. Los paquetes que se instalaron" #: dselect/install:102 msgid "will be configured. This may result in duplicate errors" @@ -1562,16 +1570,12 @@ msgstr "van a configurarse. Esto puede dar lugar a errores duplicados" #: dselect/install:103 msgid "or errors caused by missing dependencies. This is OK, only the errors" -msgstr "" -"o errores causados por dependencias no presentes. Esto está BIEN, sólo los " -"errores" +msgstr "o errores causados por dependencias no presentes. Esto está BIEN, sólo los errores" #: dselect/install:104 msgid "" "above this message are important. Please fix them and run [I]nstall again" -msgstr "" -"encima de este mensaje son importantes. Por favor, corríjalas y ejecute «[I]" -"nstall» otra vez" +msgstr "encima de este mensaje son importantes. Por favor, corríjalas y ejecute «[I]nstall» otra vez" #: dselect/update:30 msgid "Merging available information" @@ -1591,8 +1595,7 @@ msgstr "Archivo dañado" #: apt-inst/contrib/extracttar.cc:193 msgid "Tar checksum failed, archive corrupted" -msgstr "" -"Se produjo un fallo al calcular la suma de control de tar, archive dañado" +msgstr "Se produjo un fallo al calcular la suma de control de tar, archive dañado" #: apt-inst/contrib/extracttar.cc:296 #, c-format @@ -1774,10 +1777,7 @@ msgid "" "Failed to open the list file '%sinfo/%s'. If you cannot restore this file " "then make it empty and immediately re-install the same version of the " "package!" -msgstr "" -"No pude abrir el archivo de lista «%sinfo/%s». ¡Si no puede restablecer " -"este archivo entonces cree uno vacío e inmediatamente reinstale la misma " -"versión del paquete!" +msgstr "No pude abrir el archivo de lista «%sinfo/%s». ¡Si no puede restablecer este archivo entonces cree uno vacío e inmediatamente reinstale la misma versión del paquete!" #: apt-inst/deb/dpkgdb.cc:225 apt-inst/deb/dpkgdb.cc:238 #, c-format @@ -1834,8 +1834,7 @@ msgstr "Este no es un archivo DEB válido, falta el miembro «%s»" #: apt-inst/deb/debfile.cc:50 #, c-format msgid "This is not a valid DEB archive, it has no '%s', '%s' or '%s' member" -msgstr "" -"Este no es un archivo DEB válido, falta el miembro «%s», «%s» o «%s»" +msgstr "Este no es un archivo DEB válido, falta el miembro «%s», «%s» o «%s»" #: apt-inst/deb/debfile.cc:110 #, c-format @@ -1885,8 +1884,7 @@ msgid "" "Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " "cannot be used to add new CD-ROMs" msgstr "" -"Por favor, utilice «apt-cdrom» para hacer que APT reconozca este CD. No " -"puede utilizar «apt-get update» para añadir nuevos CDs" +"Por favor, utilice «apt-cdrom» para hacer que APT reconozca este CD. No puede utilizar «apt-get update» para añadir nuevos CDs" #: methods/cdrom.cc:218 msgid "Wrong CD-ROM" @@ -1942,8 +1940,7 @@ msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." msgstr "" -"Se especificó un servidor proxy pero no un script de entrada, «Acquire::" -"ftp::ProxyLogin» está vacío." +"Se especificó un servidor proxy pero no un script de entrada, «Acquire::ftp::ProxyLogin» está vacío." #: methods/ftp.cc:271 #, c-format @@ -2123,8 +2120,7 @@ msgstr "No se instaló ningún anillo de claves %s." msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -"Error interno: Firma correcta, ¡¿pero no se pudo determinar su huella " -"digital?!" +"Error interno: Firma correcta, ¡¿pero no se pudo determinar su huella digital?!" #: methods/gpgv.cc:168 msgid "At least one invalid signature was encountered." @@ -2132,9 +2128,7 @@ msgstr "Se encontró al menos una firma inválida." #: methods/gpgv.cc:172 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)" -msgstr "" -"No se pudo ejecutar «gpgv» para verificar la firma (¿está instalado " -"gpgv?)" +msgstr "No se pudo ejecutar «gpgv» para verificar la firma (¿está instalado gpgv?)" #: methods/gpgv.cc:177 msgid "Unknown error executing gpgv" @@ -2256,25 +2250,19 @@ msgstr "No pude sincronizar «mmap»" msgid "" "Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. " "Current value: %lu. (man 5 apt.conf)" -msgstr "" -"La asignación dinámica MMap no tiene más espacio. Por favor, incrementa " -"el valor de «APT::Cache-Limit». El valor actual es: %lu (man 5 apt.conf)" +msgstr "La asignación dinámica MMap no tiene más espacio. Por favor, incrementa el valor de «APT::Cache-Limit». El valor actual es: %lu (man 5 apt.conf)" #: apt-pkg/contrib/mmap.cc:399 #, c-format msgid "" "Unable to increase the size of the MMap as the limit of %lu bytes is already " "reached." -msgstr "" -"No se pudo incrementar el tamaño del MMap dado que se ha alcanzado ya el lí" -"mite de %lu bytes." +msgstr "No se pudo incrementar el tamaño del MMap dado que se ha alcanzado ya el límite de %lu bytes." #: apt-pkg/contrib/mmap.cc:402 msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." -msgstr "" -"No se pudo incrementar el tamaño de MMap dado que el usuario ha " -"deshabilitado el crecimiento automático." +msgstr "No se pudo incrementar el tamaño de MMap dado que el usuario ha deshabilitado el crecimiento automático." #. d means days, h means hours, min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:371 @@ -2334,8 +2322,7 @@ msgstr "Error de sintaxis %s:%u: Basura extra después del valor" #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -"Error de sintaxis %s:%u: Las directivas sólo se pueden poner en el primer " -"nivel" +"Error de sintaxis %s:%u: Las directivas sólo se pueden poner en el primer nivel" #: apt-pkg/contrib/configuration.cc:761 #, c-format @@ -2355,9 +2342,7 @@ msgstr "Error de sintaxis %s:%u: Directiva «%s» no soportada" #: apt-pkg/contrib/configuration.cc:777 #, c-format msgid "Syntax error %s:%u: clear directive requires an option tree as argument" -msgstr "" -"Error de sintaxis %s:%u: la directiva «clear» tiene que incluir un árbol " -"de opciones como argumento" +msgstr "Error de sintaxis %s:%u: la directiva «clear» tiene que incluir un árbol de opciones como argumento" #: apt-pkg/contrib/configuration.cc:827 #, c-format @@ -2503,27 +2488,27 @@ msgstr "leídos, todavía debía leer %lu pero no queda nada" msgid "write, still have %lu to write but couldn't" msgstr "escritos, todavía tenía que escribir %lu pero no pude hacerlo" -#: apt-pkg/contrib/fileutl.cc:937 +#: apt-pkg/contrib/fileutl.cc:967 #, c-format msgid "Problem closing the gzip file %s" msgstr "Se produjo un problema al cerrar el fichero gzip %s" -#: apt-pkg/contrib/fileutl.cc:940 +#: apt-pkg/contrib/fileutl.cc:970 #, c-format msgid "Problem closing the file %s" msgstr "Se produjo un problema al cerrar el fichero %s" -#: apt-pkg/contrib/fileutl.cc:945 +#: apt-pkg/contrib/fileutl.cc:975 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Se produjo un problema al renombrar el fichero %s a %s" -#: apt-pkg/contrib/fileutl.cc:956 +#: apt-pkg/contrib/fileutl.cc:986 #, c-format msgid "Problem unlinking the file %s" msgstr "Se produjo un problema al desligar el fichero %s" -#: apt-pkg/contrib/fileutl.cc:969 +#: apt-pkg/contrib/fileutl.cc:999 msgid "Problem syncing the file" msgstr "Se produjo un problema al sincronizar el fichero" @@ -2633,8 +2618,7 @@ msgstr "Falló la escritura del fichero de estado temporal %s" #: apt-pkg/depcache.cc:921 #, c-format msgid "Internal error, group '%s' has no installable pseudo package" -msgstr "" -"Error interno, el grupo «%s» no tiene ningún pseudo-paquete instalable" +msgstr "Error interno, el grupo «%s» no tiene ningún pseudo-paquete instalable" #: apt-pkg/tagfile.cc:102 #, c-format @@ -2649,33 +2633,27 @@ msgstr "No se pudo tratar el archivo de paquetes %s (2)" #: apt-pkg/sourcelist.cc:92 #, c-format msgid "Malformed line %lu in source list %s ([option] unparseable)" -msgstr "" -"Línea %lu mal formada en la lista de fuentes %s ([opción] no parseable)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([opción] no parseable)" #: apt-pkg/sourcelist.cc:95 #, c-format msgid "Malformed line %lu in source list %s ([option] too short)" -msgstr "" -"Línea %lu mal formada en la lista de fuentes %s ([opción] demasiado corta)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([opción] demasiado corta)" #: apt-pkg/sourcelist.cc:106 #, c-format msgid "Malformed line %lu in source list %s ([%s] is not an assignment)" -msgstr "" -"Línea %lu mal formada en la lista de fuentes %s ([%s] no es una asignación)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([%s] no es una asignación)" #: apt-pkg/sourcelist.cc:112 #, c-format msgid "Malformed line %lu in source list %s ([%s] has no key)" -msgstr "" -"Línea %lu mal formada en la lista de fuentes %s (no hay clave para [%s])" +msgstr "Línea %lu mal formada en la lista de fuentes %s (no hay clave para [%s])" #: apt-pkg/sourcelist.cc:115 #, c-format msgid "Malformed line %lu in source list %s ([%s] key %s has no value)" -msgstr "" -"Línea %lu mal formada en la lista de fuentes %s ([%s] la clave %s no tiene " -"asociado un valor)" +msgstr "Línea %lu mal formada en la lista de fuentes %s ([%s] la clave %s no tiene asociado un valor)" #: apt-pkg/sourcelist.cc:128 #, c-format @@ -2727,10 +2705,7 @@ msgstr "Tipo «%s» desconocido en la línea %u de lista de fuentes %s" msgid "" "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " "under APT::Immediate-Configure for details. (%d)" -msgstr "" -"No se pudo realizar la configuración inmediata de «%s». Consulte la p" -"gina de manual con «man 5 apt.conf» bajo «APT::Immediate-Configure» " -"para más información. (%d)" +msgstr "No se pudo realizar la configuración inmediata de «%s». Consulte la página de manual con «man 5 apt.conf» bajo «APT::Immediate-Configure» para más información. (%d)" #: apt-pkg/packagemanager.cc:452 #, c-format @@ -2740,19 +2715,16 @@ msgid "" "you really want to do it, activate the APT::Force-LoopBreak option." msgstr "" "Esta ejecución de la instalación requiere eliminar temporalmente el " -"paquete esencial %s debido a un bucle de Conflictos/Pre-Dependencias. Esto " -"generalmente es malo, pero si realmente quiere hacerlo, active la opción |" -"APT::Force-LoopBreak»." +"paquete esencial %s debido a un bucle de Conflictos/Pre-Dependencias. " +"Esto generalmente es malo, pero si realmente quiere hacerlo, active " +"la opción |APT::Force-LoopBreak»." #: apt-pkg/packagemanager.cc:495 #, c-format msgid "" "Could not perform immediate configuration on already unpacked '%s'. Please " "see man 5 apt.conf under APT::Immediate-Configure for details." -msgstr "" -"No se pudo realizar la configuración inmediata sobre el paquete ya " -"desempaquetado «%s». Consulte la página de manual con «man 5 apt.conf» " -"bajo «APT::Immediate-Configure» para más información." +msgstr "No se pudo realizar la configuración inmediata sobre el paquete ya desempaquetado «%s». Consulte la página de manual con «man 5 apt.conf» bajo «APT::Immediate-Configure» para más información." #: apt-pkg/pkgrecords.cc:32 #, c-format @@ -2767,7 +2739,7 @@ msgstr "" "El paquete %s necesita ser reinstalado, pero no se encuentra un archivo para " "éste." -#: apt-pkg/algorithms.cc:1210 +#: apt-pkg/algorithms.cc:1218 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." @@ -2775,18 +2747,19 @@ msgstr "" "Error, pkgProblemResolver::Resolve generó cortes, esto puede haber sido " "causado por paquetes retenidos." -#: apt-pkg/algorithms.cc:1212 +#: apt-pkg/algorithms.cc:1220 msgid "Unable to correct problems, you have held broken packages." msgstr "" -"No se pudieron corregir los problemas, usted ha retenido paquetes rotos." +"No se pudieron corregir los problemas, usted ha retenido paquetes " +"rotos." -#: apt-pkg/algorithms.cc:1488 apt-pkg/algorithms.cc:1490 +#: apt-pkg/algorithms.cc:1496 apt-pkg/algorithms.cc:1498 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -"No se han podido descargar algunos archivos de índice, se han ignorado, o se " -"ha utilizado unos antiguos en su lugar." +"No se han podido descargar algunos archivos de índice, se han ignorado, " +"o se ha utilizado unos antiguos en su lugar." #: apt-pkg/acquire.cc:79 #, c-format @@ -2856,8 +2829,7 @@ msgstr "" #: apt-pkg/cachefile.cc:88 msgid "You may want to run apt-get update to correct these problems" -msgstr "" -"Tal vez quiera ejecutar «apt-get update» para corregir estos problemas" +msgstr "Tal vez quiera ejecutar «apt-get update» para corregir estos problemas" #: apt-pkg/cachefile.cc:106 msgid "The list of sources could not be read." @@ -2866,9 +2838,7 @@ msgstr "No se pudieron leer las listas de fuentes." #: apt-pkg/policy.cc:344 #, c-format msgid "Invalid record in the preferences file %s, no Package header" -msgstr "" -"Registro inválido en el archivo de preferencias %s, no hay cabecera " -"«Package»" +msgstr "Registro inválido en el archivo de preferencias %s, no hay cabecera «Package»" #: apt-pkg/policy.cc:366 #, c-format @@ -2932,8 +2902,7 @@ msgstr "" #: apt-pkg/pkgcachegen.cc:363 msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "" -"Vaya, excedió el número de versiones que este APT es capaz de manejar." +msgstr "Vaya, excedió el número de versiones que este APT es capaz de manejar." #: apt-pkg/pkgcachegen.cc:366 msgid "Wow, you exceeded the number of descriptions this APT is capable of." @@ -2959,7 +2928,8 @@ msgstr "Se produjo un error mientras se procesaba %s (CollectFileProvides)" #, c-format msgid "Package %s %s was not found while processing file dependencies" msgstr "" -"Al procesar las dependencias de archivos no se encontró el paquete %s %s" +"Al procesar las dependencias de archivos no se encontró el " +"paquete %s %s" #: apt-pkg/pkgcachegen.cc:982 #, c-format @@ -3000,8 +2970,7 @@ msgstr "" #: apt-pkg/acquire-item.cc:1281 #, c-format msgid "Release file expired, ignoring %s (invalid since %s)" -msgstr "" -"El archivo «Release» ha expirado, ignorando %s (inválido desde hace %s)" +msgstr "El archivo «Release» ha expirado, ignorando %s (inválido desde hace %s)" #: apt-pkg/acquire-item.cc:1302 #, c-format @@ -3013,10 +2982,7 @@ msgstr "Distribución conflictiva: %s (se esperaba %s, pero se obtuvo %s)" msgid "" "A error occurred during the signature verification. The repository is not " "updated and the previous index files will be used. GPG error: %s: %s\n" -msgstr "" -"Se produjo un error durante la verificación de las firmas. El repositorio " -"no está actualizado y se utilizarán los ficheros de índice antiguos. El " -"error GPG es: %s: %s\n" +msgstr "Se produjo un error durante la verificación de las firmas. El repositorio no está actualizado y se utilizarán los ficheros de índice antiguos. El error GPG es: %s: %s\n" #: apt-pkg/acquire-item.cc:1337 #, c-format @@ -3046,9 +3012,7 @@ msgstr "" #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." -msgstr "" -"Los archivos de índice de paquetes están dañados. No existe un campo " -"«Filename:» para el paquete %s." +msgstr "Los archivos de índice de paquetes están dañados. No existe un campo «Filename:» para el paquete %s." #: apt-pkg/acquire-item.cc:1566 msgid "Size mismatch" @@ -3141,9 +3105,7 @@ msgstr "" msgid "" "Unable to locate any package files, perhaps this is not a Debian Disc or the " "wrong architecture?" -msgstr "" -"No pude localizar ningún archivo de paquete, ¿quizás este no sea un disco " -"de Debian o sea de otra arquitectura?" +msgstr "No pude localizar ningún archivo de paquete, ¿quizás este no sea un disco de Debian o sea de otra arquitectura?" #: apt-pkg/cdrom.cc:703 #, c-format @@ -3234,51 +3196,41 @@ msgstr "No se pudo encontrar ningún paquete con la expresión regular «%s»" #: apt-pkg/cacheset.cc:467 #, c-format msgid "Can't select versions from package '%s' as it purely virtual" -msgstr "" -"No se pueden seleccionar distintas versiones del paquete «%s» porque es " -"puramente virtual" +msgstr "No se pueden seleccionar distintas versiones del paquete «%s» porque es puramente virtual" #: apt-pkg/cacheset.cc:475 apt-pkg/cacheset.cc:483 #, c-format msgid "" "Can't select installed nor candidate version from package '%s' as it has " "neither of them" -msgstr "" -"No se puede seleccionar una versión instalada o candidata para el paquete " -"«%s» dado que éste no tiene ninguna de éstas" +msgstr "No se puede seleccionar una versión instalada o candidata para el paquete «%s» dado que éste no tiene ninguna de éstas" #: apt-pkg/cacheset.cc:491 #, c-format msgid "Can't select newest version from package '%s' as it is purely virtual" -msgstr "" -"No se puede seleccionar la última versión del paquete «%s» dado que es " -"puramente virtual" +msgstr "No se puede seleccionar la última versión del paquete «%s» dado que es puramente virtual" #: apt-pkg/cacheset.cc:499 #, c-format msgid "Can't select candidate version from package %s as it has no candidate" -msgstr "" -"No se puede seleccionar una versión candidata del paquete %s dado que no " -"tiene candidatos" +msgstr "No se puede seleccionar una versión candidata del paquete %s dado que no tiene candidatos" #: apt-pkg/cacheset.cc:507 #, c-format msgid "Can't select installed version from package %s as it is not installed" -msgstr "" -"No se puede seleccionar una versión instalada del paquete «%s» puesto que " -"no está instalado" +msgstr "No se puede seleccionar una versión instalada del paquete «%s» puesto que no está instalado" #: apt-pkg/deb/dpkgpm.cc:52 #, c-format msgid "Installing %s" msgstr "Instalando %s" -#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:822 +#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:823 #, c-format msgid "Configuring %s" msgstr "Configurando %s" -#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:829 +#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:830 #, c-format msgid "Removing %s" msgstr "Eliminando %s" @@ -3304,110 +3256,97 @@ msgstr "Ejecutando disparador post-instalación %s" msgid "Directory '%s' missing" msgstr "Falta el directorio «%s»." -#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:674 +#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:675 #, c-format msgid "Could not open file '%s'" msgstr "No pude abrir el fichero «%s»" -#: apt-pkg/deb/dpkgpm.cc:815 +#: apt-pkg/deb/dpkgpm.cc:816 #, c-format msgid "Preparing %s" msgstr "Preparando %s" -#: apt-pkg/deb/dpkgpm.cc:816 +#: apt-pkg/deb/dpkgpm.cc:817 #, c-format msgid "Unpacking %s" msgstr "Desempaquetando %s" -#: apt-pkg/deb/dpkgpm.cc:821 +#: apt-pkg/deb/dpkgpm.cc:822 #, c-format msgid "Preparing to configure %s" msgstr "Preparándose para configurar %s" -#: apt-pkg/deb/dpkgpm.cc:823 +#: apt-pkg/deb/dpkgpm.cc:824 #, c-format msgid "Installed %s" msgstr "%s instalado" -#: apt-pkg/deb/dpkgpm.cc:828 +#: apt-pkg/deb/dpkgpm.cc:829 #, c-format msgid "Preparing for removal of %s" msgstr "Preparándose para eliminar %s" -#: apt-pkg/deb/dpkgpm.cc:830 +#: apt-pkg/deb/dpkgpm.cc:831 #, c-format msgid "Removed %s" msgstr "%s eliminado" -#: apt-pkg/deb/dpkgpm.cc:835 +#: apt-pkg/deb/dpkgpm.cc:836 #, c-format msgid "Preparing to completely remove %s" msgstr "Preparándose para eliminar completamente %s" -#: apt-pkg/deb/dpkgpm.cc:836 +#: apt-pkg/deb/dpkgpm.cc:837 #, c-format msgid "Completely removed %s" msgstr "Se borró completamente %s" -#: apt-pkg/deb/dpkgpm.cc:1042 -#, fuzzy +#: apt-pkg/deb/dpkgpm.cc:1043 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" -msgstr "problemas de dependencias - dejando sin instalar" +msgstr "No pudo escribirse el registro, falló la llamada a openpty() (¿está montado «/dev/pts?)\n" -#: apt-pkg/deb/dpkgpm.cc:1073 +#: apt-pkg/deb/dpkgpm.cc:1074 msgid "Running dpkg" msgstr "Ejecutando dpkg" -#: apt-pkg/deb/dpkgpm.cc:1276 +#: apt-pkg/deb/dpkgpm.cc:1277 msgid "No apport report written because MaxReports is reached already" -msgstr "" -"No se escribió ningún informe «apport» porque ya se ha alcanzado el " -"valor de «MaxReports»" +msgstr "No se escribió ningún informe «apport» porque ya se ha alcanzado el valor de «MaxReports»" #. check if its not a follow up error -#: apt-pkg/deb/dpkgpm.cc:1281 +#: apt-pkg/deb/dpkgpm.cc:1282 msgid "dependency problems - leaving unconfigured" msgstr "problemas de dependencias - dejando sin instalar" -#: apt-pkg/deb/dpkgpm.cc:1283 +#: apt-pkg/deb/dpkgpm.cc:1284 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." -msgstr "" -"No se escribió un informe «apport» porque el mensaje de error indica que " -"es un mensaje de error asociado a un fallo previo." +msgstr "No se escribió un informe «apport» porque el mensaje de error indica que es un mensaje de error asociado a un fallo previo." -#: apt-pkg/deb/dpkgpm.cc:1289 +#: apt-pkg/deb/dpkgpm.cc:1290 msgid "" "No apport report written because the error message indicates a disk full " "error" -msgstr "" -"No se escribió un informe «apport» porque el mensaje de error indica que " -"el error es de disco lleno" +msgstr "No se escribió un informe «apport» porque el mensaje de error indica que el error es de disco lleno" -#: apt-pkg/deb/dpkgpm.cc:1295 +#: apt-pkg/deb/dpkgpm.cc:1296 msgid "" "No apport report written because the error message indicates a out of memory " "error" -msgstr "" -"No se escribió un informe «apport» porque el mensaje de error indica un " -"error de memoria excedida" +msgstr "No se escribió un informe «apport» porque el mensaje de error indica un error de memoria excedida" -#: apt-pkg/deb/dpkgpm.cc:1302 +#: apt-pkg/deb/dpkgpm.cc:1303 msgid "" "No apport report written because the error message indicates a dpkg I/O error" -msgstr "" -"No se escribió un informe «apport» porque el mensaje de error indica un " -"error de E/S de dpkg" +msgstr "No se escribió un informe «apport» porque el mensaje de error indica un error de E/S de dpkg" #: apt-pkg/deb/debsystem.cc:69 #, c-format msgid "" "Unable to lock the administration directory (%s), is another process using " "it?" -msgstr "" -"No se pudo bloquear el directorio de administración (%s), ¿quizás haya " -"algún otro proceso utilizándolo?" +msgstr "No se pudo bloquear el directorio de administración (%s), ¿quizás haya algún otro proceso utilizándolo?" #: apt-pkg/deb/debsystem.cc:72 #, c-format @@ -3420,9 +3359,7 @@ msgstr "No se encontró un archivo de réplica «%s»" #, c-format msgid "" "dpkg was interrupted, you must manually run '%s' to correct the problem. " -msgstr "" -"se interrumpió la ejecución de dpkg, debe ejecutar manualmente «%s» para " -"corregir el problema" +msgstr "se interrumpió la ejecución de dpkg, debe ejecutar manualmente «%s» para corregir el problema" #: apt-pkg/deb/debsystem.cc:106 msgid "Not locked" @@ -3445,18 +3382,14 @@ msgstr "[Réplica: %s]" msgid "" "Could not patch %s with mmap and with file operation usage - the patch seems " "to be corrupt." -msgstr "" -"No se pudo parchear %s con mmap y con el modo de uso de la operación de " -"ficheros - el paquete parece dañado." +msgstr "No se pudo parchear %s con mmap y con el modo de uso de la operación de ficheros - el paquete parece dañado." #: methods/rred.cc:470 #, c-format msgid "" "Could not patch %s with mmap (but no mmap specific fail) - the patch seems " "to be corrupt." -msgstr "" -"No se pudo parchear %s con mmap (pero no hay un fallo mmap específico) - el " -"parche parece dañado." +msgstr "No se pudo parchear %s con mmap (pero no hay un fallo mmap específico) - el parche parece dañado." #: methods/rsh.cc:329 msgid "Connection closed prematurely" @@ -3499,8 +3432,7 @@ msgstr "La conexión se cerró prematuramente" #~ "the package is simply not installable and a bug report against\n" #~ "that package should be filed." #~ msgstr "" -#~ "Como sólo solicito una única operación, es extremadamente posible que " -#~ "el\n" +#~ "Como sólo solicito una única operación, es extremadamente posible que el\n" #~ "paquete simplemente no sea instalable y debería de rellenar un informe " #~ "de\n" #~ "error contra ese paquete." @@ -3628,8 +3560,7 @@ msgstr "La conexión se cerró prematuramente" #~ " -i Muestra sólo dependencias importantes para el comando de\n" #~ "incumplido.\n" #~ " -c=? Lee este archivo de configuración\n" -#~ " -o=? Establece una opción de configuración arbitraria, p. ej. -o " -#~ "dir::\n" +#~ " -o=? Establece una opción de configuración arbitraria, p. ej. -o dir::\n" #~ "cache=/tmp\n" #~ "Consulte las páginas del manual apt-cache(8) y apt.conf(5) para más\n" #~ "información.\n" -- cgit v1.2.3 From 18331adf730dca4a587f99605edff71436379ea6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 25 Jan 2011 12:39:42 +0100 Subject: enable the split out of LongDescriptions per default in the testcases --- test/integration/framework | 7 ++++++- test/integration/run-tests | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index 5b83e7519..b95667670 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -221,7 +221,7 @@ buildsimplenativepackage() { fi local BUILDDIR=incoming/${NAME}-${VERSION} - msgninfo "Build package ${NAME} in ${VERSIOM} for ${RELEASE} in ${DISTSECTION}… " + msgninfo "Build package ${NAME} in ${VERSION} for ${RELEASE} in ${DISTSECTION}… " mkdir -p $BUILDDIR/debian/source echo "* most suckless software product ever" > ${BUILDDIR}/FEATURES echo "#!/bin/sh @@ -319,6 +319,8 @@ Default { Packages::Compress ". gzip bzip2 lzma"; Sources::Compress ". gzip bzip2 lzma"; Contents::Compress ". gzip bzip2 lzma"; + Translation::Compress ". gzip bzip2 lzma"; + LongDescription "false"; }; TreeDefault { Directory "pool/"; @@ -433,6 +435,9 @@ generatereleasefiles() { msgninfo "\tGenerate Release files… " local DATE="${1:-now}" if [ -e aptarchive/dists ]; then + for dir in $(find ./aptarchive/dists -mindepth 3 -maxdepth 3 -type d -name 'i18n'); do + aptftparchive -qq release $dir -o APT::FTPArchive::Release::Patterns::='Translation-*' > $dir/Index + done for dir in $(find ./aptarchive/dists -mindepth 1 -maxdepth 1 -type d); do local CODENAME="$(echo "$dir" | cut -d'/' -f 4)" aptftparchive -qq release $dir -o APT::FTPArchive::Release::Suite="${CODENAME}" -o APT::FTPArchive::Release::Codename="${CODENAME}" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference diff --git a/test/integration/run-tests b/test/integration/run-tests index 5644f0a05..7314e6b61 100755 --- a/test/integration/run-tests +++ b/test/integration/run-tests @@ -5,7 +5,7 @@ DIR=$(readlink -f $(dirname $0)) if [ "$1" = "-q" ]; then export MSGLEVEL=2 elif [ "$1" = "-v" ]; then - export MSGLEVEL=5 + export MSGLEVEL=4 fi for testcase in $(run-parts --list $DIR | grep '/test-'); do if [ "$1" = "-q" ]; then -- cgit v1.2.3 From 5d88572318ed7e271101b1ae8f2cc139a1a3f705 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 26 Jan 2011 16:19:30 +0100 Subject: - change the internal handling of Extensions in pkgAcqIndex - add a special uncompressed compression type to prefer those files * methods/{gzip,bzip}.cc: - print a good error message if FileSize() is zero --- apt-pkg/acquire-item.cc | 114 ++++++++++++--------- apt-pkg/acquire-item.h | 9 +- apt-pkg/aptconfiguration.cc | 8 ++ debian/changelog | 6 +- doc/apt.conf.5.xml | 9 +- doc/examples/configure-index | 2 +- methods/bzip2.cc | 3 +- methods/gzip.cc | 3 +- .../test-bug-595691-empty-and-broken-archive-files | 9 +- 9 files changed, 96 insertions(+), 67 deletions(-) diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 2cd6ab359..a603a3d70 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -622,29 +622,61 @@ pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner, HashString ExpectedHash, string comprExt) : Item(Owner), RealURI(URI), ExpectedHash(ExpectedHash) { + if(comprExt.empty() == true) + { + // autoselect the compression method + std::vector types = APT::Configuration::getCompressionTypes(); + for (std::vector::const_iterator t = types.begin(); t != types.end(); ++t) + comprExt.append(*t).append(" "); + if (comprExt.empty() == false) + comprExt.erase(comprExt.end()-1); + } + CompressionExtension = comprExt; + + Init(URI, URIDesc, ShortDesc); +} +pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner, IndexTarget const *Target, + HashString const &ExpectedHash, indexRecords const *MetaIndexParser) + : Item(Owner), RealURI(Target->URI), ExpectedHash(ExpectedHash) +{ + // autoselect the compression method + std::vector types = APT::Configuration::getCompressionTypes(); + CompressionExtension = ""; + if (ExpectedHash.empty() == false) + { + for (std::vector::const_iterator t = types.begin(); t != types.end(); ++t) + if (*t == "uncompressed" || MetaIndexParser->Exists(string(Target->MetaKey).append(".").append(*t)) == true) + CompressionExtension.append(*t).append(" "); + } + else + { + for (std::vector::const_iterator t = types.begin(); t != types.end(); ++t) + CompressionExtension.append(*t).append(" "); + } + if (CompressionExtension.empty() == false) + CompressionExtension.erase(CompressionExtension.end()-1); + + Init(Target->URI, Target->Description, Target->ShortDesc); +} + /*}}}*/ +// AcqIndex::Init - defered Constructor /*{{{*/ +void pkgAcqIndex::Init(string const &URI, string const &URIDesc, string const &ShortDesc) { Decompression = false; Erase = false; DestFile = _config->FindDir("Dir::State::lists") + "partial/"; DestFile += URItoFileName(URI); - if(comprExt.empty()) - { - // autoselect the compression method - std::vector types = APT::Configuration::getCompressionTypes(); - if (types.empty() == true) - comprExt = "plain"; - else - comprExt = "." + types[0]; - } - CompressionExtension = ((comprExt == "plain" || comprExt == ".") ? "" : comprExt); - - Desc.URI = URI + CompressionExtension; + std::string const comprExt = CompressionExtension.substr(0, CompressionExtension.find(' ')); + if (comprExt == "uncompressed") + Desc.URI = URI; + else + Desc.URI = URI + '.' + comprExt; Desc.Description = URIDesc; Desc.Owner = this; Desc.ShortDesc = ShortDesc; - + QueueURI(Desc); } /*}}}*/ @@ -666,37 +698,18 @@ string pkgAcqIndex::Custom600Headers() /*}}}*/ void pkgAcqIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/ { - std::vector types = APT::Configuration::getCompressionTypes(); - - for (std::vector::const_iterator t = types.begin(); - t != types.end(); t++) + size_t const nextExt = CompressionExtension.find(' '); + if (nextExt != std::string::npos) { - // jump over all already tried compression types - const unsigned int nameLen = Desc.URI.size() - (*t).size(); - if(Desc.URI.substr(nameLen) != *t) - continue; - - // we want to try it with the next extension (and make sure to - // not skip over the end) - t++; - if (t == types.end()) - break; - - // queue new download - Desc.URI = Desc.URI.substr(0, nameLen) + *t; - new pkgAcqIndex(Owner, RealURI, Desc.Description, Desc.ShortDesc, - ExpectedHash, string(".").append(*t)); - - Status = StatDone; - Complete = false; - Dequeue(); + CompressionExtension = CompressionExtension.substr(nextExt+1); + Init(RealURI, Desc.Description, Desc.ShortDesc); return; } // on decompression failure, remove bad versions in partial/ - if(Decompression && Erase) { + if (Decompression && Erase) { string s = _config->FindDir("Dir::State::lists") + "partial/"; - s += URItoFileName(RealURI); + s.append(URItoFileName(RealURI)); unlink(s.c_str()); } @@ -773,8 +786,8 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash, Status = StatError; ErrorText = "Method gave a blank filename"; } - - string compExt = flExtension(flNotDir(URI(Desc.URI).Path)); + + std::string const compExt = CompressionExtension.substr(0, CompressionExtension.find(' ')); // The files timestamp matches if (StringToBool(LookupTag(Message,"IMS-Hit"),false) == true) { @@ -807,12 +820,7 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash, // get the binary name for your used compression type decompProg = _config->Find(string("Acquire::CompressionTypes::").append(compExt),""); if(decompProg.empty() == false); - // flExtensions returns the full name if no extension is found - // this is why we have this complicated compare operation here - // FIMXE: add a new flJustExtension() that return "" if no - // extension is found and use that above so that it can - // be tested against "" - else if(compExt == flNotDir(URI(Desc.URI).Path)) + else if(compExt == "uncompressed") decompProg = "copy"; else { _error->Error("Unsupported extension: %s", compExt.c_str()); @@ -853,6 +861,15 @@ string pkgAcqIndexTrans::Custom600Headers() /* */ void pkgAcqIndexTrans::Failed(string Message,pkgAcquire::MethodConfig *Cnf) { + size_t const nextExt = CompressionExtension.find(' '); + if (nextExt != std::string::npos) + { + CompressionExtension = CompressionExtension.substr(nextExt+1); + Init(RealURI, Desc.Description, Desc.ShortDesc); + Status = StatIdle; + return; + } + if (Cnf->LocalOnly == true || StringToBool(LookupTag(Message,"Transient-Failure"),false) == false) { @@ -862,7 +879,7 @@ void pkgAcqIndexTrans::Failed(string Message,pkgAcquire::MethodConfig *Cnf) Dequeue(); return; } - + Item::Failed(Message,Cnf); } /*}}}*/ @@ -1197,8 +1214,7 @@ void pkgAcqMetaIndex::QueueIndexes(bool verify) /*{{{*/ new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description, (*Target)->ShortDesc, ExpectedIndexHash); else - new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, - (*Target)->ShortDesc, ExpectedIndexHash); + new pkgAcqIndex(Owner, *Target, ExpectedIndexHash, MetaIndexParser); } } /*}}}*/ diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 581761e32..92098e3d4 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -528,8 +528,8 @@ class pkgAcqIndex : public pkgAcquire::Item /** \brief The expected hashsum of the decompressed index file. */ HashString ExpectedHash; - /** \brief The compression-related file extension that is being - * added to the downloaded file (e.g., ".gz" or ".bz2"). + /** \brief The compression-related file extensions that are being + * added to the downloaded file one by one if first fails (e.g., "gz bz2"). */ string CompressionExtension; @@ -540,7 +540,7 @@ class pkgAcqIndex : public pkgAcquire::Item virtual void Done(string Message,unsigned long Size,string Md5Hash, pkgAcquire::MethodConfig *Cnf); virtual string Custom600Headers(); - virtual string DescURI() {return RealURI + CompressionExtension;}; + virtual string DescURI() {return Desc.URI;}; virtual string HashSum() {return ExpectedHash.toStr(); }; /** \brief Create a pkgAcqIndex. @@ -565,6 +565,9 @@ class pkgAcqIndex : public pkgAcquire::Item pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc, string ShortDesc, HashString ExpectedHash, string compressExt=""); + pkgAcqIndex(pkgAcquire *Owner, struct IndexTarget const * const Target, + HashString const &ExpectedHash, indexRecords const *MetaIndexParser); + void Init(string const &URI, string const &URIDesc, string const &ShortDesc); }; /*}}}*/ /** \brief An acquire item that is responsible for fetching a {{{ diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 52f54073c..e97ebfed7 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -90,6 +90,14 @@ const Configuration::getCompressionTypes(bool const &Cached) { types.push_back(Types->Tag); } + // add the special "uncompressed" type + if (std::find(types.begin(), types.end(), "uncompressed") == types.end()) + { + string const uncompr = _config->FindFile("Dir::Bin::uncompressed", ""); + if (uncompr.empty() == true || FileExists(uncompr) == true) + types.push_back("uncompressed"); + } + return types; } /*}}}*/ diff --git a/debian/changelog b/debian/changelog index 2413b9c5b..7b125fc43 100644 --- a/debian/changelog +++ b/debian/changelog @@ -54,6 +54,8 @@ apt (0.8.11+wheezy) unstable; urgency=low * apt-pkg/acquire-item.cc: - don't uncompress downloaded pdiff files before feeding it to rred - try downloading clearsigned InRelease before trying Release.gpg + - change the internal handling of Extensions in pkgAcqIndex + - add a special uncompressed compression type to prefer those files * cmdline/apt-key: - don't set trustdb-name as non-root so 'list' and 'finger' can be used without being root (Closes: #393005, #592107) @@ -62,8 +64,10 @@ apt (0.8.11+wheezy) unstable; urgency=low * ftparchive/writer.cc: - add config option to search for more patterns in release command - include Index files by default in the Release file + * methods/{gzip,bzip}.cc: + - print a good error message if FileSize() is zero - -- David Kalnischkies Mon, 24 Jan 2011 15:36:50 +0100 + -- David Kalnischkies Wed, 26 Jan 2011 16:06:10 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index a19d85dbc..a423dac24 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -442,12 +442,11 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; the bzip2 method (the inbuilt) setting is Dir::Bin::bzip2 "/bin/bzip2"; Note also that list entries specified on the command line will be added at the end of the list specified in the configuration files, but before the default entries. To prefer a type in this case - over the ones specified in in the configuration files you can set the option direct - not in list style. + over the ones specified in the configuration files you can set the option direct - not in list style. This will not override the defined list, it will only prefix the list with this type. - While it is possible to add an empty compression type to the order list, but APT in its current - version doesn't understand it correctly and will display many warnings about not downloaded files - - these warnings are most of the time false negatives. Future versions will maybe include a way to - really prefer uncompressed files to support the usage of local mirrors. + The special type uncompressed can be used to give uncompressed files a + preference, but note that most archives doesn't provide uncompressed files so this is mostly only + useable for local mirrors. GzipIndexes diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 6c078d75f..fd14d4dd7 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -281,7 +281,7 @@ Acquire lzma "lzma"; gz "gzip"; - Order { "gz"; "lzma"; "bz2"; }; + Order { "uncompressed"; "gz"; "lzma"; "bz2"; }; }; Languages diff --git a/methods/bzip2.cc b/methods/bzip2.cc index ccc3669a2..42932dded 100644 --- a/methods/bzip2.cc +++ b/methods/bzip2.cc @@ -56,9 +56,8 @@ bool Bzip2Method::Fetch(FetchItem *Itm) // Open the source and destination files FileFd From(Path,FileFd::ReadOnly); - // FIXME add an error message saying that empty files can't be valid archives if(From.FileSize() == 0) - return false; + return _error->Error(_("Empty files can't be valid archives")); int GzOut[2]; if (pipe(GzOut) < 0) diff --git a/methods/gzip.cc b/methods/gzip.cc index f1c76066e..fc4e1ecfd 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -48,9 +48,8 @@ bool GzipMethod::Fetch(FetchItem *Itm) // Open the source and destination files FileFd From(Path,FileFd::ReadOnlyGzip); - // FIXME add an error message saying that empty files can't be valid archives if(From.FileSize() == 0) - return false; + return _error->Error(_("Empty files can't be valid archives")); FileFd To(Itm->DestFile,FileFd::WriteAtomic); To.EraseOnFailure(); diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files index c5379dca0..398d0cd1b 100755 --- a/test/integration/test-bug-595691-empty-and-broken-archive-files +++ b/test/integration/test-bug-595691-empty-and-broken-archive-files @@ -56,6 +56,7 @@ setupcompressor() { lzma) COMPRESS="lzma";; esac echo "Acquire::CompressionTypes::Order { \"${COMPRESS}\"; }; +Dir::Bin::uncompressed \"/does/not/exist\"; Dir::Bin::gzip \"/does/not/exist\"; Dir::Bin::bzip2 \"/does/not/exist\"; Dir::Bin::lzma \"/does/not/exist\";" > rootdir/etc/apt/apt.conf.d/00compressor @@ -93,8 +94,8 @@ Reading package lists..." "empty archive Packages.$COMPRESS over file" testaptgetupdate "Ign file:$(readlink -f aptarchive)/ Translation-en Get:1 file: InRelease [] Err file: Packages - Undetermined Error -W: Failed to fetch file:$(readlink -f aptarchive/Packages.$COMPRESS) Undetermined Error + Empty files can't be valid archives +W: Failed to fetch ${COMPRESSOR}:$(readlink -f aptarchive/Packages.$COMPRESS) Empty files can't be valid archives E: Some index files failed to download, they have been ignored, or old ones used instead." "empty file Packages.$COMPRESS over file" } @@ -127,8 +128,8 @@ Reading package lists..." "empty archive Packages.$COMPRESS over http" Ign http://localhost/ Translation-en Get:2 http://localhost Packages Err http://localhost Packages - Undetermined Error -W: Failed to fetch http://localhost:8080/Packages.$COMPRESS Undetermined Error + Empty files can't be valid archives +W: Failed to fetch ${COMPRESSOR}:$(readlink -f rootdir/var/lib/apt/lists/partial/localhost:8080_Packages) Empty files can't be valid archives E: Some index files failed to download, they have been ignored, or old ones used instead." "empty file Packages.$COMPRESS over http" } -- cgit v1.2.3 From 7763525dea18d978a1df8eee4a517314ae49ca71 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 27 Jan 2011 22:00:43 +0100 Subject: apt-pkg/deb/dpkgpm.cc: fix format string warning --- apt-pkg/deb/dpkgpm.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 9f0da3be6..7e8ee5b05 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1230,7 +1230,7 @@ bool pkgDPkgPM::Go(int OutStatusFd) strprintf(dpkg_error, "Sub-process %s exited unexpectedly",Args[0]); if(dpkg_error.size() > 0) - _error->Error(dpkg_error.c_str()); + _error->Error("%s", dpkg_error.c_str()); if(stopOnError) { -- cgit v1.2.3 From ab53c018fbc7aa01c0d89586c0aa98bc944dd9e4 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 28 Jan 2011 12:22:37 +0100 Subject: - download and use i18n/Index to choose which Translations to download * apt-pkg/aptconfiguration.cc: - remove the inbuilt Translation files whitelist --- apt-pkg/acquire-item.cc | 218 +++++++++++++++++++-- apt-pkg/acquire-item.h | 56 ++++++ apt-pkg/aptconfiguration.cc | 51 ++--- apt-pkg/deb/debmetaindex.cc | 77 +++++--- apt-pkg/deb/debmetaindex.h | 2 + debian/changelog | 5 +- .../test-bug-595691-empty-and-broken-archive-files | 28 +-- .../test-bug-601016-description-translation | 1 + test/libapt/getlanguages_test.cc | 71 ++++--- 9 files changed, 381 insertions(+), 128 deletions(-) diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index a603a3d70..776009493 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -184,6 +184,153 @@ void pkgAcquire::Item::ReportMirrorFailure(string FailCode) } } /*}}}*/ +// AcqSubIndex::AcqSubIndex - Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Get the DiffIndex file first and see if there are patches availabe + * If so, create a pkgAcqIndexDiffs fetcher that will get and apply the + * patches. If anything goes wrong in that process, it will fall back to + * the original packages file + */ +pkgAcqSubIndex::pkgAcqSubIndex(pkgAcquire *Owner, string const &URI, + string const &URIDesc, string const &ShortDesc, + HashString const &ExpectedHash) + : Item(Owner), ExpectedHash(ExpectedHash) +{ + Debug = _config->FindB("Debug::pkgAcquire::SubIndex",false); + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(URI); + + Desc.URI = URI; + Desc.Description = URIDesc; + Desc.Owner = this; + Desc.ShortDesc = ShortDesc; + + QueueURI(Desc); + + if(Debug) + std::clog << "pkgAcqSubIndex: " << Desc.URI << std::endl; +} + /*}}}*/ +// AcqSubIndex::Custom600Headers - Insert custom request headers /*{{{*/ +// --------------------------------------------------------------------- +/* The only header we use is the last-modified header. */ +string pkgAcqSubIndex::Custom600Headers() +{ + string Final = _config->FindDir("Dir::State::lists"); + Final += URItoFileName(Desc.URI); + + struct stat Buf; + if (stat(Final.c_str(),&Buf) != 0) + return "\nIndex-File: true"; + return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); +} + /*}}}*/ +void pkgAcqSubIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*{{{*/ +{ + if(Debug) + std::clog << "pkgAcqSubIndex failed: " << Desc.URI << std::endl; + + Complete = false; + Status = StatDone; + Dequeue(); + + // No good Index is provided, so try guessing + std::vector langs = APT::Configuration::getLanguages(true); + for (std::vector::const_iterator l = langs.begin(); + l != langs.end(); ++l) + { + if (*l == "none") continue; + string const file = "Translation-" + *l; + new pkgAcqIndexTrans(Owner, Desc.URI.substr(0, Desc.URI.rfind('/')+1).append(file), + Desc.Description.erase(Desc.Description.rfind(' ')+1).append(file), + file); + } +} + /*}}}*/ +void pkgAcqSubIndex::Done(string Message,unsigned long Size,string Md5Hash, /*{{{*/ + pkgAcquire::MethodConfig *Cnf) +{ + if(Debug) + std::clog << "pkgAcqSubIndex::Done(): " << Desc.URI << std::endl; + + string FileName = LookupTag(Message,"Filename"); + if (FileName.empty() == true) + { + Status = StatError; + ErrorText = "Method gave a blank filename"; + return; + } + + if (FileName != DestFile) + { + Local = true; + Desc.URI = "copy:" + FileName; + QueueURI(Desc); + return; + } + + Item::Done(Message,Size,Md5Hash,Cnf); + + string FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(Desc.URI); + + // sucess in downloading the index + // rename the index + if(Debug) + std::clog << "Renaming: " << DestFile << " -> " << FinalFile << std::endl; + Rename(DestFile,FinalFile); + chmod(FinalFile.c_str(),0644); + DestFile = FinalFile; + + if(ParseIndex(DestFile) == false) + return Failed("", NULL); + + Complete = true; + Status = StatDone; + Dequeue(); + return; +} + /*}}}*/ +bool pkgAcqSubIndex::ParseIndex(string const &IndexFile) /*{{{*/ +{ + indexRecords SubIndexParser; + if (FileExists(IndexFile) == false || SubIndexParser.Load(IndexFile) == false) + return false; + + std::vector lang = APT::Configuration::getLanguages(true); + for (std::vector::const_iterator l = lang.begin(); + l != lang.end(); ++l) + { + if (*l == "none") + continue; + + string file = "Translation-" + *l; + indexRecords::checkSum const *Record = SubIndexParser.Lookup(file); + HashString expected; + if (Record == NULL) + { + // FIXME: the Index file provided by debian currently only includes bz2 records + Record = SubIndexParser.Lookup(file + ".bz2"); + if (Record == NULL) + continue; + } + else + { + expected = Record->Hash; + if (expected.empty() == true) + continue; + } + + IndexTarget target; + target.Description = Desc.Description.erase(Desc.Description.rfind(' ')+1).append(file); + target.MetaKey = file; + target.ShortDesc = file; + target.URI = Desc.URI.substr(0, Desc.URI.rfind('/')+1).append(file); + new pkgAcqIndexTrans(Owner, &target, expected, &SubIndexParser); + } + return true; +} + /*}}}*/ // AcqDiffIndex::AcqDiffIndex - Constructor /*{{{*/ // --------------------------------------------------------------------- /* Get the DiffIndex file first and see if there are patches availabe @@ -841,6 +988,11 @@ pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire *Owner, string URI,string URIDesc,string ShortDesc) : pkgAcqIndex(Owner, URI, URIDesc, ShortDesc, HashString(), "") { +} +pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire *Owner, IndexTarget const *Target, + HashString const &ExpectedHash, indexRecords const *MetaIndexParser) + : pkgAcqIndex(Owner, Target, ExpectedHash, MetaIndexParser) +{ } /*}}}*/ // AcqIndexTrans::Custom600Headers - Insert custom request headers /*{{{*/ @@ -1182,27 +1334,41 @@ void pkgAcqMetaIndex::QueueIndexes(bool verify) /*{{{*/ HashString ExpectedIndexHash; if (verify) { - const indexRecords::checkSum *Record = MetaIndexParser->Lookup((*Target)->MetaKey); - if (!Record) - { - Status = StatAuthError; - ErrorText = "Unable to find expected entry " - + (*Target)->MetaKey + " in Meta-index file (malformed Release file?)"; - return; - } - ExpectedIndexHash = Record->Hash; - if (_config->FindB("Debug::pkgAcquire::Auth", false)) - { - std::cerr << "Queueing: " << (*Target)->URI << std::endl; - std::cerr << "Expected Hash: " << ExpectedIndexHash.toStr() << std::endl; - } - if (ExpectedIndexHash.empty()) - { - Status = StatAuthError; - ErrorText = "Unable to find hash sum for " - + (*Target)->MetaKey + " in Meta-index file"; - return; - } + const indexRecords::checkSum *Record = MetaIndexParser->Lookup((*Target)->MetaKey); + if (Record == NULL) + { + if ((*Target)->IsOptional() == false) + { + Status = StatAuthError; + strprintf(ErrorText, _("Unable to find expected entry '%s' in Release file (Wrong sources.list entry or malformed file)"), (*Target)->MetaKey.c_str()); + return; + } + } + else + { + ExpectedIndexHash = Record->Hash; + if (_config->FindB("Debug::pkgAcquire::Auth", false)) + { + std::cerr << "Queueing: " << (*Target)->URI << std::endl; + std::cerr << "Expected Hash: " << ExpectedIndexHash.toStr() << std::endl; + } + if (ExpectedIndexHash.empty() == true && (*Target)->IsOptional() == false) + { + Status = StatAuthError; + strprintf(ErrorText, _("Unable to find hash sum for '%s' in Release file"), (*Target)->MetaKey.c_str()); + return; + } + } + } + + if ((*Target)->IsOptional() == true) + { + if ((*Target)->IsSubIndex() == true) + new pkgAcqSubIndex(Owner, (*Target)->URI, (*Target)->Description, + (*Target)->ShortDesc, ExpectedIndexHash); + else + new pkgAcqIndexTrans(Owner, *Target, ExpectedIndexHash, MetaIndexParser); + continue; } /* Queue Packages file (either diff or full packages files, depending @@ -1836,3 +2002,13 @@ string pkgAcqFile::Custom600Headers() return ""; } /*}}}*/ +bool IndexTarget::IsOptional() const { + if (strncmp(ShortDesc.c_str(), "Translation", 11) != 0) + return false; + return true; +} +bool IndexTarget::IsSubIndex() const { + if (ShortDesc != "TranslationIndex") + return false; + return true; +} diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 92098e3d4..9bcc32f21 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -287,6 +287,50 @@ struct DiffInfo { unsigned long size; }; /*}}}*/ +/** \brief An item that is responsible for fetching a SubIndex {{{ + * + * The MetaIndex file includes only records for important indexes + * and records for these SubIndex files so these can carry records + * for addition files like PDiffs and Translations + */ +class pkgAcqSubIndex : public pkgAcquire::Item +{ + protected: + /** \brief If \b true, debugging information will be written to std::clog. */ + bool Debug; + + /** \brief The item that is currently being downloaded. */ + pkgAcquire::ItemDesc Desc; + + /** \brief The Hash that this file should have after download + */ + HashString ExpectedHash; + + public: + // Specialized action members + virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf); + virtual void Done(string Message,unsigned long Size,string Md5Hash, + pkgAcquire::MethodConfig *Cnf); + virtual string DescURI() {return Desc.URI;}; + virtual string Custom600Headers(); + virtual bool ParseIndex(string const &IndexFile); + + /** \brief Create a new pkgAcqDiffIndex. + * + * \param Owner The Acquire object that owns this item. + * + * \param URI The URI of the list file to download. + * + * \param URIDesc A long description of the list file to download. + * + * \param ShortDesc A short description of the list file to download. + * + * \param ExpectedHash The list file's MD5 signature. + */ + pkgAcqSubIndex(pkgAcquire *Owner, string const &URI,string const &URIDesc, + string const &ShortDesc, HashString const &ExpectedHash); +}; + /*}}}*/ /** \brief An item that is responsible for fetching an index file of {{{ * package list diffs and starting the package list's download. * @@ -597,6 +641,8 @@ class pkgAcqIndexTrans : public pkgAcqIndex */ pkgAcqIndexTrans(pkgAcquire *Owner,string URI,string URIDesc, string ShortDesc); + pkgAcqIndexTrans(pkgAcquire *Owner, struct IndexTarget const * const Target, + HashString const &ExpectedHash, indexRecords const *MetaIndexParser); }; /*}}}*/ /** \brief Information about an index file. */ /*{{{*/ @@ -615,8 +661,18 @@ struct IndexTarget * looked up within the meta signature file. */ string MetaKey; + + //FIXME: We should use virtual methods here instead… + bool IsOptional() const; + bool IsSubIndex() const; }; /*}}}*/ +/** \brief Information about an optional index file. */ /*{{{*/ +struct OptionalIndexTarget : public IndexTarget +{ +}; + /*}}}*/ + /** \brief An acquire item that downloads the detached signature {{{ * of a meta-index (Release) file, then queues up the release * file itself. diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index e97ebfed7..3cf4d2429 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -163,33 +163,6 @@ std::vector const Configuration::getLanguages(bool const &All, } closedir(D); - // get the environment language codes: LC_MESSAGES (and later LANGUAGE) - // we extract both, a long and a short code and then we will - // check if we actually need both (rare) or if the short is enough - string const envMsg = string(Locale == 0 ? std::setlocale(LC_MESSAGES, NULL) : *Locale); - size_t const lenShort = (envMsg.find('_') != string::npos) ? envMsg.find('_') : 2; - size_t const lenLong = (envMsg.find_first_of(".@") != string::npos) ? envMsg.find_first_of(".@") : (lenShort + 3); - - string envLong = envMsg.substr(0,lenLong); - string const envShort = envLong.substr(0,lenShort); - bool envLongIncluded = true; - - // to save the servers from unneeded queries, we only try also long codes - // for languages it is realistic to have a long code translation file… - // TODO: Improve translation acquire system to drop them dynamic - char const *needLong[] = { "cs", "en", "pt", "sv", "zh", NULL }; - if (envLong != envShort) { - for (char const **l = needLong; *l != NULL; l++) - if (envShort.compare(*l) == 0) { - envLongIncluded = false; - break; - } - } - - // we don't add the long code, but we allow the user to do so - if (envLongIncluded == true) - envLong.clear(); - // FIXME: Remove support for the old APT::Acquire::Translation // it was undocumented and so it should be not very widthly used string const oldAcquire = _config->Find("APT::Acquire::Translation",""); @@ -211,12 +184,22 @@ std::vector const Configuration::getLanguages(bool const &All, return codes; } - // It is very likely we will need to environment codes later, + // get the environment language codes: LC_MESSAGES (and later LANGUAGE) + // we extract both, a long and a short code and then we will + // check if we actually need both (rare) or if the short is enough + string const envMsg = string(Locale == 0 ? std::setlocale(LC_MESSAGES, NULL) : *Locale); + size_t const lenShort = (envMsg.find('_') != string::npos) ? envMsg.find('_') : 2; + size_t const lenLong = (envMsg.find_first_of(".@") != string::npos) ? envMsg.find_first_of(".@") : (lenShort + 3); + + string const envLong = envMsg.substr(0,lenLong); + string const envShort = envLong.substr(0,lenShort); + + // It is very likely we will need the environment codes later, // so let us generate them now from LC_MESSAGES and LANGUAGE std::vector environment; if (envShort != "C") { // take care of LC_MESSAGES - if (envLongIncluded == false) + if (envLong != envShort) environment.push_back(envLong); environment.push_back(envShort); // take care of LANGUAGE @@ -233,16 +216,6 @@ std::vector const Configuration::getLanguages(bool const &All, continue; if (std::find(environment.begin(), environment.end(), *e) != environment.end()) continue; - if (e->find('_') != string::npos) { - // Drop LongCodes here - ShortCodes are also included - string const shorty = e->substr(0, e->find('_')); - char const **n = needLong; - for (; *n != NULL; ++n) - if (shorty == *n) - break; - if (*n == NULL) - continue; - } ++addedLangs; environment.push_back(*e); } diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index e2c680b14..a6edab6b9 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -119,6 +119,29 @@ string debReleaseIndex::SourceIndexURI(const char *Type, const string &Section) return URI + "dists/" + Dist + "/" + SourceIndexURISuffix(Type, Section); } +string debReleaseIndex::TranslationIndexURISuffix(const char *Type, const string &Section) const +{ + string Res =""; + if (Dist[Dist.size() - 1] != '/') + Res += Section + "/i18n/"; + return Res + Type; +} + +string debReleaseIndex::TranslationIndexURI(const char *Type, const string &Section) const +{ + string Res; + if (Dist[Dist.size() - 1] == '/') + { + if (Dist != "/") + Res = URI + Dist; + else + Res = URI; + return Res + Type; + } + else + return URI + "dists/" + Dist + "/" + TranslationIndexURISuffix(Type, Section); +} + debReleaseIndex::debReleaseIndex(string const &URI, string const &Dist) { this->URI = URI; this->Dist = Dist; @@ -155,6 +178,7 @@ vector * debReleaseIndex::ComputeIndexTargets() const { if (IndexTargets->empty() == false && ArchEntries.size() == 1) return IndexTargets; + std::set sections; for (map >::const_iterator a = ArchEntries.begin(); a != ArchEntries.end(); ++a) { if (a->first == "source") @@ -167,6 +191,37 @@ vector * debReleaseIndex::ComputeIndexTargets() const { Target->URI = IndexURI(Target->ShortDesc.c_str(), (*I)->Section, a->first); Target->Description = Info (Target->ShortDesc.c_str(), (*I)->Section, a->first); IndexTargets->push_back (Target); + sections.insert((*I)->Section); + } + } + + // get the Translations: + // - if its a dists-style repository get the i18n/Index first + // - if its flat try to acquire files by guessing + if (Dist[Dist.size() - 1] == '/') { + std::vector const lang = APT::Configuration::getLanguages(true); + for (std::set::const_iterator s = sections.begin(); + s != sections.end(); ++s) { + for (std::vector::const_iterator l = lang.begin(); + l != lang.end(); l++) { + if (*l == "none") continue; + IndexTarget * Target = new OptionalIndexTarget(); + Target->ShortDesc = "Translation-" + *l; + Target->MetaKey = TranslationIndexURISuffix(l->c_str(), *s); + Target->URI = TranslationIndexURI(l->c_str(), *s); + Target->Description = Info (Target->ShortDesc.c_str(), *s); + IndexTargets->push_back(Target); + } + } + } else { + for (std::set::const_iterator s = sections.begin(); + s != sections.end(); ++s) { + IndexTarget * Target = new OptionalIndexTarget(); + Target->ShortDesc = "TranslationIndex"; + Target->MetaKey = TranslationIndexURISuffix("Index", *s); + Target->URI = TranslationIndexURI("Index", *s); + Target->Description = Info (Target->ShortDesc.c_str(), *s); + IndexTargets->push_back (Target); } } @@ -191,28 +246,6 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool const &GetAll) const ComputeIndexTargets(), new indexRecords (Dist)); - - // Queue the translations - std::vector const lang = APT::Configuration::getLanguages(true); - map > sections; - for (map >::const_iterator a = ArchEntries.begin(); - a != ArchEntries.end(); ++a) { - if (a->first == "source") - continue; - for (vector::const_iterator I = a->second.begin(); - I != a->second.end(); I++) - sections[(*I)->Section].insert(lang.begin(), lang.end()); - } - - for (map >::const_iterator s = sections.begin(); - s != sections.end(); ++s) - for (set::const_iterator l = s->second.begin(); - l != s->second.end(); l++) { - if (*l == "none") continue; - debTranslationsIndex i = debTranslationsIndex(URI,Dist,s->first,(*l).c_str()); - i.GetIndexes(Owner); - } - return true; } diff --git a/apt-pkg/deb/debmetaindex.h b/apt-pkg/deb/debmetaindex.h index 360fa5419..1561c6e00 100644 --- a/apt-pkg/deb/debmetaindex.h +++ b/apt-pkg/deb/debmetaindex.h @@ -37,6 +37,8 @@ class debReleaseIndex : public metaIndex { string IndexURISuffix(const char *Type, string const &Section, string const &Arch="native") const; string SourceIndexURI(const char *Type, const string &Section) const; string SourceIndexURISuffix(const char *Type, const string &Section) const; + string TranslationIndexURI(const char *Type, const string &Section) const; + string TranslationIndexURISuffix(const char *Type, const string &Section) const; virtual vector *GetIndexFiles(); virtual bool IsTrusted() const; diff --git a/debian/changelog b/debian/changelog index 7b125fc43..b3da32247 100644 --- a/debian/changelog +++ b/debian/changelog @@ -56,6 +56,7 @@ apt (0.8.11+wheezy) unstable; urgency=low - try downloading clearsigned InRelease before trying Release.gpg - change the internal handling of Extensions in pkgAcqIndex - add a special uncompressed compression type to prefer those files + - download and use i18n/Index to choose which Translations to download * cmdline/apt-key: - don't set trustdb-name as non-root so 'list' and 'finger' can be used without being root (Closes: #393005, #592107) @@ -66,8 +67,10 @@ apt (0.8.11+wheezy) unstable; urgency=low - include Index files by default in the Release file * methods/{gzip,bzip}.cc: - print a good error message if FileSize() is zero + * apt-pkg/aptconfiguration.cc: + - remove the inbuilt Translation files whitelist - -- David Kalnischkies Wed, 26 Jan 2011 16:06:10 +0100 + -- David Kalnischkies Fri, 28 Jan 2011 12:22:25 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files index 398d0cd1b..684559aa7 100755 --- a/test/integration/test-bug-595691-empty-and-broken-archive-files +++ b/test/integration/test-bug-595691-empty-and-broken-archive-files @@ -32,7 +32,7 @@ createemptyarchive() { fi touch aptarchive/Packages echo -n "" | $COMPRESSOR > aptarchive/${1}.$COMPRESS - aptftparchive release aptarchive/ > aptarchive/Release + generatereleasefiles signreleasefiles rm -f aptarchive/Packages } @@ -43,7 +43,7 @@ createemptyfile() { echo -n "" | $COMPRESSOR > aptarchive/Packages.$COMPRESS fi touch aptarchive/Packages aptarchive/${1}.$COMPRESS - aptftparchive release aptarchive/ > aptarchive/Release + generatereleasefiles signreleasefiles rm -f aptarchive/Packages } @@ -76,7 +76,7 @@ testoverfile() { createemptyfile 'en' testaptgetupdate "Get:1 file: InRelease [] -Ign file:$(readlink -f aptarchive)/ Translation-en +Ign file: Translation-en Reading package lists..." "empty file en.$COMPRESS over file" createemptyarchive 'en' @@ -86,13 +86,13 @@ Reading package lists..." "empty archive en.$COMPRESS over file" createemptyarchive 'Packages' # FIXME: Why omits the file transport the Packages Get line? #Get:3 file: Packages [] - testaptgetupdate "Ign file:$(readlink -f aptarchive)/ Translation-en -Get:1 file: InRelease [] + testaptgetupdate "Get:1 file: InRelease [] +Ign file: Translation-en Reading package lists..." "empty archive Packages.$COMPRESS over file" createemptyfile 'Packages' - testaptgetupdate "Ign file:$(readlink -f aptarchive)/ Translation-en -Get:1 file: InRelease [] + testaptgetupdate "Get:1 file: InRelease [] +Ign file: Translation-en Err file: Packages Empty files can't be valid archives W: Failed to fetch ${COMPRESSOR}:$(readlink -f aptarchive/Packages.$COMPRESS) Empty files can't be valid archives @@ -105,28 +105,28 @@ testoverhttp() { createemptyfile 'en' testaptgetupdate "Get:1 http://localhost InRelease [] -Get:2 http://localhost/ Translation-en -Get:3 http://localhost Packages [] -Ign http://localhost/ Translation-en +Get:2 http://localhost Packages [] +Get:3 http://localhost Translation-en +Ign http://localhost Translation-en Reading package lists..." "empty file en.$COMPRESS over http" createemptyarchive 'en' testaptgetupdate "Get:1 http://localhost InRelease [] -Get:2 http://localhost/ Translation-en [] -Get:3 http://localhost Packages [] +Get:2 http://localhost Packages [] +Get:3 http://localhost Translation-en [] Reading package lists..." "empty archive en.$COMPRESS over http" createemptyarchive 'Packages' testaptgetupdate "Get:1 http://localhost InRelease [] -Ign http://localhost/ Translation-en Get:2 http://localhost Packages [] +Ign http://localhost Translation-en Reading package lists..." "empty archive Packages.$COMPRESS over http" createemptyfile 'Packages' #FIXME: we should response with a good error message instead testaptgetupdate "Get:1 http://localhost InRelease [] -Ign http://localhost/ Translation-en Get:2 http://localhost Packages +Ign http://localhost Translation-en Err http://localhost Packages Empty files can't be valid archives W: Failed to fetch ${COMPRESSOR}:$(readlink -f rootdir/var/lib/apt/lists/partial/localhost:8080_Packages) Empty files can't be valid archives diff --git a/test/integration/test-bug-601016-description-translation b/test/integration/test-bug-601016-description-translation index a31e42ee1..2a323a201 100755 --- a/test/integration/test-bug-601016-description-translation +++ b/test/integration/test-bug-601016-description-translation @@ -57,6 +57,7 @@ Description-${LOCALE}: Mächtige Oberfläche für dpkg testrun() { echo "Acquire::Languages { \"${LOCALE}\"; \"en\"; };" > rootdir/etc/apt/apt.conf.d/00languages export LC_ALL="" + rm -rf rootdir/var/lib/apt/lists rootdir/var/cache/apt/ setupaptarchive testequal "$LOCALESTANZA" aptcache show apt -o Test=File-${LOCALE} testequal "$NOLONGSTANZA" aptcache show apt -o Acquire::Languages="ww" -o Test=File-${LOCALE} diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index 3559aae0c..707142aef 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -26,16 +26,18 @@ int main(int argc,char *argv[]) env[1] = ""; std::vector vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 2); - equals(vec[0], "de"); - equals(vec[1], "en"); + 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(), 2); - equals(vec[0], "de"); - equals(vec[1], "en"); + 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); @@ -52,19 +54,21 @@ int main(int argc,char *argv[]) env[0] = "tr_DE@euro"; vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 2); - equals(vec[0], "tr"); - equals(vec[1], "en"); + equals(vec.size(), 3); + equals(vec[0], "tr_DE"); + equals(vec[1], "tr"); + equals(vec[2], "en"); env[0] = "de_NO"; - env[1] = "se_NO:en_GB:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en"; + 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(), 5); - equals(vec[0], "de"); - equals(vec[1], "en_GB"); - equals(vec[2], "nb"); - equals(vec[3], "no"); - equals(vec[4], "en"); + 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] = ""; @@ -76,9 +80,10 @@ int main(int argc,char *argv[]) env[0] = "ast_DE.UTF-8"; vec = APT::Configuration::getLanguages(false, false, env); // bogus, but syntactical correct - equals(vec.size(), 2); - equals(vec[0], "ast"); - equals(vec[1], "en"); + 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); @@ -113,25 +118,28 @@ int main(int argc,char *argv[]) _config->Set("Acquire::Languages::2", "en"); env[0] = "de_DE.UTF-8"; vec = APT::Configuration::getLanguages(false, false, env); - equals(vec.size(), 2); - equals(vec[0], "de"); - equals(vec[1], "en"); + 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(), 2); - equals(vec[0], "de"); - equals(vec[1], "en"); + 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(), 5); - equals(vec[0], "de"); - equals(vec[1], "en"); - equals(vec[2], "none"); - equals(vec[3], "pt"); - equals(vec[4], "tr"); + equals(vec.size(), 6); + equals(vec[0], "de_DE"); + equals(vec[1], "de"); + equals(vec[2], "en"); + equals(vec[3], "none"); + equals(vec[4], "pt"); + equals(vec[5], "tr"); _config->Set("Dir::State::lists", "/non-existing-dir"); _config->Set("Acquire::Languages::1", "none"); @@ -140,6 +148,7 @@ int main(int argc,char *argv[]) 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"); -- cgit v1.2.3 From 5a635ee4bafd8ba4cde6e50ea256e36d2c55dc64 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 28 Jan 2011 13:26:11 +0100 Subject: ensure that we are building really inside of our tmp directory --- test/integration/framework | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index b95667670..c85914289 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -219,7 +219,7 @@ buildsimplenativepackage() { else DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)" fi - local BUILDDIR=incoming/${NAME}-${VERSION} + local BUILDDIR=${TMPWORKINGDIRECTORY}/incoming/${NAME}-${VERSION} msgninfo "Build package ${NAME} in ${VERSION} for ${RELEASE} in ${DISTSECTION}… " mkdir -p $BUILDDIR/debian/source @@ -259,12 +259,12 @@ Architecture: $ARCH" > ${BUILDDIR}/debian/control (cd ${BUILDDIR}; dpkg-gencontrol) (cd ${BUILDDIR}/debian/tmp; md5sum $(find usr/ -type f) > DEBIAN/md5sums) - dpkg-deb --build ${BUILDDIR}/debian/tmp incoming > /dev/null - echo "pool/${NAME}_${VERSION}_${ARCH}.deb" >> incoming/${RELEASE}.${DISTSECTION}.pkglist + dpkg-deb --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/.. > /dev/null + echo "pool/${NAME}_${VERSION}_${ARCH}.deb" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.pkglist for SRC in $SRCS; do - echo "pool/${SRC}" >> incoming/${RELEASE}.${DISTSECTION}.srclist + echo "pool/${SRC}" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.srclist done - rm -rf "incoming/${NAME}-${VERSION}" + rm -rf "${BUILDDIR}" msgdone "info" } -- cgit v1.2.3 From c3a3640cabcc64a7479fadd96b2f2af255d721c9 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 1 Feb 2011 09:38:58 +0100 Subject: * debian/apt.conf.autoremove: - never autoremove the GNU/Hurd kernel (closes: #588423), thanks to Guillem Jover --- debian/apt.conf.autoremove | 1 + debian/changelog | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/debian/apt.conf.autoremove b/debian/apt.conf.autoremove index b3f4a3edd..ebe49c7cd 100644 --- a/debian/apt.conf.autoremove +++ b/debian/apt.conf.autoremove @@ -8,6 +8,7 @@ APT "^kfreebsd-image.*"; "^linux-restricted-modules.*"; "^linux-ubuntu-modules-.*"; + "^gnumach$"; }; Never-MarkAuto-Sections diff --git a/debian/changelog b/debian/changelog index d4ac384e2..a20a29d01 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.10.4) UNRELEASED; urgency=low + + * debian/apt.conf.autoremove: + - never autoremove the GNU/Hurd kernel (closes: #588423), thanks + to Guillem Jover + + -- Michael Vogt Tue, 01 Feb 2011 09:38:48 +0100 + apt (0.8.10.3) unstable; urgency=low [ Programs translations ] -- cgit v1.2.3 From 875bcb3670c43bd4450e27934ba105611e534df0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 1 Feb 2011 10:58:48 +0100 Subject: ensure that we are building the packages in the right architecture --- test/integration/framework | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index c85914289..ee4048a53 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -188,8 +188,12 @@ Maintainer: Joe Sixpack Build-Depends: debhelper (>= 7) Standards-Version: 3.9.1 -Package: $NAME -Architecture: $ARCH" > debian/control +Package: $NAME" > debian/control + if [ "$ARCH" = 'all' ]; then + echo "Architecture: all" >> debian/control + else + echo "Architecture: any" >> debian/control + fi test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> debian/control if [ -z "$DESCRIPTION" ]; then echo "Description: an autogenerated dummy ${NAME}=${VERSION}/${RELEASE} @@ -239,8 +243,12 @@ Priority: optional Maintainer: Joe Sixpack Standards-Version: 3.9.1 -Package: $NAME -Architecture: $ARCH" > ${BUILDDIR}/debian/control +Package: $NAME" > ${BUILDDIR}/debian/control + if [ "$ARCH" = 'all' ]; then + echo "Architecture: all" >> ${BUILDDIR}/debian/control + else + echo "Architecture: any" >> ${BUILDDIR}/debian/control + fi test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> ${BUILDDIR}/debian/control if [ -z "$DESCRIPTION" ]; then echo "Description: an autogenerated dummy ${NAME}=${VERSION}/${RELEASE} @@ -256,7 +264,7 @@ Architecture: $ARCH" > ${BUILDDIR}/debian/control 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} cp ${BUILDDIR}/${NAME} ${BUILDDIR}/debian/tmp/usr/bin - (cd ${BUILDDIR}; dpkg-gencontrol) + (cd ${BUILDDIR}; dpkg-gencontrol -DArchitecture=$ARCH) (cd ${BUILDDIR}/debian/tmp; md5sum $(find usr/ -type f) > DEBIAN/md5sums) dpkg-deb --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/.. > /dev/null -- cgit v1.2.3 From 710aba4a9c0edd415e5daabb497ee8fffe803a96 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 1 Feb 2011 15:51:29 +0100 Subject: * apt-pkg/cdrom.cc, apt-pkg/init.cc, methods/cdrom.cc: - use /media/cdrom as default mountoint (closes: #611569) --- apt-pkg/cdrom.cc | 4 ++-- apt-pkg/init.cc | 5 ++++- debian/changelog | 2 ++ methods/cdrom.cc | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 0e36f44a2..124410b11 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -198,7 +198,7 @@ int pkgCdrom::Score(string Path) // a symlink gets a big penalty struct stat Buf; string statPath = flNotFile(Path); - string cdromPath = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + string cdromPath = _config->FindDir("Acquire::cdrom::mount"); while(statPath != cdromPath && statPath != "./") { statPath.resize(statPath.size()-1); // remove the trailing '/' if (lstat(statPath.c_str(),&Buf) == 0) { @@ -509,7 +509,7 @@ bool pkgCdrom::Ident(string &ident, pkgCdromStatus *log) /*{{{*/ stringstream msg; // Startup - string CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + string CDROM = _config->FindDir("Acquire::cdrom::mount"); if (CDROM[0] == '.') CDROM= SafeGetCWD() + '/' + CDROM; diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index f0bad78df..184942321 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -52,7 +52,7 @@ bool pkgInitConfig(Configuration &Cnf) Cnf.Set("Dir::State::lists","lists/"); Cnf.Set("Dir::State::cdroms","cdroms.list"); Cnf.Set("Dir::State::mirrors","mirrors/"); - + // Cache Cnf.Set("Dir::Cache","var/cache/apt/"); Cnf.Set("Dir::Cache::archives","archives/"); @@ -88,6 +88,9 @@ bool pkgInitConfig(Configuration &Cnf) // Translation Cnf.Set("APT::Acquire::Translation", "environment"); + // Default cdrom mount point + Cnf.Set("Acquire::cdrom::mount", "/media/cdrom/"); + bool Res = true; // Read an alternate config file diff --git a/debian/changelog b/debian/changelog index a20a29d01..a783fdaae 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,8 @@ apt (0.8.10.4) UNRELEASED; urgency=low * debian/apt.conf.autoremove: - never autoremove the GNU/Hurd kernel (closes: #588423), thanks to Guillem Jover + * apt-pkg/cdrom.cc, apt-pkg/init.cc, methods/cdrom.cc: + - use /media/cdrom as default mountoint (closes: #611569) -- Michael Vogt Tue, 01 Feb 2011 09:38:48 +0100 diff --git a/methods/cdrom.cc b/methods/cdrom.cc index bf4281e40..b25fdf5a8 100644 --- a/methods/cdrom.cc +++ b/methods/cdrom.cc @@ -220,7 +220,7 @@ bool CDROMMethod::Fetch(FetchItem *Itm) } bool AutoDetect = _config->FindB("Acquire::cdrom::AutoDetect", true); - CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + CDROM = _config->FindDir("Acquire::cdrom::mount"); if (Debug) clog << "Looking for CDROM at " << CDROM << endl; -- cgit v1.2.3 From a92392501b5981b41da8497a99f5964e2f6075b0 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 1 Feb 2011 18:41:56 +0100 Subject: apt-pkg/cdrom.cc: fix another hardcoded /cdrom --- apt-pkg/cdrom.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 124410b11..04ace10a6 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -568,7 +568,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log) /*{{{*/ stringstream msg; // Startup - string CDROM = _config->FindDir("Acquire::cdrom::mount","/cdrom/"); + string CDROM = _config->FindDir("Acquire::cdrom::mount"); if (CDROM[0] == '.') CDROM= SafeGetCWD() + '/' + CDROM; -- cgit v1.2.3 From 5cf733e18af40fbed978ec84e60ccd0ffc1871d8 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 3 Feb 2011 22:48:37 +0100 Subject: remove duplicated config-option setting and rename testdpkgnotinstalled --- test/integration/framework | 7 +++---- test/integration/test-autoremove | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index fe1db14bc..e79d312ca 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -137,7 +137,6 @@ setupenvironment() { echo "APT::Get::Show-User-Simulation-Note \"false\";" >> aptconfig.conf echo "Dir::Bin::Methods \"${BUILDDIRECTORY}/methods\";" >> aptconfig.conf echo "Dir::Bin::dpkg \"fakeroot\";" >> aptconfig.conf - echo "Dir::Bin::methods \"${BUILDDIRECTORY}/methods\";" >> aptconfig.conf echo "DPKG::options:: \"dpkg\";" >> aptconfig.conf echo "DPKG::options:: \"--root=${TMPWORKINGDIRECTORY}/rootdir\";" >> aptconfig.conf echo "DPKG::options:: \"--force-not-root\";" >> aptconfig.conf @@ -634,9 +633,9 @@ testdpkginstalled() { msgpass } -testdpkgnoninstalled() { - msgtest "Test for correctly non-installed package(s) with" "dpkg -l $*" - local PKGS="$(dpkg -l $* | grep '^[a-z]' | grep '^[^u]' | wc -l)" +testdpkgnotinstalled() { + msgtest "Test for correctly not-installed package(s) with" "dpkg -l $*" + local PKGS="$(dpkg -l $* 2> /dev/null | grep '^[a-z]' | grep '^[^u]' | wc -l)" if [ "$PKGS" != 0 ]; then echo dpkg -l $* | grep '^[a-z]' diff --git a/test/integration/test-autoremove b/test/integration/test-autoremove index 1ca325b29..f1ce4e9e7 100755 --- a/test/integration/test-autoremove +++ b/test/integration/test-autoremove @@ -19,7 +19,7 @@ Architecture: i386 Auto-Installed: 1 ' aptget remove debhelper -y -qq 2>&1 > /dev/null -testdpkgnoninstalled 'debhelper' +testdpkgnotinstalled 'debhelper' testdpkginstalled 'po-debconf unrelated' echo 'APT::NeverAutoRemove { "^debc.*nf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove @@ -42,7 +42,7 @@ testdpkginstalled "po-debconf" rm rootdir/etc/apt/apt.conf.d/00autoremove aptget autoremove -y -qq 2>&1 > /dev/null -testdpkgnoninstalled 'po-debconf' +testdpkgnotinstalled 'po-debconf' testfileequal 'rootdir/var/lib/apt/extended_states' '' -- cgit v1.2.3 From 87bc1c45de94da47587d8e0314e9087f33a2b89e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 3 Feb 2011 23:25:41 +0100 Subject: check that the right amount of packages is installed if multiple passed in --- test/integration/framework | 6 +++--- test/integration/test-autoremove | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index e79d312ca..3aa80db23 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -623,8 +623,8 @@ testnopackage() { testdpkginstalled() { msgtest "Test for correctly installed package(s) with" "dpkg -l $*" - local PKGS="$(dpkg -l $* | grep '^[a-z]' | grep '^[^i]' | wc -l)" - if [ "$PKGS" != 0 ]; then + local PKGS="$(dpkg -l $* | grep '^i' | wc -l)" + if [ "$PKGS" != $# ]; then echo $PKGS dpkg -l $* | grep '^[a-z]' msgfail @@ -635,7 +635,7 @@ testdpkginstalled() { testdpkgnotinstalled() { msgtest "Test for correctly not-installed package(s) with" "dpkg -l $*" - local PKGS="$(dpkg -l $* 2> /dev/null | grep '^[a-z]' | grep '^[^u]' | wc -l)" + local PKGS="$(dpkg -l $* 2> /dev/null | grep '^i' | wc -l)" if [ "$PKGS" != 0 ]; then echo dpkg -l $* | grep '^[a-z]' diff --git a/test/integration/test-autoremove b/test/integration/test-autoremove index f1ce4e9e7..9dfab19f5 100755 --- a/test/integration/test-autoremove +++ b/test/integration/test-autoremove @@ -20,7 +20,7 @@ Auto-Installed: 1 ' aptget remove debhelper -y -qq 2>&1 > /dev/null testdpkgnotinstalled 'debhelper' -testdpkginstalled 'po-debconf unrelated' +testdpkginstalled 'po-debconf' 'unrelated' echo 'APT::NeverAutoRemove { "^debc.*nf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove testequal 'Reading package lists... -- cgit v1.2.3 From eb76e936982bd65ebd6a147c1c23ef2613891367 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 3 Feb 2011 23:25:53 +0100 Subject: test various situation with and without autobit setting --- test/integration/test-bug-611729-mark-as-manual | 105 ++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100755 test/integration/test-bug-611729-mark-as-manual diff --git a/test/integration/test-bug-611729-mark-as-manual b/test/integration/test-bug-611729-mark-as-manual new file mode 100755 index 000000000..9c1cd3d1b --- /dev/null +++ b/test/integration/test-bug-611729-mark-as-manual @@ -0,0 +1,105 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" + +buildsimplenativepackage "peace-dpkg" "all" "1.0" "stable" + +buildsimplenativepackage "a" "all" "1.0" "stable" "Depends: b" +buildsimplenativepackage "b" "all" "1.0" "stable" +buildsimplenativepackage "c" "all" "1.0" "stable" "Depends: b" + +setupaptarchive + +# dpkg freaks out if the last package is removed so keep one around +aptget install peace-dpkg -y -qq 2>&1 > /dev/null +testdpkginstalled peace-dpkg +testfileequal 'rootdir/var/lib/apt/extended_states' '' + +aptget install a -y -qq 2>&1 > /dev/null +testdpkginstalled a b +testdpkgnotinstalled c +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: b +Architecture: i386 +Auto-Installed: 1 +' + +aptget remove a -y -qq 2>&1 > /dev/null +testdpkgnotinstalled a c +testdpkginstalled b +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: b +Architecture: i386 +Auto-Installed: 1 +' + +aptget install c -y -qq 2>&1 > /dev/null +testdpkgnotinstalled a +testdpkginstalled b c +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: b +Architecture: i386 +Auto-Installed: 1 +' + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +b is already the newest version. +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget install b --only-upgrade +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: b +Architecture: i386 +Auto-Installed: 1 +' + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +b is already the newest version. +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget install b -d +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: b +Architecture: i386 +Auto-Installed: 1 +' + +aptget install b --reinstall -y -qq 2>&1 > /dev/null +testdpkgnotinstalled a +testdpkginstalled b c +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: b +Architecture: i386 +Auto-Installed: 1 +' + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +b is already the newest version. +b set to manually installed. +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget install b +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: b +Architecture: i386 +Auto-Installed: 0 +' + +aptget remove b -y -qq 2>&1 > /dev/null +testdpkgnotinstalled a b c +testfileequal 'rootdir/var/lib/apt/extended_states' '' + +aptget install a b -y -qq 2>&1 > /dev/null +testdpkginstalled a b +testdpkgnotinstalled c +testfileequal 'rootdir/var/lib/apt/extended_states' '' + +aptget purge a b -y -qq 2>&1 > /dev/null +testdpkgnotinstalled a b c +testfileequal 'rootdir/var/lib/apt/extended_states' '' + +aptget install b c -y -qq 2>&1 > /dev/null +testdpkgnotinstalled a +testdpkginstalled b c +testfileequal 'rootdir/var/lib/apt/extended_states' '' + +aptget install a -y -qq 2>&1 > /dev/null +testdpkginstalled a b c +testfileequal 'rootdir/var/lib/apt/extended_states' '' -- cgit v1.2.3 From 7fefa1842da668283785113ae174df34f97f6df5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 4 Feb 2011 22:56:51 +0100 Subject: * cmdline/apt-cache.cc: - remove not implemented 'apt-cache add' command * doc/apt-cache.8.xml: - describe reality as apt-cache just queries and doesn't manipulate the caches. Thanks to Enrico Zini for spotting it! (Closes: #612009) --- cmdline/apt-cache.cc | 59 ++-------------------------------------------------- debian/changelog | 7 ++++++- doc/apt-cache.8.xml | 10 ++------- 3 files changed, 10 insertions(+), 66 deletions(-) diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 45ea50433..34070ba9b 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1116,58 +1116,6 @@ bool Dotty(CommandLine &CmdL) printf("}\n"); return true; -} - /*}}}*/ -// DoAdd - Perform an adding operation /*{{{*/ -// --------------------------------------------------------------------- -/* */ -bool DoAdd(CommandLine &CmdL) -{ - return _error->Error("Unimplemented"); -#if 0 - // Make sure there is at least one argument - if (CmdL.FileSize() <= 1) - return _error->Error("You must give at least one file name"); - - // Open the cache - FileFd CacheF(_config->FindFile("Dir::Cache::pkgcache"),FileFd::WriteAny); - if (_error->PendingError() == true) - return false; - - DynamicMMap Map(CacheF,MMap::Public); - if (_error->PendingError() == true) - return false; - - OpTextProgress Progress(*_config); - pkgCacheGenerator Gen(Map,Progress); - if (_error->PendingError() == true) - return false; - - unsigned long Length = CmdL.FileSize() - 1; - for (const char **I = CmdL.FileList + 1; *I != 0; I++) - { - Progress.OverallProgress(I - CmdL.FileList,Length,1,"Generating cache"); - Progress.SubProgress(Length); - - // Do the merge - FileFd TagF(*I,FileFd::ReadOnly); - debListParser Parser(TagF); - if (_error->PendingError() == true) - return _error->Error("Problem opening %s",*I); - - if (Gen.SelectFile(*I,"") == false) - return _error->Error("Problem with SelectFile"); - - if (Gen.MergeList(Parser) == false) - return _error->Error("Problem with MergeList"); - } - - Progress.Done(); - GCache = &Gen.GetCache(); - Stats(CmdL); - - return true; -#endif } /*}}}*/ // DisplayRecord - Displays the complete record for the package /*{{{*/ @@ -1743,15 +1691,13 @@ bool ShowHelp(CommandLine &Cmd) cout << _("Usage: apt-cache [options] command\n" - " apt-cache [options] add file1 [file2 ...]\n" " apt-cache [options] showpkg pkg1 [pkg2 ...]\n" " apt-cache [options] showsrc pkg1 [pkg2 ...]\n" "\n" - "apt-cache is a low-level tool used to manipulate APT's binary\n" - "cache files, and query information from them\n" + "apt-cache is a low-level tool used to query information\n" + "from APT's binary cache files\n" "\n" "Commands:\n" - " add - Add a package file to the source cache\n" " gencaches - Build both the package and source cache\n" " showpkg - Show some general information for a single package\n" " showsrc - Show source records\n" @@ -1811,7 +1757,6 @@ int main(int argc,const char *argv[]) /*{{{*/ {0,"enhances","APT::Cache::ShowEnhances",0}, {0,0,0,0}}; CommandLine::Dispatch CmdsA[] = {{"help",&ShowHelp}, - {"add",&DoAdd}, {"gencaches",&GenCaches}, {"showsrc",&ShowSrcPackage}, {0,0}}; diff --git a/debian/changelog b/debian/changelog index 525654732..3f8f52101 100644 --- a/debian/changelog +++ b/debian/changelog @@ -70,6 +70,11 @@ apt (0.8.11) UNRELEASED; urgency=low - print a good error message if FileSize() is zero * apt-pkg/aptconfiguration.cc: - remove the inbuilt Translation files whitelist + * cmdline/apt-cache.cc: + - remove not implemented 'apt-cache add' command + * doc/apt-cache.8.xml: + - describe reality as apt-cache just queries and doesn't manipulate + the caches. Thanks to Enrico Zini for spotting it! (Closes: #612009) [ Michael Vogt ] * methods/http.cc: @@ -87,7 +92,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- David Kalnischkies Fri, 28 Jan 2011 12:22:25 +0100 + -- David Kalnischkies Fri, 04 Feb 2011 22:52:25 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/doc/apt-cache.8.xml b/doc/apt-cache.8.xml index 359d210ea..9c6c64dac 100644 --- a/doc/apt-cache.8.xml +++ b/doc/apt-cache.8.xml @@ -18,7 +18,7 @@ &apt-email; &apt-product; - 29 February 2004 + 04 February 2011 @@ -30,7 +30,7 @@ apt-cache - APT package handling utility -- cache manipulator + query the APT cache @@ -41,7 +41,6 @@ - add file gencaches showpkg pkg showsrc pkg @@ -72,11 +71,6 @@ commands below must be present. - add file(s) - add adds the named package index files to the package cache. - This is for debugging only. - - gencaches gencaches performs the same operation as apt-get check. It builds the source and package caches from -- cgit v1.2.3 From fbd64f76a595b61d2aaa9c0615903d9b68786930 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 11:23:28 +0100 Subject: * apt-pkg/algorithms.cc: - mark pseudo packages of installed all packages as configured in the simulation as we don't call configure for these packages --- apt-pkg/algorithms.cc | 23 ++++++++++++++++++++++- debian/changelog | 5 ++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 0fbce3c2a..0d26f8f66 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -162,7 +162,28 @@ bool pkgSimulate::Configure(PkgIterator iPkg) } } -// Sim.MarkInstall(Pkg,false); + if (Sim[Pkg].InstBroken() == true) + { + /* We don't call Configure for Pseudo packages and if the 'all' is already installed + the simulation will think the pseudo package is not installed, so if something is + broken we walk over the dependencies and search for not installed pseudo packages */ + for (pkgCache::DepIterator D = Sim[Pkg].InstVerIter(Sim).DependsList(); D.end() == false; D++) + { + if (Sim.IsImportantDep(D) == false || + (Sim[D] & pkgDepCache::DepInstall) != 0) + continue; + pkgCache::PkgIterator T = D.TargetPkg(); + if (T.end() == true || T->CurrentVer != 0 || Flags[T->ID] != 0) + continue; + pkgCache::PkgIterator A = T.Group().FindPkg("all"); + if (A.end() == true || A->VersionList == 0 || A->CurrentVer == 0 || + Cache.VS().CheckDep(A.CurVersion(), pkgCache::Dep::Equals, T.CandVersion()) == false) + continue; + Sim.MarkInstall(T, false); + Flags[T->ID] = 2; + } + } + if (Sim[Pkg].InstBroken() == true) { cout << "Conf " << Pkg.FullName(false) << " broken" << endl; diff --git a/debian/changelog b/debian/changelog index 3f8f52101..29d310871 100644 --- a/debian/changelog +++ b/debian/changelog @@ -75,6 +75,9 @@ apt (0.8.11) UNRELEASED; urgency=low * doc/apt-cache.8.xml: - describe reality as apt-cache just queries and doesn't manipulate the caches. Thanks to Enrico Zini for spotting it! (Closes: #612009) + * apt-pkg/algorithms.cc: + - mark pseudo packages of installed all packages as configured + in the simulation as we don't call configure for these packages [ Michael Vogt ] * methods/http.cc: @@ -92,7 +95,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- David Kalnischkies Fri, 04 Feb 2011 22:52:25 +0100 + -- David Kalnischkies Mon, 07 Feb 2011 11:21:12 +0100 apt (0.8.10.3) unstable; urgency=low -- cgit v1.2.3 From 6a910c9db4d450241a57f61b2d3d3e302bb9c11c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 11:32:55 +0100 Subject: allow conflicts in the same group again (Closes: #612099) --- apt-pkg/depcache.cc | 2 +- debian/changelog | 3 +- test/integration/framework | 2 +- .../test-bug-612099-multiarch-conflicts | 209 +++++++++++++++++++++ 4 files changed, 213 insertions(+), 3 deletions(-) create mode 100755 test/integration/test-bug-612099-multiarch-conflicts diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 5f59b6d49..7c09d3a38 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -339,7 +339,7 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res) /* Check simple depends. A depends -should- never self match but we allow it anyhow because dpkg does. Technically it is a packaging bug. Conflicts may never self match */ - if (Dep.TargetPkg()->Group != Dep.ParentPkg()->Group || + if (Dep.TargetPkg() != Dep.ParentPkg() || (Dep->Type != Dep::Conflicts && Dep->Type != Dep::DpkgBreaks && Dep->Type != Dep::Obsoletes)) { PkgIterator Pkg = Dep.TargetPkg(); diff --git a/debian/changelog b/debian/changelog index 29d310871..7fb6557e9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ apt (0.8.11) UNRELEASED; urgency=low - add SetCandidateRelease() to set a candidate version and the candidates of dependencies if needed to a specified release (Closes: #572709) + - allow conflicts in the same group again (Closes: #612099) * cmdline/apt-get.cc: - if --print-uris is used don't setup downloader as we don't need progress, lock nor the directories it would create otherwise @@ -95,7 +96,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- David Kalnischkies Mon, 07 Feb 2011 11:21:12 +0100 + -- David Kalnischkies Mon, 07 Feb 2011 11:26:03 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/test/integration/framework b/test/integration/framework index 3aa80db23..d91599f1b 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -267,7 +267,7 @@ Package: $NAME" > ${BUILDDIR}/debian/control (cd ${BUILDDIR}; dpkg-gencontrol -DArchitecture=$ARCH) (cd ${BUILDDIR}/debian/tmp; md5sum $(find usr/ -type f) > DEBIAN/md5sums) - dpkg-deb --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/.. > /dev/null + dpkg-deb --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/.. 2> /dev/null > /dev/null echo "pool/${NAME}_${VERSION}_${ARCH}.deb" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.pkglist for SRC in $SRCS; do echo "pool/${SRC}" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.srclist diff --git a/test/integration/test-bug-612099-multiarch-conflicts b/test/integration/test-bug-612099-multiarch-conflicts new file mode 100755 index 000000000..caac75db4 --- /dev/null +++ b/test/integration/test-bug-612099-multiarch-conflicts @@ -0,0 +1,209 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" "amd64" + +buildsimplenativepackage 'peace-dpkg' 'all' '1.0' 'stable' + +buildsimplenativepackage 'libc6' 'i386' '1.0' 'stable' +buildsimplenativepackage 'libc6' 'amd64' '1.0' 'stable' +buildsimplenativepackage 'libc6' 'all' '2.0' 'testing' + +buildsimplenativepackage 'foobar' 'i386' '1.0' 'stable' 'Depends: libc6' +buildsimplenativepackage 'foobar' 'amd64' '1.0' 'stable' 'Depends: libc6' + +setupaptarchive + +aptget install peace-dpkg:i386 -y -qq 2>&1 > /dev/null +testdpkginstalled peace-dpkg + +aptget install libc6:i386 -t stable -y -qq 2>&1 > /dev/null +testdpkginstalled libc6 +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following packages will be REMOVED: + libc6 +The following NEW packages will be installed: + libc6:amd64 +0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. +Remv libc6 [1.0] +Inst libc6:amd64 (1.0 stable [amd64]) +Conf libc6:amd64 (1.0 stable [amd64])' aptget install libc6:amd64 -s -t stable + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + foobar +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst foobar (1.0 stable [i386]) +Conf foobar (1.0 stable [i386])' aptget install foobar -st stable + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following extra packages will be installed: + libc6:amd64 +The following packages will be REMOVED: + libc6 +The following NEW packages will be installed: + foobar:amd64 libc6:amd64 +0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. +Remv libc6 [1.0] +Inst libc6:amd64 (1.0 stable [amd64]) +Inst foobar:amd64 (1.0 stable [amd64]) +Conf libc6:amd64 (1.0 stable [amd64]) +Conf foobar:amd64 (1.0 stable [amd64])' aptget install foobar:amd64 -st stable + +# FIXME: libc6:i386 is installed, we are switching to libc6:all +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following extra packages will be installed: + libc6 +The following NEW packages will be installed: + foobar libc6 +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst libc6 (2.0 testing, testing [all]) +Inst foobar (1.0 stable [i386]) +Conf libc6 (2.0 testing, testing [all]) +Conf foobar (1.0 stable [i386])' aptget install foobar/stable libc6 -st testing + +# FIXME: libc6:i386 is installed, we are switching to libc6:all +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + libc6 +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst libc6 (2.0 testing, testing [all]) +Conf libc6 (2.0 testing, testing [all])' aptget upgrade -t testing -s +aptget upgrade -y -qq 2>&1 > /dev/null +testdpkginstalled libc6 + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + foobar +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst foobar (1.0 stable [i386]) [] +Conf foobar (1.0 stable [i386])' aptget install foobar/stable -st testing + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + foobar:amd64 +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst foobar:amd64 (1.0 stable [amd64]) +Conf foobar:amd64 (1.0 stable [amd64])' aptget install foobar:amd64/stable -st testing + + +# FIXME: the display is a strange (its a downgrade), but the handling itself correct +testequal "Reading package lists... +Building dependency tree... +Reading state information... +Selected version '1.0' (stable [i386]) for 'libc6' +The following packages will be REMOVED: + libc6 +The following NEW packages will be installed: + libc6 +0 upgraded, 1 newly installed, 2 to remove and 0 not upgraded. +Remv libc6 [2.0] +Inst libc6 (1.0 stable [i386]) +Conf libc6 (1.0 stable [i386])" aptget install libc6/stable -s -q=0 + + +buildsimplenativepackage 'libc6-same' 'i386' '1.0' 'stable' 'Multi-Arch: same' +buildsimplenativepackage 'libc6-same' 'amd64' '1.0' 'stable' 'Multi-Arch: same' +buildsimplenativepackage 'libc6-same' 'all' '2.0' 'testing' + +buildsimplenativepackage 'foobar-same' 'i386' '1.0' 'stable' 'Depends: libc6-same' +buildsimplenativepackage 'foobar-same' 'amd64' '1.0' 'stable' 'Depends: libc6-same' + +setupaptarchive + +aptget install libc6-same:i386 -t stable -y -qq 2>&1 > /dev/null +testdpkginstalled libc6-same + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + foobar-same +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst foobar-same (1.0 stable [i386]) +Conf foobar-same (1.0 stable [i386])' aptget install foobar-same -st stable + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following extra packages will be installed: + libc6-same:amd64 +The following NEW packages will be installed: + foobar-same:amd64 libc6-same:amd64 +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +Inst libc6-same:amd64 (1.0 stable [amd64]) +Inst foobar-same:amd64 (1.0 stable [amd64]) +Conf libc6-same:amd64 (1.0 stable [amd64]) +Conf foobar-same:amd64 (1.0 stable [amd64])' aptget install foobar-same:amd64 -st stable + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + libc6-same:amd64 +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst libc6-same:amd64 (1.0 stable [amd64]) +Conf libc6-same:amd64 (1.0 stable [amd64])' aptget install libc6-same:amd64 -s -t stable + +# FIXME: We should test installing libc6-same:amd64 here, but dpkg doesn't allow it currently + +# FIXME: upgrade any to all as above +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + libc6-same +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst libc6-same (2.0 testing, testing [all]) +Conf libc6-same (2.0 testing, testing [all])' aptget upgrade -t testing -s +aptget upgrade -y -qq 2>&1 > /dev/null +testdpkginstalled libc6-same + +# FIXME: the display is a strange (its a downgrade), but the handling itself correct +testequal "Reading package lists... +Building dependency tree... +Reading state information... +Selected version '1.0' (stable [i386]) for 'libc6-same' +The following packages will be REMOVED: + libc6-same +The following NEW packages will be installed: + libc6-same +0 upgraded, 1 newly installed, 2 to remove and 0 not upgraded. +Remv libc6-same [2.0] +Inst libc6-same (1.0 stable [i386]) +Conf libc6-same (1.0 stable [i386])" aptget install libc6-same/stable -s -q=0 + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + foobar-same +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst foobar-same (1.0 stable [i386]) [] +Conf foobar-same (1.0 stable [i386])' aptget install foobar-same/stable -st testing + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following NEW packages will be installed: + foobar-same:amd64 +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst foobar-same:amd64 (1.0 stable [amd64]) +Conf foobar-same:amd64 (1.0 stable [amd64])' aptget install foobar-same:amd64/stable -st testing -- cgit v1.2.3 From a1ac2ca85ae4d7c8b3ab3c4e2f3ba6c26202c363 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 11:45:06 +0100 Subject: * apt-pkg/pkgcachegen.cc: - in multiarch, let :all packages conflict with :any packages with a different version to be sure --- apt-pkg/pkgcachegen.cc | 18 +++++++++++------- debian/changelog | 5 ++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index ed35174bb..5b943cca1 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -638,21 +638,19 @@ bool pkgCacheGenerator::FinishCache(OpProgress *Progress) Dynamic DynP(P); for (; P.end() != true; P = G.NextPkg(P)) { - if (strcmp(P.Arch(),"all") == 0) - continue; pkgCache::PkgIterator allPkg; Dynamic DynallPkg(allPkg); pkgCache::VerIterator V = P.VersionList(); Dynamic DynV(V); for (; V.end() != true; V++) { - string const Arch = V.Arch(true); + char const * const Arch = P.Arch(); map_ptrloc *OldDepLast = NULL; /* MultiArch handling introduces a lot of implicit Dependencies: - MultiArch: same → Co-Installable if they have the same version - Architecture: all → Need to be Co-Installable for internal reasons - All others conflict with all other group members */ - bool const coInstall = (V->MultiArch == pkgCache::Version::All || + bool const coInstall = ((V->MultiArch == pkgCache::Version::All && strcmp(Arch, "all") != 0) || V->MultiArch == pkgCache::Version::Same); if (V->MultiArch == pkgCache::Version::All && allPkg.end() == true) allPkg = G.FindPkg("all"); @@ -686,9 +684,15 @@ bool pkgCacheGenerator::FinishCache(OpProgress *Progress) } } else { // Conflicts: ${self}:other - NewDepends(D, V, "", - pkgCache::Dep::NoOp, pkgCache::Dep::Conflicts, - OldDepLast); + if (strcmp(Arch, "all") == 0) { + NewDepends(D, V, V.VerStr(), + pkgCache::Dep::NotEquals, pkgCache::Dep::Conflicts, + OldDepLast); + } else { + NewDepends(D, V, "", + pkgCache::Dep::NoOp, pkgCache::Dep::Conflicts, + OldDepLast); + } } } } diff --git a/debian/changelog b/debian/changelog index 7fb6557e9..ecaca2a9b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -79,6 +79,9 @@ apt (0.8.11) UNRELEASED; urgency=low * apt-pkg/algorithms.cc: - mark pseudo packages of installed all packages as configured in the simulation as we don't call configure for these packages + * apt-pkg/pkgcachegen.cc: + - in multiarch, let :all packages conflict with :any packages + with a different version to be sure [ Michael Vogt ] * methods/http.cc: @@ -96,7 +99,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- David Kalnischkies Mon, 07 Feb 2011 11:26:03 +0100 + -- David Kalnischkies Mon, 07 Feb 2011 11:42:41 +0100 apt (0.8.10.3) unstable; urgency=low -- cgit v1.2.3 From bea417121247afe00cdd4ba13215544d5b5d3262 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 13:08:43 +0100 Subject: always do removes first and set not installed remove packages on hold to prevent temporary installation later (Closes: #549968) --- cmdline/apt-get.cc | 13 +++++------ debian/changelog | 4 +++- ...est-bug-549968-install-depends-of-not-installed | 26 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 9 deletions(-) create mode 100755 test/integration/test-bug-549968-install-depends-of-not-installed diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index e93d12c2b..a6377f9f1 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -895,7 +895,11 @@ struct TryToRemove { if ((Pkg->CurrentVer == 0 && PurgePkgs == false) || (PurgePkgs == true && Pkg->CurrentState == pkgCache::State::NotInstalled)) + { ioprintf(c1out,_("Package %s is not installed, so not removed\n"),Pkg.FullName(true).c_str()); + // MarkInstall refuses to install packages on hold + Pkg->SelectedState = pkgCache::State::Hold; + } else Cache->GetDepCache()->MarkDelete(Pkg, PurgePkgs); } @@ -1790,14 +1794,7 @@ bool DoInstall(CommandLine &CmdL) return false; } - unsigned short order[] = { 0, 0, 0 }; - if (fallback == MOD_INSTALL) { - order[0] = MOD_INSTALL; - order[1] = MOD_REMOVE; - } else { - order[0] = MOD_REMOVE; - order[1] = MOD_INSTALL; - } + unsigned short const order[] = { MOD_REMOVE, MOD_INSTALL, 0 }; TryToInstall InstallAction(Cache, Fix, BrokenFix); TryToRemove RemoveAction(Cache, Fix); diff --git a/debian/changelog b/debian/changelog index ecaca2a9b..3adb9d76f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,6 +17,8 @@ apt (0.8.11) UNRELEASED; urgency=low so installing packages from experimental or backports is easier - really do not show packages in the extra section if they were requested on the commandline, e.g. with a modifier (Closes: #184730) + - always do removes first and set not installed remove packages + on hold to prevent temporary installation later (Closes: #549968) * debian/control: - add Vcs-Browser now that loggerhead works again (Closes: #511168) - depend on debhelper 7 to raise compat level @@ -99,7 +101,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- David Kalnischkies Mon, 07 Feb 2011 11:42:41 +0100 + -- David Kalnischkies Mon, 07 Feb 2011 13:06:50 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/test/integration/test-bug-549968-install-depends-of-not-installed b/test/integration/test-bug-549968-install-depends-of-not-installed new file mode 100755 index 000000000..864dd340a --- /dev/null +++ b/test/integration/test-bug-549968-install-depends-of-not-installed @@ -0,0 +1,26 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'libc6' 'all' '1.0' +insertpackage 'unstable' 'coolstuff' 'all' '1.0' 'Recommends: extracoolstuff' +insertpackage 'unstable' 'extracoolstuff' 'all' '1.0' 'Depends: libc6' + +setupaptarchive + +# We check the Markers here as the autoremove nuker will also +# prevent it, but to late - its better to fail earlier +testequal 'Reading package lists... +Building dependency tree... + MarkInstall coolstuff [ i386 ] < none -> 1.0 > ( other ) FU=1 + Hold prevents MarkInstall of extracoolstuff [ i386 ] < none -> 1.0 > ( other ) FU=0 +Package extracoolstuff is not installed, so not removed +The following NEW packages will be installed: + coolstuff +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst coolstuff (1.0 unstable [all]) +Conf coolstuff (1.0 unstable [all])' aptget install coolstuff extracoolstuff- -o Debug::pkgDepCache::Marker=1 -s -- cgit v1.2.3 From 1384504286b7923a85d6235ba6f8e2eb4766d967 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 14:38:01 +0100 Subject: test changelogs locally instead of depending on an online service --- test/integration/framework | 3 +++ test/integration/test-changelog | 34 +++++++++++++--------------------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/test/integration/framework b/test/integration/framework index d91599f1b..e10709079 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -272,6 +272,9 @@ Package: $NAME" > ${BUILDDIR}/debian/control for SRC in $SRCS; do echo "pool/${SRC}" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.srclist done + mkdir -p ${BUILDDIR}/../${NAME}_${VERSION} + cp ${BUILDDIR}/debian/changelog ${BUILDDIR}/../${NAME}_${VERSION}/ + cp ${BUILDDIR}/debian/changelog ${BUILDDIR}/../${NAME}_${VERSION}.changelog rm -rf "${BUILDDIR}" msgdone "info" } diff --git a/test/integration/test-changelog b/test/integration/test-changelog index 292df6e32..f05279356 100755 --- a/test/integration/test-changelog +++ b/test/integration/test-changelog @@ -7,28 +7,20 @@ TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture "i386" -# this will be valid until ubuntu lucid is EOL (04/2015) -pkgchangelogtest="Package: apt -Architecture: i386 -Version: 0.7.25.3ubuntu7 -Filename: pool/main/a/apt/apt_0.7.25.3ubuntu7_i386.deb -Section: admin -" -cat <<-EOF >aptarchive/Packages -$pkgchangelogtest -EOF +buildsimplenativepackage 'apt' 'all' '1.0' 'stable' setupaptarchive +changetowebserver +aptget update -qq -echo "Apt::Changelogs::Server \"http://changelogs.ubuntu.com/\";" >> ./aptconfig.conf -msgnmsg "apt-get changelog: " -aptget changelog apt -qq > downloaded-changelog -expected="apt (0.7.25.3ubuntu7) lucid; urgency=low" -got="$(head -n1 downloaded-changelog)" -if [ -s downloaded-changelog ] && [ "$got" = "$expected" ]; then - msgpass -else - msgfail - msgwarn "$got != $expected" -fi +echo 'Apt::Changelogs::Server "http://localhost:8080/";' >> ./aptconfig.conf +aptget changelog apt -qq > apt.changelog +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" +rm aptarchive/pool/apt_1.0/changelog + +aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' > apt.changelog +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" +rm aptarchive/pool/apt_1.0.changelog + +testequal 'E: changelog download failed' aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' -- cgit v1.2.3 From fcb144b91a91ef9b6016ede0be05e07dacc8aaf9 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 14:55:11 +0100 Subject: implement --print-uris support for changelog command --- cmdline/apt-get.cc | 21 +++++++++++++++++---- test/integration/test-changelog | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index a6377f9f1..99c0e5d66 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2876,6 +2876,7 @@ bool GuessThirdPartyChangelogUri(CacheFile &Cache, // now strip away the filename and add srcpkg_srcver.changelog return true; } + /*}}}*/ // DownloadChangelog - Download the changelog /*{{{*/ // --------------------------------------------------------------------- bool DownloadChangelog(CacheFile &CacheFile, pkgAcquire &Fetcher, @@ -2900,13 +2901,19 @@ bool DownloadChangelog(CacheFile &CacheFile, pkgAcquire &Fetcher, "http://packages.debian.org/changelogs"); path = GetChangelogPath(CacheFile, Pkg, Ver); strprintf(changelog_uri, "%s/%s/changelog", server.c_str(), path.c_str()); + if (_config->FindB("APT::Get::Print-URIs", false) == true) + { + std::cout << '\'' << changelog_uri << '\'' << std::endl; + return true; + } + strprintf(descr, _("Changelog for %s (%s)"), Pkg.Name(), changelog_uri.c_str()); // queue it new pkgAcqFile(&Fetcher, changelog_uri, "", 0, descr, Pkg.Name(), "ignored", targetfile); - // try downloading it, if that fails, they third-party-changelogs location - // FIXME: res is "Continue" even if I get a 404?!? - int res = Fetcher.Run(); + // try downloading it, if that fails, try third-party-changelogs location + // FIXME: Fetcher.Run() is "Continue" even if I get a 404?!? + Fetcher.Run(); if (!FileExists(targetfile)) { string third_party_uri; @@ -2914,7 +2921,7 @@ bool DownloadChangelog(CacheFile &CacheFile, pkgAcquire &Fetcher, { strprintf(descr, _("Changelog for %s (%s)"), Pkg.Name(), third_party_uri.c_str()); new pkgAcqFile(&Fetcher, third_party_uri, "", 0, descr, Pkg.Name(), "ignored", targetfile); - res = Fetcher.Run(); + Fetcher.Run(); } } @@ -2955,6 +2962,12 @@ bool DoChangelog(CommandLine &CmdL) APT::VersionSet verset = APT::VersionSet::FromCommandLine(Cache, CmdL.FileList + 1, APT::VersionSet::CANDIDATE, helper); pkgAcquire Fetcher; + + if (_config->FindB("APT::Get::Print-URIs", false) == true) + for (APT::VersionSet::const_iterator Ver = verset.begin(); + Ver != verset.end(); ++Ver) + return DownloadChangelog(Cache, Fetcher, Ver, ""); + AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0)); Fetcher.Setup(&Stat); diff --git a/test/integration/test-changelog b/test/integration/test-changelog index f05279356..b5c204a53 100755 --- a/test/integration/test-changelog +++ b/test/integration/test-changelog @@ -15,6 +15,8 @@ aptget update -qq echo 'Apt::Changelogs::Server "http://localhost:8080/";' >> ./aptconfig.conf +testequal "'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt --print-uris + aptget changelog apt -qq > apt.changelog testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" rm aptarchive/pool/apt_1.0/changelog -- cgit v1.2.3 From 72dd5bec06d8d50ff9e8022e36a7d8a6f0cfd7a0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 17:30:06 +0100 Subject: implement download-only for changelog command which downloads the changelog to the file $PKGNAME.changelog in the current directory --- cmdline/apt-get.cc | 41 +++++++++++++++++++++++++++++------------ test/integration/test-changelog | 12 ++++++++++-- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 99c0e5d66..93f167f19 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2961,6 +2961,8 @@ bool DoChangelog(CommandLine &CmdL) APT::CacheSetHelper helper(c0out); APT::VersionSet verset = APT::VersionSet::FromCommandLine(Cache, CmdL.FileList + 1, APT::VersionSet::CANDIDATE, helper); + if (verset.empty() == true) + return false; pkgAcquire Fetcher; if (_config->FindB("APT::Get::Print-URIs", false) == true) @@ -2971,26 +2973,41 @@ bool DoChangelog(CommandLine &CmdL) AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0)); Fetcher.Setup(&Stat); - if (verset.empty() == true) - return false; - char *tmpdir = mkdtemp(strdup("/tmp/apt-changelog-XXXXXX")); - if (tmpdir == NULL) { - return _error->Errno("mkdtemp", "mkdtemp failed"); + bool const downOnly = _config->FindB("APT::Get::Download-Only", false); + + char tmpname[100]; + char* tmpdir = NULL; + if (downOnly == false) + { + const char* const tmpDir = getenv("TMPDIR"); + if (tmpDir != NULL && *tmpDir != '\0') + snprintf(tmpname, sizeof(tmpname), "%s/apt-changelog-XXXXXX", tmpDir); + else + strncpy(tmpname, "/tmp/apt-changelog-XXXXXX", sizeof(tmpname)); + tmpdir = mkdtemp(tmpname); + if (tmpdir == NULL) + return _error->Errno("mkdtemp", "mkdtemp failed"); } - + for (APT::VersionSet::const_iterator Ver = verset.begin(); Ver != verset.end(); ++Ver) { - string changelogfile = string(tmpdir) + "changelog"; - if (DownloadChangelog(Cache, Fetcher, Ver, changelogfile)) + string changelogfile; + if (downOnly == false) + changelogfile.append(tmpname).append("changelog"); + else + changelogfile.append(Ver.ParentPkg().Name()).append(".changelog"); + if (DownloadChangelog(Cache, Fetcher, Ver, changelogfile) && downOnly == false) + { DisplayFileInPager(changelogfile); - // cleanup temp file - unlink(changelogfile.c_str()); + // cleanup temp file + unlink(changelogfile.c_str()); + } } // clenaup tmp dir - rmdir(tmpdir); - free(tmpdir); + if (tmpdir != NULL) + rmdir(tmpdir); return true; } /*}}}*/ diff --git a/test/integration/test-changelog b/test/integration/test-changelog index b5c204a53..0a80cc08c 100755 --- a/test/integration/test-changelog +++ b/test/integration/test-changelog @@ -19,10 +19,18 @@ testequal "'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt aptget changelog apt -qq > apt.changelog testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" -rm aptarchive/pool/apt_1.0/changelog +rm apt.changelog + +aptget changelog apt -d -qq +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" +rm apt.changelog aptarchive/pool/apt_1.0/changelog aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' > apt.changelog testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" -rm aptarchive/pool/apt_1.0.changelog +rm apt.changelog + +aptget changelog apt -d -qq +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" +rm apt.changelog aptarchive/pool/apt_1.0.changelog testequal 'E: changelog download failed' aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' -- cgit v1.2.3 From 42d41ddbcb8238add82609badd1fbb16f54c4077 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 17:54:49 +0100 Subject: implement --print-uris for download command --- cmdline/apt-get.cc | 21 ++++++++++++++++----- test/integration/test-apt-get-download | 29 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 5 deletions(-) create mode 100755 test/integration/test-apt-get-download diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 93f167f19..878313212 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2208,13 +2208,15 @@ bool DoDownload(CommandLine &CmdL) APT::CacheSetHelper helper(c0out); APT::VersionSet verset = APT::VersionSet::FromCommandLine(Cache, CmdL.FileList + 1, APT::VersionSet::CANDIDATE, helper); - pkgAcquire Fetcher; - AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0)); - Fetcher.Setup(&Stat); if (verset.empty() == true) return false; + pkgAcquire Fetcher; + AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0)); + if (_config->FindB("APT::Get::Print-URIs") == true) + Fetcher.Setup(&Stat); + pkgRecords Recs(Cache); pkgSourceList *SrcList = Cache.GetSourceList(); for (APT::VersionSet::const_iterator Ver = verset.begin(); @@ -2245,9 +2247,18 @@ bool DoDownload(CommandLine &CmdL) // get the file new pkgAcqFile(&Fetcher, uri, hash.toStr(), (*Ver)->Size, descr, Pkg.Name(), "."); } - bool result = (Fetcher.Run() == pkgAcquire::Continue); - return result; + // Just print out the uris and exit if the --print-uris flag was used + if (_config->FindB("APT::Get::Print-URIs") == true) + { + pkgAcquire::UriIterator I = Fetcher.UriBegin(); + for (; I != Fetcher.UriEnd(); I++) + cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << + I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl; + return true; + } + + return (Fetcher.Run() == pkgAcquire::Continue); } /*}}}*/ // DoCheck - Perform the check operation /*{{{*/ diff --git a/test/integration/test-apt-get-download b/test/integration/test-apt-get-download new file mode 100755 index 000000000..7db93c32f --- /dev/null +++ b/test/integration/test-apt-get-download @@ -0,0 +1,29 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +buildsimplenativepackage 'apt' 'all' '1.0' 'stable' +buildsimplenativepackage 'apt' 'all' '2.0' 'unstable' + +setupaptarchive + +testdownload() { + msgtest 'Test download of package file' $1 + if [ -z "$3" ]; then + aptget download ${2} + else + aptget download ${2}/${3} + fi + test -f $1 && msgpass || msgfail +} + +testdownload apt_1.0_all.deb apt stable +testdownload apt_2.0_all.deb apt + +DEBFILE="$(readlink -f aptarchive)/pool/apt_2.0_all.deb" +testequal "'file://${DEBFILE}' apt_2.0_all.deb $(stat -c%s $DEBFILE) sha256:$(sha256sum $DEBFILE | cut -d' ' -f 1)" aptget download apt --print-uris -- cgit v1.2.3 From cfe35dbc01015c6927193fd5da02eaabd753989a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 17:57:06 +0100 Subject: rename changelog and autoremove testfile to indicate better what is tested --- test/integration/test-apt-get-autoremove | 55 ++++++++++++++++++++++++++++++++ test/integration/test-apt-get-changelog | 36 +++++++++++++++++++++ test/integration/test-autoremove | 55 -------------------------------- test/integration/test-changelog | 36 --------------------- 4 files changed, 91 insertions(+), 91 deletions(-) create mode 100755 test/integration/test-apt-get-autoremove create mode 100755 test/integration/test-apt-get-changelog delete mode 100755 test/integration/test-autoremove delete mode 100755 test/integration/test-changelog diff --git a/test/integration/test-apt-get-autoremove b/test/integration/test-apt-get-autoremove new file mode 100755 index 000000000..9dfab19f5 --- /dev/null +++ b/test/integration/test-apt-get-autoremove @@ -0,0 +1,55 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'i386' + +buildsimplenativepackage 'unrelated' 'all' '1' 'unstable' +buildsimplenativepackage 'po-debconf' 'all' '1.0.16' 'unstable' +buildsimplenativepackage 'debhelper' 'all' '8.0.0' 'unstable' 'Depends: po-debconf' +setupaptarchive + +aptget install unrelated debhelper -qq 2>&1 > /dev/null +testdpkginstalled 'unrelated' 'debhelper' 'po-debconf' + +testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: po-debconf +Architecture: i386 +Auto-Installed: 1 +' +aptget remove debhelper -y -qq 2>&1 > /dev/null +testdpkgnotinstalled 'debhelper' +testdpkginstalled 'po-debconf' 'unrelated' + +echo 'APT::NeverAutoRemove { "^debc.*nf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following packages will be REMOVED: + po-debconf +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +Remv po-debconf [1.0.16]' aptget autoremove -s +testdpkginstalled 'po-debconf' + +echo 'APT::NeverAutoRemove { "^po-debconf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove +aptget autoremove -y -qq 2>&1 > /dev/null +testdpkginstalled 'po-debconf' + +echo 'APT::NeverAutoRemove { "^po-.*$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove +aptget autoremove -y -qq 2>&1 > /dev/null +testdpkginstalled "po-debconf" + +rm rootdir/etc/apt/apt.conf.d/00autoremove +aptget autoremove -y -qq 2>&1 > /dev/null +testdpkgnotinstalled 'po-debconf' + +testfileequal 'rootdir/var/lib/apt/extended_states' '' + +sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d' +testfileequal 'rootdir/var/log/apt/history.log' ' +Install: unrelated:i386 (1), debhelper:i386 (8.0.0), po-debconf:i386 (1.0.16, automatic) + +Remove: debhelper:i386 (8.0.0) + +Remove: po-debconf:i386 (1.0.16)' diff --git a/test/integration/test-apt-get-changelog b/test/integration/test-apt-get-changelog new file mode 100755 index 000000000..0a80cc08c --- /dev/null +++ b/test/integration/test-apt-get-changelog @@ -0,0 +1,36 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" + +buildsimplenativepackage 'apt' 'all' '1.0' 'stable' + +setupaptarchive +changetowebserver +aptget update -qq + +echo 'Apt::Changelogs::Server "http://localhost:8080/";' >> ./aptconfig.conf + +testequal "'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt --print-uris + +aptget changelog apt -qq > apt.changelog +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" +rm apt.changelog + +aptget changelog apt -d -qq +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" +rm apt.changelog aptarchive/pool/apt_1.0/changelog + +aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' > apt.changelog +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" +rm apt.changelog + +aptget changelog apt -d -qq +testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" +rm apt.changelog aptarchive/pool/apt_1.0.changelog + +testequal 'E: changelog download failed' aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' diff --git a/test/integration/test-autoremove b/test/integration/test-autoremove deleted file mode 100755 index 9dfab19f5..000000000 --- a/test/integration/test-autoremove +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -set -e - -TESTDIR=$(readlink -f $(dirname $0)) -. $TESTDIR/framework -setupenvironment -configarchitecture 'i386' - -buildsimplenativepackage 'unrelated' 'all' '1' 'unstable' -buildsimplenativepackage 'po-debconf' 'all' '1.0.16' 'unstable' -buildsimplenativepackage 'debhelper' 'all' '8.0.0' 'unstable' 'Depends: po-debconf' -setupaptarchive - -aptget install unrelated debhelper -qq 2>&1 > /dev/null -testdpkginstalled 'unrelated' 'debhelper' 'po-debconf' - -testfileequal 'rootdir/var/lib/apt/extended_states' 'Package: po-debconf -Architecture: i386 -Auto-Installed: 1 -' -aptget remove debhelper -y -qq 2>&1 > /dev/null -testdpkgnotinstalled 'debhelper' -testdpkginstalled 'po-debconf' 'unrelated' - -echo 'APT::NeverAutoRemove { "^debc.*nf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove -testequal 'Reading package lists... -Building dependency tree... -Reading state information... -The following packages will be REMOVED: - po-debconf -0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. -Remv po-debconf [1.0.16]' aptget autoremove -s -testdpkginstalled 'po-debconf' - -echo 'APT::NeverAutoRemove { "^po-debconf$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove -aptget autoremove -y -qq 2>&1 > /dev/null -testdpkginstalled 'po-debconf' - -echo 'APT::NeverAutoRemove { "^po-.*$"; };' > rootdir/etc/apt/apt.conf.d/00autoremove -aptget autoremove -y -qq 2>&1 > /dev/null -testdpkginstalled "po-debconf" - -rm rootdir/etc/apt/apt.conf.d/00autoremove -aptget autoremove -y -qq 2>&1 > /dev/null -testdpkgnotinstalled 'po-debconf' - -testfileequal 'rootdir/var/lib/apt/extended_states' '' - -sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d' -testfileequal 'rootdir/var/log/apt/history.log' ' -Install: unrelated:i386 (1), debhelper:i386 (8.0.0), po-debconf:i386 (1.0.16, automatic) - -Remove: debhelper:i386 (8.0.0) - -Remove: po-debconf:i386 (1.0.16)' diff --git a/test/integration/test-changelog b/test/integration/test-changelog deleted file mode 100755 index 0a80cc08c..000000000 --- a/test/integration/test-changelog +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -set -e - -TESTDIR=$(readlink -f $(dirname $0)) -. $TESTDIR/framework - -setupenvironment -configarchitecture "i386" - -buildsimplenativepackage 'apt' 'all' '1.0' 'stable' - -setupaptarchive -changetowebserver -aptget update -qq - -echo 'Apt::Changelogs::Server "http://localhost:8080/";' >> ./aptconfig.conf - -testequal "'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt --print-uris - -aptget changelog apt -qq > apt.changelog -testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" -rm apt.changelog - -aptget changelog apt -d -qq -testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)" -rm apt.changelog aptarchive/pool/apt_1.0/changelog - -aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' > apt.changelog -testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" -rm apt.changelog - -aptget changelog apt -d -qq -testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0.changelog)" -rm apt.changelog aptarchive/pool/apt_1.0.changelog - -testequal 'E: changelog download failed' aptget changelog apt -qq -o APT::Changelogs::Server='http://not-on-the-main-server:8080/' -- cgit v1.2.3 From 8f3853baea6191788da6befb437e92ba246c86a3 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 21:42:36 +0100 Subject: * apt-pkg/contrib/error.cc: - remove 400 char size limit of error messages (LP: #365611) --- apt-pkg/contrib/error.cc | 31 +++++++++++++++++----- debian/changelog | 4 ++- .../test-ubuntu-bug-365611-long-package-names | 11 ++++++++ 3 files changed, 39 insertions(+), 7 deletions(-) create mode 100755 test/integration/test-ubuntu-bug-365611-long-package-names diff --git a/apt-pkg/contrib/error.cc b/apt-pkg/contrib/error.cc index e2e8d6e57..7dad11689 100644 --- a/apt-pkg/contrib/error.cc +++ b/apt-pkg/contrib/error.cc @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -103,10 +104,21 @@ bool GlobalError::InsertErrno(MsgType const &type, const char *Function, // GlobalError::InsertErrno - formats an error message with the errno /*{{{*/ bool GlobalError::InsertErrno(MsgType type, const char* Function, const char* Description, va_list &args) { - char S[400]; - snprintf(S, sizeof(S), "%s - %s (%i: %s)", Description, - Function, errno, strerror(errno)); - return Insert(type, S, args); + int const errsv = errno; + char* S = (char*) malloc(400); + size_t const Ssize = snprintf(S, 400, "%s - %s (%i: %s)", Description, + Function, errsv, strerror(errsv)) + 1; + + if (Ssize > 400) { + free(S); + S = (char*) malloc(Ssize); + snprintf(S, Ssize, "%s - %s (%i: %s)", Description, + Function, errsv, strerror(errsv)); + } + + bool const geins = Insert(type, S, args); + free(S); + return geins; } /*}}}*/ // GlobalError::Fatal - Add a fatal error to the list /*{{{*/ @@ -157,8 +169,14 @@ bool GlobalError::Insert(MsgType const &type, const char *Description,...) // GlobalError::Insert - Insert a new item at the end /*{{{*/ bool GlobalError::Insert(MsgType type, const char* Description, va_list &args) { - char S[400]; - vsnprintf(S,sizeof(S),Description,args); + char* S = (char*) malloc(400); + size_t const Ssize = vsnprintf(S, 400, Description, args) + 1; + + if (Ssize > 400) { + free(S); + S = (char*) malloc(Ssize); + vsnprintf(S, Ssize, Description, args); + } Item const m(S, type); Messages.push_back(m); @@ -169,6 +187,7 @@ bool GlobalError::Insert(MsgType type, const char* Description, if (type == FATAL || type == DEBUG) std::clog << m << std::endl; + free(S); return false; } /*}}}*/ diff --git a/debian/changelog b/debian/changelog index 3adb9d76f..a44a603e3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -84,6 +84,8 @@ apt (0.8.11) UNRELEASED; urgency=low * apt-pkg/pkgcachegen.cc: - in multiarch, let :all packages conflict with :any packages with a different version to be sure + * apt-pkg/contrib/error.cc: + - remove 400 char size limit of error messages (LP: #365611) [ Michael Vogt ] * methods/http.cc: @@ -101,7 +103,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- David Kalnischkies Mon, 07 Feb 2011 13:06:50 +0100 + -- David Kalnischkies Mon, 07 Feb 2011 21:42:06 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/test/integration/test-ubuntu-bug-365611-long-package-names b/test/integration/test-ubuntu-bug-365611-long-package-names new file mode 100755 index 000000000..28b55df3b --- /dev/null +++ b/test/integration/test-ubuntu-bug-365611-long-package-names @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +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)" -- cgit v1.2.3 From 7376837d338fd9399cfa4820b6f9bacbb2634d46 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 7 Feb 2011 22:15:51 +0100 Subject: a notice is printed for ignored files (Closes: #597615) --- debian/changelog | 3 ++- doc/apt.conf.5.xml | 6 ++++-- doc/apt_preferences.5.xml | 6 ++++-- doc/sources.list.5.xml | 4 +++- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index a44a603e3..9e14c562c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -45,6 +45,7 @@ apt (0.8.11) UNRELEASED; urgency=low - remove duplicated mentioning of --install-recommends * doc/sources.list.5.xml: - remove obsolete references to non-us (Closes: #594495) + - a notice is printed for ignored files (Closes: #597615) * debian/rules: - use -- instead of deprecated -u for dh_gencontrol - remove shlibs.local creation and usage @@ -103,7 +104,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- David Kalnischkies Mon, 07 Feb 2011 21:42:06 +0100 + -- David Kalnischkies Mon, 07 Feb 2011 22:14:09 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index a423dac24..477507598 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -52,8 +52,10 @@ all files in Dir::Etc::Parts in alphanumeric ascending order which have no or "conf" as filename extension and which only contain alphanumeric, - hyphen (-), underscore (_) and period (.) characters - - otherwise they will be silently ignored. + hyphen (-), underscore (_) and period (.) characters. + Otherwise APT will print a notice that it has ignored a file if the file + doesn't match a pattern in the Dir::Ignore-Files-Silently + configuration list - in this case it will be silently ignored. the main configuration file specified by Dir::Etc::main the command line options are applied to override the diff --git a/doc/apt_preferences.5.xml b/doc/apt_preferences.5.xml index 54c01100c..0d22d0413 100644 --- a/doc/apt_preferences.5.xml +++ b/doc/apt_preferences.5.xml @@ -71,8 +71,10 @@ You have been warned. directory are parsed in alphanumeric ascending order and need to obey the following naming convention: The files have no or "pref" as filename extension and which only contain alphanumeric, hyphen (-), -underscore (_) and period (.) characters - otherwise they will be silently -ignored. +underscore (_) and period (.) characters. +Otherwise APT will print a notice that it has ignored a file if the file +doesn't match a pattern in the Dir::Ignore-Files-Silently +configuration list - in this case it will be silently ignored. APT's Default Priority Assignments diff --git a/doc/sources.list.5.xml b/doc/sources.list.5.xml index 212ed6d98..837f07683 100644 --- a/doc/sources.list.5.xml +++ b/doc/sources.list.5.xml @@ -57,7 +57,9 @@ File names need to end with .list and may only contain letters (a-z and A-Z), digits (0-9), underscore (_), hyphen (-) and period (.) characters. - Otherwise they will be silently ignored. + Otherwise APT will print a notice that it has ignored a file if the file + doesn't match a pattern in the Dir::Ignore-Files-Silently + configuration list - in this case it will be silently ignored. The deb and deb-src types -- cgit v1.2.3