Your message dated Sat, 01 Sep 2018 08:34:14 +0000
with message-id <e1fw1me-000i2s...@fasolo.debian.org>
and subject line Bug#906967: fixed in diffoscope 100
has caused the Debian Bug report #906967,
regarding diffoscope fails on dumb terminals with 'bytes' object has no 
attribute 'format'
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
906967: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906967
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: diffoscope
Version: 99
Severity: normal
Tags: patch

The new eraser bar seems to break things when diffoscope is run on a
dumb terminal (or other similar weird environments, such as an emacs
M-x shell buffer).

The attached patches also clean up the spelling of "eraser" :)

    --dkg

-- System Information:
Debian Release: buster/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing'), (500, 'oldstable'), 
(200, 'unstable-debug'), (200, 'unstable'), (1, 'experimental-debug'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.16.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages diffoscope depends on:
ii  libpython3.6-stdlib    3.6.6-1
ii  python3                3.6.5-3
ii  python3-distro         1.0.1-2
ii  python3-distutils      3.6.6-1
ii  python3-libarchive-c   2.1-3.1
ii  python3-magic          2:0.4.15-2
ii  python3-pkg-resources  39.2.0-1

Versions of packages diffoscope recommends:
pn  abootimg                         <none>
ii  acl                              2.2.52-3+b1
pn  apktool                          <none>
pn  binutils-multiarch               <none>
ii  bzip2                            1.0.6-9
ii  caca-utils                       0.99.beta19-2+b3
pn  colord                           <none>
ii  db-util                          5.3.1
ii  default-jdk [java-sdk]           2:1.10-68
ii  default-jdk-headless             2:1.10-68
pn  device-tree-compiler             <none>
pn  docx2txt                         <none>
ii  e2fsprogs                        1.44.3-1
pn  enjarify                         <none>
ii  fontforge-extras                 0.3-4
pn  fp-utils                         <none>
ii  genisoimage                      9:1.1.11-3+b2
ii  gettext                          0.19.8.1-7
ii  ghc                              8.2.2-4
ii  ghostscript                      9.22~dfsg-2.1
pn  giflib-tools                     <none>
ii  gnumeric                         1.12.41-1
ii  gnupg                            2.2.9-1
ii  imagemagick                      8:6.9.10.8+dfsg-1
ii  imagemagick-6.q16 [imagemagick]  8:6.9.10.8+dfsg-1
pn  jsbeautifier                     <none>
pn  libarchive-tools                 <none>
pn  llvm                             <none>
pn  lz4                              <none>
ii  mono-utils                       4.6.2.7+dfsg-1
ii  odt2txt                          0.5-1+b2
ii  oggvideotools                    0.9.1-4
ii  openjdk-10-jdk [java-sdk]        10.0.2+13-1
ii  openssh-client                   1:7.7p1-4
ii  pgpdump                          0.33-1
ii  poppler-utils                    0.63.0-2
pn  procyon-decompiler               <none>
pn  python3-argcomplete              <none>
pn  python3-binwalk                  <none>
ii  python3-debian                   0.1.33
pn  python3-defusedxml               <none>
pn  python3-guestfs                  <none>
pn  python3-jsondiff                 <none>
ii  python3-progressbar              2.3-4
ii  python3-pyxattr                  0.6.0-2+b2
ii  python3-tlsh                     3.4.4+20151206-1+b4
ii  r-base-core                      3.5.1-1+b1
ii  rpm2cpio                         4.14.1+dfsg1-4
ii  sng                              1.1.0-1+b1
ii  sqlite3                          3.24.0-1
pn  squashfs-tools                   <none>
ii  tcpdump                          4.9.2-3
ii  unzip                            6.0-21
ii  vim-common                       2:8.1.0229-1
pn  xmlbeans                         <none>
ii  xxd                              2:8.1.0229-1
ii  xz-utils                         5.2.2-1.3

Versions of packages diffoscope suggests:
ii  libjs-jquery  3.2.1-1

-- no debconf information
>From 4e55793aa550e3e3d9fe84f41967c72689a4ca45 Mon Sep 17 00:00:00 2001
From: Daniel Kahn Gillmor <d...@fifthhorseman.net>
Date: Wed, 22 Aug 2018 14:31:03 -0400
Subject: [PATCH 1/2] correct spelling of ereser to eraser

---
 diffoscope/comparators/__init__.py |  4 ++--
 diffoscope/logging.py              | 14 +++++++-------
 diffoscope/main.py                 |  4 ++--
 diffoscope/progress.py             |  4 ++--
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/diffoscope/comparators/__init__.py 
b/diffoscope/comparators/__init__.py
index 9098006..e885ccb 100644
--- a/diffoscope/comparators/__init__.py
+++ b/diffoscope/comparators/__init__.py
@@ -24,7 +24,7 @@ import logging
 import importlib
 import traceback
 
-from ..logging import line_ereser
+from ..logging import line_eraser
 
 
 logger = logging.getLogger(__name__)
@@ -134,7 +134,7 @@ class ComparatorManager(object):
                 ))
                 for x in errors:
                     logger.error("Original error for %s:", x[0])
