Bläddra i källkod

* merged with apt--mvo--0

Patches applied:

 * apt@packages.debian.org/apt--sources-list-d--0--base-0
   tag of apt@packages.debian.org/apt--main--0--patch-30

 * apt@packages.debian.org/apt--sources-list-d--0--patch-1
   Patch from apt-rpm via Michael Vogt to implement /etc/apt/sources.list.d

 * bubulle@debian.org--2005/apt--main--0--patch-96
   Sync with Matt

 * bubulle@debian.org--2005/apt--main--0--patch-97
   Merge with Matt

 * bubulle@debian.org--2005/apt--main--0--patch-98
   Update PO files with the POT

 * bubulle@debian.org--2005/apt--main--0--patch-99
   Added Galician translation

 * bubulle@debian.org--2005/apt--main--0--patch-100
   Completed Danish translation

 * bubulle@debian.org--2005/apt--main--0--patch-101
   Merge with Matt

 * bubulle@debian.org--2005/apt--main--0--patch-102
   Merge with Michael Vogt's archive

 * bubulle@debian.org--2005/apt--main--0--patch-103
   Update the POT files and all PO files to resync with recent code

 * bubulle@debian.org--2005/apt--main--0--patch-104
   French translation completed

 * bubulle@debian.org--2005/apt--main--0--patch-105
   Proofread by Fred Bothamy

 * bubulle@debian.org--2005/apt--main--0--patch-106
   Merge with mvo

 * bubulle@debian.org--2005/apt--main--0--patch-107
   Italian translation corrected

 * bubulle@debian.org--2005/apt--main--0--patch-108
   Italian translation update

 * bubulle@debian.org--2005/apt--main--0--patch-109
   Italian translation completed

 * bubulle@debian.org--2005/apt--main--0--patch-110
   Swedish translation update

 * bubulle@debian.org--2005/apt--main--0--patch-111
   Merge with Michael

 * bubulle@debian.org--2005/apt--main--0--patch-112
   Swedish translation completed

 * bubulle@debian.org--2005/apt--main--0--patch-113
   Silly update to French translation (testing)

 * bubulle@debian.org--2005/apt--main--0--patch-114
   Basque translation update

 * bubulle@debian.org--2005/apt--main--0--patch-115
   Basque translation completed

 * bubulle@debian.org--2005/apt--main--0--patch-116
   Merge with Michael

 * bubulle@debian.org--2005/apt--main--0--patch-117
   Merge with Michael

 * bubulle@debian.org--2005/apt--main--0--patch-118
   Russian translation update by Yuri Kozlov

 * bubulle@debian.org--2005/apt--main--0--patch-119
   Merge with Michael and add update-po as a pre-req for binary

 * bubulle@debian.org--2005/apt--main--0--patch-120
   Re-generate all PO Files

 * bubulle@debian.org--2005/apt--main--0--patch-121
   Complete French translation

 * bubulle@debian.org--2005/apt--main--0--patch-122
   Correct typography in French translation

 * bubulle@debian.org--2005/apt--main--0--patch-123
   Spelling fix for consistency in French translation

 * bubulle@debian.org--2005/apt--main--0--patch-124
   Merge with Michael

 * bubulle@debian.org--2005/apt--main--0--patch-125
   Fixed localization of y/n questions in German translation

 * bubulle@debian.org--2005/apt--main--0--patch-126
   Swedish translation update

 * bubulle@debian.org--2005/apt--main--0--patch-127
   Complete Tagalog translation / Add Changelog

 * bubulle@debian.org--2005/apt--main--0--patch-128
   Danish translation update

 * bubulle@debian.org--2005/apt--main--0--patch-129
   Basque translation update

 * bubulle@debian.org--2005/apt--main--0--patch-130
   Galician translation completed

 * bubulle@debian.org--2005/apt--main--0--patch-131
   Simplified Chinese translation update

 * michael.vogt@ubuntu.com--2005/apt--bts225947--0--patch-5
   * merged with apt--main--0

 * michael.vogt@ubuntu.com--2005/apt--bts225947--0--patch-6
   * fixed a incorrect po/he.po merge

 * michael.vogt@ubuntu.com--2005/apt--cdrom-fallback--0--base-0
   tag of apt@packages.debian.org/apt--main--0--patch-110

 * michael.vogt@ubuntu.com--2005/apt--cdrom-fallback--0--patch-1
   * initial patch to make falling back from cdrom possible

 * michael.vogt@ubuntu.com--2005/apt--cdrom-fallback--0--patch-2
   * fix in methods/cdrom.cc: don't call Fail() but return false so that apt can fallback to a differencent source

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-10
   * fix a bug in a man-page, fix a problem with overly long lines in apt-cdrom

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-11
   * merged with apt--main--0

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-12
   * fix a incorrect error message (it always added .gz regardless what was downloaded)

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-13
   * merged with main

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-14
   * added Hashsum support for file and cdrom 

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-15
   * added README.arch

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-16
   * merged with main

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-17
   * move the changelog to the right place

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-18
   * Change pkgPolicy::Pin from private to protected 

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-19
   * added a default constructor for PrvIterator 

 * michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-20
   * applied otavios patch to reread the statusFile on debSystem::Initialize

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-33
   * merged with matt's tree

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-34
   * merged with matts tree

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-35
   * build debian and ubuntu package from the same source

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-36
   * added debian/patches dir

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-37
   * fix the breakage from my last commit (note to self: always, _always_ run baz diff before a commit)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-38
   * removed the lsb_release build patch (nobody except me seems to like it)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-39
   * merged from main

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-40
   * merged the apt--sane-handle-timeout--0 branch

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-41
   * merged apt--bts225947--0

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-42
   * merged with apt--main

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-43
   * added patch that adds a apt-secure man-page (thanks to jfs@computer.org)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-44
   * added author credits

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-45
   * added apt-ftparchive.conf example

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-46
   * corrected the utf8 of javier fernandes pena

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-47
   * improve the timeout handling (again)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-48
   * merged with apt--fixes--0

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-49
   * README.arch updates, comment in apt-pkg/algorithm.h added, apt-pkg/cacheiterators.h order in initlist changed to remove warning

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-50
   * meda-change message is send over status-fd now

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-51
   * include a human readable string for the MediaChange status-fd message as well

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-52
   * finalizing changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-53
   * check ctime as well in cron.daily when cleaning up packages in apt.cron.daily

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-54
   * fix a stupid typo in apt.cron.daily

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-55
   * fix apt-pkg/cdrom.cc to umount the cdrom again if anything fails

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-56
   * merged from apt--cdrom-fallback--0

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-57
   * changelog update

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-58
   * better error string for a failed dpkg-source

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-59
   * make sure that the pkgRecords D'tor does not segfault

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-60
   * merged updated french man-page

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-61
   * merged with bubulle

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-62
   * leak fix for debian #250583

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-63
   * changelog update

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-64
   * merged with bubulle 

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-65
   * inital support for "apt-get source -t dist" (but no downgrades yet

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-66
   * full support for apt-get source -t now (and honor pining too)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-67
   * added APT::Authentication::Trust-CDROM option

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-68
   * fix a crash in apt-ftparchive

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-69
   * sparc64 alignment fix

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-70
   * fix segfault when there is no Archive for a VerFile

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-71
   * don't get candidate release as version tag for FindSrc by default. because it break for bin-NMUs :/ (e.g. dpkg source is 1.13.11, but i386 version string is 1.13.11.0.1)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-72
   * corrections in the changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-73
   * init the default ScreenWidth to 79 columns by default (Closes: #324921)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-74
   apt-cdrom.cc:fix some missing gettext() calls (closes: #334539); doc/apt-cache.8.xml: fix typo (closes: #334714)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-75
   * seting section to "admin" to match override file

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-76
   * finalized the changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-77
   * renamed Trust-CDROM to TrustCDROM to make it consistent with ubuntu

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-78
   * fix a incorrect example

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-79
   * revert patch from patch-59, causes all sorts of trouble

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-80
   * fix changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-81
   * be extra carefull in cmdline/apt-get.cc:FindSrc() and check VF.File() for NULL

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-82
   * merged with bubulle 

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-83
   * cmdline/apt-get.cc: fix bug in FindSrc() (debian #335213)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-84
   * added armeb to archtable

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-85
   * merged with bubulle, changelog updates

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-86
   * merged the NMU from Franz Pop, fixed armeb problem (#333599)

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-87
   * removed double armeb entry in buildlib/sizetable

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-88
   * finalized changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-89
   * turn off "secure-acquire" when --allow-unauthenticated is given

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-90
   * merged the sources.list.d patch

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-91
   * merged with bubulle

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-92
   * changelog update

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-93
   * sources.list.d documented

 * michael.vogt@ubuntu.com--2005/apt--sane-handle-timeout--0--patch-3
   * merged with main

 * 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

 * otavio@debian.org--2005/apt--fixes--0--patch-28
   Reread status configuration, needed for clients using independent apt ...

 * philippe.batailler@free.fr--2005/VOGTapt--mvo--0--patch-1
   French L10N update

 * philippe.batailler@free.fr--2005/VOGTapt--mvo--0--patch-2
   Generate correctly french manpages
Michael Vogt 20 år sedan
förälder
incheckning
7230ad48a5
84 ändrade filer med 17086 tillägg och 8074 borttagningar
  1. 12 0
      README.arch
  2. 8 1
      README.progress-reporting
  3. 18 9
      apt-pkg/acquire-item.cc
  4. 3 2
      apt-pkg/acquire-item.h
  5. 1 1
      apt-pkg/acquire-method.cc
  6. 19 0
      apt-pkg/acquire-worker.cc
  7. 2 1
      apt-pkg/algorithms.h
  8. 3 1
      apt-pkg/cacheiterators.h
  9. 17 2
      apt-pkg/cdrom.cc
  10. 1 1
      apt-pkg/contrib/md5.h
  11. 2 2
      apt-pkg/contrib/mmap.cc
  12. 4 0
      apt-pkg/deb/debmetaindex.cc
  13. 6 1
      apt-pkg/deb/debsystem.cc
  14. 3 2
      apt-pkg/init.cc
  15. 1 1
      apt-pkg/packagemanager.cc
  16. 2 2
      apt-pkg/policy.h
  17. 110 5
      apt-pkg/sourcelist.cc
  18. 5 0
      apt-pkg/sourcelist.h
  19. 1 0
      buildlib/archtable
  20. 1 0
      buildlib/sizetable
  21. 10 4
      cmdline/acqprogress.cc
  22. 3 3
      cmdline/apt-cdrom.cc
  23. 42 14
      cmdline/apt-get.cc
  24. 1 1
      configure.in
  25. 1 0
      debian/apt-utils.examples
  26. 10 4
      debian/apt.cron.daily
  27. 1 0
      debian/apt.manpages
  28. 110 3
      debian/changelog
  29. 1 1
      debian/control
  30. 2 1
      debian/rules
  31. 1 1
      doc/apt-cache.8.xml
  32. 43 4
      doc/apt-key.8.xml
  33. 209 0
      doc/apt-secure.8.xml
  34. 1 1
      doc/apt.conf.5.xml
  35. 49 0
      doc/apt.ent
  36. 46 0
      doc/examples/apt-ftparchive.conf
  37. 5 0
      doc/examples/configure-index
  38. 2 2
      doc/fr/apt-config.fr.8.xml
  39. 39 5
      doc/fr/apt-key.fr.8.xml
  40. 217 0
      doc/fr/apt-secure.fr.8.xml
  41. 48 0
      doc/fr/apt.ent.fr
  42. 2 2
      doc/fr/apt_preferences.fr.5.xml
  43. 10 2
      doc/fr/makefile
  44. 2 1
      doc/makefile
  45. 7 0
      doc/sources.list.5.xml
  46. 3 2
      ftparchive/writer.cc
  47. 8 2
      methods/cdrom.cc
  48. 3 0
      methods/connect.cc
  49. 7 1
      methods/file.cc
  50. 29 0
      po/ChangeLog
  51. 131 104
      po/apt-all.pot
  52. 424 254
      po/bs.po
  53. 432 301
      po/ca.po
  54. 436 255
      po/cs.po
  55. 430 280
      po/da.po
  56. 436 286
      po/de.po
  57. 436 255
      po/el.po
  58. 429 257
      po/en_GB.po
  59. 437 287
      po/es.po
  60. 434 266
      po/eu.po
  61. 436 255
      po/fi.po
  62. 478 289
      po/fr.po
  63. 2747 0
      po/gl.po
  64. 424 254
      po/he.po
  65. 436 255
      po/hu.po
  66. 435 281
      po/it.po
  67. 436 255
      po/ja.po
  68. 436 255
      po/ko.po
  69. 1 1
      po/makefile
  70. 436 255
      po/nb.po
  71. 436 255
      po/nl.po
  72. 436 255
      po/nn.po
  73. 436 255
      po/pl.po
  74. 435 269
      po/pt.po
  75. 435 269
      po/pt_BR.po
  76. 436 255
      po/ro.po
  77. 434 255
      po/ru.po
  78. 436 255
      po/sk.po
  79. 436 255
      po/sl.po
  80. 436 255
      po/sv.po
  81. 437 256
      po/tl.po
  82. 436 255
      po/zh_CN.po
  83. 436 255
      po/zh_TW.po
  84. BIN
      share/debian-archive.gpg

+ 12 - 0
README.arch

@@ -0,0 +1,12 @@
+
+You can build apt from arch, but this needs the following additional
+packages (in addtion to the usual build-depends):
+xmlto perlsgml sgml2x sgmlspl docbook
+
+then run:
+
+$ debian/rules arch-build
+
+that will build packages in the "debian/arch-build" directory. It will
+honor "DEB_BUILD_PROG_OPTS" as options that are passed to debuild (e.g. -S 
+may be usefull).

+ 8 - 1
README.progress-reporting

@@ -5,7 +5,7 @@ If the apt options: "APT::Status-Fd" is set, apt will send status
 reports to that fd. The status information is seperated with a ':', 
 there are the following status conditions:
 
-status = {"pmstatus", "dlstatus", "conffile-prompt", "error" } 
+status = {"pmstatus", "dlstatus", "conffile-prompt", "error", "media-change" } 
 
 The reason for using a fd instead of a OpProgress class is that many
 apt frontend fork a (vte) terminal for the actual installation.
@@ -47,6 +47,13 @@ pmconffile
 pmconffile:conffile:percent:'current-conffile' 'new-conffile' useredited distedited
 
 
+media-change
+------------
+media-change:medium:drive:human-readable string
+
+example:
+media-change: Ubuntu 5.10 _Breezy Badger_ - Alpha i386 (20050830):/cdrom/:Please insert the disc labeled: 'Ubuntu 5.10 _Breezy Badger_ - Alpha i386 (20050830)' in the drive '/cdrom/' and press enter.
+
 
 dlstatus
 --------

+ 18 - 9
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;
@@ -401,7 +402,8 @@ void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
    unlink(Final.c_str());
 
    // if we get a timeout if fail
-   if(LookupTag(Message,"FailReason") == "Timeout") {
+   if(LookupTag(Message,"FailReason") == "Timeout" || 
+      LookupTag(Message,"FailReason") == "TmpResolveFailure") {
       Item::Failed(Message,Cnf);
       return;
    }
@@ -768,6 +770,12 @@ pkgAcqArchive::pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources,
       }
    }
 
+   // "allow-unauthenticated" restores apts old fetching behaviour
+   // that means that e.g. unauthenticated file:// uris are higher
+   // priority than authenticated http:// uris
+   if (_config->FindB("APT::Get::AllowUnauthenticated",false) == true)
+      Trusted = false;
+
    // Select a source
    if (QueueNext() == false && _error->PendingError() == false)
       _error->Error(_("I wasn't able to locate file for the %s package. "
@@ -904,7 +912,8 @@ void pkgAcqArchive::Done(string Message,unsigned long Size,string Md5Hash,
       {
 	 Status = StatError;
 	 ErrorText = _("MD5Sum mismatch");
-	 Rename(DestFile,DestFile + ".FAILED");
+	 if(FileExists(DestFile))
+	    Rename(DestFile,DestFile + ".FAILED");
 	 return;
       }
    }

+ 3 - 2
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="");

+ 1 - 1
apt-pkg/acquire-method.cc

@@ -277,7 +277,7 @@ bool pkgAcqMethod::MediaFail(string Required,string Drive)
 	    MyMessages.erase(MyMessages.begin());
 	 }
 
-	 return !StringToBool(LookupTag(Message,"Fail"),false);
+	 return !StringToBool(LookupTag(Message,"Failed"),false);
       }
       
       Messages.push_back(Message);

+ 19 - 0
apt-pkg/acquire-worker.cc

@@ -25,6 +25,7 @@
 #include <apti18n.h>
 
 #include <iostream>
+#include <sstream>
 #include <fstream>
     
 #include <sys/stat.h>
@@ -367,6 +368,24 @@ bool pkgAcquire::Worker::Capabilities(string Message)
 /* */
 bool pkgAcquire::Worker::MediaChange(string Message)
 {
+   int status_fd = _config->FindI("APT::Status-Fd",-1);
+   if(status_fd > 0) 
+   {
+      string Media = LookupTag(Message,"Media");
+      string Drive = LookupTag(Message,"Drive"); 
+      ostringstream msg,status;
+      ioprintf(msg,_("Please insert the disc labeled: "
+		     "'%s' "
+		     "in the drive '%s' and press enter."),
+	       Media.c_str(),Drive.c_str());
+      status << "media-change: "  // message
+	     << Media  << ":"     // media
+	     << Drive  << ":"     // drive
+	     << msg.str()         // l10n message
+	     << endl;
+      write(status_fd, status.str().c_str(), status.str().size());
+   }
+
    if (Log == 0 || Log->MediaChange(LookupTag(Message,"Media"),
 				    LookupTag(Message,"Drive")) == false)
    {

+ 2 - 1
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);

+ 3 - 1
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) 
    {

+ 17 - 2
apt-pkg/cdrom.cc

@@ -422,6 +422,9 @@ bool pkgCdrom::WriteSourceList(string Name,vector<string> &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);
             
@@ -564,7 +567,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
    string DFile = _config->FindFile("Dir::State::cdroms");
    if (FileExists(DFile) == true)
    {
-      if (ReadConfigFile(Database,DFile) == false)
+      if (ReadConfigFile(Database,DFile) == false) 
 	 return _error->Error("Unable to read the cdrom database %s",
 			      DFile.c_str());
    }
@@ -647,8 +650,11 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
       log->Update(msg.str(), STEP_SCAN);
    }
 
-   if (List.size() == 0 && SourceList.size() == 0)
+   if (List.size() == 0 && SourceList.size() == 0) 
+   {
+      UnmountCdrom(CDROM);
       return _error->Error("Unable to locate any package files, perhaps this is not a Debian Disc");
+   }
 
    // Check if the CD is in the database
    string Name;
@@ -684,7 +690,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
 	  Name.empty() == true)
       {
 	 if(!log) 
+         {
+	    UnmountCdrom(CDROM);
 	    return _error->Error("No disc name found and no way to ask for it");
+	 }
 
 	 while(true) {
 	    if(!log->AskCdromName(Name)) {
@@ -757,7 +766,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
    {
       string::size_type Space = (*I).find(' ');
       if (Space == string::npos)
+      {
+	 UnmountCdrom(CDROM);
 	 return _error->Error("Internal error");
+      }
 
       if(log) {
 	 msg.str("");
@@ -771,7 +783,10 @@ bool pkgCdrom::Add(pkgCdromStatus *log)
    {
       string::size_type Space = (*I).find(' ');
       if (Space == string::npos)
+      {
+	 UnmountCdrom(CDROM);
 	 return _error->Error("Internal error");
+      }
 
       if(log) {
 	 msg.str("");

+ 1 - 1
apt-pkg/contrib/md5.h

@@ -58,7 +58,7 @@ class MD5SumValue
 
 class MD5Summation
 {
-   unsigned char Buf[4*4];
+   uint32_t Buf[4];
    unsigned char Bytes[2*4];
    unsigned char In[16*4];
    bool Done;

+ 2 - 2
apt-pkg/contrib/mmap.cc

@@ -155,9 +155,9 @@ DynamicMMap::DynamicMMap(FileFd &F,unsigned long Flags,unsigned long WorkSpace)
    unsigned long EndOfFile = Fd->Size();
    if (EndOfFile > WorkSpace)
       WorkSpace = EndOfFile;
-   else
+   else if(WorkSpace > 0)
    {
-      Fd->Seek(WorkSpace);
+      Fd->Seek(WorkSpace - 1);
       char C = 0;
       Fd->Write(&C,sizeof(C));
    }

+ 4 - 0
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;

+ 6 - 1
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;
 }
 									/*}}}*/

+ 3 - 2
apt-pkg/init.cc

@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description								/*{{{*/
-// $Id: init.cc,v 1.21 2004/02/27 00:46:44 mdz Exp $
+// $Id: init.cc,v 1.20 2003/02/09 20:31:05 doogie Exp $
 /* ######################################################################
 
    Init - Initialize the package library
@@ -64,13 +64,14 @@ bool pkgInitConfig(Configuration &Cnf)
    // Configuration
    Cnf.Set("Dir::Etc","etc/apt/");
    Cnf.Set("Dir::Etc::sourcelist","sources.list");
+   Cnf.Set("Dir::Etc::sourceparts","sources.list.d");
    Cnf.Set("Dir::Etc::vendorlist","vendors.list");
    Cnf.Set("Dir::Etc::vendorparts","vendors.list.d");
    Cnf.Set("Dir::Etc::main","apt.conf");
    Cnf.Set("Dir::Etc::parts","apt.conf.d");
    Cnf.Set("Dir::Etc::preferences","preferences");
    Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods");
-	      
+   
    bool Res = true;
    
    // Read an alternate config file

+ 1 - 1
apt-pkg/packagemanager.cc

@@ -636,6 +636,6 @@ pkgPackageManager::OrderResult pkgPackageManager::DoInstall(int statusFd)
    if(DoInstallPreFork() == Failed)
       return Failed;
    
-   return DoInstallPostFork();
+   return DoInstallPostFork(statusFd);
 }
 									/*}}}*/

+ 2 - 2
apt-pkg/policy.h

@@ -45,6 +45,8 @@ using std::vector;
 
 class pkgPolicy : public pkgDepCache::Policy
 {
+   protected:
+
    struct Pin
    {
       pkgVersionMatch::MatchType Type;
@@ -58,8 +60,6 @@ class pkgPolicy : public pkgDepCache::Policy
       string Pkg;
    };
    
-   protected:
-   
    Pin *Pins;
    signed short *PFPriority;
    vector<Pin> Defaults;

+ 110 - 5
apt-pkg/sourcelist.cc

@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description								/*{{{*/
-// $Id: sourcelist.cc,v 1.25 2004/06/07 23:08:00 mdz Exp $
+// $Id: sourcelist.cc,v 1.3 2002/08/15 20:51:37 niemeyer Exp $
 /* ######################################################################
 
    List of Sources
@@ -21,6 +21,13 @@
 #include <apti18n.h>
 
 #include <fstream>
+
+// CNC:2003-03-03 - This is needed for ReadDir stuff.
+#include <algorithm>
+#include <stdio.h>
+#include <dirent.h>
+#include <sys/stat.h>
+#include <unistd.h>
 									/*}}}*/
 
 using namespace std;
@@ -142,23 +149,66 @@ pkgSourceList::~pkgSourceList()
 /* */
 bool pkgSourceList::ReadMainList()
 {
-   return Read(_config->FindFile("Dir::Etc::sourcelist"));
+   // CNC:2003-03-03 - Multiple sources list support.
+   bool Res = true;
+#if 0
+   Res = ReadVendors();
+   if (Res == false)
+      return false;
+#endif
+
+   Reset();
+   // CNC:2003-11-28 - Entries in sources.list have priority over
+   //                  entries in sources.list.d.
+   string Main = _config->FindFile("Dir::Etc::sourcelist");
+   if (FileExists(Main) == true)
+      Res &= ReadAppend(Main);   
+
+   string Parts = _config->FindDir("Dir::Etc::sourceparts");
+   if (FileExists(Parts) == true)
+      Res &= ReadSourceDir(Parts);
+   
+   return Res;
 }
 									/*}}}*/
+// CNC:2003-03-03 - Needed to preserve backwards compatibility.
+// SourceList::Reset - Clear the sourcelist contents			/*{{{*/
+// ---------------------------------------------------------------------
+/* */
+void pkgSourceList::Reset()
+{
+   for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
+      delete *I;
+   SrcList.erase(SrcList.begin(),SrcList.end());
+}
+									/*}}}*/
+// CNC:2003-03-03 - Function moved to ReadAppend() and Reset().
 // SourceList::Read - Parse the sourcelist file				/*{{{*/
 // ---------------------------------------------------------------------
 /* */
 bool pkgSourceList::Read(string File)
+{
+   Reset();
+   return ReadAppend(File);
+}
+									/*}}}*/
+// SourceList::ReadAppend - Parse a sourcelist file			/*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool pkgSourceList::ReadAppend(string File)
 {
    // Open the stream for reading
    ifstream F(File.c_str(),ios::in /*| ios::nocreate*/);
    if (!F != 0)
       return _error->Errno("ifstream::ifstream",_("Opening %s"),File.c_str());
    
+#if 0 // Now Reset() does this.
    for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
       delete *I;
    SrcList.erase(SrcList.begin(),SrcList.end());
-   char Buffer[300];
+#endif
+   // CNC:2003-12-10 - 300 is too short.
+   char Buffer[1024];
 
    int CurLine = 0;
    while (F.eof() == false)
@@ -172,7 +222,10 @@ bool pkgSourceList::Read(string File)
 
       
       char *I;
-      for (I = Buffer; *I != 0 && *I != '#'; I++);
+      // CNC:2003-02-20 - Do not break if '#' is inside [].
+      for (I = Buffer; *I != 0 && *I != '#'; I++)
+         if (*I == '[')
+	    for (I++; *I != 0 && *I != ']'; I++);
       *I = 0;
       
       const char *C = _strstrip(Buffer);
@@ -188,7 +241,7 @@ bool pkgSourceList::Read(string File)
 
       Type *Parse = Type::GetType(LineType.c_str());
       if (Parse == 0)
-	 return _error->Error(_("Type '%s' is not known on line %u in source list %s"),LineType.c_str(),CurLine,File.c_str());
+	 return _error->Error(_("Type '%s' is not known in on line %u in source list %s"),LineType.c_str(),CurLine,File.c_str());
       
       // Vendor name specified
       if (C[0] == '[')
@@ -259,3 +312,55 @@ bool pkgSourceList::GetIndexes(pkgAcquire *Owner, bool GetAll) const
    return true;
 }
 									/*}}}*/
+// CNC:2003-03-03 - By Anton V. Denisov <avd@altlinux.org>.
+// SourceList::ReadSourceDir - Read a directory with sources files
+// Based on ReadConfigDir()						/*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool pkgSourceList::ReadSourceDir(string Dir)
+{
+   DIR *D = opendir(Dir.c_str());
+   if (D == 0)
+      return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str());
+
+   vector<string> List;
+   
+   for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D))
+   {
+      if (Ent->d_name[0] == '.')
+	 continue;
+
+      // CNC:2003-12-02 Only accept .list files as valid sourceparts
+      if (flExtension(Ent->d_name) != "list")
+	 continue;
+      
+      // Skip bad file names ala run-parts
+      const char *C = Ent->d_name;
+      for (; *C != 0; C++)
+	 if (isalpha(*C) == 0 && isdigit(*C) == 0
+             && *C != '_' && *C != '-' && *C != '.')
+	    break;
+      if (*C != 0)
+	 continue;
+      
+      // Make sure it is a file and not something else
+      string File = flCombine(Dir,Ent->d_name);
+      struct stat St;
+      if (stat(File.c_str(),&St) != 0 || S_ISREG(St.st_mode) == 0)
+	 continue;
+      
+      List.push_back(File);      
+   }   
+   closedir(D);
+   
+   sort(List.begin(),List.end());
+
+   // Read the files
+   for (vector<string>::const_iterator I = List.begin(); I != List.end(); I++)
+      if (ReadAppend(*I) == false)
+	 return false;
+   return true;
+
+}
+									/*}}}*/
+

+ 5 - 0
apt-pkg/sourcelist.h

@@ -77,6 +77,11 @@ class pkgSourceList
 
    bool ReadMainList();
    bool Read(string File);
+
+   // CNC:2003-03-03
+   void Reset();
+   bool ReadAppend(string File);
+   bool ReadSourceDir(string Dir);
    
    // List accessors
    inline const_iterator begin() const {return SrcList.begin();};

+ 1 - 0
buildlib/archtable

@@ -11,6 +11,7 @@ sparc	sparc
 sparc64	sparc
 alpha.*	alpha
 m68k	m68k
+arm.*b	armeb
 arm.*	arm
 powerpc	powerpc
 ppc	powerpc

+ 1 - 0
buildlib/sizetable

@@ -11,6 +11,7 @@
 # The format is:-
 # CPU endian sizeof: char, int, short, long
 i386    little  1 4 2 4
+armeb   big     1 4 2 4
 arm     little  1 4 2 4
 alpha   little  1 4 2 8
 mipsel  little  1 4 2 4

+ 10 - 4
cmdline/acqprogress.cc

@@ -274,10 +274,16 @@ bool AcqTextStatus::MediaChange(string Media,string Drive)
 	    Media.c_str(),Drive.c_str());
 
    char C = 0;
+   bool bStatus = true;
    while (C != '\n' && C != '\r')
-      read(STDIN_FILENO,&C,1);
-   
-   Update = true;
-   return true;
+   {
+      int len = read(STDIN_FILENO,&C,1);
+      if(C == 'c' || len <= 0)
+	 bStatus = false;
+   }
+
+   if(bStatus)
+      Update = true;
+   return bStatus;
 }
 									/*}}}*/

+ 3 - 3
cmdline/apt-cdrom.cc

@@ -75,7 +75,7 @@ string pkgCdromTextStatus::PromptLine(const char *Text)
 
 bool pkgCdromTextStatus::AskCdromName(string &name) 
 {
-   cout << "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'" << flush;
+   cout << _("Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'") << flush;
    name = PromptLine("");
 	 
    return true;
@@ -90,7 +90,7 @@ void pkgCdromTextStatus::Update(string text, int current)
 
 bool pkgCdromTextStatus::ChangeCdrom() 
 {
-   Prompt("Please insert a Disc in the drive and press enter");
+   Prompt(_("Please insert a Disc in the drive and press enter"));
    return true;
 }
 
@@ -114,7 +114,7 @@ bool DoAdd(CommandLine &)
    pkgCdrom cdrom;
    res = cdrom.Add(&log);
    if(res)
-      cout << "Repeat this process for the rest of the CDs in your set." << endl;
+      cout << _("Repeat this process for the rest of the CDs in your set.") << endl;
    return res;
 }
 									/*}}}*/

+ 42 - 14
cmdline/apt-get.cc

@@ -67,7 +67,7 @@ ostream c0out(0);
 ostream c1out(0);
 ostream c2out(0);
 ofstream devnull("/dev/null");
-unsigned int ScreenWidth = 80;
+unsigned int ScreenWidth = 80 - 1; /* - 1 for the cursor */
 
 // class CacheFile - Cover class for some dependency cache functions	/*{{{*/
 // ---------------------------------------------------------------------
@@ -1191,24 +1191,54 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
    string VerTag;
    string TmpSrc = Name;
    string::size_type Slash = TmpSrc.rfind('=');
+
+   // honor default release
+   string DefRel = _config->Find("APT::Default-Release");
+   pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
+
    if (Slash != string::npos)
    {
       VerTag = string(TmpSrc.begin() + Slash + 1,TmpSrc.end());
       TmpSrc = string(TmpSrc.begin(),TmpSrc.begin() + Slash);
+   } 
+   else  if(!Pkg.end() && DefRel.empty() == false)
+   {
+      // we have a default release, try to locate the pkg. we do it like
+      // this because GetCandidateVer() will not "downgrade", that means
+      // "apt-get source -t stable apt" won't work on a unstable system
+      for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; 
+	   Ver++)
+      {
+	 for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false;
+	      VF++)
+	 {
+	    /* If this is the status file, and the current version is not the
+	       version in the status file (ie it is not installed, or somesuch)
+	       then it is not a candidate for installation, ever. This weeds
+	       out bogus entries that may be due to config-file states, or
+	       other. */
+	    if ((VF.File()->Flags & pkgCache::Flag::NotSource) == 
+		pkgCache::Flag::NotSource && Pkg.CurrentVer() != Ver)
+	    continue;
+	    
+	    //std::cout << VF.File().Archive() << std::endl;
+	    if(VF.File().Archive() && (VF.File().Archive() == DefRel)) 
+	    {
+	       VerTag = Ver.VerStr();
+	       break;
+	    }
+	 }
+      }
    }
-   
+
    /* Lookup the version of the package we would install if we were to
       install a version and determine the source package name, then look
-      in the archive for a source package of the same name. In theory
-      we could stash the version string as well and match that too but
-      today there aren't multi source versions in the archive. */
-   if (_config->FindB("APT::Get::Only-Source") == false && 
-       VerTag.empty() == true)
+      in the archive for a source package of the same name. */
+   if (_config->FindB("APT::Get::Only-Source") == false)
    {
-      pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
       if (Pkg.end() == false)
       {
-	 pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);      
+	 pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);
 	 if (Ver.end() == false)
 	 {
 	    pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList());
@@ -1266,10 +1296,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
       }      
    }
    
-   if (Last == 0)
-      return 0;
-   
-   if (Last->Jump(Offset) == false)
+   if (Last == 0 || Last->Jump(Offset) == false)
       return 0;
    
    return Last;
@@ -1716,7 +1743,7 @@ bool DoInstall(CommandLine &CmdL)
    // See if we need to prompt
    if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
       return InstallPackages(Cache,false,false);
-   
+
    return InstallPackages(Cache,false);   
 }
 									/*}}}*/
