/[gentoo-x86]/eclass/kde4-functions.eclass
Gentoo

Diff of /eclass/kde4-functions.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.11 Revision 1.14
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.11 2009/01/12 19:40:34 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.
16case ${EAPI} in 17case ${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." ;;
19esac 20esac
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.
41KDE_SLOTS=( kde-4 4.1 4.2 ) 42KDE_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.
46KDE_LIVE_SLOTS=( live ) 47KDE_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.
103enable_selected_linguas() { 104enable_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.
157koffice_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.
213get_build_type() { 149get_build_type() {
214 if [[ $SLOT = live || $PV = 9999* ]]; then 150 if [[ $SLOT = live || $PV = 9999* ]]; then
224# We set up KDEDIR according to the latest KDE version installed; installing our 160# We set up KDEDIR according to the latest KDE version installed; installing our
225# package for all available installs is just insane. 161# package for all available installs is just insane.
226# We can check for kdelibs because it is the most basic package; no KDE package 162# We can check for kdelibs because it is the most basic package; no KDE package
227# working without it. This might be changed in future. 163# working without it. This might be changed in future.
228get_latest_kdedir() { 164get_latest_kdedir() {
229 if [[ $NEED_KDE = latest && $KDEBASE != kde-base ]]; then
230 case ${KDE_WANTED} in 165 case ${KDE_WANTED} in
231 # 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
232 live) 167 live)
233 _versions="9999 4.1.69 4.1.0" 168 _versions="9999 4.2.61 4.2.0 4.1.0"
234 ;; 169 ;;
235 snapshot) 170 snapshot)
236 _versions="4.1.69 4.1.0 9999" 171 _versions="4.2.61 4.2.0 4.1.0 9999"
237 ;; 172 ;;
238 testing) 173 testing)
239 _versions="4.1.0 4.1.69 9999" 174 _versions="4.2.0 4.1.0 4.2.61 9999"
240 ;; 175 ;;
241 stable) 176 stable)
242 _versions="4.1.0 4.1.69 9999" 177 _versions="4.2.0 4.1.0 4.1.61 9999"
243 ;; 178 ;;
244 *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;; 179 *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;;
245 esac 180 esac
246 # check if exists and fallback as we go 181 # check if exists and fallback as we go
247 for X in ${_versions}; do 182 for X in ${_versions}; do
248 if has_version ">=kde-base/kdelibs-${X}"; then 183 if has_version ">=kde-base/kdelibs-${X}"; then
249 # figure out which X we are in and set it into _kdedir 184 # figure out which X we are in and set it into _kdedir
250 case ${X} in 185 case ${X} in
251 # also keep track here same for kde_wanted 186 # also keep track here same for kde_wanted
252 9999) 187 9999)
253 _kdedir="live" 188 _kdedir="live"
254 break 189 break
255 ;; 190 ;;
256 4.1.69) 191 4.3.0 | 4.2.61)
192 _kdedir="4.3"
193 break
194 ;;
195 4.2.0 | 4.1.61)
257 _kdedir="4.2" 196 _kdedir="4.2"
258 break 197 break
259 ;; 198 ;;
260 4.1.0) 199 4.1.0)
261 _kdedir="4.1" 200 _kdedir="4.1"
262 break 201 break
263 ;; 202 ;;
264 esac 203 esac
265 fi 204 fi
266 done 205 done
267 fi 206
207 debug-print-function ${FUNCNAME} "$@" "KDE_WANTED=${KDE_WANTED} -> _kdedir=${_kdedir}"
268} 208}
269 209
270# @FUNCTION: migrate_store_dir 210# @FUNCTION: migrate_store_dir
271# @DESCRIPTION: 211# @DESCRIPTION:
272# 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}/.

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.20