Skip to content

Commit

Permalink
Release Name: Energy
Browse files Browse the repository at this point in the history
Radiant Node version 1.3.0 (Energy) is now available.
  • Loading branch information
barnell@lll committed Apr 30, 2024
1 parent c1e922d commit 54a1762
Show file tree
Hide file tree
Showing 54 changed files with 1,086 additions and 325 deletions.
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -667,7 +667,7 @@ build-aarch64:
# The following tests are excluded:
# - radn-rpc-getblocktemplate-sigops - OOM issues for aarch64 (see #211)
- cmake -GNinja .. -DENABLE_MAN=OFF
-DBUILD_BITCOIN_ZMQ=OFF
-DBUILD_RADIANT_ZMQ=OFF
-DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/LinuxAArch64.cmake
-DCMAKE_CROSSCOMPILING_EMULATOR=$(command -v qemu-aarch64-static)
-DEXCLUDE_FUNCTIONAL_TESTS=radn-rpc-getblocktemplate-sigops
Expand Down
2 changes: 1 addition & 1 deletion contrib/gitian-descriptors/gitian-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ script: |
pushd source_package
cmake -GNinja .. \
-DBUILD_RADIANT_WALLET=OFF \
-DBUILD_BITCOIN_ZMQ=OFF \
-DBUILD_RADIANT_ZMQ=OFF \
-DBUILD_RADIANT_SEEDER=OFF \
-DBUILD_RADIANT_CLI=OFF \
-DBUILD_RADIANT_TX=OFF \
Expand Down
2 changes: 1 addition & 1 deletion contrib/gitian-descriptors/gitian-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ script: |
pushd source_package
cmake -GNinja .. \
-DBUILD_RADIANT_WALLET=OFF \
-DBUILD_BITCOIN_ZMQ=OFF \
-DBUILD_RADIANT_ZMQ=OFF \
-DBUILD_RADIANT_SEEDER=OFF \
-DBUILD_RADIANT_CLI=OFF \
-DBUILD_RADIANT_TX=OFF \
Expand Down
2 changes: 1 addition & 1 deletion depends/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ NO_WALLET ?=
NO_ZMQ ?=
NO_UPNP ?=
NO_JEMALLOC ?=
FALLBACK_DOWNLOAD_PATH ?= https://download.radiantblockchain.org/depends-sources
FALLBACK_DOWNLOAD_PATH ?= https://download.bitcoincashnode.org/depends-sources

BUILD = $(shell ./config.guess)
HOST ?= $(BUILD)
Expand Down
80 changes: 53 additions & 27 deletions depends/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

To build dependencies for the current architecture + OS:

make
```sh
make
```

To build for another architecture/OS, you may need to install
some required packages first. Please have a look at the section
Expand All @@ -14,7 +16,9 @@ target platform.
Once you have the required packages installed and done
any necessary preparation, run

make build-<platform>
```sh
make build-<platform>
```

Where `<platform>` is one of the following:

Expand All @@ -27,17 +31,21 @@ Where `<platform>` is one of the following:

For example, building the dependencies for Linux on ARM:

make build-linux-arm
```sh
make build-linux-arm
```

To use the dependencies for building Radiant Node, you need to set
To use the dependencies for building Bitcoin Cash Node, you need to set
the platform file to be used by `cmake`.
The platform files are located under `cmake/platforms/`.
For example, cross-building for Linux on ARM (run from the project root):

mkdir build_arm
cd build_arm
cmake -GNinja .. -DENABLE_MAN=OFF -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/LinuxARM.cmake
ninja
```sh
mkdir build_arm
cd build_arm
cmake -GNinja .. -DENABLE_MAN=OFF -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/LinuxARM.cmake
ninja
```

