public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Yixun Lan" <dlan@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-i18n/opencc/files/, app-i18n/opencc/
Date: Sat, 08 Feb 2025 01:15:25 +0000 (UTC)	[thread overview]
Message-ID: <1738977276.b134a6bbe4edef40bc580dbf66b9b8dcb1dcd333.dlan@gentoo> (raw)

commit:     b134a6bbe4edef40bc580dbf66b9b8dcb1dcd333
Author:     blackteahamburger <blackteahamburger <AT> outlook <DOT> com>
AuthorDate: Sun Feb  2 15:38:06 2025 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Sat Feb  8 01:14:36 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b134a6bb

app-i18n/opencc: Bump to 1.1.9

Closes: https://bugs.gentoo.org/949213
Signed-off-by: blackteahamburger <blackteahamburger <AT> outlook.com>
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>

 app-i18n/opencc/Manifest                        |   1 +
 app-i18n/opencc/files/opencc-1.1.9-python.patch | 162 ++++++++++++++++++++++++
 app-i18n/opencc/opencc-1.1.9.ebuild             | 122 ++++++++++++++++++
 3 files changed, 285 insertions(+)

diff --git a/app-i18n/opencc/Manifest b/app-i18n/opencc/Manifest
index 7d89492fcc76..02afde939744 100644
--- a/app-i18n/opencc/Manifest
+++ b/app-i18n/opencc/Manifest
@@ -1,2 +1,3 @@
 DIST opencc-1.1.4.tar.gz 2806887 BLAKE2B 150fd83818616de42e535f349b2574ff3319e41618e522583a57a00ab08b7f28db6e8f4fa4a0d4dbe027753b5be87065b2015542251986c6301ad441c4bf4c98 SHA512 ab8e7e6a0cc71106cf09eb32899fa8620b946a406f042d75a2444096e0b383cb1993d6c2d12cd7862e71854da4cd5893442bce51df84c32ed09fdfb4a2846f46
 DIST opencc-1.1.7.tar.gz 3311712 BLAKE2B 158a4ea5707ade583d326b0e4441640cbaae2ccb1c89c4ccfaeb8b8dd6f1d427a7f5fcaae7ac0bd6fca3208c65fe24577f6b6ba9c7fec1a499936ef83887d181 SHA512 26e4b12238f853b0fa91f9f0d9af7985bf04a0763185cc3b50b69ba99a2d80091b8c3160176d0d4cd348fbf1a680bfd80dc740dc60c938a256dc2dac8ef49f15
+DIST opencc-1.1.9.tar.gz 3422511 BLAKE2B e83fda092fafa3dc4a108c4d1d6c35cfe2e75609cd5bc2eea9c9b59ef636c876e8993b0b45291f35dd86e69f3182ddbcd775fa8d347e5e5ac89576b09a5cb901 SHA512 713cf00931d7616994eb455eef3bc893096b5cd6d42b346aa1130591752d9612891ea3ed035bd7bd4ec7df1c90425e86375f5b3337fac11663c656c79a8f33e9

