mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-17 02:39:08 -07:00
www-apache/mod_perl: fix modern C issue
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
43
www-apache/mod_perl/files/mod_perl-2.0.13-c99.patch
Normal file
43
www-apache/mod_perl/files/mod_perl-2.0.13-c99.patch
Normal file
@@ -0,0 +1,43 @@
|
||||
https://github.com/apache/mod_perl/commit/ead5012b9f8bca08415f39e15226dbc6112a9538
|
||||
|
||||
From ead5012b9f8bca08415f39e15226dbc6112a9538 Mon Sep 17 00:00:00 2001
|
||||
From: Joe Orton <jorton@apache.org>
|
||||
Date: Tue, 6 Feb 2024 08:33:52 +0000
|
||||
Subject: [PATCH] * src/modules/perl/modperl_common_util.c
|
||||
(modperl_table_magic_copy): Use I32 rather than int for 'namelen' argument,
|
||||
fixing an incompatible function pointer error/warning in a 32-bit build:
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
modperl_common_util.c:57:53: error: initialization of ‘int (*)(PerlInterpreter *, SV *, MAGIC *, SV *, const char *, I32)’ {aka ‘int (*)(struct interpreter *, struct sv *, struct magic *, struct sv *, const char *, long int)’} from incompatible pointer type ‘int (*)(PerlInterpreter *, SV *, MAGIC *, SV *, const char *, int)’ {aka ‘int (*)(struct interpreter *, struct sv *, struct magic *, struct sv *, const char *, int)’} [-Wincompatible-pointer-types]
|
||||
57 | modperl_table_magic_copy};
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Checked back to Perl 5.14.x which has I32 (a typedef of long int on
|
||||
i686) rather than int in the prototype for the svt_copy function
|
||||
pointer in MGVTBL, so I32 appears to have been always correct here:
|
||||
|
||||
int (*svt_copy)(SV *sv, MAGIC* mg, SV *nsv, const char *name, I32 namlen);
|
||||
|
||||
per https://perldoc.perl.org/5.14.0/perlguts
|
||||
|
||||
|
||||
git-svn-id: https://svn.apache.org/repos/asf/perl/modperl/trunk@1915593 13f79535-47bb-0310-9956-ffa450edef68
|
||||
---
|
||||
src/modules/perl/modperl_common_util.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/modules/perl/modperl_common_util.c b/src/modules/perl/modperl_common_util.c
|
||||
index c5f285f9d..461750f2f 100644
|
||||
--- a/src/modules/perl/modperl_common_util.c
|
||||
+++ b/src/modules/perl/modperl_common_util.c
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
MP_INLINE static
|
||||
int modperl_table_magic_copy(pTHX_ SV *sv, MAGIC *mg, SV *nsv,
|
||||
- const char *name, int namelen)
|
||||
+ const char *name, I32 namelen)
|
||||
{
|
||||
/* prefetch the value whenever we're iterating over the keys */
|
||||
MAGIC *tie_magic = mg_find(nsv, PERL_MAGIC_tiedelem);
|
||||
144
www-apache/mod_perl/mod_perl-2.0.13-r2.ebuild
Normal file
144
www-apache/mod_perl/mod_perl-2.0.13-r2.ebuild
Normal file
@@ -0,0 +1,144 @@
|
||||
# Copyright 1999-2025 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 perl_features_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="
|
||||
perl_features_ithreads? ( || ( >=dev-lang/perl-5.38.2-r3[perl_features_ithreads] <dev-lang/perl-5.38.2-r3[ithreads] ) )
|
||||
!perl_features_ithreads? ( || ( >=dev-lang/perl-5.38.2-r3[-perl_features_ithreads] <dev-lang/perl-5.38.2-r3[-ithreads] ) )
|
||||
>=dev-perl/Apache-Test-1.420.0
|
||||
>=www-servers/apache-2.0.47
|
||||
>=dev-libs/apr-util-1.4
|
||||
!perl_features_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
|
||||
"${FILESDIR}"/${PN}-2.0.13-c99.patch
|
||||
)
|
||||
|
||||
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 perl_features_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
|
||||
}
|
||||
Reference in New Issue
Block a user