Note that it will use all the CPU cores available on the machine by default.
This behavior can be changed by setting the `JOBS` environment variable (see
Expand All @@ -48,32 +56,40 @@ the suitable SDK (how to obtain this SDK can be found in the `gitian-building.md
document). Once the SDK has been obtained, the dependency building can be
done like this:

make download
mkdir SDKs
tar -C SDKs -xf /path/to/MacOSX10.14.sdk.tar.xz
make build-osx HOST=x86_64-apple-darwin16
```sh
make download
mkdir SDKs
tar -C SDKs -xf /path/to/MacOSX10.15.sdk.tar.xz
make build-osx HOST=x86_64-apple-darwin16
```

Building the node against these dependencies is again a matter of (starting
from the project root):

mkdir build_osx
cd build_osx
cmake -GNinja .. -DENABLE_MAN=OFF -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/OSX.cmake
ninja
```sh
mkdir build_osx
cd build_osx
cmake -GNinja .. -DENABLE_MAN=OFF -DCMAKE_TOOLCHAIN_FILE=../cmake/platforms/OSX.cmake
ninja
```

No other options are needed, the paths are automatically configured.

## Install the required dependencies: Ubuntu & Debian

### Common to all arch/OS

sudo apt-get install build-essential autoconf automake cmake curl git libtool ninja-build patch pkg-config python3
```sh
sudo apt-get install build-essential autoconf automake cmake curl git libtool ninja-build patch pkg-config python3 bison
```

### For macOS cross compilation

Install the following packages:

sudo apt-get install imagemagick libbz2-dev libcap-dev librsvg2-bin libtiff-tools python3-setuptools
```sh
sudo apt-get install imagemagick libbz2-dev libcap-dev librsvg2-bin libtiff-tools python3-setuptools
```

Obtain the same SDK packge that is used in the gitian build (refer to `gitian-building.md` for download instructions).
Create an `SDKs` folder within the `depends` folder, if it does not already exist.
Expand All @@ -87,26 +103,36 @@ Unpack the SDK tarball there.

Common linux dependencies:

sudo apt-get install gperf
```sh
sudo apt-get install gperf
```

For linux 32 bits cross compilation:

First add the i386 architecture to `dpkg`:

sudo dpkg --add-architecture i386
sudo apt-get update
```sh
sudo dpkg --add-architecture i386
sudo apt-get update
```

Then install the dependencies:

sudo apt-get install lib32stdc++-8-dev libc6-dev:i386
```sh
sudo apt-get install lib32stdc++-8-dev libc6-dev:i386
```

For linux ARM cross compilation:

sudo apt-get install g++-arm-linux-gnueabihf
```sh
sudo apt-get install g++-arm-linux-gnueabihf
```

For linux AARCH64 cross compilation:

sudo apt-get install g++-aarch64-linux-gnu
```sh
sudo apt-get install g++-aarch64-linux-gnu
```

## Dependency Options

Expand All @@ -131,12 +157,12 @@ The following can be set when running make: make FOO=bar
If some packages are not built, for example by building the depends with
`make NO_WALLET=1`, the appropriate options should be set when building Bitcoin
Cash Node using these dependencies.
In this example, `-DBUILD_RADIANT_WALLET=OFF` should be passed to the `cmake`
In this example, `-DBUILD_BITCOIN_WALLET=OFF` should be passed to the `cmake`
command line to ensure that the build will not fail due to missing dependencies.

NOTE: The SDK_PATH should be set to the parent folder in which the
`MacOSX10.14.sdk/` is located. Alternatively, you can unpack the SDK within
the `depends/SDKs/` folder or create a symbolic link named `MacOSX10.14.sdk/`
`MacOSX10.15.sdk/` is located. Alternatively, you can unpack the SDK within
the `depends/SDKs/` folder or create a symbolic link named `MacOSX10.15.sdk/`
to it from there.

Additional targets:
Expand Down
2 changes: 1 addition & 1 deletion depends/description.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Linux or macOS.
## No reliance on timestamps

File presence is used to determine what needs to be built. This makes the
results distributable and easily digestable by automated builders.
results distributable and easily digestible by automated builders.

## Each build only has its specified dependencies available at build-time

Expand Down
4 changes: 2 additions & 2 deletions depends/hosts/darwin.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
OSX_MIN_VERSION=10.12
OSX_SDK_VERSION=10.14
OSX_MIN_VERSION=10.14
OSX_SDK_VERSION=10.15
OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK)
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -stdlib=libc++
Expand Down
3 changes: 2 additions & 1 deletion depends/hosts/default.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ default_host_LIBTOOL = $(host_toolchain)libtool
default_host_INSTALL_NAME_TOOL = $(host_toolchain)install_name_tool
default_host_OTOOL = $(host_toolchain)otool
default_host_NM = $(host_toolchain)nm
default_host_WINDRES = $(host_toolchain)windres

define add_host_tool_func
$(host_os)_$1?=$$(default_host_$1)
Expand All @@ -22,5 +23,5 @@ host_$1 = $$($(host_arch)_$(host_os)_$1)
host_$(release_type)_$1 = $$($(host_arch)_$(host_os)_$(release_type)_$1)
endef

$(foreach tool,CC CXX AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL,$(eval $(call add_host_tool_func,$(tool))))
$(foreach tool,CC CXX AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL WINDRES,$(eval $(call add_host_tool_func,$(tool))))
$(foreach flags,CFLAGS CXXFLAGS CPPFLAGS LDFLAGS, $(eval $(call add_host_flags_func,$(flags))))
12 changes: 4 additions & 8 deletions depends/packages/libevent.mk
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package=libevent
$(package)_version=2.1.8-stable
$(package)_download_path=https://github.com/libevent/libevent/archive/
$(package)_file_name=release-$($(package)_version).tar.gz
$(package)_sha256_hash=316ddb401745ac5d222d7c529ef1eada12f58f6376a66c1118eee803cb70f83d

define $(package)_preprocess_cmds
./autogen.sh
endef
$(package)_version=2.1.12-stable
$(package)_download_path=https://github.com/libevent/libevent/releases/download/release-$($(package)_version)/
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb

define $(package)_set_vars
$(package)_config_opts=--disable-shared --disable-openssl --disable-libevent-regress --disable-samples
Expand Down
34 changes: 13 additions & 21 deletions depends/packages/libxcb.mk
Original file line number Diff line number Diff line change
@@ -1,38 +1,30 @@
package=libxcb
$(package)_version=1.10
$(package)_version=1.14
$(package)_download_path=https://xcb.freedesktop.org/dist
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
$(package)_sha256_hash=98d9ab05b636dd088603b64229dd1ab2d2cc02ab807892e107d674f9c3f2d5b5
$(package)_file_name=$(package)-$($(package)_version).tar.xz
$(package)_sha256_hash=a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34
$(package)_dependencies=xcb_proto libXau

define $(package)_set_vars
$(package)_config_opts=--disable-static --disable-build-docs --without-doxygen --without-launchd
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen --without-launchd
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
# Because we pass -qt-xcb to Qt, it will compile in a set of xcb helper libraries and extensions,
# so we skip building all of the extensions here.
# More info is available from: https://doc.qt.io/qt-5.9/linux-requirements.html
# Disable unneeded extensions.
# More info is available from: https://doc.qt.io/qt-5.15/linux-requirements.html
$(package)_config_opts += --disable-composite --disable-damage --disable-dpms
$(package)_config_opts += --disable-dri2 --disable-dri3 --disable-glx
$(package)_config_opts += --disable-present --disable-randr --disable-record
$(package)_config_opts += --disable-render --disable-resource --disable-screensaver
$(package)_config_opts += --disable-shape --disable-shm --disable-sync
$(package)_config_opts += --disable-xevie --disable-xfixes --disable-xfree86-dri
$(package)_config_opts += --disable-xinerama --disable-xinput --disable-xkb
$(package)_config_opts += --disable-xprint --disable-selinux --disable-xtest
$(package)_config_opts += --disable-xv --disable-xvmc
$(package)_config_opts += --disable-present --disable-record --disable-resource
$(package)_config_opts += --disable-screensaver --disable-xevie --disable-xfree86-dri
$(package)_config_opts += --disable-xinput --disable-xprint --disable-selinux
$(package)_config_opts += --disable-xtest --disable-xv --disable-xvmc
endef

define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux && \
sed "s/pthread-stubs//" -i configure
endef

# Don't install xcb headers to the default path in order to work around a qt
# build issue: https://bugreports.qt.io/browse/QTBUG-34748
# When using qt's internal libxcb, it may end up finding the real headers in
# depends staging. Use a non-default path to avoid that.

define $(package)_config_cmds
$($(package)_autoconf) --includedir=$(host_prefix)/include/xcb-shared
$($(package)_autoconf)
endef

define $(package)_build_cmds
Expand All @@ -44,5 +36,5 @@ define $(package)_stage_cmds
endef

define $(package)_postprocess_cmds
rm -rf share/man share/doc lib/*.la
rm -rf share lib/*.la
endef
32 changes: 32 additions & 0 deletions depends/packages/libxcb_util.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package=libxcb_util
$(package)_version=0.4.0
$(package)_download_path=https://xcb.freedesktop.org/dist
$(package)_file_name=xcb-util-$($(package)_version).tar.bz2
$(package)_sha256_hash=46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9
$(package)_dependencies=libxcb

define $(package)_set_vars
$(package)_config_opts = --disable-shared --disable-devel-docs --without-doxygen
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
$(package)_config_opts += --with-pic
endef

define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef

define $(package)_config_cmds
$($(package)_autoconf)
endef

define $(package)_build_cmds
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef

define $(package)_postprocess_cmds
rm -rf share/man share/doc lib/*.la
endef
31 changes: 31 additions & 0 deletions depends/packages/libxcb_util_image.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package=libxcb_util_image
$(package)_version=0.4.0
$(package)_download_path=https://xcb.freedesktop.org/dist
$(package)_file_name=xcb-util-image-$($(package)_version).tar.bz2
$(package)_sha256_hash=2db96a37d78831d643538dd1b595d7d712e04bdccf8896a5e18ce0f398ea2ffc
$(package)_dependencies=libxcb libxcb_util

define $(package)_set_vars
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
$(package)_config_opts+= --disable-dependency-tracking --enable-option-checking
endef

define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef

define $(package)_config_cmds
$($(package)_autoconf)
endef

define $(package)_build_cmds
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef

define $(package)_postprocess_cmds
rm -rf share/man share/doc lib/*.la
endef
31 changes: 31 additions & 0 deletions depends/packages/libxcb_util_keysyms.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package=libxcb_util_keysyms
$(package)_version=0.4.0
$(package)_download_path=https://xcb.freedesktop.org/dist
$(package)_file_name=xcb-util-keysyms-$($(package)_version).tar.bz2
$(package)_sha256_hash=0ef8490ff1dede52b7de533158547f8b454b241aa3e4dcca369507f66f216dd9
$(package)_dependencies=libxcb xproto

define $(package)_set_vars
$(package)_config_opts=--disable-static --disable-devel-docs --without-doxygen
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
endef

define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef

define $(package)_config_cmds
$($(package)_autoconf)
endef

define $(package)_build_cmds
$(MAKE)
endef

define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install
endef

define $(package)_postprocess_cmds
rm -rf share/man share/doc lib/*.la
endef
Loading

0 comments on commit 54a1762

Please sign in to comment.