diff options
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 23 | ||||
-rw-r--r-- | debian/changelog | 16 | ||||
-rw-r--r-- | doc/examples/configure-index | 4 |
3 files changed, 39 insertions, 4 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 95fae9a28..0cded32e1 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/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) diff --git a/debian/changelog b/debian/changelog index 2b3d739b4..a196ed5e7 100644 --- a/debian/changelog +++ b/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 ] diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 2925733d7..ef1ae056d 100644 --- a/doc/examples/configure-index +++ b/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 |