From 92437804ab54fc95da65a3a35e690f9023db2f57 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 2 Feb 2011 22:43:14 +0100 Subject: * debian/control: - make Vcs-Bzr point to http://bzr.debian.org/apt/debian-squeeze branch --- debian/changelog | 8 ++++++++ debian/control | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index d4ac384e2..76f137ea1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.10.4) UNRELEASED; urgency=low + + * debian/control: + - make Vcs-Bzr point to http://bzr.debian.org/apt/debian-squeeze + branch + + -- Michael Vogt Wed, 02 Feb 2011 22:42:36 +0100 + apt (0.8.10.3) unstable; urgency=low [ Programs translations ] diff --git a/debian/control b/debian/control index 87e885f6a..59bf7a7a7 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Uploaders: Michael Vogt , Otavio Salvador , 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-Bzr: http://bzr.debian.org/apt/debian-squeeze Package: apt Architecture: any -- cgit v1.2.3-70-g09d2 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(-) (limited to 'debian') 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-70-g09d2 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(-) (limited to 'debian') 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-70-g09d2 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 (limited to 'debian') 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-70-g09d2 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(-) (limited to 'debian') 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-70-g09d2 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 (limited to 'debian') 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-70-g09d2 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 (limited to 'debian') 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-70-g09d2 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(-) (limited to 'debian') 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-70-g09d2 From 734b4c0a49c765e22ae1cad69e47c0681b4a920d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 8 Feb 2011 11:01:25 +0100 Subject: debian/changelog, debian/NEWS: prepare upload --- debian/NEWS | 2 +- debian/changelog | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/NEWS b/debian/NEWS index 91b71225f..b0524c741 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,4 +1,4 @@ -apt (0.8.11) UNRELEASED; urgency=low +apt (0.8.11) unstable; urgency=low * apt-get install pkg/experimental will now not only switch the candidate of package pkg to the version from the release experimental diff --git a/debian/changelog b/debian/changelog index 9e14c562c..829ba61a4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -97,6 +97,9 @@ apt (0.8.11) UNRELEASED; urgency=low to Guillem Jover * apt-pkg/cdrom.cc, apt-pkg/init.cc, methods/cdrom.cc: - use /media/cdrom as default mountoint (closes: #611569) + * cmdline/apt-get.cc: + - add apt-get changelog (closes: #526990) + - add apt-get download (closes: #82738) [ Martin Pitt ] * test/integration/test-compressed-indexes, test/test-indexes.sh: @@ -104,7 +107,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 22:14:09 +0100 + -- Michael Vogt Tue, 08 Feb 2011 11:00:48 +0100 apt (0.8.10.3) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 3e648f9ee78de3f0dc1cb6074a00a11fbeb7713f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 8 Feb 2011 12:53:51 +0100 Subject: update apt.symbols file to reflect 0.8.11 release --- debian/apt.symbols | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) (limited to 'debian') diff --git a/debian/apt.symbols b/debian/apt.symbols index 10e17cc80..3dab13389 100644 --- a/debian/apt.symbols +++ b/debian/apt.symbols @@ -39,8 +39,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -670,7 +668,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -678,8 +675,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -834,7 +829,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -938,10 +932,8 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -1239,7 +1231,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 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 @@ -1249,15 +1240,37 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 + (c++)"StripEpoch(std::basic_string, std::allocator > const&)@Base" 0.8.11 1 + (c++)"IndexTarget::~IndexTarget()@Base" 0.8.11 1 + (c++)"pkgAcqIndex::Init(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.11 1 + (c++)"pkgAcqIndex::pkgAcqIndex(pkgAcquire*, IndexTarget const*, HashString const&, indexRecords const*)@Base" 0.8.11 1 + (c++)"pkgTagSection::FindFlag(unsigned long&, unsigned long, char const*, char const*)@Base" 0.8.11 1 + (c++)"pkgAcqSubIndex::ParseIndex(std::basic_string, std::allocator > const&)@Base" 0.8.11 1 + (c++)"pkgAcqSubIndex::Custom600Headers()@Base" 0.8.11 1 + (c++)"pkgAcqSubIndex::Done(std::basic_string, std::allocator >, unsigned long, std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.11 1 + (c++)"pkgAcqSubIndex::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.11 1 + (c++)"pkgAcqSubIndex::DescURI()@Base" 0.8.11 1 + (c++)"pkgAcqSubIndex::pkgAcqSubIndex(pkgAcquire*, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, HashString const&)@Base" 0.8.11 1 + (c++)"pkgAcqSubIndex::~pkgAcqSubIndex()@Base" 0.8.11 1 + (c++)"pkgAcqMetaClearSig::Failed(std::basic_string, std::allocator >, pkgAcquire::MethodConfig*)@Base" 0.8.11 1 + (c++)"pkgAcqMetaClearSig::pkgAcqMetaClearSig(pkgAcquire*, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::vector > const*, indexRecords*)@Base" 0.8.11 1 + (c++)"pkgAcqMetaClearSig::~pkgAcqMetaClearSig()@Base" 0.8.11 1 + (c++)"pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire*, IndexTarget const*, HashString const&, indexRecords const*)@Base" 0.8.11 1 + (c++)"IndexTarget::IsOptional() const@Base" 0.8.11 1 + (c++)"IndexTarget::IsSubIndex() const@Base" 0.8.11 1 + (c++)"debReleaseIndex::TranslationIndexURI(char const*, std::basic_string, std::allocator > const&) const@Base" 0.8.11 1 + (c++)"debReleaseIndex::TranslationIndexURISuffix(char const*, std::basic_string, std::allocator > const&) const@Base" 0.8.11 1 + (c++)"typeinfo for pkgAcqSubIndex@Base" 0.8.11 1 + (c++)"typeinfo for pkgAcqMetaClearSig@Base" 0.8.11 1 + (c++)"typeinfo name for pkgAcqSubIndex@Base" 0.8.11 1 + (c++)"typeinfo name for pkgAcqMetaClearSig@Base" 0.8.11 1 + (c++)"vtable for pkgAcqSubIndex@Base" 0.8.11 1 + (c++)"vtable for pkgAcqMetaClearSig@Base" 0.8.11 1 -- cgit v1.2.3-70-g09d2 From 24f634e951df86f41ae1838f2acd99f6657a3c84 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 8 Feb 2011 13:09:59 +0100 Subject: releasing version 0.8.11 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 829ba61a4..51f55c98a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.8.11) UNRELEASED; urgency=low +apt (0.8.11) unstable; urgency=low [ David Kalnischkies ] * apt-pkg/depcache.cc: @@ -107,7 +107,7 @@ apt (0.8.11) UNRELEASED; urgency=low will actually test uncompressed indexes regardless of the internal default value of Acquire::GzipIndexes. - -- Michael Vogt Tue, 08 Feb 2011 11:00:48 +0100 + -- Michael Vogt Tue, 08 Feb 2011 12:58:12 +0100 apt (0.8.10.3) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From d4e80f1f0f75ef0409ba702c7ef866fbf437b8cb Mon Sep 17 00:00:00 2001 From: Stefan Lippers-Hollmann Date: Tue, 8 Feb 2011 22:26:15 +0100 Subject: [ Stefan Lippers-Hollmann ] * cmdline/apt-key: - fix root test which prevented setting of trustdb-name which lets gpg fail if it adds/remove keys from trusted.gpg as it tries to open the (maybe) not existent /root/.gnupg --- cmdline/apt-key | 2 +- debian/changelog | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/cmdline/apt-key b/cmdline/apt-key index c1e01a776..3838fafcd 100755 --- a/cmdline/apt-key +++ b/cmdline/apt-key @@ -7,7 +7,7 @@ unset GREP_OPTIONS # implodes if there isn't one available GPG_CMD='gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg' -if ! id -u > /dev/null; then +if [ "$(id -u)" -eq 0 ]; then GPG_CMD="$GPG_CMD --trustdb-name /etc/apt/trustdb.gpg" fi diff --git a/debian/changelog b/debian/changelog index 51f55c98a..6081841f4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +apt (0.8.11.1) unstable; urgency=low + + [ Stefan Lippers-Hollmann ] + * cmdline/apt-key: + - fix root test which prevented setting of trustdb-name + which lets gpg fail if it adds/remove keys from trusted.gpg + as it tries to open the (maybe) not existent /root/.gnupg + + -- David Kalnischkies Tue, 08 Feb 2011 22:22:33 +0100 + apt (0.8.11) unstable; urgency=low [ David Kalnischkies ] -- cgit v1.2.3-70-g09d2 From 4fe76b0650f6fe6e61751f3a151f7282776465cc Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 8 Feb 2011 22:33:27 +0100 Subject: * debian/apt.symbols: - add more arch dependent symbols --- debian/apt-utils.symbols | 12 +++++++----- debian/apt.symbols | 47 +++++++++++++++++++++++++++++++++++++---------- debian/changelog | 6 +++++- 3 files changed, 49 insertions(+), 16 deletions(-) (limited to 'debian') diff --git a/debian/apt-utils.symbols b/debian/apt-utils.symbols index 8313f6ffd..7dfb000da 100644 --- a/debian/apt-utils.symbols +++ b/debian/apt-utils.symbols @@ -110,10 +110,12 @@ libapt-inst.so.1.2 libapt-inst1.2 (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 +### gcc-4.4 specific + (c++|optional=std)std::basic_string, std::allocator >& std::basic_string, std::allocator >::_M_replace_dispatch(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, unsigned char*, unsigned char*, std::__false_type)@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 + (c++|optional=std)"std::basic_string, std::allocator >& std::basic_string, std::allocator >::append(unsigned char*, unsigned char*)@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)"^typeinfo name for std::iterator<.*>@Base$" 0.8.0 + (c++|regex|optional=std)"^typeinfo for std::iterator<.*>@Base$" 0.8.0 ### diff --git a/debian/apt.symbols b/debian/apt.symbols index 3dab13389..27925ee0c 100644 --- a/debian/apt.symbols +++ b/debian/apt.symbols @@ -31,7 +31,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -222,8 +221,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -234,8 +231,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -322,7 +317,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -445,7 +439,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -720,7 +713,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -776,8 +768,6 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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 @@ -1229,6 +1219,43 @@ libapt-pkg.so.4.10 libapt-pkg4.10 debVS@Base 0.8.0 pkgLibVersion@Base 0.8.0 pkgVersion@Base 0.8.0 +### demangle strangeness - buildd report it as MISSING and as new… + (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 +### gcc-4.4 specific + (c++|optional=inherent)"APT::PackageSet::PackageSet(APT::PackageSet const&)@Base" 0.8.0 + (c++|optional=inline)"stringcasecmp(char const*, char const*, char const*)@Base" 0.8.0 + (arch=armel|c++|optional=inline)"stringcasecmp(std::basic_string, std::allocator > const&, char const*)@Base" 0.8.0 + (c++|optional=inherent)"APT::VersionSet::insert(pkgCache::VerIterator const&)@Base" 0.8.0 + (c++|optional=inline)"APT::VersionSet::insert(APT::VersionSet const&)@Base" 0.8.0 + (c++|optional=private)"debTranslationsIndex::IndexFile(char const*) const@Base" 0.8.0 + (c++|optional=inline)"pkgCache::Iterator::end() const@Base" 0.8.0 + (c++|optional=inherent)"HashString::operator=(HashString const&)@Base" 0.8.0 + (c++|regex|optional=std)"^std::less<[^ ]+>::operator\(\)\(.+\) const@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)"^pkgCache::(Dep|Pkg|Ver|Grp|Prv|Desc|PkgFile)Iterator\*\* std::_.+@Base$" 0.8.0 +### gcc-4.5 specific +# (c++|optional=template)"SPtrArray::~SPtrArray()@Base" 0.8.0 +# (c++|regex|optional=template)"^SPtrArray<[^ ]+>::~SPtrArray\(\)@Base$" 0.8.0 +# (c++|optional=inline)"FileFd::FileFd(std::basic_string, std::allocator >, FileFd::OpenMode, unsigned long)@Base" 0.8.0 +### architecture specific: va_list + (arch=i386 hurd-i386 kfreebsd-i386|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&)@Base" 0.8.0 + (arch=armel armhf|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&)@Base" 0.8.0 + (arch=alpha|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag&)@Base" 0.8.0 + (arch=amd64 kfreebsd-amd64 powerpc powerpcspe s390|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1])@Base" 0.8.0 + (arch=hppa ia64 mipsel sparc sparc64|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&)@Base" 0.8.0 + (arch=sh4|c++)"GlobalError::Insert(GlobalError::MsgType, char const*, __builtin_va_list&)@Base" 0.8.0 + (arch=i386 hurd-i386 kfreebsd-i386|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&)@Base" 0.8.0 + (arch=armel armhf|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&)@Base" 0.8.0 + (arch=alpha|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag&)@Base" 0.8.0 + (arch=amd64 kfreebsd-amd64 powerpc powerpcspe s390|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1])@Base" 0.8.0 + (arch=hppa ia64 mipsel sparc sparc64|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&)@Base" 0.8.0 + (arch=sh4|c++)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __builtin_va_list&)@Base" 0.8.0 +### architecture specific: size_t + (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mipsel powerpc powerpcspe sh4 sparc|c++)"_strtabexpand(char*, unsigned int)@Base" 0.8.0 + (arch=alpha amd64 ia64 kfreebsd-amd64 s390 sparc64|c++)"_strtabexpand(char*, unsigned long)@Base" 0.8.0 + (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mipsel powerpc powerpcspe sh4 sparc|c++)"indexRecords::parseSumData(char const*&, char const*, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, unsigned int&)@Base" 0.8.0 + (arch=alpha amd64 ia64 kfreebsd-amd64 s390 sparc64|c++)"indexRecords::parseSumData(char const*&, char const*, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, unsigned long&)@Base" 0.8.0 ### try to ignore std:: template instances (c++|regex|optional=std)"^(void |)std::[^ ]+<.+ >::(_|~).+\(.*\)@Base$" 0.8.0 (c++|regex|optional=std)"^std::[^ ]+<.+ >::(append|insert|reserve|operator[^ ]+)\(.*\)@Base$" 0.8.0 diff --git a/debian/changelog b/debian/changelog index 6081841f4..c9f1221f4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,7 +6,11 @@ apt (0.8.11.1) unstable; urgency=low which lets gpg fail if it adds/remove keys from trusted.gpg as it tries to open the (maybe) not existent /root/.gnupg - -- David Kalnischkies Tue, 08 Feb 2011 22:22:33 +0100 + [ David Kalnischkies ] + * debian/apt.symbols: + - add more arch dependent symbols + + -- David Kalnischkies Tue, 08 Feb 2011 22:33:13 +0100 apt (0.8.11) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From a34008bcc2a4c8c9ec431d36e8c04a7e1d96967d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Feb 2011 18:30:16 +0100 Subject: debian/apt-utils.symbols: remove gcc-4.4 specific symbol to make it build again --- debian/apt-utils.symbols | 2 -- 1 file changed, 2 deletions(-) (limited to 'debian') diff --git a/debian/apt-utils.symbols b/debian/apt-utils.symbols index 7dfb000da..dc3d946e2 100644 --- a/debian/apt-utils.symbols +++ b/debian/apt-utils.symbols @@ -110,8 +110,6 @@ libapt-inst.so.1.2 libapt-inst1.2 (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 -### gcc-4.4 specific - (c++|optional=std)std::basic_string, std::allocator >& std::basic_string, std::allocator >::_M_replace_dispatch(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, unsigned char*, unsigned char*, std::__false_type)@Base" 0.8.0 ### try to ignore std:: template instances (c++|optional=std)"std::basic_string, std::allocator >& std::basic_string, std::allocator >::append(unsigned char*, unsigned char*)@Base" 0.8.0 (c++|regex|optional=std)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0 -- cgit v1.2.3-70-g09d2 From fe2655b827261344c909e170f457bc5d484e8f40 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Feb 2011 19:35:44 +0100 Subject: debian/apt-utils.symbols: fix symbol instead of removing it --- debian/apt-utils.symbols | 2 ++ 1 file changed, 2 insertions(+) (limited to 'debian') diff --git a/debian/apt-utils.symbols b/debian/apt-utils.symbols index dc3d946e2..2f57eb10a 100644 --- a/debian/apt-utils.symbols +++ b/debian/apt-utils.symbols @@ -110,6 +110,8 @@ libapt-inst.so.1.2 libapt-inst1.2 (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 +### gcc-4.4 specific + (c++|optional=std)"std::basic_string, std::allocator >& std::basic_string, std::allocator >::_M_replace_dispatch(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, unsigned char*, unsigned char*, std::__false_type)@Base" 0.8.0 ### try to ignore std:: template instances (c++|optional=std)"std::basic_string, std::allocator >& std::basic_string, std::allocator >::append(unsigned char*, unsigned char*)@Base" 0.8.0 (c++|regex|optional=std)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0 -- cgit v1.2.3-70-g09d2 From 8a80bdea0fcead1edbb5bf58d92f36b875f15713 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Feb 2011 19:39:57 +0100 Subject: releasing version 0.8.11.1 --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index c9f1221f4..deb4d3161 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,7 +10,7 @@ apt (0.8.11.1) unstable; urgency=low * debian/apt.symbols: - add more arch dependent symbols - -- David Kalnischkies Tue, 08 Feb 2011 22:33:13 +0100 + -- Michael Vogt Wed, 09 Feb 2011 17:49:59 +0100 apt (0.8.11) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From ef86a8a4204ad579f1ab80f728a22b2ad0d34266 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 9 Feb 2011 22:57:51 +0100 Subject: * cmdline/apt-get.cc: - add --install-suggests option (Closes: #473089) --- cmdline/apt-get.cc | 1 + debian/changelog | 8 ++++++++ doc/apt-get.8.xml | 5 +++++ 3 files changed, 14 insertions(+) (limited to 'debian') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 878313212..1211a3411 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -3195,6 +3195,7 @@ int main(int argc,const char *argv[]) /*{{{*/ {0,"auto-remove","APT::Get::AutomaticRemove",0}, {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0}, {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean}, + {0,"install-suggests","APT::Install-Suggests",CommandLine::Boolean}, {0,"fix-policy","APT::Get::Fix-Policy-Broken",0}, {'c',"config-file",0,CommandLine::ConfigFile}, {'o',"option",0,CommandLine::ArbItem}, diff --git a/debian/changelog b/debian/changelog index deb4d3161..bb2e9d63c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.12) unstable; urgency=low + + [ David Kalnischkies ] + * cmdline/apt-get.cc: + - add --install-suggests option (Closes: #473089) + + -- David Kalnischkies Wed, 09 Feb 2011 22:56:27 +0100 + apt (0.8.11.1) unstable; urgency=low [ Stefan Lippers-Hollmann ] diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index 1688c9136..18f26e569 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -337,6 +337,11 @@ Configuration Item: APT::Install-Recommends. + + Consider suggested packages as a dependency for installing. + Configuration Item: APT::Install-Suggests. + + Download only; package files are only retrieved, not unpacked or installed. Configuration Item: APT::Get::Download-Only. -- cgit v1.2.3-70-g09d2 From fdbe726599ae4dd3d808858356cf3464de94f1e4 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 11 Feb 2011 17:47:50 +0100 Subject: * apt-pkg/depcache.cc: - mark a package which was requested to be installed on commandline always as manual regardless if it is already marked or not as the marker could be lost later by the removal of rdepends (Closes: #612557) --- apt-pkg/depcache.cc | 5 +- debian/changelog | 6 ++- test/integration/status-bug-612557-garbage-upgrade | 34 ++++++++++++ test/integration/test-bug-612557-garbage-upgrade | 60 ++++++++++++++++++++++ 4 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 test/integration/status-bug-612557-garbage-upgrade create mode 100755 test/integration/test-bug-612557-garbage-upgrade (limited to 'debian') diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 7c09d3a38..0c5b77732 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1257,9 +1257,8 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, if(FromUser) { - // Set it to manual if it's a new install or cancelling the - // removal of a garbage package. - if(P.Status == 2 || (!Pkg.CurrentVer().end() && !P.Marked)) + // Set it to manual if it's a new install or already installed + if(P.Status == 2 || Pkg->CurrentVer != 0) P.Flags &= ~Flag::Auto; } else diff --git a/debian/changelog b/debian/changelog index bb2e9d63c..2da3afa38 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,8 +3,12 @@ apt (0.8.12) unstable; urgency=low [ David Kalnischkies ] * cmdline/apt-get.cc: - add --install-suggests option (Closes: #473089) + * apt-pkg/depcache.cc: + - mark a package which was requested to be installed on commandline + always as manual regardless if it is already marked or not as the + marker could be lost later by the removal of rdepends (Closes: #612557) - -- David Kalnischkies Wed, 09 Feb 2011 22:56:27 +0100 + -- David Kalnischkies Fri, 11 Feb 2011 17:44:49 +0100 apt (0.8.11.1) unstable; urgency=low diff --git a/test/integration/status-bug-612557-garbage-upgrade b/test/integration/status-bug-612557-garbage-upgrade new file mode 100644 index 000000000..7403d8cca --- /dev/null +++ b/test/integration/status-bug-612557-garbage-upgrade @@ -0,0 +1,34 @@ +Package: python-uno +Status: install ok installed +Priority: optional +Section: python +Installed-Size: 2032 +Maintainer: Debian OpenOffice Team +Architecture: i386 +Source: openoffice.org +Version: 1:3.2.1-11+squeeze2 +Description: Python-UNO bridge + +Package: openoffice.org-common +Status: install ok installed +Priority: optional +Section: editors +Installed-Size: 48356 +Maintainer: Debian OpenOffice Team +Architecture: all +Source: openoffice.org +Version: 1:3.2.1-11+squeeze2 +Description: office productivity suite -- arch-independent files + +Package: openoffice.org-emailmerge +Status: install ok installed +Priority: optional +Section: editors +Installed-Size: 1652 +Maintainer: Debian OpenOffice Team +Architecture: all +Source: openoffice.org +Version: 1:3.2.1-11+squeeze2 +Replaces: python-uno (<< 1:2.4.1-5) +Pre-Depends: python-uno, openoffice.org-common +Description: office productivity suite -- email mail merge diff --git a/test/integration/test-bug-612557-garbage-upgrade b/test/integration/test-bug-612557-garbage-upgrade new file mode 100755 index 000000000..e2ffe615f --- /dev/null +++ b/test/integration/test-bug-612557-garbage-upgrade @@ -0,0 +1,60 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'unrelated' 'all' '1:3.3.0-2' +insertpackage 'unstable' 'python-uno' 'all' '1:3.3.0-2' 'Depends: libreoffice-common' +insertpackage 'unstable' 'libreoffice-common' 'all' '1:3.3.0-2' 'Conflicts: openoffice.org-common' + +setupaptarchive + +touch rootdir/var/lib/apt/extended_states +aptmark markauto python-uno ure uno-libs3 openoffice.org-common openoffice.org-style-galaxy +#aptmark unmarkauto openoffice.org-emailmerge +testmarkedauto python-uno ure uno-libs3 openoffice.org-common openoffice.org-style-galaxy + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following extra packages will be installed: + libreoffice-common +The following packages will be REMOVED: + openoffice.org-common openoffice.org-emailmerge +The following NEW packages will be installed: + libreoffice-common +The following packages will be upgraded: + python-uno +1 upgraded, 1 newly installed, 2 to remove and 0 not upgraded. +After this operation, 53.2 MB disk space will be freed. +E: Trivial Only specified but this is not a trivial operation.' aptget --trivial-only install python-uno + +aptmark markauto openoffice.org-emailmerge +testmarkedauto python-uno ure uno-libs3 openoffice.org-common openoffice.org-style-galaxy openoffice.org-emailmerge + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following extra packages will be installed: + libreoffice-common +The following packages will be REMOVED: + openoffice.org-common openoffice.org-emailmerge +The following NEW packages will be installed: + libreoffice-common +The following packages will be upgraded: + python-uno +1 upgraded, 1 newly installed, 2 to remove and 0 not upgraded. +After this operation, 53.2 MB disk space will be freed. +E: Trivial Only specified but this is not a trivial operation.' aptget --trivial-only install python-uno + +testequal 'Reading package lists... +Building dependency tree... +Reading state information... +The following packages will be REMOVED: + openoffice.org-common openoffice.org-emailmerge python-uno +0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. +After this operation, 53.3 MB disk space will be freed. +E: Trivial Only specified but this is not a trivial operation.' aptget autoremove --trivial-only -- cgit v1.2.3-70-g09d2 From 37254316e0b1c3b0c067cf1962d0882d70a38c12 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 12 Feb 2011 13:43:32 +0100 Subject: * methods/rred.cc: - read patch into MMap only if we work on uncompressed patches --- debian/changelog | 4 +++- methods/rred.cc | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 2da3afa38..4f1a8afa4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,8 +7,10 @@ apt (0.8.12) unstable; urgency=low - mark a package which was requested to be installed on commandline always as manual regardless if it is already marked or not as the marker could be lost later by the removal of rdepends (Closes: #612557) + * methods/rred.cc: + - read patch into MMap only if we work on uncompressed patches - -- David Kalnischkies Fri, 11 Feb 2011 17:44:49 +0100 + -- David Kalnischkies Sat, 12 Feb 2011 13:43:11 +0100 apt (0.8.11.1) unstable; urgency=low diff --git a/methods/rred.cc b/methods/rred.cc index 1a18a381c..80cd14986 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -252,13 +252,15 @@ struct EdCommand { /*{{{*/ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ FileFd &out_file, Hashes *hash) const { #ifdef _POSIX_MAPPED_FILES - MMap ed_cmds(Patch, MMap::ReadOnly); + MMap ed_cmds(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; - } + } else + ed_cmds = MMap(Patch, MMap::ReadOnly); + MMap in_file(From, MMap::ReadOnly); if (ed_cmds.Size() == 0 || in_file.Size() == 0) -- cgit v1.2.3-70-g09d2 From 26b37f959350860a0c1d5ef9651efa0bf3640cb5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 12 Feb 2011 19:40:47 +0100 Subject: * apt-pkg/contrib/mmap.cc: - do not try to free the mapping if its is unset --- apt-pkg/contrib/mmap.cc | 2 ++ debian/changelog | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc index 69fb61fca..4978446d2 100644 --- a/apt-pkg/contrib/mmap.cc +++ b/apt-pkg/contrib/mmap.cc @@ -266,6 +266,8 @@ DynamicMMap::~DynamicMMap() { if (Fd == 0) { + if (Base == 0) + return; #ifdef _POSIX_MAPPED_FILES munmap(Base, WorkSpace); #else diff --git a/debian/changelog b/debian/changelog index 4f1a8afa4..f8d29abde 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,8 +9,10 @@ apt (0.8.12) unstable; urgency=low marker could be lost later by the removal of rdepends (Closes: #612557) * methods/rred.cc: - read patch into MMap only if we work on uncompressed patches + * apt-pkg/contrib/mmap.cc: + - do not try to free the mapping if its is unset - -- David Kalnischkies Sat, 12 Feb 2011 13:43:11 +0100 + -- David Kalnischkies Sat, 12 Feb 2011 19:39:25 +0100 apt (0.8.11.1) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 005428387832e79e314bb8f2605f7e6c69708d14 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 13 Feb 2011 11:37:22 +0100 Subject: update size of dynamic MMap as we write in from the outside --- apt-pkg/contrib/mmap.h | 1 + debian/changelog | 3 ++- methods/rred.cc | 11 ++++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) (limited to 'debian') diff --git a/apt-pkg/contrib/mmap.h b/apt-pkg/contrib/mmap.h index 5ca951204..e9baa9339 100644 --- a/apt-pkg/contrib/mmap.h +++ b/apt-pkg/contrib/mmap.h @@ -61,6 +61,7 @@ class MMap inline operator void *() {return Base;}; inline void *Data() {return Base;}; inline unsigned long Size() {return iSize;}; + inline void AddSize(unsigned long const size) {iSize += size;}; // File manipulators bool Sync(); diff --git a/debian/changelog b/debian/changelog index f8d29abde..86d31d856 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,10 +9,11 @@ apt (0.8.12) unstable; urgency=low marker could be lost later by the removal of rdepends (Closes: #612557) * methods/rred.cc: - read patch into MMap only if we work on uncompressed patches + - update size of dynamic MMap as we write in from the outside * apt-pkg/contrib/mmap.cc: - do not try to free the mapping if its is unset - -- David Kalnischkies Sat, 12 Feb 2011 19:39:25 +0100 + -- David Kalnischkies Sun, 13 Feb 2011 11:36:11 +0100 apt (0.8.11.1) unstable; urgency=low diff --git a/methods/rred.cc b/methods/rred.cc index 80cd14986..9ad0e4464 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -255,9 +255,14 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ MMap ed_cmds(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; + DynamicMMap* dyn = new DynamicMMap(0, mapSize, 0); + if (dyn->Data() == 0) { + delete dyn; + return MMAP_FAILED; + } + dyn->AddSize(mapSize); + gzread(Patch.gzFd(), dyn->Data(), mapSize); + ed_cmds = *dyn; } else ed_cmds = MMap(Patch, MMap::ReadOnly); -- cgit v1.2.3-70-g09d2 From f330c0f347619f72766069acdc24616ec5fe7147 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 13 Feb 2011 13:06:03 +0100 Subject: * apt-pkg/contrib/fileutl.cc: - reorder the loaded filesize bytes for big endian (Closes: #612986) Thanks to Jörg Sommer for the detailed analyse! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apt-pkg/contrib/fileutl.cc | 7 ++++++- debian/changelog | 7 +++++-- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'debian') diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 52f517ee0..6a621e2a9 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -962,9 +962,14 @@ unsigned long FileFd::Size() off_t orig_pos = lseek(iFd, 0, SEEK_CUR); if (lseek(iFd, -4, SEEK_END) < 0) return _error->Errno("lseek","Unable to seek to end of gzipped file"); + size = 0L; if (read(iFd, &size, 4) != 4) return _error->Errno("read","Unable to read original size of gzipped file"); - size &= 0xFFFFFFFF; + +#ifdef WORDS_BIGENDIAN + unsigned char const * const p = (unsigned char *) &size; + size = (p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]; +#endif if (lseek(iFd, orig_pos, SEEK_SET) < 0) return _error->Errno("lseek","Unable to seek in gzipped file"); diff --git a/debian/changelog b/debian/changelog index 86d31d856..5efc99233 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.8.12) unstable; urgency=low +apt (0.8.11.2) unstable; urgency=low [ David Kalnischkies ] * cmdline/apt-get.cc: @@ -12,8 +12,11 @@ apt (0.8.12) unstable; urgency=low - update size of dynamic MMap as we write in from the outside * apt-pkg/contrib/mmap.cc: - do not try to free the mapping if its is unset + * apt-pkg/contrib/fileutl.cc: + - reorder the loaded filesize bytes for big endian (Closes: #612986) + Thanks to Jörg Sommer for the detailed analyse! - -- David Kalnischkies Sun, 13 Feb 2011 11:36:11 +0100 + -- David Kalnischkies Sun, 13 Feb 2011 12:15:59 +0100 apt (0.8.11.1) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 94244f75f8280c9b4018736d503d17455c284b2d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 14 Feb 2011 14:04:26 +0100 Subject: releasing version 0.8.11.2 --- debian/changelog | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index ff0c94119..8e05f1220 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.8.12) UNRELEASED; urgency=low +apt (0.8.11.2) unstable; urgency=low [ Michael Vogt ] * merged lp:~evfool/apt/fix641673: @@ -6,11 +6,7 @@ apt (0.8.12) UNRELEASED; urgency=low mistake reported in bug LP: #641673, thanks to Robert Roth * merged lp:~evfool/apt/fix418552: - Grammar fix for bug LP: #418552, thanks to Robert Roth - - -- Michael Vogt Thu, 10 Feb 2011 17:51:16 +0100 - -apt (0.8.11.2) unstable; urgency=low - + [ David Kalnischkies ] * cmdline/apt-get.cc: - add --install-suggests option (Closes: #473089) @@ -27,7 +23,7 @@ apt (0.8.11.2) unstable; urgency=low - reorder the loaded filesize bytes for big endian (Closes: #612986) Thanks to Jörg Sommer for the detailed analyse! - -- David Kalnischkies Sun, 13 Feb 2011 12:15:59 +0100 + -- Michael Vogt Mon, 14 Feb 2011 12:07:18 +0100 apt (0.8.11.1) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 2a79d5b560398427f5538865099b6777128d8bed Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 14 Feb 2011 17:03:35 +0100 Subject: * apt-pkg/contrib/fileutl.cc: - really detect bigendian machines by including config.h, so we can really (Closes: #612986) * apt-pkg/contrib/mmap.cc: - Base has as 'valid' failure states 0 and -1 so add a simple validData method to check for failure states --- apt-pkg/contrib/fileutl.cc | 3 ++- apt-pkg/contrib/mmap.cc | 4 ++-- apt-pkg/contrib/mmap.h | 1 + debian/changelog | 12 ++++++++++++ methods/rred.cc | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) (limited to 'debian') diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 24e3f08d9..767951daf 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -43,7 +43,8 @@ #include #include -#ifndef WORDS_BIGENDIAN +#include +#ifdef WORDS_BIGENDIAN #include #endif /*}}}*/ diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc index 4978446d2..9945b1606 100644 --- a/apt-pkg/contrib/mmap.cc +++ b/apt-pkg/contrib/mmap.cc @@ -106,7 +106,7 @@ bool MMap::Map(FileFd &Fd) /* */ bool MMap::Close(bool DoSync) { - if ((Flags & UnMapped) == UnMapped || Base == 0 || iSize == 0) + if ((Flags & UnMapped) == UnMapped || validData() == false || iSize == 0) return true; if (DoSync == true) @@ -266,7 +266,7 @@ DynamicMMap::~DynamicMMap() { if (Fd == 0) { - if (Base == 0) + if (validData() == false) return; #ifdef _POSIX_MAPPED_FILES munmap(Base, WorkSpace); diff --git a/apt-pkg/contrib/mmap.h b/apt-pkg/contrib/mmap.h index e9baa9339..2bf2c1540 100644 --- a/apt-pkg/contrib/mmap.h +++ b/apt-pkg/contrib/mmap.h @@ -62,6 +62,7 @@ class MMap inline void *Data() {return Base;}; inline unsigned long Size() {return iSize;}; inline void AddSize(unsigned long const size) {iSize += size;}; + inline bool validData() const { return Base != (void *)-1 && Base != 0; }; // File manipulators bool Sync(); diff --git a/debian/changelog b/debian/changelog index 8e05f1220..99eb47858 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +apt (0.8.11.3) UNRELEASED; urgency=low + + [ David Kalnischkies ] + * apt-pkg/contrib/fileutl.cc: + - really detect bigendian machines by including config.h, + so we can really (Closes: #612986) + * apt-pkg/contrib/mmap.cc: + - Base has as 'valid' failure states 0 and -1 so add a simple + validData method to check for failure states + + -- David Kalnischkies Mon, 14 Feb 2011 16:58:03 +0100 + apt (0.8.11.2) unstable; urgency=low [ Michael Vogt ] diff --git a/methods/rred.cc b/methods/rred.cc index 9ad0e4464..849973e1a 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -256,7 +256,7 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ if (Patch.gzFd() != NULL) { unsigned long mapSize = Patch.Size(); DynamicMMap* dyn = new DynamicMMap(0, mapSize, 0); - if (dyn->Data() == 0) { + if (dyn->validData() == false) { delete dyn; return MMAP_FAILED; } -- cgit v1.2.3-70-g09d2 From 1dfaf0bf650a78ddaf991bf3ad597fa4d101041f Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 14 Feb 2011 21:55:15 +0100 Subject: releasing version 0.8.11.3 --- debian/changelog | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 99eb47858..0c98f4581 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,5 @@ -apt (0.8.11.3) UNRELEASED; urgency=low +apt (0.8.11.3) unstable; urgency=low - [ David Kalnischkies ] * apt-pkg/contrib/fileutl.cc: - really detect bigendian machines by including config.h, so we can really (Closes: #612986) -- cgit v1.2.3-70-g09d2 From 38f297033faa099a0705c8f66964d8c5d7927c8d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 15 Feb 2011 14:04:06 +0100 Subject: * apt-pkg/contrib/error.cc: - ensure that va_list is not invalid in second try --- apt-pkg/contrib/error.cc | 169 ++++++++++++++++++---------------------- apt-pkg/contrib/error.h | 5 +- debian/changelog | 8 ++ test/libapt/globalerror_test.cc | 32 ++++++++ 4 files changed, 120 insertions(+), 94 deletions(-) (limited to 'debian') diff --git a/apt-pkg/contrib/error.cc b/apt-pkg/contrib/error.cc index 7dad11689..fe50e606b 100644 --- a/apt-pkg/contrib/error.cc +++ b/apt-pkg/contrib/error.cc @@ -58,124 +58,109 @@ // GlobalError::GlobalError - Constructor /*{{{*/ GlobalError::GlobalError() : PendingFlag(false) {} /*}}}*/ -// GlobalError::FatalE - Get part of the error string from errno /*{{{*/ -bool GlobalError::FatalE(const char *Function,const char *Description,...) { - va_list args; - va_start(args,Description); - return InsertErrno(FATAL, Function, Description, args); -} - /*}}}*/ -// GlobalError::Errno - Get part of the error string from errno /*{{{*/ -bool GlobalError::Errno(const char *Function,const char *Description,...) { - va_list args; - va_start(args,Description); - return InsertErrno(ERROR, Function, Description, args); -} - /*}}}*/ -// GlobalError::WarningE - Get part of the warning string from errno /*{{{*/ -bool GlobalError::WarningE(const char *Function,const char *Description,...) { - va_list args; - va_start(args,Description); - return InsertErrno(WARNING, Function, Description, args); -} - /*}}}*/ -// GlobalError::NoticeE - Get part of the notice string from errno /*{{{*/ -bool GlobalError::NoticeE(const char *Function,const char *Description,...) { - va_list args; - va_start(args,Description); - return InsertErrno(NOTICE, Function, Description, args); -} - /*}}}*/ -// GlobalError::DebugE - Get part of the debug string from errno /*{{{*/ -bool GlobalError::DebugE(const char *Function,const char *Description,...) { - va_list args; - va_start(args,Description); - return InsertErrno(DEBUG, Function, Description, args); +// GlobalError::FatalE, Errno, WarningE, NoticeE and DebugE - Add to the list/*{{{*/ +#define GEMessage(NAME, TYPE) \ +bool GlobalError::NAME (const char *Function, const char *Description,...) { \ + va_list args; \ + size_t msgSize = 400; \ + int const errsv = errno; \ + while (true) { \ + va_start(args,Description); \ + if (InsertErrno(TYPE, Function, Description, args, errsv, msgSize) == false) \ + break; \ + va_end(args); \ + } \ + return false; \ } +GEMessage(FatalE, FATAL) +GEMessage(Errno, ERROR) +GEMessage(WarningE, WARNING) +GEMessage(NoticeE, NOTICE) +GEMessage(DebugE, DEBUG) +#undef GEMessage /*}}}*/ // GlobalError::InsertErrno - Get part of the errortype string from errno/*{{{*/ bool GlobalError::InsertErrno(MsgType const &type, const char *Function, const char *Description,...) { va_list args; - va_start(args,Description); - return InsertErrno(type, Function, Description, args); + size_t msgSize = 400; + int const errsv = errno; + while (true) { + va_start(args,Description); + if (InsertErrno(type, Function, Description, args, errsv, msgSize) == false) + break; + va_end(args); + } + return false; } /*}}}*/ // GlobalError::InsertErrno - formats an error message with the errno /*{{{*/ bool GlobalError::InsertErrno(MsgType type, const char* Function, - const char* Description, va_list &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)); + const char* Description, va_list &args, + int const errsv, size_t &msgSize) { + char* S = (char*) malloc(msgSize); + int const n = snprintf(S, msgSize, "%s - %s (%i: %s)", Description, + Function, errsv, strerror(errsv)); + if (n > -1 && ((unsigned int) n) < msgSize); + else { + if (n > -1) + msgSize = n + 1; + else + msgSize *= 2; + return true; } - bool const geins = Insert(type, S, args); + bool const geins = Insert(type, S, args, msgSize); free(S); return geins; } /*}}}*/ -// GlobalError::Fatal - Add a fatal error to the list /*{{{*/ -bool GlobalError::Fatal(const char *Description,...) { - va_list args; - va_start(args,Description); - return Insert(FATAL, Description, args); -} - /*}}}*/ -// GlobalError::Error - Add an error to the list /*{{{*/ -bool GlobalError::Error(const char *Description,...) { - va_list args; - va_start(args,Description); - return Insert(ERROR, Description, args); -} - /*}}}*/ -// GlobalError::Warning - Add a warning to the list /*{{{*/ -bool GlobalError::Warning(const char *Description,...) { - va_list args; - va_start(args,Description); - return Insert(WARNING, Description, args); -} - /*}}}*/ -// GlobalError::Notice - Add a notice to the list /*{{{*/ -bool GlobalError::Notice(const char *Description,...) -{ - va_list args; - va_start(args,Description); - return Insert(NOTICE, Description, args); -} - /*}}}*/ -// GlobalError::Debug - Add a debug to the list /*{{{*/ -bool GlobalError::Debug(const char *Description,...) -{ - va_list args; - va_start(args,Description); - return Insert(DEBUG, Description, args); +// GlobalError::Fatal, Error, Warning, Notice and Debug - Add to the list/*{{{*/ +#define GEMessage(NAME, TYPE) \ +bool GlobalError::NAME (const char *Description,...) { \ + va_list args; \ + size_t msgSize = 400; \ + while (true) { \ + va_start(args,Description); \ + if (Insert(TYPE, Description, args, msgSize) == false) \ + break; \ + va_end(args); \ + } \ + return false; \ } +GEMessage(Fatal, FATAL) +GEMessage(Error, ERROR) +GEMessage(Warning, WARNING) +GEMessage(Notice, NOTICE) +GEMessage(Debug, DEBUG) +#undef GEMessage /*}}}*/ // GlobalError::Insert - Add a errotype message to the list /*{{{*/ bool GlobalError::Insert(MsgType const &type, const char *Description,...) { va_list args; - va_start(args,Description); - return Insert(type, Description, args); + size_t msgSize = 400; + while (true) { + va_start(args,Description); + if (Insert(type, Description, args, msgSize) == false) + break; + va_end(args); + } + return false; } /*}}}*/ // GlobalError::Insert - Insert a new item at the end /*{{{*/ bool GlobalError::Insert(MsgType type, const char* Description, - va_list &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); + va_list &args, size_t &msgSize) { + char* S = (char*) malloc(msgSize); + int const n = vsnprintf(S, msgSize, Description, args); + if (n > -1 && ((unsigned int) n) < msgSize); + else { + if (n > -1) + msgSize = n + 1; + else + msgSize *= 2; + return true; } Item const m(S, type); diff --git a/apt-pkg/contrib/error.h b/apt-pkg/contrib/error.h index ae756dbc4..21c51c1be 100644 --- a/apt-pkg/contrib/error.h +++ b/apt-pkg/contrib/error.h @@ -307,9 +307,10 @@ private: /*{{{*/ std::list Stacks; bool InsertErrno(MsgType type, const char* Function, - const char* Description, va_list &args); + const char* Description, va_list &args, + int const errsv, size_t &msgSize); bool Insert(MsgType type, const char* Description, - va_list &args); + va_list &args, size_t &msgSize); /*}}}*/ }; /*}}}*/ diff --git a/debian/changelog b/debian/changelog index 0c98f4581..58e2c7e6d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.11.4) UNRELEASED; urgency=low + + [ David Kalnischkies ] + * apt-pkg/contrib/error.cc: + - ensure that va_list is not invalid in second try + + -- David Kalnischkies Tue, 15 Feb 2011 13:09:57 +0100 + apt (0.8.11.3) unstable; urgency=low * apt-pkg/contrib/fileutl.cc: diff --git a/test/libapt/globalerror_test.cc b/test/libapt/globalerror_test.cc index b2752255f..7d933f5a8 100644 --- a/test/libapt/globalerror_test.cc +++ b/test/libapt/globalerror_test.cc @@ -2,6 +2,7 @@ #include "assert.h" #include +#include int main(int argc,char *argv[]) { @@ -73,5 +74,36 @@ int main(int argc,char *argv[]) equals(text, "A Warning"); equals(_error->empty(), true); + errno = 0; + equals(_error->Errno("errno", "%s horrible %s %d times", "Something", "happend", 2), false); + equals(_error->empty(), false); + equals(_error->PendingError(), true); + equals(_error->PopMessage(text), true); + equals(_error->PendingError(), false); + equals(text, "Something horrible happend 2 times - errno (0: Success)"); + equals(_error->empty(), true); + + std::string longText; + for (size_t i = 0; i < 500; ++i) + longText.append("a"); + equals(_error->Error("%s horrible %s %d times", longText.c_str(), "happend", 2), false); + equals(_error->PopMessage(text), true); + equals(text, std::string(longText).append(" horrible happend 2 times")); + + equals(_error->Errno("errno", "%s horrible %s %d times", longText.c_str(), "happend", 2), false); + equals(_error->PopMessage(text), true); + equals(text, std::string(longText).append(" horrible happend 2 times - errno (0: Success)")); + + equals(_error->Warning("Репозиторий не обновлён и будут %d %s", 4, "test"), false); + equals(_error->PopMessage(text), false); + equals(text, "Репозиторий не обновлён и будут 4 test"); + + longText.clear(); + for (size_t i = 0; i < 50; ++i) + longText.append("РезийбёбAZ"); + equals(_error->Warning(longText.c_str()), false); + equals(_error->PopMessage(text), false); + equals(text, longText); + return 0; } -- cgit v1.2.3-70-g09d2 From c8b9897314d24f97047b6a86573b5e9063c7c4d3 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 15 Feb 2011 20:47:04 +0100 Subject: * cmdline/apt-get.cc: - don't remove new dependencies of garbage packages (Closes: #613420) --- cmdline/apt-get.cc | 43 ++++++++++++++++++++++ debian/changelog | 4 +- .../status-bug-613420-new-garbage-dependency | 22 +++++++++++ .../test-bug-613420-new-garbage-dependency | 37 +++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 test/integration/status-bug-613420-new-garbage-dependency create mode 100755 test/integration/test-bug-613420-new-garbage-dependency (limited to 'debian') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 1211a3411..bc2f71c18 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1659,6 +1659,7 @@ bool DoAutomaticRemove(CacheFile &Cache) string autoremovelist, autoremoveversions; unsigned long autoRemoveCount = 0; + APT::PackageSet tooMuch; // look over the cache to see what can be removed for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg) { @@ -1681,7 +1682,10 @@ bool DoAutomaticRemove(CacheFile &Cache) // 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); + tooMuch.insert(Pkg); + } // only show stuff in the list that is not yet marked for removal else if(hideAutoRemove == false && Cache[Pkg].Delete() == false) { @@ -1697,6 +1701,45 @@ bool DoAutomaticRemove(CacheFile &Cache) } } + // we could have removed a new dependency of a garbage package, + // so check if a reverse depends is broken and if so install it again. + if (tooMuch.empty() == false && Cache->BrokenCount() != 0) + { + bool Changed; + do { + Changed = false; + for (APT::PackageSet::const_iterator P = tooMuch.begin(); + P != tooMuch.end() && Changed == false; ++P) + { + for (pkgCache::DepIterator R = P.RevDependsList(); + R.end() == false; ++R) + { + if (R->Type != pkgCache::Dep::Depends && + R->Type != pkgCache::Dep::PreDepends) + continue; + pkgCache::PkgIterator N = R.ParentPkg(); + if (N.end() == true || N->CurrentVer == 0) + continue; + if (Debug == true) + std::clog << "Save " << P << " as another installed garbage package depends on it" << std::endl; + Cache->MarkInstall(P, false); + if(hideAutoRemove == false) + { + ++autoRemoveCount; + if (smallList == false) + { + autoremovelist += P.FullName(true) + " "; + autoremoveversions += string(Cache[P].CandVersion) + "\n"; + } + } + tooMuch.erase(P); + Changed = true; + break; + } + } + } while (Changed == true); + } + // Now see if we had destroyed anything (if we had done anything) if (Cache->BrokenCount() != 0) { diff --git a/debian/changelog b/debian/changelog index 58e2c7e6d..b34a18f85 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,8 +3,10 @@ apt (0.8.11.4) UNRELEASED; urgency=low [ David Kalnischkies ] * apt-pkg/contrib/error.cc: - ensure that va_list is not invalid in second try + * cmdline/apt-get.cc: + - don't remove new dependencies of garbage packages (Closes: #613420) - -- David Kalnischkies Tue, 15 Feb 2011 13:09:57 +0100 + -- David Kalnischkies Tue, 15 Feb 2011 20:45:54 +0100 apt (0.8.11.3) unstable; urgency=low diff --git a/test/integration/status-bug-613420-new-garbage-dependency b/test/integration/status-bug-613420-new-garbage-dependency new file mode 100644 index 000000000..166a3930f --- /dev/null +++ b/test/integration/status-bug-613420-new-garbage-dependency @@ -0,0 +1,22 @@ +Package: openoffice.org-officebean +Status: install ok installed +Priority: optional +Section: java +Installed-Size: 1656 +Maintainer: Debian OpenOffice Team +Architecture: i386 +Source: openoffice.org +Version: 1:3.2.1-11+squeeze2 +Depends: openoffice.org-core (= 1:3.2.1-11+squeeze2) +Description: office productivity suite -- Java bean + +Package: openoffice.org-core +Status: install ok installed +Priority: optional +Section: editors +Installed-Size: 121724 +Maintainer: Debian OpenOffice Team +Architecture: i386 +Source: openoffice.org +Version: 1:3.2.1-11+squeeze2 +Description: office productivity suite -- arch-dependent files diff --git a/test/integration/test-bug-613420-new-garbage-dependency b/test/integration/test-bug-613420-new-garbage-dependency new file mode 100755 index 000000000..34cf38cbc --- /dev/null +++ b/test/integration/test-bug-613420-new-garbage-dependency @@ -0,0 +1,37 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture "i386" + +insertpackage 'unstable' 'libreoffice' 'all' '1:3.3.1~rc1-2' 'Depends: libreoffice-core' +insertpackage 'unstable' 'libreoffice-core' 'all' '1:3.3.1~rc1-2' 'Conflicts: openoffice.org-core' +insertpackage 'unstable' 'libreoffice-officebean' 'all' '1:3.3.1~rc1-2' 'Depends: libreoffice-core' +insertpackage 'unstable' 'openoffice.org-officebean' 'all' '1:3.3.0-5' 'Depends: libreoffice-officebean' + + +setupaptarchive + +touch rootdir/var/lib/apt/extended_states +aptmark markauto openoffice.org-officebean +testmarkedauto openoffice.org-officebean + +testequal "Reading package lists... +Building dependency tree... +Reading state information... +The following packages were automatically installed and are no longer required: + openoffice.org-officebean libreoffice-officebean +Use 'apt-get autoremove' to remove them. +The following extra packages will be installed: + libreoffice-core libreoffice-officebean openoffice.org-officebean +The following packages will be REMOVED: + openoffice.org-core +The following NEW packages will be installed: + libreoffice libreoffice-core libreoffice-officebean +The following packages will be upgraded: + openoffice.org-officebean +1 upgraded, 3 newly installed, 1 to remove and 0 not upgraded. +After this operation, 126 MB disk space will be freed. +E: Trivial Only specified but this is not a trivial operation." aptget install libreoffice --trivial-only -- cgit v1.2.3-70-g09d2 From ef2a7a613873766e5161a8e12c8056930fa98774 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 16 Feb 2011 15:04:02 +0100 Subject: releasing version 0.8.11.4 --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index f9f8c5064..1efb5d836 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.8.11.4) UNRELEASED; urgency=low +apt (0.8.11.4) unstable; urgency=low [ David Kalnischkies ] * apt-pkg/contrib/error.cc: -- cgit v1.2.3-70-g09d2 From de6a3945e1211f6edf2069e11f6fbe522d6776d5 Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Wed, 16 Feb 2011 19:55:28 +0100 Subject: * Add missing dot in French translation of manpages. Merci, Olivier Humbert. * French translation update * French manpages translation update --- debian/changelog | 9 + doc/po/fr.po | 151 +++++++---------- po/fr.po | 507 ++++++++++++++++++++++++++++++------------------------- 3 files changed, 353 insertions(+), 314 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 1efb5d836..fc44d386e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +apt (0.8.11.5) UNRELEASED; urgency=low + + * Add missing dot in French translation of manpages. Merci, Olivier + Humbert. + * French translation update + * French manpages translation update + + -- Christian Perrier Tue, 15 Feb 2011 18:26:08 +0100 + apt (0.8.11.4) unstable; urgency=low [ David Kalnischkies ] diff --git a/doc/po/fr.po b/doc/po/fr.po index 4d8ab1c1d..c31aa2e6a 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -5,12 +5,12 @@ # Translators: # Jérôme Marant, 2000. # Philippe Batailler, 2005. -# Christian Perrier , 2009, 2010. +# Christian Perrier , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2011-02-14 13:42+0100\n" -"PO-Revision-Date: 2010-10-30 09:41+0200\n" +"PO-Revision-Date: 2011-02-16 19:38+0100\n" "Last-Translator: Christian Perrier \n" "Language-Team: French \n" "Language: \n" @@ -646,15 +646,14 @@ msgid "" "\">\n" msgstr "" "\n" -#. The last update date +#. The last update date #. type: Content of: #: apt-cache.8.xml:16 -#, fuzzy #| msgid "" #| "&apt-author.jgunthorpe; &apt-author.team; &apt-email; &apt-product; " #| "14 February 2004" @@ -662,8 +661,8 @@ msgid "" "&apt-author.jgunthorpe; &apt-author.team; &apt-email; &apt-product; 04 " "February 2011" msgstr "" -"&apt-author.jgunthorpe; &apt-author.team; &apt-email; &apt-product; 14 " -"février 2004" +"&apt-author.jgunthorpe; &apt-author.team; &apt-email; &apt-product; 4 " +"février 2011" #. type: Content of: #: apt-cache.8.xml:25 apt-cache.8.xml:32 @@ -688,11 +687,10 @@ msgstr "APT" #. type: Content of: #: apt-cache.8.xml:33 msgid "query the APT cache" -msgstr "" +msgstr "recherche dans le cache d'APT" #. type: Content of: #: apt-cache.8.xml:39 -#, fuzzy #| msgid "" #| "apt-cache " #| " " @@ -739,22 +737,14 @@ msgstr "" "apt-cache " " add fichier gencaches " -"showpkg paquet showsrc paquet stats dump dumpavail unmet search regex show paquet depends " -"paquet rdepends paquet pkgnames gencaches " +"showpkg paquet showsrc paquet stats " +"dump dumpavail unmet search regex show paquet" +" depends " +"paquet rdepends paquet pkgnames prefix dotty paquet policy paquets madison paquets " +"choice=\"plain\" rep=\"repeat\">paquet policy paquets madison paquets " #. type: Content of: #: apt-cache.8.xml:64 apt-cdrom.8.xml:50 apt-config.8.xml:50 @@ -1880,7 +1870,7 @@ msgstr "" "<command>apt-cdrom</command> renvoie zéro après un déroulement normal, et le " "nombre décimal 100 en cas d'erreur." -#. The last update date +#. The last update date #. type: Content of: <refentry><refentryinfo> #: apt-config.8.xml:16 apt-extracttemplates.1.xml:16 apt-sortpkgs.1.xml:16 #: sources.list.5.xml:16 @@ -2105,7 +2095,7 @@ msgstr "" "<command>apt-extracttemplates</command> retourne zéro si tout se passe bien, " "le nombre 100 en cas d'erreur." -#. The last update date +#. The last update date #. type: Content of: <refentry><refentryinfo> #: apt-ftparchive.1.xml:16 msgid "" @@ -2231,8 +2221,7 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-ftparchive.1.xml:86 apt-ftparchive.1.xml:110 -msgid "" -"The option <option>--db</option> can be used to specify a binary caching DB." +msgid "The option <option>--db</option> can be used to specify a binary caching DB." msgstr "" "On peut se servir de l'option <option>--db</option> pour demander un cache " "binaire." @@ -2309,6 +2298,13 @@ msgid "" "literal>. It then writes to stdout a Release file containing a MD5, SHA1 " "and SHA256 digest for each file." msgstr "" +"La commande <literal>release</literal> crée un fichier Release à partir d'une arborescence. Elle recherche récursivement dans le répertoire indiqué des fichiers <filename>Packages</filename> et <filename>Sources<" +"/filename> non compressés et compressés avec <command>gzip</command>, <command>bzip2</command> ou " +"<command>lzma</command> ainsi que des fichiers <filename>Release</filename> et " +"<filename>md5sum.txt</filename> par défaut (<literal>APT::FTPArchive::" +"Release::Default-Patterns</literal>). Des motifs supplémentaires pour les noms de fichiers peuvent être ajoutés en les mentionnant dans <literal>APT::FTPArchive::Release::Patterns</" +"literal>. Le fichier Release est ensuite affiché et comporte des sommes de contrôle MD5, SHA1 " +"et SHA256 pour chaque fichier." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-ftparchive.1.xml:125 @@ -2389,10 +2385,8 @@ msgstr "" #. type: Content of: <refentry><refsect1><para> #: apt-ftparchive.1.xml:163 -msgid "" -"The generate configuration has 4 separate sections, each described below." -msgstr "" -"Ce fichier de configuration possède quatre sections, décrites ci-dessous." +msgid "The generate configuration has 4 separate sections, each described below." +msgstr "Ce fichier de configuration possède quatre sections, décrites ci-dessous." #. type: Content of: <refentry><refsect1><refsect2><title> #: apt-ftparchive.1.xml:165 @@ -3350,7 +3344,7 @@ msgstr "" "<command>apt-ftparchive</command> retourne zéro si tout se passe bien, le " "nombre 100 en cas d'erreur." -#. The last update date +#. The last update date #. type: Content of: <refentry><refentryinfo> #: apt-get.8.xml:16 msgid "" @@ -3368,8 +3362,7 @@ msgstr "apt-get" #. type: Content of: <refentry><refnamediv><refpurpose> #: apt-get.8.xml:33 msgid "APT package handling utility -- command-line interface" -msgstr "" -"Utilitaire APT pour la gestion des paquets -- interface en ligne de commande." +msgstr "Utilitaire APT pour la gestion des paquets -- interface en ligne de commande." #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> #: apt-get.8.xml:39 @@ -3812,14 +3805,14 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-get.8.xml:281 msgid "download" -msgstr "" +msgstr "download" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml:282 msgid "" "<literal>download</literal> will download the given binary package into the " "current directoy." -msgstr "" +msgstr "<literal>download</literal> télécharge le fichier binaire indiqué dans le répertoire courant." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml:288 @@ -3883,7 +3876,7 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-get.8.xml:312 msgid "changelog" -msgstr "" +msgstr "changelog" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml:313 @@ -3897,6 +3890,10 @@ msgid "" "installed. However, you can specify the same options as for the " "<option>install</option> command." msgstr "" +"<literal>changelog</literal> télécharge le journal des modifications d'un paquet et l'affiche avec <command>sensible-pager</command>. Le nom du serveur et le répertoire de base sont définis dans la variable <" +"literal>APT::Changelogs::Server</literal> (p. ex. <ulink>http://packages.debian.org/changelogs</ulink> pour " +"Debian ou <ulink>http://changelogs.ubuntu.com/changelogs</ulink> pour Ubuntu). Par défaut, c'est le journal des modifications de la version installée du paquet qui est affiché. Cependant, il est possible d'utiliser " +"les mêmes options que pour la commande <option>install</option>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-get.8.xml:335 @@ -3914,14 +3911,12 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-get.8.xml:340 -#, fuzzy #| msgid "<option>--no-suggests</option>" msgid "<option>--install-suggests</option>" -msgstr "<option>--no-suggests</option>" +msgstr "<option>--install-suggests</option>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-get.8.xml:341 -#, fuzzy #| msgid "" #| "Do not consider recommended packages as a dependency for installing. " #| "Configuration Item: <literal>APT::Install-Recommends</literal>." @@ -3929,8 +3924,8 @@ msgid "" "Consider suggested packages as a dependency for installing. Configuration " "Item: <literal>APT::Install-Suggests</literal>." msgstr "" -"Ne pas considérer les paquets recommandés comme des dépendances à installer. " -"Élément de configuration : <literal>APT::Install-Recommends</literal>." +"Considérer les paquets suggérés comme des dépendances à installer. " +"Élément de configuration : <literal>APT::Install-Suggests</literal>." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-get.8.xml:345 @@ -4758,10 +4753,8 @@ msgstr "Trousseau des clés fiables de l'archive Debian." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-key.8.xml:169 -msgid "" -"<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>" -msgstr "" -"<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>" +msgid "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>" +msgstr "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt-key.8.xml:170 @@ -4773,7 +4766,7 @@ msgstr "Trousseau des clés fiables supprimées de l'archive Debian." msgid "&apt-get;, &apt-secure;" msgstr "&apt-get;, &apt-secure;" -#. The last update date +#. The last update date #. type: Content of: <refentry><refentryinfo> #: apt-mark.8.xml:16 msgid "" @@ -4883,10 +4876,8 @@ msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-mark.8.xml:96 -msgid "" -"<option>-f=<filename><replaceable>FILENAME</replaceable></filename></option>" -msgstr "" -"<option>-f=<filename><replaceable>FICHIER</replaceable></filename></option>" +msgid "<option>-f=<filename><replaceable>FILENAME</replaceable></filename></option>" +msgstr "<option>-f=<filename><replaceable>FICHIER</replaceable></filename></option>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt-mark.8.xml:97 @@ -5161,7 +5152,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><para> #: apt-secure.8.xml:147 -#, fuzzy #| msgid "" #| "In order to add a new key you need to first download it (you should make " #| "sure you are using a trusted communication channel when retrieving it), " @@ -5181,7 +5171,7 @@ msgstr "" "utiliser un canal fiable pour ce téléchargement. Ensuite vous l'ajoutez avec " "la commande <command>apt-key</command> et vous lancez la commande " "<command>apt-get update</command> pour télécharger et vérifier le fichier " -"<filename>Release.gpg</filename> de l'archive que vous avez configurée." +"<filename>InRelease</filename> ou <filename>Release.gpg</filename> de l'archive que vous avez configurée." #. type: Content of: <refentry><refsect1><title> #: apt-secure.8.xml:156 @@ -5210,7 +5200,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> #: apt-secure.8.xml:168 -#, fuzzy #| msgid "" #| "<emphasis>Sign it</emphasis>. You can do this by running <command>gpg -" #| "abs -o Release.gpg Release</command>." @@ -5219,7 +5208,7 @@ msgid "" "clearsign -o InRelease Release</command> and <command>gpg -abs -o Release." "gpg Release</command>." msgstr "" -"<emphasis>le signer</emphasis>, avec la commande <command>gpg -abs -o " +"<emphasis>le signer</emphasis>, avec les commande <command>gpg -- clearsign -o InRelease Release</command> et <command>gpg -abs -o " "Release.gpg Release</command>." #. type: Content of: <refentry><refsect1><itemizedlist><listitem><para> @@ -5349,7 +5338,7 @@ msgstr "" "<command>apt-sortpkgs</command> retourne zéro si tout se passe bien ou 100 " "en cas d'erreur." -#. The last update date +#. The last update date #. type: Content of: <refentry><refentryinfo> #: apt.conf.5.xml:16 msgid "" @@ -5435,10 +5424,8 @@ msgstr "" #. type: Content of: <refentry><refsect1><orderedlist><listitem><para> #: apt.conf.5.xml:59 -msgid "" -"the main configuration file specified by <literal>Dir::Etc::main</literal>" -msgstr "" -"le fichier de configuration défini par <literal>Dir::Etc::Main</literal>" +msgid "the main configuration file specified by <literal>Dir::Etc::main</literal>" +msgstr "le fichier de configuration défini par <literal>Dir::Etc::Main</literal>" #. type: Content of: <refentry><refsect1><orderedlist><listitem><para> #: apt.conf.5.xml:61 @@ -7274,7 +7261,7 @@ msgstr "" #. TODO: provide a #. motivating example, except I haven't a clue why you'd want -#. to do this. +#. to do this. #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para> #: apt.conf.5.xml:750 msgid "" @@ -7296,8 +7283,7 @@ msgstr "<literal>Debug::Acquire::cdrom</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.conf.5.xml:769 -msgid "" -"Print information related to accessing <literal>cdrom://</literal> sources." +msgid "Print information related to accessing <literal>cdrom://</literal> sources." msgstr "" "Affiche les informations concernant les sources de type <literal>cdrom://</" "literal>" @@ -7310,8 +7296,7 @@ msgstr "<literal>Debug::Acquire::ftp</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.conf.5.xml:780 msgid "Print information related to downloading packages using FTP." -msgstr "" -"Affiche les informations concernant le téléchargement de paquets par FTP." +msgstr "Affiche les informations concernant le téléchargement de paquets par FTP." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt.conf.5.xml:787 @@ -7321,8 +7306,7 @@ msgstr "<literal>Debug::Acquire::http</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.conf.5.xml:791 msgid "Print information related to downloading packages using HTTP." -msgstr "" -"Affiche les informations concernant le téléchargement de paquets par HTTP." +msgstr "Affiche les informations concernant le téléchargement de paquets par HTTP." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: apt.conf.5.xml:798 @@ -7483,8 +7467,7 @@ msgstr "<literal>Debug::pkgAcquire::Worker</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.conf.5.xml:920 -msgid "" -"Log all interactions with the sub-processes that actually perform downloads." +msgid "Log all interactions with the sub-processes that actually perform downloads." msgstr "" "Affiche toutes les interactions avec les processus enfants qui se chargent " "effectivement des téléchargements." @@ -7625,8 +7608,7 @@ msgstr "<literal>Debug::pkgPackageManager</literal>" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: apt.conf.5.xml:1021 -msgid "" -"Output status messages tracing the steps performed when invoking &dpkg;." +msgid "Output status messages tracing the steps performed when invoking &dpkg;." msgstr "Affiche le détail des opérations liées à l'invocation de &dpkg;." #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> @@ -7697,19 +7679,17 @@ msgstr "" msgid "&file-aptconf;" msgstr "&file-aptconf;" -#. ? reading apt.conf +#. ? reading apt.conf #. type: Content of: <refentry><refsect1><para> #: apt.conf.5.xml:1100 msgid "&apt-cache;, &apt-config;, &apt-preferences;." msgstr "&apt-cache;, &apt-config;, &apt-preferences;." -#. The last update date +#. The last update date #. type: Content of: <refentry><refentryinfo> #: apt_preferences.5.xml:16 -msgid "" -"&apt-author.team; &apt-email; &apt-product; <date>16 February 2010</date>" -msgstr "" -"&apt-author.team; &apt-email; &apt-product; <date>16 février 2010</date>" +msgid "&apt-author.team; &apt-email; &apt-product; <date>16 February 2010</date>" +msgstr "&apt-author.team; &apt-email; &apt-product; <date>16 février 2010</date>" #. type: Content of: <refentry><refnamediv><refname> #: apt_preferences.5.xml:24 apt_preferences.5.xml:31 @@ -7908,8 +7888,7 @@ msgstr "une priorité égale à 990" #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara> #: apt_preferences.5.xml:123 -msgid "" -"to the versions that are not installed and belong to the target release." +msgid "to the versions that are not installed and belong to the target release." msgstr "" "est affectée aux versions qui ne sont pas installées et qui appartiennent à " "la distribution par défaut." @@ -8424,8 +8403,7 @@ msgstr "" #. type: Content of: <refentry><refsect1><refsect2><title> #: apt_preferences.5.xml:344 msgid "Determination of Package Version and Distribution Properties" -msgstr "" -"Détermination de la version des paquets et des propriétés des distributions" +msgstr "Détermination de la version des paquets et des propriétés des distributions" #. type: Content of: <refentry><refsect1><refsect2><para> #: apt_preferences.5.xml:346 @@ -9515,8 +9493,7 @@ msgstr "$Id: guide.sgml,v 1.7 2003/04/26 23:26:13 doogie Exp $" #. type: <abstract></abstract> #: guide.sgml:11 -msgid "" -"This document provides an overview of how to use the the APT package manager." +msgid "This document provides an overview of how to use the the APT package manager." msgstr "" "Ce document fournit un aperçu des méthode d'utilisation du gestionnaire de " "paquets APT." @@ -10422,10 +10399,8 @@ msgstr "Résumé final" #. type: <p></p> #: guide.sgml:447 -msgid "" -"Finally, APT will print out a summary of all the changes that will occur." -msgstr "" -"Enfin, APT affichera un résumé de toutes les opérations qui prendront place." +msgid "Finally, APT will print out a summary of all the changes that will occur." +msgstr "Enfin, APT affichera un résumé de toutes les opérations qui prendront place." #. type: <example></example> #: guide.sgml:452 diff --git a/po/fr.po b/po/fr.po index 69562f9d9..f3fe11e56 100644 --- a/po/fr.po +++ b/po/fr.po @@ -3,13 +3,13 @@ # French messages # # Pierre Machard <pmachard@tuxfamily.org>, 2002,2003,2004. -# Christian Perrier <bubulle@debian.org>, 2004-2005, 2006, 2007, 2008, 2009, 2010. +# Christian Perrier <bubulle@debian.org>, 2004-2005, 2006, 2007, 2008, 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-12 17:42+0100\n" -"PO-Revision-Date: 2010-08-25 07:16+0200\n" +"POT-Creation-Date: 2011-02-15 06:09+0100\n" +"PO-Revision-Date: 2011-02-16 07:44+0100\n" "Last-Translator: Christian Perrier <bubulle@debian.org>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\n" "Language: \n" @@ -92,82 +92,80 @@ msgstr "Espace disque gaspillé : " msgid "Total space accounted for: " msgstr "Total de l'espace attribué : " -#: cmdline/apt-cache.cc:513 cmdline/apt-cache.cc:1194 +#: cmdline/apt-cache.cc:513 cmdline/apt-cache.cc:1142 #, c-format msgid "Package file %s is out of sync." msgstr "Fichier %s désynchronisé." -#: cmdline/apt-cache.cc:1273 -msgid "You must give at least one search pattern" -msgstr "Vous devez fournir au moins un motif de recherche" - -#: cmdline/apt-cache.cc:1429 cmdline/apt-cache.cc:1431 -#: cmdline/apt-cache.cc:1508 +#: cmdline/apt-cache.cc:591 cmdline/apt-cache.cc:1377 +#: cmdline/apt-cache.cc:1379 cmdline/apt-cache.cc:1456 msgid "No packages found" msgstr "Aucun paquet n'a été trouvé" -#: cmdline/apt-cache.cc:1503 apt-pkg/cacheset.cc:440 +#: cmdline/apt-cache.cc:1221 +msgid "You must give at least one search pattern" +msgstr "Vous devez fournir au moins un motif de recherche" + +#: cmdline/apt-cache.cc:1451 apt-pkg/cacheset.cc:440 #, c-format msgid "Unable to locate package %s" msgstr "Impossible de trouver le paquet %s" -#: cmdline/apt-cache.cc:1533 +#: cmdline/apt-cache.cc:1481 msgid "Package files:" msgstr "Fichiers du paquet :" -#: cmdline/apt-cache.cc:1540 cmdline/apt-cache.cc:1638 +#: cmdline/apt-cache.cc:1488 cmdline/apt-cache.cc:1586 msgid "Cache is out of sync, can't x-ref a package file" msgstr "Le cache est désynchronisé, impossible de référencer un fichier" #. Show any packages have explicit pins -#: cmdline/apt-cache.cc:1554 +#: cmdline/apt-cache.cc:1502 msgid "Pinned packages:" msgstr "Paquets étiquetés :" -#: cmdline/apt-cache.cc:1566 cmdline/apt-cache.cc:1618 +#: cmdline/apt-cache.cc:1514 cmdline/apt-cache.cc:1566 msgid "(not found)" msgstr "(non trouvé)" -#: cmdline/apt-cache.cc:1575 +#: cmdline/apt-cache.cc:1523 msgid " Installed: " msgstr " Installé : " -#: cmdline/apt-cache.cc:1576 +#: cmdline/apt-cache.cc:1524 msgid " Candidate: " msgstr " Candidat : " -#: cmdline/apt-cache.cc:1600 cmdline/apt-cache.cc:1608 +#: cmdline/apt-cache.cc:1548 cmdline/apt-cache.cc:1556 msgid "(none)" msgstr "(aucun)" -#: cmdline/apt-cache.cc:1615 +#: cmdline/apt-cache.cc:1563 msgid " Package pin: " msgstr " Étiquette de paquet : " #. Show the priority tables -#: cmdline/apt-cache.cc:1624 +#: cmdline/apt-cache.cc:1572 msgid " Version table:" msgstr " Table de version :" -#: cmdline/apt-cache.cc:1738 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:70 +#: cmdline/apt-cache.cc:1686 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589 -#: cmdline/apt-get.cc:2793 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:3047 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s pour %s compilé sur %s %s\n" -#: cmdline/apt-cache.cc:1745 +#: cmdline/apt-cache.cc:1693 msgid "" "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" @@ -196,7 +194,6 @@ msgid "" "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" msgstr "" "Usage : apt-cache [options] commande\n" -" apt-cache [options] add fichier1 [fichier2 ...]\n" " apt-cache [options] showpkg pkg1 [pkg2 ...]\n" " apt-cache [options] showsrc pkg1 [pkg2 ...]\n" "\n" @@ -204,7 +201,6 @@ msgstr "" "pour les binaires, et pour en obtenir des informations.\n" "\n" "Commandes :\n" -" add - Ajoute un paquet au cache source\n" " gencaches - Construit le cache des sources et celui des binaires\n" " showpkg - Affiche quelques informations générales pour un unique paquet\n" " showsrc - Affiche les enregistrements des sources\n" @@ -232,7 +228,8 @@ msgstr "" "« unmet »\n" " -c=? Lit ce fichier de configuration\n" " -o=? Spécifie une option de configuration, p. ex. -o dir::cache=/tmp\n" -"Regardez les pages de manuel de apt-cache(8) et apt.conf(5) pour plus\n" +"Veuillez consulter les pages de manuel de apt-cache(8) et apt.conf(5) pour " +"plus\n" "d'informations.\n" #: cmdline/apt-cdrom.cc:77 @@ -317,7 +314,7 @@ msgstr "" " -c=? Lit ce fichier de configuration\n" " -o=? Spécifie une option de configuration, p. ex. -o dir::cache=/tmp\n" -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1171 +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1175 #, c-format msgid "Unable to write to %s" msgstr "Impossible d'écrire sur %s" @@ -848,7 +845,7 @@ msgstr "" msgid "%s is already the newest version.\n" msgstr "%s est déjà la plus récente version disponible.\n" -#: cmdline/apt-get.cc:827 cmdline/apt-get.cc:2027 +#: cmdline/apt-get.cc:827 cmdline/apt-get.cc:2024 #, c-format msgid "%s set to manually installed.\n" msgstr "%s passé en « installé manuellement ».\n" @@ -859,77 +856,77 @@ msgid "Selected version '%s' (%s) for '%s'\n" msgstr "Version choisie « %s » (%s) pour « %s »\n" #: cmdline/apt-get.cc:858 -#, fuzzy, c-format +#, c-format msgid "Selected version '%s' (%s) for '%s' because of '%s'\n" -msgstr "Version choisie « %s » (%s) pour « %s »\n" +msgstr "Version choisie « %s » (%s) pour « %s » à cause de « %s »\n" -#: cmdline/apt-get.cc:898 +#: cmdline/apt-get.cc:899 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "Le paquet %s n'est pas installé, et ne peut donc être supprimé\n" -#: cmdline/apt-get.cc:973 +#: cmdline/apt-get.cc:977 msgid "Correcting dependencies..." msgstr "Correction des dépendances..." -#: cmdline/apt-get.cc:976 +#: cmdline/apt-get.cc:980 msgid " failed." msgstr " a échoué." -#: cmdline/apt-get.cc:979 +#: cmdline/apt-get.cc:983 msgid "Unable to correct dependencies" msgstr "Impossible de corriger les dépendances" -#: cmdline/apt-get.cc:982 +#: cmdline/apt-get.cc:986 msgid "Unable to minimize the upgrade set" msgstr "Impossible de minimiser le nombre des paquets mis à jour" -#: cmdline/apt-get.cc:984 +#: cmdline/apt-get.cc:988 msgid " Done" msgstr " Fait" -#: cmdline/apt-get.cc:988 +#: cmdline/apt-get.cc:992 msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes." -#: cmdline/apt-get.cc:991 +#: cmdline/apt-get.cc:995 msgid "Unmet dependencies. Try using -f." msgstr "Dépendances manquantes. Essayez d'utiliser l'option -f." -#: cmdline/apt-get.cc:1016 +#: cmdline/apt-get.cc:1020 msgid "WARNING: The following packages cannot be authenticated!" msgstr "ATTENTION : les paquets suivants n'ont pas été authentifiés." -#: cmdline/apt-get.cc:1020 +#: cmdline/apt-get.cc:1024 msgid "Authentication warning overridden.\n" msgstr "Avertissement d'authentification ignoré.\n" -#: cmdline/apt-get.cc:1027 +#: cmdline/apt-get.cc:1031 msgid "Install these packages without verification [y/N]? " msgstr "Faut-il installer ces paquets sans vérification (o/N) ? " -#: cmdline/apt-get.cc:1029 +#: cmdline/apt-get.cc:1033 msgid "Some packages could not be authenticated" msgstr "Certains paquets n'ont pas pu être authentifiés" -#: cmdline/apt-get.cc:1038 cmdline/apt-get.cc:1199 +#: cmdline/apt-get.cc:1042 cmdline/apt-get.cc:1203 msgid "There are problems and -y was used without --force-yes" msgstr "Il y a des problèmes et -y a été employé sans --force-yes" -#: cmdline/apt-get.cc:1079 +#: cmdline/apt-get.cc:1083 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "Erreur interne, « InstallPackages » appelé avec des paquets cassés." -#: cmdline/apt-get.cc:1088 +#: cmdline/apt-get.cc:1092 msgid "Packages need to be removed but remove is disabled." msgstr "" "Les paquets doivent être enlevés mais la désinstallation est désactivée." -#: cmdline/apt-get.cc:1099 +#: cmdline/apt-get.cc:1103 msgid "Internal error, Ordering didn't finish" msgstr "Erreur interne. Le tri a été interrompu." -#: cmdline/apt-get.cc:1137 +#: cmdline/apt-get.cc:1141 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" "Étrangement, les tailles ne correspondent pas. Veuillez le signaler par " @@ -937,21 +934,21 @@ 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:1144 +#: cmdline/apt-get.cc:1148 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "Il est nécessaire de prendre %so/%so dans les archives.\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:1149 +#: cmdline/apt-get.cc:1153 #, c-format msgid "Need to get %sB of archives.\n" msgstr "Il est nécessaire de prendre %so dans les archives.\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:1156 +#: cmdline/apt-get.cc:1160 #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "" @@ -959,23 +956,23 @@ 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:1161 +#: cmdline/apt-get.cc:1165 #, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "Après cette opération, %so d'espace disque seront libérés.\n" -#: cmdline/apt-get.cc:1176 cmdline/apt-get.cc:1179 cmdline/apt-get.cc:2367 -#: cmdline/apt-get.cc:2370 +#: cmdline/apt-get.cc:1180 cmdline/apt-get.cc:1183 cmdline/apt-get.cc:2428 +#: cmdline/apt-get.cc:2431 #, c-format msgid "Couldn't determine free space in %s" msgstr "Impossible de déterminer l'espace disponible sur %s" -#: cmdline/apt-get.cc:1189 +#: cmdline/apt-get.cc:1193 #, c-format msgid "You don't have enough free space in %s." msgstr "Pas assez d'espace disponible sur %s" -#: cmdline/apt-get.cc:1205 cmdline/apt-get.cc:1225 +#: cmdline/apt-get.cc:1209 cmdline/apt-get.cc:1229 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" "L'option --trivial-only a été indiquée mais il ne s'agit pas d'une opération " @@ -983,11 +980,11 @@ msgstr "" # The space before the exclamation mark must not be a non-breaking space; this # sentence is supposed to be typed by a user who cannot see the difference. -#: cmdline/apt-get.cc:1207 +#: cmdline/apt-get.cc:1211 msgid "Yes, do as I say!" msgstr "Oui, faites ce que je vous dis !" -#: cmdline/apt-get.cc:1209 +#: cmdline/apt-get.cc:1213 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -998,28 +995,28 @@ msgstr "" "Pour continuer, tapez la phrase « %s »\n" " ?]" -#: cmdline/apt-get.cc:1215 cmdline/apt-get.cc:1234 +#: cmdline/apt-get.cc:1219 cmdline/apt-get.cc:1238 msgid "Abort." msgstr "Annulation." -#: cmdline/apt-get.cc:1230 +#: cmdline/apt-get.cc:1234 msgid "Do you want to continue [Y/n]? " msgstr "Souhaitez-vous continuer [O/n] ? " -#: cmdline/apt-get.cc:1302 cmdline/apt-get.cc:2427 apt-pkg/algorithms.cc:1470 +#: cmdline/apt-get.cc:1306 cmdline/apt-get.cc:2488 apt-pkg/algorithms.cc:1491 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Impossible de récupérer %s %s\n" -#: cmdline/apt-get.cc:1320 +#: cmdline/apt-get.cc:1324 msgid "Some files failed to download" msgstr "Certains fichiers n'ont pu être téléchargés." -#: cmdline/apt-get.cc:1321 cmdline/apt-get.cc:2436 +#: cmdline/apt-get.cc:1325 cmdline/apt-get.cc:2497 msgid "Download complete and in download only mode" msgstr "Téléchargement achevé et dans le mode téléchargement uniquement" -#: cmdline/apt-get.cc:1327 +#: cmdline/apt-get.cc:1331 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" @@ -1027,20 +1024,20 @@ msgstr "" "Impossible de récupérer quelques archives, peut-être devrez-vous lancer apt-" "get update ou essayer avec --fix-missing ?" -#: cmdline/apt-get.cc:1331 +#: cmdline/apt-get.cc:1335 msgid "--fix-missing and media swapping is not currently supported" msgstr "" "l'option --fix-missing et l'échange de support ne sont pas encore reconnus." -#: cmdline/apt-get.cc:1336 +#: cmdline/apt-get.cc:1340 msgid "Unable to correct missing packages." msgstr "Impossible de corriger le fait que les paquets manquent." -#: cmdline/apt-get.cc:1337 +#: cmdline/apt-get.cc:1341 msgid "Aborting install." msgstr "Annulation de l'installation." -#: cmdline/apt-get.cc:1365 +#: cmdline/apt-get.cc:1369 msgid "" "The following package disappeared from your system as\n" "all files have been overwritten by other packages:" @@ -1054,39 +1051,39 @@ msgstr[1] "" "Les paquets suivants ont disparu du système car tous leurs fichiers\n" "ont été remplacés par d'autres paquets :" -#: cmdline/apt-get.cc:1369 +#: cmdline/apt-get.cc:1373 msgid "Note: This is done automatic and on purpose by dpkg." msgstr "" "Note : cette opération volontaire (effectuée par dpkg) est automatique." -#: cmdline/apt-get.cc:1499 +#: cmdline/apt-get.cc:1503 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" msgstr "" "La distribution cible « %s » indisponible pour le paquet « %s » est ignorée" -#: cmdline/apt-get.cc:1531 +#: cmdline/apt-get.cc:1535 #, c-format msgid "Picking '%s' as source package instead of '%s'\n" msgstr "Choix de « %s » comme paquet source à la place de « %s »\n" #. if (VerTag.empty() == false && Last == 0) -#: cmdline/apt-get.cc:1569 +#: cmdline/apt-get.cc:1573 #, c-format msgid "Ignore unavailable version '%s' of package '%s'" msgstr "La version « %s » indisponible du paquet « %s » est ignorée" -#: cmdline/apt-get.cc:1585 +#: cmdline/apt-get.cc:1589 msgid "The update command takes no arguments" msgstr "La commande de mise à jour ne prend pas d'argument" -#: cmdline/apt-get.cc:1647 +#: cmdline/apt-get.cc:1651 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" "Aucune suppression n'est sensée se produire : impossible de lancer " "« Autoremover »" -#: cmdline/apt-get.cc:1699 +#: cmdline/apt-get.cc:1703 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -1105,16 +1102,16 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1702 cmdline/apt-get.cc:1858 +#: cmdline/apt-get.cc:1706 cmdline/apt-get.cc:1855 msgid "The following information may help to resolve the situation:" msgstr "L'information suivante devrait vous aider à résoudre la situation : " -#: cmdline/apt-get.cc:1706 +#: cmdline/apt-get.cc:1710 msgid "Internal Error, AutoRemover broke stuff" msgstr "" "Erreur interne, l'outil de suppression automatique a cassé quelque chose." -#: cmdline/apt-get.cc:1713 +#: cmdline/apt-get.cc:1717 msgid "" "The following package was automatically installed and is no longer required:" msgid_plural "" @@ -1126,7 +1123,7 @@ msgstr[1] "" "Les paquets suivants ont été installés automatiquement et ne sont plus " "nécessaires :" -#: cmdline/apt-get.cc:1717 +#: cmdline/apt-get.cc:1721 #, c-format msgid "%lu package was automatically installed and is no longer required.\n" msgid_plural "" @@ -1136,20 +1133,20 @@ msgstr[0] "" msgstr[1] "" "%lu paquets ont été installés automatiquement et ne sont plus nécessaires.\n" -#: cmdline/apt-get.cc:1719 +#: cmdline/apt-get.cc:1723 msgid "Use 'apt-get autoremove' to remove them." msgstr "Veuillez utiliser « apt-get autoremove » pour les supprimer." -#: cmdline/apt-get.cc:1738 +#: cmdline/apt-get.cc:1742 msgid "Internal error, AllUpgrade broke stuff" msgstr "Erreur interne, AllUpgrade a cassé le boulot !" -#: cmdline/apt-get.cc:1828 +#: cmdline/apt-get.cc:1825 msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes :" -#: cmdline/apt-get.cc:1831 +#: cmdline/apt-get.cc:1828 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." @@ -1157,7 +1154,7 @@ msgstr "" "Dépendances non satisfaites. Essayez « apt-get -f install » sans paquet\n" "(ou indiquez une solution)." -#: cmdline/apt-get.cc:1843 +#: cmdline/apt-get.cc:1840 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" @@ -1169,64 +1166,69 @@ msgstr "" "la distribution unstable, que certains paquets n'ont pas encore\n" "été créés ou ne sont pas sortis d'Incoming." -#: cmdline/apt-get.cc:1861 +#: cmdline/apt-get.cc:1858 msgid "Broken packages" msgstr "Paquets défectueux" -#: cmdline/apt-get.cc:1889 +#: cmdline/apt-get.cc:1886 msgid "The following extra packages will be installed:" msgstr "Les paquets supplémentaires suivants seront installés : " -#: cmdline/apt-get.cc:1979 +#: cmdline/apt-get.cc:1976 msgid "Suggested packages:" msgstr "Paquets suggérés :" -#: cmdline/apt-get.cc:1980 +#: cmdline/apt-get.cc:1977 msgid "Recommended packages:" msgstr "Paquets recommandés :" -#: cmdline/apt-get.cc:2022 +#: cmdline/apt-get.cc:2019 #, c-format msgid "Couldn't find package %s" msgstr "Impossible de trouver le paquet %s" -#: cmdline/apt-get.cc:2029 +#: cmdline/apt-get.cc:2026 #, c-format msgid "%s set to automatically installed.\n" msgstr "%s passé en « installé automatiquement ».\n" -#: cmdline/apt-get.cc:2050 +#: cmdline/apt-get.cc:2047 msgid "Calculating upgrade... " msgstr "Calcul de la mise à jour... " -#: cmdline/apt-get.cc:2053 methods/ftp.cc:707 methods/connect.cc:111 +#: cmdline/apt-get.cc:2050 methods/ftp.cc:707 methods/connect.cc:111 msgid "Failed" msgstr "Échec" -#: cmdline/apt-get.cc:2058 +#: cmdline/apt-get.cc:2055 msgid "Done" msgstr "Fait" -#: cmdline/apt-get.cc:2125 cmdline/apt-get.cc:2133 +#: cmdline/apt-get.cc:2122 cmdline/apt-get.cc:2130 msgid "Internal error, problem resolver broke stuff" msgstr "" "Erreur interne, la tentative de résolution du problème a cassé certaines " "parties" -#: cmdline/apt-get.cc:2157 cmdline/apt-get.cc:2190 +#: cmdline/apt-get.cc:2154 cmdline/apt-get.cc:2187 msgid "Unable to lock the download directory" msgstr "Impossible de verrouiller le répertoire de téléchargement" -#: cmdline/apt-get.cc:2233 +#: cmdline/apt-get.cc:2238 +#, c-format +msgid "Downloading %s %s" +msgstr "Téléchargement de %s %s" + +#: cmdline/apt-get.cc:2294 msgid "Must specify at least one package to fetch source for" msgstr "Vous devez spécifier au moins un paquet source" -#: cmdline/apt-get.cc:2273 cmdline/apt-get.cc:2554 +#: cmdline/apt-get.cc:2334 cmdline/apt-get.cc:2615 #, c-format msgid "Unable to find a source package for %s" msgstr "Impossible de trouver une source de paquet pour %s" -#: cmdline/apt-get.cc:2289 +#: cmdline/apt-get.cc:2350 #, c-format msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" @@ -1236,7 +1238,7 @@ msgstr "" "suivi de versions « %s » à l'adresse :\n" "%s\n" -#: cmdline/apt-get.cc:2294 +#: cmdline/apt-get.cc:2355 #, c-format msgid "" "Please use:\n" @@ -1248,80 +1250,80 @@ msgstr "" "pour récupérer les dernières mises à jour (éventuellement non encore " "publiées) du paquet.\n" -#: cmdline/apt-get.cc:2345 +#: cmdline/apt-get.cc:2406 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Saut du téléchargement du fichier « %s », déjà téléchargé\n" -#: cmdline/apt-get.cc:2380 +#: cmdline/apt-get.cc:2441 #, c-format msgid "You don't have enough free space in %s" msgstr "Pas assez d'espace disponible sur %s" #. 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:2388 +#: cmdline/apt-get.cc:2449 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Nécessité de prendre %so/%so dans les sources.\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:2393 +#: cmdline/apt-get.cc:2454 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Nécessité de prendre %so dans les sources.\n" -#: cmdline/apt-get.cc:2399 +#: cmdline/apt-get.cc:2460 #, c-format msgid "Fetch source %s\n" msgstr "Récupération des sources %s\n" -#: cmdline/apt-get.cc:2432 +#: cmdline/apt-get.cc:2493 msgid "Failed to fetch some archives." msgstr "Échec lors de la récupération de quelques archives." -#: cmdline/apt-get.cc:2462 +#: cmdline/apt-get.cc:2523 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Saut du décompactage des paquets sources déjà décompactés dans %s\n" -#: cmdline/apt-get.cc:2474 +#: cmdline/apt-get.cc:2535 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "La commande de décompactage « %s » a échoué.\n" -#: cmdline/apt-get.cc:2475 +#: cmdline/apt-get.cc:2536 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Veuillez vérifier si le paquet dpkg-dev est installé.\n" -#: cmdline/apt-get.cc:2492 +#: cmdline/apt-get.cc:2553 #, c-format msgid "Build command '%s' failed.\n" msgstr "La commande de construction « %s » a échoué.\n" -#: cmdline/apt-get.cc:2512 +#: cmdline/apt-get.cc:2573 msgid "Child process failed" msgstr "Échec du processus fils" -#: cmdline/apt-get.cc:2528 +#: cmdline/apt-get.cc:2589 msgid "Must specify at least one package to check builddeps for" msgstr "" "Il faut spécifier au moins un paquet pour vérifier les dépendances de " "construction" -#: cmdline/apt-get.cc:2559 +#: cmdline/apt-get.cc:2620 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Impossible d'obtenir les dépendances de construction pour %s" -#: cmdline/apt-get.cc:2579 +#: cmdline/apt-get.cc:2640 #, c-format msgid "%s has no build depends.\n" msgstr "%s n'a pas de dépendance de construction.\n" -#: cmdline/apt-get.cc:2630 +#: cmdline/apt-get.cc:2691 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1330,7 +1332,7 @@ msgstr "" "La dépendance %s vis-à-vis de %s ne peut être satisfaite car le paquet %s ne " "peut être trouvé" -#: cmdline/apt-get.cc:2683 +#: cmdline/apt-get.cc:2744 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1339,33 +1341,38 @@ msgstr "" "La dépendance %s vis-à-vis de %s ne peut être satisfaite car aucune version " "du paquet %s ne peut satisfaire à la version requise" -#: cmdline/apt-get.cc:2719 +#: cmdline/apt-get.cc:2780 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Impossible de satisfaire la dépendance %s pour %s : le paquet installé %s " "est trop récent" -#: cmdline/apt-get.cc:2746 +#: cmdline/apt-get.cc:2807 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Impossible de satisfaire les dépendances %s pour %s : %s" -#: cmdline/apt-get.cc:2762 +#: cmdline/apt-get.cc:2823 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" "Les dépendances de compilation pour %s ne peuvent pas être satisfaites." -#: cmdline/apt-get.cc:2767 +#: cmdline/apt-get.cc:2828 msgid "Failed to process build dependencies" msgstr "Impossible d'activer les dépendances de construction" -#: cmdline/apt-get.cc:2798 +#: cmdline/apt-get.cc:2921 cmdline/apt-get.cc:2933 +#, c-format +msgid "Changelog for %s (%s)" +msgstr "Journal des modifications pour %s (%s)" + +#: cmdline/apt-get.cc:3052 msgid "Supported modules:" msgstr "Modules reconnus :" -#: cmdline/apt-get.cc:2839 +#: cmdline/apt-get.cc:3093 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1391,6 +1398,8 @@ msgid "" " check - Verify that there are no broken dependencies\n" " markauto - Mark the given packages as automatically installed\n" " unmarkauto - Mark the given packages as manually installed\n" +" changelog - Download and display the changelog for the given package\n" +" download - Download the binary package into the current directory\n" "\n" "Options:\n" " -h This help text.\n" @@ -1434,6 +1443,9 @@ msgstr "" " check - Vérifie qu'il n'y a pas de rupture de dépendances\n" " markauto - Marque les paquets indiqués comme installés automatiquement\n" " unmarkauto - Marque les paquets indiqués comme installés manuellement\n" +" changelog - Télécharge et affiche le journal des modifications\n" +" («  changelog ») du paquet indiqué\n" +" download - Télécharge le paquet dinaire dans le répertoire courant\n" "\n" "Options :\n" " -h Ce texte d'aide\n" @@ -1451,10 +1463,10 @@ msgstr "" " -c=? Lit ce fichier de configuration\n" " -o=? Place une option de configuration arbitraire, ex. -o dir::cache=/tmp\n" "Reportez-vous aux pages de manuels d'apt-get(8), sources.list(5) et\n" -"apt.conf(5) pour plus d'informations et d'option.\n" +"apt.conf(5) pour plus d'informations et d'options.\n" " Cet APT a les « Super Cow Powers »\n" -#: cmdline/apt-get.cc:2995 +#: cmdline/apt-get.cc:3254 msgid "" "NOTE: This is only a simulation!\n" " apt-get needs root privileges for real execution.\n" @@ -1581,7 +1593,7 @@ msgstr "Échec de création de tubes" msgid "Failed to exec gzip " msgstr "Impossible d'exécuter gzip " -#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204 +#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:208 msgid "Corrupted archive" msgstr "Archive corrompue" @@ -1589,7 +1601,7 @@ msgstr "Archive corrompue" msgid "Tar checksum failed, archive corrupted" msgstr "Échec dans la somme de contrôle de tar, l'archive est corrompue" -#: apt-inst/contrib/extracttar.cc:296 +#: apt-inst/contrib/extracttar.cc:300 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Type d'en-tête %u inconnu pour TAR, partie %s" @@ -1697,28 +1709,28 @@ msgstr "Échec pour localiser le nœud dans la table de hachage" msgid "The path is too long" msgstr "Le chemin est trop long" -#: apt-inst/extract.cc:414 +#: apt-inst/extract.cc:412 #, c-format msgid "Overwrite package match with no version for %s" msgstr "Écrase la correspondance de paquet sans version pour %s " -#: apt-inst/extract.cc:431 +#: apt-inst/extract.cc:429 #, c-format msgid "File %s/%s overwrites the one in the package %s" msgstr "Le fichier %s/%s écrase celui inclus dans le paquet %s" #. 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: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 +#: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179 +#: apt-pkg/contrib/fileutl.cc:334 apt-pkg/sourcelist.cc:204 +#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:103 +#: apt-pkg/init.cc:111 apt-pkg/clean.cc:33 apt-pkg/policy.cc:309 #: methods/mirror.cc:87 #, c-format msgid "Unable to read %s" msgstr "Impossible de lire %s" -#: apt-inst/extract.cc:491 +#: apt-inst/extract.cc:489 #, c-format msgid "Unable to stat %s" msgstr "Impossible de statuer pour %s." @@ -1744,9 +1756,9 @@ msgstr "" "Les répertoires info et temp doivent se trouver sur le même système de " "fichiers" -#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1070 -#: apt-pkg/pkgcachegen.cc:1174 apt-pkg/pkgcachegen.cc:1180 -#: apt-pkg/pkgcachegen.cc:1326 +#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1074 +#: apt-pkg/pkgcachegen.cc:1178 apt-pkg/pkgcachegen.cc:1184 +#: apt-pkg/pkgcachegen.cc:1330 msgid "Reading package lists" msgstr "Lecture des listes de paquets" @@ -1851,24 +1863,28 @@ msgstr "Impossible de localiser un fichier de contrôle valide" msgid "Unparsable control file" msgstr "Fichier de contrôle non traitable" -#: methods/bzip2.cc:65 +#: methods/bzip2.cc:60 methods/gzip.cc:52 +msgid "Empty files can't be valid archives" +msgstr "Les fichiers vides ne peuvent être des archives valables" + +#: methods/bzip2.cc:64 #, c-format msgid "Couldn't open pipe for %s" msgstr "Ne parvient pas à ouvrir le tube pour %s" -#: methods/bzip2.cc:109 +#: methods/bzip2.cc:108 #, c-format msgid "Read error from %s process" msgstr "Erreur de lecture du processus %s" -#: methods/bzip2.cc:141 methods/bzip2.cc:150 methods/copy.cc:43 -#: methods/gzip.cc:93 methods/gzip.cc:102 methods/rred.cc:486 -#: methods/rred.cc:495 +#: methods/bzip2.cc:140 methods/bzip2.cc:149 methods/copy.cc:43 +#: methods/gzip.cc:92 methods/gzip.cc:101 methods/rred.cc:524 +#: methods/rred.cc:533 msgid "Failed to stat" msgstr "Impossible de statuer" -#: methods/bzip2.cc:147 methods/copy.cc:80 methods/gzip.cc:99 -#: methods/rred.cc:492 +#: methods/bzip2.cc:146 methods/copy.cc:80 methods/gzip.cc:98 +#: methods/rred.cc:530 msgid "Failed to set modification time" msgstr "Impossible de modifier l'heure " @@ -1963,7 +1979,7 @@ msgstr "Dépassement du délai de connexion" msgid "Server closed the connection" msgstr "Le serveur a fermé la connexion" -#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:802 methods/rsh.cc:190 +#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:811 methods/rsh.cc:190 msgid "Read error" msgstr "Erreur de lecture" @@ -1975,7 +1991,7 @@ msgstr "Une réponse a fait déborder le tampon." msgid "Protocol corruption" msgstr "Corruption du protocole" -#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:844 methods/rsh.cc:232 +#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:853 methods/rsh.cc:232 msgid "Write error" msgstr "Erreur d'écriture" @@ -2216,7 +2232,7 @@ msgstr "Erreur de lecture depuis le serveur distant et clôture de la connexion" msgid "Error reading from server" msgstr "Erreur de lecture du serveur" -#: methods/http.cc:991 apt-pkg/contrib/mmap.cc:281 +#: methods/http.cc:991 apt-pkg/contrib/mmap.cc:283 msgid "Failed to truncate file" msgstr "Échec de la troncature du fichier" @@ -2254,7 +2270,7 @@ msgstr "Impossible de fermer la « mmap »" msgid "Unable to synchronize mmap" msgstr "Impossible de synchroniser la « mmap »" -#: apt-pkg/contrib/mmap.cc:300 +#: apt-pkg/contrib/mmap.cc:302 #, c-format msgid "" "Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. " @@ -2264,7 +2280,7 @@ msgstr "" "Vous devriez augmenter la taille de APT::Cache-Limit, dont la valeur " "actuelle est de %lu (voir « man 5 apt.conf »)." -#: apt-pkg/contrib/mmap.cc:399 +#: apt-pkg/contrib/mmap.cc:401 #, c-format msgid "" "Unable to increase the size of the MMap as the limit of %lu bytes is already " @@ -2273,7 +2289,7 @@ msgstr "" "Impossible d'augmenter la taille de la « mmap » car la limite de %lu octets " "est déjà atteinte." -#: apt-pkg/contrib/mmap.cc:402 +#: apt-pkg/contrib/mmap.cc:404 msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" @@ -2304,7 +2320,7 @@ msgstr "%limin %lis" msgid "%lis" msgstr "%lis" -#: apt-pkg/contrib/strutl.cc:1119 +#: apt-pkg/contrib/strutl.cc:1136 #, c-format msgid "Selection %s not found" msgstr "La sélection %s n'a pu être trouvée" @@ -2440,97 +2456,121 @@ msgstr "Impossible d'accéder à %s" msgid "Failed to stat the cdrom" msgstr "Impossible d'accéder au cédérom." -#: apt-pkg/contrib/fileutl.cc:154 +#: apt-pkg/contrib/fileutl.cc:159 #, c-format msgid "Not using locking for read only lock file %s" msgstr "Verrou non utilisé pour le fichier %s en lecture seule" -#: apt-pkg/contrib/fileutl.cc:159 +#: apt-pkg/contrib/fileutl.cc:164 #, c-format msgid "Could not open lock file %s" msgstr "Impossible d'ouvrir le fichier verrou %s" -#: apt-pkg/contrib/fileutl.cc:177 +#: apt-pkg/contrib/fileutl.cc:182 #, c-format msgid "Not using locking for nfs mounted lock file %s" msgstr "Verrou non utilisé pour le fichier %s se situant sur une partition nfs" -#: apt-pkg/contrib/fileutl.cc:181 +#: apt-pkg/contrib/fileutl.cc:186 #, c-format msgid "Could not get lock %s" msgstr "Impossible d'obtenir le verrou %s" -#: apt-pkg/contrib/fileutl.cc:321 +#: apt-pkg/contrib/fileutl.cc:326 #, c-format msgid "List of files can't be created as '%s' is not a directory" msgstr "" +"La liste des fichiers ne peut pas être créée car « %s » n'est pas un " +"répertoire" + +#: apt-pkg/contrib/fileutl.cc:353 +#, c-format +msgid "Ignoring '%s' in directory '%s' as it is not a regular file" +msgstr "" +"« %s » dans le répertoire « %s » a été ignoré car ce n'est pas un fichier " +"ordinaire" + +#: apt-pkg/contrib/fileutl.cc:371 +#, c-format +msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" +msgstr "" +"« %s » dans le répertoire « %s » a été ignoré car il n'utilise pas " +"d'extension" + +#: apt-pkg/contrib/fileutl.cc:380 +#, c-format +msgid "" +"Ignoring file '%s' in directory '%s' as it has an invalid filename extension" +msgstr "" +"« %s » dans le répertoire « %s » a été ignoré car il utilise une extension " +"non valable" -#: apt-pkg/contrib/fileutl.cc:661 +#: apt-pkg/contrib/fileutl.cc:670 #, c-format msgid "Waited for %s but it wasn't there" msgstr "A attendu %s mais il n'était pas présent" -#: apt-pkg/contrib/fileutl.cc:673 +#: apt-pkg/contrib/fileutl.cc:682 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "Le sous-processus %s a commis une violation d'accès mémoire" -#: apt-pkg/contrib/fileutl.cc:675 +#: apt-pkg/contrib/fileutl.cc:684 #, c-format msgid "Sub-process %s received signal %u." msgstr "Le sous-processus %s a reçu le signal %u" -#: apt-pkg/contrib/fileutl.cc:679 +#: apt-pkg/contrib/fileutl.cc:688 #, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "Le sous-processus %s a renvoyé un code d'erreur (%u)" -#: apt-pkg/contrib/fileutl.cc:681 +#: apt-pkg/contrib/fileutl.cc:690 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "Le sous-processus %s s'est arrêté prématurément" -#: apt-pkg/contrib/fileutl.cc:746 +#: apt-pkg/contrib/fileutl.cc:755 #, c-format msgid "Could not open file %s" msgstr "Impossible d'ouvrir le fichier %s" -#: apt-pkg/contrib/fileutl.cc:763 +#: apt-pkg/contrib/fileutl.cc:772 #, c-format msgid "Could not open file descriptor %d" msgstr "Impossible d'ouvrir le descripteur de fichier %d" -#: apt-pkg/contrib/fileutl.cc:823 +#: apt-pkg/contrib/fileutl.cc:832 #, c-format msgid "read, still have %lu to read but none left" msgstr "lu(s), %lu restant à lire, mais rien n'est disponible" -#: apt-pkg/contrib/fileutl.cc:856 +#: apt-pkg/contrib/fileutl.cc:865 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "écrit(s), %lu restant à écrire, mais l'écriture est impossible" -#: apt-pkg/contrib/fileutl.cc:985 +#: apt-pkg/contrib/fileutl.cc:1001 #, c-format msgid "Problem closing the gzip file %s" msgstr "Problème de fermeture du fichier gzip %s" -#: apt-pkg/contrib/fileutl.cc:988 +#: apt-pkg/contrib/fileutl.cc:1004 #, c-format msgid "Problem closing the file %s" msgstr "Problème de fermeture du fichier %s" -#: apt-pkg/contrib/fileutl.cc:993 +#: apt-pkg/contrib/fileutl.cc:1009 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problème de renommage du fichier %s en %s" -#: apt-pkg/contrib/fileutl.cc:1004 +#: apt-pkg/contrib/fileutl.cc:1020 #, c-format msgid "Problem unlinking the file %s" msgstr "Problème de suppression du lien %s" -#: apt-pkg/contrib/fileutl.cc:1017 +#: apt-pkg/contrib/fileutl.cc:1033 msgid "Problem syncing the file" msgstr "Problème de synchronisation du fichier" @@ -2770,7 +2810,7 @@ msgstr "" msgid "Index file type '%s' is not supported" msgstr "Le type de fichier d'index « %s » n'est pas accepté" -#: apt-pkg/algorithms.cc:292 +#: apt-pkg/algorithms.cc:313 #, c-format msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." @@ -2778,7 +2818,7 @@ msgstr "" "Le paquet %s doit être réinstallé, mais il est impossible de trouver son " "archive." -#: apt-pkg/algorithms.cc:1218 +#: apt-pkg/algorithms.cc:1239 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." @@ -2786,15 +2826,15 @@ msgstr "" "Erreur, pkgProblemResolver::Resolve a généré des ruptures, ce qui a pu être " "causé par les paquets devant être gardés en l'état." -#: apt-pkg/algorithms.cc:1220 +#: apt-pkg/algorithms.cc:1241 msgid "Unable to correct problems, you have held broken packages." msgstr "" "Impossible de corriger les problèmes, des paquets défectueux sont en mode " "« garder en l'état »." -#: apt-pkg/algorithms.cc:1496 apt-pkg/algorithms.cc:1498 +#: apt-pkg/algorithms.cc:1517 apt-pkg/algorithms.cc:1519 msgid "" -"Some index files failed to download, they have been ignored, or old ones " +"Some index files failed to download. They have been ignored, or old ones " "used instead." msgstr "" "Le téléchargement de quelques fichiers d'index a échoué, ils ont été " @@ -2844,12 +2884,12 @@ msgstr "" "Veuillez insérer le disque « %s » dans le lecteur « %s » et appuyez sur la " "touche Entrée." -#: apt-pkg/init.cc:143 +#: apt-pkg/init.cc:146 #, c-format msgid "Packaging system '%s' is not supported" msgstr "Le système de paquet « %s » n'est pas supporté" -#: apt-pkg/init.cc:159 +#: apt-pkg/init.cc:162 msgid "Unable to determine a suitable packaging system type" msgstr "Impossible de déterminer un type du système de paquets adéquat" @@ -2877,19 +2917,19 @@ msgstr "Vous pouvez lancer « apt-get update » pour corriger ces problèmes." msgid "The list of sources could not be read." msgstr "La liste des sources ne peut être lue." -#: apt-pkg/policy.cc:344 +#: apt-pkg/policy.cc:346 #, c-format msgid "Invalid record in the preferences file %s, no Package header" msgstr "" "Enregistrement non valable dans le fichier de préférences %s, aucune entrée " "« Package »." -#: apt-pkg/policy.cc:366 +#: apt-pkg/policy.cc:368 #, c-format msgid "Did not understand pin type %s" msgstr "Étiquette %s inconnue" -#: apt-pkg/policy.cc:374 +#: apt-pkg/policy.cc:376 msgid "No priority (or zero) specified for pin" msgstr "Aucune priorité (ou zéro) n'a été spécifiée pour l'étiquette" @@ -2979,16 +3019,16 @@ msgstr "" "Le paquet %s %s n'a pu être trouvé lors du traitement des dépendances des " "fichiers" -#: apt-pkg/pkgcachegen.cc:982 +#: apt-pkg/pkgcachegen.cc:986 #, c-format msgid "Couldn't stat source package list %s" msgstr "Impossible de localiser la liste des paquets sources %s" -#: apt-pkg/pkgcachegen.cc:1087 +#: apt-pkg/pkgcachegen.cc:1091 msgid "Collecting File Provides" msgstr "Assemblage des fichiers listés dans les champs Provides" -#: apt-pkg/pkgcachegen.cc:1265 apt-pkg/pkgcachegen.cc:1272 +#: apt-pkg/pkgcachegen.cc:1269 apt-pkg/pkgcachegen.cc:1276 msgid "IO Error saving source cache" msgstr "" "Erreur d'entrée/sortie lors de la sauvegarde du fichier de cache des sources" @@ -2998,16 +3038,31 @@ msgstr "" msgid "rename failed, %s (%s -> %s)." msgstr "impossible de changer le nom, %s (%s -> %s)." -#: apt-pkg/acquire-item.cc:484 +#: apt-pkg/acquire-item.cc:629 msgid "MD5Sum mismatch" msgstr "Somme de contrôle MD5 incohérente" -#: apt-pkg/acquire-item.cc:746 apt-pkg/acquire-item.cc:1574 -#: apt-pkg/acquire-item.cc:1717 +#: apt-pkg/acquire-item.cc:887 apt-pkg/acquire-item.cc:1781 +#: apt-pkg/acquire-item.cc:1924 msgid "Hash Sum mismatch" msgstr "Somme de contrôle de hachage incohérente" -#: apt-pkg/acquire-item.cc:1244 +#: apt-pkg/acquire-item.cc:1341 +#, c-format +msgid "" +"Unable to find expected entry '%s' in Release file (Wrong sources.list entry " +"or malformed file)" +msgstr "" +"Impossible de trouver l'entrée « %s » attendue dans le fichier « Release » : " +" ligne non valable dans sources.list ou fichier corrompu" + +#: apt-pkg/acquire-item.cc:1356 +#, c-format +msgid "Unable to find hash sum for '%s' in Release file" +msgstr "" +"Impossible de trouver la comme de contrôle de « %s » dans le fichier Release" + +#: apt-pkg/acquire-item.cc:1415 msgid "There is no public key available for the following key IDs:\n" msgstr "" "Aucune clé publique n'est disponible pour la/les clé(s) suivante(s) :\n" @@ -3015,17 +3070,17 @@ msgstr "" #. TRANSLATOR: The first %s is the URL of the bad Release file, the second is #. the time since then the file is invalid - formated in the same way as in #. the download progress display (e.g. 7d 3h 42min 1s) -#: apt-pkg/acquire-item.cc:1281 +#: apt-pkg/acquire-item.cc:1452 #, c-format msgid "Release file expired, ignoring %s (invalid since %s)" msgstr "Le fichier Release a expiré, %s ignoré (non valable depuis %s)" -#: apt-pkg/acquire-item.cc:1302 +#: apt-pkg/acquire-item.cc:1473 #, c-format msgid "Conflicting distribution: %s (expected %s but got %s)" msgstr "Distribution en conflit : %s (%s attendu, mais %s obtenu)" -#: apt-pkg/acquire-item.cc:1328 +#: apt-pkg/acquire-item.cc:1506 #, c-format msgid "" "A error occurred during the signature verification. The repository is not " @@ -3035,12 +3090,12 @@ msgstr "" "pas mis à jour et les fichiers d'index précédents seront utilisés. Erreur de " "GPG : %s : %s\n" -#: apt-pkg/acquire-item.cc:1337 +#: apt-pkg/acquire-item.cc:1515 #, c-format msgid "GPG error: %s: %s" msgstr "Erreur de GPG : %s : %s" -#: apt-pkg/acquire-item.cc:1365 +#: apt-pkg/acquire-item.cc:1572 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " @@ -3049,7 +3104,7 @@ msgstr "" "Impossible de localiser un fichier du paquet %s. Cela signifie que vous " "devrez corriger ce paquet vous-même (absence d'architecture)." -#: apt-pkg/acquire-item.cc:1424 +#: apt-pkg/acquire-item.cc:1631 #, c-format msgid "" "I wasn't able to locate file for the %s package. This might mean you need to " @@ -3058,7 +3113,7 @@ msgstr "" "Impossible de localiser un fichier du paquet %s. Cela signifie que vous " "devrez corriger ce paquet vous-même." -#: apt-pkg/acquire-item.cc:1479 +#: apt-pkg/acquire-item.cc:1686 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." @@ -3066,7 +3121,7 @@ msgstr "" "Les fichiers d'index des paquets sont corrompus. Aucun champ « Filename: » " "pour le paquet %s." -#: apt-pkg/acquire-item.cc:1566 +#: apt-pkg/acquire-item.cc:1773 msgid "Size mismatch" msgstr "Taille incohérente" @@ -3075,22 +3130,22 @@ msgstr "Taille incohérente" msgid "Unable to parse Release file %s" msgstr "Impossible d'analyser le fichier Release %s" -#: apt-pkg/indexrecords.cc:60 +#: apt-pkg/indexrecords.cc:63 #, c-format msgid "No sections in Release file %s" msgstr "Pas de sections dans le fichier Release %s" -#: apt-pkg/indexrecords.cc:94 +#: apt-pkg/indexrecords.cc:97 #, c-format msgid "No Hash entry in Release file %s" msgstr "Pas d'entrée de hachage dans le fichier Release %s" -#: apt-pkg/indexrecords.cc:107 +#: apt-pkg/indexrecords.cc:110 #, c-format msgid "Invalid 'Valid-Until' entry in Release file %s" msgstr "Entrée « Valid-Until » non valable dans le fichier Release %s" -#: apt-pkg/indexrecords.cc:122 +#: apt-pkg/indexrecords.cc:125 #, c-format msgid "Invalid 'Date' entry in Release file %s" msgstr "Entrée « Date » non valable dans le fichier Release %s" @@ -3191,22 +3246,22 @@ msgstr "Écriture de la nouvelle liste de sources\n" msgid "Source list entries for this disc are:\n" msgstr "Les entrées de listes de sources pour ce disque sont :\n" -#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:908 +#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909 #, c-format msgid "Wrote %i records.\n" msgstr "%i enregistrements écrits.\n" -#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:910 +#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "%i enregistrements écrits avec %i fichiers manquants.\n" -#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:913 +#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "%i enregistrements écrits avec %i fichiers qui ne correspondent pas\n" -#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:916 +#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" @@ -3291,12 +3346,12 @@ msgstr "" msgid "Installing %s" msgstr "Installation de %s" -#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:823 +#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:819 #, c-format msgid "Configuring %s" msgstr "Configuration de %s" -#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:830 +#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:826 #, c-format msgid "Removing %s" msgstr "Suppression de %s" @@ -3317,76 +3372,76 @@ msgid "Running post-installation trigger %s" msgstr "Exécution des actions différées (« trigger ») de %s" #. FIXME: use a better string after freeze -#: apt-pkg/deb/dpkgpm.cc:646 +#: apt-pkg/deb/dpkgpm.cc:642 #, c-format msgid "Directory '%s' missing" msgstr "Répertoire %s inexistant" -#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:675 +#: apt-pkg/deb/dpkgpm.cc:657 apt-pkg/deb/dpkgpm.cc:671 #, c-format msgid "Could not open file '%s'" msgstr "Impossible d'ouvrir le fichier « %s »" -#: apt-pkg/deb/dpkgpm.cc:816 +#: apt-pkg/deb/dpkgpm.cc:812 #, c-format msgid "Preparing %s" msgstr "Préparation de %s" -#: apt-pkg/deb/dpkgpm.cc:817 +#: apt-pkg/deb/dpkgpm.cc:813 #, c-format msgid "Unpacking %s" msgstr "Décompression de %s" -#: apt-pkg/deb/dpkgpm.cc:822 +#: apt-pkg/deb/dpkgpm.cc:818 #, c-format msgid "Preparing to configure %s" msgstr "Préparation de la configuration de %s" -#: apt-pkg/deb/dpkgpm.cc:824 +#: apt-pkg/deb/dpkgpm.cc:820 #, c-format msgid "Installed %s" msgstr "%s installé" -#: apt-pkg/deb/dpkgpm.cc:829 +#: apt-pkg/deb/dpkgpm.cc:825 #, c-format msgid "Preparing for removal of %s" msgstr "Préparation de la suppression de %s" -#: apt-pkg/deb/dpkgpm.cc:831 +#: apt-pkg/deb/dpkgpm.cc:827 #, c-format msgid "Removed %s" msgstr "%s supprimé" -#: apt-pkg/deb/dpkgpm.cc:836 +#: apt-pkg/deb/dpkgpm.cc:832 #, c-format msgid "Preparing to completely remove %s" msgstr "Préparation de la suppression complète de %s" -#: apt-pkg/deb/dpkgpm.cc:837 +#: apt-pkg/deb/dpkgpm.cc:833 #, c-format msgid "Completely removed %s" msgstr "%s complètement supprimé" -#: apt-pkg/deb/dpkgpm.cc:1043 +#: apt-pkg/deb/dpkgpm.cc:1039 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" "Impossible d'écrire le journal, échec d'openpty()\n" "(/dev/pts est-il monté ?)\n" -#: apt-pkg/deb/dpkgpm.cc:1074 +#: apt-pkg/deb/dpkgpm.cc:1070 msgid "Running dpkg" msgstr "Exécution de dpkg" -#: apt-pkg/deb/dpkgpm.cc:1277 +#: apt-pkg/deb/dpkgpm.cc:1273 msgid "No apport report written because MaxReports is reached already" msgstr "Aucun rapport « apport » écrit car MaxReports a déjà été atteint" #. check if its not a follow up error -#: apt-pkg/deb/dpkgpm.cc:1282 +#: apt-pkg/deb/dpkgpm.cc:1278 msgid "dependency problems - leaving unconfigured" msgstr "problème de dépendances : laissé non configuré" -#: apt-pkg/deb/dpkgpm.cc:1284 +#: apt-pkg/deb/dpkgpm.cc:1280 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." @@ -3394,14 +3449,14 @@ msgstr "" "Aucun rapport « apport » n'a été créé car le message d'erreur indique une " "erreur consécutive à un échec précédent." -#: apt-pkg/deb/dpkgpm.cc:1290 +#: apt-pkg/deb/dpkgpm.cc:1286 msgid "" "No apport report written because the error message indicates a disk full " "error" msgstr "" "Aucun rapport « apport » n'a été créé car un disque plein a été signalé" -#: apt-pkg/deb/dpkgpm.cc:1296 +#: apt-pkg/deb/dpkgpm.cc:1292 msgid "" "No apport report written because the error message indicates a out of memory " "error" @@ -3409,7 +3464,7 @@ msgstr "" "Aucun « apport » n'a été créé car une erreur de dépassement de capacité " "mémoire a été signalée" -#: apt-pkg/deb/dpkgpm.cc:1303 +#: apt-pkg/deb/dpkgpm.cc:1299 msgid "" "No apport report written because the error message indicates a dpkg I/O error" msgstr "" @@ -3458,7 +3513,7 @@ msgstr "Aucun fichier miroir « %s » n'a été trouvé" msgid "[Mirror: %s]" msgstr "[Miroir : %s]" -#: methods/rred.cc:465 +#: methods/rred.cc:503 #, c-format msgid "" "Could not patch %s with mmap and with file operation usage - the patch seems " @@ -3467,7 +3522,7 @@ msgstr "" "Impossible de modifier %s avec mmap et l'utilisation des opérations de " "fichiers : le correctif semble être corrompu." -#: methods/rred.cc:470 +#: methods/rred.cc:508 #, c-format msgid "" "Could not patch %s with mmap (but no mmap specific fail) - the patch seems " -- cgit v1.2.3-70-g09d2 From e26a777c3219388605445ab9a1ffffc154799248 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Thu, 17 Feb 2011 15:23:50 +0100 Subject: * apt-pkg/depcache.cc: - party revert fix in 0.8.11.2 which marked all packages as manual installed if the FromUser bit is set in the MarkInstall call. The default for this bit is true and aptitude depends on the old behavior so the package is only marked as manual if its not marked ("old" behavior) or if automatic installation is enabled - which aptitude disables always (see also #613775) --- apt-pkg/depcache.cc | 6 ++++-- debian/changelog | 12 +++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'debian') diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 0c5b77732..ddbd37699 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1257,8 +1257,10 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, if(FromUser) { - // Set it to manual if it's a new install or already installed - if(P.Status == 2 || Pkg->CurrentVer != 0) + // Set it to manual if it's a new install or already installed, + // but only if its not marked by the autoremover (aptitude depend on this behavior) + // or if we do automatic installation (aptitude never does it) + if(P.Status == 2 || (Pkg->CurrentVer != 0 && (AutoInst == true || P.Marked == false))) P.Flags &= ~Flag::Auto; } else diff --git a/debian/changelog b/debian/changelog index fc44d386e..db888a3cb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,21 @@ apt (0.8.11.5) UNRELEASED; urgency=low + [ Christian Perrier ] * Add missing dot in French translation of manpages. Merci, Olivier Humbert. * French translation update * French manpages translation update - -- Christian Perrier <bubulle@debian.org> Tue, 15 Feb 2011 18:26:08 +0100 + [ David Kalnischkies ] + * apt-pkg/depcache.cc: + - party revert fix in 0.8.11.2 which marked all packages as manual + installed if the FromUser bit is set in the MarkInstall call. + The default for this bit is true and aptitude depends on the old + behavior so the package is only marked as manual if its not marked + ("old" behavior) or if automatic installation is enabled - which + aptitude disables always (see also #613775) + + -- David Kalnischkies <kalnischkies@gmail.com> Thu, 17 Feb 2011 15:16:31 +0100 apt (0.8.11.4) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 8429cff25c3f1602dbff5e9b87d1522df34eafbc Mon Sep 17 00:00:00 2001 From: Michael Vogt <mvo@debian.org> Date: Thu, 17 Feb 2011 18:31:03 +0100 Subject: releasing version 0.8.11.5 --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index db888a3cb..40fb45014 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.8.11.5) UNRELEASED; urgency=low +apt (0.8.11.5) unstable; urgency=low [ Christian Perrier ] * Add missing dot in French translation of manpages. Merci, Olivier -- cgit v1.2.3-70-g09d2 From 20b6c6f12ab0a2aeabde213eac102938e74fac2e Mon Sep 17 00:00:00 2001 From: Michael Vogt <mvo@debian.org> Date: Thu, 17 Feb 2011 19:16:56 +0100 Subject: debian/control: remove Luca Bruno from the maintainers (on his own request) --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/control b/debian/control index 7e4b798d9..ba0901538 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: important Maintainer: APT Development Team <deity@lists.debian.org> Uploaders: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>, Christian Perrier <bubulle@debian.org>, Daniel Burrows <dburrows@debian.org>, - Luca Bruno <lethalman88@gmail.com>, Julian Andres Klode <jak@debian.org> + Julian Andres Klode <jak@debian.org> Standards-Version: 3.9.0 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 -- cgit v1.2.3-70-g09d2 From ef84d828654860954cdf2b63aa16f7680adcf352 Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Fri, 18 Feb 2011 05:55:23 +0100 Subject: * Fix error in French translation of manpages (apt_preferences(5)). Merci, Rémi Vanicat. Closes: #613689 * Complete French manpage translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 8 ++++++++ doc/po/fr.po | 45 +++++++++++++++++++++------------------------ 2 files changed, 29 insertions(+), 24 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 40fb45014..bb0b11147 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +apt (0.8.11.6) UNRELEASED; urgency=low + + * Fix error in French translation of manpages (apt_preferences(5)). + Merci, Rémi Vanicat. Closes: #613689 + * Complete French manpage translation + + -- Christian Perrier <bubulle@debian.org> Fri, 18 Feb 2011 05:53:49 +0100 + apt (0.8.11.5) unstable; urgency=low [ Christian Perrier ] diff --git a/doc/po/fr.po b/doc/po/fr.po index c31aa2e6a..660bc740a 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2011-02-14 13:42+0100\n" -"PO-Revision-Date: 2011-02-16 19:38+0100\n" +"PO-Revision-Date: 2011-02-17 07:50+0100\n" "Last-Translator: Christian Perrier <bubulle@debian.org>\n" "Language-Team: French <debian-l10n-french@lists.debian.org>\n" "Language: \n" @@ -5402,7 +5402,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><orderedlist><listitem><para> #: apt.conf.5.xml:52 -#, fuzzy #| msgid "" #| "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending " #| "order which have no or \"<literal>conf</literal>\" as filename extension " @@ -5420,7 +5419,8 @@ msgstr "" "alphanumérique ascendant qui ont soit l'extension \"<literal>conf</literal>" "\", soit aucune extension et qui ne contiennent que des caractères " "alphanumériques, des tirets (-), des caractères de soulignement (_) et des " -"points (.), les autres fichiers étant ignorés." +"points (.), les autres fichiers étant ignorés. Dans le cas contraire, APT affichera un avertissement indiquant qu'il a ignoré un fichier si celui-ci ne correspond par à un motif défini dans <literal>" +"Dir::Ignore-Files-Silently</literal> (les fichiers correspondant à cette variable de configuration étant, eux, ignorés silencieusemennt)." #. type: Content of: <refentry><refsect1><orderedlist><listitem><para> #: apt.conf.5.xml:59 @@ -6444,7 +6444,6 @@ msgstr "Dir::Bin::bzip2 \"/bin/bzip2\";" #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para> #: apt.conf.5.xml:442 -#, fuzzy #| msgid "" #| "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</" #| "replaceable></literal> will be checked: If this setting exists the method " @@ -6487,6 +6486,8 @@ msgid "" "uncompressed files a preference, but note that most archives doesn't provide " "uncompressed files so this is mostly only useable for local mirrors." msgstr "" +"Le type spécial <literal>uncompressed</literal> peut servir à donner la préférence aux fichiers non compressés. Veuillez noter que la plupart des archives ne fournissent pas de fichiers non compressés, donc ce " +"réglage est surtout destiné aux miroirs locaux." #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><term> #: apt.conf.5.xml:454 @@ -6925,7 +6926,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><refsect2><para> #: apt.conf.5.xml:621 -#, fuzzy #| msgid "" #| "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 " @@ -7774,7 +7774,6 @@ msgstr "" #. type: Content of: <refentry><refsect1><para> #: apt_preferences.5.xml:70 -#, fuzzy #| msgid "" #| "Note that the files in the <filename>/etc/apt/preferences.d</filename> " #| "directory are parsed in alphanumeric ascending order and need to obey the " @@ -7796,8 +7795,8 @@ msgstr "" "d</filename> sont analysés par ordre alphanumérique ascendant, doivent avoir " "l'extension \"<literal>pref</literal>\" ou aucune extension et ne peuvent " "continir que des caractères alphanumériques, des tirets (-), des caractères " -"de soulignement (_) et des points (.). Dans le cas contraire, ils seront " -"ignorés sans avertissement." +"de soulignement (_) et des points (.). Dans le cas contraire, APT affichera un avertissement indiquant qu'il a ignoré un fichier si celui-ci ne correspond par à un motif défini dans <literal>" +"Dir::Ignore-Files-Silently</literal> (les fichiers correspondant à cette variable de configuration étant, eux, ignorés silencieusemennt)." #. type: Content of: <refentry><refsect1><refsect2><title> #: apt_preferences.5.xml:79 @@ -8893,7 +8892,7 @@ msgstr "" "\n" "Explanation: Debian unstable porte toujours le nom sid\n" "Package: *\n" -"Pin: release a=sid\n" +"Pin: release n=sid\n" "Pin-Priority: 800\n" "\n" "Package: *\n" @@ -9024,7 +9023,6 @@ msgstr "sources.list.d" #. type: Content of: <refentry><refsect1><para> #: sources.list.5.xml:54 -#, fuzzy #| msgid "" #| "The <filename>/etc/apt/sources.list.d</filename> directory provides a way " #| "to add sources.list entries in separate files. The format is the same as " @@ -9048,7 +9046,8 @@ msgstr "" "fichier <filename>sources.list</filename>. Les noms de fichiers doivent se " "terminer par <filename>.list</filename> et ne peuvent contenir que des " "lettres (a-z et A-Z), des chiffres (0-9), des caractères de soulignement " -"(_), des tirets et des points. Dans le cas contraire, ils seront ignorés." +"(_), des tirets et des points. Dans le cas contraire, APT affichera un avertissement indiquant qu'il a ignoré un fichier si celui-ci ne correspond par à un motif défini dans <literal>Dir::Ignore-Files-Silently<" +"/literal> (les fichiers correspondant à cette variable de configuration étant, eux, ignorés silencieusemennt)." #. type: Content of: <refentry><refsect1><title> #: sources.list.5.xml:65 @@ -9057,7 +9056,6 @@ msgstr "Les types deb et deb-src." #. type: Content of: <refentry><refsect1><para> #: sources.list.5.xml:66 -#, fuzzy #| msgid "" #| "The <literal>deb</literal> type describes a typical two-level Debian " #| "archive, <filename>distribution/component</filename>. Typically, " @@ -9082,10 +9080,10 @@ msgid "" msgstr "" "Le type <literal>deb</literal> décrit une archive Debian classique à deux " "niveaux, <filename>distribution/composant</filename>. <literal>distribution</" -"literal> peut prendre l'une des valeurs suivantes : <literal>stable</" -"literal>, <literal>unstable</literal>, ou <literal>testing</literal>, et " -"composant : <literal>main</literal>, <literal>contrib</literal>, " -"<literal>non-free</literal>, ou <literal>non-us</literal>. Le type " +"literal> peut prendre l'une des valeurs suivantes : un nom d'archive tel que <literal>stable</" +"literal> ou <literal>testing</literal> ou bien un nom de code comme <literal>&stable-codename;</literal> ou <literal>&testing-codename;</ literal>, alors que " +"composant prend les valeurs : <literal>main</literal>, <literal>contrib</literal> ou " +"<literal>non-free</literal>. Le type " "<literal>deb-src</literal> décrit une archive de distribution de code source " "pour une distribution Debian dans le même format que le type <literal>deb</" "literal>. Une ligne <literal>deb-src</literal> est nécessaire pour récupérer " @@ -9437,14 +9435,13 @@ msgstr "deb ftp://ftp.debian.org/debian unstable contrib" #. type: Content of: <refentry><refsect1><para><literallayout> #: sources.list.5.xml:230 -#, fuzzy, no-wrap +#, no-wrap #| msgid "deb http://ftp.de.debian.org/debian-non-US unstable/binary-$(ARCH)/" msgid "deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/" -msgstr "deb http://ftp.de.debian.org/debian-non-US unstable/binary-$(ARCH)/" +msgstr "deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/" #. type: Content of: <refentry><refsect1><para> #: sources.list.5.xml:223 -#, fuzzy #| msgid "" #| "Uses HTTP to access the archive at nonus.debian.org, under the debian-non-" #| "US directory, and uses only files found under <filename>unstable/binary-" @@ -9462,13 +9459,13 @@ msgid "" "archives are not structured like this] <placeholder type=\"literallayout\" " "id=\"0\"/>" msgstr "" -"Utiliser HTTP pour accéder à l'archive située à nonus.debian.org, dans le " -"répertoire debian-non-US, et n'utiliser que les fichiers trouvés dans " +"Utiliser HTTP pour accéder à l'archive située à ftp.tlh.debian.org, dans le " +"répertoire universe, et n'utiliser que les fichiers trouvés dans " "<filename>unstable/binary-i386</filename> pour les machines i386, dans " -"<filename>unstable/binary-m68k</filename> pour les machines m68k et ainsi de " +"<filename>unstable/binary-amd64</filename> pour les machines amd64 et ainsi de " "suite pour les autres architectures reconnues. [Notez que cet exemple montre " -"seulement la manière d'utiliser la variable à substituer, non-us n'étant " -"plus structuré de cette manière.] <placeholder type=\"literallayout\" id=" +"seulement la manière d'utiliser la variable à substituer, les archives Debian n'étant " +"plas structurées de cette manière.] <placeholder type=\"literallayout\" id=" "\"0\"/>" #. type: Content of: <refentry><refsect1><para> -- cgit v1.2.3-70-g09d2 From c7ce5038c9caa0730d037fff0b448d9e32ae5552 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 11:16:47 +0100 Subject: fix the pointer to the VCS-Bzr --- debian/changelog | 7 ++++--- debian/control | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 76f137ea1..695b362ed 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,11 @@ -apt (0.8.10.4) UNRELEASED; urgency=low +apt (0.8.10.3+squeeze1) UNRELEASED; urgency=low + [ Michael Vogt ] * debian/control: - - make Vcs-Bzr point to http://bzr.debian.org/apt/debian-squeeze + - make Vcs-Bzr point to http://bzr.debian.org/apt/apt/debian-squeeze branch - -- Michael Vogt <mvo@debian.org> Wed, 02 Feb 2011 22:42:36 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 11:15:06 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/debian/control b/debian/control index 59bf7a7a7..0eea1a800 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Uploaders: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>, 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-squeeze +Vcs-Bzr: http://bzr.debian.org/apt/apt/debian-squeeze/ Package: apt Architecture: any -- cgit v1.2.3-70-g09d2 From a7476cb43894d6d019d6ecde31ff418fc472c2b6 Mon Sep 17 00:00:00 2001 From: Christian Perrier <bubulle@debian.org> Date: Tue, 22 Feb 2011 11:21:18 +0100 Subject: Fix error in French translation of manpages (apt_preferences(5)). Merci, Rémi Vanicat. Closes: #613689 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 7 ++++++- doc/po/fr.po | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 695b362ed..364203044 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,7 +5,12 @@ apt (0.8.10.3+squeeze1) UNRELEASED; urgency=low - make Vcs-Bzr point to http://bzr.debian.org/apt/apt/debian-squeeze branch - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 11:15:06 +0100 + [ Christian Perrier ] + * Fix error in French translation of manpages (apt_preferences(5)). + Merci, Rémi Vanicat. Closes: #613689 + + + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 11:19:50 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/doc/po/fr.po b/doc/po/fr.po index cd95d1727..ddfc525ff 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -8809,7 +8809,7 @@ msgstr "" "\n" "Explanation: Debian unstable porte toujours le nom sid\n" "Package: *\n" -"Pin: release a=sid\n" +"Pin: release n=sid\n" "Pin-Priority: 800\n" "\n" "Package: *\n" -- cgit v1.2.3-70-g09d2 From 0ff1a4556c0a0fb76ce48e88031eff2b4d613c5e Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 11:26:47 +0100 Subject: * apt-pkg/contrib/fileutl.cc: - reorder the loaded filesize bytes for big endian (Closes: #612986) Thanks to Jörg Sommer for the detailed analyse! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apt-pkg/contrib/fileutl.cc | 14 +++++++++++++- debian/changelog | 6 +++++- 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index f4ab066d7..266d480a4 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -42,6 +42,11 @@ #include <errno.h> #include <set> #include <algorithm> + +#include <config.h> +#ifdef WORDS_BIGENDIAN +#include <inttypes.h> +#endif /*}}}*/ using namespace std; @@ -940,9 +945,16 @@ unsigned long FileFd::Size() off_t orig_pos = lseek(iFd, 0, SEEK_CUR); if (lseek(iFd, -4, SEEK_END) < 0) return _error->Errno("lseek","Unable to seek to end of gzipped file"); + size = 0L; if (read(iFd, &size, 4) != 4) return _error->Errno("read","Unable to read original size of gzipped file"); - size &= 0xFFFFFFFF; + +#ifdef WORDS_BIGENDIAN + uint32_t tmp_size = size; + uint8_t const * const p = (uint8_t const * const) &tmp_size; + tmp_size = (p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]; + size = tmp_size; +#endif if (lseek(iFd, orig_pos, SEEK_SET) < 0) return _error->Errno("lseek","Unable to seek in gzipped file"); diff --git a/debian/changelog b/debian/changelog index 364203044..b3907ac0f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,8 +9,12 @@ apt (0.8.10.3+squeeze1) UNRELEASED; urgency=low * Fix error in French translation of manpages (apt_preferences(5)). Merci, Rémi Vanicat. Closes: #613689 + [ David Kalnischkies ] + * apt-pkg/contrib/fileutl.cc: + - reorder the loaded filesize bytes for big endian (Closes: #612986) + Thanks to Jörg Sommer for the detailed analyse! - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 11:19:50 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 11:25:58 +0100 apt (0.8.10.3) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From bc33e0f0b6b1fdb010dcd4a49a78b827530052aa Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 12:50:47 +0100 Subject: * ftparchive/multicompress.cc, apt-inst/deb/debfile.cc: - support xz compressor to create xz-compressed Indexes and be able to open data.tar.xz files --- apt-inst/deb/debfile.cc | 8 +++++++- debian/changelog | 5 ++++- ftparchive/contents.cc | 6 +++++- ftparchive/multicompress.cc | 1 + test/integration/framework | 8 +++++--- 5 files changed, 22 insertions(+), 6 deletions(-) (limited to 'debian') diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index cd7a88808..edd78adbb 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -46,7 +46,9 @@ debDebFile::debDebFile(FileFd &File) : File(File), AR(File) if (!CheckMember("data.tar.gz") && !CheckMember("data.tar.bz2") && - !CheckMember("data.tar.lzma")) { + !CheckMember("data.tar.lzma") && + !CheckMember("data.tar.xz")) { + // FIXME: add data.tar.xz here - adding it now would require a Translation round for a very small gain _error->Error(_("This is not a valid DEB archive, it has no '%s', '%s' or '%s' member"), "data.tar.gz", "data.tar.bz2", "data.tar.lzma"); return; } @@ -136,6 +138,10 @@ bool debDebFile::ExtractArchive(pkgDirStream &Stream) Member = AR.FindMember("data.tar.lzma"); Compressor = "lzma"; } + if (Member == 0) { + Member = AR.FindMember("data.tar.xz"); + Compressor = "xz"; + } if (Member == 0) return _error->Error(_("Internal error, could not locate member")); if (File.Seek(Member->Start) == false) diff --git a/debian/changelog b/debian/changelog index b3907ac0f..bf72e350d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,8 +13,11 @@ apt (0.8.10.3+squeeze1) UNRELEASED; urgency=low * apt-pkg/contrib/fileutl.cc: - reorder the loaded filesize bytes for big endian (Closes: #612986) Thanks to Jörg Sommer for the detailed analyse! + * ftparchive/multicompress.cc, apt-inst/deb/debfile.cc: + - support xz compressor to create xz-compressed Indexes and be able + to open data.tar.xz files - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 11:25:58 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 12:47:31 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/ftparchive/contents.cc b/ftparchive/contents.cc index b761d9204..9e283cf33 100644 --- a/ftparchive/contents.cc +++ b/ftparchive/contents.cc @@ -317,9 +317,13 @@ bool ContentsExtract::Read(debDebFile &Deb) Member = Deb.GotoMember("data.tar.lzma"); Compressor = "lzma"; } + if (Member == 0) { + Member = Deb.GotoMember("data.tar.xz"); + Compressor = "xz"; + } if (Member == 0) { _error->Error(_("Internal error, could not locate member %s"), - "data.tar.{gz,bz2,lzma}"); + "data.tar.{gz,bz2,lzma,xz}"); return false; } diff --git a/ftparchive/multicompress.cc b/ftparchive/multicompress.cc index bb4beedf9..c33414a11 100644 --- a/ftparchive/multicompress.cc +++ b/ftparchive/multicompress.cc @@ -35,6 +35,7 @@ const MultiCompress::CompType MultiCompress::Compressors[] = {"gzip",".gz","gzip","-9n","-d",2}, {"bzip2",".bz2","bzip2","-9","-d",3}, {"lzma",".lzma","lzma","-9","-d",4}, + {"xz",".xz","xz","-6","-d",5}, {}}; // MultiCompress::MultiCompress - Constructor /*{{{*/ diff --git a/test/integration/framework b/test/integration/framework index 2422f0886..6545cf3ce 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -251,9 +251,9 @@ createaptftparchiveconfig() { echo -n '"; }; Default { - Packages::Compress ". gzip bzip2 lzma"; - Sources::Compress ". gzip bzip2 lzma"; - Contents::Compress ". gzip bzip2 lzma"; + Packages::Compress ". gzip bzip2 lzma xz"; + Sources::Compress ". gzip bzip2 lzma xz"; + Contents::Compress ". gzip bzip2 lzma xz"; }; TreeDefault { Directory "pool/"; @@ -332,6 +332,7 @@ buildaptarchivefromfiles() { cat Packages | gzip > Packages.gz cat Packages | bzip2 > Packages.bz2 cat Packages | lzma > Packages.lzma + cat Packages | xz > Packages.xz msgdone "info" fi if [ -f Sources ]; then @@ -339,6 +340,7 @@ buildaptarchivefromfiles() { cat Sources | gzip > Sources.gz cat Sources | bzip2 > Sources.bz2 cat Sources | lzma > Sources.lzma + cat Sources | xz > Sources.xz msgdone "info" fi msgninfo "\tRelease file… " -- cgit v1.2.3-70-g09d2 From cb12d0a677b63b6faeaefeda475c466d66fed212 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 13:24:40 +0100 Subject: * ftparchive/writer.cc: - ensure that Date and Valid-Until time strings are not localised --- debian/changelog | 8 +++++++- ftparchive/writer.cc | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index bb0b11147..4712e80c4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,16 @@ + apt (0.8.11.6) UNRELEASED; urgency=low + [ Christian Perrier ] * Fix error in French translation of manpages (apt_preferences(5)). Merci, Rémi Vanicat. Closes: #613689 * Complete French manpage translation - -- Christian Perrier <bubulle@debian.org> Fri, 18 Feb 2011 05:53:49 +0100 + [ David Kalnischkies ] + * ftparchive/writer.cc: + - ensure that Date and Valid-Until time strings are not localised + + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 13:22:58 +0100 apt (0.8.11.5) unstable; urgency=low diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 9cdca8d3e..80ec61ab9 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -925,6 +925,9 @@ ReleaseWriter::ReleaseWriter(string const &DB) Output = stdout; time_t const now = time(NULL); + + setlocale(LC_TIME, "C"); + char datestr[128]; if (strftime(datestr, sizeof(datestr), "%a, %d %b %Y %H:%M:%S UTC", gmtime(&now)) == 0) @@ -941,6 +944,8 @@ ReleaseWriter::ReleaseWriter(string const &DB) validstr[0] = '\0'; } + setlocale(LC_TIME, ""); + map<string,string> Fields; Fields["Origin"] = ""; Fields["Label"] = ""; -- cgit v1.2.3-70-g09d2 From 3c54407f8783d5e27363eabf41dbc3d031526ffe Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 14:49:16 +0100 Subject: add options to disable specific checksums for Indexes --- debian/changelog | 4 +- doc/apt-ftparchive.1.xml | 11 ++-- ftparchive/apt-ftparchive.cc | 2 + ftparchive/writer.cc | 143 ++++++++++++++++++++++++++----------------- ftparchive/writer.h | 6 +- 5 files changed, 101 insertions(+), 65 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 4712e80c4..bbb973b8f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,3 @@ - apt (0.8.11.6) UNRELEASED; urgency=low [ Christian Perrier ] @@ -9,8 +8,9 @@ apt (0.8.11.6) UNRELEASED; urgency=low [ David Kalnischkies ] * ftparchive/writer.cc: - ensure that Date and Valid-Until time strings are not localised + - add options to disable specific checksums for Indexes - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 13:22:58 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 14:48:21 +0100 apt (0.8.11.5) unstable; urgency=low diff --git a/doc/apt-ftparchive.1.xml b/doc/apt-ftparchive.1.xml index 0090d21d9..8e5df1f36 100644 --- a/doc/apt-ftparchive.1.xml +++ b/doc/apt-ftparchive.1.xml @@ -526,11 +526,14 @@ for i in Sections do &apt-cmdblurb; <variablelist> - <varlistentry><term><option>--md5</option></term> + <varlistentry><term><option>--md5</option>, <option>--sha1</option>, <option>--sha256</option></term> <listitem><para> - Generate MD5 sums. This defaults to on, when turned off the generated - index files will not have MD5Sum fields where possible. - Configuration Item: <literal>APT::FTPArchive::MD5</literal></para></listitem> + Generate the given checksum. These options default to on, when turned off the generated + index files will not have the checksum fields where possible. + Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</replaceable></literal> and + <literal>APT::FTPArchive::<replaceable>Index</replaceable>::<replaceable>Checksum</replaceable></literal> where + <literal>Index</literal> can be <literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</literal> and + <literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>.</para></listitem> </varlistentry> <varlistentry><term><option>-d</option></term><term><option>--db</option></term> diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index 0c29002e6..0762a2b28 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -949,6 +949,8 @@ int main(int argc, const char *argv[]) CommandLine::Args Args[] = { {'h',"help","help",0}, {0,"md5","APT::FTPArchive::MD5",0}, + {0,"sha1","APT::FTPArchive::SHA1",0}, + {0,"sha256","APT::FTPArchive::SHA256",0}, {'v',"version","version",0}, {'d',"db","APT::FTPArchive::DB",CommandLine::HasArg}, {'s',"source-override","APT::FTPArchive::SourceOverride",CommandLine::HasArg}, diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 80ec61ab9..d3a19ca28 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -59,6 +59,10 @@ FTWScanner::FTWScanner(string const &Arch): Arch(Arch) { ErrorPrinted = false; NoLinkAct = !_config->FindB("APT::FTPArchive::DeLinkAct",true); + + DoMD5 = _config->FindB("APT::FTPArchive::MD5",true); + DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true); + DoSHA256 = _config->FindB("APT::FTPArchive::SHA256",true); } /*}}}*/ // FTWScanner::Scanner - FTW Scanner /*{{{*/ @@ -308,9 +312,9 @@ PackagesWriter::PackagesWriter(string const &DB,string const &Overrides,string c DeLinkLimit = 0; // Process the command line options - DoMD5 = _config->FindB("APT::FTPArchive::MD5",true); - DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true); - DoSHA256 = _config->FindB("APT::FTPArchive::SHA256",true); + DoMD5 = _config->FindB("APT::FTPArchive::Packages::MD5",DoMD5); + DoSHA1 = _config->FindB("APT::FTPArchive::Packages::SHA1",DoSHA1); + DoSHA256 = _config->FindB("APT::FTPArchive::Packages::SHA256",DoSHA256); DoAlwaysStat = _config->FindB("APT::FTPArchive::AlwaysStat", false); DoContents = _config->FindB("APT::FTPArchive::Contents",true); NoOverride = _config->FindB("APT::FTPArchive::NoOverrideMsg",false); @@ -435,9 +439,12 @@ bool PackagesWriter::DoPackage(string FileName) unsigned int End = 0; SetTFRewriteData(Changes[End++], "Size", Size); - SetTFRewriteData(Changes[End++], "MD5sum", Db.MD5Res.c_str()); - SetTFRewriteData(Changes[End++], "SHA1", Db.SHA1Res.c_str()); - SetTFRewriteData(Changes[End++], "SHA256", Db.SHA256Res.c_str()); + if (DoMD5 == true) + SetTFRewriteData(Changes[End++], "MD5sum", Db.MD5Res.c_str()); + if (DoSHA1 == true) + SetTFRewriteData(Changes[End++], "SHA1", Db.SHA1Res.c_str()); + if (DoSHA256 == true) + SetTFRewriteData(Changes[End++], "SHA256", Db.SHA256Res.c_str()); SetTFRewriteData(Changes[End++], "Filename", NewFileName.c_str()); SetTFRewriteData(Changes[End++], "Priority", OverItem->Priority.c_str()); SetTFRewriteData(Changes[End++], "Status", 0); @@ -559,6 +566,9 @@ SourcesWriter::SourcesWriter(string const &BOverrides,string const &SOverrides, BufSize = 0; // Process the command line options + DoMD5 = _config->FindB("APT::FTPArchive::Sources::MD5",DoMD5); + DoSHA1 = _config->FindB("APT::FTPArchive::Sources::SHA1",DoSHA1); + DoSHA256 = _config->FindB("APT::FTPArchive::Sources::SHA256",DoSHA256); NoOverride = _config->FindB("APT::FTPArchive::NoOverrideMsg",false); // Read the override file @@ -608,13 +618,17 @@ bool SourcesWriter::DoPackage(string FileName) // Hash the file char *Start = Buffer; char *BlkEnd = Buffer + St.st_size; - MD5Summation MD5; - MD5.Add((unsigned char *)Start,BlkEnd - Start); + MD5Summation MD5; SHA1Summation SHA1; SHA256Summation SHA256; - SHA1.Add((unsigned char *)Start,BlkEnd - Start); - SHA256.Add((unsigned char *)Start,BlkEnd - Start); + + if (DoMD5 == true) + MD5.Add((unsigned char *)Start,BlkEnd - Start); + if (DoSHA1 == true) + SHA1.Add((unsigned char *)Start,BlkEnd - Start); + if (DoSHA256 == true) + SHA256.Add((unsigned char *)Start,BlkEnd - Start); // Add an extra \n to the end, just in case *BlkEnd++ = '\n'; @@ -708,19 +722,19 @@ bool SourcesWriter::DoPackage(string FileName) // Add the dsc to the files hash list string const strippedName = flNotDir(FileName); std::ostringstream ostreamFiles; - if (Tags.Exists("Files")) + if (DoMD5 == true && Tags.Exists("Files")) ostreamFiles << "\n " << string(MD5.Result()) << " " << St.st_size << " " << strippedName << "\n " << Tags.FindS("Files"); string const Files = ostreamFiles.str(); std::ostringstream ostreamSha1; - if (Tags.Exists("Checksums-Sha1")) + if (DoSHA1 == true && Tags.Exists("Checksums-Sha1")) ostreamSha1 << "\n " << string(SHA1.Result()) << " " << St.st_size << " " << strippedName << "\n " << Tags.FindS("Checksums-Sha1"); string const ChecksumsSha1 = ostreamSha1.str(); std::ostringstream ostreamSha256; - if (Tags.Exists("Checksums-Sha256")) + if (DoSHA256 == true && Tags.Exists("Checksums-Sha256")) ostreamSha256 << "\n " << string(SHA256.Result()) << " " << St.st_size << " " << strippedName << "\n " << Tags.FindS("Checksums-Sha256"); string const ChecksumsSha256 = ostreamSha256.str(); @@ -774,9 +788,12 @@ bool SourcesWriter::DoPackage(string FileName) unsigned int End = 0; SetTFRewriteData(Changes[End++],"Source",Package.c_str(),"Package"); - SetTFRewriteData(Changes[End++],"Files",Files.c_str()); - SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1.c_str()); - SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256.c_str()); + if (Files.empty() == false) + SetTFRewriteData(Changes[End++],"Files",Files.c_str()); + if (ChecksumsSha1.empty() == false) + SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1.c_str()); + if (ChecksumsSha256.empty() == false) + SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256.c_str()); if (Directory != "./") SetTFRewriteData(Changes[End++],"Directory",Directory.c_str()); SetTFRewriteData(Changes[End++],"Priority",BestPrio.c_str()); @@ -969,6 +986,10 @@ ReleaseWriter::ReleaseWriter(string const &DB) fprintf(Output, "%s: %s\n", (*I).first.c_str(), Value.c_str()); } + + DoMD5 = _config->FindB("APT::FTPArchive::Release::MD5",DoMD5); + DoSHA1 = _config->FindB("APT::FTPArchive::Release::SHA1",DoSHA1); + DoSHA256 = _config->FindB("APT::FTPArchive::Release::SHA256",DoSHA256); } /*}}}*/ // ReleaseWriter::DoPackage - Process a single package /*{{{*/ @@ -1001,19 +1022,26 @@ bool ReleaseWriter::DoPackage(string FileName) CheckSums[NewFileName].size = fd.Size(); - MD5Summation MD5; - MD5.AddFD(fd.Fd(), fd.Size()); - CheckSums[NewFileName].MD5 = MD5.Result(); - - fd.Seek(0); - SHA1Summation SHA1; - SHA1.AddFD(fd.Fd(), fd.Size()); - CheckSums[NewFileName].SHA1 = SHA1.Result(); - - fd.Seek(0); - SHA256Summation SHA256; - SHA256.AddFD(fd.Fd(), fd.Size()); - CheckSums[NewFileName].SHA256 = SHA256.Result(); + if (DoMD5 == true) + { + MD5Summation MD5; + MD5.AddFD(fd.Fd(), fd.Size()); + CheckSums[NewFileName].MD5 = MD5.Result(); + fd.Seek(0); + } + if (DoSHA1 == true) + { + SHA1Summation SHA1; + SHA1.AddFD(fd.Fd(), fd.Size()); + CheckSums[NewFileName].SHA1 = SHA1.Result(); + fd.Seek(0); + } + if (DoSHA256 == true) + { + SHA256Summation SHA256; + SHA256.AddFD(fd.Fd(), fd.Size()); + CheckSums[NewFileName].SHA256 = SHA256.Result(); + } fd.Close(); @@ -1025,37 +1053,40 @@ bool ReleaseWriter::DoPackage(string FileName) // --------------------------------------------------------------------- void ReleaseWriter::Finish() { - fprintf(Output, "MD5Sum:\n"); - for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin(); - I != CheckSums.end(); - ++I) + if (DoMD5 == true) { - fprintf(Output, " %s %16ld %s\n", - (*I).second.MD5.c_str(), - (*I).second.size, - (*I).first.c_str()); + fprintf(Output, "MD5Sum:\n"); + for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin(); + I != CheckSums.end(); ++I) + { + fprintf(Output, " %s %16ld %s\n", + (*I).second.MD5.c_str(), + (*I).second.size, + (*I).first.c_str()); + } } - - fprintf(Output, "SHA1:\n"); - for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin(); - I != CheckSums.end(); - ++I) + if (DoSHA1 == true) { - fprintf(Output, " %s %16ld %s\n", - (*I).second.SHA1.c_str(), - (*I).second.size, - (*I).first.c_str()); + fprintf(Output, "SHA1:\n"); + for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin(); + I != CheckSums.end(); ++I) + { + fprintf(Output, " %s %16ld %s\n", + (*I).second.SHA1.c_str(), + (*I).second.size, + (*I).first.c_str()); + } } - - fprintf(Output, "SHA256:\n"); - for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin(); - I != CheckSums.end(); - ++I) + if (DoSHA256 == true) { - fprintf(Output, " %s %16ld %s\n", - (*I).second.SHA256.c_str(), - (*I).second.size, - (*I).first.c_str()); + fprintf(Output, "SHA256:\n"); + for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin(); + I != CheckSums.end(); ++I) + { + fprintf(Output, " %s %16ld %s\n", + (*I).second.SHA256.c_str(), + (*I).second.size, + (*I).first.c_str()); + } } } - diff --git a/ftparchive/writer.h b/ftparchive/writer.h index 3796f79f6..ce0eab7af 100644 --- a/ftparchive/writer.h +++ b/ftparchive/writer.h @@ -60,6 +60,9 @@ class FTWScanner } public: + bool DoMD5; + bool DoSHA1; + bool DoSHA256; unsigned long DeLinkLimit; string InternalPrefix; @@ -103,9 +106,6 @@ class PackagesWriter : public FTWScanner public: // Some flags - bool DoMD5; - bool DoSHA1; - bool DoSHA256; bool DoAlwaysStat; bool NoOverride; bool DoContents; -- cgit v1.2.3-70-g09d2 From cd5b597cc855a535b35e88324191931c54c6fba0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 14:52:10 +0100 Subject: * ftparchive/writer.cc: - include xz-compressed Packages and Sources files in Release file --- debian/changelog | 4 +++- ftparchive/writer.cc | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index bf72e350d..ebea1dac8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -16,8 +16,10 @@ apt (0.8.10.3+squeeze1) UNRELEASED; urgency=low * ftparchive/multicompress.cc, apt-inst/deb/debfile.cc: - support xz compressor to create xz-compressed Indexes and be able to open data.tar.xz files + * ftparchive/writer.cc: + - include xz-compressed Packages and Sources files in Release file - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 12:47:31 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 14:51:32 +0100 apt (0.8.10.3) unstable; urgency=low diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index d7d699ddc..086c44390 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -911,10 +911,12 @@ ReleaseWriter::ReleaseWriter(string const &DB) AddPattern("Packages.gz"); AddPattern("Packages.bz2"); AddPattern("Packages.lzma"); + AddPattern("Packages.xz"); AddPattern("Sources"); AddPattern("Sources.gz"); AddPattern("Sources.bz2"); AddPattern("Sources.lzma"); + AddPattern("Sources.xz"); AddPattern("Release"); AddPattern("md5sum.txt"); -- cgit v1.2.3-70-g09d2 From b2430e6d1713e26d461f08873ac872918eb28283 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 18:11:10 +0100 Subject: * apt-pkg/aptconfiguration.cc: - support download of xz-compressed indexes files --- apt-pkg/aptconfiguration.cc | 2 ++ debian/changelog | 4 +++- methods/makefile | 10 ++++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) (limited to 'debian') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 3cf4d2429..9ded431e8 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -38,11 +38,13 @@ const Configuration::getCompressionTypes(bool const &Cached) { // setup the defaults for the compressiontypes => method mapping _config->CndSet("Acquire::CompressionTypes::bz2","bzip2"); + _config->CndSet("Acquire::CompressionTypes::xz","xz"); _config->CndSet("Acquire::CompressionTypes::lzma","lzma"); _config->CndSet("Acquire::CompressionTypes::gz","gzip"); // Set default application paths to check for optional compression types _config->CndSet("Dir::Bin::lzma", "/usr/bin/lzma"); + _config->CndSet("Dir::Bin::xz", "/usr/bin/xz"); _config->CndSet("Dir::Bin::bzip2", "/bin/bzip2"); // accept non-list order as override setting for config settings on commandline diff --git a/debian/changelog b/debian/changelog index 92ae058c5..f0f0d342a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,8 +13,10 @@ apt (0.8.11.6) UNRELEASED; urgency=low - ensure that Date and Valid-Until time strings are not localised - add options to disable specific checksums for Indexes - include xz-compressed Packages and Sources files in Release file + * apt-pkg/aptconfiguration.cc: + - support download of xz-compressed indexes files - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 14:59:51 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 18:10:30 +0100 apt (0.8.11.5) unstable; urgency=low diff --git a/methods/makefile b/methods/makefile index 4ee356cec..6ba51058e 100644 --- a/methods/makefile +++ b/methods/makefile @@ -94,8 +94,8 @@ SOURCE = bzip2.cc include $(PROGRAM_H) # SSH and lzma method symlink -binary: $(BIN)/ssh $(BIN)/lzma -veryclean: clean-$(BIN)/ssh clean-$(BIN)/lzma +binary: $(BIN)/ssh $(BIN)/lzma $(BIN)/xz +veryclean: clean-$(BIN)/ssh clean-$(BIN)/lzma clean-$(BIN)/xz $(BIN)/ssh: echo "Installing ssh method link" @@ -108,3 +108,9 @@ $(BIN)/lzma: ln -fs bzip2 $(BIN)/lzma clean-$(BIN)/lzma: -rm $(BIN)/lzma + +$(BIN)/xz: + echo "Installing xz method link" + ln -fs bzip2 $(BIN)/xz +clean-$(BIN)/xz: + -rm $(BIN)/xz -- cgit v1.2.3-70-g09d2 From 255bfa26bb3f4ffcf372e4b2b9c95113083c7cd6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 22 Feb 2011 18:13:20 +0100 Subject: * apt-pkg/deb/debsrcrecords.cc: - support xz-compressed source v3 debian.tar files --- apt-pkg/deb/debsrcrecords.cc | 3 ++- debian/changelog | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc index 21336e1af..3809ee74f 100644 --- a/apt-pkg/deb/debsrcrecords.cc +++ b/apt-pkg/deb/debsrcrecords.cc @@ -144,7 +144,8 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List) } F.Type = string(F.Path,Tmp+1,Pos-Tmp); - if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma" || F.Type == "tar") + if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma" || + F.Type == "xz" || F.Type == "tar") { Pos = Tmp-1; continue; diff --git a/debian/changelog b/debian/changelog index ebea1dac8..d42246f7b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,8 +18,10 @@ apt (0.8.10.3+squeeze1) UNRELEASED; urgency=low to open data.tar.xz files * ftparchive/writer.cc: - include xz-compressed Packages and Sources files in Release file + * apt-pkg/deb/debsrcrecords.cc: + - support xz-compressed source v3 debian.tar files - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 14:51:32 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 18:12:21 +0100 apt (0.8.10.3) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From dc7eb288ff95230f9a0f81c6b3485b6b06802480 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Thu, 24 Feb 2011 12:24:51 +0100 Subject: * ftparchive/contents.cc: - remove ExtractArchive codecopy from apt-inst/deb/debfile.cc --- apt-inst/deb/debfile.cc | 2 +- debian/changelog | 4 +++- ftparchive/contents.cc | 31 +++---------------------------- 3 files changed, 7 insertions(+), 30 deletions(-) (limited to 'debian') diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index edd78adbb..2b1fdedc8 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -143,7 +143,7 @@ bool debDebFile::ExtractArchive(pkgDirStream &Stream) Compressor = "xz"; } if (Member == 0) - return _error->Error(_("Internal error, could not locate member")); + return _error->Error(_("Internal error, could not locate member %s"), "data.tar.{gz,bz2,lzma,xz}"); if (File.Seek(Member->Start) == false) return false; diff --git a/debian/changelog b/debian/changelog index 64da21779..6b2c35baf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,8 +17,10 @@ apt (0.8.11.6) UNRELEASED; urgency=low - support download of xz-compressed indexes files * apt-pkg/deb/debsrcrecords.cc: - support xz-compressed source v3 debian.tar files + * ftparchive/contents.cc: + - remove ExtractArchive codecopy from apt-inst/deb/debfile.cc - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 22 Feb 2011 18:14:17 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Wed, 23 Feb 2011 09:00:51 +0100 apt (0.8.11.5) unstable; urgency=low diff --git a/ftparchive/contents.cc b/ftparchive/contents.cc index 9e283cf33..eadced626 100644 --- a/ftparchive/contents.cc +++ b/ftparchive/contents.cc @@ -36,12 +36,13 @@ #include "contents.h" #include <apti18n.h> +#include <apt-pkg/debfile.h> #include <apt-pkg/extracttar.h> #include <apt-pkg/error.h> #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <malloc.h> +#include <malloc.h> /*}}}*/ // GenContents::~GenContents - Free allocated memory /*{{{*/ @@ -305,33 +306,7 @@ void GenContents::DoPrint(FILE *Out,GenContents::Node *Top, char *Buf) bool ContentsExtract::Read(debDebFile &Deb) { Reset(); - - // Get the archive member and positition the file - const ARArchive::Member *Member = Deb.GotoMember("data.tar.gz"); - const char *Compressor = "gzip"; - if (Member == 0) { - Member = Deb.GotoMember("data.tar.bz2"); - Compressor = "bzip2"; - } - if (Member == 0) { - Member = Deb.GotoMember("data.tar.lzma"); - Compressor = "lzma"; - } - if (Member == 0) { - Member = Deb.GotoMember("data.tar.xz"); - Compressor = "xz"; - } - if (Member == 0) { - _error->Error(_("Internal error, could not locate member %s"), - "data.tar.{gz,bz2,lzma,xz}"); - return false; - } - - // Extract it. - ExtractTar Tar(Deb.GetFile(),Member->Size,Compressor); - if (Tar.Go(*this) == false) - return false; - return true; + return Deb.ExtractArchive(*this); } /*}}}*/ // ContentsExtract::DoItem - Extract an item /*{{{*/ -- cgit v1.2.3-70-g09d2 From 8315b8ccf3b23e5bf78a3ba70154ae721540950c Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Thu, 24 Feb 2011 19:39:12 +0100 Subject: Italian translation update (Milo Casagrande). Closes: #614395 --- debian/changelog | 1 + po/it.po | 613 +++++++++++++++++++++++++++++++------------------------ 2 files changed, 346 insertions(+), 268 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index bb0b11147..779bcad18 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ apt (0.8.11.6) UNRELEASED; urgency=low * Fix error in French translation of manpages (apt_preferences(5)). Merci, Rémi Vanicat. Closes: #613689 * Complete French manpage translation + * Italian translation update (Milo Casagrande). Closes: #614395 -- Christian Perrier <bubulle@debian.org> Fri, 18 Feb 2011 05:53:49 +0100 diff --git a/po/it.po b/po/it.po index d61e72ef3..1f2e08bf3 100644 --- a/po/it.po +++ b/po/it.po @@ -1,21 +1,21 @@ # Italian translation of apt -# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The Free Software Foundation, Inc. +# Copyright (C) 2002-2010, 2011 The Free Software Foundation, Inc. # This file is distributed under the same license as the apt package. # Samuele Giovanni Tonon <samu@debian.org>, 2002. +# Milo Casagrande <milo@ubuntu.com>, 2009, 2010, 2011. # -# Milo Casagrande <milo@ubuntu.com>, 2009, 2010. msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-15 06:09+0100\n" -"PO-Revision-Date: 2010-08-27 20:57+0200\n" +"POT-Creation-Date: 2011-01-12 17:42+0100\n" +"PO-Revision-Date: 2011-02-21 18:35+0100\n" "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: cmdline/apt-cache.cc:156 @@ -91,82 +91,119 @@ msgstr "Totale spazio inutilizzato: " msgid "Total space accounted for: " msgstr "Totale spazio occupato: " -#: cmdline/apt-cache.cc:513 cmdline/apt-cache.cc:1142 +#: cmdline/apt-cache.cc:513 cmdline/apt-cache.cc:1194 #, c-format msgid "Package file %s is out of sync." msgstr "Il file dei pacchetti %s non è sincronizzato." -#: cmdline/apt-cache.cc:591 cmdline/apt-cache.cc:1377 -#: cmdline/apt-cache.cc:1379 cmdline/apt-cache.cc:1456 -msgid "No packages found" -msgstr "Nessun pacchetto trovato" - -#: cmdline/apt-cache.cc:1221 +#: cmdline/apt-cache.cc:1273 msgid "You must give at least one search pattern" msgstr "È necessario specificare almeno un modello per la ricerca" -#: cmdline/apt-cache.cc:1451 apt-pkg/cacheset.cc:440 +#: cmdline/apt-cache.cc:1429 cmdline/apt-cache.cc:1431 +#: cmdline/apt-cache.cc:1508 +msgid "No packages found" +msgstr "Nessun pacchetto trovato" + +#: cmdline/apt-cache.cc:1503 apt-pkg/cacheset.cc:440 #, c-format msgid "Unable to locate package %s" msgstr "Impossibile trovare il pacchetto %s" -#: cmdline/apt-cache.cc:1481 +#: cmdline/apt-cache.cc:1533 msgid "Package files:" msgstr "File dei pacchetti:" -#: cmdline/apt-cache.cc:1488 cmdline/apt-cache.cc:1586 +#: cmdline/apt-cache.cc:1540 cmdline/apt-cache.cc:1638 msgid "Cache is out of sync, can't x-ref a package file" msgstr "" "La cache non è sincronizzata, impossibile referenziare un file di pacchetti" #. Show any packages have explicit pins -#: cmdline/apt-cache.cc:1502 +#: cmdline/apt-cache.cc:1554 msgid "Pinned packages:" msgstr "Pacchetti con gancio:" -#: cmdline/apt-cache.cc:1514 cmdline/apt-cache.cc:1566 +#: cmdline/apt-cache.cc:1566 cmdline/apt-cache.cc:1618 msgid "(not found)" msgstr "(non trovato)" -#: cmdline/apt-cache.cc:1523 +#: cmdline/apt-cache.cc:1575 msgid " Installed: " msgstr " Installato: " -#: cmdline/apt-cache.cc:1524 +#: cmdline/apt-cache.cc:1576 msgid " Candidate: " msgstr " Candidato: " -#: cmdline/apt-cache.cc:1548 cmdline/apt-cache.cc:1556 +#: cmdline/apt-cache.cc:1600 cmdline/apt-cache.cc:1608 msgid "(none)" msgstr "(nessuno)" -#: cmdline/apt-cache.cc:1563 +#: cmdline/apt-cache.cc:1615 msgid " Package pin: " msgstr " Gancio del pacchetto: " #. Show the priority tables -#: cmdline/apt-cache.cc:1572 +#: cmdline/apt-cache.cc:1624 msgid " Version table:" msgstr " Tabella versione:" -#: cmdline/apt-cache.cc:1686 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:70 +#: 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:3047 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 "%s %s per %s compilato il %s %s\n" -#: cmdline/apt-cache.cc:1693 +#: cmdline/apt-cache.cc:1745 #, fuzzy +#| msgid "" +#| "Usage: apt-cache [options] command\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 query information\n" +#| "from APT's binary cache files\n" +#| "\n" +#| "Commands:\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" +#| " stats - Show some basic statistics\n" +#| " dump - Show the entire file in a terse form\n" +#| " dumpavail - Print an available file to stdout\n" +#| " unmet - Show unmet dependencies\n" +#| " search - Search the package list for a regex pattern\n" +#| " show - Show a readable record for the package\n" +#| " showauto - Display a list of automatically installed packages\n" +#| " depends - Show raw dependency information for a package\n" +#| " rdepends - Show reverse dependency information for a package\n" +#| " pkgnames - List the names of all packages in the system\n" +#| " dotty - Generate package graphs for GraphViz\n" +#| " xvcg - Generate package graphs for xvcg\n" +#| " policy - Show policy settings\n" +#| "\n" +#| "Options:\n" +#| " -h This help text.\n" +#| " -p=? The package cache.\n" +#| " -s=? The source cache.\n" +#| " -q Disable progress indicator.\n" +#| " -i Show only important deps for the unmet command.\n" +#| " -c=? Read this configuration file\n" +#| " -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" msgid "" "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 query information\n" -"from APT's binary cache files\n" +"apt-cache is a low-level tool used to manipulate APT's binary\n" +"cache files, and query information from them\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" @@ -195,7 +232,6 @@ msgid "" "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" msgstr "" "Uso: apt-cache [OPZIONI] COMANDO\n" -" apt-cache [OPZIONI] add FILE1 [FILE2 ...]\n" " apt-cache [OPZIONI] showpkg PKG1 [PKG2 ...]\n" " apt-cache [OPZIONI] showsrc PKG1 [PKG2 ...]\n" "\n" @@ -203,7 +239,6 @@ msgstr "" "i file di cache dei binari di APT e cercare informazioni in questi\n" "\n" "Comandi:\n" -" add - Aggiunge un file di pacchetti alla cache sorgente\n" " gencaches - Costruisce sia la cache dei pacchetti sia quella dei " "sorgenti\n" " showpkg - Mostra informazioni generali per un singolo pacchetto\n" @@ -312,7 +347,7 @@ msgstr "" " -c=? Legge come configurazione il file specificato\n" " -o=? Imposta un'opzione di configurazione, come -o dir::cache=/tmp\n" -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1175 +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1171 #, c-format msgid "Unable to write to %s" msgstr "Impossibile scrivere in %s" @@ -841,7 +876,7 @@ msgstr "La reinstallazione di %s non è possibile, non può essere scaricato.\n" msgid "%s is already the newest version.\n" msgstr "%s è già alla versione più recente.\n" -#: cmdline/apt-get.cc:827 cmdline/apt-get.cc:2024 +#: cmdline/apt-get.cc:827 cmdline/apt-get.cc:2027 #, c-format msgid "%s set to manually installed.\n" msgstr "È stato impostato %s per l'installazione manuale.\n" @@ -852,133 +887,133 @@ msgid "Selected version '%s' (%s) for '%s'\n" msgstr "Versione \"%s\" (%s) selezionata per \"%s\"\n" #: cmdline/apt-get.cc:858 -#, fuzzy, c-format +#, c-format msgid "Selected version '%s' (%s) for '%s' because of '%s'\n" -msgstr "Versione \"%s\" (%s) selezionata per \"%s\"\n" +msgstr "Versione \"%s\" (%s) selezionata per \"%s\" per via di \"%s\"\n" -#: cmdline/apt-get.cc:899 +#: cmdline/apt-get.cc:898 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "Il pacchetto %s non è installato e quindi non è stato rimosso\n" -#: cmdline/apt-get.cc:977 +#: cmdline/apt-get.cc:973 msgid "Correcting dependencies..." msgstr "Correzione delle dipendenze..." -#: cmdline/apt-get.cc:980 +#: cmdline/apt-get.cc:976 msgid " failed." msgstr " non riuscita." -#: cmdline/apt-get.cc:983 +#: cmdline/apt-get.cc:979 msgid "Unable to correct dependencies" msgstr "Impossibile correggere le dipendenze" -#: cmdline/apt-get.cc:986 +#: cmdline/apt-get.cc:982 msgid "Unable to minimize the upgrade set" msgstr "Impossibile minimizzare l'insieme da aggiornare" -#: cmdline/apt-get.cc:988 +#: cmdline/apt-get.cc:984 msgid " Done" msgstr " Fatto" -#: cmdline/apt-get.cc:992 +#: cmdline/apt-get.cc:988 msgid "You might want to run 'apt-get -f install' to correct these." msgstr "È utile eseguire \"apt-get -f install\" per correggere ciò." -#: cmdline/apt-get.cc:995 +#: cmdline/apt-get.cc:991 msgid "Unmet dependencies. Try using -f." msgstr "Dipendenze non trovate. Riprovare usando -f." -#: cmdline/apt-get.cc:1020 +#: cmdline/apt-get.cc:1016 msgid "WARNING: The following packages cannot be authenticated!" msgstr "ATTENZIONE: i seguenti pacchetti non possono essere autenticati." -#: cmdline/apt-get.cc:1024 +#: cmdline/apt-get.cc:1020 msgid "Authentication warning overridden.\n" msgstr "Avviso di autenticazione disabilitato.\n" -#: cmdline/apt-get.cc:1031 +#: cmdline/apt-get.cc:1027 msgid "Install these packages without verification [y/N]? " msgstr "Installare questi pacchetti senza verificarli [s/N]? " -#: cmdline/apt-get.cc:1033 +#: cmdline/apt-get.cc:1029 msgid "Some packages could not be authenticated" msgstr "Alcuni pacchetti non possono essere autenticati" -#: cmdline/apt-get.cc:1042 cmdline/apt-get.cc:1203 +#: cmdline/apt-get.cc:1038 cmdline/apt-get.cc:1199 msgid "There are problems and -y was used without --force-yes" msgstr "Si sono verificati dei problemi ed è stata usata -y senza --force-yes" -#: cmdline/apt-get.cc:1083 +#: cmdline/apt-get.cc:1079 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "" "Errore interno, InstallPackages è stato chiamato con un pacchetto " "danneggiato." -#: cmdline/apt-get.cc:1092 +#: cmdline/apt-get.cc:1088 msgid "Packages need to be removed but remove is disabled." msgstr "" "I pacchetti devono essere rimossi, ma l'azione di rimozione è disabilitata." -#: cmdline/apt-get.cc:1103 +#: cmdline/apt-get.cc:1099 msgid "Internal error, Ordering didn't finish" msgstr "Errore interno, l'ordinamento non è stato terminato" -#: cmdline/apt-get.cc:1141 +#: cmdline/apt-get.cc:1137 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" "Le dimensioni non corrispondono. Inviare un'email a: apt@packages.debian.org" #. 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:1148 +#: cmdline/apt-get.cc:1144 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "È necessario scaricare %sB/%sB di archivi.\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:1153 +#: cmdline/apt-get.cc:1149 #, c-format msgid "Need to get %sB of archives.\n" msgstr "È necessario scaricare %sB di archivi.\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:1160 +#: cmdline/apt-get.cc:1156 #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "Dopo quest'operazione, verranno occupati %sB di spazio su disco.\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:1165 +#: cmdline/apt-get.cc:1161 #, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "Dopo quest'operazione, verranno liberati %sB di spazio su disco.\n" -#: cmdline/apt-get.cc:1180 cmdline/apt-get.cc:1183 cmdline/apt-get.cc:2428 -#: cmdline/apt-get.cc:2431 +#: 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 "Impossibile determinare lo spazio libero in %s" -#: cmdline/apt-get.cc:1193 +#: cmdline/apt-get.cc:1189 #, c-format msgid "You don't have enough free space in %s." msgstr "Spazio libero in %s insufficiente." -#: cmdline/apt-get.cc:1209 cmdline/apt-get.cc:1229 +#: cmdline/apt-get.cc:1205 cmdline/apt-get.cc:1225 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" "È stata specificata la modalità \"Trivial Only\", ma questa non è " "un'operazione banale." -#: cmdline/apt-get.cc:1211 +#: cmdline/apt-get.cc:1207 msgid "Yes, do as I say!" msgstr "Sì, esegui come da richiesta." -#: cmdline/apt-get.cc:1213 +#: cmdline/apt-get.cc:1209 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -989,28 +1024,28 @@ msgstr "" "Per continuare scrivere la frase \"%s\"\n" " ?] " -#: cmdline/apt-get.cc:1219 cmdline/apt-get.cc:1238 +#: cmdline/apt-get.cc:1215 cmdline/apt-get.cc:1234 msgid "Abort." msgstr "Interrotto." -#: cmdline/apt-get.cc:1234 +#: cmdline/apt-get.cc:1230 msgid "Do you want to continue [Y/n]? " msgstr "Continuare [S/n]? " -#: cmdline/apt-get.cc:1306 cmdline/apt-get.cc:2488 apt-pkg/algorithms.cc:1491 +#: 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 "Impossibile recuperare %s %s\n" -#: cmdline/apt-get.cc:1324 +#: cmdline/apt-get.cc:1320 msgid "Some files failed to download" msgstr "Scaricamento di alcuni file non riuscito" -#: cmdline/apt-get.cc:1325 cmdline/apt-get.cc:2497 +#: cmdline/apt-get.cc:1321 cmdline/apt-get.cc:2436 msgid "Download complete and in download only mode" msgstr "Scaricamento completato e in modalità solo scaricamento" -#: cmdline/apt-get.cc:1331 +#: cmdline/apt-get.cc:1327 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" @@ -1018,19 +1053,19 @@ msgstr "" "Impossibile scaricare alcuni pacchetti. Potrebbe essere utile eseguire \"apt-" "get update\" o provare l'opzione \"--fix-missing\"." -#: cmdline/apt-get.cc:1335 +#: cmdline/apt-get.cc:1331 msgid "--fix-missing and media swapping is not currently supported" msgstr "--fix-missing su supporti estraibili non è ancora supportato" -#: cmdline/apt-get.cc:1340 +#: cmdline/apt-get.cc:1336 msgid "Unable to correct missing packages." msgstr "Impossibile correggere i pacchetti mancanti." -#: cmdline/apt-get.cc:1341 +#: cmdline/apt-get.cc:1337 msgid "Aborting install." msgstr "Interruzione dell'installazione." -#: cmdline/apt-get.cc:1369 +#: cmdline/apt-get.cc:1365 msgid "" "The following package disappeared from your system as\n" "all files have been overwritten by other packages:" @@ -1044,36 +1079,36 @@ msgstr[1] "" "I seguenti pacchetti sono spariti dal sistema poiché\n" "tutti i file sono stati sovrascritti da altri pacchetti:" -#: cmdline/apt-get.cc:1373 +#: cmdline/apt-get.cc:1369 msgid "Note: This is done automatic and on purpose by dpkg." msgstr "Nota: questo viene svolto automaticamente da dpkg." -#: cmdline/apt-get.cc:1503 +#: cmdline/apt-get.cc:1499 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" msgstr "Ignorato il rilascio non disponibile \"%s\" del pacchetto \"%s\"" -#: cmdline/apt-get.cc:1535 +#: cmdline/apt-get.cc:1531 #, c-format msgid "Picking '%s' as source package instead of '%s'\n" msgstr "Scelto \"%s\" come pacchetto sorgente al posto di \"%s\"\n" #. if (VerTag.empty() == false && Last == 0) -#: cmdline/apt-get.cc:1573 +#: cmdline/apt-get.cc:1569 #, c-format msgid "Ignore unavailable version '%s' of package '%s'" msgstr "Ignorata la versione \"%s\" non disponibile del pacchetto \"%s\"" -#: cmdline/apt-get.cc:1589 +#: cmdline/apt-get.cc:1585 msgid "The update command takes no arguments" msgstr "Il comando update non accetta argomenti" -#: cmdline/apt-get.cc:1651 +#: cmdline/apt-get.cc:1647 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" "Non si è autorizzati a rimuovere nulla, impossibile avviare AutoRemover" -#: cmdline/apt-get.cc:1703 +#: 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." @@ -1091,15 +1126,15 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1706 cmdline/apt-get.cc:1855 +#: cmdline/apt-get.cc:1702 cmdline/apt-get.cc:1858 msgid "The following information may help to resolve the situation:" msgstr "Le seguenti informazioni possono aiutare a risolvere la situazione:" -#: cmdline/apt-get.cc:1710 +#: cmdline/apt-get.cc:1706 msgid "Internal Error, AutoRemover broke stuff" msgstr "Errore interno, AutoRemover ha rovinato qualche cosa" -#: cmdline/apt-get.cc:1717 +#: cmdline/apt-get.cc:1713 msgid "" "The following package was automatically installed and is no longer required:" msgid_plural "" @@ -1112,7 +1147,7 @@ msgstr[1] "" "I seguenti pacchetti sono stati installati automaticamente e non sono più " "richiesti:" -#: cmdline/apt-get.cc:1721 +#: cmdline/apt-get.cc:1717 #, c-format msgid "%lu package was automatically installed and is no longer required.\n" msgid_plural "" @@ -1123,20 +1158,20 @@ msgstr[1] "" "%lu pacchetti sono stati installati automaticamente e non sono più " "richiesti.\n" -#: cmdline/apt-get.cc:1723 +#: cmdline/apt-get.cc:1719 msgid "Use 'apt-get autoremove' to remove them." msgstr "Usare \"apt-get autoremove\" per rimuoverli." -#: cmdline/apt-get.cc:1742 +#: cmdline/apt-get.cc:1738 msgid "Internal error, AllUpgrade broke stuff" msgstr "Errore interno, AllUpgrade ha rovinato qualche cosa" -#: cmdline/apt-get.cc:1825 +#: cmdline/apt-get.cc:1828 msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "È utile eseguire \"apt-get -f install\" per correggere questi problemi:" -#: cmdline/apt-get.cc:1828 +#: cmdline/apt-get.cc:1831 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." @@ -1144,7 +1179,7 @@ msgstr "" "Dipendenze non soddisfatte. Provare \"apt-get -f install\" senza pacchetti " "(o specificare una soluzione)." -#: cmdline/apt-get.cc:1840 +#: 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" @@ -1156,68 +1191,63 @@ msgstr "" "usando una distribuzione in sviluppo, che alcuni pacchetti richiesti\n" "non sono ancora stati creati o sono stati rimossi da Incoming." -#: cmdline/apt-get.cc:1858 +#: cmdline/apt-get.cc:1861 msgid "Broken packages" msgstr "Pacchetti danneggiati" -#: cmdline/apt-get.cc:1886 +#: cmdline/apt-get.cc:1889 msgid "The following extra packages will be installed:" msgstr "I seguenti pacchetti saranno inoltre installati:" -#: cmdline/apt-get.cc:1976 +#: cmdline/apt-get.cc:1979 msgid "Suggested packages:" msgstr "Pacchetti suggeriti:" -#: cmdline/apt-get.cc:1977 +#: cmdline/apt-get.cc:1980 msgid "Recommended packages:" msgstr "Pacchetti raccomandati:" -#: cmdline/apt-get.cc:2019 +#: cmdline/apt-get.cc:2022 #, c-format msgid "Couldn't find package %s" msgstr "Impossibile trovare il pacchetto %s" -#: cmdline/apt-get.cc:2026 +#: cmdline/apt-get.cc:2029 #, c-format msgid "%s set to automatically installed.\n" msgstr "%s impostato automaticamente come installato.\n" -#: cmdline/apt-get.cc:2047 +#: cmdline/apt-get.cc:2050 msgid "Calculating upgrade... " msgstr "Calcolo dell'aggiornamento... " -#: cmdline/apt-get.cc:2050 methods/ftp.cc:707 methods/connect.cc:111 +#: cmdline/apt-get.cc:2053 methods/ftp.cc:707 methods/connect.cc:111 msgid "Failed" msgstr "Non riuscito" -#: cmdline/apt-get.cc:2055 +#: cmdline/apt-get.cc:2058 msgid "Done" msgstr "Eseguito" -#: cmdline/apt-get.cc:2122 cmdline/apt-get.cc:2130 +#: cmdline/apt-get.cc:2125 cmdline/apt-get.cc:2133 msgid "Internal error, problem resolver broke stuff" msgstr "Errore interno, \"problem resolver\" ha rovinato qualcosa" -#: cmdline/apt-get.cc:2154 cmdline/apt-get.cc:2187 +#: cmdline/apt-get.cc:2157 cmdline/apt-get.cc:2190 msgid "Unable to lock the download directory" msgstr "Impossibile bloccare la directory di scaricamento" -#: cmdline/apt-get.cc:2238 -#, c-format -msgid "Downloading %s %s" -msgstr "" - -#: cmdline/apt-get.cc:2294 +#: cmdline/apt-get.cc:2233 msgid "Must specify at least one package to fetch source for" msgstr "" "È necessario specificare almeno un pacchetto di cui recuperare il sorgente" -#: cmdline/apt-get.cc:2334 cmdline/apt-get.cc:2615 +#: cmdline/apt-get.cc:2273 cmdline/apt-get.cc:2554 #, c-format msgid "Unable to find a source package for %s" msgstr "Impossibile trovare un pacchetto sorgente per %s" -#: cmdline/apt-get.cc:2350 +#: cmdline/apt-get.cc:2289 #, c-format msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" @@ -1227,7 +1257,7 @@ msgstr "" "all'interno del sistema di controllo della versione \"%s\" presso:\n" "%s\n" -#: cmdline/apt-get.cc:2355 +#: cmdline/apt-get.cc:2294 #, c-format msgid "" "Please use:\n" @@ -1239,80 +1269,80 @@ msgstr "" "per recuperare gli ultimi (e probabilmente non rilasciati) aggiornamenti del " "pacchetto.\n" -#: cmdline/apt-get.cc:2406 +#: cmdline/apt-get.cc:2345 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Il pacchetto \"%s\" già scaricato viene saltato\n" -#: cmdline/apt-get.cc:2441 +#: cmdline/apt-get.cc:2380 #, c-format msgid "You don't have enough free space in %s" msgstr "Lo spazio libero in %s è insufficiente" #. 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:2449 +#: cmdline/apt-get.cc:2388 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "È necessario recuperare %sB/%sB di sorgenti.\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:2454 +#: cmdline/apt-get.cc:2393 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "È necessario scaricare %sB di sorgenti.\n" -#: cmdline/apt-get.cc:2460 +#: cmdline/apt-get.cc:2399 #, c-format msgid "Fetch source %s\n" msgstr "Recupero sorgente %s\n" -#: cmdline/apt-get.cc:2493 +#: cmdline/apt-get.cc:2432 msgid "Failed to fetch some archives." msgstr "Recupero di alcuni archivi non riuscito." -#: cmdline/apt-get.cc:2523 +#: cmdline/apt-get.cc:2462 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Estrazione del pacchetto sorgente già estratto in %s saltata\n" -#: cmdline/apt-get.cc:2535 +#: cmdline/apt-get.cc:2474 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Comando di estrazione \"%s\" non riuscito.\n" -#: cmdline/apt-get.cc:2536 +#: cmdline/apt-get.cc:2475 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Verificare che il pacchetto \"dpkg-dev\" sia installato.\n" -#: cmdline/apt-get.cc:2553 +#: cmdline/apt-get.cc:2492 #, c-format msgid "Build command '%s' failed.\n" msgstr "Comando \"%s\" di generazione non riuscito.\n" -#: cmdline/apt-get.cc:2573 +#: cmdline/apt-get.cc:2512 msgid "Child process failed" msgstr "Creazione processo figlio non riuscita" -#: cmdline/apt-get.cc:2589 +#: cmdline/apt-get.cc:2528 msgid "Must specify at least one package to check builddeps for" msgstr "" "È necessario specificare almeno un pacchetto di cui controllare le " "dipendenze di generazione" -#: cmdline/apt-get.cc:2620 +#: cmdline/apt-get.cc:2559 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Impossibile ottenere informazioni di dipendenza di generazione per %s" -#: cmdline/apt-get.cc:2640 +#: cmdline/apt-get.cc:2579 #, c-format msgid "%s has no build depends.\n" msgstr "%s non ha dipendenze di generazione.\n" -#: cmdline/apt-get.cc:2691 +#: cmdline/apt-get.cc:2630 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1321,7 +1351,7 @@ msgstr "" "%s dipendenze per %s non possono essere soddisfatte perché il pacchetto %s " "non può essere trovato" -#: cmdline/apt-get.cc:2744 +#: cmdline/apt-get.cc:2683 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1330,38 +1360,78 @@ msgstr "" "%s dipendenze per %s non possono essere soddisfatte perché nessuna versione " "del pacchetto %s può soddisfare le richieste di versione" -#: cmdline/apt-get.cc:2780 +#: cmdline/apt-get.cc:2719 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "La dipendenza %s per %s non è stata soddisfatta: il pacchetto installato %s " "è troppo recente" -#: cmdline/apt-get.cc:2807 +#: cmdline/apt-get.cc:2746 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "La dipendenza %s per %s non è stata soddisfatta: %s" -#: cmdline/apt-get.cc:2823 +#: cmdline/apt-get.cc:2762 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Le dipendenze di generazione per %s non sono state soddisfatte." -#: cmdline/apt-get.cc:2828 +#: cmdline/apt-get.cc:2767 msgid "Failed to process build dependencies" msgstr "Elaborazione delle dipendenze di generazione non riuscita" -#: cmdline/apt-get.cc:2921 cmdline/apt-get.cc:2933 -#, fuzzy, c-format -msgid "Changelog for %s (%s)" -msgstr "Connessione a %s (%s)" - -#: cmdline/apt-get.cc:3052 +#: cmdline/apt-get.cc:2798 msgid "Supported modules:" msgstr "Moduli supportati:" -#: cmdline/apt-get.cc:3093 +#: cmdline/apt-get.cc:2839 #, fuzzy +#| msgid "" +#| "Usage: apt-get [options] command\n" +#| " apt-get [options] install|remove pkg1 [pkg2 ...]\n" +#| " apt-get [options] source pkg1 [pkg2 ...]\n" +#| "\n" +#| "apt-get is a simple command line interface for downloading and\n" +#| "installing packages. The most frequently used commands are update\n" +#| "and install.\n" +#| "\n" +#| "Commands:\n" +#| " update - Retrieve new lists of packages\n" +#| " upgrade - Perform an upgrade\n" +#| " install - Install new packages (pkg is libc6 not libc6.deb)\n" +#| " remove - Remove packages\n" +#| " autoremove - Remove automatically all unused packages\n" +#| " purge - Remove packages and config files\n" +#| " source - Download source archives\n" +#| " build-dep - Configure build-dependencies for source packages\n" +#| " dist-upgrade - Distribution upgrade, see apt-get(8)\n" +#| " dselect-upgrade - Follow dselect selections\n" +#| " clean - Erase downloaded archive files\n" +#| " autoclean - Erase old downloaded archive files\n" +#| " check - Verify that there are no broken dependencies\n" +#| " markauto - Mark the given packages as automatically installed\n" +#| " unmarkauto - Mark the given packages as manually installed\n" +#| " changelog - Download and display the changelog for the given package\n" +#| " download - Download the binary package into the current directory\n" +#| "\n" +#| "Options:\n" +#| " -h This help text.\n" +#| " -q Loggable output - no progress indicator\n" +#| " -qq No output except for errors\n" +#| " -d Download only - do NOT install or unpack archives\n" +#| " -s No-act. Perform ordering simulation\n" +#| " -y Assume Yes to all queries and do not prompt\n" +#| " -f Attempt to correct a system with broken dependencies in place\n" +#| " -m Attempt to continue if archives are unlocatable\n" +#| " -u Show a list of upgraded packages as well\n" +#| " -b Build the source package after fetching it\n" +#| " -V Show verbose version numbers\n" +#| " -c=? Read this configuration file\n" +#| " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" +#| "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" msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1387,8 +1457,6 @@ msgid "" " check - Verify that there are no broken dependencies\n" " markauto - Mark the given packages as automatically installed\n" " unmarkauto - Mark the given packages as manually installed\n" -" changelog - Download and display the changelog for the given package\n" -" download - Download the binary package into the current directory\n" "\n" "Options:\n" " -h This help text.\n" @@ -1433,6 +1501,8 @@ msgstr "" " check - Verifica che non ci siano dipendenze insoddisfatte\n" " markauto - Imposta i pacchetti forniti come installati automaticamente\n" " unmarkauto - Imposta i pacchetti forniti come installati manualmente\n" +" changelog - Scarica e visualizza il changelog per il pacchetto indicato\n" +" download - Scarica il pacchetto binario nella directory attuale\n" "\n" "Opzioni:\n" " -h Mostra questo aiuto\n" @@ -1453,7 +1523,7 @@ msgstr "" "apt-get(8), sources.list(5) e apt.conf(5).\n" " Questo APT ha i poteri della Super Mucca.\n" -#: cmdline/apt-get.cc:3254 +#: cmdline/apt-get.cc:2995 msgid "" "NOTE: This is only a simulation!\n" " apt-get needs root privileges for real execution.\n" @@ -1580,7 +1650,7 @@ msgstr "Creazione delle pipe non riuscita" msgid "Failed to exec gzip " msgstr "Esecuzione di gzip non riuscita" -#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:208 +#: apt-inst/contrib/extracttar.cc:178 apt-inst/contrib/extracttar.cc:204 msgid "Corrupted archive" msgstr "Archivio danneggiato" @@ -1588,7 +1658,7 @@ msgstr "Archivio danneggiato" msgid "Tar checksum failed, archive corrupted" msgstr "Checksum di tar non riuscito, archivio danneggiato" -#: apt-inst/contrib/extracttar.cc:300 +#: apt-inst/contrib/extracttar.cc:296 #, c-format msgid "Unknown TAR header type %u, member %s" msgstr "Intestazione TAR di tipo %u sconosciuta, member %s" @@ -1697,28 +1767,28 @@ msgstr "Localizzazione del nodo nel suo hash bucket non riuscita" msgid "The path is too long" msgstr "Il percorso è troppo lungo" -#: apt-inst/extract.cc:412 +#: apt-inst/extract.cc:414 #, c-format msgid "Overwrite package match with no version for %s" msgstr "Il pacchetto sovrascritto corrisponde senza versione per %s" -#: apt-inst/extract.cc:429 +#: apt-inst/extract.cc:431 #, c-format msgid "File %s/%s overwrites the one in the package %s" msgstr "Il file %s/%s sovrascrive quello nel pacchetto %s" #. Only warn if there are no sources.list.d. #. Only warn if there is no sources.list file. -#: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179 -#: apt-pkg/contrib/fileutl.cc:334 apt-pkg/sourcelist.cc:204 -#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:103 -#: apt-pkg/init.cc:111 apt-pkg/clean.cc:33 apt-pkg/policy.cc:309 +#: apt-inst/extract.cc:464 apt-pkg/contrib/cdromutl.cc:179 +#: 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 #, c-format msgid "Unable to read %s" msgstr "Impossibile leggere %s" -#: apt-inst/extract.cc:489 +#: apt-inst/extract.cc:491 #, c-format msgid "Unable to stat %s" msgstr "Impossibile eseguire stat su %s" @@ -1742,9 +1812,9 @@ msgstr "Esecuzione di stat su %sinfo non riuscita" msgid "The info and temp directories need to be on the same filesystem" msgstr "Le directory temp e info devono essere sullo stesso file system" -#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1074 -#: apt-pkg/pkgcachegen.cc:1178 apt-pkg/pkgcachegen.cc:1184 -#: apt-pkg/pkgcachegen.cc:1330 +#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1070 +#: apt-pkg/pkgcachegen.cc:1174 apt-pkg/pkgcachegen.cc:1180 +#: apt-pkg/pkgcachegen.cc:1326 msgid "Reading package lists" msgstr "Lettura elenco dei pacchetti" @@ -1848,28 +1918,24 @@ msgstr "Impossibile localizzare un file \"control\" valido" msgid "Unparsable control file" msgstr "File \"control\" non analizzabile" -#: methods/bzip2.cc:60 methods/gzip.cc:52 -msgid "Empty files can't be valid archives" -msgstr "" - -#: methods/bzip2.cc:64 +#: methods/bzip2.cc:65 #, c-format msgid "Couldn't open pipe for %s" msgstr "Impossibile aprire una pipe per %s" -#: methods/bzip2.cc:108 +#: methods/bzip2.cc:109 #, c-format msgid "Read error from %s process" msgstr "Errore di lettura dal processo %s" -#: methods/bzip2.cc:140 methods/bzip2.cc:149 methods/copy.cc:43 -#: methods/gzip.cc:92 methods/gzip.cc:101 methods/rred.cc:524 -#: methods/rred.cc:533 +#: methods/bzip2.cc:141 methods/bzip2.cc:150 methods/copy.cc:43 +#: methods/gzip.cc:93 methods/gzip.cc:102 methods/rred.cc:486 +#: methods/rred.cc:495 msgid "Failed to stat" msgstr "Esecuzione di stat non riuscita" -#: methods/bzip2.cc:146 methods/copy.cc:80 methods/gzip.cc:98 -#: methods/rred.cc:530 +#: methods/bzip2.cc:147 methods/copy.cc:80 methods/gzip.cc:99 +#: methods/rred.cc:492 msgid "Failed to set modification time" msgstr "Impostazione della data di modifica non riuscita" @@ -1962,7 +2028,7 @@ msgstr "Connessione scaduta" msgid "Server closed the connection" msgstr "Il server ha chiuso la connessione" -#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:811 methods/rsh.cc:190 +#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:802 methods/rsh.cc:190 msgid "Read error" msgstr "Errore di lettura" @@ -1974,7 +2040,7 @@ msgstr "Una risposta ha superato le dimensioni del buffer." msgid "Protocol corruption" msgstr "Protocollo danneggiato" -#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:853 methods/rsh.cc:232 +#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:844 methods/rsh.cc:232 msgid "Write error" msgstr "Errore di scrittura" @@ -2214,7 +2280,7 @@ msgstr "Errore nel leggere dal server. Il lato remoto ha chiuso la connessione" msgid "Error reading from server" msgstr "Errore nel leggere dal server" -#: methods/http.cc:991 apt-pkg/contrib/mmap.cc:283 +#: methods/http.cc:991 apt-pkg/contrib/mmap.cc:281 msgid "Failed to truncate file" msgstr "Troncamento del file non riuscito" @@ -2252,7 +2318,7 @@ msgstr "Impossibile chiudere mmap" msgid "Unable to synchronize mmap" msgstr "Impossibile sincronizzare mmap" -#: apt-pkg/contrib/mmap.cc:302 +#: apt-pkg/contrib/mmap.cc:300 #, c-format msgid "" "Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. " @@ -2261,7 +2327,7 @@ msgstr "" "MMap dinamica esaurita. Aumentare la dimensione di APT::Cache-Limit. Il " "valore attuale è: %lu (man 5 apt.conf)." -#: apt-pkg/contrib/mmap.cc:401 +#: 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 " @@ -2271,7 +2337,7 @@ msgstr "" "byte è stato raggiunto." # (ndt) lunghetta... -#: apt-pkg/contrib/mmap.cc:404 +#: apt-pkg/contrib/mmap.cc:402 msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" @@ -2302,7 +2368,7 @@ msgstr "%limin %lis" msgid "%lis" msgstr "%lis" -#: apt-pkg/contrib/strutl.cc:1136 +#: apt-pkg/contrib/strutl.cc:1119 #, c-format msgid "Selection %s not found" msgstr "Selezione %s non trovata" @@ -2441,113 +2507,98 @@ msgstr "Impossibile passare a %s" msgid "Failed to stat the cdrom" msgstr "Esecuzione di stat sul CD-ROM non riuscita" -#: apt-pkg/contrib/fileutl.cc:159 +#: apt-pkg/contrib/fileutl.cc:154 #, c-format msgid "Not using locking for read only lock file %s" msgstr "Blocco disabilitato per il file di blocco in sola lettura %s" -#: apt-pkg/contrib/fileutl.cc:164 +#: apt-pkg/contrib/fileutl.cc:159 #, c-format msgid "Could not open lock file %s" msgstr "Impossibile aprire il file di blocco %s" -#: apt-pkg/contrib/fileutl.cc:182 +#: apt-pkg/contrib/fileutl.cc:177 #, c-format msgid "Not using locking for nfs mounted lock file %s" msgstr "Blocco disabilitato per il file di blocco %s montato via nfs" -#: apt-pkg/contrib/fileutl.cc:186 +#: apt-pkg/contrib/fileutl.cc:181 #, c-format msgid "Could not get lock %s" msgstr "Impossibile impostare il blocco %s" -#: apt-pkg/contrib/fileutl.cc:326 +#: apt-pkg/contrib/fileutl.cc:321 #, c-format msgid "List of files can't be created as '%s' is not a directory" msgstr "" +"L'elenco dei file non può essere creato poiché \"%s\" non è una directory" -#: apt-pkg/contrib/fileutl.cc:353 -#, c-format -msgid "Ignoring '%s' in directory '%s' as it is not a regular file" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:371 -#, c-format -msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:380 -#, c-format -msgid "" -"Ignoring file '%s' in directory '%s' as it has an invalid filename extension" -msgstr "" - -#: apt-pkg/contrib/fileutl.cc:670 +#: apt-pkg/contrib/fileutl.cc:661 #, c-format msgid "Waited for %s but it wasn't there" msgstr "In attesa di %s ma non era presente" -#: apt-pkg/contrib/fileutl.cc:682 +#: apt-pkg/contrib/fileutl.cc:673 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "Il sottoprocesso %s ha ricevuto un segmentation fault." -#: apt-pkg/contrib/fileutl.cc:684 +#: apt-pkg/contrib/fileutl.cc:675 #, c-format msgid "Sub-process %s received signal %u." msgstr "Il sottoprocesso %s ha ricevuto il segnale %u." -#: apt-pkg/contrib/fileutl.cc:688 +#: apt-pkg/contrib/fileutl.cc:679 #, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "Il sottoprocesso %s ha restituito un codice d'errore (%u)" -#: apt-pkg/contrib/fileutl.cc:690 +#: apt-pkg/contrib/fileutl.cc:681 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "Il sottoprocesso %s è uscito inaspettatamente" -#: apt-pkg/contrib/fileutl.cc:755 +#: apt-pkg/contrib/fileutl.cc:746 #, c-format msgid "Could not open file %s" msgstr "Impossibile aprire il file %s" -#: apt-pkg/contrib/fileutl.cc:772 +#: apt-pkg/contrib/fileutl.cc:763 #, c-format msgid "Could not open file descriptor %d" msgstr "Impossibile aprire il descrittore del file %d" -#: apt-pkg/contrib/fileutl.cc:832 +#: apt-pkg/contrib/fileutl.cc:823 #, c-format msgid "read, still have %lu to read but none left" msgstr "lettura, c'erano ancora %lu da leggere ma non ne è rimasto alcuno" -#: apt-pkg/contrib/fileutl.cc:865 +#: apt-pkg/contrib/fileutl.cc:856 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "scrittura, c'erano ancora %lu da scrivere ma non è stato possibile" -#: apt-pkg/contrib/fileutl.cc:1001 +#: apt-pkg/contrib/fileutl.cc:985 #, c-format msgid "Problem closing the gzip file %s" msgstr "Si è verificato un problema nel chiudere il file gzip %s" -#: apt-pkg/contrib/fileutl.cc:1004 +#: apt-pkg/contrib/fileutl.cc:988 #, c-format msgid "Problem closing the file %s" msgstr "Si è verificato un problema nel chiudere il file %s" -#: apt-pkg/contrib/fileutl.cc:1009 +#: apt-pkg/contrib/fileutl.cc:993 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Si è verificato un problema nel rinominare il file %s in %s" -#: apt-pkg/contrib/fileutl.cc:1020 +#: apt-pkg/contrib/fileutl.cc:1004 #, c-format msgid "Problem unlinking the file %s" msgstr "Si è verificato un problema nell'eseguire l'unlink del file %s" -#: apt-pkg/contrib/fileutl.cc:1033 +#: apt-pkg/contrib/fileutl.cc:1017 msgid "Problem syncing the file" msgstr "Si è verificato un problema nel sincronizzare il file" @@ -2788,7 +2839,7 @@ msgstr "" msgid "Index file type '%s' is not supported" msgstr "Il file indice di tipo \"%s\" non è supportato" -#: apt-pkg/algorithms.cc:313 +#: apt-pkg/algorithms.cc:292 #, c-format msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." @@ -2796,7 +2847,7 @@ msgstr "" "Il pacchetto %s deve essere reinstallato, ma non è possibile trovarne un " "archivio." -#: apt-pkg/algorithms.cc:1239 +#: apt-pkg/algorithms.cc:1218 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." @@ -2804,15 +2855,18 @@ msgstr "" "Errore, pkgProblemResolver::Resolve ha generato delle interruzioni. Questo " "potrebbe essere causato da pacchetti bloccati." -#: apt-pkg/algorithms.cc:1241 +#: apt-pkg/algorithms.cc:1220 msgid "Unable to correct problems, you have held broken packages." msgstr "" "Impossibile correggere i problemi, ci sono pacchetti danneggiati bloccati." -#: apt-pkg/algorithms.cc:1517 apt-pkg/algorithms.cc:1519 +#: apt-pkg/algorithms.cc:1496 apt-pkg/algorithms.cc:1498 #, fuzzy +#| msgid "" +#| "Some index files failed to download. They have been ignored, or old ones " +#| "used instead." msgid "" -"Some index files failed to download. They have been ignored, or old ones " +"Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" "Impossibile scaricare alcuni file di indice: saranno ignorati o verranno " @@ -2860,12 +2914,12 @@ msgstr "Il metodo %s non si è avviato correttamente" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "Inserire il disco chiamato \"%s\" nell'unità \"%s\" e premere Invio." -#: apt-pkg/init.cc:146 +#: apt-pkg/init.cc:143 #, c-format msgid "Packaging system '%s' is not supported" msgstr "Il sistema di pacchetti \"%s\" non è supportato" -#: apt-pkg/init.cc:162 +#: apt-pkg/init.cc:159 msgid "Unable to determine a suitable packaging system type" msgstr "Impossibile determinare un tipo di sistema appropriato di pacchetti" @@ -2893,19 +2947,19 @@ msgstr "" msgid "The list of sources could not be read." msgstr "Impossibile leggere l'elenco dei sorgenti." -#: apt-pkg/policy.cc:346 +#: apt-pkg/policy.cc:344 #, c-format msgid "Invalid record in the preferences file %s, no Package header" msgstr "" "Campo non valido nel file delle preferenze %s, manca l'intestazione \"Package" "\"" -#: apt-pkg/policy.cc:368 +#: apt-pkg/policy.cc:366 #, c-format msgid "Did not understand pin type %s" msgstr "Impossibile comprendere il tipo di gancio %s" -#: apt-pkg/policy.cc:376 +#: apt-pkg/policy.cc:374 msgid "No priority (or zero) specified for pin" msgstr "Priorità per il gancio non specificata (o zero)" @@ -2989,17 +3043,17 @@ msgstr "" "Il pacchetto %s v.%s non è stato trovato durante l'elaborazione delle " "dipendenze" -#: apt-pkg/pkgcachegen.cc:986 +#: apt-pkg/pkgcachegen.cc:982 #, c-format msgid "Couldn't stat source package list %s" msgstr "Impossibile eseguire stat sull'elenco dei pacchetti sorgente %s" # (ndt) non mi convince per niente, ma vediamo cosa salta fuori -#: apt-pkg/pkgcachegen.cc:1091 +#: apt-pkg/pkgcachegen.cc:1087 msgid "Collecting File Provides" msgstr "Il file fornisce" -#: apt-pkg/pkgcachegen.cc:1269 apt-pkg/pkgcachegen.cc:1276 +#: apt-pkg/pkgcachegen.cc:1265 apt-pkg/pkgcachegen.cc:1272 msgid "IO Error saving source cache" msgstr "Errore di I/O nel salvare la cache sorgente" @@ -3008,28 +3062,16 @@ msgstr "Errore di I/O nel salvare la cache sorgente" msgid "rename failed, %s (%s -> %s)." msgstr "rename() non riuscita: %s (%s -> %s)." -#: apt-pkg/acquire-item.cc:629 +#: apt-pkg/acquire-item.cc:484 msgid "MD5Sum mismatch" msgstr "MD5sum non corrispondente" -#: apt-pkg/acquire-item.cc:887 apt-pkg/acquire-item.cc:1781 -#: apt-pkg/acquire-item.cc:1924 +#: apt-pkg/acquire-item.cc:746 apt-pkg/acquire-item.cc:1574 +#: apt-pkg/acquire-item.cc:1717 msgid "Hash Sum mismatch" msgstr "Somma hash non corrispondente" -#: apt-pkg/acquire-item.cc:1341 -#, c-format -msgid "" -"Unable to find expected entry '%s' in Release file (Wrong sources.list entry " -"or malformed file)" -msgstr "" - -#: apt-pkg/acquire-item.cc:1356 -#, fuzzy, c-format -msgid "Unable to find hash sum for '%s' in Release file" -msgstr "Impossibile analizzare il file Release %s" - -#: apt-pkg/acquire-item.cc:1415 +#: apt-pkg/acquire-item.cc:1244 msgid "There is no public key available for the following key IDs:\n" msgstr "" "Non è disponibile alcuna chiave pubblica per i seguenti ID di chiavi:\n" @@ -3037,17 +3079,17 @@ msgstr "" #. TRANSLATOR: The first %s is the URL of the bad Release file, the second is #. the time since then the file is invalid - formated in the same way as in #. the download progress display (e.g. 7d 3h 42min 1s) -#: apt-pkg/acquire-item.cc:1452 +#: apt-pkg/acquire-item.cc:1281 #, c-format msgid "Release file expired, ignoring %s (invalid since %s)" msgstr "File Release scaduto, %s viene ignorato (non valido da %s)" -#: apt-pkg/acquire-item.cc:1473 +#: apt-pkg/acquire-item.cc:1302 #, c-format msgid "Conflicting distribution: %s (expected %s but got %s)" msgstr "Distribuzione in conflitto: %s (atteso %s ma ottenuto %s)" -#: apt-pkg/acquire-item.cc:1506 +#: apt-pkg/acquire-item.cc:1328 #, c-format msgid "" "A error occurred during the signature verification. The repository is not " @@ -3056,12 +3098,12 @@ msgstr "" "Si è verificato un errore nel verificare la firma. Il repository non è " "aggiornato e verranno usati i file indice precedenti. Errore GPG: %s: %s\n" -#: apt-pkg/acquire-item.cc:1515 +#: apt-pkg/acquire-item.cc:1337 #, c-format msgid "GPG error: %s: %s" msgstr "Errore GPG: %s: %s" -#: apt-pkg/acquire-item.cc:1572 +#: apt-pkg/acquire-item.cc:1365 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " @@ -3070,7 +3112,7 @@ msgstr "" "Impossibile trovare un file per il pacchetto %s. Potrebbe essere necessario " "sistemare manualmente questo pacchetto (a causa dell'architettura mancante)." -#: apt-pkg/acquire-item.cc:1631 +#: apt-pkg/acquire-item.cc:1424 #, c-format msgid "" "I wasn't able to locate file for the %s package. This might mean you need to " @@ -3080,7 +3122,7 @@ msgstr "" "sistemare manualmente questo pacchetto." # (ndt) sarebbe da controllare se veramente possono esistere più file indice -#: apt-pkg/acquire-item.cc:1686 +#: apt-pkg/acquire-item.cc:1479 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." @@ -3088,7 +3130,7 @@ msgstr "" "I file indice del pacchetto sono danneggiati. Manca il campo \"Filename:\" " "per il pacchetto %s." -#: apt-pkg/acquire-item.cc:1773 +#: apt-pkg/acquire-item.cc:1566 msgid "Size mismatch" msgstr "Le dimensioni non corrispondono" @@ -3097,22 +3139,22 @@ msgstr "Le dimensioni non corrispondono" msgid "Unable to parse Release file %s" msgstr "Impossibile analizzare il file Release %s" -#: apt-pkg/indexrecords.cc:63 +#: apt-pkg/indexrecords.cc:60 #, c-format msgid "No sections in Release file %s" msgstr "Nessuna sezione nel file Release %s" -#: apt-pkg/indexrecords.cc:97 +#: apt-pkg/indexrecords.cc:94 #, c-format msgid "No Hash entry in Release file %s" msgstr "Nessuna voce Hash nel file Release %s" -#: apt-pkg/indexrecords.cc:110 +#: apt-pkg/indexrecords.cc:107 #, c-format msgid "Invalid 'Valid-Until' entry in Release file %s" msgstr "Voce \"Valid-Until\" nel file Release %s non valida" -#: apt-pkg/indexrecords.cc:125 +#: apt-pkg/indexrecords.cc:122 #, c-format msgid "Invalid 'Date' entry in Release file %s" msgstr "Voce \"Date\" nel file Release %s non valida" @@ -3213,22 +3255,22 @@ msgstr "Scrittura nuovo elenco sorgenti\n" msgid "Source list entries for this disc are:\n" msgstr "Le voci dell'elenco sorgenti per questo disco sono:\n" -#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909 +#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:908 #, c-format msgid "Wrote %i records.\n" msgstr "Scritti %i record.\n" -#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911 +#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:910 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "Scritti %i record con %i file mancanti.\n" -#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914 +#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:913 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "Scritti %i record con %i file senza corrispondenze\n" -#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917 +#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:916 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" @@ -3313,12 +3355,12 @@ msgstr "" msgid "Installing %s" msgstr "Installazione di %s" -#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:819 +#: apt-pkg/deb/dpkgpm.cc:53 apt-pkg/deb/dpkgpm.cc:823 #, c-format msgid "Configuring %s" msgstr "Configurazione di %s" -#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:826 +#: apt-pkg/deb/dpkgpm.cc:54 apt-pkg/deb/dpkgpm.cc:830 #, c-format msgid "Removing %s" msgstr "Rimozione di %s" @@ -3339,78 +3381,78 @@ msgid "Running post-installation trigger %s" msgstr "Esecuzione comando di post installazione %s" #. FIXME: use a better string after freeze -#: apt-pkg/deb/dpkgpm.cc:642 +#: apt-pkg/deb/dpkgpm.cc:646 #, c-format msgid "Directory '%s' missing" msgstr "Directory \"%s\" mancante" -#: apt-pkg/deb/dpkgpm.cc:657 apt-pkg/deb/dpkgpm.cc:671 +#: apt-pkg/deb/dpkgpm.cc:661 apt-pkg/deb/dpkgpm.cc:675 #, c-format msgid "Could not open file '%s'" msgstr "Impossibile aprire il file \"%s\"" -#: apt-pkg/deb/dpkgpm.cc:812 +#: apt-pkg/deb/dpkgpm.cc:816 #, c-format msgid "Preparing %s" msgstr "Preparazione di %s" -#: apt-pkg/deb/dpkgpm.cc:813 +#: apt-pkg/deb/dpkgpm.cc:817 #, c-format msgid "Unpacking %s" msgstr "Estrazione di %s" -#: apt-pkg/deb/dpkgpm.cc:818 +#: apt-pkg/deb/dpkgpm.cc:822 #, c-format msgid "Preparing to configure %s" msgstr "Preparazione alla configurazione di %s" -#: apt-pkg/deb/dpkgpm.cc:820 +#: apt-pkg/deb/dpkgpm.cc:824 #, c-format msgid "Installed %s" msgstr "Pacchetto %s installato" -#: apt-pkg/deb/dpkgpm.cc:825 +#: apt-pkg/deb/dpkgpm.cc:829 #, c-format msgid "Preparing for removal of %s" msgstr "Preparazione alla rimozione di %s" -#: apt-pkg/deb/dpkgpm.cc:827 +#: apt-pkg/deb/dpkgpm.cc:831 #, c-format msgid "Removed %s" msgstr "Pacchetto %s rimosso" -#: apt-pkg/deb/dpkgpm.cc:832 +#: apt-pkg/deb/dpkgpm.cc:836 #, c-format msgid "Preparing to completely remove %s" msgstr "Preparazione alla rimozione completa di %s" -#: apt-pkg/deb/dpkgpm.cc:833 +#: apt-pkg/deb/dpkgpm.cc:837 #, c-format msgid "Completely removed %s" msgstr "Pacchetto %s rimosso completamente" -#: apt-pkg/deb/dpkgpm.cc:1039 +#: apt-pkg/deb/dpkgpm.cc:1043 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" "Impossibile scrivere il registro, openpty() non riuscita (forse /dev/pts non " "è montato)\n" -#: apt-pkg/deb/dpkgpm.cc:1070 +#: apt-pkg/deb/dpkgpm.cc:1074 msgid "Running dpkg" msgstr "Esecuzione di dpkg" -#: apt-pkg/deb/dpkgpm.cc:1273 +#: apt-pkg/deb/dpkgpm.cc:1277 msgid "No apport report written because MaxReports is reached already" msgstr "" "Segnalazione apport non scritta poiché è stato raggiunto il valore massimo " "di MaxReports" #. check if its not a follow up error -#: apt-pkg/deb/dpkgpm.cc:1278 +#: apt-pkg/deb/dpkgpm.cc:1282 msgid "dependency problems - leaving unconfigured" msgstr "Problemi con le dipendenze - Viene lasciato non configurato" -#: apt-pkg/deb/dpkgpm.cc:1280 +#: apt-pkg/deb/dpkgpm.cc:1284 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." @@ -3418,7 +3460,7 @@ msgstr "" "Segnalazione apport non scritta poiché il messaggio di errore indica la " "presenza di un fallimento precedente." -#: apt-pkg/deb/dpkgpm.cc:1286 +#: apt-pkg/deb/dpkgpm.cc:1290 msgid "" "No apport report written because the error message indicates a disk full " "error" @@ -3426,7 +3468,7 @@ msgstr "" "Segnalazione apport non scritta poiché il messaggio di errore indica un " "errore per disco pieno." -#: apt-pkg/deb/dpkgpm.cc:1292 +#: apt-pkg/deb/dpkgpm.cc:1296 msgid "" "No apport report written because the error message indicates a out of memory " "error" @@ -3434,7 +3476,7 @@ msgstr "" "Segnalazione apport non scritta poiché il messaggio di errore indica un " "errore di memoria esaurita" -#: apt-pkg/deb/dpkgpm.cc:1299 +#: apt-pkg/deb/dpkgpm.cc:1303 msgid "" "No apport report written because the error message indicates a dpkg I/O error" msgstr "" @@ -3483,7 +3525,7 @@ msgstr "Nessun file mirror \"%s\" trovato" msgid "[Mirror: %s]" msgstr "[Mirror: %s]" -#: methods/rred.cc:503 +#: methods/rred.cc:465 #, c-format msgid "" "Could not patch %s with mmap and with file operation usage - the patch seems " @@ -3492,7 +3534,7 @@ msgstr "" "Impossibile applicare la patch a %s con mmap e con l'utilizzo di operazioni " "file. La patch sembra essere danneggiata." -#: methods/rred.cc:508 +#: methods/rred.cc:470 #, c-format msgid "" "Could not patch %s with mmap (but no mmap specific fail) - the patch seems " @@ -3504,3 +3546,38 @@ msgstr "" #: methods/rsh.cc:329 msgid "Connection closed prematurely" msgstr "Connessione chiusa prematuramente" + +#~ msgid "Downloading %s %s" +#~ msgstr "Scaricamento di %s %s" + +#~ msgid "Changelog for %s (%s)" +#~ msgstr "Changelog per %s (%s)" + +#~ msgid "Empty files can't be valid archives" +#~ msgstr "File vuoti non possono essere archivi validi" + +#~ msgid "Ignoring '%s' in directory '%s' as it is not a regular file" +#~ msgstr "" +#~ "Viene ignorato \"%s\" nella directory \"%s\" poiché non è un file regolare" + +#~ msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" +#~ msgstr "" +#~ "Viene ignorato il file \"%s\" nella directory \"%s\" poiché non ha " +#~ "un'estensione" + +#~ msgid "" +#~ "Ignoring file '%s' in directory '%s' as it has an invalid filename " +#~ "extension" +#~ msgstr "" +#~ "Viene ignorato il file \"%s\" nella directory \"%s\" poiché ha " +#~ "un'estensione non valida" + +#~ msgid "" +#~ "Unable to find expected entry '%s' in Release file (Wrong sources.list " +#~ "entry or malformed file)" +#~ msgstr "" +#~ "Impossibile trovare la voce \"%s\" nel file Release (voce in sources.list " +#~ "errata o file danneggiato)" + +#~ msgid "Unable to find hash sum for '%s' in Release file" +#~ msgstr "Impossibile trovare la somma hash per \"%s\" nel file Release" -- cgit v1.2.3-70-g09d2 From 03bef78461c6f443187b60799402624326843396 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Sun, 27 Feb 2011 23:01:40 +0100 Subject: - load the supported compressors from configuration - support adding new compressors by configuration --- apt-pkg/aptconfiguration.cc | 74 ++++++++++++++++++++++++++++++++++++++++++--- apt-pkg/aptconfiguration.h | 26 ++++++++++++++++ debian/changelog | 4 ++- ftparchive/multicompress.cc | 59 +++++++++++++++++------------------- ftparchive/multicompress.h | 21 +++---------- ftparchive/writer.cc | 1 + 6 files changed, 133 insertions(+), 52 deletions(-) (limited to 'debian') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 9ded431e8..2a441fce7 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -42,10 +42,7 @@ const Configuration::getCompressionTypes(bool const &Cached) { _config->CndSet("Acquire::CompressionTypes::lzma","lzma"); _config->CndSet("Acquire::CompressionTypes::gz","gzip"); - // Set default application paths to check for optional compression types - _config->CndSet("Dir::Bin::lzma", "/usr/bin/lzma"); - _config->CndSet("Dir::Bin::xz", "/usr/bin/xz"); - _config->CndSet("Dir::Bin::bzip2", "/bin/bzip2"); + setDefaultConfigurationForCompressors(); // accept non-list order as override setting for config settings on commandline std::string const overrideOrder = _config->Find("Acquire::CompressionTypes::Order",""); @@ -346,4 +343,73 @@ bool const Configuration::checkArchitecture(std::string const &Arch) { return (std::find(archs.begin(), archs.end(), Arch) != archs.end()); } /*}}}*/ +// setDefaultConfigurationForCompressors /*{{{*/ +void Configuration::setDefaultConfigurationForCompressors() { + // Set default application paths to check for optional compression types + _config->CndSet("Dir::Bin::lzma", "/usr/bin/lzma"); + _config->CndSet("Dir::Bin::xz", "/usr/bin/xz"); + _config->CndSet("Dir::Bin::bzip2", "/bin/bzip2"); +} + /*}}}*/ +// getCompressors - Return Vector of usbale compressors /*{{{*/ +// --------------------------------------------------------------------- +/* return a vector of compressors used by apt-ftparchive in the + multicompress functionality or to detect data.tar files */ +std::vector<APT::Configuration::Compressor> +const Configuration::getCompressors(bool const Cached) { + static std::vector<APT::Configuration::Compressor> compressors; + if (compressors.empty() == false) { + if (Cached == true) + return compressors; + else + compressors.clear(); + } + + setDefaultConfigurationForCompressors(); + + compressors.push_back(Compressor(".", "", "", "", "", 1)); + if (_config->Exists("Dir::Bin::gzip") == false || FileExists(_config->FindFile("Dir::Bin::gzip")) == true) + compressors.push_back(Compressor("gzip",".gz","gzip","-9n","-d",2)); + if (_config->Exists("Dir::Bin::bzip2") == false || FileExists(_config->FindFile("Dir::Bin::bzip2")) == true) + compressors.push_back(Compressor("bzip2",".bz2","bzip2","-9","-d",3)); + if (_config->Exists("Dir::Bin::lzma") == false || FileExists(_config->FindFile("Dir::Bin::lzma")) == true) + compressors.push_back(Compressor("lzma",".lzma","lzma","-9","-d",4)); + if (_config->Exists("Dir::Bin::xz") == false || FileExists(_config->FindFile("Dir::Bin::xz")) == true) + compressors.push_back(Compressor("xz",".xz","xz","-6","-d",5)); + + std::vector<std::string> const comp = _config->FindVector("APT::Compressor"); + for (std::vector<std::string>::const_iterator c = comp.begin(); + c != comp.end(); ++c) { + if (*c == "." || *c == "gzip" || *c == "bzip2" || *c == "lzma" || *c == "xz") + continue; + compressors.push_back(Compressor(c->c_str(), std::string(".").append(*c).c_str(), c->c_str(), "-9", "-d", 100)); + } + + return compressors; +} + /*}}}*/ +// Compressor constructor /*{{{*/ +// --------------------------------------------------------------------- +/* */ +Configuration::Compressor::Compressor(char const *name, char const *extension, + char const *binary, + char const *compressArg, char const *uncompressArg, + unsigned short const cost) { + std::string const config = string("APT:Compressor::").append(name).append("::"); + Name = _config->Find(std::string(config).append("Name"), name); + Extension = _config->Find(std::string(config).append("Extension"), extension); + Binary = _config->Find(std::string(config).append("Binary"), binary); + Cost = _config->FindI(std::string(config).append("Cost"), cost); + std::string const compConf = std::string(config).append("CompressArg"); + if (_config->Exists(compConf) == true) + CompressArgs = _config->FindVector(compConf); + else if (compressArg != NULL) + CompressArgs.push_back(compressArg); + std::string const uncompConf = std::string(config).append("UncompressArg"); + if (_config->Exists(uncompConf) == true) + UncompressArgs = _config->FindVector(uncompConf); + else if (uncompressArg != NULL) + UncompressArgs.push_back(uncompressArg); +} + /*}}}*/ } diff --git a/apt-pkg/aptconfiguration.h b/apt-pkg/aptconfiguration.h index dd339d841..e4bc5e683 100644 --- a/apt-pkg/aptconfiguration.h +++ b/apt-pkg/aptconfiguration.h @@ -82,6 +82,32 @@ public: /*{{{*/ */ bool static const checkArchitecture(std::string const &Arch); + /** \brief Representation of supported compressors */ + struct Compressor { + std::string Name; + std::string Extension; + std::string Binary; + std::vector<std::string> CompressArgs; + std::vector<std::string> UncompressArgs; + unsigned short Cost; + + Compressor(char const *name, char const *extension, char const *binary, + char const *compressArg, char const *uncompressArg, + unsigned short const cost); + Compressor() {}; + }; + + /** \brief Return a vector of Compressors supported for data.tar's + * + * \param Cached saves the result so we need to calculated it only once + * this parameter should ony be used for testing purposes. + * + * \return a vector of Compressors + */ + std::vector<Compressor> static const getCompressors(bool const Cached = true); + /*}}}*/ + private: /*{{{*/ + void static setDefaultConfigurationForCompressors(); /*}}}*/ }; /*}}}*/ diff --git a/debian/changelog b/debian/changelog index 6b2c35baf..499150d52 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,18 +9,20 @@ apt (0.8.11.6) UNRELEASED; urgency=low * ftparchive/multicompress.cc, apt-inst/deb/debfile.cc: - support xz compressor to create xz-compressed Indexes and be able to open data.tar.xz files + - load the supported compressors from configuration * ftparchive/writer.cc: - ensure that Date and Valid-Until time strings are not localised - add options to disable specific checksums for Indexes - include xz-compressed Packages and Sources files in Release file * apt-pkg/aptconfiguration.cc: - support download of xz-compressed indexes files + - support adding new compressors by configuration * apt-pkg/deb/debsrcrecords.cc: - support xz-compressed source v3 debian.tar files * ftparchive/contents.cc: - remove ExtractArchive codecopy from apt-inst/deb/debfile.cc - -- David Kalnischkies <kalnischkies@gmail.com> Wed, 23 Feb 2011 09:00:51 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Sun, 27 Feb 2011 23:00:07 +0100 apt (0.8.11.5) unstable; urgency=low diff --git a/ftparchive/multicompress.cc b/ftparchive/multicompress.cc index c33414a11..f82879015 100644 --- a/ftparchive/multicompress.cc +++ b/ftparchive/multicompress.cc @@ -30,13 +30,6 @@ using namespace std; -const MultiCompress::CompType MultiCompress::Compressors[] = - {{".","",0,0,0,1}, - {"gzip",".gz","gzip","-9n","-d",2}, - {"bzip2",".bz2","bzip2","-9","-d",3}, - {"lzma",".lzma","lzma","-9","-d",4}, - {"xz",".xz","xz","-6","-d",5}, - {}}; // MultiCompress::MultiCompress - Constructor /*{{{*/ // --------------------------------------------------------------------- @@ -49,7 +42,7 @@ MultiCompress::MultiCompress(string const &Output,string const &Compress, Outputter = -1; Input = 0; UpdateMTime = 0; - + /* Parse the compression string, a space separated lists of compresison types */ string::const_iterator I = Compress.begin(); @@ -62,13 +55,14 @@ MultiCompress::MultiCompress(string const &Output,string const &Compress, for (; I != Compress.end() && !isspace(*I); I++); // Find the matching compressor - const CompType *Comp = Compressors; - for (; Comp->Name != 0; Comp++) - if (stringcmp(Start,I,Comp->Name) == 0) + std::vector<APT::Configuration::Compressor> Compressors = APT::Configuration::getCompressors(); + std::vector<APT::Configuration::Compressor>::const_iterator Comp = Compressors.begin(); + for (; Comp != Compressors.end(); ++Comp) + if (stringcmp(Start,I,Comp->Name.c_str()) == 0) break; // Hmm.. unknown. - if (Comp->Name == 0) + if (Comp == Compressors.end()) { _error->Warning(_("Unknown compression algorithm '%s'"),string(Start,I).c_str()); continue; @@ -78,7 +72,7 @@ MultiCompress::MultiCompress(string const &Output,string const &Compress, Files *NewOut = new Files; NewOut->Next = Outputs; Outputs = NewOut; - NewOut->CompressProg = Comp; + NewOut->CompressProg = *Comp; NewOut->Output = Output+Comp->Extension; struct stat St; @@ -142,13 +136,14 @@ bool MultiCompress::GetStat(string const &Output,string const &Compress,struct s for (; I != Compress.end() && !isspace(*I); I++); // Find the matching compressor - const CompType *Comp = Compressors; - for (; Comp->Name != 0; Comp++) - if (stringcmp(Start,I,Comp->Name) == 0) + std::vector<APT::Configuration::Compressor> Compressors = APT::Configuration::getCompressors(); + std::vector<APT::Configuration::Compressor>::const_iterator Comp = Compressors.begin(); + for (; Comp != Compressors.end(); ++Comp) + if (stringcmp(Start,I,Comp->Name.c_str()) == 0) break; // Hmm.. unknown. - if (Comp->Name == 0) + if (Comp == Compressors.end()) continue; string Name = Output+Comp->Extension; @@ -269,13 +264,13 @@ bool MultiCompress::Finalize(unsigned long &OutSize) /* This opens the compressor, either in compress mode or decompress mode. FileFd is always the compressor input/output file, OutFd is the created pipe, Input for Compress, Output for Decompress. */ -bool MultiCompress::OpenCompress(const CompType *Prog,pid_t &Pid,int const &FileFd, - int &OutFd,bool const &Comp) +bool MultiCompress::OpenCompress(APT::Configuration::Compressor const &Prog, + pid_t &Pid,int const &FileFd,int &OutFd,bool const &Comp) { Pid = -1; // No compression - if (Prog->Binary == 0) + if (Prog.Binary.empty() == true) { OutFd = dup(FileFd); return true; @@ -310,15 +305,17 @@ bool MultiCompress::OpenCompress(const CompType *Prog,pid_t &Pid,int const &File SetCloseExec(STDOUT_FILENO,false); SetCloseExec(STDIN_FILENO,false); - - const char *Args[3]; - Args[0] = Prog->Binary; - if (Comp == true) - Args[1] = Prog->CompArgs; - else - Args[1] = Prog->UnCompArgs; - Args[2] = 0; - execvp(Args[0],(char **)Args); + + std::vector<char const*> Args; + Args.push_back(Prog.Binary.c_str()); + std::vector<std::string> const * const addArgs = + (Comp == true) ? &(Prog.CompressArgs) : &(Prog.UncompressArgs); + for (std::vector<std::string>::const_iterator a = addArgs->begin(); + a != addArgs->end(); ++a) + Args.push_back(a->c_str()); + Args.push_back(NULL); + + execvp(Args[0],(char **)&Args[0]); cerr << _("Failed to exec compressor ") << Args[0] << endl; _exit(100); }; @@ -336,7 +333,7 @@ bool MultiCompress::OpenOld(int &Fd,pid_t &Proc) { Files *Best = Outputs; for (Files *I = Outputs; I != 0; I = I->Next) - if (Best->CompressProg->Cost > I->CompressProg->Cost) + if (Best->CompressProg.Cost > I->CompressProg.Cost) Best = I; // Open the file @@ -415,7 +412,7 @@ bool MultiCompress::Child(int const &FD) for (Files *I = Outputs; I != 0; I = I->Next) { if (I->CompressProc != -1) - ExecWait(I->CompressProc,I->CompressProg->Binary,false); + ExecWait(I->CompressProc, I->CompressProg.Binary.c_str(), false); } if (_error->PendingError() == true) diff --git a/ftparchive/multicompress.h b/ftparchive/multicompress.h index 3ac3b8fb2..19dede174 100644 --- a/ftparchive/multicompress.h +++ b/ftparchive/multicompress.h @@ -20,28 +20,18 @@ #include <string> #include <apt-pkg/fileutl.h> +#include <apt-pkg/aptconfiguration.h> #include <stdio.h> #include <sys/types.h> class MultiCompress { - // Enumeration of all supported compressors - struct CompType - { - const char *Name; - const char *Extension; - const char *Binary; - const char *CompArgs; - const char *UnCompArgs; - unsigned char Cost; - }; - // An output file struct Files { string Output; - const CompType *CompressProg; - Files *Next; + APT::Configuration::Compressor CompressProg; + Files *Next; FileFd TmpFile; pid_t CompressProc; time_t OldMTime; @@ -51,10 +41,9 @@ class MultiCompress Files *Outputs; pid_t Outputter; mode_t Permissions; - static const CompType Compressors[]; - bool OpenCompress(const CompType *Prog,pid_t &Pid,int const &FileFd, - int &OutFd,bool const &Comp); + bool OpenCompress(APT::Configuration::Compressor const &Prog, + pid_t &Pid,int const &FileFd, int &OutFd,bool const &Comp); bool Child(int const &Fd); bool Start(); bool Die(); diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 9462ebe27..9f12cbf3d 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -17,6 +17,7 @@ #include <apt-pkg/strutl.h> #include <apt-pkg/error.h> #include <apt-pkg/configuration.h> +#include <apt-pkg/aptconfiguration.h> #include <apt-pkg/md5.h> #include <apt-pkg/sha1.h> #include <apt-pkg/sha256.h> -- cgit v1.2.3-70-g09d2 From b0e1a43f95a3a6817dff6aed303a9823827ea0cf Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Sun, 27 Feb 2011 23:31:25 +0100 Subject: support every compression we have a compressor configured --- apt-pkg/aptconfiguration.cc | 13 +++++++++++++ apt-pkg/aptconfiguration.h | 3 +++ apt-pkg/deb/debsrcrecords.cc | 9 ++++++--- debian/changelog | 3 ++- 4 files changed, 24 insertions(+), 4 deletions(-) (limited to 'debian') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 2a441fce7..b23e12acb 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -388,6 +388,19 @@ const Configuration::getCompressors(bool const Cached) { return compressors; } /*}}}*/ +// getCompressorExtensions - supported data.tar extensions /*{{{*/ +// --------------------------------------------------------------------- +/* */ +std::vector<std::string> const Configuration::getCompressorExtensions() { + std::vector<APT::Configuration::Compressor> const compressors = getCompressors(); + std::vector<std::string> ext; + for (std::vector<APT::Configuration::Compressor>::const_iterator c = compressors.begin(); + c != compressors.end(); ++c) + if (c->Extension.empty() == false && c->Extension != ".") + ext.push_back(c->Extension); + return ext; +} + /*}}}*/ // Compressor constructor /*{{{*/ // --------------------------------------------------------------------- /* */ diff --git a/apt-pkg/aptconfiguration.h b/apt-pkg/aptconfiguration.h index e4bc5e683..815db6cae 100644 --- a/apt-pkg/aptconfiguration.h +++ b/apt-pkg/aptconfiguration.h @@ -105,6 +105,9 @@ public: /*{{{*/ * \return a vector of Compressors */ std::vector<Compressor> static const getCompressors(bool const Cached = true); + + /** \brief Return a vector of extensions supported for data.tar's */ + std::vector<std::string> static const getCompressorExtensions(); /*}}}*/ private: /*{{{*/ void static setDefaultConfigurationForCompressors(); diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc index 3809ee74f..749305005 100644 --- a/apt-pkg/deb/debsrcrecords.cc +++ b/apt-pkg/deb/debsrcrecords.cc @@ -14,6 +14,7 @@ #include <apt-pkg/error.h> #include <apt-pkg/strutl.h> #include <apt-pkg/configuration.h> +#include <apt-pkg/aptconfiguration.h> using std::max; /*}}}*/ @@ -111,7 +112,9 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List) string Base = Sect.FindS("Directory"); if (Base.empty() == false && Base[Base.length()-1] != '/') Base += '/'; - + + std::vector<std::string> const compExts = APT::Configuration::getCompressorExtensions(); + // Iterate over the entire list grabbing each triplet const char *C = Files.c_str(); while (*C != 0) @@ -144,8 +147,8 @@ bool debSrcRecordParser::Files(vector<pkgSrcRecords::File> &List) } F.Type = string(F.Path,Tmp+1,Pos-Tmp); - if (F.Type == "gz" || F.Type == "bz2" || F.Type == "lzma" || - F.Type == "xz" || F.Type == "tar") + if (std::find(compExts.begin(), compExts.end(), std::string(".").append(F.Type)) != compExts.end() || + F.Type == "tar") { Pos = Tmp-1; continue; diff --git a/debian/changelog b/debian/changelog index 499150d52..58a1a365f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,10 +19,11 @@ apt (0.8.11.6) UNRELEASED; urgency=low - support adding new compressors by configuration * apt-pkg/deb/debsrcrecords.cc: - support xz-compressed source v3 debian.tar files + - support every compression we have a compressor configured * ftparchive/contents.cc: - remove ExtractArchive codecopy from apt-inst/deb/debfile.cc - -- David Kalnischkies <kalnischkies@gmail.com> Sun, 27 Feb 2011 23:00:07 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Sun, 27 Feb 2011 23:30:36 +0100 apt (0.8.11.5) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 7296f1e6e65ae1926e4bbee3acb52a285e376a3a Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Mon, 28 Feb 2011 00:20:35 +0100 Subject: * apt-inst/deb/debfile.cc: - support data.tar's compressed with any configured compressor --- apt-inst/deb/debfile.cc | 42 ++++++++++++++++++++++++++---------------- debian/changelog | 4 +++- 2 files changed, 29 insertions(+), 17 deletions(-) (limited to 'debian') diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index 2b1fdedc8..a40cd1ae8 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -20,6 +20,7 @@ #include <apt-pkg/extracttar.h> #include <apt-pkg/error.h> #include <apt-pkg/deblistparser.h> +#include <apt-pkg/aptconfiguration.h> #include <sys/stat.h> #include <unistd.h> @@ -127,26 +128,35 @@ bool debDebFile::ExtractControl(pkgDataBase &DB) /* Simple wrapper around tar.. */ bool debDebFile::ExtractArchive(pkgDirStream &Stream) { - // Get the archive member and positition the file - const ARArchive::Member *Member = AR.FindMember("data.tar.gz"); - const char *Compressor = "gzip"; - if (Member == 0) { - Member = AR.FindMember("data.tar.bz2"); - Compressor = "bzip2"; - } - if (Member == 0) { - Member = AR.FindMember("data.tar.lzma"); - Compressor = "lzma"; + // Get the archive member + const ARArchive::Member *Member = NULL; + std::string Compressor; + + std::string const data = "data.tar"; + std::vector<APT::Configuration::Compressor> compressor = APT::Configuration::getCompressors(); + for (std::vector<APT::Configuration::Compressor>::const_iterator c = compressor.begin(); + c != compressor.end(); ++c) + { + Member = AR.FindMember(std::string(data).append(c->Extension).c_str()); + if (Member == NULL) + continue; + Compressor = c->Binary; + break; } - if (Member == 0) { - Member = AR.FindMember("data.tar.xz"); - Compressor = "xz"; + + if (Member == NULL) + { + std::string ext = "data.tar.{"; + for (std::vector<APT::Configuration::Compressor>::const_iterator c = compressor.begin(); + c != compressor.end(); ++c) + ext.append(c->Extension.substr(1)); + ext.append("}"); + return _error->Error(_("Internal error, could not locate member %s"), ext.c_str()); } - if (Member == 0) - return _error->Error(_("Internal error, could not locate member %s"), "data.tar.{gz,bz2,lzma,xz}"); + if (File.Seek(Member->Start) == false) return false; - + // Prepare Tar ExtractTar Tar(File,Member->Size,Compressor); if (_error->PendingError() == true) diff --git a/debian/changelog b/debian/changelog index 58a1a365f..c012023ff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,8 +22,10 @@ apt (0.8.11.6) UNRELEASED; urgency=low - support every compression we have a compressor configured * ftparchive/contents.cc: - remove ExtractArchive codecopy from apt-inst/deb/debfile.cc + * apt-inst/deb/debfile.cc: + - support data.tar's compressed with any configured compressor - -- David Kalnischkies <kalnischkies@gmail.com> Sun, 27 Feb 2011 23:30:36 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Mon, 28 Feb 2011 00:19:55 +0100 apt (0.8.11.5) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From bd15e63f52786ed2332976f16d67de3ef59dfbed Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Mon, 7 Mar 2011 22:19:19 +0100 Subject: * cmdline/apt-get.cc: - reinstall dependencies of reinstalled "garbage" (Closes: #617257) --- cmdline/apt-get.cc | 2 +- debian/changelog | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index bc2f71c18..c0983b06d 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1718,7 +1718,7 @@ bool DoAutomaticRemove(CacheFile &Cache) R->Type != pkgCache::Dep::PreDepends) continue; pkgCache::PkgIterator N = R.ParentPkg(); - if (N.end() == true || N->CurrentVer == 0) + if (N.end() == true || (N->CurrentVer == 0 && (*Cache)[N].Install() == false)) continue; if (Debug == true) std::clog << "Save " << P << " as another installed garbage package depends on it" << std::endl; diff --git a/debian/changelog b/debian/changelog index c012023ff..da4e04c4b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,8 +24,10 @@ apt (0.8.11.6) UNRELEASED; urgency=low - remove ExtractArchive codecopy from apt-inst/deb/debfile.cc * apt-inst/deb/debfile.cc: - support data.tar's compressed with any configured compressor + * cmdline/apt-get.cc: + - reinstall dependencies of reinstalled "garbage" (Closes: #617257) - -- David Kalnischkies <kalnischkies@gmail.com> Mon, 28 Feb 2011 00:19:55 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Mon, 07 Mar 2011 22:16:54 +0100 apt (0.8.11.5) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 8e11253db6070bede2ecba01dbd3fde6019c8260 Mon Sep 17 00:00:00 2001 From: Steve Langasek <steve.langasek@linaro.org> Date: Mon, 7 Mar 2011 22:57:52 +0100 Subject: * apt-pkg/deb/dpkgpm.cc: - make sure that for multiarch packages, we are passing the full qualified package name to dpkg for removals. (Closes: #614298) --- apt-pkg/deb/dpkgpm.cc | 21 +++++++++++++++++++-- debian/changelog | 7 ++++++- 2 files changed, 25 insertions(+), 3 deletions(-) (limited to 'debian') diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 7d0d34a46..84443447f 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -881,7 +881,10 @@ bool pkgDPkgPM::Go(int OutStatusFd) // Generate the argument list const char *Args[MaxArgs + 50]; - + // keep track of allocated strings for multiarch package names + char *Packages[MaxArgs + 50]; + unsigned int pkgcount = 0; + // Now check if we are within the MaxArgs limit // // this code below is problematic, because it may happen that @@ -989,13 +992,22 @@ bool pkgDPkgPM::Go(int OutStatusFd) } else { + string const nativeArch = _config->Find("APT::Architecture"); for (;I != J && Size < MaxArgBytes; I++) { if((*I).Pkg.end() == true) continue; if (I->Op == Item::Configure && disappearedPkgs.find(I->Pkg.Name()) != disappearedPkgs.end()) continue; - Args[n++] = I->Pkg.Name(); + if (I->Pkg.Arch() == nativeArch || !strcmp(I->Pkg.Arch(), "all")) + Args[n++] = I->Pkg.Name(); + else + { + string const PkgDesc = I->Pkg.Name() + string(":") + string(I->Pkg.Arch()); + Packages[pkgcount] = new char[PkgDesc.size()+1]; + strncpy(Packages[pkgcount++],PkgDesc.c_str(),PkgDesc.size()+1); + Args[n++] = Packages[pkgcount-1]; + } Size += strlen(Args[n-1]); } } @@ -1145,6 +1157,11 @@ bool pkgDPkgPM::Go(int OutStatusFd) sigemptyset(&sigmask); sigprocmask(SIG_BLOCK,&sigmask,&original_sigmask); + /* clean up the temporary allocation for multiarch package names in + the parent, so we don't leak memory when we return. */ + for (unsigned int i = 0; i < pkgcount; i++) + delete [] Packages[i]; + // the result of the waitpid call int res; int select_ret; diff --git a/debian/changelog b/debian/changelog index 971e967a4..bcafbd71b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -28,7 +28,12 @@ apt (0.8.11.6) UNRELEASED; urgency=low * cmdline/apt-get.cc: - reinstall dependencies of reinstalled "garbage" (Closes: #617257) - -- David Kalnischkies <kalnischkies@gmail.com> Mon, 07 Mar 2011 22:43:15 +0100 + [ Steve Langasek ] + * apt-pkg/deb/dpkgpm.cc: + - make sure that for multiarch packages, we are passing the full + qualified package name to dpkg for removals. (Closes: #614298) + + -- David Kalnischkies <kalnischkies@gmail.com> Mon, 07 Mar 2011 22:46:24 +0100 apt (0.8.11.5) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 28166356f30ad13729f7f952e6f1fc6131036591 Mon Sep 17 00:00:00 2001 From: David Kalnischkies <kalnischkies@gmail.com> Date: Tue, 8 Mar 2011 19:32:35 +0100 Subject: Remove the "pseudopackage" handling of Architecture: all packages for Multi-Arch; instead, Arch: all packages only satisfy dependencies for the native arch, except where the Arch: all package is declared Multi-Arch: foreign. (Closes: #613584) This has the sideeffect that arch:all packages internally show up as coming from the native arch - so packages with the architecture "all" doesn't exist any longer in the pkgcache --- README.MultiArch | 56 +--- apt-pkg/algorithms.cc | 64 ----- apt-pkg/cacheiterators.h | 8 +- apt-pkg/cacheset.h | 4 +- apt-pkg/deb/deblistparser.cc | 84 ++---- apt-pkg/depcache.cc | 304 +-------------------- apt-pkg/depcache.h | 8 +- apt-pkg/orderlist.cc | 4 - apt-pkg/packagemanager.cc | 35 +-- apt-pkg/pkgcache.cc | 18 +- apt-pkg/pkgcache.h | 4 +- apt-pkg/pkgcachegen.cc | 49 +--- apt-pkg/policy.cc | 7 - cmdline/apt-cache.cc | 10 +- cmdline/apt-get.cc | 13 - debian/apt.symbols | 2 +- debian/changelog | 6 +- ...est-bug-549968-install-depends-of-not-installed | 4 +- ...g-590438-broken-provides-thanks-to-remove-order | 8 +- .../integration/test-bug-593360-modifiers-in-names | 16 +- .../test-bug-612099-multiarch-conflicts | 77 +++--- test/integration/test-release-candidate-switching | 30 +- 22 files changed, 141 insertions(+), 670 deletions(-) (limited to 'debian') diff --git a/README.MultiArch b/README.MultiArch index b2964ac38..588419b8d 100644 --- a/README.MultiArch +++ b/README.MultiArch @@ -47,67 +47,17 @@ and also to MultiArch as a Group consists of possible many packages which all have the same name and are therefore out of interest for pkgnames. -Caused by the paragraph "Dependencies involving Architecture: all packages" -in the MultiArch spec we have a second major conceptional change -which could even break existing applications, but we hope for the best… -An Architecture: all package is internally split into pseudo packages -for all MultiArch Architectures and additional a package with the -architecture "all" with no dependencies which is a dependency of all -these architecture depending packages. While the architecture depending -packages are mainly used for dependency resolution (a package of arch A which -depends on an arch all package assumes that the dependencies of this package -are also from arch A. Packages also sometimes change from any to all or v.v.) -the arch "all" package is used for scheduling download/installation of the -underlying "real" package. Note that the architecture depending packages can -be detected with Pseudo() while the "all" package reports exactly this arch -as package architecture and as pseudo architecture of the versions of this pkg. -Beware: All versions of a "real" architecture all package will be report "all" -as their architecture if asked with Arch() regardless if they are the "all" or -the architecture depending packages. If you want to know the architecture this -pseudo package was created for call Arch(true). Also, while the spec say that -arch:all packages are not allowed to have a MultiArch flag APT assigns a -special value to them: MultiArch: all. - - -As you might guess this arch:all handling has a few problems (but we think so -far that the problems are minor compared to the problems we would have with -other implementations.) -APT doesn't know which pseudo packages of such an arch all package are -"installed" (to satisfy dependencies), so APT will generate a Cache in which -all these pseudo packages are installed (e.g. apt-cache policy will display -them all as installed). Later in the DepCache step it will "remove" -all pseudo packages whose dependencies are not satisfied. -The expense is that if the package state is broken APT could come to the -conclusion to "remove" too many pseudo packages, but in a stable environment -APT should never end up in a broken system state… - - Given all these internal changes it is quite interesting that the actual implementation of MultiArch is trivial: Some implicit dependencies and a few more provides are all changes needed to get it working. Especially noteworthy is that it wasn't needed to change the resolver in any way and other parts only -need to be told about ignoring pseudo packages or using GrpIterator instead of -PkgIterator, so chances are good that libapt-applications will proceed to work -without or at least only require minor changes, but your mileage may vary… +need to be told about using GrpIterator instead of PkgIterator, so chances are +good that libapt-applications will proceed to work without or at least only +require minor changes, but your mileage may vary… Known Issues and/or noteworthy stuff: * The implementation is mostly untested, so it is very likely that APT will eat your kids if you aren't as lucky as the author of these patches. -* the (install)size of a pseudo package is always NULL - if you want to know - the (install)size you need to get the info from the arch "all" package. -* It is maybe confusing, but the arch "all" package does have the same versions - and in general roughly the same information with one subtil difference: - It doesn't have any dependency, regardless of the type. The pseudo packages - depend on this package. -* apt-cache policy foobar on installed architecture all package foobar will - report all architecture depending packages as installed. Displaying here the - correct information would require to build the complete DepCache… -* [BUG] An installed package which changes the architecture from any to all - (and v.v.) shows up in the NEW packages section instead of UPGRADE. -* [TODO] Investigate the DepCache pseudo-package killer heuristic: - e.g. add more safety guards… -* [FIXME] a few corner cases/missing features marked as FIXME in the code - [0] https://wiki.ubuntu.com/MultiarchSpec diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 66c182b23..0b4366e5e 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -90,21 +90,6 @@ bool pkgSimulate::Install(PkgIterator iPkg,string /*File*/) Describe(Pkg,cout,true,true); Sim.MarkInstall(Pkg,false); - if (strcmp(Pkg.Arch(),"all") == 0) - { - pkgCache::GrpIterator G = Pkg.Group(); - pkgCache::GrpIterator iG = iPkg.Group(); - for (pkgCache::PkgIterator P = G.FindPkg("any"); P.end() != true; P = G.NextPkg(P)) - { - if (strcmp(P.Arch(), "all") == 0) - continue; - if (iG.FindPkg(P.Arch())->CurrentVer == 0) - continue; - Flags[P->ID] = 1; - Sim.MarkInstall(P, false); - } - } - // Look for broken conflicts+predepends. for (PkgIterator I = Sim.PkgBegin(); I.end() == false; I++) { @@ -150,40 +135,6 @@ bool pkgSimulate::Configure(PkgIterator iPkg) Flags[Pkg->ID] = 2; - if (strcmp(Pkg.Arch(),"all") == 0) - { - pkgCache::GrpIterator G = Pkg.Group(); - for (pkgCache::PkgIterator P = G.FindPkg("any"); P.end() != true; P = G.NextPkg(P)) - { - if (strcmp(P.Arch(), "all") == 0) - continue; - if (Flags[P->ID] == 1) - Flags[P->ID] = 2; - } - } - - 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; @@ -235,21 +186,6 @@ bool pkgSimulate::Remove(PkgIterator iPkg,bool Purge) Flags[Pkg->ID] = 3; Sim.MarkDelete(Pkg); - if (strcmp(Pkg.Arch(),"all") == 0) - { - pkgCache::GrpIterator G = Pkg.Group(); - pkgCache::GrpIterator iG = iPkg.Group(); - for (pkgCache::PkgIterator P = G.FindPkg("any"); P.end() != true; P = G.NextPkg(P)) - { - if (strcmp(P.Arch(), "all") == 0) - continue; - if (iG.FindPkg(P.Arch())->CurrentVer == 0) - continue; - Flags[P->ID] = 3; - Sim.MarkDelete(P); - } - } - if (Purge == true) cout << "Purg "; else diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 449d4b441..31b3aced3 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -206,13 +206,9 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> { inline const char *VerStr() const {return S->VerStr == 0?0:Owner->StrP + S->VerStr;}; inline const char *Section() const {return S->Section == 0?0:Owner->StrP + S->Section;}; inline const char *Arch() const { - if(S->MultiArch == pkgCache::Version::All) - return "all"; return S->ParentPkg == 0?0:Owner->StrP + ParentPkg()->Arch; }; - inline const char *Arch(bool const pseudo) const { - if(pseudo == false) - return Arch(); + __deprecated inline const char *Arch(bool const pseudo) const { return S->ParentPkg == 0?0:Owner->StrP + ParentPkg()->Arch; }; inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + S->ParentPkg);}; @@ -227,7 +223,7 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> { string RelStr() const; bool Automatic() const; - bool Pseudo() const; + __deprecated bool Pseudo() const; VerFileIterator NewestFile() const; inline VerIterator(pkgCache &Owner,Version *Trg = 0) : Iterator<Version, VerIterator>(Owner, Trg) { diff --git a/apt-pkg/cacheset.h b/apt-pkg/cacheset.h index 3f4f0066b..e690d660c 100644 --- a/apt-pkg/cacheset.h +++ b/apt-pkg/cacheset.h @@ -257,7 +257,7 @@ public: /*{{{*/ inline const char *VerStr() const { return (**this).VerStr(); }; inline const char *Section() const { return (**this).Section(); }; inline const char *Arch() const { return (**this).Arch(); }; - inline const char *Arch(bool const pseudo) const { return (**this).Arch(pseudo); }; + __deprecated inline const char *Arch(bool const pseudo) const { return (**this).Arch(); }; inline pkgCache::PkgIterator ParentPkg() const { return (**this).ParentPkg(); }; inline pkgCache::DescIterator DescriptionList() const { return (**this).DescriptionList(); }; inline pkgCache::DescIterator TranslatedDescription() const { return (**this).TranslatedDescription(); }; @@ -268,7 +268,7 @@ public: /*{{{*/ inline const char *PriorityType() const { return (**this).PriorityType(); }; inline string RelStr() const { return (**this).RelStr(); }; inline bool Automatic() const { return (**this).Automatic(); }; - inline bool Pseudo() const { return (**this).Pseudo(); }; + __deprecated inline bool Pseudo() const { return false; }; inline pkgCache::VerFileIterator NewestFile() const { return (**this).NewestFile(); }; }; /*}}}*/ diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 9201e6a54..edc001abb 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -67,23 +67,12 @@ string debListParser::Package() { /*}}}*/ // ListParser::Architecture - Return the package arch /*{{{*/ // --------------------------------------------------------------------- -/* This will return the Architecture of the package this section describes - Note that architecture "all" packages will get the architecture of the - Packages file parsed here. */ +/* This will return the Architecture of the package this section describes */ string debListParser::Architecture() { - string const Result = Section.FindS("Architecture"); - if (Result.empty() == true || Result == "all") - { - if (Arch.empty() == true) - /* FIXME: this is a problem for installed arch all - packages as we don't know from which arch this - package was installed - and therefore which - dependency this package resolves. */ - return _config->Find("APT::Architecture"); - else - return Arch; - } - return Result; + std::string const Arch = Section.FindS("Architecture"); + if (Arch.empty() == true) + return _config->Find("APT::Architecture"); + return Arch; } /*}}}*/ // ListParser::ArchitectureAll /*{{{*/ @@ -112,27 +101,30 @@ bool debListParser::NewVersion(pkgCache::VerIterator &Ver) Ver->Section = UniqFindTagWrite("Section"); // Parse multi-arch - if (Section.FindS("Architecture") == "all") - /* Arch all packages can't have a Multi-Arch field, - but we need a special treatment for them nonetheless */ - Ver->MultiArch = pkgCache::Version::All; - else - { - string const MultiArch = Section.FindS("Multi-Arch"); - if (MultiArch.empty() == true) - Ver->MultiArch = pkgCache::Version::None; - else if (MultiArch == "same") - Ver->MultiArch = pkgCache::Version::Same; - else if (MultiArch == "foreign") - Ver->MultiArch = pkgCache::Version::Foreign; - else if (MultiArch == "allowed") - Ver->MultiArch = pkgCache::Version::Allowed; - else + string const MultiArch = Section.FindS("Multi-Arch"); + if (MultiArch.empty() == true) + Ver->MultiArch = pkgCache::Version::None; + else if (MultiArch == "same") { + // Parse multi-arch + if (Section.FindS("Architecture") == "all") { - _error->Warning("Unknown Multi-Arch type »%s« for package »%s«", - MultiArch.c_str(), Section.FindS("Package").c_str()); + /* Arch all packages can't be Multi-Arch: same */ + _error->Warning("Architecture: all package '%s' can't be Multi-Arch: same", + Section.FindS("Package").c_str()); Ver->MultiArch = pkgCache::Version::None; } + else + Ver->MultiArch = pkgCache::Version::Same; + } + else if (MultiArch == "foreign") + Ver->MultiArch = pkgCache::Version::Foreign; + else if (MultiArch == "allowed") + Ver->MultiArch = pkgCache::Version::Allowed; + else + { + _error->Warning("Unknown Multi-Arch type '%s' for package '%s'", + MultiArch.c_str(), Section.FindS("Package").c_str()); + Ver->MultiArch = pkgCache::Version::None; } // Archive Size @@ -150,24 +142,6 @@ bool debListParser::NewVersion(pkgCache::VerIterator &Ver) Ver->Priority = pkgCache::State::Extra; } - if (Ver->MultiArch == pkgCache::Version::All) - { - /* We maintain a "pseudo" arch=all package for architecture all versions - on which these versions can depend on. This pseudo package is many used - for downloading/installing: The other pseudo-packages will degenerate - to a NOP in the download/install step - this package will ensure that - it is downloaded only one time and installed only one time -- even if - the architecture bound versions coming in and out on regular basis. */ - if (strcmp(Ver.Arch(true),"all") == 0) - return true; - else if (MultiArchEnabled == true) - { - // our pseudo packages have no size to not confuse the fetcher - Ver->Size = 0; - Ver->InstalledSize = 0; - } - } - if (ParseDepends(Ver,"Depends",pkgCache::Dep::Depends) == false) return false; if (ParseDepends(Ver,"Pre-Depends",pkgCache::Dep::PreDepends) == false) @@ -644,7 +618,7 @@ bool debListParser::ParseDepends(pkgCache::VerIterator &Ver, return true; string Package; - string const pkgArch = Ver.Arch(true); + string const pkgArch = Ver.Arch(); string Version; unsigned int Op; @@ -683,7 +657,7 @@ bool debListParser::ParseProvides(pkgCache::VerIterator &Ver) { string Package; string Version; - string const Arch = Ver.Arch(true); + string const Arch = Ver.Arch(); unsigned int Op; while (1) @@ -768,7 +742,7 @@ bool debListParser::Step() if (Architecture == Arch) return true; - if (Architecture == "all") + if (Architecture == "all" && Arch == _config->Find("APT::Architecture")) return true; } diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index ddbd37699..fba6ad054 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -705,107 +705,6 @@ void pkgDepCache::UpdateVerState(PkgIterator Pkg) } } /*}}}*/ -// DepCache::RemovePseudoInstalledPkg - MultiArch helper for Update() /*{{{*/ -// --------------------------------------------------------------------- -/* We "install" arch all packages for all archs if it is installed. Many - of these will be broken. This method will look at these broken Pkg and - "remove" it. */ -bool pkgDepCache::RemovePseudoInstalledPkg(PkgIterator &Pkg, std::set<unsigned long> &recheck) { - if (unlikely(Pkg->CurrentVer == 0)) - return false; - - VerIterator V = Pkg.CurrentVer(); - if (V->MultiArch != Version::All) - return false; - - // Never ever kill an "all" package - they have no dependency so they can't be broken - if (strcmp(Pkg.Arch(),"all") == 0) - return false; - - unsigned char const CurDepState = VersionState(V.DependsList(),DepInstall,DepInstMin,DepInstPolicy); - if ((CurDepState & DepInstMin) == DepInstMin) { - // okay, the package isn't broken, but is the package also required? - // If it has no real dependencies, no installed rdepends and doesn't - // provide something of value, we will kill it as not required. - // These pseudopackages have otherwise interesting effects if they get - // a new dependency in a newer version… - for (pkgCache::DepIterator D = V.DependsList(); - D.end() != true; ++D) - if (D.IsCritical() == true && D.ParentPkg()->Group != Pkg->Group) - return false; - for (DepIterator D = Pkg.RevDependsList(); D.end() != true; ++D) - { - if (D.IsCritical() == false) - continue; - PkgIterator const P = D.ParentPkg(); - if (P->Group == Pkg->Group) - continue; - if (P->CurrentVer != 0) - return false; - } - for (PrvIterator Prv = V.ProvidesList(); Prv.end() != true; Prv++) - for (DepIterator d = Prv.ParentPkg().RevDependsList(); - d.end() != true; ++d) - { - PkgIterator const P = d.ParentPkg(); - if (P->CurrentVer != 0 && - P->Group != Pkg->Group) - return false; - } - } - - // Dependencies for this arch all package are not statisfied - // so we installed it only for our convenience: get right of it now. - RemoveSizes(Pkg); - RemoveStates(Pkg); - - Pkg->CurrentVer = 0; - PkgState[Pkg->ID].InstallVer = 0; - - AddStates(Pkg); - Update(Pkg); - AddSizes(Pkg); - - // After the remove previously satisfied pseudo pkg could be now - // no longer satisfied, so we need to recheck the reverse dependencies - for (DepIterator d = Pkg.RevDependsList(); d.end() != true; ++d) - { - PkgIterator const P = d.ParentPkg(); - if (P->CurrentVer != 0) - recheck.insert(P.Index()); - } - - for (DepIterator d = V.DependsList(); d.end() != true; ++d) - { - PkgIterator const P = d.TargetPkg(); - for (PrvIterator Prv = P.ProvidesList(); Prv.end() != true; ++Prv) - { - PkgIterator const O = Prv.OwnerPkg(); - if (O->CurrentVer != 0) - recheck.insert(O.Index()); - } - - if (P->CurrentVer != 0) - recheck.insert(P.Index()); - } - - for (PrvIterator Prv = V.ProvidesList(); Prv.end() != true; Prv++) - { - for (DepIterator d = Prv.ParentPkg().RevDependsList(); - d.end() != true; ++d) - { - PkgIterator const P = d.ParentPkg(); - if (P->CurrentVer == 0) - continue; - - recheck.insert(P.Index()); - } - } - - - return true; -} - /*}}}*/ // DepCache::Update - Figure out all the state information /*{{{*/ // --------------------------------------------------------------------- /* This will figure out the state of all the packages and all the @@ -820,12 +719,8 @@ void pkgDepCache::Update(OpProgress *Prog) iBrokenCount = 0; iBadCount = 0; - std::set<unsigned long> recheck; - // Perform the depends pass int Done = 0; - bool const checkMultiArch = APT::Configuration::getArchitectures().size() > 1; - unsigned long killed = 0; for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++) { if (Prog != 0 && Done%20 == 0) @@ -858,69 +753,6 @@ void pkgDepCache::Update(OpProgress *Prog) AddSizes(I); UpdateVerState(I); AddStates(I); - - if (checkMultiArch != true || I->CurrentVer == 0) - continue; - - VerIterator const V = I.CurrentVer(); - if (V->MultiArch != Version::All) - continue; - - recheck.insert(I.Index()); - --Done; // no progress if we need to recheck the package - } - - if (checkMultiArch == true) { - /* FIXME: recheck breaks proper progress reporting as we don't know - how many packages we need to recheck. To lower the effect - a bit we increase with a kill, but we should do something more clever… */ - while(recheck.empty() == false) - for (std::set<unsigned long>::const_iterator p = recheck.begin(); - p != recheck.end();) { - if (Prog != 0 && Done%20 == 0) - Prog->Progress(Done); - PkgIterator P = PkgIterator(*Cache, Cache->PkgP + *p); - if (RemovePseudoInstalledPkg(P, recheck) == true) { - ++killed; - ++Done; - } - recheck.erase(p++); - } - - /* Okay, we have killed a great amount of pseudopackages - - we have killed so many that we have now arch "all" packages - without an installed pseudo package, but we NEED an installed - pseudo package, so we will search now for a pseudo package - we can install without breaking everything. */ - for (GrpIterator G = Cache->GrpBegin(); G.end() != true; ++G) - { - PkgIterator P = G.FindPkg("all"); - if (P.end() == true) - continue; - if (P->CurrentVer == 0) - continue; - bool installed = false; - for (P = G.FindPkg("any"); P.end() != true; P = G.NextPkg(P)) - { - if (strcmp(P.Arch(), "all") == 0) - continue; - if (P->CurrentVer == 0) - continue; - installed = true; - break; - } - if (installed == false) - recheck.insert(G.Index()); - } - - while (recheck.empty() != true) - { - std::set<unsigned long>::const_iterator g = recheck.begin(); - unsigned long const G = *g; - recheck.erase(g); - if (unlikely(ReInstallPseudoForGroup(G, recheck) == false)) - _error->Warning(_("Internal error, group '%s' has no installable pseudo package"), GrpIterator(*Cache, Cache->GrpP + G).Name()); - } } if (Prog != 0) @@ -929,80 +761,6 @@ void pkgDepCache::Update(OpProgress *Prog) readStateFile(Prog); } /*}}}*/ -// DepCache::ReInstallPseudoForGroup - MultiArch helper for Update() /*{{{*/ -// --------------------------------------------------------------------- -/* RemovePseudoInstalledPkg() is very successful. It even kills packages - to an amount that no pseudo package is left, but we need a pseudo package - for upgrading senarios so we need to reinstall one pseudopackage which - doesn't break everything. Thankfully we can't have architecture depending - negative dependencies so this problem is already eliminated */ -bool pkgDepCache::ReInstallPseudoForGroup(pkgCache::PkgIterator const &P, std::set<unsigned long> &recheck) -{ - if (P->CurrentVer != 0) - return true; - // recursive call for packages which provide this package - for (pkgCache::PrvIterator Prv = P.ProvidesList(); Prv.end() != true; ++Prv) - ReInstallPseudoForGroup(Prv.OwnerPkg(), recheck); - // check if we actually need to look at this group - unsigned long const G = P->Group; - std::set<unsigned long>::const_iterator Pi = recheck.find(G); - if (Pi == recheck.end()) - return true; - recheck.erase(Pi); // remove here, so we can't fall into an endless loop - if (unlikely(ReInstallPseudoForGroup(G, recheck) == false)) - { - recheck.insert(G); - return false; - } - return true; -} -bool pkgDepCache::ReInstallPseudoForGroup(unsigned long const &G, std::set<unsigned long> &recheck) -{ - std::vector<std::string> static const Archs = APT::Configuration::getArchitectures(); - pkgCache::GrpIterator Grp(*Cache, Cache->GrpP + G); - if (unlikely(Grp.end() == true)) - return false; - for (std::vector<std::string>::const_iterator a = Archs.begin(); - a != Archs.end(); ++a) - { - pkgCache::PkgIterator P = Grp.FindPkg(*a); - if (P.end() == true) - continue; - pkgCache::VerIterator allV = Grp.FindPkg("all").CurrentVer(); - for (VerIterator V = P.VersionList(); V.end() != true; ++V) - { - // search for the same version as the all package - if (allV->Hash != V->Hash || strcmp(allV.VerStr(),V.VerStr()) != 0) - continue; - unsigned char const CurDepState = VersionState(V.DependsList(),DepInstall,DepInstMin,DepInstPolicy); - // If it is broken, try to install dependencies first before retry - if ((CurDepState & DepInstMin) != DepInstMin) - { - for (pkgCache::DepIterator D = V.DependsList(); D.end() != true; ++D) - { - if (D->Type != pkgCache::Dep::PreDepends && D->Type != pkgCache::Dep::Depends) - continue; - ReInstallPseudoForGroup(D.TargetPkg(), recheck); - } - unsigned char const CurDepState = VersionState(V.DependsList(),DepInstall,DepInstMin,DepInstPolicy); - // if package ist still broken… try another arch - if ((CurDepState & DepInstMin) != DepInstMin) - break; - } - // dependencies satisfied: reinstall the package - RemoveSizes(P); - RemoveStates(P); - P->CurrentVer = V.Index(); - PkgState[P->ID].InstallVer = V; - AddStates(P); - Update(P); - AddSizes(P); - return true; - } - } - return false; -} - /*}}}*/ // DepCache::Update - Update the deps list of a package /*{{{*/ // --------------------------------------------------------------------- /* This is a helper for update that only does the dep portion of the scan. @@ -1165,18 +923,6 @@ void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge, Update(Pkg); AddSizes(Pkg); - // if we remove the pseudo package, we also need to remove the "real" - if (Pkg->CurrentVer != 0 && Pkg.CurrentVer().Pseudo() == true) - MarkDelete(Pkg.Group().FindPkg("all"), rPurge, Depth+1, FromUser); - else if (rPurge == true && Pkg->CurrentVer == 0 && - Pkg->CurrentState != pkgCache::State::NotInstalled && - strcmp(Pkg.Arch(), "all") != 0) - { - PkgIterator const allPkg = Pkg.Group().FindPkg("all"); - if (allPkg.end() == false && allPkg->CurrentVer == 0 && - allPkg->CurrentState != pkgCache::State::NotInstalled) - MarkDelete(allPkg, rPurge, Depth+1, FromUser); - } } /*}}}*/ // DepCache::IsDeleteOk - check if it is ok to remove this package /*{{{*/ @@ -1276,10 +1022,6 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, Update(Pkg); AddSizes(Pkg); - // always trigger the install of the all package for a pseudo package - if (P.CandidateVerIter(*Cache).Pseudo() == true) - MarkInstall(Pkg.Group().FindPkg("all"), AutoInst, Depth, FromUser, ForceImportantDeps); - if (AutoInst == false) return; @@ -1499,7 +1241,7 @@ void pkgDepCache::SetReInstall(PkgIterator const &Pkg,bool To) AddStates(Pkg); AddSizes(Pkg); - if (unlikely(Pkg.CurrentVer().end() == true) || Pkg.CurrentVer().Pseudo() == false) + if (unlikely(Pkg.CurrentVer().end() == true)) return; SetReInstall(Pkg.Group().FindPkg("all"), To); @@ -1510,7 +1252,6 @@ void pkgDepCache::SetReInstall(PkgIterator const &Pkg,bool To) /* */ void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo) { - pkgCache::PkgIterator Pkg = TargetVer.ParentPkg(); StateCache &P = PkgState[Pkg->ID]; @@ -1531,27 +1272,6 @@ void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo) Update(Pkg); AddSizes(Pkg); - if (TargetVer.Pseudo() == false || Pseudo == false) - return; - - // the version was pseudo: set all other pseudos also - pkgCache::GrpIterator Grp = Pkg.Group(); - for (Pkg = Grp.FindPkg("any"); Pkg.end() == false; ++Pkg) - { - StateCache &P = PkgState[Pkg->ID]; - if (TargetVer.SimilarVer(P.CandidateVerIter(*this)) == true || - (P.CandidateVerIter(*this).Pseudo() == false && - strcmp(Pkg.Arch(), "all") != 0)) - continue; - - for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; ++Ver) - { - if (TargetVer.SimilarVer(Ver) == false) - continue; - SetCandidateVersion(Ver, false); - break; - } - } } /*}}}*/ // DepCache::SetCandidateRelease - Change the candidate version /*{{{*/ @@ -1967,28 +1687,6 @@ void pkgDepCache::MarkPackage(const pkgCache::PkgIterator &pkg, if(ver.end() == true) return; - // If the version belongs to a Multi-Arch all package - // we will mark all others in this Group with this version also - if (ver->MultiArch == pkgCache::Version::All && - strcmp(ver.Arch(true), "all") == 0) - { - GrpIterator G = pkg.Group(); - const char* const VerStr = ver.VerStr(); - for (PkgIterator P = G.FindPkg("any"); - P.end() != true; P = G.NextPkg(P)) - { - for (VerIterator V = P.VersionList(); - V.end() != true; ++V) - { - if (ver->Hash != V->Hash || - strcmp(VerStr, V.VerStr()) != 0) - continue; - MarkPackage(P, V, follow_recommends, follow_suggests); - break; - } - } - } - for(DepIterator d = ver.DependsList(); !d.end(); ++d) { if(d->Type == Dep::Depends || diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index dba3e22dc..b95681118 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -395,6 +395,7 @@ class pkgDepCache : protected pkgCache::Namespace bool ForceImportantDeps = false); void SetReInstall(PkgIterator const &Pkg,bool To); + // FIXME: Remove the unused boolean parameter on abi break void SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo = true); bool SetCandidateRelease(pkgCache::VerIterator TargetVer, std::string const &TargetRel); @@ -481,9 +482,10 @@ class pkgDepCache : protected pkgCache::Namespace private: // Helper for Update(OpProgress) to remove pseudoinstalled arch all packages - bool RemovePseudoInstalledPkg(PkgIterator &Pkg, std::set<unsigned long> &recheck); - bool ReInstallPseudoForGroup(unsigned long const &Grp, std::set<unsigned long> &recheck); - bool ReInstallPseudoForGroup(pkgCache::PkgIterator const &P, std::set<unsigned long> &recheck); + // FIXME: they are private so shouldn't affect abi, but just in case… + __deprecated bool RemovePseudoInstalledPkg(PkgIterator &Pkg, std::set<unsigned long> &recheck) { return true; }; + __deprecated bool ReInstallPseudoForGroup(unsigned long const &Grp, std::set<unsigned long> &recheck) { return true; }; + __deprecated bool ReInstallPseudoForGroup(pkgCache::PkgIterator const &P, std::set<unsigned long> &recheck) { return true; }; }; #endif diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc index a53854a26..d5bd19581 100644 --- a/apt-pkg/orderlist.cc +++ b/apt-pkg/orderlist.cc @@ -128,10 +128,6 @@ bool pkgOrderList::IsMissing(PkgIterator Pkg) if (FileList[Pkg->ID].empty() == false) return false; - // Missing Pseudo packages are missing if the real package is missing - if (pkgCache::VerIterator(Cache, Cache[Pkg].CandidateVer).Pseudo() == true) - return IsMissing(Pkg.Group().FindPkg("all")); - return true; } /*}}}*/ diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index cff34058c..4c655cb7b 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -81,9 +81,6 @@ bool pkgPackageManager::GetArchives(pkgAcquire *Owner,pkgSourceList *Sources, if (List->IsNow(Pkg) == false) continue; - if (pkgCache::VerIterator(Cache, Cache[Pkg].CandidateVer).Pseudo() == true) - continue; - new pkgAcqArchive(Owner,Sources,Recs,Cache[Pkg].InstVerIter(Cache), FileNames[Pkg->ID]); } @@ -281,9 +278,7 @@ bool pkgPackageManager::ConfigureAll() { PkgIterator Pkg(Cache,*I); - if (ConfigurePkgs == true && - pkgCache::VerIterator(Cache, Cache[Pkg].CandidateVer).Pseudo() == false && - Configure(Pkg) == false) + if (ConfigurePkgs == true && Configure(Pkg) == false) return false; List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); @@ -318,9 +313,7 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg) { PkgIterator Pkg(Cache,*I); - if (ConfigurePkgs == true && - pkgCache::VerIterator(Cache, Cache[Pkg].CandidateVer).Pseudo() == false && - Configure(Pkg) == false) + if (ConfigurePkgs == true && Configure(Pkg) == false) return false; List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); @@ -473,10 +466,7 @@ bool pkgPackageManager::SmartRemove(PkgIterator Pkg) List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); - if (pkgCache::VerIterator(Cache, Cache[Pkg].CandidateVer).Pseudo() == false) - return Remove(Pkg,(Cache[Pkg].iFlags & pkgDepCache::Purge) == pkgDepCache::Purge); - else - return SmartRemove(Pkg.Group().FindPkg("all")); + return Remove(Pkg,(Cache[Pkg].iFlags & pkgDepCache::Purge) == pkgDepCache::Purge); return true; } /*}}}*/ @@ -592,22 +582,9 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg) P.end() == false; P++) CheckRConflicts(Pkg,P.ParentPkg().RevDependsList(),P.ProvideVersion()); - if (pkgCache::VerIterator(Cache, Cache[Pkg].CandidateVer).Pseudo() == false) - { - if(Install(Pkg,FileNames[Pkg->ID]) == false) - return false; - } else { - // Pseudo packages will not be unpacked - instead we will do this - // for the "real" package, but only once and if it is already - // configured we don't need to unpack it again… - PkgIterator const P = Pkg.Group().FindPkg("all"); - if (List->IsFlag(P,pkgOrderList::UnPacked) != true && - List->IsFlag(P,pkgOrderList::Configured) != true && - P.State() != pkgCache::PkgIterator::NeedsNothing) { - if (SmartUnPack(P) == false) - return false; - } - } + if(Install(Pkg,FileNames[Pkg->ID]) == false) + return false; + List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States); // Perform immedate configuration of the package. diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 616d400a2..7014aee22 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -737,22 +737,8 @@ bool pkgCache::VerIterator::Automatic() const return false; } /*}}}*/ -// VerIterator::Pseudo - Check if this version is a pseudo one /*{{{*/ -// --------------------------------------------------------------------- -/* Sometimes you have the need to express dependencies with versions - which doesn't really exist or exist multiply times for "different" - packages. We need these versions for dependency resolution but they - are a problem everytime we need to download/install something. */ -bool pkgCache::VerIterator::Pseudo() const -{ - if (S->MultiArch == pkgCache::Version::All && - strcmp(Arch(true),"all") != 0) - { - GrpIterator const Grp = ParentPkg().Group(); - return (Grp->LastPackage != Grp->FirstPackage); - } - return false; -} +// VerIterator::Pseudo - deprecated no-op method /*{{{*/ +bool pkgCache::VerIterator::Pseudo() const { return false; } /*}}}*/ // VerIterator::NewestFile - Return the newest file version relation /*{{{*/ // --------------------------------------------------------------------- diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index 82a69b2ca..89a296ce9 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -505,8 +505,8 @@ struct pkgCache::Version Foreign means that this version can fulfill dependencies even if it is built for another architecture as the requester. Same indicates that builds for different architectures can - be co-installed on the system and All is the marker for a - version with the Architecture: all. */ + be co-installed on the system */ + // FIXME: remove All on abi break enum {None, All, Foreign, Same, Allowed} MultiArch; /** \brief references all the PackageFile's that this version came from diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 5b943cca1..d44dbf3a9 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -178,23 +178,17 @@ bool pkgCacheGenerator::MergeList(ListParser &List, if (PackageName.empty() == true) return false; - /* As we handle Arch all packages as architecture bounded - we add all information to every (simulated) arch package */ - std::vector<string> genArch; - if (List.ArchitectureAll() == true) { - genArch = APT::Configuration::getArchitectures(); - if (genArch.size() != 1) - genArch.push_back("all"); - } else - genArch.push_back(List.Architecture()); - - for (std::vector<string>::const_iterator arch = genArch.begin(); - arch != genArch.end(); ++arch) - { + /* Treat Arch all packages as the same as the native arch. */ + string Arch; + if (List.ArchitectureAll() == true) + Arch = _config->Find("APT::Architecture"); + else + Arch = List.Architecture(); + // Get a pointer to the package structure pkgCache::PkgIterator Pkg; Dynamic<pkgCache::PkgIterator> DynPkg(Pkg); - if (NewPackage(Pkg, PackageName, *arch) == false) + if (NewPackage(Pkg, PackageName, Arch) == false) return _error->Error(_("Error occurred while processing %s (NewPackage)"),PackageName.c_str()); Counter++; if (Counter % 100 == 0 && Progress != 0) @@ -351,7 +345,6 @@ bool pkgCacheGenerator::MergeList(ListParser &List, if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false) return _error->Error(_("Error occurred while processing %s (NewFileDesc2)"),PackageName.c_str()); - } } FoundFileDeps |= List.HasFileDeps(); @@ -650,10 +643,7 @@ bool pkgCacheGenerator::FinishCache(OpProgress *Progress) - 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 && strcmp(Arch, "all") != 0) || - V->MultiArch == pkgCache::Version::Same); - if (V->MultiArch == pkgCache::Version::All && allPkg.end() == true) - allPkg = G.FindPkg("all"); + bool const coInstall = (V->MultiArch == pkgCache::Version::Same); for (vector<string>::const_iterator A = archs.begin(); A != archs.end(); ++A) { if (*A == Arch) @@ -675,24 +665,11 @@ bool pkgCacheGenerator::FinishCache(OpProgress *Progress) NewDepends(D, V, V.VerStr(), pkgCache::Dep::NotEquals, pkgCache::Dep::DpkgBreaks, OldDepLast); - if (V->MultiArch == pkgCache::Version::All) - { - // Depend on ${self}:all which does depend on nothing - NewDepends(allPkg, V, V.VerStr(), - pkgCache::Dep::Equals, pkgCache::Dep::Depends, - OldDepLast); - } } else { // Conflicts: ${self}:other - 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); - } + NewDepends(D, V, "", + pkgCache::Dep::NoOp, pkgCache::Dep::Conflicts, + OldDepLast); } } } @@ -810,7 +787,7 @@ bool pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator &Ver, pkgCache &Cache = Owner->Cache; // We do not add self referencing provides - if (Ver.ParentPkg().Name() == PkgName && PkgArch == Ver.Arch(true)) + if (Ver.ParentPkg().Name() == PkgName && PkgArch == Ver.Arch()) return true; // Get a structure diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index 5427271b6..94c7fd4af 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -152,13 +152,6 @@ pkgCache::VerIterator pkgPolicy::GetCandidateVer(pkgCache::PkgIterator const &Pk { /* Lets see if this version is the installed version */ bool instVer = (Pkg.CurrentVer() == Ver); - if (Ver.Pseudo() == true && instVer == false) - { - pkgCache::PkgIterator const allPkg = Ver.ParentPkg().Group().FindPkg("all"); - if (allPkg->CurrentVer != 0 && allPkg.CurrentVer()->Hash == Ver->Hash && - strcmp(allPkg.CurVersion(), Ver.VerStr()) == 0) - instVer = true; - } for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; VF++) { diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 34070ba9b..01e0d22e0 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1519,7 +1519,6 @@ bool Policy(CommandLine &CmdL) return true; } - string const myArch = _config->Find("APT::Architecture"); char const * const msgInstalled = _(" Installed: "); char const * const msgCandidate = _(" Candidate: "); short const InstalledLessCandidate = @@ -1532,14 +1531,8 @@ bool Policy(CommandLine &CmdL) // Print out detailed information for each package APT::CacheSetHelper helper(true, GlobalError::NOTICE); APT::PackageSet pkgset = APT::PackageSet::FromCommandLine(CacheFile, CmdL.FileList + 1, helper); - for (APT::PackageSet::const_iterator I = pkgset.begin(); I != pkgset.end(); ++I) + for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg) { - pkgCache::PkgIterator Pkg = I.Group().FindPkg("any"); - - for (; Pkg.end() != true; Pkg = I.Group().NextPkg(Pkg)) { - if (strcmp(Pkg.Arch(),"all") == 0) - continue; - cout << Pkg.FullName(true) << ":" << endl; // Installed version @@ -1588,7 +1581,6 @@ bool Policy(CommandLine &CmdL) Indx->Describe(true).c_str()); } } - } } return true; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index c0983b06d..6a30c5a50 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -382,8 +382,6 @@ void ShowNew(ostream &out,CacheFile &Cache) { pkgCache::PkgIterator I(Cache,Cache.List[J]); if (Cache[I].NewInstall() == true) { - if (Cache[I].CandidateVerIter(Cache).Pseudo() == true) - continue; List += I.FullName(true) + " "; VersionsList += string(Cache[I].CandVersion) + "\n"; } @@ -406,8 +404,6 @@ void ShowDel(ostream &out,CacheFile &Cache) pkgCache::PkgIterator I(Cache,Cache.List[J]); if (Cache[I].Delete() == true) { - if (Cache[I].CandidateVerIter(Cache).Pseudo() == true) - continue; if ((Cache[I].iFlags & pkgDepCache::Purge) == pkgDepCache::Purge) List += I.FullName(true) + "* "; else @@ -456,8 +452,6 @@ void ShowUpgraded(ostream &out,CacheFile &Cache) // Not interesting if (Cache[I].Upgrade() == false || Cache[I].NewInstall() == true) continue; - if (Cache[I].CandidateVerIter(Cache).Pseudo() == true) - continue; List += I.FullName(true) + " "; VersionsList += string(Cache[I].CurVersion) + " => " + Cache[I].CandVersion + "\n"; @@ -479,8 +473,6 @@ bool ShowDowngraded(ostream &out,CacheFile &Cache) // Not interesting if (Cache[I].Downgrade() == false || Cache[I].NewInstall() == true) continue; - if (Cache[I].CandidateVerIter(Cache).Pseudo() == true) - continue; List += I.FullName(true) + " "; VersionsList += string(Cache[I].CurVersion) + " => " + Cache[I].CandVersion + "\n"; @@ -584,9 +576,6 @@ void Stats(ostream &out,pkgDepCache &Dep) unsigned long ReInstall = 0; for (pkgCache::PkgIterator I = Dep.PkgBegin(); I.end() == false; I++) { - if (pkgCache::VerIterator(Dep, Dep[I].CandidateVer).Pseudo() == true) - continue; - if (Dep[I].NewInstall() == true) Install++; else @@ -1916,8 +1905,6 @@ bool DoInstall(CommandLine &CmdL) if ((*Cache)[I].Install() == false) continue; pkgCache::VerIterator Cand = Cache[I].CandidateVerIter(Cache); - if (Cand.Pseudo() == true) - continue; if (verset[MOD_INSTALL].find(Cand) != verset[MOD_INSTALL].end()) continue; diff --git a/debian/apt.symbols b/debian/apt.symbols index 27925ee0c..1c108fb69 100644 --- a/debian/apt.symbols +++ b/debian/apt.symbols @@ -277,7 +277,7 @@ libapt-pkg.so.4.10 libapt-pkg4.10 (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::SetCandidateVersion(pkgCache::VerIterator)@Base" 0.8.0 (c++)"pkgDepCache::MarkFollowsRecommends()@Base" 0.8.0 (c++)"pkgDepCache::ReInstallPseudoForGroup(pkgCache::PkgIterator const&, std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >&)@Base" 0.8.0 (c++)"pkgDepCache::ReInstallPseudoForGroup(unsigned long const&, std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >&)@Base" 0.8.0 diff --git a/debian/changelog b/debian/changelog index bcafbd71b..238d9d63e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -32,8 +32,12 @@ apt (0.8.11.6) UNRELEASED; urgency=low * apt-pkg/deb/dpkgpm.cc: - make sure that for multiarch packages, we are passing the full qualified package name to dpkg for removals. (Closes: #614298) + * Remove the "pseudopackage" handling of Architecture: all packages for + Multi-Arch; instead, Arch: all packages only satisfy dependencies for + the native arch, except where the Arch: all package is declared + Multi-Arch: foreign. (Closes: #613584) - -- David Kalnischkies <kalnischkies@gmail.com> Mon, 07 Mar 2011 22:46:24 +0100 + -- David Kalnischkies <kalnischkies@gmail.com> Tue, 08 Mar 2011 19:20:56 +0100 apt (0.8.11.5) 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 index 864dd340a..871d236b9 100755 --- a/test/integration/test-bug-549968-install-depends-of-not-installed +++ b/test/integration/test-bug-549968-install-depends-of-not-installed @@ -22,5 +22,5 @@ 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 +Inst coolstuff (1.0 unstable [i386]) +Conf coolstuff (1.0 unstable [i386])' aptget install coolstuff extracoolstuff- -o Debug::pkgDepCache::Marker=1 -s diff --git a/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order b/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order index 0f6493948..72de6eacb 100755 --- a/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order +++ b/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order @@ -62,13 +62,13 @@ predependsgawk2() { echo "$pkgbasefile Pre-Depends: $1 " >> rootdir/var/lib/dpkg/status - testequalor2 "Inst coolstuff (1-1 localhost [all]) -Conf coolstuff (1-1 localhost [all]) + testequalor2 "Inst coolstuff (1-1 localhost [i386]) +Conf coolstuff (1-1 localhost [i386]) Inst gawk2 (1:3.1.7.dfsg-5 localhost [i386]) Conf gawk2 (1:3.1.7.dfsg-5 localhost [i386]) -Remv mawk [1.3.3-15]" "Inst coolstuff (1-1 localhost [all]) +Remv mawk [1.3.3-15]" "Inst coolstuff (1-1 localhost [i386]) Inst gawk2 (1:3.1.7.dfsg-5 localhost [i386]) -Conf coolstuff (1-1 localhost [all]) +Conf coolstuff (1-1 localhost [i386]) Conf gawk2 (1:3.1.7.dfsg-5 localhost [i386]) Remv mawk [1.3.3-15]" aptget install gawk2 mawk- -sqq -o PreDepends=$(echo "$1" | sed 's/ //g') } diff --git a/test/integration/test-bug-593360-modifiers-in-names b/test/integration/test-bug-593360-modifiers-in-names index 83a3cfabf..c34b499b0 100755 --- a/test/integration/test-bug-593360-modifiers-in-names +++ b/test/integration/test-bug-593360-modifiers-in-names @@ -36,29 +36,29 @@ 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 +Inst apt (0.8.8 localhost [i386]) +Conf apt (0.8.8 localhost [i386])' 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 +Inst apt+ (0.8.8 localhost [i386]) +Conf apt+ (0.8.8 localhost [i386])' 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 +Inst apt+ (0.8.8 localhost [i386]) +Conf apt+ (0.8.8 localhost [i386])' 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 +Inst apt+ (0.8.8 localhost [i386]) +Conf apt+ (0.8.8 localhost [i386])' aptget purge apt++ -s diff --git a/test/integration/test-bug-612099-multiarch-conflicts b/test/integration/test-bug-612099-multiarch-conflicts index caac75db4..6d09a4fa1 100755 --- a/test/integration/test-bug-612099-multiarch-conflicts +++ b/test/integration/test-bug-612099-multiarch-conflicts @@ -59,29 +59,27 @@ 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]) + foobar +The following packages will be upgraded: + libc6 +1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst libc6 [1.0] (2.0 testing [i386]) Inst foobar (1.0 stable [i386]) -Conf libc6 (2.0 testing, testing [all]) +Conf libc6 (2.0 testing [i386]) 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: +The following packages will be upgraded: 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 +1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst libc6 [1.0] (2.0 testing [i386]) +Conf libc6 (2.0 testing [i386])' aptget upgrade -t testing -s aptget upgrade -y -qq 2>&1 > /dev/null testdpkginstalled libc6 @@ -91,31 +89,34 @@ 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]) [] +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 extra packages will be installed: + libc6:amd64 +The following packages will be REMOVED: + libc6 The following NEW packages will be installed: - foobar:amd64 -0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. + foobar:amd64 libc6:amd64 +0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. +Remv libc6 [2.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/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: +The following packages will be DOWNGRADED: 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]) +0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded. +Inst libc6 [2.0] (1.0 stable [i386]) Conf libc6 (1.0 stable [i386])" aptget install libc6/stable -s -q=0 @@ -164,30 +165,25 @@ Conf libc6-same:amd64 (1.0 stable [amd64])' aptget install libc6-same:amd64 -s - # 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: +The following packages will be upgraded: 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 +1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. +Inst libc6-same [1.0] (2.0 testing [i386]) +Conf libc6-same (2.0 testing [i386])' 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: +The following packages will be DOWNGRADED: 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]) +0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded. +Inst libc6-same [2.0] (1.0 stable [i386]) Conf libc6-same (1.0 stable [i386])" aptget install libc6-same/stable -s -q=0 testequal 'Reading package lists... @@ -196,14 +192,21 @@ 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]) [] +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 extra packages will be installed: + libc6-same:amd64 +The following packages will be REMOVED: + libc6-same The following NEW packages will be installed: - foobar-same:amd64 -0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. + foobar-same:amd64 libc6-same:amd64 +0 upgraded, 2 newly installed, 1 to remove and 0 not upgraded. +Remv libc6-same [2.0] +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/stable -st testing diff --git a/test/integration/test-release-candidate-switching b/test/integration/test-release-candidate-switching index b6dbe99db..b79828a9e 100755 --- a/test/integration/test-release-candidate-switching +++ b/test/integration/test-release-candidate-switching @@ -95,7 +95,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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-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-common (2.3.2-2+exp) @@ -117,7 +117,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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-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) @@ -140,7 +140,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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-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: @@ -170,7 +170,7 @@ 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 '2.3.2-2+exp' (experimental [i386]) 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: @@ -195,7 +195,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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-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) @@ -218,7 +218,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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 '2.3.2-2+exp' (experimental [i386]) 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: @@ -242,7 +242,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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 '2.3.2-2+exp' (experimental [i386]) 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: @@ -266,9 +266,9 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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 '2.3.2-2+exp' (experimental [i386]) 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.0' (experimental [i386]) 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) @@ -293,7 +293,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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 '2.3.2-2+exp' (experimental [i386]) 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: @@ -317,7 +317,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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 '2.3.2-2+exp' (experimental [i386]) 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: @@ -341,7 +341,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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-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) @@ -364,7 +364,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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-common' because of 'amarok-recommends' The following extra packages will be installed: amarok-common (2.3.2-2+exp) Recommended packages: @@ -385,7 +385,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a 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' +Selected version '2.3.2-2+exp' (experimental [i386]) for 'amarok-common' because of 'amarok-recommends2' The following extra packages will be installed: amarok-common (2.3.2-2+exp) libc6 (2.11.2-7+sid) @@ -406,7 +406,7 @@ E: Trivial Only specified but this is not a trivial operation." aptget install a # 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' +Selected version '1.0' (experimental [i386]) 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 -- cgit v1.2.3-70-g09d2 From a75b8cfeb6d7e2468b19534d5b5872c3885f0e1c Mon Sep 17 00:00:00 2001 From: Michael Vogt <mvo@debian.org> Date: Thu, 10 Mar 2011 15:39:08 +0100 Subject: releasing version 0.8.12 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 32b74267c..051bfc5da 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.8.12) UNRELEASED; urgency=low +apt (0.8.12) unstable; urgency=low [ Michael Vogt ] * apt-pkg/deb/debindexfile.cc: @@ -49,7 +49,7 @@ apt (0.8.12) UNRELEASED; urgency=low the native arch, except where the Arch: all package is declared Multi-Arch: foreign. (Closes: #613584) - -- David Kalnischkies <kalnischkies@gmail.com> Tue, 08 Mar 2011 19:20:56 +0100 + -- Michael Vogt <mvo@debian.org> Thu, 10 Mar 2011 14:46:48 +0100 apt (0.8.11.5) unstable; urgency=low -- cgit v1.2.3-70-g09d2