| 1 | # Copyright 1999-2008 Gentoo Foundation |
1 | # Copyright 1999-2008 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-functions.eclass,v 1.12 2009/02/10 20:07:24 scarabeus Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-functions.eclass,v 1.14 2009/03/09 19:41:26 scarabeus Exp $ |
| 4 | |
4 | |
| 5 | # @ECLASS: kde4-functions.eclass |
5 | # @ECLASS: kde4-functions.eclass |
| 6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
| 7 | # kde@gentoo.org |
7 | # kde@gentoo.org |
| 8 | # @BLURB: Common ebuild functions for KDE 4 packages |
8 | # @BLURB: Common ebuild functions for KDE 4 packages |
| … | |
… | |
| 10 | # This eclass contains all functions shared by the different eclasses, |
10 | # This eclass contains all functions shared by the different eclasses, |
| 11 | # for KDE 4 ebuilds. |
11 | # for KDE 4 ebuilds. |
| 12 | |
12 | |
| 13 | # @ECLASS-VARIABLE: EAPI |
13 | # @ECLASS-VARIABLE: EAPI |
| 14 | # @DESCRIPTION: |
14 | # @DESCRIPTION: |
| 15 | # By default kde eclass wants eapi 2 which might be redefinable. |
15 | # By default kde4 eclasses wants eapi 2 which might be redefinable to newer |
|
|
16 | # versions. |
| 16 | case ${EAPI} in |
17 | case ${EAPI:-0} in |
| 17 | 2) : ;; |
18 | 2) : ;; |
| 18 | *) die "No way! EAPI older than 2 is not supported." ;; |
19 | *) die "No way! EAPI other than 2 is not supported for now." ;; |
| 19 | esac |
20 | esac |
| 20 | |
21 | |
| 21 | # @ECLASS-VARIABLE: KDEBASE |
22 | # @ECLASS-VARIABLE: KDEBASE |
| 22 | # @DESCRIPTION: |
23 | # @DESCRIPTION: |
| 23 | # This gets set to a non-zero value when a package is considered a kde or |
24 | # This gets set to a non-zero value when a package is considered a kde or |
| … | |
… | |
| 36 | |
37 | |
| 37 | # @ECLASS-VARIABLE: KDE_SLOTS |
38 | # @ECLASS-VARIABLE: KDE_SLOTS |
| 38 | # @DESCRIPTION: |
39 | # @DESCRIPTION: |
| 39 | # The slots used by all KDE versions later than 4.0. The live-ebuilds use |
40 | # The slots used by all KDE versions later than 4.0. The live-ebuilds use |
| 40 | # KDE_LIVE_SLOTS instead. |
41 | # KDE_LIVE_SLOTS instead. |
| 41 | KDE_SLOTS=( kde-4 4.1 4.2 ) |
42 | KDE_SLOTS=( kde-4 4.1 4.2 4.3 ) |
| 42 | |
43 | |
| 43 | # @ECLASS-VARIABLE: KDE_LIVE_SLOTS |
44 | # @ECLASS-VARIABLE: KDE_LIVE_SLOTS |
| 44 | # @DESCRIPTION: |
45 | # @DESCRIPTION: |
| 45 | # The slots used by all KDE live versions. |
46 | # The slots used by all KDE live versions. |
| 46 | KDE_LIVE_SLOTS=( live ) |
47 | KDE_LIVE_SLOTS=( live ) |
| … | |
… | |
| 62 | # in the user's environment (through su [without '-']) may cause |
63 | # in the user's environment (through su [without '-']) may cause |
| 63 | # kbuildsycoca4 to hang. |
64 | # kbuildsycoca4 to hang. |
| 64 | |
65 | |
| 65 | ebegin "Running kbuildsycoca4 to build global database" |
66 | ebegin "Running kbuildsycoca4 to build global database" |
| 66 | # This is needed because we support multiple kde versions installed together. |
67 | # This is needed because we support multiple kde versions installed together. |
| 67 | XDG_DATA_DIRS="/usr/share:${KDEDIRS//:/\/share:}/share:/usr/local/share" \ |
68 | XDG_DATA_DIRS="/usr/share:${KDEDIR}/share:/usr/local/share" \ |
| 68 | DISPLAY="" DBUS_SESSION_BUS_ADDRESS="" \ |
69 | DISPLAY="" DBUS_SESSION_BUS_ADDRESS="" \ |
| 69 | ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null |
70 | ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null |
| 70 | eend $? |
71 | eend $? |
| 71 | fi |
72 | fi |
| 72 | } |
73 | } |
| … | |
… | |
| 100 | # Enable translations based on LINGUAS settings and translations supported by |
101 | # Enable translations based on LINGUAS settings and translations supported by |
| 101 | # the package (see KDE_LINGUAS). By default, translations are found in "${S}"/po |
102 | # the package (see KDE_LINGUAS). By default, translations are found in "${S}"/po |
| 102 | # but this default can be overridden by defining KDE_LINGUAS_DIR. |
103 | # but this default can be overridden by defining KDE_LINGUAS_DIR. |
| 103 | enable_selected_linguas() { |
104 | enable_selected_linguas() { |
| 104 | local lingua sr_mess wp |
105 | local lingua sr_mess wp |
| 105 | # inform user about kde-l10n for full translation. |
|
|
| 106 | if ! has_version kde-base/kde-l10n; then |
|
|
| 107 | echo |
|
|
| 108 | elog "For fully translated application you should also emerge" |
|
|
| 109 | elog "kde-base/kde-l10n package which ships translated kde core" |
|
|
| 110 | elog "strings." |
|
|
| 111 | echo |
|
|
| 112 | fi |
|
|
| 113 | |
106 | |
| 114 | # ebuild overridable linguas directory definition |
107 | # ebuild overridable linguas directory definition |
| 115 | KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:=${S}/po} |
108 | KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:=${S}/po} |
| 116 | cd "$KDE_LINGUAS_DIR" || die "wrong linguas dir specified" |
109 | cd "$KDE_LINGUAS_DIR" || die "wrong linguas dir specified" |
| 117 | |
110 | |
| … | |
… | |
| 148 | fi |
141 | fi |
| 149 | eend $? |
142 | eend $? |
| 150 | done |
143 | done |
| 151 | } |
144 | } |
| 152 | |
145 | |
| 153 | # @FUNCTION: koffice_fix_libraries |
|
|
| 154 | # @DESCRIPTION: |
|
|
| 155 | # replace the weird koffice lib search with hardcoded one, so it |
|
|
| 156 | # actually builds and works. |
|
|
| 157 | koffice_fix_libraries() { |
|
|
| 158 | local LIB_ARRAY R_QT_kostore R_BAS_kostore R_BAS_koodf R_KROSS_kokross R_QT_komain |
|
|
| 159 | local R_CMS_pigmentcms R_BAS_pigmentcms R_BAS_koresources R_BAS_flake R_BAS_koguiutils |
|
|
| 160 | local R_BAS_kopageapp R_BAS_kotext R_BAS_kowmf libname R |
|
|
| 161 | case ${PN} in |
|
|
| 162 | koffice-data|koffice-libs) |
|
|
| 163 | ;; |
|
|
| 164 | *) |
|
|
| 165 | ### basic array |
|
|
| 166 | LIB_ARRAY="kostore koodf kokross komain pigmentcms koresources flake koguiutils kopageapp kotext kowmf" |
|
|
| 167 | ### dep array |
|
|
| 168 | R_QT_kostore="\"/usr/$(get_libdir)/qt4/libQtCore.so\" |
|
|
| 169 | \"/usr/$(get_libdir)/qt4/libQtXml.so\" |
|
|
| 170 | \"${KDEDIR}/$(get_libdir)/libkdecore.so\"" |
|
|
| 171 | R_BAS_kostore="libkostore ${R_QT_kostore}" |
|
|
| 172 | R_BAS_koodf="libkoodf ${R_BAS_kostore}" |
|
|
| 173 | R_KROSS_kokross=" |
|
|
| 174 | \"${KDEDIR}/$(get_libdir)/libkrossui.so\" |
|
|
| 175 | \"${KDEDIR}/$(get_libdir)/libkrosscore.so\"" |
|
|
| 176 | R_BAS_kokross="libkokross ${R_BAS_koodf} ${R_KROSS_kokross}" |
|
|
| 177 | R_QT_komain="\"/usr/$(get_libdir)/qt4/libQtGui.so\"" |
|
|
| 178 | R_BAS_komain="libkomain ${R_BAS_koodf} ${R_QT_komain}" |
|
|
| 179 | R_CMS_pigmentcms="\"/usr/$(get_libdir)/liblcms.so\"" |
|
|
| 180 | R_BAS_pigmentcms="libpigmentcms ${R_BAS_komain} ${R_CMS_pigmentcms}" |
|
|
| 181 | R_BAS_koresources="libkoresources ${R_BAS_pigmentcms}" |
|
|
| 182 | R_BAS_flake="libflake ${R_BAS_pigmentcms}" |
|
|
| 183 | R_BAS_koguiutils="libkoguiutils libkoresources libflake ${R_BAS_pigmentcms}" |
|
|
| 184 | R_BAS_kopageapp="libkopageapp ${R_BAS_koguitls}" |
|
|
| 185 | R_BAS_kotext="libkotext libkoresources libflake ${R_BAS_pigmentcms}" |
|
|
| 186 | ### additional unmentioned stuff |
|
|
| 187 | R_BAS_kowmf="libkowmf" |
|
|
| 188 | for libname in ${LIB_ARRAY}; do |
|
|
| 189 | ebegin "Fixing library ${libname} with hardcoded path" |
|
|
| 190 | for libpath in $(eval "echo \$R_BAS_${libname}"); do |
|
|
| 191 | if [[ "${libpath}" != "\"/usr/"* ]]; then |
|
|
| 192 | R="${R} \"${KDEDIR}/$(get_libdir)/${libpath}.so\"" |
|
|
| 193 | else |
|
|
| 194 | R="${R} ${libpath}" |
|
|
| 195 | fi |
|
|
| 196 | done |
|
|
| 197 | find "${S}" -name CMakeLists.txt -print| xargs -i \ |
|
|
| 198 | sed -i \ |
|
|
| 199 | -e "s: ${libname} : ${R} :g" \ |
|
|
| 200 | -e "s: ${libname}): ${R}):g" \ |
|
|
| 201 | -e "s:(${libname} :(${R} :g" \ |
|
|
| 202 | -e "s:(${libname}):(${R}):g" \ |
|
|
| 203 | -e "s: ${libname}$: ${R}:g" \ |
|
|
| 204 | {} || die "Fixing library names failed." |
|
|
| 205 | eend $? |
|
|
| 206 | done |
|
|
| 207 | ;; |
|
|
| 208 | esac |
|
|
| 209 | } |
|
|
| 210 | # @FUNCTION: get_build_type |
146 | # @FUNCTION: get_build_type |
| 211 | # @DESCRIPTION: |
147 | # @DESCRIPTION: |
| 212 | # Determine whether we are using live ebuild or tbzs. |
148 | # Determine whether we are using live ebuild or tbzs. |
| 213 | get_build_type() { |
149 | get_build_type() { |
| 214 | if [[ $SLOT = live || $PV = 9999* ]]; then |
150 | if [[ $SLOT = live || $PV = 9999* ]]; then |
| … | |
… | |
| 227 | # working without it. This might be changed in future. |
163 | # working without it. This might be changed in future. |
| 228 | get_latest_kdedir() { |
164 | get_latest_kdedir() { |
| 229 | case ${KDE_WANTED} in |
165 | case ${KDE_WANTED} in |
| 230 | # note this will need to be updated as stable moves and so on |
166 | # note this will need to be updated as stable moves and so on |
| 231 | live) |
167 | live) |
| 232 | _versions="9999 4.1.69 4.1.0" |
168 | _versions="9999 4.2.61 4.2.0 4.1.0" |
| 233 | ;; |
169 | ;; |
| 234 | snapshot) |
170 | snapshot) |
| 235 | _versions="4.1.69 4.1.0 9999" |
171 | _versions="4.2.61 4.2.0 4.1.0 9999" |
| 236 | ;; |
172 | ;; |
| 237 | testing) |
173 | testing) |
| 238 | _versions="4.1.0 4.1.69 9999" |
174 | _versions="4.2.0 4.1.0 4.2.61 9999" |
| 239 | ;; |
175 | ;; |
| 240 | stable) |
176 | stable) |
| 241 | _versions="4.1.0 4.1.69 9999" |
177 | _versions="4.2.0 4.1.0 4.1.61 9999" |
| 242 | ;; |
178 | ;; |
| 243 | *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;; |
179 | *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;; |
| 244 | esac |
180 | esac |
| 245 | # check if exists and fallback as we go |
181 | # check if exists and fallback as we go |
| 246 | for X in ${_versions}; do |
182 | for X in ${_versions}; do |
| … | |
… | |
| 250 | # also keep track here same for kde_wanted |
186 | # also keep track here same for kde_wanted |
| 251 | 9999) |
187 | 9999) |
| 252 | _kdedir="live" |
188 | _kdedir="live" |
| 253 | break |
189 | break |
| 254 | ;; |
190 | ;; |
| 255 | 4.1.69) |
191 | 4.3.0 | 4.2.61) |
|
|
192 | _kdedir="4.3" |
|
|
193 | break |
|
|
194 | ;; |
|
|
195 | 4.2.0 | 4.1.61) |
| 256 | _kdedir="4.2" |
196 | _kdedir="4.2" |
| 257 | break |
197 | break |
| 258 | ;; |
198 | ;; |
| 259 | 4.1.0) |
199 | 4.1.0) |
| 260 | _kdedir="4.1" |
200 | _kdedir="4.1" |
| 261 | break |
201 | break |
| 262 | ;; |
202 | ;; |
| 263 | esac |
203 | esac |
| 264 | fi |
204 | fi |
| 265 | done |
205 | done |
|
|
206 | |
|
|
207 | debug-print-function ${FUNCNAME} "$@" "KDE_WANTED=${KDE_WANTED} -> _kdedir=${_kdedir}" |
| 266 | } |
208 | } |
| 267 | |
209 | |
| 268 | # @FUNCTION: migrate_store_dir |
210 | # @FUNCTION: migrate_store_dir |
| 269 | # @DESCRIPTION: |
211 | # @DESCRIPTION: |
| 270 | # Migrate the remnants of ${ESVN_STORE_DIR}/KDE/ to ${ESVN_STORE_DIR}/. |
212 | # Migrate the remnants of ${ESVN_STORE_DIR}/KDE/ to ${ESVN_STORE_DIR}/. |