summaryrefslogtreecommitdiff
path: root/app-i18n/canna
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /app-i18n/canna
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'app-i18n/canna')
-rw-r--r--app-i18n/canna/Manifest16
-rw-r--r--app-i18n/canna/canna-3.7_p3-r1.ebuild98
-rw-r--r--app-i18n/canna/canna-3.7_p3-r2.ebuild128
-rw-r--r--app-i18n/canna/canna-3.7_p3-r3.ebuild154
-rw-r--r--app-i18n/canna/files/canna-Wformat-security.patch199
-rw-r--r--app-i18n/canna/files/canna-Wformat.patch11
-rw-r--r--app-i18n/canna/files/canna-canuum.patch34
-rw-r--r--app-i18n/canna/files/canna-gentoo.patch146
-rw-r--r--app-i18n/canna/files/canna-kpdef.patch18
-rw-r--r--app-i18n/canna/files/canna-overflow.patch20
-rw-r--r--app-i18n/canna/files/canna-posix-sort.patch11
-rw-r--r--app-i18n/canna/files/canna.confd7
-rw-r--r--app-i18n/canna/files/canna.hosts1
-rw-r--r--app-i18n/canna/files/canna.initd31
-rw-r--r--app-i18n/canna/files/update-canna-dics_dir36
-rw-r--r--app-i18n/canna/metadata.xml14
16 files changed, 924 insertions, 0 deletions
diff --git a/app-i18n/canna/Manifest b/app-i18n/canna/Manifest
new file mode 100644
index 000000000000..70bcad257d9e
--- /dev/null
+++ b/app-i18n/canna/Manifest
@@ -0,0 +1,16 @@
+AUX canna-Wformat-security.patch 4545 BLAKE2B 796bd97f2b9af03a63c13cde02d59eda227b0b7ba51238de9780057447fd23bd42290e07d1585804e5141ef754919ddc10e908296a7ca8fcbf47366989196c34 SHA512 7c2649d98b5eac8d625586b245fff7e07b19616395e754a59443d7858e818f3651fb5e03e97ebcacb5ff4b2c1cb0f0c45aa0838ae85350e0c24906faa3a36102
+AUX canna-Wformat.patch 340 BLAKE2B b9b31b256ae43dc8ec4e1589bef9c6f221e4e8d4a8532ac7cb6e20ff58806b73b7009c30d83656c879b243fce674263e0b6f1077a8e30595704230cebaf71dd4 SHA512 38b2cc703ff69f29352b1c2bc4bc01c3387edaada98f724344525c68ee5a8ae1490ba0ce84fac53b00ca89b7cab201640631638ee578fb00211cc59d4d968bcd
+AUX canna-canuum.patch 779 BLAKE2B a27f98b535846fb387cb9946319a52c7b5fb22feb19bdc2f3f8860066234459ae66b643d298bdef821edc3c918956941dab6a8770b81e141a5709cda89d7b980 SHA512 62005fe564b7c6cb627c10af136e4ad15bfd6f2d17cd71093ae34b9e7f7f47c582ff5c32fadf5068fdaa5c685dd2b898cccb71ccd86b19b429e34f57c290cdd6
+AUX canna-gentoo.patch 4310 BLAKE2B 8386af1ba3b2c6c2a420246c6de5f218c92553c3569fb47bf275682570ca877c7e0d8cd61c36537218cca77f60421d7ccf460615ff957e54d9488f1df2789cd4 SHA512 31d893ba6fe873d1b9ceb5106c87d027b31013e049ed673d14e7f32232bf259b44a1fa397c133fa0b5a39252a61d400d4d1951a4448e4aaffad649f648652e6b
+AUX canna-kpdef.patch 202 BLAKE2B 44c443da25ac63ad7a418378df55c490c3f288c0ccbb6803fd6d7f2fcd764dca32650f484ec8a5267ca0d8db0349f3736e974a44e7ab0eeebee32a4a5603f3f1 SHA512 f258be22226109b63df7e2aae3a42fb42d13d9f3ca4b92ad9a15f477ac0a4906bf5af3065f4ebfc69a49165073451f310a6b8c43ad57cb772d9af6ece74a50df
+AUX canna-overflow.patch 788 BLAKE2B bd71eafb119ce107540ae4de355755e7e575ee8d197414e24831f6025d2445395a816a7b3c1a9824e5f9d6cc1b732389551abebbb706cfeeac17c1d61275f83a SHA512 7caaf95c9e01277247036488e3f154abca6e7811e17a2c7d1dd34f3a1906ee780ed2cd03a0435d051098d99521b55350d3332e218cebfdebf2391e1f38da541c
+AUX canna-posix-sort.patch 282 BLAKE2B f13360695b7209d1865494438ffc9f5e246173bc82a578ca2e2790072e338c59dd6dc762993624514337cf6d9001020fbf093307ea8c5ea408ae5d911649cc09 SHA512 310b16878d8f2fb0fa35d45ac43709186a70a36d4fba86abe78a6ccc7df410ddba38f7113effa69da4a5afe1ecf9d81175d285338e59793fee352eca93069d5d
+AUX canna.confd 129 BLAKE2B aef79cdd496fbf5a13929a8fa1b08b65ab15e15c9ce690d5f345372e6e5e15cf54b96ce851a564ba4a64613976630b4cc828fd0c9ec4d24f4e0305bc23eab3eb SHA512 401fdca224f3ab85ceff0786865efdda01c121481f9f084c3983f806d5e5543b706a844676d65529fd06a19d264877499c01c1ecc2b4a7dcb94e686c20d34a41
+AUX canna.hosts 5 BLAKE2B a10fe2813bf946464641605e8cdda362629a62817de0a7f72f2b0e54963d3370ebd8d9fa9db28753d1e0567d78c0e5c830c1e13db54e4eea562276263da9fda8 SHA512 88cabd1d372defd4bed25c23bafa0a883b13c1184be0287717df6a0946de0d39b73cdbda3660432f787cded46b57bd187106b12969e960760a9cc2db76e5b497
+AUX canna.initd 782 BLAKE2B 1e34cfc3ed28f5903600f591e55d0eb559aa5336eee54a54a7ab40d2be3816f6a62a947e9c87d4834425f71640c96847836830439f4eeb76a4f25a372fc9d1d0 SHA512 1fd348f2aa4139bbe6154b157b75bf8a39a8ddf36a9a072088279c88241981a9af9024df71aa777ca4e93270d53d0bea8363b31cfb07d229d4a37c48828779e6
+AUX update-canna-dics_dir 1101 BLAKE2B 9b429c2ddfb0e3c2c8a754f7fb61b776abbb809f81c93127e5f8be9ec768df6c28fcce75fe69a5b92a195ce49e20572c083aca5b4309f042a50b53bffafc4042 SHA512 135fdabf3995ddf82d3f14aece908e952f3d514fd83e2f86d8113b1026b7dcaea2156225be251a6d9a74a35ee075d5ebb32c05d9deb85905120287d0af1f4207
+DIST Canna37p3.tar.bz2 1263065 BLAKE2B b5fb496c0ef71dc57b2da1409eea2238ea62ece3286d498d694bc7a18cb0f5e052dca95d692b4302988acd2199d350b893ae4aedc91aab0b737c3e0675be9cba SHA512 82846f2393aa2654dd2c97a93178098b8bd11e5409b584447f1b6fdf303adacc9802e2293cafd98b68af8b69622625ed00aa9712bf270feaa119adfdf4211158
+EBUILD canna-3.7_p3-r1.ebuild 2258 BLAKE2B b03a2e8c85e6fb544b2870e44990d35f5b48616f0500c0ac332a2287e4ab3e0b61bd222023b6cf4c207dee49c3e96dad2818d9042b8b353f5bcfd4f2bd972a59 SHA512 77a8ab7a8a8ffef263500364aa5fec7f888f2c55b9d5adea10c531852b8317872dfbfb807e9f92daacefee2a0bb725cd8a86f53f648964d672edfe8e0b238458
+EBUILD canna-3.7_p3-r2.ebuild 2893 BLAKE2B caf22d1d8914257992917784c03f173446e3cfa0c28aeb55a9007b07d053e33d9cc574d4f55eb253954442ab8c6f17805bf72c04113b36874a6693fe690490a2 SHA512 8c5a7660f2be089841953914fa8863d0ba9190b88c23d8266d5181c1da9e17f313e36b4448ec8009a65802b203d69c72428a640a3a2e0bf01049dffac3f12bba
+EBUILD canna-3.7_p3-r3.ebuild 3297 BLAKE2B 5cb2d2305ab5b780efa5ab5a261c12f48aa536c53283c05bc1a448669c9d639cd9fb41f46609135082397bec23e00634691e2011a421bed9030abcbf080baacc SHA512 16111ac8cef55bfb54c6666ed50288629e3753d571defa98d68fb156e2e4d8c562c130b2ea374faeab2194a53e6521d66e092e054bc884cfad1ead480e9b7323
+MISC metadata.xml 383 BLAKE2B 2947ceefe007eb9bcfd46a69a4b97a2406383931cb320cb594b96952697378147824461f1b55d5caddc419b19aebeb1c5ce69c0f0d31568cbbbe3d1d15fba9ba SHA512 8affc10d697147ea5430d73c40eb4e7621ee9a06d444725566d4e16a28ccab4f53aed3025905894fe6cba0ea874dcf0d2d583d3dcedf3a0ccc8b139af02e5e98
diff --git a/app-i18n/canna/canna-3.7_p3-r1.ebuild b/app-i18n/canna/canna-3.7_p3-r1.ebuild
new file mode 100644
index 000000000000..e38caaff6fb5
--- /dev/null
+++ b/app-i18n/canna/canna-3.7_p3-r1.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit cannadic toolchain-funcs
+
+MY_P="Canna${PV//[._]/}"
+
+DESCRIPTION="A client-server based Kana-Kanji conversion system"
+HOMEPAGE="http://canna.osdn.jp/"
+SRC_URI="mirror://sourceforge.jp/canna/9565/${MY_P}.tar.bz2"
+
+LICENSE="MIT GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="x11-misc/gccmakedep
+ x11-misc/imake"
+RDEPEND=""
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-gentoo.patch
+ "${FILESDIR}"/${PN}-kpdef.patch
+ "${FILESDIR}"/${PN}-overflow.patch
+ "${FILESDIR}"/${PN}-posix-sort.patch
+ "${FILESDIR}"/${PN}-Wformat.patch
+ "${FILESDIR}"/${PN}-Wformat-security.patch
+)
+DOCS="*CHANGES* ChangeLog INSTALL* README* RKCCONF* WHATIS*"
+
+src_prepare() {
+ default
+
+ find . -name '*.man' -o -name '*.jmn' | xargs sed -i.bak -e 's/1M/8/g' || die
+
+ # Multilib-strict fix for amd64
+ sed -i "/DefLibCannaDir/s:/lib$:/$(get_libdir):" Canna.conf
+}
+
+src_configure() {
+ xmkmf -a || die
+}
+
+src_compile() {
+ # bug #279706
+ emake -j1 \
+ CC="$(tc-getCC)" \
+ CDEBUGFLAGS="${CFLAGS}" \
+ LOCAL_LDFLAGS="${LDFLAGS}" \
+ SHLIBGLOBALSFLAGS="${LDFLAGS}" \
+ ${PN}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install.man
+ einstalldocs
+
+ dodir /usr/share/man{,/ja}/man8
+ local man mandir
+ for man in cannaserver cannakill ; do
+ for mandir in "${D}"/usr/share/man "${D}"/usr/share/man/ja ; do
+ mv ${mandir}/man1/${man}.1 ${mandir}/man8/${man}.8
+ done
+ done
+
+ # for backward compatibility
+ dosbin "${FILESDIR}"/update-canna-dics_dir
+
+ keepdir /var/lib/${PN}/dic/{user,group}
+ fowners bin:bin /var/lib/${PN}/dic/{user,group}
+ fperms 0775 /var/lib/${PN}/dic/{user,group}
+
+ insinto /var/lib/${PN}/dic/dics.d
+ newins "${ED}"/var/lib/${PN}/dic/${PN}/dics.dir 00${PN}.dics.dir
+
+ keepdir /var/log/${PN}
+
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+
+ insinto /etc
+ newins "${FILESDIR}"/${PN}.hosts hosts.${PN}
+}
+
+pkg_postinst() {
+ update-cannadic-dir
+
+ if ! locale -a | grep -iq "ja_JP.eucjp"; then
+ elog "Some dictionary tools in this package require ja_JP.EUC-JP locale."
+ elog
+ elog "# echo 'ja_JP.EUC-JP EUC-JP' >> /etc/locale.gen"
+ elog "# locale-gen"
+ elog
+ fi
+}
diff --git a/app-i18n/canna/canna-3.7_p3-r2.ebuild b/app-i18n/canna/canna-3.7_p3-r2.ebuild
new file mode 100644
index 000000000000..a06d55f21d76
--- /dev/null
+++ b/app-i18n/canna/canna-3.7_p3-r2.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit cannadic toolchain-funcs
+
+MY_P="Canna${PV//[._]/}"
+
+DESCRIPTION="A client-server based Kana-Kanji conversion system"
+HOMEPAGE="http://canna.osdn.jp/"
+SRC_URI="mirror://sourceforge.jp/canna/9565/${MY_P}.tar.bz2"
+
+LICENSE="MIT GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="doc ipv6"
+
+DEPEND="x11-misc/gccmakedep
+ x11-misc/imake
+ doc? (
+ app-text/ghostscript-gpl
+ dev-texlive/texlive-langjapanese
+ dev-texlive/texlive-latexrecommended
+ )"
+RDEPEND=""
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-gentoo.patch
+ "${FILESDIR}"/${PN}-kpdef.patch
+ "${FILESDIR}"/${PN}-overflow.patch
+ "${FILESDIR}"/${PN}-posix-sort.patch
+ "${FILESDIR}"/${PN}-Wformat.patch
+ "${FILESDIR}"/${PN}-Wformat-security.patch
+)
+DOCS="*CHANGES* ChangeLog INSTALL* README* RKCCONF* WHATIS*"
+
+src_prepare() {
+ default
+
+ find . -name '*.man' -o -name '*.jmn' | xargs sed -i.bak -e 's/1M/8/g' || die
+
+ sed -i \
+ -e "/DefLibCannaDir/s:/lib$:/$(get_libdir):" \
+ -e "/UseInet6/s:0:$(usex ipv6 1 0):" \
+ Canna.conf
+}
+
+src_configure() {
+ xmkmf -a || die
+
+ if use doc; then
+ cd doc/man/guide/tex
+ xmkmf -a || die
+ cd - > /dev/null
+ fi
+}
+
+src_compile() {
+ # bug #279706
+ emake -j1 \
+ CC="$(tc-getCC)" \
+ CDEBUGFLAGS="${CFLAGS}" \
+ LOCAL_LDFLAGS="${LDFLAGS}" \
+ SHLIBGLOBALSFLAGS="${LDFLAGS}" \
+ ${PN}
+
+ if use doc; then
+ # NOTE: build fails if infinality enabled in fontconfig
+ einfo "Compiling DVI, PS, and PDF documents"
+ # bug #223077
+ emake -C doc/man/guide/tex -j1 \
+ JLATEXCMD="platex -kanji=euc" \
+ DVI2PSCMD="dvips" \
+ VARTEXFONTS="${T}"/fonts \
+ ${PN}.ps \
+ ${PN}.pdf
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install.man
+ einstalldocs
+
+ dodir /usr/share/man{,/ja}/man8
+ local man mandir
+ for man in cannaserver cannakill ; do
+ for mandir in "${D}"/usr/share/man "${D}"/usr/share/man/ja ; do
+ mv ${mandir}/man1/${man}.1 ${mandir}/man8/${man}.8
+ done
+ done
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}
+ doins doc/man/guide/tex/${PN}.{dvi,ps,pdf}
+ fi
+
+ # for backward compatibility
+ dosbin "${FILESDIR}"/update-canna-dics_dir
+
+ keepdir /var/lib/${PN}/dic/{user,group}
+ fowners bin:bin /var/lib/${PN}/dic/{user,group}
+ fperms 0775 /var/lib/${PN}/dic/{user,group}
+
+ insinto /var/lib/${PN}/dic/dics.d
+ newins "${ED}"/var/lib/${PN}/dic/${PN}/dics.dir 00${PN}.dics.dir
+
+ keepdir /var/log/${PN}
+
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+
+ insinto /etc
+ newins "${FILESDIR}"/${PN}.hosts hosts.${PN}
+}
+
+pkg_postinst() {
+ update-cannadic-dir
+
+ if ! locale -a | grep -iq "ja_JP.eucjp"; then
+ elog "Some dictionary tools in this package require ja_JP.EUC-JP locale."
+ elog
+ elog "# echo 'ja_JP.EUC-JP EUC-JP' >> /etc/locale.gen"
+ elog "# locale-gen"
+ elog
+ fi
+}
diff --git a/app-i18n/canna/canna-3.7_p3-r3.ebuild b/app-i18n/canna/canna-3.7_p3-r3.ebuild
new file mode 100644
index 000000000000..ac8473821f75
--- /dev/null
+++ b/app-i18n/canna/canna-3.7_p3-r3.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit autotools cannadic toolchain-funcs
+
+MY_P="Canna${PV//[._]/}"
+
+DESCRIPTION="A client-server based Kana-Kanji conversion system"
+HOMEPAGE="http://canna.osdn.jp/"
+SRC_URI="mirror://sourceforge.jp/${PN}/9565/${MY_P}.tar.bz2"
+
+LICENSE="MIT GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="canuum doc ipv6"
+
+RDEPEND="canuum? (
+ dev-libs/libspt
+ sys-libs/ncurses:=
+ )"
+DEPEND="${RDEPEND}
+ x11-misc/gccmakedep
+ x11-misc/imake
+ canuum? ( virtual/pkgconfig )
+ doc? (
+ app-text/ghostscript-gpl
+ dev-texlive/texlive-langjapanese
+ dev-texlive/texlive-latexrecommended
+ )"
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-gentoo.patch
+ "${FILESDIR}"/${PN}-canuum.patch
+ "${FILESDIR}"/${PN}-kpdef.patch
+ "${FILESDIR}"/${PN}-overflow.patch
+ "${FILESDIR}"/${PN}-posix-sort.patch
+ "${FILESDIR}"/${PN}-Wformat.patch
+ "${FILESDIR}"/${PN}-Wformat-security.patch
+)
+DOCS="*CHANGES* ChangeLog INSTALL* README* RKCCONF* WHATIS*"
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "/DefLibCannaDir/s:/lib$:/$(get_libdir):" \
+ -e "/UseInet6/s:0:$(usex ipv6 1 0):" \
+ ${PN^c}.conf
+
+ if use canuum; then
+ cd canuum
+ mv configure.{in,ac}
+ eautoreconf
+ cd - > /dev/null
+ fi
+}
+
+src_configure() {
+ xmkmf -a || die
+
+ if use canuum; then
+ cd canuum
+ xmkmf -a || die
+ # workaround for sys-libs/ncurses[tinfo]
+ sed -i "/^TERMCAP_LIB/s:=.*:=$(pkg-config --libs ncurses):" Makefile
+ cd - > /dev/null
+ fi
+
+ if use doc; then
+ cd doc/man/guide/tex
+ xmkmf -a || die
+ cd - > /dev/null
+ fi
+}
+
+src_compile() {
+ # bug #279706
+ emake -j1 \
+ CC="$(tc-getCC)" \
+ CDEBUGFLAGS="${CFLAGS}" \
+ LOCAL_LDFLAGS="${LDFLAGS}" \
+ SHLIBGLOBALSFLAGS="${LDFLAGS}" \
+ ${PN}
+
+ if use canuum; then
+ einfo "Compiling canuum"
+ emake -C canuum -j1 \
+ CC="$(tc-getCC)" \
+ CDEBUGFLAGS="${CFLAGS}" \
+ LOCAL_LDFLAGS="${LDFLAGS}" \
+ canuum
+ fi
+
+ if use doc; then
+ # NOTE: build fails if infinality enabled in fontconfig
+ einfo "Compiling DVI, PS, and PDF documents"
+ # bug #223077
+ emake -C doc/man/guide/tex -j1 \
+ JLATEXCMD="platex -kanji=euc" \
+ DVI2PSCMD="dvips" \
+ VARTEXFONTS="${T}"/fonts \
+ ${PN}.ps \
+ ${PN}.pdf
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install.man
+ einstalldocs
+
+ if use canuum; then
+ emake -C canuum DESTDIR="${D}" install install.man
+ docinto canuum
+ dodoc README.jp
+ fi
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}
+ doins doc/man/guide/tex/${PN}.{dvi,ps,pdf}
+ fi
+
+ # for backward compatibility
+ dosbin "${FILESDIR}"/update-canna-dics_dir
+
+ keepdir /var/lib/${PN}/dic/{user,group}
+ fowners bin:bin /var/lib/${PN}/dic/{user,group}
+ fperms 0775 /var/lib/${PN}/dic/{user,group}
+
+ insinto /var/lib/${PN}/dic/dics.d
+ newins "${ED}"/var/lib/${PN}/dic/${PN}/dics.dir 00${PN}.dics.dir
+
+ keepdir /var/log/${PN}
+
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+
+ insinto /etc
+ newins "${FILESDIR}"/${PN}.hosts hosts.${PN}
+}
+
+pkg_postinst() {
+ update-cannadic-dir
+
+ if ! locale -a | grep -iq "ja_JP.eucjp"; then
+ elog "Some dictionary tools in this package require ja_JP.EUC-JP locale."
+ elog
+ elog "# echo 'ja_JP.EUC-JP EUC-JP' >> /etc/locale.gen"
+ elog "# locale-gen"
+ elog
+ fi
+}
diff --git a/app-i18n/canna/files/canna-Wformat-security.patch b/app-i18n/canna/files/canna-Wformat-security.patch
new file mode 100644
index 000000000000..c83552b5cba5
--- /dev/null
+++ b/app-i18n/canna/files/canna-Wformat-security.patch
@@ -0,0 +1,199 @@
+--- a/cmd/catdic/can.c
++++ b/cmd/catdic/can.c
+@@ -1236,7 +1236,7 @@
+ break;
+ default:
+ if (init[0] == '/') {
+- (void)fprintf(stderr,msg_abnl);
++ (void)fprintf(stderr,"%s",msg_abnl);
+ } else {
+ (void)fprintf(stderr,msg_abnls,init);
+ }
+@@ -1297,11 +1297,11 @@
+
+ if ( opt_fq ) {
+ if ( opt_s ) {
+- (void) fprintf(stderr,msg_sfq);
++ (void) fprintf(stderr,"%s",msg_sfq);
+ exit(ERR_VALUE) ;
+ }
+ if ( opt_l || opt_std ) {
+- (void) fprintf(stderr,msg_l);
++ (void) fprintf(stderr,"%s",msg_l);
+ exit(ERR_VALUE) ;
+ }
+ mode = mode | PL_DIC ;
+@@ -1491,7 +1491,7 @@
+ break;
+ default:
+ if(init[0] == '/') {
+- fprintf(stderr,msg_abnl );
++ fprintf(stderr,"%s",msg_abnl );
+ }
+ else {
+ fprintf(stderr,msg_abnls,init);
+--- a/cmd/catdic/rutil.c
++++ b/cmd/catdic/rutil.c
+@@ -271,7 +271,7 @@
+ "Dictionary \"%s\" does not exist.\n"), dicname);
+ break;
+ case NOTALC :
+- (void)fprintf(stderr, msg_mem);
++ (void)fprintf(stderr, "%s", msg_mem);
+ break;
+ case BADF :
+ (void)fprintf(stderr, gettxt("cannacmd:196",
+@@ -297,7 +297,7 @@
+ (void)fprintf(stderr,msg_abnls,init);
+ }
+ else {
+- (void)fprintf(stderr,msg_abnl);
++ (void)fprintf(stderr,"%s",msg_abnl);
+ }
+ break;
+ }
+@@ -321,7 +321,7 @@
+ (void)fprintf(stderr, msg_abnls, init);
+ }
+ else {
+- (void)fprintf(stderr, msg_abnl);
++ (void)fprintf(stderr, "%s", msg_abnl);
+ }
+ ret = -1;
+ return ret;
+@@ -332,13 +332,13 @@
+ (void)fprintf(stderr, msg_mnts, init);
+ }
+ else {
+- (void)fprintf(stderr, msg_mnt);
++ (void)fprintf(stderr, "%s", msg_mnt);
+ }
+ ret = -1;
+ return ret;
+ }
+ if ((mode & PL_DIC) == PL_DIC ) {
+- (void)fprintf(stderr,msg_fq);
++ (void)fprintf(stderr,"%s",msg_fq);
+ ret = -1 ;
+ return ret ;
+ }
+@@ -359,7 +359,7 @@
+ ret = 0;
+ break;
+ case NOTALC :
+- (void)fprintf(stderr, msg_mem);
++ (void)fprintf(stderr, "%s", msg_mem);
+ ret = -1;
+ break;
+ case BADF :
+@@ -421,7 +421,7 @@
+ ret = -1;
+ break;
+ case BADCONT :
+- (void)fprintf(stderr,msg_cnt);
++ (void)fprintf(stderr,"%s",msg_cnt);
+ ret = -1;
+ break;
+ default:
+@@ -429,7 +429,7 @@
+ (void)fprintf(stderr, msg_abnls, init);
+ }
+ else {
+- (void)fprintf(stderr, msg_abnl);
++ (void)fprintf(stderr, "%s", msg_abnl);
+ }
+ exit(ERR_VALUE);
+ break;
+@@ -448,7 +448,7 @@
+ ret = 0;
+ break;
+ case NOTALC :
+- (void)fprintf(stderr, msg_mem);
++ (void)fprintf(stderr, "%s", msg_mem);
+ ret = -1;
+ break;
+ case BADF :
+@@ -509,11 +509,11 @@
+ ret = -1;
+ break;
+ case BADARG :
+- (void)fprintf(stderr,msg_fq);
++ (void)fprintf(stderr,"%s",msg_fq);
+ ret = -1;
+ break;
+ case BADCONT :
+- (void)fprintf(stderr,msg_cnt);
++ (void)fprintf(stderr,"%s",msg_cnt);
+ ret = -1;
+ break;
+ case NOENT : /* 91.12.03 */
+@@ -526,7 +526,7 @@
+ (void)fprintf(stderr, msg_abnls, init);
+ }
+ else {
+- (void)fprintf(stderr, msg_abnl);
++ (void)fprintf(stderr, "%s", msg_abnl);
+ }
+ exit(ERR_VALUE);
+ break;
+@@ -556,7 +556,7 @@
+ (void)fprintf(stderr, msg_abnls,init);
+ }
+ else {
+- (void)fprintf(stderr, msg_abnl);
++ (void)fprintf(stderr, "%s", msg_abnl);
+ }
+ ret = -1;
+ return ret;
+@@ -567,13 +567,13 @@
+ (void)fprintf(stderr, msg_mnts, init);
+ }
+ else {
+- (void)fprintf(stderr, msg_mnt);
++ (void)fprintf(stderr, "%s", msg_mnt);
+ }
+ ret = -1;
+ return ret;
+ }
+ if ((mode & PL_DIC) == PL_DIC ) {
+- (void)fprintf(stderr, msg_fq);
++ (void)fprintf(stderr, "%s", msg_fq);
+ ret = -1 ;
+ return ret ;
+ }
+@@ -608,7 +608,7 @@
+ ret = -2; /* 93.03.03 */
+ break;
+ case BADCONT :
+- (void)fprintf(stderr, msg_cnt);
++ (void)fprintf(stderr, "%s", msg_cnt);
+ ret = -1;
+ break;
+ default:
+@@ -616,7 +616,7 @@
+ (void)fprintf(stderr, msg_abnls, init);
+ }
+ else {
+- (void)fprintf(stderr, msg_abnl);
++ (void)fprintf(stderr, "%s", msg_abnl);
+ }
+ ret = -1;
+ break;
+@@ -651,7 +651,7 @@
+ ret = -2; /* 93.03.03 */
+ break;
+ case BADCONT :
+- (void)fprintf(stderr, msg_cnt);
++ (void)fprintf(stderr, "%s", msg_cnt);
+ ret = -1;
+ break;
+ default:
+@@ -659,7 +659,7 @@
+ (void)fprintf(stderr, msg_abnls, init);
+ }
+ else {
+- (void)fprintf(stderr, msg_abnl);
++ (void)fprintf(stderr, "%s", msg_abnl);
+ }
+ ret = -1;
+ break;
diff --git a/app-i18n/canna/files/canna-Wformat.patch b/app-i18n/canna/files/canna-Wformat.patch
new file mode 100644
index 000000000000..a8f5aa37163e
--- /dev/null
+++ b/app-i18n/canna/files/canna-Wformat.patch
@@ -0,0 +1,11 @@
+--- a/doc/man/guide/tex/cannaindex.c
++++ b/doc/man/guide/tex/cannaindex.c
+@@ -198,7 +198,7 @@
+ }
+ inf = fopen(argv[1], "r");
+ if (!inf) {
+- fprintf(stderr, "%s: Can not open file \"%s\".\n", argv[1]);
++ fprintf(stderr, "%s: Can not open file \"%s\".\n", program, argv[1]);
+ exit(1);
+ }
+ pages = readindex(inf, entries);
diff --git a/app-i18n/canna/files/canna-canuum.patch b/app-i18n/canna/files/canna-canuum.patch
new file mode 100644
index 000000000000..293ffbb54c90
--- /dev/null
+++ b/app-i18n/canna/files/canna-canuum.patch
@@ -0,0 +1,34 @@
+--- a/canuum/configure.in
++++ b/canuum/configure.in
+@@ -401,7 +401,7 @@
+ dnl
+ olibs="$LIBS"
+ AC_MSG_CHECKING(--with-term-libs argument)
+-AC_ARG_WITH(tlib,
++AC_ARG_WITH(term-libs,
+ [ --with-term-libs=-lLIB terminal library to be used ],)
+ if test -n "$with_term_libs"; then
+ AC_MSG_RESULT($with_term_libs)
+--- a/canuum/wnn_config.h
++++ b/canuum/wnn_config.h
+@@ -149,8 +149,8 @@
+ #define TTY_KCODE J_EUJIS
+ #define PTY_KCODE J_EUJIS
+ # else /* !DGUX */
+-#define TTY_KCODE J_JIS
+-#define PTY_KCODE J_JIS
++#define TTY_KCODE J_EUJIS
++#define PTY_KCODE J_EUJIS
+ # endif
+ #endif
+
+--- a/canuum/wnn_os.h
++++ b/canuum/wnn_os.h
+@@ -41,6 +41,7 @@
+ #include <signal.h>
+ #if STDC_HEADERS
+ # include <stdlib.h>
++# include <string.h>
+ # include <limits.h>
+ #endif /* STDC_HEADERS */
+
diff --git a/app-i18n/canna/files/canna-gentoo.patch b/app-i18n/canna/files/canna-gentoo.patch
new file mode 100644
index 000000000000..7ecfb4b9cd84
--- /dev/null
+++ b/app-i18n/canna/files/canna-gentoo.patch
@@ -0,0 +1,146 @@
+--- a/Canna.conf
++++ b/Canna.conf
+@@ -109,12 +109,12 @@
+ # define DefErrDir $(cannaPrefix)/log
+ # define DefLibCannaDir $(cannaExecPrefix)/lib
+ #else
+-# define DefCannaPrefix /usr/local/canna
++# define DefCannaPrefix $(EPREFIX)/usr
+ # ifdef ObsoleteInstallDir
+ # define DefErrDir /usr/spool/canna
+ # define DefLibCannaDir /usr/lib
+ # else
+-# define DefErrDir /var/log
++# define DefErrDir $(EPREFIX)/var/log/$(PN)
+ # define DefLibCannaDir $(cannaExecPrefix)/lib
+ # endif
+ #endif
+@@ -123,7 +123,7 @@
+ # define DefCannaLibDir $(cannaPrefix)/lib
+ #else
+ # define DefCannaSrvDir $(cannaExecPrefix)/sbin
+-# define DefCannaLibDir $(cannaPrefix)/share/canna
++# define DefCannaLibDir $(cannaPrefix)/share/$(PN)
+ #endif
+
+ #if defined(LinuxArchitecture) || defined(FreeBSDArchitecture) \
+@@ -147,9 +147,11 @@
+ XCOMM cannaLibDir = /var/lib/canna
+ XCOMM cannaLibDir = /var/db/canna
+ cannaLibDir = DefCannaLibDir
+-XCOMM cannaManDir = $(cannaPrefix)/share/man
+-cannaManDir = $(cannaPrefix)/man
+-cannaIncDir = $(cannaPrefix)/include/canna
++cannaManDir = $(cannaPrefix)/share/man
++XCOMM cannaManDir = $(cannaPrefix)/man
++cannaIncDir = $(cannaPrefix)/include/$(PN)
++cannaShareDir = $(cannaPrefix)/share/$(PN)
++cannaDocDir = $(cannaPrefix)/share/doc/$(PF)
+
+ libCannaDir = DefLibCannaDir
+ ErrDir = DefErrDir
+@@ -237,7 +239,7 @@
+ /* #define UseInstalledLibCanna YES */
+ #define UseInstalledLibCanna NO
+
+-DicDir = $(cannaLibDir)/dic
++DicDir = $(EPREFIX)/var/lib/$(PN)/dic
+
+ /* ここから下は変更不要です */
+
+--- a/Imakefile
++++ b/Imakefile
+@@ -87,6 +87,7 @@
+ echo "#define CANNAHOSTFILE \"$(cannaLibDir)/cannahost\"";\
+ echo "/* for lib/canna */";\
+ echo "#define CANNALIBDIR \"$(cannaLibDir)\""; \
++ echo "#define CANNASHAREDIR \"$(cannaShareDir)\""; \
+ echo "#define SUPPORT_OLD_WCHAR $(supportOldWchar)"; \
+ echo "/* for scripts */";\
+ echo "#define CANNABINDIR $(cannaBinDir)"; \
+--- a/dic/phono/Imakefile
++++ b/dic/phono/Imakefile
+@@ -27,9 +27,10 @@
+
+ ROMAJI_DIC_DEF = -DSHIFT
+
+- DICDIR = $(cannaLibDir)/dic
+- SAMPLEDIR = $(cannaLibDir)/sample
+- SAMPLESRCDIR = $(cannaLibDir)/sample/src
++ DICDIR = $(DicDir)
++ CANNASHAREDIR = $(cannaShareDir)
++ SAMPLEDIR = $(cannaDocDir)/sample
++ SAMPLESRCDIR = $(cannaDocDir)/sample/src
+
+ KPDEF = default.kpdef jdaemon.kpdef just.kpdef kaisoku.kpdef kana.kpdef \
+ lan5.kpdef matsu.kpdef newjis.kpdef romaji.kpdef sokuon.kpdef \
+@@ -69,7 +70,7 @@
+ MakeDirectories(install,$(DICDIR))
+ MakeDirectories(install,$(SAMPLESRCDIR))
+
+-InstallMultiple($(ROMKANA_TABLES),$(DICDIR))
++InstallMultiple($(ROMKANA_TABLES),$(CANNASHAREDIR))
+
+ #ifdef USE_OBSOLETE_STYLE_FILENAME
+ InstallNonExec(default.kpdef,$(SAMPLESRCDIR))
+--- a/lib/canna/romaji.c
++++ b/lib/canna/romaji.c
+@@ -427,7 +427,6 @@
+ }
+ }
+
+-#if 0 /* currently CANNASHAREDDIR is not defined */
+ if (retval == (struct RkRxDic *)NULL) { /* added for Debian by ISHIKAWA Mutsumi <ishikawa@linux.or.jp> */
+ extern jrUserInfoStruct *uinfo;
+
+@@ -450,7 +449,6 @@
+ }
+ }
+ }
+-#endif
+
+ if (retval == (struct RkRxDic *)NULL) { /* 全部オープンできない */
+ sprintf(rdic,
+--- a/misc/Imakefile
++++ b/misc/Imakefile
+@@ -48,7 +48,7 @@
+ MakeLintLibSubdirs($(SUBDIRS))
+ MakeLintSubdirs($(SUBDIRS),install.ln,install.ln)
+
+-MakeDirectories(install,$(cannaLibDir)/sample/src)
++MakeDirectories(install,$(cannaDocDir)/sample/src)
+
+ #ifdef USE_OBSOLETE_STYLE_FILENAME
+ default.canna: default.ca
+@@ -58,8 +58,8 @@
+ $(CP) default.ca default.canna
+ #endif
+
+ InstallNonExec(default.canna,$(cannaLibDir))
+-InstallNonExec(is.c,$(cannaLibDir)/sample/src)
++InstallNonExec(is.c,$(cannaDocDir)/sample/src)
+
+ clean::
+ $(RM) $(PROGRAMS)
+--- a/misc/initfiles/Imakefile
++++ b/misc/initfiles/Imakefile
+@@ -6,7 +6,7 @@
+ #endif
+
+ CANNAROOT = ../..
+- SAMPLEDIR = $(cannaLibDir)/sample
++ SAMPLEDIR = $(cannaDocDir)/sample
+
+ all::
+
+--- a/server/Imakefile
++++ b/server/Imakefile
+@@ -6,7 +6,7 @@
+ #ifdef __EMX__
+ INSTFLAGS = $(INSTUGIDFLAGS)
+ #else
+- INSTFLAGS = -s $(INSTUGIDFLAGS)
++ INSTFLAGS = $(INSTUGIDFLAGS)
+ #endif
+ DEFINES = $(CANNASERVER_DEFINES) $(SIGNAL_DEFINES) ConnectionFlags
+ INCLUDES = -I$(CANNAROOT)/include
diff --git a/app-i18n/canna/files/canna-kpdef.patch b/app-i18n/canna/files/canna-kpdef.patch
new file mode 100644
index 000000000000..b0b71b4442c8
--- /dev/null
+++ b/app-i18n/canna/files/canna-kpdef.patch
@@ -0,0 +1,18 @@
+--- a/dic/phono/default.kpdef
++++ b/dic/phono/default.kpdef
+@@ -350,3 +350,15 @@
+ _ _
+ / /
+ \\ ¥
++
++# some useful romkan symbols
++z, ‥
++z- 〜
++z. …
++z/ ・
++z[ 『
++z] 』
++zh ←
++zj ↓
++zk ↑
++zl →
diff --git a/app-i18n/canna/files/canna-overflow.patch b/app-i18n/canna/files/canna-overflow.patch
new file mode 100644
index 000000000000..ef3b6ad1b95d
--- /dev/null
+++ b/app-i18n/canna/files/canna-overflow.patch
@@ -0,0 +1,20 @@
+--- a/cmd/catdic/rutil.c
++++ b/cmd/catdic/rutil.c
+@@ -384,7 +384,7 @@
+ (void)fprintf(stderr,gettxt("cannacmd:205",
+ "Specified dictionary \"%s\" already exists. Do you overwrite it ? (y/n)"),
+ dicname);
+- fgets(ans,80,stdin);
++ fgets(ans,sizeof(ans),stdin);
+ } else {
+ (void)fprintf(stderr,gettxt("cannacmd:206",
+ "Specified dictionary \"%s\" already exists."),dicname);
+@@ -474,7 +474,7 @@
+ if (isatty(fileno(stdin)) != 0) {
+ (void)fprintf(stderr,gettxt("cannacmd:216",
+ "Personal learning file of dictionary \"%s\" exists. Do you overwrite it ? (y/n)"),dicname);
+- fgets(ans,80,stdin);
++ fgets(ans,sizeof(ans),stdin);
+ } else {
+ (void)fprintf(stderr,gettxt("cannacmd:217",
+ "Personal learning file of system dictionary \"%s\" already exists."),
diff --git a/app-i18n/canna/files/canna-posix-sort.patch b/app-i18n/canna/files/canna-posix-sort.patch
new file mode 100644
index 000000000000..1f98aaf5efdd
--- /dev/null
+++ b/app-i18n/canna/files/canna-posix-sort.patch
@@ -0,0 +1,11 @@
+--- a/cmd/mkbindic/mkbindic.cpp
++++ b/cmd/mkbindic/mkbindic.cpp
+@@ -40,7 +40,7 @@
+ bck_text=;
+ flag=;
+ compat_flag=;
+-sortcmd="sort -d -s +0 -1"
++sortcmd="sort -d -s -k 1,1"
+ usage="usage: mkbindic [-m|-s] [-name dicname] [-c version] textfile [cpp-args ...]";
+ : ${TMPDIR:=/tmp}
+
diff --git a/app-i18n/canna/files/canna.confd b/app-i18n/canna/files/canna.confd
new file mode 100644
index 000000000000..d3fdce5425a2
--- /dev/null
+++ b/app-i18n/canna/files/canna.confd
@@ -0,0 +1,7 @@
+CANNASERVER_ENABLE_SYSLOG="yes"
+
+# Specify user to run as
+CANNASERVER_OWNER="bin"
+
+# Options for cannaserver
+CANNASERVER_OPTS=""
diff --git a/app-i18n/canna/files/canna.hosts b/app-i18n/canna/files/canna.hosts
new file mode 100644
index 000000000000..509143d86315
--- /dev/null
+++ b/app-i18n/canna/files/canna.hosts
@@ -0,0 +1 @@
+unix
diff --git a/app-i18n/canna/files/canna.initd b/app-i18n/canna/files/canna.initd
new file mode 100644
index 000000000000..97dac733fa94
--- /dev/null
+++ b/app-i18n/canna/files/canna.initd
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/${RC_SVCNAME}server"
+command_args="${CANNASERVER_OPTS}"
+
+# CANNASERVER_OPTS and CANNASERVER_OWNER is defined in /etc/conf.d/canna
+CANNASERVER_LOGFILE="/var/log/${RC_SVCNAME}/CANNA0msgs"
+
+depend() {
+ use logger
+ need net
+}
+
+start_pre() {
+ if [ "${CANNASERVER_ENABLE_SYSLOG}" = "yes" ]; then
+ command_args="${command_args} -syslog"
+ elif [ -z "${CANNASERVER_OWNER}" ]; then
+ checkpath "${CANNASERVER_LOGFILE}"
+ else
+ checkpath -o "${CANNASERVER_OWNER}" "${CANNASERVER_LOGFILE}"
+ command_args="${command_args} -u ${CANNASERVER_OWNER}"
+ fi
+}
+
+stop() {
+ ebegin "Stopping ${name:-${RC_SVCNAME}}"
+ /usr/sbin/${RC_SVCNAME}kill
+ eend ${?}
+}
diff --git a/app-i18n/canna/files/update-canna-dics_dir b/app-i18n/canna/files/update-canna-dics_dir
new file mode 100644
index 000000000000..a57290ec3bad
--- /dev/null
+++ b/app-i18n/canna/files/update-canna-dics_dir
@@ -0,0 +1,36 @@
+#!/bin/sh
+# update-canna-dics_dir
+# compiles dics.dir files for Canna Server
+# Copyright 2001 ISHIKAWA Mutsumi
+# Licensed under the GNU General Public License, version 2. See the file
+# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
+
+SRC=/var/lib/canna/dic/dics.d
+DEST=/var/lib/canna/dic/canna
+
+for DIR in $SRC $DEST; do
+ VALID=yes
+ if [ ! -d $DIR ]; then
+ echo "$0: $DIR does not exist or is not a directory." >&2
+ VALID=
+ fi
+done
+
+if [ -n "$VALID" ]; then
+ # write new dics.dir file in case we are interrupted
+ echo '# dics.dir -- automatically generated file. DO NOT EDIT.' > $DEST/dics.dir.update-new
+# echo '# To modify, see update-canna-dics_dir(8). >> $DEST/dics.dir.update-new
+ # are there any files to process?
+ if [ "$(echo $SRC/*.dics.dir)" != "$SRC/*.dics.dir" ]; then
+ for file in $SRC/*.dics.dir; do
+ echo "# $file" >> $DEST/dics.dir.update-new
+ cat $file >> $DEST/dics.dir.update-new
+ done
+ mv $DEST/dics.dir.update-new $DEST/dics.dir
+ else
+ # no files to process, remove the one
+ rm -f $DEST/dics.dir
+ fi
+fi
+
+exit
diff --git a/app-i18n/canna/metadata.xml b/app-i18n/canna/metadata.xml
new file mode 100644
index 000000000000..af8866b3beb0
--- /dev/null
+++ b/app-i18n/canna/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cjk@gentoo.org</email>
+ <name>Cjk</name>
+ </maintainer>
+ <use>
+ <flag name="canuum">Build canuum</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge-jp">canna</remote-id>
+ </upstream>
+</pkgmetadata>