avgttt / PePe-core

MIT License
11 stars 15 forks source link

No Linux ARM64 binaries available #11

Open MattF42 opened 1 year ago

MattF42 commented 1 year ago

See lower down. V0.6 binaries now available

See lower down. V0.5 binaries now available.


This took quite an effort to build on Ubuntu 22.04 ARM64.

The resulting binaries are available at: https://home.mattfoster.me.uk/PEPEPOW-v0.4-aarch64-linux.tar.gz

sha256sum /var/www/html/PEPEPOW-v0.4-aarch64-linux.tar.gz 5f12ed5bfd5a0eeccbcb5d9739cf0285ade42471aac73cf499920ee49eacf138 /var/www/html/PEPEPOW-v0.4-aarch64-linux.tar.gz

md5sum /var/www/html/PEPEPOW-v0.4-aarch64-linux.tar.gz 45afa28ce64ebd9176cb8975960c4112 /var/www/html/PEPEPOW-v0.4-aarch64-linux.tar.gz

machac2018 commented 1 year ago

./PEPEPOW-cli: error while loading shared libraries: libboost_thread.so.1.74.0: cannot open shared object file: No such file or directory

machac2018 commented 1 year ago

./PEPEPOW_qt: error while loading shared libraries: libzmq.so.5: cannot open shared object file: No such file or directory is on RPI4 I tryed installing sudo apt install libboost-dev

is a plain image of rpi Raspberry Pi OS Lite Release date: May 3rd 2023 System: 64-bit Kernel version: 6.1 Debian version: 11 (bullseye)

machac2018 commented 1 year ago

Do you think is it possible to get it work in ARM32 for RPI3 ??

MattF42 commented 1 year ago

libzmq

Try apt install libzmq5

