diff options
| author | Sebastian Dröge <sebastian@centricular.com> | 2025-11-28 12:34:37 +0200 |
|---|---|---|
| committer | Eli Schwartz <eschwartz93@gmail.com> | 2025-11-28 09:34:14 -0500 |
| commit | fad1d6e0d479eff32a3ff853cd07756394c5fabc (patch) | |
| tree | 765ae518a6b0a9145f6b0c5c235c95b58066e920 | |
| parent | df4c35bab48395aa432c76482d3020a6c34f9619 (diff) | |
| download | meson-fad1d6e0d479eff32a3ff853cd07756394c5fabc.tar.gz | |
Wrap `tarfile.fully_trusted_filter` in `staticmethod` for wrap file handling too
That's how it is done in the other two places and without that one
argument too many is passed to the filter function:
```
[...]
File "/usr/lib/python3.14/site-packages/mesonbuild/wrap/wrap.py", line 607, in _get_file
shutil.unpack_archive(path, extract_dir)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/shutil.py", line 1432, in unpack_archive
func(filename, extract_dir, **kwargs)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/shutil.py", line 1349, in _unpack_tarfile
tarobj.extractall(extract_dir, filter=filter)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/tarfile.py", line 2409, in extractall
tarinfo, unfiltered = self._get_extract_tarinfo(
~~~~~~~~~~~~~~~~~~~~~~~~~^
member, filter_function, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/tarfile.py", line 2496, in _get_extract_tarinfo
filtered = filter_function(unfiltered, path)
TypeError: fully_trusted_filter() takes 2 positional arguments but 3 were given
```
| -rw-r--r-- | mesonbuild/wrap/wrap.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py index c675389aa..67ca96bee 100644 --- a/mesonbuild/wrap/wrap.py +++ b/mesonbuild/wrap/wrap.py @@ -59,7 +59,7 @@ ALL_TYPES = ['file', 'git', 'hg', 'svn', 'redirect'] if sys.version_info >= (3, 14): import tarfile - tarfile.TarFile.extraction_filter = tarfile.fully_trusted_filter + tarfile.TarFile.extraction_filter = staticmethod(tarfile.fully_trusted_filter) if mesonlib.is_windows(): from ..programs import ExternalProgram |
