On 2023-03-29 03:59:24 +0200, Vincent Lefevre wrote: > BTW, I also note in the second failure > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019732#34 > > that one has the following in the output: > > $stdout.print " " * Unicode.width(@old) > ^^^^^^
More precisely, one has Performing actions... E: undefined method `default' for " if /proxy_detect='(.*)'/ =~ `apt-config \#{@apt_conf} shell proxy_detect acquire::http::proxy-auto-detect`\n":String $stdout.print " " * Unicode.width(@old) ^^^^^^ E: Unterprozess /usr/bin/apt-listbugs apt hat Fehlercode zurückgegeben (1) E: Failure running script /usr/bin/apt-listbugs apt The "Performing actions..." line and the last two "E:" lines come from aptitude. What is between comes from the program run by aptitude, i.e. "/usr/bin/apt-listbugs apt": E: undefined method `default' for " if /proxy_detect='(.*)'/ =~ `apt-config \#{@apt_conf} shell proxy_detect acquire::http::proxy-auto-detect`\n":String $stdout.print " " * Unicode.width(@old) ^^^^^^ On my machine, I get the following: zira:~> grep -r '\<E:' /usr/lib/ruby /usr/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/stdlib/bigdecimal-math/0/big_math.rbs: def self?.E: (Numeric prec) -> BigDecimal /usr/lib/ruby/gems/3.1.0/gems/rbs-2.1.0/core/math.rbs:Math::E: Float /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb: $stderr.puts _("E: ") + _("You need to specify a command.") /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb: $stderr.puts _("E: ") + _("Unknown command ") + "'#{command}'." /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb: $stderr.puts _("E: ") + _("HTTP GET failed") /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb: $stderr.puts _("E: ") + _("Empty stream from SOAP") /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb: $stderr.puts _("E: ") + "#{$!}" /usr/lib/ruby/vendor_ruby/debian.rb: "E: invalid format #{line} in #{line}" /usr/lib/ruby/vendor_ruby/debian.rb: "E: duplicate control info #{field} in #{line}" /usr/lib/ruby/vendor_ruby/debian.rb: "E: required field #{f} not found in #{c}" /usr/lib/ruby/vendor_ruby/debian.rb: raise DepError, "E: trying package override" /usr/lib/ruby/vendor_ruby/debian.rb: raise DepError, "E: trying relation override" /usr/lib/ruby/vendor_ruby/debian.rb: raise Debian::DepError, "E: unknown operation #{@op}" /usr/lib/ruby/vendor_ruby/debian.rb: "E: `+' type mismatch #{self.class} != #{da.class}" /usr/lib/ruby/vendor_ruby/debian.rb: "E: `-' type mismatch #{self.class} != #{da.class}" /usr/lib/ruby/vendor_ruby/debian.rb: "E: `-' type mismatch #{self.class} != #{da.class}" The almost-only possibility would be: $stderr.puts _("E: ") + "#{$!}" The code in /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb is: [...] rescue Exception => exception config.frontend.puts _(" Fail") $stderr.puts " Exception: " + exception.class.to_s if $DEBUG config.frontend.puts _("Error retrieving bug reports from the server with the following error message:") $stderr.puts _("E: ") + "#{$!}" if exception.kind_of? SocketError config.frontend.puts _("It appears that your network connection is down. Check network configuration and try again") else config.frontend.puts _("It could be because your network is down, or because of broken proxy servers, or the BTS server itself is down. Check network configuration and try again") end retrycount -= 1 if config.frontend.yes_or_no?(_("Retry downloading bug information?")) && retrycount > 0 config.querystep = 1 if config.querystep != 1 && config.frontend.yes_or_no?(_("One package at a time?")) config.parsestep = 1 if config.parsestep != 1 && config.frontend.yes_or_no?(_("One bug report at a time?")) retry end raise _("Exiting with error") if ! config.frontend.yes_or_no?(_("Continue the installation anyway?"), false) bugs = [] But in such a case, wouldn't one have other messages, corresponding to config.frontend.puts? The other possibility is some other error, say $stderr.puts _("E: ") + _("Empty stream from SOAP") Note that the error message does not correspond at all. However, the exact error message is obtained via gettext, and this is where something ugly could potentially occur. This might explain that the error message contains text from the .rb source (which is something that is not available normally). > The "$stdout.print..." line comes from > /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb but what could yield > this output with carets? Any explanation for this one? FYI, the context in logic.rb: [...] def progress(msg, val) $stdout.print "\r" $stdout.print " " * Unicode.width(@old) $stdout.print "\r" @old = "#{msg} #{val}" $stdout.print @old $stdout.flush $stdout.puts "" if Factory.done?(val) end [...] -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)