To be clear, I built it on ubuntu 22.04 ARM64 rather than Raspbian. I haven't run it on a Pi4 yet, but no reason to suspect it won't if the correct libraries are in place. If it helps, here is the ldd output: root@instance-20220901-1936:/home/ubuntu# ldd /usr/local/bin/PEPEPOW_qt linux-vdso.so.1 (0x0000ffff96788000) libzmq.so.5 => /lib/aarch64-linux-gnu/libzmq.so.5 (0x0000ffff955d0000) libboost_filesystem.so.1.74.0 => /lib/aarch64-linux-gnu/libboost_filesystem.so.1.74.0 (0x0000ffff955a0000) libboost_program_options.so.1.74.0 => /lib/aarch64-linux-gnu/libboost_program_options.so.1.74.0 (0x0000ffff95550000) libboost_thread.so.1.74.0 => /lib/aarch64-linux-gnu/libboost_thread.so.1.74.0 (0x0000ffff95510000) libboost_chrono.so.1.74.0 => /lib/aarch64-linux-gnu/libboost_chrono.so.1.74.0 (0x0000ffff954f0000) libQt5Network.so.5 => /lib/aarch64-linux-gnu/libQt5Network.so.5 (0x0000ffff95320000) libQt5Widgets.so.5 => /lib/aarch64-linux-gnu/libQt5Widgets.so.5 (0x0000ffff94c60000) libQt5Gui.so.5 => /lib/aarch64-linux-gnu/libQt5Gui.so.5 (0x0000ffff945f0000) libQt5DBus.so.5 => /lib/aarch64-linux-gnu/libQt5DBus.so.5 (0x0000ffff94540000) libQt5Core.so.5 => /lib/aarch64-linux-gnu/libQt5Core.so.5 (0x0000ffff93ff0000) libprotobuf.so.23 => /lib/aarch64-linux-gnu/libprotobuf.so.23 (0x0000ffff93d40000) libdb_cxx-5.3.so => /lib/aarch64-linux-gnu/libdb_cxx-5.3.so (0x0000ffff93b70000) libcrypto.so.3 => /lib/aarch64-linux-gnu/libcrypto.so.3 (0x0000ffff93780000) libevent_pthreads-2.1.so.7 => /lib/aarch64-linux-gnu/libevent_pthreads-2.1.so.7 (0x0000ffff93760000) libevent-2.1.so.7 => /lib/aarch64-linux-gnu/libevent-2.1.so.7 (0x0000ffff936f0000) libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff934c0000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff93420000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff933f0000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff93240000) /lib/ld-linux-aarch64.so.1 (0x0000ffff9674f000) libbsd.so.0 => /lib/aarch64-linux-gnu/libbsd.so.0 (0x0000ffff93210000) libsodium.so.23 => /lib/aarch64-linux-gnu/libsodium.so.23 (0x0000ffff931c0000) libpgm-5.3.so.0 => /lib/aarch64-linux-gnu/libpgm-5.3.so.0 (0x0000ffff93160000) libnorm.so.1 => /lib/aarch64-linux-gnu/libnorm.so.1 (0x0000ffff93020000) libgssapi_krb5.so.2 => /lib/aarch64-linux-gnu/libgssapi_krb5.so.2 (0x0000ffff92fc0000) libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff92f90000) libGL.so.1 => /lib/aarch64-linux-gnu/libGL.so.1 (0x0000ffff92e90000) libpng16.so.16 => /lib/aarch64-linux-gnu/libpng16.so.16 (0x0000ffff92e40000) libharfbuzz.so.0 => /lib/aarch64-linux-gnu/libharfbuzz.so.0 (0x0000ffff92d60000) libmd4c.so.0 => /lib/aarch64-linux-gnu/libmd4c.so.0 (0x0000ffff92d40000) libdbus-1.so.3 => /lib/aarch64-linux-gnu/libdbus-1.so.3 (0x0000ffff92ce0000) libdouble-conversion.so.3 => /lib/aarch64-linux-gnu/libdouble-conversion.so.3 (0x0000ffff92cb0000) libicui18n.so.70 => /lib/aarch64-linux-gnu/libicui18n.so.70 (0x0000ffff92980000) libicuuc.so.70 => /lib/aarch64-linux-gnu/libicuuc.so.70 (0x0000ffff92770000) libpcre2-16.so.0 => /lib/aarch64-linux-gnu/libpcre2-16.so.0 (0x0000ffff926e0000) libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff92610000) libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000ffff924c0000) libevent_core-2.1.so.7 => /lib/aarch64-linux-gnu/libevent_core-2.1.so.7 (0x0000ffff92470000) libmd.so.0 => /lib/aarch64-linux-gnu/libmd.so.0 (0x0000ffff92450000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff92430000) libkrb5.so.3 => /lib/aarch64-linux-gnu/libkrb5.so.3 (0x0000ffff92350000) libk5crypto.so.3 => /lib/aarch64-linux-gnu/libk5crypto.so.3 (0x0000ffff92310000) libcom_err.so.2 => /lib/aarch64-linux-gnu/libcom_err.so.2 (0x0000ffff922f0000) libkrb5support.so.0 => /lib/aarch64-linux-gnu/libkrb5support.so.0 (0x0000ffff922d0000) libGLdispatch.so.0 => /lib/aarch64-linux-gnu/libGLdispatch.so.0 (0x0000ffff92140000) libGLX.so.0 => /lib/aarch64-linux-gnu/libGLX.so.0 (0x0000ffff920f0000) libfreetype.so.6 => /lib/aarch64-linux-gnu/libfreetype.so.6 (0x0000ffff92020000) libgraphite2.so.3 => /lib/aarch64-linux-gnu/libgraphite2.so.3 (0x0000ffff91ff0000) libsystemd.so.0 => /lib/aarch64-linux-gnu/libsystemd.so.0 (0x0000ffff91f10000) libicudata.so.70 => /lib/aarch64-linux-gnu/libicudata.so.70 (0x0000ffff902e0000) libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000ffff90260000) libkeyutils.so.1 => /lib/aarch64-linux-gnu/libkeyutils.so.1 (0x0000ffff90240000) libresolv.so.2 => /lib/aarch64-linux-gnu/libresolv.so.2 (0x0000ffff90210000) libX11.so.6 => /lib/aarch64-linux-gnu/libX11.so.6 (0x0000ffff900c0000) libbrotlidec.so.1 => /lib/aarch64-linux-gnu/libbrotlidec.so.1 (0x0000ffff900a0000) liblzma.so.5 => /lib/aarch64-linux-gnu/liblzma.so.5 (0x0000ffff90060000) liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffff90030000) libcap.so.2 => /lib/aarch64-linux-gnu/libcap.so.2 (0x0000ffff90010000) libgcrypt.so.20 => /lib/aarch64-linux-gnu/libgcrypt.so.20 (0x0000ffff8ff20000) libxcb.so.1 => /lib/aarch64-linux-gnu/libxcb.so.1 (0x0000ffff8fee0000) libbrotlicommon.so.1 => /lib/aarch64-linux-gnu/libbrotlicommon.so.1 (0x0000ffff8fea0000) libgpg-error.so.0 => /lib/aarch64-linux-gnu/libgpg-error.so.0 (0x0000ffff8fe60000) libXau.so.6 => /lib/aarch64-linux-gnu/libXau.so.6 (0x0000ffff8fe40000) libXdmcp.so.6 => /lib/aarch64-linux-gnu/libXdmcp.so.6 (0x0000ffff8fe20000)

MattF42 commented 1 year ago

Do you think is it possible to get it work in ARM32 for RPI3 ??

I'm sure it is, but I don't have an arm32 cross build chain setup, and the chances of building it natively are slim to none (CC+ is a big memory pig). If I get time, I'll post up my cleaned up source tree that builds on Ubuntu 22.04, but it's still a bit of a mess.

