Annotation of /branches/R11-stable/extras/apache2/apache2-2.4.6-r1.smage2
Parent Directory | Revision Log
Revision 18983 -
(hide annotations)
(download)
Tue Aug 20 08:52:13 2013 UTC (11 years, 1 month ago) by niro
Original Path: trunk/extras/apache2/apache2-2.4.6-r1.smage2
File size: 7730 byte(s)
Tue Aug 20 08:52:13 2013 UTC (11 years, 1 month ago) by niro
Original Path: trunk/extras/apache2/apache2-2.4.6-r1.smage2
File size: 7730 byte(s)
auto added: ver bump to 2.4.6-r1
1 | niro | 18983 | # $Id$ |
2 | |||
3 | PNAME="apache2" | ||
4 | PVER="2.4.6" | ||
5 | PBUILD="r1" | ||
6 | |||
7 | PCAT="net-www" | ||
8 | |||
9 | DESCRIPTION="The Apache HTTP web server." | ||
10 | HOMEPAGE="http://httpd.apache.org/" | ||
11 | |||
12 | # systemd is required by mod_systemd | ||
13 | # perl is required for serveral tools like apxs, dbmmanage | ||
14 | DEPEND=">= virtual/glibc | ||
15 | >= dev-libs/apr-1.4 | ||
16 | >= dev-libs/apr-util-1.5 | ||
17 | >= dev-libs/libxml2-2.9 | ||
18 | >= dev-libs/libpcre-8.31 | ||
19 | >= dev-libs/openssl-1.0.1 | ||
20 | >= dev-lang/perl-5.16 | ||
21 | >= sys-libs/libuuid-2.22.1 | ||
22 | >= sys-libs/zlib-1.2 | ||
23 | >= sys-apps/systemd-195" | ||
24 | |||
25 | PROVIDE="virtual/httpd" | ||
26 | |||
27 | SRCFILE="httpd-${PVER}.tar.bz2" | ||
28 | SRCDIR="${BUILDDIR}/httpd-${PVER}" | ||
29 | |||
30 | LOG_REV=1.2 | ||
31 | |||
32 | sminclude mtools | ||
33 | |||
34 | SRC_URI=( | ||
35 | http://www.apache.org/dist/httpd/${SRCFILE} | ||
36 | mirror://${PNAME}/${SRCFILE} | ||
37 | mirror://${PNAME}/${PNAME}-2.4.3-magellan-layout.patch | ||
38 | mirror://${PNAME}/${PNAME}-2.2.4-magellan-vendor.patch | ||
39 | mirror://${PNAME}/${PNAME}-2.2.8-default-user.patch | ||
40 | mirror://${PNAME}/${PNAME}-2.4.3-default-server-root.patch | ||
41 | mirror://${PNAME}/${PNAME}-2.4.3-default-mpm-settings.patch | ||
42 | mirror://${PNAME}/${PNAME}-2.2.9-default-dav-settings.patch | ||
43 | mirror://${PNAME}/${PNAME}-2.4.3-default-ssl-settings.patch | ||
44 | mirror://${PNAME}/${PNAME}-2.4.3-default-httpd-config-2.patch | ||
45 | mirror://${PNAME}/${PNAME}-2.2.4-apxs-httpd-config-2.patch | ||
46 | mirror://${PNAME}/${PNAME}-2.2.4-mod_dir-adddirectoryindex.patch | ||
47 | mirror://${PNAME}/${PNAME}-2.4.3-mod_systemd.patch | ||
48 | mirror://${PNAME}/apache2.service | ||
49 | mirror://${PNAME}/apache2.tmpfilesd | ||
50 | mirror://${PNAME}/apache2.confd | ||
51 | mirror://${PNAME}/apache2.logrotate-${LOG_REV} | ||
52 | mirror://${PNAME}/gentestcrt.sh | ||
53 | ) | ||
54 | |||
55 | UP2DATE="updatecmd http://www.apache.org/dist/httpd/ | grep httpd- | lasttarball" | ||
56 | |||
57 | src_prepare() | ||
58 | { | ||
59 | munpack ${SRCFILE} || die | ||
60 | cd ${SRCDIR} | ||
61 | |||
62 | # add our own layout | ||
63 | # renewed patch using /run | ||
64 | mpatch ${PNAME}-2.4.3-magellan-layout.patch || die | ||
65 | |||
66 | # report version description with 'Magellan' instead of 'UNIX' | ||
67 | mpatch ${PNAME}-2.2.4-magellan-vendor.patch || die | ||
68 | |||
69 | # use 'apache' as http-user instead of daemon | ||
70 | mpatch ${PNAME}-2.2.8-default-user.patch || die | ||
71 | |||
72 | # fixes the default server root in the httpd.conf | ||
73 | # defaults to $(prefix) but $(libdir)/apache2 is safer | ||
74 | mpatch ${PNAME}-2.4.3-default-server-root.patch || die | ||
75 | |||
76 | # fixes the default pid- and lockfile | ||
77 | # try to be compatible with apache1 and apache2 installations | ||
78 | # -> the pidfile should be named apache2.pid | ||
79 | # also all other unneeded mpm settings are removed | ||
80 | mpatch ${PNAME}-2.4.3-default-mpm-settings.patch || die | ||
81 | |||
82 | # use same sane default dav settings that match our layout | ||
83 | mpatch ${PNAME}-2.2.9-default-dav-settings.patch || die | ||
84 | |||
85 | # fixes the default ssl pathes | ||
86 | mpatch ${PNAME}-2.4.3-default-ssl-settings.patch || die | ||
87 | |||
88 | # use modules.d instead of extra directory for addons | ||
89 | # and renamed the config files without the 'httpd-' prefix | ||
90 | # and now load mpm.conf and default.conf | ||
91 | mpatch ${PNAME}-2.4.3-default-httpd-config-2.patch || die | ||
92 | |||
93 | # fixes apxs to not use progname.conf but httpd.conf as httpd config | ||
94 | # and fixes to modules path relative to server root also | ||
95 | mpatch ${PNAME}-2.2.4-apxs-httpd-config-2.patch || die | ||
96 | |||
97 | # taken from gentoo: provides AddDirectyIndex directive | ||
98 | # better support for adding indexes, needed at least by php5 | ||
99 | mpatch ${PNAME}-2.2.4-mod_dir-adddirectoryindex.patch || die | ||
100 | |||
101 | # add systemd support | ||
102 | mpatch ${PNAME}-2.4.3-mod_systemd.patch || die | ||
103 | } | ||
104 | |||
105 | src_compile() | ||
106 | { | ||
107 | cd ${SRCDIR} | ||
108 | |||
109 | # beware! mconfigure overwrite our layout pathes! | ||
110 | mconfigure \ | ||
111 | --libexecdir=/usr/$(mlibdir)/apache2/modules \ | ||
112 | --includedir=/usr/include/apache2 \ | ||
113 | --datadir=/var/www \ | ||
114 | --sysconfdir=/etc/apache2 \ | ||
115 | --localstatedir=/var \ | ||
116 | --enable-layout=Magellan \ | ||
117 | --with-program-name=apache2 \ | ||
118 | --with-port=80 \ | ||
119 | --enable-so \ | ||
120 | --enable-modules=all \ | ||
121 | --enable-mods-shared=all \ | ||
122 | --enable-suexec \ | ||
123 | --with-suexec-safepath='/usr/local/bin:/usr/bin:/bin' \ | ||
124 | --with-suexec-logfile=/var/log/apache2/suexec_log \ | ||
125 | --with-suexec-bin=/usr/sbin/suexec \ | ||
126 | --with-suexec-userdir=public_html \ | ||
127 | --with-suexec-caller=apache \ | ||
128 | --with-suexec-docroot=/var/www \ | ||
129 | --with-suexec-uidmin=1000 \ | ||
130 | --with-suexec-gidmin=100 \ | ||
131 | --with-suexec-umask=077 \ | ||
132 | --with-ssl=/usr \ | ||
133 | --enable-ssl \ | ||
134 | --enable-deflate \ | ||
135 | --with-gdbm \ | ||
136 | --with-mpm=prefork \ | ||
137 | --with-pcre \ | ||
138 | --with-pcre=/usr \ | ||
139 | --with-perl=/usr/bin/perl \ | ||
140 | --with-expat=/usr \ | ||
141 | --with-z=/usr \ | ||
142 | --with-apr=/usr \ | ||
143 | --with-apr-util=/usr \ | ||
144 | || die | ||
145 | |||
146 | # include/ap_config_auto.h is created by configure and | ||
147 | # --with-program-name renames http.conf to the given program name, | ||
148 | # but we want to use httpd.conf instead of apache2.conf | ||
149 | sed -i 's:apache2\.conf:httpd.conf:' include/ap_config_auto.h || die | ||
150 | # fix up the server root, default is $prefix but we want /usr/lib/apache2 | ||
151 | sed -i "s:^\(#define HTTPD_ROOT \).*:\1\"/usr/$(mlibdir)/apache2\":" include/ap_config_auto.h || die | ||
152 | # multilib build fixes, like this one: | ||
153 | # /usr/lib64/apr-1/build/libtool --silent --mode=link x86_64-pc-linux-gnu-gcc -pthread -L/usr/lib -o htpasswd htpasswd.lo -lm -L/usr/lib64 -lpcre /usr/lib64/libaprutil-1.la -ldb -lexpat /usr/lib64/libapr-1.la -luuid -lrt -lcrypt -lpthread -ldl | ||
154 | # /usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm | ||
155 | # /usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm | ||
156 | # /usr/lib/libexpat.so: could not read symbols: File in wrong format | ||
157 | sed -i "s:/usr/lib$:/usr/$(mlibdir):" build/config_vars.mk || die | ||
158 | |||
159 | mmake || die | ||
160 | } | ||
161 | |||
162 | src_install() | ||
163 | { | ||
164 | cd ${SRCDIR} | ||
165 | mmake DESTDIR=${BINDIR} install || die | ||
166 | minstalldocs ABOUT* CHANGES LICENSE NOTICE README* ROADMAP VERSIONING || die | ||
167 | |||
168 | # fix permissions of suexec | ||
169 | mchown root:apache /usr/sbin/suexec || die | ||
170 | mchmod 4710 /usr/sbin/suexec || die | ||
171 | |||
172 | # create some needed dirs | ||
173 | mkeepdir /etc/apache2/ssl || die | ||
174 | mkeepdir /var/lib/apache || die | ||
175 | mchown apache:apache /var/lib/apache || die | ||
176 | mkeepdir /var/lib/dav || die | ||
177 | mchown apache:apache /var/lib/dav || die | ||
178 | mkeepdir /var/log/apache2 || die | ||
179 | mchown apache:apache /var/log/apache2 || die | ||
180 | mkeepdir /var/cache/apache2/proxy || die | ||
181 | mchown apache:apache /var/cache/apache2/proxy || die | ||
182 | |||
183 | # install certificate helper | ||
184 | minstallexec -s gentestcrt.sh /usr/sbin/gentestcrt || die | ||
185 | |||
186 | # install logrotate config | ||
187 | minstalllog apache2.logrotate-${LOG_REV} apache2 || die | ||
188 | |||
189 | # install systemd unit and files | ||
190 | minstallunit apache2.service || die | ||
191 | minstalltmp apache2.tmpfilesd apache2.conf || die | ||
192 | minstallconf apache2.confd apache2 || die | ||
193 | |||
194 | # rename apache2.conf | ||
195 | mv ${BINDIR}/etc/apache2/{apache2,httpd}.conf || die | ||
196 | |||
197 | # rename extra dir to modules.d and remove the 'httpd-' | ||
198 | # prefix from every module configuration file | ||
199 | mv ${BINDIR}/etc/apache2/{extra,modules.d} || die | ||
200 | local i | ||
201 | for i in ${BINDIR}/etc/apache2/modules.d/* | ||
202 | do | ||
203 | if [[ ${i/httpd-/} != ${i} ]] | ||
204 | then | ||
205 | mv ${i} ${i/httpd-/} || die ${i} | ||
206 | fi | ||
207 | done | ||
208 | |||
209 | # prune backup files | ||
210 | if [[ -d ${BINDIR}/etc/apache2/original ]] | ||
211 | then | ||
212 | rm -r ${BINDIR}/etc/apache2/original || die | ||
213 | fi | ||
214 | |||
215 | # add /var/www to CONFIG_PROTECT | ||
216 | minstalldir /etc/env.d || die | ||
217 | echo "CONFIG_PROTECT=\"/var/www\"" > ${BINDIR}/etc/env.d/30apache2 || die | ||
218 | echo "CONFIG_PROTECT_MASK=\"/var/www/manual\"" >> ${BINDIR}/etc/env.d/30apache2 || die | ||
219 | } | ||
220 | |||
221 | preinstall() | ||
222 | { | ||
223 | # adding apache user | ||
224 | ${MLIBDIR}/mgroupadd -o "-g 81" apache | ||
225 | ${MLIBDIR}/museradd -o "-u 81 -g apache -d /var/lib/apache -s /bin/false" apache | ||
226 | } | ||
227 | |||
228 | postinstall() | ||
229 | { | ||
230 | # taken from gentoo - generate a test ssl certificate | ||
231 | if [[ ! -e ${MROOT}/etc/apache2/ssl/server.crt ]] | ||
232 | then | ||
233 | [[ -d ${MROOT}/etc/apache2/ssl ]] && install -d ${MROOT}/etc/apache2/ssl | ||
234 | cd ${MROOT}/etc/apache2/ssl | ||
235 | echo | ||
236 | echo "Generating self-signed test certificate in ${MROOT}/etc/apache2/ssl ..." | ||
237 | echo | ||
238 | yes "" 2> /dev/null | ${MROOT}/usr/sbin/gentestcrt > /dev/null 2>&1 | ||
239 | fi | ||
240 | |||
241 | mstartunit apache2 | ||
242 | } | ||
243 | |||
244 | postremove() | ||
245 | { | ||
246 | [[ ! -f /usr/sbin/apache2 ]] && mstopunit apache2 | ||
247 | } |