From ef18f27c8a0f24c2c286894d8e02d58fc5ae0a2a Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Fri, 8 Dec 2023 14:00:56 +0800 Subject: [PATCH] Import SRPM --- .gitignore | 1 + opencc-check-bounds.patch | 35 +++++++ opencc-fixes-cmake.patch | 26 +++++ opencc.spec | 200 ++++++++++++++++++++++++++++++++++++++ sources | 1 + 5 files changed, 263 insertions(+) create mode 100644 opencc-check-bounds.patch create mode 100644 opencc-fixes-cmake.patch create mode 100644 opencc.spec diff --git a/.gitignore b/.gitignore index e69de29..d237f53 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/OpenCC-ver.1.0.5.tar.gz diff --git a/opencc-check-bounds.patch b/opencc-check-bounds.patch new file mode 100644 index 0000000..9ed7c20 --- /dev/null +++ b/opencc-check-bounds.patch @@ -0,0 +1,35 @@ +Index: OpenCC-ver.1.0.5/src/BinaryDict.cpp +=================================================================== +--- OpenCC-ver.1.0.5.orig/src/BinaryDict.cpp ++++ OpenCC-ver.1.0.5/src/BinaryDict.cpp +@@ -63,6 +63,12 @@ void BinaryDict::SerializeToFile(FILE* f + } + + BinaryDictPtr BinaryDict::NewFromFile(FILE* fp) { ++ size_t offsetBound, savedOffset; ++ savedOffset = ftell(fp); ++ fseek(fp, 0L, SEEK_END); ++ offsetBound = ftell(fp) - savedOffset; ++ fseek(fp, savedOffset, SEEK_SET); ++ + BinaryDictPtr dict(new BinaryDict(LexiconPtr(new Lexicon))); + + // Number of items +@@ -109,7 +115,7 @@ BinaryDictPtr BinaryDict::NewFromFile(FI + // Key offset + size_t keyOffset; + unitsRead = fread(&keyOffset, sizeof(size_t), 1, fp); +- if (unitsRead != 1) { ++ if (unitsRead != 1 || keyOffset >= offsetBound) { + throw InvalidFormat("Invalid OpenCC binary dictionary (keyOffset)"); + } + const char* key = dict->keyBuffer.c_str() + keyOffset; +@@ -118,7 +124,7 @@ BinaryDictPtr BinaryDict::NewFromFile(FI + for (size_t j = 0; j < numValues; j++) { + size_t valueOffset; + unitsRead = fread(&valueOffset, sizeof(size_t), 1, fp); +- if (unitsRead != 1) { ++ if (unitsRead != 1 || valueOffset >= offsetBound) { + throw InvalidFormat("Invalid OpenCC binary dictionary (valueOffset)"); + } + const char* value = dict->valueBuffer.c_str() + valueOffset; diff --git a/opencc-fixes-cmake.patch b/opencc-fixes-cmake.patch new file mode 100644 index 0000000..c70ce95 --- /dev/null +++ b/opencc-fixes-cmake.patch @@ -0,0 +1,26 @@ +Index: OpenCC-ver.1.0.5/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}) + diff --git a/opencc.spec b/opencc.spec new file mode 100644 index 0000000..921f9b4 --- /dev/null +++ b/opencc.spec @@ -0,0 +1,200 @@ +Name: opencc +Version: 1.0.5 +Release: 3%{?dist} +Summary: Libraries for Simplified-Traditional Chinese Conversion +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 +Patch1: opencc-fixes-cmake.patch +Patch2: opencc-check-bounds.patch + +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: cmake +BuildRequires: doxygen +BuildRequires: python3 + +%description +OpenCC is a library for converting characters and phrases between +Traditional Chinese and Simplified Chinese. + +%package doc +Summary: Documentation for OpenCC +Group: Applications/Text +Requires: %{name} = %{version}-%{release} + +%description doc +Doxygen generated documentation for OpenCC. + + +%package tools +Summary: Command line tools for OpenCC +Group: Applications/Text +Requires: %{name} = %{version}-%{release} + +%description tools +Command line tools for OpenCC, including tools for conversion via CLI and +for building dictionaries. + + +%package devel +Summary: Development files for OpenCC +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%prep +%setup -q -n OpenCC-ver.%{version} +%patch1 -p1 -b .cmake +%patch2 -p1 -b .bounds + +%build +%cmake . -DENABLE_GETTEXT:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=ON +make VERBOSE=1 %{?_smp_mflags} + +%install +make install DESTDIR=$RPM_BUILD_ROOT +rm -f $RPM_BUILD_ROOT%{_libdir}/*.a + +%check +ctest + +#%find_lang %{name} + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%files +%doc AUTHORS LICENSE README.md +%{_libdir}/lib*.so.* +%{_datadir}/opencc/ +%exclude %{_datadir}/opencc/doc + +%files doc +%{_datadir}/opencc/doc + +%files tools +%{_bindir}/* + +%files devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc + +%changelog +* Wed Oct 17 2018 Peng Wu - 1.0.5-3 +- Security fix for CVE-2018-16982 + +* Fri Jul 13 2018 Fedora Release Engineering - 1.0.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jun 28 2018 Peng Wu - 1.0.5-1 +- Update to 1.0.5 + +* Mon Mar 19 2018 Iryna Shcherbina - 1.0.3-7 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Thu Feb 08 2018 Fedora Release Engineering - 1.0.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.0.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.0.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 15 2017 Fedora Release Engineering - 1.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 1.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Feb 16 2016 Peng Wu - 1.0.3-1 +- Update to 1.0.3 + +* Thu Feb 04 2016 Fedora Release Engineering - 1.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 1.0.2-3 +- Rebuilt for GCC 5 C++11 ABI change + +* Mon Jan 19 2015 Peng Wu - 1.0.2-2 +- Fixes postun script + +* Tue Jan 6 2015 Peng Wu - 1.0.2-1 +- Update to 1.0.2 + +* Sun Aug 17 2014 Fedora Release Engineering - 0.4.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 0.4.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue May 28 2013 Peng Wu - 0.4.3-1 +- Update to 0.4.3 + +* Mon Mar 4 2013 Peng Wu - 0.4.0-1 +- Update to 0.4.0 + +* Thu Feb 14 2013 Fedora Release Engineering - 0.3.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Aug 22 2012 Peng Wu - 0.3.0-4 +- Fixes Download URL + +* Mon Jul 23 2012 Peng Wu - 0.3.0-3 +- Fixes cmake + +* Fri Jul 20 2012 Fedora Release Engineering - 0.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Feb 02 2012 Peng Wu - 0.3.0-1 +- Update to 0.3.0, and fixes ctest + +* Wed Feb 1 2012 Peter Robinson - 0.2.0-6 +- Drop unnessary ExclusiveArch directive + +* Fri Jan 13 2012 Fedora Release Engineering - 0.2.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Nov 30 2011 Peng Wu - 0.2.0-4 +- Change i386 to i686 + +* Wed Nov 30 2011 Peng Wu - 0.2.0-3 +- Only build for i386 and x86_64 + +* Tue Feb 08 2011 Fedora Release Engineering - 0.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sat Dec 25 2010 BYVoid - 0.2.0-1 +- Upstream release. +- Use CMake instead of autotools. + +* Wed Sep 29 2010 jkeating - 0.1.2-2 +- Rebuilt for gcc bug 634757 + +* Fri Sep 17 2010 BYVoid - 0.1.2-1 +- Upstream release. + +* Thu Aug 12 2010 BYVoid - 0.1.1-1 +- Upstream release. + +* Thu Jul 29 2010 BYVoid - 0.1.0-1 +- Upstream release. + +* Fri Jul 16 2010 BYVoid - 0.0.4-1 +- Initial release of RPM. + diff --git a/sources b/sources index e69de29..fd805e1 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (OpenCC-ver.1.0.5.tar.gz) = 3fbefbafe5c3c2491032158577ab97b5a3edf6ea98a03a7250deba082b72c3112ad4a3396d1a469936ec32e1d141f0a2236001c2891ac9c793add2b082596cc1