|
|
|
# Copyright 1999-2017 Gentoo Foundation
|
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
|
|
|
|
EAPI=5
|
|
|
|
|
|
|
|
inherit depend.apache apache-module perl-module eutils
|
|
|
|
|
|
|
|
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="alpha amd64 ~arm ppc ppc64 x86"
|
|
|
|
IUSE="debug ithreads test"
|
|
|
|
|
|
|
|
SRC_TEST=do
|
|
|
|
|
|
|
|
# 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.400.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}
|
|
|
|
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
|
|
|
|
)
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
perl-module_src_prepare
|
|
|
|
|
|
|
|
# chainsaw unbundling
|
|
|
|
rm -rf Apache-{Test,Reload,SizeLimit}/ lib/Bundle/ || die
|
|
|
|
}
|
|
|
|
|
|
|
|
src_configure() {
|
|
|
|
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 perl-module_src_test
|
|
|
|
}
|
|
|
|
|
|
|
|
src_install() {
|
|
|
|
apache-module_src_install
|
|
|
|
|
|
|
|
default
|
|
|
|
|
|
|
|
perl_delete_localpod
|
|
|
|
perl_delete_packlist
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|