-                    sys.stderr.buffer.write(line_ereser())
+                    sys.stderr.buffer.write(line_eraser())
                     traceback.print_exception(None, x[1], x[1].__traceback__)
                 sys.exit(2)
 
diff --git a/diffoscope/logging.py b/diffoscope/logging.py
index 9cf4f1a..013fd3e 100644
--- a/diffoscope/logging.py
+++ b/diffoscope/logging.py
@@ -22,20 +22,20 @@ import contextlib
 import logging
 
 
-def line_ereser(fd=sys.stderr) -> bytes:
-    ereser = b''  # avoid None to avoid 'NoneType + str/bytes' failures
+def line_eraser(fd=sys.stderr) -> bytes:
+    eraser = b''  # avoid None to avoid 'NoneType + str/bytes' failures
     if fd.isatty():
         from curses import tigetstr, setupterm
         setupterm(fd=fd.fileno())
-        ereser = tigetstr('el')
+        eraser = tigetstr('el')
 
-    if not ereser and fd.isatty():
+    if not eraser and fd.isatty():
         # is a tty, but doesn't support the proper scape code, so let's fake it
         from shutil import get_terminal_size
         width = get_terminal_size().columns
-        ereser = b'\r{}\r'.format(b' ' * width)
+        eraser = b'\r{}\r'.format(b' ' * width)
 
-    return ereser
+    return eraser
 
 
 @contextlib.contextmanager
@@ -49,7 +49,7 @@ def setup_logging(debug, log_handler):
     logger.addHandler(ch)
 
     formatter = logging.Formatter(
-        line_ereser().decode('ascii') +
+        line_eraser().decode('ascii') +
         '%(asctime)s %(levelname).1s: %(name)s: %(message)s',
         '%Y-%m-%d %H:%M:%S',
     )
diff --git a/diffoscope/main.py b/diffoscope/main.py
index 36e79a5..41e41a8 100644
--- a/diffoscope/main.py
+++ b/diffoscope/main.py
@@ -33,7 +33,7 @@ from .path import set_path
 from .tools import tool_prepend_prefix, tool_required, OS_NAMES, get_current_os
 from .config import Config
 from .locale import set_locale
-from .logging import line_ereser, setup_logging
+from .logging import line_eraser, setup_logging
 from .progress import ProgressManager, Progress
 from .profiling import ProfileManager, profile
 from .tempfiles import clean_all_temp_files
@@ -464,7 +464,7 @@ def main(args=None):
     except BrokenPipeError:
         sys.exit(2)
     except Exception:
