Stardict added.

This commit is contained in:
Шашкин Николай 2023-08-07 15:13:46 +03:00
parent 42e13a2abb
commit 68c50cb799
6 changed files with 561 additions and 0 deletions

View File

@ -0,0 +1,4 @@
DIST QQWry.Dat.bz2 4114875 BLAKE2B 3fb1a3b223b799645fcc7adc3d8158c80551bd1d35689a44d4e24978ef3535def3c8c45c37f066ea3969d141aef0c34c6040dcdaf6b3f337b178bbffaf52d86f SHA512 46fd677359a2144429eb9d16131ca6b19db1c086fa93e275aa3d702d3024a65d54064df931d1ed2ba5b0c1f7d9595a284f2a8995d9cd5aac96a45216422dc9ae
DIST WyabdcRealPeopleTTS.tar.bz2 84329208 BLAKE2B 1dd9c00e4e914b0d747876aa566db59a4b973b3ec61fa1ed7a55f885d7f415f573f2f8783eca46c565bc52df4ba3576b3a0f4e863b4f7ba688007f6d6b375209 SHA512 1553e62c139ecb005bb04163147d94aa58e4ba7f9ee3172b760c6e4776587c12bf816c42e0131c82195b7c738ec9ee5082f39b974790f5cacd522367919beaa0
DIST stardict-3.0.6.tar.bz2 9341740 BLAKE2B df0ccfbd485dfb514bdcf4edaf92b2faf3c11016b025ca09596adcc12738027395a049d9d27420427acdf5c46923cb43ba521d334f875070f5451b7ff147e36f SHA512 81d93324b6e8954af7c20ea6d2a3054bb564d786a21b1cb541c728da7a18a6e7ddb23e595055ccc77e6866bbb8c89fb4f17023e33664761dbe1ee8cd55768658
DIST stardict-4.0.0_pre20170304.tar.xz 3603012 BLAKE2B c9ac41f1e27c013e9c20e5b5477889cb4933ebaf35629311362ec48e820b10a7492d464ac7eddded697ca49f56f65032a1af36088e8e731643e83532e0586e48 SHA512 ec27bb95069d727fd96cb30f2d7ad94992cc53e55903b373612e29265263ea5da2c8a25f6c9618db50dc38c33efebe13324c2b8eb09b198559a1ee70029f0b6a

View File

@ -0,0 +1,38 @@
From adb01aafd94b6bd5b5cc49889f4f09d483ee5ac4 Mon Sep 17 00:00:00 2001
From: Nikolay Korotkiy <sikmir@gmail.com>
Date: Thu, 1 Sep 2016 14:11:41 +0300
Subject: [PATCH] tabfile: incorrectly handles whitespace in file name
Signed-off-by: Andrew Savchenko <bircoph@gmail.com>
---
tools/src/libtabfile.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/src/libtabfile.cpp b/tools/src/libtabfile.cpp
index dda256a..2ee9dfd 100644
--- a/tools/src/libtabfile.cpp
+++ b/tools/src/libtabfile.cpp
@@ -22,6 +22,7 @@
#include <cstring>
#include <cstdlib>
#include <string>
+#include <sstream>
#include <glib/gstdio.h>
#include <glib.h>
@@ -228,9 +229,10 @@ static bool write_dictionary(const char *filename, GArray *array)
g_message("%s wordcount: %d.", get_impl(basefilename), array->len);
#ifndef _WIN32
- std::string command(std::string("dictzip ") + dicfilename);
+ std::stringstream command;
+ command << "dictzip \"" << dicfilename << "\"";
int result;
- result = system(command.c_str());
+ result = system(command.str().c_str());
if (result == -1) {
g_print("system() error!\n");
}
--
2.10.2

View File

