Compare commits

..

28 commits

Author SHA1 Message Date
Peng Wu
d2589d4ca3 Update CI tests 2025-08-22 11:42:08 +08:00
Peng Wu
ef6d2d6f3b Update for https://fedoraproject.org/wiki/Changes/CMake_drop_install_vars 2025-08-12 14:50:07 +08:00
Fedora Release Engineering
5199323820 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 23:33:34 +00:00
Peng Wu
098d75577f Update for marisa 2025-07-17 14:09:39 +08:00
Peng Wu
de188a5217 Update to 1.1.9 2025-02-06 16:55:05 +08:00
Fedora Release Engineering
4493c3a916 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 21:36:23 +00:00
Fedora Release Engineering
7bec307ba9 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 20:47:52 +00:00
Peng Wu
54c3deae34 Update to 1.1.7 2024-02-02 16:19:02 +08:00
Fedora Release Engineering
094ceb167f Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 11:09:32 +00:00
Fedora Release Engineering
da061792f7 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 11:07:02 +00:00
Fedora Release Engineering
9b28485afb Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 17:59:16 +00:00
Peng Wu
48e1790736 Migrate to SPDX license 2023-05-18 14:43:25 +08:00
Fedora Release Engineering
193303670d Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 22:45:35 +00:00
Peng Wu
6b79b75652 Update to 1.1.4 2022-10-21 11:54:48 +08:00
Fedora Release Engineering
2026c59a47 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 02:00:53 +00:00
Fedora Release Engineering
b088feca44 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 22:18:42 +00:00
Peng Wu
2a67bc2983 Update to 1.1.2 2021-08-02 11:29:41 +08:00
Fedora Release Engineering
708d2c5339 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 17:10:43 +00:00
Fedora Release Engineering
6ba91435b6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 22:27:30 +00:00
Peng Wu
cc4ecab6d9 Update to 1.1.1 2020-08-04 14:20:23 +08:00
Fedora Release Engineering
00b8d51142 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-08-01 06:49:46 +00:00
Fedora Release Engineering
612b9513f7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 12:39:47 +00:00
Fedora Release Engineering
6daf395fdf - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-29 20:13:23 +00:00
Fedora Release Engineering
85a89da9e5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 23:23:08 +00:00
Peng Wu
ba684ca92b import tests 2019-04-22 14:32:17 +08:00
Fedora Release Engineering
32169e5a09 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 17:19:55 +00:00
Igor Gnatenko
ce2e9874cf Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:23 +01:00
Igor Gnatenko
f98c2dc51e
Remove obsolete ldconfig scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-22 18:40:34 +01:00
11 changed files with 244 additions and 46 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

5
.gitignore vendored
View file

@ -6,3 +6,8 @@
/OpenCC-ver.1.0.2.tar.gz
/OpenCC-ver.1.0.3.tar.gz
/OpenCC-ver.1.0.5.tar.gz
/OpenCC-ver.1.1.1.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

View 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)

View file

@ -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.0.5/CMakeLists.txt
@@ -68,7 +68,7 @@ set (DIR_PREFIX ${CMAKE_INSTALL_PREFIX})
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})
--- OpenCC-ver.1.1.9.orig/CMakeLists.txt
+++ OpenCC-ver.1.1.9/CMakeLists.txt
@@ -154,7 +154,7 @@ add_definitions(
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")

View 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
View 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>()));

View file

@ -1,19 +1,22 @@
Name: opencc
Version: 1.0.5
Release: 3%{?dist}
Version: 1.1.9
Release: 5%{?dist}
Summary: Libraries for Simplified-Traditional Chinese Conversion
License: ASL 2.0
Group: System Environment/Libraries
License: Apache-2.0
URL: https://github.com/BYVoid/OpenCC
Source0: https://github.com/BYVoid/OpenCC/archive/ver.%{version}.tar.gz#/OpenCC-ver.%{version}.tar.gz
Patch1: opencc-fixes-cmake.patch
Patch2: opencc-check-bounds.patch
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: gettext
BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: python3
BuildRequires: marisa-devel
BuildRequires: rapidjson-devel
%description
OpenCC is a library for converting characters and phrases between
@ -21,7 +24,6 @@ Traditional Chinese and Simplified Chinese.
%package doc
Summary: Documentation for OpenCC
Group: Applications/Text
Requires: %{name} = %{version}-%{release}
%description doc
@ -30,7 +32,6 @@ Doxygen generated documentation for OpenCC.
%package tools
Summary: Command line tools for OpenCC
Group: Applications/Text
Requires: %{name} = %{version}-%{release}
%description tools
@ -40,7 +41,6 @@ for building dictionaries.
%package devel
Summary: Development files for OpenCC
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
@ -49,27 +49,20 @@ developing applications that use %{name}.
%prep
%setup -q -n OpenCC-ver.%{version}
%patch1 -p1 -b .cmake
%patch2 -p1 -b .bounds
%autosetup -n OpenCC-ver.%{version} -p1
%build
%cmake . -DENABLE_GETTEXT:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON
make VERBOSE=1 %{?_smp_mflags}
%cmake -DENABLE_GETTEXT:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DUSE_SYSTEM_MARISA:BOOL=ON -DUSE_SYSTEM_RAPIDJSON:BOOL=ON
%cmake_build
%install
make install DESTDIR=$RPM_BUILD_ROOT
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
%cmake_install
%check
ctest
%ctest
#%find_lang %{name}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%doc AUTHORS LICENSE README.md
%{_libdir}/lib*.so.*
@ -86,8 +79,89 @@ ctest
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%{_libdir}/cmake/opencc/OpenCC*.cmake
%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
- Update to 1.1.2
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Aug 4 2020 Peng Wu <pwu@redhat.com> - 1.1.1-1
- Update to 1.1.1
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.5-8
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.5-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Oct 17 2018 Peng Wu <pwu@redhat.com> - 1.0.5-3
- Security fix for CVE-2018-16982

5
plans/basic.fmf Normal file
View file

@ -0,0 +1,5 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (OpenCC-ver.1.0.5.tar.gz) = 3fbefbafe5c3c2491032158577ab97b5a3edf6ea98a03a7250deba082b72c3112ad4a3396d1a469936ec32e1d141f0a2236001c2891ac9c793add2b082596cc1
SHA512 (OpenCC-ver.1.1.9.tar.gz) = 713cf00931d7616994eb455eef3bc893096b5cd6d42b346aa1130591752d9612891ea3ed035bd7bd4ec7df1c90425e86375f5b3337fac11663c656c79a8f33e9

5
tests/main.fmf Normal file
View file

@ -0,0 +1,5 @@
test: ./runtest.sh
duration: 50m
framework: beakerlib
require:
- opencc-tools

25
tests/runtest.sh Executable file
View 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