diff options
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | PKGBUILD | 67 | ||||
-rw-r--r-- | dict-freedict-deu-eng.install | 30 |
3 files changed, 61 insertions, 46 deletions
@@ -1,15 +1,15 @@ pkgbase = dict-freedict-deu-eng - pkgdesc = German -> English dictionary for dictd et al. from Freedict.org - pkgver = 1.8.1_fd0.2.1 + pkgdesc = German -> English dictionary for dictd et al. from FreeDict.org + pkgver = 1.9_fd1 pkgrel = 1 url = https://freedict.org/ install = dict-freedict-deu-eng.install arch = any license = GPL license = AGPL3 - makedepends = freedict-tools-svn>=1:r443-2 + makedepends = freedict-tools>=1:0.6.0 optdepends = dictd: dict client and server - source = https://ftp.tu-chemnitz.de/pub/Local/urz/ding/old-releases/ding-1.8.1.tar.gz - sha512sums = 7d1b459d40e26482c3c16a79565cb897a492fa5807f44c5c3ed1022bcf65ba90bec9cb503cc67970742c2beeb34bd653c684e56ef5492f536254bf475d3f70a4 + source = ding-1.9.gz::https://ftp.tu-chemnitz.de/pub/Local/urz/ding/de-en/de-en.txt.gz + sha512sums = 172b61d4ee52ea14385608cca62891ecab22a4136aa5967654f56b5ef4c77c9f4feeb294396be43b7787133fabdfb2ace8648d2ee4fa877cf21ec566a0ef2b77 pkgname = dict-freedict-deu-eng @@ -2,56 +2,69 @@ # README: # * Building this package takes very long (a day or so) and consumes quite a -# lot of RAM (> 4 GiB). +# lot of RAM (> 7 GiB). # * Consider to use the corresponding -bin package instead. _lang=deu-eng -pkgname=dict-freedict-${_lang} -_dingver=1.8.1 -_pkgver=${_dingver}-fd0.2.1 -pkgver=${_pkgver//-/_} +pkgname="dict-freedict-${_lang}" +_dingver=1.9 +_pkgver="${_dingver}-fd1" +pkgver="${_pkgver//-/_}" pkgrel=1 -pkgdesc="German -> English dictionary for dictd et al. from Freedict.org" +pkgdesc="German -> English dictionary for dictd et al. from FreeDict.org" arch=('any') url="https://freedict.org/" license=('GPL' 'AGPL3') optdepends=('dictd: dict client and server') -makedepends=('freedict-tools-svn>=1:r443-2') -install=${pkgname}.install -source=("https://ftp.tu-chemnitz.de/pub/Local/urz/ding/old-releases/ding-${_dingver}.tar.gz") -sha512sums=('7d1b459d40e26482c3c16a79565cb897a492fa5807f44c5c3ed1022bcf65ba90bec9cb503cc67970742c2beeb34bd653c684e56ef5492f536254bf475d3f70a4') +makedepends=('freedict-tools>=1:0.6.0') +install="${pkgname}.install" +source=("ding-${_dingver}.gz::https://ftp.tu-chemnitz.de/pub/Local/urz/ding/de-en/de-en.txt.gz") +sha512sums=('172b61d4ee52ea14385608cca62891ecab22a4136aa5967654f56b5ef4c77c9f4feeb294396be43b7787133fabdfb2ace8648d2ee4fa877cf21ec566a0ef2b77') + + +_freedict_tools_dir=/usr/lib/freedict-tools +_ding2tei_dir="${_freedict_tools_dir}/importers/ding2tei" prepare() { - mkdir "$_lang" + mkdir -p dict/ding + ln -s "${srcdir}/ding-${_dingver}" dict/ding/de-en.txt - printf '%s\n\n%s\n' \ - 'DISTFILES = deu-eng.tei' \ - 'include $(FREEDICT_TOOLS)/mk/dicts.mk' \ - > "${_lang}/Makefile" + mkdir -p "dict/tei/${_lang}" + ln -s "${_ding2tei_dir}/dict/tei/${_lang}/Makefile" "dict/tei/${_lang}/" } build() { - local _freedict_tools_dir=/usr/lib/freedict-tools - local _ding2tei_dir="${_freedict_tools_dir}/importers/ding2tei" - - "$_ding2tei_dir"/preprocess/de-en/all.sh \ - < "ding-${_dingver}/de-en.txt" \ - > de-en.txt.preprocessed + local _utf8_locale + if [[ "$LANG" == *.UTF-8 ]] + then + _utf8_locale="$LANG" + else + _utf8_locale="$(localectl list-locales | grep '\.UTF-8$' | head -n 1)" + if [[ "$_utf8_locale" == '' ]] + then + printf 'No UTF-8 locale available. Cannot continue.' + return 1 + fi + fi - "${_ding2tei_dir}/ding2tei" de-en.txt.preprocessed "${_lang}/${_lang}.tei" + # Build the TEI XML file. + # * ding2tei (incl. the preprocess scripts) needs a UTF-8 locale. + # - The tools operating on the built TEI XML should not need this. + make -C "$_ding2tei_dir" -o ding2tei LC_ALL="$_utf8_locale" \ + dictdir="${srcdir}/dict" "${_lang}" - cd "$_lang" - make FREEDICT_TOOLS="$_freedict_tools_dir" build-dictd + # Build the DICT files (this takes very long). + make -C "dict/tei/${_lang}" FREEDICT_TOOLS="$_freedict_tools_dir" \ + build-dictd } package() { - install -m 755 -d "${pkgdir}/usr/share/dictd" - install -m 644 -t "${pkgdir}/usr/share/dictd/" \ - "${_lang}/build/dictd/${_lang}".{dict.dz,index} + make -C "dict/tei/${_lang}" FREEDICT_TOOLS="$_freedict_tools_dir" \ + DESTDIR="$pkgdir" PREFIX=/usr install } diff --git a/dict-freedict-deu-eng.install b/dict-freedict-deu-eng.install index 92c4d1701898..3bacda675c5e 100644 --- a/dict-freedict-deu-eng.install +++ b/dict-freedict-deu-eng.install @@ -1,10 +1,12 @@ +# Generated by aur-fd-scripts - https://git.respiranto.de/aur-fd-scripts.git/ + basename=deu-eng -pkgname=dict-freedict-$basename +pkgname="dict-freedict-${basename}" dictd_conf=/etc/dict/dictd.conf datadir=/usr/share/dictd -conf="database $basename { - data $datadir/$basename.dict.dz - index $datadir/$basename.index +conf="database ${basename} { + data ${datadir}/${basename}.dict.dz + index ${datadir}/${basename}.index }" post_install() @@ -12,12 +14,12 @@ post_install() echo if pacman -Qq dictd > /dev/null 2>&1 then - if grep -q "^database *$basename" "$dictd_conf" + if grep -q "^database *${basename}" "${dictd_conf}" then - echo "$pkgname already configured in $dictd_conf" + echo "${pkgname} already configured in ${dictd_conf}" else - echo "Adding configuration for $pkgname to $dictd_conf" - echo "$conf" >> "$dictd_conf" + echo "Adding configuration for ${pkgname} to ${dictd_conf}" + echo "${conf}" >> "${dictd_conf}" fi if systemctl -q is-active dictd.service @@ -54,17 +56,17 @@ post_remove() { if pacman -Qq dictd > /dev/null 2>&1 then - current_conf="$(grep -A 3 "^database *$basename" "$dictd_conf")" - if test -n "$current_conf" + current_conf="$(grep -A 3 "^database *${basename}" "${dictd_conf}")" + if test -n "${current_conf}" then echo - if test "$current_conf" = "$conf" + if test "${current_conf}" = "${conf}" then - echo "Removing configuration for $pkgname from $dictd_conf" - sed -i "/database $basename {/,/}/d" "$dictd_conf" + echo "Removing configuration for ${pkgname} from ${dictd_conf}" + sed -i "/database ${basename} {/,/}/d" "${dictd_conf}" else echo "User created / modified configuration" \ - "for $pkgname in $dictd_conf is left untouched." + "for ${pkgname} in ${dictd_conf} is left untouched." fi fi |