@ -0,0 +1,33 @@
--- 1/dict/src/desktop.cpp
+++ 1/dict/src/desktop.cpp
@@ -39,9 +39,11 @@
#ifndef _WIN32
+#if 0
# include "canberra.h"
# include "canberra-gtk.h"
#endif
+#endif
@@ -176,14 +178,18 @@
return; // error
}
#else
+#if 0
if (conf->get_bool_at("dictionary/always_use_sound_play_command")) {
+#endif
const std::string &playcmd=
conf->get_string_at("dictionary/sound_play_command");
spawn_command(playcmd.c_str(), filename.c_str());
+#if 0
} else {
ca_context_play(ca_gtk_context_get(), 0, CA_PROP_MEDIA_FILENAME, filename.c_str(), NULL);
}
#endif
+#endif
}
void play_video_file(const std::string& filename)

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>martin@mvath.de</email>
<name>Martin Väth</name>
<description>maintainer of the updates in the mv overlay</description>
</maintainer>
<maintainer type="person">
<email>bircoph@gentoo.org</email>
<name>Andrew Savchenko</name>
</maintainer>
<longdescription>
StarDict is an international dictionary Software. It has powerful features
such as "Glob-style pattern matching", "Scan selection word," "Fuzzy
query," etc. Stardict Version3.0 has developed a lot of new functions, such
as Full-text translation, Net Dict.
</longdescription>
<use>
<flag name="advertisement">Enable stardict advertisements plugin</flag>
<flag name="cal">Enable calendar support using cal program</flag>
<flag name="canberra">Use libcanberra for sound playing</flag>
<flag name="dictdotcn">Enable dict.cn network plugin (for Chinese language)</flag>
<flag name="espeak">Enable text to speech synthesizer plugin using
<pkg>app-accessibility/espeak</pkg> engine</flag>
<flag name="flite">Enable text to speech synthesizer plugin using
<pkg>app-accessibility/flite</pkg> engine</flag>
<flag name="fortune">Enable plugin to read fortune messages using
<pkg>games-misc/fortune-mod</pkg>. You may consider installing
<pkg>games-misc/fortune-mod-all</pkg> to get all fortune messages.</flag>
<flag name="gucharmap">Enable plugin for unicode symbols description using
<pkg>gnome-extra/gucharmap</pkg></flag>
<flag name="htmlparse">Enable plugin to parse dictionaries with html content</flag>
<flag name="info">Enable plugin to read info pages</flag>
<flag name="man">Enable plugin to read manual pages</flag>
<flag name="powerwordparse">Enable plugin to parse powerword dictionaries</flag>
<flag name="pronounce">Install WyabdcRealPeopleTTS package (it is just many .wav files)
to make StarDict pronounce English words</flag>
<flag name="qqwry">Enable QQWry plugin, which provides information (in Chinese language)
about geographical positions, owner, etc. for IP addresses</flag>
<flag name="tools">Build and install dictionary management tools and converters from
various dictionary formats</flag>
<flag name="updateinfo">Enable plugin to check for stardict updates</flag>
<flag name="wikiparse">Enable plugin to parse dictionaries in wikimedia format</flag>
<flag name="wordnet">Enable wordnet plugin to find similar English words using
lexical database</flag>
<flag name="xdxfparse">Enable plugin to parse dictionaries in xdxf (XML Dictionary
eXchange Format)</flag>
<flag name="youdaodict">Enable youdao.com network plugin (for Chinese language)</flag>
</use>
<upstream>
<remote-id type="sourceforge">stardict-4</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,205 @@
# Copyright 1999-2022 Gentoo Authors and Martin V\"ath
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# NOTE: Even though the *.dict.dz are the same as dictd/freedict's files,
# their indexes seem to be in a different format. So we'll keep them
# seperate for now.
GNOME2_LA_PUNT=yes
inherit autotools flag-o-matic gnome2
DESCRIPTION="A international dictionary supporting fuzzy and glob style matching"
HOMEPAGE="http://stardict-4.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}-4/${P}.tar.bz2
pronounce? ( https://${PN}-3.googlecode.com/files/WyabdcRealPeopleTTS.tar.bz2 )
qqwry? ( mirror://gentoo/QQWry.Dat.bz2 )"
LICENSE="CPL-1.0 GPL-3 LGPL-2"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ppc ppc64 sparc x86"
IUSE="advertisement debug dictdotcn espeak examples gnome +gucharmap
+htmlparse man perl +powerwordparse pronounce qqwry spell
tools updateinfo +wikiparse +wordnet +xdxfparse"
RESTRICT="test"
COMMON_DEPEND="
>=dev-libs/glib-2.16:2
dev-libs/libsigc++:2=
sys-libs/zlib:=
x11-libs/gdk-pixbuf:2
>=x11-libs/gtk+-2.20:2
x11-libs/libX11
x11-libs/pango
gucharmap? ( gnome-extra/gucharmap:0= )
spell? ( >=app-text/enchant-1.2:0= )
tools? (
dev-db/mysql-connector-c
dev-libs/libpcre:=
dev-libs/libxml2:=
)
"
RDEPEND="${COMMON_DEPEND}
espeak? ( >=app-accessibility/espeak-1.29 )
perl? ( dev-lang/perl )
"
DEPEND="${COMMON_DEPEND}
gnome? (
app-text/docbook-xml-dtd:4.3
app-text/gnome-doc-utils
dev-libs/libxslt
)
dev-util/intltool
sys-devel/gettext
virtual/pkgconfig
"
# docs are messy, installed manually below
DOCS=""
src_prepare() {
# From Fedora
# Remove unneeded sigc++ header files to make it sure
# that we are using system-wide libsigc++
# (and these does not work on gcc43)
find dict/src/sigc++* -name \*.h -or -name \*.cc | xargs rm -f || die
# libsigc++ started to require c++11 support
append-cxxflags "-std=c++11"
eapply_user
if ! use gnome
then sed -i \
-e 's/GNOME_DOC_INIT/GNOME_DOC_INIT([0.32],[:],[:])/' \
-e '/AM_GCONF_SOURCE/d' \
-e '/help\/Makefile/d' \
dict/configure.ac
sed -i \
-e 's/ help / /' \
dict/Makefile.am
sed -i \
-e 's/\(libstardict_la_LIBADD = \)/\1 -lgmodule-2.0 /' \
dict/src/lib/Makefile.am
eautoreconf
fi
gnome2_src_prepare
}
src_configure() {
# Hint: EXTRA_ECONF="--enable-gnome-support" and manual install of
# libbonobo-2, libgnome-2, libgnomeui-2, gconf-2 and orbit-2 will
# give you GNOME 2.x support, that is otherwise considered deprecated
# because of the deep GNOME 2.x core library dependencies
# Festival plugin crashes, bug 188684. Disable for now.
gnome2_src_configure \
--disable-festival \
--disable-gnome-support \
--disable-gpe-support \
--disable-schemas-install \
--disable-scrollkeeper \
$(use_enable advertisement) \
$(use_enable debug) \
$(use_enable dictdotcn) \
$(use_enable espeak) \
$(use_enable gucharmap) \
$(use_enable htmlparse) \
$(use_enable man) \
$(use_enable powerwordparse) \
$(use_enable qqwry) \
$(use_enable spell) \
$(use_enable tools) \
$(use_enable updateinfo) \
$(use_enable wikiparse) \
$(use_enable wordnet) \
$(use_enable xdxfparse)
}
src_install() {
gnome2_src_install
dodoc AUTHORS ChangeLog README
docinto dict
dodoc dict/{AUTHORS,ChangeLog,README,TODO}
dodoc dict/doc/{Documentation,FAQ,HowToCreateDictionary,Skins,StarDictFileFormat,TextualDictionaryFileFormat,Translation}
docinto lib
dodoc lib/{AUTHORS,ChangeLog,README}
if use examples; then
docinto dict
dodoc dict/doc/stardict-textual-dict*
docompress -x /usr/share/doc/${PF}/dict
fi
if use qqwry; then
insinto /usr/share/${PN}/data
doins ../QQWry.Dat
fi
if use pronounce; then
docinto WyabdcRealPeopleTTS
dodoc ../WyabdcRealPeopleTTS/{README,readme.txt}
rm -f ../WyabdcRealPeopleTTS/{README,readme.txt}
insinto /usr/share
doins -r ../WyabdcRealPeopleTTS
fi
# noinst_PROGRAMS with ${PN}_ prefix from tools/src/Makefile.am wrt #292773
# and additional scripts from tools dir
if use tools; then
local app
local apps="${PN}-editor pydict2dic olddic2newdic oxford2dic directory2dic
dictd2dic wquick2dic ec50 directory2treedic treedict2dir jdictionary mova
xmlinout soothill kanjidic2 powerword kdic 21tech 21shiji buddhist
tabfile cedict edict duden ${PN}-dict-update degb2utf frgb2utf
jpgb2utf gmx2utf rucn kingsoft wikipedia wikipediaImage babylon
${PN}2txt ${PN}-verify fest2dict i2e2dict downloadwiki
ooo2dict myspell2dic exc2i2e dictbuilder tabfile2sql KangXi Unihan
xiaoxuetang-ja wubi ydp2dict wordnet lingvosound2resdb
resdatabase2dir dir2resdatabase ${PN}-index sd2foldoc ${PN}-text2bin
${PN}-bin2text ${PN}-repair"
use perl && apps+=" dicts-dump.pl ncce2stardict.pl parse-oxford.perl"
for app in ${apps}; do
if [[ "${app}" =~ ^${PN} ]]; then
dobin "tools/src/${app}"
else
newbin "tools/src/${app}" "${PN}_${app}"
fi
done
docinto tools
dodoc tools/{AUTHORS,ChangeLog,README}
if use examples; then
docinto tools
dodoc tools/src/{dictbuilder.{example,readme},example.ifo,example_treedict.tar.bz2}
docompress -x /usr/share/doc/${PF}/tools
fi
fi
}
pkg_postinst() {
elog
elog "Note: festival text to speech (TTS) plugin is not built. To use festival"
elog 'TTS plugin, please, emerge festival and enable "Use TTS program." at:'
elog '"Preferences -> Dictionary -> Sound" and fill in "Commandline" with:'
elog '"echo %s | festival --tts"'
elog
elog "You will now need to install ${PN} dictionary files. If"
elog "you have not, execute the below to get a list of dictionaries:"
elog " emerge -s ${PN}-"
elog
elog "Additionally you may install any stardict dictionary from the net"
elog "by unpacking it to:"
elog " /usr/share/stardict/dic"
elog
gnome2_pkg_postinst
}

View File

@ -0,0 +1,227 @@
# Copyright 1999-2022 Gentoo Authors and Martin V\"ath
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# NOTE: Even though the *.dict.dz are the same as dictd/freedict's files,
# their indexes seem to be in a different format. So we'll keep them
# seperate for now.
GNOME2_LA_PUNT=yes
inherit autotools flag-o-matic gnome2
DESCRIPTION="A international dictionary supporting fuzzy and glob style matching"
HOMEPAGE="http://stardict-4.sourceforge.net/
https://github.com/huzheng001/stardict-3"
SRC_URI="https://dev.gentoo.org/~bircoph/distfiles/${P}.tar.xz
pronounce? ( https://${PN}-3.googlecode.com/files/WyabdcRealPeopleTTS.tar.bz2 )
qqwry? ( mirror://gentoo/QQWry.Dat.bz2 )"
LICENSE="CPL-1.0 GPL-3 LGPL-2"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ppc ppc64 ~riscv sparc x86"
IUSE="advertisement cal canberra debug dictdotcn espeak examples flite
fortune gnome gucharmap +htmlparse info man perl +powerwordparse
pronounce qqwry spell tools updateinfo +wikiparse +wordnet
+xdxfparse youdaodict"
RESTRICT="test"
COMMON_DEPEND="
>=dev-libs/glib-2.32:2
dev-libs/libsigc++:2=
canberra? ( media-libs/libcanberra[gtk3] )
sys-libs/zlib:=
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/libX11
x11-libs/pango
espeak? ( >=app-accessibility/espeak-1.29 )
flite? ( app-accessibility/flite )
gucharmap? ( gnome-extra/gucharmap:2.90= )
spell? ( >=app-text/enchant-1.2:0= )
tools? (
dev-db/mysql-connector-c
dev-libs/expat
dev-libs/libpcre:=
dev-libs/libxml2:=
)
"
RDEPEND="${COMMON_DEPEND}
info? ( sys-apps/texinfo )
fortune? ( games-misc/fortune-mod )
perl? ( dev-lang/perl )
"
DEPEND="${COMMON_DEPEND}
gnome? (
app-text/docbook-xml-dtd:4.3
app-text/gnome-doc-utils
dev-libs/libxslt
)
dev-util/intltool
sys-devel/gettext
virtual/pkgconfig
"
# docs are messy, installed manually below
DOCS=""
PATCHES=( "${FILESDIR}/${PN}-4.0.0_pre20160518-tabfile.patch" )
src_prepare() {
# From Fedora
# Remove unneeded sigc++ header files to make it sure
# that we are using system-wide libsigc++
# (and these does not work on gcc43)
find dict/src/sigc++* -name \*.h -or -name \*.cc | xargs rm -f || die
# libsigc++ started to require c++11 support
append-cxxflags "-std=c++11"
# bug 604318
sed -i '/AM_GCONF_SOURCE_2/d' dict/configure.ac || die
if ! use gnome
then sed -i \
-e '/GNOME_DOC_INIT/d' \
-e '/help\/Makefile/d' \
dict/configure.ac || die
sed -i \
-e 's/ help / /' \
dict/Makefile.am || die
sed -i \
-e 's/\(libstardict_la_LIBADD = \)/\1 -lgmodule-2.0 /' \
dict/src/lib/Makefile.am || die
fi
if ! use canberra
then sed -i \
-e 's/ libcanberra libcanberra-gtk3//' \
dict/configure.ac || die
eapply "${FILESDIR}/${PN}-strip-canberra.patch"
fi
eapply_user
eautoreconf
gnome2_src_prepare
}
src_configure() {
# Festival plugin crashes, bug 188684. Disable for now.
# Gnome2 support is disabled due to deprecation request, bug 644346
gnome2_src_configure \
--disable-darwin-support \
--disable-festival \
--disable-gnome-support \
--disable-gpe-support \
--disable-maemo-support \
--disable-schemas-install \
--disable-scrollkeeper \
$(use_enable advertisement) \
$(use_enable cal) \
$(use_enable debug) \
$(use_enable dictdotcn) \
$(use_enable espeak) \
$(use_enable flite) \
$(use_enable fortune) \
$(use_enable gucharmap) \
$(use_enable htmlparse) \
$(use_enable info) \
$(use_enable man) \
$(use_enable powerwordparse) \
$(use_enable qqwry) \
$(use_enable spell) \
$(use_enable tools) \
$(use_enable updateinfo) \
$(use_enable wikiparse) \
$(use_enable wordnet) \
$(use_enable xdxfparse) \
$(use_enable youdaodict)
}
src_install() {
gnome2_src_install
dodoc AUTHORS ChangeLog README
docinto dict
dodoc dict/{AUTHORS,ChangeLog,README,TODO}
dodoc dict/doc/{Documentation,FAQ,HowToCreateDictionary,Skins,StarDictFileFormat,TextualDictionaryFileFormat,Translation}
dodoc -r dict/doc/wiki
docinto lib
dodoc lib/{AUTHORS,ChangeLog,README}
if use examples; then
docinto dict
dodoc dict/doc/stardict-textual-dict*
docompress -x /usr/share/doc/${PF}/dict
fi
if use qqwry; then
insinto /usr/share/${PN}/data
doins ../QQWry.Dat
fi
if use pronounce; then
docinto WyabdcRealPeopleTTS
dodoc ../WyabdcRealPeopleTTS/{README,readme.txt}
rm -f ../WyabdcRealPeopleTTS/{README,readme.txt}
insinto /usr/share
doins -r ../WyabdcRealPeopleTTS
fi
# noinst_PROGRAMS with ${PN}_ prefix from tools/src/Makefile.am wrt #292773
# and additional scripts from tools dir
if use tools; then
local app
local apps="${PN}-editor pydict2dic olddic2newdic oxford2dic directory2dic dictd2dic
wquick2dic ec50 directory2treedic treedict2dir jdictionary mova xmlinout
soothill kanjidic2 powerword kdic 21tech 21shiji buddhist tabfile
cedict edict duden ${PN}-dict-update degb2utf frgb2utf jpgb2utf gmx2utf
rucn kingsoft kingsoft2 wikipedia wikipediaImage babylon ${PN}2txt ${PN}-verify
fest2dict i2e2dict downloadwiki ooo2dict myspell2dic exc2i2e
dictbuilder tabfile2sql KangXi Unihan xiaoxuetang-ja wubi ydp2dict
wordnet lingvosound2resdb resdatabase2dir dir2resdatabase ${PN}-index
sd2foldoc
${PN}-text2bin ${PN}-bin2text ${PN}-repair"
use perl && apps+=" dicts-dump.pl ncce2stardict.pl parse-oxford.perl"
for app in ${apps}; do
if [[ "${app}" =~ ^${PN} ]]; then
dobin "tools/src/${app}"
else
newbin "tools/src/${app}" "${PN}_${app}"
fi
done
docinto tools
dodoc tools/{AUTHORS,ChangeLog,README}
if use examples; then
docinto tools
dodoc tools/src/{dictbuilder.{example,readme},example.ifo,example_treedict.tar.bz2}
docompress -x /usr/share/doc/${PF}/tools
fi
fi
}
pkg_postinst() {
elog
elog "Note: festival text to speech (TTS) plugin is not built. To use festival"
elog 'TTS plugin, please, emerge festival and enable "Use TTS program." at:'
elog '"Preferences -> Dictionary -> Sound" and fill in "Commandline" with:'
elog '"echo %s | festival --tts"'
elog
elog "You will now need to install ${PN} dictionary files. If"
elog "you have not, execute the below to get a list of dictionaries:"
elog " emerge -s ${PN}-"
elog
elog "Additionally you may install any stardict dictionary from the net"
elog "by unpacking it to:"
elog " /usr/share/stardict/dic"
elog
gnome2_pkg_postinst
}