Compare commits
16 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2589d4ca3 | ||
|
|
ef6d2d6f3b | ||
|
|
5199323820 | ||
|
|
098d75577f | ||
|
|
de188a5217 | ||
|
|
4493c3a916 | ||
|
|
7bec307ba9 | ||
|
|
54c3deae34 | ||
|
|
094ceb167f | ||
|
|
da061792f7 | ||
|
|
9b28485afb | ||
|
|
48e1790736 | ||
|
|
193303670d | ||
|
|
6b79b75652 | ||
|
|
2026c59a47 | ||
|
|
b088feca44 |
15 changed files with 211 additions and 95 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
1
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -8,3 +8,6 @@
|
||||||
/OpenCC-ver.1.0.5.tar.gz
|
/OpenCC-ver.1.0.5.tar.gz
|
||||||
/OpenCC-ver.1.1.1.tar.gz
|
/OpenCC-ver.1.1.1.tar.gz
|
||||||
/OpenCC-ver.1.1.2.tar.gz
|
/OpenCC-ver.1.1.2.tar.gz
|
||||||
|
/OpenCC-ver.1.1.4.tar.gz
|
||||||
|
/OpenCC-ver.1.1.7.tar.gz
|
||||||
|
/OpenCC-ver.1.1.9.tar.gz
|
||||||
|
|
|
||||||
30
opencc-fixes-cmake-vars.patch
Normal file
30
opencc-fixes-cmake-vars.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
commit 01d0b4c88711daf697223be1aee78940f82b983e
|
||||||
|
Author: Peng Wu <pwu@redhat.com>
|
||||||
|
Date: Mon Aug 11 16:22:12 2025 +0800
|
||||||
|
|
||||||
|
Update for https://fedoraproject.org/wiki/Changes/CMake_drop_install_vars
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index b79e5b5..d5974f1 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -21,6 +21,7 @@ cmake_minimum_required(VERSION 3.5)
|
||||||
|
set (PACKAGE_NAME opencc)
|
||||||
|
project (${PACKAGE_NAME} CXX)
|
||||||
|
include (CTest)
|
||||||
|
+include(GNUInstallDirs)
|
||||||
|
|
||||||
|
######## Options
|
||||||
|
option(BUILD_DOCUMENTATION "Use Doxygen to create the HTML based API documentation" OFF)
|
||||||
|
@@ -78,6 +79,11 @@ endif()
|
||||||
|
|
||||||
|
######## Directory
|
||||||
|
|
||||||
|
+set(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}" CACHE PATH "")
|
||||||
|
+if(CMAKE_INSTALL_LIBDIR MATCHES "lib64$")
|
||||||
|
+ set(LIB_SUFFIX 64)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
set (DIR_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set (DIR_INCLUDE ${DIR_PREFIX}/include)
|
||||||
|
set (DIR_SHARE ${DIR_PREFIX}/share)
|
||||||
|
|
@ -1,26 +1,22 @@
|
||||||
Index: OpenCC-ver.1.0.5/CMakeLists.txt
|
Index: OpenCC-ver.1.1.9/CMakeLists.txt
|
||||||
===================================================================
|
===================================================================
|
||||||
--- OpenCC-ver.1.0.5.orig/CMakeLists.txt
|
--- OpenCC-ver.1.1.9.orig/CMakeLists.txt
|
||||||
+++ OpenCC-ver.1.0.5/CMakeLists.txt
|
+++ OpenCC-ver.1.1.9/CMakeLists.txt
|
||||||
@@ -68,7 +68,7 @@ set (DIR_PREFIX ${CMAKE_INSTALL_PREFIX})
|
@@ -154,7 +154,7 @@ add_definitions(
|
||||||
set (DIR_INCLUDE ${DIR_PREFIX}/include/)
|
|
||||||
set (DIR_SHARE ${DIR_PREFIX}/share/)
|
|
||||||
set (DIR_ETC ${DIR_PREFIX}/etc/)
|
|
||||||
-set (DIR_LIBRARY ${DIR_PREFIX}/lib${LIB_SUFFIX}/)
|
|
||||||
+set (DIR_LIBRARY ${LIB_INSTALL_DIR})
|
|
||||||
|
|
||||||
if (DEFINED SHARE_INSTALL_PREFIX)
|
|
||||||
set (DIR_SHARE ${SHARE_INSTALL_PREFIX})
|
|
||||||
Index: OpenCC-ver.1.0.5/data/CMakeLists.txt
|
|
||||||
===================================================================
|
|
||||||
--- OpenCC-ver.1.0.5.orig/data/CMakeLists.txt
|
|
||||||
+++ OpenCC-ver.1.0.5/data/CMakeLists.txt
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
set(OPENCC_DICT_BIN opencc_dict)
|
|
||||||
-set(DICT_MERGE_BIN python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/merge.py)
|
|
||||||
-set(DICT_REVERSE_BIN python ${CMAKE_CURRENT_SOURCE_DIR}/scripts/reverse.py)
|
|
||||||
+set(DICT_MERGE_BIN python3 ${CMAKE_CURRENT_SOURCE_DIR}/scripts/merge.py)
|
|
||||||
+set(DICT_REVERSE_BIN python3 ${CMAKE_CURRENT_SOURCE_DIR}/scripts/reverse.py)
|
|
||||||
set(DICT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dictionary)
|
|
||||||
set(DICT_GENERATED_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
|
||||||
|
|
||||||
|
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
|
add_definitions(
|
||||||
|
- -std=c++14
|
||||||
|
+ -std=c++17
|
||||||
|
-Wall
|
||||||
|
)
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||||
|
@@ -163,7 +163,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "
|
||||||
|
endif ()
|
||||||
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
|
add_definitions(
|
||||||
|
- -std=c++14
|
||||||
|
+ -std=c++17
|
||||||
|
-Wall
|
||||||
|
)
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
|
||||||
|
|
|
||||||
13
opencc-fixes-compile.patch
Normal file
13
opencc-fixes-compile.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
Index: OpenCC-ver.1.1.9/src/SerializedValues.hpp
|
||||||
|
===================================================================
|
||||||
|
--- OpenCC-ver.1.1.9.orig/src/SerializedValues.hpp
|
||||||
|
+++ OpenCC-ver.1.1.9/src/SerializedValues.hpp
|
||||||
|
@@ -18,6 +18,8 @@
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
+#include <cstdint>
|
||||||
|
+
|
||||||
|
#include "Common.hpp"
|
||||||
|
#include "SerializableDict.hpp"
|
||||||
|
|
||||||
44
opencc-fixes-crash.patch
Normal file
44
opencc-fixes-crash.patch
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
commit cfe3ced00bbf764f68f10222b9d2a6367c2c3f82
|
||||||
|
Author: Peng Wu <pwu@redhat.com>
|
||||||
|
Date: Tue Mar 25 13:43:05 2025 +0800
|
||||||
|
|
||||||
|
Fix crash when read the config file
|
||||||
|
|
||||||
|
diff --git a/src/Config.cpp b/src/Config.cpp
|
||||||
|
index a8392b1..5c768c0 100644
|
||||||
|
--- a/src/Config.cpp
|
||||||
|
+++ b/src/Config.cpp
|
||||||
|
@@ -16,6 +16,7 @@
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#include <sys/stat.h>
|
||||||
|
#include <fstream>
|
||||||
|
#include <list>
|
||||||
|
#include <unordered_map>
|
||||||
|
@@ -216,6 +217,16 @@ std::string GetParentDirectory(const std::string& path) {
|
||||||
|
return path.substr(0, pos + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool isRegularFile(const std::string& path) {
|
||||||
|
+ struct stat info;
|
||||||
|
+
|
||||||
|
+ if (stat(path.c_str(), &info) != 0)
|
||||||
|
+ return false;
|
||||||
|
+
|
||||||
|
+ // Check if it's a regular file
|
||||||
|
+ return (info.st_mode & S_IFMT) == S_IFREG;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
Config::Config() : internal(new ConfigInternal()) {}
|
||||||
|
@@ -241,6 +252,8 @@ ConverterPtr Config::NewFromFile(const std::string& fileName,
|
||||||
|
impl->paths.push_back(PACKAGE_DATA_DIRECTORY);
|
||||||
|
}
|
||||||
|
std::string prefixedFileName = impl->FindConfigFile(fileName);
|
||||||
|
+ if (!isRegularFile(prefixedFileName))
|
||||||
|
+ throw FileNotFound(prefixedFileName);
|
||||||
|
std::ifstream ifs(UTF8Util::GetPlatformString(prefixedFileName));
|
||||||
|
std::string content(std::istreambuf_iterator<char>(ifs),
|
||||||
|
(std::istreambuf_iterator<char>()));
|
||||||
71
opencc.spec
71
opencc.spec
|
|
@ -1,16 +1,22 @@
|
||||||
Name: opencc
|
Name: opencc
|
||||||
Version: 1.1.2
|
Version: 1.1.9
|
||||||
Release: 1%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: Libraries for Simplified-Traditional Chinese Conversion
|
Summary: Libraries for Simplified-Traditional Chinese Conversion
|
||||||
License: ASL 2.0
|
License: Apache-2.0
|
||||||
URL: https://github.com/BYVoid/OpenCC
|
URL: https://github.com/BYVoid/OpenCC
|
||||||
Source0: https://github.com/BYVoid/OpenCC/archive/ver.%{version}.tar.gz#/OpenCC-ver.%{version}.tar.gz
|
Source0: https://github.com/BYVoid/OpenCC/archive/ver.%{version}.tar.gz#/OpenCC-ver.%{version}.tar.gz
|
||||||
|
Patch0: opencc-fixes-compile.patch
|
||||||
|
Patch1: opencc-fixes-crash.patch
|
||||||
|
Patch2: opencc-fixes-cmake.patch
|
||||||
|
Patch3: opencc-fixes-cmake-vars.patch
|
||||||
|
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: doxygen
|
BuildRequires: doxygen
|
||||||
BuildRequires: python3
|
BuildRequires: python3
|
||||||
|
BuildRequires: marisa-devel
|
||||||
|
BuildRequires: rapidjson-devel
|
||||||
|
|
||||||
%description
|
%description
|
||||||
OpenCC is a library for converting characters and phrases between
|
OpenCC is a library for converting characters and phrases between
|
||||||
|
|
@ -43,10 +49,10 @@ developing applications that use %{name}.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n OpenCC-ver.%{version}
|
%autosetup -n OpenCC-ver.%{version} -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake -DENABLE_GETTEXT:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON
|
%cmake -DENABLE_GETTEXT:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DUSE_SYSTEM_MARISA:BOOL=ON -DUSE_SYSTEM_RAPIDJSON:BOOL=ON
|
||||||
%cmake_build
|
%cmake_build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
|
@ -57,8 +63,6 @@ developing applications that use %{name}.
|
||||||
|
|
||||||
#%find_lang %{name}
|
#%find_lang %{name}
|
||||||
|
|
||||||
%ldconfig_scriptlets
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc AUTHORS LICENSE README.md
|
%doc AUTHORS LICENSE README.md
|
||||||
%{_libdir}/lib*.so.*
|
%{_libdir}/lib*.so.*
|
||||||
|
|
@ -75,8 +79,61 @@ developing applications that use %{name}.
|
||||||
%{_includedir}/*
|
%{_includedir}/*
|
||||||
%{_libdir}/*.so
|
%{_libdir}/*.so
|
||||||
%{_libdir}/pkgconfig/*.pc
|
%{_libdir}/pkgconfig/*.pc
|
||||||
|
%{_libdir}/cmake/opencc/OpenCC*.cmake
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Aug 21 2025 Peng Wu <pwu@redhat.com> - 1.1.9-5
|
||||||
|
- Update CI tests
|
||||||
|
- Resolves: RHBZ#2382996
|
||||||
|
|
||||||
|
* Tue Aug 12 2025 Peng Wu <pwu@redhat.com> - 1.1.9-4
|
||||||
|
- Update for https://fedoraproject.org/wiki/Changes/CMake_drop_install_vars
|
||||||
|
- Resolves: RHBZ#2381327
|
||||||
|
|
||||||
|
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.9-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 17 2025 Peng Wu <pwu@redhat.com> - 1.1.9-2
|
||||||
|
- Update for marisa 0.3.0
|
||||||
|
|
||||||
|
* Thu Feb 6 2025 Peng Wu <pwu@redhat.com> - 1.1.9-1
|
||||||
|
- Update to 1.1.9
|
||||||
|
- Resolves: RHBZ#2340967
|
||||||
|
|
||||||
|
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.7-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.7-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 2 2024 Peng Wu <pwu@redhat.com> - 1.1.7-1
|
||||||
|
- Update to 1.1.7
|
||||||
|
- Resolves: RHBZ#2261417
|
||||||
|
|
||||||
|
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.4-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.4-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.4-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu May 18 2023 Peng Wu <pwu@redhat.com> - 1.1.4-3
|
||||||
|
- Migrate to SPDX license
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.4-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Oct 21 2022 Peng Wu <pwu@redhat.com> - 1.1.4-1
|
||||||
|
- Update to 1.1.4
|
||||||
|
|
||||||
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
* Mon Aug 2 2021 Peng Wu <pwu@redhat.com> - 1.1.2-1
|
* Mon Aug 2 2021 Peng Wu <pwu@redhat.com> - 1.1.2-1
|
||||||
- Update to 1.1.2
|
- Update to 1.1.2
|
||||||
|
|
||||||
|
|
|
||||||
5
plans/basic.fmf
Normal file
5
plans/basic.fmf
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
summary: Basic smoke test
|
||||||
|
discover:
|
||||||
|
how: fmf
|
||||||
|
execute:
|
||||||
|
how: tmt
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
SHA512 (OpenCC-ver.1.1.2.tar.gz) = 56c84bc472b39eb0b23bac6df5aada2c2ed5fd2fbe653c1ae89d392ec0b74741a15de93c748883ec3c0779396e790a1197f6e3b267b524f111459d45daeb5d4b
|
SHA512 (OpenCC-ver.1.1.9.tar.gz) = 713cf00931d7616994eb455eef3bc893096b5cd6d42b346aa1130591752d9612891ea3ed035bd7bd4ec7df1c90425e86375f5b3337fac11663c656c79a8f33e9
|
||||||
|
|
|
||||||
5
tests/main.fmf
Normal file
5
tests/main.fmf
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
test: ./runtest.sh
|
||||||
|
duration: 50m
|
||||||
|
framework: beakerlib
|
||||||
|
require:
|
||||||
|
- opencc-tools
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
role_pkgs_req:
|
|
||||||
- rsync
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
- role: str-common-init
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
---
|
|
||||||
- name: Check if opencc is installed
|
|
||||||
register: opencc_testing_runner
|
|
||||||
find:
|
|
||||||
paths: "{{ ansible_env.PATH.split(':') }}"
|
|
||||||
pattern: opencc
|
|
||||||
|
|
||||||
- name: Install opencc-tools
|
|
||||||
when: opencc_testing_runner.matched == 0
|
|
||||||
block:
|
|
||||||
- name: Installing opencc-tools
|
|
||||||
package:
|
|
||||||
name:
|
|
||||||
- opencc-tools
|
|
||||||
|
|
||||||
- name: Start opencc tests
|
|
||||||
block:
|
|
||||||
- name: Execute tests
|
|
||||||
shell: |
|
|
||||||
set -e
|
|
||||||
log_file="{{ remote_artifacts }}/{{ installed_test_name }}.log"
|
|
||||||
exec 2>>$log_file 1>>$log_file
|
|
||||||
echo "Starting opencc tests"
|
|
||||||
TEST=opencc
|
|
||||||
status="FAIL"
|
|
||||||
opencc >> "{{ remote_artifacts }}/test.log" <<EOF
|
|
||||||
测试
|
|
||||||
EOF
|
|
||||||
grep "測試" "{{ remote_artifacts }}/test.log"
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
status="PASS"
|
|
||||||
fi
|
|
||||||
echo "${status} $TEST" >> {{ remote_artifacts }}/test.log
|
|
||||||
|
|
||||||
- name: Check the results
|
|
||||||
shell: grep "^FAIL" {{ remote_artifacts }}/test.log
|
|
||||||
register: test_fails
|
|
||||||
failed_when: False
|
|
||||||
|
|
||||||
- name: Set role result
|
|
||||||
set_fact:
|
|
||||||
role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}"
|
|
||||||
role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}"
|
|
||||||
|
|
||||||
- include_role:
|
|
||||||
name: str-common-final
|
|
||||||
|
|
||||||
25
tests/runtest.sh
Executable file
25
tests/runtest.sh
Executable file
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
rlShowPackageVersion opencc
|
||||||
|
rlRun -t -l "VERSION=$(rpm -q opencc --queryformat='%{version}')" 0 "Get VERSION"
|
||||||
|
FEDORA_VERSION=$(rlGetDistroRelease)
|
||||||
|
rlLog "FEDORA_VERSION=${DISTRO_RELEASE}"
|
||||||
|
rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory"
|
||||||
|
rlRun "pushd $tmp"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest
|
||||||
|
rlRun "set -o pipefail"
|
||||||
|
rlRun "echo '测试'>input.txt" 0 "Generate input.txt"
|
||||||
|
rlRun "opencc -i input.txt -o output.txt" 0 "Run opencc tool"
|
||||||
|
rlRun "grep '測試' output.txt" 0 "Check output.txt"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun "popd"
|
||||||
|
rlRun "rm -r $tmp" 0 "Remove tmp directory"
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalEnd
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- role: opencc-testing-role
|
|
||||||
installed_test_name: opencc
|
|
||||||
tags:
|
|
||||||
- classic
|
|
||||||
- gating
|
|
||||||
required_packages:
|
|
||||||
- opencc-tools
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue