Bug 1843783 - F33FailsToInstall: python3-pcp, pcp-pmda-statsd
Summary: F33FailsToInstall: python3-pcp, pcp-pmda-statsd
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: pcp
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Mark Goodwin
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1813076 1844010 (view as bug list)
Depends On: 1845744
Blocks: PYTHON39 F33FTBFS F33FailsToInstall
TreeView+ depends on / blocked
 
Reported: 2020-06-04 06:43 UTC by Igor Raits
Modified: 2020-06-16 23:33 UTC (History)
5 users (show)

Fixed In Version: pcp-5.1.1-1.fc33
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-06-16 21:51:39 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Igor Raits 2020-06-04 06:43:15 UTC
Hello,

Please note that this comment was generated automatically. If you feel that this output has mistakes, please contact me via email (ignatenkobrain).

Your package (pcp) Fails To Install in Fedora 33:

can't install python3-pcp:
  - nothing provides python(abi) = 3.8 needed by python3-pcp-5.1.0-1.fc33.x86_64
  
can't install pcp-pmda-statsd:
  - nothing provides libhdr_histogram.so.4()(64bit) needed by pcp-pmda-statsd-5.1.0-1.fc33.x86_64
  
If you don't react accordingly to the policy for FTBFS/FTI bugs (https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/), your package may be orphaned in 8+ weeks.

P.S. The data was generated solely from koji buildroot, so it might be newer than the latest compose or the content on mirrors.

P.P.S. If this bug has been reported in the middle of upgrading multiple dependent packages, please consider using side tags: https://docs.fedoraproject.org/en-US/rawhide-gating/multi-builds/

Thanks!

Comment 1 Nathan Scott 2020-06-04 07:13:56 UTC
This build has been superseded by the pcp-5.1.1 build which resolves these issues.

Comment 2 Miro Hrončok 2020-06-04 17:28:13 UTC
pcp-5.1.1 has never been built.

Comment 3 Miro Hrončok 2020-06-04 17:28:26 UTC
*** Bug 1844010 has been marked as a duplicate of this bug. ***

Comment 4 Nathan Scott 2020-06-04 22:34:55 UTC
Mark, what's the status of the rawhide builds of pcp-5.1.1?  (I know they're done for f31 and f32)

Comment 5 Nathan Scott 2020-06-05 07:07:06 UTC
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?

Comment 6 Miro Hrončok 2020-06-05 12:54:01 UTC
> ... is this openxlsx issue known, Miro, do you know?

This is the first time I hear about openxlsx.

Comment 7 Miro Hrončok 2020-06-05 13:02:21 UTC
Is that coming from the python3-openpyxl package?

Comment 8 Nathan Scott 2020-06-07 01:03:42 UTC
(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.

Comment 9 Miro Hrončok 2020-06-07 09:46:11 UTC
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

Comment 10 Miro Hrončok 2020-06-07 10:01:12 UTC
A rawhide build:

https://koji.fedoraproject.org/koji/taskinfo?taskID=45508752

checking for Python module openpyxl... no

Comment 11 Miro Hrončok 2020-06-07 18:23:57 UTC
*** Bug 1813076 has been marked as a duplicate of this bug. ***

Comment 12 Nathan Scott 2020-06-09 05:55:42 UTC
(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.

Comment 13 Mark Goodwin 2020-06-09 08:20:55 UTC
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?

Comment 14 Miro Hrončok 2020-06-09 08:39:20 UTC
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.

Comment 15 Mark Goodwin 2020-06-10 00:19:16 UTC
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

Comment 16 Charalampos Stratakis 2020-06-16 21:51:39 UTC
Built in rawhide.

Comment 17 Mark Goodwin 2020-06-16 23:33:49 UTC
confirmed, thanks.


Note You need to log in before you can comment on or make changes to this bug.