https://bugzilla.redhat.com/show_bug.cgi?id=2178473
Bug ID: 2178473
Summary: CVE-2022-41723 hugo: golang.org/x/net/http2: avoid
quadratic complexity in HPACK decoding [fedora-all]
Product: Fedora
Version: 37
Status: NEW
Component: hugo
Keywords: Security, SecurityTracking
Severity: medium
Priority: medium
Assignee: athoscribeiro(a)gmail.com
Reporter: ahanwate(a)redhat.com
QA Contact: extras-qa(a)fedoraproject.org
CC: athoscribeiro(a)gmail.com,
epel-packagers-sig(a)lists.fedoraproject.org,
go-sig(a)lists.fedoraproject.org,
quantum.analyst(a)gmail.com, redhat(a)flyn.org
Target Milestone: ---
Classification: Fedora
More information about this security flaw is available in the following bug:
http://bugzilla.redhat.com/show_bug.cgi?id=2178358
Disclaimer: Community trackers are created by Red Hat Product Security team on
a best effort basis. Package maintainers are required to ascertain if the flaw
indeed affects their package, before starting the update process.
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2178473
https://bugzilla.redhat.com/show_bug.cgi?id=2208416
Bug ID: 2208416
Summary: python-xarray-2023.5.0 is available
Product: Fedora
Version: rawhide
Status: NEW
Component: python-xarray
Keywords: FutureFeature, Triaged
Assignee: quantum.analyst(a)gmail.com
Reporter: upstream-release-monitoring(a)fedoraproject.org
QA Contact: extras-qa(a)fedoraproject.org
CC: epel-packagers-sig(a)lists.fedoraproject.org,
jonathan(a)almalinux.org,
python-packagers-sig(a)lists.fedoraproject.org,
quantum.analyst(a)gmail.com
Target Milestone: ---
Classification: Fedora
Releases retrieved: 2023.5.0
Upstream release that is considered latest: 2023.5.0
Current version/release in rawhide: 2023.4.2-2.fc39
URL: https://github.com/pydata/xarray
Please consult the package updates policy before you issue an update to a
stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/
More information about the service that created this bug can be found at:
https://docs.fedoraproject.org/en-US/package-maintainers/Upstream_Release_M…
Please keep in mind that with any upstream change, there may also be packaging
changes that need to be made. Specifically, please remember that it is your
responsibility to review the new version to ensure that the licensing is still
correct and that no non-free or legally problematic items have been added
upstream.
Based on the information from Anitya:
https://release-monitoring.org/project/19523/
To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/python-xarray
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2208416
https://bugzilla.redhat.com/show_bug.cgi?id=2211203
Bug ID: 2211203
Summary: Please branch and build wx backend for matplotlib in
EPEL 9
Product: Fedora EPEL
Version: epel9
OS: Linux
Status: NEW
Component: python-matplotlib
Assignee: quantum.analyst(a)gmail.com
Reporter: cquike(a)arcor.de
QA Contact: extras-qa(a)fedoraproject.org
CC: epel-packagers-sig(a)lists.fedoraproject.org,
gwync(a)protonmail.com,
paulo.cesar.pereira.de.andrade(a)gmail.com,
python-packagers-sig(a)lists.fedoraproject.org,
quantum.analyst(a)gmail.com, tomspur(a)fedoraproject.org
Target Milestone: ---
Classification: Fedora
Description of problem:
In EPEL 8 the wx backend for matplotlib was provided
(https://bugzilla.redhat.com/show_bug.cgi?id=1955488). It would be great if
this backend is also provided in the EPEL 9 repository.
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2211203
https://bugzilla.redhat.com/show_bug.cgi?id=2171686
Bug ID: 2171686
Summary: python-pytest-flake8: FTBFS in Fedora rawhide/f38
Product: Fedora
Version: rawhide
Status: NEW
Component: python-pytest-flake8
Assignee: ngompa13(a)gmail.com
Reporter: releng(a)fedoraproject.org
QA Contact: extras-qa(a)fedoraproject.org
CC: epel-packagers-sig(a)lists.fedoraproject.org,
michel(a)michel-slm.name, ngompa13(a)gmail.com,
python-packagers-sig(a)lists.fedoraproject.org
Blocks: 2117176 (F38FTBFS)
Target Milestone: ---
Classification: Fedora
python-pytest-flake8 failed to build from source in Fedora rawhide/f38
https://koji.fedoraproject.org/koji/taskinfo?taskID=96429303
For details on the mass rebuild see:
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Please fix python-pytest-flake8 at your earliest convenience and set the bug's
status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
python-pytest-flake8 will be orphaned. Before branching of Fedora 39,
python-pytest-flake8 will be retired, if it still fails to build.
For more details on the FTBFS policy, please visit:
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails…
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=2117176
[Bug 2117176] Fedora 38 FTBFS Tracker
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2171686
https://bugzilla.redhat.com/show_bug.cgi?id=2159812
Bug ID: 2159812
Summary: Can't install blosc-bench on EPEL9
Product: Fedora EPEL
Version: epel9
Status: NEW
Component: blosc
Assignee: zbyszek(a)in.waw.pl
Reporter: dherrera(a)redhat.com
QA Contact: extras-qa(a)fedoraproject.org
CC: epel-packagers-sig(a)lists.fedoraproject.org,
python-packagers-sig(a)lists.fedoraproject.org,
thibault(a)north.li, zbyszek(a)in.waw.pl
Depends On: 2041315
Target Milestone: ---
Classification: Fedora
Description of problem:
blosc-bench doesn't install on EPEL9 because nothing provides
python3-matplotlib
Version-Release number of selected component (if applicable):
blosc-bench-1.21.1-3.el9
Steps to Reproduce:
1. sudo dnf -y install blosc-bench
Actual results:
...
Problem: conflicting requests
- nothing provides python3-matplotlib needed by
blosc-bench-1.21.1-3.el9.x86_64
Additional info:
Even if the python-matplotlib package is available in EPEL8, it hasn't been
ported to EPEL9 yet. This should get resolved when the proper packaging of
python-matplotlib is done.
This problem was found using the following service:
https://tdawson.fedorapeople.org/epel/willit/epel9/status-wont-install.html
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=2041315
[Bug 2041315] Please branch and build python-matplotlib in epel9
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2159812
https://bugzilla.redhat.com/show_bug.cgi?id=2207642
Bug ID: 2207642
Summary: python-executing fails to build with Python 3.12:
executing._exceptions.VerifierFailure: ast.UnaryOp is
not created from CALL_INTRINSIC_1
Product: Fedora
Version: rawhide
Status: NEW
Component: python-executing
Assignee: rominf(a)aiven.io
Reporter: thrnciar(a)redhat.com
CC: epel-packagers-sig(a)lists.fedoraproject.org,
lbalhar(a)redhat.com, mhroncok(a)redhat.com,
paul.wouters(a)aiven.io, rominf(a)aiven.io,
thrnciar(a)redhat.com
Blocks: 2135404 (PYTHON3.12)
Target Milestone: ---
Classification: Fedora
python-executing fails to build with Python 3.12.0a7.
=================================== FAILURES
===================================
___________________________ TestStuff.test_decorator
___________________________
self = <tests.test_main.TestStuff testMethod=test_decorator>
def test_decorator(self):
@empty_decorator # 0
@decorator_with_args(tester('123'), x=int()) # 1
@tester(list(tuple([1, 2]))) # 2!
@tester( # 3!
list(
tuple(
[3, 4])),
)
@empty_decorator # 4
@decorator_with_args( # 5
str(),
x=int())
@tester(list(tuple([5, 6]))) # 6!
> @tester(list(tuple([7, 8]))) # 7!
tests/test_main.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:63: in __call__
self.check(call.args[0], arg)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tests.utils.Tester object at 0x7f702c74c050>
node = <ast.Call object at 0x7f702c7f22d0>
value = <function TestStuff.test_decorator.<locals>.foo at 0x7f702c62b740>
def check(self, node, value):
frame = inspect.currentframe().f_back.f_back
result = eval(
compile(ast.Expression(node), frame.f_code.co_filename, 'eval'),
frame.f_globals,
frame.f_locals,
)
> assert result == value, (result, value)
E AssertionError: ([7, 8], <function
TestStuff.test_decorator.<locals>.foo at 0x7f702c62b740>)
tests/utils.py:51: AssertionError
__________________ TestStuff.test_decorator_cache_instruction
__________________
self = <tests.test_main.TestStuff testMethod=test_decorator_cache_instruction>
def test_decorator_cache_instruction(self):
frame = inspect.currentframe()
def deco(f):
assert f.__name__ == "foo"
ex = Source.executing(frame)
assert isinstance(ex.node, ast.FunctionDef)
assert isinstance(ex.decorator, ast.Name)
> @deco
tests/test_main.py:587:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_main.py:583: in deco
ex = Source.executing(frame)
executing/executing.py:368: in executing
node_finder = NodeFinder(frame, stmts, tree, lasti, source)
executing/_position_node_finder.py:158: in __init__
self.verify(self.result, self.instruction(lasti))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <executing._position_node_finder.PositionNodeFinder object at
0x7f702c3f75c0>
node = <ast.Name object at 0x7f702c5875d0>
instruction = Instruction(opname='CALL', opcode=171, arg=0, argval=0,
argrepr='', offset=62, starts_line=587, is_jump_target=False,
positions=Positions(lineno=587, end_lineno=587, col_offset=9,
end_col_offset=13))
def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None:
"""
checks if this node could gererate this instruction
"""
op_name = instruction.opname
extra_filter: Callable[[EnhancedAST], bool] = lambda e: True
ctx: Type = type(None)
def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) ->
bool:
"""
match instruction
Parameters:
opnames: (str|Seq[str]): inst.opname has to be equal to or in
`opname`
**kwargs: every arg has to match inst.arg
Returns:
True if all conditions match the instruction
"""
if isinstance(opnames, str):
opnames = [opnames]
return instruction.opname in opnames and kwargs == {
k: getattr(instruction, k) for k in kwargs
}
def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any)
-> bool:
"""
match the ast-node
Parameters:
node_type: type of the node
**kwargs: every `arg` has to be equal `node.arg`
or `node.arg` has to be an instance of `arg` if it is a
type.
"""
return isinstance(node, node_type) and all(
isinstance(getattr(node, k), v)
if isinstance(v, type)
else getattr(node, k) == v
for k, v in kwargs.items()
)
if op_name == "CACHE":
return
if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)):
# call to context.__exit__
return
if inst_match(("CALL", "LOAD_FAST")) and node_match(
(ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp)
):
# call to the generator function
return
if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match(
(ast.ClassDef, ast.Call)
):
return
if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match(
ast.Compare
):
return
if inst_match("LOAD_NAME", argval="__annotations__") and node_match(
ast.AnnAssign
):
return
if (
(
inst_match("LOAD_METHOD", argval="join")
or inst_match(("CALL", "BUILD_STRING"))
)
and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod)
and isinstance(cast(ast.Constant, cast(ast.BinOp,
node).left).value, str)
):
# "..."%(...) uses "".join
return
if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign):
# data: int
return
if self.is_except_cleanup(instruction, node):
return
if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match(
ast.Name, id=instruction.argval, ctx=ast.Del
):
return
if inst_match("BUILD_STRING") and (
node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod)
):
return
if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and
node_match(ast.With):
return
if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and
node_match(
ast.Constant
):
# store docstrings
return
if (
inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL",
"STORE_DEREF"))
and node_match(ast.ExceptHandler)
and instruction.argval == mangled_name(node)
):
# store exception in variable
return
if (
inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF",
"STORE_GLOBAL"))
and node_match((ast.Import, ast.ImportFrom))
and any(mangled_name(cast(EnhancedAST, alias)) ==
instruction.argval for alias in cast(ast.Import, node).names)
):
# store imported module in variable
return
if (
inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME",
"STORE_GLOBAL"))
and (
node_match((ast.FunctionDef, ast.ClassDef,
ast.AsyncFunctionDef))
or node_match(
ast.Name,
ctx=ast.Store,
)
)
and instruction.argval == mangled_name(node)
):
return
if False:
# TODO: match expressions are not supported for now
if inst_match(("STORE_FAST", "STORE_NAME")) and node_match(
ast.MatchAs, name=instruction.argval
):
return
if inst_match("COMPARE_OP", argval="==") and
node_match(ast.MatchSequence):
return
if inst_match("COMPARE_OP", argval="==") and
node_match(ast.MatchValue):
return
if inst_match("BINARY_OP") and node_match(
ast.AugAssign,
op=op_type_map[instruction.argrepr.removesuffix("=")]
):
# a+=5
return
if node_match(ast.Attribute, ctx=ast.Del) and inst_match(
"DELETE_ATTR", argval=mangled_name(node)
):
return
if inst_match(("JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP")) and
node_match(
ast.BoolOp
):
# and/or short circuit
return
if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript,
ctx=ast.Del):
return
if node_match(ast.Name, ctx=ast.Load) and inst_match(
("LOAD_NAME", "LOAD_FAST", "LOAD_GLOBAL"),
argval=mangled_name(node)
):
return
if node_match(ast.Name, ctx=ast.Del) and inst_match(
("DELETE_NAME", "DELETE_GLOBAL"), argval=mangled_name(node)
):
return
# old verifier
typ: Type = type(None)
op_type: Type = type(None)
if op_name.startswith(("BINARY_SUBSCR", "SLICE+")):
typ = ast.Subscript
ctx = ast.Load
elif op_name.startswith("BINARY_"):
typ = ast.BinOp
op_type = op_type_map[instruction.argrepr]
extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type)
elif op_name.startswith("UNARY_"):
typ = ast.UnaryOp
op_type = dict(
UNARY_POSITIVE=ast.UAdd,
UNARY_NEGATIVE=ast.USub,
UNARY_NOT=ast.Not,
UNARY_INVERT=ast.Invert,
)[op_name]
extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op,
op_type)
elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD"):
typ = ast.Attribute
ctx = ast.Load
extra_filter = lambda e: mangled_name(e) == instruction.argval
elif op_name in (
"LOAD_NAME",
"LOAD_GLOBAL",
"LOAD_FAST",
"LOAD_DEREF",
"LOAD_CLASSDEREF",
):
typ = ast.Name
ctx = ast.Load
extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval
elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"):
typ = ast.Compare
extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1
elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")):
ctx = ast.Store
typ = ast.Subscript
elif op_name.startswith("STORE_ATTR"):
ctx = ast.Store
typ = ast.Attribute
extra_filter = lambda e: mangled_name(e) == instruction.argval
node_ctx = getattr(node, "ctx", None)
ctx_match = (
ctx is not type(None)
or not hasattr(node, "ctx")
or isinstance(node_ctx, ctx)
)
# check for old verifier
if isinstance(node, typ) and ctx_match and extra_filter(node):
return
# generate error
title = "ast.%s is not created from %s" % (
type(node).__name__,
instruction.opname,
)
> raise VerifierFailure(title, node, instruction)
E executing._exceptions.VerifierFailure: ast.Name is not created from
CALL
executing/_position_node_finder.py:545: VerifierFailure
_____________________________ TestStuff.test_names
_____________________________
self = <tests.test_main.TestStuff testMethod=test_names>
@contextlib.contextmanager
def assert_name_error(self):
try:
> yield
tests/test_main.py:536:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tests.test_main.TestStuff testMethod=test_names>
def test_names(self):
with self.assert_name_error():
self, completely_nonexistent # noqa
with self.assert_name_error():
self, global_never_defined # noqa
with self.assert_name_error():
> self, local_not_defined_yet # noqa
E UnboundLocalError: cannot access local variable
'local_not_defined_yet' where it is not associated with a value
tests/test_main.py:554: UnboundLocalError
During handling of the above exception, another exception occurred:
self = <tests.test_main.TestStuff testMethod=test_names>
def test_names(self):
with self.assert_name_error():
self, completely_nonexistent # noqa
with self.assert_name_error():
self, global_never_defined # noqa
> with self.assert_name_error():
tests/test_main.py:553:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.12/contextlib.py:155: in __exit__
self.gen.throw(value)
tests/test_main.py:539: in assert_name_error
ex = Source.executing(tb.tb_next)
executing/executing.py:368: in executing
node_finder = NodeFinder(frame, stmts, tree, lasti, source)
executing/_position_node_finder.py:158: in __init__
self.verify(self.result, self.instruction(lasti))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <executing._position_node_finder.PositionNodeFinder object at
0x7f7029434e30>
node = <ast.Name object at 0x7f702c781450>
instruction = Instruction(opname='LOAD_FAST_CHECK', opcode=127, arg=1,
argval='local_not_defined_yet', argrepr='local_not_defined_ye...rts_line=None,
is_jump_target=False, positions=Positions(lineno=554, end_lineno=554,
col_offset=18, end_col_offset=39))
def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None:
"""
checks if this node could gererate this instruction
"""
op_name = instruction.opname
extra_filter: Callable[[EnhancedAST], bool] = lambda e: True
ctx: Type = type(None)
def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) ->
bool:
"""
match instruction
Parameters:
opnames: (str|Seq[str]): inst.opname has to be equal to or in
`opname`
**kwargs: every arg has to match inst.arg
Returns:
True if all conditions match the instruction
"""
if isinstance(opnames, str):
opnames = [opnames]
return instruction.opname in opnames and kwargs == {
k: getattr(instruction, k) for k in kwargs
}
def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any)
-> bool:
"""
match the ast-node
Parameters:
node_type: type of the node
**kwargs: every `arg` has to be equal `node.arg`
or `node.arg` has to be an instance of `arg` if it is a
type.
"""
return isinstance(node, node_type) and all(
isinstance(getattr(node, k), v)
if isinstance(v, type)
else getattr(node, k) == v
for k, v in kwargs.items()
)
if op_name == "CACHE":
return
if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)):
# call to context.__exit__
return
if inst_match(("CALL", "LOAD_FAST")) and node_match(
(ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp)
):
# call to the generator function
return
if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match(
(ast.ClassDef, ast.Call)
):
return
if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match(
ast.Compare
):
return
if inst_match("LOAD_NAME", argval="__annotations__") and node_match(
ast.AnnAssign
):
return
if (
(
inst_match("LOAD_METHOD", argval="join")
or inst_match(("CALL", "BUILD_STRING"))
)
and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod)
and isinstance(cast(ast.Constant, cast(ast.BinOp,
node).left).value, str)
):
# "..."%(...) uses "".join
return
if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign):
# data: int
return
if self.is_except_cleanup(instruction, node):
return
if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match(
ast.Name, id=instruction.argval, ctx=ast.Del
):
return
if inst_match("BUILD_STRING") and (
node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod)
):
return
if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and
node_match(ast.With):
return
if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and
node_match(
ast.Constant
):
# store docstrings
return
if (
inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL",
"STORE_DEREF"))
and node_match(ast.ExceptHandler)
and instruction.argval == mangled_name(node)
):
# store exception in variable
return
if (
inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF",
"STORE_GLOBAL"))
and node_match((ast.Import, ast.ImportFrom))
and any(mangled_name(cast(EnhancedAST, alias)) ==
instruction.argval for alias in cast(ast.Import, node).names)
):
# store imported module in variable
return
if (
inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME",
"STORE_GLOBAL"))
and (
node_match((ast.FunctionDef, ast.ClassDef,
ast.AsyncFunctionDef))
or node_match(
ast.Name,
ctx=ast.Store,
)
)
and instruction.argval == mangled_name(node)
):
return
if False:
# TODO: match expressions are not supported for now
if inst_match(("STORE_FAST", "STORE_NAME")) and node_match(
ast.MatchAs, name=instruction.argval
):
return
if inst_match("COMPARE_OP", argval="==") and
node_match(ast.MatchSequence):
return
if inst_match("COMPARE_OP", argval="==") and
node_match(ast.MatchValue):
return
if inst_match("BINARY_OP") and node_match(
ast.AugAssign,
op=op_type_map[instruction.argrepr.removesuffix("=")]
):
# a+=5
return
if node_match(ast.Attribute, ctx=ast.Del) and inst_match(
"DELETE_ATTR", argval=mangled_name(node)
):
return
if inst_match(("JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP")) and
node_match(
ast.BoolOp
):
# and/or short circuit
return
if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript,
ctx=ast.Del):
return
if node_match(ast.Name, ctx=ast.Load) and inst_match(
("LOAD_NAME", "LOAD_FAST", "LOAD_GLOBAL"),
argval=mangled_name(node)
):
return
if node_match(ast.Name, ctx=ast.Del) and inst_match(
("DELETE_NAME", "DELETE_GLOBAL"), argval=mangled_name(node)
):
return
# old verifier
typ: Type = type(None)
op_type: Type = type(None)
if op_name.startswith(("BINARY_SUBSCR", "SLICE+")):
typ = ast.Subscript
ctx = ast.Load
elif op_name.startswith("BINARY_"):
typ = ast.BinOp
op_type = op_type_map[instruction.argrepr]
extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type)
elif op_name.startswith("UNARY_"):
typ = ast.UnaryOp
op_type = dict(
UNARY_POSITIVE=ast.UAdd,
UNARY_NEGATIVE=ast.USub,
UNARY_NOT=ast.Not,
UNARY_INVERT=ast.Invert,
)[op_name]
extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op,
op_type)
elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD"):
typ = ast.Attribute
ctx = ast.Load
extra_filter = lambda e: mangled_name(e) == instruction.argval
elif op_name in (
"LOAD_NAME",
"LOAD_GLOBAL",
"LOAD_FAST",
"LOAD_DEREF",
"LOAD_CLASSDEREF",
):
typ = ast.Name
ctx = ast.Load
extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval
elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"):
typ = ast.Compare
extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1
elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")):
ctx = ast.Store
typ = ast.Subscript
elif op_name.startswith("STORE_ATTR"):
ctx = ast.Store
typ = ast.Attribute
extra_filter = lambda e: mangled_name(e) == instruction.argval
node_ctx = getattr(node, "ctx", None)
ctx_match = (
ctx is not type(None)
or not hasattr(node, "ctx")
or isinstance(node_ctx, ctx)
)
# check for old verifier
if isinstance(node, typ) and ctx_match and extra_filter(node):
return
# generate error
title = "ast.%s is not created from %s" % (
type(node).__name__,
instruction.opname,
)
> raise VerifierFailure(title, node, instruction)
E executing._exceptions.VerifierFailure: ast.Name is not created from
LOAD_FAST_CHECK
executing/_position_node_finder.py:545: VerifierFailure
___________________________ test_global_tester_calls
___________________________
def test_global_tester_calls():
# tester calls should be tested at global scope
> from . import global_tester_calls
tests/test_main.py:1397:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/global_tester_calls.py:13: in <module>
assert -tester is +tester is ~tester is tester
tests/utils.py:131: in __invert__
node = self.get_node(ast.UnaryOp)
tests/utils.py:35: in get_node
ex = self.get_executing(inspect.currentframe().f_back.f_back)
tests/utils.py:42: in get_executing
return Source.executing(frame)
executing/executing.py:368: in executing
node_finder = NodeFinder(frame, stmts, tree, lasti, source)
executing/_position_node_finder.py:158: in __init__
self.verify(self.result, self.instruction(lasti))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <executing._position_node_finder.PositionNodeFinder object at
0x7f702c84ede0>
node = <ast.UnaryOp object at 0x7f7029326590>
instruction = Instruction(opname='CALL_INTRINSIC_1', opcode=173, arg=5,
argval=5, argrepr='', offset=178, starts_line=None, is_jump_target=False,
positions=Positions(lineno=13, end_lineno=13, col_offset=18,
end_col_offset=25))
def verify(self, node: EnhancedAST, instruction: dis.Instruction) -> None:
"""
checks if this node could gererate this instruction
"""
op_name = instruction.opname
extra_filter: Callable[[EnhancedAST], bool] = lambda e: True
ctx: Type = type(None)
def inst_match(opnames: Union[str, Sequence[str]], **kwargs: Any) ->
bool:
"""
match instruction
Parameters:
opnames: (str|Seq[str]): inst.opname has to be equal to or in
`opname`
**kwargs: every arg has to match inst.arg
Returns:
True if all conditions match the instruction
"""
if isinstance(opnames, str):
opnames = [opnames]
return instruction.opname in opnames and kwargs == {
k: getattr(instruction, k) for k in kwargs
}
def node_match(node_type: Union[Type, Tuple[Type, ...]], **kwargs: Any)
-> bool:
"""
match the ast-node
Parameters:
node_type: type of the node
**kwargs: every `arg` has to be equal `node.arg`
or `node.arg` has to be an instance of `arg` if it is a
type.
"""
return isinstance(node, node_type) and all(
isinstance(getattr(node, k), v)
if isinstance(v, type)
else getattr(node, k) == v
for k, v in kwargs.items()
)
if op_name == "CACHE":
return
if inst_match("CALL") and node_match((ast.With, ast.AsyncWith)):
# call to context.__exit__
return
if inst_match(("CALL", "LOAD_FAST")) and node_match(
(ast.ListComp, ast.GeneratorExp, ast.SetComp, ast.DictComp)
):
# call to the generator function
return
if inst_match(("CALL", "CALL_FUNCTION_EX")) and node_match(
(ast.ClassDef, ast.Call)
):
return
if inst_match(("COMPARE_OP", "IS_OP", "CONTAINS_OP")) and node_match(
ast.Compare
):
return
if inst_match("LOAD_NAME", argval="__annotations__") and node_match(
ast.AnnAssign
):
return
if (
(
inst_match("LOAD_METHOD", argval="join")
or inst_match(("CALL", "BUILD_STRING"))
)
and node_match(ast.BinOp, left=ast.Constant, op=ast.Mod)
and isinstance(cast(ast.Constant, cast(ast.BinOp,
node).left).value, str)
):
# "..."%(...) uses "".join
return
if inst_match("STORE_SUBSCR") and node_match(ast.AnnAssign):
# data: int
return
if self.is_except_cleanup(instruction, node):
return
if inst_match(("DELETE_NAME", "DELETE_FAST")) and node_match(
ast.Name, id=instruction.argval, ctx=ast.Del
):
return
if inst_match("BUILD_STRING") and (
node_match(ast.JoinedStr) or node_match(ast.BinOp, op=ast.Mod)
):
return
if inst_match(("BEFORE_WITH","WITH_EXCEPT_START")) and
node_match(ast.With):
return
if inst_match(("STORE_NAME", "STORE_GLOBAL"), argval="__doc__") and
node_match(
ast.Constant
):
# store docstrings
return
if (
inst_match(("STORE_NAME", "STORE_FAST", "STORE_GLOBAL",
"STORE_DEREF"))
and node_match(ast.ExceptHandler)
and instruction.argval == mangled_name(node)
):
# store exception in variable
return
if (
inst_match(("STORE_NAME", "STORE_FAST", "STORE_DEREF",
"STORE_GLOBAL"))
and node_match((ast.Import, ast.ImportFrom))
and any(mangled_name(cast(EnhancedAST, alias)) ==
instruction.argval for alias in cast(ast.Import, node).names)
):
# store imported module in variable
return
if (
inst_match(("STORE_FAST", "STORE_DEREF", "STORE_NAME",
"STORE_GLOBAL"))
and (
node_match((ast.FunctionDef, ast.ClassDef,
ast.AsyncFunctionDef))
or node_match(
ast.Name,
ctx=ast.Store,
)
)
and instruction.argval == mangled_name(node)
):
return
if False:
# TODO: match expressions are not supported for now
if inst_match(("STORE_FAST", "STORE_NAME")) and node_match(
ast.MatchAs, name=instruction.argval
):
return
if inst_match("COMPARE_OP", argval="==") and
node_match(ast.MatchSequence):
return
if inst_match("COMPARE_OP", argval="==") and
node_match(ast.MatchValue):
return
if inst_match("BINARY_OP") and node_match(
ast.AugAssign,
op=op_type_map[instruction.argrepr.removesuffix("=")]
):
# a+=5
return
if node_match(ast.Attribute, ctx=ast.Del) and inst_match(
"DELETE_ATTR", argval=mangled_name(node)
):
return
if inst_match(("JUMP_IF_TRUE_OR_POP", "JUMP_IF_FALSE_OR_POP")) and
node_match(
ast.BoolOp
):
# and/or short circuit
return
if inst_match("DELETE_SUBSCR") and node_match(ast.Subscript,
ctx=ast.Del):
return
if node_match(ast.Name, ctx=ast.Load) and inst_match(
("LOAD_NAME", "LOAD_FAST", "LOAD_GLOBAL"),
argval=mangled_name(node)
):
return
if node_match(ast.Name, ctx=ast.Del) and inst_match(
("DELETE_NAME", "DELETE_GLOBAL"), argval=mangled_name(node)
):
return
# old verifier
typ: Type = type(None)
op_type: Type = type(None)
if op_name.startswith(("BINARY_SUBSCR", "SLICE+")):
typ = ast.Subscript
ctx = ast.Load
elif op_name.startswith("BINARY_"):
typ = ast.BinOp
op_type = op_type_map[instruction.argrepr]
extra_filter = lambda e: isinstance(cast(ast.BinOp, e).op, op_type)
elif op_name.startswith("UNARY_"):
typ = ast.UnaryOp
op_type = dict(
UNARY_POSITIVE=ast.UAdd,
UNARY_NEGATIVE=ast.USub,
UNARY_NOT=ast.Not,
UNARY_INVERT=ast.Invert,
)[op_name]
extra_filter = lambda e: isinstance(cast(ast.UnaryOp, e).op,
op_type)
elif op_name in ("LOAD_ATTR", "LOAD_METHOD", "LOOKUP_METHOD"):
typ = ast.Attribute
ctx = ast.Load
extra_filter = lambda e: mangled_name(e) == instruction.argval
elif op_name in (
"LOAD_NAME",
"LOAD_GLOBAL",
"LOAD_FAST",
"LOAD_DEREF",
"LOAD_CLASSDEREF",
):
typ = ast.Name
ctx = ast.Load
extra_filter = lambda e: cast(ast.Name, e).id == instruction.argval
elif op_name in ("COMPARE_OP", "IS_OP", "CONTAINS_OP"):
typ = ast.Compare
extra_filter = lambda e: len(cast(ast.Compare, e).ops) == 1
elif op_name.startswith(("STORE_SLICE", "STORE_SUBSCR")):
ctx = ast.Store
typ = ast.Subscript
elif op_name.startswith("STORE_ATTR"):
ctx = ast.Store
typ = ast.Attribute
extra_filter = lambda e: mangled_name(e) == instruction.argval
node_ctx = getattr(node, "ctx", None)
ctx_match = (
ctx is not type(None)
or not hasattr(node, "ctx")
or isinstance(node_ctx, ctx)
)
# check for old verifier
if isinstance(node, typ) and ctx_match and extra_filter(node):
return
# generate error
title = "ast.%s is not created from %s" % (
type(node).__name__,
instruction.opname,
)
> raise VerifierFailure(title, node, instruction)
E executing._exceptions.VerifierFailure: ast.UnaryOp is not created from
CALL_INTRINSIC_1
executing/_position_node_finder.py:545: VerifierFailure
=========================== short test summary info
============================
FAILED tests/test_main.py::TestStuff::test_decorator - AssertionError: ([7,
8...
FAILED tests/test_main.py::TestStuff::test_decorator_cache_instruction -
exec...
FAILED tests/test_main.py::TestStuff::test_names -
executing._exceptions.Veri...
FAILED tests/test_main.py::test_global_tester_calls -
executing._exceptions.V...
=================== 4 failed, 41 passed, 15 skipped in 3.02s
===================
https://docs.python.org/3.12/whatsnew/3.12.html
For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.12/fedora-r…
For all our attempts to build python-executing with Python 3.12, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.12/package/python-…
Testing and mass rebuild of packages is happening in copr. You can follow these
instructions to test locally in mock if your package builds with Python 3.12:
https://copr.fedorainfracloud.org/coprs/g/python/python3.12/
Let us know here if you have any questions.
Python 3.12 is planned to be included in Fedora 39. To make that update
smoother, we're building Fedora packages with all pre-releases of Python 3.12.
A build failure prevents us from testing all dependent packages (transitive
[Build]Requires), so if this package is required a lot, it's important for us
to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you
don't want to work on this now, let us know so we can try to work around it on
our side.
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=2135404
[Bug 2135404] Python 3.12
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2207642
https://bugzilla.redhat.com/show_bug.cgi?id=2193287
Bug ID: 2193287
Summary: cjs fails testsuite when libffi configured with static
trampolines
Product: Fedora
Version: rawhide
OS: Linux
Status: NEW
Component: cjs
Severity: medium
Assignee: leigh123linux(a)googlemail.com
Reporter: dj(a)redhat.com
QA Contact: extras-qa(a)fedoraproject.org
CC: epel-packagers-sig(a)lists.fedoraproject.org,
fedora(a)raveit.de, leigh123linux(a)googlemail.com,
riehecky(a)fnal.gov
Target Milestone: ---
Classification: Fedora
If you remove the --disable-exec-static-tramp option from libffi's spec file
(see proposed change LIBFFI34_static_trampolines) cjs's build fails in the
testsuite phase.
Reproducible: Always
Steps to Reproduce:
1. Install a libffi with static trampolines (for example,
https://copr.fedorainfracloud.org/coprs/djdelorie/libffi-3.4.4/build/586581…)
2. rpm install cjs src.rpm
3. rpmbuild -ba cjs.spec
Actual Results:
about 2/3 of the tests fail
Expected Results:
all tests pass
We noted that the gi/* implementation in cjs upstream is behind the equivalent
gi/* in gjs upstream, and is missing at least two closure-related commits:
8e1c28156b32765b4f6b2e41007281ddb07ccdee gi: fix the usage of closure in
CallbackIn::release
bcf9feeb96678ec698d76c4f7cb1dbc465972ad5 gi: Use new GObject Introspection
callable API
The first looks very relevent but was not trivially apply-able to the cjs
sources.
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2193287
https://bugzilla.redhat.com/show_bug.cgi?id=2190293
Bug ID: 2190293
Summary: [abrt] blender: amdgpu_cs_submit_ib(): blender killed
by SIGABRT
Product: Fedora
Version: 38
Hardware: x86_64
Status: NEW
Whiteboard: abrt_hash:146a581f48ba97c0fa0628bca210bc4adf94ebd0;VAR
IANT_ID=workstation;
Component: blender
Assignee: luya_tfz(a)thefinalzone.net
Reporter: jannik.wilhelm(a)outlook.de
QA Contact: extras-qa(a)fedoraproject.org
CC: code(a)musicinmybrain.net,
design-devel(a)lists.fedoraproject.org,
epel-packagers-sig(a)lists.fedoraproject.org,
kwizart(a)gmail.com, luya_tfz(a)thefinalzone.net,
negativo17(a)gmail.com
Target Milestone: ---
Classification: Fedora
Description of problem:
installed HIP and ROCM-packages for testing purposes, removed them again
No difference whether Packages installed or not: Blender crashes when some
actions are repeated multiple times (e.g. selecting and deselcting an Object in
viewport)
https://projects.blender.org/blender/blender/issues/107412
Version-Release number of selected component:
blender-1:3.5.0-1.fc38
Additional info:
reporter: libreport-2.17.9
uid: 1000
cmdline: /usr/bin/blender
runlevel: N 5
crash_function: amdgpu_cs_submit_ib
cgroup:
0::/user.slice/user-1000.slice/user@1000.service/app.slice/app-gnome-blender-121638.scope
package: blender-1:3.5.0-1.fc38
kernel: 6.2.12-300.fc38.x86_64
executable: /usr/bin/blender
journald_cursor:
s=2f2c3b51deaf46a0a135148beca32911;i=138b5c;b=78c5db736cb047ef9ea0419d85be650b;m=64f991435;t=5fa51594ca7fc;x=7ee601b98b37667
reason: blender killed by SIGABRT
rootdir: /
type: CCpp
backtrace_rating: 4
Truncated backtrace:
Thread no. 1 (4 frames)
#21 amdgpu_cs_submit_ib at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1663
#22 util_queue_thread_func at ../src/util/u_queue.c:309
#23 impl_thrd_routine at ../src/c11/impl/threads_posix.c:67
#25 clone3 at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2190293
https://bugzilla.redhat.com/show_bug.cgi?id=2210519
Bug ID: 2210519
Summary: python-pystemd-0.13.2 is available
Product: Fedora
Version: rawhide
Status: NEW
Component: python-pystemd
Keywords: FutureFeature, Triaged
Assignee: ngompa13(a)gmail.com
Reporter: upstream-release-monitoring(a)fedoraproject.org
QA Contact: extras-qa(a)fedoraproject.org
CC: davide(a)cavalca.name,
epel-packagers-sig(a)lists.fedoraproject.org,
michel(a)michel-slm.name, ngompa13(a)gmail.com,
python-packagers-sig(a)lists.fedoraproject.org
Target Milestone: ---
Classification: Fedora
Releases retrieved: 0.13.2
Upstream release that is considered latest: 0.13.2
Current version/release in rawhide: 0.13.1-1.fc39
URL: https://pypi.org/project/pystemd
Please consult the package updates policy before you issue an update to a
stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/
More information about the service that created this bug can be found at:
https://docs.fedoraproject.org/en-US/package-maintainers/Upstream_Release_M…
Please keep in mind that with any upstream change, there may also be packaging
changes that need to be made. Specifically, please remember that it is your
responsibility to review the new version to ensure that the licensing is still
correct and that no non-free or legally problematic items have been added
upstream.
Based on the information from Anitya:
https://release-monitoring.org/project/53136/
To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/python-pystemd
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2210519
https://bugzilla.redhat.com/show_bug.cgi?id=2196511
Bug ID: 2196511
Summary: notmuch fails to build with Python 3.12: Several names
deprecated in the configparser way back in 3.2 have
been removed per gh-89336:
configparser.ParsingError no longer has a filename
attribute or argument. Use the source attribute and
argument inst
Product: Fedora
Version: rawhide
Status: NEW
Component: notmuch
Assignee: mjg(a)fedoraproject.org
Reporter: thrnciar(a)redhat.com
QA Contact: extras-qa(a)fedoraproject.org
CC: epel-packagers-sig(a)lists.fedoraproject.org,
mhroncok(a)redhat.com, mjg(a)fedoraproject.org,
thrnciar(a)redhat.com
Blocks: 2135404 (PYTHON3.12)
Target Milestone: ---
Classification: Fedora
notmuch fails to build with Python 3.12.0a7.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/builddir/build/BUILD/notmuch-0.37/bindings/python/notmuch/__init__.py", line
54, in <module>
from .database import Database
File
"/builddir/build/BUILD/notmuch-0.37/bindings/python/notmuch/database.py", line
24, in <module>
from .compat import SafeConfigParser
File "/builddir/build/BUILD/notmuch-0.37/bindings/python/notmuch/compat.py",
line 50, in <module>
from configparser import SafeConfigParser
ImportError: cannot import name 'SafeConfigParser' from 'configparser'
(/usr/lib64/python3.12/configparser.py). Did you mean: 'RawConfigParser'?
Several names deprecated in the configparser way back in 3.2 have been removed
per gh-89336:
configparser.ParsingError no longer has a filename attribute or argument.
Use the source attribute and argument instead.
configparser no longer has a SafeConfigParser class. Use the shorter
ConfigParser name instead.
configparser.ConfigParser no longer has a readfp method. Use read_file()
instead.
https://docs.python.org/3.12/whatsnew/3.12.html
For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.12/fedora-r…
For all our attempts to build notmuch with Python 3.12, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.12/package/notmuch/
Testing and mass rebuild of packages is happening in copr. You can follow these
instructions to test locally in mock if your package builds with Python 3.12:
https://copr.fedorainfracloud.org/coprs/g/python/python3.12/
Let us know here if you have any questions.
Python 3.12 is planned to be included in Fedora 39. To make that update
smoother, we're building Fedora packages with all pre-releases of Python 3.12.
A build failure prevents us from testing all dependent packages (transitive
[Build]Requires), so if this package is required a lot, it's important for us
to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you
don't want to work on this now, let us know so we can try to work around it on
our side.
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=2135404
[Bug 2135404] Python 3.12
--
You are receiving this mail because:
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2196511