Bug 2098875

Summary: F37FailsToInstall: python3-cu2qu
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-cu2quAssignee: Orphan Owner <extras-orphan>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 37CC: athoscribeiro, benson_muite, code
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-09-27 13:29:36 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:    
Bug Blocks: 2117176, 2117177, 2016048, 2045102, 2045109, 2091310    

Description Miro Hrončok 2022-06-20 09:35:22 UTC
Hello,

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

Your package (python-cu2qu) Fails To Install in Fedora 37:

can't install python3-cu2qu:
  - nothing provides python(abi) = 3.10 needed by python3-cu2qu-1.6.7-6.fc36.x86_64
  - nothing provides python3.10dist(fonttools) >= 3.32 needed by python3-cu2qu-1.6.7-6.fc36.x86_64
  - nothing provides python3.10dist(fonttools[ufo]) >= 3.32 needed by python3-cu2qu-1.6.7-6.fc36.x86_64
  
If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.


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. To reproduce, use the koji/local repo only, e.g. in mock:

    $ mock -r fedora-37-x86_64 --disablerepo='*' --enablerepo=local install python3-cu2qu


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/fesco/Updates_Policy/#updating-inter-dependent-packages

Thanks!

Comment 1 Miro Hrončok 2022-06-20 10:07:09 UTC
This bugzilla is likely a fallout from the Python 3.11 rebuild.

If your package (or some of the dependencies it has) failed to rebuild during the Python 3.11 rebuild, they now fail to install. To fix this, packages need to be rebuilt in Rawhide.

We will slowly triage the bugzillas, but we'd appreciate your help.

If you know this is blocked by an existing reported build failure or another package not yet rebuilt with Python 3.11, please mark it as such by using the "Depends On"/"Blocks" bugzilla fields. That will help us determine what failures to prioritize.

If this is not Python 3.11 related, please remove the PYTHON3.11 blocking tracker.

Thank you and sorry for the inconvenience. Let me know if you need any help.

Comment 2 Miro Hrončok 2022-06-27 14:57:26 UTC
Hello,

This is the first reminder (step 3 from https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs).

If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.

Comment 3 Miro Hrončok 2022-06-28 09:43:25 UTC
____________________ TestCu2QuPen.test_ignore_single_points ____________________
self = <tests.pens_test.TestCu2QuPen testMethod=test_ignore_single_points>
    def test_ignore_single_points(self):
        pen = DummyPen()
        try:
            logging.captureWarnings(True)
            with CapturingLogHandler("py.warnings", level="WARNING") as log:
                quadpen = Cu2QuPen(pen, MAX_ERR, ignore_single_points=True)
        finally:
            logging.captureWarnings(False)
        quadpen.moveTo((0, 0))
        quadpen.endPath()
        quadpen.moveTo((1, 1))
        quadpen.closePath()
    
        self.assertGreaterEqual(len(log.records), 1)
        self.assertIn("ignore_single_points is deprecated",
>                     log.records[0].args[0])
E       IndexError: tuple index out of range
tests/pens_test.py:248: IndexError



I recall fixing this in another project: https://src.fedoraproject.org/rpms/fonttools/c/56762bce3fbd532389751251f0177c27be1864ce?branch=rawhide  + https://github.com/fonttools/fonttools/pull/2655

Comment 4 Miro Hrončok 2022-06-28 09:46:27 UTC
https://pypi.org/project/cu2qu/ says:

> This library is now maintained as part of https://github.com/fonttools/fonttools

Should we retire this package? Nothing in Fedora seems to depend on it.

