Bug 2366198

Summary: notmuch fails to build with Python 3.14: T380-atomicity: Testing atomicity: FAIL detected >10 abort points
Product: [Fedora] Fedora Reporter: Karolina Surma <ksurma>
Component: notmuchAssignee: Michael J Gruber <mjg>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: epel-packagers-sig, ksurma, mhroncok, mjg
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-05-14 14:14:03 UTC Type: Bug
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: 2322407    

Description Karolina Surma 2025-05-14 08:42:40 UTC
notmuch fails to build with Python 3.14.0b1.

T380-atomicity: Testing atomicity
cat: outcount: No such file or directory
/builddir/build/BUILD/notmuch-0.39-build/notmuch-0.39/test/T380-atomicity.sh: line 79: ((: i < : syntax error: operand expected (error token is "< ")
 PASS   "notmuch new" is idempotent under arbitrary aborts
 FAIL   detected >10 abort points
	test  -gt 10
/builddir/build/BUILD/notmuch-0.39-build/notmuch-0.39/test/test-lib.sh: line 701: test: -gt: unary operator expected

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

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.14-b1/fedora-rawhide-x86_64/09028952-notmuch/

For all our attempts to build notmuch with Python 3.14, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.14-b1/package/notmuch/

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

Let us know here if you have any questions.

Python 3.14 is planned to be included in Fedora 43.
To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.14.
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 Michael J Gruber 2025-05-14 09:20:17 UTC
T380 sucks for various reasons, such as:
- it outputs the actual result where it should state the expected ("test for ...")
- it can succeed for the wrong reasons (such as gdb missing)
- it creates ugly bash errors when gdb failed to write to the output file

I tried upstreaming patches in 2022 but didn't succeed.

If I remember correctly, it's also prone to timeout issues (like other tests).

In this instance, I would expect "scripting gdb in python" to be broken, and I vaguely remember we had this before. As such it does not indicate a problem with notmuch per se, maybe not even with its test suite.

Comment 2 Michael J Gruber 2025-05-14 11:39:55 UTC
So, after adding in more test debug, I see:

```
/etc/gdbinit:9: Error in sourced command file:
Scripting in the "Python" language is not supported in this copy of GDB.
```

I guess gdb needs to be rebuild with py scripting ... Should I reassign to GDB, close invalid, or just wait?

Comment 3 Karolina Surma 2025-05-14 12:11:54 UTC
Please try again now - I bootstrapped gdb first without, then with Python, but didn't bump the version, so most probably the one without got pulled to your environment. Now there should be only one gdb version in Copr, and the one with Python.

Comment 4 Michael J Gruber 2025-05-14 14:14:03 UTC
Thanks, that was it. I guess it's not a bug then ;)

Comment 5 Karolina Surma 2025-05-14 14:48:05 UTC
Ooooch, like that. Yes, the next build of notmuch was successful. Thank you for looking into it.