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

Diff of /eclass/webapp.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.21 Revision 1.30
1# Copyright 1999-2004 Gentoo Technologies, Inc. 1# Copyright 1999-2004 Gentoo Foundation
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.30 2005/05/10 22:55:17 beu 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
21 21
22ECLASS=webapp 22ECLASS=webapp
23INHERITED="$INHERITED $ECLASS" 23INHERITED="$INHERITED $ECLASS"
24SLOT="${PVR}" 24SLOT="${PVR}"
25IUSE="$IUSE vhosts" 25IUSE="$IUSE vhosts"
26DEPEND="$DEPEND >=net-www/webapp-config-1.7 app-portage/gentoolkit" 26DEPEND="$DEPEND >=net-www/webapp-config-1.10-r14 app-portage/gentoolkit"
27 27
28EXPORT_FUNCTIONS pkg_postinst pkg_setup src_install pkg_prerm 28EXPORT_FUNCTIONS pkg_postinst pkg_setup src_install pkg_prerm
29 29
30INSTALL_DIR="/$PN" 30INSTALL_DIR="/$PN"
31IS_UPGRADE=0 31IS_UPGRADE=0
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
61} 61}
66 66
67function webapp_check_installedat 67function 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# ------------------------------------------------------------------------
117# ------------------------------------------------------------------------ 117# ------------------------------------------------------------------------
118 118
119function webapp_configfile () 119function webapp_configfile ()
120{ 120{
121 webapp_checkfileexists "$1" "$D" 121 webapp_checkfileexists "$1" "$D"
122 echo $1 122
123 local MY_FILE="`webapp_strip_appdir $1`" 123 local MY_FILE="`webapp_strip_appdir \"$1\"`"
124 echo $MY_FILE 124 MY_FILE="`webapp_strip_cwd \"$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
136# @param $1 - the script to run 136# @param $1 - the script to run
137# ------------------------------------------------------------------------ 137# ------------------------------------------------------------------------
138 138
139function webapp_hook_script () 139function webapp_hook_script ()
140{ 140{
141 webapp_checkfileexists "$2" 141 webapp_checkfileexists "$1"
142 142
143 einfo "(hook) $1" 143 einfo "(hook) $1"
144 cp "$1" "${D}${MY_HOOKSCRIPTSDIR}/`basename $1`" || die "Unable to install $1 into ${D}${MY_HOOKSCRIPTSDIR}/" 144 cp "$1" "${D}${MY_HOOKSCRIPTSDIR}/`basename $1`" || die "Unable to install $1 into ${D}${MY_HOOKSCRIPTSDIR}/"
145 chmod 555 "${D}${MY_HOOKSCRIPTSDIR}/`basename $1`" 145 chmod 555 "${D}${MY_HOOKSCRIPTSDIR}/`basename $1`"
146} 146}
176# ------------------------------------------------------------------------ 176# ------------------------------------------------------------------------
177 177
178function webapp_runbycgibin () 178function 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
201function webapp_serverowned () 201function 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 MY_FILE="`webapp_strip_cwd \"$MY_FILE\"`"
205 206
206 einfo "(server owned) $MY_FILE" 207 einfo "(server owned) $MY_FILE"
207 echo "$MY_FILE" >> ${D}${WA_SOLIST} 208 echo "$MY_FILE" >> "${D}${WA_SOLIST}"
208} 209}
209 210
210# ------------------------------------------------------------------------ 211# ------------------------------------------------------------------------
211# EXPORTED FUNCTION - FOR USE IN EBUILDS 212# EXPORTED FUNCTION - FOR USE IN EBUILDS
212# 213#
219# NOTE: 220# NOTE:
220# this function will automagically prepend $1 to the front of your 221# this function will automagically prepend $1 to the front of your
221# config file's name 222# config file's name
222# ------------------------------------------------------------------------ 223# ------------------------------------------------------------------------
223 224
224function webapp_server_config () 225function webapp_server_configfile ()
225{ 226{
226 webapp_checkfileexists "$2" 227 webapp_checkfileexists "$2"
227 228
228 # sort out what the name will be of the config file 229 # sort out what the name will be of the config file
229 230
230 local my_file 231 local my_file
231 232
232 if [ -z "$3" ]; then 233 if [ -z "$3" ]; then
233 $my_file="$1-`basename $2`" 234 my_file="$1-`basename $2`"
234 else 235 else
235 $my_file="$1-$3" 236 my_file="$1-$3"
236 fi 237 fi
237 238
238 # warning: 239 # warning:
239 # 240 #
240 # do NOT change the naming convention used here without changing all 241 # do NOT change the naming convention used here without changing all
276 277
277 # are we dealing with an 'upgrade'-type script? 278 # are we dealing with an 'upgrade'-type script?
278 if [ -n "$3" ]; then 279 if [ -n "$3" ]; then
279 # yes we are 280 # yes we are
280 einfo "($1) upgrade script from ${PN}-${PVR} to $3" 281 einfo "($1) upgrade script from ${PN}-${PVR} to $3"
281 cp $2 ${D}${MY_SQLSCRIPTSDIR}/$1/${3}_to_${PVR}.sql 282 cp "$2" "${D}${MY_SQLSCRIPTSDIR}/$1/${3}_to_${PVR}.sql"
282 else 283 else
283 # no, we are not 284 # no, we are not
284 einfo "($1) create script for ${PN}-${PVR}" 285 einfo "($1) create script for ${PN}-${PVR}"
285 cp $2 ${D}${MY_SQLSCRIPTSDIR}/$1/${PVR}_create.sql 286 cp "$2" "${D}${MY_SQLSCRIPTSDIR}/$1/${PVR}_create.sql"
286 fi 287 fi
287} 288}
288 289
289# ------------------------------------------------------------------------ 290# ------------------------------------------------------------------------
290# EXPORTED FUNCTION - call from inside your ebuild's src_install AFTER 291# EXPORTED FUNCTION - call from inside your ebuild's src_install AFTER
295# the final version! 296# the final version!
296# ------------------------------------------------------------------------ 297# ------------------------------------------------------------------------
297 298
298function webapp_src_install () 299function webapp_src_install ()
299{ 300{
300 chown -R ${VHOST_DEFAULT_UID}:${VHOST_DEFAULT_GID} ${D}/ 301 chown -R "${VHOST_DEFAULT_UID}:${VHOST_DEFAULT_GID}" "${D}/"
301 chmod -R u-s ${D}/ 302 chmod -R u-s "${D}/"
302 chmod -R g-s ${D}/ 303 chmod -R g-s "${D}/"
303 304
304 keepdir ${MY_PERSISTDIR} 305 keepdir "${MY_PERSISTDIR}"
305 fowners root:root ${MY_PERSISTDIR} 306 fowners "root:root" "${MY_PERSISTDIR}"
306 fperms 755 ${MY_PERSISTDIR} 307 fperms 755 "${MY_PERSISTDIR}"
307 308
308 # to test whether or not the ebuild has correctly called this function 309 # to test whether or not the ebuild has correctly called this function
309 # we add an empty file to the filesystem 310 # we add an empty file to the filesystem
310 # 311 #
311 # we used to just set a variable in the shell script, but we can 312 # 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 313 # no longer rely on Portage calling both webapp_src_install() and
313 # webapp_pkg_postinst() within the same shell process 314 # webapp_pkg_postinst() within the same shell process
314 315
315 touch ${D}/${MY_APPDIR}/${INSTALL_CHECK_FILE} 316 touch "${D}/${MY_APPDIR}/${INSTALL_CHECK_FILE}"
316} 317}
317 318
318# ------------------------------------------------------------------------ 319# ------------------------------------------------------------------------
319# EXPORTED FUNCTION - call from inside your ebuild's pkg_config AFTER 320# EXPORTED FUNCTION - call from inside your ebuild's pkg_config AFTER
320# everything else has run 321# everything else has run
332 fi 333 fi
333 334
334 # pull in the shared configuration file 335 # pull in the shared configuration file
335 336
336 G_HOSTNAME="localhost" 337 G_HOSTNAME="localhost"
337 . ${ETC_CONFIG} || die "Unable to open /etc/vhosts/webapp-config file" 338 . "${ETC_CONFIG}" || die "Unable to open file ${ETC_CONFIG}"
338 339
339 # are we installing a webapp-config solution over the top of a 340 # are we installing a webapp-config solution over the top of a
340 # non-webapp-config solution? 341 # non-webapp-config solution?
341 342
342 if ! use vhosts ; then 343 if ! use vhosts ; then
422 423
423function webapp_src_preinst () 424function webapp_src_preinst ()
424{ 425{
425 # create the directories that we need 426 # create the directories that we need
426 427
427 dodir ${MY_HTDOCSDIR} 428 dodir "${MY_HTDOCSDIR}"
428 dodir ${MY_HOSTROOTDIR} 429 dodir "${MY_HOSTROOTDIR}"
429 dodir ${MY_CGIBINDIR} 430 dodir "${MY_CGIBINDIR}"
430 dodir ${MY_ICONSDIR} 431 dodir "${MY_ICONSDIR}"
431 dodir ${MY_ERRORSDIR} 432 dodir "${MY_ERRORSDIR}"
432 dodir ${MY_SQLSCRIPTSDIR} 433 dodir "${MY_SQLSCRIPTSDIR}"
434 dodir "${MY_HOOKSCRIPTSDIR}"
435 dodir "${MY_SERVERCONFIGDIR}"
433} 436}
434 437
435function webapp_pkg_postinst () 438function webapp_pkg_postinst ()
436{ 439{
437 . ${ETC_CONFIG} 440 . "${ETC_CONFIG}"
438 441
439 # sanity checks, to catch bugs in the ebuild 442 # sanity checks, to catch bugs in the ebuild
440 443
441 if [ ! -f ${MY_APPDIR}/${INSTALL_CHECK_FILE} ]; then 444 if [ ! -f "${MY_APPDIR}/${INSTALL_CHECK_FILE}" ]; then
442 eerror 445 eerror
443 eerror "This ebuild did not call webapp_src_install() at the end" 446 eerror "This ebuild did not call webapp_src_install() at the end"
444 eerror "of the src_install() function" 447 eerror "of the src_install() function"
445 eerror 448 eerror
446 eerror "Please log a bug on http://bugs.gentoo.org" 449 eerror "Please log a bug on http://bugs.gentoo.org"
459 einfo "vhosts USE flag not set - auto-installing using webapp-config" 462 einfo "vhosts USE flag not set - auto-installing using webapp-config"
460 463
461 webapp_getinstalltype 464 webapp_getinstalltype
462 465
463 G_HOSTNAME="localhost" 466 G_HOSTNAME="localhost"
464 . /etc/vhosts/webapp-config 467 . "${ETC_CONFIG}"
465 468
466 local my_mode=-I 469 local my_mode=-I
467 470
468 if [ "$IS_REPLACE" = "1" ]; then 471 if [ "$IS_REPLACE" = "1" ]; then
469 einfo "${PN}-${PVR} is already installed - replacing" 472 einfo "${PN}-${PVR} is already installed - replacing"
470 /usr/sbin/webapp-config -C -d "$INSTALL_DIR" 473 my_mode=-I
471 elif [ "$IS_UPGRADE" = "1" ]; then 474 elif [ "$IS_UPGRADE" = "1" ]; then
472 einfo "$REMOVE_PKG is already installed - upgrading" 475 einfo "$REMOVE_PKG is already installed - upgrading"
473 my_mode=-U 476 my_mode=-U
474 else 477 else
475 einfo "${PN}-${PVR} is not installed - using install mode" 478 einfo "${PN}-${PVR} is not installed - using install mode"
491 # the user is relying on portage to do the magical thing for it 494 # the user is relying on portage to do the magical thing for it
492 495
493 if [ "$IS_UPGRADE" = "1" ] ; then 496 if [ "$IS_UPGRADE" = "1" ] ; then
494 einfo "Removing old version $REMOVE_PKG" 497 einfo "Removing old version $REMOVE_PKG"
495 498
496 emerge -C $CATEGORY/$REMOVE_PKG 499 emerge -C "$REMOVE_PKG"
497 fi 500 fi
498 else 501 else
499 # vhosts flag is on 502 # vhosts flag is on
500 # 503 #
501 # let's tell the administrator what to do next 504 # let's tell the administrator what to do next

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.30

  ViewVC Help
Powered by ViewVC 1.1.20