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

Contents of /eclass/subversion.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.61 - (hide annotations) (download)
Sun Mar 22 01:56:34 2009 UTC (5 years, 6 months ago) by arfrever
Branch: MAIN
Changes since 1.60: +7 -2 lines
Update for compatibility with Subversion 1.6.

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

  ViewVC Help
Powered by ViewVC 1.1.20