[Buildroot] [PATCH] package/htop: open files using binary mode

Romain Naour romain.naour at gmail.com
Sun Mar 18 21:26:44 UTC 2018


Imlement Arnout's suggestion [1] for MakeHeader script.

[1] http://lists.busybox.net/pipermail/buildroot/2018-February/214373.html

Fixes:
http://autobuild.buildroot.net/results/9ce/9ce2ef5ef694253b9759016c9702c5c6be7849a1

Signed-off-by: Romain Naour <romain.naour at gmail.com>
---
 ...2-MakeHeader-open-files-using-binary-mode.patch | 50 ++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 package/htop/0002-MakeHeader-open-files-using-binary-mode.patch

diff --git a/package/htop/0002-MakeHeader-open-files-using-binary-mode.patch b/package/htop/0002-MakeHeader-open-files-using-binary-mode.patch
new file mode 100644
index 0000000000..bcc3e6564c
--- /dev/null
+++ b/package/htop/0002-MakeHeader-open-files-using-binary-mode.patch
@@ -0,0 +1,50 @@
+From 1a83a3e6ae0841a0dc4c7eb08a1a71930e99666c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at gmail.com>
+Date: Sun, 18 Mar 2018 21:57:54 +0100
+Subject: [PATCH] MakeHeader: open files using binary mode
+
+By default, open(sys.argv[1]) use Unicode mode.
+The readlines() will try to convert with the default codec
+(which depends on the i18n settings, so 'ascii' under
+LC_ALL=C)
+
+Open files using binary mode so no conversion will be done
+by readlines(). But then, normal strings can't be used in
+the rest of the code; either all strings have to be prefixed
+with b'' or (simpler) the read line has to be converted to
+a unicode string by calling decode() on it.
+
+http://lists.busybox.net/pipermail/buildroot/2018-February/214373.html
+
+Fixes:
+http://autobuild.buildroot.net/results/9ce/9ce2ef5ef694253b9759016c9702c5c6be7849a1
+
+Signed-off-by: Romain Naour <romain.naour at gmail.com>
+---
+ scripts/MakeHeader.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/MakeHeader.py b/scripts/MakeHeader.py
+index 4841bda..dd0798c 100755
+--- a/scripts/MakeHeader.py
++++ b/scripts/MakeHeader.py
+@@ -16,7 +16,7 @@ SKIPONE=4
+ state = ANY
+ static = 0
+ 
+-file = open(sys.argv[1])
++file = open(sys.argv[1], 'rb')
+ name = sys.argv[1][:-2]
+ 
+ out = StringIO()
+@@ -31,6 +31,7 @@ out.write( "#define HEADER_" + os.path.basename(name) + "\n")
+ is_blank = False
+ for line in file.readlines():
+    line = line[:-1]
++   line = line.decode('utf-8')
+    if state == ANY:
+       if line == '/*{':
+          state = COPY
+-- 
+2.14.3
+
-- 
2.14.3



More information about the buildroot mailing list