Age | Commit message (Collapse) | Author |
|
We run dpkg on its own pty, so we can log its output and have our own
output around it (like the progress bar), while also allowing debconf
and configfile prompts to happen.
In commit 223ae57d468fdcac451209a095047a07a5698212 we changed to
constantly reopening the slave for kfreebsd. This has the sideeffect
though that in some cases slave and master will lose their connection on
linux, so that no output is passed along anymore. We fix this by having
always an fd referencing the slave open (linux), but we don't use it
(kfreebsd).
Failing to get our PTY up and running has many (bad) consequences
including (not limited to, nor all at ones or in any case) garbled ouput,
no output, no logging, a (partial) mixture of the previous items, …
This commit is therefore also reshuffling quiet a bit of the creation
code to get especially the output part up and running on linux and the
logging for kfreebsd.
Note that the testcase tries to cover some cases, but this is an
interactivity issue so only interactive usage can really be a good test.
Closes: 765687
|
|
The fd moves out of scope here anyway, so we should close it properly
instead of leaking it which will tickle down to dpkg maintainer scripts.
Closes: 767774
|
|
Git-Dch: ignore
|
|
Instead of hardcoding Dpkg::MaxArgBytes find out about it using
the sysconf(_SC_ARG_MAX) call.
|
|
A pty slave we have got from openpty can only be used for one dpkg
child, if we give it to a second child on kfreebsd setting TIOCSCTTY
fails causing the output to be stair-stepped from now on.
By switching the code to creating a master and opening a new slave in
the child for each child we can fix this glitch, so that at least the
master remains stable.
Closes: 759684
|
|
APT treats upgrades like installs and dpkg is very similar in this, but
prints still a slightly different processing message indicating that it
is really an upgrade which we hadn't parsed so far, but this wasn't
really visible as we quickly moved on to a 'known' state.
More problematic was the reinstall case as apt hadn't recognized this
for the package name detection, so that reinstalls had no progress since
we introduced MultiArch.
|
|
- update string matching for dpkg I/O errors. (LP: #1363257)
- properly parse the dpkg status line so that package name is properly set
and an apport report is created. Thanks to Anders Kaseorg for the patch.
(LP: #1353171)
|
|
Reported-By: clang++ -Werror
|
|
Closes: 746434
|
|
|
|
If a external command closes the PIPE unexpectedly, do not crash
in pkgDPkgPM::RunScriptsWithPkgs but ignore the SIGPIPE.
|
|
This debug option will display all scripts that are run
by apts RunScripts and RunScriptsWithPkgs helpers.
|
|
We have to properly close our pseudo terminals even in error cases
before we call post-invoke scripts. This is done now by breaking from
the dpkg calling loop instead of copying the handling, which did it in
the wrong order before.
This also ensures that our state file is written in error cases to
record autobit and co as this was forgotten before.
Closes: 738969
|
|
Beside being a bit cleaner it hopefully also resolves oddball problems
I have with high levels of parallel jobs.
Git-Dch: Ignore
Reported-By: iwyu (include-what-you-use)
|
|
Reported-By: gcc -Wunused-parameter
Git-Dch: Ignore
|
|
Conflicts:
apt-private/private-list.cc
doc/po/de.po
test/integration/framework
|
|
Show a proper error message when a ioctl() in dpkgpm.cc fails.
Also simply StartPtyMagic() a bit.
|
|
The most "visible" change is from utime to utimensat/futimens
as the first one isn't part of POSIX anymore.
Reported-By: cppcheck
Git-Dch: Ignore
|
|
Conflicts:
apt-pkg/install-progress.cc
|
|
|
|
This fixes a regression in the conffile prompt for the progress-fd
and adds a testcase to ensure this does not regress again.
|
|
apport reporting is still disabled by default, but it is available in
Debian/experimental at the moment and a diff is not a good idea anyway.
|
|
|
|
|
|
|
|
APT::Keep-Fds hack and also add a new PackageManagerProgressFd::StartDpkg() progress state
|
|
|
|
APT_PKG_MINOR >= 13)
|
|
|
|
the monster long pkgDPkgPM::Go()
|
|
to read this way)
|
|
|
|
|
|
|
|
|
|
messages that include the architecture
|
|
|
|
|
|
|
|
robust
|
|
|
|
|
|
|
|
reinstalls too
|
|
Conflicts:
apt-pkg/deb/dpkgpm.cc
|
|
updated when a new dpkg-loop is entered in dpkgpm.cc
|
|
|
|
|
|
send out short packagenames
|
|
Errors and conffile prompts have a fourth information piece,
which the "old" code access which isn't provided by the "new" one.
This isn't checking if the messages are really well-formed,
so it could still segfault on misformed messages, but this code
needs more work anyway, so one step at a time.
Closes: 726047
|