Przeglądaj źródła

Merge branch 'debian/sid' into feature/more-fancy-progress

Michael Vogt 12 lat temu
rodzic
commit
355a960dd8
90 zmienionych plików z 698 dodań i 502 usunięć
  1. 4 2
      apt-inst/deb/debfile.cc
  2. 3 1
      apt-pkg/acquire-method.h
  3. 3 1
      apt-pkg/cdrom.h
  4. 14 1
      apt-pkg/contrib/fileutl.cc
  5. 3 3
      apt-pkg/contrib/fileutl.h
  6. 4 0
      apt-pkg/contrib/macros.h
  7. 2 1
      apt-pkg/deb/deblistparser.h
  8. 7 17
      apt-pkg/deb/dpkgpm.cc
  9. 66 24
      apt-pkg/depcache.cc
  10. 2 0
      apt-pkg/depcache.h
  11. 6 5
      apt-pkg/edsp.h
  12. 9 9
      apt-pkg/pkgcachegen.h
  13. 5 3
      apt-pkg/tagfile.h
  14. 5 4
      apt-private/acqprogress.h
  15. 1 0
      apt-private/makefile
  16. 4 3
      apt-private/private-cachefile.h
  17. 2 1
      apt-private/private-cmndline.h
  18. 4 2
      apt-private/private-download.h
  19. 5 3
      apt-private/private-install.h
  20. 3 1
      apt-private/private-list.h
  21. 3 1
      apt-private/private-main.h
  22. 1 1
      apt-private/private-moo.h
  23. 12 9
      apt-private/private-output.h
  24. 3 1
      apt-private/private-search.h
  25. 3 1
      apt-private/private-show.h
  26. 3 1
      apt-private/private-sources.h
  27. 3 1
      apt-private/private-update.h
  28. 4 2
      apt-private/private-upgrade.h
  29. 5 3
      apt-private/private-utils.h
  30. 9 6
      cmdline/apt-extracttemplates.cc
  31. 1 1
      configure.ac
  32. 1 1
      debian/apt.auto-removal.sh
  33. 5 5
      debian/apt.cron.daily
  34. 10 0
      debian/changelog
  35. 27 40
      debian/libapt-pkg4.12.symbols
  36. 2 2
      doc/apt-extracttemplates.1.xml
  37. 1 1
      doc/apt-verbatim.ent
  38. 1 1
      doc/examples/configure-index
  39. 2 2
      doc/po/apt-doc.pot
  40. 131 92
      doc/po/it.po
  41. 1 1
      po/ar.po
  42. 1 1
      po/ast.po
  43. 1 1
      po/bg.po
  44. 1 1
      po/bs.po
  45. 1 1
      po/ca.po
  46. 1 1
      po/cs.po
  47. 1 1
      po/cy.po
  48. 1 1
      po/da.po
  49. 1 1
      po/de.po
  50. 1 1
      po/dz.po
  51. 1 1
      po/el.po
  52. 1 1
      po/es.po
  53. 1 1
      po/eu.po
  54. 1 1
      po/fi.po
  55. 1 1
      po/fr.po
  56. 1 1
      po/gl.po
  57. 1 1
      po/hu.po
  58. 1 1
      po/it.po
  59. 86 186
      po/ja.po
  60. 1 1
      po/km.po
  61. 1 1
      po/ko.po
  62. 1 1
      po/ku.po
  63. 1 1
      po/lt.po
  64. 1 1
      po/mr.po
  65. 1 1
      po/nb.po
  66. 1 1
      po/ne.po
  67. 1 1
      po/nl.po
  68. 1 1
      po/nn.po
  69. 1 1
      po/pl.po
  70. 1 1
      po/pt.po
  71. 1 1
      po/pt_BR.po
  72. 1 1
      po/ro.po
  73. 1 1
      po/ru.po
  74. 1 1
      po/sk.po
  75. 1 1
      po/sl.po
  76. 1 1
      po/sv.po
  77. 1 1
      po/th.po
  78. 1 1
      po/tl.po
  79. 1 1
      po/tr.po
  80. 1 1
      po/uk.po
  81. 1 1
      po/vi.po
  82. 1 1
      po/zh_CN.po
  83. 1 1
      po/zh_TW.po
  84. 1 0
      test/integration/framework
  85. 45 0
      test/integration/test-apt-extracttemplates
  86. 0 22
      test/integration/test-apt-progress-fd-error-postinst
  87. 9 0
      test/integration/test-bug-612958-use-dpkg-multiarch-config
  88. 3 0
      test/integration/test-bug-735967-lib32-to-i386-unavailable
  89. 132 0
      test/integration/test-failing-maintainer-scripts
  90. 1 0
      test/integration/test-kernel-helper-autoremove

+ 4 - 2
apt-inst/deb/debfile.cc

@@ -124,8 +124,10 @@ bool debDebFile::ExtractTarMember(pkgDirStream &Stream,const char *Name)
    {
       std::string ext = std::string(Name) + ".{";
       for (std::vector<APT::Configuration::Compressor>::const_iterator c = compressor.begin();
-	   c != compressor.end(); ++c)
-	 ext.append(c->Extension.substr(1));
+	   c != compressor.end(); ++c) {
+	 if (!c->Extension.empty())
+	    ext.append(c->Extension.substr(1));
+      }
       ext.append("}");
       return _error->Error(_("Internal error, could not locate member %s"), ext.c_str());
    }

+ 3 - 1
apt-pkg/acquire-method.h

@@ -20,6 +20,8 @@
 #ifndef PKGLIB_ACQUIRE_METHOD_H
 #define PKGLIB_ACQUIRE_METHOD_H
 
+#include <apt-pkg/macros.h>
+
 #include <stdarg.h>
 #include <time.h>
 
@@ -107,7 +109,7 @@ class pkgAcqMethod
    virtual ~pkgAcqMethod() {};
 
    private:
-   void Dequeue();
+   APT_HIDDEN void Dequeue();
 };
 
 /** @} */

+ 3 - 1
apt-pkg/cdrom.h

@@ -1,6 +1,8 @@
 #ifndef PKGLIB_CDROM_H
 #define PKGLIB_CDROM_H
 
+#include <apt-pkg/macros.h>
+
 #include<string>
 #include<vector>
 
@@ -73,7 +75,7 @@ class pkgCdrom								/*{{{*/
    bool Add(pkgCdromStatus *log);
 
  private:
-   bool MountAndIdentCDROM(Configuration &Database, std::string &CDROM,
+   APT_HIDDEN bool MountAndIdentCDROM(Configuration &Database, std::string &CDROM,
 	 std::string &ident, pkgCdromStatus * const log, bool const interactive);
 };
 									/*}}}*/

+ 14 - 1
apt-pkg/contrib/fileutl.cc

@@ -1191,7 +1191,7 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C
       d->openmode = Mode;
       d->compressor = compressor;
 #if defined HAVE_ZLIB || defined HAVE_BZ2 || defined HAVE_LZMA
-      if (AutoClose == false && compress_open != NULL)
+      if ((Flags & AutoClose) != AutoClose && compress_open != NULL)
       {
 	 // Need to duplicate fd here or gz/bz2 close for cleanup will close the fd as well
 	 int const internFd = dup(iFd);
@@ -1430,7 +1430,15 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual)
 	    errno = 0;
 	 }
 	 else
+	 {
 	    Res = Size - d->lzma->stream.avail_out;
+	    if (Res == 0)
+	    {
+	       // lzma run was okay, but produced no output…
+	       Res = -1;
+	       errno = EINTR;
+	    }
+	 }
       }
 #endif
       else
@@ -1439,7 +1447,12 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual)
       if (Res < 0)
       {
 	 if (errno == EINTR)
+	 {
+	    // trick the while-loop into running again
+	    Res = 1;
+	    errno = 0;
 	    continue;
+	 }
 	 if (false)
 	    /* dummy so that the rest can be 'else if's */;
 #ifdef HAVE_ZLIB

+ 3 - 3
apt-pkg/contrib/fileutl.h

@@ -150,11 +150,11 @@ class FileFd
 
    private:
    FileFdPrivate* d;
-   bool OpenInternDescriptor(unsigned int const Mode, APT::Configuration::Compressor const &compressor);
+   APT_HIDDEN bool OpenInternDescriptor(unsigned int const Mode, APT::Configuration::Compressor const &compressor);
 
    // private helpers to set Fail flag and call _error->Error
-   bool FileFdErrno(const char* Function, const char* Description,...) APT_PRINTF(3) APT_COLD;
-   bool FileFdError(const char* Description,...) APT_PRINTF(2) APT_COLD;
+   APT_HIDDEN bool FileFdErrno(const char* Function, const char* Description,...) APT_PRINTF(3) APT_COLD;
+   APT_HIDDEN bool FileFdError(const char* Description,...) APT_PRINTF(2) APT_COLD;
 };
 
 bool RunScripts(const char *Cnf);

+ 4 - 0
apt-pkg/contrib/macros.h

@@ -94,8 +94,12 @@
 
 #if APT_GCC_VERSION >= 0x0400
 	#define APT_SENTINEL	__attribute__((sentinel))
+	#define APT_PUBLIC __attribute__ ((visibility ("default")))
+	#define APT_HIDDEN __attribute__ ((visibility ("hidden")))
 #else
 	#define APT_SENTINEL
+	#define APT_PUBLIC
+	#define APT_HIDDEN
 #endif
 
 // cold functions are unlikely() to be called

+ 2 - 1
apt-pkg/deb/deblistparser.h

@@ -15,6 +15,7 @@
 #include <apt-pkg/tagfile.h>
 #include <apt-pkg/md5.h>
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/macros.h>
 
 #include <string>
 #include <vector>
@@ -102,7 +103,7 @@ class debListParser : public pkgCacheGenerator::ListParser
    virtual ~debListParser() {};
 
    private:
-   unsigned char ParseMultiArch(bool const showErrors);
+   APT_HIDDEN unsigned char ParseMultiArch(bool const showErrors);
 };
 
 #endif

+ 7 - 17
apt-pkg/deb/dpkgpm.cc

@@ -1530,28 +1530,18 @@ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress)
 	 // here but keep the loop going and just report it as a error
 	 // for later
 	 bool const stopOnError = _config->FindB("Dpkg::StopOnError",true);
-	 
-	 if(stopOnError)
-	    RunScripts("DPkg::Post-Invoke");
 
-	 if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) 
+	 if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV)
 	    strprintf(d->dpkg_error, "Sub-process %s received a segmentation fault.",Args[0]);
 	 else if (WIFEXITED(Status) != 0)
 	    strprintf(d->dpkg_error, "Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status));
-	 else 
+	 else
 	    strprintf(d->dpkg_error, "Sub-process %s exited unexpectedly",Args[0]);
+	 _error->Error("%s", d->dpkg_error.c_str());
 
-	 if(d->dpkg_error.size() > 0)
-	    _error->Error("%s", d->dpkg_error.c_str());
-
-	 if(stopOnError) 
-	 {
-	    CloseLog();
-            StopPtyMagic();
-            d->progress->Stop();
-	    return false;
-	 }
-      }      
+	 if(stopOnError)
+	    break;
+      }
    }
    // dpkg is done at this point
    d->progress->Stop();
@@ -1582,7 +1572,7 @@ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress)
    }
 
    Cache.writeStateFile(NULL);
-   return true;
+   return d->dpkg_error.empty();
 }
 
 void SigINT(int /*sig*/) {

+ 66 - 24
apt-pkg/depcache.cc

@@ -1059,10 +1059,9 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
       return true;
    }
 
-   // check if we are allowed to install the package (if we haven't already)
-   if (P.Mode != ModeInstall || P.InstallVer != P.CandidateVer)
-      if (IsInstallOk(Pkg,AutoInst,Depth,FromUser) == false)
-	 return false;
+   // check if we are allowed to install the package
+   if (IsInstallOk(Pkg,AutoInst,Depth,FromUser) == false)
+      return false;
 
    ActionGroup group(*this);
    P.iFlags &= ~AutoKept;
@@ -1123,32 +1122,22 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
 	 continue;
 
       /* Check if this dep should be consider for install. If it is a user
-         defined important dep and we are installed a new package then 
+         defined important dep and we are installed a new package then
 	 it will be installed. Otherwise we only check for important
-         deps that have changed from the installed version
-      */
+         deps that have changed from the installed version */
       if (IsImportantDep(Start) == false)
 	 continue;
 
-      /* If we are in an or group locate the first or that can 
-         succeed. We have already cached this.. */
+      /* If we are in an or group locate the first or that can
+         succeed. We have already cached this */
       for (; Ors > 1 && (DepState[Start->ID] & DepCVer) != DepCVer; --Ors)
 	 ++Start;
+
+      /* unsatisfiable dependency: IsInstallOkDependenciesSatisfiableByCandidates
+         would have prevented us to get here if not overridden, so just skip
+	 over the problem here as the frontend will know what it is doing */
       if (Ors == 1 && (DepState[Start->ID] &DepCVer) != DepCVer && Start.IsNegative() == false)
