/[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.3 Revision 1.8
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.3 2007/12/15 14:00:19 hollow Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/apache-2.eclass,v 1.8 2008/02/02 10:10:36 hollow Exp $
4 4
5# @ECLASS: apache-2 5# @ECLASS: apache-2
6# @MAINTAINER: apache-devs@gentoo.org 6# @MAINTAINER: apache-devs@gentoo.org
7# @BLURB: Provides a common set of functions for >=apache-2.2* ebuilds 7# @BLURB: Provides a common set of functions for >=apache-2.2* ebuilds
8# @DESCRIPTION: 8# @DESCRIPTION:
9# This eclass handles common apache ebuild functions in a sane way and providing 9# This eclass handles common apache ebuild functions in a sane way and providing
10# information about where certain interfaces are located such as LoadModule 10# information about where certain interfaces are located such as LoadModule
11# generation and inter-module dependency checking. 11# generation and inter-module dependency checking.
12 12
13inherit depend.apache eutils flag-o-matic multilib autotools 13inherit autotools eutils flag-o-matic multilib
14 14
15# ============================================================================== 15# ==============================================================================
16# INTERNAL VARIABLES 16# INTERNAL VARIABLES
17# ============================================================================== 17# ==============================================================================
18 18
33# gentoo developer who created the patch tarball 33# gentoo developer who created the patch tarball
34 34
35# @ECLASS-VARIABLE: GENTOO_PATCHSTAMP 35# @ECLASS-VARIABLE: GENTOO_PATCHSTAMP
36# @DESCRIPTION: 36# @DESCRIPTION:
37# This variable needs to be set in the ebuild and contains the date the patch 37# This variable needs to be set in the ebuild and contains the date the patch
38# tarball was created at in YYMMDD format 38# tarball was created at in YYYYMMDD format
39 39
40SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2 40SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2
41 http://dev.gentoo.org/~${GENTOO_DEVELOPER}/dist/apache/${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2" 41 http://dev.gentoo.org/~${GENTOO_DEVELOPER}/dist/apache/${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2"
42 42
43# @ECLASS-VARIABLE: IUSE_MPMS_FORK 43# @ECLASS-VARIABLE: IUSE_MPMS_FORK
70 =dev-libs/apr-1* 70 =dev-libs/apr-1*
71 =dev-libs/apr-util-1* 71 =dev-libs/apr-util-1*
72 dev-libs/libpcre 72 dev-libs/libpcre
73 ldap? ( =net-nds/openldap-2* ) 73 ldap? ( =net-nds/openldap-2* )
74 selinux? ( sec-policy/selinux-apache ) 74 selinux? ( sec-policy/selinux-apache )
75 ssl? ( dev-libs/openssl ) 75 ssl? ( >=dev-libs/openssl-0.9.8f )
76 !=www-servers/apache-1*" 76 !=www-servers/apache-1*"
77RDEPEND="${DEPEND}" 77RDEPEND="${DEPEND}"
78PDEPEND="~app-admin/apache-tools-${PV}" 78PDEPEND="~app-admin/apache-tools-${PV}"
79 79
80S="${WORKDIR}/httpd-${PV}" 80S="${WORKDIR}/httpd-${PV}"
82# ============================================================================== 82# ==============================================================================
83# INTERNAL FUNCTIONS 83# INTERNAL FUNCTIONS
84# ============================================================================== 84# ==============================================================================
85 85
86# @ECLASS-VARIABLE: MY_MPM 86# @ECLASS-VARIABLE: MY_MPM
87# DESCRIPTION: 87# @DESCRIPTION:
88# This internal variable contains the selected MPM after a call to setup_mpm() 88# This internal variable contains the selected MPM after a call to setup_mpm()
89 89
90# @FUNCTION: setup_mpm 90# @FUNCTION: setup_mpm
91# @DESCRIPTION: 91# @DESCRIPTION:
92# This internal function makes sure that only one of APACHE2_MPMS was selected 92# 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 93# or a default based on USE=threads is selected if APACHE2_MPMS is empty
94setup_mpm() { 94setup_mpm() {
95 MY_MPM=""
95 for x in ${IUSE_MPMS} ; do 96 for x in ${IUSE_MPMS} ; do
96 if use apache2_mpms_${x} ; then 97 if use apache2_mpms_${x} ; then
97 if [[ -z "${MY_MPM}" ]] ; then 98 if [[ -z "${MY_MPM}" ]] ; then
98 MY_MPM=${x} 99 MY_MPM=${x}
99 elog 100 elog
176check_module_depends() { 177check_module_depends() {
177 local err=0 178 local err=0
178 179
179 for m in ${MY_MODS} ; do 180 for m in ${MY_MODS} ; do
180 for dep in ${MODULE_DEPENDS} ; do 181 for dep in ${MODULE_DEPENDS} ; do
181 if [[ "${m}" == "${dep%:*}" ]]; then 182 if [[ "${m}" == "${dep%:*}" ]] ; then
182 if ! use apache2_modules_${dep#*:} ; then 183 if ! use apache2_modules_${dep#*:} ; then
183 eerror "Module '${m}' depends on '${dep#*:}'" 184 eerror "Module '${m}' depends on '${dep#*:}'"
184 err=1 185 err=1
185 fi 186 fi
186 fi 187 fi
191 die "invalid use flag combination" 192 die "invalid use flag combination"
192 fi 193 fi
193} 194}
194 195
195# @ECLASS-VARIABLE: MY_CONF 196# @ECLASS-VARIABLE: MY_CONF
196# DESCRIPTION: 197# @DESCRIPTION:
197# This internal variable contains the econf options for the current module 198# This internal variable contains the econf options for the current module
198# selection after a call to setup_modules() 199# selection after a call to setup_modules()
199 200
200# @ECLASS-VARIABLE: MY_MODS 201# @ECLASS-VARIABLE: MY_MODS
201# DESCRIPTION: 202# @DESCRIPTION:
202# This internal variable contains a sorted, space separated list of currently 203# This internal variable contains a sorted, space separated list of currently
203# selected modules after a call to setup_modules() 204# selected modules after a call to setup_modules()
204 205
205# @FUNCTION: setup_modules 206# @FUNCTION: setup_modules
206# @DESCRIPTION: 207# @DESCRIPTION:
299# @FUNCTION: generate_load_module 300# @FUNCTION: generate_load_module
300# @DESCRIPTION: 301# @DESCRIPTION:
301# This internal function generates the LoadModule lines for httpd.conf based on 302# This internal function generates the LoadModule lines for httpd.conf based on
302# the current module selection and MODULE_DEFINES 303# the current module selection and MODULE_DEFINES
303generate_load_module() { 304generate_load_module() {
304 local endit=0 mod_lines= mod_dir="${D}${APACHE2_MODULESDIR}" 305 local endit=0 mod_lines= mod_dir="${D}/usr/$(get_libdir)/apache2/modules"
305 306
306 if use static; then 307 if use static; then
307 sed -i -e "/%%LOAD_MODULE%%/d" \ 308 sed -i -e "/%%LOAD_MODULE%%/d" \
308 "${GENTOO_PATCHDIR}"/conf/httpd.conf 309 "${GENTOO_PATCHDIR}"/conf/httpd.conf
309 return 310 return
446 emake || die "emake failed" 447 emake || die "emake failed"
447} 448}
448 449
449# @FUNCTION: apache-2_src_install 450# @FUNCTION: apache-2_src_install
450# @DESCRIPTION: 451# @DESCRIPTION:
451# This function runs emake install and generates, install and adapts the gentoo 452# This function runs emake install and generates, installs and adapts the gentoo
452# specific configuration files found in the tarball 453# specific configuration files found in the tarball
453apache-2_src_install() { 454apache-2_src_install() {
454 emake DESTDIR="${D}" install || die "emake install failed" 455 make DESTDIR="${D}" install || die "make install failed"
455 456
456 # install our configuration files 457 # install our configuration files
457 keepdir /etc/apache2/vhosts.d 458 keepdir /etc/apache2/vhosts.d
458 keepdir /etc/apache2/modules.d 459 keepdir /etc/apache2/modules.d
459 460
478 newinitd "${GENTOO_PATCHDIR}"/init/apache2.initd apache2 479 newinitd "${GENTOO_PATCHDIR}"/init/apache2.initd apache2
479 480
480 # link apache2ctl to the init script 481 # link apache2ctl to the init script
481 dosym /etc/init.d/apache2 /usr/sbin/apache2ctl 482 dosym /etc/init.d/apache2 /usr/sbin/apache2ctl
482 483
483 # provide symlinks for all the stuff we no longer rename, bug 177697 484 # provide legacy symlink for apxs, bug 177697
484 for i in suexec apxs; do
485 dosym /usr/sbin/${i} /usr/sbin/${i}2 485 dosym /usr/sbin/apxs /usr/sbin/apxs2
486 done
487 486
488 # install some thirdparty scripts 487 # install some thirdparty scripts
489 exeinto /usr/sbin 488 exeinto /usr/sbin
490 use ssl && doexe "${GENTOO_PATCHDIR}"/scripts/gentestcrt.sh 489 use ssl && doexe "${GENTOO_PATCHDIR}"/scripts/gentestcrt.sh
491 490
509 508
510 # set some sane permissions for suexec 509 # set some sane permissions for suexec
511 if use suexec ; then 510 if use suexec ; then
512 fowners 0:apache /usr/sbin/suexec 511 fowners 0:apache /usr/sbin/suexec
513 fperms 4710 /usr/sbin/suexec 512 fperms 4710 /usr/sbin/suexec
513 # provide legacy symlink for suexec, bug 177697
514 dosym /usr/sbin/suexec /usr/sbin/suexec2
514 fi 515 fi
515 516
516 # empty dirs 517 # empty dirs
517 for i in /var/lib/dav /var/log/apache2 /var/cache/apache2 ; do 518 for i in /var/lib/dav /var/log/apache2 /var/cache/apache2 ; do
518 keepdir ${i} 519 keepdir ${i}

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.20