You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-php/snuffleupagus/snuffleupagus-0.8.3.ebuild

79 lines
2.3 KiB

# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PHP_EXT_NAME="${PN}"
PHP_EXT_INI="yes"
PHP_EXT_ZENDEXT="no"
PHP_EXT_ECONF_ARGS=( --enable-${PN} )
PHP_EXT_S="${S}/src"
PHP_EXT_NEEDED_USE="session(+)"
USE_PHP="php8-1"
inherit php-ext-source-r3
KEYWORDS="~amd64"
DESCRIPTION="A PHP module to drastically raise the cost of attacks against websites"
HOMEPAGE="https://snuffleupagus.readthedocs.io/index.html"
SRC_URI="https://github.com/jvoisin/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-3 PHP-3.01"
SLOT="0"
src_prepare() {
# fix file locations tests look for
ln -s "${P}/config" "${WORKDIR}/config" || die
# Fix path dependent tests
sed -i -e 's~src/tests/~~' \
src/tests/session_encryption/crypt_session_read_uncrypt.phpt || die
sed -i -e 's~%a/src~%a~' \
src/tests/disable_function/disabled_functions_runtime.phpt || die
# Fix bad test reference
sed -i -e 's~%src/~%s~' \
src/tests/deny_writable/deny_writable_execution_simulation.phpt || die
php-ext-source-r3_src_prepare
}
src_install() {
addtoinifile() {
local inifile="${WORKDIR}/${1}"
local inidir="${inifile%/*}"
mkdir -p "${inidir}" || die "failed to create INI directory ${inidir}"
local my_added="${2}=${3}"
echo "${my_added}" >> "${inifile}" || die "failed to append to ${inifile}"
einfo "Added '${my_added}' to /${1}"
insinto "/${1%/*}"
doins "${inifile}"
}
einstalldocs
local slot x cfgdir
php-ext-source-r3_src_install
# Add the rules file which vary by install version
for slot in $(php_get_slots); do
php_init_slot_env "${slot}"
for x in ${PHP_EXT_SAPIS} ; do
cfgdir="/etc/php/${x}-${slot}"
if [[ -f "${ED}${cfgdir}/ext/${PHP_INI_NAME}.ini" ]]; then
addtoinifile "${cfgdir#/}/ext/${PHP_INI_NAME}.ini" \
"sp.configuration_file" "${cfgdir}/${PN}.rules"
insinto "${cfgdir}"
case ${PHP_CURRENTSLOT:0:1} in
8) newins "${S}/config/default_php8.rules" "${PN}.rules" ;;
*) newins "${S}/config/default.rules" "${PN}.rules" ;;
esac
fi
done
done
}
pkg_postinst() {
elog "This extension is configured with recommended rules enabled by default."
elog "Feel free to customize as necessary. Please test outside of production first."
elog "Failure to test may cause unexpected results to loosely coded sites."
}