Преглед изворни кода

Merge branch 'debian/sid' into debian/experimental

Conflicts:
	debian/changelog
Michael Vogt пре 11 година
родитељ
комит
3e68f7e410
3 измењених фајлова са 39 додато и 4 уклоњено
  1. 21 2
      apt-pkg/deb/dpkgpm.cc
  2. 16 0
      debian/changelog
  3. 2 2
      doc/examples/configure-index

+ 21 - 2
apt-pkg/deb/dpkgpm.cc

@@ -55,6 +55,18 @@
 
 using namespace std;
 
+APT_PURE static unsigned int
+EnvironmentSize()
+{
+  unsigned int size = 0;
+  char **envp = environ;
+
+  while (*envp != NULL)
+    size += strlen (*envp++) + 1;
+
+  return size;
+}
+
 class pkgDPkgPMPrivate 
 {
 public:
@@ -1230,8 +1242,15 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
    fd_set rfds;
    struct timespec tv;
 
-   unsigned int const MaxArgs = _config->FindI("Dpkg::MaxArgs",8*1024);
-   unsigned int const MaxArgBytes = _config->FindI("Dpkg::MaxArgBytes",32*1024);
+   // FIXME: do we really need this limit when we have MaxArgBytes?
+   unsigned int const MaxArgs = _config->FindI("Dpkg::MaxArgs",32*1024);
+
+   // try to figure out the max environment size
+   int OSArgMax = sysconf(_SC_ARG_MAX);
+   if(OSArgMax < 0)
+      OSArgMax = 32*1024;
+   OSArgMax -= EnvironmentSize() - 2*1024;
+   unsigned int const MaxArgBytes = _config->FindI("Dpkg::MaxArgBytes", OSArgMax);
    bool const NoTriggers = _config->FindB("DPkg::NoTriggers", false);
 
    if (RunScripts("DPkg::Pre-Invoke") == false)

+ 16 - 0
debian/changelog

@@ -213,6 +213,22 @@ apt (1.1~exp1) experimental; urgency=low
 
  -- Michael Vogt <mvo@debian.org>  Thu, 19 Jun 2014 12:01:48 +0200
 
+apt (1.0.9.3) unstable; urgency=medium
+
+  [ josch ]
+  * implement the updated build profile spec
+
+  [ Michael Vogt ]
+  * methods/rsh.cc: replace strcat with std::string (Closes: #76442)
+
+  [ Guillem Jover ]
+  * Update Status field values handling
+
+  [ David Kalnischkies ]
+  * don't cleanup cdrom files in apt-get update (Closes: 765458)
+
+ -- Michael Vogt <mvo@debian.org>  Wed, 15 Oct 2014 19:49:38 +0200
+
 apt (1.0.9.2) unstable; urgency=medium
 
   [ Michael Vogt ]

+ 2 - 2
doc/examples/configure-index

@@ -414,8 +414,8 @@ DPkg
    FlushSTDIN "true";
 
    // Control the size of the command line passed to dpkg.
-   MaxBytes 1024;
-   MaxArgs 350;
+   MaxArgBytes 32768;
+   MaxArgs 8192;
 
    // controls if apt will apport on the first dpkg error or if it 
    // tries to install as many packages as possible