summaryrefslogtreecommitdiff
path: root/user/apache-httpd/APKBUILD
blob: 200d5e612c1ae149a903842a3b05ceeca56bf78c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house>
# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house>
pkgname=apache-httpd
_pkgreal=httpd
pkgver=2.4.58
pkgrel=0
pkgdesc="Open-source HTTP server"
url="https://httpd.apache.org"
arch="all"
license="Apache-2.0"
depends=""
install="$pkgname.pre-install $pkgname.pre-upgrade"
makedepends="apr-dev apr-util-dev autoconf automake libxml2-dev nghttp2-dev
	openssl-dev pcre-dev sed zlib-dev cmd:which"
pkgusers="apache"
pkggroups="apache"
subpackages="$pkgname-dev
             $pkgname-doc
	     $pkgname-http2
	     $pkgname-icons::noarch
	     $pkgname-ldap
	     $pkgname-openrc"
provides="apache2 apache2-ssl"
source="https://archive.apache.org/dist/httpd/httpd-$pkgver.tar.bz2
	adelie.layout
	apache-httpd.confd
	apache-httpd.initd
	apache-httpd.logrotate
	conf/httpd.conf
	conf/alias.conf
	conf/http2.conf
	conf/host.conf
	conf/proxy.conf
	conf/ssl.conf
	conf/userdir.conf"
builddir="$srcdir/$_pkgreal-$pkgver"
options="suid !check"

# secfixes: http_server
#   2.4.57-r0:
#     - CVE-2023-25690
#     - CVE-2023-27522
#   2.4.55-r0:
#     - CVE-2022-36760
#     - CVE-2022-37436
#   2.4.54-r0:
#     - CVE-2022-26377
#     - CVE-2022-28614
#     - CVE-2022-28615
#     - CVE-2022-29404
#     - CVE-2022-30522
#     - CVE-2022-30556
#     - CVE-2022-31813
#   2.4.52-r0:
#     - CVE-2020-13950
#     - CVE-2020-35452
#     - CVE-2021-26690
#     - CVE-2021-26691
#     - CVE-2021-30641
#     - CVE-2021-33193
#     - CVE-2021-34798
#     - CVE-2021-36160
#     - CVE-2021-39275
#     - CVE-2021-40438
#     - CVE-2021-44224
#     - CVE-2021-44790
#   2.4.46-r0:
#     - CVE-2020-9490
#     - CVE-2020-11984
#     - CVE-2020-11993
#   2.4.43-r0:
#     - CVE-2020-1934
#     - CVE-2020-1927
#   2.4.34-r0:
#     - CVE-2017-15710
#     - CVE-2017-15715
#     - CVE-2018-1283
#     - CVE-2018-1301
#     - CVE-2018-1302
#     - CVE-2018-1303
#     - CVE-2018-1312
#     - CVE-2018-1333
#     - CVE-2018-8011
#   2.4.41-r0:
#     - CVE-2019-9517
#     - CVE-2019-10081
#     - CVE-2019-10082
#     - CVE-2019-10092
#     - CVE-2019-10097
#     - CVE-2019-10098

prepare() {
	default_prepare
	cat "$srcdir"/adelie.layout >> "$builddir"/config.layout
	./buildconf \
		--with-apr=apr-1-config
}

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--enable-layout=Adelie \
		--enable-so \
		--with-mpm=event \
		--enable-mpms-shared="event prefork" \
		--enable-mods-shared=reallyall \
		--enable-ssl \
		--disable-lua \
		--enable-suexec \
		--with-suexec-caller=apache \
		--with-suexec-docroot=/srv/localhost \
		--with-suexec-logfile=/var/log/apache-httpd/suexec.log \
		--with-suexec-bin=/usr/sbin/suexec \
		--with-apr=/usr/bin/apr-1-config \
		--with-apr-util=/usr/bin/apu-1-config \
		--with-pcre=/usr
	make
}

