Broken core20 armhf builds on launchpad
Metadata
Current evaluation
Fixed core20 armhf Launchpad build failures caused by an OpenSSL 3.0 legacy provider error. Resolved via snapcraft PR #5084 (v8.4.2) and PR #5105 (v7.5.8).
Suggested action: —
No scores available.
Issue body
### Bug Description
When building on launchpad via remote-build a core20 snap for armhf, the traceback in this output is printed. This happens deterministically in our daily builds that are dispatched via snapcraft 7.
### To Reproduce
I think this should happen building any core20 snap via remote-build (as there is nothing special in what we do and if fails to run as soon as it is picked up for any core20 armhf snap we build)
```shell
git clone https://github.com/canonical/checkbox
cd checkbox/checkbox-snap
./prepare.sh series_classic20
snap refresh snapcraft --channel=7
snapcraft remote-build --build-for=armhf
```
### Environment
Workflow: https://github.com/canonical/checkbox/blob/main/.github/workflows/checkbox-snap-daily-builds.yml
### snapcraft.yaml
```yaml
name: checkbox
summary: Checkbox test runner
description: |
Checkbox is a flexible test automation software.
It’s the main tool used in Ubuntu Certification program.
adopt-info: version-calculator
grade: stable
confinement: classic
base: core20
apps:
checkbox-cli:
command-chain: [bin/wrapper_local]
command: bin/checkbox-cli-wrapper
test-runner:
command-chain: [bin/wrapper_local]
command: bin/test-runner
sru:
command-chain: [bin/wrapper_local]
command: bin/sru
client-cert-iot-server:
command-chain: [bin/wrapper_local]
command: bin/client-cert-iot-server
odm-certification:
command-chain: [bin/wrapper_local]
command: bin/odm-certification-app
configure:
command: bin/configure
agent:
command-chain: [bin/wrapper_local]
command: bin/checkbox-cli-wrapper run-agent
daemon: simple
restart-condition: always
restart-delay: 1s
shell:
command-chain: [bin/wrapper_local]
command: bin/shell-wrapper
passthrough:
hooks:
configure:
command-chain: [bin/wrapper_local]
parts:
version-calculator:
plugin: dump
source: .
override-pull: |
snapcraftctl pull
# version.txt created by prepare.sh
export version=`cat $SNAPCRAFT_PART_SRC/version.txt`
[ $version ] || exit 1
snapcraftctl set-version $version
stage:
- version.txt
launchers:
plugin: dump
source: launchers/
organize:
'*': bin/
config-variables:
plugin: dump
source: .
stage: [config_vars]
workaround-automated-review-issue:
plugin: nil
override-build: |
# This is a workaround for an upstream bug in the automated snap review tool
# remove this once this issue is resolved:
# https://bugs.launchpad.net/review-tools/+bug/2049093
# Note: this cats /dev/urandom because the squashfs will collapse any
# predictable output to less than the desired size making this
# ineffective
echo "This file is a workaround for a bug in the automated snap review tool" > $SNAPCRAFT_PART_INSTALL/size_workaround
echo "this only contains random bytes to pad the snap to 16kb" >> $SNAPCRAFT_PART_INSTALL/size_workaround
echo "see: https://bugs.launchpad.net/review-tools/+bug/2049093" >> $SNAPCRAFT_PART_INSTALL/size_workaround
head -c 16384 /dev/urandom >> $SNAPCRAFT_PART_INSTALL/size_workaround
```
### Relevant log output
```shell
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "/snap/snapcraft/12614/lib/python3.10/site-packages/snapcraft_legacy/__init__.py", line 352, in <module>
from snapcraft_legacy._store import ( # noqa
File "/snap/snapcraft/12614/lib/python3.10/site-packages/snapcraft_legacy/_store.py", line 30, in <module>
import craft_store
File "/snap/snapcraft/12614/lib/python3.10/site-packages/craft_store/__init__.py", line 23, in <module>
from .auth import Auth
File "/snap/snapcraft/12614/lib/python3.10/site-packages/craft_store/auth.py", line 33, in <module>
from keyring.backends import SecretService
File "/snap/snapcraft/12614/lib/python3.10/site-packages/keyring/backends/SecretService.py", line 16, in <module>
import secretstorage
File "/snap/snapcraft/12614/lib/python3.10/site-packages/secretstorage/__init__.py", line 13, in <module>
from secretstorage.collection import Collection, create_collection, \
File "/snap/snapcraft/12614/lib/python3.10/site-packages/secretstorage/collection.py", line 24, in <module>
from secretstorage.item import Item
File "/snap/snapcraft/12614/lib/python3.10/site-packages/secretstorage/item.py", line 17, in <module>
from secretstorage.util import DBusAddressWrapper, \
File "/snap/snapcraft/12614/lib/python3.10/site-packages/secretstorage/util.py", line 23, in <module>
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
File "/snap/snapcraft/12614/lib/python3.10/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py", line 11, in <module>
from cryptography.hazmat.primitives.ciphers.base import (
File "/snap/snapcraft/12614/lib/python3.10/site-packages/cryptography/hazmat/primitives/ciphers/base.py", line 10, in <module>
from cryptography.hazmat.bindings._rust import openssl as rust_openssl
RuntimeError: OpenSSL 3.0's legacy provider failed to load. This is a fatal error by default, but cryptography supports running without legacy algorithms by setting the environment variable CRYPTOGRAPHY_OPENSSL_NO_LEGACY. If you did not expect this error, you have likely made a mistake with your OpenSSL configuration.
```
### Additional context
See it failing here: https://github.com/canonical/checkbox/actions/workflows/daily-builds.yml
Relevant logs:
[checkbox_armhf.txt](https://github.com/user-attachments/files/17185713/checkbox_armhf.txt)
[checkbox_armhf.4.txt](https://github.com/user-attachments/files/17185714/checkbox_armhf.4.txt)
[checkbox_armhf.3.txt](https://github.com/user-attachments/files/17185715/checkbox_armhf.3.txt)
[checkbox_armhf.2.txt](https://github.com/user-attachments/files/17185716/checkbox_armhf.2.txt)
[checkbox_armhf.1.txt](https://github.com/user-attachments/files/17185717/checkbox_armhf.1.txt)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Fixed core20 armhf Launchpad build failures caused by an OpenSSL 3.0 legacy provider error. Resolved via snapcraft PR #5084 (v8.4.2) and PR #5105 (v7.5.8). | |
| qwen/qwen3.6-35b-a3b | — | — | Fixed OpenSSL 3.0 legacy provider error breaking core20 armhf builds. Resolved via craft-store PR #221 and snapcraft PRs #5084 (v8.4.2) and #5105 (v7.5.8). Released to stable. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Fixed core20 armhf build failures caused by OpenSSL 3.0 legacy provider errors. Resolved via snapcraft PR #5084 and craft-store PR #221, released in snapcraft 8.4.2 and 7.5.8. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Core20 armhf builds failed due to an OpenSSL 3.0 legacy provider error. Resolved by updating craft-store dependencies. Fix merged via snapcraft PR #5084 in release 8.4.2 and PR #5105 in release 7.5.8. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2064639 snapcraft remote-build core20 armhf openssl error | snapcraft (launchpad) | open | snapcraft remote-build fails on core20 armhf due to OpenSSL 3.0 legacy provider error in configure hook. Unlabelled, no maintainer response, 854 days old. |