Comment 5 Ben Beasley 2022-07-17 12:31:13 UTC
(In reply to Miro Hrončok from comment #4)
> Should we retire this package? Nothing in Fedora seems to depend on it.

Another package awaiting review, also from https://github.com/googlefonts/, does still depend on it:

https://bugzilla.redhat.com/show_bug.cgi?id=2091310
https://github.com/googlefonts/ufo2ft/blob/6c05d0c8cc5395427cee8600f77354dde2c88040/setup.py#L33

Comment 6 Ben Beasley 2022-07-17 12:49:58 UTC
(In reply to Ben Beasley from comment #5)
> 
> Another package awaiting review, also from https://github.com/googlefonts/,
> does still depend on it:

Upstream for ufo2ft doesn’t want to switch to the fonttools implementation from the standalone cu2qu because Cython acceleration is disabled in PyPI builds of fonttools[1]. (It looks like it is currently not enabled in Fedora builds either, although we could change that.) However, a straightforward patch for switching to fonttools is available in the linked PR.

Maybe we could retire this package in combination with enabling the Cython acceleration in fonttools, and patch ufo2ft accordingly. Or, we could always fix this package and keep it around a little longer, I guess. It doesn’t seem like upstream’s strategy is workable in the long term.

[1] https://github.com/googlefonts/ufo2ft/pull/461

Comment 7 Benson Muite 2022-07-18 06:36:33 UTC
It would be good to enable Cython acceleration in fonttools and patch ufo2ft.  PyPI will likely need to update their policies since they will also need to accommodate GPU accelerated programs and simd.  Enabling Cython acceleration is not essential, so this could be done at a later stage.

Comment 8 Miro Hrončok 2022-07-18 22:29:08 UTC
Hello,

This is the second reminder (step 4 from https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs).

If you know about this problem and are planning on fixing it, please acknowledge so by setting the bug status to ASSIGNED. If you don't have time to maintain this package, consider orphaning it, so maintainers of dependent packages realize the problem.

Comment 9 Ben Beasley 2022-07-19 12:38:23 UTC
(In reply to Benson Muite from comment #7)
> It would be good to enable Cython acceleration in fonttools and patch
> ufo2ft.  PyPI will likely need to update their policies since they will also
> need to accommodate GPU accelerated programs and simd.  Enabling Cython
> acceleration is not essential, so this could be done at a later stage.

Forgive me if I am explaining something you already know, but I think there may be a misunderstanding here. Cython transpiles Python (or almost-Python) code to C or C++, allowing it to be compiled ahead of time as an extension. This usually provides a speedup, and for “loopy” numerical code the advantage can be huge. Cython also makes it easier to write bindings to existing C/C++ libraries or hand-written C/C++ code. In fonttools, Cython acceleration means Lib/fontTools/cu2qu/cu2qu.py is transpiled to C and compiled as an extension.

There are no issues with upstreams uploading Python packages with compiled extensions to PyPI, and there are at least hundreds of packages on PyPI already using Cython. It does create a headache for the upstream, because they have to build binary wheels on all supported platforms using something like https://cibuildwheel.readthedocs.io/, instead of just uploading the pure-Python wheel built on any arbitrary platform. That may explain why fonttools doesn’t do it.

I don’t believe GPU acceleration or SIMD extensions (beyond those guaranteed to be part of x86_64) are involved in the matter at all.

Comment 10 Ben Beasley 2022-07-20 17:26:05 UTC
PR to enable Cython acceleration of cu2qu in fonttools: https://src.fedoraproject.org/rpms/fonttools/pull-request/7

Comment 11 Ben Cotton 2022-08-09 13:18:36 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 37 development cycle.
Changing version to 37.

Comment 12 Miro Hrončok 2022-08-17 11:52:09 UTC
This package has been orphaned.

You can pick it up at https://src.fedoraproject.org/rpms/python-cu2qu by clicking button "Take". If nobody picks it up, it will be retired and removed from a distribution.

Comment 13 Ben Beasley 2022-08-17 13:23:35 UTC
Recommendation: allow automatic retirement to occur, and patch any future dependent packages to use fontTools.cu2qu instead—especially now that https://src.fedoraproject.org/rpms/fonttools/pull-request/7 has been merged to enable Cython acceleration there.

Comment 14 Benson Muite 2022-08-28 23:49:46 UTC
ufo2ft seems to work with cu2qu in fontTools.

Comment 15 Miro Hrončok 2022-09-27 13:29:36 UTC
Automation has figured out the package is retired in Fedora 37.

If you like it to be unretired, please open a ticket at https://pagure.io/releng/new_issue?template=package_unretirement

Comment 16 Red Hat Bugzilla 2023-09-18 04:39:37 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days