I was working with a basic fastapi server. Build successfully for the amd64 architecture. When cross compiling for arm64 the app is not starting. When i checked the snap logs I got following:
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 fastapidemo.run[1679]: File "/snap/fastapidemo/x1/li b/python3.8/site-packages/pydantic_core/__init__.py", line 6, in <module>
-bash: syntax error near unexpected token `newline'
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 fastapidemo.run[1679]: from ._pydantic_core import (
-bash: syntax error near unexpected token `('
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 fastapidemo.run[1679]: ModuleNotFoundError: No module named 'pydantic_core._pydantic_core'
-bash: 2022-11-07T12:22:12+01:00: command not found
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 systemd[1]: snap.fastapidemo.run.service: Main process exited, code=exited, status=1/FAILURE
-bash: 2022-11-07T12:22:12+01:00: command not found
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 systemd[1]: snap.fastapidemo.run.service: Failed with result 'exit-code'.
-bash: 2022-11-07T12:22:12+01:00: command not found
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 systemd[1]: snap.fastapidemo.run.service: Scheduled re start job, restart counter is at 6.
-bash: 2022-11-07T12:22:12+01:00: command not found
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 systemd[1]: Stopped Service for snap application fasta pidemo.run.
-bash: 2022-11-07T12:22:12+01:00: command not found
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 systemd[1]: snap.fastapidemo.run.service: Start reques t repeated too quickly.
-bash: 2022-11-07T12:22:12+01:00: command not found
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 systemd[1]: snap.fastapidemo.run.service: Failed with result 'exit-code'.
-bash: 2022-11-07T12:22:12+01:00: command not found
larsroot@CtrlX-X3:~$ 2022-11-07T12:22:12+01:00 systemd[1]: Failed to start Service for snap application
It seems to be the problem with the package pydantic-core.
yaml file is as follows
name: fastapidemo
version: 0.1.2.0
summary: fastapidemo
description: 'simple demo-test1'
base: core20
confinement: strict
grade: stable
# Limit architectures as ppcel64 doesn't build currently
architectures:
- build-on: amd64
- build-on: arm64
apps:
run:
command: bin/launcher.wrapper
daemon: simple
plugs:
- network-bind
- network-status
- network-observe
- serial-port
- datalayer
environment:
"LD_LIBRARY_PATH": "$LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/lapack:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/blas:$SNAP/usr/lib/python3/dist-packages"
desktop-launch:
command: bin/desktop-launch
plugs:
- desktop
parts:
requests:
plugin: python
build-environment:
- PYTHONPATH: "$SNAPCRAFT_PART_INSTALL/usr/lib/python3/dist-packages"
stage-packages:
- wget
- git
- zip
- libssl-dev
- libcurl4-openssl-dev
- libcurl-dev
- pkg-config
- build-essential
- unzip
- python3-wheel
python-packages:
- wheel
- requests
- flask
- fastapi
- uvicorn
build-packages:
- python3-dev
- python3-wheel
- build-essential
- python3-setuptools
datalayerdeb:
plugin: dump
source: https://github.com/boschrexroth/ctrlx-automation-sdk/releases/download/1.18.0/ctrlx-datalayer-1.9.1.deb
source-type: deb
stage-packages:
- libzmq5
shscripts:
source: ./shscripts/
plugin: dump
organize:
'*': bin/
configs:
source: ./configs
plugin: dump
organize:
'package-assets/*': package-assets/${SNAPCRAFT_PROJECT_NAME}/
'secure-assets/*': secure-assets/${SNAPCRAFT_PROJECT_NAME}/
plugs:
datalayer:
interface: content
content: datalayer
target: $SNAP_DATA/.datalayer
slots:
secure-assets:
interface: content
content: secure-assets
source:
read:
- $SNAP/secure-assets/${SNAPCRAFT_PROJECT_NAME}
service-token:
interface: content
content: service-token
source:
write:
- $SNAP_DATA/service-token/${SNAPCRAFT_PROJECT_NAME}
package-assets:
interface: content
content: package-assets
source:
read:
- $SNAP/package-assets/${SNAPCRAFT_PROJECT_NAME}