package.bbclass:
authorChris Larson <clarson@kergoth.com>
Fri, 8 Sep 2006 08:08:58 +0000 (08:08 +0000)
committerChris Larson <clarson@kergoth.com>
Fri, 8 Sep 2006 08:08:58 +0000 (08:08 +0000)
    Make legitimize_package_name also convert <U0123> style encoding of
    unicode codepoints into their utf-8 representation, as in glibc locale
    files.

classes/package.bbclass

index 9b913ec..03999a5 100644 (file)
@@ -1,4 +1,15 @@
 def legitimize_package_name(s):
+       import re
+
+       def fixutf(m):
+               cp = m.group(1)
+               if cp:
+                       return ('\u%s' % cp).decode('unicode_escape').encode('utf-8')
+
+       # Handle unicode codepoints encoded as <U0123>, as in glibc locale files.
+       s = re.sub('<U([0-9A-Fa-f]{1,4})>', fixutf, s)
+
+       # Remaining package name validity fixes
        return s.lower().replace('_', '-').replace('@', '+').replace(',', '+').replace('/', '-')
 
 STAGING_PKGMAPS_DIR ?= "${STAGING_DIR}/pkgmaps"