+%define _ver %(echo %{version} | tr -d .)
+%define _rc p3
+%define _rel 0.1
Summary: Japanese input system
Summary(ja): ÆüËܸìÆþÎÏ¥·¥¹¥Æ¥à
Summary(pl): System wprowadzania znaków japoñskich
Name: Canna
-Version: 3.5b2
-Release: 41
+Version: 3.7
+Release: 0.%{_rc}.%{_rel}
License: BSD-like
Group: Libraries
-#origin, but host not found: ftp://ftp.nec.co.jp/pub/Canna/Canna35/Canna35b2.tar.gz
-Source0: ftp://ftp.tokyonet.ad.jp/pub/misc/%{name}/%{name}35/%{name}35b2.tar.gz
+Source0: http://downloads.sourceforge.jp/canna/9565/%{name}%{_ver}%{_rc}.tar.bz2
+# Source0-md5: 0b8c241f63ab4cd3c0b9be569456dc33
Source1: %{name}.init
Source2: %{name}-dot-canna
Patch0: %{name}-conf.patch
-Patch1: %{name}-DESTDIR.patch
-Patch2: %{name}-glibc.patch
-Patch3: %{name}-stdin.patch
-Patch4: %{name}-bcopy.patch
-Patch5: %{name}-security.patch
-Patch6: %{name}-hosts.canna-fix.patch
-URL: http://www.nec.co.jp/japanese/product/computer/soft/canna/
+#Patch1: %{name}-DESTDIR.patch # outdated by -conf.patch
+#Patch2: %{name}-glibc.patch # looks outdated
+#Patch3: %{name}-stdin.patch # looks outdated
+#Patch4: %{name}-bcopy.patch # looks outdated
+#Patch5: %{name}-security.patch # looks outdated
+#Patch6: %{name}-hosts.canna-fix.patch # looks outdated
+#Patch7: %{name}-nonstrip.patch # merged into Canna-conf.patch
+Patch8: %{name}-wconv.patch
+#Patch9: %{name}-multivul.patch # apparently outdated
+#Patch10: %{name}-fixes.patch # outdated apparently
+URL: http://canna.sourceforge.jp/
+BuildRequires: cpp
BuildRequires: imake
-PreReq: rc-scripts
+BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
Requires(pre): /bin/id
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
Requires: %{name}-libs = %{version}
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Requires: rc-scripts
+Provides: group(canna)
+Provides: user(canna)
ExcludeArch: ia64
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Canna is a Japanese input system and provides a unified user interface
Ten pakiet zawiera statyczne biblioteki Canna.
%prep
-%setup -q -n %{name}35b2
+%setup -q -n %{name}%{_ver}%{_rc}
%patch0 -p1
-%patch1 -p1
-%patch3 -p1
-%patch2 -p0
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
+%patch8 -p1
%build
xmkmf -a
-# by some reason sglobal.h is not made automatically - workaround:
-%{__make} sglobal.h -C lib/canna
%{__make} canna \
- CDEBUGFLAGS="%{rpmcflags}" CXXDEBUGFLAGS="%{rpmcflags}"
+ CDEBUGFLAGS="%{rpmcflags}" \
+ CXXDEBUGFLAGS="%{rpmcflags}"
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install install.man \
DESTDIR=$RPM_BUILD_ROOT \
- MANSUFFIX=1 LIBMANSUFFIX=3
+ MANSUFFIX=1 \
+ LIBMANSUFFIX=3
-# default manuals are in Japanese; install English ones too
-mv -f Canna.conf Canna.conf.orig
-sed -e 's/^#define JAPANESEMAN.*//' Canna.conf.orig > Canna.conf
xmkmf -a
%{__make} install.man \
DESTDIR=$RPM_BUILD_ROOT \
cannaManDir=%{_mandir} \
- MANSUFFIX=1 LIBMANSUFFIX=3
+ MANSUFFIX=1 \
+ LIBMANSUFFIX=3
+
+# convert man symlinks to files
+for l in $(find $RPM_BUILD_ROOT%{_mandir} -type l); do
+ t=$(readlink $l)
+ rm -f $l
+ echo ".so $t" > $l
+done
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/canna
install %{SOURCE2} $RPM_BUILD_ROOT/etc/skel/.canna
localhost
EOF
-gzip -9nf CHANGES.jp README* WHATIS*
+rm -rf $RPM_BUILD_ROOT%{_prefix}/man
+
%clean
rm -fr $RPM_BUILD_ROOT
%pre
-if [ -n "`getgid canna`" ]; then
- if [ "`getgid canna`" != "41" ]; then
- echo "Warning: group canna doesn't have gid=41. Correct this before installing Canna." 1>&2
- exit 1
- fi
-else
- /usr/sbin/groupadd -g 41 -r -f canna
-fi
-if [ -n "`id -u canna 2>/dev/null`" ]; then
- if [ "`id -u canna`" != "41" ]; then
- echo "Warning: user canna doesn't have uid=41. Correct this before installing Canna." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 41 -r -d /var/lib/canna -s /bin/false \
- -c "Canna Service User" -g canna canna 1>&2
-fi
+%groupadd -g 41 canna
+%useradd -u 41 -d /var/lib/canna -s /bin/false -c "Canna Service User" -g canna canna
%post
/sbin/chkconfig --add canna
-if [ -f /var/lock/subsys/canna ]; then
- /etc/rc.d/init.d/canna restart 1>&2
-else
- echo "Run \"/etc/rc.d/init.d/canna start\" to start Canna service."
-fi
+%service canna restart "Canna service"
%preun
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/canna ]; then
- /etc/rc.d/init.d/canna stop 1>&2
- fi
+ %service canna stop
/sbin/chkconfig --del canna
fi
%postun
if [ "$1" = "0" ]; then
- /usr/sbin/userdel canna
+ %userremove canna
+ %groupremove canna
fi
%post libs -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
-%doc README.gz WHATIS.gz doc
-%lang(ja) %doc {CHANGES.jp,README.jp,WHATIS.jp}.gz
+%doc README WHATIS
+%lang(ja) %doc CHANGES.jp README.jp WHATIS.jp
%attr(755,root,root) %{_bindir}/*
%attr(755,root,root) %{_sbindir}/cannaserver
%attr(755,root,root) %{_sbindir}/cannakill
%attr(754,root,root) /etc/rc.d/init.d/canna
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/hosts.canna
-%config(noreplace) %verify(not size mtime md5) /etc/skel/.canna
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hosts.canna
+%config(noreplace) %verify(not md5 mtime size) /etc/skel/.canna
%{_mandir}/man1/*
%lang(ja) %{_mandir}/ja/man1/*
%attr(770,root,canna) /var/log/canna
-%dir /var/lib/canna
-%config(noreplace) %verify(not size mtime md5) /var/lib/canna/default.canna
-%config(noreplace) %verify(not size mtime md5) /var/lib/canna/engine.cf
-%attr(775,root,canna) %dir /var/lib/canna/dic
-%attr(664,root,canna) %config(noreplace) %verify(not size mtime md5) /var/lib/canna/dic/*.cbp
-%attr(775,root,canna) %dir /var/lib/canna/dic/canna
-%attr(664,root,canna) %config(noreplace) %verify(not size mtime md5) /var/lib/canna/dic/canna/*.c*
-%config(noreplace) %verify(not size mtime md5) /var/lib/canna/dic/canna/dics.dir
-/var/lib/canna/sample
+
+%dir %{_datadir}/canna
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/canna/default.canna
+%attr(775,root,canna) %dir %{_datadir}/canna/dic
+%attr(664,root,canna) %config(noreplace) %verify(not md5 mtime size) %{_datadir}/canna/dic/*.cbp
+%attr(775,root,canna) %dir %{_datadir}/canna/dic/canna
+%attr(664,root,canna) %config(noreplace) %verify(not md5 mtime size) %{_datadir}/canna/dic/canna/*.c*
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/canna/dic/canna/dics.dir
+%{_datadir}/canna/sample
%files libs
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libRKC.so.1.0.0
-%attr(755,root,root) %{_libdir}/libRKC16.so.1.0.0
-%attr(755,root,root) %{_libdir}/libcanna.so.1.0.0
-%attr(755,root,root) %{_libdir}/libcanna16.so.1.0.0
+%attr(755,root,root) %{_libdir}/libRKC.so.*.*
+%attr(755,root,root) %{_libdir}/libRKC16.so.*.*
+%attr(755,root,root) %{_libdir}/libcanna.so.*.*
+%attr(755,root,root) %{_libdir}/libcanna16.so.*.*
%files devel
%defattr(644,root,root,755)