Bug 2259550 - python-catkin_lint fails to build with Python 3.13: AssertionError: Lists differ: [] != ['MISSING_INCLUDE_PATH']
Summary: python-catkin_lint fails to build with Python 3.13: AssertionError: Lists dif...
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: Fedora
Classification: Fedora
Component: python-catkin_lint
Version: 40
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 2291645 (view as bug list)
Depends On:
Blocks: F41FTBFS F41FailsToInstall PYTHON3.13
TreeView+ depends on / blocked
 
Reported: 2024-01-22 10:06 UTC by Karolina Surma
Modified: 2024-06-13 22:56 UTC (History)
8 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-06-13 22:56:49 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Karolina Surma 2024-01-22 10:06:43 UTC
python-catkin_lint fails to build with Python 3.13.03.

======================================================================
FAIL: test_exports (test.test_checks_build.ChecksBuildTest.test_exports)
Test checks for exported libraries (POSIX/NT)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/catkin_lint-1.6.22/test/helper.py", line 58, in wrapper
    func(*args, **kwargs)
    ~~~~^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.13/unittest/mock.py", line 1417, in patched
    return func(*newargs, **newkeywargs)
           ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/catkin_lint-1.6.22/test/test_checks_build.py", line 1026, in test_exports
    self.assertEqual([], result)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^
AssertionError: Lists differ: [] != ['MISSING_INCLUDE_PATH']

Second list contains 1 additional elements.
First extra element 0:
'MISSING_INCLUDE_PATH'

- []
+ ['MISSING_INCLUDE_PATH']

-------------------- >> begin captured stdout << ---------------------

--------------------- >> end captured stdout << ----------------------
----------------------------------------------------------------------
Warning: you need to install "coverage_plugin" extra requirements to use this plugin. e.g. `pip install nose2[coverage_plugin]`
Ran 85 tests in 0.245s

FAILED (failures=1, skipped=1)


https://docs.python.org/3.13/whatsnew/3.13.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.13/fedora-rawhide-x86_64/06930746-python-catkin_lint/

For all our attempts to build python-catkin_lint with Python 3.13, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.13/package/python-catkin_lint/

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.13:
https://copr.fedorainfracloud.org/coprs/g/python/python3.13/

Let us know here if you have any questions.

Python 3.13 is planned to be included in Fedora 41.
To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.13.
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.

Comment 1 Aoife Moloney 2024-02-15 23:11:22 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 40 development cycle.
Changing version to 40.

Comment 2 Karolina Surma 2024-06-12 14:59:39 UTC
*** Bug 2291645 has been marked as a duplicate of this bug. ***

Comment 3 Adam Williamson 2024-06-13 19:38:52 UTC
This is a little odd. The test is basically linting a CMakeLists.txt that looks like this:

            project(mock)
            find_package(catkin REQUIRED)
            find_package(other_catkin REQUIRED)
            find_package(other_system REQUIRED)
            catkin_package(
            INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
            CATKIN_DEPENDS other_catkin
            DEPENDS other_system
            )

and expecting there to be no errors, but it's getting a MISSING_INCLUDE_PATH error, which indicates the linter thinks that the path CMAKE_CURRENT_BINARY_DIR resolves to doesn't exist. With some additional logging, that path seems to be some kinda random string - ones I've got are:

/e0RDahb2EYle4Jjl
/fQxptyshNme2Mor2
/8WAS3xitz4Myqm2K

etc. I don't know if this is normal and the bug is that it's not finding that path, or this is *not* normal and the path should be something else that does exist.

The check function is pretty complex: https://github.com/fkie/catkin_lint/blob/3d3c092aabdbd2be5214bdc93afde2e1b7069df6/src/catkin_lint/linter.py#L209 , and uses at least os.path and posixpath. Not sure if there have been significant changes to that in Python 3.13.

Comment 4 Adam Williamson 2024-06-13 22:16:01 UTC
OK, figured it out, this was a fun one. https://github.com/fkie/catkin_lint/issues/110 . I've sent https://github.com/fkie/catkin_lint/pull/111 as a potential fix and applied that to our package for now. Fixed in https://bodhi.fedoraproject.org/updates/FEDORA-2024-f4ce04a098 , which is waiting on signing (robosignatory is falling over a lot this week).

Comment 5 Fedora Fails To Install 2024-06-13 22:56:49 UTC
Hello,

Please note that this comment was generated automatically by https://pagure.io/releng/blob/main/f/scripts/ftbfs-fti/follow-policy.py
If you feel that this output has mistakes, please open an issue at https://pagure.io/releng/

All subpackages of a package against which this bug was filled are now installable or removed from Fedora 41.

Thanks for taking care of it!


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