forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug: https://bugs.gentoo.org/935296 Signed-off-by: Hans de Graaff <[email protected]>
- Loading branch information
Showing
2 changed files
with
259 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
DIST gentoo-apache-2.4.58-20231019.tar.bz2 26224 BLAKE2B 370f36dcbe9d10ed0dd415c2e28016c7897246b5c3f830e849e765c18a08be145c8a363f122dff2c4b8d5b1e53ff504a79d7512a58135899a539136b580524ed SHA512 60f68eb4168a86ee33525e7c90cf5af8da586ed31d12cc294ea6bf3bcb9f254ea7e1a4ca5db4846a0e92b97c1326f095aa3a9d5fdb9ed92c1c4726c5a825ab36 | ||
DIST gentoo-apache-2.4.59-20240405.tar.bz2 26196 BLAKE2B 370b0264756c950ed36a0b9abe144742f0638ca616b347ce252fcc8c8cbf326422883771f33f822e03792cf37cb4cea8f95180c989e9a7ed868e2f235c642dca SHA512 cb312c632026d06cdce4e4fc2eb3a51366a8b63782878673781840774b46a72c7e756f9fa3d49aecbfcdbaf939a23a65146358f8523edb5a89ed97fd8b3a79c1 | ||
DIST gentoo-apache-2.4.59-r3-20240511.tar.bz2 31426 BLAKE2B 741b9b76c8fc9a3ae31a5054123e78a47414c5308aefc014ce6ec1ec2cbcf9dea50c5ea0d3b0291132c0b2bd40450ba9480feee279c9f162ef3d8ef75f5025e4 SHA512 b1d4099c2288099493a6baff58127a8b2605bdacf62a66dc5d2ee27368dea81bf8fea2fe878d26c073610ef6bda1c7c0783c1a4af01c0208957abed908cb1df6 | ||
DIST gentoo-apache-2.4.60-20240701.tar.bz2 26237 BLAKE2B a6f53dcb9d3837fbf590963c7512ee4e0fc89216642f9f0a5822fb20661b9a32f3ad6f54d476cc03a25daba15f58e583b9f004877329796b935dac7fd74110bc SHA512 65f6721eccd93f3abda2dd4548050f54aaa2e1a05f90e975fa668e9f7cb6fff0332dc92a50c42e48ed97baa53a76b242bab9f2a09151e541fdfedf22a7a63beb | ||
DIST httpd-2.4.58.tar.bz2 7485817 BLAKE2B 2105b8fada99f1dda55201ed89ed5326f0edb078d352cbff44f02cde80d129b65b63e07366a9a744ba474be5687fa8d3d2d8ddc64ac914b47166607f3f4a9de2 SHA512 d6e73bf413a507ec16b621ff635e178206207a9e9810ce3944b3dc98d39cde8f225307110167fc9da5822175796c8cb66f98be5b9f0d8b76dcd83a401d39b2c1 | ||
DIST httpd-2.4.59.tar.bz2 7503198 BLAKE2B 836e3538a120d71c016149397a4efd61ae6acd8a8fb9d2ce117c7d86209c4b40c0be3c464007891f28c58182e9d40a8793abe9e94e642354492954af91d9878c SHA512 209da0bbac5e2564d4590302515b35495be6402273ff4024aa93e85e44554c95e053201d606383936425a41e1b5b97e6b40055dcbb385eb691a5029a6f3158c2 | ||
DIST httpd-2.4.60.tar.bz2 7508704 BLAKE2B d1b4d2e05edfe8b88f541e6fa8b5db73f37cc349a4037b493e57ae2f2e0bb84f92aad3ad3bc0bdbc454d2677091bbca283ebe752a9335fae6931ec65cc687326 SHA512 c1591389f76699beaa5d32b019729e25f1ed5b828311c82b52f1a4edd5d28b73e697958df384d7628b314521a831dbb0af418bc37cdf031cfe133e53c195d8ad |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,257 @@ | ||
# Copyright 1999-2024 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
# latest gentoo apache files | ||
GENTOO_PATCHSTAMP="20240701" | ||
GENTOO_DEVELOPER="graaff" | ||
GENTOO_PATCHNAME="gentoo-apache-2.4.60" | ||
|
||
# IUSE/USE_EXPAND magic | ||
IUSE_MPMS_FORK="prefork" | ||
IUSE_MPMS_THREAD="event worker" | ||
|
||
# << obsolete modules: | ||
# authn_default authz_default mem_cache | ||
# mem_cache is replaced by cache_disk | ||
# ?? buggy modules | ||
# proxy_scgi: startup error: undefined symbol "ap_proxy_release_connection", no fix found | ||
# >> added modules for reason: | ||
# compat: compatibility with 2.2 access control | ||
# authz_host: new module for access control | ||
# authn_core: functionality provided by authn_alias in previous versions | ||
# authz_core: new module, provides core authorization capabilities | ||
# cache_disk: replacement for mem_cache | ||
# lbmethod_byrequests: Split off from mod_proxy_balancer in 2.3 | ||
# lbmethod_bytraffic: Split off from mod_proxy_balancer in 2.3 | ||
# lbmethod_bybusyness: Split off from mod_proxy_balancer in 2.3 | ||
# lbmethod_heartbeat: Split off from mod_proxy_balancer in 2.3 | ||
# slotmem_shm: Slot-based shared memory provider (for lbmethod_byrequests). | ||
# socache_shmcb: shared object cache provider. Default config with ssl needs it | ||
# unixd: fixes startup error: Invalid command 'User' | ||
IUSE_MODULES="access_compat actions alias allowmethods asis auth_basic auth_digest auth_form | ||
authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authz_core | ||
authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex | ||
brotli cache cache_disk cache_socache cern_meta charset_lite cgi cgid dav dav_fs dav_lock | ||
dbd deflate dir dumpio env expires ext_filter file_cache filter headers http2 | ||
ident imagemap include info lbmethod_byrequests lbmethod_bytraffic lbmethod_bybusyness | ||
lbmethod_heartbeat log_config log_forensic logio lua macro md mime mime_magic negotiation | ||
proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_hcheck proxy_html proxy_http proxy_scgi | ||
proxy_http2 proxy_fcgi proxy_uwsgi proxy_wstunnel rewrite ratelimit remoteip reqtimeout | ||
session session_cookie session_crypto session_dbd setenvif slotmem_shm socache_memcache | ||
socache_shmcb speling status substitute systemd tls unique_id userdir usertrack | ||
unixd version vhost_alias watchdog xml2enc" | ||
# The following are also in the source as of this version, but are not available | ||
# for user selection: | ||
# bucketeer case_filter case_filter_in echo http isapi optional_fn_export | ||
# optional_fn_import optional_hook_export optional_hook_import | ||
|
||
# inter-module dependencies | ||
# TODO: this may still be incomplete | ||
MODULE_DEPENDS=" | ||
auth_form:session | ||
brotli:filter | ||
dav_fs:dav | ||
dav_lock:dav | ||
deflate:filter | ||
cache_disk:cache | ||
ext_filter:filter | ||
file_cache:cache | ||
lbmethod_byrequests:proxy_balancer | ||
lbmethod_byrequests:slotmem_shm | ||
lbmethod_bytraffic:proxy_balancer | ||
lbmethod_bybusyness:proxy_balancer | ||
lbmethod_heartbeat:proxy_balancer | ||
log_forensic:log_config | ||
logio:log_config | ||
cache_disk:cache | ||
cache_socache:cache | ||
md:watchdog | ||
mime_magic:mime | ||
proxy_ajp:proxy | ||
proxy_balancer:proxy | ||
proxy_balancer:slotmem_shm | ||
proxy_connect:proxy | ||
proxy_ftp:proxy | ||
proxy_hcheck:proxy | ||
proxy_hcheck:watchdog | ||
proxy_html:proxy | ||
proxy_html:xml2enc | ||
proxy_http:proxy | ||
proxy_http2:proxy | ||
proxy_scgi:proxy | ||
proxy_uwsgi:proxy | ||
proxy_fcgi:proxy | ||
proxy_wstunnel:proxy | ||
session_cookie:session | ||
session_dbd:dbd | ||
session_dbd:session | ||
socache_memcache:cache | ||
substitute:filter | ||
" | ||
|
||
# module<->define mappings | ||
MODULE_DEFINES=" | ||
auth_digest:AUTH_DIGEST | ||
authnz_ldap:AUTHNZ_LDAP | ||
cache:CACHE | ||
cache_disk:CACHE | ||
cache_socache:CACHE | ||
dav:DAV | ||
dav_fs:DAV | ||
dav_lock:DAV | ||
file_cache:CACHE | ||
http2:HTTP2 | ||
info:INFO | ||
ldap:LDAP | ||
lua:LUA | ||
md:SSL | ||
proxy:PROXY | ||
proxy_ajp:PROXY | ||
proxy_balancer:PROXY | ||
proxy_connect:PROXY | ||
proxy_fcgi:PROXY | ||
proxy_ftp:PROXY | ||
proxy_hcheck:PROXY | ||
proxy_html:PROXY | ||
proxy_http:PROXY | ||
proxy_http2:PROXY | ||
proxy_scgi:PROXY | ||
proxy_uwsgi:PROXY | ||
proxy_wstunnel:PROXY | ||
socache_shmcb:SSL | ||
socache_memcache:CACHE | ||
ssl:SSL | ||
status:STATUS | ||
suexec:SUEXEC | ||
systemd:SYSTEMD | ||
userdir:USERDIR | ||
" | ||
|
||
# critical modules for the default config | ||
MODULE_CRITICAL=" | ||
authn_core | ||
authz_core | ||
authz_host | ||
dir | ||
mime | ||
unixd | ||
" | ||
inherit apache-2 systemd tmpfiles toolchain-funcs | ||
|
||
DESCRIPTION="The Apache Web Server" | ||
HOMEPAGE="https://httpd.apache.org/" | ||
|
||
# some helper scripts are Apache-1.1, thus both are here | ||
LICENSE="Apache-2.0 Apache-1.1" | ||
SLOT="2" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x64-macos ~x64-solaris" | ||
|
||
RDEPEND=" | ||
apache2_modules_tls? ( >=net-libs/rustls-ffi-0.13.0:= ) | ||
" | ||
DEPEND="${RDEPEND}" | ||
|
||
pkg_setup() { | ||
# dependent critical modules which are not allowed in global scope due | ||
# to USE flag conditionals (bug #499260) | ||
use ssl && MODULE_CRITICAL+=" socache_shmcb" | ||
use doc && MODULE_CRITICAL+=" alias negotiation setenvif" | ||
apache-2_pkg_setup | ||
} | ||
|
||
src_configure() { | ||
# Brain dead check. | ||
tc-is-cross-compiler && export ap_cv_void_ptr_lt_long="no" | ||
|
||
apache-2_src_configure | ||
} | ||
|
||
src_compile() { | ||
if tc-is-cross-compiler ; then | ||
# This header is the same across targets, so use the build compiler. | ||
pushd server >/dev/null | ||
emake gen_test_char | ||
tc-export_build_env BUILD_CC | ||
${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} \ | ||
gen_test_char.c -o gen_test_char $(apr-1-config --includes) || die | ||
popd >/dev/null | ||
fi | ||
|
||
default | ||
} | ||
|
||
src_install() { | ||
apache-2_src_install | ||
local i | ||
local apache_tools_prune_list=( | ||
/usr/bin/{htdigest,logresolve,htpasswd,htdbm,ab,httxt2dbm} | ||
/usr/sbin/{checkgid,fcgistarter,htcacheclean,rotatelogs} | ||
/usr/share/man/man1/{logresolve.1,htdbm.1,htdigest.1,htpasswd.1,dbmmanage.1,ab.1} | ||
/usr/share/man/man8/{rotatelogs.8,htcacheclean.8} | ||
) | ||
for i in ${apache_tools_prune_list[@]} ; do | ||
rm "${ED}"/${i} || die "Failed to prune apache-tools bits" | ||
done | ||
|
||
dobin support/apxs | ||
|
||
# Note: wait for mod_systemd to be included in some forthcoming release, | ||
# Then apache2.4.service can be used and systemd support controlled | ||
# through --enable-systemd | ||
systemd_newunit "${FILESDIR}/apache2.4-hardened.service" "apache2.service" | ||
dotmpfiles "${FILESDIR}/apache.conf" | ||
#insinto /etc/apache2/modules.d | ||
#doins "${FILESDIR}/00_systemd.conf" | ||
|
||
# Install http2 module config | ||
insinto /etc/apache2/modules.d | ||
doins "${FILESDIR}"/41_mod_http2.conf | ||
|
||
# Fix path to apache libdir | ||
sed "s|@LIBDIR@|$(get_libdir)|" -i "${ED}"/usr/sbin/apache2ctl || die | ||
} | ||
|
||
pkg_postinst() { | ||
apache-2_pkg_postinst || die "apache-2_pkg_postinst failed" | ||
|
||
tmpfiles_process apache.conf #662544 | ||
|
||
# warnings that default config might not work out of the box | ||
local mod cmod | ||
for mod in ${MODULE_CRITICAL} ; do | ||
if ! use "apache2_modules_${mod}"; then | ||
echo | ||
ewarn "Warning: Critical module not installed!" | ||
ewarn "Modules 'authn_core', 'authz_core' and 'unixd'" | ||
ewarn "are highly recomended but might not be in the base profile yet." | ||
ewarn "Default config for ssl needs module 'socache_shmcb'." | ||
ewarn "Enabling the following flags is highly recommended:" | ||
for cmod in ${MODULE_CRITICAL} ; do | ||
use "apache2_modules_${cmod}" || \ | ||
ewarn "+ apache2_modules_${cmod}" | ||
done | ||
echo | ||
break | ||
fi | ||
done | ||
# warning for proxy_balancer and missing load balancing scheduler | ||
if use apache2_modules_proxy_balancer; then | ||
local lbset= | ||
for mod in lbmethod_byrequests lbmethod_bytraffic lbmethod_bybusyness lbmethod_heartbeat; do | ||
if use "apache2_modules_${mod}"; then | ||
lbset=1 && break | ||
fi | ||
done | ||
if [[ ! ${lbset} ]] ; then | ||
echo | ||
ewarn "Info: Missing load balancing scheduler algorithm module" | ||
ewarn "(They were split off from proxy_balancer in 2.3)" | ||
ewarn "In order to get the ability of load balancing, at least" | ||
ewarn "one of these modules has to be present:" | ||
ewarn "lbmethod_byrequests lbmethod_bytraffic lbmethod_bybusyness lbmethod_heartbeat" | ||
echo | ||
fi | ||
fi | ||
} |