Add link flags for grpc armv7 wheels (attempt #2)#63521
Add link flags for grpc armv7 wheels (attempt #2)#63521frenck merged 1 commit intohome-assistant:devfrom
Conversation
Add link flags, as another attempt of PR home-assistant#63518 with two differences: - Don't quote docker env flags, since the quotes are treated as part of the variable. (My previous attempts at testing this were with pip3 commands and environment variables inside docker build phase, and not using --env-file.) - Add grpcio to the skip-binary list so that the armv7 build does not attempt to use an existing wheel, but instead always builds from source (this is why it succeeded). The idea here being that we want to ensure we use a wheel built specifically for alpine rather than a generic arm wheel.
Try again PR home-assistant#63493 to kick off grpcio wheel build. This should not be merged until home-assistant#63521 which sets flags to build grpcio from source with all the required link flags.
|
Here is some additional context for how I tested the two changes manually. Instead of using the stripped down builder, I used the environment that invokes the wheel builder. It's not exactly the same as what runs on CI, but much closer. There are a set of commands in https://github.com/allenporter/home-assistant-wheels/tree/issue-grpc/docker that basically set environment variables and attempt to create docker containers than run the wheel builder. Here are some more details on how I manually tested the two additional changes. I ran these on both amd64 and armv7 and they both had the same result. For bug 1I reproduced the failure we saw last attempt with the quotes in the --env-file: Then, running that again without the quotes in the --env-file: So I have higher confidence this will work. For bug 2I previously added --skip-binary="grpcio" in my local wheel builder as I saw it attempting to reuse an existing wheel when manually testing, similar to what we saw on CI for armv7. I forgot to add this in the original PR to update the link flags. I also tested this again with |
Proposed change
Add link flags, as another attempt of PR #63518 with two differences:
Original PR description:
Add
-lexecinfoto the list of GRPC LDFLAGS, which allows the home assistant wheel builder to create wheels for armv7 grpc builds.This is needed because:
libexecinfo-devin the builderbacktraceas part of the system library, however it can come from `-lexecinfoThis allows building a grpc 1.43.0 wheel on armv7 alpine 3.14 with python 3.9
GRPC currently does not have a way to add a single LDFLAG, so the existing LDFLAGS are copied until an option for that is added, which I can explore.
Type of change
Additional information
Checklist
black --fast homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all..coveragerc.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: