Initial Package
This commit is contained in:
parent
dbf1166ff2
commit
a2f8fc0a86
BIN
dict.utf8-20131214.tar.bz2
Normal file
BIN
dict.utf8-20131214.tar.bz2
Normal file
Binary file not shown.
BIN
lm_sc.3gm.arpa-20140820.tar.bz2
Normal file
BIN
lm_sc.3gm.arpa-20140820.tar.bz2
Normal file
Binary file not shown.
BIN
sunpinyin-20190805.tar.xz
Normal file
BIN
sunpinyin-20190805.tar.xz
Normal file
Binary file not shown.
34
sunpinyin-fixes-scons.patch
Normal file
34
sunpinyin-fixes-scons.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Index: sunpinyin-20190805/SConstruct
|
||||||
|
===================================================================
|
||||||
|
--- sunpinyin-20190805.orig/SConstruct
|
||||||
|
+++ sunpinyin-20190805/SConstruct
|
||||||
|
@@ -2,6 +2,7 @@ import platform
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
+from functools import reduce
|
||||||
|
|
||||||
|
version = "2.0.4"
|
||||||
|
abi_major = 3
|
||||||
|
@@ -227,7 +228,7 @@ def CreateEnvironment():
|
||||||
|
def PassVariables(envvar, env):
|
||||||
|
for (x, y) in envvar:
|
||||||
|
if x in os.environ:
|
||||||
|
- print 'Warning: you\'ve set %s in the environmental variable!' % x
|
||||||
|
+ print ('Warning: you\'ve set %s in the environmental variable!' % x)
|
||||||
|
env[y] = os.environ[x]
|
||||||
|
|
||||||
|
env = CreateEnvironment()
|
||||||
|
Index: sunpinyin-20190805/src/SConscript
|
||||||
|
===================================================================
|
||||||
|
--- sunpinyin-20190805.orig/src/SConscript
|
||||||
|
+++ sunpinyin-20190805/src/SConscript
|
||||||
|
@@ -53,7 +53,7 @@ env.Substfile('sunpinyin-dictgen.mk.in',
|
||||||
|
})
|
||||||
|
env.Command('sunpinyin-dictgen', 'sunpinyin-dictgen.mk', [
|
||||||
|
Copy("$TARGET", "$SOURCE"),
|
||||||
|
- Chmod("$TARGET", 0755),
|
||||||
|
+ Chmod("$TARGET", "0755"),
|
||||||
|
])
|
||||||
|
|
||||||
|
# -*- indent-tabs-mode: nil -*- vim:et:ts=4
|
||||||
171
sunpinyin-use-python3.patch
Normal file
171
sunpinyin-use-python3.patch
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
commit d0693ba9f2686ffa46328da129ffef345258fa12
|
||||||
|
Author: Peng Wu <alexepico@gmail.com>
|
||||||
|
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 ()
|
||||||
89
sunpinyin.spec
Normal file
89
sunpinyin.spec
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# TODO: fixes scons to generate debug information
|
||||||
|
%global debug_package %{nil}
|
||||||
|
|
||||||
|
%define _xinputconf %{_sysconfdir}/X11/xinit/xinput.d/xsunpinyin.conf
|
||||||
|
%define gitdate 20190805
|
||||||
|
|
||||||
|
Name: sunpinyin
|
||||||
|
Version: 3.0.0
|
||||||
|
Release: 1
|
||||||
|
Summary: A statistical language model based Chinese input method engine
|
||||||
|
License: LGPLv2 or CDDL or CC-BY-SA
|
||||||
|
Obsoletes: %{name}-data-le
|
||||||
|
Obsoletes: %{name}-data-be
|
||||||
|
URL: http://code.google.com/p/sunpinyin/
|
||||||
|
Source0: %{name}-%{gitdate}.tar.xz
|
||||||
|
Source2: http://downloads.sourceforge.net/project/open-gram/lm_sc.3gm.arpa-20140820.tar.bz2
|
||||||
|
Source3: http://downloads.sourceforge.net/project/open-gram/dict.utf8-20131214.tar.bz2
|
||||||
|
Patch0: sunpinyin-use-python3.patch
|
||||||
|
Patch1: sunpinyin-fixes-scons.patch
|
||||||
|
BuildRequires: gcc-c++, sqlite-devel, gettext, python3-scons, perl(Pod::Man), python3-devel
|
||||||
|
|
||||||
|
%description
|
||||||
|
Sunpinyin is an input method engine for Simplified Chinese. It is an SLM based
|
||||||
|
IM engine, and features full sentence input.
|
||||||
|
|
||||||
|
SunPinyin has been ported to various input method platforms and operating
|
||||||
|
systems. The 2.0 release currently supports iBus, XIM, and Mac OS X.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files for %{name}
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
The %{name}-devel package contains libraries and header files that allows user
|
||||||
|
to write their own front-end for sunpinyin.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{name}-%{gitdate}
|
||||||
|
%patch0 -p1 -b .python3
|
||||||
|
%patch1 -p1 -b .scons
|
||||||
|
|
||||||
|
mkdir -p raw
|
||||||
|
cp %SOURCE2 raw
|
||||||
|
cp %SOURCE3 raw
|
||||||
|
pushd raw
|
||||||
|
tar xvf lm_sc.3gm.arpa-20140820.tar.bz2
|
||||||
|
tar xvf dict.utf8-20131214.tar.bz2
|
||||||
|
popd
|
||||||
|
|
||||||
|
%build
|
||||||
|
# export CFLAGS, CXXFLAGS, LDFLAGS, ...
|
||||||
|
%configure || :
|
||||||
|
|
||||||
|
scons %{?_smp_mflags} --prefix=%{_prefix} --libdir=%{_libdir} --datadir=%{_datadir}
|
||||||
|
export PATH=`pwd`/src:$PATH
|
||||||
|
pushd raw
|
||||||
|
ln -sf ../doc/SLM-inst.mk Makefile
|
||||||
|
make %{?_smp_mflags} VERBOSE=1
|
||||||
|
popd
|
||||||
|
|
||||||
|
%install
|
||||||
|
scons %{?_smp_mflags} --prefix=%{_prefix} --libdir=%{_libdir} --datadir=%{_datadir} install --install-sandbox=%{buildroot}
|
||||||
|
pushd raw
|
||||||
|
make install DESTDIR=%{buildroot} INSTALL="install -p"
|
||||||
|
popd
|
||||||
|
install -m0644 AUTHORS TODO %{buildroot}%{_docdir}/%{name}
|
||||||
|
|
||||||
|
|
||||||
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license COPYING *.LICENSE
|
||||||
|
%{_libdir}/libsunpinyin*.so.*
|
||||||
|
%{_datadir}/%{name}
|
||||||
|
%{_bindir}/*
|
||||||
|
%{_mandir}/man1/*.1.gz
|
||||||
|
%{_docdir}/%{name}/SLM-*.mk
|
||||||
|
%{_docdir}/%{name}/README
|
||||||
|
%{_docdir}/%{name}/AUTHORS
|
||||||
|
%{_docdir}/%{name}/TODO
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_libdir}/libsunpinyin*.so
|
||||||
|
%{_libdir}/pkgconfig/sunpinyin*.pc
|
||||||
|
%{_includedir}/sunpinyin*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Dec 22 2020 weidong <weidong@uniontech.com> - 3.0.0-1
|
||||||
|
- Initial Package
|
||||||
Loading…
x
Reference in New Issue
Block a user