/[gentoo-x86]/eclass/depend.php.eclass
Gentoo

Contents of /eclass/depend.php.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.18 - (hide annotations) (download)
Mon Mar 5 01:50:47 2007 UTC (7 years, 5 months ago) by chtekk
Branch: MAIN
Changes since 1.17: +22 -36 lines
New updated PHP eclasses, fix lots of bugs, introduce PHP 5.2 support.

1 chtekk 1.18 # Copyright 1999-2007 Gentoo Foundation
2 stuart 1.1 # Distributed under the terms of the GNU General Public License v2
3 chtekk 1.18 # $Header: $
4    
5 stuart 1.1 # ========================================================================
6     #
7     # depend.php.eclass
8 chtekk 1.18 # Functions to allow ebuilds to depend on php4 and/or php5
9 stuart 1.1 #
10     # Author: Stuart Herbert
11 chtekk 1.7 # <stuart@gentoo.org>
12     #
13     # Author: Luca Longinotti
14     # <chtekk@gentoo.org>
15     #
16 chtekk 1.18 # Maintained by the PHP Team <php-bugs@gentoo.org>
17 stuart 1.1 #
18     # ========================================================================
19    
20 chtekk 1.12 inherit eutils phpconfutils
21 stuart 1.1
22 trapni 1.4 # PHP4-only depend functions
23 chtekk 1.12 need_php4_cli() {
24 stuart 1.1 DEPEND="${DEPEND} =virtual/php-4*"
25     RDEPEND="${RDEPEND} =virtual/php-4*"
26 chtekk 1.12 PHP_VERSION="4"
27 stuart 1.1 }
28    
29 chtekk 1.12 need_php4_httpd() {
30 stuart 1.1 DEPEND="${DEPEND} =virtual/httpd-php-4*"
31     RDEPEND="${RDEPEND} =virtual/httpd-php-4*"
32 chtekk 1.12 PHP_VERSION="4"
33 stuart 1.1 }
34    
35 chtekk 1.12 need_php4() {
36 stuart 1.1 DEPEND="${DEPEND} =dev-lang/php-4*"
37     RDEPEND="${RDEPEND} =dev-lang/php-4*"
38 chtekk 1.12 PHP_VERSION="4"
39 stuart 1.1 PHP_SHARED_CAT="php4"
40     }
41    
42     # common settings go in here
43 chtekk 1.12 uses_php4() {
44 stuart 1.1 # cache this
45     libdir=$(get_libdir)
46    
47     PHPIZE="/usr/${libdir}/php4/bin/phpize"
48     PHPCONFIG="/usr/${libdir}/php4/bin/php-config"
49     PHPCLI="/usr/${libdir}/php4/bin/php"
50     PHPCGI="/usr/${libdir}/php4/bin/php-cgi"
51     PHP_PKG="`best_version =dev-lang/php-4*`"
52     PHPPREFIX="/usr/${libdir}/php4"
53 chtekk 1.17 EXT_DIR="`${PHPCONFIG} --extension-dir 2>/dev/null`"
54 stuart 1.1
55     einfo
56     einfo "Using ${PHP_PKG}"
57     einfo
58     }
59    
60 trapni 1.4 # PHP5-only depend functions
61 chtekk 1.12 need_php5_cli() {
62 stuart 1.1 DEPEND="${DEPEND} =virtual/php-5*"
63     RDEPEND="${RDEPEND} =virtual/php-5*"
64 chtekk 1.12 PHP_VERSION="5"
65 stuart 1.1 }
66    
67 chtekk 1.12 need_php5_httpd() {
68 stuart 1.1 DEPEND="${DEPEND} =virtual/httpd-php-5*"
69     RDEPEND="${RDEPEND} =virtual/httpd-php-5*"
70 chtekk 1.12 PHP_VERSION="5"
71 stuart 1.1 }
72    
73 chtekk 1.12 need_php5() {
74 stuart 1.1 DEPEND="${DEPEND} =dev-lang/php-5*"
75     RDEPEND="${RDEPEND} =dev-lang/php-5*"
76 chtekk 1.12 PHP_VERSION="5"
77 stuart 1.1 PHP_SHARED_CAT="php5"
78     }
79    
80     # common settings go in here
81 chtekk 1.12 uses_php5() {
82 stuart 1.1 # cache this
83     libdir=$(get_libdir)
84    
85     PHPIZE="/usr/${libdir}/php5/bin/phpize"
86     PHPCONFIG="/usr/${libdir}/php5/bin/php-config"
87     PHPCLI="/usr/${libdir}/php5/bin/php"
88     PHPCGI="/usr/${libdir}/php5/bin/php-cgi"
89     PHP_PKG="`best_version =dev-lang/php-5*`"
90     PHPPREFIX="/usr/${libdir}/php5"
91 chtekk 1.17 EXT_DIR="`${PHPCONFIG} --extension-dir 2>/dev/null`"
92 stuart 1.1
93     einfo
94     einfo "Using ${PHP_PKG}"
95     einfo
96     }
97    
98 trapni 1.4 # general PHP depend functions
99 chtekk 1.12 need_php_cli() {
100 trapni 1.4 DEPEND="${DEPEND} virtual/php"
101     RDEPEND="${RDEPEND} virtual/php"
102     }
103    
104 chtekk 1.12 need_php_httpd() {
105 trapni 1.4 DEPEND="${DEPEND} virtual/httpd-php"
106     RDEPEND="${RDEPEND} virtual/httpd-php"
107     }
108    
109 chtekk 1.12 need_php() {
110 stuart 1.1 DEPEND="${DEPEND} dev-lang/php"
111     RDEPEND="${RDEPEND} dev-lang/php"
112     PHP_SHARED_CAT="php"
113     }
114    
115 chtekk 1.12 need_php_by_category() {
116 stuart 1.1 case "${CATEGORY}" in
117     dev-php) need_php ;;
118     dev-php4) need_php4 ;;
119     dev-php5) need_php5 ;;
120 chtekk 1.18 *) die "Version of PHP required by packages in category ${CATEGORY} unknown"
121 stuart 1.1 esac
122     }
123    
124 chtekk 1.12 # Call this function from your pkg_setup, src_compile and src_install methods
125     # if you need to know where the PHP binaries are installed and their data
126    
127     has_php() {
128     # If PHP_PKG is already set, then we have remembered our PHP settings
129     # from last time
130     if [[ -n ${PHP_PKG} ]] ; then
131     return
132     fi
133    
134     if [[ -z ${PHP_VERSION} ]] ; then
135     # Detect which PHP version we have installed
136     if has_version '=dev-lang/php-5*' ; then
137     PHP_VERSION="5"
138     elif has_version '=dev-lang/php-4*' ; then
139     PHP_VERSION="4"
140     else
141     die "Unable to find an installed dev-lang/php package"
142     fi
143     fi
144    
145     # If we get here, then PHP_VERSION tells us which version of PHP we
146     # want to use
147     uses_php${PHP_VERSION}
148     }
149    
150     # Call this function from pkg_setup if your package only works with
151 stuart 1.1 # specific SAPIs
152     #
153 chtekk 1.12 # $1 ... a list of PHP SAPI USE flags (cli, cgi, apache, apache2)
154 stuart 1.1 #
155 chtekk 1.12 # Returns if any one of the listed SAPIs have been installed
156     # Dies if none of the listed SAPIs have been installed
157 stuart 1.1
158 chtekk 1.12 require_php_sapi_from() {
159 stuart 1.1 has_php
160    
161 chtekk 1.12 local has_sapi="0"
162 stuart 1.1 local x
163    
164     einfo "Checking for compatible SAPI(s)"
165    
166     for x in $@ ; do
167 chtekk 1.13 if built_with_use =${PHP_PKG} ${x} || phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
168 stuart 1.1 einfo " Discovered compatible SAPI ${x}"
169 chtekk 1.12 has_sapi="1"
170 stuart 1.1 fi
171     done
172    
173 chtekk 1.12 if [[ "${has_sapi}" == "1" ]] ; then
174 stuart 1.1 return
175     fi
176    
177     eerror
178     eerror "${PHP_PKG} needs to be re-installed with one of the following"
179     eerror "USE flags enabled:"
180     eerror
181     eerror " $@"
182     eerror
183 chtekk 1.12 die "No compatible PHP SAPIs found"
184 stuart 1.1 }
185    
186 chtekk 1.12 # Call this function from pkg_setup if your package requires PHP compiled
187 stuart 1.1 # with specific USE flags
188     #
189     # $1 ... a list of USE flags
190 swegener 1.8 #
191 chtekk 1.12 # Returns if all of the listed USE flags are enabled
192     # Dies if any of the listed USE flags are disabled
193 stuart 1.1
194 chtekk 1.12 require_php_with_use() {
195 stuart 1.1 has_php
196    
197 chtekk 1.11 local missing_use=""
198 stuart 1.1 local x
199    
200 chtekk 1.14 einfo "Checking for required PHP feature(s) ..."
201 stuart 1.1
202     for x in $@ ; do
203 chtekk 1.12 if ! built_with_use =${PHP_PKG} ${x} && ! phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
204 chtekk 1.14 einfo " Discovered missing USE flag: ${x}"
205 stuart 1.1 missing_use="${missing_use} ${x}"
206     fi
207     done
208    
209 chtekk 1.15 if [[ -z "${missing_use}" ]] ; then
210     if [[ -z "${PHPCHECKNODIE}" ]] ; then
211     return
212     else
213     return 0
214     fi
215 stuart 1.1 fi
216    
217 chtekk 1.15 if [[ -z "${PHPCHECKNODIE}" ]] ; then
218     eerror
219     eerror "${PHP_PKG} needs to be re-installed with all of the following"
220     eerror "USE flags enabled:"
221     eerror
222     eerror " $@"
223     eerror
224     die "Missing PHP USE flags found"
225     else
226     return 1
227     fi
228 stuart 1.1 }
229    
230 chtekk 1.12 # Call this function from pkg_setup if your package requires PHP compiled
231     # with any of specified USE flags
232     #
233     # $1 ... a list of USE flags
234     #
235     # Returns if any of the listed USE flags are enabled
236     # Dies if all of the listed USE flags are disabled
237    
238     require_php_with_any_use() {
239     has_php
240 stuart 1.1
241 chtekk 1.12 local missing_use=""
242     local x
243 hollow 1.3
244 chtekk 1.14 einfo "Checking for required PHP feature(s) ..."
245 stuart 1.1
246 chtekk 1.12 for x in $@ ; do
247     if built_with_use =${PHP_PKG} ${x} || phpconfutils_built_with_use =${PHP_PKG} ${x} ; then
248     einfo " USE flag ${x} is enabled, ok ..."
249     return
250 stuart 1.1 else
251 chtekk 1.12 missing_use="${missing_use} ${x}"
252 stuart 1.1 fi
253 chtekk 1.12 done
254    
255 chtekk 1.15 if [[ -z "${missing_use}" ]] ; then
256     if [[ -z "${PHPCHECKNODIE}" ]] ; then
257     return
258     else
259     return 0
260     fi
261 stuart 1.1 fi
262    
263 chtekk 1.15 if [[ -z "${PHPCHECKNODIE}" ]] ; then
264     eerror
265     eerror "${PHP_PKG} needs to be re-installed with any of the following"
266     eerror "USE flags enabled:"
267     eerror
268     eerror " $@"
269     eerror
270     die "Missing PHP USE flags found"
271     else
272     return 1
273     fi
274 stuart 1.1 }
275    
276     # ========================================================================
277     # has_*() functions
278     #
279 chtekk 1.12 # These functions return 0 if the condition is satisfied, 1 otherwise
280 stuart 1.1 # ========================================================================
281    
282 chtekk 1.12 # Check if our PHP was compiled with ZTS (Zend Thread Safety) enabled
283 hollow 1.3
284 chtekk 1.12 has_zts() {
285 stuart 1.1 has_php
286    
287 chtekk 1.13 if built_with_use =${PHP_PKG} apache2 threads || phpconfutils_built_with_use =${PHP_PKG} apache2 threads ; then
288 stuart 1.1 return 0
289     fi
290    
291     return 1
292     }
293    
294 chtekk 1.18 # Check if our PHP was built with debug support enabled
295 hollow 1.3
296 chtekk 1.18 has_debug() {
297 hollow 1.3 has_php
298    
299 chtekk 1.18 if built_with_use =${PHP_PKG} debug || phpconfutils_built_with_use =${PHP_PKG} debug ; then
300 hollow 1.3 return 0
301     fi
302    
303     return 1
304     }
305    
306 chtekk 1.18 # Check if our PHP was built with the concurrentmodphp support enabled
307 chtekk 1.12
308 chtekk 1.18 has_concurrentmodphp() {
309 chtekk 1.12 has_php
310    
311 chtekk 1.18 if built_with_use =${PHP_PKG} apache2 concurrentmodphp || phpconfutils_built_with_use =${PHP_PKG} apache2 concurrentmodphp ; then
312 chtekk 1.12 return 0
313     fi
314    
315     return 1
316     }
317    
318 stuart 1.1 # ========================================================================
319     # require_*() functions
320     #
321 chtekk 1.12 # These functions die() if PHP was built without the required features
322 stuart 1.1 # ========================================================================
323    
324 chtekk 1.12 # Require a PHP built with PDO support (PHP5 only)
325 hollow 1.3
326 chtekk 1.12 require_pdo() {
327 stuart 1.1 has_php
328    
329 chtekk 1.12 # Do we have PHP5 installed?
330     if [[ "${PHP_VERSION}" == "4" ]] ; then
331 stuart 1.1 eerror
332 hollow 1.3 eerror "This package requires PDO."
333     eerror "PDO is only available for PHP 5."
334 chtekk 1.18 eerror "You must install >=dev-lang/php-5.1 with"
335     eerror "either the 'pdo' or the 'pdo-external'"
336     eerror "USE flags turned on."
337 stuart 1.1 eerror
338     die "PHP 5 not installed"
339     fi
340    
341 chtekk 1.12 # Was PHP5 compiled with internal PDO support?
342 chtekk 1.13 if built_with_use =${PHP_PKG} pdo || phpconfutils_built_with_use =${PHP_PKG} pdo ; then
343 stuart 1.1 return
344     fi
345    
346 chtekk 1.12 # Ok, maybe PDO was built as an external extension?
347 chtekk 1.13 if ( built_with_use =${PHP_PKG} pdo-external || phpconfutils_built_with_use =${PHP_PKG} pdo-external ) && has_version 'dev-php5/pecl-pdo' ; then
348 stuart 1.1 return
349     fi
350    
351 chtekk 1.12 # Ok, as last resort, it suffices that pecl-pdo was installed to have PDO support
352     if has_version 'dev-php5/pecl-pdo' ; then
353 stuart 1.1 return
354     fi
355    
356 chtekk 1.18 # If we get here, then we don't have PDO support
357 stuart 1.1 eerror
358     eerror "No PDO extension for PHP found."
359     eerror "Please note that PDO only exists for PHP 5."
360     eerror "Please install a PDO extension for PHP 5,"
361 chtekk 1.18 eerror "you must install >=dev-lang/php-5.1 with"
362     eerror "either the 'pdo' or the 'pdo-external'"
363     eerror "USE flags turned on."
364 stuart 1.1 eerror
365 chtekk 1.12 die "No PDO extension for PHP 5 found"
366 stuart 1.1 }
367    
368 chtekk 1.12 # Determines which installed PHP version has the CLI SAPI enabled,
369     # useful for PEAR stuff, or anything which needs to run PHP
370     # scripts depending on the CLI SAPI
371 stuart 1.1
372 chtekk 1.12 require_php_cli() {
373     # If PHP_PKG is set, then we have remembered our PHP settings
374 stuart 1.1 # from last time
375 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
376 stuart 1.1 return
377     fi
378    
379 chtekk 1.12 local PHP_PACKAGE_FOUND=""
380    
381     # Detect which PHP version we have installed
382 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
383 chtekk 1.12 PHP_PACKAGE_FOUND="1"
384 chtekk 1.6 pkg="`best_version '=dev-lang/php-4*'`"
385 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
386 chtekk 1.12 PHP_VERSION="4"
387 chtekk 1.6 fi
388 sebastian 1.10 fi
389    
390     if has_version '=dev-lang/php-5*' ; then
391 chtekk 1.12 PHP_PACKAGE_FOUND="1"
392 stuart 1.1 pkg="`best_version '=dev-lang/php-5*'`"
393 chtekk 1.13 if built_with_use =${pkg} cli || phpconfutils_built_with_use =${pkg} cli ; then
394 chtekk 1.12 PHP_VERSION="5"
395 stuart 1.1 fi
396 sebastian 1.10 fi
397    
398 chtekk 1.11 if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
399 stuart 1.1 die "Unable to find an installed dev-lang/php package"
400     fi
401    
402 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
403 stuart 1.1 die "No PHP CLI installed"
404     fi
405    
406 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
407 stuart 1.1 # want to use
408 hollow 1.3 uses_php${PHP_VERSION}
409     }
410    
411 chtekk 1.12 # Determines which installed PHP version has the CGI SAPI enabled,
412 hollow 1.3 # useful for anything which needs to run PHP scripts
413 chtekk 1.12 # depending on the CGI SAPI
414 hollow 1.3
415 chtekk 1.12 require_php_cgi() {
416     # If PHP_PKG is set, then we have remembered our PHP settings
417 hollow 1.3 # from last time
418 chtekk 1.11 if [[ -n ${PHP_PKG} ]] ; then
419 hollow 1.3 return
420     fi
421    
422 chtekk 1.12 local PHP_PACKAGE_FOUND=""
423    
424     # Detect which PHP version we have installed
425 chtekk 1.6 if has_version '=dev-lang/php-4*' ; then
426 chtekk 1.12 PHP_PACKAGE_FOUND="1"
427 chtekk 1.6 pkg="`best_version '=dev-lang/php-4*'`"
428 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
429 chtekk 1.12 PHP_VERSION="4"
430 chtekk 1.6 fi
431 sebastian 1.9 fi
432    
433     if has_version '=dev-lang/php-5*' ; then
434 chtekk 1.12 PHP_PACKAGE_FOUND="1"
435 hollow 1.3 pkg="`best_version '=dev-lang/php-5*'`"
436 chtekk 1.13 if built_with_use =${pkg} cgi || phpconfutils_built_with_use =${pkg} cgi ; then
437 chtekk 1.12 PHP_VERSION="5"
438 hollow 1.3 fi
439 sebastian 1.9 fi
440 chtekk 1.11
441     if [[ -z ${PHP_PACKAGE_FOUND} ]] ; then
442 hollow 1.3 die "Unable to find an installed dev-lang/php package"
443     fi
444    
445 chtekk 1.11 if [[ -z ${PHP_VERSION} ]] ; then
446 hollow 1.3 die "No PHP CGI installed"
447     fi
448    
449 chtekk 1.12 # If we get here, then PHP_VERSION tells us which version of PHP we
450 hollow 1.3 # want to use
451 stuart 1.1 uses_php${PHP_VERSION}
452     }
453    
454 chtekk 1.12 # Require a PHP built with SQLite support
455 stuart 1.1
456 chtekk 1.12 require_sqlite() {
457 stuart 1.1 has_php
458    
459 chtekk 1.12 # Has our PHP been built with SQLite support?
460     if built_with_use =${PHP_PKG} sqlite || phpconfutils_built_with_use =${PHP_PKG} sqlite ; then
461 stuart 1.1 return
462     fi
463    
464 chtekk 1.12 # Do we have pecl-sqlite installed for PHP4?
465     if [[ "${PHP_VERSION}" == "4" ]] ; then
466     if has_version 'dev-php4/pecl-sqlite' ; then
467 stuart 1.1 return
468     fi
469     fi
470    
471 chtekk 1.12 # If we get here, then we don't have any SQLite support for PHP installed
472 stuart 1.1 eerror
473 chtekk 1.12 eerror "No SQLite extension for PHP found."
474     eerror "Please install an SQLite extension for PHP,"
475 stuart 1.1 eerror "this is done best by simply adding the"
476     eerror "'sqlite' USE flag when emerging dev-lang/php."
477     eerror
478 chtekk 1.12 die "No SQLite extension for PHP found"
479 stuart 1.1 }
480 hollow 1.3
481 chtekk 1.12 # Require a PHP built with GD support
482 chtekk 1.6
483 chtekk 1.12 require_gd() {
484 hollow 1.3 has_php
485    
486 chtekk 1.12 # Do we have the internal GD support installed?
487     if built_with_use =${PHP_PKG} gd || phpconfutils_built_with_use =${PHP_PKG} gd ; then
488 hollow 1.3 return
489     fi
490    
491 chtekk 1.12 # Ok, maybe GD was built using the external library support?
492     if built_with_use =${PHP_PKG} gd-external || phpconfutils_built_with_use =${PHP_PKG} gd-external ; then
493 hollow 1.3 return
494     fi
495    
496 chtekk 1.12 # If we get here, then we have no GD support
497 hollow 1.3 eerror
498     eerror "No GD support for PHP found."
499     eerror "Please install the GD support for PHP,"
500     eerror "you must install dev-lang/php with either"
501     eerror "the 'gd' or the 'gd-external' USE flags"
502     eerror "turned on."
503     eerror
504     die "No GD support found for PHP"
505     }
506 chtekk 1.6
507     # ========================================================================
508     # Misc functions
509     #
510     # These functions provide miscellaneous checks and functionality.
511     # ========================================================================
512    
513 chtekk 1.12 # Executes some checks needed when installing a binary PHP extension
514 chtekk 1.6
515     php_binary_extension() {
516     has_php
517    
518 chtekk 1.12 local PUSE_ENABLED=""
519    
520     # Binary extensions do not support the change of PHP
521 chtekk 1.6 # API version, so they can't be installed when USE flags
522 chtekk 1.16 # are enabled which change the PHP API version, they also
523     # don't provide correctly versioned symbols for our use
524 chtekk 1.6
525 chtekk 1.18 if has_debug ; then
526 chtekk 1.6 eerror
527     eerror "You cannot install binary PHP extensions"
528     eerror "when the 'debug' USE flag is enabled!"
529     eerror "Please reemerge dev-lang/php with the"
530     eerror "'debug' USE flag turned off."
531     eerror
532 chtekk 1.12 PUSE_ENABLED="1"
533     fi
534    
535 chtekk 1.18 if has_concurrentmodphp ; then
536 chtekk 1.16 eerror
537     eerror "You cannot install binary PHP extensions when"
538     eerror "the 'concurrentmodphp' USE flag is enabled!"
539     eerror "Please reemerge dev-lang/php with the"
540     eerror "'concurrentmodphp' USE flag turned off."
541     eerror
542     PUSE_ENABLED="1"
543     fi
544    
545 chtekk 1.12 if [[ -n ${PUSE_ENABLED} ]] ; then
546 chtekk 1.18 die "'debug' and/or 'concurrentmodphp' USE flags turned on!"
547 chtekk 1.6 fi
548     }
549    
550 chtekk 1.12 # Alternative to dodoc function for use in our PHP eclasses and
551     # ebuilds.
552     # Stored here because depend.php gets always sourced everywhere
553     # in the PHP ebuilds and eclasses.
554     # It simply is dodoc with a changed path to the docs.
555     # NOTE: no support for docinto is given!
556 chtekk 1.6
557 chtekk 1.12 dodoc-php() {
558     if [[ $# -lt 1 ]] ; then
559 chtekk 1.6 echo "$0: at least one argument needed" 1>&2
560     exit 1
561     fi
562    
563     phpdocdir="${D}/usr/share/doc/${CATEGORY}/${PF}/"
564    
565 chtekk 1.12 if [[ ! -d "${phpdocdir}" ]] ; then
566 chtekk 1.6 install -d "${phpdocdir}"
567     fi
568    
569 chtekk 1.12 for x in $@ ; do
570     if [[ -s "${x}" ]] ; then
571 chtekk 1.6 install -m0644 "${x}" "${phpdocdir}"
572     gzip -f -9 "${phpdocdir}/${x##*/}"
573 chtekk 1.12 elif [[ ! -e "${x}" ]] ; then
574 chtekk 1.6 echo "dodoc-php: ${x} does not exist" 1>&2
575     fi
576     done
577     }

  ViewVC Help
Powered by ViewVC 1.1.20