diff options
author | 2023-12-06 13:56:11 +0800 | |
---|---|---|
committer | 2023-12-25 11:50:33 +0000 | |
commit | 268bc98be767e357752bd3d76d54b47e310c05e9 (patch) | |
tree | 47a6fcd35a5e7944ad6b9c4b0e6ce8e5c235c427 /app-i18n | |
parent | profiles/features/wd40: mask USE=apprise on app-backup/borgmatic (diff) | |
download | gentoo-268bc98be767e357752bd3d76d54b47e310c05e9.tar.gz gentoo-268bc98be767e357752bd3d76d54b47e310c05e9.tar.bz2 gentoo-268bc98be767e357752bd3d76d54b47e310c05e9.zip |
app-i18n/libime: new package, add 1.1.3
libime is a library to support generic input method implementation.
It is a dependency of app-i18n/fcitx-chinese-addons
Signed-off-by: Yongxiang Liang <tanekliang@gmail.com>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
Diffstat (limited to 'app-i18n')
-rw-r--r-- | app-i18n/libime/Manifest | 1 | ||||
-rw-r--r-- | app-i18n/libime/files/libime-1.1.3-fix-the-nanf-value-issue-on-musl.patch | 79 | ||||
-rw-r--r-- | app-i18n/libime/files/libime-1.1.3-use-c++11-for-kenlm.patch | 17 | ||||
-rw-r--r-- | app-i18n/libime/libime-1.1.3.ebuild | 54 | ||||
-rw-r--r-- | app-i18n/libime/metadata.xml | 19 |
5 files changed, 170 insertions, 0 deletions
diff --git a/app-i18n/libime/Manifest b/app-i18n/libime/Manifest new file mode 100644 index 000000000000..fd73e8f22fd2 --- /dev/null +++ b/app-i18n/libime/Manifest @@ -0,0 +1 @@ +DIST libime-1.1.3_dict.tar.xz 36438528 BLAKE2B 2577362aeddf398b9ee7d29c71d157f7aef67b30d2463719ed020eaaa98e955c83b8a7df1e90e4519ae13d2146eff440dafdb93d723a2feaeb60f96e70633410 SHA512 5079721651df334292fbcc6275ded55d41c6380183ef5487be558e93b551a6a6d651fb0fa0456c1d40ffdae432bf51375058fdcf631ea8a93c8751530642fc92 diff --git a/app-i18n/libime/files/libime-1.1.3-fix-the-nanf-value-issue-on-musl.patch b/app-i18n/libime/files/libime-1.1.3-fix-the-nanf-value-issue-on-musl.patch new file mode 100644 index 000000000000..73b94a07cff5 --- /dev/null +++ b/app-i18n/libime/files/libime-1.1.3-fix-the-nanf-value-issue-on-musl.patch @@ -0,0 +1,79 @@ +Backport of https://github.com/fcitx/libime/commit/59ae4a3ab4becdab164f29af07c502096c745b94.diff + +Backport upstream commit 59ae4a3 to fix the nanf value issue on musl + +--- a/src/libime/core/datrie.cpp ++++ b/src/libime/core/datrie.cpp +@@ -47,12 +47,24 @@ struct NanValue { + static inline int32_t NO_PATH() { return -2; } + }; + ++// Musl doesn't have nanf implementation we need, just check if they are the ++// same value. If not, prefer old hardcoded value. ++bool isGoodNanf() { ++ int32_t noValue = decodeValue(std::nanf("1")); ++ int32_t noPath = decodeValue(std::nanf("2")); ++ return (noValue != noPath); ++} ++ + template <> + struct NanValue<float> { + static_assert(std::numeric_limits<float>::has_quiet_NaN, + "Require support for quiet NaN."); +- static inline int32_t NO_VALUE() { return decodeValue(std::nanf("1")); } +- static inline int32_t NO_PATH() { return decodeValue(std::nanf("2")); } ++ static inline int32_t NO_VALUE() { ++ return isGoodNanf() ? decodeValue(std::nanf("1")) : 0x7fc00001; ++ } ++ static inline int32_t NO_PATH() { ++ return isGoodNanf() ? decodeValue(std::nanf("2")) : 0x7fc00002; ++ } + }; + + } // namespace +@@ -1144,6 +1156,20 @@ bool DATrie<T>::isValid(value_type v) { + return !(isNoPath(v) || isNoValue(v)); + } + ++template <typename T> ++T DATrie<T>::noPath() { ++ typename DATriePrivate<T>::decorder_type d; ++ d.result = DATriePrivate<value_type>::CEDAR_NO_PATH; ++ return d.result_value; ++} ++ ++template <typename T> ++T DATrie<T>::noValue() { ++ typename DATriePrivate<T>::decorder_type d; ++ d.result = DATriePrivate<value_type>::CEDAR_NO_VALUE; ++ return d.result_value; ++} ++ + template <typename T> + size_t DATrie<T>::mem_size() const { + // std::cout << "tail" << d->m_tail.size() << std::endl +--- a/src/libime/core/datrie.h ++++ b/src/libime/core/datrie.h +@@ -136,6 +136,9 @@ class DATrie { + static bool isNoPath(value_type v); + static bool isNoValue(value_type v); + ++ static value_type noPath(); ++ static value_type noValue(); ++ + size_t mem_size() const; + + private: +--- a/test/testtrie.cpp ++++ b/test/testtrie.cpp +@@ -40,8 +40,8 @@ int main() { + FCITX_ASSERT(trie.size() == 4); + DATrie<float>::position_type pos = 0; + auto result = trie.traverse("aaa", pos); +- auto nan1 = std::nanf("1"); +- auto nan2 = std::nanf("2"); ++ auto nan1 = trie.noValue(); ++ auto nan2 = trie.noPath(); + // NaN != NaN, we must use memcmp to do this. + FCITX_ASSERT(memcmp(&nan1, &result, sizeof(float)) == 0); + FCITX_ASSERT(trie.isNoValue(result)); diff --git a/app-i18n/libime/files/libime-1.1.3-use-c++11-for-kenlm.patch b/app-i18n/libime/files/libime-1.1.3-use-c++11-for-kenlm.patch new file mode 100644 index 000000000000..15b0024c4668 --- /dev/null +++ b/app-i18n/libime/files/libime-1.1.3-use-c++11-for-kenlm.patch @@ -0,0 +1,17 @@ +Backport of https://github.com/fcitx/libime/commit/95c1433500b089b0c2edbdd17720f66e6eafd5e0 + +Backport upstream commit 95c1433 in order to fix building with libcxx + +--- a/src/libime/core/CMakeLists.txt ++++ b/src/libime/core/CMakeLists.txt +@@ -13,7 +13,9 @@ add_library(kenlm STATIC ${KENLM_SRCS}) + target_include_directories(kenlm PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/kenlm>) + target_compile_definitions(kenlm PUBLIC -DKENLM_MAX_ORDER=3 PRIVATE -DNDEBUG) + target_link_libraries(kenlm PUBLIC Boost::boost PkgConfig::ZSTD) +-set_target_properties(kenlm PROPERTIES POSITION_INDEPENDENT_CODE ON) ++set_target_properties(kenlm PROPERTIES ++ CXX_STANDARD 11 ++ POSITION_INDEPENDENT_CODE ON) + + if(UNIX) + check_library_exists(rt clock_gettime "clock_gettime from librt" HAVE_CLOCKGETTIME_RT) diff --git a/app-i18n/libime/libime-1.1.3.ebuild b/app-i18n/libime/libime-1.1.3.ebuild new file mode 100644 index 000000000000..3d962ae4153e --- /dev/null +++ b/app-i18n/libime/libime-1.1.3.ebuild @@ -0,0 +1,54 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Fcitx5 Next generation of fcitx " +HOMEPAGE="https://fcitx-im.org/" +SRC_URI="https://download.fcitx-im.org/fcitx5/libime/libime-${PV}_dict.tar.xz" + +LICENSE="LGPL-2+" +SLOT="5" +KEYWORDS="~amd64 ~x86" +IUSE="doc test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=app-i18n/fcitx-5.1.5:5 + app-arch/zstd:= + dev-libs/boost:= +" +DEPEND="${RDEPEND}" +BDEPEND=" + kde-frameworks/extra-cmake-modules:0 + virtual/pkgconfig + doc? ( + app-doc/doxygen + dev-texlive/texlive-fontutils + ) +" + +PATCHES=( + "${FILESDIR}/${P}-use-c++11-for-kenlm.patch" + "${FILESDIR}/${P}-fix-the-nanf-value-issue-on-musl.patch" +) + +src_configure() { + local mycmakeargs=( + -DENABLE_DOC=$(usex doc) + -DENABLE_TEST=$(usex test) + ) + cmake_src_configure +} + +src_compile() { + cmake_src_compile + use doc && cmake_src_compile doc +} + +src_install() { + cmake_src_install + use doc && dodoc -r "${BUILD_DIR}"/doc/* +} diff --git a/app-i18n/libime/metadata.xml b/app-i18n/libime/metadata.xml new file mode 100644 index 000000000000..63181ec1c708 --- /dev/null +++ b/app-i18n/libime/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>tanekliang@gmail.com</email> + <name>Yongxiang Liang</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <maintainer type="project"> + <email>cjk@gentoo.org</email> + <name>Cjk</name> + </maintainer> + <upstream> + <remote-id type="github">fcitx/libime</remote-id> + </upstream> +</pkgmetadata> |