1 | # Copyright 1999-2004 Gentoo Technologies, Inc. |
1 | # Copyright 1999-2004 Gentoo Technologies, Inc. |
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/webapp.eclass,v 1.21 2004/05/25 10:22:02 stuart Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/webapp.eclass,v 1.22 2004/06/11 22:06:10 stuart Exp $ |
4 | # |
4 | # |
5 | # eclass/webapp.eclass |
5 | # eclass/webapp.eclass |
6 | # Eclass for installing applications to run under a web server |
6 | # Eclass for installing applications to run under a web server |
7 | # |
7 | # |
8 | # Part of the implementation of GLEP #11 |
8 | # Part of the implementation of GLEP #11 |
… | |
… | |
50 | { |
50 | { |
51 | local my_prefix |
51 | local my_prefix |
52 | |
52 | |
53 | [ -n "$2" ] && my_prefix="$2/" || my_prefix= |
53 | [ -n "$2" ] && my_prefix="$2/" || my_prefix= |
54 | |
54 | |
55 | if [ ! -e ${my_prefix}$1 ]; then |
55 | if [ ! -e "${my_prefix}$1" ]; then |
56 | msg="ebuild fault: file $1 not found" |
56 | msg="ebuild fault: file $1 not found" |
57 | eerror "$msg" |
57 | eerror "$msg" |
58 | eerror "Please report this as a bug at http://bugs.gentoo.org/" |
58 | eerror "Please report this as a bug at http://bugs.gentoo.org/" |
59 | die "$msg" |
59 | die "$msg" |
60 | fi |
60 | fi |
… | |
… | |
66 | |
66 | |
67 | function webapp_check_installedat |
67 | function webapp_check_installedat |
68 | { |
68 | { |
69 | local my_output |
69 | local my_output |
70 | |
70 | |
71 | /usr/sbin/webapp-config --show-installed -h localhost -d $INSTALL_DIR 2> /dev/null |
71 | /usr/sbin/webapp-config --show-installed -h localhost -d "$INSTALL_DIR" 2> /dev/null |
72 | } |
72 | } |
73 | |
73 | |
74 | # ------------------------------------------------------------------------ |
74 | # ------------------------------------------------------------------------ |
75 | # INTERNAL FUNCTION - USED BY THIS ECLASS ONLY |
75 | # INTERNAL FUNCTION - USED BY THIS ECLASS ONLY |
76 | # ------------------------------------------------------------------------ |
76 | # ------------------------------------------------------------------------ |
… | |
… | |
118 | |
118 | |
119 | function webapp_configfile () |
119 | function webapp_configfile () |
120 | { |
120 | { |
121 | webapp_checkfileexists "$1" "$D" |
121 | webapp_checkfileexists "$1" "$D" |
122 | echo $1 |
122 | echo $1 |
123 | local MY_FILE="`webapp_strip_appdir $1`" |
123 | local MY_FILE="`webapp_strip_appdir \"$1\"`" |
124 | echo $MY_FILE |
124 | echo $MY_FILE |
125 | |
125 | |
126 | einfo "(config) $MY_FILE" |
126 | einfo "(config) $MY_FILE" |
127 | echo "$MY_FILE" >> ${D}${WA_CONFIGLIST} |
127 | echo "\"$MY_FILE\"" >> ${D}${WA_CONFIGLIST} |
128 | } |
128 | } |
129 | |
129 | |
130 | # ------------------------------------------------------------------------ |
130 | # ------------------------------------------------------------------------ |
131 | # EXPORTED FUNCTION - FOR USE IN EBUILDS |
131 | # EXPORTED FUNCTION - FOR USE IN EBUILDS |
132 | # |
132 | # |
… | |
… | |
176 | # ------------------------------------------------------------------------ |
176 | # ------------------------------------------------------------------------ |
177 | |
177 | |
178 | function webapp_runbycgibin () |
178 | function webapp_runbycgibin () |
179 | { |
179 | { |
180 | webapp_checkfileexists "$2" "$D" |
180 | webapp_checkfileexists "$2" "$D" |
181 | local MY_FILE="`webapp_strip_appdir $2`" |
181 | local MY_FILE="`webapp_strip_appdir \"$2\"`" |
182 | MY_FILE="`webapp_strip_cwd $MY_FILE`" |
182 | MY_FILE="`webapp_strip_cwd \"$MY_FILE\"`" |
183 | |
183 | |
184 | einfo "(cgi-bin) $1 - $MY_FILE" |
184 | einfo "(cgi-bin) $1 - $MY_FILE" |
185 | echo "$1 $MY_FILE" >> ${D}${WA_RUNBYCGIBINLIST} |
185 | echo "\"$1\" \"$MY_FILE\"" >> "${D}${WA_RUNBYCGIBINLIST}" |
186 | } |
186 | } |
187 | |
187 | |
188 | # ------------------------------------------------------------------------ |
188 | # ------------------------------------------------------------------------ |
189 | # EXPORTED FUNCTION - FOR USE IN EBUILDS |
189 | # EXPORTED FUNCTION - FOR USE IN EBUILDS |
190 | # |
190 | # |
… | |
… | |
199 | # ------------------------------------------------------------------------ |
199 | # ------------------------------------------------------------------------ |
200 | |
200 | |
201 | function webapp_serverowned () |
201 | function webapp_serverowned () |
202 | { |
202 | { |
203 | webapp_checkfileexists "$1" "$D" |
203 | webapp_checkfileexists "$1" "$D" |
204 | local MY_FILE="`webapp_strip_appdir $1`" |
204 | local MY_FILE="`webapp_strip_appdir \"$1\"`" |
205 | |
205 | |
206 | einfo "(server owned) $MY_FILE" |
206 | einfo "(server owned) $MY_FILE" |
207 | echo "$MY_FILE" >> ${D}${WA_SOLIST} |
207 | echo "\"$MY_FILE\"" >> "${D}${WA_SOLIST}" |
208 | } |
208 | } |
209 | |
209 | |
210 | # ------------------------------------------------------------------------ |
210 | # ------------------------------------------------------------------------ |
211 | # EXPORTED FUNCTION - FOR USE IN EBUILDS |
211 | # EXPORTED FUNCTION - FOR USE IN EBUILDS |
212 | # |
212 | # |
… | |
… | |
228 | # sort out what the name will be of the config file |
228 | # sort out what the name will be of the config file |
229 | |
229 | |
230 | local my_file |
230 | local my_file |
231 | |
231 | |
232 | if [ -z "$3" ]; then |
232 | if [ -z "$3" ]; then |
233 | $my_file="$1-`basename $2`" |
233 | my_file="$1-`basename $2`" |
234 | else |
234 | else |
235 | $my_file="$1-$3" |
235 | my_file="$1-$3" |
236 | fi |
236 | fi |
237 | |
237 | |
238 | # warning: |
238 | # warning: |
239 | # |
239 | # |
240 | # do NOT change the naming convention used here without changing all |
240 | # do NOT change the naming convention used here without changing all |
… | |
… | |
276 | |
276 | |
277 | # are we dealing with an 'upgrade'-type script? |
277 | # are we dealing with an 'upgrade'-type script? |
278 | if [ -n "$3" ]; then |
278 | if [ -n "$3" ]; then |
279 | # yes we are |
279 | # yes we are |
280 | einfo "($1) upgrade script from ${PN}-${PVR} to $3" |
280 | einfo "($1) upgrade script from ${PN}-${PVR} to $3" |
281 | cp $2 ${D}${MY_SQLSCRIPTSDIR}/$1/${3}_to_${PVR}.sql |
281 | cp "$2" "${D}${MY_SQLSCRIPTSDIR}/$1/${3}_to_${PVR}.sql" |
282 | else |
282 | else |
283 | # no, we are not |
283 | # no, we are not |
284 | einfo "($1) create script for ${PN}-${PVR}" |
284 | einfo "($1) create script for ${PN}-${PVR}" |
285 | cp $2 ${D}${MY_SQLSCRIPTSDIR}/$1/${PVR}_create.sql |
285 | cp "$2" "${D}${MY_SQLSCRIPTSDIR}/$1/${PVR}_create.sql" |
286 | fi |
286 | fi |
287 | } |
287 | } |
288 | |
288 | |
289 | # ------------------------------------------------------------------------ |
289 | # ------------------------------------------------------------------------ |
290 | # EXPORTED FUNCTION - call from inside your ebuild's src_install AFTER |
290 | # EXPORTED FUNCTION - call from inside your ebuild's src_install AFTER |
… | |
… | |
295 | # the final version! |
295 | # the final version! |
296 | # ------------------------------------------------------------------------ |
296 | # ------------------------------------------------------------------------ |
297 | |
297 | |
298 | function webapp_src_install () |
298 | function webapp_src_install () |
299 | { |
299 | { |
300 | chown -R ${VHOST_DEFAULT_UID}:${VHOST_DEFAULT_GID} ${D}/ |
300 | chown -R "${VHOST_DEFAULT_UID}:${VHOST_DEFAULT_GID}" "${D}/" |
301 | chmod -R u-s ${D}/ |
301 | chmod -R u-s "${D}/" |
302 | chmod -R g-s ${D}/ |
302 | chmod -R g-s "${D}/" |
303 | |
303 | |
304 | keepdir ${MY_PERSISTDIR} |
304 | keepdir "${MY_PERSISTDIR}" |
305 | fowners root:root ${MY_PERSISTDIR} |
305 | fowners "root:root" "${MY_PERSISTDIR}" |
306 | fperms 755 ${MY_PERSISTDIR} |
306 | fperms 755 "${MY_PERSISTDIR}" |
307 | |
307 | |
308 | # to test whether or not the ebuild has correctly called this function |
308 | # to test whether or not the ebuild has correctly called this function |
309 | # we add an empty file to the filesystem |
309 | # we add an empty file to the filesystem |
310 | # |
310 | # |
311 | # we used to just set a variable in the shell script, but we can |
311 | # we used to just set a variable in the shell script, but we can |
312 | # no longer rely on Portage calling both webapp_src_install() and |
312 | # no longer rely on Portage calling both webapp_src_install() and |
313 | # webapp_pkg_postinst() within the same shell process |
313 | # webapp_pkg_postinst() within the same shell process |
314 | |
314 | |
315 | touch ${D}/${MY_APPDIR}/${INSTALL_CHECK_FILE} |
315 | touch "${D}/${MY_APPDIR}/${INSTALL_CHECK_FILE}" |
316 | } |
316 | } |
317 | |
317 | |
318 | # ------------------------------------------------------------------------ |
318 | # ------------------------------------------------------------------------ |
319 | # EXPORTED FUNCTION - call from inside your ebuild's pkg_config AFTER |
319 | # EXPORTED FUNCTION - call from inside your ebuild's pkg_config AFTER |
320 | # everything else has run |
320 | # everything else has run |
… | |
… | |
332 | fi |
332 | fi |
333 | |
333 | |
334 | # pull in the shared configuration file |
334 | # pull in the shared configuration file |
335 | |
335 | |
336 | G_HOSTNAME="localhost" |
336 | G_HOSTNAME="localhost" |
337 | . ${ETC_CONFIG} || die "Unable to open /etc/vhosts/webapp-config file" |
337 | . "${ETC_CONFIG}" || die "Unable to open file ${ETC_CONFIG}" |
338 | |
338 | |
339 | # are we installing a webapp-config solution over the top of a |
339 | # are we installing a webapp-config solution over the top of a |
340 | # non-webapp-config solution? |
340 | # non-webapp-config solution? |
341 | |
341 | |
342 | if ! use vhosts ; then |
342 | if ! use vhosts ; then |
… | |
… | |
422 | |
422 | |
423 | function webapp_src_preinst () |
423 | function webapp_src_preinst () |
424 | { |
424 | { |
425 | # create the directories that we need |
425 | # create the directories that we need |
426 | |
426 | |
427 | dodir ${MY_HTDOCSDIR} |
427 | dodir "${MY_HTDOCSDIR}" |
428 | dodir ${MY_HOSTROOTDIR} |
428 | dodir "${MY_HOSTROOTDIR}" |
429 | dodir ${MY_CGIBINDIR} |
429 | dodir "${MY_CGIBINDIR}" |
430 | dodir ${MY_ICONSDIR} |
430 | dodir "${MY_ICONSDIR}" |
431 | dodir ${MY_ERRORSDIR} |
431 | dodir "${MY_ERRORSDIR}" |
432 | dodir ${MY_SQLSCRIPTSDIR} |
432 | dodir "${MY_SQLSCRIPTSDIR}" |
433 | } |
433 | } |
434 | |
434 | |
435 | function webapp_pkg_postinst () |
435 | function webapp_pkg_postinst () |
436 | { |
436 | { |
437 | . ${ETC_CONFIG} |
437 | . "${ETC_CONFIG}" |
438 | |
438 | |
439 | # sanity checks, to catch bugs in the ebuild |
439 | # sanity checks, to catch bugs in the ebuild |
440 | |
440 | |
441 | if [ ! -f ${MY_APPDIR}/${INSTALL_CHECK_FILE} ]; then |
441 | if [ ! -f "${MY_APPDIR}/${INSTALL_CHECK_FILE}" ]; then |
442 | eerror |
442 | eerror |
443 | eerror "This ebuild did not call webapp_src_install() at the end" |
443 | eerror "This ebuild did not call webapp_src_install() at the end" |
444 | eerror "of the src_install() function" |
444 | eerror "of the src_install() function" |
445 | eerror |
445 | eerror |
446 | eerror "Please log a bug on http://bugs.gentoo.org" |
446 | eerror "Please log a bug on http://bugs.gentoo.org" |
… | |
… | |
459 | einfo "vhosts USE flag not set - auto-installing using webapp-config" |
459 | einfo "vhosts USE flag not set - auto-installing using webapp-config" |
460 | |
460 | |
461 | webapp_getinstalltype |
461 | webapp_getinstalltype |
462 | |
462 | |
463 | G_HOSTNAME="localhost" |
463 | G_HOSTNAME="localhost" |
464 | . /etc/vhosts/webapp-config |
464 | . "${ETC_CONFIG}" |
465 | |
465 | |
466 | local my_mode=-I |
466 | local my_mode=-I |
467 | |
467 | |
468 | if [ "$IS_REPLACE" = "1" ]; then |
468 | if [ "$IS_REPLACE" = "1" ]; then |
469 | einfo "${PN}-${PVR} is already installed - replacing" |
469 | einfo "${PN}-${PVR} is already installed - replacing" |
… | |
… | |
491 | # the user is relying on portage to do the magical thing for it |
491 | # the user is relying on portage to do the magical thing for it |
492 | |
492 | |
493 | if [ "$IS_UPGRADE" = "1" ] ; then |
493 | if [ "$IS_UPGRADE" = "1" ] ; then |
494 | einfo "Removing old version $REMOVE_PKG" |
494 | einfo "Removing old version $REMOVE_PKG" |
495 | |
495 | |
496 | emerge -C $CATEGORY/$REMOVE_PKG |
496 | emerge -C "$CATEGORY/$REMOVE_PKG" |
497 | fi |
497 | fi |
498 | else |
498 | else |
499 | # vhosts flag is on |
499 | # vhosts flag is on |
500 | # |
500 | # |
501 | # let's tell the administrator what to do next |
501 | # let's tell the administrator what to do next |