/[gentoo-x86]/eclass/apache-2.eclass
Gentoo

Diff of /eclass/apache-2.eclass

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

Revision 1.2 Revision 1.14
1# Copyright 1999-2007 Gentoo Foundation 1# Copyright 1999-2007 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/apache-2.eclass,v 1.2 2007/11/29 18:43:31 hollow Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/apache-2.eclass,v 1.14 2008/12/10 01:06:12 robbat2 Exp $
4 4
5# @ECLASS: apache-2 5# @ECLASS: apache-2.eclass
6# @MAINTAINER:
6# @MAINTAINER: apache-devs@gentoo.org 7# apache-devs@gentoo.org
7# @BLURB: Provides a common set of functions for >=apache-2.2* ebuilds 8# @BLURB: Provides a common set of functions for apache-2.x ebuilds
8# @DESCRIPTION: 9# @DESCRIPTION:
9# This eclass handles common apache ebuild functions in a sane way and providing 10# This eclass handles apache-2.x ebuild functions such as LoadModule generation
10# information about where certain interfaces are located such as LoadModule
11# generation and inter-module dependency checking. 11# and inter-module dependency checking.
12 12
13inherit depend.apache eutils flag-o-matic multilib autotools 13inherit autotools confutils eutils flag-o-matic multilib
14 14
15# ============================================================================== 15# ==============================================================================
16# INTERNAL VARIABLES 16# INTERNAL VARIABLES
17# ============================================================================== 17# ==============================================================================
18 18
19# @ECLASS-VARIABLE: GENTOO_PATCHNAME 19# @ECLASS-VARIABLE: GENTOO_PATCHNAME
20# @DESCRIPTION: 20# @DESCRIPTION:
21# This internal variable contains the prefix for the patch tarball 21# This internal variable contains the prefix for the patch tarball.
22GENTOO_PATCHNAME="gentoo-${PF}" 22# Defaults to the full version (including revision) of the package.
23[[ -n "$GENTOO_PATCHNAME" ]] || GENTOO_PATCHNAME="gentoo-${PF}"
23 24
24# @ECLASS-VARIABLE: GENTOO_PATCHDIR 25# @ECLASS-VARIABLE: GENTOO_PATCHDIR
25# @DESCRIPTION: 26# @DESCRIPTION:
26# This internal variable contains the working directory where patches and config 27# This internal variable contains the working directory where patches and config
27# files are located 28# files are located.
29# Defaults to the patchset name appended to the working directory.
28GENTOO_PATCHDIR="${WORKDIR}/${GENTOO_PATCHNAME}" 30[[ -n "$GENTOO_PATCHDIR" ]] || GENTOO_PATCHDIR="${WORKDIR}/${GENTOO_PATCHNAME}"
29 31
30# @ECLASS-VARIABLE: GENTOO_DEVELOPER 32# @VARIABLE: GENTOO_DEVELOPER
31# @DESCRIPTION: 33# @DESCRIPTION:
32# This variable needs to be set in the ebuild and contains the name of the 34# This variable needs to be set in the ebuild and contains the name of the
33# gentoo developer who created the patch tarball 35# gentoo developer who created the patch tarball
34 36
35# @ECLASS-VARIABLE: GENTOO_PATCHSTAMP 37# @VARIABLE: GENTOO_PATCHSTAMP
36# @DESCRIPTION: 38# @DESCRIPTION:
37# This variable needs to be set in the ebuild and contains the date the patch 39# This variable needs to be set in the ebuild and contains the date the patch
38# tarball was created at in YYMMDD format 40# tarball was created at in YYYYMMDD format
41
42# @VARIABLE: GENTOO_PATCH_A
43# @DESCRIPTION:
44# This variable should contain the entire filename of patch tarball.
45# Defaults to the name of the patchset, with a datestamp.
46[[ -n "$GENTOO_PATCH_A" ]] || GENTOO_PATCH_A="${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2"
39 47
40SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2 48SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2
41 http://dev.gentoo.org/~${GENTOO_DEVELOPER}/dist/apache/${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2" 49 http://dev.gentoo.org/~${GENTOO_DEVELOPER}/dist/apache/${GENTOO_PATCH_A}"
42 50
43# @ECLASS-VARIABLE: IUSE_MPMS_FORK 51# @VARIABLE: IUSE_MPMS_FORK
44# @DESCRIPTION: 52# @DESCRIPTION:
45# This variable needs to be set in the ebuild and contains a list of forking 53# This variable needs to be set in the ebuild and contains a list of forking
46# (i.e. non-threaded) MPMS 54# (i.e. non-threaded) MPMs
47 55
48# @ECLASS-VARIABLE: IUSE_MPMS_THREAD 56# @VARIABLE: IUSE_MPMS_THREAD
49# @DESCRIPTION: 57# @DESCRIPTION:
50# This variable needs to be set in the ebuild and contains a list of threaded 58# This variable needs to be set in the ebuild and contains a list of threaded
51# MPMS 59# MPMs
52 60
53# @ECLASS-VARIABLE: IUSE_MODULES 61# @VARIABLE: IUSE_MODULES
54# @DESCRIPTION: 62# @DESCRIPTION:
55# This variable needs to be set in the ebuild and contains a list of available 63# This variable needs to be set in the ebuild and contains a list of available
56# built-in modules 64# built-in modules
57 65
58IUSE_MPMS="${IUSE_MPMS_FORK} ${IUSE_MPMS_THREAD}" 66IUSE_MPMS="${IUSE_MPMS_FORK} ${IUSE_MPMS_THREAD}"
59IUSE="debug doc ldap selinux ssl static suexec threads" 67IUSE="${IUSE} debug doc ldap selinux ssl static suexec threads"
60 68
61for module in ${IUSE_MODULES} ; do 69for module in ${IUSE_MODULES} ; do
62 IUSE="${IUSE} apache2_modules_${module}" 70 IUSE="${IUSE} apache2_modules_${module}"
63done 71done
64 72
70 =dev-libs/apr-1* 78 =dev-libs/apr-1*
71 =dev-libs/apr-util-1* 79 =dev-libs/apr-util-1*
72 dev-libs/libpcre 80 dev-libs/libpcre
73 ldap? ( =net-nds/openldap-2* ) 81 ldap? ( =net-nds/openldap-2* )
74 selinux? ( sec-policy/selinux-apache ) 82 selinux? ( sec-policy/selinux-apache )
75 ssl? ( dev-libs/openssl ) 83 ssl? ( >=dev-libs/openssl-0.9.8f )
76 !=www-servers/apache-1*" 84 !=www-servers/apache-1*"
77RDEPEND="${DEPEND}" 85RDEPEND="${DEPEND}"
78PDEPEND="~app-admin/apache-tools-${PV}" 86PDEPEND="~app-admin/apache-tools-${PV}"
79 87
80S="${WORKDIR}/httpd-${PV}" 88S="${WORKDIR}/httpd-${PV}"
82# ============================================================================== 90# ==============================================================================
83# INTERNAL FUNCTIONS 91# INTERNAL FUNCTIONS
84# ============================================================================== 92# ==============================================================================
85 93
86# @ECLASS-VARIABLE: MY_MPM 94# @ECLASS-VARIABLE: MY_MPM
87# DESCRIPTION: 95# @DESCRIPTION:
88# This internal variable contains the selected MPM after a call to setup_mpm() 96# This internal variable contains the selected MPM after a call to setup_mpm()
89 97
90# @FUNCTION: setup_mpm 98# @FUNCTION: setup_mpm
91# @DESCRIPTION: 99# @DESCRIPTION:
92# This internal function makes sure that only one of APACHE2_MPMS was selected 100# This internal function makes sure that only one of APACHE2_MPMS was selected
93# or a default based on USE=threads is selected if APACHE2_MPMS is empty 101# or a default based on USE=threads is selected if APACHE2_MPMS is empty
94setup_mpm() { 102setup_mpm() {
103 MY_MPM=""
95 for x in ${IUSE_MPMS} ; do 104 for x in ${IUSE_MPMS} ; do
96 if use apache2_mpms_${x} ; then 105 if use apache2_mpms_${x} ; then
97 if [[ -z "${MY_MPM}" ]] ; then 106 if [[ -z "${MY_MPM}" ]] ; then
98 MY_MPM=${x} 107 MY_MPM=${x}
99 elog 108 elog
130 eerror "You have selected a non-threaded MPM but USE=threads is enabled" 139 eerror "You have selected a non-threaded MPM but USE=threads is enabled"
131 die "invalid use flag combination" 140 die "invalid use flag combination"
132 fi 141 fi
133} 142}
134 143
144# @VARIABLE: MODULE_CRITICAL
145# @DESCRIPTION:
146# This variable needs to be set in the ebuild and contains a space-separated
147# list of modules critical for the default apache. A user may still
148# disable these modules for custom minimal installation at their own risk.
149
150# @FUNCTION: check_module_critical
151# @DESCRIPTION:
152# This internal function warns the user about modules critical for the default
153# apache configuration.
154check_module_critical() {
155 local unsupported=0
156
157 for m in ${MODULE_CRITICAL} ; do
158 if ! has ${m} ${MY_MODS} ; then
159 ewarn "Module '${m}' is required in the default apache configuration."
160 unsupported=1
161 fi
162 done
163
164 if [[ ${unsupported} -ne 0 ]] ; then
165 ewarn
166 ewarn "You have disabled one or more required modules"
167 ewarn "for the default apache configuration."
168 ewarn "Although this is not an error, please be"
169 ewarn "aware that this setup is UNSUPPORTED."
170 ewarn
171 ebeep 10
172 fi
173}
174
135# @ECLASS-VARIABLE: MODULE_DEPENDS 175# @VARIABLE: MODULE_DEPENDS
136# @DESCRIPTION: 176# @DESCRIPTION:
137# This variable needs to be set in the ebuild and contains a space-separated 177# This variable needs to be set in the ebuild and contains a space-separated
138# list of dependency tokens each with a module and the module it depends on 178# list of dependency tokens each with a module and the module it depends on
139# separated by a colon 179# separated by a colon
140 180
145check_module_depends() { 185check_module_depends() {
146 local err=0 186 local err=0
147 187
148 for m in ${MY_MODS} ; do 188 for m in ${MY_MODS} ; do
149 for dep in ${MODULE_DEPENDS} ; do 189 for dep in ${MODULE_DEPENDS} ; do
150 if [[ "${m}" == "${dep%:*}" ]]; then 190 if [[ "${m}" == "${dep%:*}" ]] ; then
151 if ! use apache2_modules_${dep#*:} ; then 191 if ! use apache2_modules_${dep#*:} ; then
152 eerror "Module '${m}' depends on '${dep#*:}'" 192 eerror "Module '${m}' depends on '${dep#*:}'"
153 err=1 193 err=1
154 fi 194 fi
155 fi 195 fi
160 die "invalid use flag combination" 200 die "invalid use flag combination"
161 fi 201 fi
162} 202}
163 203
164# @ECLASS-VARIABLE: MY_CONF 204# @ECLASS-VARIABLE: MY_CONF
165# DESCRIPTION: 205# @DESCRIPTION:
166# This internal variable contains the econf options for the current module 206# This internal variable contains the econf options for the current module
167# selection after a call to setup_modules() 207# selection after a call to setup_modules()
168 208
169# @ECLASS-VARIABLE: MY_MODS 209# @ECLASS-VARIABLE: MY_MODS
170# DESCRIPTION: 210# @DESCRIPTION:
171# This internal variable contains a sorted, space separated list of currently 211# This internal variable contains a sorted, space separated list of currently
172# selected modules after a call to setup_modules() 212# selected modules after a call to setup_modules()
173 213
174# @FUNCTION: setup_modules 214# @FUNCTION: setup_modules
175# @DESCRIPTION: 215# @DESCRIPTION:
185 fi 225 fi
186 226
187 MY_CONF="--enable-so=static" 227 MY_CONF="--enable-so=static"
188 228
189 if use ldap ; then 229 if use ldap ; then
190 if ! built_with_use 'dev-libs/apr-util' ldap ; then 230 confutils_use_depend_built_with_all ldap dev-libs/apr-util ldap
191 eerror "dev-libs/apr-util is missing LDAP support. For apache to have"
192 eerror "ldap support, apr-util must be built with the ldap USE-flag"
193 eerror "enabled."
194 die "ldap USE-flag enabled while not supported in apr-util"
195 fi
196 MY_CONF="${MY_CONF} --enable-authnz_ldap=${mod_type} --enable-ldap=${mod_type}" 231 MY_CONF="${MY_CONF} --enable-authnz_ldap=${mod_type} --enable-ldap=${mod_type}"
197 MY_MODS="${MY_MODS} ldap authnz_ldap" 232 MY_MODS="${MY_MODS} ldap authnz_ldap"
198 else 233 else
199 MY_CONF="${MY_CONF} --disable-authnz_ldap --disable-ldap" 234 MY_CONF="${MY_CONF} --disable-authnz_ldap --disable-ldap"
200 fi 235 fi
253 done 288 done
254 289
255 # sort and uniquify MY_MODS 290 # sort and uniquify MY_MODS
256 MY_MODS=$(echo ${MY_MODS} | tr ' ' '\n' | sort -u) 291 MY_MODS=$(echo ${MY_MODS} | tr ' ' '\n' | sort -u)
257 check_module_depends 292 check_module_depends
293 check_module_critical
258} 294}
259 295
260# @ECLASS-VARIABLE: MODULE_DEFINES 296# @VARIABLE: MODULE_DEFINES
261# @DESCRIPTION: 297# @DESCRIPTION:
262# This variable needs to be set in the ebuild and contains a space-separated 298# This variable needs to be set in the ebuild and contains a space-separated
263# list of tokens each mapping a module to a runtime define which can be 299# list of tokens each mapping a module to a runtime define which can be
264# specified in APACHE2_OPTS in /etc/conf.d/apache2 to enable this particular 300# specified in APACHE2_OPTS in /etc/conf.d/apache2 to enable this particular
265# module. 301# module.
267# @FUNCTION: generate_load_module 303# @FUNCTION: generate_load_module
268# @DESCRIPTION: 304# @DESCRIPTION:
269# This internal function generates the LoadModule lines for httpd.conf based on 305# This internal function generates the LoadModule lines for httpd.conf based on
270# the current module selection and MODULE_DEFINES 306# the current module selection and MODULE_DEFINES
271generate_load_module() { 307generate_load_module() {
272 local endit=0 mod_lines= mod_dir="${D}${APACHE2_MODULESDIR}" 308 local endit=0 mod_lines= mod_dir="${D}/usr/$(get_libdir)/apache2/modules"
273 309
274 if use static; then 310 if use static; then
275 sed -i -e "/%%LOAD_MODULE%%/d" \ 311 sed -i -e "/%%LOAD_MODULE%%/d" \
276 "${GENTOO_PATCHDIR}"/conf/httpd.conf 312 "${GENTOO_PATCHDIR}"/conf/httpd.conf
277 return 313 return
329# creates the apache user and group and informs about CONFIG_SYSVIPC being 365# creates the apache user and group and informs about CONFIG_SYSVIPC being
330# needed (we don't depend on kernel sources and therefore cannot check). 366# needed (we don't depend on kernel sources and therefore cannot check).
331apache-2_pkg_setup() { 367apache-2_pkg_setup() {
332 check_upgrade 368 check_upgrade
333 369
334 setup_mpm
335 setup_modules
336
337 if use debug; then
338 MY_CONF="${MY_CONF} --enable-maintainer-mode --enable-exception-hook"
339 fi
340
341 # setup apache user and group 370 # setup apache user and group
342 enewgroup apache 81 371 enewgroup apache 81
343 enewuser apache 81 -1 /var/www apache 372 enewuser apache 81 -1 /var/www apache
344 373
374 setup_mpm
375 setup_modules
376
377 if use debug; then
378 MY_CONF="${MY_CONF} --enable-maintainer-mode --enable-exception-hook"
379 fi
380
345 elog "Please note that you need SysV IPC support in your kernel." 381 elog "Please note that you need SysV IPC support in your kernel."
346 elog "Make sure CONFIG_SYSVIPC=y is set." 382 elog "Make sure CONFIG_SYSVIPC=y is set."
347 elog 383 elog
384
385 if use userland_BSD; then
386 elog "On BSD systems you need to add the following line to /boot/loader.conf:"
387 elog " accf_http_load=\"YES\""
388 elog
389 fi
348} 390}
349 391
350# @FUNCTION: apache-2_src_unpack 392# @FUNCTION: apache-2_src_unpack
351# @DESCRIPTION: 393# @DESCRIPTION:
352# This function applies patches, configures a custom file-system layout and 394# This function applies patches, configures a custom file-system layout and
353# rebuilds the configure scripts. The patch names are organized as follows: 395# rebuilds the configure scripts.
354#
355# 00-19 Gentoo specific (00_all_some-title.patch)
356# 20-39 Additional MPMs (20_all_${MPM}_some-title.patch)
357# 40-59 USE-flag based (40_all_${USE}_some-title.patch)
358# 60-79 Version specific (60_all_${PV}_some-title.patch)
359# 80-99 Security patches (80_all_${PV}_cve-####-####.patch)
360apache-2_src_unpack() { 396apache-2_src_unpack() {
361 unpack ${A} 397 unpack ${A}
362 cd "${S}" 398 cd "${S}"
363 399
364 # Use correct multilib libdir in gentoo patches 400 # Use correct multilib libdir in gentoo patches
371 # setup the filesystem layout config 407 # setup the filesystem layout config
372 cat "${GENTOO_PATCHDIR}"/patches/config.layout >> "${S}"/config.layout || \ 408 cat "${GENTOO_PATCHDIR}"/patches/config.layout >> "${S}"/config.layout || \
373 die "Failed preparing config.layout!" 409 die "Failed preparing config.layout!"
374 sed -i -e "s:version:${PF}:g" "${S}"/config.layout 410 sed -i -e "s:version:${PF}:g" "${S}"/config.layout
375 411
412 # apache2.8 instead of httpd.8 (bug #194828)
413 mv docs/man/{httpd,apache2}.8
414 sed -i -e 's/httpd\.8/apache2.8/g' Makefile.in
415
376 # patched-in MPMs need the build environment rebuilt 416 # patched-in MPMs need the build environment rebuilt
377 sed -i -e '/sinclude/d' configure.in 417 sed -i -e '/sinclude/d' configure.in
378 AT_GNUCONF_UPDATE=yes AT_M4DIR=build eautoreconf 418 AT_GNUCONF_UPDATE=yes AT_M4DIR=build eautoreconf
379
380 # apache2.8 instead of httpd.8 (bug #194828)
381 mv docs/man/{httpd,apache2}.8
382 sed -i -e 's/httpd\.8/apache2.8/g' Makefile.in
383} 419}
384 420
385# @FUNCTION: apache-2_src_compile 421# @FUNCTION: apache-2_src_compile
386# @DESCRIPTION: 422# @DESCRIPTION:
387# This function adds compiler flags and runs econf and emake based on MY_MPM and 423# This function adds compiler flags and runs econf and emake based on MY_MPM and
403 --libexecdir=/usr/$(get_libdir)/apache2/modules \ 439 --libexecdir=/usr/$(get_libdir)/apache2/modules \
404 --datadir=/var/www/localhost \ 440 --datadir=/var/www/localhost \
405 --sysconfdir=/etc/apache2 \ 441 --sysconfdir=/etc/apache2 \
406 --localstatedir=/var \ 442 --localstatedir=/var \
407 --with-mpm=${MY_MPM} \ 443 --with-mpm=${MY_MPM} \
408 --with-perl=/usr/bin/perl \
409 --with-apr=/usr \ 444 --with-apr=/usr \
410 --with-apr-util=/usr \ 445 --with-apr-util=/usr \
411 --with-pcre=/usr \ 446 --with-pcre=/usr \
412 --with-z=/usr \ 447 --with-z=/usr \
413 --with-port=80 \ 448 --with-port=80 \
420 emake || die "emake failed" 455 emake || die "emake failed"
421} 456}
422 457
423# @FUNCTION: apache-2_src_install 458# @FUNCTION: apache-2_src_install
424# @DESCRIPTION: 459# @DESCRIPTION:
425# This function runs emake install and generates, install and adapts the gentoo 460# This function runs `emake install' and generates, installs and adapts the gentoo
426# specific configuration files found in the tarball 461# specific configuration files found in the tarball
427apache-2_src_install() { 462apache-2_src_install() {
428 emake DESTDIR="${D}" install || die "emake install failed" 463 make DESTDIR="${D}" install || die "make install failed"
429 464
430 # install our configuration files 465 # install our configuration files
431 keepdir /etc/apache2/vhosts.d 466 keepdir /etc/apache2/vhosts.d
432 keepdir /etc/apache2/modules.d 467 keepdir /etc/apache2/modules.d
433 468
449 "${GENTOO_PATCHDIR}"/init/apache2.confd || die "sed failed" 484 "${GENTOO_PATCHDIR}"/init/apache2.confd || die "sed failed"
450 485
451 newconfd "${GENTOO_PATCHDIR}"/init/apache2.confd apache2 486 newconfd "${GENTOO_PATCHDIR}"/init/apache2.confd apache2
452 newinitd "${GENTOO_PATCHDIR}"/init/apache2.initd apache2 487 newinitd "${GENTOO_PATCHDIR}"/init/apache2.initd apache2
453 488
454 # link apache2ctl to the init script 489 # install apache2ctl wrapper for our init script if available
490 if test -e "${GENTOO_PATCHDIR}"/scripts/apache2ctl; then
491 exeinto /usr/sbin
492 doexe "${GENTOO_PATCHDIR}"/scripts/apache2ctl
493 else
455 dosym /etc/init.d/apache2 /usr/sbin/apache2ctl 494 dosym /etc/init.d/apache2 /usr/sbin/apache2ctl
495 fi
456 496
457 # provide symlinks for all the stuff we no longer rename, bug 177697 497 # provide legacy symlink for apxs, bug 177697
458 for i in suexec apxs; do
459 dosym /usr/sbin/${i} /usr/sbin/${i}2 498 dosym /usr/sbin/apxs /usr/sbin/apxs2
460 done
461 499
462 # install some thirdparty scripts 500 # install some thirdparty scripts
463 exeinto /usr/sbin 501 exeinto /usr/sbin
464 use ssl && doexe "${GENTOO_PATCHDIR}"/scripts/gentestcrt.sh 502 use ssl && doexe "${GENTOO_PATCHDIR}"/scripts/gentestcrt.sh
465 503
473 else 511 else
474 rm -f "${D}/etc/apache2/modules.d/00_apache_manual.conf" 512 rm -f "${D}/etc/apache2/modules.d/00_apache_manual.conf"
475 rm -Rf "${D}/usr/share/doc/${PF}/manual" 513 rm -Rf "${D}/usr/share/doc/${PF}/manual"
476 fi 514 fi
477 515
478 # the default webroot gets stored in /usr/share/doc 516 # the default webroot gets stored in /usr/share/${PF}/webroot
479 ebegin "Installing default webroot to /usr/share/doc/${PF}" 517 ebegin "Installing default webroot to /usr/share/${PF}/webroot"
518 dodir /usr/share/${PF}
480 mv -f "${D}/var/www/localhost" "${D}/usr/share/doc/${PF}/webroot" 519 mv -f "${D}/var/www/localhost" "${D}/usr/share/${PF}/webroot"
481 eend $? 520 eend $?
482 keepdir /var/www/localhost/htdocs
483 521
484 # set some sane permissions for suexec 522 # set some sane permissions for suexec
485 if use suexec ; then 523 if use suexec ; then
486 fowners 0:apache /usr/sbin/suexec 524 fowners 0:apache /usr/sbin/suexec
487 fperms 4710 /usr/sbin/suexec 525 fperms 4710 /usr/sbin/suexec
526 # provide legacy symlink for suexec, bug 177697
527 dosym /usr/sbin/suexec /usr/sbin/suexec2
488 fi 528 fi
489 529
490 # empty dirs 530 # empty dirs
491 for i in /var/lib/dav /var/log/apache2 /var/cache/apache2 ; do 531 for i in /var/lib/dav /var/log/apache2 /var/cache/apache2 ; do
492 keepdir ${i} 532 keepdir ${i}
499} 539}
500 540
501# @FUNCTION: apache-2_pkg_postinst 541# @FUNCTION: apache-2_pkg_postinst
502# @DESCRIPTION: 542# @DESCRIPTION:
503# This function creates test certificates if SSL is enabled and installs the 543# This function creates test certificates if SSL is enabled and installs the
504# default webroot if /var/www/localhost does not exist. We do this here because 544# default webroot to /var/www/localhost if it does not exist. We do this here
505# the default webroot is a copy of the files that exist elsewhere and we don't 545# because the default webroot is a copy of the files that exist elsewhere and we
506# want them to be managed/removed by portage when apache is upgraded. 546# don't want them to be managed/removed by portage when apache is upgraded.
507apache-2_pkg_postinst() { 547apache-2_pkg_postinst() {
548 einfo
549
508 if use ssl && [[ ! -e "${ROOT}/etc/apache2/ssl/server.crt" ]] ; then 550 if use ssl && [[ ! -e "${ROOT}/etc/apache2/ssl/server.crt" ]] ; then
509 cd "${ROOT}"/etc/apache2/ssl 551 cd "${ROOT}"/etc/apache2/ssl
510 einfo
511 einfo "Generating self-signed test certificate in ${ROOT}etc/apache2/ssl ..." 552 einfo "Generating self-signed test certificate in ${ROOT}etc/apache2/ssl ..."
512 yes "" 2>/dev/null | \ 553 yes "" 2>/dev/null | \
513 "${ROOT}"/usr/sbin/gentestcrt.sh >/dev/null 2>&1 || \ 554 "${ROOT}"/usr/sbin/gentestcrt.sh >/dev/null 2>&1 || \
514 die "gentestcrt.sh failed" 555 die "gentestcrt.sh failed"
515 einfo 556 einfo
524 elog "emerge --config =${PF}" 565 elog "emerge --config =${PF}"
525 elog 566 elog
526 else 567 else
527 einfo "Installing default webroot to ${ROOT}var/www/localhost" 568 einfo "Installing default webroot to ${ROOT}var/www/localhost"
528 mkdir -p "${ROOT}"/var/www/localhost 569 mkdir -p "${ROOT}"/var/www/localhost
529 cp -R "${ROOT}"/usr/share/doc/${PF}/webroot/* "${ROOT}"/var/www/localhost 570 cp -R "${ROOT}"/usr/share/${PF}/webroot/* "${ROOT}"/var/www/localhost/
530 chown -R apache:0 "${ROOT}"/var/www/localhost 571 einfo
531 fi 572 fi
532} 573}
533 574
534# @FUNCTION: apache-2_pkg_config 575# @FUNCTION: apache-2_pkg_config
535# @DESCRIPTION: 576# @DESCRIPTION:
536# This function installs -- and removes a previously existing -- default webroot 577# This function installs -- and overwrites -- the default webroot to
537# to /var/www/localhost 578# /var/www/localhost
538apache-2_pkg_config() { 579apache-2_pkg_config() {
539 einfo "Installing default webroot to ${ROOT}var/www/localhost" 580 einfo "Installing default webroot to ${ROOT}var/www/localhost"
540 mkdir "${ROOT}"var{,/www{,/localhost}} 581 mkdir -p "${ROOT}"/var/www/localhost
541 cp -R "${ROOT}"usr/share/doc/${PF}/webroot/* "${ROOT}"var/www/localhost/ 582 cp -R "${ROOT}"/usr/share/${PF}/webroot/* "${ROOT}"/var/www/localhost/
542} 583}
543 584
544EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_config 585EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_config

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.20