-        sys.stderr.buffer.write(line_ereser())
+        sys.stderr.buffer.write(line_eraser())
         traceback.print_exc()
         if parsed_args and parsed_args.debugger:
             import pdb
diff --git a/diffoscope/progress.py b/diffoscope/progress.py
index dc26db6..ac71406 100644
--- a/diffoscope/progress.py
+++ b/diffoscope/progress.py
@@ -24,7 +24,7 @@ import json
 import signal
 import logging
 
-from .logging import line_ereser
+from .logging import line_eraser
 
 
 logger = logging.getLogger(__name__)
@@ -218,7 +218,7 @@ class ProgressBar(object):
                 kwargs.setdefault('fd', sys.stderr)
                 super().__init__(*args, **kwargs)
                 # Terminal handling after parent init since that sets self.fd
-                self.erase_to_eol = line_ereser(self.fd)
+                self.erase_to_eol = line_eraser(self.fd)
 
             def _need_update(self):
                 return True
-- 
2.18.0

>From b78e50d3e22b74b4fc563c852aa0b8a02d599f33 Mon Sep 17 00:00:00 2001
From: Daniel Kahn Gillmor <d...@fifthhorseman.net>
Date: Wed, 22 Aug 2018 14:43:13 -0400
Subject: [PATCH 2/2] avoid error on dumb terminals

Try the following:

    touch a b
    TERM=dumb diffoscope a b

The result is some nasty warnings about:

    AttributeError: 'bytes' object has no attribute 'format'

This patch fixes the problem.
---
 diffoscope/logging.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/diffoscope/logging.py b/diffoscope/logging.py
index 013fd3e..478131d 100644
--- a/diffoscope/logging.py
+++ b/diffoscope/logging.py
@@ -30,10 +30,10 @@ def line_eraser(fd=sys.stderr) -> bytes:
         eraser = tigetstr('el')
 
     if not eraser and fd.isatty():
-        # is a tty, but doesn't support the proper scape code, so let's fake it
+        # is a tty, but doesn't support the proper escape code, so let's fake 
it
         from shutil import get_terminal_size
         width = get_terminal_size().columns
-        eraser = b'\r{}\r'.format(b' ' * width)
+        eraser = b'\r' + (b' ' * width) + b'\r'
 
     return eraser
 
-- 
2.18.0


--- End Message ---
--- Begin Message ---
Source: diffoscope
Source-Version: 100

