From f77bf408f3f7ae650bac2a967f28610737acf1ab Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 5 Aug 2005 11:59:11 +0000 Subject: * merged with apt@packages.debian.org/apt--main--0 Patches applied: * 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 * apt@packages.debian.org/apt--main--0--patch-105 Merge from bubulle@debian.org--2005/apt--main--0 * 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 * bubulle@debian.org--2005/apt--main--0--patch-90 Merge with Matt * bubulle@debian.org--2005/apt--main--0--patch-91 Updated Slovak translation * bubulle@debian.org--2005/apt--main--0--patch-92 Add apt-key French man page * bubulle@debian.org--2005/apt--main--0--patch-93 Update Greek translations * bubulle@debian.org--2005/apt--main--0--patch-94 Merge with Matt * bubulle@debian.org--2005/apt--main--0--patch-95 Sync PO files with the POT file/French translation update * 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 --- doc/examples/configure-index | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'doc') 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 -- cgit v1.2.3-70-g09d2 From 5d4aff08accfd096d50d99a24df1437a2fa41c8d Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 23 Aug 2005 17:45:11 +0000 Subject: * merged the trust-cdrom branch Patches applied: * michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0--base-0 tag of apt@packages.debian.org/apt--main--0--patch-79 * michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0--patch-1 * implemented "TrustCDROM" mode * michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0--patch-2 * added APT::Authentication::TrustCDROM to the configure-index --- apt-pkg/deb/debmetaindex.cc | 4 ++++ configure.in | 2 +- debian/changelog | 15 ++++++++------- doc/examples/configure-index | 5 +++++ 4 files changed, 18 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index 526c8c0b2..85e5b16b3 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -165,6 +165,10 @@ bool debReleaseIndex::IsTrusted() const string VerifiedSigFile = _config->FindDir("Dir::State::lists") + URItoFileName(MetaIndexURI("Release")) + ".gpg"; + if(_config->FindB("APT::Authentication::TrustCDROM", false)) + if(URI.substr(0,strlen("cdrom:")) == "cdrom:") + return true; + if (FileExists(VerifiedSigFile)) return true; return false; diff --git a/configure.in b/configure.in index 1ee7e168b..6158933ee 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.2") +AC_DEFINE_UNQUOTED(VERSION,"0.6.40.1ubuntu2") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) diff --git a/debian/changelog b/debian/changelog index 61f5be622..a5f4f11ec 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.6.40.2) unstable; urgency=low +apt (0.6.40.1ubuntu2) breezy; urgency=low * improved the support for "error" and "conffile" reporting from dpkg, added the format to README.progress-reporting @@ -11,14 +11,15 @@ apt (0.6.40.2) unstable; urgency=low * apt-pkg/acquire-item.cc: - fail early if a FailReason is TmpResolveFailure (avoids hangs during the install when no network is available) + * merged michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0 - -- + -- Michael Vogt Tue, 23 Aug 2005 19:44:55 +0200 apt (0.6.40.1ubuntu1) breezy; urgency=low - * Synchronize with Debian + * Synchronize with Debian - -- Michael Vogt Fri, 5 Aug 2005 14:20:56 +0200 + -- Michael Vogt Fri, 5 Aug 2005 14:20:56 +0200 apt (0.6.40.1) unstable; urgency=low @@ -27,13 +28,13 @@ apt (0.6.40.1) unstable; urgency=low 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 + -- Michael Vogt Fri, 5 Aug 2005 13:24:58 +0200 apt (0.6.40ubuntu1) breezy; urgency=low - * Synchronize with Debian + * Synchronize with Debian - -- Matt Zimmerman Thu, 4 Aug 2005 15:53:22 -0700 + -- Matt Zimmerman Thu, 4 Aug 2005 15:53:22 -0700 apt (0.6.40) unstable; urgency=low diff --git a/doc/examples/configure-index b/doc/examples/configure-index index dee0c06ff..a93b74349 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -72,6 +72,11 @@ APT NoAct "false"; }; + Authentication + { + TrustCDROM "false"; // consider the CDROM always trusted + }; + GPGV { TrustedKeyring "/etc/apt/trusted.gpg"; -- cgit v1.2.3-70-g09d2 From 7a6058744badb38d2ccac0158d6ed1359cfb0239 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 8 Dec 2005 17:29:42 +0000 Subject: * merged with the current debian version Patches applied: * bubulle@debian.org--2005/apt--main--0--patch-132 Completed Simplified Chinese translation * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-94 * pkgDirStream has (slightly) better extract support now * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-95 * merge fix for #339533 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-96 * merged with bubulle * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-97 * some more debug output * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-98 * ABI change: merged more flexible pkgAcquireFile code * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-99 * merged http download limit for apt (#146877) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-100 * applied parts of the string speedup patch from debian #319377 (ABI change) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-101 * fix for #340448 --- apt-pkg/acquire-item.cc | 15 +++++++------ apt-pkg/acquire-item.h | 5 +++-- apt-pkg/algorithms.h | 3 ++- apt-pkg/cacheiterators.h | 4 +++- apt-pkg/cdrom.cc | 3 +++ apt-pkg/deb/debsystem.cc | 7 +++++- cmdline/apt-get.cc | 1 + debian/apt.manpages | 1 + debian/rules | 1 + doc/apt-key.8.xml | 47 +++++++++++++++++++++++++++++++++++++---- doc/apt.conf.5.xml | 2 +- doc/fr/apt-config.fr.8.xml | 4 ++-- doc/fr/apt-key.fr.8.xml | 44 +++++++++++++++++++++++++++++++++----- doc/fr/apt_preferences.fr.5.xml | 4 ++-- doc/fr/makefile | 12 +++++++++-- doc/makefile | 3 ++- 16 files changed, 127 insertions(+), 29 deletions(-) (limited to 'doc') diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 09f25c0dd..88c25de43 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -142,20 +142,21 @@ pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner, { Decompression = false; Erase = false; - + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; DestFile += URItoFileName(URI); if(comprExt.empty()) { - // autoselect - if(FileExists("/usr/bin/bzip2")) - Desc.URI = URI + ".bz2"; - else - Desc.URI = URI + ".gz"; + // autoselect the compression method + if(FileExists("/usr/bin/bzip2")) + CompressionExtension = ".bz2"; + else + CompressionExtension = ".gz"; } else { - Desc.URI = URI + comprExt; + CompressionExtension = comprExt; } + Desc.URI = URI + CompressionExtension; Desc.Description = URIDesc; Desc.Owner = this; diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h index 9e7198d8d..c34b5ef69 100644 --- a/apt-pkg/acquire-item.h +++ b/apt-pkg/acquire-item.h @@ -92,7 +92,8 @@ class pkgAcqIndex : public pkgAcquire::Item pkgAcquire::ItemDesc Desc; string RealURI; string ExpectedMD5; - + string CompressionExtension; + public: // Specialized action members @@ -100,7 +101,7 @@ class pkgAcqIndex : public pkgAcquire::Item virtual void Done(string Message,unsigned long Size,string Md5Hash, pkgAcquire::MethodConfig *Cnf); virtual string Custom600Headers(); - virtual string DescURI() {return RealURI + ".gz";}; + virtual string DescURI() {return RealURI + CompressionExtension;}; pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc, string ShortDesct, string ExpectedMD5, string compressExt=""); diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 174a7f58d..b95218061 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -118,7 +118,8 @@ class pkgProblemResolver // Try to resolve problems only by using keep bool ResolveByKeep(); - + + // Install all protected packages void InstallProtect(); pkgProblemResolver(pkgDepCache *Cache); diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 7c6f43351..2b326bd65 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -222,7 +222,7 @@ class pkgCache::PrvIterator void operator ++(int) {if (Prv != Owner->ProvideP) Prv = Owner->ProvideP + (Type == PrvVer?Prv->NextPkgProv:Prv->NextProvides);}; inline void operator ++() {operator ++(0);}; - inline bool end() const {return Prv == Owner->ProvideP?true:false;}; + inline bool end() const {return Owner == 0 || Prv == Owner->ProvideP?true:false;}; // Comparison inline bool operator ==(const PrvIterator &B) const {return Prv == B.Prv;}; @@ -244,6 +244,8 @@ class pkgCache::PrvIterator inline PkgIterator OwnerPkg() {return PkgIterator(*Owner,Owner->PkgP + Owner->VerP[Prv->Version].ParentPkg);}; inline unsigned long Index() const {return Prv - Owner->ProvideP;}; + inline PrvIterator() : Prv(0), Type(PrvVer), Owner(0) {}; + inline PrvIterator(pkgCache &Owner,Provides *Trg,Version *) : Prv(Trg), Type(PrvVer), Owner(&Owner) { diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index d7ef844a2..ce1beb39b 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -422,6 +422,9 @@ bool pkgCdrom::WriteSourceList(string Name,vector &List,bool Source) { F.getline(Buffer,sizeof(Buffer)); CurLine++; + if (F.fail() && !F.eof()) + return _error->Error(_("Line %u too long in source list %s."), + CurLine,File.c_str()); _strtabexpand(Buffer,sizeof(Buffer)); _strstrip(Buffer); diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index 0b3a4f742..2d805ea6f 100644 --- a/apt-pkg/deb/debsystem.cc +++ b/apt-pkg/deb/debsystem.cc @@ -164,7 +164,12 @@ bool debSystem::Initialize(Configuration &Cnf) Cnf.CndSet("Dir::State::userstatus","status.user"); // Defunct Cnf.CndSet("Dir::State::status","/var/lib/dpkg/status"); Cnf.CndSet("Dir::Bin::dpkg","/usr/bin/dpkg"); - + + if (StatusFile) { + delete StatusFile; + StatusFile = 0; + } + return true; } /*}}}*/ diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 356d36b48..48b21a31f 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2040,6 +2040,7 @@ bool DoSource(CommandLine &CmdL) if (system(S) != 0) { fprintf(stderr,_("Unpack command '%s' failed.\n"),S); + fprintf(stderr,_("Check if the 'dpkg-dev' package is installed.\n")); _exit(1); } } diff --git a/debian/apt.manpages b/debian/apt.manpages index e621e1c49..b52ea3d3d 100644 --- a/debian/apt.manpages +++ b/debian/apt.manpages @@ -3,6 +3,7 @@ doc/apt-cdrom.8 doc/apt-config.8 doc/apt-get.8 doc/apt-key.8 +doc/apt-secure.8 doc/apt.8 doc/apt.conf.5 doc/apt_preferences.5 diff --git a/debian/rules b/debian/rules index 1e339aade..6c0a24fd9 100755 --- a/debian/rules +++ b/debian/rules @@ -274,6 +274,7 @@ apt-utils: build debian/shlibs.local cp $(addprefix $(BLD)/bin/apt-,$(APT_UTILS)) debian/$@/usr/bin/ dh_installdocs -p$@ + dh_installexamples -p$@ # Install the man pages.. dh_installman -p$@ diff --git a/doc/apt-key.8.xml b/doc/apt-key.8.xml index 62686618a..eac61307d 100644 --- a/doc/apt-key.8.xml +++ b/doc/apt-key.8.xml @@ -68,17 +68,56 @@ List trusted keys. + + + update + + + + Update the local keyring with the keyring of Debian archive + keys and removes from the keyring the archive keys which are no + longer valid. + + + + + + + + + Files + + /etc/apt/trusted.gpg + Keyring of local trusted keys, new keys will be added here. + + + /etc/apt/trustdb.gpg + Local trust database of archive keys. + + + /usr/share/keyrings/debian-archive-keyring.gpg + Keyring of Debian archive trusted keys. + + + /usr/share/keyrings/debian-archive-removed-keys.gpg + Keyring of Debian archive removed trusted keys. + + + + + - - - - +See Also + +&apt-get;, &apt-secure; + + &manbugs; &manauthor; diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 69e212243..43f33681f 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -284,7 +284,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; sourcelist gives the location of the sourcelist and main is the default configuration file (setting has no effect, unless it is done from the config file specified by - APT_CONFIG. + APT_CONFIG). The Dir::Parts setting reads in all the config fragments in lexical order from the directory specified. After this is done then the diff --git a/doc/fr/apt-config.fr.8.xml b/doc/fr/apt-config.fr.8.xml index ac9143066..043c58686 100644 --- a/doc/fr/apt-config.fr.8.xml +++ b/doc/fr/apt-config.fr.8.xml @@ -57,7 +57,7 @@ des commandes suivantes doit Le terme shell est utilisé pour accéder aux informations de configuration depuis un script shell. Deux arguments doivent lui être donnés ; le -premier est une variable de shell et le second une valeur de configuration à +premier est une variable du shell et le second une valeur de configuration à demander. La sortie standard consiste en une liste de commandes d'assignation de shell pour chaque valeur présente. Dans un script shell, cette commande devrait @@ -69,7 +69,7 @@ RES=`apt-config shell OPTS MyApp::Options` eval $RES -La variable d'environnement de shell $OPTS sera définie par la valeur de +La variable d'environnement du shell $OPTS sera définie par la valeur de MyApp::Options ou, par défaut, la valeur -f. diff --git a/doc/fr/apt-key.fr.8.xml b/doc/fr/apt-key.fr.8.xml index a31fb7855..29ba237e2 100644 --- a/doc/fr/apt-key.fr.8.xml +++ b/doc/fr/apt-key.fr.8.xml @@ -34,7 +34,7 @@ apt-key gère les clés dont se sert apt pour authentifier les paquets. Les paquets authentifiés par ces clés seront -réputés +réputés fiables. @@ -73,13 +73,47 @@ Afficher la liste des cl + + update + + +Mettre à jour le trousseau de clés local avec le trousseau de clés de l'archive +Debian et supprimer les clés qui sont périmées. + + + + - - - - + Fichiers + + /etc/apt/trusted.gpg +Trousseau de clés locales fiables, les nouvelles clés sont ajoutées ici. + + + + /etc/apt/trustdb.gpg + Base de données locale fiable des clés de l'archive. + + + /usr/share/keyrings/debian-archive-keyring.gpg + Trousseau des clés fiables de l'archive Debian. + + + /usr/share/keyrings/debian-archive-removed-keys.gpg + + >Trousseau des clés fiables supprimées de l'archive Debian. + + + + + +Voir aussi + +&apt-get;, &apt-secure; + + &manbugs; &manauthor; diff --git a/doc/fr/apt_preferences.fr.5.xml b/doc/fr/apt_preferences.fr.5.xml index c6b2c8794..6e1d2043e 100644 --- a/doc/fr/apt_preferences.fr.5.xml +++ b/doc/fr/apt_preferences.fr.5.xml @@ -7,7 +7,7 @@ ]> - + &apt-author.team; @@ -208,7 +208,7 @@ d' Package: * Pin: release a=unstable -Pin-Priority: 50 +Pin-Priority: 500 L'entrée suivante affecte une priorité haute à toutes les versions diff --git a/doc/fr/makefile b/doc/fr/makefile index c0e7fa7ed..596de7b09 100644 --- a/doc/fr/makefile +++ b/doc/fr/makefile @@ -5,11 +5,16 @@ SUBDIR=doc/fr # Bring in the default rules include ../../buildlib/defaults.mak +# Do not use XMLTO, build the manpages directly with XSLTPROC +XSLTPROC=/usr/bin/xsltproc +STYLESHEET=/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl + + # 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-key.fr.8 + apt-key.fr.8 apt-secure.fr.8 INCLUDES = apt.ent.fr @@ -17,7 +22,7 @@ doc: $(SOURCE) $(SOURCE) :: % : %.xml $(INCLUDES) echo Creating man page $@ - $(XMLTO) man $< + $(XSLTPROC) -o $@ $(STYLESHEET) $< apt-cache.fr.8:: apt-cache.8 cp $< $@ @@ -52,4 +57,7 @@ apt-extracttemplates.fr.1:: apt-extracttemplates.1 apt-key.fr.8:: apt-key.8 cp $< $@ +apt-secure.fr.8:: apt-secure.8 + cp $< $@ + diff --git a/doc/makefile b/doc/makefile index f34b3f6e5..31ee061fb 100644 --- a/doc/makefile +++ b/doc/makefile @@ -14,7 +14,8 @@ include $(DEBIANDOC_H) # XML man pages SOURCE = apt-cache.8 apt-get.8 apt-cdrom.8 apt.conf.5 sources.list.5 \ apt-config.8 apt_preferences.5 \ - apt-sortpkgs.1 apt-ftparchive.1 apt-extracttemplates.1 apt-key.8 + apt-sortpkgs.1 apt-ftparchive.1 apt-extracttemplates.1 \ + apt-key.8 apt-secure.8 INCLUDES = apt.ent include $(XML_MANPAGE_H) -- cgit v1.2.3-70-g09d2 From 6ae94f7bfb83615bb5c8dc445290ed9aaa9b1583 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 8 Dec 2005 17:32:04 +0000 Subject: * more missing bits from the last merge --- doc/apt.ent | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ doc/fr/apt.ent.fr | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) (limited to 'doc') diff --git a/doc/apt.ent b/doc/apt.ent index 8054a25f6..cf22df6d2 100644 --- a/doc/apt.ent +++ b/doc/apt.ent @@ -44,6 +44,25 @@ " > + + apt-key + 8 + " +> + + + apt-secure + 8 + " +> + + + apt-archive + 1 + " +> + + sources.list 5 @@ -91,6 +110,36 @@ 8 " > + + + aptitude + 8 + " +> + + + synaptic + 8 + " +> + + + debsign + 1 + " +> + + + debsig-verify + 1 + " +> + + + gpg + 1 + " +> 5 "> + + apt-key + 8 + " +> + + + apt-secure + 8 + " +> + + + apt-archive + 1 + " +> + sources.list 5 @@ -89,6 +107,36 @@ 8 "> + + aptitude + 8 + " +> + + + synaptic + 8 + " +> + + + debsign + 1 + " +> + + + debsig-verify + 1 + " +> + + + gpg + 1 + " +> + -- cgit v1.2.3-70-g09d2 From dd3ee0ced482fcd3533e0e5b113bb575fe7a7633 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 8 Dec 2005 17:36:41 +0000 Subject: * added the apt-secure manpage --- debian/changelog | 7 ++ doc/apt-secure.8.xml | 209 +++++++++++++++++++++++++++++++++++++++++++ doc/fr/apt-secure.fr.8.xml | 217 +++++++++++++++++++++++++++++++++++++++++++++ po/apt-all.pot | 2 +- po/bs.po | 2 +- po/ca.po | 2 +- po/cs.po | 2 +- po/da.po | 2 +- po/de.po | 2 +- po/el.po | 2 +- po/en_GB.po | 2 +- po/es.po | 2 +- po/eu.po | 2 +- po/fi.po | 2 +- po/fr.po | 2 +- po/he.po | 2 +- po/hu.po | 2 +- po/it.po | 2 +- po/ja.po | 2 +- po/ko.po | 2 +- po/nb.po | 2 +- po/nl.po | 2 +- po/nn.po | 2 +- po/pl.po | 2 +- po/pt.po | 2 +- po/pt_BR.po | 2 +- po/ro.po | 2 +- po/ru.po | 2 +- po/sk.po | 2 +- po/sl.po | 2 +- po/sv.po | 2 +- po/tl.po | 2 +- po/zh_CN.po | 2 +- po/zh_TW.po | 2 +- 34 files changed, 464 insertions(+), 31 deletions(-) create mode 100644 doc/apt-secure.8.xml create mode 100644 doc/fr/apt-secure.fr.8.xml (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index 16fdd1596..d57825909 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.6.43ubuntu2) dapper; urgency=low + + * merged some missing bits that where dropped by the previous + merge (*cough*) + + -- Michael Vogt Thu, 8 Dec 2005 18:35:58 +0100 + apt (0.6.43ubuntu1) dapper; urgency=low * merged with debian diff --git a/doc/apt-secure.8.xml b/doc/apt-secure.8.xml new file mode 100644 index 000000000..e22446030 --- /dev/null +++ b/doc/apt-secure.8.xml @@ -0,0 +1,209 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-secure + 8 + + + + + + + + + apt-secure + Archive authentication support for APT + + + Description + + Starting with version 0.6, apt contains code + that does signature checking of the Release file for all + archives. This ensures that packages in the archive can't be + modified by people who have no access to the Release file signing + key. + + + + If a package comes from a archive without a signature or with a + signature that apt does not have a key for that package is + considered untrusted and installing it will result in a big + warning. apt-get will currently only warn + for unsigned archives, future releases might force all sources + to be verified before downloading packages from them. + + + + The package frontends &apt-get;, &aptitude; and &synaptic; support this new + authentication feature. + + + + Trusted archives + + + The chain of trust from an apt archive to the end user is made up of + different steps. apt-secure is the last step in + this chain, trusting an archive does not mean that the packages + that you trust it do not contain malicious code but means that you + trust the archive maintainer. Its the archive maintainer + responsibility to ensure that the archive integrity is correct. + + + apt-secure does not review signatures at a + package level. If you require tools to do this you should look at + debsig-verify and + debsign (provided in the debsig-verify and + devscripts packages respectively). + + + The chain of trust in Debian starts when a maintainer uploads a new + package or a new version of a package to the Debian archive. This + upload in order to become effective needs to be signed by a key of + a maintainer within the Debian maintainer's keyring (available in + the debian-keyring package). Maintainer's keys are signed by + other maintainers following pre-established procedures to + ensure the identity of the key holder. + + + + Once the uploaded package is verified and included in the archive, + the maintainer signature is stripped off, an MD5 sum of the package + is computed and put in the Packages file. The MD5 sum of all of the + packages files are then computed and put into the Release file. The + Release file is then signed by the archive key (which is created + once a year and distributed through the FTP server. This key is + also on the Debian keyring. + + + + Any end user can check the signature of the Release file, extract the MD5 + sum of a package from it and compare it with the MD5 sum of the + package he downloaded. Prior to version 0.6 only the MD5 sum of the + downloaded Debian package was checked. Now both the MD5 sum and the + signature of the Release file are checked. + + + Notice that this is distinct from checking signatures on a + per package basis. It is designed to prevent two possible attacks: + + + + Network "man in the middle" + attacks. Without signature checking, a malicious + agent can introduce himself in the package download process and + provide malicious software either by controlling a network + element (router, switch, etc.) or by redirecting traffic to a + rogue server (through arp or DNS spoofing + attacks). + + Mirror network compromise. + Without signature checking, a malicious agent can compromise a + mirror host and modify the files in it to propage malicious + software to all users downloading packages from that + host. + + + However, it does not defend against a compromise of the + Debian master server itself (which signs the packages) or against a + compromise of the key used to sign the Release files. In any case, + this mechanism can complement a per-package signature. + + + User configuration + + apt-key is the program that manages the list + of keys used by apt. It can be used to add or remove keys although + an installation of this release will automatically provide the + default Debian archive signing keys used in the Debian package + repositories. + + + In order to add a new key you need to first download it + (you should make sure you are using a trusted communication channel + when retrieving it), add it with apt-key and + then run apt-get update so that apt can download + and verify the Release.gpg files from the archives you + have configured. + + + +Archive configuration + + If you want to provide archive signatures in an archive under your + maintenance you have to: + + + + Create a toplevel Release + file. if it does not exist already. You can do this + by running apt-ftparchive release + (provided inftp apt-utils). + + Sign it. You can do this by running + gpg -abs -o Release.gpg Release. + + Publish the key fingerprint, + that way your users will know what key they need to import in + order to authenticate the files in the + archive. + + + + Whenever the contents of the archive changes (new packages + are added or removed) the archive maintainer has to follow the + first two steps previously outlined. + + + +See Also + +&apt-conf;, &apt-get;, &sources-list;, &apt-key;, &apt-archive;, +&debsign; &debsig-verify;, &gpg; + + +For more backgound information you might want to review the +Debian +Security Infrastructure chapter of the Securing Debian Manual +(available also in the harden-doc package) and the +Strong Distribution HOWTO by V. Alex Brennen. + + + + &manbugs; + &manauthor; + +Manpage Authors + +This man-page is based on the work of Javier Fernández-Sanguino +Peña, Isaac Jones, Colin Walters, Florian Weimer and Michael Vogt. + + + + + + + diff --git a/doc/fr/apt-secure.fr.8.xml b/doc/fr/apt-secure.fr.8.xml new file mode 100644 index 000000000..5cec9a49d --- /dev/null +++ b/doc/fr/apt-secure.fr.8.xml @@ -0,0 +1,217 @@ + + +%aptent; + +]> + + + &apt-docinfo; + + + apt-secure + 8 + + + + + + + + + apt-secure + Certification d'archive avec APT + + + Description + + Depuis sa version 0.6, apt sait vérifier +la signature du fichier Release de chaque archive. On s'assure ainsi que les +paquets de cette archive ne peuvent pas être modifiés par quelqu'un qui ne +possède pas la clé de la signature du fichier Release. + + + + Quand un paquet provient d'une archive sans signature ou d'une archive avec +une signature dont apt ne possède pas la clé, ce paquet n'est pas considéré +comme fiable et son installation provoquera un avertissement. Pour +l'instant, apt-get ne signale que les archives sans +signature ; les prochaines versions pourraient rendre obligatoire la +vérification des sources avant tout téléchargement de paquet. + + + + Les paquets &apt-get;, &aptitude; et &synaptic; possèdent cette nouvelle +fonction de certification. + + + + + Archives fiables + + + D'une archive apt jusqu'à l'utilisateur, la confiance se construit en +plusieurs étapes. Apt-secure est la dernière étape. Faire +confiance à une archive ne signifie pas que les paquets qu'elle contient +sont exempts de code malveillant, mais signifie que vous faites confiance au +responsable de l'archive. C'est ensuite au responsable de l'archive de faire +en sorte que l'archive soit fiable. + + + + Apt-secure n'examine pas la signature d'un +paquet. Certains programmes peuvent le faire comme +debsig-verify ou debsign, qu'on peut +trouver dans les paquets debsig-verify et devscripts. + + + + La fiabilisation dans Debian commence quand un responsable de paquet envoie +un nouveau paquet ou une nouvelle version d'un paquet dans l'archive. Cet +envoi, pour être effectif, doit être signé avec la clé d'un responsable qui +se trouve dans le trousseau des responsables Debian (disponible dans le +paquet debian-keyring). Les clés des responsables de paquet sont signées par +d'autres responsables, suivant des procédures préétablies pour s'assurer de +l'identité des propriétaires de la clé. + + + + + Une fois le paquet vérifié et archivé, la signature du responsable est +enlevée, une somme MD5 du paquet est calculée et mise dans le fichier +Packages. Une somme MD5 de tous les paquets est ensuite calculée et mise +dans le fichier Release. Ce fichier est signé par la clé de l'archive. Cette +clé qui est créée chaque année et distribuée par le serveur FTP se trouve +aussi dans le trousseau Debian. + + + + + Un utilisateur peut consulter la signature du fichier Release, extraire la +somme MD5 d'un paquet et la comparer avec la somme du paquet qu'il a +téléchargé. Avant la version 0.6, seule la somme du paquet téléchargé était +vérifiée. Maintenant on peut vérifier aussi la signature du fichier Release. + + + + Cette façon de faire est différente d'une vérification de la signature d'un +paquet. Elle vise à empêcher deux types d'attaque possibles : + + + + + +L'attaque de type homme au milieu. Sans vérification de +signature, quelqu'un de malveillant peut s'introduire au milieu du +processus de téléchargement et insérer du code soit en contrôlant un élément +du réseau, routeur, commutateur, etc. soit en détournant le trafic vers un +serveur fourbe (par usurpation d'adresses). + + + +L'attaque par compromission d'un miroir sur le réseau. Sans vérification de +signature, quelqu'un de malveillant peut compromettre un miroir et modifier +les fichiers. Ainsi tous ceux qui téléchargent les paquets de ce miroir +propagent du code malveillant. + + + + +Cependant cette méthode ne garantit pas contre une compromission du serveur +Debian lui-même (qui signe les paquets) ni contre la compromission de la clé +qui sert à signer les fichiers Release. Mais elle peut compléter la +signature des paquets. + + + + Configuration + + Le programme qui gère la liste des clés utilisées par apt s'appelle +apt-key. Il peut ajouter ou supprimer des clés. Cette +version installe automatiquement les clés qui servent à signer l'archive +Debian et les différents répertoires de paquets. + + + + Pour ajouter une clé, vous devez d'abord la télécharger. Il vaut mieux +utiliser un canal fiable pour ce téléchargement. Ensuite vous l'ajoutez avec +la commande apt-key et vous lancez la commande +apt-get update pour télécharger et vérifier le fichier +Release.gpg de l'archive que vous avez configurée. + + + + +Configuration d'une archive + + Si vous voulez signer les archives dont vous avez la responsabilité, vous +devez : + + + + + créer un fichier Release à la racine de l'archive, s'il n'existe pas +déjà. Vous pouvez le créer avec la commande apt-ftparchive release +(fournie dans le paquet apt-utils) ; + + + +le signer, avec la commande gpg -abs -o Release.gpg Release ; + + + +publier l'empreinte de la clé. Ainsi les utilisateurs de votre archive +connaîtront la clé qu'ils doivent importer pour authentifier les fichiers de +l'archive. + + + + + Chaque fois que le contenu de l'archive change, le responsable doit refaire +les deux premières étapes. + + + + +Voir aussi + +&apt-conf;, &apt-get;,&sources-list;, &apt-key;, &apt-archive;, &debsign;, +&debsig-verify;, &gpg; + + + +Pour des informations plus substantielles, vous pouvez consulter + +l'infrastructure debian pour la sécurité un chapitre du manuel Debian sur la sécurité +(disponible dans le paquet harden-doc) et le +Strong Distribution HOWTO par V. Alex Brennen. + + + + + &manbugs; + &manauthor; + +Auteurs + + +Cette page a été écrite à partir des travaux de Javier Fernández-Sanguino Peña, Isaac +Jones, Colin Walters, Florian Weimer et Michael Vogt. + + +&traducteur; + + diff --git a/po/apt-all.pot b/po/apt-all.pot index f474c6a41..ffd5f03cd 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-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/po/bs.po b/po/bs.po index b928190a8..889316194 100644 --- a/po/bs.po +++ b/po/bs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2004-05-06 15:25+0100\n" "Last-Translator: Safir Å ećerović \n" "Language-Team: Bosnian \n" diff --git a/po/ca.po b/po/ca.po index bd1f47988..db478c783 100644 --- a/po/ca.po +++ b/po/ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-07-19 01:31+0200\n" "Last-Translator: Jordi Mallach \n" "Language-Team: Catalan \n" diff --git a/po/cs.po b/po/cs.po index d7ccea80c..732b33f41 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-11 16:14+0100\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" diff --git a/po/da.po b/po/da.po index 54fbdc88b..3886c18c1 100644 --- a/po/da.po +++ b/po/da.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt-da\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-11-07 15:28+0100\n" "Last-Translator: Claus Hindsgaul \n" "Language-Team: Danish \n" diff --git a/po/de.po b/po/de.po index a28e3d9ca..0b6dfd3f4 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-06-15 18:22+0200\n" "Last-Translator: Michael Piefel \n" "Language-Team: \n" diff --git a/po/el.po b/po/el.po index 91b6a09f5..b1b749377 100644 --- a/po/el.po +++ b/po/el.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_el\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-07-14 14:25EEST\n" "Last-Translator: Greek Translation Team \n" diff --git a/po/en_GB.po b/po/en_GB.po index a8fee4742..8e78fd1db 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2002-11-10 20:56+0100\n" "Last-Translator: Michael Piefel \n" "Language-Team: en_GB \n" diff --git a/po/es.po b/po/es.po index fcc69804c..660505f2c 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.24\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-08 20:36+0100\n" "Last-Translator: Rubén Porras Campo \n" "Language-Team: Spanish \n" diff --git a/po/eu.po b/po/eu.po index 42fcecc3b..6b4f774a6 100644 --- a/po/eu.po +++ b/po/eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_eu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-11-07 22:37+0100\n" "Last-Translator: Piarres Beobide \n" "Language-Team: librezale.org \n" diff --git a/po/fi.po b/po/fi.po index 2388bf637..0fafcc375 100644 --- a/po/fi.po +++ b/po/fi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.26\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-15 14:09+0200\n" "Last-Translator: Tapio Lehtonen \n" "Language-Team: Finnish \n" diff --git a/po/fr.po b/po/fr.po index f37e66292..d0dcd7aa3 100644 --- a/po/fr.po +++ b/po/fr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-11-01 18:16+0100\n" "Last-Translator: Christian Perrier \n" "Language-Team: French \n" diff --git a/po/he.po b/po/he.po index 07848e46a..570e0ee93 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.25\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2004-06-10 19:58+0300\n" "Last-Translator: Lior Kaplan \n" "Language-Team: Hebrew\n" diff --git a/po/hu.po b/po/hu.po index 731863ed4..e62e5e651 100644 --- a/po/hu.po +++ b/po/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: hu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-15 18:03+0100\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" diff --git a/po/it.po b/po/it.po index 7aeeec87b..99e576c1f 100644 --- a/po/it.po +++ b/po/it.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-10-05 17:38+0200\n" "Last-Translator: Samuele Giovanni Tonon \n" "Language-Team: Italian \n" diff --git a/po/ja.po b/po/ja.po index 2feec2ce8..5999f497f 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-09 12:54+0900\n" "Last-Translator: Kenshi Muto \n" "Language-Team: Debian Japanese List \n" diff --git a/po/ko.po b/po/ko.po index 23827460b..bf7c64df2 100644 --- a/po/ko.po +++ b/po/ko.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-10 21:56+0900\n" "Last-Translator: Changwoo Ryu \n" "Language-Team: Korean \n" diff --git a/po/nb.po b/po/nb.po index 34cfc1d6e..d2a2ea08b 100644 --- a/po/nb.po +++ b/po/nb.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-09 10:45+0100\n" "Last-Translator: Hans Fredrik Nordhaug \n" "Language-Team: Norwegian Bokmål \n" diff --git a/po/nl.po b/po/nl.po index 3dc814ea2..adb5a01ed 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-10 17:35+0100\n" "Last-Translator: Bart Cornelis \n" "Language-Team: debian-l10n-dutch \n" diff --git a/po/nn.po b/po/nn.po index f57bba2af..2af28c5b4 100644 --- a/po/nn.po +++ b/po/nn.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_nn\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-14 23:30+0100\n" "Last-Translator: Håvard Korsvoll \n" "Language-Team: Norwegian nynorsk \n" diff --git a/po/pl.po b/po/pl.po index 54e94c641..4676dd45f 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-11 11:47+0100\n" "Last-Translator: Bartosz Fenski \n" "Language-Team: Polish \n" diff --git a/po/pt.po b/po/pt.po index af44e7f15..af1b7802c 100644 --- a/po/pt.po +++ b/po/pt.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-03-07 22:20+0000\n" "Last-Translator: Miguel Figueiredo \n" "Language-Team: Portuguese \n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 54946a2c4..1e9fb41b3 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-06-16 10:24-0300\n" "Last-Translator: André Luís Lopes \n" "Language-Team: Debian-BR Project \n" diff --git a/po/ro.po b/po/ro.po index 9497f70b2..678ec452b 100644 --- a/po/ro.po +++ b/po/ro.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_ro\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-08-25 17:43+0300\n" "Last-Translator: Sorin Batariuc \n" "Language-Team: Romanian \n" diff --git a/po/ru.po b/po/ru.po index a9921de46..e15923d3d 100644 --- a/po/ru.po +++ b/po/ru.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: apt_po_ru\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-10-22 12:24+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" diff --git a/po/sk.po b/po/sk.po index 451d2379e..9b3499899 100644 --- a/po/sk.po +++ b/po/sk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-07-01 09:34+0200\n" "Last-Translator: Peter Mann \n" "Language-Team: Slovak \n" diff --git a/po/sl.po b/po/sl.po index 92fbaaa4a..1fb62b0d1 100644 --- a/po/sl.po +++ b/po/sl.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-16 22:18+0100\n" "Last-Translator: Jure Èuhalev \n" "Language-Team: Slovenian \n" diff --git a/po/sv.po b/po/sv.po index b0d1e03ac..5b8e8e25f 100644 --- a/po/sv.po +++ b/po/sv.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-11-02 23:56+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" diff --git a/po/tl.po b/po/tl.po index 18f664faf..32fe10795 100644 --- a/po/tl.po +++ b/po/tl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-11-03 03:35+0800\n" "Last-Translator: Eric Pareja \n" "Language-Team: Tagalog \n" diff --git a/po/zh_CN.po b/po/zh_CN.po index 6501190a1..0ecf15e24 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: apt 0.5.23\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-11-15 00:05+0800\n" "Last-Translator: Tchaikov \n" "Language-Team: Debian Chinese [GB] \n" diff --git a/po/zh_TW.po b/po/zh_TW.po index f405147f8..eb278a238 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.5.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-11-23 00:39+0100\n" +"POT-Creation-Date: 2005-12-08 18:35+0100\n" "PO-Revision-Date: 2005-02-19 22:24+0800\n" "Last-Translator: Asho Yeh \n" "Language-Team: Chinese/Traditional \n" -- cgit v1.2.3-70-g09d2 From 0f3579bce9bd81a91a6ec8f41051f13fa668cb7b Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 8 Dec 2005 17:47:27 +0000 Subject: * add more missing bits from debians apt --- configure.in | 3 --- debian/apt-utils.examples | 1 + doc/examples/apt-ftparchive.conf | 46 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 debian/apt-utils.examples create mode 100644 doc/examples/apt-ftparchive.conf (limited to 'doc') diff --git a/configure.in b/configure.in index 8b2a301e0..a0c7cdd9d 100644 --- a/configure.in +++ b/configure.in @@ -181,9 +181,6 @@ AC_PATH_PROG(DOCBOOK2MAN,docbook2man) dnl Check for the XML tools needed to build man pages AC_PATH_PROG(XMLTO,xmlto) -dnl Check for the XML tools needed to build man pages -AC_PATH_PROG(XMLTO,xmlto) - dnl Check for YODL dnl AC_CHECK_PROG(YODL_MAN,yodl2man,"yes","") diff --git a/debian/apt-utils.examples b/debian/apt-utils.examples new file mode 100644 index 000000000..25aadf996 --- /dev/null +++ b/debian/apt-utils.examples @@ -0,0 +1 @@ +doc/examples/apt-ftparchive.conf \ No newline at end of file diff --git a/doc/examples/apt-ftparchive.conf b/doc/examples/apt-ftparchive.conf new file mode 100644 index 000000000..657ec5440 --- /dev/null +++ b/doc/examples/apt-ftparchive.conf @@ -0,0 +1,46 @@ +// This config is for use with the pool-structure for the packages, thus we +// don't use a Tree Section in here + +// The debian archive should be in the current working dir +Dir { + ArchiveDir "."; + CacheDir "."; +}; + +// Create Packages, Packages.gz and Packages.bz2, remove what you don't need +Default { + Packages::Compress ". gzip bzip2"; + Sources::Compress ". gzip bzip2"; + Contents::Compress ". gzip bzip2"; +}; + +// Includes the main section. You can structure the directory tree under +// ./pool/main any way you like, apt-ftparchive will take any deb (and +// source package) it can find. This creates a Packages a Sources and a +// Contents file for these in the main section of the sid release +BinDirectory "pool/main" { + Packages "dists/sid/main/binary-i386/Packages"; + SrcPackages "dists/sid/main/source/Sources"; + Contents "dists/sid/Contents-i386"; +} + +// This is the same for the contrib section +BinDirectory "pool/contrib" { + Packages "dists/sid/contrib/binary-i386/Packages"; + SrcPackages "dists/sid/contrib/source/Sources"; + Contents "dists/sid/Contents-i386"; +} + +// This is the same for the non-free section +BinDirectory "pool/non-free" { + Packages "dists/sid/non-free/binary-i386/Packages"; + SrcPackages "dists/sid/non-free/source/Sources"; + Contents "dists/sid/Contents-i386"; +}; + +// By default all Packages should have the extension ".deb" +Default { + Packages { + Extensions ".deb"; + }; +}; -- cgit v1.2.3-70-g09d2 From 308c7d30ed2e937cde65e5fed8cbf717fba113c3 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 25 Aug 2006 15:39:15 +0100 Subject: initial Breaks implementation --- apt-pkg/algorithms.cc | 23 +- apt-pkg/deb/deblistparser.cc | 3 + apt-pkg/depcache.cc | 40 ++- apt-pkg/orderlist.cc | 17 +- apt-pkg/pkgcache.cc | 9 +- apt-pkg/pkgcache.h | 6 +- apt-pkg/tagfile.cc | 1 + cmdline/apt-cache.cc | 10 +- debian/changelog | 7 + doc/apt-cache.8.xml | 2 +- doc/cache.sgml | 3 +- doc/dpkg-tech.sgml | 2 + po/apt-all.pot | 760 ++++++++++++++----------------------------- 13 files changed, 344 insertions(+), 539 deletions(-) (limited to 'doc') diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index ac9d3be0b..f50c52a32 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -102,6 +102,7 @@ bool pkgSimulate::Install(PkgIterator iPkg,string /*File*/) DepIterator End; D.GlobOr(Start,End); if (Start->Type == pkgCache::Dep::Conflicts || + Start->Type == pkgCache::Dep::DpkgBreaks || Start->Type == pkgCache::Dep::Obsoletes || End->Type == pkgCache::Dep::PreDepends) { @@ -151,6 +152,8 @@ bool pkgSimulate::Configure(PkgIterator iPkg) cout << " Obsoletes:" << D.TargetPkg().Name(); else if (D->Type == pkgCache::Dep::Conflicts) cout << " Conflicts:" << D.TargetPkg().Name(); + else if (D->Type == pkgCache::Dep::DpkgBreaks) + cout << " Breaks:" << D.TargetPkg().Name(); else cout << " Depends:" << D.TargetPkg().Name(); } @@ -651,6 +654,7 @@ bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg) /* We let the algorithm deal with conflicts on its next iteration, it is much smarter than us */ if (Start->Type == pkgCache::Dep::Conflicts || + Start->Type == pkgCache::Dep::DpkgBreaks || Start->Type == pkgCache::Dep::Obsoletes) break; @@ -873,6 +877,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) SPtrArray VList = Start.AllTargets(); if (*VList == 0 && (Flags[I->ID] & Protected) != Protected && Start->Type != pkgCache::Dep::Conflicts && + Start->Type != pkgCache::Dep::DpkgBreaks && Start->Type != pkgCache::Dep::Obsoletes && Cache[I].NowBroken() == false) { @@ -903,6 +908,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) if (Scores[I->ID] <= Scores[Pkg->ID] || ((Cache[Start] & pkgDepCache::DepNow) == 0 && End->Type != pkgCache::Dep::Conflicts && + End->Type != pkgCache::Dep::DpkgBreaks && End->Type != pkgCache::Dep::Obsoletes)) { // Try a little harder to fix protected packages.. @@ -968,7 +974,21 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) (Start->Type == pkgCache::Dep::Conflicts || Start->Type == pkgCache::Dep::Obsoletes)) continue; - + + if (Start->Type == pkgCache::Dep::DpkgBreaks) + { + /* Would it help if we upgraded? */ + if (Cache[End] & pkgDepCache::DepGCVer) { + if (Debug) + clog << " Upgrading " << Pkg.Name() << " due to Breaks field in " << I.Name() << endl; + Cache.MarkInstall(Pkg, false, 0, false); + continue; + } + if (Debug) + clog << " Will not break " << Pkg.Name() << " as stated in Breaks field in " << I.Name() <ID] & Protected) != 0) continue; @@ -989,6 +1009,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) // Hm, nothing can possibly satisify this dep. Nuke it. if (VList[0] == 0 && Start->Type != pkgCache::Dep::Conflicts && + Start->Type != pkgCache::Dep::DpkgBreaks && Start->Type != pkgCache::Dep::Obsoletes && (Flags[I->ID] & Protected) != Protected) { diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index c2b26b5eb..074abea6d 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -105,6 +105,8 @@ bool debListParser::NewVersion(pkgCache::VerIterator Ver) return false; if (ParseDepends(Ver,"Conflicts",pkgCache::Dep::Conflicts) == false) return false; + if (ParseDepends(Ver,"Breaks",pkgCache::Dep::DpkgBreaks) == false) + return false; if (ParseDepends(Ver,"Replaces",pkgCache::Dep::Replaces) == false) return false; @@ -193,6 +195,7 @@ unsigned short debListParser::VersionHash() // "Suggests", // "Recommends", "Conflicts", + "Breaks", "Replaces",0}; unsigned long Result = INIT_FCS; char S[1024]; diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 78c929d62..4d193dc2e 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -273,7 +273,7 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res) we allow it anyhow because dpkg does. Technically it is a packaging bug. Conflicts may never self match */ if (Dep.TargetPkg() != Dep.ParentPkg() || - (Dep->Type != Dep::Conflicts && Dep->Type != Dep::Obsoletes)) + (Dep->Type != Dep::Conflicts && Dep->Type != Dep::DpkgBreaks && Dep->Type != Dep::Obsoletes)) { PkgIterator Pkg = Dep.TargetPkg(); // Check the base package @@ -303,7 +303,8 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res) { /* Provides may never be applied against the same package if it is a conflicts. See the comment above. */ - if (P.OwnerPkg() == Pkg && Dep->Type == Dep::Conflicts) + if (P.OwnerPkg() == Pkg && + (Dep->Type == Dep::Conflicts || Dep->Type == Dep::DpkgBreaks)) continue; // Check if the provides is a hit @@ -457,7 +458,9 @@ void pkgDepCache::BuildGroupOrs(VerIterator const &V) /* Invert for Conflicts. We have to do this twice to get the right sense for a conflicts group */ - if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + if (D->Type == Dep::Conflicts || + D->Type == Dep::DpkgBreaks || + D->Type == Dep::Obsoletes) State = ~State; // Add to the group if we are within an or.. @@ -468,7 +471,9 @@ void pkgDepCache::BuildGroupOrs(VerIterator const &V) Group = 0; // Invert for Conflicts - if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + if (D->Type == Dep::Conflicts || + D->Type == Dep::DpkgBreaks || + D->Type == Dep::Obsoletes) State = ~State; } } @@ -601,7 +606,9 @@ void pkgDepCache::Update(OpProgress *Prog) Group = 0; // Invert for Conflicts - if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + if (D->Type == Dep::Conflicts || + D->Type == Dep::DpkgBreaks || + D->Type == Dep::Obsoletes) State = ~State; } } @@ -631,7 +638,9 @@ void pkgDepCache::Update(DepIterator D) State = DependencyState(D); // Invert for Conflicts - if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes) + if (D->Type == Dep::Conflicts || + D->Type == Dep::DpkgBreaks || + D->Type == Dep::Obsoletes) State = ~State; RemoveStates(D.ParentPkg()); @@ -894,7 +903,8 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, /* This bit is for processing the possibilty of an install/upgrade fixing the problem */ SPtrArray List = Start.AllTargets(); - if ((DepState[Start->ID] & DepCVer) == DepCVer) + if (Start->Type != Dep::DpkgBreaks && + (DepState[Start->ID] & DepCVer) == DepCVer) { // Right, find the best version to install.. Version **Cur = List; @@ -939,17 +949,23 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, } continue; } - + /* For conflicts we just de-install the package and mark as auto, - Conflicts may not have or groups */ - if (Start->Type == Dep::Conflicts || Start->Type == Dep::Obsoletes) + Conflicts may not have or groups. For dpkg's Breaks we try to + upgrade the package. */ + if (Start->Type == Dep::Conflicts || Start->Type == Dep::Obsoletes || + Start->Type == Dep::DpkgBreaks) { for (Version **I = List; *I != 0; I++) { VerIterator Ver(*this,*I); PkgIterator Pkg = Ver.ParentPkg(); - - MarkDelete(Pkg); + + if (Start->Type != Dep::DpkgBreaks) + MarkDelete(Pkg); + else + if (PkgState[Pkg->ID].CandidateVer != *I) + MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps); } continue; } diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc index 8d3a97983..61d8d914e 100644 --- a/apt-pkg/orderlist.cc +++ b/apt-pkg/orderlist.cc @@ -491,11 +491,13 @@ bool pkgOrderList::VisitProvides(DepIterator D,bool Critical) continue; if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::DpkgBreaks && D->Type != pkgCache::Dep::Obsoletes && Cache[Pkg].InstallVer != *I) continue; if ((D->Type == pkgCache::Dep::Conflicts || + D->Type == pkgCache::Dep::DpkgBreaks || D->Type == pkgCache::Dep::Obsoletes) && (Version *)Pkg.CurrentVer() != *I) continue; @@ -630,6 +632,7 @@ bool pkgOrderList::DepUnPackCrit(DepIterator D) /* Forward critical dependencies MUST be correct before the package can be unpacked. */ if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::DpkgBreaks && D->Type != pkgCache::Dep::Obsoletes && D->Type != pkgCache::Dep::PreDepends) continue; @@ -668,7 +671,7 @@ bool pkgOrderList::DepUnPackCrit(DepIterator D) } return true; } - /*}}}*/ + // OrderList::DepUnPackPreD - Critical UnPacking ordering with depends /*{{{*/ // --------------------------------------------------------------------- /* Critical PreDepends (also configure immediate and essential) strives to @@ -803,9 +806,20 @@ bool pkgOrderList::DepUnPackDep(DepIterator D) return false; } else + { if (D->Type == pkgCache::Dep::Depends) if (VisitProvides(D,false) == false) return false; + + if (D->Type == pkgCache::Dep::DpkgBreaks) + { + if (CheckDep(D) == true) + continue; + + if (VisitNode(D.TargetPkg()) == false) + return false; + } + } } return true; } @@ -953,6 +967,7 @@ bool pkgOrderList::CheckDep(DepIterator D) /* Conflicts requires that all versions are not present, depends just needs one */ if (D->Type != pkgCache::Dep::Conflicts && + D->Type != pkgCache::Dep::DpkgBreaks && D->Type != pkgCache::Dep::Obsoletes) { /* Try to find something that does not have the after flag set diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 162ab4f27..35eb23dfa 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -228,8 +228,8 @@ const char *pkgCache::DepType(unsigned char Type) { const char *Types[] = {"",_("Depends"),_("PreDepends"),_("Suggests"), _("Recommends"),_("Conflicts"),_("Replaces"), - _("Obsoletes")}; - if (Type < 8) + _("Obsoletes"),_("Breaks")}; + if (Type < sizeof(Types)/sizeof(*Types)) return Types[Type]; return ""; } @@ -292,10 +292,11 @@ pkgCache::PkgIterator::OkState pkgCache::PkgIterator::State() const // DepIterator::IsCritical - Returns true if the dep is important /*{{{*/ // --------------------------------------------------------------------- /* Currently critical deps are defined as depends, predepends and - conflicts. */ + conflicts (including dpkg's Breaks fields). */ bool pkgCache::DepIterator::IsCritical() { if (Dep->Type == pkgCache::Dep::Conflicts || + Dep->Type == pkgCache::Dep::DpkgBreaks || Dep->Type == pkgCache::Dep::Obsoletes || Dep->Type == pkgCache::Dep::Depends || Dep->Type == pkgCache::Dep::PreDepends) @@ -381,6 +382,7 @@ pkgCache::Version **pkgCache::DepIterator::AllTargets() continue; if ((Dep->Type == pkgCache::Dep::Conflicts || + Dep->Type == pkgCache::Dep::DpkgBreaks || Dep->Type == pkgCache::Dep::Obsoletes) && ParentPkg() == I.ParentPkg()) continue; @@ -397,6 +399,7 @@ pkgCache::Version **pkgCache::DepIterator::AllTargets() continue; if ((Dep->Type == pkgCache::Dep::Conflicts || + Dep->Type == pkgCache::Dep::DpkgBreaks || Dep->Type == pkgCache::Dep::Obsoletes) && ParentPkg() == I.OwnerPkg()) continue; diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index c7a3172cc..970759492 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -66,10 +66,14 @@ class pkgCache class Namespace; // These are all the constants used in the cache structures + + // WARNING - if you change these lists you must also edit + // the stringification in pkgcache.cc and also consider whether + // the cache file will become incompatible. struct Dep { enum DepType {Depends=1,PreDepends=2,Suggests=3,Recommends=4, - Conflicts=5,Replaces=6,Obsoletes=7}; + Conflicts=5,Replaces=6,Obsoletes=7,DpkgBreaks=8}; enum DepCompareOp {Or=0x10,NoOp=0,LessEq=0x1,GreaterEq=0x2,Less=0x3, Greater=0x4,Equals=0x5,NotEquals=0x6}; }; diff --git a/apt-pkg/tagfile.cc b/apt-pkg/tagfile.cc index 8fcbeb23b..146829566 100644 --- a/apt-pkg/tagfile.cc +++ b/apt-pkg/tagfile.cc @@ -422,6 +422,7 @@ static const char *iTFRewritePackageOrder[] = { "Recommends", "Suggests", "Conflicts", + "Breaks", "Conffiles", "Filename", "Size", diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 74fa71cba..cc4c1559e 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -102,13 +102,15 @@ bool UnMet(CommandLine &CmdL) if (End->Type != pkgCache::Dep::PreDepends && End->Type != pkgCache::Dep::Depends && End->Type != pkgCache::Dep::Suggests && - End->Type != pkgCache::Dep::Recommends) + End->Type != pkgCache::Dep::Recommends && + End->Type != pkgCache::Dep::DpkgBreaks) continue; // Important deps only if (Important == true) if (End->Type != pkgCache::Dep::PreDepends && - End->Type != pkgCache::Dep::Depends) + End->Type != pkgCache::Dep::Depends && + End->Type != pkgCache::Dep::DpkgBreaks) continue; // Verify the or group @@ -869,6 +871,7 @@ bool XVcg(CommandLine &CmdL) then show the relation but do not recurse */ if (Hit == false && (D->Type == pkgCache::Dep::Conflicts || + D->Type == pkgCache::Dep::DpkgBreaks || D->Type == pkgCache::Dep::Obsoletes)) { if (Show[D.TargetPkg()->ID] == None && @@ -890,6 +893,9 @@ bool XVcg(CommandLine &CmdL) case pkgCache::Dep::Conflicts: printf("label: \"conflicts\" color: lightgreen }\n"); break; + case pkgCache::Dep::DpkgBreaks: + printf("label: \"breaks\" color: lightgreen }\n"); + break; case pkgCache::Dep::Obsoletes: printf("label: \"obsoletes\" color: lightgreen }\n"); break; diff --git a/debian/changelog b/debian/changelog index da396e755..9c6232a6c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.6.45ubuntu6~iwj) unstable; urgency=low + + * Initial draft of `Breaks' implementation. Appears to compile, + but as yet *completely untested*. + + -- Ian Jackson Fri, 25 Aug 2006 15:39:07 +0100 + apt (0.6.45ubuntu5) edgy; urgency=low * apt-pkg/pkgcachegen.cc: diff --git a/doc/apt-cache.8.xml b/doc/apt-cache.8.xml index 2779f2501..c1e65332d 100644 --- a/doc/apt-cache.8.xml +++ b/doc/apt-cache.8.xml @@ -151,7 +151,7 @@ Reverse Provides: a dependency but were not provided by any package. Missing packages may be in evidence if a full distribution is not accessed, or if a package (real or virtual) has been dropped from the distribution. Usually they - are referenced from Conflicts statements. + are referenced from Conflicts or Breaks statements. Total distinct versions is the number of package versions diff --git a/doc/cache.sgml b/doc/cache.sgml index aa87db986..e257dcd81 100644 --- a/doc/cache.sgml +++ b/doc/cache.sgml @@ -492,7 +492,7 @@ This is the parsed priority value of the package. Dependency contains the information for a single dependency record. The records are split up like this to ease processing by the client. The base of list linked list is Version.DependsList. All forms of dependencies are recorded -here including Conflicts, Suggests and Recommends. +here including Conflicts, Breaks, Suggests and Recommends.

