Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5cf0b27536 | ||
|
|
8eb7e72256 |
11 changed files with 640 additions and 21 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/zinnia-0.06.tar.gz
|
||||
21
Makefile
21
Makefile
|
|
@ -1,21 +0,0 @@
|
|||
# Makefile for source rpm: zinnia
|
||||
# $Id$
|
||||
NAME := zinnia
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attept a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
||||
20
Makefile.tomoe
Normal file
20
Makefile.tomoe
Normal file
|
|
@ -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
|
||||
|
||||
|
||||
163
always-store-data-in-little-endian-format.patch
Normal file
163
always-store-data-in-little-endian-format.patch
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
From 09f01b0afcb4408af2e1af0294425eac420cd7a5 Mon Sep 17 00:00:00 2001
|
||||
From: Peng Huang <shawn.p.huang@gmail.com>
|
||||
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 <taku@chasen.org>
|
||||
//
|
||||
+#ifdef HAVE_CONFIG_H
|
||||
+# include "config.h"
|
||||
+#endif
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <cmath>
|
||||
@@ -23,11 +26,28 @@ static inline char *read_ptr(char **ptr, size_t size) {
|
||||
return r;
|
||||
}
|
||||
|
||||
-template <class T>
|
||||
-static inline void read_static(char **ptr, T *value) {
|
||||
+template <typename T>
|
||||
+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<unsigned int>(char **ptr, unsigned int *value) {
|
||||
+ unsigned char *buf = reinterpret_cast<unsigned char *>(*ptr);
|
||||
+ *value = (buf[0]) | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
|
||||
+ *ptr += 4;
|
||||
+}
|
||||
+
|
||||
+template <>
|
||||
+inline void read_static<float>(char **ptr, float *value) {
|
||||
+ unsigned int x;
|
||||
+ read_static<unsigned int>(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<typename T>
|
||||
+inline void write_static(std::ofstream & bofs, const T value)
|
||||
+{
|
||||
+ bofs.write(reinterpret_cast<const char *>(&value), sizeof(T));
|
||||
+}
|
||||
+
|
||||
+#ifndef WORDS_LITENDIAN
|
||||
+template<>
|
||||
+inline void write_static<unsigned int>(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<float>(std::ofstream & bofs, const float value)
|
||||
+{
|
||||
+ unsigned int x;
|
||||
+ memcpy(&x, &value, sizeof(x));
|
||||
+ write_static<unsigned int>(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<const char *>(&magic), sizeof(magic));
|
||||
- bofs.write(reinterpret_cast<const char *>(&version), sizeof(version));
|
||||
- bofs.write(reinterpret_cast<const char *>(&msize), sizeof(msize));
|
||||
+ write_static<unsigned int> (bofs, magic);
|
||||
+ write_static<unsigned int> (bofs, version);
|
||||
+ write_static<unsigned int> (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<const char *>(&bias), sizeof(bias));
|
||||
+ write_static<float> (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<const char *>(&index), sizeof(index));
|
||||
- bofs.write(reinterpret_cast<const char *>(&value), sizeof(value));
|
||||
+ write_static<int> (bofs, index);
|
||||
+ write_static<float> (bofs, value);
|
||||
}
|
||||
}
|
||||
const int index = -1;
|
||||
const float value = 0.0;
|
||||
- bofs.write(reinterpret_cast<const char *>(&index), sizeof(index));
|
||||
- bofs.write(reinterpret_cast<const char *>(&value), sizeof(value));
|
||||
+ write_static<int> (bofs, index);
|
||||
+ write_static<float> (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<const char *>(&magic), sizeof(magic));
|
||||
- bofs.write(reinterpret_cast<const char *>(&version), sizeof(version));
|
||||
- bofs.write(reinterpret_cast<const char *>(&msize), sizeof(msize));
|
||||
+
|
||||
+ write_static<unsigned int> (bofs, magic);
|
||||
+ write_static<unsigned int> (bofs, version);
|
||||
+ write_static<unsigned int> (bofs, msize);
|
||||
|
||||
return true;
|
||||
}
|
||||
--
|
||||
1.7.0.1
|
||||
|
||||
1
sources
1
sources
|
|
@ -0,0 +1 @@
|
|||
SHA512 (zinnia-0.06.tar.gz) = b9a44dc3664302269c4d8481225964a3188c1921f5af7f136fdccdc452917f6ff934884e266436a0f1e0a32af19d3bea5f5e4416e694a653983039a513277b53
|
||||
35
tomoe2s.pl
Normal file
35
tomoe2s.pl
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use utf8;
|
||||
my $value;
|
||||
my $stroke;
|
||||
my $strokes;
|
||||
|
||||
while (<>) {
|
||||
if (/<character>/) {
|
||||
while (<>) {
|
||||
if (/<utf8>([^<]+)<\/utf8>/) {
|
||||
$value = $1;
|
||||
$value =~ s/^&#x//;
|
||||
$value = pack("U", hex($value));
|
||||
utf8::encode($value);
|
||||
$stroke = "";
|
||||
$strokes = "";
|
||||
} elsif (/<point x=\"(\d+)\" y=\"(\d+)\"/) {
|
||||
my $x = $1;
|
||||
my $y = $2;
|
||||
# print "$x $y\n";
|
||||
$stroke .= "($x $y)";
|
||||
} elsif (/<\/stroke>/) {
|
||||
$strokes .= "($stroke)";
|
||||
$stroke = "";
|
||||
} elsif (/<\/character>/) {
|
||||
if ($value !~ /[\(\)]/) {
|
||||
print "(character (value $value)(width 1000)(height 1000)(strokes $strokes))\n";
|
||||
}
|
||||
$value = "";
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
36
zinnia-0.05-bindings.patch
Normal file
36
zinnia-0.05-bindings.patch
Normal file
|
|
@ -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 <cstring>
|
||||
|
||||
#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 <cstring>
|
||||
|
||||
#ifdef __cplusplus
|
||||
/* SwigValueWrapper is described in swig.swg */
|
||||
13
zinnia-0.06-fixes-ppc-float.patch
Normal file
13
zinnia-0.06-fixes-ppc-float.patch
Normal file
|
|
@ -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) {
|
||||
22
zinnia-fixes-gcc6-compile.patch
Normal file
22
zinnia-fixes-gcc6-compile.patch
Normal file
|
|
@ -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<std::string, FeatureNode *>(y, fn));
|
||||
+ x_.push_back(std::make_pair(y, fn));
|
||||
return true;
|
||||
}
|
||||
|
||||
349
zinnia.spec
Normal file
349
zinnia.spec
Normal file
|
|
@ -0,0 +1,349 @@
|
|||
Name: zinnia
|
||||
Version: 0.06
|
||||
Release: 46%{?dist}
|
||||
Summary: Online handwriting recognition system with machine learning
|
||||
|
||||
License: BSD
|
||||
URL: http://zinnia.sourceforge.net/
|
||||
Source0: http://downloads.sourceforge.net/zinnia/%{name}-%{version}.tar.gz
|
||||
Source1: http://zinnia.svn.sourceforge.net/viewvc/zinnia/zinnia/tomoe2s.pl
|
||||
Source2: Makefile.tomoe
|
||||
Patch0: zinnia-0.05-bindings.patch
|
||||
Patch1: zinnia-0.06-fixes-ppc-float.patch
|
||||
Patch2: always-store-data-in-little-endian-format.patch
|
||||
Patch3: zinnia-fixes-gcc6-compile.patch
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libdb-devel, python3-devel
|
||||
BuildRequires: swig
|
||||
BuildRequires: perl-devel
|
||||
BuildRequires: perl-generators
|
||||
BuildRequires: perl(ExtUtils::MakeMaker)
|
||||
BuildRequires: tomoe
|
||||
BuildRequires: autoconf
|
||||
|
||||
%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}
|
||||
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
|
||||
|
||||
|
||||
%description perl
|
||||
This package contains perl bindings for %{name}.
|
||||
|
||||
%package -n python3-zinnia
|
||||
%{?python_provide:%python_provide 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}
|
||||
%patch0 -p1 -b .bindings
|
||||
%patch1 -p1 -b .ppc
|
||||
%patch2 -p1 -R -b .little-endian
|
||||
%patch3 -p1 -b .gcc6
|
||||
find . -type f -name ChangeLog -size 0c -exec rm -f {} ';'
|
||||
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
|
||||
|
||||
%build
|
||||
autoconf
|
||||
%configure --disable-static
|
||||
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
||||
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||
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
|
||||
CFLAGS="$RPM_OPT_FLAGS -I../" LDFLAGS="$RPM_LD_FLAGS -L../.libs" python3 setup.py build
|
||||
popd
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
make -f Makefile.tomoe install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
#install -d -m 0755 -p $RPM_BUILD_ROOT%{_docdir}/%{name}
|
||||
#cp -pfr doc $RPM_BUILD_ROOT%{_docdir}/%{name}
|
||||
|
||||
pushd perl
|
||||
make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
|
||||
popd
|
||||
|
||||
pushd python
|
||||
python3 setup.py install --root $RPM_BUILD_ROOT
|
||||
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
|
||||
|
||||
|
||||
|
||||
%ldconfig_scriptlets
|
||||
|
||||
|
||||
%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
|
||||
%{python3_sitearch}/_%{name}.*.so
|
||||
%{python3_sitearch}/%{name}*
|
||||
%{python3_sitearch}/__pycache__/*
|
||||
|
||||
%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
|
||||
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 0.06-46
|
||||
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||
|
||||
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 0.06-45
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-44
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 0.06-43
|
||||
- Perl 5.30 rebuild
|
||||
|
||||
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-42
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Wed Oct 10 2018 Peng Wu <pwu@redhat.com> - 0.06-41
|
||||
- Switch from python2 to python3
|
||||
|
||||
* Tue Jul 24 2018 Peng Wu <pwu@redhat.com> - 0.06-40
|
||||
- Use python2
|
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-39
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 0.06-38
|
||||
- Perl 5.28 rebuild
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-37
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.06-36
|
||||
- Add Provides for the old name without %%_isa
|
||||
|
||||
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.06-35
|
||||
- Python 2 binary package renamed to python2-zinnia
|
||||
See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-34
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-33
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sun Jun 04 2017 Jitka Plesnikova <jplesnik@redhat.com> - 0.06-32
|
||||
- Perl 5.26 rebuild
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-31
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-30
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Sun May 15 2016 Jitka Plesnikova <jplesnik@redhat.com> - 0.06-29
|
||||
- Perl 5.24 rebuild
|
||||
|
||||
* Wed Feb 17 2016 Peng Wu <pwu@redhat.com> - 0.06-28
|
||||
- Fixes compile with gcc 6.0
|
||||
|
||||
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.06-27
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-26
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Wed Jun 03 2015 Jitka Plesnikova <jplesnik@redhat.com> - 0.06-25
|
||||
- Perl 5.22 rebuild
|
||||
|
||||
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 0.06-24
|
||||
- Rebuilt for GCC 5 C++11 ABI change
|
||||
|
||||
* Thu Dec 11 2014 Peng Wu <pwu@redhat.com> - 0.06-23
|
||||
- Fixes split issues
|
||||
|
||||
* Wed Aug 27 2014 Jitka Plesnikova <jplesnik@redhat.com> - 0.06-22
|
||||
- Perl 5.20 rebuild
|
||||
|
||||
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Tue Jul 29 2014 Peng Wu <pwu@redhat.com> - 0.06-20
|
||||
- Split zinnia-tomoe sub-package for ibus-handwrite
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-19
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Thu Jul 18 2013 Petr Pisar <ppisar@redhat.com> - 0.06-17
|
||||
- Perl 5.18 rebuild
|
||||
|
||||
* Tue Mar 26 2013 Peng Wu <pwu@redhat.com> - 0.06-16
|
||||
- Fixes aarch64 build
|
||||
|
||||
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Mon Jun 11 2012 Petr Pisar <ppisar@redhat.com> - 0.06-13
|
||||
- Perl 5.16 rebuild
|
||||
|
||||
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-12
|
||||
- Rebuilt for c++ ABI breakage
|
||||
|
||||
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Fri Jun 17 2011 Marcela Mašláňová <mmaslano@redhat.com> - 0.06-10
|
||||
- Perl mass rebuild
|
||||
|
||||
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.06-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Mon Jul 26 2010 Peng Wu <pwu@redhat.com> - 0.06-8
|
||||
- Remove noarch from zinnia-tomoe sub-package for Fedora 12 ppc build.
|
||||
|
||||
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.06-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
|
||||
|
||||
* Fri Jul 16 2010 Peng Wu <pwu@redhat.com> - 0.06-6
|
||||
- revert patch always-store-data-in-little-endian-format.patch for ppc build.
|
||||
|
||||
* Tue Jun 08 2010 Liang Suilong <liangsuilong@gmail.com> - 0.06-5
|
||||
- Force to use default compiling macro
|
||||
|
||||
* Fri Jun 04 2010 Peng Wu <pwu@redhat.com> - 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 <mmaslano@redhat.com> - 0.06-3
|
||||
- Mass rebuild with perl-5.12.0
|
||||
|
||||
* Thu May 20 2010 Peng Wu <pwu@redhat.com> - 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 <pwu@redhat.com> - 0.06-1
|
||||
- Update to version 0.06.
|
||||
|
||||
* Wed Mar 10 2010 Liang Suilong <liangsuilong@gmail.com> - 0.05-4
|
||||
- Fix the bugs of SPEC file
|
||||
|
||||
* Fri Mar 04 2010 Liang Suilong <liangsuilong@gmail.com> - 0.05-3
|
||||
- Fix something wrong of spec file
|
||||
|
||||
* Wed Mar 02 2010 Liang Suilong <liangsuilong@gmail.com> - 0.05-2
|
||||
- Rename Subpackage for perl and python
|
||||
|
||||
* Tue Feb 02 2010 Liang Suilong <liangsuilong@gmail.com> - 0.05-1
|
||||
- Initial Package
|
||||
Loading…
Add table
Add a link
Reference in a new issue