summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-php/snuffleupagus/snuffleupagus-0.7.1-r1.ebuild')
-rw-r--r--dev-php/snuffleupagus/snuffleupagus-0.7.1-r1.ebuild74
1 files changed, 74 insertions, 0 deletions
diff --git a/dev-php/snuffleupagus/snuffleupagus-0.7.1-r1.ebuild b/dev-php/snuffleupagus/snuffleupagus-0.7.1-r1.ebuild
new file mode 100644
index 000000000000..d18383730d41
--- /dev/null
+++ b/dev-php/snuffleupagus/snuffleupagus-0.7.1-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2022 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"
+
+USE_PHP="php7-4 php8-0"
+
+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
+ 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."
+}