Multiple depends on the same package must be grouped together in @@ -671,6 +671,7 @@ of them. #define pkgDEP_Recommends 4 #define pkgDEP_Conflicts 5 #define pkgDEP_Replaces 6 +#define pkgDEP_Breaks 8 diff --git a/doc/dpkg-tech.sgml b/doc/dpkg-tech.sgml index 23372d71f..7c6e023dd 100644 --- a/doc/dpkg-tech.sgml +++ b/doc/dpkg-tech.sgml @@ -46,6 +46,8 @@ The basic dpkg package control file supports the following major features:- productivity of the package Conflicts, to specify a package which must NOT be installed in order for the package to be configured + Breaks, to specify a package which is broken by the + package and which should therefore not be configured while broken Each of these dependencies can specify a version and a depedency on that version, for example "<= 0.5-1", "== 2.7.2-1", etc. The comparators available diff --git a/po/apt-all.pot b/po/apt-all.pot index 586f9e545..978b0c191 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: 2006-08-09 23:46+0200\n" +"POT-Creation-Date: 2006-08-25 15:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,145 +15,153 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: cmdline/apt-cache.cc:135 +#: cmdline/apt-cache.cc:143 #, c-format msgid "Package %s version %s has an unmet dep:\n" msgstr "" -#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615 -#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357 -#: cmdline/apt-cache.cc:1508 +#: cmdline/apt-cache.cc:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640 +#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018 +#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570 #, c-format msgid "Unable to locate package %s" msgstr "" -#: cmdline/apt-cache.cc:232 +#: cmdline/apt-cache.cc:247 msgid "Total package names : " msgstr "" -#: cmdline/apt-cache.cc:272 +#: cmdline/apt-cache.cc:287 msgid " Normal packages: " msgstr "" -#: cmdline/apt-cache.cc:273 +#: cmdline/apt-cache.cc:288 msgid " Pure virtual packages: " msgstr "" -#: cmdline/apt-cache.cc:274 +#: cmdline/apt-cache.cc:289 msgid " Single virtual packages: " msgstr "" -#: cmdline/apt-cache.cc:275 +#: cmdline/apt-cache.cc:290 msgid " Mixed virtual packages: " msgstr "" -#: cmdline/apt-cache.cc:276 +#: cmdline/apt-cache.cc:291 msgid " Missing: " msgstr "" -#: cmdline/apt-cache.cc:278 +#: cmdline/apt-cache.cc:293 msgid "Total distinct versions: " msgstr "" -#: cmdline/apt-cache.cc:280 +#: cmdline/apt-cache.cc:295 +msgid "Total Distinct Descriptions: " +msgstr "" + +#: cmdline/apt-cache.cc:297 msgid "Total dependencies: " msgstr "" -#: cmdline/apt-cache.cc:283 +#: cmdline/apt-cache.cc:300 msgid "Total ver/file relations: " msgstr "" -#: cmdline/apt-cache.cc:285 +#: cmdline/apt-cache.cc:302 +msgid "Total Desc/File relations: " +msgstr "" + +#: cmdline/apt-cache.cc:304 msgid "Total Provides mappings: " msgstr "" -#: cmdline/apt-cache.cc:297 +#: cmdline/apt-cache.cc:316 msgid "Total globbed strings: " msgstr "" -#: cmdline/apt-cache.cc:311 +#: cmdline/apt-cache.cc:330 msgid "Total dependency version space: " msgstr "" -#: cmdline/apt-cache.cc:316 +#: cmdline/apt-cache.cc:335 msgid "Total slack space: " msgstr "" -#: cmdline/apt-cache.cc:324 +#: cmdline/apt-cache.cc:343 msgid "Total space accounted for: " msgstr "" -#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189 +#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218 #, c-format msgid "Package file %s is out of sync." msgstr "" -#: cmdline/apt-cache.cc:1231 +#: cmdline/apt-cache.cc:1293 msgid "You must give exactly one pattern" msgstr "" -#: cmdline/apt-cache.cc:1385 +#: cmdline/apt-cache.cc:1447 msgid "No packages found" msgstr "" -#: cmdline/apt-cache.cc:1462 +#: cmdline/apt-cache.cc:1524 msgid "Package files:" msgstr "" -#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555 +#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617 msgid "Cache is out of sync, can't x-ref a package file" msgstr "" -#: cmdline/apt-cache.cc:1470 +#: cmdline/apt-cache.cc:1532 #, c-format msgid "%4i %s\n" msgstr "" #. Show any packages have explicit pins -#: cmdline/apt-cache.cc:1482 +#: cmdline/apt-cache.cc:1544 msgid "Pinned packages:" msgstr "" -#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535 +#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597 msgid "(not found)" msgstr "" #. Installed version -#: cmdline/apt-cache.cc:1515 +#: cmdline/apt-cache.cc:1577 msgid " Installed: " msgstr "" -#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525 +#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587 msgid "(none)" msgstr "" #. Candidate Version -#: cmdline/apt-cache.cc:1522 +#: cmdline/apt-cache.cc:1584 msgid " Candidate: " msgstr "" -#: cmdline/apt-cache.cc:1532 +#: cmdline/apt-cache.cc:1594 msgid " Package pin: " msgstr "" #. Show the priority tables -#: cmdline/apt-cache.cc:1541 +#: cmdline/apt-cache.cc:1603 msgid " Version table:" msgstr "" -#: cmdline/apt-cache.cc:1556 +#: cmdline/apt-cache.cc:1618 #, c-format msgid " %4i %s\n" msgstr "" -#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 -#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550 -#: cmdline/apt-get.cc:2462 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 +#: cmdline/apt-extracttemplates.cc:225 cmdline/apt-get.cc:2476 +#: cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s %s compiled on %s %s\n" msgstr "" -#: cmdline/apt-cache.cc:1659 +#: cmdline/apt-cache.cc:1721 msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] add file1 [file2 ...]\n" @@ -243,8 +251,7 @@ msgid "" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" msgstr "" -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:714 -#: apt-pkg/pkgcachegen.cc:819 +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:819 #, c-format msgid "Unable to write to %s" msgstr "" @@ -253,301 +260,11 @@ msgstr "" msgid "Cannot get debconf version. Is debconf installed?" msgstr "" -#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341 -msgid "Package extension list is too long" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183 -#: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256 -#: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292 -#, c-format -msgid "Error processing directory %s" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:254 -msgid "Source extension list is too long" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:371 -msgid "Error writing header to contents file" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:401 -#, c-format -msgid "Error processing contents %s" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:556 -msgid "" -"Usage: apt-ftparchive [options] command\n" -"Commands: packages binarypath [overridefile [pathprefix]]\n" -" sources srcpath [overridefile [pathprefix]]\n" -" contents path\n" -" release path\n" -" generate config [groups]\n" -" clean config\n" -"\n" -"apt-ftparchive generates index files for Debian archives. It supports\n" -"many styles of generation from fully automated to functional replacements\n" -"for dpkg-scanpackages and dpkg-scansources\n" -"\n" -"apt-ftparchive generates Package files from a tree of .debs. The\n" -"Package file contains the contents of all the control fields from\n" -"each package as well as the MD5 hash and filesize. An override file\n" -"is supported to force the value of Priority and Section.\n" -"\n" -"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n" -"The --source-override option can be used to specify a src override file\n" -"\n" -"The 'packages' and 'sources' command should be run in the root of the\n" -"tree. BinaryPath should point to the base of the recursive search and \n" -"override file should contain the override flags. Pathprefix is\n" -"appended to the filename fields if present. Example usage from the \n" -"Debian archive:\n" -" apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n" -" dists/potato/main/binary-i386/Packages\n" -"\n" -"Options:\n" -" -h This help text\n" -" --md5 Control MD5 generation\n" -" -s=? Source override file\n" -" -q Quiet\n" -" -d=? Select the optional caching database\n" -" --no-delink Enable delinking debug mode\n" -" --contents Control contents file generation\n" -" -c=? Read this configuration file\n" -" -o=? Set an arbitrary configuration option" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:762 -msgid "No selections matched" -msgstr "" - -#: ftparchive/apt-ftparchive.cc:835 -#, c-format -msgid "Some files are missing in the package file group `%s'" -msgstr "" - -#: ftparchive/cachedb.cc:47 -#, c-format -msgid "DB was corrupted, file renamed to %s.old" -msgstr "" - -#: ftparchive/cachedb.cc:65 -#, c-format -msgid "DB is old, attempting to upgrade %s" -msgstr "" - -#: ftparchive/cachedb.cc:76 -msgid "" -"DB format is invalid. If you upgraded from a older version of apt, please " -"remove and re-create the database." -msgstr "" - -#: ftparchive/cachedb.cc:81 -#, c-format -msgid "Unable to open DB file %s: %s" -msgstr "" - -#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 -#, c-format -msgid "Failed to stat %s" -msgstr "" - -#: ftparchive/cachedb.cc:242 -msgid "Archive has no control record" -msgstr "" - -#: ftparchive/cachedb.cc:448 -msgid "Unable to get a cursor" -msgstr "" - -#: ftparchive/writer.cc:79 -#, c-format -msgid "W: Unable to read directory %s\n" -msgstr "" - -#: ftparchive/writer.cc:84 -#, c-format -msgid "W: Unable to stat %s\n" -msgstr "" - -#: ftparchive/writer.cc:135 -msgid "E: " -msgstr "" - -#: ftparchive/writer.cc:137 -msgid "W: " -msgstr "" - -#: ftparchive/writer.cc:144 -msgid "E: Errors apply to file " -msgstr "" - -#: ftparchive/writer.cc:161 ftparchive/writer.cc:191 -#, c-format -msgid "Failed to resolve %s" -msgstr "" - -#: ftparchive/writer.cc:173 -msgid "Tree walking failed" -msgstr "" - -#: ftparchive/writer.cc:198 -#, c-format -msgid "Failed to open %s" -msgstr "" - -#: ftparchive/writer.cc:257 -#, c-format -msgid " DeLink %s [%s]\n" -msgstr "" - -#: ftparchive/writer.cc:265 -#, c-format -msgid "Failed to readlink %s" -msgstr "" - -#: ftparchive/writer.cc:269 -#, c-format -msgid "Failed to unlink %s" -msgstr "" - -#: ftparchive/writer.cc:276 -#, c-format -msgid "*** Failed to link %s to %s" -msgstr "" - -#: ftparchive/writer.cc:286 -#, c-format -msgid " DeLink limit of %sB hit.\n" -msgstr "" - -#: ftparchive/writer.cc:390 -msgid "Archive had no package field" -msgstr "" - -#: ftparchive/writer.cc:398 ftparchive/writer.cc:613 -#, c-format -msgid " %s has no override entry\n" -msgstr "" - -#: ftparchive/writer.cc:443 ftparchive/writer.cc:701 -#, c-format -msgid " %s maintainer is %s not %s\n" -msgstr "" - -#: ftparchive/writer.cc:623 -#, c-format -msgid " %s has no source override entry\n" -msgstr "" - -#: ftparchive/writer.cc:627 -#, c-format -msgid " %s has no binary override entry either\n" -msgstr "" - -#: ftparchive/contents.cc:317 -#, c-format -msgid "Internal error, could not locate member %s" -msgstr "" - -#: ftparchive/contents.cc:353 ftparchive/contents.cc:384 -msgid "realloc - Failed to allocate memory" -msgstr "" - -#: ftparchive/override.cc:38 ftparchive/override.cc:146 -#, c-format -msgid "Unable to open %s" -msgstr "" - -#: ftparchive/override.cc:64 ftparchive/override.cc:170 -#, c-format -msgid "Malformed override %s line %lu #1" -msgstr "" - -#: ftparchive/override.cc:78 ftparchive/override.cc:182 -#, c-format -msgid "Malformed override %s line %lu #2" -msgstr "" - -#: ftparchive/override.cc:92 ftparchive/override.cc:195 -#, c-format -msgid "Malformed override %s line %lu #3" -msgstr "" - -#: ftparchive/override.cc:131 ftparchive/override.cc:205 -#, c-format -msgid "Failed to read the override file %s" -msgstr "" - -#: ftparchive/multicompress.cc:75 -#, c-format -msgid "Unknown compression algorithm '%s'" -msgstr "" - -#: ftparchive/multicompress.cc:105 -#, c-format -msgid "Compressed output %s needs a compression set" -msgstr "" - -#: ftparchive/multicompress.cc:172 methods/rsh.cc:91 -msgid "Failed to create IPC pipe to subprocess" -msgstr "" - -#: ftparchive/multicompress.cc:198 -msgid "Failed to create FILE*" -msgstr "" - -#: ftparchive/multicompress.cc:201 -msgid "Failed to fork" -msgstr "" - -#: ftparchive/multicompress.cc:215 -msgid "Compress child" -msgstr "" - -#: ftparchive/multicompress.cc:238 -#, c-format -msgid "Internal error, failed to create %s" -msgstr "" - -#: ftparchive/multicompress.cc:289 -msgid "Failed to create subprocess IPC" -msgstr "" - -#: ftparchive/multicompress.cc:324 -msgid "Failed to exec compressor " -msgstr "" - -#: ftparchive/multicompress.cc:363 -msgid "decompressor" -msgstr "" - -#: ftparchive/multicompress.cc:406 -msgid "IO to subprocess/file failed" -msgstr "" - -#: ftparchive/multicompress.cc:458 -msgid "Failed to read while computing MD5" -msgstr "" - -#: ftparchive/multicompress.cc:475 -#, c-format -msgid "Problem unlinking %s" -msgstr "" - -#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188 -#, c-format -msgid "Failed to rename %s to %s" -msgstr "" - #: cmdline/apt-get.cc:121 msgid "Y" msgstr "" -#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1574 +#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1588 #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -646,118 +363,118 @@ msgstr "" msgid "%lu not fully installed or removed.\n" msgstr "" -#: cmdline/apt-get.cc:650 +#: cmdline/apt-get.cc:664 msgid "Correcting dependencies..." msgstr "" -#: cmdline/apt-get.cc:653 +#: cmdline/apt-get.cc:667 msgid " failed." msgstr "" -#: cmdline/apt-get.cc:656 +#: cmdline/apt-get.cc:670 msgid "Unable to correct dependencies" msgstr "" -#: cmdline/apt-get.cc:659 +#: cmdline/apt-get.cc:673 msgid "Unable to minimize the upgrade set" msgstr "" -#: cmdline/apt-get.cc:661 +#: cmdline/apt-get.cc:675 msgid " Done" msgstr "" -#: cmdline/apt-get.cc:665 +#: cmdline/apt-get.cc:679 msgid "You might want to run `apt-get -f install' to correct these." msgstr "" -#: cmdline/apt-get.cc:668 +#: cmdline/apt-get.cc:682 msgid "Unmet dependencies. Try using -f." msgstr "" -#: cmdline/apt-get.cc:690 +#: cmdline/apt-get.cc:704 msgid "WARNING: The following packages cannot be authenticated!" msgstr "" -#: cmdline/apt-get.cc:694 +#: cmdline/apt-get.cc:708 msgid "Authentication warning overridden.\n" msgstr "" -#: cmdline/apt-get.cc:701 +#: cmdline/apt-get.cc:715 msgid "Install these packages without verification [y/N]? " msgstr "" -#: cmdline/apt-get.cc:703 +#: cmdline/apt-get.cc:717 msgid "Some packages could not be authenticated" msgstr "" -#: cmdline/apt-get.cc:712 cmdline/apt-get.cc:859 +#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873 msgid "There are problems and -y was used without --force-yes" msgstr "" -#: cmdline/apt-get.cc:756 +#: cmdline/apt-get.cc:770 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "" -#: cmdline/apt-get.cc:765 +#: cmdline/apt-get.cc:779 msgid "Packages need to be removed but remove is disabled." msgstr "" -#: cmdline/apt-get.cc:776 +#: cmdline/apt-get.cc:790 msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:792 cmdline/apt-get.cc:1893 cmdline/apt-get.cc:1926 +#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1907 cmdline/apt-get.cc:1940 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:802 cmdline/apt-get.cc:1974 cmdline/apt-get.cc:2210 +#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:1988 cmdline/apt-get.cc:2224 #: apt-pkg/cachefile.cc:67 msgid "The list of sources could not be read." msgstr "" -#: cmdline/apt-get.cc:817 +#: cmdline/apt-get.cc:831 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" -#: cmdline/apt-get.cc:822 +#: cmdline/apt-get.cc:836 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "" -#: cmdline/apt-get.cc:825 +#: cmdline/apt-get.cc:839 #, c-format msgid "Need to get %sB of archives.\n" msgstr "" -#: cmdline/apt-get.cc:830 +#: cmdline/apt-get.cc:844 #, c-format msgid "After unpacking %sB of additional disk space will be used.\n" msgstr "" -#: cmdline/apt-get.cc:833 +#: cmdline/apt-get.cc:847 #, c-format msgid "After unpacking %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:847 cmdline/apt-get.cc:2064 +#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2078 #, c-format msgid "Couldn't determine free space in %s" msgstr "" -#: cmdline/apt-get.cc:850 +#: cmdline/apt-get.cc:864 #, c-format msgid "You don't have enough free space in %s." msgstr "" -#: cmdline/apt-get.cc:865 cmdline/apt-get.cc:885 +#: cmdline/apt-get.cc:879 cmdline/apt-get.cc:899 msgid "Trivial Only specified but this is not a trivial operation." msgstr "" -#: cmdline/apt-get.cc:867 +#: cmdline/apt-get.cc:881 msgid "Yes, do as I say!" msgstr "" -#: cmdline/apt-get.cc:869 +#: cmdline/apt-get.cc:883 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -765,74 +482,74 @@ msgid "" " ?] " msgstr "" -#: cmdline/apt-get.cc:875 cmdline/apt-get.cc:894 +#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908 msgid "Abort." msgstr "" -#: cmdline/apt-get.cc:890 +#: cmdline/apt-get.cc:904 msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:962 cmdline/apt-get.cc:1369 cmdline/apt-get.cc:2107 +#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2121 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" -#: cmdline/apt-get.cc:980 +#: cmdline/apt-get.cc:994 msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:981 cmdline/apt-get.cc:2116 +#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2130 msgid "Download complete and in download only mode" msgstr "" -#: cmdline/apt-get.cc:987 +#: cmdline/apt-get.cc:1001 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" -#: cmdline/apt-get.cc:991 +#: cmdline/apt-get.cc:1005 msgid "--fix-missing and media swapping is not currently supported" msgstr "" -#: cmdline/apt-get.cc:996 +#: cmdline/apt-get.cc:1010 msgid "Unable to correct missing packages." msgstr "" -#: cmdline/apt-get.cc:997 +#: cmdline/apt-get.cc:1011 msgid "Aborting install." msgstr "" -#: cmdline/apt-get.cc:1031 +#: cmdline/apt-get.cc:1045 #, c-format msgid "Note, selecting %s instead of %s\n" msgstr "" -#: cmdline/apt-get.cc:1041 +#: cmdline/apt-get.cc:1055 #, c-format msgid "Skipping %s, it is already installed and upgrade is not set.\n" msgstr "" -#: cmdline/apt-get.cc:1059 +#: cmdline/apt-get.cc:1073 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "" -#: cmdline/apt-get.cc:1070 +#: cmdline/apt-get.cc:1084 #, c-format msgid "Package %s is a virtual package provided by:\n" msgstr "" -#: cmdline/apt-get.cc:1082 +#: cmdline/apt-get.cc:1096 msgid " [Installed]" msgstr "" -#: cmdline/apt-get.cc:1087 +#: cmdline/apt-get.cc:1101 msgid "You should explicitly select one to install." msgstr "" -#: cmdline/apt-get.cc:1092 +#: cmdline/apt-get.cc:1106 #, c-format msgid "" "Package %s is not available, but is referred to by another package.\n" @@ -840,97 +557,97 @@ msgid "" "is only available from another source\n" msgstr "" -#: cmdline/apt-get.cc:1111 +#: cmdline/apt-get.cc:1125 msgid "However the following packages replace it:" msgstr "" -#: cmdline/apt-get.cc:1114 +#: cmdline/apt-get.cc:1128 #, c-format msgid "Package %s has no installation candidate" msgstr "" -#: cmdline/apt-get.cc:1134 +#: cmdline/apt-get.cc:1148 #, c-format msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n" msgstr "" -#: cmdline/apt-get.cc:1142 +#: cmdline/apt-get.cc:1156 #, c-format msgid "%s is already the newest version.\n" msgstr "" -#: cmdline/apt-get.cc:1171 +#: cmdline/apt-get.cc:1185 #, c-format msgid "Release '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1173 +#: cmdline/apt-get.cc:1187 #, c-format msgid "Version '%s' for '%s' was not found" msgstr "" -#: cmdline/apt-get.cc:1179 +#: cmdline/apt-get.cc:1193 #, c-format msgid "Selected version %s (%s) for %s\n" msgstr "" -#: cmdline/apt-get.cc:1316 +#: cmdline/apt-get.cc:1330 msgid "The update command takes no arguments" msgstr "" -#: cmdline/apt-get.cc:1329 +#: cmdline/apt-get.cc:1343 msgid "Unable to lock the list directory" msgstr "" -#: cmdline/apt-get.cc:1396 cmdline/apt-get.cc:1398 +#: cmdline/apt-get.cc:1410 cmdline/apt-get.cc:1412 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" -#: cmdline/apt-get.cc:1412 +#: cmdline/apt-get.cc:1426 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1437 +#: cmdline/apt-get.cc:1451 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." msgstr "" -#: cmdline/apt-get.cc:1440 cmdline/apt-get.cc:1642 +#: cmdline/apt-get.cc:1454 cmdline/apt-get.cc:1656 msgid "The following information may help to resolve the situation:" msgstr "" -#: cmdline/apt-get.cc:1444 +#: cmdline/apt-get.cc:1458 msgid "Internal Error, AutoRemover broke stuff" msgstr "" -#: cmdline/apt-get.cc:1463 +#: cmdline/apt-get.cc:1477 msgid "Internal error, AllUpgrade broke stuff" msgstr "" -#: cmdline/apt-get.cc:1561 cmdline/apt-get.cc:1597 +#: cmdline/apt-get.cc:1575 cmdline/apt-get.cc:1611 #, c-format msgid "Couldn't find package %s" msgstr "" -#: cmdline/apt-get.cc:1584 +#: cmdline/apt-get.cc:1598 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1614 +#: cmdline/apt-get.cc:1628 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "" -#: cmdline/apt-get.cc:1617 +#: cmdline/apt-get.cc:1631 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -#: cmdline/apt-get.cc:1629 +#: cmdline/apt-get.cc:1643 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" @@ -938,159 +655,159 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1637 +#: cmdline/apt-get.cc:1651 msgid "" "Since you only requested a single operation it is extremely likely that\n" "the package is simply not installable and a bug report against\n" "that package should be filed." msgstr "" -#: cmdline/apt-get.cc:1645 +#: cmdline/apt-get.cc:1659 msgid "Broken packages" msgstr "" -#: cmdline/apt-get.cc:1676 +#: cmdline/apt-get.cc:1690 msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1765 +#: cmdline/apt-get.cc:1779 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1766 +#: cmdline/apt-get.cc:1780 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1786 +#: cmdline/apt-get.cc:1800 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1789 methods/ftp.cc:702 methods/connect.cc:101 +#: cmdline/apt-get.cc:1803 methods/ftp.cc:702 methods/connect.cc:101 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:1794 +#: cmdline/apt-get.cc:1808 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1869 +#: cmdline/apt-get.cc:1875 cmdline/apt-get.cc:1883 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:1969 +#: cmdline/apt-get.cc:1983 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2228 +#: cmdline/apt-get.cc:2013 cmdline/apt-get.cc:2242 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:2043 +#: cmdline/apt-get.cc:2057 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:2067 +#: cmdline/apt-get.cc:2081 #, c-format msgid "You don't have enough free space in %s" msgstr "" -#: cmdline/apt-get.cc:2072 +#: cmdline/apt-get.cc:2086 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2075 +#: cmdline/apt-get.cc:2089 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2081 +#: cmdline/apt-get.cc:2095 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2112 +#: cmdline/apt-get.cc:2126 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2140 +#: cmdline/apt-get.cc:2154 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2152 +#: cmdline/apt-get.cc:2166 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2153 +#: cmdline/apt-get.cc:2167 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2170 +#: cmdline/apt-get.cc:2184 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2189 +#: cmdline/apt-get.cc:2203 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2205 +#: cmdline/apt-get.cc:2219 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2233 +#: cmdline/apt-get.cc:2247 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2253 +#: cmdline/apt-get.cc:2267 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2305 +#: cmdline/apt-get.cc:2319 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2357 +#: cmdline/apt-get.cc:2371 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -#: cmdline/apt-get.cc:2392 +#: cmdline/apt-get.cc:2406 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2417 +#: cmdline/apt-get.cc:2431 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2431 +#: cmdline/apt-get.cc:2445 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2435 +#: cmdline/apt-get.cc:2449 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2467 +#: cmdline/apt-get.cc:2481 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2508 +#: cmdline/apt-get.cc:2522 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1320,6 +1037,17 @@ msgstr "" msgid "The diversion path is too long" msgstr "" +#: apt-inst/extract.cc:181 apt-inst/extract.cc:193 apt-inst/extract.cc:210 +#: apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272 +#, c-format +msgid "Failed to stat %s" +msgstr "" + +#: apt-inst/extract.cc:188 +#, c-format +msgid "Failed to rename %s to %s" +msgstr "" + #: apt-inst/extract.cc:243 #, c-format msgid "The directory %s is being replaced by a non-directory" @@ -1375,9 +1103,7 @@ msgid "The info and temp directories need to be on the same filesystem" msgstr "" #. Build the status cache -#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:647 -#: apt-pkg/pkgcachegen.cc:716 apt-pkg/pkgcachegen.cc:721 -#: apt-pkg/pkgcachegen.cc:844 apt-pkg/pkgcachegen.cc:752 +#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:752 #: apt-pkg/pkgcachegen.cc:821 apt-pkg/pkgcachegen.cc:826 #: apt-pkg/pkgcachegen.cc:949 msgid "Reading package lists" @@ -1851,7 +1577,7 @@ msgstr "" msgid "Couldn't make mmap of %lu bytes" msgstr "" -#: apt-pkg/contrib/strutl.cc:938 apt-pkg/contrib/strutl.cc:981 +#: apt-pkg/contrib/strutl.cc:981 #, c-format msgid "Selection %s not found" msgstr "" @@ -2048,72 +1774,76 @@ msgstr "" msgid "Problem syncing the file" msgstr "" -#: apt-pkg/pkgcache.cc:126 apt-pkg/pkgcache.cc:137 +#: apt-pkg/pkgcache.cc:137 msgid "Empty package cache" msgstr "" -#: apt-pkg/pkgcache.cc:132 apt-pkg/pkgcache.cc:143 +#: apt-pkg/pkgcache.cc:143 msgid "The package cache file is corrupted" msgstr "" -#: apt-pkg/pkgcache.cc:137 apt-pkg/pkgcache.cc:148 +#: apt-pkg/pkgcache.cc:148 msgid "The package cache file is an incompatible version" msgstr "" -#: apt-pkg/pkgcache.cc:142 apt-pkg/pkgcache.cc:153 +#: apt-pkg/pkgcache.cc:153 #, c-format msgid "This APT does not support the versioning system '%s'" msgstr "" -#: apt-pkg/pkgcache.cc:147 apt-pkg/pkgcache.cc:158 +#: apt-pkg/pkgcache.cc:158 msgid "The package cache was built for a different architecture" msgstr "" -#: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229 +#: apt-pkg/pkgcache.cc:229 msgid "Depends" msgstr "" -#: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229 +#: apt-pkg/pkgcache.cc:229 msgid "PreDepends" msgstr "" -#: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229 +#: apt-pkg/pkgcache.cc:229 msgid "Suggests" msgstr "" -#: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230 +#: apt-pkg/pkgcache.cc:230 msgid "Recommends" msgstr "" -#: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230 +#: apt-pkg/pkgcache.cc:230 msgid "Conflicts" msgstr "" -#: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230 +#: apt-pkg/pkgcache.cc:230 msgid "Replaces" msgstr "" -#: apt-pkg/pkgcache.cc:220 apt-pkg/pkgcache.cc:231 +#: apt-pkg/pkgcache.cc:231 msgid "Obsoletes" msgstr "" -#: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242 +#: apt-pkg/pkgcache.cc:231 +msgid "Breaks" +msgstr "" + +#: apt-pkg/pkgcache.cc:242 msgid "important" msgstr "" -#: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242 +#: apt-pkg/pkgcache.cc:242 msgid "required" msgstr "" -#: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242 +#: apt-pkg/pkgcache.cc:242 msgid "standard" msgstr "" -#: apt-pkg/pkgcache.cc:232 apt-pkg/pkgcache.cc:243 +#: apt-pkg/pkgcache.cc:243 msgid "optional" msgstr "" -#: apt-pkg/pkgcache.cc:232 apt-pkg/pkgcache.cc:243 +#: apt-pkg/pkgcache.cc:243 msgid "extra" msgstr "" @@ -2183,7 +1913,7 @@ msgstr "" msgid "Opening %s" msgstr "" -#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 apt-pkg/cdrom.cc:450 +#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:450 #, c-format msgid "Line %u too long in source list %s." msgstr "" @@ -2216,19 +1946,19 @@ msgstr "" msgid "Index file type '%s' is not supported" msgstr "" -#: apt-pkg/algorithms.cc:245 +#: apt-pkg/algorithms.cc:248 #, c-format msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -#: apt-pkg/algorithms.cc:1075 +#: apt-pkg/algorithms.cc:1096 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -#: apt-pkg/algorithms.cc:1077 +#: apt-pkg/algorithms.cc:1098 msgid "Unable to correct problems, you have held broken packages." msgstr "" @@ -2269,12 +1999,12 @@ msgstr "" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" -#: apt-pkg/init.cc:122 apt-pkg/init.cc:125 +#: apt-pkg/init.cc:125 #, c-format msgid "Packaging system '%s' is not supported" msgstr "" -#: apt-pkg/init.cc:138 apt-pkg/init.cc:141 +#: apt-pkg/init.cc:141 msgid "Unable to determine a suitable packaging system type" msgstr "" @@ -2317,73 +2047,86 @@ msgstr "" msgid "Error occurred while processing %s (NewPackage)" msgstr "" -#: apt-pkg/pkgcachegen.cc:131 apt-pkg/pkgcachegen.cc:134 +#: apt-pkg/pkgcachegen.cc:134 #, c-format msgid "Error occurred while processing %s (UsePackage1)" msgstr "" -#: apt-pkg/pkgcachegen.cc:152 apt-pkg/pkgcachegen.cc:182 +#: apt-pkg/pkgcachegen.cc:157 +#, c-format +msgid "Error occured while processing %s (NewFileDesc1)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:182 #, c-format msgid "Error occurred while processing %s (UsePackage2)" msgstr "" -#: apt-pkg/pkgcachegen.cc:156 apt-pkg/pkgcachegen.cc:186 +#: apt-pkg/pkgcachegen.cc:186 #, c-format msgid "Error occurred while processing %s (NewFileVer1)" msgstr "" -#: apt-pkg/pkgcachegen.cc:186 apt-pkg/pkgcachegen.cc:217 +#: apt-pkg/pkgcachegen.cc:217 #, c-format msgid "Error occurred while processing %s (NewVersion1)" msgstr "" -#: apt-pkg/pkgcachegen.cc:190 apt-pkg/pkgcachegen.cc:221 +#: apt-pkg/pkgcachegen.cc:221 #, c-format msgid "Error occurred while processing %s (UsePackage3)" msgstr "" -#: apt-pkg/pkgcachegen.cc:194 apt-pkg/pkgcachegen.cc:225 +#: apt-pkg/pkgcachegen.cc:225 #, c-format msgid "Error occurred while processing %s (NewVersion2)" msgstr "" -#: apt-pkg/pkgcachegen.cc:209 apt-pkg/pkgcachegen.cc:255 +#: apt-pkg/pkgcachegen.cc:249 +#, c-format +msgid "Error occured while processing %s (NewFileDesc2)" +msgstr "" + +#: apt-pkg/pkgcachegen.cc:255 msgid "Wow, you exceeded the number of package names this APT is capable of." msgstr "" -#: apt-pkg/pkgcachegen.cc:212 apt-pkg/pkgcachegen.cc:258 +#: apt-pkg/pkgcachegen.cc:258 msgid "Wow, you exceeded the number of versions this APT is capable of." msgstr "" -#: apt-pkg/pkgcachegen.cc:215 apt-pkg/pkgcachegen.cc:264 +#: apt-pkg/pkgcachegen.cc:261 +msgid "Wow, you exceeded the number of descriptions this APT is capable of." +msgstr "" + +#: apt-pkg/pkgcachegen.cc:264 msgid "Wow, you exceeded the number of dependencies this APT is capable of." msgstr "" -#: apt-pkg/pkgcachegen.cc:243 apt-pkg/pkgcachegen.cc:292 +#: apt-pkg/pkgcachegen.cc:292 #, c-format msgid "Error occurred while processing %s (FindPkg)" msgstr "" -#: apt-pkg/pkgcachegen.cc:256 apt-pkg/pkgcachegen.cc:305 +#: apt-pkg/pkgcachegen.cc:305 #, c-format msgid "Error occurred while processing %s (CollectFileProvides)" msgstr "" -#: apt-pkg/pkgcachegen.cc:262 apt-pkg/pkgcachegen.cc:311 +#: apt-pkg/pkgcachegen.cc:311 #, c-format msgid "Package %s %s was not found while processing file dependencies" msgstr "" -#: apt-pkg/pkgcachegen.cc:577 apt-pkg/pkgcachegen.cc:682 +#: apt-pkg/pkgcachegen.cc:682 #, c-format msgid "Couldn't stat source package list %s" msgstr "" -#: apt-pkg/pkgcachegen.cc:662 apt-pkg/pkgcachegen.cc:767 +#: apt-pkg/pkgcachegen.cc:767 msgid "Collecting File Provides" msgstr "" -#: apt-pkg/pkgcachegen.cc:789 apt-pkg/pkgcachegen.cc:796 #: apt-pkg/pkgcachegen.cc:894 apt-pkg/pkgcachegen.cc:901 msgid "IO Error saving source cache" msgstr "" @@ -2393,36 +2136,35 @@ msgstr "" msgid "rename failed, %s (%s -> %s)." msgstr "" -#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:951 -#: apt-pkg/acquire-item.cc:980 +#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:980 msgid "MD5Sum mismatch" msgstr "" -#: apt-pkg/acquire-item.cc:646 apt-pkg/acquire-item.cc:675 +#: apt-pkg/acquire-item.cc:675 msgid "There are no public key available for the following key IDs:\n" msgstr "" -#: apt-pkg/acquire-item.cc:759 apt-pkg/acquire-item.cc:788 +#: apt-pkg/acquire-item.cc:788 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " "to manually fix this package. (due to missing arch)" msgstr "" -#: apt-pkg/acquire-item.cc:818 apt-pkg/acquire-item.cc:847 +#: apt-pkg/acquire-item.cc:847 #, c-format msgid "" "I wasn't able to locate file for the %s package. This might mean you need to " "manually fix this package." msgstr "" -#: apt-pkg/acquire-item.cc:854 apt-pkg/acquire-item.cc:883 +#: apt-pkg/acquire-item.cc:883 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." msgstr "" -#: apt-pkg/acquire-item.cc:941 apt-pkg/acquire-item.cc:970 +#: apt-pkg/acquire-item.cc:970 msgid "Size mismatch" msgstr "" @@ -2431,93 +2173,94 @@ msgstr "" msgid "Vendor block %s contains no fingerprint" msgstr "" -#: apt-pkg/cdrom.cc:507 apt-pkg/cdrom.cc:531 +#: apt-pkg/cdrom.cc:531 #, c-format msgid "" "Using CD-ROM mount point %s\n" "Mounting CD-ROM\n" msgstr "" -#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 apt-pkg/cdrom.cc:540 -#: apt-pkg/cdrom.cc:622 +#: apt-pkg/cdrom.cc:540 apt-pkg/cdrom.cc:622 msgid "Identifying.. " msgstr "" -#: apt-pkg/cdrom.cc:541 apt-pkg/cdrom.cc:565 +#: apt-pkg/cdrom.cc:565 #, c-format msgid "Stored label: %s \n" msgstr "" -#: apt-pkg/cdrom.cc:561 apt-pkg/cdrom.cc:585 +#: apt-pkg/cdrom.cc:585 #, c-format msgid "Using CD-ROM mount point %s\n" msgstr "" -#: apt-pkg/cdrom.cc:579 apt-pkg/cdrom.cc:603 +#: apt-pkg/cdrom.cc:603 msgid "Unmounting CD-ROM\n" msgstr "" -#: apt-pkg/cdrom.cc:583 apt-pkg/cdrom.cc:607 +#: apt-pkg/cdrom.cc:607 msgid "Waiting for disc...\n" msgstr "" #. Mount the new CDROM -#: apt-pkg/cdrom.cc:591 apt-pkg/cdrom.cc:615 +#: apt-pkg/cdrom.cc:615 msgid "Mounting CD-ROM...\n" msgstr "" -#: apt-pkg/cdrom.cc:609 apt-pkg/cdrom.cc:633 +#: apt-pkg/cdrom.cc:633 msgid "Scanning disc for index files..\n" msgstr "" -#: apt-pkg/cdrom.cc:647 +#: apt-pkg/cdrom.cc:673 #, c-format -msgid "Found %i package indexes, %i source indexes and %i signatures\n" +msgid "" +"Found %i package indexes, %i source indexes, %i translation indexes and %i " +"signatures\n" msgstr "" -#: apt-pkg/cdrom.cc:710 apt-pkg/cdrom.cc:737 +#: apt-pkg/cdrom.cc:737 msgid "That is not a valid name, try again.\n" msgstr "" -#: apt-pkg/cdrom.cc:726 apt-pkg/cdrom.cc:753 +#: apt-pkg/cdrom.cc:753 #, c-format msgid "" "This disc is called: \n" "'%s'\n" msgstr "" -#: apt-pkg/cdrom.cc:730 apt-pkg/cdrom.cc:757 +#: apt-pkg/cdrom.cc:757 msgid "Copying package lists..." msgstr "" -#: apt-pkg/cdrom.cc:754 apt-pkg/cdrom.cc:783 +#: apt-pkg/cdrom.cc:783 msgid "Writing new source list\n" msgstr "" -#: apt-pkg/cdrom.cc:763 apt-pkg/cdrom.cc:792 +#: apt-pkg/cdrom.cc:792 msgid "Source list entries for this disc are:\n" msgstr "" -#: apt-pkg/cdrom.cc:803 apt-pkg/cdrom.cc:832 +#: apt-pkg/cdrom.cc:832 msgid "Unmounting CD-ROM..." msgstr "" -#: apt-pkg/indexcopy.cc:261 apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830 +#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830 #, c-format msgid "Wrote %i records.\n" msgstr "" -#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832 +#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "" -#: apt-pkg/indexcopy.cc:266 apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835 +#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "" -#: apt-pkg/indexcopy.cc:269 apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838 +#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" @@ -2572,27 +2315,10 @@ msgstr "" msgid "Completely removed %s" msgstr "" -#: methods/rsh.cc:330 -msgid "Connection closed prematurely" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:157 -#, c-format -msgid "Error occured while processing %s (NewFileDesc1)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:249 -#, c-format -msgid "Error occured while processing %s (NewFileDesc2)" -msgstr "" - -#: apt-pkg/pkgcachegen.cc:261 -msgid "Wow, you exceeded the number of descriptions this APT is capable of." +#: methods/rsh.cc:91 +msgid "Failed to create IPC pipe to subprocess" msgstr "" -#: apt-pkg/cdrom.cc:673 -#, c-format -msgid "" -"Found %i package indexes, %i source indexes, %i translation indexes and %i " -"signatures\n" +#: methods/rsh.cc:330 +msgid "Connection closed prematurely" msgstr "" -- cgit v1.2.3-70-g09d2