diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..732f5f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +zinnia-0.06.tar.gz +/zinnia-0.07.tar.gz diff --git a/Makefile.tomoe b/Makefile.tomoe new file mode 100644 index 0000000..b5a9728 --- /dev/null +++ b/Makefile.tomoe @@ -0,0 +1,20 @@ +TOMOE_MODEL_PATH = /usr/share/tomoe/recognizer/ + +build: handwriting-ja.model handwriting-zh_CN.model tomoe2s.pl + +handwriting-ja.model: $(TOMOE_MODEL_PATH)/handwriting-ja.xml + perl tomoe2s.pl $(TOMOE_MODEL_PATH)/handwriting-ja.xml > handwriting-ja.s + LD_LIBRARY_PATH=.libs/ ./zinnia_learn handwriting-ja.s handwriting-ja.model + LD_LIBRARY_PATH=.libs/ ./zinnia_convert handwriting-ja.model.txt handwriting-ja.model + +handwriting-zh_CN.model: $(TOMOE_MODEL_PATH)/handwriting-zh_CN.xml + perl tomoe2s.pl $(TOMOE_MODEL_PATH)/handwriting-zh_CN.xml > handwriting-zh_CN.s + LD_LIBRARY_PATH=.libs/ ./zinnia_learn handwriting-zh_CN.s handwriting-zh_CN.model + LD_LIBRARY_PATH=.libs/ ./zinnia_convert handwriting-zh_CN.model.txt handwriting-zh_CN.model + + +install: build + install -d $(DESTDIR)/usr/share/zinnia//model/tomoe + install -m 0644 -p handwriting-ja.model handwriting-zh_CN.model $(DESTDIR)/usr/share/zinnia//model/tomoe + + diff --git a/always-store-data-in-little-endian-format.patch b/always-store-data-in-little-endian-format.patch new file mode 100644 index 0000000..0005354 --- /dev/null +++ b/always-store-data-in-little-endian-format.patch @@ -0,0 +1,163 @@ +From 09f01b0afcb4408af2e1af0294425eac420cd7a5 Mon Sep 17 00:00:00 2001 +From: Peng Huang +Date: Fri, 23 Apr 2010 16:09:07 +0800 +Subject: [PATCH] Always store data in little endian format + +--- + configure.in | 5 +++++ + recognizer.cpp | 24 ++++++++++++++++++++++-- + trainer.cpp | 48 +++++++++++++++++++++++++++++++++++++----------- + 3 files changed, 64 insertions(+), 13 deletions(-) + +diff --git a/configure.in b/configure.in +index 2731d36..f25c83a 100644 +--- a/configure.in ++++ b/configure.in +@@ -14,6 +14,11 @@ AC_PROG_LIBTOOL + + dnl Checks for libraries. + ++dnl Checks endian ++AC_C_BIGENDIAN([], [ ++ AC_DEFINE(WORDS_LITENDIAN, 1, [Define if target is little endian]) ++]) ++ + dnl Checks for header files. + AC_HEADER_STDC + AC_CHECK_HEADERS(string.h stdlib.h unistd.h fcntl.h \ +diff --git a/recognizer.cpp b/recognizer.cpp +index b4d292a..b231607 100644 +--- a/recognizer.cpp ++++ b/recognizer.cpp +@@ -5,6 +5,9 @@ + // + // Copyright(C) 2008 Taku Kudo + // ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif + #include + #include + #include +@@ -23,11 +26,28 @@ static inline char *read_ptr(char **ptr, size_t size) { + return r; + } + +-template +-static inline void read_static(char **ptr, T *value) { ++template ++inline void read_static(char **ptr, T *value) { + char *r = read_ptr(ptr, sizeof(T)); + memcpy(value, r, sizeof(T)); + } ++ ++#ifndef WORDS_LITENDIAN ++template <> ++inline void read_static(char **ptr, unsigned int *value) { ++ unsigned char *buf = reinterpret_cast(*ptr); ++ *value = (buf[0]) | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24); ++ *ptr += 4; ++} ++ ++template <> ++inline void read_static(char **ptr, float *value) { ++ unsigned int x; ++ read_static(ptr, &x); ++ memcpy(value, &x, sizeof(x)); ++} ++#endif ++ + } + + namespace zinnia { +diff --git a/trainer.cpp b/trainer.cpp +index 287a882..e150760 100644 +--- a/trainer.cpp ++++ b/trainer.cpp +@@ -243,6 +243,31 @@ bool Trainer::makeHeader(const char *text_filename, + return true; + } + ++template ++inline void write_static(std::ofstream & bofs, const T value) ++{ ++ bofs.write(reinterpret_cast(&value), sizeof(T)); ++} ++ ++#ifndef WORDS_LITENDIAN ++template<> ++inline void write_static(std::ofstream & bofs, const unsigned int value) ++{ ++ bofs.put ((value) & 0xff); ++ bofs.put ((value >> 8) & 0xff); ++ bofs.put ((value >> 16) & 0xff); ++ bofs.put ((value >> 24) & 0xff); ++} ++ ++template<> ++inline void write_static(std::ofstream & bofs, const float value) ++{ ++ unsigned int x; ++ memcpy(&x, &value, sizeof(x)); ++ write_static(bofs, x); ++} ++#endif ++ + bool Trainer::convert(const char *text_filename, + const char *binary_filename, + double compression_threshold) { +@@ -261,9 +286,9 @@ bool Trainer::convert(const char *text_filename, + unsigned int magic = 0; + const unsigned int version = DIC_VERSION; + unsigned int msize = 0; +- bofs.write(reinterpret_cast(&magic), sizeof(magic)); +- bofs.write(reinterpret_cast(&version), sizeof(version)); +- bofs.write(reinterpret_cast(&msize), sizeof(msize)); ++ write_static (bofs, magic); ++ write_static (bofs, version); ++ write_static (bofs, msize); + + std::string line; + const size_t array_size = 8192 * 16; +@@ -277,19 +302,19 @@ bool Trainer::convert(const char *text_filename, + char character[16]; + std::strncpy(character, col[0], sizeof(character)); + bofs.write(character, sizeof(character)); +- bofs.write(reinterpret_cast(&bias), sizeof(bias)); ++ write_static (bofs, bias); + for (size_t i = 2; i < size; i += 2) { + const int index = std::atoi(col[i]); + const float value = std::atof(col[i + 1]); + if (fabs(value) > compression_threshold) { +- bofs.write(reinterpret_cast(&index), sizeof(index)); +- bofs.write(reinterpret_cast(&value), sizeof(value)); ++ write_static (bofs, index); ++ write_static (bofs, value); + } + } + const int index = -1; + const float value = 0.0; +- bofs.write(reinterpret_cast(&index), sizeof(index)); +- bofs.write(reinterpret_cast(&value), sizeof(value)); ++ write_static (bofs, index); ++ write_static (bofs, value); + ++msize; + } + +@@ -297,9 +322,10 @@ bool Trainer::convert(const char *text_filename, + bofs.seekp(0); + magic ^= DIC_MAGIC_ID; + bofs.seekp(0); +- bofs.write(reinterpret_cast(&magic), sizeof(magic)); +- bofs.write(reinterpret_cast(&version), sizeof(version)); +- bofs.write(reinterpret_cast(&msize), sizeof(msize)); ++ ++ write_static (bofs, magic); ++ write_static (bofs, version); ++ write_static (bofs, msize); + + return true; + } +-- +1.7.0.1 + diff --git a/dead.package b/dead.package deleted file mode 100644 index a72aec0..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -epel8-playground decommissioned : https://pagure.io/epel/issue/136 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..923f026 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +pip +setuptools diff --git a/sources b/sources new file mode 100644 index 0000000..9a5678d --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (zinnia-0.07.tar.gz) = f214938953be093e37735a24dd5d2e899e02572202f9b316de566ddeb65451b2a13becb84f95c74f6e5ceadb83bbbcfea3434e974393cb569c65896249002280 diff --git a/tomoe2s.pl b/tomoe2s.pl new file mode 100644 index 0000000..2400cc8 --- /dev/null +++ b/tomoe2s.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl + +use utf8; +my $value; +my $stroke; +my $strokes; + +while (<>) { + if (//) { + while (<>) { + if (/([^<]+)<\/utf8>/) { + $value = $1; + $value =~ s/^&#x//; + $value = pack("U", hex($value)); + utf8::encode($value); + $stroke = ""; + $strokes = ""; + } elsif (//) { + $strokes .= "($stroke)"; + $stroke = ""; + } elsif (/<\/character>/) { + if ($value !~ /[\(\)]/) { + print "(character (value $value)(width 1000)(height 1000)(strokes $strokes))\n"; + } + $value = ""; + last; + } + } + } +} diff --git a/zinnia-0.05-bindings.patch b/zinnia-0.05-bindings.patch new file mode 100644 index 0000000..eb125ee --- /dev/null +++ b/zinnia-0.05-bindings.patch @@ -0,0 +1,36 @@ +diff -p -up zinnia-0.05/perl/Makefile.PL.bindings zinnia-0.05/perl/Makefile.PL +--- zinnia-0.05/perl/Makefile.PL.bindings 2008-09-13 18:59:36.000000000 +0200 ++++ zinnia-0.05/perl/Makefile.PL 2009-11-19 14:17:39.000000000 +0100 +@@ -3,8 +3,8 @@ WriteMakefile( + 'NAME' => 'zinnia', + 'CC' => 'c++', + 'LD' => 'c++', +- 'INC' => '', +- 'LIBS' => '-lzinnia', ++ 'INC' => '-I../', ++ 'LIBS' => '-L../.libs -lzinnia', + # 'VERSION' => '0.1', + 'OBJECT' => 'zinnia_wrap.o' + ); +diff -p -up zinnia-0.05/perl/zinnia_wrap.cxx.bindings zinnia-0.05/perl/zinnia_wrap.cxx +--- zinnia-0.05/perl/zinnia_wrap.cxx.bindings 2009-05-31 06:39:39.000000000 +0200 ++++ zinnia-0.05/perl/zinnia_wrap.cxx 2009-11-19 14:18:46.000000000 +0100 +@@ -11,6 +11,7 @@ + #define SWIGPERL + #define SWIG_CASTRANK_MODE + ++#include + + #ifdef __cplusplus + /* SwigValueWrapper is described in swig.swg */ +diff -p -up zinnia-0.05/python/zinnia_wrap.cxx.bindings zinnia-0.05/python/zinnia_wrap.cxx +--- zinnia-0.05/python/zinnia_wrap.cxx.bindings 2009-05-31 06:39:41.000000000 +0200 ++++ zinnia-0.05/python/zinnia_wrap.cxx 2009-11-19 14:19:10.000000000 +0100 +@@ -11,6 +11,7 @@ + #define SWIGPYTHON + #define SWIG_PYTHON_DIRECTOR_NO_VTABLE + ++#include + + #ifdef __cplusplus + /* SwigValueWrapper is described in swig.swg */ diff --git a/zinnia-0.06-fixes-ppc-float.patch b/zinnia-0.06-fixes-ppc-float.patch new file mode 100644 index 0000000..5deb7fb --- /dev/null +++ b/zinnia-0.06-fixes-ppc-float.patch @@ -0,0 +1,13 @@ +Index: zinnia-0.06/feature.cpp +=================================================================== +--- zinnia-0.06.orig/feature.cpp ++++ zinnia-0.06/feature.cpp +@@ -42,7 +42,7 @@ float minimum_distance(const Node *first + + const float a = last->x - first->x; + const float b = last->y - first->y; +- const float c = last->y * first->x - last->x * first->y; ++ const float c = (double)last->y * first->x - (double)last->x * first->y; + + float max = -1.0; + for (const Node *n = first; n != last; ++n) { diff --git a/zinnia-fixes-divide-by-zero.patch b/zinnia-fixes-divide-by-zero.patch new file mode 100644 index 0000000..0950ceb --- /dev/null +++ b/zinnia-fixes-divide-by-zero.patch @@ -0,0 +1,15 @@ +Index: zinnia-0.07/feature.cpp +=================================================================== +--- zinnia-0.07.orig/feature.cpp ++++ zinnia-0.07/feature.cpp +@@ -42,6 +42,10 @@ float minimum_distance(const Node *first + + const float a = last->x - first->x; + const float b = last->y - first->y; ++ ++ if (a * a + b * b == 0) ++ return 0.0; ++ + const float c = static_cast(last->y * first->x) + - static_cast(last->x * first->y); + diff --git a/zinnia-fixes-gcc6-compile.patch b/zinnia-fixes-gcc6-compile.patch new file mode 100644 index 0000000..848f306 --- /dev/null +++ b/zinnia-fixes-gcc6-compile.patch @@ -0,0 +1,22 @@ +Index: zinnia-0.06/trainer.cpp +=================================================================== +--- zinnia-0.06.orig/trainer.cpp ++++ zinnia-0.06/trainer.cpp +@@ -93,7 +93,7 @@ class TrainerImpl: public Trainer { + + public: + bool add(const Character &character) { +- const std::string y = character.value(); ++ std::string y = character.value(); + CHECK_FALSE(!y.empty()) << "input character is empty"; + Features features; + CHECK_FALSE(features.read(character)) << "cannot read character: " << y; +@@ -103,7 +103,7 @@ class TrainerImpl: public Trainer { + if (!fn) { + return false; + } +- x_.push_back(std::make_pair(y, fn)); ++ x_.push_back(std::make_pair(y, fn)); + return true; + } + diff --git a/zinnia-fixes-python-setuptools.patch b/zinnia-fixes-python-setuptools.patch new file mode 100644 index 0000000..4a9e69e --- /dev/null +++ b/zinnia-fixes-python-setuptools.patch @@ -0,0 +1,12 @@ +Index: zinnia-0.06/python/setup.py +=================================================================== +--- zinnia-0.06.orig/python/setup.py ++++ zinnia-0.06/python/setup.py +@@ -7,5 +7,7 @@ setup(name = "zinnia-python", + py_modules=["zinnia"], + ext_modules = [Extension("_zinnia", + ["zinnia_wrap.cxx",], ++ include_dirs=[".."], ++ library_dirs=["../.libs"], + libraries=["zinnia"]) + ]) diff --git a/zinnia.spec b/zinnia.spec new file mode 100644 index 0000000..cc9c4eb --- /dev/null +++ b/zinnia.spec @@ -0,0 +1,467 @@ +Name: zinnia +Version: 0.07 +Release: 13%{?dist} +Summary: Online handwriting recognition system with machine learning + +License: BSD-3-Clause +URL: https://github.com/silverhikari/zinnia +Source0: https://github.com/silverhikari/zinnia/releases/download/%{version}/%{name}-%{version}.tar.gz +Source1: https://raw.githubusercontent.com/silverhikari/%{name}/master/%{name}/tomoe2s.pl +Source2: Makefile.tomoe +Source3: requirements.txt +Patch0: zinnia-0.05-bindings.patch +Patch2: always-store-data-in-little-endian-format.patch +Patch4: zinnia-fixes-python-setuptools.patch +Patch5: zinnia-fixes-divide-by-zero.patch +BuildRequires: make +BuildRequires: gcc-c++ +BuildRequires: libdb-devel, python3-devel +BuildRequires: swig +BuildRequires: perl-devel +BuildRequires: perl-generators +BuildRequires: perl(ExtUtils::MakeMaker) +BuildRequires: tomoe +BuildRequires: autoconf +BuildRequires: gnome-common + +%description +Zinnia provides a simple, customizable, and portable dynamic OCR +system for hand-written input, based on Support Vector Machines. + +Zinnia simply receives user pen strokes as coordinate data and outputs +the best matching characters sorted by SVM confidence. To maintain +portability, it has no rendering functionality. In addition to +recognition, Zinnia provides a training module capable of creating +highly efficient handwriting recognition models. + +This package contains the shared libraries. + +%package devel +Summary: Development files for %{name} +Requires: %{name} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package utils +Summary: Utils for the zinnia library +Requires: %{name} = %{version}-%{release} + +%description utils +The %{name}-utils package provides utilities for zinnia library that +use %{name}. + +%package doc +Summary: Documents for the zinnia library +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +The %{name}-doc package provide documents for zinnia library that +use %{name}. + +%package perl +Summary: Perl bindings for %name +Requires: %{name} = %{version}-%{release} + + +%description perl +This package contains perl bindings for %{name}. + +%package -n python3-zinnia +Summary: Python bindings for %{name} +Requires: %{name} = %{version}-%{release} + +%description -n python3-zinnia +This package contains python bindings for %{name}. + +%package tomoe-ja +Summary: Japanese tomoe model file for %{name} +Requires: %{name} = %{version}-%{release} +Provides: zinnia-tomoe = %{version}-%{release} +Obsoletes: zinnia-tomoe < 0.06-19 + +%description tomoe-ja +This package contains Japanese tomoe model files for %{name}. + +%package tomoe-zh_CN +Summary: Simplified Chinese tomoe model file for %{name} +Requires: %{name} = %{version}-%{release} +Provides: zinnia-tomoe = %{version}-%{release} +Obsoletes: zinnia-tomoe < 0.06-19 + +%description tomoe-zh_CN +This package contains Simplified Chinese tomoe model files for %{name}. + +%prep +%setup -q -n %{name}-%{version} +%patch -P0 -p1 -b .bindings +%patch -P2 -p1 -R -b .little-endian +%patch -P4 -p1 -b .python +%patch -P5 -p1 -b .divide-by-zero + +find . -type f -name "*.pyc" -exec rm -f {} ';' +cp %{SOURCE1} . +cp %{SOURCE2} . +pushd doc +iconv -f latin1 -t utf8 zinnia.css > zinnia.css.bak +mv -f zinnia.css.bak zinnia.css +popd + +# re-generate zinnia.py and zinnia_wrap.cxx for python 3.x +pushd swig +make python +popd + +%generate_buildrequires +%pyproject_buildrequires -N %{SOURCE3} + +%build +gnome-autogen.sh +%configure --disable-static --disable-rpath +make CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" %{?_smp_mflags} +make -f Makefile.tomoe build + +pushd perl +perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS" +make %{?_smp_mflags} +popd + +pushd python +%pyproject_wheel +popd + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +make -f Makefile.tomoe install DESTDIR=$RPM_BUILD_ROOT + +pushd perl +make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT +popd + +pushd python +%pyproject_install +%pyproject_save_files '%{name}*' _%{name} +pushd + +#remove something unnecessary +find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' +find $RPM_BUILD_ROOT -type f -name "*.bs" -size 0c -exec rm -f {} ';' +find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' + +#change the privilege of some files +chmod 0755 $RPM_BUILD_ROOT%{perl_vendorarch}/auto/%{name}/%{name}.so + + +%check +export LD_LIBRARY_PATH=%{buildroot}/%{_libdir} +%pyproject_check_import + + +%files +%doc README COPYING +%{_libdir}/*.so.* + +%files devel +%{_includedir}/* +%{_libdir}/lib%{name}.so + +%{_libdir}/pkgconfig/%{name}.pc + +%files utils +%{_bindir}/zinnia +%{_bindir}/zinnia_convert +%{_bindir}/zinnia_learn + +%files doc +%doc doc/* + +%files perl +%{perl_vendorarch}/auto/%{name}/ +%{perl_vendorarch}/%{name}.pm + +%files -n python3-zinnia -f %{pyproject_files} +%exclude %{python3_sitearch}/zinnia_python-0.0.0.dist-info + +%files tomoe-ja +%dir %{_datadir}/zinnia/model/tomoe/ +%{_datadir}/zinnia/model/tomoe/handwriting-ja.model + +%files tomoe-zh_CN +%dir %{_datadir}/zinnia/model/tomoe/ +%{_datadir}/zinnia/model/tomoe/handwriting-zh_CN.model + +%changelog +* Fri Jul 24 2026 Python Maint - 0.07-13 +- Rebuilt for Python 3.15.0b4 ABI change + +* Thu Jul 23 2026 Jitka Plesnikova - 0.07-12 +- Perl 5.44 rebuild + +* Wed Jul 22 2026 Python Maint - 0.07-11 +- Rebuilt for Python 3.15.0b4 ABI change + +* Fri Jul 17 2026 Fedora Release Engineering - 0.07-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Wed Jun 03 2026 Python Maint - 0.07-9 +- Rebuilt for Python 3.15 + +* Sat Jan 17 2026 Fedora Release Engineering - 0.07-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Sep 19 2025 Python Maint - 0.07-7 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 0.07-6 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Peng Wu - 0.07-4 +- Update for https://fedoraproject.org/wiki/Changes/DeprecateSetuppyMacros +- Resolves: RHBZ#2378641 + +* Fri Jul 25 2025 Fedora Release Engineering - 0.07-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jul 07 2025 Jitka Plesnikova - 0.07-3 +- Perl 5.42 rebuild + +* Mon Jun 02 2025 Python Maint - 0.07-2 +- Rebuilt for Python 3.14 + +* Mon Apr 14 2025 Peng Wu - 0.07-1 +- Update to 0.07 + +* Sun Jan 19 2025 Fedora Release Engineering - 0.06-72 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Oct 30 2024 Peng Wu - 0.06-71 +- Fix build +- Resolves: RHBZ#2319752 + +* Sat Jul 20 2024 Fedora Release Engineering - 0.06-70 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jun 12 2024 Jitka Plesnikova - 0.06-69 +- Perl 5.40 rebuild + +* Fri Jun 07 2024 Python Maint - 0.06-68 +- Rebuilt for Python 3.13 + +* Sat Jan 27 2024 Fedora Release Engineering - 0.06-67 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 0.06-66 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 Jitka Plesnikova - 0.06-65 +- Perl 5.38 rebuild + +* Wed Jun 14 2023 Python Maint - 0.06-64 +- Rebuilt for Python 3.12 + +* Sat May 6 2023 Peng Wu - 0.06-63 +- Migrate to SPDX license + +* Sat Jan 21 2023 Fedora Release Engineering - 0.06-62 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Oct 24 2022 Peng Wu - 0.06-61 +- Add BuildRequires python3-setuptools + +* Sat Jul 23 2022 Fedora Release Engineering - 0.06-60 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 0.06-59 +- Rebuilt for Python 3.11 + +* Mon May 30 2022 Jitka Plesnikova - 0.06-58 +- Perl 5.36 rebuild + +* Fri Feb 11 2022 Peng Wu - 0.06-57 +- Fix RHBZ#2048104 + +* Sat Jan 22 2022 Fedora Release Engineering - 0.06-56 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.06-55 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 0.06-54 +- Rebuilt for Python 3.10 + +* Fri Jun 4 2021 Peng Wu - 0.06-53 +- Disable rpath + +* Fri May 21 2021 Jitka Plesnikova - 0.06-52 +- Perl 5.34 rebuild + +* Thu Jan 28 2021 Fedora Release Engineering - 0.06-51 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.06-50 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 22 2020 Jitka Plesnikova - 0.06-49 +- Perl 5.32 rebuild + +* Tue May 26 2020 Miro Hrončok - 0.06-48 +- Rebuilt for Python 3.9 + +* Fri Jan 31 2020 Fedora Release Engineering - 0.06-47 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Oct 03 2019 Miro Hrončok - 0.06-46 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 19 2019 Miro Hrončok - 0.06-45 +- Rebuilt for Python 3.8 + +* Sat Jul 27 2019 Fedora Release Engineering - 0.06-44 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu May 30 2019 Jitka Plesnikova - 0.06-43 +- Perl 5.30 rebuild + +* Sun Feb 03 2019 Fedora Release Engineering - 0.06-42 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Oct 10 2018 Peng Wu - 0.06-41 +- Switch from python2 to python3 + +* Tue Jul 24 2018 Peng Wu - 0.06-40 +- Use python2 + +* Sat Jul 14 2018 Fedora Release Engineering - 0.06-39 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jun 27 2018 Jitka Plesnikova - 0.06-38 +- Perl 5.28 rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 0.06-37 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 0.06-36 +- Add Provides for the old name without %%_isa + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 0.06-35 +- Python 2 binary package renamed to python2-zinnia + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Aug 03 2017 Fedora Release Engineering - 0.06-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.06-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sun Jun 04 2017 Jitka Plesnikova - 0.06-32 +- Perl 5.26 rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 0.06-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jul 19 2016 Fedora Release Engineering - 0.06-30 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Sun May 15 2016 Jitka Plesnikova - 0.06-29 +- Perl 5.24 rebuild + +* Wed Feb 17 2016 Peng Wu - 0.06-28 +- Fixes compile with gcc 6.0 + +* Fri Feb 05 2016 Fedora Release Engineering - 0.06-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 0.06-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 03 2015 Jitka Plesnikova - 0.06-25 +- Perl 5.22 rebuild + +* Sat May 02 2015 Kalev Lember - 0.06-24 +- Rebuilt for GCC 5 C++11 ABI change + +* Thu Dec 11 2014 Peng Wu - 0.06-23 +- Fixes split issues + +* Wed Aug 27 2014 Jitka Plesnikova - 0.06-22 +- Perl 5.20 rebuild + +* Mon Aug 18 2014 Fedora Release Engineering - 0.06-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 29 2014 Peng Wu - 0.06-20 +- Split zinnia-tomoe sub-package for ibus-handwrite + +* Sat Jun 07 2014 Fedora Release Engineering - 0.06-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 0.06-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jul 18 2013 Petr Pisar - 0.06-17 +- Perl 5.18 rebuild + +* Tue Mar 26 2013 Peng Wu - 0.06-16 +- Fixes aarch64 build + +* Fri Feb 15 2013 Fedora Release Engineering - 0.06-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Jul 22 2012 Fedora Release Engineering - 0.06-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jun 11 2012 Petr Pisar - 0.06-13 +- Perl 5.16 rebuild + +* Tue Feb 28 2012 Fedora Release Engineering - 0.06-12 +- Rebuilt for c++ ABI breakage + +* Sat Jan 14 2012 Fedora Release Engineering - 0.06-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Jun 17 2011 Marcela Mašláňová - 0.06-10 +- Perl mass rebuild + +* Tue Feb 08 2011 Fedora Release Engineering - 0.06-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jul 26 2010 Peng Wu - 0.06-8 +- Remove noarch from zinnia-tomoe sub-package for Fedora 12 ppc build. + +* Thu Jul 22 2010 David Malcolm - 0.06-7 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Fri Jul 16 2010 Peng Wu - 0.06-6 +- revert patch always-store-data-in-little-endian-format.patch for ppc build. + +* Tue Jun 08 2010 Liang Suilong - 0.06-5 +- Force to use default compiling macro + +* Fri Jun 04 2010 Peng Wu - 0.06-4 +- Add a patch(zinnia-0.06-fixes-ppc-float.patch), + to fixes ppc/ppc64 zinnia tomoe model generating error. + +* Wed Jun 02 2010 Marcela Maslanova - 0.06-3 +- Mass rebuild with perl-5.12.0 + +* Thu May 20 2010 Peng Wu - 0.06-2 +- Auto generate zinnia tomoe model files, + and includes all model files in zinnia-tomoe noarch sub-package. + +* Thu May 20 2010 Peng Wu - 0.06-1 +- Update to version 0.06. + +* Wed Mar 10 2010 Liang Suilong - 0.05-4 +- Fix the bugs of SPEC file + +* Fri Mar 04 2010 Liang Suilong - 0.05-3 +- Fix something wrong of spec file + +* Wed Mar 02 2010 Liang Suilong - 0.05-2 +- Rename Subpackage for perl and python + +* Tue Feb 02 2010 Liang Suilong - 0.05-1 +- Initial Package