diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore index 692b3d2..216c73f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,8 +6,3 @@ /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 diff --git a/opencc-fixes-cmake-vars.patch b/opencc-fixes-cmake-vars.patch deleted file mode 100644 index 296a784..0000000 --- a/opencc-fixes-cmake-vars.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 01d0b4c88711daf697223be1aee78940f82b983e -Author: Peng Wu -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) diff --git a/opencc-fixes-cmake.patch b/opencc-fixes-cmake.patch index 237ac13..c70ce95 100644 --- a/opencc-fixes-cmake.patch +++ b/opencc-fixes-cmake.patch @@ -1,22 +1,26 @@ -Index: OpenCC-ver.1.1.9/CMakeLists.txt +Index: OpenCC-ver.1.0.5/CMakeLists.txt =================================================================== ---- OpenCC-ver.1.1.9.orig/CMakeLists.txt -+++ OpenCC-ver.1.1.9/CMakeLists.txt -@@ -154,7 +154,7 @@ add_definitions( +--- 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}) - 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") diff --git a/opencc-fixes-compile.patch b/opencc-fixes-compile.patch deleted file mode 100644 index fe7e4a8..0000000 --- a/opencc-fixes-compile.patch +++ /dev/null @@ -1,13 +0,0 @@ -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 -+ - #include "Common.hpp" - #include "SerializableDict.hpp" - diff --git a/opencc-fixes-crash.patch b/opencc-fixes-crash.patch deleted file mode 100644 index ab0cd9f..0000000 --- a/opencc-fixes-crash.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit cfe3ced00bbf764f68f10222b9d2a6367c2c3f82 -Author: Peng Wu -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 - #include - #include - #include -@@ -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(ifs), - (std::istreambuf_iterator())); diff --git a/opencc.spec b/opencc.spec index 5b031c6..921f9b4 100644 --- a/opencc.spec +++ b/opencc.spec @@ -1,22 +1,19 @@ Name: opencc -Version: 1.1.9 -Release: 5%{?dist} +Version: 1.0.5 +Release: 3%{?dist} Summary: Libraries for Simplified-Traditional Chinese Conversion -License: Apache-2.0 +License: ASL 2.0 +Group: System Environment/Libraries URL: https://github.com/BYVoid/OpenCC 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 +Patch1: opencc-fixes-cmake.patch +Patch2: opencc-check-bounds.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 @@ -24,6 +21,7 @@ Traditional Chinese and Simplified Chinese. %package doc Summary: Documentation for OpenCC +Group: Applications/Text Requires: %{name} = %{version}-%{release} %description doc @@ -32,6 +30,7 @@ Doxygen generated documentation for OpenCC. %package tools Summary: Command line tools for OpenCC +Group: Applications/Text Requires: %{name} = %{version}-%{release} %description tools @@ -41,6 +40,7 @@ for building dictionaries. %package devel Summary: Development files for OpenCC +Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel @@ -49,20 +49,27 @@ developing applications that use %{name}. %prep -%autosetup -n OpenCC-ver.%{version} -p1 +%setup -q -n OpenCC-ver.%{version} +%patch1 -p1 -b .cmake +%patch2 -p1 -b .bounds %build -%cmake -DENABLE_GETTEXT:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON -DUSE_SYSTEM_MARISA:BOOL=ON -DUSE_SYSTEM_RAPIDJSON:BOOL=ON -%cmake_build +%cmake . -DENABLE_GETTEXT:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON +make VERBOSE=1 %{?_smp_mflags} %install -%cmake_install +make install DESTDIR=$RPM_BUILD_ROOT +rm -f $RPM_BUILD_ROOT%{_libdir}/*.a %check -%ctest +ctest #%find_lang %{name} +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + %files %doc AUTHORS LICENSE README.md %{_libdir}/lib*.so.* @@ -79,89 +86,8 @@ developing applications that use %{name}. %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc -%{_libdir}/cmake/opencc/OpenCC*.cmake %changelog -* Thu Aug 21 2025 Peng Wu - 1.1.9-5 -- Update CI tests -- Resolves: RHBZ#2382996 - -* Tue Aug 12 2025 Peng Wu - 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 - 1.1.9-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jul 17 2025 Peng Wu - 1.1.9-2 -- Update for marisa 0.3.0 - -* Thu Feb 6 2025 Peng Wu - 1.1.9-1 -- Update to 1.1.9 -- Resolves: RHBZ#2340967 - -* Fri Jan 17 2025 Fedora Release Engineering - 1.1.7-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Jul 18 2024 Fedora Release Engineering - 1.1.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Feb 2 2024 Peng Wu - 1.1.7-1 -- Update to 1.1.7 -- Resolves: RHBZ#2261417 - -* Thu Jan 25 2024 Fedora Release Engineering - 1.1.4-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 1.1.4-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Jul 20 2023 Fedora Release Engineering - 1.1.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu May 18 2023 Peng Wu - 1.1.4-3 -- Migrate to SPDX license - -* Thu Jan 19 2023 Fedora Release Engineering - 1.1.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Oct 21 2022 Peng Wu - 1.1.4-1 -- Update to 1.1.4 - -* Fri Jul 22 2022 Fedora Release Engineering - 1.1.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Jan 20 2022 Fedora Release Engineering - 1.1.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Aug 2 2021 Peng Wu - 1.1.2-1 -- Update to 1.1.2 - -* Thu Jul 22 2021 Fedora Release Engineering - 1.1.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jan 26 2021 Fedora Release Engineering - 1.1.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Aug 4 2020 Peng Wu - 1.1.1-1 -- Update to 1.1.1 - -* Sat Aug 01 2020 Fedora Release Engineering - 1.0.5-8 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jul 28 2020 Fedora Release Engineering - 1.0.5-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jan 29 2020 Fedora Release Engineering - 1.0.5-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Jul 25 2019 Fedora Release Engineering - 1.0.5-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Feb 01 2019 Fedora Release Engineering - 1.0.5-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - * Wed Oct 17 2018 Peng Wu - 1.0.5-3 - Security fix for CVE-2018-16982 diff --git a/plans/basic.fmf b/plans/basic.fmf deleted file mode 100644 index c1627f9..0000000 --- a/plans/basic.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic smoke test -discover: - how: fmf -execute: - how: tmt diff --git a/sources b/sources index cf36ac9..fd805e1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenCC-ver.1.1.9.tar.gz) = 713cf00931d7616994eb455eef3bc893096b5cd6d42b346aa1130591752d9612891ea3ed035bd7bd4ec7df1c90425e86375f5b3337fac11663c656c79a8f33e9 +SHA512 (OpenCC-ver.1.0.5.tar.gz) = 3fbefbafe5c3c2491032158577ab97b5a3edf6ea98a03a7250deba082b72c3112ad4a3396d1a469936ec32e1d141f0a2236001c2891ac9c793add2b082596cc1 diff --git a/tests/main.fmf b/tests/main.fmf deleted file mode 100644 index e1bf8b4..0000000 --- a/tests/main.fmf +++ /dev/null @@ -1,5 +0,0 @@ -test: ./runtest.sh -duration: 50m -framework: beakerlib -require: - - opencc-tools diff --git a/tests/runtest.sh b/tests/runtest.sh deleted file mode 100755 index 87b6793..0000000 --- a/tests/runtest.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/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