diff --git a/extra/opencc/.SRCINFO b/extra/opencc/.SRCINFO index 1be339837..8da868d9a 100644 --- a/extra/opencc/.SRCINFO +++ b/extra/opencc/.SRCINFO @@ -1,10 +1,11 @@ pkgbase = opencc pkgdesc = Library for Open Chinese Convert - pkgver = 1.1.7 - pkgrel = 2 + pkgver = 1.1.8 + pkgrel = 1 url = https://github.com/BYVoid/OpenCC arch = x86_64 license = Apache + makedepends = git makedepends = chrpath makedepends = cmake makedepends = darts @@ -16,8 +17,10 @@ pkgbase = opencc makedepends = rapidjson makedepends = tclap makedepends = gtest - source = https://github.com/BYVoid/OpenCC/archive/ver.1.1.7/opencc-1.1.7.tar.gz - sha512sums = 26e4b12238f853b0fa91f9f0d9af7985bf04a0763185cc3b50b69ba99a2d80091b8c3160176d0d4cd348fbf1a680bfd80dc740dc60c938a256dc2dac8ef49f15 + source = git+https://github.com/BYVoid/OpenCC.git#tag=ver.1.1.8 + source = 8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2.patch + sha512sums = c5ffe2223e5cf3c2a3079128e6eefa74db083c32897f46ae58c981f3fe057cff045c4fed22266d4fe9170cf689169d4d8023b35da058c52d3a8f3034ca0ca8b2 + sha512sums = febade61cc1734db891234484893128519dffc198f80883fc4838534684f91db2a21641252615820ae9bedffce52451535ea2717a40958b80ea82590850b90ac pkgname = opencc pkgdesc = Library for Open Chinese Convert diff --git a/extra/opencc/8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2.patch b/extra/opencc/8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2.patch new file mode 100644 index 000000000..442771256 --- /dev/null +++ b/extra/opencc/8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2.patch @@ -0,0 +1,162 @@ +From 8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2 Mon Sep 17 00:00:00 2001 +From: Frost Ming +Date: Thu, 18 Jul 2024 05:32:08 +0800 +Subject: [PATCH] fix: release sdist to PyPI (#797) + +* fix: release sdist to PyPI + +* fix: add newline at file end + +* fix: ignore more files + +Signed-off-by: Frost Ming + +* fix: change the install root of cmake + +Signed-off-by: Frost Ming + +* fix: make it work for editable build as well + +Signed-off-by: Frost Ming + +* fix release script + +Signed-off-by: Frost Ming + +* fix: include files in sdist + +Signed-off-by: Frost Ming + +--------- + +Signed-off-by: Frost Ming +Co-authored-by: Carbo Kuo +--- + .github/workflows/python.yml | 10 ++++---- + .gitignore | 1 + + MANIFEST.in | 9 +++++++ + Makefile | 6 ++--- + pyproject.toml | 3 +++ + python/opencc/.gitignore | 1 + + python/opencc/clib/__init__.py | 1 - + release-pypi-linux.sh | 8 +++---- + release-pypi-macos.sh | 6 ++--- + release-pypi-windows.cmd | 6 ++--- + setup.py | 43 +++++++++------------------------- + 11 files changed, 43 insertions(+), 51 deletions(-) + create mode 100644 MANIFEST.in + create mode 100644 pyproject.toml + +diff --git a/setup.py b/setup.py +index a7ce160d..a4bc500f 100644 +--- a/setup.py ++++ b/setup.py +@@ -9,21 +9,12 @@ + import wheel.bdist_wheel + + _this_dir = os.path.dirname(os.path.abspath(__file__)) +-_clib_dir = os.path.join(_this_dir, 'python', 'opencc', 'clib') + _build_dir = os.path.join(_this_dir, 'build', 'python') + + _cmake_file = os.path.join(_this_dir, 'CMakeLists.txt') + _author_file = os.path.join(_this_dir, 'AUTHORS') + _readme_file = os.path.join(_this_dir, 'README.md') + +-try: +- sys.path.insert(0, os.path.join(_this_dir, 'python')) +- +- import opencc # noqa +- _libopencc_built = True +-except ImportError: +- _libopencc_built = False +- + + def get_version_info(): + version_info = ['1', '0', '0'] +@@ -70,20 +61,13 @@ def get_long_description(): + return f.read().decode('utf-8') + + +-def build_libopencc(): +- if _libopencc_built: +- return # Skip building binary file ++def build_libopencc(output_path): + print('building libopencc into %s' % _build_dir) + + is_windows = sys.platform == 'win32' + + # Make build directories +- if is_windows: +- subprocess.call('md {}'.format(_build_dir), shell=True) +- subprocess.call('md {}'.format(_clib_dir), shell=True) +- else: +- subprocess.call('mkdir -p {}'.format(_build_dir), shell=True) +- subprocess.call('mkdir -p {}'.format(_clib_dir), shell=True) ++ os.makedirs(_build_dir, exist_ok=True) + + # Configure + cmake_args = [ +@@ -93,14 +77,14 @@ def build_libopencc(): + '-DENABLE_BENCHMARK:BOOL=OFF', + '-DBUILD_PYTHON:BOOL=ON', + '-DCMAKE_BUILD_TYPE=Release', +- '-DCMAKE_INSTALL_PREFIX={}'.format(_clib_dir), +- '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={}'.format(_clib_dir), ++ '-DCMAKE_INSTALL_PREFIX={}'.format(output_path), ++ '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY={}'.format(output_path), + '-DPYTHON_EXECUTABLE={}'.format(sys.executable), + ] + + if is_windows: + cmake_args += \ +- ['-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE={}'.format(_clib_dir)] ++ ['-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE={}'.format(output_path)] + if sys.maxsize > 2**32: + cmake_args += ['-A', 'x64'] + +@@ -117,11 +101,6 @@ def build_libopencc(): + errno = subprocess.call(cmd) + assert errno == 0, 'Build failed' + +- # Empty __init__.py file has to be created +- # to make opencc.clib a module +- with open('{}/__init__.py'.format(_clib_dir), 'w'): +- pass +- + + class OpenCCExtension(setuptools.Extension, object): + def __init__(self, name, sourcedir=''): +@@ -131,8 +110,12 @@ def __init__(self, name, sourcedir=''): + + class BuildExtCommand(setuptools.command.build_ext.build_ext, object): + def build_extension(self, ext): ++ if self.inplace: ++ output_path = os.path.join(_this_dir, 'python', 'opencc', 'clib') ++ else: ++ output_path = os.path.abspath(os.path.join(self.build_lib, 'opencc', 'clib')) + if isinstance(ext, OpenCCExtension): +- build_libopencc() ++ build_libopencc(output_path) + else: + super(BuildExtCommand, self).build_extension(ext) + +@@ -157,7 +140,7 @@ def _determine_platform_tag(): + return 'macosx-11.0-{}'.format(machine) + else: + raise NotImplementedError +- ++ + if os.name == 'posix': + _, _, _, _, machine = os.uname() + return 'manylinux2014-{}'.format(machine) +@@ -190,10 +173,6 @@ def initialize_options(self): + + packages=packages, + package_dir={'opencc': 'python/opencc'}, +- package_data={str('opencc'): [ +- 'clib/opencc_clib*', +- 'clib/share/opencc/*', +- ]}, + ext_modules=[OpenCCExtension('opencc.clib.opencc_clib', 'python')], + cmdclass={ + 'build_ext': BuildExtCommand, diff --git a/extra/opencc/PKGBUILD b/extra/opencc/PKGBUILD index 973581469..e797fca1e 100644 --- a/extra/opencc/PKGBUILD +++ b/extra/opencc/PKGBUILD @@ -5,24 +5,30 @@ pkgbase=opencc pkgname=(opencc opencc-doc) -pkgver=1.1.7 -pkgrel=2 +pkgver=1.1.8 +pkgrel=1 pkgdesc="Library for Open Chinese Convert" url="https://github.com/BYVoid/OpenCC" arch=('x86_64') license=('Apache') -makedepends=('chrpath' 'cmake' 'darts' 'doxygen' 'marisa' 'pybind11' 'python-setuptools' +makedepends=('git' 'chrpath' 'cmake' 'darts' 'doxygen' 'marisa' 'pybind11' 'python-setuptools' 'python-wheel' 'rapidjson' 'tclap' 'gtest') -source=("https://github.com/BYVoid/OpenCC/archive/ver.$pkgver/$pkgbase-$pkgver.tar.gz") -sha512sums=('26e4b12238f853b0fa91f9f0d9af7985bf04a0763185cc3b50b69ba99a2d80091b8c3160176d0d4cd348fbf1a680bfd80dc740dc60c938a256dc2dac8ef49f15') +source=("git+https://github.com/BYVoid/OpenCC.git#tag=ver.$pkgver" + 8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2.patch) +sha512sums=('c5ffe2223e5cf3c2a3079128e6eefa74db083c32897f46ae58c981f3fe057cff045c4fed22266d4fe9170cf689169d4d8023b35da058c52d3a8f3034ca0ca8b2' + 'febade61cc1734db891234484893128519dffc198f80883fc4838534684f91db2a21641252615820ae9bedffce52451535ea2717a40958b80ea82590850b90ac') prepare() { - cd OpenCC-ver.$pkgver + cd OpenCC rm -r deps + + # as of opencc 1.1.8 there is no clean way to disable duplicated building of the clib again. plus, the installation is broken as well. + # let's revert the offending commit for now. + patch -Rp1 -i ../8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2.patch } build() { - cd OpenCC-ver.$pkgver + cd OpenCC cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_DOCUMENTATION:BOOL=ON -DBUILD_PYTHON:BOOL=ON \ -DUSE_SYSTEM_MARISA:BOOL=ON -DUSE_SYSTEM_PYBIND11:BOOL=ON -DUSE_SYSTEM_RAPIDJSON:BOOL=ON \ -DUSE_SYSTEM_TCLAP:BOOL=ON -DUSE_SYSTEM_DARTS:BOOL=ON -DENABLE_GTEST:BOOL=ON \ @@ -34,7 +40,7 @@ build() { } check() { - cd OpenCC-ver.$pkgver + cd OpenCC make test } @@ -42,7 +48,7 @@ package_opencc() { pkgdesc="Library for Open Chinese Convert" depends=('marisa') - cd OpenCC-ver.$pkgver + cd OpenCC make DESTDIR="$pkgdir" install python setup.py install --root="$pkgdir" --optimize=1 @@ -61,6 +67,6 @@ package_opencc() { package_opencc-doc() { pkgdesc="Documentation for Library for Open Chinese Convert" - cd OpenCC-ver.$pkgver/doc + cd OpenCC/doc make DESTDIR="$pkgdir" install }