-      {
-	 if(DebugAutoInstall == true)
-	    std::clog << OutputInDepth(Depth) << Start << " can't be satisfied!" << std::endl;
-	 if (Start.IsCritical() == false)
-	    continue;
-	 // if the dependency was critical, we have absolutely no chance to install it,
-	 // so if it wasn't installed remove it again. If it was, discard the candidate
-	 // as the problemresolver will trip over it otherwise trying to install it (#735967)
-	 if (Pkg->CurrentVer == 0)
-	    MarkDelete(Pkg,false,Depth + 1, false);
-	 else
-	    SetCandidateVersion(Pkg.CurrentVer());
-	 return false;
-      }
+	 continue;
 
       /* Check if any ImportantDep() (but not Critical) were added
        * since we installed the package.  Also check for deps that
@@ -1300,7 +1289,8 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
 bool pkgDepCache::IsInstallOk(PkgIterator const &Pkg,bool AutoInst,
 			      unsigned long Depth, bool FromUser)
 {
-   return IsInstallOkMultiArchSameVersionSynced(Pkg,AutoInst, Depth, FromUser);
+   return IsInstallOkMultiArchSameVersionSynced(Pkg,AutoInst, Depth, FromUser) &&
+      IsInstallOkDependenciesSatisfiableByCandidates(Pkg,AutoInst, Depth, FromUser);
 }
 bool pkgDepCache::IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg,
       bool const /*AutoInst*/, unsigned long const Depth, bool const FromUser)
@@ -1308,6 +1298,11 @@ bool pkgDepCache::IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg,
    if (FromUser == true) // as always: user is always right
       return true;
 
+   // if we have checked before and it was okay, it will still be okay
+   if (PkgState[Pkg->ID].Mode == ModeInstall &&
+	 PkgState[Pkg->ID].InstallVer == PkgState[Pkg->ID].CandidateVer)
+      return true;
+
    // ignore packages with none-M-A:same candidates
    VerIterator const CandVer = PkgState[Pkg->ID].CandidateVerIter(*this);
    if (unlikely(CandVer.end() == true) || CandVer == Pkg.CurrentVer() ||
@@ -1338,6 +1333,53 @@ bool pkgDepCache::IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg,
       return false;
    }
 
+   return true;
+}
+bool pkgDepCache::IsInstallOkDependenciesSatisfiableByCandidates(PkgIterator const &Pkg,
+      bool const AutoInst, unsigned long const Depth, bool const /*FromUser*/)
+{
+   if (AutoInst == false)
+      return true;
+
+   VerIterator const CandVer = PkgState[Pkg->ID].CandidateVerIter(*this);
+   if (unlikely(CandVer.end() == true) || CandVer == Pkg.CurrentVer())
+      return true;
+
+   for (DepIterator Dep = CandVer.DependsList(); Dep.end() != true;)
+   {
+      // Grok or groups
+      DepIterator Start = Dep;
+      bool Result = true;
+      unsigned Ors = 0;
+      for (bool LastOR = true; Dep.end() == false && LastOR == true; ++Dep, ++Ors)
+      {
+	 LastOR = (Dep->CompareOp & Dep::Or) == Dep::Or;
+
+	 if ((DepState[Dep->ID] & DepInstall) == DepInstall)
+	    Result = false;
+      }
+
+      if (Start.IsCritical() == false || Start.IsNegative() == true || Result == false)
+	 continue;
+
+      /* If we are in an or group locate the first or that can succeed.
+         We have already cached this… */
+      for (; Ors > 1 && (DepState[Start->ID] & DepCVer) != DepCVer; --Ors)
+	 ++Start;
+
+      if (Ors == 1 && (DepState[Start->ID] &DepCVer) != DepCVer)
+      {
+	 if (DebugAutoInstall == true)
+	    std::clog << OutputInDepth(Depth) << Start << " can't be satisfied!" << std::endl;
+
+	 // the dependency is critical, but can't be installed, so discard the candidate
+	 // as the problemresolver will trip over it otherwise trying to install it (#735967)
+	 if (Pkg->CurrentVer != 0)
+	    SetCandidateVersion(Pkg.CurrentVer());
+	 return false;
+      }
+   }
+
    return true;
 }
 									/*}}}*/

+ 2 - 0
apt-pkg/depcache.h

@@ -506,6 +506,8 @@ class pkgDepCache : protected pkgCache::Namespace
    // methods call by IsInstallOk
    bool IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg,
 	 bool const AutoInst, unsigned long const Depth, bool const FromUser);
