summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-i18n/tagainijisho/tagainijisho-9999.ebuild')
-rw-r--r--app-i18n/tagainijisho/tagainijisho-9999.ebuild189
1 files changed, 189 insertions, 0 deletions
diff --git a/app-i18n/tagainijisho/tagainijisho-9999.ebuild b/app-i18n/tagainijisho/tagainijisho-9999.ebuild
new file mode 100644
index 00000000000..da6473ad98a
--- /dev/null
+++ b/app-i18n/tagainijisho/tagainijisho-9999.ebuild
@@ -0,0 +1,189 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit cmake-utils gnome2-utils
+
+if [[ "${PV}" == 9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/Gnurou/tagainijisho"
+elif [[ "${PV}" == *_pre* ]]; then
+ inherit vcs-snapshot
+
+ TAGAINIJISHO_GIT_REVISION=""
+fi
+if [[ "${PV}" == 9999 || "${PV}" == *_pre* ]]; then
+ JMDICT_DATE=""
+ KANJIDIC2_DATE=""
+ KANJIVG_VERSION="20160426"
+fi
+
+DESCRIPTION="Open-source Japanese dictionary and kanji lookup tool"
+HOMEPAGE="https://www.tagaini.net/ https://github.com/Gnurou/tagainijisho"
+if [[ "${PV}" == 9999 ]]; then
+ SRC_URI=""
+elif [[ "${PV}" == *_pre* ]]; then
+ SRC_URI="https://github.com/Gnurou/${PN}/archive/${TAGAINIJISHO_GIT_REVISION}.tar.gz -> ${P}.tar.gz"
+else
+ SRC_URI="https://github.com/Gnurou/${PN}/releases/download/${PV}/${P}.tar.gz"
+fi
+if [[ "${PV}" == *_pre* ]]; then
+ # Upstream: http://ftp.monash.edu.au/pub/nihongo/JMdict.gz
+ SRC_URI+=" https://home.apache.org/~arfrever/distfiles/JMdict-${JMDICT_DATE}.gz"
+fi
+if [[ "${PV}" == *_pre* ]]; then
+ # Upstream: http://www.edrdg.org/kanjidic/kanjidic2.xml.gz
+ SRC_URI+=" https://home.apache.org/~arfrever/distfiles/kanjidic2-${KANJIDIC2_DATE}.xml.gz"
+fi
+if [[ "${PV}" == 9999 || "${PV}" == *_pre* ]]; then
+ SRC_URI+=" https://github.com/KanjiVG/kanjivg/releases/download/r${KANJIVG_VERSION}/kanjivg-${KANJIVG_VERSION}.xml.gz"
+fi
+
+LICENSE="GPL-3+ public-domain"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND=">=dev-db/sqlite-3.12:3
+ dev-qt/qtcore:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5"
+DEPEND="${RDEPEND}
+ dev-qt/linguist-tools:5"
+
+pkg_langs=(ar cs de es fa fi fr hu id it nb nl pl pt ru sv th tr uk vi zh)
+IUSE+=" ${pkg_langs[@]/#/l10n_}"
+unset pkg_langs
+
+src_unpack() {
+ if [[ "${PV}" == 9999 ]]; then
+ git-r3_src_unpack
+ elif [[ "${PV}" == *_pre* ]]; then
+ unpack ${P}.tar.gz
+ mv tagainijisho-${TAGAINIJISHO_GIT_REVISION} ${P} || die
+ else
+ unpack ${P}.tar.gz
+ fi
+
+ if [[ "${PV}" == 9999 ]]; then
+ # JMdict.gz and kanjidic2.xml.gz are updated once per day.
+
+ local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
+ local today="$(TZ="UTC" date --date=today "+%Y-%m-%d")"
+ local yesterday="$(TZ="UTC" date --date=yesterday "+%Y-%m-%d")"
+
+ if [[ -f ${distdir}/JMdict-${today}.gz && -s ${distdir}/JMdict-${today}.gz ]]; then
+ # Use previously downloaded file from today.
+ JMDICT_DATE="${today}"
+ elif [[ -f ${distdir}/JMdict-${yesterday}.gz && -s ${distdir}/JMdict-${yesterday}.gz ]]; then
+ # Use previously downloaded file from yesterday. File from today may still be nonexistent.
+ JMDICT_DATE="${yesterday}"
+ else
+ # Download file from today or yesterday.
+ wget http://ftp.monash.edu.au/pub/nihongo/JMdict.gz -O JMdict.gz || die
+ JMDICT_DATE="$(gzip -cd JMdict.gz | grep -E "^<!-- JMdict created: [[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2} -->$" | sed -e "s/.*\([[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}\).*/\1/")"
+ if [[ ${JMDICT_DATE} != ${today} && ${JMDICT_DATE} != ${yesterday} ]]; then
+ die "Unexpected date in JMdict.gz: '${JMDICT_DATE}'"
+ fi
+ (
+ addwrite "${distdir}"
+ mv JMdict.gz "${distdir}/JMdict-${JMDICT_DATE}.gz" || die
+ )
+ fi
+ einfo "Date in JMdict.gz: '${JMDICT_DATE}'"
+
+ if [[ -f ${distdir}/kanjidic2-${today}.xml.gz && -s ${distdir}/kanjidic2-${today}.xml.gz ]]; then
+ # Use previously downloaded file from today.
+ KANJIDIC2_DATE="${today}"
+ elif [[ -f ${distdir}/kanjidic2-${yesterday}.xml.gz && -s ${distdir}/kanjidic2-${yesterday}.xml.gz ]]; then
+ # Use previously downloaded file from yesterday. File from today may still be nonexistent.
+ KANJIDIC2_DATE="${yesterday}"
+ else
+ # Download file from today or yesterday.
+ wget http://www.edrdg.org/kanjidic/kanjidic2.xml.gz -O kanjidic2.xml.gz || die
+ KANJIDIC2_DATE="$(gzip -cd kanjidic2.xml.gz | grep -E "^<date_of_creation>[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}</date_of_creation>$" | sed -e "s/.*\([[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}\).*/\1/")"
+ if [[ ${KANJIDIC2_DATE} != ${today} && ${KANJIDIC2_DATE} != ${yesterday} ]]; then
+ die "Unexpected date in kanjidic2.xml.gz: '${KANJIDIC2_DATE}'"
+ fi
+ (
+ addwrite "${distdir}"
+ mv kanjidic2.xml.gz "${distdir}/kanjidic2-${KANJIDIC2_DATE}.xml.gz" || die
+ )
+ fi
+ einfo "Date in kanjidic2.xml.gz: '${KANJIDIC2_DATE}'"
+
+ mkdir "${S}/3rdparty" || die
+ gzip -cd "${distdir}/JMdict-${JMDICT_DATE}.gz" > "${S}/3rdparty/JMdict" || die
+ gzip -cd "${distdir}/kanjidic2-${KANJIDIC2_DATE}.xml.gz" > "${S}/3rdparty/kanjidic2.xml" || die
+ elif [[ "${PV}" == *_pre* ]]; then
+ mkdir "${S}/3rdparty" || die
+ pushd "${S}/3rdparty" > /dev/null || die
+
+ unpack JMdict-${JMDICT_DATE}.gz
+ mv JMdict-${JMDICT_DATE} JMdict || die
+
+ unpack kanjidic2-${KANJIDIC2_DATE}.xml.gz
+ mv kanjidic2-${KANJIDIC2_DATE}.xml kanjidic2.xml || die
+
+ popd > /dev/null || die
+ fi
+
+ if [[ "${PV}" == 9999 || "${PV}" == *_pre* ]]; then
+ pushd "${S}/3rdparty" > /dev/null || die
+
+ unpack kanjivg-${KANJIVG_VERSION}.xml.gz
+ mv kanjivg-${KANJIVG_VERSION}.xml kanjivg.xml || die
+
+ popd > /dev/null || die
+ fi
+}
+
+src_configure() {
+ # GUI linguae
+ # en is not optional, and build fails if none other than en is set, so adding ja as non-optional too.
+ local lang use_lang
+ for lang in i18n/*.ts; do
+ lang=${lang#i18n/tagainijisho_}
+ lang=${lang%.ts}
+ case ${lang} in
+ fa_IR|fi_FI|pt_BR)
+ # Use generic tags.
+ use_lang=${lang%%_*}
+ ;;
+ *)
+ use_lang=${lang}
+ ;;
+ esac
+
+ if [[ ${lang} != en && ${lang} != ja ]] && ! use l10n_${use_lang}; then
+ rm i18n/tagainijisho_${lang}.ts || die
+ fi
+ done
+
+ # Dictionary linguae
+ # en is not optional here either, but nothing special needs to be done.
+ local dict_langs
+ for lang in $(sed -e 's/;/ /g' -ne '/set(DICT_LANG ".*")/s/.*"\(.*\)".*/\1/p' CMakeLists.txt); do
+ if use l10n_${lang}; then
+ dict_langs+="${dict_langs:+;}${lang}"
+ fi
+ done
+
+ local mycmakeargs=(
+ -DDICT_LANG="${dict_langs}${dict_langs:-;}"
+ -DEMBED_SQLITE=OFF
+ )
+
+ cmake-utils_src_configure
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}