/[gentoo-x86]/eclass/subversion.eclass
Gentoo

Contents of /eclass/subversion.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.57 - (hide annotations) (download)
Thu Mar 6 09:23:39 2008 UTC (6 years, 8 months ago) by zlin
Branch: MAIN
Changes since 1.56: +2 -2 lines
Typo.

1 hattya 1.45 # Copyright 1999-2008 Gentoo Foundation
2 hattya 1.1 # Distributed under the terms of the GNU General Public License v2
3 zlin 1.57 # $Header: /var/cvsroot/gentoo-x86/eclass/subversion.eclass,v 1.56 2008/02/27 12:54:35 zlin Exp $
4 hattya 1.1
5 zlin 1.46 # @ECLASS: subversion.eclass
6     # @MAINTAINER:
7     # Akinori Hattori <hattya@gentoo.org>
8     # Bo ├śrsted Andresen <zlin@gentoo.org>
9 swegener 1.23 #
10 zlin 1.46 # Original Author: Akinori Hattori <hattya@gentoo.org>
11 hattya 1.1 #
12 zlin 1.46 # @BLURB: The subversion eclass is written to fetch software sources from subversion repositories
13     # @DESCRIPTION:
14     # The subversion eclass provides functions to fetch, patch and bootstrap
15     # software sources from subversion repositories.
16 hattya 1.1
17 hattya 1.8 inherit eutils
18 hattya 1.1
19 zlin 1.46 ESVN="${ECLASS}"
20 hattya 1.1
21 zlin 1.50 EXPORT_FUNCTIONS src_unpack pkg_preinst
22 hattya 1.1
23 hattya 1.5 DESCRIPTION="Based on the ${ECLASS} eclass"
24 hattya 1.1
25 zlin 1.46 DEPEND="dev-util/subversion
26     net-misc/rsync"
27 hattya 1.1
28 zlin 1.46 # @ECLASS-VARIABLE: ESVN_STORE_DIR
29     # @DESCRIPTION:
30     # subversion sources store directory. Users may override this in /etc/make.conf
31     [[ -z ${ESVN_STORE_DIR} ]] && ESVN_STORE_DIR="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/svn-src"
32    
33     # @ECLASS-VARIABLE: ESVN_FETCH_CMD
34     # @DESCRIPTION:
35     # subversion checkout command
36 hattya 1.25 ESVN_FETCH_CMD="svn checkout"
37    
38 zlin 1.46 # @ECLASS-VARIABLE: ESVN_UPDATE_CMD
39     # @DESCRIPTION:
40     # subversion update command
41 hattya 1.25 ESVN_UPDATE_CMD="svn update"
42 hattya 1.1
43 cardoe 1.48 # @ECLASS-VARIABLE: ESVN_SWITCH_CMD
44     # @DESCRIPTION:
45     # subversion switch command
46     ESVN_SWITCH_CMD="svn switch"
47    
48 zlin 1.46 # @ECLASS-VARIABLE: ESVN_OPTIONS
49     # @DESCRIPTION:
50     # the options passed to checkout or update. If you want a specific revision see
51     # ESVN_REPO_URI instead of using -rREV.
52     ESVN_OPTIONS="${ESVN_OPTIONS:-}"
53    
54     # @ECLASS-VARIABLE: ESVN_REPO_URI
55     # @DESCRIPTION:
56     # repository uri
57 hattya 1.1 #
58 zlin 1.46 # e.g. http://foo/trunk, svn://bar/trunk, svn://bar/branch/foo@1234
59 hattya 1.12 #
60     # supported protocols:
61     # http://
62     # https://
63     # svn://
64 hattya 1.33 # svn+ssh://
65 hattya 1.1 #
66 zlin 1.46 # to peg to a specific revision, append @REV to the repo's uri
67     ESVN_REPO_URI="${ESVN_REPO_URI:-}"
68 hattya 1.1
69 cardoe 1.47 # @ECLASS-VARIABLE: ESVN_REVISION
70     # @DESCRIPTION:
71     # User configurable revision checkout or update to from the repository
72     #
73     # Useful for live svn or trunk svn ebuilds allowing the user to peg
74     # to a specific revision
75     #
76     # Note: This should never be set in an ebuild!
77     ESVN_REVISION="${ESVN_REVISION:-}"
78    
79 zlin 1.46 # @ECLASS-VARIABLE: ESVN_PROJECT
80     # @DESCRIPTION:
81     # project name of your ebuild (= name space)
82 hattya 1.1 #
83     # subversion eclass will check out the subversion repository like:
84     #
85     # ${ESVN_STORE_DIR}/${ESVN_PROJECT}/${ESVN_REPO_URI##*/}
86     #
87     # so if you define ESVN_REPO_URI as http://svn.collab.net/repo/svn/trunk or
88     # http://svn.collab.net/repo/svn/trunk/. and PN is subversion-svn.
89     # it will check out like:
90     #
91     # ${ESVN_STORE_DIR}/subversion/trunk
92     #
93 hattya 1.33 # this is not used in order to declare the name of the upstream project.
94     # so that you can declare this like:
95     #
96     # # jakarta commons-loggin
97     # ESVN_PROJECT=commons/logging
98     #
99 hattya 1.1 # default: ${PN/-svn}.
100 zlin 1.46 ESVN_PROJECT="${ESVN_PROJECT:-${PN/-svn}}"
101 hattya 1.1
102 zlin 1.46 # @ECLASS-VARIABLE: ESVN_BOOTSTRAP
103     # @DESCRIPTION:
104 hattya 1.8 # bootstrap script or command like autogen.sh or etc..
105 zlin 1.46 ESVN_BOOTSTRAP="${ESVN_BOOTSTRAP:-}"
106 hattya 1.1
107 zlin 1.46 # @ECLASS-VARIABLE: ESVN_PATCHES
108     # @DESCRIPTION:
109     # subversion eclass can apply patches in subversion_bootstrap().
110 peper 1.43 # you can use regexp in this variable like *.diff or *.patch or etc.
111     # NOTE: patches will be applied before ESVN_BOOTSTRAP is processed.
112 hattya 1.8 #
113 zlin 1.46 # Patches are searched both in ${PWD} and ${FILESDIR}, if not found in either
114     # location, the installation dies.
115     ESVN_PATCHES="${ESVN_PATCHES:-}"
116 hattya 1.33
117 zlin 1.46 # @ECLASS-VARIABLE: ESVN_RESTRICT
118     # @DESCRIPTION:
119 hattya 1.39 # this should be a space delimited list of subversion eclass features to
120     # restrict.
121 hattya 1.33 # export)
122     # don't export the working copy to S.
123 zlin 1.46 ESVN_RESTRICT="${ESVN_RESTRICT:-}"
124 hattya 1.45
125 zlin 1.49 # @ECLASS-VARIABLE: ESVN_OFFLINE
126     # @DESCRIPTION:
127     # Set this variable to a non-empty value to disable the automatic updating of
128     # an svn source tree. This is intended to be set outside the subversion source
129     # tree by users.
130     ESVN_OFFLINE="${ESVN_OFFLINE:-${ESCM_OFFLINE}}"
131    
132 zlin 1.52 # @ECLASS-VARIABLE: ESVN_UP_FREQ
133     # @DESCRIPTION:
134     # Set the minimum number of hours between svn up'ing in any given svn module. This is particularly
135     # useful for split KDE ebuilds where we want to ensure that all submodules are compiled for the same
136     # revision. It should also be kept user overrideable.
137     ESVN_UP_FREQ="${ESVN_UP_FREQ:=}"
138    
139 zlin 1.50 # @ECLASS-VARIABLE: ESCM_LOGDIR
140     # @DESCRIPTION:
141     # User configuration variable. If set to a path such as e.g. /var/log/scm any
142     # package inheriting from subversion.eclass will record svn revision to
143     # ${CATEGORY}/${PN}.log in that path in pkg_preinst. This is not supposed to be
144     # set by ebuilds/eclasses. It defaults to empty so users need to opt in.
145     ESCM_LOGDIR="${ESCM_LOGDIR:=}"
146    
147 zlin 1.46 # @FUNCTION: subversion_fetch
148     # @USAGE: [repo_uri] [destination]
149     # @DESCRIPTION:
150     # Wrapper function to fetch sources from subversion via svn checkout or svn update,
151     # depending on whether there is an existing working copy in ${ESVN_STORE_DIR}.
152     #
153     # Can take two optional parameters:
154     # repo_uri - a repository URI. default is ESVN_REPO_URI.
155     # destination - a check out path in S.
156     subversion_fetch() {
157 zlin 1.54 local repo_uri="$(subversion__get_repository_uri "${1:-${ESVN_REPO_URI}}")"
158 cardoe 1.47 local revision="$(subversion__get_peg_revision "${1:-${ESVN_REPO_URI}}")"
159 hattya 1.39 local S_dest="${2}"
160 hattya 1.25
161 zlin 1.51 if [[ -z ${repo_uri} ]]; then
162     die "${ESVN}: ESVN_REPO_URI (or specified URI) is empty."
163     fi
164    
165 cardoe 1.47 [[ -n "${ESVN_REVISION}" ]] && revision="${ESVN_REVISION}"
166    
167 hattya 1.33 # check for the protocol
168 hattya 1.39 local protocol="${repo_uri%%:*}"
169 hattya 1.1
170 hattya 1.33 case "${protocol}" in
171 vapier 1.24 http|https)
172 hattya 1.25 if built_with_use dev-util/subversion nowebdav; then
173 hattya 1.34 echo
174 vapier 1.24 eerror "In order to emerge this package, you need to"
175     eerror "re-emerge subversion with USE=-nowebdav"
176 hattya 1.34 echo
177     die "${ESVN}: please run 'USE=-nowebdav emerge subversion'"
178 vapier 1.24 fi
179     ;;
180 hattya 1.33 svn|svn+ssh)
181     ;;
182 hattya 1.5 *)
183 zlin 1.46 die "${ESVN}: fetch from '${protocol}' is not yet implemented."
184 hattya 1.5 ;;
185     esac
186 hattya 1.1
187 hattya 1.38 addread "/etc/subversion"
188     addwrite "${ESVN_STORE_DIR}"
189    
190 zlin 1.46 if [[ ! -d ${ESVN_STORE_DIR} ]]; then
191 hattya 1.17 debug-print "${FUNCNAME}: initial checkout. creating subversion directory"
192 hattya 1.33 mkdir -p "${ESVN_STORE_DIR}" || die "${ESVN}: can't mkdir ${ESVN_STORE_DIR}."
193 hattya 1.1 fi
194    
195 hattya 1.33 cd "${ESVN_STORE_DIR}" || die "${ESVN}: can't chdir to ${ESVN_STORE_DIR}"
196 hattya 1.1
197 hattya 1.39 local wc_path="$(subversion__get_wc_path "${repo_uri}")"
198 hattya 1.38 local options="${ESVN_OPTIONS} --config-dir ${ESVN_STORE_DIR}/.subversion"
199 hattya 1.1
200 cardoe 1.47 [[ -n "${revision}" ]] && options="${options} -r ${revision}"
201    
202     if [[ "${ESVN_OPTIONS}" = *-r* ]]; then
203     ewarn "\${ESVN_OPTIONS} contains -r, this usage is unsupported. Please"
204     ewarn "see \${ESVN_REPO_URI}"
205     fi
206    
207 hattya 1.39 debug-print "${FUNCNAME}: wc_path = \"${wc_path}\""
208 hattya 1.25 debug-print "${FUNCNAME}: ESVN_OPTIONS = \"${ESVN_OPTIONS}\""
209 hattya 1.38 debug-print "${FUNCNAME}: options = \"${options}\""
210 joker 1.37
211 zlin 1.46 if [[ ! -d ${wc_path}/.svn ]]; then
212 zlin 1.53 if [[ -n ${ESVN_OFFLINE} ]]; then
213     ewarn "ESVN_OFFLINE cannot be used when the there is no existing checkout."
214     fi
215 hattya 1.1 # first check out
216     einfo "subversion check out start -->"
217 cardoe 1.47 einfo " repository: ${repo_uri}${revision:+@}${revision}"
218 hattya 1.1
219 hattya 1.39 debug-print "${FUNCNAME}: ${ESVN_FETCH_CMD} ${options} ${repo_uri}"
220    
221     mkdir -p "${ESVN_PROJECT}" || die "${ESVN}: can't mkdir ${ESVN_PROJECT}."
222     cd "${ESVN_PROJECT}" || die "${ESVN}: can't chdir to ${ESVN_PROJECT}"
223 hattya 1.38 ${ESVN_FETCH_CMD} ${options} "${repo_uri}" || die "${ESVN}: can't fetch from ${repo_uri}."
224 hattya 1.12
225 zlin 1.49 elif [[ -n ${ESVN_OFFLINE} ]]; then
226     subversion_wc_info "${repo_uri}" || die "${ESVN}: unknown problem occurred while accessing working copy."
227     if [[ -n ${ESVN_REVISION} && ${ESVN_REVISION} != ${ESVN_WC_REVISION} ]]; then
228     die "${ESVN}: You requested off-line updating and revision ${ESVN_REVISION} but only revision ${ESVN_WC_REVISION} is available locally."
229     fi
230 zlin 1.56 einfo "Fetching disabled: Using existing repository copy at revision ${ESVN_WC_REVISION}."
231 hattya 1.1 else
232 peper 1.44 subversion_wc_info "${repo_uri}" || die "${ESVN}: unknown problem occurred while accessing working copy."
233 hattya 1.45
234 zlin 1.52 local esvn_up_freq=
235     if [[ -n ${ESVN_UP_FREQ} ]]; then
236     if [[ -n ${ESVN_UP_FREQ//[[:digit:]]} ]]; then
237     die "${ESVN}: ESVN_UP_FREQ must be an integer value corresponding to the minimum number of hours between svn up."
238     elif [[ -z $(find "${wc_path}/.svn/entries" -mmin "+$((ESVN_UP_FREQ*60))") ]]; then
239 zlin 1.56 einfo "Fetching disabled since ${ESVN_UP_FREQ} hours has not passed since last update."
240     einfo "Using existing repository copy at revision ${ESVN_WC_REVISION}."
241 zlin 1.52 esvn_up_freq=no_update
242     fi
243     fi
244    
245     if [[ -z ${esvn_up_freq} ]]; then
246     if [[ ${ESVN_WC_URL} != $(subversion__get_repository_uri "${repo_uri}") ]]; then
247 zlin 1.57 einfo "subversion switch start -->"
248 zlin 1.52 einfo " old repository: ${ESVN_WC_URL}@${ESVN_WC_REVISION}"
249     einfo " new repository: ${repo_uri}${revision:+@}${revision}"
250 cardoe 1.48
251 zlin 1.52 debug-print "${FUNCNAME}: ${ESVN_SWITCH_CMD} ${options} ${repo_uri}"
252 hattya 1.34
253 zlin 1.52 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
254     ${ESVN_SWITCH_CMD} ${options} ${repo_uri} || die "${ESVN}: can't update from ${repo_uri}"
255     else
256     # update working copy
257     einfo "subversion update start -->"
258     einfo " repository: ${repo_uri}${revision:+@}${revision}"
259 hattya 1.25
260 zlin 1.52 debug-print "${FUNCNAME}: ${ESVN_UPDATE_CMD} ${options}"
261 hattya 1.39
262 zlin 1.52 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
263     ${ESVN_UPDATE_CMD} ${options} || die "${ESVN}: can't update from ${repo_uri}."
264     fi
265 cardoe 1.48 fi
266 peper 1.43 fi
267 hattya 1.1
268 hattya 1.39 einfo " working copy: ${wc_path}"
269 hattya 1.33
270     if ! has "export" ${ESVN_RESTRICT}; then
271 hattya 1.39 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
272    
273     local S="${S}/${S_dest}"
274 hattya 1.33
275     # export to the ${WORKDIR}
276     #* "svn export" has a bug. see http://bugs.gentoo.org/119236
277     #* svn export . "${S}" || die "${ESVN}: can't export to ${S}."
278     rsync -rlpgo --exclude=".svn/" . "${S}" || die "${ESVN}: can't export to ${S}."
279     fi
280 hattya 1.1
281 hattya 1.8 echo
282 hattya 1.1 }
283    
284 zlin 1.46 # @FUNCTION: subversion_bootstrap
285     # @DESCRIPTION:
286     # Apply patches in ${ESVN_PATCHES} and run ${ESVN_BOOTSTRAP} if specified.
287     subversion_bootstrap() {
288 hattya 1.33 if has "export" ${ESVN_RESTRICT}; then
289     return
290     fi
291 hattya 1.1
292 hattya 1.8 cd "${S}"
293    
294 zlin 1.46 if [[ -n ${ESVN_PATCHES} ]]; then
295 hattya 1.15 einfo "apply patches -->"
296 hattya 1.12
297 peper 1.43 local patch fpatch
298 hattya 1.45
299 peper 1.43 for patch in ${ESVN_PATCHES}; do
300 zlin 1.46 if [[ -f ${patch} ]]; then
301 peper 1.43 epatch "${patch}"
302 hattya 1.45
303 hattya 1.8 else
304 peper 1.43 for fpatch in ${FILESDIR}/${patch}; do
305 zlin 1.46 if [[ -f ${fpatch} ]]; then
306 peper 1.43 epatch "${fpatch}"
307 hattya 1.45
308 hattya 1.8 else
309 peper 1.43 die "${ESVN}: ${patch} not found"
310 hattya 1.45
311 hattya 1.8 fi
312     done
313 hattya 1.45
314 hattya 1.8 fi
315     done
316 hattya 1.45
317 hattya 1.8 echo
318     fi
319    
320 zlin 1.46 if [[ -n ${ESVN_BOOTSTRAP} ]]; then
321 hattya 1.8 einfo "begin bootstrap -->"
322 hattya 1.12
323 zlin 1.46 if [[ -f ${ESVN_BOOTSTRAP} && -x ${ESVN_BOOTSTRAP} ]]; then
324 hattya 1.8 einfo " bootstrap with a file: ${ESVN_BOOTSTRAP}"
325     eval "./${ESVN_BOOTSTRAP}" || die "${ESVN}: can't execute ESVN_BOOTSTRAP."
326 hattya 1.45
327 hattya 1.8 else
328 peper 1.43 einfo " bootstrap with command: ${ESVN_BOOTSTRAP}"
329 hattya 1.8 eval "${ESVN_BOOTSTRAP}" || die "${ESVN}: can't eval ESVN_BOOTSTRAP."
330 hattya 1.45
331 hattya 1.1 fi
332     fi
333     }
334    
335 zlin 1.46 # @FUNCTION: subversion_src_unpack
336     # @DESCRIPTION:
337     # default src_unpack. fetch and bootstrap.
338     subversion_src_unpack() {
339 hattya 1.34 subversion_fetch || die "${ESVN}: unknown problem occurred in subversion_fetch."
340     subversion_bootstrap || die "${ESVN}: unknown problem occurred in subversion_bootstrap."
341 hattya 1.1 }
342 hattya 1.33
343 zlin 1.46 # @FUNCTION: subversion_wc_info
344     # @USAGE: [repo_uri]
345 cardoe 1.47 # @RETURN: ESVN_WC_URL, ESVN_WC_ROOT, ESVN_WC_UUID, ESVN_WC_REVISION and ESVN_WC_PATH
346 zlin 1.46 # @DESCRIPTION:
347     # Get svn info for the specified repo_uri. The default repo_uri is ESVN_REPO_URI.
348 hattya 1.39 #
349 zlin 1.46 # The working copy information on the specified repository URI are set to
350 hattya 1.45 # ESVN_WC_* variables.
351 zlin 1.46 subversion_wc_info() {
352 zlin 1.54 local repo_uri="$(subversion__get_repository_uri "${1:-${ESVN_REPO_URI}}")"
353 hattya 1.39 local wc_path="$(subversion__get_wc_path "${repo_uri}")"
354    
355     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
356     debug-print "${FUNCNAME}: wc_path = ${wc_path}"
357    
358 zlin 1.46 if [[ ! -d ${wc_path} ]]; then
359 hattya 1.39 return 1
360     fi
361    
362 cardoe 1.47 export ESVN_WC_URL="$(subversion__svn_info "${wc_path}" "URL")"
363     export ESVN_WC_ROOT="$(subversion__svn_info "${wc_path}" "Repository Root")"
364     export ESVN_WC_UUID="$(subversion__svn_info "${wc_path}" "Repository UUID")"
365     export ESVN_WC_REVISION="$(subversion__svn_info "${wc_path}" "Revision")"
366 hattya 1.45 export ESVN_WC_PATH="${wc_path}"
367 hattya 1.39 }
368    
369     ## -- Private Functions
370    
371     ## -- subversion__svn_info() ------------------------------------------------- #
372     #
373 zlin 1.46 # param $1 - a target.
374     # param $2 - a key name.
375 hattya 1.39 #
376 zlin 1.46 subversion__svn_info() {
377 hattya 1.39 local target="${1}"
378     local key="${2}"
379    
380     env LC_ALL=C svn info "${target}" | grep -i "^${key}" | cut -d" " -f2-
381     }
382    
383     ## -- subversion__get_repository_uri() --------------------------------------- #
384     #
385 zlin 1.46 # param $1 - a repository URI.
386     subversion__get_repository_uri() {
387 zlin 1.54 local repo_uri="${1}"
388 hattya 1.39
389     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
390 hattya 1.33
391 zlin 1.46 if [[ -z ${repo_uri} ]]; then
392 hattya 1.39 die "${ESVN}: ESVN_REPO_URI (or specified URI) is empty."
393     fi
394 hattya 1.33
395     # delete trailing slash
396 zlin 1.46 if [[ -z ${repo_uri##*/} ]]; then
397 hattya 1.33 repo_uri="${repo_uri%/}"
398     fi
399    
400 cardoe 1.47 repo_uri="${repo_uri%@*}"
401 hattya 1.39
402     echo "${repo_uri}"
403     }
404    
405     ## -- subversion__get_wc_path() ---------------------------------------------- #
406     #
407 zlin 1.46 # param $1 - a repository URI.
408     subversion__get_wc_path() {
409 cardoe 1.47 local repo_uri="$(subversion__get_repository_uri "${1}")"
410 hattya 1.39
411     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
412    
413     echo "${ESVN_STORE_DIR}/${ESVN_PROJECT}/${repo_uri##*/}"
414     }
415    
416 cardoe 1.47 ## -- subversion__get_peg_revision() ----------------------------------------- #
417 hattya 1.39 #
418 zlin 1.46 # param $1 - a repository URI.
419 cardoe 1.47 subversion__get_peg_revision() {
420 hattya 1.39 local repo_uri="${1}"
421    
422     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
423    
424     # repo_uri has peg revision ?
425 zlin 1.46 if [[ ${repo_uri} != *@* ]]; then
426 hattya 1.39 debug-print "${FUNCNAME}: repo_uri does not have a peg revision."
427 hattya 1.33 fi
428 zlin 1.49
429 cardoe 1.47 local peg_rev=
430     [[ ${repo_uri} = *@* ]] && peg_rev="${repo_uri##*@}"
431 hattya 1.33
432 hattya 1.39 debug-print "${FUNCNAME}: peg_rev = ${peg_rev}"
433    
434 cardoe 1.47 echo "${peg_rev}"
435 hattya 1.33 }
436 zlin 1.50
437     # @FUNCTION: subversion_pkg_preinst
438 zlin 1.55 # @USAGE: [repo_uri]
439 zlin 1.50 # @DESCRIPTION:
440     # Log the svn revision of source code. Doing this in pkg_preinst because we
441     # want the logs to stick around if packages are uninstalled without messing with
442     # config protection.
443     subversion_pkg_preinst() {
444     local pkgdate=$(date "+%Y%m%d %H:%M:%S")
445 zlin 1.55 subversion_wc_info "${1:-${ESVN_REPO_URI}}"
446 zlin 1.50 if [[ -n ${ESCM_LOGDIR} ]]; then
447     local dir="${ROOT}/${ESCM_LOGDIR}/${CATEGORY}"
448     if [[ ! -d ${dir} ]]; then
449     mkdir -p "${dir}" || \
450     eerror "Failed to create '${dir}' for logging svn revision to '${PORTDIR_SCM}'"
451     fi
452     local logmessage="svn: ${pkgdate} - ${PF}:${SLOT} was merged at revision ${ESVN_WC_REVISION}"
453     if [[ -d ${dir} ]]; then
454     echo "${logmessage}" >> "${dir}/${PN}.log"
455     else
456     eerror "Could not log the message '${logmessage}' to '${dir}/${PN}.log'"
457     fi
458     fi
459 zlin 1.51 }

  ViewVC Help
Powered by ViewVC 1.1.20