Comments (16)
I'll try to set it up!
from porla.
I got it to build, requires building ninja from source, and vcpg will compile from source due to no binary build.
It also requires at least 4GB of RAM (at least if running on actual Raspberry Pi for the arm64 version).
from porla.
Did you verify that it runs as well as builds?
No, as stripping step currently fails due to binary not being called porla but rather porla_x64
or porla_arm64
:D
Made a PR for just build-env things: #181
from porla.
Just wondering if there has been any update on this?
Thanks!
from porla.
Hi! No real update so far. I've been trying some easy way to integrate an ARM build in the Github workflows but haven't gotten to a solution yet. It's still on the radar though!
from porla.
@vktr I'm trying to get arm64 PR going, but just noticed that the ninja binary that's used, is amd64 only so that would need to be compiled from scratch possibly..
from porla.
I'm open to switching to regular make
if that helps! If you can get a PR going with that, I'll switch in a heartbeat. Keep in mind also that there's a base image with pre-built dependencies, which might have to be removed since those are amd64 only for now.
from porla.
It seems that building for arm64-linux-musl is not possible easilly at least..
/usr/local/src/porla/build # cmake -DCMAKE_EXE_LINKER_FLAGS="-static -Os" -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=arm64-linux-musl-release -G Ninja ..
-- Running vcpkg install
error: Invalid triplet: arm64-linux-musl-release
Available architecture triplets:
vcpkg built-in triplets:
arm64-windows
x86-windows
x64-windows-static
x64-linux
x64-windows
x64-osx
arm-uwp
x64-uwp
VCPKG community triplets:
arm64-ios
x86-ios
arm-neon-android
x64-osx-release
x64-mingw-static
x64-uwp-static-md
arm64-osx-dynamic
x64-xbox-scarlett
ppc64le-linux-release
x86-mingw-dynamic
x64-mingw-dynamic
s390x-linux
x86-android
arm-windows-static
arm-mingw-static
x64-xbox-xboxone-static
arm64-windows-static
x64-openbsd
x86-windows-v120
arm64-osx-release
x86-windows-static
x64-linux-dynamic
arm64-uwp-static-md
x64-xbox-scarlett-static
riscv32-linux
x86-freebsd
riscv64-linux
arm64ec-windows
arm-linux
x86-windows-static-md
x86-uwp
arm64-android
x86-mingw-static
x64-freebsd
arm64-uwp
arm64-linux-release
arm-mingw-dynamic
riscv32-linux-release
x86-linux
arm64-mingw-static
x86-uwp-static-md
arm-android
arm64-mingw-dynamic
x64-windows-static-release
x64-osx-dynamic
s390x-linux-release
arm64-windows-static-release
ppc64le-linux
x64-windows-static-md
wasm32-emscripten
x64-android
arm-windows
x64-linux-release
x64-xbox-xboxone
arm-uwp-static-md
arm64-windows-static-md
arm64-osx
arm-linux-release
armv6-android
riscv64-linux-release
x64-ios
arm-ios
arm64-linux
x64-windows-release
Overlay triplets from /usr/local/src/porla/vendor/vcpkg-triplets :
x64-linux-musl-release
-- Running vcpkg install - failed
CMake Error at vendor/vcpkg/scripts/buildsystems/vcpkg.cmake:893 (message):
vcpkg install failed. See logs for more information:
/usr/local/src/porla/build/vcpkg-manifest-install.log
Call Stack (most recent call first):
/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:148 (include)
CMakeLists.txt:6 (project)
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
from porla.
It seems that building for arm64-linux-musl is not possible easilly at least..
/usr/local/src/porla/build # cmake -DCMAKE_EXE_LINKER_FLAGS="-static -Os" -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=arm64-linux-musl-release -G Ninja .. -- Running vcpkg install error: Invalid triplet: arm64-linux-musl-release Available architecture triplets: vcpkg built-in triplets: arm64-windows x86-windows x64-windows-static x64-linux x64-windows x64-osx arm-uwp x64-uwp VCPKG community triplets: arm64-ios x86-ios arm-neon-android x64-osx-release x64-mingw-static x64-uwp-static-md arm64-osx-dynamic x64-xbox-scarlett ppc64le-linux-release x86-mingw-dynamic x64-mingw-dynamic s390x-linux x86-android arm-windows-static arm-mingw-static x64-xbox-xboxone-static arm64-windows-static x64-openbsd x86-windows-v120 arm64-osx-release x86-windows-static x64-linux-dynamic arm64-uwp-static-md x64-xbox-scarlett-static riscv32-linux x86-freebsd riscv64-linux arm64ec-windows arm-linux x86-windows-static-md x86-uwp arm64-android x86-mingw-static x64-freebsd arm64-uwp arm64-linux-release arm-mingw-dynamic riscv32-linux-release x86-linux arm64-mingw-static x86-uwp-static-md arm-android arm64-mingw-dynamic x64-windows-static-release x64-osx-dynamic s390x-linux-release arm64-windows-static-release ppc64le-linux x64-windows-static-md wasm32-emscripten x64-android arm-windows x64-linux-release x64-xbox-xboxone arm-uwp-static-md arm64-windows-static-md arm64-osx arm-linux-release armv6-android riscv64-linux-release x64-ios arm-ios arm64-linux x64-windows-release Overlay triplets from /usr/local/src/porla/vendor/vcpkg-triplets : x64-linux-musl-release -- Running vcpkg install - failed CMake Error at vendor/vcpkg/scripts/buildsystems/vcpkg.cmake:893 (message): vcpkg install failed. See logs for more information: /usr/local/src/porla/build/vcpkg-manifest-install.log Call Stack (most recent call first): /usr/share/cmake/Modules/CMakeDetermineSystem.cmake:148 (include) CMakeLists.txt:6 (project) CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!
Unfortunately, Ninja isn't the issue. I created a Dockerfile with a Ninja build step (works fine) and halfway through the vcpkg install it will fail, I'm unsure as to fix it but I'll find the Dockerfile I made
Sorry, read your comment in bed soon after waking up haha. Yeah the issue I ran into I wasn't able to build it in an alpine container
from porla.
Alpine uses samurai and there is no ninja package to be installed. This is why I build my own
https://github.com/userdocs/qbt-ninja-build/releases/tag/v1.12.0
from porla.
I got build-env built using docker buildx and physical hardware and it took 7910.8s to run which is ~2 hours.
docker buildx build . -f Dockerfile.build-env --builder=kube --platform linux/arm64,linux/amd64 --push -t registry.samipsolutions.fi/library/porla-build-env:20230605
from porla.
from porla.
Update: Building of porla itself takes combined 2678s on real hardware which is ~45 minutes.
@vktr Do you have real aarch64 hardware? It needs at least 4GB of RAM for the build-env job and I managed to build it using a Raspberry Pi Compute Module 4 with 8GB of RAM.
from porla.
I have some R-Pi 4's around, but sounds like a good excuse to source me a Compute module 😃 Did you verify that it runs as well as builds?
from porla.
Experimental docker image is at: registry.samipsolutions.fi/library/porla:dev
that should work on arm64 and amd64. :)
from porla.
Hi! With the much appreciated help of @samip5 - the latest beta version of Porla now supports arm64.
docker pull ghcr.io/porla/porla:beta-latest
from porla.
Related Issues (20)
- Add paused, removed, resumed to workflows.triggers.torrent.lua
- Improve metrics exporter
- Use better error logging when cURL fails
- [Web UI] Ordering by ETA (ascending)
- Is it possible to add a Trackerlist settings option for the webui. HOT 2
- [0x00007f43462d5a60] [error] Out of memory when hashing password HOT 3
- Option to hide presets in the WebUI
- Use $HOME/Downloads as a default save path if no other is specified HOT 1
- Create Workflows in the WebUI HOT 1
- peer ID and user agent HOT 1
- Create event for file_error
- Duplicate Magnet links cause crashes
- JSONRPC Error for method torrents.list
- Error when loading workflow from docs: "module 'workflows' not found" HOT 4
- Project status HOT 4
- Command for reloading config file HOT 1
- Add a communication channel between Lua components HOT 1
- Is this project alive? HOT 4
- Is there LICENSE file ? HOT 1
- `proxy_username` and `proxy_password` don't seem to be set HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from porla.