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

Linux aarch x64 support? #680

Closed
donbeave opened this issue Oct 17, 2022 · 5 comments · Fixed by #688
Closed

Linux aarch x64 support? #680

donbeave opened this issue Oct 17, 2022 · 5 comments · Fixed by #688

Comments

@donbeave
Copy link

We just started experimenting with building our Java application on Linux ARM and it failed, but it works fine on macOS ARM. The error is:

Could not find protoc-gen-validate-0.6.13-linux-aarch_64.exe (io.envoyproxy.protoc-gen-validate:protoc-gen-validate:0.6.13).

I have checked that protoc-gen-validate is not available for linux-aarch_64, but available for osx-aarch_64.

@elliotmjackson
Copy link
Contributor

elliotmjackson commented Oct 17, 2022

Hey @donbeave! About 15 minutes ago I merged in goreleaser support to run on next release... heres an example of what it will spit out for you. I will be cutting a release soon.
image

Will this resolve your request?

@donbeave
Copy link
Author

It looks like the problem is in the pom.xml file, this is a version from current master:

                <executions>
                    <execution>
                        <id>osx-x86_64</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <executable>go</executable>
                            <arguments>
                                <argument>build</argument>
                                <argument>-o</argument>
                                <argument>${project.build.directory}/protoc-gen-validate-${project.version}-osx-x86_64.exe</argument>
                                <argument>../..</argument>
                            </arguments>
                            <environmentVariables>
                                <GOOS>darwin</GOOS>
                                <GOARCH>amd64</GOARCH>
                            </environmentVariables>
                        </configuration>
                    </execution>
                    <execution>
                        <id>osx-aarch_64</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <executable>go</executable>
                            <arguments>
                                <argument>build</argument>
                                <argument>-o</argument>
                                <argument>${project.build.directory}/protoc-gen-validate-${project.version}-osx-aarch_64.exe</argument>
                                <argument>../..</argument>
                            </arguments>
                            <environmentVariables>
                                <GOOS>darwin</GOOS>
                                <GOARCH>arm64</GOARCH>
                            </environmentVariables>
                        </configuration>
                    </execution>
                    <execution>
                        <id>linux_x86_32</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <executable>go</executable>
                            <arguments>
                                <argument>build</argument>
                                <argument>-o</argument>
                                <argument>${project.build.directory}/protoc-gen-validate-${project.version}-linux-x86_32.exe</argument>
                                <argument>../..</argument>
                            </arguments>
                            <environmentVariables>
                                <GOOS>linux</GOOS>
                                <GOARCH>386</GOARCH>
                            </environmentVariables>
                        </configuration>
                    </execution>
                    <execution>
                        <id>linux_x86_64</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <executable>go</executable>
                            <arguments>
                                <argument>build</argument>
                                <argument>-o</argument>
                                <argument>${project.build.directory}/protoc-gen-validate-${project.version}-linux-x86_64.exe</argument>
                                <argument>../..</argument>
                            </arguments>
                            <environmentVariables>
                                <GOOS>linux</GOOS>
                                <GOARCH>amd64</GOARCH>
                            </environmentVariables>
                        </configuration>
                    </execution>
                    <execution>
                        <id>windows_x86_32</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <executable>go</executable>
                            <arguments>
                                <argument>build</argument>
                                <argument>-o</argument>
                                <argument>${project.build.directory}/protoc-gen-validate-${project.version}-windows-x86_32.exe</argument>
                                <argument>../..</argument>
                            </arguments>
                            <environmentVariables>
                                <GOOS>windows</GOOS>
                                <GOARCH>386</GOARCH>
                            </environmentVariables>
                        </configuration>
                    </execution>
                    <execution>
                        <id>windows_x86_64</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <executable>go</executable>
                            <arguments>
                                <argument>build</argument>
                                <argument>-o</argument>
                                <argument>${project.build.directory}/protoc-gen-validate-${project.version}-windows-x86_64.exe</argument>
                                <argument>../..</argument>
                            </arguments>
                            <environmentVariables>
                                <GOOS>windows</GOOS>
                                <GOARCH>amd64</GOARCH>
                            </environmentVariables>
                        </configuration>
                    </execution>
                </executions>

There is an execution for osx-aarch_64, but not execution for linux-aarch_64.

@donbeave
Copy link
Author

Probably can be fixed by adding such a configuration:

                    <execution>
                        <id>linux-aarch_64</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <executable>go</executable>
                            <arguments>
                                <argument>build</argument>
                                <argument>-o</argument>
                                <argument>${project.build.directory}/protoc-gen-validate-${project.version}-linux-aarch_64.exe</argument>
                                <argument>../..</argument>
                            </arguments>
                            <environmentVariables>
                                <GOOS>linux</GOOS>
                                <GOARCH>arm64</GOARCH>
                            </environmentVariables>
                        </configuration>
                    </execution>

elliotmjackson added a commit that referenced this issue Oct 19, 2022
There is an execution for osx-aarch_64, but not execution for
linux-aarch_64 in the `pom.xml` file
@donbeave
Copy link
Author

donbeave commented Nov 3, 2022

@elliotmjackson when do you plan to release a new version?

@donbeave
Copy link
Author

donbeave commented Nov 7, 2022

@elliotmjackson Just checked the latest release version 0.8.0 and found that the ARM build is also missing, please check it here:

https://repo1.maven.org/maven2/build/buf/protoc-gen-validate/protoc-gen-validate/0.8.0/

It should have a file protoc-gen-validate-0.8.0-linux-aarch_64.exe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants