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

Contents of /eclass/subversion.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.60 - (hide annotations) (download)
Tue May 27 09:49:09 2008 UTC (6 years, 11 months ago) by zlin
Branch: MAIN
Changes since 1.59: +2 -1 lines
Make sure S exists thanks to Peter Volkov (pva) on bug #223813.

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.60 # $Header: /var/cvsroot/gentoo-x86/eclass/subversion.eclass,v 1.59 2008/05/15 13:27:40 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 hollow 1.58 if ! built_with_use --missing true -o dev-util/subversion webdav-neon webdav-serf || \
173     built_with_use --missing false dev-util/subversion nowebdav ; then
174 hattya 1.34 echo
175 vapier 1.24 eerror "In order to emerge this package, you need to"
176 hollow 1.58 eerror "reinstall Subversion with support for WebDAV."
177     eerror "Subversion requires either Neon or Serf to support WebDAV."
178 hattya 1.34 echo
179 hollow 1.58 die "${ESVN}: reinstall Subversion with support for WebDAV."
180 vapier 1.24 fi
181     ;;
182 hattya 1.33 svn|svn+ssh)
183     ;;
184 hattya 1.5 *)
185 zlin 1.46 die "${ESVN}: fetch from '${protocol}' is not yet implemented."
186 hattya 1.5 ;;
187     esac
188 hattya 1.1
189 hattya 1.38 addread "/etc/subversion"
190     addwrite "${ESVN_STORE_DIR}"
191    
192 zlin 1.46 if [[ ! -d ${ESVN_STORE_DIR} ]]; then
193 hattya 1.17 debug-print "${FUNCNAME}: initial checkout. creating subversion directory"
194 hattya 1.33 mkdir -p "${ESVN_STORE_DIR}" || die "${ESVN}: can't mkdir ${ESVN_STORE_DIR}."
195 hattya 1.1 fi
196    
197 hattya 1.33 cd "${ESVN_STORE_DIR}" || die "${ESVN}: can't chdir to ${ESVN_STORE_DIR}"
198 hattya 1.1
199 hattya 1.39 local wc_path="$(subversion__get_wc_path "${repo_uri}")"
200 hattya 1.38 local options="${ESVN_OPTIONS} --config-dir ${ESVN_STORE_DIR}/.subversion"
201 hattya 1.1
202 cardoe 1.47 [[ -n "${revision}" ]] && options="${options} -r ${revision}"
203    
204     if [[ "${ESVN_OPTIONS}" = *-r* ]]; then
205     ewarn "\${ESVN_OPTIONS} contains -r, this usage is unsupported. Please"
206     ewarn "see \${ESVN_REPO_URI}"
207     fi
208    
209 hattya 1.39 debug-print "${FUNCNAME}: wc_path = \"${wc_path}\""
210 hattya 1.25 debug-print "${FUNCNAME}: ESVN_OPTIONS = \"${ESVN_OPTIONS}\""
211 hattya 1.38 debug-print "${FUNCNAME}: options = \"${options}\""
212 joker 1.37
213 zlin 1.46 if [[ ! -d ${wc_path}/.svn ]]; then
214 zlin 1.53 if [[ -n ${ESVN_OFFLINE} ]]; then
215     ewarn "ESVN_OFFLINE cannot be used when the there is no existing checkout."
216     fi
217 hattya 1.1 # first check out
218     einfo "subversion check out start -->"
219 cardoe 1.47 einfo " repository: ${repo_uri}${revision:+@}${revision}"
220 hattya 1.1
221 hattya 1.39 debug-print "${FUNCNAME}: ${ESVN_FETCH_CMD} ${options} ${repo_uri}"
222    
223     mkdir -p "${ESVN_PROJECT}" || die "${ESVN}: can't mkdir ${ESVN_PROJECT}."
224     cd "${ESVN_PROJECT}" || die "${ESVN}: can't chdir to ${ESVN_PROJECT}"
225 zlin 1.59 ${ESVN_FETCH_CMD} ${options} "${repo_uri}" || die "${ESVN}: can't fetch to ${wc_path} from ${repo_uri}."
226 hattya 1.12
227 zlin 1.49 elif [[ -n ${ESVN_OFFLINE} ]]; then
228     subversion_wc_info "${repo_uri}" || die "${ESVN}: unknown problem occurred while accessing working copy."
229     if [[ -n ${ESVN_REVISION} && ${ESVN_REVISION} != ${ESVN_WC_REVISION} ]]; then
230     die "${ESVN}: You requested off-line updating and revision ${ESVN_REVISION} but only revision ${ESVN_WC_REVISION} is available locally."
231     fi
232 zlin 1.56 einfo "Fetching disabled: Using existing repository copy at revision ${ESVN_WC_REVISION}."
233 hattya 1.1 else
234 peper 1.44 subversion_wc_info "${repo_uri}" || die "${ESVN}: unknown problem occurred while accessing working copy."
235 hattya 1.45
236 zlin 1.52 local esvn_up_freq=
237     if [[ -n ${ESVN_UP_FREQ} ]]; then
238     if [[ -n ${ESVN_UP_FREQ//[[:digit:]]} ]]; then
239     die "${ESVN}: ESVN_UP_FREQ must be an integer value corresponding to the minimum number of hours between svn up."
240     elif [[ -z $(find "${wc_path}/.svn/entries" -mmin "+$((ESVN_UP_FREQ*60))") ]]; then
241 zlin 1.56 einfo "Fetching disabled since ${ESVN_UP_FREQ} hours has not passed since last update."
242     einfo "Using existing repository copy at revision ${ESVN_WC_REVISION}."
243 zlin 1.52 esvn_up_freq=no_update
244     fi
245     fi
246    
247     if [[ -z ${esvn_up_freq} ]]; then
248     if [[ ${ESVN_WC_URL} != $(subversion__get_repository_uri "${repo_uri}") ]]; then
249 zlin 1.57 einfo "subversion switch start -->"
250 zlin 1.52 einfo " old repository: ${ESVN_WC_URL}@${ESVN_WC_REVISION}"
251     einfo " new repository: ${repo_uri}${revision:+@}${revision}"
252 cardoe 1.48
253 zlin 1.52 debug-print "${FUNCNAME}: ${ESVN_SWITCH_CMD} ${options} ${repo_uri}"
254 hattya 1.34
255 zlin 1.52 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
256 zlin 1.59 ${ESVN_SWITCH_CMD} ${options} ${repo_uri} || die "${ESVN}: can't update ${wc_path} from ${repo_uri}"
257 zlin 1.52 else
258     # update working copy
259     einfo "subversion update start -->"
260     einfo " repository: ${repo_uri}${revision:+@}${revision}"
261 hattya 1.25
262 zlin 1.52 debug-print "${FUNCNAME}: ${ESVN_UPDATE_CMD} ${options}"
263 hattya 1.39
264 zlin 1.52 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
265 zlin 1.59 ${ESVN_UPDATE_CMD} ${options} || die "${ESVN}: can't update ${wc_path} from ${repo_uri}."
266 zlin 1.52 fi
267 cardoe 1.48 fi
268 peper 1.43 fi
269 hattya 1.1
270 hattya 1.39 einfo " working copy: ${wc_path}"
271 hattya 1.33
272     if ! has "export" ${ESVN_RESTRICT}; then
273 hattya 1.39 cd "${wc_path}" || die "${ESVN}: can't chdir to ${wc_path}"
274    
275     local S="${S}/${S_dest}"
276 zlin 1.60 mkdir -p "${S}"
277 hattya 1.33
278     # export to the ${WORKDIR}
279     #* "svn export" has a bug. see http://bugs.gentoo.org/119236
280     #* svn export . "${S}" || die "${ESVN}: can't export to ${S}."
281     rsync -rlpgo --exclude=".svn/" . "${S}" || die "${ESVN}: can't export to ${S}."
282     fi
283 hattya 1.1
284 hattya 1.8 echo
285 hattya 1.1 }
286    
287 zlin 1.46 # @FUNCTION: subversion_bootstrap
288     # @DESCRIPTION:
289     # Apply patches in ${ESVN_PATCHES} and run ${ESVN_BOOTSTRAP} if specified.
290     subversion_bootstrap() {
291 hattya 1.33 if has "export" ${ESVN_RESTRICT}; then
292     return
293     fi
294 hattya 1.1
295 hattya 1.8 cd "${S}"
296    
297 zlin 1.46 if [[ -n ${ESVN_PATCHES} ]]; then
298 hattya 1.15 einfo "apply patches -->"
299 hattya 1.12
300 peper 1.43 local patch fpatch
301 hattya 1.45
302 peper 1.43 for patch in ${ESVN_PATCHES}; do
303 zlin 1.46 if [[ -f ${patch} ]]; then
304 peper 1.43 epatch "${patch}"
305 hattya 1.45
306 hattya 1.8 else
307 peper 1.43 for fpatch in ${FILESDIR}/${patch}; do
308 zlin 1.46 if [[ -f ${fpatch} ]]; then
309 peper 1.43 epatch "${fpatch}"
310 hattya 1.45
311 hattya 1.8 else
312 peper 1.43 die "${ESVN}: ${patch} not found"
313 hattya 1.45
314 hattya 1.8 fi
315     done
316 hattya 1.45
317 hattya 1.8 fi
318     done
319 hattya 1.45
320 hattya 1.8 echo
321     fi
322    
323 zlin 1.46 if [[ -n ${ESVN_BOOTSTRAP} ]]; then
324 hattya 1.8 einfo "begin bootstrap -->"
325 hattya 1.12
326 zlin 1.46 if [[ -f ${ESVN_BOOTSTRAP} && -x ${ESVN_BOOTSTRAP} ]]; then
327 hattya 1.8 einfo " bootstrap with a file: ${ESVN_BOOTSTRAP}"
328     eval "./${ESVN_BOOTSTRAP}" || die "${ESVN}: can't execute ESVN_BOOTSTRAP."
329 hattya 1.45
330 hattya 1.8 else
331 peper 1.43 einfo " bootstrap with command: ${ESVN_BOOTSTRAP}"
332 hattya 1.8 eval "${ESVN_BOOTSTRAP}" || die "${ESVN}: can't eval ESVN_BOOTSTRAP."
333 hattya 1.45
334 hattya 1.1 fi
335     fi
336     }
337    
338 zlin 1.46 # @FUNCTION: subversion_src_unpack
339     # @DESCRIPTION:
340     # default src_unpack. fetch and bootstrap.
341     subversion_src_unpack() {
342 hattya 1.34 subversion_fetch || die "${ESVN}: unknown problem occurred in subversion_fetch."
343     subversion_bootstrap || die "${ESVN}: unknown problem occurred in subversion_bootstrap."
344 hattya 1.1 }
345 hattya 1.33
346 zlin 1.46 # @FUNCTION: subversion_wc_info
347     # @USAGE: [repo_uri]
348 cardoe 1.47 # @RETURN: ESVN_WC_URL, ESVN_WC_ROOT, ESVN_WC_UUID, ESVN_WC_REVISION and ESVN_WC_PATH
349 zlin 1.46 # @DESCRIPTION:
350     # Get svn info for the specified repo_uri. The default repo_uri is ESVN_REPO_URI.
351 hattya 1.39 #
352 zlin 1.46 # The working copy information on the specified repository URI are set to
353 hattya 1.45 # ESVN_WC_* variables.
354 zlin 1.46 subversion_wc_info() {
355 zlin 1.54 local repo_uri="$(subversion__get_repository_uri "${1:-${ESVN_REPO_URI}}")"
356 hattya 1.39 local wc_path="$(subversion__get_wc_path "${repo_uri}")"
357    
358     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
359     debug-print "${FUNCNAME}: wc_path = ${wc_path}"
360    
361 zlin 1.46 if [[ ! -d ${wc_path} ]]; then
362 hattya 1.39 return 1
363     fi
364    
365 cardoe 1.47 export ESVN_WC_URL="$(subversion__svn_info "${wc_path}" "URL")"
366     export ESVN_WC_ROOT="$(subversion__svn_info "${wc_path}" "Repository Root")"
367     export ESVN_WC_UUID="$(subversion__svn_info "${wc_path}" "Repository UUID")"
368     export ESVN_WC_REVISION="$(subversion__svn_info "${wc_path}" "Revision")"
369 hattya 1.45 export ESVN_WC_PATH="${wc_path}"
370 hattya 1.39 }
371    
372     ## -- Private Functions
373    
374     ## -- subversion__svn_info() ------------------------------------------------- #
375     #
376 zlin 1.46 # param $1 - a target.
377     # param $2 - a key name.
378 hattya 1.39 #
379 zlin 1.46 subversion__svn_info() {
380 hattya 1.39 local target="${1}"
381     local key="${2}"
382    
383     env LC_ALL=C svn info "${target}" | grep -i "^${key}" | cut -d" " -f2-
384     }
385    
386     ## -- subversion__get_repository_uri() --------------------------------------- #
387     #
388 zlin 1.46 # param $1 - a repository URI.
389     subversion__get_repository_uri() {
390 zlin 1.54 local repo_uri="${1}"
391 hattya 1.39
392     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
393 hattya 1.33
394 zlin 1.46 if [[ -z ${repo_uri} ]]; then
395 hattya 1.39 die "${ESVN}: ESVN_REPO_URI (or specified URI) is empty."
396     fi
397 hattya 1.33
398     # delete trailing slash
399 zlin 1.46 if [[ -z ${repo_uri##*/} ]]; then
400 hattya 1.33 repo_uri="${repo_uri%/}"
401     fi
402    
403 cardoe 1.47 repo_uri="${repo_uri%@*}"
404 hattya 1.39
405     echo "${repo_uri}"
406     }
407    
408     ## -- subversion__get_wc_path() ---------------------------------------------- #
409     #
410 zlin 1.46 # param $1 - a repository URI.
411     subversion__get_wc_path() {
412 cardoe 1.47 local repo_uri="$(subversion__get_repository_uri "${1}")"
413 hattya 1.39
414     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
415    
416     echo "${ESVN_STORE_DIR}/${ESVN_PROJECT}/${repo_uri##*/}"
417     }
418    
419 cardoe 1.47 ## -- subversion__get_peg_revision() ----------------------------------------- #
420 hattya 1.39 #
421 zlin 1.46 # param $1 - a repository URI.
422 cardoe 1.47 subversion__get_peg_revision() {
423 hattya 1.39 local repo_uri="${1}"
424    
425     debug-print "${FUNCNAME}: repo_uri = ${repo_uri}"
426    
427     # repo_uri has peg revision ?
428 zlin 1.46 if [[ ${repo_uri} != *@* ]]; then
429 hattya 1.39 debug-print "${FUNCNAME}: repo_uri does not have a peg revision."
430 hattya 1.33 fi
431 zlin 1.49
432 cardoe 1.47 local peg_rev=
433     [[ ${repo_uri} = *@* ]] && peg_rev="${repo_uri##*@}"
434 hattya 1.33
435 hattya 1.39 debug-print "${FUNCNAME}: peg_rev = ${peg_rev}"
436    
437 cardoe 1.47 echo "${peg_rev}"
438 hattya 1.33 }
439 zlin 1.50
440     # @FUNCTION: subversion_pkg_preinst
441 zlin 1.55 # @USAGE: [repo_uri]
442 zlin 1.50 # @DESCRIPTION:
443     # Log the svn revision of source code. Doing this in pkg_preinst because we
444     # want the logs to stick around if packages are uninstalled without messing with
445     # config protection.
446     subversion_pkg_preinst() {
447     local pkgdate=$(date "+%Y%m%d %H:%M:%S")
448 zlin 1.55 subversion_wc_info "${1:-${ESVN_REPO_URI}}"
449 zlin 1.50 if [[ -n ${ESCM_LOGDIR} ]]; then
450     local dir="${ROOT}/${ESCM_LOGDIR}/${CATEGORY}"
451     if [[ ! -d ${dir} ]]; then
452     mkdir -p "${dir}" || \
453     eerror "Failed to create '${dir}' for logging svn revision to '${PORTDIR_SCM}'"
454     fi
455     local logmessage="svn: ${pkgdate} - ${PF}:${SLOT} was merged at revision ${ESVN_WC_REVISION}"
456     if [[ -d ${dir} ]]; then
457     echo "${logmessage}" >> "${dir}/${PN}.log"
458     else
459     eerror "Could not log the message '${logmessage}' to '${dir}/${PN}.log'"
460     fi
461     fi
462 zlin 1.51 }

  ViewVC Help
Powered by ViewVC 1.1.20