Well, I got it to build. Now let's see if I can remember how.
There is a long list of dependency packages on this page:
https://github.com/monero-project/monero
Arch has a shorter list of deps for their binary package:
https://www.archlinux.org/packages/commu...64/monero/
The Manjaro x86_64 binary packages have the same dep list (in .PKGINFO) as the Arch ones.
This older howto on buillding on Arch from 2016 (monero v0.9 vs the current 0.17) lists some additional deps besides the arch/manjaro ones:
miniupnpc unbound graphviz doxygen curl gtest
monero has its own copies of gtest, miniupnpc & unbound as subprojects, and miniupnpc is no longer listed as a dependency. curl is probably installed already.
https://www.archlinux.org/packages/commu...onero-gui/
unbound is in the deps for monero-gui but not monero. Hm.
When I tried building with just the Arch deps, I see:
Code:
Monero crypto autodetect failed to find any libraries for target platform
Defaulting to internal crypto library for wallet
-- Trezor support enabled
-- Building tests
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
-- GTest not found on the system: will use GTest bundled with this source
Monero crypto autodetect failed to find any libraries for target platform
Wallet crypto bench is using cn
-- Not building debug utilities
Doxygen: graphviz not found - graphs disabled
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
So the binary package just leaves out a couple of dependencies that turn off optional functionality; that's interesting.
Building monero-gui from the git clone will pull in monero as a subproject, so it's sufficient to just build monero-gui. (If you've already cloned & built monero, the directory would need to be symlinked from monero-gui/monero so the build script can find it.)
So far as the number of threads to use, with the default amount of swap, even allowing 4 causes the system to run out of swap & hang. We could configure more swap, but we don't want it to swap too much, and it already swaps a fair bit at points in the build when using 2 threads. The developers' guidance is one thread per 2 GB of RAM. The PBP has 4 GB RAM, two large cores, and four small cores. I ended up using two.
Note that the SD card installs of Manjaro apparently don't configure any swap by default, so if you're not on an eMMC install, you'll need to configure swap or even two threads will hang.
Over several attempts to build, I came to prefer leaving nothing else running, display sleep turned off, and "top" up & visible so I could see at a glance if it'd run out of swap & wedged. If you want to use the system interactively at the same time, use 1 thread & configure more swap.
Make sure you have a couple GB of spare disk space before starting.
It does build, but it's enough of a chore on this hardware that someone should really start maintaining an aarch64 binary package.
So, anyway, I'd say,
Code:
sudo pacman -S --needed git base-devel boost cmake doxygen graphviz gtest hidapi libunwind openssl pcsclite protobuf readline zeromq hicolor-icon-theme qt5-base qt5-declarative qt5-graphicaleffects qt5-quickcontrols qt5-quickcontrols2 qt5-svg qt5-xmlpatterns unbound
git clone https://github.com/monero-project/monero-gui.git
cd monero-gui
QT_SELECT=5 CPU_CORE_COUNT=2 ./build.sh
Did that do it? Did I forget anything?