Home Assistant OS on Pi4 gives error `maturin.build_wheel` failed

Hi,

I am the owner of the FreeAtHome integration which is used for interfacing with the Free@Home Building and Home Automation Solution.

Since a while I am getting a ‘Detected blocking call to load_default_certs with args’ warning. The cause of this warning originates in the Slixmpp library.

Other HomeAssistant integrations are also using this library and a fix for this warning has already been made. Making sure you're not a bot!
This fix is included in slixmpp 1.9.0. Unfortunately this release also contains a new feature 'Rust jid implementation ’ which results in a lot of errors when I adjust the version of slixmpp in the manifest.json.

Unable to install package slixmpp==1.9.0: × Failed to build slixmpp==1.9.0 ├─▶ The build backend returned an error ╰─▶ Call to maturin.build_wheel failed (exit status: 1) [stdout] Running maturin pep517 build-wheel -i /tmp/.tmpOd32qg/builds-v0/.tmpPzPbqI/bin/python --compatibility off Rust not found, installing into a temporary directory cargo 1.88.0 (873a06493 2025-05-10) [stderr] Python reports SOABI: cpython-313-aarch64-linux-musl Computed rustc target triple: aarch64-unknown-linux-musl Installation directory: /root/.cache/puccinialin Downloading rustup-init from https://static.rust-lang.org/rustup/dist/aarch64-unknown-linux-musl/rustup-init Downloading rustup-init: 0%| | 0.00/18.1M [00:00<?, ?B/s] Downloading rustup-init: 5%|▌ | 967k/18.1M [00:00<00:01, 9.59MB/s] Downloading rustup-init: 11%|█ | 1.95M/18.1M [00:00<00:01, 9.67MB/s] Downloading rustup-init: 16%|█▋ | 2.94M/18.1M [00:00<00:01, 9.77MB/s] Downloading rustup-init: 22%|██▏ | 3.95M/18.1M [00:00<00:01, 9.89MB/s] Downloading rustup-init: 27%|██▋ | 4.95M/18.1M [00:00<00:01, 9.92MB/s] Downloading rustup-init: 33%|███▎ | 5.95M/18.1M [00:00<00:01, 9.91MB/s] Downloading rustup-init: 39%|███▊ | 6.97M/18.1M [00:00<00:01, 9.97MB/s] Downloading rustup-init: 44%|████▍ | 7.98M/18.1M [00:00<00:01, 10.0MB/s] Downloading rustup-init: 50%|████▉ | 8.99M/18.1M [00:00<00:00, 9.98MB/s] Downloading rustup-init: 55%|█████▌ | 10.0M/18.1M [00:02<00:04, 1.70MB/s] Downloading rustup-init: 59%|█████▉ | 10.7M/18.1M [00:02<00:03, 2.09MB/s] Downloading rustup-init: 65%|██████▍ | 11.7M/18.1M [00:02<00:02, 2.81MB/s] Downloading rustup-init: 71%|███████ | 12.8M/18.1M [00:02<00:01, 3.68MB/s] Downloading rustup-init: 76%|███████▋ | 13.8M/18.1M [00:03<00:00, 4.59MB/s] Downloading rustup-init: 82%|████████▏ | 14.9M/18.1M [00:03<00:00, 5.55MB/s] Downloading rustup-init: 88%|████████▊ | 15.9M/18.1M [00:03<00:00, 6.49MB/s] Downloading rustup-init: 94%|█████████▎| 16.9M/18.1M [00:03<00:00, 7.32MB/s] Downloading rustup-init: 99%|█████████▉| 18.0M/18.1M [00:03<00:00, 8.06MB/s] Downloading rustup-init: 100%|██████████| 18.1M/18.1M [00:03<00:00, 5.30MB/s] Installing rust to /root/.cache/puccinialin/rustup info: profile set to ‘minimal’ info: default host triple is aarch64-unknown-linux-musl info: syncing channel updates for ‘stable-aarch64-unknown-linux-musl’ info: latest update on 2025-06-26, rust version 1.88.0 (6b00bc388 2025-06-23) info: downloading component ‘cargo’ info: downloading component ‘rust-std’ info: downloading component ‘rustc’ info: installing component ‘cargo’ info: installing component ‘rust-std’ info: installing component ‘rustc’ info: default toolchain set to ‘stable-aarch64-unknown-linux-musl’ Checking if cargo is installed Traceback (most recent call last): File “”, line 11, in wheel_filename = backend.build_wheel(“/tmp/.tmpOd32qg/builds-v0/.tmpHctarP”, {}, None) File “/tmp/.tmpOd32qg/builds-v0/.tmpPzPbqI/lib/python3.13/site-packages/maturin/init.py”, line 133, in build_wheel return _build_wheel(wheel_directory, config_settings, metadata_directory) File “/tmp/.tmpOd32qg/builds-v0/.tmpPzPbqI/lib/python3.13/site-packages/maturin/init.py”, line 114, in _build_wheel result = subprocess.run(command, stdout=subprocess.PIPE, env=_get_env()) File “/usr/local/lib/python3.13/subprocess.py”, line 554, in run with Popen(*popenargs, **kwargs) as process: ~~~~~^^^^^^^^^^^^^^^^^^^^^^ File “/usr/local/lib/python3.13/subprocess.py”, line 1039, in init self._execute_child(args, executable, preexec_fn, close_fds, ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pass_fds, cwd, env, ^^^^^^^^^^^^^^^^^^^ …<5 lines>… gid, gids, uid, umask, ^^^^^^^^^^^^^^^^^^^^^^ start_new_session, process_group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/local/lib/python3.13/subprocess.py”, line 1969, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) PermissionError: [Errno 13] Permission denied: ‘maturin’ hint: This usually indicates a problem with the package or the build environment.

Does anybody know what goes wrong with the build environment?

Hi @bdraco , six months ago you requested a code change in the slixmpp library for fixing a problem in the Harmony integration. That change was included in slixmpp 1.9.0.
I also needed this change for my integration, unfortunately i am encountering some problems with the upgrade of the slixmpp package, see the message above.
Can you help me with finding an solution for this problem?

Have you tried Discord? That is where the developers hang out more than here. If you go to channels and roles there and pick developer you will see the channels.

You might need a disk image that allows exec

apk add e2fsprogs
fallocate -l 1G /usr/tmp-disk
mkfs.ext4 /usr/tmp-disk
mount -o loop -t ext4 /usr/tmp-disk /tmp

Thanks for your help.

Unfortunately the last is giving me an error:

➜ /usr mount -o loop -t ext4 /usr/tmp-disk /tmp
mount: can’t setup loop device: Read-only file system