diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD index a17885d..571dc45 100644 --- a/trunk/PKGBUILD +++ b/trunk/PKGBUILD @@ -11,16 +11,19 @@ license=('LGPL') url="http://sunpinyin.googlecode.com" depends=('sqlite' 'make' 'gcc-libs') optdepends=('sunpinyin-data: Statistical language model data from open-gram project for sunpinyin') -makedepends=('git' 'scons' 'intltool' 'python2') -source=("git://github.com/sunpinyin/sunpinyin.git#tag=$_tag" scons-python3.patch) +makedepends=('git' 'scons' 'intltool' 'python') +source=("git://github.com/sunpinyin/sunpinyin.git#tag=$_tag" + scons-python3.patch + sunpinyin-use-python3.patch) md5sums=('SKIP' - '268a91412d5e5c8f3e7a092b0daa8220') + '268a91412d5e5c8f3e7a092b0daa8220' + 'a652f3f3260968d18c876f6178d7fbf4') prepare() { cd "$srcdir/$pkgname" - sed -i -e "1s|python|python2|" python/*.py python/importer/*.py patch -p1 -i ../scons-python3.patch + patch -p1 -i ../sunpinyin-use-python3.patch } build() { diff --git a/trunk/sunpinyin-use-python3.patch b/trunk/sunpinyin-use-python3.patch new file mode 100644 index 0000000..aaf55a4 --- /dev/null +++ b/trunk/sunpinyin-use-python3.patch @@ -0,0 +1,171 @@ +commit d0693ba9f2686ffa46328da129ffef345258fa12 +Author: Peng Wu +Date: Thu Jul 26 15:08:41 2018 +0800 + + Use python3 + +Index: sunpinyin-20190805/SConstruct +=================================================================== +--- sunpinyin-20190805.orig/SConstruct ++++ sunpinyin-20190805/SConstruct +@@ -299,11 +299,11 @@ def CheckPKG(context, name): + + def CheckPython(context): + context.Message('Checking for Python library...') +- ret = context.TryAction('python-config --prefix')[0] ++ ret = context.TryAction('python3-config --prefix')[0] + context.Result(ret) + if ret: +- context.env.MergeFlags(['!python-config --includes', +- '!python-config --libs']) ++ context.env.MergeFlags(['!python3-config --includes', ++ '!python3-config --libs']) + return ret + + +Index: sunpinyin-20190805/python/pinyin_info_gen.py +=================================================================== +--- sunpinyin-20190805.orig/python/pinyin_info_gen.py ++++ sunpinyin-20190805/python/pinyin_info_gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + # +@@ -38,60 +38,60 @@ + from pinyin_data import * + + def fmt_str_array (name, var) : +- print 'static const char *%s[] = { %s };' % (name, ', '.join ('"%s"' % s for s in var)) ++ print('static const char *%s[] = { %s };' % (name, ', '.join ('"%s"' % s for s in var))) + + def fmt_array_size (name): +- print 'static const unsigned num_%s = sizeof(%s) / sizeof(*%s);' % (name, name, name) ++ print('static const unsigned num_%s = sizeof(%s) / sizeof(*%s);' % (name, name, name)) + + def fmt_str_pair_array (name, var) : +- print 'static const char *%s[] = {' % name ++ print('static const char *%s[] = {' % name) + for s1, s2 in var: +- print ' %-7s %s' % ('"%s",' % s1, '"%s",' % s2) +- print '};' ++ print(' %-7s %s' % ('"%s",' % s1, '"%s",' % s2)) ++ print('};') + + def fmt_pair_array_size (name): +- print 'static const unsigned num_%s = sizeof(%s) / sizeof(*%s) / 2;' % (name, name, name) ++ print('static const unsigned num_%s = sizeof(%s) / sizeof(*%s) / 2;' % (name, name, name)) + + fmt_str_array ('initials', initials) + fmt_array_size ('initials') +-print '' ++print('') + + fmt_str_array('finals', finals) + fmt_array_size ('finals') +-print '' ++print('') + + fmt_str_array('fuzzy_finals', inner_fuzzy_finals) + fmt_array_size ('fuzzy_finals') +-print '' ++print('') + + fmt_str_pair_array ('fuzzy_pairs', fuzzy_pairs) + fmt_pair_array_size ('fuzzy_pairs') +-print '' ++print('') + + fmt_str_pair_array ('auto_correction_pairs', sorted(auto_correction_pairs.items())) + fmt_pair_array_size ('auto_correction_pairs') +-print '' ++print('') + +-print 'static const unsigned fuzzy_finals_map [] = {' ++print('static const unsigned fuzzy_finals_map [] = {') + for s in inner_fuzzy_finals: +- print ' %-7s %-7s %-7s /* %-4s -> %-4s len %d */' % ('0x%02x,' % finals.index(s), '0x%02x,' % valid_syllables[s[1:]], '%d,' % (len(s)-1,), s, s[1:], len(s)-1) +-print '};\n' ++ print(' %-7s %-7s %-7s /* %-4s -> %-4s len %d */' % ('0x%02x,' % finals.index(s), '0x%02x,' % valid_syllables[s[1:]], '%d,' % (len(s)-1,), s, s[1:], len(s)-1)) ++print('};\n') + +-print 'static const TPyTabEntry pinyin_table[] = {' ++print('static const TPyTabEntry pinyin_table[] = {') + for syllable, hex_syllable in sorted(valid_syllables.items()): +- print ' { %-9s %s },' % ('"%s",' % syllable, '0x%05x' % hex_syllable) +-print '};\n' ++ print(' { %-9s %s },' % ('"%s",' % syllable, '0x%05x' % hex_syllable)) ++print('};\n') + +-print 'static const unsigned fuzzy_pre_syllables [] = {' ++print('static const unsigned fuzzy_pre_syllables [] = {') + for s in fuzzy_pre_syllables: +- print ' %-11s %-7s %-11s /* %s */' % ('0x%05x,' % valid_syllables[s[:-1]], "'%s'," % s[-1], '0x%05x,' % valid_syllables[s], s) +-print ' 0x0,' +-print '};\n' ++ print(' %-11s %-7s %-11s /* %s */' % ('0x%05x,' % valid_syllables[s[:-1]], "'%s'," % s[-1], '0x%05x,' % valid_syllables[s], s)) ++print(' 0x0,') ++print('};\n') + +-print 'static const unsigned fuzzy_pro_syllables [] = {' ++print('static const unsigned fuzzy_pro_syllables [] = {') + for s in fuzzy_pro_syllables: +- print ' %-11s %-7s %-11s /* %s */' % ('0x%05x,' % valid_syllables[s], "'%s'," % s[0], '0x%05x,' % valid_syllables[s[1:]], s) +-print ' 0x0,' +-print '};\n' ++ print(' %-11s %-7s %-11s /* %s */' % ('0x%05x,' % valid_syllables[s], "'%s'," % s[0], '0x%05x,' % valid_syllables[s[1:]], s)) ++print(' 0x0,') ++print('};\n') + + # -*- indent-tabs-mode: nil -*- vim:et:ts=4 +Index: sunpinyin-20190805/python/quanpin_trie_gen.py +=================================================================== +--- sunpinyin-20190805.orig/python/quanpin_trie_gen.py ++++ sunpinyin-20190805/python/quanpin_trie_gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + # +@@ -42,7 +42,7 @@ import sys + orig_trie = trie.Trie () + pytrie = trie.DATrie () + +-for syllable, hex_syllable in pinyin_data.valid_syllables.items(): ++for syllable, hex_syllable in list(pinyin_data.valid_syllables.items()): + orig_trie.add(syllable[::-1], hex_syllable) + + pytrie.construct_from_trie (orig_trie) +Index: sunpinyin-20190805/python/trie.py +=================================================================== +--- sunpinyin-20190805.orig/python/trie.py ++++ sunpinyin-20190805/python/trie.py +@@ -133,7 +133,7 @@ class DATrie (object): + + trie = Trie() + for w in words: +- trie.add (w, itval.next() if itval else -1) ++ trie.add (w, next(itval) if itval else -1) + + self.construct_from_trie (trie, values!=None) + +@@ -161,7 +161,7 @@ class DATrie (object): + if progress_cb: + progress_cb () + +- for i in xrange (self.chr_encoder (max(trie.root.trans))+1): ++ for i in range (self.chr_encoder (max(trie.root.trans))+1): + if self.check[i] == -1: + self.check[i] = 0 + +@@ -272,7 +272,7 @@ def test (): + v, l = match_longest (datrie, s+'b') + assert (len(s) == l and valid_syllables[s] == v) + +- print 'test executed successfully' ++ print('test executed successfully') + + if __name__ == "__main__": + test ()