From 1be263e8701087f0ac492a2ef9de33c38d4044ee Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 23 Jun 2016 17:11:49 +0200 Subject: [PATCH] FDroidPopen must have a locale to support UTF-8 filenames `fdroid update` should be able to handle any valid filename (hopefully aapt doesn't barf on them). To handle that, the environment where the shell commands are run in needs to have a UTF-8 locale set. If LANG is not set, things default to ASCII and UTF-8 filenames fail. This also renames test APK with lots of Unicode chars as a test case. closes #167 --- fdroidserver/common.py | 12 +++++++++++- ...70-\330\271\330\261\330\250\331\2121234.apk" | Bin 0 -> 11471 bytes tests/repo/urzip.apk | Bin 9969 -> 0 bytes tests/run-tests | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 "tests/repo/urzip-\317\200\303\207\303\207\317\200\303\207\303\207\347\216\260\344\273\243\346\261\211\350\257\255\351\200\232\347\224\250\345\255\227-\320\261\321\212\320\273\320\263\320\260\321\200\321\201\320\272\320\270-\330\271\330\261\330\250\331\2121234.apk" delete mode 100644 tests/repo/urzip.apk diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 732d18d2..2c2bb4e0 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -1794,7 +1794,8 @@ def set_FDroidPopen_env(build=None): set up the environment variables for the build environment There is only a weak standard, the variables used by gradle, so also set - up the most commonly used environment variables for SDK and NDK + up the most commonly used environment variables for SDK and NDK. Also, if + there is no locale set, this will set the locale (e.g. LANG) to en_US.UTF-8. ''' global env, orig_path @@ -1806,6 +1807,15 @@ def set_FDroidPopen_env(build=None): for k, v in config['java_paths'].items(): env['JAVA%s_HOME' % k] = v + missinglocale = True + for k, v in env.items(): + if k == 'LANG' and v != 'C': + missinglocale = False + elif k == 'LC_ALL': + missinglocale = False + if missinglocale: + env['LANG'] = 'en_US.UTF-8' + if build is not None: path = build.ndk_path() paths = orig_path.split(os.pathsep) diff --git "a/tests/repo/urzip-\317\200\303\207\303\207\317\200\303\207\303\207\347\216\260\344\273\243\346\261\211\350\257\255\351\200\232\347\224\250\345\255\227-\320\261\321\212\320\273\320\263\320\260\321\200\321\201\320\272\320\270-\330\271\330\261\330\250\331\2121234.apk" "b/tests/repo/urzip-\317\200\303\207\303\207\317\200\303\207\303\207\347\216\260\344\273\243\346\261\211\350\257\255\351\200\232\347\224\250\345\255\227-\320\261\321\212\320\273\320\263\320\260\321\200\321\201\320\272\320\270-\330\271\330\261\330\250\331\2121234.apk" new file mode 100644 index 0000000000000000000000000000000000000000..0851e066f73a2ba72dad3900caa61225bc441787 GIT binary patch literal 11471 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 BZBqaM literal 0 HcmV?d00001 diff --git a/tests/repo/urzip.apk b/tests/repo/urzip.apk deleted file mode 100644 index ee5e5cba868321f3eb85d1e3cc8b50a0a7fd560f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9969 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 diff --git a/tests/run-tests b/tests/run-tests index 62d27aa7..c55319da 100755 --- a/tests/run-tests +++ b/tests/run-tests @@ -138,6 +138,20 @@ $fdroid readmeta $fdroid update +#------------------------------------------------------------------------------# +echo_header "copy tests/repo, generate a keystore, and update" + +REPOROOT=`create_test_dir` +cd $REPOROOT +$fdroid init +cp -a $WORKSPACE/tests/metadata $WORKSPACE/tests/repo $REPOROOT/ +echo "accepted_formats = ['json', 'txt', 'xml', 'yml']" >> config.py +$fdroid update --verbose +test -e repo/index.xml +test -e repo/index.jar +grep -F '