support for Python 3.14

Bug #2121688 reported by Miro Hrončok
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Breezy
Fix Released
Medium
Jelmer Vernooij

Bug Description

As reported in Fedora https://bugzilla.redhat.com/2366194

$ rpm -q python3 breezy
python3-3.14.0~rc2-1.fc44.x86_64
breezy-3.3.12-2.fc44.x86_64

$ brz whoami 'Your Name <email address hidden>'
Segmentation fault (core dumped) brz whoami 'Your Name <email address hidden>'

$ brz init-repo brz
Segmentation fault (core dumped) brz init-repo brz

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

How did you get Breezy to build against pyhotn 3.14? pyo3, which it depends on doesn't support python 3.14 yet:

error: failed to run custom build command for `pyo3-ffi v0.23.5`

Caused by:
  process didn't exit successfully: `/tmp/breezy/target/debug/build/pyo3-ffi-c9bd3ea7cd7ecb86/build-script-build` (exit status: 1)
  --- stdout
  cargo:rustc-check-cfg=cfg(Py_LIMITED_API)
  cargo:rustc-check-cfg=cfg(Py_GIL_DISABLED)
  cargo:rustc-check-cfg=cfg(PyPy)
  cargo:rustc-check-cfg=cfg(GraalPy)
  cargo:rustc-check-cfg=cfg(py_sys_config, values("Py_DEBUG", "Py_REF_DEBUG", "Py_TRACE_REFS", "COUNT_ALLOCS"))
  cargo:rustc-check-cfg=cfg(invalid_from_utf8_lint)
  cargo:rustc-check-cfg=cfg(pyo3_disable_reference_pool)
  cargo:rustc-check-cfg=cfg(pyo3_leak_on_drop_without_reference_pool)
  cargo:rustc-check-cfg=cfg(diagnostic_namespace)
  cargo:rustc-check-cfg=cfg(c_str_lit)
  cargo:rustc-check-cfg=cfg(rustc_has_once_lock)
  cargo:rustc-check-cfg=cfg(fn_ptr_eq)
  cargo:rustc-check-cfg=cfg(Py_3_7)
  cargo:rustc-check-cfg=cfg(Py_3_8)
  cargo:rustc-check-cfg=cfg(Py_3_9)
  cargo:rustc-check-cfg=cfg(Py_3_10)
  cargo:rustc-check-cfg=cfg(Py_3_11)
  cargo:rustc-check-cfg=cfg(Py_3_12)
  cargo:rustc-check-cfg=cfg(Py_3_13)
  cargo:rerun-if-env-changed=PYO3_CROSS
  cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
  cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
  cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
  cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
  cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY

  --- stderr
  error: the configured Python interpreter version (3.14) is newer than PyO3's maximum supported version (3.13)
  = help: please check if an updated version of PyO3 is available. Current version: 0.23.5
  = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
warning: build failed, waiting for other jobs to finish...
error: `cargo rustc --lib --message-format=json-render-diagnostics --manifest-path lib-rio/Cargo.toml -v --features pyo3/extension-module --crate-type cdylib --` failed with code 101

Changed in brz:
status: New → Incomplete
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

The build logs in the upstream bug give me 404s.

Revision history for this message
Miro Hrončok (churchyard) wrote :

The now-expired build logs from Fedora bugzilla were for python-dunamai and are not relevant for breezy. python-dunamai did not build because it called `brz whoami ...` during the build (for tests).

If you want the build logs of breezy, see https://koji.fedoraproject.org/koji/buildinfo?buildID=2791675 (search for build.log).

> How did you get Breezy to build against pyhotn 3.14?

Well, more or less by setting PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 as the error suggests.
Technically by https://src.fedoraproject.org/rpms/rust-pyo3-ffi/blob/rawhide/f/Allow-unsupported-Python-versions-in-RPM-builds.patch

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

In that case, I would have expected the (fairly extensive) breezy testsuite to have failed. Is that not run?

Revision history for this message
Miro Hrončok (churchyard) wrote :

Unfortunately, the Fedora breezy package does not run tests during build. (Note that I am the Fedora Python maintainer merely forwarding the message.)

Revision history for this message
Daeho Ro (daeho-ro) wrote :

`pyo3` version needs to be bumped >= 0.25 and it seems that it is applied on main branch. I am wondering when it could be released as a new version like 3.3.14?

Jelmer Vernooij (jelmer)
summary: - breezy dumps core with Python 3.14: Segmentation fault
+ support for Python 3.14
Changed in brz:
status: Incomplete → Triaged
importance: Undecided → Medium
assignee: nobody → Jelmer Vernooij (jelmer)
Jelmer Vernooij (jelmer)
Changed in brz:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.