diff --git a/app-i18n/opencc/files/opencc-1.1.9-python.patch b/app-i18n/opencc/files/opencc-1.1.9-python.patch
new file mode 100644
index 000000000000..442771256649
--- /dev/null
+++ b/app-i18n/opencc/files/opencc-1.1.9-python.patch
@@ -0,0 +1,162 @@
+From 8f3a5b4b201f091713cb4e2b1b5883a4b12d10b2 Mon Sep 17 00:00:00 2001
+From: Frost Ming <mianghong@gmail.com>
+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 <me@frostming.com>
+
+* fix: change the install root of cmake
+
+Signed-off-by: Frost Ming <me@frostming.com>
+
+* fix: make it work for editable build as well
+
+Signed-off-by: Frost Ming <me@frostming.com>
+
+* fix release script
+
+Signed-off-by: Frost Ming <me@frostming.com>
+
+* fix: include files in sdist
+
+Signed-off-by: Frost Ming <me@frostming.com>
+
+---------
+
+Signed-off-by: Frost Ming <me@frostming.com>
+Co-authored-by: Carbo Kuo <BYVoid@users.noreply.github.com>
+---
+ .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/app-i18n/opencc/opencc-1.1.9.ebuild b/app-i18n/opencc/opencc-1.1.9.ebuild
new file mode 100644
index 000000000000..df2e04117895
--- /dev/null
+++ b/app-i18n/opencc/opencc-1.1.9.ebuild
@@ -0,0 +1,122 @@
+# Copyright 2010-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+DISTUTILS_EXT=1
+DISTUTILS_OPTIONAL=1
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+
+inherit cmake distutils-r1
+
+DESCRIPTION="Library for conversion between Traditional and Simplified Chinese characters"
+HOMEPAGE="https://github.com/BYVoid/OpenCC"
+SRC_URI="https://github.com/BYVoid/OpenCC/archive/ver.${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/OpenCC-ver.${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0/1.1"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="doc python test"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-libs/marisa
+	python? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}
+	dev-cpp/tclap
+	dev-libs/darts
+	dev-libs/rapidjson
+"
+BDEPEND="${PYTHON_DEPS}
+	doc? ( app-text/doxygen )
+	python? (
+		${DISTUTILS_DEPS}
+		app-admin/chrpath
+		$(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')
+		test? ( $(python_gen_cond_dep 'dev-python/pytest[${PYTHON_USEDEP}]') )
+	)
+	test? (
+		dev-cpp/gtest
+		!hppa? ( !sparc? ( dev-cpp/benchmark ) )
+	)
+"
+
+DOCS=( AUTHORS NEWS.md README.md )
+
+src_prepare() {
+	# 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.
+	eapply -R "${FILESDIR}/${P}-python.patch"
+
+	rm -r deps || die
+
+	sed -e "s:\${DIR_SHARE_OPENCC}/doc:share/doc/${PF}:" -i doc/CMakeLists.txt || die
+
+	cmake_src_prepare
+	use python && distutils-r1_src_prepare
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DBUILD_DOCUMENTATION=$(usex doc)
+		-DBUILD_PYTHON=$(usex python)
+		-DENABLE_BENCHMARK=$(if use test && has_version -d dev-cpp/benchmark; then echo ON; else echo OFF; fi)
+		-DENABLE_GTEST=$(usex test)
+		-DUSE_SYSTEM_DARTS=ON
+		-DUSE_SYSTEM_GOOGLE_BENCHMARK=ON
+		-DUSE_SYSTEM_GTEST=ON
+		-DUSE_SYSTEM_MARISA=ON
+		-DUSE_SYSTEM_PYBIND11=ON
+		-DUSE_SYSTEM_RAPIDJSON=ON
+		-DUSE_SYSTEM_TCLAP=ON
+	)
+
+	cmake_src_configure
+	use python && distutils-r1_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+	if use python; then
+		cp "${BUILD_DIR}"/opencc_clib.*.so python/opencc/clib/
+		distutils-r1_src_compile
+	fi
+}
+
+python_test() {
+	epytest
+}
+
+src_test() {
+	cmake_src_test
+	if use python; then
+		cd "${BUILD_DIR}_${EPYTHON}/install/usr/lib/${EPYTHON}/site-packages/opencc/clib" || die
+		mkdir -p share/opencc || die
+		cp "${S}/data/config"/*.json share/opencc/ || die
+		pushd "${S}" || die
+
+		distutils-r1_src_test
+
+		popd || die
+		rm -r share/ || die
+	fi
+}
+
+src_install() {
+	cmake_src_install
+	if use python; then
+		distutils-r1_src_install
+
+		# Hack to make opencc's python binding to use system opencc's configs
+		dodir "/usr/lib/${EPYTHON}/site-packages/opencc/clib/share"
+		dosym -r /usr/share/opencc "/usr/lib/${EPYTHON}/site-packages/opencc/clib/share/opencc"
+
+		# Remove insecure RPATH
+		chrpath --delete "${ED}/usr/lib/${EPYTHON}/site-packages/opencc/clib"/*.so || die
+	fi
+}


             reply	other threads:[~2025-02-08  1:15 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-08  1:15 Yixun Lan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-12-27 18:39 [gentoo-commits] repo/gentoo:master commit in: app-i18n/opencc/files/, app-i18n/opencc/ Mike Gilbert
2017-11-01 20:54 Mike Gilbert
2017-08-23 14:25 Akinori Hattori
2017-02-12 18:03 Johannes Huber
2017-02-03 22:45 Lars Wendler
2016-05-27 10:22 Yixun Lan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1738977276.b134a6bbe4edef40bc580dbf66b9b8dcb1dcd333.dlan@gentoo \
    --to=dlan@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox