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

Add Omni-Bot support for Linux aarch64 (aka RPI/RPIT builds) #2539

Open
Exagone313 opened this issue Apr 16, 2024 · 10 comments
Open

Add Omni-Bot support for Linux aarch64 (aka RPI/RPIT builds) #2539

Exagone313 opened this issue Apr 16, 2024 · 10 comments
Labels
💡 Feature New feature or request P3: Normal Priority 3 📝 Task Indirectly related to code: libs update, documentation
Milestone

Comments

@Exagone313
Copy link
Contributor

Currently, when ET Legacy is installed or built, Omni-Bot binaries only come for other systems/architectures, no binaries for Linux aarch64 are included.

The goal of this issue is to find a way to build Omni-Bot for this architecture and then ship officially built binaries on new installations.

@Exagone313
Copy link
Contributor Author

Exagone313 commented Apr 16, 2024

@mittermichal
Copy link
Contributor

not just RPi, many VPS providers now offer hosting on this architecture

@rafal1137
Copy link
Member

There is a section about omnibot compilation on aarch64
https://techyian.github.io/2018-10-14-install-enemy-territory-on-raspberry-pi/

@Exagone313
Copy link
Contributor Author

Exagone313 commented Apr 17, 2024

This post misses the Boost installation part, but I got most of the pieces.

My goal is to implement this compilation in Omni-Bot's CI, as official builds come from there.

Since GitHub Actions doesn't have aarch64 runners, I'm trying to cross-compile from x86-64. It's unfortunate that it is required to have libboost built with -fPIC to be able to build the omni-bot library, as distributions don't have static libraries compiled with this flag.

I'm first trying a build with the b2 tool from Boost but then I'll modify the CMake files in Omni-Bot repository once it is working.

@sebdanielsson
Copy link

This post misses the Boost installation part, but I got most of the pieces.

My goal is to implement this compilation in Omni-Bot's CI, as official builds come from there.

Since GitHub Actions doesn't have aarch64 runners, I'm trying to cross-compile from x86-64. It's unfortunate that it is required to have libboost built with -fPIC to be able to build the omni-bot library, as distributions don't have static libraries compiled with this flag.

I'm first trying a build with the b2 tool from Boost but then I'll modify the CMake files in Omni-Bot repository once it is working.

If it's possible to build under macOS, GitHub offers arm64 runners since January.
https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/

@Exagone313
Copy link
Contributor Author

Exagone313 commented Apr 21, 2024

I successfully cross-built omni-bot for aarch64 (using an x86-64 host), see the steps I used on jswigart/omni-bot#22 (comment)

I had some issues so editing CMake and GitHub actions on omni-bot repository won't be as easy as I wanted.

@rafal1137
Copy link
Member

@Exagone313 Looks like its done/fixed. Do you want to close this issue by yourself ?

@Exagone313
Copy link
Contributor Author

@rafal1137 Only a part is done, this issue will be completed once ET legacy can ship omni-bot for Linux aarch64.

@Aranud Aranud added P3: Normal Priority 3 💡 Feature New feature or request 📝 Task Indirectly related to code: libs update, documentation labels Apr 22, 2024
@Aranud Aranud added this to the Future milestone Apr 22, 2024
@rafal1137
Copy link
Member

aarch omnibot file should be included in atleast latest snapshot build
This issue can be closed

@Exagone313
Copy link
Contributor Author

@rafal1137 I don't think it does:

$ curl -LO https://mirror.etlegacy.com/omnibot/omnibot-linux-latest.tar.gz
$ tar tf omnibot-linux-latest.tar.gz | grep 'so$'
omni-bot/omnibot_et_mac.so
omni-bot/omnibot_et.so
omni-bot/omnibot_et.x86_64.so

The binaries included in the archive are from omni-bot latest release ET archive which doesn't contain Linux aarch64 binaries since it depends on builds made from the CI of omni-bot repository.

It'll be fixed when I (or someone else) will have modified omni-bot CI and then convinced the omni-bot maintainer to make a new release with this CI 😄

Then the new official binary could be included in the ET Legacy omni-bot mirror archives and next ET Legacy releases will be able to ship with Linux aarch64 omni-bot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💡 Feature New feature or request P3: Normal Priority 3 📝 Task Indirectly related to code: libs update, documentation
Projects
None yet
Development

No branches or pull requests

5 participants