package/fail2ban: fix data_files installation path

When packaging data_files in a wheel, those files shall have the destination
path expressed as relative to the wheel installation.
The reason for that is the wheel installation shall be contained inside a
specific folder and/or in site-packages.
When building the wheel file by the bdist_wheel command, python will package
files with absolute paths as python files ending up installing them in
site-packages.

Fixes:
http://autobuild.buildroot.net/results/36ac5278d19195a21c3d02d087965e08f49228ef

Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
Tested-by: Fiona Klute <fiona.klute+wiwa@gmx.de>
[Arnout: add Upstream tag to the patch]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
Angelo Compagnucci
2024-04-19 23:32:15 +02:00
committed by Arnout Vandecappelle
parent 98f452f974
commit c90b87156d

View File

@@ -0,0 +1,74 @@
From 7b7fa3c02d4575c09362336bc310835c37859f1a Mon Sep 17 00:00:00 2001
From: Angelo Compagnucci <angelo.compagnucci@gmail.com>
Date: Fri, 19 Apr 2024 22:47:20 +0200
Subject: [PATCH] setup.py: fix data relative paths
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
As per distutils documentation:
The directory should be a relative path. It is interpreted relative to the
installation prefix (Pythons sys.prefix for system installations;
site.USER_BASE for user installations). Distutils allows directory to be an
absolute installation path, but this is discouraged since it is incompatible
with the wheel packaging format [1].
When packaging to a bdist_wheel indeed, the files in the "data_files" dictionary
are not picked at all as data files if they have an absolute path,
but they are instead added to the wheel as python files.
This has the effect of installing them as part of python files in the
site-packages folder when the wheel is installed.
This patch cannot be sent upstream because it breaks the legacy way of
installing the package with *python setup.py install* and it is needed only to
comply with the pep517 buildroot compatibility layer.
[1] https://docs.python.org/3.10/distutils/setupscript.html#installing-additional-files
Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
Upstream: N/A [breaks traditional setuptools installation]
---
setup.py | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/setup.py b/setup.py
index 91f71cf2..99ba2e32 100755
--- a/setup.py
+++ b/setup.py
@@ -238,26 +238,26 @@ setup(
for f in w[2]]
} if with_tests else {},
data_files = [
- ('/etc/fail2ban',
+ ('etc/fail2ban',
glob("config/*.conf")
),
- ('/etc/fail2ban/filter.d',
+ ('etc/fail2ban/filter.d',
glob("config/filter.d/*.conf")
),
- ('/etc/fail2ban/filter.d/ignorecommands',
+ ('etc/fail2ban/filter.d/ignorecommands',
[p for p in glob("config/filter.d/ignorecommands/*") if isfile(p)]
),
- ('/etc/fail2ban/action.d',
+ ('etc/fail2ban/action.d',
glob("config/action.d/*.conf") +
glob("config/action.d/*.py")
),
- ('/etc/fail2ban/fail2ban.d',
+ ('etc/fail2ban/fail2ban.d',
''
),
- ('/etc/fail2ban/jail.d',
+ ('etc/fail2ban/jail.d',
''
),
- ('/var/lib/fail2ban',
+ ('var/lib/fail2ban',
''
),
] + data_files_extra,
--
2.34.1