We believe that the bug you reported is fixed in the latest version of
diffoscope, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 906...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Chris Lamb <la...@debian.org> (supplier of updated diffoscope package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Sat, 01 Sep 2018 09:09:48 +0100
Source: diffoscope
Binary: diffoscope
Built-For-Profiles: nocheck
Architecture: source all
Version: 100
Distribution: unstable
Urgency: medium
Maintainer: Reproducible builds folks 
<reproducible-bui...@lists.alioth.debian.org>
Changed-By: Chris Lamb <la...@debian.org>
Description:
 diffoscope - in-depth comparison of files, archives, and directories
Closes: 903391 903401 903447 903449 903565 904685 905598 906967
Changes:
 diffoscope (100) unstable; urgency=medium
 .
   [ Alexis Murzeau ]
   * Correct matching of .deb archive members. (Closes: #903565)
 .
   [ Chris Lamb ]
   * Support .deb archives that contain an uncompressed control.tar and data.tar
     Thanks to Roderich Schupp <roderich.sch...@gmail.com>.
     (Closes: #903391, #903401)
   * Wrap jsondiff calls with try-except to prevent fatal errors.
     (Closes: #903447, #903449)
   * Don't include the filename in llvm-bcanalyzer results. (Closes: #905598)
   * Update generated debian/tests/control.
   * Bump Standards-Version to 4.2.1.
 .
   [ Daniel Kahn Gillmor ]
   * Avoid line eraser error on dumb terminals. (Closes: #906967)
   * Correct spelling of ereser to eraser.
 .
   [ Mattia Rizzolo ]
   * On Debian, do not require apktool on ppc64el and s390x, ogvideotools on
     s390x and fp-utils on ppc64el and s390x as they are not installable there.
   * Explicitly add `file` to the dependencies of autopkgtest to have the tests
     triggered whenever `file` changes
 .
   [ Ricardo Gaviria ]
   * Handle errors with encrypted archive files. (Closes: #904685)
Checksums-Sha1:
 ee418ed8178f58ab456f7f7f99330c9ea4b3da42 4050 diffoscope_100.dsc
 bcf9d36178a98c9aeb24457588ba0638152661ed 9251936 diffoscope_100.tar.xz
 a60721094ec8ed73f7658baed694bfc94e128ff2 122780 diffoscope_100_all.deb
 af050ca0c265c4d181bd322c9f65323bc1bc4a45 6725 diffoscope_100_amd64.buildinfo
Checksums-Sha256:
 61cbdfa21cfbe6a6a8c32be511a13fbed0d0d1e2788ef5cc859cd2dc54c2c092 4050 
diffoscope_100.dsc
 98af4a69d2ded2de221d050a110d60beb7a8b737a3bba1ac40755682c7a45b4b 9251936 
diffoscope_100.tar.xz
 9f56af77c7756c9265c615117f0704d0009b8b6de2d164d6afcc8ce78d208e6f 122780 
diffoscope_100_all.deb
 6fca17529ee1260aa9576840b97f3dffb0e16476435a655986bf03bc280a1fad 6725 
diffoscope_100_amd64.buildinfo
Files:
 30b68b4a6dbcba4bc3aa7d948bd3f4da 4050 devel optional diffoscope_100.dsc
 148c2d1675b1f3475fc6ab28bc39eb2a 9251936 devel optional diffoscope_100.tar.xz
 cd5e06d93db32e437ca32ff5e36cce78 122780 devel optional diffoscope_100_all.deb
 f87adefc92b27a4441634aba05448839 6725 devel optional 
diffoscope_100_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEwv5L0nHBObhsUz5GHpU+J9QxHlgFAluKSc8ACgkQHpU+J9Qx
Hlg1lxAAjgTqnKwdWr3cQYA7MO4VqB11p9185NkXrR2vkHcUNvN1xv95J7/A4BZx
3BXeK2dfi8Qu1gN2NDeg6+m5FTUMDHesmXMlqrDG5JLVRHXM8a/FqpHHCAGJKLR6
QALd1uE24VSdbxBc2hJvTWDu6t1DbKvhXp83D9kBc8APvOsaxWpFNE7dDHDKEICa
EC8Ne925EEU/8xwl+LTtAN9DQEw0Pmi521NK2pBhX4NfETm6OJODb2cH/DCCMB9x
65IdU0hF4tMDzZOQ2utgWQ5Cx7Se66tcqNmamyunBocfZ77d5EA+IKsiYD2QQ7Iy
G+fhMJYTiiYPfxZvGS8ln3u29p1CFrj5vJ+Cggf7Dl0w+a8WEXIOaKPZ4KIddT7X
k2bg+dtMzr/4VcTFAy6zmtyn86hMNNkF2rdkG2EkeHNEHuP+HwnIPnmMpS5o7BEW
S9jtd93khRD+/Jp/Zen6K8X2As2Gvd3s97+0hInTPezweny/DhapNxwRc/sYLfvv
iuvrkssM4hJ+yXFogvCbI+Q4MLZpUtvXLU/IKDhTVQuPIBDNrSDQChPGOEeWYEsz
2PW+ls6ipNPWUUkL556OiN7V0dbZIEMlSLHzWdzr6FrRZwWZmJAfulO+1GIZTMyu
xwzo6q+pne8fLX7ynE53uXVpzvdAMDPDRkj4cJMMVcKojoCih0E=
=Uc9v
-----END PGP SIGNATURE-----

--- End Message ---
_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to