diff mbox series

package/fail2ban: fix fail2ban-python symlink

Message ID 20201005055809.24044-1-peter@korsgaard.com
State Accepted
Headers show
Series package/fail2ban: fix fail2ban-python symlink | expand

Commit Message

Peter Korsgaard Oct. 5, 2020, 5:58 a.m. UTC
Fixes (reproducible):
http://autobuild.buildroot.net/results/50f/50f199bfe06d054cc6770760e73ac0de594a0670/diffoscope-results.txt

Fail2ban installs the fail2ban-python symlink pointing to the host python
intepreter used to run setup.py, which is naturally not valid at runtime and
breaks the reproducible tests as shown in the diffoscope results:

│ -lrwxrwxrwx   0        0        0        0 2020-10-04 10:50:38.000000 ./usr/bin/fail2ban-python -> /home/naourr/work/instance-0/output-1/host/bin/python
│ +lrwxrwxrwx   0        0        0        0 2020-10-04 10:50:38.000000 ./usr/bin/fail2ban-python -> /home/naourr/work/instance-0/output-2/host/bin/python

As a workaround, update the symlink after installation to point to the
correct target python.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 package/fail2ban/fail2ban.mk | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Thomas Petazzoni Oct. 8, 2020, 8:13 p.m. UTC | #1
On Mon,  5 Oct 2020 07:58:08 +0200
Peter Korsgaard <peter@korsgaard.com> wrote:

> Fixes (reproducible):
> http://autobuild.buildroot.net/results/50f/50f199bfe06d054cc6770760e73ac0de594a0670/diffoscope-results.txt
> 
> Fail2ban installs the fail2ban-python symlink pointing to the host python
> intepreter used to run setup.py, which is naturally not valid at runtime and
> breaks the reproducible tests as shown in the diffoscope results:
> 
> │ -lrwxrwxrwx   0        0        0        0 2020-10-04 10:50:38.000000 ./usr/bin/fail2ban-python -> /home/naourr/work/instance-0/output-1/host/bin/python
> │ +lrwxrwxrwx   0        0        0        0 2020-10-04 10:50:38.000000 ./usr/bin/fail2ban-python -> /home/naourr/work/instance-0/output-2/host/bin/python
> 
> As a workaround, update the symlink after installation to point to the
> correct target python.
> 
> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
> ---
>  package/fail2ban/fail2ban.mk | 7 +++++++
>  1 file changed, 7 insertions(+)

It would have been nicer to have something supported by upstream
fail2ban. I guess like me you looked at the setup.py logic, and
realized that it was too convoluted to find a reasonably simple fix?

So applied to master. Thanks!

Thomas
Peter Korsgaard Oct. 8, 2020, 9:01 p.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

Hi,

 > It would have been nicer to have something supported by upstream
 > fail2ban. I guess like me you looked at the setup.py logic, and
 > realized that it was too convoluted to find a reasonably simple fix?

Indeed ;)

 > So applied to master. Thanks!

Thanks!
Peter Korsgaard Oct. 10, 2020, 9 p.m. UTC | #3
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

 > Fixes (reproducible):
 > http://autobuild.buildroot.net/results/50f/50f199bfe06d054cc6770760e73ac0de594a0670/diffoscope-results.txt

 > Fail2ban installs the fail2ban-python symlink pointing to the host python
 > intepreter used to run setup.py, which is naturally not valid at runtime and
 > breaks the reproducible tests as shown in the diffoscope results:

 > │ -lrwxrwxrwx   0        0        0        0 2020-10-04 10:50:38.000000 ./usr/bin/fail2ban-python -> /home/naourr/work/instance-0/output-1/host/bin/python
 > │ +lrwxrwxrwx   0        0        0        0 2020-10-04 10:50:38.000000 ./usr/bin/fail2ban-python -> /home/naourr/work/instance-0/output-2/host/bin/python

 > As a workaround, update the symlink after installation to point to the
 > correct target python.

 > Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

Committed to 2020.02.x, 2020.05.x and 2020.08.x, thanks.
diff mbox series

Patch

diff --git a/package/fail2ban/fail2ban.mk b/package/fail2ban/fail2ban.mk
index a0a2dc704b..a4ee0852cc 100644
--- a/package/fail2ban/fail2ban.mk
+++ b/package/fail2ban/fail2ban.mk
@@ -27,6 +27,13 @@  define FAIL2BAN_FIX_DEFAULT_CONFIG
 endef
 FAIL2BAN_POST_INSTALL_TARGET_HOOKS += FAIL2BAN_FIX_DEFAULT_CONFIG
 
+# fail2ban-python points to host python
+define FAIL2BAN_FIX_FAIL2BAN_PYTHON_SYMLINK
+	ln -snf $(if $(BR2_PACKAGE_PYTHON),python,python3) \
+		$(TARGET_DIR)/usr/bin/fail2ban-python
+endef
+FAIL2BAN_POST_INSTALL_TARGET_HOOKS += FAIL2BAN_FIX_FAIL2BAN_PYTHON_SYMLINK
+
 define FAIL2BAN_INSTALL_INIT_SYSV
 	$(INSTALL) -D -m 755 package/fail2ban/S60fail2ban \
 		$(TARGET_DIR)/etc/init.d/S60fail2ban