python-oslo-log failed to build from source in Fedora rawhide/f39 https://koji.fedoraproject.org/koji/taskinfo?taskID=103688881 For details on the mass rebuild see: https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Please fix python-oslo-log 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-oslo-log will be orphaned. Before branching of Fedora 40, python-oslo-log 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_to_install/
Created attachment 1979196 [details] build.log
Created attachment 1979197 [details] root.log file root.log too big, will only attach last 32768 bytes
Created attachment 1979198 [details] state.log
There's a problem with building documentation: Warning, treated as error: autodoc: failed to import module 'watchers' from module 'oslo_log'; the following exception was raised: No module named 'asyncore'
even testsuite: ====================================================================== ERROR: watchers (unittest.loader._FailedTest.watchers) ---------------------------------------------------------------------- ImportError: Failed to import test module: watchers Traceback (most recent call last): File "/usr/lib64/python3.12/unittest/loader.py", line 129, in loadTestsFromName module = __import__(module_name) ^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/watchers.py", line 18, in <module> import pyinotify File "/usr/lib/python3.12/site-packages/pyinotify.py", line 71, in <module> import asyncore ModuleNotFoundError: No module named 'asyncore'
Even with asyncore provided: ====================================================================== ERROR: test_log_config_append_invalid (oslo_log.tests.unit.test_log.LogConfigTestCase.test_log_config_append_invalid) oslo_log.tests.unit.test_log.LogConfigTestCase.test_log_config_append_invalid ---------------------------------------------------------------------- testtools.testresult.real._StringException: Traceback (most recent call last): File "/usr/lib64/python3.11/logging/config.py", line 78, in fileConfig cp.read(fname, encoding=encoding) File "/usr/lib64/python3.11/configparser.py", line 713, in read self._read(fp, filename) File "/usr/lib64/python3.11/configparser.py", line 1101, in _read raise MissingSectionHeaderError(fpname, lineno, line) configparser.MissingSectionHeaderError: File contains no section headers. file: '/tmp/tmprtkosor1/loggingzi8xfs8m.conf', line: 1 'squawk' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/tests/unit/test_log.py", line 1806, in test_log_config_append_invalid self.assertRaises(log.LogConfigError, log.setup, File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 467, in assertRaises self.assertThat(our_callable, matcher) File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 478, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 530, in _matchHelper mismatch = matcher.match(matchee) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/testtools/matchers/_exception.py", line 104, in match mismatch = self.exception_matcher.match(exc_info) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 457, in match reraise(*matchee) File "/usr/lib/python3.11/site-packages/testtools/compat.py", line 27, in reraise raise exc_obj.with_traceback(exc_tb) File "/usr/lib/python3.11/site-packages/testtools/matchers/_exception.py", line 97, in match result = matchee() ^^^^^^^^^ File "/usr/lib/python3.11/site-packages/testtools/testcase.py", line 1039, in __call__ return self._callable_object(*self._args, **self._kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/log.py", line 271, in setup _load_log_config(conf.log_config_append) File "/builddir/build/BUILD/oslo.log-5.0.0/oslo_log/log.py", line 231, in _load_log_config logging.config.fileConfig(log_config_append, File "/usr/lib64/python3.11/logging/config.py", line 80, in fileConfig raise RuntimeError(f'{fname} is invalid: {e}') RuntimeError: /tmp/tmprtkosor1/loggingzi8xfs8m.conf is invalid: File contains no section headers. file: '/tmp/tmprtkosor1/loggingzi8xfs8m.conf', line: 1 'squawk'
We have two different issues: - import inotify fails because of asyncore is missing (https://bugzilla.redhat.com/show_bug.cgi?id=2219556) - installing asyncore manually, one unit test is failing (as reported in #c6 ). I'm working in the second one.
Patch sent upstream for unit tests in oslo.log in https://review.opendev.org/c/openstack/oslo.log/+/890900 I will backport it to the package once the inotify issue is fixed.
Fixed with python-oslo-log-5.0.0-4.fc40 and python-oslo-log-5.0.0-4.fc39