package() {
	make DESTDIR="$pkgdir" -j1 install

	# apache-provided configuration is awful
	rm "$pkgdir"/etc/apache2/*.conf
	rm -r "$pkgdir"/etc/apache2/extra
	rm -r "$pkgdir"/etc/apache2/original
	install -Dm644 "$srcdir"/httpd.conf "$pkgdir"/etc/apache2/httpd.conf
	install -Dm644 "$srcdir"/alias.conf "$pkgdir"/etc/apache2/conf.d/alias.conf
	install -Dm644 "$srcdir"/http2.conf "$pkgdir"/etc/apache2/conf.d/http2.conf
	install -Dm644 "$srcdir"/host.conf "$pkgdir"/etc/apache2/sites.d/localhost.conf
	install -Dm644 "$srcdir"/proxy.conf "$pkgdir"/etc/apache2/conf.d/proxy.conf
	install -Dm644 "$srcdir"/ssl.conf   "$pkgdir"/etc/apache2/conf.d/ssl.conf
	install -Dm644 "$srcdir"/userdir.conf "$pkgdir"/etc/apache2/conf.d/userdir.conf

	# init & logrotate handling
	install -Dm755 "$srcdir"/apache-httpd.initd "$pkgdir"/etc/init.d/apache-httpd
	install -Dm644 "$srcdir"/apache-httpd.confd "$pkgdir"/etc/conf.d/apache-httpd
	install -Dm644 "$srcdir"/apache-httpd.logrotate "$pkgdir"/etc/logrotate.d/apache-httpd

	install -dm2750 -g wheel "$pkgdir"/var/log/apache2
}

dev() {
	default_dev
	depends="$depends perl apr-util-dev"
	install -d "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/apxs "$subpkgdir"/usr/bin
	install -d "$subpkgdir"/usr/share/apache2
	mv "$pkgdir"/usr/share/apache2/build "$subpkgdir"/usr/share/apache2
}

http2() {
	pkgdesc="Highly experimental protocol support for Apache HTTP server"
	local _file
	install -d "$subpkgdir"/etc/apache2/conf.d
	install -d "$subpkgdir"/usr/libexec/apache2

	for _file in etc/apache2/conf.d/http2.conf \
		usr/libexec/apache2/mod_proxy_http2.so \
		usr/libexec/apache2/mod_http2.so; do
		mv "$pkgdir"/$_file "$subpkgdir"/$_file
	done
}

icons() {
	pkgdesc="Public-domain icon pack for Apache HTTP server"
	install -d "$subpkgdir"/usr/share/apache2
	mv "$pkgdir"/usr/share/apache2/icons "$subpkgdir"/usr/share/apache2
}

ldap() {
	pkgdesc="LDAP authentication support for Apache HTTP server"
	install -d "$subpkgdir"/usr/libexec/apache2
	mv "$pkgdir"/usr/libexec/apache2/*_ldap.so \
		"$subpkgdir"/usr/libexec/apache2
}

sha512sums="d6e73bf413a507ec16b621ff635e178206207a9e9810ce3944b3dc98d39cde8f225307110167fc9da5822175796c8cb66f98be5b9f0d8b76dcd83a401d39b2c1  httpd-2.4.58.tar.bz2
c8bc2bb06ae51b0956e0ee673e80c444551c9b33dfcbb845106477c46d9e52786a8896022e1f00102264fecdf66e35e47fc6cf0abe9836fa536735cff4e6adf4  adelie.layout
336e81fa0d08f8fbe6243d52bd59b12cf2e925deb49b29d7a22953c5d40a951b6b753f51e5a396752cb0bbaf1cf25b1358902f375fb65639d00e62db7ae55ff2  apache-httpd.confd
5762d53f39ce7ecd730e05ddf6c063ede65cd75b9e7d67217784c80366646491ef9474306e8eb119c8fb5b4358407b07636a4e9cd82325d8df4e3e00dabc3459  apache-httpd.initd
18e8859c7d99c4483792a5fd20127873aad8fa396cafbdb6f2c4253451ffe7a1093a3859ce719375e0769739c93704c88897bd087c63e1ef585e26dcc1f5dd9b  apache-httpd.logrotate
927fd409221a6a632db6786f112e6e804f0e45adc2d4bc4754c84af9a2f8374b53816a9f493d9c870ecd6c5aeb365ee248d254aea1f7c2730efadd212a508d18  httpd.conf
83d57c57b809340bb07291c340ded5903ae55c0bba7c48e4eb0d27529ce4ecb6e235378ad770c69c8be2762b5346fa5bec94b6c585510719c37fe6addb33f998  alias.conf
7def0982bda42d5fe3a1812128be455fe0a47161f7fd0facd9ff85056f043a19f520bdb1c01b9f3fb25ddd66aa6224fb4b183f107bccd56719e0c7a88ad70bd9  http2.conf
9745ec511331b2ec399bf7895bc935f9c8526fd81d47cb17e42c1f5c010bbbea0b5ef2f2f4b12984dc8c77f410132010c3e73347a49ebe5feb0c1a763fe73a82  host.conf
905212b9107d71e4d64b338b1c1cf222f7a78979b928e7fa89b06620fbc010df00204a20aa22e69ed49682412d95ecc4e6abaafbb4cb043b31610d5b7a36ac00  proxy.conf
44f97ac0bab5122d409767af388046dfce5cad42ff18d79394f258546d3e578db334da4722cce4dc2ac03f9508a8b97587370cdede5e7678f02b9abc5dda88ee  ssl.conf
dd3c8fa9bc32a92c35df8728f6750fab8dd39be9e90e448a44a77efabc3e5516772607548856af520d4d5e8f2aff11f0b56d29db642e69ab72b1683e6aba5aed  userdir.conf"