@@ -2070,6 +2097,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);
 	    }	    
 	 }

+ 1 - 1
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.42.4")
 PACKAGE="apt"
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_SUBST(PACKAGE)

+ 1 - 0
debian/apt-utils.examples

@@ -0,0 +1 @@
+doc/examples/apt-ftparchive.conf

+ 10 - 4
debian/apt.cron.daily

@@ -95,9 +95,9 @@ check_size_constraints()
 
     # check age
     if [ ! $MaxAge -eq 0 ] && [ ! $MinAge -eq 0 ]; then
-	find $Cache -name "*.deb"  -mtime +$MaxAge -and -not -mtime -$MinAge -print0 | xargs -r -0 rm -f
+	find $Cache -name "*.deb"  \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f
     elif [ ! $MaxAge -eq 0 ]; then
-	find $Cache -name "*.deb"  -mtime +$MaxAge -print0 | xargs -r -0 rm -f
+	find $Cache -name "*.deb"  -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f
     fi
     
     # check size
@@ -120,8 +120,14 @@ check_size_constraints()
 
 	    # check for MinAge of the file
 	    if [ ! $MinAge -eq 0 ]; then 
-		mtime=$(date --date=$(date -r $file --iso-8601) +%s)
-		delta=$(($now-$mtime))
+		# check both ctime and mtime 
+		mtime=$(stat -c %Y $file)
+		ctime=$(stat -c %Z $file)
+		if [ $mtime -gt $ctime ]; then
+		    delta=$(($now-$mtime))
+		else
+		    delta=$(($now-$ctime))
+		fi
 		#echo "$file ($delta), $MinAge"
 		if [ $delta -le $MinAge ]; then
 		    #echo "Skiping $file (delta=$delta)"

