Browse code

apache update

Hanno Böck authored on 12/02/2018 17:07:37
Showing 2 changed files
... ...
@@ -3,7 +3,8 @@ AUX apache-2.4.29-fix-http2-scheduling.patch 1078 SHA256 74e35a8c8fffc21c02560b5
3 3
 AUX apache.conf 55 SHA256 ea616c5cc37979a006d69c51bda43fca15a4327d33175762652b29f5cdea1c7b SHA512 3a53beb7a283d17c14383f16ad14c0602681ac1b193cce8f5aca50ae9d9af3a71054ce4a9ab11cbcb72fe913459e1b306fd54660154e66afe10272f8c0f149f3 WHIRLPOOL fa348414f320a9f70001386dfb77d57ca4836c3ef3d251976077b7ad545d7f6752e534efadbf28c7dcb777388e3d844eba84b939dcf48881983388daf6ac23f0
4 4
 AUX apache2.2-hardened.service 970 SHA256 aaddbfb3953ad24b3714c54769df625d990833a24a075cfc0a10976c60dfa774 SHA512 c206e7103d592dcf4f2d62979a20f7ab3cc7ce357ffe3c06ae8137064c812b9727e01a53fd602a0a55a64ed609664061de680ff42329381db787e2dae9310c48 WHIRLPOOL 0dbec118e471363e84e00b6163ee6e7f7d9062d486523171da9c9df1f9eb3a7733bbc7262daa7f1ac9d47c1d4155d94ffd2f4b8d7905fa9372c1e275ea111b95
5 5
 AUX apache2.2.service 716 SHA256 e850ad73585fbba52ade58a39ca91adbfd52f56a0bbd426ebcadb340a7dcb62b SHA512 5f736c803772077598248bbb41f76dff396dfd2f11a60d1ba929a619275efb8c1b4c0dab78cbcdf83b9ec94db67b958b3333b01f67d71eb3b2e07dba4bca2a7c WHIRLPOOL 776a928422b8f37a12099111a1503674ca901934b60dca8596dc8bc287390be9a0e912d7ba6226dcb22eb7c669fa298ddc20fd7bf5c275b0cf019bae0d594839
6
-DIST gentoo-apache-2.4.18-r1-20160303.tar.bz2 24505 BLAKE2B 504deabe5ee9e2b32f44e8ea6cde6f01e7f26643ca05eb0aaf860ab6440d821566f83b5c9aacb2201382f9326974c7dddea4f4289d9da5857762611f424f0395 SHA512 68f0c4de38ae05c45839fe692cbb7de641e331ca133b8aaaf69f3659dec15833cda95e6e074edb3a5b6b6d59b3fc5a4ee3589fff810707fe27417a25cd8a4c4d
7
-DIST httpd-2.4.29.tar.bz2 6567926 BLAKE2B 01a83212941abad548f73fc144f9731ff51e0ed8f975e76cb994247601f7c2f89a3f862e011638afb77988eda0ef2b543634fb6bc45b583e9bdba2c30e565731 SHA512 840982fd3d21463bc5c1747f211dfacf3abdf634d149e49bb49fd2e5deda140de602dbdf31e1bbe5337a48f718ab2261c408e83a8dd39a9291ee7b6b7a85639a
6
+DIST gentoo-apache-2.4.18-r1-20160303.tar.bz2 24505 SHA256 d81e32d876594b48a7ff6d9123bf776c5bea5453eddd2fe40f4a9b79c11537aa SHA512 68f0c4de38ae05c45839fe692cbb7de641e331ca133b8aaaf69f3659dec15833cda95e6e074edb3a5b6b6d59b3fc5a4ee3589fff810707fe27417a25cd8a4c4d WHIRLPOOL fb61224b2104e611237e1d09eb4dfb3d2b8f023348c9622f7f19434b6b77d63786c41af17a300d994c14d983676f3753ab6fa52f7a7fcd07b9cea3d7eeacc9b9
7
+DIST httpd-2.4.29.tar.bz2 6567926 SHA256 777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00 SHA512 840982fd3d21463bc5c1747f211dfacf3abdf634d149e49bb49fd2e5deda140de602dbdf31e1bbe5337a48f718ab2261c408e83a8dd39a9291ee7b6b7a85639a WHIRLPOOL bd91e3baa3c2b25cb6a4e48062c38a97f9c941884be2e44805a3a08e1fdfb13bf18b37b6c7ab9e7656934f2d3b8c2893e79480ee119f073bfbb376b6c3e32a74
8
+EBUILD apache-2.4.29-r1.ebuild 7953 SHA256 25c041488fd615e663a492102a90483edd5ea8ebc471c2f1bcb30df70449601a SHA512 a22b83ded457a0a6b643b5b9dc2a43d2e888377068a4e70c387820fa3765b5b44ecc93b1bd76b3c37d5d0e173940938f9b3c3249438fc94a6a1dcc563245e7f0 WHIRLPOOL 731a10161d13a9606f59aa6d49104614f7047855e1d31f5646ea92d36ccc19d0d22c8ad0c9d0d8d00c321b625d552b1b7be13b16339d85cfe45eb5fed2cacba5
8 9
 EBUILD apache-2.4.29.ebuild 7842 SHA256 6c5fb700858717e6a734f342f674893fb4b84d96dce68d2435d4ed12146ca5cd SHA512 2c61b30123461105ad212ab3b184cc3c13e7dc321cdbf80e384f630fe576fa903cda14571719d766989f835c797d8f9850d665049d8e942de03682414800bee2 WHIRLPOOL 9b88bfd054ae560c0e9870adc53c82b50ec47d3e3f99bb0664e1d04a5992e7788aee90d80c1397b401189320afaf3d07ef0ff6f27ce18bfa06a7aa341967c5ba