machac2018 commented 1 year ago

Do you think is it possible to get it work in ARM32 for RPI3 ??

I'm sure it is, but I don't have an arm32 cross build chain setup, and the chances of building it natively are slim to none (CC+ is a big memory pig). If I get time, I'll post up my cleaned up source tree that builds on Ubuntu 22.04, but it's still a bit of a mess.

Let me know I can procure you and RPI3 environment to test it, or if you give some directions I can try to make it work, I think if we have a inexpensive RPI3 running a wallet node could be great mainly for this moon core update.

machac2018 commented 1 year ago

No luck, will keep trying I get the same message, I Let you know if I find the way, thanks for your help regards

machac2018 commented 1 year ago

libevent-2.1.so.7

Well I give up, install a lot of required libraries but always a newone appears, until ./PEPEPOW_qt: /lib/aarch64-linux-gnu/libcrypto.so.3: version OPENSSL_3.0.0' not found (required by ./PEPEPOW_qt) ./PEPEPOW_qt: /lib/aarch64-linux-gnu/libc.so.6: versionGLIBC_2.32' not found (required by ./PEPEPOW_qt) ./PEPEPOW_qt: /lib/aarch64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by ./PEPEPOW_qt) ./PEPEPOW_qt: /lib/aarch64-linux-gnu/libc.so.6: versionGLIBC_2.33' not found (required by ./PEPEPOW_qt) ./PEPEPOW_qt: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./PEPEPOW_qt) and there is no way to update it, also I recompile the openssl, but doesn't work, Tryed to build the project from the source and was worst if you can share the sources you use in your project I can try to recompile it for RPI4 and Will share it with the community.

thanks in advance regards

MattF42 commented 1 year ago

Version 0.5 now available for ARM64 - complete with all the necessary libraries. https://home.mattfoster.me.uk/PEPEPOW-v0.5-aarch64-linux.tar.gz

md5: bef5f21ad2a7285913babd65226ea880 PEPEPOW-v0.5-aarch64-linux.tar.gz SHA256: 8f1db233bfe353d71e412788c18b0792f26312ec0e2c6be77952fcabb4440248 PEPEPOW-v0.5-aarch64-linux.tar.gz

The tar ball contains opt/PEPEPOW/lib and opt/PEPEPOW/bin

Extract it into the root filesystem, and then do export LD_LIBRARY_PATH=/opt/PEPEPOW/lib:$LD_LIBRARY_PATH export PATH=/opt/PEPEPOW/bin:$PATH

This should allow you to run without going through the library dependency hell

MattF42 commented 1 year ago

Source tarball which compiles against modern versions of libboost available at

https://home.mattfoster.me.uk/pepe-0.5-src.tar.gz

source code - hopefully useful to someone wanting to compile for a non X64 architecture.

machac2018 commented 1 year ago

Source tarball which compiles against modern versions of libboost available at

https://home.mattfoster.me.uk/pepe-0.5-src.tar.gz

source code - hopefully useful to someone wanting to compile for a non X64 architecture.

Great I am trying, to make it work on RPI4 , First I tried with the binaries and the libraries posted, but also fail and then tryed to recompile this source, I execute the configure and I get this error

checking for Berkeley DB C++ headers... default configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality), now trying to recompile the version of DB

MattF42 commented 1 year ago

Source tarball which compiles against modern versions of libboost available at https://home.mattfoster.me.uk/pepe-0.5-src.tar.gz source code - hopefully useful to someone wanting to compile for a non X64 architecture.

Great I am trying, to make it work on RPI4 , First I tried with the binaries and the libraries posted, but also fail and then tryed to recompile this source, I execute the configure and I get this error

checking for Berkeley DB C++ headers... default configure: error: Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality), now trying to recompile the version of DB

It's relatively easy to compile, or you can loose the wallet portability and configure with --with-incompatible-bdb

MattF42 commented 1 year ago

I've forked the tree, committed my changes, and submitted a PR to get this merged in. Whilst we're waiting for that, you may find it easiest to check the modified source code out from https://github.com/MattF42/PePe-core

(Updated to v0.6)

MattF42 commented 1 year ago

V0.6 Binaries

https://home.mattfoster.me.uk/PEPEPOW-v0.6-aarch64-linux.tar.gz $ md5sum PEPEPOW-v0.6-aarch64-linux.tar.gz 7a1fb65e9f8b7cc5f9e457a06e8ec2d2 PEPEPOW-v0.6-aarch64-linux.tar.gz $ sha256sum PEPEPOW-v0.6-aarch64-linux.tar.gz b5bd0fd1512b5232ff00da3d6aca505f4c095de59f2b71e2ec920117604983e9 PEPEPOW-v0.6-aarch64-linux.tar.gz