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