[PATCH] ccache: don't use non-ASCII quotes

David Adair djabhead at aol.com
Thu Apr 29 22:28:08 BST 2021


Rebased upstream ccache commit: f6202db308e32f9b2 to correct
compilation errors with MANUAL.adoc due to non-ascii characters.

This change enables building 21.02-rc1 on a RHEL8 host where
"LANG=C" is apparently ascii rather than utf8.

Original fix:
Reported-by: Christophe PEREZ
Bug: https://bugs.gentoo.org/762814
Signed-off-by: Sergei Trofimovich <slyfox at gentoo.org>

Cleaned up backport to version 4.1 and added to ccache/patches
Signed-off-by: David Adair <djabhead at aol.com>
---
 tools/ccache/patches/020-fix-doc-utf.patch | 96 ++++++++++++++++++++++
 1 file changed, 96 insertions(+)
 create mode 100644 tools/ccache/patches/020-fix-doc-utf.patch

diff --git a/tools/ccache/patches/020-fix-doc-utf.patch b/tools/ccache/patches/020-fix-doc-utf.patch
new file mode 100644
index 0000000000..981b1f4473
--- /dev/null
+++ b/tools/ccache/patches/020-fix-doc-utf.patch
@@ -0,0 +1,96 @@
+From 81e72af1dac607d57c55e40c1187ead52cc45e26 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox at inbox.ru>
+Date: Mon, 11 Jan 2021 20:17:47 +0000
+Subject: [PATCH] doc/MANUAL.adoc: Don't use non-ASCII quotes (#761)
+
+Some locales like "LANG=fr_FR.iso885915 at euro make" can't
+handle UTF-8 single- and double-quotes:
+
+$ LANG=fr_FR.iso885915 at euro make
+...
+asciidoc: FAILED: MANUAL.adoc: line 529: unexpected error:
+...
+  File "/usr/lib/python3.8/encodings/iso8859_15.py", line 19, in encode
+    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
+UnicodeEncodeError: 'charmap' codec can't encode character '\u201c'
+  in position 54: character maps to <undefined>
+
+To avoid it the patch uses ASCII equivalents of symbols.
+
+The patch is generated as:
+
+$ sed \
+    -e 's/\xE2\x80\x99/'\''/g' \
+    -e 's/\xE2\x80\x9C/'\`\`'/g' \
+    -e 's/\xE2\x80\x9D/'\'\''/g' \
+    -i doc/MANUAL.adoc
+
+Reported-by: Christophe PEREZ
+Bug: https://bugs.gentoo.org/762814
+Signed-off-by: Sergei Trofimovich <slyfox at gentoo.org>
+---
+ doc/MANUAL.adoc | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/doc/MANUAL.adoc b/doc/MANUAL.adoc
+index b7d89124..ec0c286a 100644
+--- a/doc/MANUAL.adoc
++++ b/doc/MANUAL.adoc
+@@ -517,9 +517,9 @@ Semantics of *compression_level*:
+     ratio. The maximum possible value depends on the libzstd version.
+     Decompression speed is essentially the same for all levels.
+ *< 0*::
+-    A negative value corresponds to Zstandard's “ultra-fast” compression
++    A negative value corresponds to Zstandard's ``ultra-fast'' compression
+     levels, which are even faster than level 1 but with less good compression
+-    ratios. For instance, level *-3* corresponds to “--fast=3” for the *zstd*
++    ratios. For instance, level *-3* corresponds to ``--fast=3'' for the *zstd*
+     command line tool.
+ *0* (default)::
+     The value *0* means that ccache will choose a suitable level, currently
+@@ -564,8 +564,8 @@ Semantics of *compression_level*:
+ 
+ [[config_file_clone]] *file_clone* (*CCACHE_FILECLONE* or *CCACHE_NOFILECLONE*, see <<_boolean_values,Boolean values>> above)::
+ 
+-    If true, ccache will attempt to use file cloning (also known as “copy on
+-    write”, “CoW” or “reflinks”) to store and fetch cached compiler results.
++    If true, ccache will attempt to use file cloning (also known as ``copy on
++    write'', ``CoW'' or ``reflinks'') to store and fetch cached compiler results.
+     *file_clone* has priority over <<config_hard_link,*hard_link*>>. The
+     default is false.
+ +
+@@ -921,11 +921,11 @@ Incompressible data:      3.5 GB
+ 
+ Notes:
+ 
+-* The “disk blocks” size is the cache size when taking disk block size into
+-  account. This value should match the “cache size” value from “ccache
+-  --show-stats”. The other size numbers refer to actual content sizes.
+-* “Compressed data” refers to result and manifest files stored in the cache.
+-* “Incompressible data” refers to files that are always stored uncompressed
++* The ``disk blocks'' size is the cache size when taking disk block size into
++  account. This value should match the ``cache size'' value from ``ccache
++  --show-stats''. The other size numbers refer to actual content sizes.
++* ``Compressed data'' refers to result and manifest files stored in the cache.
++* ``Incompressible data'' refers to files that are always stored uncompressed
+   (triggered by enabling <<config_file_clone,*file_clone*>> or
+   <<config_hard_link,*hard_link*>>) or unknown files (for instance files
+   created by older ccache versions).
+@@ -1238,11 +1238,11 @@ In the direct mode, ccache uses the 160 bit BLAKE3 hash of the
+ the *ccache-input-c* + *ccache-input-p* data is used in the preprocessor mode.
+ 
+ The *ccache-input-text* file is a combined text version of the three
+-binary input files. It has three sections (“COMMON”, “DIRECT MODE” and
+-“PREPROCESSOR MODE”), which is turn contain annotations that say what kind of
++binary input files. It has three sections (``COMMON'', ``DIRECT MODE'' and
++``PREPROCESSOR MODE''), which is turn contain annotations that say what kind of
+ data comes next.
+ 
+-To debug why you don’t get an expected cache hit for an object file, you can do
++To debug why you don't get an expected cache hit for an object file, you can do
+ something like this:
+ 
+ 1. Build with debug mode enabled.
+-- 
+2.27.0
+
-- 
2.27.0






More information about the openwrt-devel mailing list