+   bool IsInstallOkDependenciesSatisfiableByCandidates(PkgIterator const &Pkg,
+      bool const AutoInst, unsigned long const Depth, bool const FromUser);
 
    // methods call by IsDeleteOk
    bool IsDeleteOkProtectInstallRequests(PkgIterator const &Pkg,

+ 6 - 5
apt-pkg/edsp.h

@@ -12,6 +12,7 @@
 #include <apt-pkg/cacheset.h>
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/cacheiterators.h>
+#include <apt-pkg/macros.h>
 
 #include <stdio.h>
 
@@ -32,15 +33,15 @@ class EDSP								/*{{{*/
 	static const char * const PrioMap[];
 	static const char * const DepMap[];
 
-	bool static ReadLine(int const input, std::string &line);
-	bool static StringToBool(char const *answer, bool const defValue);
+	APT_HIDDEN bool static ReadLine(int const input, std::string &line);
+	APT_HIDDEN bool static StringToBool(char const *answer, bool const defValue);
 
-	void static WriteScenarioVersion(pkgDepCache &Cache, FILE* output,
+	APT_HIDDEN void static WriteScenarioVersion(pkgDepCache &Cache, FILE* output,
 					 pkgCache::PkgIterator const &Pkg,
 					 pkgCache::VerIterator const &Ver);
-	void static WriteScenarioDependency(FILE* output,
+	APT_HIDDEN void static WriteScenarioDependency(FILE* output,
 					    pkgCache::VerIterator const &Ver);
-	void static WriteScenarioLimitedDependency(FILE* output,
+	APT_HIDDEN void static WriteScenarioLimitedDependency(FILE* output,
 						   pkgCache::VerIterator const &Ver,
 						   APT::PackageSet const &pkgset);
 public:

+ 9 - 9
apt-pkg/pkgcachegen.h

@@ -38,10 +38,10 @@ class pkgCacheGenerator							/*{{{*/
    private:
 
    pkgCache::StringItem *UniqHash[26];
-   map_ptrloc WriteStringInMap(std::string const &String) { return WriteStringInMap(String.c_str()); };
-   map_ptrloc WriteStringInMap(const char *String);
-   map_ptrloc WriteStringInMap(const char *String, const unsigned long &Len);
-   map_ptrloc AllocateInMap(const unsigned long &size);
+   APT_HIDDEN map_ptrloc WriteStringInMap(std::string const &String) { return WriteStringInMap(String.c_str()); };
+   APT_HIDDEN map_ptrloc WriteStringInMap(const char *String);
+   APT_HIDDEN map_ptrloc WriteStringInMap(const char *String, const unsigned long &Len);
+   APT_HIDDEN map_ptrloc AllocateInMap(const unsigned long &size);
 
    public:
    
@@ -117,14 +117,14 @@ class pkgCacheGenerator							/*{{{*/
    ~pkgCacheGenerator();
 
    private:
-   bool MergeListGroup(ListParser &List, std::string const &GrpName);
-   bool MergeListPackage(ListParser &List, pkgCache::PkgIterator &Pkg);
-   bool MergeListVersion(ListParser &List, pkgCache::PkgIterator &Pkg,
+   APT_HIDDEN bool MergeListGroup(ListParser &List, std::string const &GrpName);
+   APT_HIDDEN bool MergeListPackage(ListParser &List, pkgCache::PkgIterator &Pkg);
+   APT_HIDDEN bool MergeListVersion(ListParser &List, pkgCache::PkgIterator &Pkg,
 			 std::string const &Version, pkgCache::VerIterator* &OutVer);
 
-   bool AddImplicitDepends(pkgCache::GrpIterator &G, pkgCache::PkgIterator &P,
+   APT_HIDDEN bool AddImplicitDepends(pkgCache::GrpIterator &G, pkgCache::PkgIterator &P,
 			   pkgCache::VerIterator &V);
-   bool AddImplicitDepends(pkgCache::VerIterator &V, pkgCache::PkgIterator &D);
+   APT_HIDDEN bool AddImplicitDepends(pkgCache::VerIterator &V, pkgCache::PkgIterator &D);
 };
 									/*}}}*/
 // This is the abstract package list parser class.			/*{{{*/

+ 5 - 3
apt-pkg/tagfile.h

@@ -20,6 +20,8 @@
 #ifndef PKGLIB_TAGFILE_H
 #define PKGLIB_TAGFILE_H
 
+#include <apt-pkg/macros.h>
+
 #include <stdio.h>
 
 #include <string>
@@ -93,9 +95,9 @@ class pkgTagFile
 {
    pkgTagFilePrivate *d;
 
-   bool Fill();
-   bool Resize();
-   bool Resize(unsigned long long const newSize);
+   APT_HIDDEN bool Fill();
+   APT_HIDDEN bool Resize();
+   APT_HIDDEN bool Resize(unsigned long long const newSize);
 
    public:
 

+ 5 - 4
apt-private/acqprogress.h

@@ -10,18 +10,19 @@
 #define ACQPROGRESS_H
 
 #include <apt-pkg/acquire.h>
+#include <apt-pkg/macros.h>
 
 #include <string>
 
-class AcqTextStatus : public pkgAcquireStatus
+class APT_PUBLIC AcqTextStatus : public pkgAcquireStatus
 {
    unsigned int &ScreenWidth;
    char BlankLine[1024];
    unsigned long ID;
    unsigned long Quiet;
-   
+
    public:
-   
+
    virtual bool MediaChange(std::string Media,std::string Drive);
    virtual void IMSHit(pkgAcquire::ItemDesc &Itm);
    virtual void Fetch(pkgAcquire::ItemDesc &Itm);
@@ -29,7 +30,7 @@ class AcqTextStatus : public pkgAcquireStatus
    virtual void Fail(pkgAcquire::ItemDesc &Itm);
    virtual void Start();
    virtual void Stop();
-   
+
    bool Pulse(pkgAcquire *Owner);
 
    AcqTextStatus(unsigned int &ScreenWidth,unsigned int const Quiet);

+ 1 - 0
apt-private/makefile

@@ -16,6 +16,7 @@ LIBRARY=apt-private
 MAJOR=0.0
 MINOR=0
 SLIBS=$(PTHREADLIB) -lapt-pkg
+CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 
 PRIVATES=list install download output cachefile cacheset update upgrade cmndline moo search show main utils sources
 SOURCE += $(foreach private, $(PRIVATES), private-$(private).cc)

+ 4 - 3
apt-private/private-cachefile.h

@@ -5,16 +5,17 @@
 #include <apt-pkg/progress.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/macros.h>
 
 
 // class CacheFile - Cover class for some dependency cache functions	/*{{{*/
 // ---------------------------------------------------------------------
 /* */
-class CacheFile : public pkgCacheFile
+class APT_PUBLIC CacheFile : public pkgCacheFile
 {
    static pkgCache *SortCache;
-   static int NameComp(const void *a,const void *b) APT_PURE;
-   
+   APT_HIDDEN static int NameComp(const void *a,const void *b) APT_PURE;
+
    public:
    pkgCache::Package **List;
    

+ 2 - 1
apt-private/private-cmndline.h

@@ -2,9 +2,10 @@
 #define APT_PRIVATE_CMNDLINE_H
 
 #include <apt-pkg/cmndline.h>
+#include <apt-pkg/macros.h>
 
 #include <vector>
 
-std::vector<CommandLine::Args> getCommandArgs(char const * const Program, char const * const Cmd);
+APT_PUBLIC std::vector<CommandLine::Args> getCommandArgs(char const * const Program, char const * const Cmd);
 
 #endif

+ 4 - 2
apt-private/private-download.h

@@ -1,9 +1,11 @@
 #ifndef APT_PRIVATE_DOWNLOAD_H
 #define APT_PRIVATE_DOWNLOAD_H
 
+#include <apt-pkg/macros.h>
+
 class pkgAcquire;
 
-bool CheckAuth(pkgAcquire& Fetcher, bool const PromptUser);
-bool AcquireRun(pkgAcquire &Fetcher, int const PulseInterval, bool * const Failure, bool * const TransientNetworkFailure);
+APT_PUBLIC bool CheckAuth(pkgAcquire& Fetcher, bool const PromptUser);
+APT_PUBLIC bool AcquireRun(pkgAcquire &Fetcher, int const PulseInterval, bool * const Failure, bool * const TransientNetworkFailure);
 
 #endif

+ 5 - 3
apt-private/private-install.h

@@ -9,6 +9,9 @@
 #include <apt-pkg/cacheset.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/algorithms.h>
+#include <apt-pkg/macros.h>
+
+#include <apt-private/private-output.h>
 
 #include <stddef.h>
 #include <iosfwd>
@@ -17,7 +20,6 @@
 #include <string>
 #include <utility>
 
-#include "private-output.h"
 
 #include <apti18n.h>
 
@@ -26,13 +28,13 @@ class CommandLine;
 
 #define RAMFS_MAGIC     0x858458f6
 
-bool DoInstall(CommandLine &Cmd);
+APT_PUBLIC bool DoInstall(CommandLine &Cmd);
 
 bool DoCacheManipulationFromCommandLine(CommandLine &CmdL, CacheFile &Cache,
                                         std::map<unsigned short, APT::VersionSet> &verset);
 bool DoCacheManipulationFromCommandLine(CommandLine &CmdL, CacheFile &Cache);
 
-bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
+APT_PUBLIC bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
                         bool Safety = true);
 
 

+ 3 - 1
apt-private/private-list.h

@@ -1,9 +1,11 @@
 #ifndef APT_PRIVATE_LIST_H
 #define APT_PRIVATE_LIST_H
 
+#include <apt-pkg/macros.h>
+
 class CommandLine;
 
-bool List(CommandLine &Cmd);
+APT_PUBLIC bool List(CommandLine &Cmd);
 
 
 #endif

+ 3 - 1
apt-private/private-main.h

@@ -1,8 +1,10 @@
 #ifndef APT_PRIVATE_MAIN_H
 #define APT_PRIVATE_MAIN_H
 
+#include <apt-pkg/macros.h>
+
 class CommandLine;
 
-void CheckSimulateMode(CommandLine &CmdL);
+APT_PUBLIC void CheckSimulateMode(CommandLine &CmdL);
 
 #endif

+ 1 - 1
apt-private/private-moo.h

@@ -3,7 +3,7 @@
 
 class CommandLine;
 
-bool DoMoo(CommandLine &CmdL);
+APT_PUBLIC bool DoMoo(CommandLine &CmdL);
 bool DoMoo1(CommandLine &CmdL);
 bool DoMoo2(CommandLine &CmdL);
 bool DoMoo3(CommandLine &CmdL);

+ 12 - 9
apt-private/private-output.h

@@ -2,6 +2,7 @@
 #define APT_PRIVATE_OUTPUT_H
 
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/macros.h>
 
 #include <fstream>
 #include <string>
@@ -13,22 +14,24 @@ class pkgDepCache;
 class pkgRecords;
 
 
-extern std::ostream c0out;
-extern std::ostream c1out;
-extern std::ostream c2out;
-extern std::ofstream devnull;
-extern unsigned int ScreenWidth;
+APT_PUBLIC extern std::ostream c0out;
+APT_PUBLIC extern std::ostream c1out;
+APT_PUBLIC extern std::ostream c2out;
+APT_PUBLIC extern std::ofstream devnull;
+APT_PUBLIC extern unsigned int ScreenWidth;
 
-bool InitOutput();
-void ListSingleVersion(pkgCacheFile &CacheFile, pkgRecords &records, 
+APT_PUBLIC bool InitOutput();
+
+void ListSingleVersion(pkgCacheFile &CacheFile, pkgRecords &records,
                        pkgCache::VerIterator V, std::ostream &out,
                        bool include_summary=true);
 
 
 // helper to describe global state
-bool ShowList(std::ostream &out, std::string Title, std::string List,
+APT_PUBLIC void ShowBroken(std::ostream &out,CacheFile &Cache,bool Now);
+
+APT_PUBLIC bool ShowList(std::ostream &out, std::string Title, std::string List,
               std::string VersionsList);
-void ShowBroken(std::ostream &out,CacheFile &Cache,bool Now);
 void ShowNew(std::ostream &out,CacheFile &Cache);
 void ShowDel(std::ostream &out,CacheFile &Cache);
 void ShowKept(std::ostream &out,CacheFile &Cache);

+ 3 - 1
apt-private/private-search.h

@@ -1,9 +1,11 @@
 #ifndef APT_PRIVATE_SEARCH_H
 #define APT_PRIVATE_SEARCH_H
 
+#include <apt-pkg/macros.h>
+
 class CommandLine;
 
-bool FullTextSearch(CommandLine &CmdL);
+APT_PUBLIC bool FullTextSearch(CommandLine &CmdL);
 
 
 #endif

+ 3 - 1
apt-private/private-show.h

@@ -1,12 +1,14 @@
 #ifndef APT_PRIVATE_SHOW_H
 #define APT_PRIVATE_SHOW_H
 
+#include <apt-pkg/macros.h>
+
 class CommandLine;
 
 namespace APT {
    namespace Cmd {
 
-      bool ShowPackage(CommandLine &CmdL);
+      APT_PUBLIC bool ShowPackage(CommandLine &CmdL);
    }
 }
 #endif

+ 3 - 1
apt-private/private-sources.h

@@ -1,8 +1,10 @@
 #ifndef APT_PRIVATE_SOURCES_H
 #define APT_PRIVATE_SOURCES_H
 
+#include <apt-pkg/macros.h>
+
 class CommandLine;
 
-bool EditSources(CommandLine &CmdL);
+APT_PUBLIC bool EditSources(CommandLine &CmdL);
 
 #endif

+ 3 - 1
apt-private/private-update.h

@@ -1,8 +1,10 @@
 #ifndef APT_PRIVATE_UPDATE_H
 #define APT_PRIVATE_UPDATE_H
 
+#include <apt-pkg/macros.h>
+
 class CommandLine;
 
-bool DoUpdate(CommandLine &CmdL);
+APT_PUBLIC bool DoUpdate(CommandLine &CmdL);
 
 #endif

+ 4 - 2
apt-private/private-upgrade.h

@@ -1,10 +1,12 @@
 #ifndef APTPRIVATE_PRIVATE_UPGRADE_H
 #define APTPRIVATE_PRIVATE_UPGRADE_H
 
+#include <apt-pkg/macros.h>
+
 class CommandLine;
 
-bool DoDistUpgrade(CommandLine &CmdL);
-bool DoUpgrade(CommandLine &CmdL);
+APT_PUBLIC bool DoDistUpgrade(CommandLine &CmdL);
+APT_PUBLIC bool DoUpgrade(CommandLine &CmdL);
 bool DoUpgradeNoNewPackages(CommandLine &CmdL);
 bool DoUpgradeWithAllowNewPackages(CommandLine &CmdL);
 

+ 5 - 3
apt-private/private-utils.h

@@ -1,9 +1,11 @@
 #ifndef APT_PRIVATE_UTILS_H
 #define APT_PRIVATE_UTILS_H
 
-#include<string>
+#include <apt-pkg/macros.h>
 
-void DisplayFileInPager(std::string filename);
-void EditFileInSensibleEditor(std::string filename);
+#include <string>
+
+APT_PUBLIC void DisplayFileInPager(std::string filename);
+APT_PUBLIC void EditFileInSensibleEditor(std::string filename);
 
 #endif

+ 9 - 6
cmdline/apt-extracttemplates.cc

@@ -37,6 +37,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include <stdlib.h>
 
 #include "apt-extracttemplates.h"
 
@@ -239,23 +240,25 @@ static int ShowHelp(void)
 static string WriteFile(const char *package, const char *prefix, const char *data)
 {
 	char fn[512];
-	static int i;
 
         std::string tempdir = GetTempDir();
-	snprintf(fn, sizeof(fn), "%s/%s.%s.%u%d",
+	snprintf(fn, sizeof(fn), "%s/%s.%s.XXXXXX",
                  _config->Find("APT::ExtractTemplates::TempDir", 
                                tempdir.c_str()).c_str(),
-                 package, prefix, getpid(), i++);
+                 package, prefix);
 	FileFd f;
 	if (data == NULL)
 		data = "";
-
-	if (!f.Open(fn, FileFd::WriteTemp, 0600))
+        int fd = mkstemp(fn);
+        if (fd < 0) {
+		_error->Errno("ofstream::ofstream",_("Unable to mkstemp %s"),fn);
+                return string();
+        }
+	if (!f.OpenDescriptor(fd, FileFd::WriteOnly, FileFd::None, true))
 	{
 		_error->Errno("ofstream::ofstream",_("Unable to write to %s"),fn);
 		return string();
 	}
-
 	f.Write(data, strlen(data));
 	f.Close();
 	return fn;

+ 1 - 1
configure.ac

@@ -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)
 
 PACKAGE="apt"
-PACKAGE_VERSION="0.9.16~20140314"
+PACKAGE_VERSION="0.9.16.1"
 PACKAGE_MAIL="APT Development Team <deity@lists.debian.org>"
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION")

+ 1 - 1
debian/apt.auto-removal.sh

@@ -41,7 +41,7 @@ version_test_gt ()
 	return "$?"
 }
 
-list="$(${DPKG} -l | awk '/^ii[ ]+(linux|kfreebsd|gnumach)-image-[0-9]*/ && $2 !~ /-dbg$/ { print $2 }' | sed -e 's#\(linux\|kfreebsd\|gnumach\)-image-##')"
+list="$(${DPKG} -l | awk '/^ii[ ]+(linux|kfreebsd|gnumach)-image-[0-9]/ && $2 !~ /-dbg$/ { print $2 }' | sed -e 's#\(linux\|kfreebsd\|gnumach\)-image-##')"
 
 latest_version=""
 previous_version=""

+ 5 - 5
debian/apt.cron.daily

@@ -41,7 +41,7 @@
 #  APT::Periodic::MaxSize "0"; (new)
 #  - Set maximum size of the cache in MB (0=disable). If the cache
 #    is bigger, cached package files are deleted until the size
-#    requirement is met (the biggest packages will be deleted 
+#    requirement is met (the oldest packages will be deleted 
 #    first).
 #
 #  APT::Periodic::Update-Package-Lists "0";
@@ -91,7 +91,7 @@ check_stamp()
     stamp=$(date --date=$(date -r $stamp_file --iso-8601) +%s 2>/dev/null)
     if [ "$?" != "0" ]; then
         # Due to some timezones returning 'invalid date' for midnight on
-        # certain dates (eg America/Sao_Paulo), if date returns with error
+        # certain dates (e.g. America/Sao_Paulo), if date returns with error
         # remove the stamp file and return 0. See coreutils bug:
         # http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html
         rm -f "$stamp_file"
@@ -101,14 +101,14 @@ check_stamp()
     now=$(date --date=$(date --iso-8601) +%s 2>/dev/null)
     if [ "$?" != "0" ]; then
         # As above, due to some timezones returning 'invalid date' for midnight
-        # on certain dates (eg America/Sao_Paulo), if date returns with error
+        # on certain dates (e.g. America/Sao_Paulo), if date returns with error
         # return 0.
         return 0
     fi
 
     delta=$(($now-$stamp))
 
-    # intervall is in days, convert to sec.
+    # interval is in days, convert to sec.
     interval=$(($interval*60*60*24))
     debug_echo "check_stamp: interval=$interval, now=$now, stamp=$stamp, delta=$delta (sec)"
 
@@ -338,7 +338,7 @@ if test -r /var/lib/apt/extended_states; then
     fi
 fi
 
-# check apt-config exstance
+# check apt-config existence
 if ! which apt-config >/dev/null ; then
 	exit 0
 fi

+ 10 - 0
debian/changelog

@@ -1,3 +1,13 @@
+apt (0.9.16.1) unstable; urgency=medium
+
+  [ Chris Leick ]
+  * Updated German doc translation
+
+  [ Julian Andres Klode ]
+  * Fix handling of autoclosing for compressed files (Closes: #741685)
+
+ -- Julian Andres Klode <jak@debian.org>  Sat, 15 Mar 2014 18:05:25 +0100
+
 apt (0.9.16) unstable; urgency=medium
 
   [ Michael Vogt ]

Plik diff jest za duży
+ 27 - 40
debian/libapt-pkg4.12.symbols


+ 2 - 2
doc/apt-extracttemplates.1.xml

@@ -47,8 +47,8 @@
    <para>template-file and config-script are written to the temporary directory
    specified by the <option>-t</option> or <option>--tempdir</option>
    (<literal>APT::ExtractTemplates::TempDir</literal>) directory,
-   with filenames of the form <filename>package.template.XXXX</filename> and
-   <filename>package.config.XXXX</filename></para>
+   with filenames of the form <filename>package.template.XXXXXX</filename> and
+   <filename>package.config.XXXXXX</filename></para>
  </refsect1>
  
  <refsect1><title>options</title>

+ 1 - 1
doc/apt-verbatim.ent

@@ -219,7 +219,7 @@
 ">
 
 <!-- this will be updated by 'prepare-release' -->
-<!ENTITY apt-product-version "0.9.16~20140314">
+<!ENTITY apt-product-version "0.9.16.1">
 
 <!-- (Code)names for various things used all over the place -->
 <!ENTITY oldstable-codename "squeeze">

+ 1 - 1
doc/examples/configure-index

@@ -149,7 +149,7 @@ APT
     MaxSize "0"; // (new)
     // - Set maximum size of the cache in MB (0=disable). If the cache
     //   is bigger, cached package files are deleted until the size
-    //   requirement is met (the biggest packages will be deleted 
+    //   requirement is met (the oldest packages will be deleted 
     //   first).
 
     Update-Package-Lists "0";

+ 2 - 2
doc/po/apt-doc.pot

@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: apt-doc 0.9.15.5\n"
+"Project-Id-Version: apt-doc 0.9.16.1\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+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"

+ 131 - 92
doc/po/it.po

@@ -5,14 +5,13 @@
 # Eugenia Franzoni, 2000
 # Hugh Hartmann, 2000-2012
 # Gabriele Stilli, 2012
-# Beatrice Torracca, 2012
-# Beatrice Torracca <beatricet@libero.it>, 2012.
+# Beatrice Torracca <beatricet@libero.it>, 2012, 2014.
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
-"PO-Revision-Date: 2012-12-23 18:04+0200\n"
+"POT-Creation-Date: 2014-03-14 09:57+0100\n"
+"PO-Revision-Date: 2014-03-15 23:29+0200\n"
 "Last-Translator: Beatrice Torracca <beatricet@libero.it>\n"
 "Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
 "Language: it\n"
@@ -692,7 +691,6 @@ msgstr "Descrizione"
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt-get.8.xml:41
-#, fuzzy
 #| msgid ""
 #| "<command>apt-get</command> is the command-line tool for handling "
 #| "packages, and may be considered the user's \"back-end\" to other tools "
@@ -707,7 +705,7 @@ msgstr ""
 "<command>apt-get</command> è lo strumento a riga di comando per gestire "
 "pacchetti e può essere considerato il «backend» dell'utente per altri "
 "strumenti che usano la libreria APT. Esistono diversi «frontend» per "
-"interfaccia, come &dselect;, &aptitude;, &synaptic; e &wajig;."
+"interfaccia, come &aptitude;, &synaptic; e &wajig;."
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt-get.8.xml:46 apt-cache.8.xml:46 apt-cdrom.8.xml:53 apt-config.8.xml:46
@@ -1056,7 +1054,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:217
-#, fuzzy
 #| msgid ""
 #| "<literal>clean</literal> clears out the local repository of retrieved "
 #| "package files. It removes everything but the lock file from "
@@ -1072,12 +1069,9 @@ msgid ""
 "partial/</filename>."
 msgstr ""
 "<literal>clean</literal> ripulisce il repository locale dei file di "
-"pacchetto recuperati. Rimuove tutto da <filename>&cachedir;/archives/</"
-"filename> e <filename>&cachedir;/archives/partial/</filename>,  tranne il "
-"file di lock. Quando APT viene usato come metodo per &dselect;, "
-"<literal>clean</literal> viene eseguito automaticamente. Chi non usa dselect "
-"probabilmente è bene che usi <literal>apt-get clean</literal> di quando in "
-"quando per liberare spazio su disco."
+"pacchetto recuperati. Rimuove tutto da "
+"<filename>&cachedir;/archives/</filename> e "
+"<filename>&cachedir;/archives/partial/</filename>,  tranne il file di lock."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:224
@@ -1170,7 +1164,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:277
-#, fuzzy
 #| msgid ""
 #| "Fix; attempt to correct a system with broken dependencies in place. This "
 #| "option, when used with install/remove, can omit any packages to permit "
@@ -1204,10 +1197,10 @@ msgstr ""
 "volta; APT stesso non permette l'esistenza di pacchetti con dipendenze non "
 "soddisfatte in un sistema. È possibile che la struttura di dipendenze di un "
 "sistema sia corrotta a tal punto da richiedere un intervento manuale (il che "
-"di solito significa usare &dselect; o <command>dpkg --remove</command> per "
-"eliminare alcuni dei pacchetti che creano problemi). L'uso di questa opzione "
-"insieme a <option>-m</option> può in alcune situazioni produrre un errore. "
-"Voce di configurazione: <literal>APT::Get::Fix-Broken</literal>."
+"di solito significa usare <command>dpkg --remove</command> per eliminare "
+"alcuni dei pacchetti che creano problemi). L'uso di questa opzione insieme a "
+"<option>-m</option> può in alcune situazioni produrre un errore. Voce di "
+"configurazione: <literal>APT::Get::Fix-Broken</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:292
@@ -1353,7 +1346,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:370
-#, fuzzy
 #| msgid ""
 #| "This option controls the architecture packages are built for by "
 #| "<command>apt-get source --compile</command> and how cross-"
@@ -1378,7 +1370,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:380
-#, fuzzy
 #| msgid ""
 #| "This option controls the architecture packages are built for by "
 #| "<command>apt-get source --compile</command> and how cross-"
@@ -1393,12 +1384,12 @@ msgid ""
 "than one build profile can be activated at a time by concatenating them with "
 "a comma.  Configuration Item: <literal>APT::Build-Profiles</literal>."
 msgstr ""
-"Questa opzione controlla l'architettura per la quale <command>apt-get source "
-"--compile</command> compila i pacchetti e come le dipendenze di compilazione "
-"incrociata sono soddisfatte. In modo predefinito non è impostata, il che "
-"significa che l'architettura ospite è la stessa dell'architettura di "
-"compilazione (che è definita da <literal>APT::Architecture</literal>). Voce "
-"di configurazione: <literal>APT::Get::Host-Architecture</literal>."
+"Questa opzione controlla i profili di compilazione attivi per i quali "
+"<command>apt-get source --compile</command> compila un pacchetto sorgente e "
+"come le dipendenze di compilazione sono soddisfatte. In modo predefinito non "
+"è attivo alcun profilo di compilazione. Più profili di compilazione possono "
+"essere attivati contemporaneamente concatenandoli con una virgola. Voce di "
+"configurazione: <literal>APT::Build-Profiles</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:391
@@ -1433,6 +1424,13 @@ msgid ""
 "will never remove packages, only allow adding new ones.  Configuration Item: "
 "<literal>APT::Get::Upgrade-Allow-New</literal>."
 msgstr ""
+"Permette l'installazione di nuovi pacchetti quando usato insieme a "
+"<literal>upgrade</literal>. Ciò è utile se l'aggiornamento di un pacchetto "
+"installato richiede l'installazione di nuove dipendenze. Invece di bloccare "
+"il pacchetto <literal>upgrade</literal> aggiornerà il pacchetto e installerà "
+"le nuove dipendenze. Notare che <literal>upgrade</literal> con questa "
+"opzione non rimuoverà mai pacchetti, permetterà solo l'aggiunta di nuovi. "
+"Voce di configurazione: <literal>APT::Get::Upgrade-Allow-New</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:415
@@ -1658,6 +1656,12 @@ msgid ""
 "Item: <literal>DpkgPM::Progress</literal> and <literal>Dpkg::Progress-Fancy</"
 "literal>."
 msgstr ""
+"Mostra informazioni sul progresso facili da leggere nella finestra del "
+"terminale quando i pacchetti sono installati, aggiornati o rimossi. Per una "
+"versione analizzabile da macchina di questi dati, vedere README.progress-"
+"reporting nella directory della documentazione di apt. Voce di "
+"configurazione: <literal>DpkgPM::Progress</literal> e <literal>Dpkg"
+"::Progress-Fancy</literal>."
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-get.8.xml:548 apt-cache.8.xml:345 apt-key.8.xml:176 apt-mark.8.xml:127
@@ -1676,7 +1680,6 @@ msgstr "Vedere anche"
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt-get.8.xml:559
-#, fuzzy
 #| msgid ""
 #| "&apt-cache;, &apt-cdrom;, &dpkg;, &dselect;, &sources-list;, &apt-conf;, "
 #| "&apt-config;, &apt-secure;, The APT User's guide in &guidesdir;, &apt-"
@@ -1686,9 +1689,9 @@ msgid ""
 "&apt-secure;, The APT User's guide in &guidesdir;, &apt-preferences;, the "
 "APT Howto."
 msgstr ""
-"&apt-cache;, &apt-cdrom;, &dpkg;, &dselect;, &sources-list;, &apt-conf;, "
-"&apt-config;, &apt-secure;, la Guida dell'utente di APT in &guidesdir;, &apt-"
-"preferences;, l'APT Howto."
+"&apt-cache;, &apt-cdrom;, &dpkg;, &sources-list;, &apt-conf;, &apt-config;, "
+"&apt-secure;, la guida dell'utente di APT in &guidesdir;, &apt-preferences;, "
+"l'APT Howto."
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-get.8.xml:564 apt-cache.8.xml:357 apt-mark.8.xml:137
@@ -2993,7 +2996,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cdrom.8.xml:87
-#, fuzzy
 #| msgid ""
 #| "Mount point; specify the location to mount the CD-ROM. This mount point "
 #| "must be listed in <filename>/etc/fstab</filename> and properly "
@@ -3003,10 +3005,9 @@ msgid ""
 "<option>--cdrom</option> option.  Configuration Item: <literal>Acquire::"
 "cdrom::AutoDetect</literal>."
 msgstr ""
-"Punto di mount; specifica la posizione in cui montare il CD-ROM. Questo "
-"punto di mount deve essere elencato nel file <filename>/etc/fstab</filename> "
-"e configurato correttamente. Voce di configurazione: <literal>Acquire::"
-"cdrom::mount</literal>."
+"Non cercare di rilevare automaticamente il percorso del CD-ROM. Solitamente "
+"usato insieme all'opzione <option>--cdrom</option>. Voce di configurazione: "
+"<literal>Acquire::cdrom::AutoDetect</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cdrom.8.xml:95
@@ -3558,6 +3559,11 @@ msgid ""
 "is empty. The <envar>DEB_BUILD_PROFILES</envar> as used by &dpkg-"
 "buildpackage; overrides the list notation."
 msgstr ""
+"Elenco dei profili di compilazione abilitati per la risoluzione delle "
+"dipendenze di compilazione, senza il prefisso dello spazio dei nomi "
+"«<literal>profile.</literal>». In modo predefinito questa lista è vuota. "
+"<envar>DEB_BUILD_PROFILES</envar>, come usata da &dpkg-buildpackage; ha la "
+"precedenza sulla notazione della lista."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:190
@@ -3987,7 +3993,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:400
-#, fuzzy
 #| msgid ""
 #| "The used bandwidth can be limited with <literal>Acquire::http::Dl-Limit</"
 #| "literal> which accepts integer values in kilobytes. The default value is "
@@ -4001,11 +4006,11 @@ msgid ""
 "bandwidth.  Note that this option implicitly disables downloading from "
 "multiple servers at the same time."
 msgstr ""
-"La quantità di banda utilizzata può essere limitata con <literal>Acquire::"
-"http::Dl-Limit</literal> che accetta valori interi in kilobyte. Il valore "
-"predefinito è 0 che disattiva il limite e cerca di usare tutta la banda "
-"disponibile (notare che questa opzione implicitamente disabilita lo "
-"scaricamento da più server contemporaneamente)."
+"La quantità di banda utilizzata può essere limitata con "
+"<literal>Acquire::http::Dl-Limit</literal> che accetta valori interi in "
+"kilobyte al secondo. Il valore predefinito è 0 che disattiva il limite e "
+"cerca di usare tutta la banda disponibile. Notare che questa opzione "
+"implicitamente disabilita lo scaricamento da più server contemporaneamente."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:407
@@ -4032,6 +4037,16 @@ msgid ""
 "takes precedence over the legacy option name <literal>ProxyAutoDetect</"
 "literal>."
 msgstr ""
+"<literal>Acquire::http::Proxy-Auto-Detect</literal> può essere usato per "
+"specificare un comando esterno per rilevare il proxy http da usare. Apt si "
+"aspetta che il comando produca in output il proxy sullo stdout nello stile "
+"<literal>http://proxy:porta/</literal>. Questo avrà la precedenza sul "
+"generico <literal>Acquire::http::Proxy</literal>, ma non su qualsiasi "
+"configurazione specifica di host proxy impostata con "
+"<literal>Acquire::http::Proxy::$HOST</literal>. Vedere il pacchetto &squid-"
+"deb-proxy-client; per un esempio di implementazione che usa avahi. Questa "
+"opzione ha la precedenza sull'opzione col nome obsoleto "
+"<literal>ProxyAutoDetect</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:429
@@ -4415,12 +4430,12 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:585
 msgid "When downloading, force to use only the IPv4 protocol."
-msgstr ""
+msgstr "Durante gli scaricamenti, forza l'uso del solo protocollo IPv4."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:591
 msgid "When downloading, force to use only the IPv6 protocol."
-msgstr ""
+msgstr "Durante gli scaricamenti, forza l'uso del solo protocollo IPv6."
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt.conf.5.xml:598
@@ -4659,7 +4674,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:712
-#, fuzzy
 #| msgid ""
 #| "This is a list of shell commands to run before invoking &dpkg;. Like "
 #| "<literal>options</literal> this must be specified in list notation. The "
@@ -4676,14 +4690,14 @@ msgid ""
 msgstr ""
 "Questa è una lista di comandi di shell da eseguire prima di invocare &dpkg;. "
 "Come <literal>options</literal> deve essere specificata con la notazione per "
-"le liste. I comandi sono invocati in ordine usando <filename>/bin/sh</"
-"filename>; se qualcuno dei comandi fallisce APT terminerà annullando. APT "
-"passa i nomi di file di tutti i file .deb che sta per installare ai comandi, "
-"uno per riga, sullo standard input."
+"le liste. I comandi sono invocati in ordine usando "
+"<filename>/bin/sh</filename>; se qualcuno dei comandi fallisce APT terminerà "
+"annullando. APT passa i nomi di file di tutti i file .deb che sta per "
+"installare ai comandi, uno per riga sul descrittore di file richiesto, "
+"usando in modo predefinito lo standard input."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:719
-#, fuzzy
 #| msgid ""
 #| "Version 2 of this protocol dumps more information, including the protocol "
 #| "version, the APT configuration space and the packages, files and versions "
@@ -4698,10 +4712,9 @@ msgid ""
 msgstr ""
 "La versione 2 di questo protocollo fa il dump di più informazioni, inclusi "
 "la versione del protocollo, lo spazio di configurazione di APT, e i "
-"pacchetti, file e versioni che vengono modificati. La versione 2 viene "
-"abilitata impostando <literal>DPkg::Tools::options::cmd::Version</literal> a "
-"2. <literal>cmd</literal> è un comando passato a <literal>Pre-Install-Pkgs</"
-"literal>."
+"pacchetti, file e versioni che vengono modificati. La versione 3 aggiunge "
+"l'architettura e il contrassegno <literal>MultiArch</literal> per ciascuna "
+"versione di cui viene fatto il dump."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:724
@@ -4713,6 +4726,12 @@ msgid ""
 "the requested version it will send the information in the highest version it "
 "has support for instead."
 msgstr ""
+"La versione del protocollo da usare per il comando "
+"<literal><replaceable>cmd</replaceable></literal> può essere scelta "
+"impostando in modo appropriato <literal>DPkg::Tools::options::<replaceable>cm"
+"d</replaceable>::Version</literal>, il cui valore predefinito è la versione "
+"1. Se APT non supporta la versione richiesta invierà invece l'informazione "
+"nella versione più alta per cui ha il supporto."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:731
@@ -4724,6 +4743,13 @@ msgid ""
 "looking for the environment variable <envar>APT_HOOK_INFO_FD</envar> which "
 "contains the number of the used file descriptor as a confirmation."
 msgstr ""
+"Il descrittore di file da usare per inviare le informazioni può essere "
+"richiesto con <literal>DPkg::Tools::options::<replaceable>cmd</replaceable>::"
+"InfoFD</literal> che è in modo predefinito <literal>0</literal> per lo "
+"standard input ed è disponibile a partire dalla versione 0.9.11. Il supporto "
+"per l'opzione può essere controllato guardando la variabile d'ambiente "
+"<envar>APT_HOOK_INFO_FD</envar> che contiene il numero del descrittore di "
+"file usato per conferma."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:741
@@ -6784,10 +6810,10 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><literallayout>
 #: sources.list.5.xml:82
-#, fuzzy, no-wrap
+#, no-wrap
 #| msgid "deb [ options ] uri distribution [component1] [component2] [...]"
 msgid "deb [ options ] uri suite [component1] [component2] [...]"
-msgstr "deb [ opzioni ] uri distribuzione [componente1] [componente2] [...]"
+msgstr "deb [ opzioni ] uri suite [componente1] [componente2] [...]"
 
 #. type: Content of: <refentry><refsect1><para><literallayout>
 #: sources.list.5.xml:86
@@ -6811,6 +6837,23 @@ msgid ""
 "     [option1]: [option1-value]\n"
 "   "
 msgstr ""
+"     Types: deb deb-src\n"
+"     URIs: http://example.com\n"
+"     Suites: stable testing\n"
+"     Sections: componente1 componente2\n"
+"     Description: breve\n"
+"      lunga lunga lunga\n"
+"     [opzione1]: [valore-opzione1]\n"
+"\n"
+"     Types: deb\n"
+"     URIs: http://another.example.com\n"
+"     Suites: experimental\n"
+"     Sections: componente1 componente2\n"
+"     Enabled: no\n"
+"     Description:breve\n"
+"      lunga lunga lunga\n"
+"     [opzione1]: [valore-opzione1]\n"
+"   "
 
 #. type: Content of: <refentry><refsect1><para>
 #: sources.list.5.xml:84
@@ -6818,10 +6861,11 @@ msgid ""
 "Alternatively a rfc822 style format is also supported: <placeholder type="
 "\"literallayout\" id=\"0\"/>"
 msgstr ""
+"In alternativa è gestito anche un formato in stile rfc822: <placeholder type="
+"\"literallayout\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><para>
 #: sources.list.5.xml:105
-#, fuzzy
 #| msgid ""
 #| "The URI for the <literal>deb</literal> type must specify the base of the "
 #| "Debian distribution, from which APT will find the information it needs.  "
@@ -6842,18 +6886,16 @@ msgid ""
 "<literal>component</literal> must be present."
 msgstr ""
 "L'URI per il tipo <literal>deb</literal> deve specificare la base della "
-"distribuzione Debian, dalla quale APT troverà le informazioni necessarie. "
-"<literal>distribuzione</literal> può specificare un percorso esatto, nel "
-"qual caso le componenti devono essere omesse e <literal>distribuzione</"
-"literal> deve terminare con una sbarra (<literal>/</literal>). Questo è "
-"utile nel caso in cui si è interessati solo a una particolare sottosezione "
-"dell'archivio indicata dall'URI. Se <literal>distribuzione</literal> non "
-"specifica un percorso esatto, deve essere presente almeno una "
-"<literal>componente</literal>."
+"distribuzione Debian, dalla quale APT troverà le informazioni di cui ha "
+"bisogno. <literal>suite</literal> può specificare un percorso esatto, nel "
+"qual caso le componenti devono essere omesse e <literal>suite</literal> deve "
+"terminare con una sbarra (<literal>/</literal>). Questo è utile nel caso in "
+"cui si è interessati solo a una particolare sottosezione dell'archivio "
+"indicata dall'URI. Se <literal>suite</literal> non specifica un percorso "
+"esatto, deve essere presente almeno una <literal>componente</literal>."
 
 #. type: Content of: <refentry><refsect1><para>
 #: sources.list.5.xml:114
-#, fuzzy
 #| msgid ""
 #| "<literal>distribution</literal> may also contain a variable, <literal>"
 #| "$(ARCH)</literal> which expands to the Debian architecture (such as "
@@ -6871,8 +6913,8 @@ msgid ""
 "<literal>APT</literal> will automatically generate a URI with the current "
 "architecture otherwise."
 msgstr ""
-"<literal>distribuzione</literal> può anche contenere una variabile <literal>"
-"$(ARCH)</literal> che viene espansa nell'architettura Debian (come "
+"<literal>suite</literal> può anche contenere una variabile "
+"<literal>$(ARCH)</literal> che viene espansa nell'architettura Debian (come "
 "<literal>amd64</literal> o <literal>armel</literal>) usata nel sistema. Ciò "
 "consente di utilizzare file <filename>sources.list</filename> indipendenti "
 "dall'architettura. In generale questo è interessante solo quando viene "
@@ -6881,7 +6923,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
 #: sources.list.5.xml:122
-#, fuzzy
 #| msgid ""
 #| "Since only one distribution can be specified per line it may be necessary "
 #| "to have multiple lines for the same URI, if a subset of all available "
@@ -6907,17 +6948,18 @@ msgid ""
 "users. APT also parallelizes connections to different hosts to more "
 "effectively deal with sites with low bandwidth."
 msgstr ""
-"Dato che può essere specificata solo una distribuzione per riga, può essere "
-"necessario avere più righe per lo stesso URI, se si desidera un sottoinsieme "
-"di tutte le distribuzioni o componenti disponibili in quella posizione. APT "
-"ordinerà la lista degli URI dopo aver generato internamente un insieme "
-"completo, e riunirà i riferimenti multipli, per esempio al medesimo host "
-"Internet in una singola connessione; in questo modo non stabilisce in modo "
-"inefficiente una connessione FTP per poi chiuderla, fare qualcos'altro e "
-"quindi ristabilire una connessione con il medesimo host. Questa funzionalità "
-"è utile per accedere a siti FTP molto impegnati con un limite al numero di "
-"accessi anonimi contemporanei. APT inoltre parallelizza le connessioni a "
-"host differenti, per gestire in maniera più efficiente i siti con scarsa "
+"Dato che, nel formato di sources.list in stile tradizionale, può essere "
+"specificata solo una distribuzione per riga, può essere necessario avere più "
+"righe per lo stesso URI, se si desidera un sottoinsieme di tutte le "
+"distribuzioni o componenti disponibili in quella posizione. APT ordinerà la "
+"lista degli URI dopo aver generato internamente un insieme completo, e "
+"riunirà i riferimenti multipli, per esempio al medesimo host Internet in una "
+"singola connessione; in questo modo non stabilisce in modo inefficiente una "
+"connessione FTP per poi chiuderla, fare qualcos'altro e quindi ristabilire "
+"una connessione con il medesimo host. Questa funzionalità è utile per "
+"accedere a siti FTP molto impegnati con un limite al numero di accessi "
+"anonimi contemporanei. APT inoltre parallelizza le connessioni a host "
+"differenti, per gestire in maniera più efficiente i siti con scarsa "
 "larghezza di banda."
 
 #. type: Content of: <refentry><refsect1><para>
@@ -6954,7 +6996,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para>
 #: sources.list.5.xml:146
-#, fuzzy
 #| msgid ""
 #| "<literal>arch=<replaceable>arch1</replaceable>,<replaceable>arch2</"
 #| "replaceable>,…</literal> can be used to specify for which architectures "
@@ -6967,11 +7008,10 @@ msgid ""
 "<replaceable>arch2</replaceable>,…</literal> which can be used to add/remove "
 "architectures from the set which will be downloaded."
 msgstr ""
-"<literal>arch=<replaceable>arch1</replaceable>,<replaceable>arch2</"
-"replaceable>,…</literal> può essere usato per specificare le architetture "
-"per le quali scaricare le informazioni. Se questa opzione non è impostata "
-"verranno scaricate tutte le architetture definite dall'opzione <literal>APT::"
-"Architectures</literal>."
+"<literal>arch+=<replaceable>arch1</replaceable>,<replaceable>arch2</replaceab"
+"le>,…</literal> e <literal>arch-=<replaceable>arch1</replaceable>,<replaceabl"
+"e>arch2</replaceable>,…</literal> possono essere usati per aggiungere e "
+"rimuovere architetture dall'insieme di quelle che verranno scaricate."
 
 #. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para>
 #: sources.list.5.xml:149
@@ -8796,7 +8836,6 @@ msgstr ""
 
 #. type: <p></p>
 #: guide.sgml:163
-#, fuzzy
 #| msgid ""
 #| "<prgn>apt-get</prgn> has several command line options that are detailed "
 #| "in its man page, <manref section=\"8\" name=\"apt-get\">. The most useful "
@@ -8807,7 +8846,7 @@ msgstr ""
 #| "command that caused them to be downloaded again without <tt>-d</tt>."
 msgid ""
 "<prgn>apt-get</prgn> has several command line options that are detailed in "
-"its man page, <manref name=\"apt-get\" section=\"8\">. The most useful "
+"its man page, <manref section=\"8\" name=\"apt-get\">. The most useful "
 "option is <tt>-d</tt> which does not install the fetched files. If the "
 "system has to download a large number of package it would be undesired to "
 "start installing them in case something goes wrong. When <tt>-d</tt> is used "
@@ -8815,13 +8854,13 @@ msgid ""
 "caused them to be downloaded again without <tt>-d</tt>."
 msgstr ""
 "<prgn>apt-get</prgn> ha diverse opzioni per la riga di comando, che sono "
-"documentate dettagliatamente nella sua pagina di manuale, <manref section="
-"\"8\" name=\"apt-get\">. L'opzione più utile è <tt>-d</tt>, che non installa "
-"i file scaricati; se il sistema deve scaricare un gran numero di pacchetti, "
+"documentate dettagliatamente nella sua pagina di manuale, <manref section=\""
+"8\" name=\"apt-get\">. L'opzione più utile è <tt>-d</tt>, che non installa i "
+"file scaricati; se il sistema deve scaricare un gran numero di pacchetti, "
 "non è bene iniziare ad installarli nel caso qualcosa dovesse andare storto. "
 "Quando si usa <tt>-d</tt>, gli archivi scaricati possono essere installati "
-"semplicemente eseguendo di nuovo lo stesso comando senza l'opzione <tt>-d</"
-"tt>."
+"semplicemente eseguendo di nuovo lo stesso comando senza l'opzione "
+"<tt>-d</tt>."
 
 #. type: <heading></heading>
 #: guide.sgml:168

+ 1 - 1
po/ar.po

@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2006-10-20 21:28+0300\n"
 "Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
 "Language-Team: Arabic <support@arabeyes.org>\n"

+ 1 - 1
po/ast.po

@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.18\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2010-10-02 23:35+0100\n"
 "Last-Translator: Iñigo Varela <ivarela@softastur.org>\n"
 "Language-Team: Asturian (ast)\n"

+ 1 - 1
po/bg.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.21\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-06-25 17:23+0300\n"
 "Last-Translator: Damyan Ivanov <dmn@debian.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"

+ 1 - 1
po/bs.po

@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.5.26\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2004-05-06 15:25+0100\n"
 "Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
 "Language-Team: Bosnian <lokal@lugbih.org>\n"

+ 1 - 1
po/ca.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.9.7.6\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-10-19 13:30+0200\n"
 "Last-Translator: Jordi Mallach <jordi@debian.org>\n"
 "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"

+ 1 - 1
po/cs.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-07-08 13:46+0200\n"
 "Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
 "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"

+ 1 - 1
po/cy.po

@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: APT\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2005-06-06 13:46+0100\n"
 "Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n"
 "Language-Team: Welsh <cy@pengwyn.linux.org.uk>\n"

+ 1 - 1
po/da.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2013-12-14 23:51+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"

+ 1 - 1
po/de.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.9.2\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-06-27 10:55+0200\n"
 "Last-Translator: Holger Wansing <linux@wansing-online.de>\n"
 "Language-Team: Debian German <debian-l10n-german@lists.debian.org>\n"

+ 1 - 1
po/dz.po

@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po.pot\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2006-09-19 09:49+0530\n"
 "Last-Translator: Kinley Tshering <gasepkuenden2k3@hotmail.com>\n"
 "Language-Team: Dzongkha <pgeyleg@dit.gov.bt>\n"

+ 1 - 1
po/el.po

@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_el\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2008-08-26 18:25+0300\n"
 "Last-Translator: Θανάσης Νάτσης <natsisthanasis@gmail.com>\n"
 "Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n"

+ 1 - 1
po/es.po

@@ -33,7 +33,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.10\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2011-01-24 11:47+0100\n"
 "Last-Translator: Javier Fernández-Sanguino Peña <jfs@debian.org>\n"
 "Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\n"

+ 1 - 1
po/eu.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_eu\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2009-05-17 00:41+0200\n"
 "Last-Translator: Piarres Beobide <pi@beobide.net>\n"
 "Language-Team: Euskara <debian-l10n-basque@lists.debian.org>\n"

+ 1 - 1
po/fi.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.5.26\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2008-12-11 14:52+0200\n"
 "Last-Translator: Tapio Lehtonen <tale@debian.org>\n"
 "Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"

+ 1 - 1
po/fr.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2013-08-17 07:57+0200\n"
 "Last-Translator: Christian Perrier <bubulle@debian.org>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"

+ 1 - 1
po/gl.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_gl\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2011-05-12 15:28+0100\n"
 "Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n"
 "Language-Team: galician <proxecto@trasno.net>\n"

+ 1 - 1
po/hu.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt trunk\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-06-25 17:09+0200\n"
 "Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n"
 "Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"

+ 1 - 1
po/it.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2013-08-27 22:06+0200\n"
 "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"

+ 86 - 186
po/ja.po

@@ -6,10 +6,10 @@
 # Debian Project, Kenshi Muto <kmuto@debian.org>, 2004-2012
 msgid ""
 msgstr ""
-"Project-Id-Version: apt 0.9.9.4\n"
+"Project-Id-Version: apt 0.9.16.1\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
-"PO-Revision-Date: 2013-08-11 19:39+0900\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
+"PO-Revision-Date: 2014-03-21 19:53+0900\n"
 "Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
 "Language-Team: Debian Japanese List <debian-japanese@lists.debian.org>\n"
 "Language: ja\n"
@@ -249,17 +249,15 @@ msgid "Failed to mount '%s' to '%s'"
 msgstr "'%s' を '%s' にマウントできませんでした"
 
 #: cmdline/apt-cdrom.cc:178
-#, fuzzy
 msgid ""
 "No CD-ROM could be auto-detected or found using the default mount point.\n"
 "You may try the --cdrom option to set the CD-ROM mount point.\n"
 "See 'man apt-cdrom' for more information about the CD-ROM auto-detection and "
 "mount point."
 msgstr ""
-"CD-ROM が自動検出されなかったか、デフォルトで利用するマウントポイントに見当た"
-"りませんでした。CD-ROM のマウントポイントを設定するために --cdrom オプション"
-"を試すことができます。CD-ROM の自動検出およびマウントポイントの詳細について"
-"は、'man apt-cdrom' を参照してください。"
+"CD-ROM が自動検出されなかったか、デフォルトで利用するマウントポイントに見当たりませんでした。\n"
+"CD-ROM のマウントポイントを設定するために --cdrom オプションを試すことができます。\n"
+"CD-ROM の自動検出およびマウントポイントの詳細については、'man apt-cdrom' を参照してください。"
 
 #: cmdline/apt-cdrom.cc:182
 msgid "Repeat this process for the rest of the CDs in your set."
@@ -299,19 +297,19 @@ msgstr ""
 "  -o=? 指定した設定オプションを適用する (例: -o dir::cache=/tmp)\n"
 
 #: cmdline/apt-get.cc:245
-#, fuzzy, c-format
+#, c-format
 msgid "Can not find a package for architecture '%s'"
-msgstr "正規表現 '%s' ではパッケージは見つかりませんでした"
+msgstr "アーキテクチャ '%s' 用のパッケージは見つかりませんでした"
 
 #: cmdline/apt-get.cc:327
-#, fuzzy, c-format
+#, c-format
 msgid "Can not find a package '%s' with version '%s'"
-msgstr "正規表現 '%s' ではパッケージは見つかりませんでした"
+msgstr "パッケージ '%s' のバージョン '%s' は見つかりませんでした"
 
 #: cmdline/apt-get.cc:330
-#, fuzzy, c-format
+#, c-format
 msgid "Can not find a package '%s' with release '%s'"
-msgstr "正規表現 '%s' ではパッケージは見つかりませんでした"
+msgstr "リリース '%2$s' にはパッケージ '%1$s' は見つかりませんでした"
 
 #: cmdline/apt-get.cc:367
 #, c-format
@@ -319,9 +317,9 @@ msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "'%2$s' の代わりに '%1$s' をソースパッケージとして選出しています\n"
 
 #: cmdline/apt-get.cc:423
-#, fuzzy, c-format
+#, c-format
 msgid "Can not find version '%s' of package '%s'"
-msgstr "パッケージ '%2$s' の利用できないバージョン '%1$s' を無視"
+msgstr "パッケージ '%2$s' のバージョン '%1$s' は見つかりませんでした"
 
 #: cmdline/apt-get.cc:454
 #, c-format
@@ -637,14 +635,12 @@ msgstr ""
 "                        この APT は Super Cow Powers 化されています。\n"
 
 #: cmdline/apt-helper.cc:35
-#, fuzzy
 msgid "Must specify at least one pair url/filename"
-msgstr ""
-"ソースを取得するには少なくとも 1 つのパッケージ名を指定する必要があります"
+msgstr "少なくとも URL / ファイル名を 1 組指定する必要があります"
 
 #: cmdline/apt-helper.cc:52
 msgid "Download Failed"
-msgstr ""
+msgstr "ダウンロード失敗"
 
 #: cmdline/apt-helper.cc:65
 msgid ""
@@ -658,6 +654,15 @@ msgid ""
 "\n"
 "                       This APT helper has Super Meep Powers.\n"
 msgstr ""
+"使用法: apt-helper [オプション] コマンド\n"
+"        apt-helper [オプション] download-file uri 目標パス\n"
+"\n"
+"apt-helper は apt の内部ヘルパーです\n"
+"\n"
+"コマンド:\n"
+"   download-file - 指定した uri を目標パスにダウンロードする\n"
+"\n"
+"                この APT helper は Super Meep Powers 化されています。\n"
 
 #: cmdline/apt-mark.cc:68
 #, c-format
@@ -706,7 +711,6 @@ msgid "Executing dpkg failed. Are you root?"
 msgstr "dpkg の実行に失敗しました。root 権限で実行していますか?"
 
 #: cmdline/apt-mark.cc:392
-#, fuzzy
 msgid ""
 "Usage: apt-mark [options] {auto|manual} pkg1 [pkg2 ...]\n"
 "\n"
@@ -738,8 +742,13 @@ msgstr ""
 "する簡単なコマンドラインインターフェイスです。マークの一覧表示もできます。\n"
 "\n"
 "コマンド:\n"
-"   auto - 指定のパッケージを自動でインストールされたものとしてマークする\n"
-"   manual - 指定のパッケージを手動でインストールしたものとしてマークする\n"
+"   auto       - 指定のパッケージを自動でインストールされたものとしてマークする\n"
+"   manual     - 指定のパッケージを手動でインストールしたものとしてマークする\n"
+"   hold       - パッケージを保留としてマークする\n"
+"   unhold     - パッケージの保留を解除する\n"
+"   showauto   - 自動的にインストールされたパッケージの一覧を表示する\n"
+"   showmanual - 手作業でインストールしたパッケージの一覧を表示する\n"
+"   showhold   - 保留されているパッケージの一覧を表示する\n"
 "\n"
 "オプション:\n"
 "  -h  このヘルプを表示する\n"
@@ -749,8 +758,7 @@ msgstr ""
 "  -f  指定のファイルを使って自動/手動のマーキングを読み書きする\n"
 "  -c=? 指定した設定ファイルを読み込む\n"
 "  -o=? 任意の設定オプションを指定する (例 -o dir::cache=/tmp)\n"
-"さらなる情報については、マニュアルページ apt-mark(8) および apt.conf(5) を参"
-"照してください。"
+"さらなる情報については、マニュアルページ apt-mark(8) および apt.conf(5) を参照してください。"
 
 #: cmdline/apt.cc:47
 msgid ""
@@ -773,6 +781,23 @@ msgid ""
 "\n"
 " edit-sources - edit the source information file\n"
 msgstr ""
+"使用法: apt [オプション] コマンド\n"
+"\n"
+"apt 用コマンドラインインターフェイス\n"
+"基本コマンド: \n"
+" list   - パッケージ名を基にパッケージの一覧を表示\n"
+" search - パッケージの説明を検索\n"
+" show   - パッケージの詳細を表示\n"
+"\n"
+" update - 利用可能パッケージの一覧を更新\n"
+"\n"
+" install - パッケージをインストール\n"
+" remove  - パッケージを削除\n"
+"\n"
+" upgrade - パッケージをインストール/更新してシステムをアップグレード\n"
+" full-upgrade - パッケージを削除/インストール/更新してシステムをアップグレード\n"
+"\n"
+" edit-sources - ソース情報ファイルを編集\n"
 
 #: methods/cdrom.cc:203
 #, c-format
@@ -1148,7 +1173,7 @@ msgstr "内部エラー"
 
 #: apt-private/private-list.cc:132
 msgid "Listing"
-msgstr ""
+msgstr "一覧表示"
 
 #: apt-private/private-install.cc:81
 msgid "Internal error, InstallPackages was called with broken packages!"
@@ -1392,40 +1417,37 @@ msgstr "%s の取得に失敗しました  %s\n"
 #: apt-private/private-output.cc:81 apt-private/private-show.cc:84
 #: apt-private/private-show.cc:89
 msgid "unknown"
-msgstr ""
+msgstr "不明"
 
 #: apt-private/private-output.cc:207
-#, fuzzy, c-format
+#, c-format
 msgid "[installed,upgradable to: %s]"
-msgstr " [インストール済み]"
+msgstr "[インストール済み、%s にアップグレード可]"
 
 #: apt-private/private-output.cc:211
-#, fuzzy
 msgid "[installed,local]"
-msgstr " [インストール済み]"
+msgstr "[インストール済み、ローカル]"
 
 #: apt-private/private-output.cc:214
 msgid "[installed,auto-removable]"
-msgstr ""
+msgstr "[インストール済み、自動削除可]"
 
 #: apt-private/private-output.cc:216
-#, fuzzy
 msgid "[installed,automatic]"
-msgstr " [インストール済み]"
+msgstr "[インストール済み、自動]"
 
 #: apt-private/private-output.cc:218
-#, fuzzy
 msgid "[installed]"
-msgstr " [インストール済み]"
+msgstr "[インストール済み]"
 
 #: apt-private/private-output.cc:222
 #, c-format
 msgid "[upgradable from: %s]"
-msgstr ""
+msgstr "[%s からアップグレード可]"
 
 #: apt-private/private-output.cc:226
 msgid "[residual-config]"
-msgstr ""
+msgstr "[設定未完了]"
 
 #: apt-private/private-output.cc:326
 msgid "The following packages have unmet dependencies:"
@@ -1586,7 +1608,7 @@ msgstr "未解決の依存関係があります。-f オプションを試して
 
 #: apt-private/private-cacheset.cc:35 apt-private/private-search.cc:47
 msgid "Sorting"
-msgstr ""
+msgstr "ソート中"
 
 #: apt-private/private-update.cc:31
 msgid "The update command takes no arguments"
@@ -1597,9 +1619,8 @@ msgid "Calculating upgrade... "
 msgstr "アップグレードパッケージを検出しています ... "
 
 #: apt-private/private-upgrade.cc:30
-#, fuzzy
 msgid "Internal error, Upgrade broke stuff"
-msgstr "内部エラー、AllUpgrade が何かを破壊しました"
+msgstr "内部エラー、アップグレードで何か壊れました"
 
 #: apt-private/private-upgrade.cc:32
 msgid "Done"
@@ -1607,18 +1628,18 @@ msgstr "完了"
 
 #: apt-private/private-search.cc:51
 msgid "Full Text Search"
-msgstr ""
+msgstr "全文検索"
 
 #: apt-private/private-show.cc:156
 #, c-format
 msgid "There is %i additional record. Please use the '-a' switch to see it"
 msgid_plural ""
 "There are %i additional records. Please use the '-a' switch to see them."
-msgstr[0] ""
+msgstr[0] "追加レコードが %i 件あります。表示するには '-a' スイッチを付けてください。"
 
 #: apt-private/private-show.cc:163
 msgid "not a real package (virtual)"
-msgstr ""
+msgstr "実際のパッケージではありません (仮想)"
 
 #: apt-private/private-main.cc:23
 msgid ""
@@ -1633,14 +1654,14 @@ msgstr ""
 "      あるとは言い切れないことに注意してください!"
 
 #: apt-private/private-sources.cc:58
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to parse %s. Edit again? "
-msgstr "%s を %s に名前変更できませんでした"
+msgstr "%s の解析に失敗しました。再編集しますか? "
 
 #: apt-private/private-sources.cc:70
 #, c-format
 msgid "Your '%s' file changed, please run 'apt-get update'."
-msgstr ""
+msgstr "'%s' ファイルが変更されています。「apt-get update」を実行してください。"
 
 #: apt-private/acqprogress.cc:66
 msgid "Hit "
@@ -2046,9 +2067,9 @@ msgstr "'%s' をオープンできません"
 #. skip spaces
 #. find end of word
 #: ftparchive/override.cc:68
-#, fuzzy, c-format
+#, c-format
 msgid "Malformed override %s line %llu (%s)"
-msgstr "不正な override %s %llu 行目 #1"
+msgstr "不正な override %s %llu 行目 (%s)"
 
 #: ftparchive/override.cc:127 ftparchive/override.cc:201
 #, c-format
@@ -2781,9 +2802,9 @@ msgid "Unable to parse package file %s (2)"
 msgstr "パッケージファイル %s を解釈することができません (2)"
 
 #: apt-pkg/sourcelist.cc:127
-#, fuzzy, c-format
+#, c-format
 msgid "Malformed stanza %u in source list %s (URI parse)"
-msgstr "ソースリスト %2$s の %1$lu 行目が不正です (URI parse)"
+msgstr "ソースリスト %2$s の %1$u 個目の区切りが不正です (URI parse)"
 
 #: apt-pkg/sourcelist.cc:170
 #, c-format
@@ -2860,9 +2881,9 @@ msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "ソースリスト %3$s の %2$u 行にあるタイプ '%1$s' は不明です"
 
 #: apt-pkg/sourcelist.cc:416
-#, fuzzy, c-format
+#, c-format
 msgid "Type '%s' is not known on stanza %u in source list %s"
-msgstr "ソースリスト %3$s の %2$u 行にあるタイプ '%1$s' は不明です"
+msgstr "ソースリスト %3$s の %2$u 個目の節 '%1$s' は不明です"
 
 #: apt-pkg/packagemanager.cc:303 apt-pkg/packagemanager.cc:932
 #, c-format
@@ -2947,10 +2968,9 @@ msgid "The method driver %s could not be found."
 msgstr "メソッドドライバ %s が見つかりません。"
 
 #: apt-pkg/acquire-worker.cc:118
-#, fuzzy, c-format
+#, c-format
 msgid "Is the package %s installed?"
-msgstr ""
-"'dpkg-dev' パッケージがインストールされていることを確認してください。\n"
+msgstr "パッケージ %s はインストールされていますか?"
 
 #: apt-pkg/acquire-worker.cc:169
 #, c-format
@@ -3090,9 +3110,8 @@ msgid "Size mismatch"
 msgstr "サイズが適合しません"
 
 #: apt-pkg/acquire-item.cc:173
-#, fuzzy
 msgid "Invalid file format"
-msgstr "不正な操作 %s"
+msgstr "不正なファイル形式"
 
 #: apt-pkg/acquire-item.cc:1579
 #, c-format
@@ -3325,9 +3344,9 @@ msgid "Couldn't find any package by regex '%s'"
 msgstr "正規表現 '%s' ではパッケージは見つかりませんでした"
 
 #: apt-pkg/cacheset.cc:613
-#, fuzzy, c-format
+#, c-format
 msgid "Couldn't find any package by glob '%s'"
-msgstr "正規表現 '%s' ではパッケージは見つかりませんでした"
+msgstr "'%s' に一致するパッケージは見つかりませんでした"
 
 #: apt-pkg/cacheset.cc:624
 #, c-format
@@ -3384,7 +3403,7 @@ msgstr "外部ソルバを実行"
 #: apt-pkg/install-progress.cc:57
 #, c-format
 msgid "Progress: [%3i%%]"
-msgstr ""
+msgstr "進捗: [%3i%%]"
 
 #: apt-pkg/install-progress.cc:91 apt-pkg/install-progress.cc:174
 msgid "Running dpkg"
@@ -3481,20 +3500,20 @@ msgstr "%s を完全に削除しました"
 
 #: apt-pkg/deb/dpkgpm.cc:1050
 msgid "ioctl(TIOCGWINSZ) failed"
-msgstr ""
+msgstr "ioctl(TIOCGWINSZ) に失敗しました"
 
 #: apt-pkg/deb/dpkgpm.cc:1053 apt-pkg/deb/dpkgpm.cc:1074
-#, fuzzy, c-format
+#, c-format
 msgid "Can not write log (%s)"
-msgstr "%s に書き込めません"
+msgstr "ログを書き込めません (%s)"
 
 #: apt-pkg/deb/dpkgpm.cc:1053
 msgid "Is /dev/pts mounted?"
-msgstr ""
+msgstr "/dev/pts はマウントされていますか?"
 
 #: apt-pkg/deb/dpkgpm.cc:1074
 msgid "Is stdout a terminal?"
-msgstr ""
+msgstr "標準出力はターミナルですか?"
 
 #: apt-pkg/deb/dpkgpm.cc:1562
 msgid "Operation was interrupted before it could finish"
@@ -3534,13 +3553,10 @@ msgstr ""
 "込まれません。"
 
 #: apt-pkg/deb/dpkgpm.cc:1651 apt-pkg/deb/dpkgpm.cc:1657
-#, fuzzy
 msgid ""
 "No apport report written because the error message indicates an issue on the "
 "local system"
-msgstr ""
-"エラーメッセージはディスクフルエラーであることを示しているので、レポートは書"
-"き込まれません。"
+msgstr "エラーメッセージはローカルシステムの問題であることを示しているので、レポートは書き込まれません。"
 
 #: apt-pkg/deb/dpkgpm.cc:1678
 msgid ""
@@ -3577,119 +3593,3 @@ msgstr ""
 #: apt-pkg/deb/debsystem.cc:128
 msgid "Not locked"
 msgstr "ロックされていません"
-
-#~ msgid "%s not a valid DEB package."
-#~ msgstr "%s は正しい DEB パッケージではありません。"
-
-#~ msgid ""
-#~ "Using CD-ROM mount point %s\n"
-#~ "Mounting CD-ROM\n"
-#~ msgstr ""
-#~ "CD-ROM マウントポイント %s を使用します\n"
-#~ "CD-ROM をマウントしています\n"
-
-#~ msgid ""
-#~ "Could not patch %s with mmap and with file operation usage - the patch "
-#~ "seems to be corrupt."
-#~ msgstr ""
-#~ "mmap およびファイル操作用法へのパッチ %s を適用できません - パッチが壊れて"
-#~ "いるようです。"
-
-#~ msgid ""
-#~ "Could not patch %s with mmap (but no mmap specific fail) - the patch "
-#~ "seems to be corrupt."
-#~ msgstr ""
-#~ "mmap へのパッチ %s を適用できません (しかし mmap 固有の失敗ではありませ"
-#~ "ん) - パッチが壊れているようです。"
-
-#~ msgid "Note, selecting '%s' for task '%s'\n"
-#~ msgstr "注意: タスク '%2$s' に対して '%1$s' を選択しています\n"
-
-#~ msgid "Note, selecting '%s' for regex '%s'\n"
-#~ msgstr "注意: 正規表現 '%2$s' に対して '%1$s' を選択しています\n"
-
-#~ msgid "Package %s is a virtual package provided by:\n"
-#~ msgstr "%s は以下のパッケージで提供されている仮想パッケージです:\n"
-
-#~ msgid " [Not candidate version]"
-#~ msgstr "[候補バージョンなし]"
-
-#~ msgid "You should explicitly select one to install."
-#~ msgstr "インストールするパッケージを明示的に選択する必要があります。"
-
-#~ msgid ""
-#~ "Package %s is not available, but is referred to by another package.\n"
-#~ "This may mean that the package is missing, has been obsoleted, or\n"
-#~ "is only available from another source\n"
-#~ msgstr ""
-#~ "パッケージ %s はデータベースには存在しますが、利用できません。\n"
-#~ "おそらく、そのパッケージが見つからないか、もう古くなっているか、\n"
-#~ "あるいは別のソースからのみしか利用できないという状況が考えられます\n"
-
-#~ msgid "However the following packages replace it:"
-#~ msgstr "しかし、以下のパッケージで置き換えられています:"
-
-#~ msgid "Package '%s' has no installation candidate"
-#~ msgstr "パッケージ '%s' にはインストール候補がありません"
-
-#~ msgid "Virtual packages like '%s' can't be removed\n"
-#~ msgstr "'%s' のような仮想パッケージは削除できません\n"
-
-#~ msgid "Package '%s' is not installed, so not removed. Did you mean '%s'?\n"
-#~ msgstr ""
-#~ "パッケージ %s はインストールされていないため、削除はできません。'%s' のこ"
-#~ "とでしょうか?\n"
-
-#~ msgid "Package '%s' is not installed, so not removed\n"
-#~ msgstr "パッケージ '%s' はインストールされていないため、削除はできません\n"
-
-#~ msgid "Note, selecting '%s' instead of '%s'\n"
-#~ msgstr "注意、'%2$s' の代わりに '%1$s' を選択しています\n"
-
-#~ msgid "Skipping %s, it is already installed and upgrade is not set.\n"
-#~ msgstr ""
-#~ "すでにインストールされておりアップグレードも設定されていないため、%s をス"
-#~ "キップします。\n"
-
-#~ msgid "Skipping %s, it is not installed and only upgrades are requested.\n"
-#~ msgstr ""
-#~ "%s はインストールされていないのにアップグレードだけが要求されているので、"
-#~ "スキップします。\n"
-
-#~ msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
-#~ msgstr "ダウンロードできないため、%s の再インストールは不可能です。\n"
-
-#~ msgid "%s is already the newest version.\n"
-#~ msgstr "%s はすでに最新バージョンです。\n"
-
-#~ msgid "Selected version '%s' (%s) for '%s'\n"
-#~ msgstr "'%3$s' にはバージョン '%1$s' (%2$s) を選択しました\n"
-
-#~ msgid "Selected version '%s' (%s) for '%s' because of '%s'\n"
-#~ msgstr "'%4$s' のため、'%3$s' にはバージョン '%1$s' (%2$s) を選択しました\n"
-
-#~ msgid "Ignore unavailable target release '%s' of package '%s'"
-#~ msgstr "パッケージ '%2$s' の利用できないターゲットリリース '%1$s' を無視"
-
-#~ msgid "Downloading %s %s"
-#~ msgstr "%s %s をダウンロードしています"
-
-#~ msgid "This is not a valid DEB archive, it has no '%s', '%s' or '%s' member"
-#~ msgstr ""
-#~ "これは正しい DEB アーカイブではありません。'%s'、'%s'、'%s' のいずれのメン"
-#~ "バーもありません"
-
-#~ msgid "MD5Sum mismatch"
-#~ msgstr "MD5Sum が適合しません"
-
-#~ msgid ""
-#~ "I wasn't able to locate a file for the %s package. This might mean you "
-#~ "need to manually fix this package."
-#~ msgstr ""
-#~ "パッケージ %s のファイルの位置を特定できません。おそらくこのパッケージを手"
-#~ "動で修正する必要があります。"
-
-#~ msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
-#~ msgstr ""
-#~ "ログに書き込めません。openpty() に失敗しました (/dev/pts がマウントされて"
-#~ "いない?)\n"

+ 1 - 1
po/km.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_km\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2006-10-10 09:48+0700\n"
 "Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
 "Language-Team: Khmer <support@khmeros.info>\n"

+ 1 - 1
po/ko.po

@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2010-08-30 02:31+0900\n"
 "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
 "Language-Team: Korean <debian-l10n-korean@lists.debian.org>\n"

+ 1 - 1
po/ku.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt-ku\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2008-05-08 12:48+0200\n"
 "Last-Translator: Erdal Ronahi <erdal dot ronahi at gmail dot com>\n"
 "Language-Team: ku <ubuntu-l10n-kur@lists.ubuntu.com>\n"

+ 1 - 1
po/lt.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2008-08-02 01:47-0400\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"

+ 1 - 1
po/mr.po

@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2008-11-20 23:27+0530\n"
 "Last-Translator: Sampada <sampadanakhare@gmail.com>\n"
 "Language-Team: Marathi, janabhaaratii, C-DAC, Mumbai, India "

+ 1 - 1
po/nb.po

@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2010-09-01 21:10+0200\n"
 "Last-Translator: Hans Fredrik Nordhaug <hans@nordhaug.priv.no>\n"
 "Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"

+ 1 - 1
po/ne.po

@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2006-06-12 14:35+0545\n"
 "Last-Translator: Shiva Pokharel <pokharelshiva@hotmail.com>\n"
 "Language-Team: Nepali <info@mpp.org.np>\n"

+ 1 - 1
po/nl.po

@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.15.9\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2011-12-05 17:10+0100\n"
 "Last-Translator: Jeroen Schot <schot@a-eskwadraat.nl>\n"
 "Language-Team: Debian l10n Dutch <debian-l10n-dutch@lists.debian.org>\n"

+ 1 - 1
po/nn.po

@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_nn\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2005-02-14 23:30+0100\n"
 "Last-Translator: Havard Korsvoll <korsvoll@skulelinux.no>\n"
 "Language-Team: Norwegian nynorsk <i18n-nn@lister.ping.uio.no>\n"

+ 1 - 1
po/pl.po

@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.9.7.3\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-07-28 21:53+0200\n"
 "Last-Translator: Michał Kułach <michal.kulach@gmail.com>\n"
 "Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"

+ 1 - 1
po/pt.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-06-29 15:45+0100\n"
 "Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
 "Language-Team: Portuguese <traduz@debianpt.org>\n"

+ 1 - 1
po/pt_BR.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2008-11-17 02:33-0200\n"
 "Last-Translator: Felipe Augusto van de Wiel (faw) <faw@debian.org>\n"
 "Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."

+ 1 - 1
po/ro.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ro\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2008-11-15 02:21+0200\n"
 "Last-Translator: Eddy Petrișor <eddy.petrisor@gmail.com>\n"
 "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"

+ 1 - 1
po/ru.po

@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt rev2227.1.3\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-06-30 08:47+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"

+ 1 - 1
po/sk.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-06-28 20:49+0100\n"
 "Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"

+ 1 - 1
po/sl.po

@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.5.5\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-06-27 21:29+0000\n"
 "Last-Translator: Andrej Znidarsic <andrej.znidarsic@gmail.com>\n"
 "Language-Team: Slovenian <sl@li.org>\n"

+ 1 - 1
po/sv.po

@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2010-08-24 21:18+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <debian-l10n-swedish@debian.org>\n"

+ 1 - 1
po/th.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-10-27 22:44+0700\n"
 "Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\n"
 "Language-Team: Thai <thai-l10n@googlegroups.com>\n"

+ 1 - 1
po/tl.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2007-03-29 21:36+0800\n"
 "Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n"
 "Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n"

+ 1 - 1
po/tr.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2013-02-18 03:41+0200\n"
 "Last-Translator: Mert Dirik <mertdirik@gmail.com>\n"
 "Language-Team: Debian l10n Turkish\n"

+ 1 - 1
po/uk.po

@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt-all\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2012-09-25 20:19+0300\n"
 "Last-Translator: A. Bondarenko <artem.brz@gmail.com>\n"
 "Language-Team: Українська <uk@li.org>\n"

+ 1 - 1
po/vi.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.9.15.5\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2014-03-03 15:40+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"

+ 1 - 1
po/zh_CN.po

@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.0~pre1\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2010-08-26 14:42+0800\n"
 "Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"

+ 1 - 1
po/zh_TW.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.5.4\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2014-03-14 09:13+0100\n"
+"POT-Creation-Date: 2014-03-15 18:13+0100\n"
 "PO-Revision-Date: 2009-01-28 10:41+0800\n"
 "Last-Translator: Tetralet <tetralet@gmail.com>\n"
 "Language-Team: Debian-user in Chinese [Big5] <debian-chinese-big5@lists."

+ 1 - 0
test/integration/framework

@@ -118,6 +118,7 @@ apt() { runapt apt "$@"; }
 apthelper() { runapt "${APTHELPERBINDIR}/apt-helper" "$@"; }
 aptwebserver() { runapt "${APTWEBSERVERBINDIR}/aptwebserver" "$@"; }
 aptitude() { runapt aptitude "$@"; }
+aptextracttemplates() { runapt apt-extracttemplates "$@"; }
 
 dpkg() {
 	command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@"

+ 45 - 0
test/integration/test-apt-extracttemplates

@@ -0,0 +1,45 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture 'amd64'
+
+# apt-extracttemplates needs this
+insertinstalledpackage 'debconf' 'amd64' '1.5'
+insertinstalledpackage 'pkg-with-template' 'amd64' '1.0'
+
+# build a simple package that contains a config and a tempalte
+mkdir -p DEBIAN
+TEMPLATE_STR="Template: foo/bar
+Type: string
+Description: Some bar var
+"
+echo "$TEMPLATE_STR" > DEBIAN/templates
+
+CONFIG_STR="#!/bin/sh
+random shell stuff
+"
+echo "$CONFIG_STR" > DEBIAN/config
+
+buildsimplenativepackage 'pkg-with-template' 'amd64' '0.8.15' 'stable' '' 'pkg with template' '' '' './DEBIAN' 
+
+# ensure we get the right stuff out of the file
+mkdir extracttemplates-out
+OUT="$(aptextracttemplates -t ./extracttemplates-out incoming/pkg-with-template*.deb)"
+
+PKG=$(printf "$OUT" | cut -f1 -d' ')
+INSTALLED_VER=$(printf "$OUT" | cut -f2 -d' ')
+TEMPLATE=$(printf "$OUT" | cut -f3 -d' ')
+CONFIG=$(printf "$OUT" | cut -f4 -d' ')
+
+testequal "$CONFIG_STR" cat $CONFIG
+testequal "$TEMPLATE_STR" cat $TEMPLATE
+
+# ensure that the format of the output string has the right number of dots
+for s in "$CONFIG" "$TEMPLATE"; do
+    NR_DOTS=$(basename "$s" | tr -c -d .)
+    testequal ".." echo $NR_DOTS
+done

+ 0 - 22
test/integration/test-apt-progress-fd-error-postinst

@@ -1,22 +0,0 @@
-#!/bin/sh
-set -e
-
-TESTDIR=$(readlink -f $(dirname $0))
-. $TESTDIR/framework
-
-setupenvironment
-configarchitecture 'amd64' 'i386'
-
-mkdir -p DEBIAN/
-echo "#!/bin/sh\nexit 1" > DEBIAN/postinst
-chmod 755 DEBIAN/postinst
-
-buildsimplenativepackage 'postinst-error' 'amd64,i386' '0.8.15' 'stable' '' 'pkg with posinst error' '' '' './DEBIAN' 
-
-setupaptarchive 
-
-exec 3> apt-progress.log
-testfailure aptget install postinst-error -y -o APT::Status-Fd=3
-msgtest "Ensure correct error message for postinst error"
-grep -q "pmerror:postinst-error :80:subprocess installed post-installation script returned error exit status 2" apt-progress.log && msgpass || msgfail
-

+ 9 - 0
test/integration/test-bug-612958-use-dpkg-multiarch-config

@@ -42,6 +42,15 @@ testpass 'apt config' 'armel'
 
 rm $CONFFILE
 
+echo '#clear APT::Architectures;' >> $CONFFILE
+echo 'APT::Architectures "i386,amd64";' >> $CONFFILE
+
+testpass 'apt config' 'i386'
+testpass 'apt config' 'amd64'
+testfail 'apt config' 'armel'
+
+rm $CONFFILE
+
 echo '#clear APT::Architectures;' >> $CONFFILE
 echo 'Dir::Bin::dpkg "./dpkg-printer";' >> $CONFFILE
 

+ 3 - 0
test/integration/test-bug-735967-lib32-to-i386-unavailable

@@ -12,6 +12,9 @@ insertpackage 'unstable' 'libnss-mdns' 'amd64,i386' '0.10-6' 'Multi-Arch: same
 Breaks: lib32nss-mdns (<< 0.10-6)'
 insertpackage 'unstable' 'libnss-mdns-i386' 'i386' '0.10-6' 'Multi-Arch: foreign
 Depends: libnss-mdns'
+# introduce some dummies so that there are versions, but none works
+insertpackage 'unstable' 'libnss-mdns-i386' 'amd64' '0.1-6'
+insertpackage 'experimental' 'libnss-mdns-amd64' 'i386,amd64' '0.10-6' 'Provides: libnss-mdns-i386'
 
 insertpackage 'unstable' 'foo' 'amd64' '1' 'Depends: libfoo'
 insertpackage 'unstable' 'libfoo' 'amd64' '1' 'Depends: libfoo-bin'

+ 132 - 0
test/integration/test-failing-maintainer-scripts

@@ -0,0 +1,132 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture 'native'
+
+# create a bunch of failures
+createfailure() {
+	setupsimplenativepackage "failure-$1" 'native' '1.0' 'unstable' 'Depends: dependee'
+	BUILDDIR="incoming/failure-$1-1.0"
+	echo '#!/bin/sh
+exit 29' > ${BUILDDIR}/debian/$1
+	buildpackage "$BUILDDIR" 'unstable' 'main' 'native'
+	rm -rf "$BUILDDIR"
+}
+
+buildsimplenativepackage 'dependee' 'native' '1.0' 'unstable'
+createfailure 'preinst'
+createfailure 'postinst'
+createfailure 'prerm'
+createfailure 'postrm'
+
+setupaptarchive
+
+# create a library to noop chroot() and rewrite maintainer script executions
+# via execvp() as used by dpkg as we don't want our rootdir to be a fullblown
+# chroot directory dpkg could chroot into to execute the maintainer scripts
+cat << EOF > noopchroot.c
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+
+static char * chrootdir = NULL;
+
+int chroot(const char *path) {
+	printf("WARNING: CHROOTing to %s was ignored!\n", path);
+	free(chrootdir);
+	chrootdir = strdup(path);
+	return 0;
+}
+int execvp(const char *file, char *const argv[]) {
+	static int (*func_execvp) (const char *, char * const []) = NULL;
+	if (func_execvp == NULL)
+		func_execvp = (int (*) (const char *, char * const [])) dlsym(RTLD_NEXT, "execvp");
+	if (chrootdir == NULL || strncmp(file, "/var/lib/dpkg/", strlen("/var/lib/dpkg/")) != 0)
+		return func_execvp(file, argv);
+	printf("REWRITE execvp call %s into %s\n", file, chrootdir);
+	char newfile[strlen(chrootdir) + strlen(file)];
+	strcpy(newfile, chrootdir);
+	strcat(newfile, file);
+	return func_execvp(newfile, argv);
+}
+EOF
+testsuccess gcc -fPIC -shared -o noopchroot.so noopchroot.c -ldl
+
+mkdir -p "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/"
+DPKG="${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg"
+echo "#!/bin/sh
+if [ -n \"\$LD_PRELOAD\" ]; then
+	export LD_PRELOAD=\"${TMPWORKINGDIRECTORY}/noopchroot.so \${LD_PRELOAD}\"
+else
+	export LD_PRELOAD=\"${TMPWORKINGDIRECTORY}/noopchroot.so\"
+fi
+dpkg \"\$@\"" > $DPKG
+chmod +x $DPKG
+sed -ie "s|^DPKG::options:: \"dpkg\";\$|DPKG::options:: \"$DPKG\";|" aptconfig.conf
+
+# setup some pre- and post- invokes to check the output isn't garbled later
+APTHOOK="${TMPWORKINGDIRECTORY}/rootdir/usr/bin/apthook"
+echo '#!/bin/sh
+echo "$1: START"
+echo "$1: MaiN"
+echo "$1: ENd"' > $APTHOOK
+chmod +x $APTHOOK
+echo "DPKG::Pre-Invoke:: \"${APTHOOK} PRE\";
+DPKG::Post-Invoke:: \"${APTHOOK} POST\";" > rootdir/etc/apt/apt.conf.d/99apthooks
+
+testmyfailure() {
+	local PROGRESS='rootdir/tmp/progress.log'
+	exec 3> $PROGRESS
+	testfailure "$@" -o APT::Status-Fd=3
+	msgtest 'Test for failure message of maintainerscript in' 'console log'
+	local TEST='rootdir/tmp/testfailure.output'
+	if grep -q 'exit status 29$' "$TEST"; then
+		msgpass
+	else
+		cat $TEST
+		msgfail
+	fi
+	msgtest 'Test for proper execution of invoke scripts in' 'console log'
+	if grep -q '^PRE: START$' $TEST &&
+		grep -q '^PRE: MaiN$' $TEST &&
+		grep -q '^PRE: ENd$' $TEST &&
+		grep -q '^POST: START$' $TEST &&
+		grep -q '^POST: MaiN$' $TEST &&
+		grep -q '^POST: ENd$' $TEST; then
+		msgpass
+	else
+		cat $TEST
+		msgfail
+	fi
+	msgtest 'Test for failure message of maintainerscript in' 'progress log'
+	if grep -q '^pmerror:.\+exit status 29$' "$PROGRESS"; then
+		msgpass
+	else
+		cat $PROGRESS
+		msgfail
+	fi
+	testmarkedauto 'dependee'
+}
+
+cp -a rootdir/var/lib/dpkg/status rootdir/var/lib/dpkg/status.backup
+testmyfailure aptget install failure-preinst -y
+cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status
+testmyfailure aptget install failure-postinst -y
+cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status
+testsuccess aptget install failure-prerm -y
+testdpkginstalled failure-prerm
+testmyfailure aptget purge failure-prerm -y
+cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status
+testsuccess aptget install failure-postrm -y
+testdpkginstalled failure-postrm
+testmyfailure aptget purge failure-postrm -y
+
+# FIXME: test with output going to a PTY as it usually does
+#cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status
+#aptget install failure-preinst -y

+ 1 - 0
test/integration/test-kernel-helper-autoremove

@@ -20,6 +20,7 @@ CURRENTKERNEL="linux-image-$(uname -r)"
 insertinstalledpackage "$CURRENTKERNEL" 'amd64' '1'
 insertinstalledpackage 'linux-image-1.0.0-2-generic' 'amd64' '1.0.0-2'
 insertinstalledpackage 'linux-image-100.0.0-1-generic' 'amd64' '100.0.0-1'
+insertinstalledpackage 'linux-image-amd64' 'amd64' '100.0.0-1'
 # ensure that the '.' is really a dot and not a wildcard
 insertinstalledpackage 'linux-headers-1000000-1-generic' 'amd64' '100.0.0-1'