1 | # Copyright 2004 Gentoo Technologies, Inc. |
1 | # Copyright 1999-2007 Gentoo Foundation |
2 | # Distributed under the terms of the GNU General Public License, v2 or later |
2 | # Distributed under the terms of the GNU General Public License v2 |
3 | # Author Michael Tindal <mtindal@gmail.com> |
|
|
4 | # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.8 2005/01/21 00:00:53 trapni Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.39 2008/02/03 14:12:44 hollow Exp $ |
5 | ECLASS=depend.apache |
|
|
6 | INHERITED="$INHERITED $ECLASS" |
|
|
7 | |
4 | |
8 | ###### |
5 | # @ECLASS: depend.apache.eclass |
9 | ## Apache Common Variables |
6 | # @MAINTAINER: apache-devs@gentoo.org |
10 | ## |
7 | # @BLURB: Functions to allow ebuilds to depend on apache |
11 | ## These are internal variables used by this, and other apache-related eclasses, |
8 | # @DESCRIPTION: |
12 | ## and thus should not need to be used by the ebuilds themselves (the ebuilds |
9 | # This eclass handles depending on apache in a sane way and providing |
13 | ## should know what version of Apache they are building against). |
10 | # information about where certain interfaces are located. |
14 | ###### |
11 | # |
|
|
12 | # @NOTE: If you use this, be sure you use the need_* call after you have defined |
|
|
13 | # DEPEND and RDEPEND. Also note that you can not rely on the automatic |
|
|
14 | # RDEPEND=DEPEND that portage does if you use this eclass. |
|
|
15 | # |
|
|
16 | # See bug 107127 for more information. |
15 | |
17 | |
16 | #### |
18 | inherit multilib |
17 | ## APACHE_VERSION |
|
|
18 | ## |
|
|
19 | ## Stores the version of apache we are going to be ebuilding. This variable is |
|
|
20 | ## set by the need_apache{|1|2} functions. |
|
|
21 | #### |
|
|
22 | APACHE_VERSION='2' |
|
|
23 | |
19 | |
24 | #### |
20 | # ============================================================================== |
25 | ## APXS1, APXS2 |
21 | # INTERNAL VARIABLES |
26 | ## |
22 | # ============================================================================== |
27 | ## Paths to the apxs tools |
|
|
28 | #### |
|
|
29 | APXS1="/usr/sbin/apxs" |
|
|
30 | APXS2="/usr/sbin/apxs2" |
|
|
31 | |
23 | |
32 | #### |
24 | # @ECLASS-VARIABLE: APACHE_VERSION |
33 | ## APACHECTL1, APACHECTL2 |
25 | # @DESCRIPTION: |
34 | ## |
26 | # Stores the version of apache we are going to be ebuilding. This variable is |
35 | ## Paths to the apachectl tools |
27 | # set by the need_apache functions. |
36 | #### |
|
|
37 | APACHECTL1="/usr/sbin/apachectl" |
|
|
38 | APACHECTL2="/usr/sbin/apache2ctl" |
|
|
39 | |
28 | |
40 | #### |
29 | # @ECLASS-VARIABLE: APXS |
41 | ## APACHE1_BASEDIR, APACHE2_BASEDIR |
30 | # @DESCRIPTION: |
42 | ## |
31 | # Paths to the apxs tool |
43 | ## Paths to the server root directories |
|
|
44 | #### |
|
|
45 | APACHE1_BASEDIR="/usr/lib/apache" |
|
|
46 | APACHE2_BASEDIR="/usr/lib/apache2" |
|
|
47 | |
32 | |
48 | #### |
33 | # @ECLASS-VARIABLE: APACHECTL |
49 | ## APACHE1_CONFDIR, APACHE2_CONFDIR |
34 | # @DESCRIPTION: |
50 | ## |
35 | # Path to the apachectl tool |
51 | ## Paths to the configuration file directories (usually under |
|
|
52 | ## $APACHE?_BASEDIR/conf) |
|
|
53 | #### |
|
|
54 | APACHE1_CONFDIR="/etc/apache" |
|
|
55 | APACHE2_CONFDIR="/etc/apache2" |
|
|
56 | |
36 | |
57 | #### |
37 | # @ECLASS-VARIABLE: APACHE_BASEDIR |
58 | ## APACHE1_MODULES_CONFDIR, APACHE2_MODULES_CONFDIR |
38 | # @DESCRIPTION: |
59 | ## |
39 | # Path to the server root directory |
60 | ## Paths where module configuration files are kept |
|
|
61 | #### |
|
|
62 | APACHE1_MODULES_CONFDIR="${APACHE1_CONFDIR}/modules.d" |
|
|
63 | APACHE2_MODULES_CONFDIR="${APACHE2_CONFDIR}/modules.d" |
|
|
64 | |
40 | |
65 | #### |
41 | # @ECLASS-VARIABLE: APACHE_CONFDIR |
66 | ## APACHE1_MODULES_VHOSTDIR, APACHE2_MODULES_VHOSTDIR |
42 | # @DESCRIPTION: |
67 | ## |
43 | # Path to the configuration file directory |
68 | ## Paths where virtual host configuration files are kept |
|
|
69 | #### |
|
|
70 | APACHE1_VHOSTDIR="${APACHE1_CONFDIR}/vhosts.d" |
|
|
71 | APACHE2_VHOSTDIR="${APACHE2_CONFDIR}/vhosts.d" |
|
|
72 | |
44 | |
73 | #### |
45 | # @ECLASS-VARIABLE: APACHE_MODULES_CONFDIR |
74 | ## APACHE1_MODULESDIR, APACHE2_MODULESDIR |
46 | # @DESCRIPTION: |
75 | ## |
47 | # Path where module configuration files are kept |
76 | ## Paths where we install modules |
|
|
77 | #### |
|
|
78 | APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules" |
|
|
79 | APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" |
|
|
80 | |
48 | |
81 | #### |
49 | # @ECLASS-VARIABLE: APACHE_VHOSTS_CONFDIR |
82 | ## APACHE1_DEPEND, APACHE2_DEPEND |
50 | # @DESCRIPTION: |
83 | ## |
51 | # Path where virtual host configuration files are kept |
84 | ## Dependencies for apache 1.x and apache 2.x |
|
|
85 | ## |
|
|
86 | ## apache2 must be at least version 2.0.52-r3, this is lowest version |
|
|
87 | ## containing our new overall changes -- trapni (Jan 21 2005) |
|
|
88 | ## apache1 must be at least version 1.3.33-r1, but how to |
|
|
89 | ## define the DEPEND here? (FIXME) -- trapni (Jan 21 2005) |
|
|
90 | #### |
|
|
91 | APACHE1_DEPEND="=net-www/apache-1*" |
|
|
92 | APACHE2_DEPEND=">=net-www/apache-2.0.52-r3" |
|
|
93 | |
52 | |
94 | #### |
53 | # @ECLASS-VARIABLE: APACHE_MODULESDIR |
95 | ## need_apache1 |
54 | # @DESCRIPTION: |
96 | ## |
55 | # Path where we install modules |
97 | ## An ebuild calls this to get the dependency information |
|
|
98 | ## for apache-1.x. An ebuild should use this in order for |
|
|
99 | ## future changes to the build infrastructure to happen |
|
|
100 | ## seamlessly. All an ebuild needs to do is include the |
|
|
101 | ## line need_apache1 somewhere. |
|
|
102 | #### |
|
|
103 | need_apache1() { |
|
|
104 | debug-print-function need_apache1 |
|
|
105 | |
56 | |
106 | DEPEND="${DEPEND} ${APACHE1_DEPEND}" |
57 | # @ECLASS-VARIABLE: APACHE_DEPEND |
|
|
58 | # @DESCRIPTION: |
|
|
59 | # Dependencies for Apache |
|
|
60 | APACHE_DEPEND="www-servers/apache" |
|
|
61 | |
|
|
62 | # @ECLASS-VARIABLE: APACHE2_DEPEND |
|
|
63 | # @DESCRIPTION: |
|
|
64 | # Dependencies for Apache 2.x |
|
|
65 | APACHE2_DEPEND="=www-servers/apache-2*" |
|
|
66 | |
|
|
67 | # @ECLASS-VARIABLE: APACHE2_2_DEPEND |
|
|
68 | # @DESCRIPTION: |
|
|
69 | # Dependencies for Apache 2.2.x |
|
|
70 | APACHE2_2_DEPEND="=www-servers/apache-2.2*" |
|
|
71 | |
|
|
72 | # ============================================================================== |
|
|
73 | # INTERNAL FUNCTIONS |
|
|
74 | # ============================================================================== |
|
|
75 | |
|
|
76 | _init_apache2() { |
|
|
77 | debug-print-function $FUNCNAME $* |
|
|
78 | |
|
|
79 | # WARNING: Do not use these variables with anything that is put |
|
|
80 | # into the dependency cache (DEPEND/RDEPEND/etc) |
107 | APACHE_VERSION='1' |
81 | APACHE_VERSION="2" |
|
|
82 | APXS="/usr/sbin/apxs2" |
|
|
83 | APACHE_BIN="/usr/sbin/apache2" |
|
|
84 | APACHE_CTL="/usr/sbin/apache2ctl" |
|
|
85 | # legacy alias |
|
|
86 | APACHECTL="${APACHE_CTL}" |
|
|
87 | APACHE_BASEDIR="/usr/$(get_libdir)/apache2" |
|
|
88 | APACHE_CONFDIR="/etc/apache2" |
|
|
89 | APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d" |
|
|
90 | APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d" |
|
|
91 | APACHE_MODULESDIR="${APACHE_BASEDIR}/modules" |
108 | } |
92 | } |
109 | |
93 | |
110 | #### |
94 | _init_no_apache() { |
111 | ## need_apache2 |
95 | debug-print-function $FUNCNAME $* |
112 | ## |
|
|
113 | ## An ebuild calls this to get the dependency information |
|
|
114 | ## for apache-2.x. An ebuild should use this in order for |
|
|
115 | ## future changes to the build infrastructure to happen |
|
|
116 | ## seamlessly. All an ebuild needs to do is include the |
|
|
117 | ## line need_apache1 somewhere. |
|
|
118 | #### |
|
|
119 | need_apache2() { |
|
|
120 | debug-print-function need_apache2 |
|
|
121 | |
|
|
122 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
|
|
123 | APACHE_VERSION='2' |
96 | APACHE_VERSION="0" |
124 | } |
97 | } |
125 | |
98 | |
126 | need_apache() { |
99 | # ============================================================================== |
127 | debug-print-function need_apache |
100 | # PUBLIC FUNCTIONS |
|
|
101 | # ============================================================================== |
128 | |
102 | |
129 | IUSE="${IUSE} apache2" |
103 | # @FUNCTION: want_apache |
130 | if useq apache2; then |
104 | # @DESCRIPTION: |
|
|
105 | # An ebuild calls this to get the dependency information for optional apache-2.x |
|
|
106 | # support. |
|
|
107 | want_apache2() { |
|
|
108 | debug-print-function $FUNCNAME $* |
|
|
109 | |
|
|
110 | local myiuse=${1:-apache2} |
|
|
111 | IUSE="${IUSE} ${myiuse}" |
|
|
112 | DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )" |
|
|
113 | RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )" |
|
|
114 | |
|
|
115 | if use ${myiuse} ; then |
131 | need_apache2 |
116 | _init_apache2 |
132 | else |
117 | else |
133 | need_apache1 |
118 | _init_no_apache |
134 | fi |
119 | fi |
135 | } |
120 | } |
136 | |
121 | |
|
|
122 | # @FUNCTION: want_apache |
|
|
123 | # @DESCRIPTION: |
|
|
124 | # An ebuild calls this to get the dependency information for optional |
|
|
125 | # apache-2.2.x support. |
|
|
126 | want_apache2_2() { |
|
|
127 | debug-print-function $FUNCNAME $* |
|
|
128 | |
|
|
129 | local myiuse=${1:-apache2} |
|
|
130 | IUSE="${IUSE} ${myiuse}" |
|
|
131 | DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )" |
|
|
132 | RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )" |
|
|
133 | |
|
|
134 | if use ${myiuse} ; then |
|
|
135 | _init_apache2 |
|
|
136 | else |
|
|
137 | _init_no_apache |
|
|
138 | fi |
|
|
139 | } |
|
|
140 | |
|
|
141 | # @FUNCTION: want_apache |
|
|
142 | # @DESCRIPTION: |
|
|
143 | # An ebuild calls this to get the dependency information for optional apache |
|
|
144 | # support. |
|
|
145 | want_apache() { |
|
|
146 | debug-print-function $FUNCNAME $* |
|
|
147 | want_apache2 "$@" |
|
|
148 | } |
|
|
149 | |
|
|
150 | # @FUNCTION: need_apache2 |
|
|
151 | # @DESCRIPTION: |
|
|
152 | # Works like need_apache, but its used by modules that only support |
|
|
153 | # apache 2.x and do not work with other versions. |
|
|
154 | need_apache2() { |
|
|
155 | debug-print-function $FUNCNAME $* |
|
|
156 | |
|
|
157 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
|
|
158 | RDEPEND="${RDEPEND} ${APACHE2_DEPEND}" |
|
|
159 | _init_apache2 |
|
|
160 | } |
|
|
161 | |
|
|
162 | # @FUNCTION: need_apache2_2 |
|
|
163 | # @DESCRIPTION: |
|
|
164 | # Works like need_apache, but its used by modules that only support |
|
|
165 | # apache 2.2.x and do not work with other versions. |
|
|
166 | need_apache2_2() { |
|
|
167 | debug-print-function $FUNCNAME $* |
|
|
168 | |
|
|
169 | DEPEND="${DEPEND} ${APACHE2_2_DEPEND}" |
|
|
170 | RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}" |
|
|
171 | _init_apache2 |
|
|
172 | } |
|
|
173 | |
|
|
174 | # @FUNCTION: need_apache |
|
|
175 | # @DESCRIPTION: |
|
|
176 | # An ebuild calls this to get the dependency information for apache. An |
|
|
177 | # ebuild should use this in order for future changes to the build infrastructure |
|
|
178 | # to happen seamlessly. All an ebuild needs to do is include the line |
|
|
179 | # need_apache somewhere. |
|
|
180 | need_apache() { |
|
|
181 | debug-print-function $FUNCNAME $* |
|
|
182 | need_apache2 |
|
|
183 | } |