From 97720af361b9f208f72ee31749f69f3800265923 Mon Sep 17 00:00:00 2001 From: Christian Perrier Date: Fri, 24 Jun 2005 20:39:33 +0000 Subject: Sync with Andre Luis Lopes and Otavio branches Patches applied: * andrelop@debian.org/apt--translation--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-79 * andrelop@debian.org/apt--translation--0--patch-1 Sync with Matt version. * andrelop@debian.org/apt--translation--0--patch-2 Update pt_BR translation * andrelop@debian.org/apt--translation--0--patch-3 Sync with bubulle's branch. * apt@packages.debian.org/apt--main--0--patch-80 Merge michael.vogt@ubuntu.com--2005/apt--fixes--0 * apt@packages.debian.org/apt--main--0--patch-81 Open 0.6.37 * apt@packages.debian.org/apt--main--0--patch-82 merge bubulle@debian.org--2005/apt--main--0 * apt@packages.debian.org/apt--main--0--patch-83 Update changelog * apt@packages.debian.org/apt--main--0--patch-84 Fix build of French man pages (now using XML, not SGML) * apt@packages.debian.org/apt--main--0--patch-85 Merge patch from Philippe Batailler for French man page build * apt@packages.debian.org/apt--main--0--patch-86 add Welsh translations from Dafydd Harries * apt@packages.debian.org/apt--main--0--patch-87 Update changelog * apt@packages.debian.org/apt--main--0--patch-88 Change debian/bugscript to use #!/bin/bash (Closes: #313402) * apt@packages.debian.org/apt--misc-abi-changes--0--patch-4 Merge from mainline * apt@packages.debian.org/apt--misc-abi-changes--0--patch-5 Merge from mainline * apt@packages.debian.org/apt--misc-abi-changes--0--patch-6 Collapse both pkgAcquire::Run() methods into one, with a default value * daf@muse.19inch.net--2005/apt--main--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-85 * daf@muse.19inch.net--2005/apt--main--0--patch-1 add Welsh translation * michael.vogt@ubuntu.com--2005/apt--fixes--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-79 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-1 * merged obvious fixes into the tree to make it easy for matt to merge * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-2 * more merges from otavio that looks good/uncritical * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-3 * merged Matts misc-abi-changes tree * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-4 * finalized the changelog for a ubuntu build * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-26 * fix the cache-control header generation * otavio@debian.org--2005/apt--fixes--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-71 * otavio@debian.org--2005/apt--fixes--0--patch-1 Fix comments about the need of xmlto * otavio@debian.org--2005/apt--fixes--0--patch-2 Fix a compile warning * otavio@debian.org--2005/apt--fixes--0--patch-3 Sync with apt--main--0--patch-76 * otavio@debian.org--2005/apt--fixes--0--patch-4 Sync with apt--main--0--patch-78 * otavio@debian.org--2005/apt--fixes--0--patch-5 Add fixes that was wrongly included on DDTP changes. * otavio@debian.org--2005/apt--fixes--0--patch-8 Add information about the other fixes include on this branch now. * otavio@debian.org--2005/apt--fixes--0--patch-9 Merge last changes from apt--main--0. * otavio@debian.org--2005/apt--fixes--0--patch-10 Fix warnings about min/max change in gcc-4.0 * otavio@debian.org--2005/apt--fixes--0--patch-11 Fix remaning warnings while compiling gcc-4.0 * otavio@debian.org--2005/apt--fixes--0--patch-12 Add changelog entry about the fixes for warnings while compiling using GCC 4.0 compiler. * philippe.batailler@free.fr--2005/apt--mainMatt--0--patch-1 fix xml error --- debian/bugscript | 2 +- debian/changelog | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) (limited to 'debian') diff --git a/debian/bugscript b/debian/bugscript index 8423e07c2..f5ec9e05d 100755 --- a/debian/bugscript +++ b/debian/bugscript @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e # reportbug #169495 if [ -z "$YESNO" ]; then diff --git a/debian/changelog b/debian/changelog index 87e713d3d..57b746a56 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,36 @@ +apt (0.6.37) breezy; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-81 + - patch-66: Italian update + - patch-71: French update + - patch-73: Basque update + - patch-74: Hebrew update + - patch-76: Correct Hebrew translation (Closes: #306658) + - patch-77: French man page update + - patch-79: Correct syntax errors in Hebrew translation + - patch-81: Portuguese update + * Fix build of French man pages (now using XML, not SGML) + * Add Welsh translation from Dafydd Harries + (daf@muse.19inch.net--2005/apt--main--0--patch-1) + * Change debian/bugscript to use #!/bin/bash (Closes: #313402) + + -- Matt Zimmerman Tue, 24 May 2005 14:38:25 -0700 + +apt (0.6.36ubuntu1) breezy; urgency=low + + * make it possible to write a cache-control: no-cache header even if + no proxy is set to support transparent proxies (closes ubuntu: #10773) + + * Merge otavio@debian.org--2005/apt--fixes--0.6: + - Fix comment about the need of xmlto while building from Arch; + - Fix StatStore struct on cachedb.h to use time_t and then fix a compile + warning; + - Lock database at start of DoInstall routine to avoid concurrent + runs of install/remove and update commands (Closes: #194467) + - Fix warnings while compiling with GCC 4.0 compiler + + -- Michael Vogt Mon, 23 May 2005 11:57:53 +0200 + apt (0.6.36) experimental; urgency=low * Merge apt--mvo--0: @@ -9,7 +42,7 @@ apt (0.6.36) experimental; urgency=low - apt-pkg/cdrom.cc: honor "Acquire::gpgv::Options" when verifying the signature (Ubuntu #8496) - -- Michael Vogt Thu, 31 Mar 2005 20:37:11 +0200 + -- Michael Vogt Thu, 31 Mar 2005 20:37:11 +0200 apt (0.6.35) hoary; urgency=low -- cgit v1.2.3-70-g09d2 From b6fbb08776d7837f9f43c0238b30c8392c276d2c Mon Sep 17 00:00:00 2001 From: Christian Perrier Date: Sun, 26 Jun 2005 20:46:41 +0000 Subject: Merge with Matt Patches applied: * apt@packages.debian.org/apt--main--0--patch-89 Branch for Debian * apt@packages.debian.org/apt--main--0--patch-90 Update version in configure * apt@packages.debian.org/apt--main--0--patch-91 Fix French man page build * apt@packages.debian.org/apt--main--0--patch-92 Add the current Debian archive signing key * apt@packages.debian.org/apt--main--0--patch-93 Merge with mvo * apt@packages.debian.org/apt--main--0--patch-94 Update changelog * apt@packages.debian.org/apt--main--0--patch-95 Merge Christian's branch * apt@packages.debian.org/apt--main--0--patch-96 Update changelog * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-6 * build fix for apt--main--0 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-22 * added myself to uploaders, changelog is signed with mvo@debian.org and in sync with the debian/experimental upload * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-23 * apt-cache show shows all virtual packages instead of nothing (thanks to otavio) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-24 * changelog updated * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-25 * make pinning on component work again (we just use the section, as apt-0.6 don't use per-section Release files anymore) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-27 * updated the changelog * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-28 * merged with my apt--fixes--0 branch * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-29 * added a missing OpProgress::Done() in depCache::Init(), removed the show-virtual-packages patch in apt-cache because matt does not like him :/ * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-30 * fix a stupid bug in the depcache::Init() code * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-31 * merged/removed conflicts with apt--main--0 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-32 * merged apt--main and make sure that the po files come from apt--main (because they are more recent) --- apt-pkg/deb/debindexfile.cc | 4 ++-- apt-pkg/deb/deblistparser.cc | 11 +++++++++-- apt-pkg/deb/deblistparser.h | 3 ++- apt-pkg/depcache.cc | 3 +++ cmdline/apt-key | 6 +++--- configure.in | 2 +- debian/apt.postinst | 2 +- debian/changelog | 25 +++++++++++++++++++++++ debian/control | 2 +- debian/rules | 2 +- doc/fr/makefile | 46 +++++++++++++++++++++++++++++++++++++++++-- share/debian-archive.gpg | Bin 477 -> 1303 bytes 12 files changed, 92 insertions(+), 14 deletions(-) (limited to 'debian') diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index f26265fff..ff8bce85d 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -24,7 +24,7 @@ #include #include #include - + #include /*}}}*/ @@ -290,7 +290,7 @@ bool debPackagesIndex::Merge(pkgCacheGenerator &Gen,OpProgress &Prog) const FileFd Rel(ReleaseFile,FileFd::ReadOnly); if (_error->PendingError() == true) return false; - Parser.LoadReleaseInfo(File,Rel); + Parser.LoadReleaseInfo(File,Rel,Section); } return true; diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 96a80582d..25b533773 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -564,13 +564,20 @@ bool debListParser::Step() // --------------------------------------------------------------------- /* */ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator FileI, - FileFd &File) + FileFd &File, string component) { pkgTagFile Tags(&File, File.Size() + 256); // XXX pkgTagSection Section; if (Tags.Step(Section) == false) return false; + //mvo: I don't think we need to fill that in (it's unused since apt-0.6) + //FileI->Architecture = WriteUniqString(Arch); + + // apt-secure does no longer download individual (per-section) Release + // file. to provide Component pinning we use the section name now + FileI->Component = WriteUniqString(component); + const char *Start; const char *Stop; if (Section.Find("Suite",Start,Stop) == true) @@ -589,7 +596,7 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator FileI, if (Section.FindFlag("NotAutomatic",FileI->Flags, pkgCache::Flag::NotAutomatic) == false) _error->Warning("Bad NotAutomatic flag"); - + return !_error->PendingError(); } /*}}}*/ diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h index 9f305211a..3a0e0421b 100644 --- a/apt-pkg/deb/deblistparser.h +++ b/apt-pkg/deb/deblistparser.h @@ -55,7 +55,8 @@ class debListParser : public pkgCacheGenerator::ListParser virtual bool Step(); - bool LoadReleaseInfo(pkgCache::PkgFileIterator FileI,FileFd &File); + bool LoadReleaseInfo(pkgCache::PkgFileIterator FileI,FileFd &File, + string section); static const char *ParseDepends(const char *Start,const char *Stop, string &Package,string &Ver,unsigned int &Op, diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index c6bf3185a..dd1c794c9 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -91,6 +91,9 @@ bool pkgDepCache::Init(OpProgress *Prog) } Update(Prog); + + if(Prog != 0) + Prog->Done(); return true; } diff --git a/cmdline/apt-key b/cmdline/apt-key index be2b19a1a..0685e36f7 100755 --- a/cmdline/apt-key +++ b/cmdline/apt-key @@ -9,14 +9,14 @@ GPG_CMD="gpg --no-options --no-default-keyring --secret-keyring /etc/apt/secring GPG="$GPG_CMD --keyring /etc/apt/trusted.gpg" -ARCHIVE_KEYRING=/usr/share/keyrings/ubuntu-archive-keyring.gpg -REMOVED_KEYS=/usr/share/keyrings/ubuntu-archive-removed-keys.gpg +ARCHIVE_KEYRING=/usr/share/keyrings/debian-archive-keyring.gpg +REMOVED_KEYS=/usr/share/keyrings/debian-archive-removed-keys.gpg update() { if [ ! -f $ARCHIVE_KEYRING ]; then echo >&2 "ERROR: Can't find the archive-keyring" - echo >&2 "Is the ubuntu-keyring package installed?" + echo >&2 "Is the debian-keyring package installed?" exit 1 fi diff --git a/configure.in b/configure.in index 767399b52..aa827cec1 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib) AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) dnl -- SET THIS TO THE RELEASE VERSION -- -AC_DEFINE_UNQUOTED(VERSION,"0.6.37") +AC_DEFINE_UNQUOTED(VERSION,"0.6.38") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) diff --git a/debian/apt.postinst b/debian/apt.postinst index df0433057..ae1801198 100644 --- a/debian/apt.postinst +++ b/debian/apt.postinst @@ -17,7 +17,7 @@ case "$1" in configure) if ! test -f /etc/apt/trusted.gpg; then - cp /usr/share/apt/ubuntu-archive.gpg /etc/apt/trusted.gpg + cp /usr/share/apt/debian-archive.gpg /etc/apt/trusted.gpg fi ;; diff --git a/debian/changelog b/debian/changelog index 57b746a56..d1a804e80 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,28 @@ +apt (0.6.39) unstable; urgency=low + + * Welsh translation update: daf@muse.19inch.net--2005/apt--main--0--patch-6 + * Merge mvo's changes from 0.6.36ubuntu1: + michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-32 + * Merge aggregated translation updates: + bubulle@debian.org--2005/apt--main--0 + + -- + +apt (0.6.38) unstable; urgency=low + + * Merge michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-6, a workaround + for the French man pages' failure to build + * Branch Debian and Ubuntu + - apt.postinst, apt-key: use the appropriate keyring + - debian/rules: install all keyrings + * Add the current Debian archive signing key (4F368D5D) to + debian-archive.gpg + * make pinning on the "component" work again (using the section of the + archive, we don't use per-section Release files anymore with apt-0.6) + (closes ubuntu #9935) + + -- Matt Zimmerman Sat, 25 Jun 2005 09:51:00 -0700 + apt (0.6.37) breezy; urgency=low * Merge bubulle@debian.org--2005/apt--main--0 up to patch-81 diff --git a/debian/control b/debian/control index b7c430997..9dd271619 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: apt Section: admin Priority: important Maintainer: APT Development Team -Uploaders: Jason Gunthorpe , Adam Heath , Matt Zimmerman +Uploaders: Jason Gunthorpe , Adam Heath , Matt Zimmerman , Michael Vogt Standards-Version: 3.6.1 Build-Depends: debhelper (>= 4.1.62), libdb4.2-dev, gettext (>= 0.12) Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1) diff --git a/debian/rules b/debian/rules index e3254c2d2..d6ae540ee 100755 --- a/debian/rules +++ b/debian/rules @@ -209,7 +209,7 @@ apt: build debian/shlibs.local cp debian/bugscript debian/$@/usr/share/bug/apt/script - cp share/ubuntu-archive.gpg debian/$@/usr/share/$@ + cp share/*.gpg debian/$@/usr/share/$@ # head -n 500 ChangeLog > debian/ChangeLog diff --git a/doc/fr/makefile b/doc/fr/makefile index 6544ee9e0..c0e7fa7ed 100644 --- a/doc/fr/makefile +++ b/doc/fr/makefile @@ -8,6 +8,48 @@ include ../../buildlib/defaults.mak # Man pages SOURCE = apt-cache.fr.8 apt-get.fr.8 apt-cdrom.fr.8 apt.conf.fr.5 \ sources.list.fr.5 apt-config.fr.8 apt-sortpkgs.fr.1 \ - apt-ftparchive.fr.1 apt_preferences.fr.5 apt-extracttemplates.fr.1 + apt-ftparchive.fr.1 apt_preferences.fr.5 apt-extracttemplates.fr.1 \ + apt-key.fr.8 + INCLUDES = apt.ent.fr -include $(XML_MANPAGE_H) + +doc: $(SOURCE) + +$(SOURCE) :: % : %.xml $(INCLUDES) + echo Creating man page $@ + $(XMLTO) man $< + +apt-cache.fr.8:: apt-cache.8 + cp $< $@ + +apt-get.fr.8:: apt-get.8 + cp $< $@ + +apt-cdrom.fr.8:: apt-cdrom.8 + cp $< $@ + +apt.conf.fr.5:: apt.conf.5 + cp $< $@ + +apt-config.fr.8:: apt-config.8 + cp $< $@ + +sources.list.fr.5:: sources.list.5 + cp $< $@ + +apt-sortpkgs.fr.1:: apt-sortpkgs.1 + cp $< $@ + +apt-ftparchive.fr.1:: apt-ftparchive.1 + cp $< $@ + +apt_preferences.fr.5:: apt_preferences.5 + cp $< $@ + +apt-extracttemplates.fr.1:: apt-extracttemplates.1 + cp $< $@ + +apt-key.fr.8:: apt-key.8 + cp $< $@ + + diff --git a/share/debian-archive.gpg b/share/debian-archive.gpg index 0db59e674..c391d8fa1 100644 Binary files a/share/debian-archive.gpg and b/share/debian-archive.gpg differ -- cgit v1.2.3-70-g09d2 From e6b077f191ca2f5cdd83dc1c23d95365e82c1d1e Mon Sep 17 00:00:00 2001 From: Christian Perrier Date: Sun, 10 Jul 2005 15:14:54 +0000 Subject: Add apt-key French man page --- debian/apt.manpages | 1 + 1 file changed, 1 insertion(+) (limited to 'debian') diff --git a/debian/apt.manpages b/debian/apt.manpages index 7a15245d4..e621e1c49 100644 --- a/debian/apt.manpages +++ b/debian/apt.manpages @@ -10,6 +10,7 @@ doc/fr/apt-cache.fr.8 doc/fr/apt-cdrom.fr.8 doc/fr/apt-config.fr.8 doc/fr/apt-get.fr.8 +doc/fr/apt-key.fr.8 doc/fr/apt.conf.fr.5 doc/fr/apt_preferences.fr.5 doc/fr/sources.list.fr.5 -- cgit v1.2.3-70-g09d2 From be9b936074e8dc8fb82f36dee9029594a5f82532 Mon Sep 17 00:00:00 2001 From: Christian Perrier Date: Thu, 28 Jul 2005 18:52:39 +0000 Subject: Merge with Matt Patches applied: * apt@packages.debian.org/apt--main--0--patch-97 Update priority of apt-utils to important, to match the override file * apt@packages.debian.org/apt--main--0--patch-98 Install only one keyring on each branch (Closes: #316119) * apt@packages.debian.org/apt--main--0--patch-99 Finalize 0.6.39 * apt@packages.debian.org/apt--main--0--patch-100 Use debian.org address in mainline * apt@packages.debian.org/apt--main--0--patch-101 Update pot file * apt@packages.debian.org/apt--main--0--patch-102 Open 0.6.40 * apt@packages.debian.org/apt--main--0--patch-103 Patch from Jordi Mallach to mark some additional strings for translation * apt@packages.debian.org/apt--main--0--patch-104 Updated Catalan translation from Jordi Mallach --- cmdline/apt-get.cc | 16 +-- configure.in | 2 +- debian/changelog | 11 +- debian/control | 2 +- debian/rules | 2 +- methods/gpgv.cc | 30 +++--- po/apt-all.pot | 28 ++--- po/ca.po | 304 +++++++++++++++++++++++++++++++---------------------- 8 files changed, 232 insertions(+), 163 deletions(-) (limited to 'debian') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 316bb7af9..75617d194 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -688,7 +688,7 @@ static bool CheckAuth(pkgAcquire& Fetcher) if (_config->FindB("APT::Get::AllowUnauthenticated",false) == true) { - c2out << "Authentication warning overridden.\n"; + c2out << _("Authentication warning overridden.\n"); return true; } @@ -750,7 +750,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, if (Cache->BrokenCount() != 0) { ShowBroken(c1out,Cache,false); - return _error->Error("Internal error, InstallPackages was called with broken packages!"); + return _error->Error(_("Internal error, InstallPackages was called with broken packages!")); } if (Cache->DelCount() == 0 && Cache->InstCount() == 0 && @@ -769,7 +769,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, if (Res == pkgPackageManager::Failed) return false; if (Res != pkgPackageManager::Completed) - return _error->Error("Internal error, Ordering didn't finish"); + return _error->Error(_("Internal error, Ordering didn't finish")); return true; } @@ -810,7 +810,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, if (DebBytes != Cache->DebSize()) { c0out << DebBytes << ',' << Cache->DebSize() << endl; - c0out << "How odd.. The sizes didn't match, email apt@packages.debian.org" << endl; + c0out << _("How odd.. The sizes didn't match, email apt@packages.debian.org") << endl; } // Number of bytes @@ -840,7 +840,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, struct statvfs Buf; string OutputDir = _config->FindDir("Dir::Cache::Archives"); if (statvfs(OutputDir.c_str(),&Buf) != 0) - return _error->Errno("statvfs","Couldn't determine free space in %s", + return _error->Errno("statvfs",_("Couldn't determine free space in %s"), OutputDir.c_str()); if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize) return _error->Error(_("You don't have enough free space in %s."), @@ -1743,7 +1743,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL) if (Fix.Resolve() == false) { ShowBroken(c1out,Cache,false); - return _error->Error("Internal error, problem resolver broke stuff"); + return _error->Error(_("Internal error, problem resolver broke stuff")); } } @@ -1751,7 +1751,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL) if (pkgAllUpgrade(Cache) == false) { ShowBroken(c1out,Cache,false); - return _error->Error("Internal error, problem resolver broke stuff"); + return _error->Error(_("Internal error, problem resolver broke stuff")); } return InstallPackages(Cache,false); @@ -1922,7 +1922,7 @@ bool DoSource(CommandLine &CmdL) struct statvfs Buf; string OutputDir = "."; if (statvfs(OutputDir.c_str(),&Buf) != 0) - return _error->Errno("statvfs","Couldn't determine free space in %s", + return _error->Errno("statvfs",_("Couldn't determine free space in %s"), OutputDir.c_str()); if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize) return _error->Error(_("You don't have enough free space in %s"), diff --git a/configure.in b/configure.in index aa827cec1..7e3aba331 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib) AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) dnl -- SET THIS TO THE RELEASE VERSION -- -AC_DEFINE_UNQUOTED(VERSION,"0.6.38") +AC_DEFINE_UNQUOTED(VERSION,"0.6.40") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) diff --git a/debian/changelog b/debian/changelog index d1a804e80..1b09ab69d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.6.40) unstable; urgency=low + + * Patch from Jordi Mallach to mark some additional strings for translation + * Updated Catalan translation from Jordi Mallach + + -- Matt Zimmerman Wed, 27 Jul 2005 13:00:04 -0700 + apt (0.6.39) unstable; urgency=low * Welsh translation update: daf@muse.19inch.net--2005/apt--main--0--patch-6 @@ -5,8 +12,10 @@ apt (0.6.39) unstable; urgency=low michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-32 * Merge aggregated translation updates: bubulle@debian.org--2005/apt--main--0 + * Update priority of apt-utils to important, to match the override file + * Install only one keyring on each branch (Closes: #316119) - -- + -- Matt Zimmerman Tue, 28 Jun 2005 11:51:09 -0700 apt (0.6.38) unstable; urgency=low diff --git a/debian/control b/debian/control index 9dd271619..6d9418a46 100644 --- a/debian/control +++ b/debian/control @@ -53,7 +53,7 @@ Description: Documentation for APT development Package: apt-utils Architecture: any Depends: ${shlibs:Depends} -Priority: optional +Priority: important Provides: ${libapt-inst:provides} Replaces: apt (<< 0.5.9) Section: admin diff --git a/debian/rules b/debian/rules index d6ae540ee..b3f72bb7f 100755 --- a/debian/rules +++ b/debian/rules @@ -209,7 +209,7 @@ apt: build debian/shlibs.local cp debian/bugscript debian/$@/usr/share/bug/apt/script - cp share/*.gpg debian/$@/usr/share/$@ + cp share/debian-archive.gpg debian/$@/usr/share/$@ # head -n 500 ChangeLog > debian/ChangeLog diff --git a/methods/gpgv.cc b/methods/gpgv.cc index 24e945b2c..5cb154f66 100644 --- a/methods/gpgv.cc +++ b/methods/gpgv.cc @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -88,7 +89,7 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, continue; Args[i++] = Opts->Value.c_str(); if(i >= 395) { - std::cerr << "E: Argument list from Acquire::gpgv::Options too long. Exiting." << std::endl; + std::cerr << _("E: Argument list from Acquire::gpgv::Options too long. Exiting.") << std::endl; exit(111); } } @@ -181,27 +182,28 @@ const char *GPGVMethod::VerifyGetSigners(const char *file, const char *outfile, waitpid(pid, &status, 0); if (_config->FindB("Debug::Acquire::gpgv", false)) { - std::cerr <<"gpgv exited\n"; + std::cerr << "gpgv exited\n"; } if (WEXITSTATUS(status) == 0) { if (GoodSigners.empty()) - return "Internal error: Good signature, but could not determine key fingerprint?!"; + return _("Internal error: Good signature, but could not determine key fingerprint?!"); return NULL; } else if (WEXITSTATUS(status) == 1) { - return "At least one invalid signature was encountered."; + return _("At least one invalid signature was encountered."); } else if (WEXITSTATUS(status) == 111) { - return (string("Could not execute ") + gpgvpath + - string(" to verify signature (is gnupg installed?)")).c_str(); + // FIXME String concatenation considered harmful. + return (string(_("Could not execute ")) + gpgvpath + + string(_(" to verify signature (is gnupg installed?)"))).c_str(); } else { - return "Unknown error executing gpgv"; + return _("Unknown error executing gpgv"); } } @@ -232,14 +234,14 @@ bool GPGVMethod::Fetch(FetchItem *Itm) { if (!BadSigners.empty()) { - errmsg += "The following signatures were invalid:\n"; + errmsg += _("The following signatures were invalid:\n"); for (vector::iterator I = BadSigners.begin(); I != BadSigners.end(); I++) errmsg += (*I + "\n"); } if (!NoPubKeySigners.empty()) { - errmsg += "The following signatures couldn't be verified because the public key is not available:\n"; + errmsg += _("The following signatures couldn't be verified because the public key is not available:\n"); for (vector::iterator I = NoPubKeySigners.begin(); I != NoPubKeySigners.end(); I++) errmsg += (*I + "\n"); @@ -251,16 +253,16 @@ bool GPGVMethod::Fetch(FetchItem *Itm) // Transfer the modification times struct stat Buf; if (stat(Path.c_str(),&Buf) != 0) - return _error->Errno("stat","Failed to stat %s", Path.c_str()); + return _error->Errno("stat",_("Failed to stat %s"), Path.c_str()); struct utimbuf TimeBuf; TimeBuf.actime = Buf.st_atime; TimeBuf.modtime = Buf.st_mtime; if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) - return _error->Errno("utime","Failed to set modification time"); + return _error->Errno("utime",_("Failed to set modification time")); if (stat(Itm->DestFile.c_str(),&Buf) != 0) - return _error->Errno("stat","Failed to stat"); + return _error->Errno("stat",_("Failed to stat")); // Return a Done response Res.LastModified = Buf.st_mtime; @@ -275,7 +277,7 @@ bool GPGVMethod::Fetch(FetchItem *Itm) if (_config->FindB("Debug::Acquire::gpgv", false)) { - std::cerr <<"gpgv suceeded\n"; + std::cerr << "gpgv succeeded\n"; } return true; @@ -284,6 +286,8 @@ bool GPGVMethod::Fetch(FetchItem *Itm) int main() { + setlocale(LC_ALL, ""); + GPGVMethod Mth; return Mth.Run(); diff --git a/po/apt-all.pot b/po/apt-all.pot index 3936f3f16..53be3fcca 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-05-23 11:34+0200\n" +"POT-Creation-Date: 2005-07-02 11:19-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -593,7 +593,7 @@ msgstr "" #: cmdline/apt-get.cc:544 msgid "" -"WARNING: The following essential packages will be removed\n" +"WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" msgstr "" @@ -715,7 +715,7 @@ msgstr "" #: cmdline/apt-get.cc:865 #, c-format msgid "" -"You are about to do something potentially harmful\n" +"You are about to do something potentially harmful.\n" "To continue type in the phrase '%s'\n" " ?] " msgstr "" @@ -1215,7 +1215,7 @@ msgstr "" #: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 #, c-format -msgid "Failed write file %s" +msgid "Failed to write file %s" msgstr "" #: apt-inst/dirstream.cc:80 apt-inst/dirstream.cc:88 @@ -1358,7 +1358,7 @@ msgid "Internal error adding a diversion" msgstr "" #: apt-inst/deb/dpkgdb.cc:383 -msgid "The pkg cache must be initialize first" +msgid "The pkg cache must be initialized first" msgstr "" #: apt-inst/deb/dpkgdb.cc:386 @@ -2173,37 +2173,37 @@ msgstr "" #: apt-pkg/pkgcachegen.cc:117 #, c-format -msgid "Error occured while processing %s (NewPackage)" +msgid "Error occurred while processing %s (NewPackage)" msgstr "" #: apt-pkg/pkgcachegen.cc:129 #, c-format -msgid "Error occured while processing %s (UsePackage1)" +msgid "Error occurred while processing %s (UsePackage1)" msgstr "" #: apt-pkg/pkgcachegen.cc:150 #, c-format -msgid "Error occured while processing %s (UsePackage2)" +msgid "Error occurred while processing %s (UsePackage2)" msgstr "" #: apt-pkg/pkgcachegen.cc:154 #, c-format -msgid "Error occured while processing %s (NewFileVer1)" +msgid "Error occurred while processing %s (NewFileVer1)" msgstr "" #: apt-pkg/pkgcachegen.cc:184 #, c-format -msgid "Error occured while processing %s (NewVersion1)" +msgid "Error occurred while processing %s (NewVersion1)" msgstr "" #: apt-pkg/pkgcachegen.cc:188 #, c-format -msgid "Error occured while processing %s (UsePackage3)" +msgid "Error occurred while processing %s (UsePackage3)" msgstr "" #: apt-pkg/pkgcachegen.cc:192 #, c-format -msgid "Error occured while processing %s (NewVersion2)" +msgid "Error occurred while processing %s (NewVersion2)" msgstr "" #: apt-pkg/pkgcachegen.cc:207 @@ -2220,12 +2220,12 @@ msgstr "" #: apt-pkg/pkgcachegen.cc:241 #, c-format -msgid "Error occured while processing %s (FindPkg)" +msgid "Error occurred while processing %s (FindPkg)" msgstr "" #: apt-pkg/pkgcachegen.cc:254 #, c-format -msgid "Error occured while processing %s (CollectFileProvides)" +msgid "Error occurred while processing %s (CollectFileProvides)" msgstr "" #: apt-pkg/pkgcachegen.cc:260 diff --git a/po/ca.po b/po/ca.po index 980c2ec42..74e96d551 100644 --- a/po/ca.po +++ b/po/ca.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-03-29 07:17+0200\n" -"PO-Revision-Date: 2005-02-15 18:53+0100\n" +"POT-Creation-Date: 2005-07-19 00:49+0200\n" +"PO-Revision-Date: 2005-07-19 01:31+0200\n" "Last-Translator: Jordi Mallach \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" @@ -150,7 +150,7 @@ msgstr " %4i %s\n" #: cmdline/apt-cache.cc:1651 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:545 -#: cmdline/apt-get.cc:2313 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2322 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "%s %s per a %s %s compilat el %s %s\n" @@ -325,7 +325,6 @@ msgid "Error processing contents %s" msgstr "S'ha produït un error en processar el fitxer de continguts %s" #: ftparchive/apt-ftparchive.cc:551 -#, fuzzy msgid "" "Usage: apt-ftparchive [options] command\n" "Commands: packages binarypath [overridefile [pathprefix]]\n" @@ -378,13 +377,13 @@ msgstr "" "Gestiona molts estils per a generar-los, des dels completament automàtics\n" "als substituts funcionals per dpkg-scanpackages i dpkg-scansources.\n" "\n" -"apt-ftparchive genera fitxers Package des d'un arbre de .debs. El\n" +"apt-ftparchive genera fitxers Package des d'un arbre de .deb. El\n" "fitxer Package conté tots els camps de control de cada paquet així com\n" "la suma MD5 i la mida del fitxer. Es suporten els fitxers de substitució\n" "per a forçar el valor de Prioritat i Secció.\n" "\n" -"D'un mode semblant apt-ftparchive genera fitxers Sources des d'un arbre\n" -"de .dscs. Es pot utilitzar l'opció --source-override per a especificar un\n" +"D'un mode semblant, apt-ftparchive genera fitxers Sources des d'un arbre\n" +"de .dsc. Es pot utilitzar l'opció --source-override per a especificar un\n" "fitxer de substitucions de src.\n" "\n" "L'ordre «packages» i «sources» hauria d'executar-se en l'arrel de\n" @@ -468,7 +467,7 @@ msgstr "E: Els errors s'apliquen al fitxer " #: ftparchive/writer.cc:152 ftparchive/writer.cc:182 #, c-format msgid "Failed to resolve %s" -msgstr "Falla al resoldre %s" +msgstr "No s'ha pogut resoldre %s" #: ftparchive/writer.cc:164 msgid "Tree walking failed" @@ -477,7 +476,7 @@ msgstr "L'arbre està fallant" #: ftparchive/writer.cc:189 #, c-format msgid "Failed to open %s" -msgstr "Falla a l'obrir %s" +msgstr "No s'ha pogut obrir %s" #: ftparchive/writer.cc:246 #, c-format @@ -487,17 +486,17 @@ msgstr " DeLink %s [%s]\n" #: ftparchive/writer.cc:254 #, c-format msgid "Failed to readlink %s" -msgstr "Falla al llegir l'enllaç %s" +msgstr "No s'ha pogut llegir l'enllaç %s" #: ftparchive/writer.cc:258 #, c-format msgid "Failed to unlink %s" -msgstr "Falla a l'alliberar %s" +msgstr "No s'ha pogut alliberar %s" #: ftparchive/writer.cc:265 #, c-format msgid "*** Failed to link %s to %s" -msgstr "*** Falla a l'enllaçar %s a %s" +msgstr "*** No s'ha pogut enllaçar %s a %s" #: ftparchive/writer.cc:275 #, c-format @@ -505,7 +504,7 @@ msgid " DeLink limit of %sB hit.\n" msgstr " DeLink s'ha arribat al límit de %sB.\n" #: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 +#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:256 #, c-format msgid "Failed to stat %s" msgstr "No es pot determinar l'estat de %s" @@ -531,7 +530,7 @@ msgstr "Error intern, no s'ha pogut localitzar al membre %s" #: ftparchive/contents.cc:353 ftparchive/contents.cc:384 msgid "realloc - Failed to allocate memory" -msgstr "realloc - Falla a l'assignar espai en memòria" +msgstr "realloc - No s'ha pogut assignar espai en memòria" #: ftparchive/override.cc:38 ftparchive/override.cc:146 #, c-format @@ -556,7 +555,7 @@ msgstr "Línia predominant %s línia malformada %lu núm 3" #: ftparchive/override.cc:131 ftparchive/override.cc:205 #, c-format msgid "Failed to read the override file %s" -msgstr "Falla al llegir la línia predominant del fitxer %s" +msgstr "No s'ha pogut llegir la línia predominant del fitxer %s" #: ftparchive/multicompress.cc:75 #, c-format @@ -587,15 +586,15 @@ msgstr "Comprimeix el fil" #: ftparchive/multicompress.cc:238 #, c-format msgid "Internal error, failed to create %s" -msgstr "Error intern, falla al crear %s" +msgstr "S'ha produït un error intern, no s'ha pogut crear %s" #: ftparchive/multicompress.cc:289 msgid "Failed to create subprocess IPC" -msgstr "Falla al crear el subprocés IPC" +msgstr "No s'ha pogut crear el subprocés IPC" #: ftparchive/multicompress.cc:324 msgid "Failed to exec compressor " -msgstr "Falla a l'executar el compressor " +msgstr "No s'ha pogut executar el compressor " #: ftparchive/multicompress.cc:363 msgid "decompressor" @@ -603,11 +602,11 @@ msgstr "decompressor" #: ftparchive/multicompress.cc:406 msgid "IO to subprocess/file failed" -msgstr "Falla l'E/S del subprocés sobre el fitxer" +msgstr "Ha fallat l'E/S del subprocés sobre el fitxer" #: ftparchive/multicompress.cc:458 msgid "Failed to read while computing MD5" -msgstr "Falla al llegir mentre es càlculava la suma MD5" +msgstr "No s'ha pogut llegir mentre es calculava la suma MD5" #: ftparchive/multicompress.cc:475 #, c-format @@ -617,16 +616,16 @@ msgstr "S'ha trobat un problema treient l'enllaç %s" #: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 #, c-format msgid "Failed to rename %s to %s" -msgstr "Ha fallat el reomenament de %s a %s" +msgstr "No s'ha pogut canviar el nom de %s a %s" #: cmdline/apt-get.cc:118 msgid "Y" msgstr "S" -#: cmdline/apt-get.cc:140 cmdline/apt-get.cc:1475 +#: cmdline/apt-get.cc:140 cmdline/apt-get.cc:1484 #, c-format msgid "Regex compilation error - %s" -msgstr "Error de compilació de l'expressió regular - %s" +msgstr "S'ha produït un error de compilació de l'expressió regular - %s" #: cmdline/apt-get.cc:235 msgid "The following packages have unmet dependencies:" @@ -693,10 +692,10 @@ msgstr "%s (per %s) " #: cmdline/apt-get.cc:544 msgid "" -"WARNING: The following essential packages will be removed\n" +"WARNING: The following essential packages will be removed.\n" "This should NOT be done unless you know exactly what you are doing!" msgstr "" -"ATENCIÓ: Els següents paquets essencials seran eliminats\n" +"AVÍS: Els següents paquets essencials seran eliminats.\n" "Això NO s'ha de fer a menys que sapigueu exactament el que esteu fent!" #: cmdline/apt-get.cc:575 @@ -730,7 +729,7 @@ msgstr "S'estan corregint les dependències..." #: cmdline/apt-get.cc:650 msgid " failed." -msgstr " falla." +msgstr " ha fallat." #: cmdline/apt-get.cc:653 msgid "Unable to correct dependencies" @@ -756,9 +755,13 @@ msgstr "Dependències sense satisfer. Proveu-ho usant -f." msgid "WARNING: The following packages cannot be authenticated!" msgstr "AVÍS: No es poden autenticar els següents paquets!" +#: cmdline/apt-get.cc:691 +msgid "Authentication warning overridden.\n" +msgstr "S'ha descartat l'avís d'autenticació.\n" + #: cmdline/apt-get.cc:698 msgid "Install these packages without verification [y/N]? " -msgstr "Voleu instal·lar aquestas paquets sense verificar-los [y/N]? " +msgstr "Voleu instal·lar aquests paquets sense verificar-los [s/N]? " #: cmdline/apt-get.cc:700 msgid "Some packages could not be authenticated" @@ -766,21 +769,33 @@ msgstr "No s'ha pogut autenticar alguns paquets" #: cmdline/apt-get.cc:709 cmdline/apt-get.cc:855 msgid "There are problems and -y was used without --force-yes" -msgstr "Hi ha problemes i -y fou usat sense --force-yes" +msgstr "Hi ha problemes i s'ha usat -y sense --force-yes" + +#: cmdline/apt-get.cc:753 +msgid "Internal error, InstallPackages was called with broken packages!" +msgstr "S'ha produït un error intern, s'ha cridat a InstallPackages amb paquets trencats!" #: cmdline/apt-get.cc:762 msgid "Packages need to be removed but remove is disabled." msgstr "Els paquets necessiten ser eliminats però Remove està inhabilitat." -#: cmdline/apt-get.cc:788 cmdline/apt-get.cc:1769 cmdline/apt-get.cc:1802 +#: cmdline/apt-get.cc:772 +msgid "Internal error, Ordering didn't finish" +msgstr "S'ha produït un error intern, l'ordenació no ha acabat" + +#: cmdline/apt-get.cc:788 cmdline/apt-get.cc:1778 cmdline/apt-get.cc:1811 msgid "Unable to lock the download directory" msgstr "No és possible blocar el directori de descàrrega" -#: cmdline/apt-get.cc:798 cmdline/apt-get.cc:1850 cmdline/apt-get.cc:2061 +#: cmdline/apt-get.cc:798 cmdline/apt-get.cc:1859 cmdline/apt-get.cc:2070 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "No s'ha pogut llegir la llista de les fonts." +#: cmdline/apt-get.cc:813 +msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" +msgstr "Què estrany... les mides no coincideixen, informeu a apt@packages.debian.org" + #: cmdline/apt-get.cc:818 #, c-format msgid "Need to get %sB/%sB of archives.\n" @@ -801,6 +816,11 @@ msgstr "Després de desempaquetar s'usaran %sB d'espai en disc addicional.\n" msgid "After unpacking %sB disk space will be freed.\n" msgstr "Després de desempaquetar s'alliberaran %sB d'espai en disc.\n" +#: cmdline/apt-get.cc:843 cmdline/apt-get.cc:1925 +#, c-format +msgid "Couldn't determine free space in %s" +msgstr "No s'ha pogut determinar l'espai lliure en %s" + #: cmdline/apt-get.cc:846 #, c-format msgid "You don't have enough free space in %s." @@ -817,12 +837,12 @@ msgstr "Sí, fes el que et dic!" #: cmdline/apt-get.cc:865 #, c-format msgid "" -"You are about to do something potentially harmful\n" +"You are about to do something potentially harmful.\n" "To continue type in the phrase '%s'\n" " ?] " msgstr "" -"Esteu a punt de fer quelcom potencialment nociu\n" -"Per a continuar escriviu en la frase «%s»\n" +"Esteu a punt de fer quelcom potencialment nociu.\n" +"Per a continuar escriviu la frase «%s»\n" " ?] " #: cmdline/apt-get.cc:871 cmdline/apt-get.cc:890 @@ -833,7 +853,7 @@ msgstr "Avortat." msgid "Do you want to continue [Y/n]? " msgstr "Voleu continuar [S/n]? " -#: cmdline/apt-get.cc:958 cmdline/apt-get.cc:1334 cmdline/apt-get.cc:1959 +#: cmdline/apt-get.cc:958 cmdline/apt-get.cc:1334 cmdline/apt-get.cc:1968 #, c-format msgid "Failed to fetch %s %s\n" msgstr "No s'ha pogut obtenir %s %s\n" @@ -842,9 +862,9 @@ msgstr "No s'ha pogut obtenir %s %s\n" msgid "Some files failed to download" msgstr "Alguns fitxers no s'han pogut descarregar" -#: cmdline/apt-get.cc:977 cmdline/apt-get.cc:1968 +#: cmdline/apt-get.cc:977 cmdline/apt-get.cc:1977 msgid "Download complete and in download only mode" -msgstr "Descàrrega completa i en mode de sols descàrrega" +msgstr "Descàrrega completa i en mode de només descàrrega" #: cmdline/apt-get.cc:983 msgid "" @@ -869,13 +889,13 @@ msgstr "S'està avortant la instal·lació." #: cmdline/apt-get.cc:1026 #, c-format msgid "Note, selecting %s instead of %s\n" -msgstr "Nota: s'ha seleccionant %s en comptes de %s\n" +msgstr "Nota: s'està seleccionant %s en comptes de %s\n" #: cmdline/apt-get.cc:1036 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" msgstr "" -"S'està ometent a %s, ja està instal·lat i l'actualització no està " +"S'està ometent %s, ja està instal·lat i l'actualització no està " "establerta.\n" #: cmdline/apt-get.cc:1054 @@ -946,7 +966,7 @@ msgstr "Versió seleccionada %s (%s) per a %s\n" msgid "The update command takes no arguments" msgstr "L'ordre update no pren arguments" -#: cmdline/apt-get.cc:1295 +#: cmdline/apt-get.cc:1295 cmdline/apt-get.cc:1389 msgid "Unable to lock the list directory" msgstr "No es pot blocar el directori de la llista" @@ -962,21 +982,21 @@ msgstr "" msgid "Internal error, AllUpgrade broke stuff" msgstr "Error intern, AllUpgrade ha trencat coses" -#: cmdline/apt-get.cc:1462 cmdline/apt-get.cc:1498 +#: cmdline/apt-get.cc:1471 cmdline/apt-get.cc:1507 #, c-format msgid "Couldn't find package %s" msgstr "No s'ha pogut trobar el paquet %s" -#: cmdline/apt-get.cc:1485 +#: cmdline/apt-get.cc:1494 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "Nota: s'està seleccionant %s per a l'expressió regular '%s'\n" -#: cmdline/apt-get.cc:1515 +#: cmdline/apt-get.cc:1524 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "Potser voldreu executar `apt-get -f install' per a corregir-ho:" -#: cmdline/apt-get.cc:1518 +#: cmdline/apt-get.cc:1527 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." @@ -984,7 +1004,7 @@ msgstr "" "Dependències insatisfetes. Intenteu 'apt-get -f install' sense paquets (o " "especifiqueu una solució)." -#: cmdline/apt-get.cc:1530 +#: cmdline/apt-get.cc:1539 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" @@ -996,7 +1016,7 @@ msgstr "" "unstable i alguns paquets requerits encara no han estat creats o bé\n" "encara no els hi han afegit." -#: cmdline/apt-get.cc:1538 +#: cmdline/apt-get.cc:1547 msgid "" "Since you only requested a single operation it is extremely likely that\n" "the package is simply not installable and a bug report against\n" @@ -1006,109 +1026,113 @@ msgstr "" "probable que el paquet no sigui instal·lable i que s'hagi d'emetre\n" "un informe d'error en contra d'aquest per a arxivar-lo." -#: cmdline/apt-get.cc:1543 +#: cmdline/apt-get.cc:1552 msgid "The following information may help to resolve the situation:" msgstr "La següent informació pot ajudar-vos a resoldre la situació:" -#: cmdline/apt-get.cc:1546 +#: cmdline/apt-get.cc:1555 msgid "Broken packages" msgstr "Paquets trencats" -#: cmdline/apt-get.cc:1572 +#: cmdline/apt-get.cc:1581 msgid "The following extra packages will be installed:" msgstr "S'instal·laran els següents paquets extres:" -#: cmdline/apt-get.cc:1643 +#: cmdline/apt-get.cc:1652 msgid "Suggested packages:" msgstr "Paquets suggerits:" -#: cmdline/apt-get.cc:1644 +#: cmdline/apt-get.cc:1653 msgid "Recommended packages:" msgstr "Paquets recomanats:" -#: cmdline/apt-get.cc:1664 +#: cmdline/apt-get.cc:1673 msgid "Calculating upgrade... " msgstr "S'està calculant l'actualització... " -#: cmdline/apt-get.cc:1667 methods/ftp.cc:702 methods/connect.cc:99 +#: cmdline/apt-get.cc:1676 methods/ftp.cc:702 methods/connect.cc:99 msgid "Failed" msgstr "Ha fallat" -#: cmdline/apt-get.cc:1672 +#: cmdline/apt-get.cc:1681 msgid "Done" msgstr "Fet" -#: cmdline/apt-get.cc:1845 +#: cmdline/apt-get.cc:1746 cmdline/apt-get.cc:1754 +msgid "Internal error, problem resolver broke stuff" +msgstr "S'ha produït un error intern, el solucionador de problemes ha trencat coses" + +#: cmdline/apt-get.cc:1854 msgid "Must specify at least one package to fetch source for" msgstr "Haureu d'especificar un paquet de codi font per a descarregar" -#: cmdline/apt-get.cc:1872 cmdline/apt-get.cc:2079 +#: cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2088 #, c-format msgid "Unable to find a source package for %s" msgstr "No es pot trobar un paquet de fonts per a %s" -#: cmdline/apt-get.cc:1919 +#: cmdline/apt-get.cc:1928 #, c-format msgid "You don't have enough free space in %s" msgstr "No teniu prou espai lliure en %s" -#: cmdline/apt-get.cc:1924 +#: cmdline/apt-get.cc:1933 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Es necessita descarregar %sB/%sB d'arxius font.\n" -#: cmdline/apt-get.cc:1927 +#: cmdline/apt-get.cc:1936 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Es necessita descarregar %sB d'arxius font.\n" -#: cmdline/apt-get.cc:1933 +#: cmdline/apt-get.cc:1942 #, c-format msgid "Fetch source %s\n" msgstr "Font descarregada %s\n" -#: cmdline/apt-get.cc:1964 +#: cmdline/apt-get.cc:1973 msgid "Failed to fetch some archives." msgstr "No s'ha pogut descarregar alguns arxius." -#: cmdline/apt-get.cc:1992 +#: cmdline/apt-get.cc:2001 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" "S'està ometent el desempaquetament de les fonts que ja ho estan en %s\n" -#: cmdline/apt-get.cc:2004 +#: cmdline/apt-get.cc:2013 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "L'ordre de desempaquetar «%s» ha fallat.\n" -#: cmdline/apt-get.cc:2021 +#: cmdline/apt-get.cc:2030 #, c-format msgid "Build command '%s' failed.\n" msgstr "L'ordre de construir «%s» ha fallat.\n" -#: cmdline/apt-get.cc:2040 +#: cmdline/apt-get.cc:2049 msgid "Child process failed" msgstr "Ha fallat el procés fill" -#: cmdline/apt-get.cc:2056 +#: cmdline/apt-get.cc:2065 msgid "Must specify at least one package to check builddeps for" msgstr "" "S'ha d'especificar un paquet per a verificar les dependències de construcció " "per a" -#: cmdline/apt-get.cc:2084 +#: cmdline/apt-get.cc:2093 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" "No es pot obtenir informació sobre les dependències de construcció per a %s" -#: cmdline/apt-get.cc:2104 +#: cmdline/apt-get.cc:2113 #, c-format msgid "%s has no build depends.\n" msgstr "%s no té dependències de construcció.\n" -#: cmdline/apt-get.cc:2156 +#: cmdline/apt-get.cc:2165 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1117,7 +1141,7 @@ msgstr "" "La dependència %s en %s no es pot satisfer per que no es pot trobar el " "paquet %s" -#: cmdline/apt-get.cc:2208 +#: cmdline/apt-get.cc:2217 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " @@ -1126,32 +1150,30 @@ msgstr "" "La dependència %s per a %s no es pot satisfer per que cap versió del paquet %" "s pot satisfer els requeriments de versions" -#: cmdline/apt-get.cc:2243 +#: cmdline/apt-get.cc:2252 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" -msgstr "" -"Falla al satisfer la dependència %s per a %s: El paquet instal·lat %s és " -"massa nou" +msgstr "No s'ha pogut satisfer la dependència %s per a %s: El paquet instal·lat %s és massa nou" -#: cmdline/apt-get.cc:2268 +#: cmdline/apt-get.cc:2277 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" -msgstr "Falla al satisfer la dependència %s per a %s: %s" +msgstr "No s'ha pogut satisfer la dependència %s per a %s: %s" -#: cmdline/apt-get.cc:2282 +#: cmdline/apt-get.cc:2291 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "No s'han pogut satisfer les dependències de construcció per a %s" -#: cmdline/apt-get.cc:2286 +#: cmdline/apt-get.cc:2295 msgid "Failed to process build dependencies" msgstr "No es poden processar les dependències de construcció" -#: cmdline/apt-get.cc:2318 +#: cmdline/apt-get.cc:2327 msgid "Supported modules:" msgstr "Mòduls suportats:" -#: cmdline/apt-get.cc:2359 +#: cmdline/apt-get.cc:2368 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1379,15 +1401,15 @@ msgstr "DropNode crida a un node que encara està enllaçat" #: apt-inst/filelist.cc:416 msgid "Failed to locate the hash element!" -msgstr "Falla al localitzar l'element diseminat!" +msgstr "No s'ha trobat l'element diseminat!" #: apt-inst/filelist.cc:463 msgid "Failed to allocate diversion" -msgstr "Falla al localitzar la desviació" +msgstr "No s'ha pogut assignar la desviació" #: apt-inst/filelist.cc:468 msgid "Internal error in AddDiversion" -msgstr "Error intern en AddDiversion" +msgstr "S'ha produït un error intern en AddDiversion" #: apt-inst/filelist.cc:481 #, c-format @@ -1406,8 +1428,8 @@ msgstr "Fitxer de conf. duplicat %s/%s" #: apt-inst/dirstream.cc:45 apt-inst/dirstream.cc:50 apt-inst/dirstream.cc:53 #, c-format -msgid "Failed write file %s" -msgstr "Ha fallat l'escriptura del fitxer %s" +msgid "Failed to write file %s" +msgstr "No s'ha pogut escriure el fitxer %s" #: apt-inst/dirstream.cc:80 apt-inst/dirstream.cc:88 #, c-format @@ -1445,7 +1467,7 @@ msgstr "El directori %s està sent reemplaçat per un no-directori" #: apt-inst/extract.cc:283 msgid "Failed to locate node in its hash bucket" -msgstr "Falla al localitzar el node dins la taula" +msgstr "No s'ha trobat el node dins de la taula" #: apt-inst/extract.cc:287 msgid "The path is too long" @@ -1485,7 +1507,7 @@ msgstr "No es pot crear %s" #: apt-inst/deb/dpkgdb.cc:118 #, c-format msgid "Failed to stat %sinfo" -msgstr "Falla al comprovar l'estat de %sinfo" +msgstr "No s'ha pogut fer «stat» de %sinfo" #: apt-inst/deb/dpkgdb.cc:123 msgid "The info and temp directories need to be on the same filesystem" @@ -1503,12 +1525,12 @@ msgstr "S'està llegint la llista de paquets" #: apt-inst/deb/dpkgdb.cc:180 #, c-format msgid "Failed to change to the admin dir %sinfo" -msgstr "Falla al canviar pel directori de gestió %sinfo" +msgstr "No s'ha pogut canviar al directori d'admininstració %sinfo" #: apt-inst/deb/dpkgdb.cc:201 apt-inst/deb/dpkgdb.cc:355 #: apt-inst/deb/dpkgdb.cc:448 msgid "Internal error getting a package name" -msgstr "Error intern obtenint un nom de paquet" +msgstr "S'ha produït un error intern en obtenir un nom de paquet" #: apt-inst/deb/dpkgdb.cc:205 msgid "Reading file listing" @@ -1520,24 +1542,21 @@ msgid "" "Failed to open the list file '%sinfo/%s'. If you cannot restore this file " "then make it empty and immediately re-install the same version of the " "package!" -msgstr "" -"Falla a l'obrir la llista del fitxer '%sinfo/%s'. Si no podeu restaurar " -"aquest fitxer llavores marqueu-lo amb empty i torneu a instal·lar " -"immediatament la mateixa versió del paquet!" +msgstr "No s'ha pogut obrir la llista del fitxer «%sinfo/%s». Si no podeu restaurar aquest fitxer, creeu-lo buit i torneu a instal·lar immediatament la mateixa versió del paquet!" #: apt-inst/deb/dpkgdb.cc:229 apt-inst/deb/dpkgdb.cc:242 #, c-format msgid "Failed reading the list file %sinfo/%s" -msgstr "Falla al llegir la llista del fitxer %sinfo/%s" +msgstr "No s'ha pogut llegir la llista del fitxer %sinfo/%s" #: apt-inst/deb/dpkgdb.cc:266 msgid "Internal error getting a node" -msgstr "Error intern obtinguen un node" +msgstr "S'ha produït un error en obtenir un node" #: apt-inst/deb/dpkgdb.cc:309 #, c-format msgid "Failed to open the diversions file %sdiversions" -msgstr "Falla a l'obrir el fitxer de desviació %sdiversions" +msgstr "S'ha produït un error en obrir el fitxer de desviació %sdiversions" #: apt-inst/deb/dpkgdb.cc:324 msgid "The diversion file is corrupted" @@ -1551,7 +1570,7 @@ msgstr "Línia no vàlida en el fitxer de desviació: %s" #: apt-inst/deb/dpkgdb.cc:362 msgid "Internal error adding a diversion" -msgstr "Error intern afegint una desviació" +msgstr "S'ha produït un error intern en afegir una desviació" #: apt-inst/deb/dpkgdb.cc:383 msgid "The pkg cache must be initialized first" @@ -1564,7 +1583,7 @@ msgstr "S'està llegint la llista de fitxers" #: apt-inst/deb/dpkgdb.cc:443 #, c-format msgid "Failed to find a Package: header, offset %lu" -msgstr "Falla al cercar un paquet: Capçalera, desplaçament %lu" +msgstr "No s'ha trobat una capçalera Package:, desplaçament %lu" #: apt-inst/deb/dpkgdb.cc:465 #, c-format @@ -1574,12 +1593,12 @@ msgstr "Secció ConfFile dolenta en el fitxer d'estat. Desplaçament %lu" #: apt-inst/deb/dpkgdb.cc:470 #, c-format msgid "Error parsing MD5. Offset %lu" -msgstr "Error analitzant la suma MD5. Desplaçament %lu" +msgstr "S'ha produït un error en analitzar la suma MD5. Desplaçament %lu" #: apt-inst/deb/debfile.cc:42 apt-inst/deb/debfile.cc:47 #, c-format msgid "This is not a valid DEB archive, missing '%s' member" -msgstr "Aquest no és un arxiu DEB vàlid, falta el membre '%s'" +msgstr "Aquest no és un arxiu DEB vàlid, falta el membre «%s»" #: apt-inst/deb/debfile.cc:52 #, c-format @@ -1593,15 +1612,15 @@ msgstr "No s'ha pogut canviar a %s" #: apt-inst/deb/debfile.cc:138 msgid "Internal error, could not locate member" -msgstr "Error intern, no s'ha pogut localitzar al membre" +msgstr "S'ha produït un error intern, no s'ha trobat el membre" #: apt-inst/deb/debfile.cc:171 msgid "Failed to locate a valid control file" -msgstr "S'ha fallat en localitzar un fitxer de control vàlid" +msgstr "No s'ha trobat un fitxer de control vàlid" #: apt-inst/deb/debfile.cc:256 msgid "Unparsable control file" -msgstr "Fitxer de control incoherent" +msgstr "El fitxer de control no es pot analitzar" #: methods/cdrom.cc:113 #, c-format @@ -1629,13 +1648,14 @@ msgstr "No es pot muntar el CD-ROM en %s, potser estigui encara en ús." msgid "File not found" msgstr "Fitxer no trobat" -#: methods/copy.cc:42 methods/gzip.cc:133 methods/gzip.cc:142 +#: methods/copy.cc:42 methods/gpgv.cc:265 methods/gzip.cc:133 +#: methods/gzip.cc:142 msgid "Failed to stat" msgstr "L'estat ha fallat" -#: methods/copy.cc:79 methods/gzip.cc:139 +#: methods/copy.cc:79 methods/gpgv.cc:262 methods/gzip.cc:139 msgid "Failed to set modification time" -msgstr "Falla a l'establir la modificació de temps" +msgstr "No s'ha pogut establir el temps de modificació" #: methods/file.cc:42 msgid "Invalid URI, local URIS must not start with //" @@ -1762,7 +1782,7 @@ msgstr "S'ha esgotat el temps de connexió al sòcol de dades" msgid "Unable to accept connection" msgstr "No es pot acceptar la connexió" -#: methods/ftp.cc:864 methods/http.cc:916 methods/rsh.cc:303 +#: methods/ftp.cc:864 methods/http.cc:920 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "Problema escollint el fitxer" @@ -1846,6 +1866,42 @@ msgstr "Ha passat alguna cosa estranya en resoldre '%s:%s' (%i)" msgid "Unable to connect to %s %s:" msgstr "No es pot connectar amb %s %s:" +#: methods/gpgv.cc:92 +msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." +msgstr "E: La llista d'arguments d'Acquire::gpgv::Options és massa llarga. S'està sortint." + +#: methods/gpgv.cc:191 +msgid "" +"Internal error: Good signature, but could not determine key fingerprint?!" +msgstr "Error intern: La signatura és correcta, però no s'ha pogut determinar l'emprempta digital de la clau!" + +#: methods/gpgv.cc:196 +msgid "At least one invalid signature was encountered." +msgstr "S'ha trobat almenys una signatura invàlida." + +#. FIXME String concatenation considered harmful. +#: methods/gpgv.cc:201 +msgid "Could not execute " +msgstr "No s'ha pogut executar " + +#: methods/gpgv.cc:202 +msgid " to verify signature (is gnupg installed?)" +msgstr " per a verificar la signatura (està instal·lat el gnupg?)" + +#: methods/gpgv.cc:206 +msgid "Unknown error executing gpgv" +msgstr "S'ha produït un error desconegut en executar el gpgv" + +#: methods/gpgv.cc:237 +msgid "The following signatures were invalid:\n" +msgstr "Les següents signatures són invàlides:\n" + +#: methods/gpgv.cc:244 +msgid "" +"The following signatures couldn't be verified because the public key is not " +"available:\n" +msgstr "Les següents signatures no s'han pogut verificar perquè la clau pública no està disponible:\n" + #: methods/gzip.cc:57 #, c-format msgid "Couldn't open pipe for %s" @@ -1889,43 +1945,43 @@ msgstr "Aquest servidor http té el suport d'abast trencat" msgid "Unknown date format" msgstr "Format de la data desconegut" -#: methods/http.cc:737 +#: methods/http.cc:741 msgid "Select failed" msgstr "Ha fallat la selecció" -#: methods/http.cc:742 +#: methods/http.cc:746 msgid "Connection timed out" msgstr "Connexió finalitzada" -#: methods/http.cc:765 +#: methods/http.cc:769 msgid "Error writing to output file" msgstr "Error escrivint en el fitxer d'eixida" -#: methods/http.cc:793 +#: methods/http.cc:797 msgid "Error writing to file" msgstr "Error escrivint en el fitxer" -#: methods/http.cc:818 +#: methods/http.cc:822 msgid "Error writing to the file" msgstr "Error escrivint en el fitxer" -#: methods/http.cc:832 +#: methods/http.cc:836 msgid "Error reading from server. Remote end closed connection" msgstr "Error llegint, el servidor remot ha tancat la connexió" -#: methods/http.cc:834 +#: methods/http.cc:838 msgid "Error reading from server" msgstr "Error llegint des del servidor" -#: methods/http.cc:1065 +#: methods/http.cc:1069 msgid "Bad header data" msgstr "Capçalera de dades no vàlida" -#: methods/http.cc:1082 +#: methods/http.cc:1086 msgid "Connection failed" msgstr "Ha fallat la connexió" -#: methods/http.cc:1173 +#: methods/http.cc:1177 msgid "Internal error" msgstr "Error intern" @@ -2070,7 +2126,7 @@ msgstr "No es pot canviar a %s" #: apt-pkg/contrib/cdromutl.cc:190 msgid "Failed to stat the cdrom" -msgstr "Falla al examinar el cdrom" +msgstr "No s'ha pogut fer «stat» del cdrom" #: apt-pkg/contrib/fileutl.cc:80 #, c-format @@ -2100,7 +2156,7 @@ msgstr "Esperava %s però no hi era" #: apt-pkg/contrib/fileutl.cc:369 #, c-format msgid "Sub-process %s received a segmentation fault." -msgstr "Sub-procés %s ha rebut una falla de segmentació." +msgstr "Sub-procés %s ha rebut una violació de segment." #: apt-pkg/contrib/fileutl.cc:372 #, c-format @@ -2465,13 +2521,13 @@ msgstr "Error d'E/S en desar la memòria cau de la font" #: apt-pkg/acquire-item.cc:126 #, c-format msgid "rename failed, %s (%s -> %s)." -msgstr "falla de renomenat, %s (%s -> %s)." +msgstr "no s'ha pogut canviar el nom, %s (%s -> %s)." -#: apt-pkg/acquire-item.cc:235 apt-pkg/acquire-item.cc:894 +#: apt-pkg/acquire-item.cc:235 apt-pkg/acquire-item.cc:900 msgid "MD5Sum mismatch" msgstr "Suma MD5 diferent" -#: apt-pkg/acquire-item.cc:708 +#: apt-pkg/acquire-item.cc:714 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " @@ -2481,7 +2537,7 @@ msgstr "" "significar que haureu d'arreglar aquest paquet manualment (segons " "arquitectura)." -#: apt-pkg/acquire-item.cc:761 +#: apt-pkg/acquire-item.cc:767 #, c-format msgid "" "I wasn't able to locate file for the %s package. This might mean you need to " @@ -2490,7 +2546,7 @@ msgstr "" "No ha estat possible localitzar un fitxer pel paquet %s. Això podria " "significar que haureu d'arreglar aquest paquet manualment." -#: apt-pkg/acquire-item.cc:797 +#: apt-pkg/acquire-item.cc:803 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." @@ -2498,7 +2554,7 @@ msgstr "" "L'índex dels fitxers en el paquet està corromput. Fitxer no existent: camp " "per al paquet %s." -#: apt-pkg/acquire-item.cc:884 +#: apt-pkg/acquire-item.cc:890 msgid "Size mismatch" msgstr "Mida diferent" -- cgit v1.2.3-70-g09d2 From 2a9f1f154b8c450b71efdb097f5444f49a4161e2 Mon Sep 17 00:00:00 2001 From: Christian Perrier Date: Sun, 31 Jul 2005 13:21:31 +0000 Subject: Sync with Matt Patches applied: * apt@packages.debian.org/apt--main--0--patch-105 Merge from bubulle@debian.org--2005/apt--main--0 --- debian/changelog | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 1b09ab69d..78b400954 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,11 @@ apt (0.6.40) unstable; urgency=low * Patch from Jordi Mallach to mark some additional strings for translation * Updated Catalan translation from Jordi Mallach + * Merge from bubulle@debian.org--2005/apt--main--0: + - Update pot and merge with *.po + - Updated French translation, including apt-key.fr.8 - -- Matt Zimmerman Wed, 27 Jul 2005 13:00:04 -0700 + -- Matt Zimmerman Thu, 28 Jul 2005 11:57:32 -0700 apt (0.6.39) unstable; urgency=low -- cgit v1.2.3-70-g09d2 From 591fd938c3840c4e49d684087a3340e1f0b40020 Mon Sep 17 00:00:00 2001 From: Christian Perrier Date: Tue, 16 Aug 2005 20:47:11 +0000 Subject: Merge with Matt Patches applied: * apt@packages.debian.org/apt--main--0--patch-106 Restore lost changelog entries * apt@packages.debian.org/apt--main--0--patch-107 Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0 * apt@packages.debian.org/apt--main--0--patch-108 Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0 * apt@packages.debian.org/apt--main--0--patch-109 Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0 * apt@packages.debian.org/apt--main--0--patch-110 Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-5 * merged with apt--main--0 * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-85 * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-1 * inital proof of concept code, understands what dpkg tells it already * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-2 * progress reporting works now * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-3 * added "APT::Status-Fd" variable * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-4 * do i18n now too * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-5 * define N_(x) if it is not defined already * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-6 * PackageManager::DoInstall(int status_fd) added (does not break the ABI) * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-7 * merged with apt--fixes--0 to make it build again * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-8 * added support for "error" and "conffile-prompt" messages from dpkg * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-9 merge with main * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-10 * use sizeof() for all snprintf() uses; fix a potential line break problem in the status reading code; changed the N_() to _() calls * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-11 * added APT::KeepFDs configuration list for file descriptors that apt should leave open (needed for various frontends like debconf, synaptic) * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-12 * fixed a API breakage * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-13 * doc added, should be releasable now * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-14 * merged with apt--main--0 * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-15 * more source comments, added Debug::DpkgPM debug code to inspect the dpkg<->apt communication, broke the abi (ok with matt) * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-16 * the progress reporting has it's own "Debug::pkgDPkgProgressReporting" debug variable now * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-17 * merged PackageOps and TranslatedPackageOps into a single Map with the new DpkgState struct * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-18 * clear the APT::Keep-Fds configuration when it's no longer needed * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-19 * rewrote the reading from dpkg so that it never blocks * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-20 * merged the two status arrays into one * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-21 * added support for download progress reporting too (for Kamion and base-config) * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-22 * ABI break; added Configuration::Clear(string List, {int,string} value) added (to remove a single Value from a list); test/conf_clear.cc added * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-23 * remvoed a debug string * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-24 * soname changed, fixed a bug in the parsing code when dpkg send the same state more than once (at the end) * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-25 * merged with apt@packages.debian.org/apt--main--0, added changelog entry for the 0.6.40.1 upload * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-26 * fix a bug when out-of-order states are send from dpkg * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-27 * changelog update * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-28 * a real changelog entry now * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-29 * changelog finalized * michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-30 * propper (and sane) support for pmerror and pmconffile added --- README.progress-reporting | 62 ++++++++++ apt-pkg/acquire.cc | 21 ++++ apt-pkg/contrib/configuration.cc | 45 ++++++- apt-pkg/contrib/configuration.h | 7 +- apt-pkg/contrib/fileutl.cc | 24 +++- apt-pkg/contrib/fileutl.h | 2 +- apt-pkg/deb/dpkgpm.cc | 242 +++++++++++++++++++++++++++++++++---- apt-pkg/deb/dpkgpm.h | 9 +- apt-pkg/init.h | 2 +- apt-pkg/makefile | 2 +- apt-pkg/packagemanager.cc | 4 +- apt-pkg/packagemanager.h | 2 +- cmdline/apt-get.cc | 6 +- configure.in | 2 +- debian/apt-doc.docs | 1 + debian/changelog | 254 ++++++++++++++++++++++++++++++++++++++- doc/examples/configure-index | 8 ++ methods/makefile | 2 +- po/apt-all.pot | 2 +- test/conf_clear.cc | 23 ++++ test/makefile | 6 + 21 files changed, 681 insertions(+), 45 deletions(-) create mode 100644 README.progress-reporting create mode 100644 debian/apt-doc.docs create mode 100644 test/conf_clear.cc (limited to 'debian') diff --git a/README.progress-reporting b/README.progress-reporting new file mode 100644 index 000000000..73fbd8c08 --- /dev/null +++ b/README.progress-reporting @@ -0,0 +1,62 @@ +Install-progress reporting +-------------------------- + +If the apt options: "APT::Status-Fd" is set, apt will send status +reports to that fd. The status information is seperated with a ':', +there are the following status conditions: + +status = {"pmstatus", "dlstatus", "conffile-prompt", "error" } + +The reason for using a fd instead of a OpProgress class is that many +apt frontend fork a (vte) terminal for the actual installation. + +The reason to do the mapping and l10n of the dpkg states to human +readable (and translatable) strings is that this way the translation +needs to be done only once for all frontends. + + +pmstatus +-------- +Status of the package manager (dpkg). This is send when packages +are installed/removed. +pmstatus:pkgname:TotalPercentage:action-description + +PkgName = the name of the package +TotalPercentage = the total progress between [0..100] +description = a i18ned human readable decription of the current action + + +Example: +# ./apt-get install -o APT::Status-Fd=2 3dchess >/dev/null +pmstatus:3dchess:20:Preparing 3dchess +pmstatus:3dchess:40:Unpacking 3dchess +pmstatus:3dchess:60:Preparing to configure 3dchess +pmstatus:3dchess:80:Configuring 3dchess +pmstatus:3dchess:100:Installed 3dchess + +pmerror +------- +pmerror:deb:TotalPercentage:error string + +Example: +pmerror: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : 75% : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data + + +pmconffile +---------- +pmconffile:conffile:percent:'current-conffile' 'new-conffile' useredited distedited + + + +dlstatus +-------- +dlstatus:AlreadDownloaded:TotalPercentage:action-description + +AlreadyDownloaded = the number of already downloaded packages +TotalPercentage = the total progress between [0..100] +description = a i18ned human readable decription of the current action + +Example: +dlstatus:1:9.05654:Downloading file 1 of 3 (4m40s remaining) +dlstatus:1:9.46357:Downloading file 1 of 3 (4m39s remaining) +dlstatus:1:9.61022:Downloading file 1 of 3 (4m38s remaining) \ No newline at end of file diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 70dce4f54..62209e65b 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -803,6 +804,26 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) Time = NewTime; } + int fd = _config->FindI("APT::Status-Fd",-1); + if(fd > 0) + { + ostringstream status; + + char msg[200]; + long i = CurrentItems < TotalItems ? CurrentItems + 1 : CurrentItems; + unsigned long ETA = + (unsigned long)((TotalBytes - CurrentBytes) / CurrentCPS); + + snprintf(msg,sizeof(msg), _("Downloading file %li of %li (%s remaining)"), i, TotalItems, TimeToStr(ETA).c_str()); + + // build the status str + status << "dlstatus:" << i + << ":" << (CurrentBytes/float(TotalBytes)*100.0) + << ":" << msg + << endl; + write(fd, status.str().c_str(), status.str().size()); + } + return true; } /*}}}*/ diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc index 69f8d1dca..09e454be9 100644 --- a/apt-pkg/contrib/configuration.cc +++ b/apt-pkg/contrib/configuration.cc @@ -325,6 +325,47 @@ void Configuration::Set(const char *Name,int Value) char S[300]; snprintf(S,sizeof(S),"%i",Value); Itm->Value = S; +} + /*}}}*/ +// Configuration::Clear - Clear an single value from a list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Configuration::Clear(string Name, int Value) +{ + char S[300]; + snprintf(S,sizeof(S),"%i",Value); + Clear(Name, S); +} + /*}}}*/ +// Configuration::Clear - Clear an single value from a list /*{{{*/ +// --------------------------------------------------------------------- +/* */ +void Configuration::Clear(string Name, string Value) +{ + Item *Top = Lookup(Name.c_str(),false); + if (Top == 0 || Top->Child == 0) + return; + + Item *Tmp, *Prev, *I; + Prev = I = Top->Child; + + while(I != NULL) + { + if(I->Value == Value) + { + Tmp = I; + // was first element, point parent to new first element + if(Top->Child == Tmp) + Top->Child = I->Next; + I = I->Next; + Prev->Next = I; + delete Tmp; + } else { + Prev = I; + I = I->Next; + } + } + } /*}}}*/ // Configuration::Clear - Clear an entire tree /*{{{*/ @@ -333,9 +374,9 @@ void Configuration::Set(const char *Name,int Value) void Configuration::Clear(string Name) { Item *Top = Lookup(Name.c_str(),false); - if (Top == 0) + if (Top == 0) return; - + Top->Value = string(); Item *Stop = Top; Top = Top->Child; diff --git a/apt-pkg/contrib/configuration.h b/apt-pkg/contrib/configuration.h index 0ed8f59d3..789bc82cf 100644 --- a/apt-pkg/contrib/configuration.h +++ b/apt-pkg/contrib/configuration.h @@ -87,8 +87,13 @@ class Configuration bool Exists(const char *Name) const; bool ExistsAny(const char *Name) const; + // clear a whole tree void Clear(string Name); - + + // remove a certain value from a list (e.g. the list of "APT::Keep-Fds") + void Clear(string List, string Value); + void Clear(string List, int Value); + inline const Item *Tree(const char *Name) const {return Lookup(Name);}; inline void Dump() { Dump(std::clog); }; diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 0ce0c9b9d..9fd71728e 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -20,6 +20,7 @@ #include #include #include +#include #include @@ -32,6 +33,7 @@ #include #include #include +#include /*}}}*/ using namespace std; @@ -306,7 +308,7 @@ bool WaitFd(int Fd,bool write,unsigned long timeout) /* This is used if you want to cleanse the environment for the forked child, it fixes up the important signals and nukes all of the fds, otherwise acts like normal fork. */ -pid_t ExecFork(int dontCloseThisFd) +pid_t ExecFork() { // Fork off the process pid_t Process = fork(); @@ -326,11 +328,27 @@ pid_t ExecFork(int dontCloseThisFd) signal(SIGWINCH,SIG_DFL); signal(SIGCONT,SIG_DFL); signal(SIGTSTP,SIG_DFL); - + + set KeepFDs; + Configuration::Item const *Opts = _config->Tree("APT::Keep-Fds"); + if (Opts != 0 && Opts->Child != 0) + { + Opts = Opts->Child; + for (; Opts != 0; Opts = Opts->Next) + { + if (Opts->Value.empty() == true) + continue; + int fd = atoi(Opts->Value.c_str()); + KeepFDs.insert(fd); + } + } + // Close all of our FDs - just in case for (int K = 3; K != 40; K++) - if(K != dontCloseThisFd) + { + if(KeepFDs.find(K) == KeepFDs.end()) fcntl(K,F_SETFD,FD_CLOEXEC); + } } return Process; diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index 4716e261e..041aa3309 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -87,7 +87,7 @@ string SafeGetCWD(); void SetCloseExec(int Fd,bool Close); void SetNonBlock(int Fd,bool Block); bool WaitFd(int Fd,bool write = false,unsigned long timeout = 0); -pid_t ExecFork(int dontCloseThisFd=-1); +pid_t ExecFork(); bool ExecWait(pid_t Pid,const char *Name,bool Reap = false); // File string manipulators diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 61c48dcbb..fe8fbca74 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -25,7 +25,11 @@ #include #include #include -#include +#include +#include + +#include +#include /*}}}*/ using namespace std; @@ -325,8 +329,14 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf) /*}}}*/ // DPkgPM::Go - Run the sequence /*{{{*/ // --------------------------------------------------------------------- -/* This globs the operations and calls dpkg */ -bool pkgDPkgPM::Go(int status_fd) +/* This globs the operations and calls dpkg + * + * If it is called with "OutStatusFd" set to a valid file descriptor + * apt will report the install progress over this fd. It maps the + * dpkg states a package goes through to human readable (and i10n-able) + * names and calculates a percentage for each step. +*/ +bool pkgDPkgPM::Go(int OutStatusFd) { unsigned int MaxArgs = _config->FindI("Dpkg::MaxArgs",8*1024); unsigned int MaxArgBytes = _config->FindI("Dpkg::MaxArgBytes",32*1024); @@ -336,7 +346,66 @@ bool pkgDPkgPM::Go(int status_fd) if (RunScriptsWithPkgs("DPkg::Pre-Install-Pkgs") == false) return false; + + // prepare the progress reporting + int Done = 0; + int Total = 0; + // map the dpkg states to the operations that are performed + // (this is sorted in the same way as Item::Ops) + static const struct DpkgState DpkgStatesOpMap[][5] = { + // Install operation + { + {"half-installed", _("Preparing %s")}, + {"unpacked", _("Unpacking %s") }, + {NULL, NULL} + }, + // Configure operation + { + {"unpacked",_("Preparing to configure %s") }, + {"half-configured", _("Configuring %s") }, + { "installed", _("Installed %s")}, + {NULL, NULL} + }, + // Remove operation + { + {"half-configured", _("Preparing for removal of %s")}, + {"half-installed", _("Removing %s")}, + {"config-files", _("Removed %s")}, + {NULL, NULL} + }, + // Purge operation + { + {"config-files", _("Preparing for remove with config %s")}, + {"not-installed", _("Removed with config %s")}, + {NULL, NULL} + }, + }; + // the dpkg states that the pkg will run through, the string is + // the package, the vector contains the dpkg states that the package + // will go through + map > PackageOps; + // the dpkg states that are already done; the string is the package + // the int is the state that is already done (e.g. a package that is + // going to be install is already in state "half-installed") + map PackageOpsDone; + + // init the PackageOps map, go over the list of packages that + // that will be [installed|configured|removed|purged] and add + // them to the PackageOps map (the dpkg states it goes through) + // and the PackageOpsTranslations (human readable strings) + for (vector::iterator I = List.begin(); I != List.end();I++) + { + string name = (*I).Pkg.Name(); + PackageOpsDone[name] = 0; + for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; i++) + { + PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]); + Total++; + } + } + + // this loop is runs once per operation for (vector::iterator I = List.begin(); I != List.end();) { vector::iterator J = I; @@ -367,16 +436,15 @@ bool pkgDPkgPM::Go(int status_fd) } } - // if we got a status_fd argument, we pass it to apt char status_fd_buf[20]; - if(status_fd > 0) - { - Args[n++] = "--status-fd"; - Size += strlen(Args[n-1]); - snprintf(status_fd_buf,20,"%i",status_fd); - Args[n++] = status_fd_buf; - Size += strlen(Args[n-1]); - } + int fd[2]; + pipe(fd); + + Args[n++] = "--status-fd"; + Size += strlen(Args[n-1]); + snprintf(status_fd_buf,sizeof(status_fd_buf),"%i", fd[1]); + Args[n++] = status_fd_buf; + Size += strlen(Args[n-1]); switch (I->Op) { @@ -449,17 +517,17 @@ bool pkgDPkgPM::Go(int status_fd) it doesn't die but we do! So we must also ignore it */ sighandler_t old_SIGQUIT = signal(SIGQUIT,SIG_IGN); sighandler_t old_SIGINT = signal(SIGINT,SIG_IGN); - - // Fork dpkg + + // Fork dpkg pid_t Child; - if(status_fd > 0) - Child = ExecFork(status_fd); - else - Child = ExecFork(); + _config->Set("APT::Keep-Fds::",fd[1]); + Child = ExecFork(); // This is the child if (Child == 0) { + close(fd[0]); // close the read end of the pipe + if (chdir(_config->FindDir("DPkg::Run-Directory","/").c_str()) != 0) _exit(100); @@ -487,19 +555,141 @@ bool pkgDPkgPM::Go(int status_fd) _exit(100); } + // clear the Keep-Fd again + _config->Clear("APT::Keep-Fds",fd[1]); + // Wait for dpkg int Status = 0; - while (waitpid(Child,&Status,0) != Child) - { - if (errno == EINTR) + + // we read from dpkg here + int _dpkgin = fd[0]; + fcntl(_dpkgin, F_SETFL, O_NONBLOCK); + close(fd[1]); // close the write end of the pipe + + // the read buffers for the communication with dpkg + char line[1024] = {0,}; + char buf[2] = {0,0}; + + // the result of the waitpid call + int res; + + while ((res=waitpid(Child,&Status, WNOHANG)) != Child) { + if(res < 0) { + // FIXME: move this to a function or something, looks ugly here + // error handling, waitpid returned -1 + if (errno == EINTR) + continue; + RunScripts("DPkg::Post-Invoke"); + + // Restore sig int/quit + signal(SIGQUIT,old_SIGQUIT); + signal(SIGINT,old_SIGINT); + return _error->Errno("waitpid","Couldn't wait for subprocess"); + } + + // read a single char, make sure that the read can't block + // (otherwise we may leave zombies) + int len = read(_dpkgin, buf, 1); + + // nothing to read, wait a bit for more + if(len <= 0) + { + usleep(1000); continue; - RunScripts("DPkg::Post-Invoke"); + } + + // sanity check (should never happen) + if(strlen(line) >= sizeof(line)-10) + { + _error->Error("got a overlong line from dpkg: '%s'",line); + line[0]=0; + } + // append to line, check if we got a complete line + strcat(line, buf); + if(buf[0] != '\n') + continue; + + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "got from dpkg '" << line << "'" << std::endl; + + // the status we output + ostringstream status; + + /* dpkg sends strings like this: + 'status: : ' + errors look like this: + 'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data + and conffile-prompt like this + 'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited + + */ + char* list[4]; + TokSplitString(':', line, list, 5); + char *pkg = list[1]; + char *action = _strstrip(list[2]); + + if(strncmp(action,"error",strlen("error")) == 0) + { + status << "pmerror:" << list[1] + << ":" << (Done/float(Total)*100.0) + << ":" << list[3] + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + line[0]=0; + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + continue; + } + if(strncmp(action,"conffile",strlen("conffile")) == 0) + { + status << "pmconffile:" << list[1] + << ":" << (Done/float(Total)*100.0) + << ":" << list[3] + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + line[0]=0; + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + continue; + } + + vector &states = PackageOps[pkg]; + const char *next_action = NULL; + if(PackageOpsDone[pkg] < states.size()) + next_action = states[PackageOpsDone[pkg]].state; + // check if the package moved to the next dpkg state + if(next_action && (strcmp(action, next_action) == 0)) + { + // only read the translation if there is actually a next + // action + const char *translation = states[PackageOpsDone[pkg]].str; + char s[200]; + snprintf(s, sizeof(s), translation, pkg); + + // we moved from one dpkg state to a new one, report that + PackageOpsDone[pkg]++; + Done++; + // build the status str + status << "pmstatus:" << pkg + << ":" << (Done/float(Total)*100.0) + << ":" << s + << endl; + if(OutStatusFd > 0) + write(OutStatusFd, status.str().c_str(), status.str().size()); + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "send: '" << status.str() << "'" << endl; + + } + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "(parsed from dpkg) pkg: " << pkg + << " action: " << action << endl; - // Restore sig int/quit - signal(SIGQUIT,old_SIGQUIT); - signal(SIGINT,old_SIGINT); - return _error->Errno("waitpid","Couldn't wait for subprocess"); + // reset the line buffer + line[0]=0; } + close(_dpkgin); // Restore sig int/quit signal(SIGQUIT,old_SIGQUIT); diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index b59b9dc93..2ff8a9ac7 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -23,6 +23,13 @@ using std::vector; class pkgDPkgPM : public pkgPackageManager { protected: + + // used for progress reporting + struct DpkgState + { + const char *state; // the dpkg state (e.g. "unpack") + const char *str; // the human readable translation of the state + }; struct Item { @@ -45,7 +52,7 @@ class pkgDPkgPM : public pkgPackageManager virtual bool Install(PkgIterator Pkg,string File); virtual bool Configure(PkgIterator Pkg); virtual bool Remove(PkgIterator Pkg,bool Purge = false); - virtual bool Go(int status_fd=-1); + virtual bool Go(int StatusFd=-1); virtual void Reset(); public: diff --git a/apt-pkg/init.h b/apt-pkg/init.h index 74ac3a7ca..e21351797 100644 --- a/apt-pkg/init.h +++ b/apt-pkg/init.h @@ -18,7 +18,7 @@ // See the makefile #define APT_PKG_MAJOR 3 -#define APT_PKG_MINOR 5 +#define APT_PKG_MINOR 10 #define APT_PKG_RELEASE 0 extern const char *pkgVersion; diff --git a/apt-pkg/makefile b/apt-pkg/makefile index 5f48f0f52..8de7d945e 100644 --- a/apt-pkg/makefile +++ b/apt-pkg/makefile @@ -13,7 +13,7 @@ include ../buildlib/defaults.mak # methods/makefile - FIXME LIBRARY=apt-pkg LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER) -MAJOR=3.9 +MAJOR=3.10 MINOR=0 SLIBS=$(PTHREADLIB) $(INTLLIBS) APT_DOMAIN:=libapt-pkg$(MAJOR) diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index a08ccd602..155408bb4 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -631,11 +631,11 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall() // --------------------------------------------------------------------- /* This uses the filenames in FileNames and the information in the DepCache to perform the installation of packages.*/ -pkgPackageManager::OrderResult pkgPackageManager::DoInstall() +pkgPackageManager::OrderResult pkgPackageManager::DoInstall(int status_fd) { OrderResult Res = OrderInstall(); if (Res != Failed) - if (Go() == false) + if (Go(status_fd) == false) return Failed; return Res; } diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h index 43f2c4ace..f64637d03 100644 --- a/apt-pkg/packagemanager.h +++ b/apt-pkg/packagemanager.h @@ -76,7 +76,7 @@ class pkgPackageManager : protected pkgCache::Namespace // Main action members bool GetArchives(pkgAcquire *Owner,pkgSourceList *Sources, pkgRecords *Recs); - OrderResult DoInstall(); + OrderResult DoInstall(int statusFd=-1); bool FixMissing(); pkgPackageManager(pkgDepCache *Cache); diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 75617d194..e673e0f5b 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -765,7 +765,8 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, if (_config->FindB("APT::Get::Simulate") == true) { pkgSimulate PM(Cache); - pkgPackageManager::OrderResult Res = PM.DoInstall(); + int status_fd = _config->FindI("APT::Status-Fd",-1); + pkgPackageManager::OrderResult Res = PM.DoInstall(status_fd); if (Res == pkgPackageManager::Failed) return false; if (Res != pkgPackageManager::Completed) @@ -994,7 +995,8 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, } _system->UnLock(); - pkgPackageManager::OrderResult Res = PM->DoInstall(); + int status_fd = _config->FindI("APT::Status-Fd",-1); + pkgPackageManager::OrderResult Res = PM->DoInstall(status_fd); if (Res == pkgPackageManager::Failed || _error->PendingError() == true) return false; if (Res == pkgPackageManager::Completed) diff --git a/configure.in b/configure.in index 7e3aba331..1ee7e168b 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib) AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) dnl -- SET THIS TO THE RELEASE VERSION -- -AC_DEFINE_UNQUOTED(VERSION,"0.6.40") +AC_DEFINE_UNQUOTED(VERSION,"0.6.40.2") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) diff --git a/debian/apt-doc.docs b/debian/apt-doc.docs new file mode 100644 index 000000000..a7507f4e7 --- /dev/null +++ b/debian/apt-doc.docs @@ -0,0 +1 @@ +README.progress-reporting \ No newline at end of file diff --git a/debian/changelog b/debian/changelog index 78b400954..614041acf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,20 @@ +apt (0.6.40.2) unstable; urgency=low + + * improved the support for "error" and "conffile" reporting from + dpkg, added the format to README.progress-reporting + * added README.progress-reporting to the apt-doc package + + -- + +apt (0.6.40.1) unstable; urgency=low + + * bugfix in the parsing code for the apt<->dpkg communication. apt + crashed when dpkg sends the same state more than once under certain + conditions + * 0.6.40 breaks the ABI but I accidentally didn't change the soname :/ + + -- Michael Vogt Fri, 5 Aug 2005 13:24:58 +0200 + apt (0.6.40) unstable; urgency=low * Patch from Jordi Mallach to mark some additional strings for translation @@ -5,8 +22,13 @@ apt (0.6.40) unstable; urgency=low * Merge from bubulle@debian.org--2005/apt--main--0: - Update pot and merge with *.po - Updated French translation, including apt-key.fr.8 + * Restore changelog entries from the 0.6.x series that went to Debian + experimental + * Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0 + - Provide an interface for progress reporting which can be used by + (e.g.) base-config - -- Matt Zimmerman Thu, 28 Jul 2005 11:57:32 -0700 + -- Matt Zimmerman Thu, 28 Jul 2005 11:57:32 -0700 apt (0.6.39) unstable; urgency=low @@ -213,6 +235,236 @@ apt (0.6.27) hoary; urgency=low -- Matt Zimmerman Mon, 13 Dec 2004 01:03:11 -0800 +apt (0.6.25) experimental; urgency=low + + * Fix handling of two-part sources for sources.list deb-src entries in + the same way that deb entries were fixed + + -- Matt Zimmerman Wed, 9 Jun 2004 05:29:50 -0700 + +apt (0.6.24) experimental; urgency=low + + * YnPrompt fixes were inadvertently left out, include them (Closes: + #249251) + + -- Matt Zimmerman Sun, 16 May 2004 14:18:53 -0700 + +apt (0.6.23) experimental; urgency=low + + * Remove obsolete pkgIterator::TargetVer() (Closes: #230159) + * Reverse test in CheckAuth to match new prompt (Closes: #248211) + + -- Matt Zimmerman Sun, 9 May 2004 21:01:58 -0700 + +apt (0.6.22) experimental; urgency=low + + * Merge 0.5.25 + * Make the unauthenticated packages prompt more intuitive (yes to + continue, default no), but require --force-yes in addition to + --assume-yes in order to override + + -- Matt Zimmerman Fri, 19 Mar 2004 13:55:35 -0800 + +apt (0.6.21) experimental; urgency=low + + * Merge 0.5.24 + + -- Matt Zimmerman Tue, 16 Mar 2004 22:52:34 -0800 + +apt (0.6.20) experimental; urgency=low + + * Merge 0.5.23 + + -- Matt Zimmerman Thu, 26 Feb 2004 17:17:02 -0800 + +apt (0.6.19) experimental; urgency=low + + * Merge 0.5.22 + * Convert apt-key(8) to docbook XML + + -- Matt Zimmerman Mon, 9 Feb 2004 15:44:49 -0800 + +apt (0.6.18) experimental; urgency=low + + * Add new Debian Archive Automatic Signing Key to the default keyring + (existing keyrings are not updated; do that yourself) + + -- Matt Zimmerman Sat, 17 Jan 2004 17:04:30 -0800 + +apt (0.6.17) experimental; urgency=low + + * Merge 0.5.21 + * Handle more IMS stuff correctly + + -- Matt Zimmerman Fri, 16 Jan 2004 10:54:25 -0800 + +apt (0.6.16) experimental; urgency=low + + * Fix some cases where the .gpg file could be left in place when it is + invalid + + -- Matt Zimmerman Fri, 9 Jan 2004 09:22:15 -0800 + +apt (0.6.15) experimental; urgency=low + + * s/Debug::Acquire::gpg/&v/ + * Honor the [vendor] syntax in sources.list again (though it is not + presently used for anything) + * Don't ship vendors.list(5) since it isn't used yet + * Revert change from 0.6.10; it was right in the first place and the + problem was apparently something else. Archive = Suite. + + -- Matt Zimmerman Mon, 5 Jan 2004 17:43:01 -0800 + +apt (0.6.14) experimental; urgency=low + + * Merge 0.5.20 + + -- Matt Zimmerman Sun, 4 Jan 2004 11:09:21 -0800 + +apt (0.6.13) experimental; urgency=low + + * Merge 0.5.19 + + -- Matt Zimmerman Sat, 3 Jan 2004 16:22:31 -0800 + +apt (0.6.12) experimental; urgency=low + + * Have pkgAcquireIndex calculate an MD5 sum if one is not provided by + the method (as with file: and copy:). Local repositories + * Fix warning about dist name mismatch to actually print what it was + expecting + * Don't expect any particular distribution name for two-part + sources.list entries + * Merge 0.5.18 + + -- Matt Zimmerman Fri, 2 Jan 2004 13:59:00 -0800 + +apt (0.6.11) experimental; urgency=low + + * Support IMS requests of Release.gpg and Release + * This required API changes, bump the libapt-pkg version + * Copy local Release files into Dir::State::Lists + * Set IndexFile attribute when retrieving Release and Release.gpg so + that the appropriate Cache-Control headers are sent + + -- Matt Zimmerman Fri, 2 Jan 2004 10:46:17 -0800 + +apt (0.6.10) experimental; urgency=low + + * Use "Codename" (woody, sarge, etc.) to supply the value of the + "Archive" package file attribute, used to match "release a=" type + pins, rather than "Suite" (stable, testing, etc.) + + -- Matt Zimmerman Thu, 1 Jan 2004 16:56:47 -0800 + +apt (0.6.9) experimental; urgency=low + + * Another tagfile workaround + + -- Matt Zimmerman Thu, 1 Jan 2004 13:56:08 -0800 + +apt (0.6.8) experimental; urgency=low + + * Add a config option and corresponding command line option + (--allow-unauthenticated) to apt-get, to make buildd operators happy + (Closes: #225648) + + -- Matt Zimmerman Wed, 31 Dec 2003 08:28:04 -0800 + +apt (0.6.7) experimental; urgency=low + + * Forgot to revert part of the changes to tagfile in 0.6.4. Hopefully + will fix segfaults for some folks. + + -- Matt Zimmerman Wed, 31 Dec 2003 08:01:28 -0800 + +apt (0.6.6) experimental; urgency=low + + * Restore the ugly hack I removed from indexRecords::Load which set the + pkgTagFile buffer size to (file size)+256. This is concealing a bug, + but I can't fix it right now. This should fix the segfaults that + folks are seeing with 0.6.[45]. + + -- Matt Zimmerman Mon, 29 Dec 2003 18:11:13 -0800 + +apt (0.6.5) experimental; urgency=low + + * Move the authentication check into a separate function in apt-get + * Fix display of unauthenticated packages when they are in the cache + (Closes: #225336) + + -- Matt Zimmerman Sun, 28 Dec 2003 16:47:57 -0800 + +apt (0.6.4) experimental; urgency=low + + * Use the top-level Release file in LoadReleaseInfo, rather than looking + for the per-section ones (which aren't downloaded anymore). This + unbreaks release pinning, including the NotAutomatic bit used by + project/experimental + * Use FileFd::Size() rather than a separate stat() call in + LoadReleaseInfo + * Fix pkgTagFile to leave a little extra room at the end of the buffer + to append the record separator if it isn't present + * Change LoadReleaseInfo to use "Suite" rather than "Archive", to match + the Debian archive's dist-level Release files + + -- Matt Zimmerman Sun, 28 Dec 2003 15:55:55 -0800 + +apt (0.6.3) experimental; urgency=low + + * Fix MetaIndexURI for flat ("foo/") sources + + -- Matt Zimmerman Sun, 28 Dec 2003 12:11:56 -0800 + +apt (0.6.2) experimental; urgency=low + + * Add space between package names when multiple unauthenticated packages + are being installed (Closes: #225212) + * Provide apt-key with a secret keyring and a trustdb, even though we + would never use them, because it blows up if it doesn't have them + * Fix typo in apt-key(8) (standard input is '-', not '/') + + -- Matt Zimmerman Sat, 27 Dec 2003 13:01:40 -0800 + +apt (0.6.1) experimental; urgency=low + + * Merge apt 0.5.17 + * Rearrange Release file authentication code to be more clear + * If Release is present, but Release.gpg is not, don't forget to still + queue Packages files + * Convert distribution "../project/experimental" to "experimental" for + comparison purposes + * Make a number of Release file errors into warnings; for now, it is OK + not to have a codename, for example. We mostly care about checksums + for now + + -- Matt Zimmerman Fri, 26 Dec 2003 15:12:47 -0800 + +apt (0.6.0) experimental; urgency=low + + * Signature verification support patch ("apt-secure") from Colin Walters + and Isaac Jones . This + implements: + - Release signature verification (Release.gpg) + - Packages, Sources md5sum verification against Release + - Closes: #203741 + * Make some modifications to signature verification support: + - Release.gpg is always retrieved and verified if present, rather than + requiring that sources be configured as secure + - Print a hint about installing gnupg if exec(gpgv) fails + - Remove obsolete pkgAcqIndexRel + - Move vendors.list stuff into a separate module (vendorlist.{h,cc}) + - If any files about to be retrieved are not authenticated, issue a + warning to the user and require confirmation + - Fix a heap corruption bug in pkgSrcRecords::pkgSrcRecords() + * Suggests: gnupg + * Install a keyring in /usr/share/apt/debian-archive.gpg containing an + initial set of Debian archive signing keys to seed /etc/apt/trusted.gpg + * Add a new tool, apt-key(8) used to manage the keyring + + -- Matt Zimmerman Fri, 26 Dec 2003 08:27:19 -0800 + apt (0.5.32) hoary; urgency=low * Call setlocale in the methods, so that the messages are properly diff --git a/doc/examples/configure-index b/doc/examples/configure-index index a09ea0c37..dee0c06ff 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -84,6 +84,13 @@ APT Force-LoopBreak "false"; // DO NOT turn this on, see the man page Cache-Limit "4194304"; Default-Release ""; + + + // Write progress messages on this fd (for stuff like base-config) + Status-Fd "-1"; + // Keep the list of FDs open (normally apt closes all fds when it + // does a ExecFork) + Keep-Fds {}; }; // Options for the downloading routines @@ -234,6 +241,7 @@ Debug pkgAcquire "false"; pkgAcquire::Worker "false"; pkgDPkgPM "false"; + pkgDPkgProgressReporting "false"; pkgOrderList "false"; pkgInitialize "false"; // This one will dump the configuration space diff --git a/methods/makefile b/methods/makefile index 089300570..06fd2a6fc 100644 --- a/methods/makefile +++ b/methods/makefile @@ -7,7 +7,7 @@ include ../buildlib/defaults.mak BIN := $(BIN)/methods # FIXME.. -LIB_APT_PKG_MAJOR = 3.5 +LIB_APT_PKG_MAJOR = 3.10 APT_DOMAIN := libapt-pkg$(LIB_APT_PKG_MAJOR) # The file method diff --git a/po/apt-all.pot b/po/apt-all.pot index 53be3fcca..d06c14ce1 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-07-02 11:19-0700\n" +"POT-Creation-Date: 2005-06-06 14:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/test/conf_clear.cc b/test/conf_clear.cc new file mode 100644 index 000000000..259aa0f39 --- /dev/null +++ b/test/conf_clear.cc @@ -0,0 +1,23 @@ +#include +#include + +using namespace std; + +int main(int argc,const char *argv[]) +{ + Configuration Cnf; + + cout << "adding elements" << endl; + Cnf.Set("APT::Keep-Fds::",28); + Cnf.Set("APT::Keep-Fds::",17); + Cnf.Set("APT::Keep-Fds::",47); + Cnf.Dump(); + + cout << "Removing elements" << endl; + Cnf.Clear("APT::Keep-Fds",17); + Cnf.Clear("APT::Keep-Fds",28); + Cnf.Clear("APT::Keep-Fds",47); + Cnf.Dump(); + + return 0; +} diff --git a/test/makefile b/test/makefile index 9ad6233c2..a9dbdc34d 100644 --- a/test/makefile +++ b/test/makefile @@ -38,6 +38,12 @@ LIB_MAKES = apt-pkg/makefile apt-inst/makefile SOURCE = testextract.cc include $(PROGRAM_H) +# Program for testing the config file parser +PROGRAM=conftest_clear +SLIBS = -lapt-pkg +SOURCE = conf_clear.cc +include $(PROGRAM_H) + # Program for testing the config file parser PROGRAM=conftest SLIBS = -lapt-pkg -- cgit v1.2.3-70-g09d2