Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-enabling support for arm/v6 #1708

Closed
berndkrannich opened this issue Jul 31, 2023 · 12 comments · Fixed by #1724
Closed

Re-enabling support for arm/v6 #1708

berndkrannich opened this issue Jul 31, 2023 · 12 comments · Fixed by #1724
Assignees
Labels
arm32v7 / rPi / etc help wanted Extra attention is needed upstream-bug issue with library - not directly with changedetection

Comments

@berndkrannich
Copy link

berndkrannich commented Jul 31, 2023

Describe the bug
Thank you very much for building changedetection.io!

I saw that c35cbd3 reads "Removing docker build for RaspberryPi (arm/v6 and arm/v7) for now due to packaging problems". I was wondering if there is some more background regarding the packaging problems so that I can potentially support investigating to eventually get arm/v6 and arm/v7 support back in.

Version
v0.44 docker image at https://hub.docker.com/r/dgtlmoon/changedetection.io/tags.

To Reproduce

Steps to reproduce the behavior:

docker pull --platform=linux/arm/v7 dgtlmoon/changedetection.io:0.44

0.44: Pulling from dgtlmoon/changedetection.io
no matching manifest for linux/arm/v7 in the manifest list entries

Expected behavior

0.44: Pulling from dgtlmoon/changedetection.io
...
Digest: sha256...
Status: Image is up to date for dgtlmoon/changedetection.io:0.44
docker.io/dgtlmoon/changedetection.io:0.44

Screenshots
n/a

Desktop (please complete the following information):
n/a

Smartphone (please complete the following information):
n/a

Additional context
Worked up until (including) 0.43.2.

@dgtlmoon
Copy link
Owner

That is correct, here is a working branch if you want to help #1697

otherwise I have no time and no idea how to fix it :( sorry

@dgtlmoon
Copy link
Owner

I was wondering if there is some more background regarding the packaging problems so that I can potentially support investigating to eventually get arm/v6 and arm/v7 support back in.

You can publicly see the build step here and see how it failed
https://github.com/dgtlmoon/changedetection.io/actions/runs/5577810614/job/15104184811

@berndkrannich
Copy link
Author

@dgtlmoon: I believe the issue shown in the Github actions run you referenced is meanwhile fixed in pyyaml v6.0.1 via block Cython 3.0+ as a build dep.

At least for me, the following worked fine locally (and it likely broke when you tried it some days back):

docker buildx build --platform=linux/arm/v7 .

However, there seems to be another/different issue with arm/v6 meanwhile, related to rpds-py requiring the Rust compiler to be available. I believe this is related to Document the rust toolchain requirement for source installs and build MUSL wheels and Add a note on installation instructions (and the need for rust)., so seems like rpds-py doesn't have a wheel for arm/v6.

I guess, that leaves a couple of options:

  • Try to get a wheel for rpds-pyand arm/v6.
  • Only re-enable arm/v7.
  • Try to include the Rust toolchain.

Not sure which way to go - thoughts?

@stuartf
Copy link

stuartf commented Aug 1, 2023

I was also able to build the latest unmodified master branch on an rpi arm/v7.

@dgtlmoon
Copy link
Owner

dgtlmoon commented Aug 1, 2023

I guess, that leaves a couple of options:
Try to get a wheel for rpds-pyand arm/v6.
Only re-enable arm/v7.
Try to include the Rust toolchain.

ARMv7 Looks OK #1713

But ARMv6+ARMv7 Does not https://github.com/dgtlmoon/changedetection.io/actions/runs/5727409864

I'll merge in ARMv7 support again, thanks for that, and I'll keep this ticket open for v6

@berndkrannich
Copy link
Author

Thank you very much, @dgtlmoon, for the prompt follow-up!

The arm/v6 error is consistent with what I'm getting locally. Thus, I believe, out of the three options I listed, for arm/v6 we could...

  • Try to get a wheel for rpds-py and arm/v6.
  • Try to include the Rust toolchain.

Any preference for which one to pick? I won't be able to take another look during the next few days but if you have a preference, I could give it a try.

@dgtlmoon dgtlmoon changed the title Re-enabling support for arm/v6 and arm/v7 Re-enabling support for arm/v6 Aug 1, 2023
@dgtlmoon
Copy link
Owner

dgtlmoon commented Aug 1, 2023

Try to get a wheel for rpds-py and arm/v6.

(preferred) Fine by me.. I would prefer this if it fixes an upstream bug in rpds-py ? is it possible?

Try to include the Rust toolchain.

Maybe, but only if it doesn't affect the build/image size.. unsure, likely to cause problems I think

@dgtlmoon
Copy link
Owner

dgtlmoon commented Aug 1, 2023

#1713 merged, bringing back ARMv7 🙏 thanks all.

@dgtlmoon dgtlmoon added help wanted Extra attention is needed arm32v7 / rPi / etc upstream-bug issue with library - not directly with changedetection and removed triage labels Aug 1, 2023
@marceloalencar
Copy link
Contributor

marceloalencar commented Aug 7, 2023

rpds-py is required by jsonschema. This requirement was added on jsonschema v4.18.0.
The last version without this requirement was v4.17.3.
jsonschema is needed by flask-expects-json, which wasn't updated and is still v1.7.0, as set on requirements.txt.

@marceloalencar
Copy link
Contributor

An issue has been filled on piwheels: piwheels/packages#380

@berndkrannich
Copy link
Author

@dgtlmoon, @marceloalencar: With piwheels/packages#380 marked as fixed for arm/v6, I wonder if the version pinning of jsonschema done in #1724 could/should be undone?

@marceloalencar
Copy link
Contributor

marceloalencar commented Sep 17, 2023

Yes, once #1782 is applied. Otherwise it will always try to compile from source.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arm32v7 / rPi / etc help wanted Extra attention is needed upstream-bug issue with library - not directly with changedetection
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants