summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/dpkgpm.cc
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2013-12-12 15:11:01 +0100
committerMichael Vogt <mvo@debian.org>2013-12-12 16:41:21 +0100
commitc23e6cd58242470daad78ddad85285f9cd7aed0f (patch)
treeab5c6d4ce7e09f6871976bc9cded6ad5feb11f5d /apt-pkg/deb/dpkgpm.cc
parent9b7c10509c534b7d413b5102231cb0ca387f1c65 (diff)
Fix conffile prompt regression (LP: #1260297)
This fixes a regression in the conffile prompt for the progress-fd and adds a testcase to ensure this does not regress again.
Diffstat (limited to 'apt-pkg/deb/dpkgpm.cc')
-rw-r--r--apt-pkg/deb/dpkgpm.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index b4bfd1400..0d73733d5 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -44,6 +44,7 @@
#include <unistd.h>
#include <sys/ioctl.h>
#include <pty.h>
+#include <stdio.h>
#include <apti18n.h>
/*}}}*/
@@ -596,7 +597,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(char *line)
errors look like this:
'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data
and conffile-prompt like this
- 'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited
+ 'status:/etc/compiz.conf/compiz.conf : conffile-prompt: 'current-conffile' 'new-conffile' useredited distedited
*/
if (prefix == "status")
{
@@ -608,7 +609,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(char *line)
WriteApportReport(list[1].c_str(), list[3].c_str());
return;
}
- else if(action == "conffile")
+ else if(action == "conffile-prompt")
{
d->progress->ConffilePrompt(list[1], PackagesDone, PackagesTotal,
list[3]);
@@ -1036,7 +1037,10 @@ void pkgDPkgPM::StartPtyMagic()
if (tcgetattr(STDOUT_FILENO, &d->tt) == 0)
{
ioctl(1, TIOCGWINSZ, (char *)&win);
- if (openpty(&d->master, &d->slave, NULL, &d->tt, &win) < 0)
+ if (_config->FindB("Dpkg::Use-Pty", true) == false)
+ {
+ d->master = d->slave = -1;
+ } else if (openpty(&d->master, &d->slave, NULL, &d->tt, &win) < 0)
{
_error->Errno("openpty", _("Can not write log (%s)"), _("Is /dev/pts mounted?"));
d->master = d->slave = -1;