From c2f936993e512259febd1361c64579350071301d Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 23 Jan 2022 00:50:14 +0000 Subject: net-analyzer/fail2ban: fix installation of .egg-info if tests used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Need to revbump as anyone who ran tests will have a dodgy installation of fail2ban. mgorny explains fully in the bug (and thanks to him for investigating this), but the gist is that the test runner sets umask but never unsets it/reverts it, so it ends up affecting the rest of the installed files by the package. Closes: https://bugs.gentoo.org/790251 Thanks-to: Michał Górny Signed-off-by: Sam James --- net-analyzer/fail2ban/fail2ban-0.11.2-r3.ebuild | 134 ----------------------- net-analyzer/fail2ban/fail2ban-0.11.2-r4.ebuild | 137 ++++++++++++++++++++++++ 2 files changed, 137 insertions(+), 134 deletions(-) delete mode 100644 net-analyzer/fail2ban/fail2ban-0.11.2-r3.ebuild create mode 100644 net-analyzer/fail2ban/fail2ban-0.11.2-r4.ebuild diff --git a/net-analyzer/fail2ban/fail2ban-0.11.2-r3.ebuild b/net-analyzer/fail2ban/fail2ban-0.11.2-r3.ebuild deleted file mode 100644 index 1390bc1bdc39..000000000000 --- a/net-analyzer/fail2ban/fail2ban-0.11.2-r3.ebuild +++ /dev/null @@ -1,134 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -DISTUTILS_SINGLE_IMPL=1 - -inherit bash-completion-r1 distutils-r1 systemd tmpfiles - -DESCRIPTION="Scans log files and bans IPs that show malicious signs" -HOMEPAGE="https://www.fail2ban.org/" -if [[ ${PV} == *9999 ]] ; then - EGIT_REPO_URI="https://github.com/${PN}/${PN}" - inherit git-r3 -else - SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="selinux systemd" - -RDEPEND=" - virtual/logger - virtual/mta - selinux? ( sec-policy/selinux-fail2ban ) - systemd? ( - $(python_gen_cond_dep ' - || ( - dev-python/python-systemd[${PYTHON_USEDEP}] - sys-apps/systemd[python(-),${PYTHON_USEDEP}] - )' 'python*' ) - ) -" - -DOCS=( ChangeLog DEVELOP README.md THANKS TODO doc/run-rootless.txt ) - -PATCHES=( - "${FILESDIR}"/${P}-fix-tests-for-2021.patch - "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch - "${FILESDIR}"/${P}-fix-2to3-usage.patch - "${FILESDIR}"/${P}-fix-systemd-test.patch - "${FILESDIR}"/${P}-fix-py3.10-collections.patch - "${FILESDIR}"/${P}-upstream-openrc.patch -) - -python_prepare_all() { - distutils-r1_python_prepare_all - - # Replace /var/run with /run, but not in the top source directory - find . -mindepth 2 -type f -exec \ - sed -i -e 's|/var\(/run/fail2ban\)|\1|g' {} + || die -} - -python_compile() { - ./fail2ban-2to3 || die - distutils-r1_python_compile -} - -python_test() { - bin/fail2ban-testcases \ - --no-network \ - --no-gamin \ - --verbosity=4 || die "Tests failed with ${EPYTHON}" -} - -python_install_all() { - distutils-r1_python_install_all - - rm -rf "${ED}"/usr/share/doc/${PN} "${ED}"/run || die - - newconfd files/fail2ban-openrc.conf ${PN} - - # These two are placed in the ${BUILD_DIR} after being "built" - # in install_scripts(). - newinitd "${BUILD_DIR}/fail2ban-openrc.init" "${PN}" - systemd_dounit "${BUILD_DIR}/${PN}.service" - - dotmpfiles files/${PN}-tmpfiles.conf - - doman man/*.{1,5} - - # Use INSTALL_MASK if you do not want to touch /etc/logrotate.d. - # See http://thread.gmane.org/gmane.linux.gentoo.devel/35675 - insinto /etc/logrotate.d - newins files/${PN}-logrotate ${PN} - - keepdir /var/lib/${PN} - - newbashcomp files/bash-completion ${PN}-client - bashcomp_alias ${PN}-client ${PN}-server ${PN}-regex -} - -pkg_preinst() { - has_version "<${CATEGORY}/${PN}-0.7" - previous_less_than_0_7=$? -} - -pkg_postinst() { - tmpfiles_process ${PN}-tmpfiles.conf - - if [[ ${previous_less_than_0_7} = 0 ]] ; then - elog - elog "Configuration files are now in /etc/fail2ban/" - elog "You probably have to manually update your configuration" - elog "files before restarting Fail2Ban!" - elog - elog "Fail2Ban is not installed under /usr/lib anymore. The" - elog "new location is under /usr/share." - elog - elog "You are upgrading from version 0.6.x, please see:" - elog "http://www.fail2ban.org/wiki/index.php/HOWTO_Upgrade_from_0.6_to_0.8" - fi - - if ! has_version dev-python/pyinotify && ! has_version app-admin/gamin ; then - elog "For most jail.conf configurations, it is recommended you install either" - elog "dev-python/pyinotify or app-admin/gamin (in order of preference)" - elog "to control how log file modifications are detected" - fi - - if ! has_version dev-lang/python[sqlite] ; then - elog "If you want to use ${PN}'s persistent database, then reinstall" - elog "dev-lang/python with USE=sqlite. If you do not use the" - elog "persistent database feature, then you should set" - elog "dbfile = :memory: in fail2ban.conf accordingly." - fi - - if has_version sys-apps/systemd[-python] ; then - elog "If you want to track logins through sys-apps/systemd's" - elog "journal backend, then reinstall sys-apps/systemd with USE=python" - fi -} diff --git a/net-analyzer/fail2ban/fail2ban-0.11.2-r4.ebuild b/net-analyzer/fail2ban/fail2ban-0.11.2-r4.ebuild new file mode 100644 index 000000000000..fe1a7dcfa4cb --- /dev/null +++ b/net-analyzer/fail2ban/fail2ban-0.11.2-r4.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +DISTUTILS_SINGLE_IMPL=1 + +inherit bash-completion-r1 distutils-r1 systemd tmpfiles + +DESCRIPTION="Scans log files and bans IPs that show malicious signs" +HOMEPAGE="https://www.fail2ban.org/" +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/${PN}/${PN}" + inherit git-r3 +else + SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="selinux systemd" + +RDEPEND=" + virtual/logger + virtual/mta + selinux? ( sec-policy/selinux-fail2ban ) + systemd? ( + $(python_gen_cond_dep ' + || ( + dev-python/python-systemd[${PYTHON_USEDEP}] + sys-apps/systemd[python(-),${PYTHON_USEDEP}] + )' 'python*' ) + ) +" + +DOCS=( ChangeLog DEVELOP README.md THANKS TODO doc/run-rootless.txt ) + +PATCHES=( + "${FILESDIR}"/${P}-fix-tests-for-2021.patch + "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch + "${FILESDIR}"/${P}-fix-2to3-usage.patch + "${FILESDIR}"/${P}-fix-systemd-test.patch + "${FILESDIR}"/${P}-fix-py3.10-collections.patch + "${FILESDIR}"/${P}-upstream-openrc.patch +) + +python_prepare_all() { + distutils-r1_python_prepare_all + + # Replace /var/run with /run, but not in the top source directory + find . -mindepth 2 -type f -exec \ + sed -i -e 's|/var\(/run/fail2ban\)|\1|g' {} + || die +} + +python_compile() { + ./fail2ban-2to3 || die + distutils-r1_python_compile +} + +python_test() { + bin/fail2ban-testcases \ + --no-network \ + --no-gamin \ + --verbosity=4 || die "Tests failed with ${EPYTHON}" + + # Workaround for bug #790251 + rm -r fail2ban.egg-info || die +} + +python_install_all() { + distutils-r1_python_install_all + + rm -rf "${ED}"/usr/share/doc/${PN} "${ED}"/run || die + + newconfd files/fail2ban-openrc.conf ${PN} + + # These two are placed in the ${BUILD_DIR} after being "built" + # in install_scripts(). + newinitd "${BUILD_DIR}/fail2ban-openrc.init" "${PN}" + systemd_dounit "${BUILD_DIR}/${PN}.service" + + dotmpfiles files/${PN}-tmpfiles.conf + + doman man/*.{1,5} + + # Use INSTALL_MASK if you do not want to touch /etc/logrotate.d. + # See http://thread.gmane.org/gmane.linux.gentoo.devel/35675 + insinto /etc/logrotate.d + newins files/${PN}-logrotate ${PN} + + keepdir /var/lib/${PN} + + newbashcomp files/bash-completion ${PN}-client + bashcomp_alias ${PN}-client ${PN}-server ${PN}-regex +} + +pkg_preinst() { + has_version "<${CATEGORY}/${PN}-0.7" + previous_less_than_0_7=$? +} + +pkg_postinst() { + tmpfiles_process ${PN}-tmpfiles.conf + + if [[ ${previous_less_than_0_7} = 0 ]] ; then + elog + elog "Configuration files are now in /etc/fail2ban/" + elog "You probably have to manually update your configuration" + elog "files before restarting Fail2Ban!" + elog + elog "Fail2Ban is not installed under /usr/lib anymore. The" + elog "new location is under /usr/share." + elog + elog "You are upgrading from version 0.6.x, please see:" + elog "http://www.fail2ban.org/wiki/index.php/HOWTO_Upgrade_from_0.6_to_0.8" + fi + + if ! has_version dev-python/pyinotify && ! has_version app-admin/gamin ; then + elog "For most jail.conf configurations, it is recommended you install either" + elog "dev-python/pyinotify or app-admin/gamin (in order of preference)" + elog "to control how log file modifications are detected" + fi + + if ! has_version dev-lang/python[sqlite] ; then + elog "If you want to use ${PN}'s persistent database, then reinstall" + elog "dev-lang/python with USE=sqlite. If you do not use the" + elog "persistent database feature, then you should set" + elog "dbfile = :memory: in fail2ban.conf accordingly." + fi + + if has_version sys-apps/systemd[-python] ; then + elog "If you want to track logins through sys-apps/systemd's" + elog "journal backend, then reinstall sys-apps/systemd with USE=python" + fi +} -- cgit v1.2.3-65-gdbad