| 1 | # Copyright 1999-2004 Gentoo Foundation |
1 | # Copyright 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 or later |
|
|
3 | # Author Michael Tindal <urilith@gentoo.org> |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.4 2004/07/24 08:47:01 stuart Exp $ |
4 | # $Header: /var/cvsroot/gentoo-x86/eclass/depend.apache.eclass,v 1.6 2004/11/21 01:51:58 urilith Exp $ |
|
|
5 | ECLASS=depend.apache |
|
|
6 | INHERITED="$INHERITED $ECLASS" |
| 4 | |
7 | |
| 5 | ECLASS="depend.apache" |
8 | ###### |
| 6 | INHERITED="$INHERITED $ECLASS" |
9 | ## Apache Common Variables |
| 7 | IUSE="apache apache2" |
10 | ## |
|
|
11 | ## These are internal variables used by this, and other apache-related eclasses, |
|
|
12 | ## and thus should not need to be used by the ebuilds themselves (the ebuilds |
|
|
13 | ## should know what version of Apache they are building against). |
|
|
14 | ###### |
| 8 | |
15 | |
| 9 | # remember to set MY_SLOT if you want to include something like ${PVR} in |
16 | #### |
| 10 | # the slot information |
17 | ## APACHE_VERSION |
| 11 | # SLOT="apache? ( 1{$MY_SLOT} ) apache2? ( 2{$MY_SLOT} ) !apache1? ( !apache2? ( 2${MY_SLOT} ) )" |
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' |
| 12 | |
23 | |
| 13 | DEPEND="$DEPEND apache? ( =net-www/apache-1* ) apache2? ( =net-www/apache-2* ) |
24 | #### |
| 14 | !apache? ( !apache2? ( net-www/apache-2* ) )" |
25 | ## APXS1, APXS2 |
|
|
26 | ## |
|
|
27 | ## Paths to the apxs tools |
|
|
28 | #### |
|
|
29 | APXS1="/usr/sbin/apxs" |
|
|
30 | APXS2="/usr/sbin/apxs2" |
| 15 | |
31 | |
| 16 | # call this function to work out which version of the apache web server |
32 | #### |
| 17 | # your ebuild should be installing itself to use |
33 | ## APACHECTL1, APACHECTL2 |
|
|
34 | ## |
|
|
35 | ## Paths to the apachectl tools |
|
|
36 | #### |
|
|
37 | APACHECTL1="/usr/sbin/apachectl" |
|
|
38 | APACHECTL2="/usr/sbin/apache2ctl" |
| 18 | |
39 | |
| 19 | detect_apache_useflags() { |
40 | #### |
| 20 | USE_APACHE1= |
41 | ## APACHE1_BASEDIR, APACHE2_BASEDIR |
| 21 | USE_APACHE2= |
42 | ## |
| 22 | USE_APACHE_MULTIPLE= |
43 | ## Paths to the server root directories |
|
|
44 | #### |
|
|
45 | APACHE1_BASEDIR="/usr/lib/apache" |
|
|
46 | APACHE2_BASEDIR="/usr/lib/apache2" |
| 23 | |
47 | |
| 24 | useq apache2 && USE_APACHE2=1 |
48 | #### |
| 25 | useq apache && USE_APACHE1=1 |
49 | ## APACHE1_CONFDIR, APACHE2_CONFDIR |
|
|
50 | ## |
|
|
51 | ## Paths to the configuration file directories (usually under |
|
|
52 | ## $APACHE?_BASEDIR/conf) |
|
|
53 | #### |
|
|
54 | APACHE1_CONFDIR="/etc/apache" |
|
|
55 | APACHE2_CONFDIR="/etc/apache2" |
| 26 | |
56 | |
| 27 | [ -n "$USE_APACHE1" ] && [ -n "$USE_APACHE2" ] && USE_APACHE_MULTIPLE=1 |
57 | #### |
|
|
58 | ## APACHE1_MODULES_CONFDIR, APACHE2_MODULES_CONFDIR |
|
|
59 | ## |
|
|
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 | |
|
|
65 | #### |
|
|
66 | ## APACHE1_MODULES_VHOSTDIR, APACHE2_MODULES_VHOSTDIR |
|
|
67 | ## |
|
|
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 | |
|
|
73 | #### |
|
|
74 | ## APACHE1_MODULESDIR, APACHE2_MODULESDIR |
|
|
75 | ## |
|
|
76 | ## Paths where we install modules |
|
|
77 | #### |
|
|
78 | APACHE1_MODULESDIR="${APACHE1_BASEDIR}/modules" |
|
|
79 | APACHE2_MODULESDIR="${APACHE2_BASEDIR}/modules" |
|
|
80 | |
|
|
81 | #### |
|
|
82 | ## APACHE1_DEPEND, APACHE2_DEPEND |
|
|
83 | ## |
|
|
84 | ## Dependencies for apache 1.x and apache 2.x |
|
|
85 | #### |
|
|
86 | APACHE1_DEPEND="=net-www/apache-1*" |
|
|
87 | APACHE2_DEPEND="=net-www/apache-2*" |
|
|
88 | |
|
|
89 | #### |
|
|
90 | ## need_apache1 |
|
|
91 | ## |
|
|
92 | ## An ebuild calls this to get the dependency information |
|
|
93 | ## for apache-1.x. An ebuild should use this in order for |
|
|
94 | ## future changes to the build infrastructure to happen |
|
|
95 | ## seamlessly. All an ebuild needs to do is include the |
|
|
96 | ## line need_apache1 somewhere. |
|
|
97 | #### |
|
|
98 | need_apache1() { |
|
|
99 | debug-print-function need_apache1 |
|
|
100 | |
|
|
101 | DEPEND="${DEPEND} ${APACHE1_DEPEND}" |
|
|
102 | APACHE_VERSION='1' |
| 28 | } |
103 | } |
| 29 | |
104 | |
| 30 | detect_apache_installed() { |
105 | #### |
| 31 | HAS_APACHE1= |
106 | ## need_apache2 |
| 32 | HAS_APACHE2= |
107 | ## |
| 33 | HAS_APACHE_MULTIPLE= |
108 | ## An ebuild calls this to get the dependency information |
| 34 | HAS_APACHE_ANY= |
109 | ## for apache-2.x. An ebuild should use this in order for |
|
|
110 | ## future changes to the build infrastructure to happen |
|
|
111 | ## seamlessly. All an ebuild needs to do is include the |
|
|
112 | ## line need_apache1 somewhere. |
|
|
113 | #### |
|
|
114 | need_apache2() { |
|
|
115 | debug-print-function need_apache2 |
| 35 | |
116 | |
| 36 | has_version '=net-www/apache-1*' && HAS_APACHE1=1 && HAS_APACHE_ANY=1 |
117 | DEPEND="${DEPEND} ${APACHE2_DEPEND}" |
| 37 | has_version '=net-www/apache-2*' && HAS_APACHE2=1 && HAS_APACHE_ANY=1 |
118 | APACHE_VERSION='2' |
| 38 | |
|
|
| 39 | [ -n "${HAVE_APACHE1}" ] && [ -n "${HAVE_APACHE2}" && HAVE_APACHE_MULTIPLE=1 |
|
|
| 40 | } |
119 | } |
| 41 | |
120 | |
| 42 | # call this function from your pkg_setup |
121 | need_apache() { |
|
|
122 | debug-print-function need_apache |
| 43 | |
123 | |
| 44 | depend_apache() { |
124 | IUSE="${IUSE} apache2" |
| 45 | detect_apache_installed |
125 | if useq apache2; then |
| 46 | detect_apache_useflags |
126 | need_apache2 |
| 47 | |
127 | else |
| 48 | # deal with the multiple cases first - much easier |
128 | need_apache1 |
| 49 | if [ -n "$USE_APACHE_MULTIPLE" ]; then |
|
|
| 50 | echo |
|
|
| 51 | eerror "You have both the apache and apache2 USE flags set" |
|
|
| 52 | eerror |
|
|
| 53 | eerror "Please set only ONE of these USE flags, and try again" |
|
|
| 54 | echo |
|
|
| 55 | die "Multiple Apache USE flags set - you can only have one set at a time" |
|
|
| 56 | fi |
129 | fi |
| 57 | |
|
|
| 58 | if [ -n "$USE_APACHE2" ] ; then |
|
|
| 59 | if [ -z "$HAS_APACHE2" -a -n "$HAS_APACHE_ANY" ] ; then |
|
|
| 60 | echo |
|
|
| 61 | eerror "You have the 'apache2' USE flag set, but only have Apache v1 installed" |
|
|
| 62 | eerror "If you really meant to upgrade to Apache v2, please install Apache v2" |
|
|
| 63 | eerror "before installing $CATEGORY/${PN}-${PVR}" |
|
|
| 64 | echo |
|
|
| 65 | die "Automatic upgrade of Apache would be forced; avoiding" |
|
|
| 66 | else |
|
|
| 67 | einfo "Apache 2 support enabled" |
|
|
| 68 | DETECT_APACHE=2 |
|
|
| 69 | return |
|
|
| 70 | fi |
|
|
| 71 | fi |
|
|
| 72 | |
|
|
| 73 | if [ -n "$USE_APACHE1" ]; then |
|
|
| 74 | if [ -z "$HAS_APACHE1" -a -n "$HAS_APACHE_ANY" ]; then |
|
|
| 75 | echo |
|
|
| 76 | eerror "You have the 'apache' USE flag set, but only have a later version of" |
|
|
| 77 | eerror "Apache installed on your computer. Please use the 'apache2' USE flag" |
|
|
| 78 | eerror "or downgrade to Apache v1 before installing $CATEGORY/${PN}-${PVR}" |
|
|
| 79 | echo |
|
|
| 80 | die "Avoiding installing older version of Apache" |
|
|
| 81 | else |
|
|
| 82 | einfo "Apache 1 support enabled" |
|
|
| 83 | DETECT_APACHE=1 |
|
|
| 84 | return |
|
|
| 85 | fi |
|
|
| 86 | fi |
|
|
| 87 | |
|
|
| 88 | [ -z "$DETECT_APACHE" ] && DETECT_APACHE=2 |
|
|
| 89 | } |
130 | } |
| 90 | |
131 | |