blob: 05d48dc97dee56b02d5eeba53655dcf09c6a63bb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: myspell-r2.eclass
# @MAINTAINER:
# Conrad Kostecki <conikost@gentoo.org>
# @AUTHOR:
# Tomáš Chvátal <scarabeus@gentoo.org>
# @SUPPORTED_EAPIS: 7 8
# @BLURB: An eclass to streamline the construction of ebuilds for new Myspell dictionaries.
# @DESCRIPTION:
# The myspell-r2 eclass is designed to streamline the construction of ebuilds for
# the new Myspell dictionaries which support hunspell.
# @ECLASS_VARIABLE: MYSPELL_DICT
# @DEFAULT_UNSET
# @DESCRIPTION:
# Array variable containing list of all dictionary files.
# @CODE
# MYSPELL_DICT=( "file.dic" "dir/file2.aff" )
# @CODE
# @ECLASS_VARIABLE: MYSPELL_HYPH
# @DEFAULT_UNSET
# @DESCRIPTION:
# Array variable containing list of all hyphenation files.
# @CODE
# MYSPELL_HYPH=( "file.dic" "dir/file2.dic" )
# @CODE
# @ECLASS_VARIABLE: MYSPELL_THES
# @DEFAULT_UNSET
# @DESCRIPTION:
# Array variable containing list of all thesarus files.
# @CODE
# MYSPELL_THES=( "file.dat" "dir/file2.idx" )
# @CODE
case ${EAPI} in
7|8) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
# Basically no extra deps needed.
# Unzip is required for .oxt libreoffice extensions
# which are just fancy zip files.
BDEPEND="app-arch/unzip"
# by default this stuff does not have any folder in the pack
S="${WORKDIR}"
# @FUNCTION: myspell-r2_src_unpack
# @DESCRIPTION:
# Unpack all variants of weird stuff.
# In our case .oxt packs.
myspell-r2_src_unpack() {
debug-print-function ${FUNCNAME} "$@"
local f
for f in ${A}; do
case ${f} in
*.oxt)
echo ">>> Unpacking "${DISTDIR}/${f}" to ${PWD}"
unzip -qoj "${DISTDIR}"/${f}
assert "failed unpacking ${DISTDIR}/${f}"
;;
*) unpack ${f} ;;
esac
done
}
# @FUNCTION: myspell-r2_src_install
# @DESCRIPTION:
# Install the dictionaries to the right places.
myspell-r2_src_install() {
debug-print-function ${FUNCNAME} "$@"
local x target
# Following the debian directory layout here.
# DICT: /usr/share/hunspell
# THES: /usr/share/mythes
# HYPH: /usr/share/hyphen
# We just need to copy the required files to proper places.
# TODO: backcompat dosym remove when all dictionaries and libreoffice
# ebuilds in tree use only the new paths
# Very old installs have hunspell to be symlink to myspell.
# This results in fcked up install/symlink stuff.
if [[ -L "${EPREFIX}/usr/share/hunspell" ]] ; then
eerror "\"${EPREFIX}/usr/share/hunspell\" is a symlink."
eerror "Please remove it so it is created properly as folder"
die "\"${EPREFIX}/usr/share/hunspell\" is a symlink."
fi
insinto /usr/share/hunspell
for x in "${MYSPELL_DICT[@]}"; do
target="${x##*/}"
newins "${x}" "${target}" || die
dosym ../hunspell/"${target}" /usr/share/myspell/"${target}" || die
done
insinto /usr/share/mythes
for x in "${MYSPELL_THES[@]}"; do
target="${x##*/}"
newins "${x}" "${target}" || die
dosym ../mythes/"${target}" /usr/share/myspell/"${target}" || die
done
insinto /usr/share/hyphen
for x in "${MYSPELL_HYPH[@]}"; do
target="${x##*/}"
newins "${x}" "${target}" || die
dosym ../hyphen/"${target}" /usr/share/myspell/"${target}" || die
done
# Remove licenses as they suffix them with .txt too
rm -rf COPYING*
rm -rf LICENSE*
rm -rf LICENCE*
rm -rf license*
rm -rf licence*
# Readme and so on
for x in *.txt README*; do
if [[ -f ${x} ]]; then
dodoc ${x} || die
fi
done
}
EXPORT_FUNCTIONS src_unpack src_install
|