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
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DIST_TEST=do
inherit depend.apache apache-module perl-module
DESCRIPTION="An embedded Perl interpreter for Apache2"
HOMEPAGE="https://perl.apache.org/ https://projects.apache.org/project.html?perl-mod_perl"
SRC_URI="mirror://apache/perl/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="1"
KEYWORDS="amd64 ~arm ppc ppc64 ~riscv x86"
IUSE="debug ithreads test"
RESTRICT="!test? ( test )"
# Apache::Reload, Apache::SizeLimit, and Apache::Test are force-unbundled.
# The minimum versions requested here are the bundled versions.
# The test dependencies are from CPAN (Bundle::Apache2).
# When all MPMs are disabled via useflags, the apache ebuild selects a
# default one, which will likely need threading.
RDEPEND="
dev-lang/perl[ithreads=]
>=dev-perl/Apache-Test-1.420.0
>=www-servers/apache-2.0.47
>=dev-libs/apr-util-1.4
!ithreads? ( www-servers/apache[-apache2_mpms_event,-apache2_mpms_worker,apache2_mpms_prefork] )
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-perl/Module-Build
test? (
>=dev-perl/CGI-3.110.0
dev-perl/Chatbot-Eliza
dev-perl/Devel-Symdump
dev-perl/HTML-Parser
dev-perl/IPC-Run3
dev-perl/libwww-perl
www-servers/apache[apache2_modules_version,-apache2_modules_unique_id]
!www-apache/mpm_itk
)
"
PDEPEND="
>=dev-perl/Apache-Reload-0.130.0
>=dev-perl/Apache-SizeLimit-0.970.0
"
APACHE2_MOD_FILE="${S}/src/modules/perl/mod_perl.so"
APACHE2_MOD_CONF="2.0.3/75_${PN}"
APACHE2_MOD_DEFINE="PERL"
need_apache2
PATCHES=(
"${FILESDIR}"/${PN}-2.0.1-sneak-tmpdir.patch # seems to fix the make test problem
"${FILESDIR}"/${PN}-2.0.4-inline.patch # 550244
"${FILESDIR}"/${PN}-2.0.10_rc1-bundled-Apache-Test.patch # 352724
"${FILESDIR}"/${PN}-2.0.10_rc1-Gentoo-not-Unix.patch
"${FILESDIR}"/${PN}-2.0.11-ranlib.patch # 728554
)
src_prepare() {
perl-module_src_prepare
# chainsaw unbundling
rm -rf Apache-{Test,Reload,SizeLimit}/ lib/Bundle/ || die
}
src_configure() {
_init_apache2_late
local debug=$(usex debug 1 0)
local nothreads=$(usex ithreads 0 1)
myconf=(
MP_USE_DSO=1
MP_APXS=${APXS}
MP_APR_CONFIG=/usr/bin/apr-1-config
MP_TRACE=${debug}
MP_DEBUG=${debug}
MP_NO_THREADS=${nothreads}
)
perl-module_src_configure
}
src_test() {
# make test notes whether it is running as root, and drops
# privileges all the way to "nobody" if so, so we must adjust
# write permissions accordingly in this case.
# IF YOU SUDO TO EMERGE AND HAVE !env_reset set testing will fail!
if [[ "$(id -u)" == "0" ]]; then
chown nobody:nobody "${WORKDIR}" "${T}" || die
fi
# We force verbose tests for now to get meaningful bug reports.
MAKEOPTS+=" -j1"
TMPDIR="${T}" HOME="${T}/" TEST_VERBOSE=1 LC_TIME=C perl-module_src_test
}
src_install() {
apache-module_src_install
default
perl_delete_localpod
perl_fix_packlist
perl_delete_emptybsdir
insinto "${APACHE_MODULES_CONFDIR}"
doins "${FILESDIR}"/2.0.3/apache2-mod_perl-startup.pl
# this is an attempt to get @INC in line with /usr/bin/perl.
# there is blib garbage in the mainstream one that can only be
# useful during internal testing, so we wait until here and then
# just go with a clean slate. should be much easier to see what's
# happening and revert if problematic.
perl_set_version
sed -i \
-e "s,-I${S}/[^[:space:]\"\']\+[[:space:]]\?,,g" \
-e "s,-typemap[[:space:]]${S}/[^[:space:]\"\']\+[[:space:]]\?,,g" \
-e "s,${S}\(/[^[:space:]\"\']\+\)\?,/,g" \
"${D}/${VENDOR_ARCH}/Apache2/BuildConfig.pm" || die
local fname
for fname in $(find "${D}" -type f -not -name '*.so'); do
grep -q "\(${D}\|${S}\)" "${fname}" && ewarn "QA: File contains a temporary path ${fname}"
sed -i -e "s:\(${D}\|${S}\):/:g" ${fname} || die
done
perl_remove_temppath
}
pkg_postinst() {
apache-module_pkg_postinst
}
|