call apt with Dpkg::Use-Pty=false to enable immediate termination upon SIGINT and prevent it from messing up the terminal with tcsetattr()

This commit is contained in:
Johannes 'josch' Schauer 2019-01-14 22:23:02 +01:00
parent be1af15489
commit 765f5b91e9
Signed by: josch
GPG key ID: F2CBA5C78FBD83E1

View file

@ -570,7 +570,15 @@ sub run_apt_progress {
my @debs = @{$options->{PKGS} // []}; my @debs = @{$options->{PKGS} // []};
my $verbose = $options->{VERBOSE} // 0; my $verbose = $options->{VERBOSE} // 0;
my $get_exec = sub { my $get_exec = sub {
return @{$options->{ARGV}}, "-oAPT::Status-Fd=$_[0]", @debs; }; return (
@{$options->{ARGV}},
"-oAPT::Status-Fd=$_[0]",
# prevent apt from messing up the terminal and allow dpkg to
# receive SIGINT and quit immediately without waiting for
# maintainer script to finish
'-oDpkg::Use-Pty=false',
@debs
)};
my $line_has_error = sub { my $line_has_error = sub {
# apt-get doesn't report a non-zero exit if the update failed. Thus, we # apt-get doesn't report a non-zero exit if the update failed. Thus, we
# have to parse its output. See #778357, #776152, #696335 and #745735 # have to parse its output. See #778357, #776152, #696335 and #745735