diff mbox

dtv-scan-tables: rename file to have only ASCII characters

Message ID 1479156903-486-1-git-send-email-thomas.petazzoni@free-electrons.com
State Changes Requested
Headers show

Commit Message

Thomas Petazzoni Nov. 14, 2016, 8:55 p.m. UTC
Since the bump of dtv-scan-tables to version
ceb11833b35f05813b1f0397a60e0f3b99430aab in commit
b1c8794d8ac0eb3895d13ae91d8e912ec469a105, one file contains non-ASCII
characters, which causes encoding issues tvheadend. Since no other
file in the dtv-scan-tables code base contains files with non-ASCII
characters (despite having files named after cities in various
countries that definitely do have non-ASCII characters), we rename
this file so that it is named with only ASCII characters.

This fixes the build of tvheadend, which was failing when the host
Python interpreter was python3, due to a file name encoding issue.

Fixes:

  http://autobuild.buildroot.net/results/1ae8bee297edb089535a2fb6ec724ebf7976888d/
  (tvheadend)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Note: we will separately submit a patch to the upstream
dtv-scan-tables project to rename the problematic file.
---
 package/dtv-scan-tables/dtv-scan-tables.mk | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Yann E. MORIN Nov. 14, 2016, 9:10 p.m. UTC | #1
Thomas, All,

On 2016-11-14 21:55 +0100, Thomas Petazzoni spake thusly:
> Since the bump of dtv-scan-tables to version
> ceb11833b35f05813b1f0397a60e0f3b99430aab in commit
> b1c8794d8ac0eb3895d13ae91d8e912ec469a105, one file contains non-ASCII
> characters, which causes encoding issues tvheadend. Since no other
> file in the dtv-scan-tables code base contains files with non-ASCII
> characters (despite having files named after cities in various
> countries that definitely do have non-ASCII characters), we rename
> this file so that it is named with only ASCII characters.
> 
> This fixes the build of tvheadend, which was failing when the host
> Python interpreter was python3, due to a file name encoding issue.
> 
> Fixes:
> 
>   http://autobuild.buildroot.net/results/1ae8bee297edb089535a2fb6ec724ebf7976888d/
>   (tvheadend)
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

At first, I was not very happy about this, because the filename is also
displayed to the user, so it would make sense to keep localised names.

However, you are right that there is no standard way to encode
filenames, so this is not very reliable to depend on the filename to
provide a user-visible representation of the city/country/... Instead,
the location should be encoded in the file itself, possibly using the
filename as a ascii-only fallback.

I'll take on me to reach to upstream to discuss this with them.

However, I still ahve a little comment about this patch...

> ---
> Note: we will separately submit a patch to the upstream
> dtv-scan-tables project to rename the problematic file.
> ---
>  package/dtv-scan-tables/dtv-scan-tables.mk | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/package/dtv-scan-tables/dtv-scan-tables.mk b/package/dtv-scan-tables/dtv-scan-tables.mk
> index 8ef42b9..2be0eb5 100644
> --- a/package/dtv-scan-tables/dtv-scan-tables.mk
> +++ b/package/dtv-scan-tables/dtv-scan-tables.mk
> @@ -17,11 +17,16 @@ DTV_SCAN_TABLES_SITE_METHOD = git
>  DTV_SCAN_TABLES_LICENSE = GPLv2, LGPLv2.1
>  DTV_SCAN_TABLES_LICENSE_FILES = COPYING COPYING.LGPL
>  
> +# In order to avoid issues with file name encodings, we rename the
> +# only dtv-scan-tables file that has non-ASCII characters to have a
> +# name using only ASCII characters (pl-Krosno_Sucha_Gora)
>  define DTV_SCAN_TABLES_INSTALL_TARGET_CMDS
>  	for f in atsc dvb-c dvb-s dvb-t; do \
>  		$(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/share/dvb/$$f; \
>  		$(INSTALL) $(@D)/$$f/* $(TARGET_DIR)/usr/share/dvb/$$f; \
>  	done
> +	mv $(TARGET_DIR)/usr/share/dvb/dvb-t/pl-Krosno_Sucha* \
> +		$(TARGET_DIR)/usr/share/dvb/dvb-t/pl-Krosno_Sucha_Gora

Can't you do that in a post-extrat or post-patch hook?

Regards,
Yann E. MORIN.

>  endef
>  
>  $(eval $(generic-package))
> -- 
> 2.7.4
>
Thomas Petazzoni Nov. 14, 2016, 9:12 p.m. UTC | #2
Hello,

On Mon, 14 Nov 2016 22:10:24 +0100, Yann E. MORIN wrote:

> At first, I was not very happy about this, because the filename is also
> displayed to the user, so it would make sense to keep localised names.
> 
> However, you are right that there is no standard way to encode
> filenames, so this is not very reliable to depend on the filename to
> provide a user-visible representation of the city/country/... Instead,
> the location should be encoded in the file itself, possibly using the
> filename as a ascii-only fallback.

There are already many many other files that should have non-ASCII
characters to accurately represent the name of the city or region, but
that don't have them. From the commit log of the patch I just sent
upstream:

  - pl-Wroclaw should be written pl-Wrocław
  - se-Laxsjo should be written se-Laxsjö
  - de-Dusseldorf should be written de-Düsseldorf
  - vn-Thaibinh should be written vn-Thái_Bình

> > +	mv $(TARGET_DIR)/usr/share/dvb/dvb-t/pl-Krosno_Sucha* \
> > +		$(TARGET_DIR)/usr/share/dvb/dvb-t/pl-Krosno_Sucha_Gora  
> 
> Can't you do that in a post-extrat or post-patch hook?

Sure, v2 coming.

Thanks,

Thomas
diff mbox

Patch

diff --git a/package/dtv-scan-tables/dtv-scan-tables.mk b/package/dtv-scan-tables/dtv-scan-tables.mk
index 8ef42b9..2be0eb5 100644
--- a/package/dtv-scan-tables/dtv-scan-tables.mk
+++ b/package/dtv-scan-tables/dtv-scan-tables.mk
@@ -17,11 +17,16 @@  DTV_SCAN_TABLES_SITE_METHOD = git
 DTV_SCAN_TABLES_LICENSE = GPLv2, LGPLv2.1
 DTV_SCAN_TABLES_LICENSE_FILES = COPYING COPYING.LGPL
 
+# In order to avoid issues with file name encodings, we rename the
+# only dtv-scan-tables file that has non-ASCII characters to have a
+# name using only ASCII characters (pl-Krosno_Sucha_Gora)
 define DTV_SCAN_TABLES_INSTALL_TARGET_CMDS
 	for f in atsc dvb-c dvb-s dvb-t; do \
 		$(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/share/dvb/$$f; \
 		$(INSTALL) $(@D)/$$f/* $(TARGET_DIR)/usr/share/dvb/$$f; \
 	done
+	mv $(TARGET_DIR)/usr/share/dvb/dvb-t/pl-Krosno_Sucha* \
+		$(TARGET_DIR)/usr/share/dvb/dvb-t/pl-Krosno_Sucha_Gora
 endef
 
 $(eval $(generic-package))