commit: b1626a9f42558e080303fa88572aa414af4749a5
Author: Brian Harring <ferringb <AT> gmail <DOT> com>
AuthorDate: Wed Nov 19 08:51:47 2025 +0000
Commit: Brian Harring <ferringb <AT> gmail <DOT> com>
CommitDate: Wed Nov 19 08:52:43 2025 +0000
URL:
https://gitweb.gentoo.org/proj/pkgcore/pkgdev.git/commit/?id=b1626a9f
chore: suppress py3.14 warning for tarfile.extractall
Signed-off-by: Brian Harring <ferringb <AT> gmail.com>
src/pkgdev/scripts/pkgdev_commit.py | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/pkgdev/scripts/pkgdev_commit.py
b/src/pkgdev/scripts/pkgdev_commit.py
index 77a21f0..ae2c99e 100644
--- a/src/pkgdev/scripts/pkgdev_commit.py
+++ b/src/pkgdev/scripts/pkgdev_commit.py
@@ -5,10 +5,11 @@ import os
import re
import shlex
import subprocess
+import sys
import tarfile
import tempfile
import textwrap
-from collections import defaultdict, deque, UserDict
+from collections import UserDict, defaultdict, deque
from dataclasses import dataclass
from enum import Enum
from functools import partial
@@ -17,8 +18,8 @@ from itertools import chain
from pkgcheck import reporters, scan
from pkgcore.ebuild.atom import MalformedAtom
from pkgcore.ebuild.atom import atom as atom_cls
-from pkgcore.ebuild.repository import UnconfiguredTree, tree
from pkgcore.ebuild.repo_objs import RepoConfig
+from pkgcore.ebuild.repository import UnconfiguredTree, tree
from pkgcore.operations import observer as observer_mod
from pkgcore.restrictions import packages
from snakeoil.cli import arghparse
@@ -317,7 +318,12 @@ class HistoricalRepo(UnconfiguredTree):
error = old_files.stderr.read().decode().strip()
raise Exception(f"failed populating archive repo: {error}")
with tarfile.open(mode="r|", fileobj=old_files.stdout) as tar:
- tar.extractall(path=self.location)
+ extra_kwargs = {}
+ # see filter in
https://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractall
+ # Whilst we trust git archive, we still leave the basic
protections on.
+ if sys.version_info >= (3, 12, 0):
+ extra_kwargs["filter"] = "data"
+ tar.extractall(path=self.location, **extra_kwargs)
def change(*statuses):