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.20 2009/05/31 09:45:51 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 | *) DEPEND="EAPI-TOO-OLD" ;; |
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 |
24 | # koffice ebuild. |
25 | # koffice ebuild. |
25 | |
26 | |
26 | if [[ $CATEGORY = kde-base ]]; then |
27 | if [[ ${CATEGORY} = kde-base ]]; then |
27 | debug-print "${ECLASS}: KDEBASE ebuild recognized" |
28 | debug-print "${ECLASS}: KDEBASE ebuild recognized" |
28 | KDEBASE=kde-base |
29 | KDEBASE=kde-base |
29 | fi |
30 | fi |
30 | |
31 | |
31 | # is this a koffice ebuild? |
32 | # is this a koffice ebuild? |
32 | if [[ $KMNAME = koffice || $PN = koffice ]]; then |
33 | if [[ ${KMNAME} = koffice || ${PN} = koffice ]]; then |
33 | debug-print "${ECLASS}: KOFFICE ebuild recognized" |
34 | debug-print "${ECLASS}: KOFFICE ebuild recognized" |
34 | KDEBASE=koffice |
35 | KDEBASE=koffice |
35 | fi |
36 | fi |
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 KDE releases use |
40 | # KDE_LIVE_SLOTS instead. |
41 | # KDE_LIVE_SLOTS instead. Values should be ordered. |
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 KDE live versions. Values should be ordered. |
46 | KDE_LIVE_SLOTS=( live ) |
47 | KDE_LIVE_SLOTS=( "live" ) |
47 | |
48 | |
48 | # @FUNCTION: buildsycoca |
49 | # @FUNCTION: buildsycoca |
49 | # @DESCRIPTION: |
50 | # @DESCRIPTION: |
50 | # Function to rebuild the KDE System Configuration Cache. |
51 | # Function to rebuild the KDE System Configuration Cache. |
51 | # All KDE ebuilds should run this in pkg_postinst and pkg_postrm. |
52 | # All KDE ebuilds should run this in pkg_postinst and pkg_postrm. |
52 | # |
|
|
53 | # Note that kde4-base.eclass already does this. |
|
|
54 | buildsycoca() { |
53 | buildsycoca() { |
55 | debug-print-function ${FUNCNAME} "$@" |
54 | debug-print-function ${FUNCNAME} "$@" |
56 | |
55 | |
57 | if [[ -z ${ROOT%%/} && -x ${KDEDIR}/bin/kbuildsycoca4 ]]; then |
56 | if [[ -z ${ROOT%%/} && -x ${KDEDIR}/bin/kbuildsycoca4 ]]; then |
58 | # Make sure tha cache file exists, or kbuildsycoca4 will fail |
57 | # Make sure tha cache file exists, writable by root and readable by |
|
|
58 | # others. Otherwise kbuildsycoca4 will fail. |
59 | touch "${KDEDIR}/share/kde4/services/ksycoca4" |
59 | touch "${KDEDIR}/share/kde4/services/ksycoca4" |
|
|
60 | chmod 644 "${KDEDIR}/share/kde4/services/ksycoca4" |
60 | |
61 | |
61 | # We have to unset DISPLAY and DBUS_SESSION_BUS_ADDRESS, the ones |
62 | # We have to unset DISPLAY and DBUS_SESSION_BUS_ADDRESS, the ones |
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 | # Lookup in order - local, KDEDIR, /usr, do not duplicate entries btw. |
|
|
69 | local KDEDIRS="${ROOT}usr/share" |
|
|
70 | [[ ${KDEDIR} != "${ROOT}usr" ]] && KDEDIRS="${KDEDIR}/share:${KDEDIRS}" |
|
|
71 | XDG_DATA_DIRS="${ROOT}usr/local/share:${KDEDIRS}" \ |
68 | DISPLAY="" DBUS_SESSION_BUS_ADDRESS="" \ |
72 | DISPLAY="" DBUS_SESSION_BUS_ADDRESS="" \ |
69 | ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null |
73 | ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null |
70 | eend $? |
74 | eend $? |
71 | fi |
75 | fi |
|
|
76 | |
|
|
77 | # fix permission for some directories |
|
|
78 | for x in share/config share/kde4; do |
|
|
79 | [[ ${KDEDIR} = ${ROOT}usr ]] && DIRS=${ROOT}usr || DIRS="${ROOT}usr ${KDEDIR}" |
|
|
80 | for y in ${DIRS}; do |
|
|
81 | [[ -d "${y}/${x}" ]] || break # nothing to do if directory does not exist |
|
|
82 | if [[ $(stat --format=%a "${y}/${x}") != 755 ]]; then |
|
|
83 | ewarn "QA Notice:" |
|
|
84 | ewarn "Package ${PN} is breaking ${y}/${x} permissions." |
|
|
85 | ewarn "Please report this issue to gentoo bugzilla." |
|
|
86 | einfo "Permissions will get adjusted automatically now." |
|
|
87 | find "${y}/${x}" -type d -print0 | xargs -0 chmod 755 |
|
|
88 | fi |
|
|
89 | done |
|
|
90 | done |
72 | } |
91 | } |
73 | |
92 | |
74 | # @FUNCTION: comment_all_add_subdirectory |
93 | # @FUNCTION: comment_all_add_subdirectory |
75 | # @USAGE: [list of directory names] |
94 | # @USAGE: [list of directory names] |
76 | # @DESCRIPTION: |
95 | # @DESCRIPTION: |
… | |
… | |
85 | # @ECLASS-VARIABLE: KDE_LINGUAS |
104 | # @ECLASS-VARIABLE: KDE_LINGUAS |
86 | # @DESCRIPTION: |
105 | # @DESCRIPTION: |
87 | # This is a whitespace-separated list of translations this ebuild supports. |
106 | # This is a whitespace-separated list of translations this ebuild supports. |
88 | # These translations are automatically added to IUSE. Therefore ebuilds must set |
107 | # These translations are automatically added to IUSE. Therefore ebuilds must set |
89 | # this variable before inheriting any eclasses. To enable only selected |
108 | # this variable before inheriting any eclasses. To enable only selected |
90 | # translations, ebuilds must call enable_selected_linguas(). kde4-base.eclass does |
109 | # translations, ebuilds must call enable_selected_linguas(). kde4-{base,meta}.eclass does |
91 | # this for you. |
110 | # this for you. |
92 | # |
111 | # |
93 | # Example: KDE_LINGUAS="en_GB de nl" |
112 | # Example: KDE_LINGUAS="en_GB de nl" |
94 | for _lingua in ${KDE_LINGUAS}; do |
113 | for _lingua in ${KDE_LINGUAS}; do |
95 | IUSE="${IUSE} linguas_${_lingua}" |
114 | IUSE="${IUSE} linguas_${_lingua}" |
… | |
… | |
100 | # Enable translations based on LINGUAS settings and translations supported by |
119 | # Enable translations based on LINGUAS settings and translations supported by |
101 | # the package (see KDE_LINGUAS). By default, translations are found in "${S}"/po |
120 | # 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. |
121 | # but this default can be overridden by defining KDE_LINGUAS_DIR. |
103 | enable_selected_linguas() { |
122 | enable_selected_linguas() { |
104 | local lingua sr_mess wp |
123 | 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 | |
124 | |
|
|
125 | ## This isn't working because it seems portage sets LINGUAS |
|
|
126 | ## even if you don't have it in make.conf |
|
|
127 | ## Im leaving the command that *should* work if LINGUAS was unset commented |
|
|
128 | # if there is no linguas defined we enable everything |
|
|
129 | if ! $(env | grep -q "^LINGUAS="); then |
|
|
130 | return 0 |
|
|
131 | fi |
|
|
132 | # [[ ! ${LINGUAS+set} = set ]] && LINGUAS="*" |
114 | # ebuild overridable linguas directory definition |
133 | # ebuild overridable linguas directory definition |
115 | KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:=${S}/po} |
134 | KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:="${S}/po"} |
116 | cd "$KDE_LINGUAS_DIR" || die "wrong linguas dir specified" |
135 | cd "${KDE_LINGUAS_DIR}" || die "wrong linguas dir specified" |
117 | |
136 | |
118 | # fix all various crazy sr@Latn variations |
137 | # fix all various crazy sr@Latn variations |
119 | # this part is only ease for ebuilds, so there wont be any die when this |
138 | # this part is only ease for ebuilds, so there wont be any die when this |
120 | # fail at any point |
139 | # fail at any point |
121 | sr_mess="sr@latn sr@latin sr@Latin" |
140 | sr_mess="sr@latn sr@latin sr@Latin" |
122 | for wp in ${sr_mess}; do |
141 | for wp in ${sr_mess}; do |
123 | [[ -e "$wp.po" ]] && mv "$wp.po" "sr@Latn.po" |
142 | [[ -e "${wp}.po" ]] && mv "${wp}.po" "sr@Latn.po" |
124 | if [[ -d "$wp" ]]; then |
143 | if [[ -d "${wp}" ]]; then |
125 | # move dir and fix cmakelists |
144 | # move dir and fix cmakelists |
126 | mv "$wp" "sr@Latn" |
145 | mv "${wp}" "sr@Latn" |
127 | sed -i \ |
146 | sed -i \ |
128 | -e "s:$wp:sr@Latin:g" \ |
147 | -e "s:${wp}:sr@Latin:g" \ |
129 | CMakeLists.txt |
148 | CMakeLists.txt |
130 | fi |
149 | fi |
131 | done |
150 | done |
132 | |
151 | |
133 | for lingua in ${KDE_LINGUAS}; do |
152 | for lingua in ${KDE_LINGUAS}; do |
134 | if [[ -e "$lingua.po" ]]; then |
153 | if [[ -e "${lingua}.po" ]]; then |
135 | mv "$lingua.po" "$lingua.po.old" |
154 | mv "${lingua}.po" "${lingua}.po.old" |
136 | fi |
155 | fi |
137 | done |
156 | done |
138 | comment_all_add_subdirectory "${KDE_LINGUAS_DIR}" |
157 | comment_all_add_subdirectory "${KDE_LINGUAS_DIR}" |
139 | for lingua in ${LINGUAS}; do |
158 | for lingua in ${KDE_LINGUAS}; do |
|
|
159 | if use linguas_${lingua} ; then |
140 | ebegin "Enabling LANGUAGE: ${lingua}" |
160 | ebegin "Enabling LANGUAGE: ${lingua}" |
141 | if [[ -d "$lingua" ]]; then |
161 | if [[ -d "${lingua}" ]]; then |
142 | sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ |
162 | sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ |
143 | -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ |
163 | -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ |
144 | -i CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed." |
164 | -i CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed." |
145 | fi |
165 | fi |
146 | if [[ -e "$lingua.po.old" ]]; then |
166 | if [[ -e "${lingua}.po.old" ]]; then |
147 | mv "$lingua.po.old" "$lingua.po" |
167 | mv "${lingua}.po.old" "${lingua}.po" |
148 | fi |
168 | fi |
149 | eend $? |
|
|
150 | done |
|
|
151 | } |
|
|
152 | |
|
|
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 $? |
169 | eend $? |
|
|
170 | fi |
206 | done |
171 | done |
207 | ;; |
|
|
208 | esac |
|
|
209 | } |
172 | } |
|
|
173 | |
210 | # @FUNCTION: get_build_type |
174 | # @FUNCTION: get_build_type |
211 | # @DESCRIPTION: |
175 | # @DESCRIPTION: |
212 | # Determine whether we are using live ebuild or tbzs. |
176 | # Determine whether we are using live ebuild or tbzs. |
213 | get_build_type() { |
177 | get_build_type() { |
214 | if [[ $SLOT = live || $PV = 9999* ]]; then |
178 | if [[ ${SLOT} = live || ${PV} = *9999* ]]; then |
215 | BUILD_TYPE="live" |
179 | BUILD_TYPE="live" |
216 | else |
180 | else |
217 | BUILD_TYPE="release" |
181 | BUILD_TYPE="release" |
218 | fi |
182 | fi |
219 | export BUILD_TYPE |
183 | export BUILD_TYPE |
220 | } |
184 | } |
221 | |
185 | |
222 | # @FUNCTION: get_latest_kdedir |
|
|
223 | # @DESCRIPTION: |
|
|
224 | # We set up KDEDIR according to the latest KDE version installed; installing our |
|
|
225 | # package for all available installs is just insane. |
|
|
226 | # 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. |
|
|
228 | get_latest_kdedir() { |
|
|
229 | if [[ $NEED_KDE = latest && $KDEBASE != kde-base ]]; then |
|
|
230 | case ${KDE_WANTED} in |
|
|
231 | # note this will need to be updated as stable moves and so on |
|
|
232 | live) |
|
|
233 | _versions="9999 4.1.69 4.1.0" |
|
|
234 | ;; |
|
|
235 | snapshot) |
|
|
236 | _versions="4.1.69 4.1.0 9999" |
|
|
237 | ;; |
|
|
238 | testing) |
|
|
239 | _versions="4.1.0 4.1.69 9999" |
|
|
240 | ;; |
|
|
241 | stable) |
|
|
242 | _versions="4.1.0 4.1.69 9999" |
|
|
243 | ;; |
|
|
244 | *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;; |
|
|
245 | esac |
|
|
246 | # check if exists and fallback as we go |
|
|
247 | for X in ${_versions}; do |
|
|
248 | if has_version ">=kde-base/kdelibs-${X}"; then |
|
|
249 | # figure out which X we are in and set it into _kdedir |
|
|
250 | case ${X} in |
|
|
251 | # also keep track here same for kde_wanted |
|
|
252 | 9999) |
|
|
253 | _kdedir="live" |
|
|
254 | break |
|
|
255 | ;; |
|
|
256 | 4.1.69) |
|
|
257 | _kdedir="4.2" |
|
|
258 | break |
|
|
259 | ;; |
|
|
260 | 4.1.0) |
|
|
261 | _kdedir="4.1" |
|
|
262 | break |
|
|
263 | ;; |
|
|
264 | esac |
|
|
265 | fi |
|
|
266 | done |
|
|
267 | fi |
|
|
268 | } |
|
|
269 | |
|
|
270 | # @FUNCTION: migrate_store_dir |
186 | # @FUNCTION: migrate_store_dir |
271 | # @DESCRIPTION: |
187 | # @DESCRIPTION: |
272 | # Migrate the remnants of ${ESVN_STORE_DIR}/KDE/ to ${ESVN_STORE_DIR}/. |
188 | # Universal store dir migration |
273 | # Perform experimental split of kdebase to kdebase-apps. |
189 | # * performs split of kdebase to kdebase-apps when needed |
|
|
190 | # * moves playground/extragear kde4-base-style to toplevel dir |
274 | migrate_store_dir() { |
191 | migrate_store_dir() { |
275 | local cleandir |
|
|
276 | cleandir="${ESVN_STORE_DIR}/KDE" |
192 | local cleandir="${ESVN_STORE_DIR}/KDE" |
277 | if [[ -d "${cleandir}" ]]; then |
193 | if [[ -d "${cleandir}" ]]; then |
278 | ewarn "'${cleandir}' has been found. Moving contents to new location." |
194 | ewarn "'${cleandir}' has been found. Moving contents to new location." |
279 | addwrite "${ESVN_STORE_DIR}" |
195 | addwrite "${ESVN_STORE_DIR}" |
280 | # Split kdebase |
196 | # Split kdebase |
281 | local module |
197 | local module |
… | |
… | |
290 | die "Failed to remove ${cleandir}/kdebase. You need to remove it manually." |
206 | die "Failed to remove ${cleandir}/kdebase. You need to remove it manually." |
291 | fi |
207 | fi |
292 | # Move the rest |
208 | # Move the rest |
293 | local pkg |
209 | local pkg |
294 | for pkg in "${cleandir}"/*; do |
210 | for pkg in "${cleandir}"/*; do |
295 | mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "failed to move ${pkg}" |
211 | mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "Failed to move '${pkg}'" |
296 | done |
212 | done |
297 | rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue." |
213 | rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue." |
|
|
214 | fi |
|
|
215 | |
|
|
216 | if ! hasq kde4-meta ${INHERITED}; then |
|
|
217 | case ${KMNAME} in |
|
|
218 | extragear*|playground*) |
|
|
219 | local svnlocalpath="${ESVN_STORE_DIR}"/"${KMNAME}"/"${PN}" |
|
|
220 | if [[ -d "${svnlocalpath}" ]]; then |
|
|
221 | local destdir="${ESVN_STORE_DIR}"/"${ESVN_PROJECT}"/"`basename "${ESVN_REPO_URI}"`" |
|
|
222 | ewarn "'${svnlocalpath}' has been found." |
|
|
223 | ewarn "Moving contents to new location: ${destdir}" |
|
|
224 | addwrite "${ESVN_STORE_DIR}" |
|
|
225 | mkdir -p "${ESVN_STORE_DIR}"/"${ESVN_PROJECT}" && mv -f "${svnlocalpath}" "${destdir}" \ |
|
|
226 | || die "Failed to move to '${svnlocalpath}'" |
|
|
227 | # Try cleaning empty directories |
|
|
228 | rmdir "`dirname "${svnlocalpath}"`" 2> /dev/null |
|
|
229 | fi |
|
|
230 | ;; |
|
|
231 | esac |
298 | fi |
232 | fi |
299 | } |
233 | } |
300 | |
234 | |
301 | # Functions handling KMLOADLIBS and KMSAVELIBS |
235 | # Functions handling KMLOADLIBS and KMSAVELIBS |
302 | |
236 | |
… | |
… | |
304 | # @DESCRIPTION: |
238 | # @DESCRIPTION: |
305 | # Add exporting CMake dependencies for current package |
239 | # Add exporting CMake dependencies for current package |
306 | save_library_dependencies() { |
240 | save_library_dependencies() { |
307 | local depsfile="${T}/${PN}:${SLOT}" |
241 | local depsfile="${T}/${PN}:${SLOT}" |
308 | |
242 | |
309 | ebegin "Saving library dependendencies in ${depsfile##*/}" |
243 | ebegin "Saving library dependencies in ${depsfile##*/}" |
310 | echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || \ |
244 | echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || \ |
311 | die "Failed to save the library dependencies." |
245 | die "Failed to save the library dependencies." |
312 | eend $? |
246 | eend $? |
313 | } |
247 | } |
314 | |
248 | |
315 | # @FUNCTION: install_library_dependencies |
249 | # @FUNCTION: install_library_dependencies |
316 | # @DESCRIPTION: |
250 | # @DESCRIPTION: |
317 | # Install generated CMake library dependencies to /var/lib/kde |
251 | # Install generated CMake library dependencies to /var/lib/kde |
318 | install_library_dependencies() { |
252 | install_library_dependencies() { |
319 | local depsfile="$T/$PN:$SLOT" |
253 | local depsfile="${T}/${PN}:${SLOT}" |
|
|
254 | |
320 | ebegin "Installing library dependendencies as ${depsfile##*/}" |
255 | ebegin "Installing library dependencies as ${depsfile##*/}" |
321 | insinto /var/lib/kde |
256 | insinto ${ROOT}var/lib/kde |
322 | doins "${depsfile}" || die "Failed to install library dependencies." |
257 | doins "${depsfile}" || die "Failed to install library dependencies." |
323 | eend $? |
258 | eend $? |
324 | } |
259 | } |
325 | |
260 | |
326 | # @FUNCTION: load_library_dependencies |
261 | # @FUNCTION: load_library_dependencies |
327 | # @DESCRIPTION: |
262 | # @DESCRIPTION: |
328 | # Inject specified library dependencies in current package |
263 | # Inject specified library dependencies in current package |
329 | load_library_dependencies() { |
264 | load_library_dependencies() { |
330 | local pn i depsfile |
265 | local pn i depsfile |
331 | ebegin "Injecting library dependendencies from '${KMLOADLIBS}'" |
266 | ebegin "Injecting library dependencies from '${KMLOADLIBS}'" |
332 | |
267 | |
333 | i=0 |
268 | i=0 |
334 | for pn in ${KMLOADLIBS} ; do |
269 | for pn in ${KMLOADLIBS} ; do |
335 | ((i++)) |
270 | ((i++)) |
336 | depsfile="/var/lib/kde/${pn}:${SLOT}" |
271 | depsfile="${ROOT}var/lib/kde/${pn}:${SLOT}" |
337 | [[ -r "${depsfile}" ]] || die "Depsfile '${depsfile}' not accessible. You probably need to reinstall ${pn}." |
272 | [[ -r "${depsfile}" ]] || die "Depsfile '${depsfile}' not accessible. You probably need to reinstall ${pn}." |
338 | sed -i -e "${i}iINCLUDE(\"${depsfile}\")" "${S}/CMakeLists.txt" || \ |
273 | sed -i -e "${i}iINCLUDE(\"${depsfile}\")" "${S}/CMakeLists.txt" || \ |
339 | die "Failed to include library dependencies for ${pn}" |
274 | die "Failed to include library dependencies for ${pn}" |
340 | done |
275 | done |
341 | eend $? |
276 | eend $? |