9 10
 MISC metadata.xml 3475 SHA256 22be8b853799e928c03d136ad6da773f7518e45176183a50360784509b69a243 SHA512 3f27045fba988cb5bb5b4a7c19dd7bbcbd50f7e8de00edd8e153b24246263a90e355aa38fa050044c023f5a180af3559b0be708c414eae6d5e895e982629a8d9 WHIRLPOOL ed14e0cd50bf9b92abe4b25b8617065ca9282d2fd8c9a0ff851cdc047be98c62548e8c9967bfb700c940e2dc9ee18d2c5b44938a7a78b666590d4c9ddb975ac0
10 11
new file mode 100644
... ...
@@ -0,0 +1,245 @@
1
+# Copyright 1999-2018 Gentoo Foundation
2
+# Distributed under the terms of the GNU General Public License v2
3
+
4
+EAPI=6
5
+
6
+PATCHES=( "${FILESDIR}/apache-2.4.29-fix-http2-scheduling.patch" )
7
+
8
+# latest gentoo apache files
9
+GENTOO_PATCHSTAMP="20160303"
10
+GENTOO_DEVELOPER="polynomial-c"
11
+GENTOO_PATCHNAME="gentoo-apache-2.4.18-r1"
12
+
13
+# IUSE/USE_EXPAND magic
14
+IUSE_MPMS_FORK="prefork"
15
+IUSE_MPMS_THREAD="event worker"
16
+
17
+# << obsolete modules:
18
+# authn_default authz_default mem_cache
19
+# mem_cache is replaced by cache_disk
20
+# ?? buggy modules
21
+# proxy_scgi: startup error: undefined symbol "ap_proxy_release_connection", no fix found
22
+# >> added modules for reason:
23
+# compat: compatibility with 2.2 access control
24
+# authz_host: new module for access control
25
+# authn_core: functionality provided by authn_alias in previous versions
26
+# authz_core: new module, provides core authorization capabilities
27
+# cache_disk: replacement for mem_cache
28
+# lbmethod_byrequests: Split off from mod_proxy_balancer in 2.3
29
+# lbmethod_bytraffic: Split off from mod_proxy_balancer in 2.3
30
+# lbmethod_bybusyness: Split off from mod_proxy_balancer in 2.3
31
+# lbmethod_heartbeat: Split off from mod_proxy_balancer in 2.3
32
+# slotmem_shm: Slot-based shared memory provider (for lbmethod_byrequests).
33
+# socache_shmcb: shared object cache provider. Default config with ssl needs it
34
+# unixd: fixes startup error: Invalid command 'User'
35
+IUSE_MODULES="access_compat actions alias asis auth_basic auth_digest
36
+authn_alias authn_anon authn_core authn_dbd authn_dbm authn_file authz_core
37
+authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex
38
+brotli cache cache_disk cache_socache cern_meta charset_lite cgi cgid dav dav_fs dav_lock
39
+dbd deflate dir dumpio env expires ext_filter file_cache filter headers http2
40
+ident imagemap include info lbmethod_byrequests lbmethod_bytraffic lbmethod_bybusyness
41
+lbmethod_heartbeat log_config log_forensic logio macro mime mime_magic negotiation
42
+proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_html proxy_http proxy_scgi
43
+proxy_fcgi  proxy_wstunnel rewrite ratelimit remoteip reqtimeout setenvif
44
+slotmem_shm speling socache_shmcb status substitute unique_id userdir usertrack
45
+unixd version vhost_alias watchdog xml2enc"
46
+# The following are also in the source as of this version, but are not available
47
+# for user selection:
48
+# bucketeer case_filter case_filter_in echo http isapi optional_fn_export
49
+# optional_fn_import optional_hook_export optional_hook_import
50
+
51
+# inter-module dependencies
52
+# TODO: this may still be incomplete
53
+MODULE_DEPENDS="
54
+	brotli:filter
55
+	dav_fs:dav
56
+	dav_lock:dav
57
+	deflate:filter
58
+	cache_disk:cache
59
+	ext_filter:filter
60
+	file_cache:cache
61
+	lbmethod_byrequests:proxy_balancer
62
+	lbmethod_byrequests:slotmem_shm
63
+	lbmethod_bytraffic:proxy_balancer
64
+	lbmethod_bybusyness:proxy_balancer
65
+	lbmethod_heartbeat:proxy_balancer
66
+	log_forensic:log_config
67
+	logio:log_config
68
+	cache_disk:cache
69
+	cache_socache:cache
70
+	mime_magic:mime
71
+	proxy_ajp:proxy
72
+	proxy_balancer:proxy
73
+	proxy_balancer:slotmem_shm
74
+	proxy_connect:proxy
75
+	proxy_ftp:proxy
76
+	proxy_html:proxy
77
+	proxy_html:xml2enc
78
+	proxy_http:proxy
79
+	proxy_scgi:proxy
80
+	proxy_fcgi:proxy
81
+	proxy_wstunnel:proxy
82
+	substitute:filter
83
+"
84
+
85
+# module<->define mappings
86
+MODULE_DEFINES="
87
+	auth_digest:AUTH_DIGEST
88
+	authnz_ldap:AUTHNZ_LDAP
89
+	cache:CACHE
90
+	cache_disk:CACHE
91
+	cache_socache:CACHE
92
+	dav:DAV
93
+	dav_fs:DAV
94
+	dav_lock:DAV
95
+	file_cache:CACHE
96
+	http2:HTTP2
97
+	info:INFO
98
+	ldap:LDAP
99
+	proxy:PROXY
100
+	proxy_ajp:PROXY
101
+	proxy_balancer:PROXY
102
+	proxy_connect:PROXY
103
+	proxy_ftp:PROXY
104
+	proxy_html:PROXY
105
+	proxy_http:PROXY
106
+	proxy_fcgi:PROXY
107
+	proxy_scgi:PROXY
108
+	proxy_wstunnel:PROXY
109
+	socache_shmcb:SSL
110
+	ssl:SSL
111
+	status:STATUS
112
+	suexec:SUEXEC
113
+	userdir:USERDIR
114
+"
115
+
116
+# critical modules for the default config
117
+MODULE_CRITICAL="
118
+	authn_core
119
+	authz_core
120
+	authz_host
121
+	dir
122
+	mime
123
+	unixd
124
+"
125
+inherit eutils apache-2 systemd toolchain-funcs
126
+
127
+DESCRIPTION="The Apache Web Server"
128
+HOMEPAGE="https://httpd.apache.org/"
129
+
130
+# some helper scripts are Apache-1.1, thus both are here
131
+LICENSE="Apache-2.0 Apache-1.1"
132
+SLOT="2"
133
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x64-macos ~x86-macos ~m68k-mint ~sparc64-solaris ~x64-solaris"
134
+
135
+CDEPEND="apache2_modules_brotli? ( >=app-arch/brotli-0.6.0:= )
136
+	apache2_modules_http2? ( >=net-libs/nghttp2-1.2.1 )"
137
+
138
+DEPEND+="${CDEPEND}"
139
+RDEPEND+="${CDEPEND}"
140
+
141
+REQUIRED_USE="apache2_modules_http2? ( ssl )"
142
+
143
+pkg_setup() {
144
+	# dependend critical modules which are not allowed in global scope due
145
+	# to USE flag conditionals (bug #499260)
146
+	use ssl && MODULE_CRITICAL+=" socache_shmcb"
147
+	use doc && MODULE_CRITICAL+=" alias negotiation setenvif"
148
+	apache-2_pkg_setup
149
+}
150
+
151
+src_configure() {
152
+	# Brain dead check.
153
+	tc-is-cross-compiler && export ap_cv_void_ptr_lt_long="no"
154
+
155
+	apache-2_src_configure
156
+}
157
+
158
+src_compile() {
159
+	if tc-is-cross-compiler; then
160
+		# This header is the same across targets, so use the build compiler.
161
+		pushd server >/dev/null
162
+		emake gen_test_char
163
+		tc-export_build_env BUILD_CC
164
+		${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} \
165
+			gen_test_char.c -o gen_test_char $(apr-1-config --includes) || die
166
+		popd >/dev/null
167
+	fi
168
+
169
+	default
170
+}
171
+
172
+src_install() {
173
+	apache-2_src_install
174
+	for i in /usr/bin/{htdigest,logresolve,htpasswd,htdbm,ab,httxt2dbm}; do
175
+		rm "${ED}"/$i || die "Failed to prune apache-tools bits"
176
+	done
177
+	for i in /usr/share/man/man8/{rotatelogs.8,htcacheclean.8}; do
178
+		rm "${ED}"/$i || die "Failed to prune apache-tools bits"
179
+	done
180
+	for i in /usr/share/man/man1/{logresolve.1,htdbm.1,htdigest.1,htpasswd.1,dbmmanage.1,ab.1}; do
181
+		rm "${ED}"/$i || die "Failed to prune apache-tools bits"
182
+	done
183
+	for i in /usr/sbin/{checkgid,fcgistarter,htcacheclean,rotatelogs}; do
184
+		rm "${ED}/"$i || die "Failed to prune apache-tools bits"
185
+	done
186
+
187
+	# install apxs in /usr/bin (bug #502384) and put a symlink into the
188
+	# old location until all ebuilds and eclasses have been modified to
189
+	# use the new location.
190
+	local apxs="/usr/bin/apxs"
191
+	cp "${S}"/support/apxs "${ED%/}/${apxs}" || die "Failed to install apxs"
192
+	ln -s ../bin/apxs "${ED%/}/usr/sbin/apxs" || die
193
+	chmod 0755 "${ED%/}${apxs}" || die
194
+
195
+	# Note: wait for mod_systemd to be included in some forthcoming release,
196
+	# Then apache2.4.service can be used and systemd support controlled
197
+	# through --enable-systemd
198
+	systemd_newunit "${FILESDIR}/apache2.2-hardened.service" "apache2.service"
199
+	systemd_dotmpfilesd "${FILESDIR}/apache.conf"
200
+	#insinto /etc/apache2/modules.d
201
+	#doins "${FILESDIR}/00_systemd.conf"
202
+
203
+	# Install http2 module config
204
+	insinto /etc/apache2/modules.d
205
+	doins "${FILESDIR}"/41_mod_http2.conf
206
+}
207
+
208
+pkg_postinst() {
209
+	apache-2_pkg_postinst || die "apache-2_pkg_postinst failed"
210
+	# warnings that default config might not work out of the box
211
+	for mod in $MODULE_CRITICAL; do
212
+		if ! use "apache2_modules_${mod}"; then
213
+			echo
214
+			ewarn "Warning: Critical module not installed!"
215
+			ewarn "Modules 'authn_core', 'authz_core' and 'unixd'"
216
+			ewarn "are highly recomended but might not be in the base profile yet."
217
+			ewarn "Default config for ssl needs module 'socache_shmcb'."
218
+			ewarn "Enabling the following flags is highly recommended:"
219
+			for cmod in $MODULE_CRITICAL; do
220
+				use "apache2_modules_${cmod}" || \
221
+					ewarn "+ apache2_modules_${cmod}"
222
+			done
223
+			echo
224
+			break
225
+		fi
226
+	done
227
+	# warning for proxy_balancer and missing load balancing scheduler
228
+	if use apache2_modules_proxy_balancer; then
229
+		local lbset=
230
+		for mod in lbmethod_byrequests lbmethod_bytraffic lbmethod_bybusyness lbmethod_heartbeat; do
231
+			if use "apache2_modules_${mod}"; then
232
+				lbset=1 && break
233
+			fi
234
+		done
235
+		if [ ! ${lbset} ] ; then
236
+			echo
237
+			ewarn "Info: Missing load balancing scheduler algorithm module"
238
+			ewarn "(They were split off from proxy_balancer in 2.3)"
239
+			ewarn "In order to get the ability of load balancing, at least"
240
+			ewarn "one of these modules has to be present:"
241
+			ewarn "lbmethod_byrequests lbmethod_bytraffic lbmethod_bybusyness lbmethod_heartbeat"
242
+			echo
243
+		fi
244
+	fi
245
+}