Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1843783
Summary: | F33FailsToInstall: python3-pcp, pcp-pmda-statsd | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Igor Raits <igor.raits> |
Component: | pcp | Assignee: | Mark Goodwin <mgoodwin> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | agerstmayr, cstratak, mgoodwin, mhroncok, nathans |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | pcp-5.1.1-1.fc33 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-06-16 21:51:39 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1845744 | ||
Bug Blocks: | 1803234, 1803235, 1785415 |
Description
Igor Raits
2020-06-04 06:43:15 UTC
This build has been superseded by the pcp-5.1.1 build which resolves these issues. pcp-5.1.1 has never been built. *** Bug 1844010 has been marked as a duplicate of this bug. *** Mark, what's the status of the rawhide builds of pcp-5.1.1? (I know they're done for f31 and f32) OK, the rawhide PCP build is failing because the python3-openxlsx module seems to be unusable. The PCP configure script expects it to be functional (i.e. 'import openxlsx' works) but it fails, so configure switches off that part of the build. But later on the spec file expects it to have worked, like it does on all earlier Fedora versions. So it looks like we're stuck behind python3.9 updates still I guess ... is this openxlsx issue known, Miro, do you know? > ... is this openxlsx issue known, Miro, do you know?
This is the first time I hear about openxlsx.
Is that coming from the python3-openpyxl package? (In reply to Miro Hrončok from comment #7) > Is that coming from the python3-openpyxl package? Yes, we have a build dep on python3-openpyxl and a configure check which attempts an import using ... dnl check availability of some Python modules dnl usage PCP_CHECK_PYTHON_MODULE(module_name) or dnl PCP_CHECK_PYTHON_MODULE(module_name, <import string>) dnl default <import string> is "import module_name" dnl dnl sets $have_python_<module_name> as true or false dnl AC_DEFUN([PCP_CHECK_PYTHON_MODULE], [ AC_MSG_CHECKING(for Python module $1) if test -n "$2" then txt="$2" else txt="import $1" fi $pcp_python_prog -c 'import sys; '"$txt" >>config.log 2>&1 if test "$?" = 0 then AC_MSG_RESULT(yes) eval have_python_$1=true else AC_MSG_RESULT(no) eval have_python_$1=false fi ]) PCP_CHECK_PYTHON_MODULE(BPF, [from bcc import BPF]) AC_SUBST(have_python_BPF) PCP_CHECK_PYTHON_MODULE(OrderedDict, [from collections import OrderedDict]) AC_SUBST(have_python_OrderedDict) PCP_CHECK_PYTHON_MODULE(jsonpointer) AC_SUBST(have_python_jsonpointer) PCP_CHECK_PYTHON_MODULE(openpyxl) AC_SUBST(have_python_openpyxl) Its this final check that 'fails', resulting in have_python_openpyxl=false unexpectedly, resulting in subsequent build failure at packaging time. I cannot reproduce any failure when importing openpyxl: python<mock-chroot> sh-5.0# python3 Python 3.9.0b1 (default, May 29 2020, 00:00:00) [GCC 10.1.1 20200507 (Red Hat 10.1.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import openpyxl >>> openpyxl.__file__ '/usr/lib/python3.9/site-packages/openpyxl/__init__.py' >>> <mock-chroot> sh-5.0# rpm -q python3 python3-3.9.0~b1-4.fc33.x86_64 <mock-chroot> sh-5.0# rpm -q python3-openpyxl python3-openpyxl-2.6.2-6.fc33.noarch A rawhide build: https://koji.fedoraproject.org/koji/taskinfo?taskID=45508752 checking for Python module openpyxl... no *** Bug 1813076 has been marked as a duplicate of this bug. *** (In reply to Miro Hrončok from comment #9) > I cannot reproduce any failure when importing openpyxl: > > python<mock-chroot> sh-5.0# python3 > Python 3.9.0b1 (default, May 29 2020, 00:00:00) > [GCC 10.1.1 20200507 (Red Hat 10.1.1-1)] on linux > Type "help", "copyright", "credits" or "license" for more information. > >>> import openpyxl > >>> openpyxl.__file__ The configure script does only the import (from command line via -c), then it returns the python exit status. > '/usr/lib/python3.9/site-packages/openpyxl/__init__.py' So, not this bit I guess. The exit status from python is what guides configure, so there must be something odd with the module causing python to return 1 (only for this module - rest seem fine)...? cheers. In an update-to-date rawhide VM, openpyxl cannot be imported. It throws an exception as follows : rawhide:mgoodwin@~[]$ cat test-openpyxl.python import sys; import openpyxl; rawhide:mgoodwin@~[]$ python3 test-openpyxl.python Traceback (most recent call last): File "/home/mgoodwin/test-openpyxl.python", line 2, in <module> import openpyxl; File "/usr/lib/python3.9/site-packages/openpyxl/__init__.py", line 6, in <module> from openpyxl.workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/__init__.py", line 5, in <module> from .workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/workbook.py", line 8, in <module> from openpyxl.worksheet.worksheet import Worksheet File "/usr/lib/python3.9/site-packages/openpyxl/worksheet/worksheet.py", line 30, in <module> from openpyxl.cell import Cell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/__init__.py", line 4, in <module> from .cell import Cell, WriteOnlyCell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/cell.py", line 46, in <module> from openpyxl.utils.inference import ( File "/usr/lib/python3.9/site-packages/openpyxl/utils/inference.py", line 10, in <module> from openpyxl.styles import numbers File "/usr/lib/python3.9/site-packages/openpyxl/styles/__init__.py", line 5, in <module> from .alignment import Alignment File "/usr/lib/python3.9/site-packages/openpyxl/styles/alignment.py", line 6, in <module> from openpyxl.descriptors import Bool, MinMax, Min, Alias, NoneSet File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/__init__.py", line 5, in <module> from .sequence import Sequence File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/sequence.py", line 5, in <module> from openpyxl.xml.functions import Element File "/usr/lib/python3.9/site-packages/openpyxl/xml/functions.py", line 40, in <module> from xml.etree.cElementTree import iterparse ModuleNotFoundError: No module named 'xml.etree.cElementTree' rawhide:mgoodwin@~[]$ rpm -q --requires python3-openpyxl python(abi) = 3.9 python3.9dist(et-xmlfile) python3.9dist(jdcal) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsZstd) <= 5.4.18-1 rawhide:mgoodwin@~[]$ rpm -q --whatprovides 'python3.9dist(et-xmlfile)' python3-et_xmlfile-1.0.1-19.fc33.noarch So python3-openpyxl needs xml.etree.cElementTree but no module or RPM package provides it? cElementTree was part of the standard library. now it isn't. https://docs.python.org/3.9/whatsnew/3.9.html#removed "The xml.etree.cElementTree module has been removed, use the xml.etree.ElementTree module instead. Since Python 3.3 the xml.etree.cElementTree module has been deprecated, the xml.etree.ElementTree module uses a fast implementation whenever available." However, I still cannot reproduce this: <mock-chroot> sh-5.0# cat > test.py import sys; import openpyxl; <mock-chroot> sh-5.0# python3 test.py <mock-chroot> sh-5.0# echo $? 0 <mock-chroot> sh-5.0# rpm -q python3-openpyxl python3-openpyxl-2.6.2-6.fc33.noarch <mock-chroot> sh-5.0# rpm -q python3 python3-3.9.0~b1-4.fc33.x86_64 I've looked into: /usr/lib/python3.9/site-packages/openpyxl/xml/functions.py And the problem is, it has: from lxml.etree import XMLSyntaxError if DEFUSEDXML is True: from defusedxml.common import DefusedXmlException from defusedxml.cElementTree import iterparse from defusedxml.lxml import fromstring as _fromstring, tostring def fromstring(*args, **kwargs): try: return _fromstring(*args, **kwargs) except XMLSyntaxError as e: raise DefusedXmlException(str(e)) else: from lxml.etree import fromstring, tostring from xml.etree.cElementTree import iterparse # do not resolve entities safe_parser = XMLParser(resolve_entities=False) fromstring = partial(fromstring, parser=safe_parser) else: try: from xml.etree.cElementTree import ( ElementTree, Element, SubElement, QName, register_namespace ) if DEFUSEDXML is True: from defusedxml.cElementTree import ( fromstring, tostring, iterparse, ) else: from xml.etree.cElementTree import ( fromstring, tostring, iterparse ) except ImportError: from xml.etree.ElementTree import ( ElementTree, Element, SubElement, QName, register_namespace ) if DEFUSEDXML is True: from defusedxml.ElementTree import ( fromstring, tostring, iterparse, ) else: from xml.etree.ElementTree import ( fromstring, tostring, iterparse, ) from et_xmlfile import xmlfile So it only fails if I install lxml: <mock-chroot> sh-5.0# rpm -q python3-lxml python3-lxml-4.5.1-1.fc33.x86_64 <mock-chroot> sh-5.0# python3 -c 'import openpyxl' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.9/site-packages/openpyxl/__init__.py", line 6, in <module> from openpyxl.workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/__init__.py", line 5, in <module> from .workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/workbook.py", line 8, in <module> from openpyxl.worksheet.worksheet import Worksheet File "/usr/lib/python3.9/site-packages/openpyxl/worksheet/worksheet.py", line 30, in <module> from openpyxl.cell import Cell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/__init__.py", line 4, in <module> from .cell import Cell, WriteOnlyCell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/cell.py", line 46, in <module> from openpyxl.utils.inference import ( File "/usr/lib/python3.9/site-packages/openpyxl/utils/inference.py", line 10, in <module> from openpyxl.styles import numbers File "/usr/lib/python3.9/site-packages/openpyxl/styles/__init__.py", line 5, in <module> from .alignment import Alignment File "/usr/lib/python3.9/site-packages/openpyxl/styles/alignment.py", line 6, in <module> from openpyxl.descriptors import Bool, MinMax, Min, Alias, NoneSet File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/__init__.py", line 5, in <module> from .sequence import Sequence File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/sequence.py", line 5, in <module> from openpyxl.xml.functions import Element File "/usr/lib/python3.9/site-packages/openpyxl/xml/functions.py", line 40, in <module> from xml.etree.cElementTree import iterparse ModuleNotFoundError: No module named 'xml.etree.cElementTree' Also fails with both lxml and defusedxml: <mock-chroot> sh-5.0# python3 -c 'import openpyxl' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.9/site-packages/openpyxl/__init__.py", line 6, in <module> from openpyxl.workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/__init__.py", line 5, in <module> from .workbook import Workbook File "/usr/lib/python3.9/site-packages/openpyxl/workbook/workbook.py", line 8, in <module> from openpyxl.worksheet.worksheet import Worksheet File "/usr/lib/python3.9/site-packages/openpyxl/worksheet/worksheet.py", line 30, in <module> from openpyxl.cell import Cell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/__init__.py", line 4, in <module> from .cell import Cell, WriteOnlyCell, MergedCell File "/usr/lib/python3.9/site-packages/openpyxl/cell/cell.py", line 46, in <module> from openpyxl.utils.inference import ( File "/usr/lib/python3.9/site-packages/openpyxl/utils/inference.py", line 10, in <module> from openpyxl.styles import numbers File "/usr/lib/python3.9/site-packages/openpyxl/styles/__init__.py", line 5, in <module> from .alignment import Alignment File "/usr/lib/python3.9/site-packages/openpyxl/styles/alignment.py", line 6, in <module> from openpyxl.descriptors import Bool, MinMax, Min, Alias, NoneSet File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/__init__.py", line 5, in <module> from .sequence import Sequence File "/usr/lib/python3.9/site-packages/openpyxl/descriptors/sequence.py", line 5, in <module> from openpyxl.xml.functions import Element File "/usr/lib/python3.9/site-packages/openpyxl/xml/functions.py", line 30, in <module> from defusedxml.cElementTree import iterparse File "/usr/lib/python3.9/site-packages/defusedxml/cElementTree.py", line 13, in <module> raise ImportError("cElementTree has been removed from Python 3.9") ImportError: cElementTree has been removed from Python 3.9 This is a bug in openpyxl, could you please report it there? Make sure to mention it only happens when python3-lxml is installed. If not, I can do it tmrw. Miro, I've opened BZ 1845744 - "python3-openpyxl requires xml.etree.cElementTree which has been deprecated" and it blocks this BZ which I'll keep open until we get a working PCP rawhide build. Thanks Built in rawhide. confirmed, thanks. |