+ 1 - 0
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

+ 110 - 3
debian/changelog

@@ -1,11 +1,118 @@
-apt (0.6.40.2) unstable; urgency=low
+apt (0.6.42.4) unstable; urgency=low
+
+  * Merge bubulle@debian.org--2005/apt--main--0 up to patch-131:  
+    * zh_CN.po: Completed to 507 strings(Closes: #338267)
+    * gl.po: Completed to 510 strings (Closes: #338356)
+  * added support for "/etc/apt/sources.list.d" directory 
+    (closes: #66325)
+  
+ -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 16 Nov 2005 17:13:05 +0100
+
+apt (0.6.42.3) unstable; urgency=low
+
+  * Merge bubulle@debian.org--2005/apt--main--0 up to patch-129:
+    - patch-118: Russian translation update by Yuri Kozlov (closes: #335164)
+    - patch-119: add update-po as a pre-req for binary (closes: #329910)
+    - patch-121: Complete French translation
+    - patch-125: Fixed localization of y/n questions in German translation 
+                 (closes: #337078)
+    - patch-126: Swedish translation update (closes: #337163)
+    - patch-127: Complete Tagalog translation (closes: #337306)
+    - patch-128: Danish translation update (closes: #337949)
+    - patch-129: Basque translation update (closes: #338101)
+  * cmdline/apt-get.cc:
+    - bufix in FindSrc  (closes: #335213, #337910)
+  * added armeb to archtable (closes: #333599)
+  * with --allow-unauthenticated use the old fallback behaviour for
+    sources (closes: #335112)
+   
+ -- Michael Vogt <mvo@debian.org>  Wed,  9 Nov 2005 07:22:31 +0100
+
+apt (0.6.42.2) unstable; urgency=high
+
+  * NMU (approved by maintainer)
+  * Add AMD64 archive signing key to debian-archive.gpg (closes: #336500).
+  * Add big-endian arm (armeb) support (closes: #333599).
+  * Priority high to get the AMD key into testing ASAP.
+
+ -- Frans Pop <fjp@debian.org>  Sun, 30 Oct 2005 21:29:11 +0100
+ 
+apt (0.6.42.1) unstable; urgency=low
+
+  * fix a incorrect example in the apt_prefrences man page
+    (thanks to Filipus Klutiero, closes: #282918)
+  * apt-pkg/pkgrecords.cc:
+    - revert patch from last version, it causes trouble on alpha 
+      and ia64 (closes: #335102, #335103)
+  * cmdline/apt-get.cc:
+    - be extra carefull in FindSrc (closes: #335213)
+
+ -- Michael Vogt <mvo@debian.org>  Sat, 22 Oct 2005 23:44:35 +0200
+
+apt (0.6.42) unstable; urgency=low
+
+  * apt-pkg/cdrom.cc:
+    - unmount the cdrom when apt failed to locate any package files
+  * allow cdrom failures and fallback to other sources in that case
+    (closes: #44135)
+  * better error text when dpkg-source fails 
+  * Merge bubulle@debian.org--2005/apt--main--0 up to patch-115:
+    - patch-99: Added Galician translation
+    - patch-100: Completed Danish translation (Closes: #325686)
+    - patch-104: French translation completed
+    - patch-109: Italian translation completed
+    - patch-112: Swedish translation update 
+    - patch-115: Basque translation completed (Closes: #333299)
+  * applied french man-page update (thanks to Philippe Batailler)
+    (closes: #316638, #327456)
+  * fix leak in the mmap code, thanks to Daniel Burrows for the
+    patch (closes: #250583)
+  * support for apt-get [build-dep|source] -t (closes: #152129)
+  * added "APT::Authentication::TrustCDROM" option to make the life
+    for the installer people easier (closes: #334656)
+  * fix crash in apt-ftparchive (thanks to Bastian Blank for the patch)
+    (closes: #334671)
+  * apt-pkg/contrib/md5.cc:
+    - fix a alignment problem on sparc64 that gives random bus errors
+      (thanks to Fabbione for providing a test-case)
+  * init the default ScreenWidth to 79 columns by default 
+    (Closes: #324921)
+  * cmdline/apt-cdrom.cc: 
+    - fix some missing gettext() calls (closes: #334539)
+  * doc/apt-cache.8.xml: fix typo (closes: #334714)
+  
+ -- Michael Vogt <mvo@debian.org>  Wed, 19 Oct 2005 22:02:09 +0200
+
+apt (0.6.41) unstable; urgency=low
 
   * improved the support for "error" and "conffile" reporting from
     dpkg, added the format to README.progress-reporting
   * added README.progress-reporting to the apt-doc package
-  * automatic removal of unused dependencies
+  * improved the network timeout handling, if a index file from a 
+    sources.list times out or EAI_AGAIN is returned from getaddrinfo, 
+    don't try to get the other files from that entry
+  * Support architecture-specific extra overrides
+    (closes: #225947). Thanks to  Anthony Towns for idea and
+    the patch, thanks to Colin Watson for testing it.
+  * Javier Fernandez-Sanguino Pen~a:
+    - Added a first version of an apt-secure.8 manpage, and modified
+      apt-key and apt.end accordingly. Also added the 'update'
+      argument to apt-key which was previously not documented 
+      (Closes: #322120)
+  * Andreas Pakulat:
+    - added example apt-ftparchive.conf file to doc/examples 
+      (closes: #322483)
+  * Fix a incorrect example in the man-page (closes: #282918)
+  * Fix a bug for very long lines in the apt-cdrom code (closes: #280356)
+  * Fix a manual page bug (closes: #316314)
+  * Do md5sum checking for file and cdrom method (closes: #319142)
+  * Change pkgPolicy::Pin from private to protected to let subclasses
+    access it too (closes: #321799)
+  * add default constructor for PrvIterator (closes: #322267)
+  * Reread status configuration on debSystem::Initialize() 
+    (needed for apt-proxy, thanks to Otavio for this patch)
   
- -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 18 Aug 2005 11:09:25 +0200
+ -- Michael Vogt <mvo@debian.org>  Mon,  5 Sep 2005 22:59:03 +0200
 
 apt (0.6.40.1) unstable; urgency=low
 

+ 1 - 1
debian/control

@@ -14,7 +14,7 @@ Priority: important
 Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
 Provides: ${libapt-pkg:provides}
 Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, gnupg
-Section: base
+Section: admin
 Description: Advanced front-end for dpkg
  This is Debian's next generation front-end for the dpkg package manager.
  It provides the apt-get utility and APT dselect method that provides a 

+ 2 - 1
debian/rules

@@ -209,7 +209,7 @@ apt: build debian/shlibs.local
 
 	cp debian/bugscript debian/$@/usr/share/bug/apt/script
 
-	cp share/ubuntu-archive.gpg debian/$@/usr/share/$@
+	cp share/debian-archive.gpg debian/$@/usr/share/$@
 
 #	head -n 500 ChangeLog > debian/ChangeLog
 
@@ -269,6 +269,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$@

+ 1 - 1
doc/apt-cache.8.xml

@@ -214,7 +214,7 @@ Reverse Provides:
      </varlistentry>
 
      <varlistentry><term>rdepends <replaceable>pkg(s)</replaceable></term>
-     <listitem><para><literal>rdepends</literal>shows a listing of each reverse dependency a
+     <listitem><para><literal>rdepends</literal> shows a listing of each reverse dependency a
       package has.</para></listitem>
      </varlistentry>
 

+ 43 - 4
doc/apt-key.8.xml

@@ -68,17 +68,56 @@
      <para>
 
        List trusted keys.
+
      </para>
 
      </listitem>
      </varlistentry>
+
+     <varlistentry><term>update</term>
+     <listitem>
+     <para>
+
+       Update the local keyring with the keyring of Debian archive
+       keys and removes from the keyring the archive keys which are no
+       longer valid.
+
+     </para>
+
+     </listitem>
+     </varlistentry>
+   </variablelist>
+</refsect1>
+
+ <refsect1><title>Files</title>
+   <variablelist>
+     <varlistentry><term><filename>/etc/apt/trusted.gpg</filename></term>
+     <listitem><para>Keyring of local trusted keys, new keys will be added here.</para></listitem>
+     </varlistentry>
+
+     <varlistentry><term><filename>/etc/apt/trustdb.gpg</filename></term>
+     <listitem><para>Local trust database of archive keys.</para></listitem>
+     </varlistentry>
+
+     <varlistentry><term><filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename></term>
+     <listitem><para>Keyring of Debian archive trusted keys.</para></listitem>
+     </varlistentry>
+
+     <varlistentry><term><filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename></term>
+     <listitem><para>Keyring of Debian archive removed trusted keys.</para></listitem>
+     </varlistentry>
+
+
+
    </variablelist>
+
 </refsect1>
 
-<!--  <refsect1><title>See Also</title> -->
-<!--    <para> -->
-<!--    &apt-conf;, &apt-get;, &sources-list; -->
-<!--  </refsect1> -->
+<refsect1><title>See Also</title>
+<para>
+&apt-get;, &apt-secure;
+</para>
+</refsect1>
 
  &manbugs;
  &manauthor;

+ 209 - 0
doc/apt-secure.8.xml

@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!ENTITY % aptent SYSTEM "apt.ent">
+%aptent;
+
+]>
+
+<refentry>
+ &apt-docinfo;
+ 
+ <refmeta>
+   <refentrytitle>apt-secure</refentrytitle>
+   <manvolnum>8</manvolnum>
+ </refmeta>
+
+<!-- NOTE: This manpage has been written based on the
+     Securing Debian Manual ("Debian Security
+     Infrastructure" chapter) and on documentation
+     available at the following sites:
+     http://wiki.debian.net/?apt06
+     http://www.syntaxpolice.org/apt-secure/
+     http://www.enyo.de/fw/software/apt-secure/
+-->
+<!-- TODO: write a more verbose example of how it works with 
+     a sample similar to 
+     http://www.debian-administration.org/articles/174
+     ?
+--> 
+
+ 
+ <!-- Man page title -->
+ <refnamediv>
+    <refname>apt-secure</refname>
+    <refpurpose>Archive authentication support for APT</refpurpose>
+ </refnamediv>
+
+ <refsect1><title>Description</title>
+   <para>
+   Starting with version 0.6, <command>apt</command> 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.
+   </para>
+
+   <para>
+   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. <command>apt-get</command> will currently only warn
+   for unsigned archives, future releases might force all sources
+   to be verified before downloading packages from them.
+   </para>
+
+   <para>
+   The package frontends &apt-get;, &aptitude; and &synaptic; support this new
+   authentication feature.
+   </para>
+</refsect1>
+
+ <refsect1><title>Trusted archives</title> 
+
+   <para> 
+   The chain of trust from an apt archive to the end user is made up of
+   different steps. <command>apt-secure</command> 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.
+   </para>
+
+   <para>apt-secure does not review signatures at a
+   package level. If you require tools to do this you should look at
+   <command>debsig-verify</command> and
+   <command>debsign</command> (provided in the debsig-verify and
+   devscripts packages respectively).</para>
+
+   <para>
+   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.
+   </para>
+
+   <para>
+   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.
+   </para>
+
+   <para>
+   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.
+   </para>
+
+   <para>Notice that this is distinct from checking signatures on a
+   per package basis. It is designed to prevent two possible attacks:
+   </para>
+
+    <itemizedlist>
+       <listitem><para><literal>Network "man in the middle"
+       attacks</literal>. 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).</para></listitem>
+ 
+       <listitem><para><literal>Mirror network compromise</literal>.
+        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.</para></listitem>
+    </itemizedlist>
+
+   <para>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.</para>
+</refsect1>
+
+ <refsect1><title>User configuration</title>
+   <para>
+   <command>apt-key</command> 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.
+   </para>
+   <para>
+   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 <command>apt-key</command> and
+   then run <command>apt-get update</command> so that apt can download
+   and verify the <filename>Release.gpg</filename> files from the archives you
+   have configured.
+   </para>
+</refsect1>
+
+<refsect1><title>Archive configuration</title>
+   <para>
+   If you want to provide archive signatures in an archive under your
+   maintenance you have to:
+   </para>
+
+     <itemizedlist>
+       <listitem><para><literal>Create a toplevel Release
+       file</literal>.  if it does not exist already. You can do this
+       by running <command>apt-ftparchive release</command> 
+       (provided inftp apt-utils).</para></listitem>
+   
+      <listitem><para><literal>Sign it</literal>. You can do this by running
+      <command>gpg -abs -o Release.gpg Release</command>.</para></listitem>
+
+      <listitem><para><literal>Publish the key fingerprint</literal>,
+      that way your users will know what key they need to import in
+      order to authenticate the files in the
+      archive.</para></listitem>
+
+    </itemizedlist>
+
+    <para>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.</para>
+
+</refsect1>
+
+<refsect1><title>See Also</title> 
+<para> 
+&apt-conf;, &apt-get;, &sources-list;, &apt-key;, &apt-archive;,
+&debsign; &debsig-verify;, &gpg;
+</para>
+
+<para>For more backgound information you might want to review the
+<ulink
+url="http://www.debian.org/doc/manuals/securing-debian-howto/ch7.en.html">Debian
+Security Infrastructure</ulink> chapter of the Securing Debian Manual
+(available also in the harden-doc package) and the
+<ulink url="http://www.cryptnet.net/fdp/crypto/strong_distro.html"
+>Strong Distribution HOWTO</ulink> by V. Alex Brennen.  </para>
+
+</refsect1>
+
+ &manbugs;
+ &manauthor;
+
+<refsect1><title>Manpage Authors</title> 
+
+<para>This man-page is based on the work of Javier Fernández-Sanguino
+Peña, Isaac Jones, Colin Walters, Florian Weimer and Michael Vogt.
+</para>
+
+</refsect1>
+ 
+
+</refentry>
+

+ 1 - 1
doc/apt.conf.5.xml

@@ -284,7 +284,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    <literal>sourcelist</literal> gives the location of the sourcelist and 
    <literal>main</literal> is the default configuration file (setting has no effect,
    unless it is done from the config file specified by 
-   <envar>APT_CONFIG</envar>.</para>
+   <envar>APT_CONFIG</envar>).</para>
 
    <para>The <literal>Dir::Parts</literal> setting reads in all the config fragments in 
    lexical order from the directory specified. After this is done then the

+ 49 - 0
doc/apt.ent

@@ -44,6 +44,25 @@
   </citerefentry>"
 >
 
+<!ENTITY apt-key "<citerefentry>
+    <refentrytitle><command>apt-key</command></refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY apt-secure "<citerefentry>
+    <refentrytitle>apt-secure</refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY apt-archive "<citerefentry>
+    <refentrytitle><filename>apt-archive</filename></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
+
+
 <!ENTITY sources-list "<citerefentry>
     <refentrytitle><filename>sources.list</filename></refentrytitle>
     <manvolnum>5</manvolnum>
@@ -91,6 +110,36 @@
     <manvolnum>8</manvolnum>
   </citerefentry>"
 >
+
+<!ENTITY aptitude "<citerefentry>
+    <refentrytitle><command>aptitude</command></refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY synaptic "<citerefentry>
+    <refentrytitle><command>synaptic</command></refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY debsign "<citerefentry>
+    <refentrytitle><command>debsign</command></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY debsig-verify "<citerefentry>
+    <refentrytitle><command>debsig-verify</command></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY gpg "<citerefentry>
+    <refentrytitle><command>gpg</command></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
     
 <!-- Boiler plate docinfo section -->
 <!ENTITY apt-docinfo "

+ 46 - 0
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";
+	};
+};

+ 5 - 0
doc/examples/configure-index

@@ -76,6 +76,11 @@ APT
      NoAct "false";
   };
 
+  Authentication
+  {
+     TrustCDROM "false";            // consider the CDROM always trusted
+  };
+
   GPGV
   {
      TrustedKeyring "/etc/apt/trusted.gpg";

+ 2 - 2
doc/fr/apt-config.fr.8.xml

@@ -57,7 +57,7 @@ des commandes suivantes doit 
 <listitem><para>
 Le terme shell est utilisé pour accéder aux informations de configuration
 depuis un script shell. Deux arguments doivent lui être donnés&nbsp;; 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
 </programlisting></informalexample>
 
-<para>La variable d'environnement de shell $OPTS sera définie par la valeur de
+<para>La variable d'environnement du shell $OPTS sera définie par la valeur de
 MyApp::Options ou, par défaut, la valeur -f.
      </para>
 <para>

+ 39 - 5
doc/fr/apt-key.fr.8.xml

@@ -34,7 +34,7 @@
    <para>
    <command>apt-key</command> 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. 
    </para>
 </refsect1>
 
@@ -73,13 +73,47 @@ Afficher la liste des cl
 
      </listitem>
      </varlistentry>
+
+     <varlistentry><term>update</term>
+     <listitem>
+     <para>
+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.
+</para>
+	</listitem>
+      </varlistentry>
+
    </variablelist>
 </refsect1>
 
-<!--  <refsect1><title>See Also</title> -->
-<!--    <para> -->
-<!--    &apt-conf;, &apt-get;, &sources-list; -->
-<!--  </refsect1> -->
+ <refsect1><title>Fichiers</title>
+   <variablelist>
+     <varlistentry><term><filename>/etc/apt/trusted.gpg</filename></term>
+<listitem><para>Trousseau de clés locales fiables, les nouvelles clés sont ajoutées ici.</para>
+</listitem>
+     </varlistentry>
+
+     <varlistentry><term><filename>/etc/apt/trustdb.gpg</filename></term>
+     <listitem><para>Base de données locale fiable des clés de l'archive.</para></listitem>
+     </varlistentry>
+
+   <varlistentry><term><filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename></term>
+     <listitem><para>Trousseau des clés fiables de l'archive Debian.</para></listitem>
+     </varlistentry>
+
+     <varlistentry><term><filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>
+</term>
+    <listitem><para>>Trousseau des clés fiables supprimées de l'archive Debian.</para></listitem>
+     </varlistentry>
+
+   </variablelist>
+  </refsect1>
+
+<refsect1><title>Voir aussi</title>
+<para>
+&apt-get;, &apt-secure;
+</para>
+</refsect1>
 
  &manbugs;
  &manauthor;

+ 217 - 0
doc/fr/apt-secure.fr.8.xml

@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="iso-8859-15" standalone="no"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!ENTITY % aptent SYSTEM "apt.ent.fr">
+%aptent;
+
+]>
+
+<refentry lang="fr">
+ &apt-docinfo;
+ 
+ <refmeta>
+   <refentrytitle>apt-secure</refentrytitle>
+   <manvolnum>8</manvolnum>
+ </refmeta>
+
+<!-- NOTE: This manpage has been written based on the
+     Securing Debian Manual ("Debian Security
+     Infrastructure" chapter) and on documentation
+     available at the following sites:
+     http://wiki.debian.net/?apt06
+     http://www.syntaxpolice.org/apt-secure/
+     http://www.enyo.de/fw/software/apt-secure/
+-->
+<!-- TODO: write a more verbose example of how it works with 
+     a sample similar to 
+     http://www.debian-administration.org/articles/174
+     ?
+--> 
+
+ 
+ <!-- Man page title -->
+ <refnamediv>
+    <refname>apt-secure</refname>
+    <refpurpose>Certification d'archive avec APT</refpurpose>
+ </refnamediv>
+
+ <refsect1><title>Description</title>
+   <para>
+   Depuis sa version 0.6, <command>apt</command> 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.
+   </para>
+
+   <para>
+   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, <command>apt-get</command> ne signale que les archives sans 
+signature&nbsp;; les prochaines versions pourraient rendre obligatoire la 
+vérification des sources avant tout téléchargement de paquet.
+   </para>
+
+   <para>
+   Les paquets &apt-get;, &aptitude; et &synaptic; possèdent cette nouvelle 
+fonction de certification. 
+
+   </para>
+</refsect1>
+
+ <refsect1><title>Archives fiables</title> 
+
+   <para> 
+   D'une archive apt jusqu'à l'utilisateur, la confiance se construit en 
+plusieurs étapes. <command>Apt-secure</command> 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. 
+
+   </para>
+
+   <para><command>Apt-secure</command> n'examine pas la signature d'un 
+paquet. Certains programmes peuvent le faire comme 
+<command>debsig-verify</command> ou <command>debsign</command>, qu'on peut 
+trouver dans les paquets debsig-verify et devscripts.
+</para>
+
+   <para>
+   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é.
+
+   </para>
+
+   <para>
+   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.
+
+   </para>
+
+   <para>
+   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.
+
+   </para>
+
+   <para>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&nbsp;: 
+
+   </para>
+
+    <itemizedlist>
+       <listitem><para>
+L'attaque de type <quote>homme au milieu</quote>. 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).
+</para></listitem>
+ 
+       <listitem><para>
+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.
+</para></listitem>
+    </itemizedlist>
+
+   <para>
+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.
+</para>
+</refsect1>
+
+ <refsect1><title>Configuration</title>
+   <para>
+   Le programme qui gère la liste des clés utilisées par apt s'appelle 
+<command>apt-key</command>. 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. 
+
+   </para>
+   <para>
+   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 <command>apt-key</command> et vous lancez la commande 
+<command>apt-get update</command> pour télécharger et vérifier le fichier 
+<filename>Release.gpg</filename> de l'archive que vous avez configurée.
+
+   </para>
+</refsect1>
+
+<refsect1><title>Configuration d'une archive</title>
+   <para>
+   Si vous voulez signer les archives dont vous avez la responsabilité, vous 
+devez&nbsp;:
+
+   </para>
+
+     <itemizedlist>
+       <listitem><para>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 <command>apt-ftparchive release</command> 
+(fournie dans le paquet apt-utils)&nbsp;;
+</para></listitem>
+   
+      <listitem><para>
+le signer, avec la commande <command>gpg -abs -o Release.gpg Release</command>&nbsp;;
+</para></listitem>
+
+      <listitem><para>
+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.
+</para></listitem>
+
+    </itemizedlist>
+
+    <para>Chaque fois que le contenu de l'archive change, le responsable doit refaire 
+les deux premières étapes.
+</para>
+
+</refsect1>
+
+<refsect1><title>Voir aussi</title> 
+<para> 
+&apt-conf;, &apt-get;,&sources-list;, &apt-key;, &apt-archive;, &debsign;, 
+&debsig-verify;, &gpg;
+
+</para>
+
+<para>Pour des informations plus substantielles, vous pouvez consulter 
+<ulink url="http://www.debian.org/doc/manuals/securing-debian-howto/ch7.en.html">
+l'infrastructure debian pour la sécurité</ulink> un chapitre du manuel Debian sur la sécurité 
+(disponible dans le paquet harden-doc) et le 
+<ulink url="http://www.cryptnet.net/fdp/crypto/strong_distro.html">Strong Distribution HOWTO</ulink> par V. Alex Brennen.
+  </para>
+
+</refsect1>
+
+ &manbugs;
+ &manauthor;
+
+<refsect1><title>Auteurs</title> 
+
+<para>
+Cette page a été écrite à partir des travaux de Javier Fernández-Sanguino Peña, Isaac 
+Jones, Colin Walters, Florian Weimer et Michael Vogt.
+</para>
+  </refsect1>
+&traducteur;
+ 
+</refentry>

+ 48 - 0
doc/fr/apt.ent.fr

@@ -42,6 +42,24 @@
     <manvolnum>5</manvolnum>
   </citerefentry>">
 
+<!ENTITY apt-key "<citerefentry>
+    <refentrytitle><command>apt-key</command></refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY apt-secure "<citerefentry>
+    <refentrytitle>apt-secure</refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY apt-archive "<citerefentry>
+    <refentrytitle><filename>apt-archive</filename></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
+
 <!ENTITY sources-list "<citerefentry>
     <refentrytitle><filename>sources.list</filename></refentrytitle>
     <manvolnum>5</manvolnum>
@@ -89,6 +107,36 @@
     <manvolnum>8</manvolnum>
   </citerefentry>">
     
+<!ENTITY aptitude "<citerefentry>
+    <refentrytitle><command>aptitude</command></refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY synaptic "<citerefentry>
+    <refentrytitle><command>synaptic</command></refentrytitle>
+    <manvolnum>8</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY debsign "<citerefentry>
+    <refentrytitle><command>debsign</command></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY debsig-verify "<citerefentry>
+    <refentrytitle><command>debsig-verify</command></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
+
+<!ENTITY gpg "<citerefentry>
+    <refentrytitle><command>gpg</command></refentrytitle>
+    <manvolnum>1</manvolnum>
+  </citerefentry>"
+>
+
 <!-- Boiler plate docinfo section -->
 <!ENTITY apt-docinfo "
  <refentryinfo>

+ 2 - 2
doc/fr/apt_preferences.fr.5.xml

@@ -7,7 +7,7 @@
 
 ]>
 
-<refentry>
+<refentry lang="fr">
 
  <refentryinfo>
    &apt-author.team;
@@ -208,7 +208,7 @@ d'
 <programlisting>
 Package: *
 Pin: release a=unstable
-Pin-Priority: 50
+Pin-Priority: 500
 </programlisting>
 
 <simpara>L'entrée suivante affecte une priorité haute à toutes les versions

+ 10 - 2
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 $< $@
+
 

+ 2 - 1
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)
 

+ 7 - 0
doc/sources.list.5.xml

@@ -46,6 +46,13 @@
    by using a #.</para>
  </refsect1>
  
+ <refsect1><title>sources.list.d</title>
+   <para>The <filename>/etc/apt/sources.list.d</filename> directory provides
+   a way to add sources.list entries in seperate files that end with 
+   <literal>.list</literal>. The format is the same as for the regular
+   <filename>sources.list</filename> file. </para>
+ </refsect1>
+
  <refsect1><title>The deb and deb-src types</title>
    <para>The <literal>deb</literal> type describes a typical two-level Debian
    archive, <filename>distribution/component</filename>. Typically,

+ 3 - 2
ftparchive/writer.cc

@@ -581,8 +581,6 @@ bool SourcesWriter::DoPackage(string FileName)
 	 auto_ptr<Override::Item> Itm(BOver.GetItem(BinList[I]));
 	 if (Itm.get() == 0)
 	    continue;
-	 if (OverItem.get() == 0)
-	    OverItem = Itm;
 
 	 unsigned char NewPrioV = debListParser::GetPrio(Itm->Priority);
 	 if (NewPrioV < BestPrioV || BestPrio.empty() == true)
@@ -590,6 +588,9 @@ bool SourcesWriter::DoPackage(string FileName)
 	    BestPrioV = NewPrioV;
 	    BestPrio = Itm->Priority;
 	 }	 
+
+	 if (OverItem.get() == 0)
+	    OverItem = Itm;
       }
    }
    

+ 8 - 2
methods/cdrom.cc

@@ -13,6 +13,7 @@
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/fileutl.h>
+#include <apt-pkg/hashes.h>
 
 #include <sys/stat.h>
 #include <unistd.h>
@@ -165,8 +166,7 @@ bool CDROMMethod::Fetch(FetchItem *Itm)
       if (MediaFail(Get.Host,CDROM) == false)
       {
 	 CurrentID = "FAIL";
-	 Fail(_("Wrong CD-ROM"),true);
-	 return true;
+	 return _error->Error(_("Disk not found."));
       }
    }
    
@@ -180,6 +180,12 @@ bool CDROMMethod::Fetch(FetchItem *Itm)
       CurrentID = NewID;
    Res.LastModified = Buf.st_mtime;
    Res.Size = Buf.st_size;
+
+   Hashes Hash;
+   FileFd Fd(Res.Filename, FileFd::ReadOnly);
+   Hash.AddFD(Fd.Fd(), Fd.Size());
+   Res.TakeHashes(Hash);
+
    URIDone(Res);
    return true;
 }

+ 3 - 0
methods/connect.cc

@@ -166,8 +166,11 @@ bool Connect(string Host,int Port,const char *Service,int DefPort,int &Fd,
 	    }
 	    
 	    if (Res == EAI_AGAIN)
+	    {
+	       Owner->SetFailExtraMsg("\nFailReason: TmpResolveFailure");
 	       return _error->Error(_("Temporary failure resolving '%s'"),
 				    Host.c_str());
+	    }
 	    return _error->Error(_("Something wicked happened resolving '%s:%s' (%i)"),
 				 Host.c_str(),ServStr,Res);
 	 }

+ 7 - 1
methods/file.cc

@@ -15,6 +15,8 @@
 // Include Files							/*{{{*/
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/error.h>
+#include <apt-pkg/hashes.h>
+#include <apt-pkg/fileutl.h>
 
 #include <sys/stat.h>
 #include <unistd.h>
@@ -75,7 +77,11 @@ bool FileMethod::Fetch(FetchItem *Itm)
    
    if (Res.Filename.empty() == true)
       return _error->Error(_("File not found"));
-   
+
+   Hashes Hash;
+   FileFd Fd(Res.Filename, FileFd::ReadOnly);
+   Hash.AddFD(Fd.Fd(), Fd.Size());
+   Res.TakeHashes(Hash);
    URIDone(Res);
    return true;
 }

+ 29 - 0
po/ChangeLog

@@ -0,0 +1,29 @@
+2005-11-13   Kov Tchai  <tchaikov@sjtu.edu.cn>
+
+	* zh_CN.po: Completed to 507 strings
+	         Closes: #338267
+
+2005-11-09  Jacobo Tarrio  <jacobo@tarrio.org>
+
+	* gl.po: Completed to 510 strings
+	         Closes: #338356
+
+2005-11-08  Piarres Beobide  <pi@beobide.net>
+
+	* eu.po: Completed to 510 strings
+	         Closes: #338101
+
+2005-11-07  Claus Hindsgaul  <claus_h@image.dk>
+
+	* da.po: Completed to 510 strings
+	         Closes: #337949
+
+2005-11-04  Eric Pareja  <xenos@upm.edu.ph>
+
+	* tl.po: Completed to 510 strings
+	         Closes: #337306
+
+2005-11-04  Christian Perrier  <bubulle@debian.org>
+
+	* Changelog: added to better track down fixed issues
+

+ 131 - 104
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-02 18:56-0500\n"
+"POT-Creation-Date: 2005-11-16 17:15+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -148,7 +148,7 @@ msgstr ""
 
 #: cmdline/apt-cache.cc:1651 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
-#: cmdline/apt-get.cc:2375 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2409 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s %s compiled on %s %s\n"
 msgstr ""
@@ -192,6 +192,18 @@ msgid ""
 "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n"
 msgstr ""
 
+#: cmdline/apt-cdrom.cc:78
+msgid "Please provide a name for this Disc, such as 'Debian 2.1r1 Disk 1'"
+msgstr ""
+
+#: cmdline/apt-cdrom.cc:93
+msgid "Please insert a Disc in the drive and press enter"
+msgstr ""
+
+#: cmdline/apt-cdrom.cc:117
+msgid "Repeat this process for the rest of the CDs in your set."
+msgstr ""
+
 #: cmdline/apt-config.cc:41
 msgid "Arguments not in pairs"
 msgstr ""
@@ -414,12 +426,12 @@ msgstr ""
 msgid "Archive had no package field"
 msgstr ""
 
-#: ftparchive/writer.cc:394 ftparchive/writer.cc:602
+#: ftparchive/writer.cc:394 ftparchive/writer.cc:603
 #, c-format
 msgid "  %s has no override entry\n"
 msgstr ""
 
-#: ftparchive/writer.cc:437 ftparchive/writer.cc:688
+#: ftparchive/writer.cc:437 ftparchive/writer.cc:689
 #, c-format
 msgid "  %s maintainer is %s not %s\n"
 msgstr ""
@@ -523,7 +535,7 @@ msgstr ""
 msgid "Y"
 msgstr ""
 
-#: cmdline/apt-get.cc:141 cmdline/apt-get.cc:1532
+#: cmdline/apt-get.cc:141 cmdline/apt-get.cc:1565
 #, c-format
 msgid "Regex compilation error - %s"
 msgstr ""
@@ -682,11 +694,11 @@ msgstr ""
 msgid "Internal error, Ordering didn't finish"
 msgstr ""
 
-#: cmdline/apt-get.cc:790 cmdline/apt-get.cc:1831 cmdline/apt-get.cc:1864
+#: cmdline/apt-get.cc:790 cmdline/apt-get.cc:1864 cmdline/apt-get.cc:1897
 msgid "Unable to lock the download directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:800 cmdline/apt-get.cc:1912 cmdline/apt-get.cc:2123
+#: cmdline/apt-get.cc:800 cmdline/apt-get.cc:1945 cmdline/apt-get.cc:2157
 #: apt-pkg/cachefile.cc:67
 msgid "The list of sources could not be read."
 msgstr ""
@@ -715,7 +727,7 @@ msgstr ""
 msgid "After unpacking %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:845 cmdline/apt-get.cc:1978
+#: cmdline/apt-get.cc:845 cmdline/apt-get.cc:2011
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
@@ -749,7 +761,7 @@ msgstr ""
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 
-#: cmdline/apt-get.cc:960 cmdline/apt-get.cc:1337 cmdline/apt-get.cc:2021
+#: cmdline/apt-get.cc:960 cmdline/apt-get.cc:1364 cmdline/apt-get.cc:2054
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
@@ -758,7 +770,7 @@ msgstr ""
 msgid "Some files failed to download"
 msgstr ""
 
-#: cmdline/apt-get.cc:979 cmdline/apt-get.cc:2030
+#: cmdline/apt-get.cc:979 cmdline/apt-get.cc:2063
 msgid "Download complete and in download only mode"
 msgstr ""
 
@@ -850,63 +862,63 @@ msgstr ""
 msgid "Selected version %s (%s) for %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1285
+#: cmdline/apt-get.cc:1312
 msgid "The update command takes no arguments"
 msgstr ""
 
-#: cmdline/apt-get.cc:1298 cmdline/apt-get.cc:1437
+#: cmdline/apt-get.cc:1325 cmdline/apt-get.cc:1465
 msgid "Unable to lock the list directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:1356
+#: cmdline/apt-get.cc:1383
 msgid ""
 "Some index files failed to download, they have been ignored, or old ones "
 "used instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:1370
+#: cmdline/apt-get.cc:1397
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1395
+#: cmdline/apt-get.cc:1422
 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:1398 cmdline/apt-get.cc:1600
+#: cmdline/apt-get.cc:1425 cmdline/apt-get.cc:1633
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1402
+#: cmdline/apt-get.cc:1429
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1420
+#: cmdline/apt-get.cc:1448
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1519 cmdline/apt-get.cc:1555
+#: cmdline/apt-get.cc:1552 cmdline/apt-get.cc:1588
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1542
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Note, selecting %s for regex '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1572
+#: cmdline/apt-get.cc:1605
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1575
+#: cmdline/apt-get.cc:1608
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1587
+#: cmdline/apt-get.cc:1620
 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"
@@ -914,149 +926,154 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1595
+#: cmdline/apt-get.cc:1628
 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:1603
+#: cmdline/apt-get.cc:1636
 msgid "Broken packages"
 msgstr ""
 
-#: cmdline/apt-get.cc:1634
+#: cmdline/apt-get.cc:1667
 msgid "The following extra packages will be installed:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1705
+#: cmdline/apt-get.cc:1738
 msgid "Suggested packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1706
+#: cmdline/apt-get.cc:1739
 msgid "Recommended packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1726
+#: cmdline/apt-get.cc:1759
 msgid "Calculating upgrade... "
 msgstr ""
 
-#: cmdline/apt-get.cc:1729 methods/ftp.cc:702 methods/connect.cc:101
+#: cmdline/apt-get.cc:1762 methods/ftp.cc:702 methods/connect.cc:101
 msgid "Failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:1734
+#: cmdline/apt-get.cc:1767
 msgid "Done"
 msgstr ""
 
-#: cmdline/apt-get.cc:1799 cmdline/apt-get.cc:1807
+#: cmdline/apt-get.cc:1832 cmdline/apt-get.cc:1840
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1907
+#: cmdline/apt-get.cc:1940
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:1934 cmdline/apt-get.cc:2141
+#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:2175
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1981
+#: cmdline/apt-get.cc:2014
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1986
+#: cmdline/apt-get.cc:2019
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1989
+#: cmdline/apt-get.cc:2022
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1995
+#: cmdline/apt-get.cc:2028
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2026
+#: cmdline/apt-get.cc:2059
 msgid "Failed to fetch some archives."
 msgstr ""
 
-#: cmdline/apt-get.cc:2054
+#: cmdline/apt-get.cc:2087
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2066
+#: cmdline/apt-get.cc:2099
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2083
+#: cmdline/apt-get.cc:2100
+#, c-format
+msgid "Check if the 'dpkg-dev' package is installed.\n"
+msgstr ""
+
+#: cmdline/apt-get.cc:2117
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2102
+#: cmdline/apt-get.cc:2136
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2118
+#: cmdline/apt-get.cc:2152
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2146
+#: cmdline/apt-get.cc:2180
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2166
+#: cmdline/apt-get.cc:2200
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2218
+#: cmdline/apt-get.cc:2252
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2270
+#: cmdline/apt-get.cc:2304
 #, 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:2305
+#: cmdline/apt-get.cc:2339
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 
-#: cmdline/apt-get.cc:2330
+#: cmdline/apt-get.cc:2364
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2344
+#: cmdline/apt-get.cc:2378
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2348
+#: cmdline/apt-get.cc:2382
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2380
+#: cmdline/apt-get.cc:2414
 msgid "Supported modules:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2421
+#: cmdline/apt-get.cc:2455
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1310,7 +1327,8 @@ msgid "File %s/%s overwrites the one in the package %s"
 msgstr ""
 
 #: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750
-#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/acquire.cc:417 apt-pkg/clean.cc:38
+#: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324
+#: apt-pkg/acquire.cc:417 apt-pkg/clean.cc:38
 #, c-format
 msgid "Unable to read %s"
 msgstr ""
@@ -1446,27 +1464,31 @@ msgstr ""
 msgid "Unparsable control file"
 msgstr ""
 
-#: methods/cdrom.cc:113
+#: methods/cdrom.cc:114
 #, c-format
 msgid "Unable to read the cdrom database %s"
 msgstr ""
 
-#: methods/cdrom.cc:122
+#: methods/cdrom.cc:123
 msgid ""
 "Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update "
 "cannot be used to add new CD-ROMs"
 msgstr ""
 
-#: methods/cdrom.cc:130 methods/cdrom.cc:168
+#: methods/cdrom.cc:131
 msgid "Wrong CD-ROM"
 msgstr ""
 
-#: methods/cdrom.cc:163
+#: methods/cdrom.cc:164
 #, c-format
 msgid "Unable to unmount the CD-ROM in %s, it may still be in use."
 msgstr ""
 
-#: methods/cdrom.cc:177 methods/file.cc:77 methods/rsh.cc:264
+#: methods/cdrom.cc:169
+msgid "Disk not found."
+msgstr ""
+
+#: methods/cdrom.cc:177 methods/file.cc:79 methods/rsh.cc:264
 msgid "File not found"
 msgstr ""
 
@@ -1479,7 +1501,7 @@ msgstr ""
 msgid "Failed to set modification time"
 msgstr ""
 
-#: methods/file.cc:42
+#: methods/file.cc:44
 msgid "Invalid URI, local URIS must not start with //"
 msgstr ""
 
@@ -1670,17 +1692,17 @@ msgstr ""
 msgid "Could not resolve '%s'"
 msgstr ""
 
-#: methods/connect.cc:169
+#: methods/connect.cc:171
 #, c-format
 msgid "Temporary failure resolving '%s'"
 msgstr ""
 
-#: methods/connect.cc:171
+#: methods/connect.cc:174
 #, c-format
 msgid "Something wicked happened resolving '%s:%s' (%i)"
 msgstr ""
 
-#: methods/connect.cc:218
+#: methods/connect.cc:221
 #, c-format
 msgid "Unable to connect to %s %s:"
 msgstr ""
@@ -2079,23 +2101,23 @@ msgstr ""
 msgid "extra"
 msgstr ""
 
-#: apt-pkg/depcache.cc:89 apt-pkg/depcache.cc:118
+#: apt-pkg/depcache.cc:99 apt-pkg/depcache.cc:128
 msgid "Building dependency tree"
 msgstr ""
 
-#: apt-pkg/depcache.cc:90
+#: apt-pkg/depcache.cc:100
 msgid "Candidate versions"
 msgstr ""
 
-#: apt-pkg/depcache.cc:119
+#: apt-pkg/depcache.cc:129
 msgid "Dependency generation"
 msgstr ""
 
-#: apt-pkg/depcache.cc:140 apt-pkg/depcache.cc:159 apt-pkg/depcache.cc:163
+#: apt-pkg/depcache.cc:150 apt-pkg/depcache.cc:169 apt-pkg/depcache.cc:173
 msgid "Reading state information"
 msgstr ""
 
-#: apt-pkg/depcache.cc:179
+#: apt-pkg/depcache.cc:189
 #, c-format
 msgid "Failed to write StateFile %s"
 msgstr ""
@@ -2110,52 +2132,52 @@ msgstr ""
 msgid "Unable to parse package file %s (2)"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:87
+#: apt-pkg/sourcelist.cc:94
 #, c-format
 msgid "Malformed line %lu in source list %s (URI)"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:89
+#: apt-pkg/sourcelist.cc:96
 #, c-format
 msgid "Malformed line %lu in source list %s (dist)"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:92
+#: apt-pkg/sourcelist.cc:99
 #, c-format
 msgid "Malformed line %lu in source list %s (URI parse)"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:98
+#: apt-pkg/sourcelist.cc:105
 #, c-format
 msgid "Malformed line %lu in source list %s (absolute dist)"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:105
+#: apt-pkg/sourcelist.cc:112
 #, c-format
 msgid "Malformed line %lu in source list %s (dist parse)"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:156
+#: apt-pkg/sourcelist.cc:203
 #, c-format
 msgid "Opening %s"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:170
+#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426
 #, c-format
 msgid "Line %u too long in source list %s."
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:187
+#: apt-pkg/sourcelist.cc:240
 #, c-format
 msgid "Malformed line %u in source list %s (type)"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:191
+#: apt-pkg/sourcelist.cc:244
 #, c-format
-msgid "Type '%s' is not known on line %u in source list %s"
+msgid "Type '%s' is not known in on line %u in source list %s"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:199 apt-pkg/sourcelist.cc:202
+#: apt-pkg/sourcelist.cc:252 apt-pkg/sourcelist.cc:255
 #, c-format
 msgid "Malformed line %u in source list %s (vendor id)"
 msgstr ""
@@ -2204,22 +2226,27 @@ msgstr ""
 msgid "Downloading file %li of %li (%s remaining)"
 msgstr ""
 
-#: apt-pkg/acquire-worker.cc:112
+#: apt-pkg/acquire-worker.cc:113
 #, c-format
 msgid "The method driver %s could not be found."
 msgstr ""
 
-#: apt-pkg/acquire-worker.cc:161
+#: apt-pkg/acquire-worker.cc:162
 #, c-format
 msgid "Method %s did not start correctly"
 msgstr ""
 
-#: apt-pkg/init.cc:119
+#: apt-pkg/acquire-worker.cc:377
+#, c-format
+msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
+msgstr ""
+
+#: apt-pkg/init.cc:120
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/init.cc:135
+#: apt-pkg/init.cc:136
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 
@@ -2337,31 +2364,31 @@ msgstr ""
 msgid "rename failed, %s (%s -> %s)."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:235 apt-pkg/acquire-item.cc:906
+#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:914
 msgid "MD5Sum mismatch"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:720
+#: apt-pkg/acquire-item.cc:722
 #, 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:773
+#: apt-pkg/acquire-item.cc:781
 #, 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:809
+#: apt-pkg/acquire-item.cc:817
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:896
+#: apt-pkg/acquire-item.cc:904
 msgid "Size mismatch"
 msgstr ""
 
@@ -2370,73 +2397,73 @@ msgstr ""
 msgid "Vendor block %s contains no fingerprint"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:504
+#: apt-pkg/cdrom.cc:507
 #, c-format
 msgid ""
 "Using CD-ROM mount point %s\n"
 "Mounting CD-ROM\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:513 apt-pkg/cdrom.cc:595
+#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598
 msgid "Identifying.. "
 msgstr ""
 
-#: apt-pkg/cdrom.cc:538
+#: apt-pkg/cdrom.cc:541
 #, c-format
 msgid "Stored label: %s \n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:558
+#: apt-pkg/cdrom.cc:561
 #, c-format
 msgid "Using CD-ROM mount point %s\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:576
+#: apt-pkg/cdrom.cc:579
 msgid "Unmounting CD-ROM\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:580
+#: apt-pkg/cdrom.cc:583
 msgid "Waiting for disc...\n"
 msgstr ""
 
 #. Mount the new CDROM
-#: apt-pkg/cdrom.cc:588
+#: apt-pkg/cdrom.cc:591
 msgid "Mounting CD-ROM...\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:606
+#: apt-pkg/cdrom.cc:609
 msgid "Scanning disc for index files..\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:644
+#: apt-pkg/cdrom.cc:647
 #, c-format
 msgid "Found %i package indexes, %i source indexes and %i signatures\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:701
+#: apt-pkg/cdrom.cc:710
 msgid "That is not a valid name, try again.\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:717
+#: apt-pkg/cdrom.cc:726
 #, c-format
 msgid ""
 "This disc is called: \n"
 "'%s'\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:721
+#: apt-pkg/cdrom.cc:730
 msgid "Copying package lists..."
 msgstr ""
 
-#: apt-pkg/cdrom.cc:745
+#: apt-pkg/cdrom.cc:754
 msgid "Writing new source list\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:754
+#: apt-pkg/cdrom.cc:763
 msgid "Source list entries for this disc are:\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:788
+#: apt-pkg/cdrom.cc:803
 msgid "Unmounting CD-ROM..."
 msgstr ""
 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 424 - 254
po/bs.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 432 - 301
po/ca.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/cs.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 430 - 280
po/da.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 286
po/de.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/el.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 429 - 257
po/en_GB.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 437 - 287
po/es.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 434 - 266
po/eu.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/fi.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 478 - 289
po/fr.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2747 - 0
po/gl.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 424 - 254
po/he.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/hu.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 435 - 281
po/it.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/ja.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/ko.po


+ 1 - 1
po/makefile

@@ -62,7 +62,7 @@ $(MOFILES) : $(PO_DOMAINS)/%.mo : $(PO_DOMAINS)/%.po
 stats:
 	for i in *.pot *.po; do echo -n "$$i: "; msgfmt --statistics $$i; done
 
-binary: $(POTFILES) $(PACKAGE)-all.pot $(MOFILES)
+binary: $(POTFILES) $(PACKAGE)-all.pot $(MOFILES) update-po
 
 .PHONY: update-po
 update-po: $(PACKAGE)-all.pot

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/nb.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/nl.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/nn.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/pl.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 435 - 269
po/pt.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 435 - 269
po/pt_BR.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/ro.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 434 - 255
po/ru.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/sk.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/sl.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/sv.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 437 - 256
po/tl.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/zh_CN.po


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 436 - 255
po/zh_TW.po


BIN
share/debian-archive.gpg