Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
d13ca4b
feat(bitcoin): bump Bitcoin Core to 30.0
bitcoin-tools Sep 9, 2025
0deae89
Update nodebuilder
bitcoin-tools Sep 9, 2025
891b7af
Update build_dependencies_apk.txt
bitcoin-tools Sep 9, 2025
c93ce9a
Update build_dependencies_aptget.txt
bitcoin-tools Sep 9, 2025
dc17b13
Update build_dependencies_darwin.txt
bitcoin-tools Sep 9, 2025
580768e
Update build_dependencies_dnf.txt
bitcoin-tools Sep 9, 2025
1fd6846
Update build_dependencies_emerge.txt
bitcoin-tools Sep 9, 2025
7311db2
Update build_dependencies_freebsd.txt
bitcoin-tools Sep 9, 2025
e2577db
Update build_dependencies_netbsd.txt
bitcoin-tools Sep 9, 2025
e1173c5
Update build_dependencies_openbsd.txt
bitcoin-tools Sep 9, 2025
90f0084
Update build_dependencies_pacman.txt
bitcoin-tools Sep 9, 2025
f40b4c1
Update build_dependencies_zypper.txt
bitcoin-tools Sep 9, 2025
a4b32d1
Update nodebuilder
bitcoin-tools Sep 9, 2025
a0ff527
Update nodebuilder
bitcoin-tools Sep 9, 2025
06faabb
Update nodebuilder
bitcoin-tools Sep 9, 2025
a9429a6
Update build_dependencies_aptget.txt
bitcoin-tools Sep 9, 2025
0c795f1
Update build_dependencies_aptget.txt
bitcoin-tools Sep 10, 2025
6d77ed1
Update build_dependencies_dnf.txt
bitcoin-tools Sep 10, 2025
91c63a6
Update build_dependencies_apk.txt
bitcoin-tools Sep 10, 2025
2f9af26
Update build_dependencies_pacman.txt
bitcoin-tools Sep 10, 2025
34f194e
Update build_dependencies_darwin.txt
bitcoin-tools Sep 10, 2025
19d203d
Update build_dependencies_freebsd.txt
bitcoin-tools Sep 10, 2025
60d000b
Update build_dependencies_netbsd.txt
bitcoin-tools Sep 10, 2025
29557b6
Update nodebuilder
bitcoin-tools Sep 10, 2025
006202e
Update build_dependencies_openbsd.txt
bitcoin-tools Sep 10, 2025
b818a72
Update nodebuilder
bitcoin-tools Sep 10, 2025
b793f6f
Update build_dependencies_emerge.txt
bitcoin-tools Sep 10, 2025
15fe4f4
Update nodebuilder
bitcoin-tools Sep 10, 2025
0b56f65
Update nodebuilder
bitcoin-tools Sep 10, 2025
258f9f7
Update build_dependencies_netbsd.txt
bitcoin-tools Sep 10, 2025
d803716
Update build_dependencies_aptget.txt
bitcoin-tools Sep 10, 2025
91a610a
Update build_dependencies_zypper.txt
bitcoin-tools Sep 10, 2025
817918c
Update build_dependencies_zypper.txt
bitcoin-tools Sep 10, 2025
5b77393
Update nodebuilder
bitcoin-tools Sep 10, 2025
6d59a15
Update nodebuilder
bitcoin-tools Sep 10, 2025
333953e
Update build_dependencies_aptget.txt
bitcoin-tools Sep 10, 2025
da3ffac
revert it back
bitcoin-tools Sep 10, 2025
25009b8
Update nodebuilder
bitcoin-tools Sep 10, 2025
5a81676
Update build_dependencies_zypper.txt
bitcoin-tools Sep 10, 2025
c4efaeb
Update nodebuilder
bitcoin-tools Sep 10, 2025
f745fa5
Update validation.yaml
bitcoin-tools Sep 10, 2025
b25339c
Update nodebuilder
bitcoin-tools Sep 10, 2025
6d35727
Update validation.yaml
bitcoin-tools Sep 10, 2025
2d29a7b
Update nodebuilder
bitcoin-tools Sep 10, 2025
0eefa26
Update validation.yaml
bitcoin-tools Sep 10, 2025
5f82579
Update validation.yaml
bitcoin-tools Sep 10, 2025
0fd0124
Update validation.yaml
bitcoin-tools Sep 10, 2025
1607c67
Update validation.yaml\
bitcoin-tools Sep 10, 2025
123e44b
Update nodebuilder
bitcoin-tools Sep 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 13 additions & 34 deletions .github/workflows/validation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -213,42 +213,31 @@ jobs:
fail-fast: false
max-parallel: 5
matrix:
os: [ubuntu-24.04, macos-15, ubuntu-22.04, macos-13, macos-14]
job-purpose: [package, source]
os: [ubuntu-latest, macos-latest, macos-13, macos-14]
job-purpose: [source]
#job-purpose: [package, source]
exclude:
- { job-purpose: source, os: macos-13 }
include:
- job-purpose: package
additional-args: ''
# - job-purpose: package
# additional-args: ''
- job-purpose: source
additional-args: '--compile'
- os: ubuntu-22.04
os-friendly-name: Ubuntu 22
- os: ubuntu-latest
os-friendly-name: Ubuntu 24 [x86_64]
check-environment-command: cat /etc/os-release && lscpu && grep Mem /proc/meminfo
remove-firefox-command: sudo apt-get remove --assume-yes firefox
cache-path: |
/var/cache/apt/archives/*.deb
/var/lib/apt/lists/*.ubuntu.com_ubuntu_dists_*
/var/lib/apt/lists/download.docker.com_linux_ubuntu_dists_*
/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_*
/var/lib/apt/lists/packages.microsoft.com_repos_code_dists_*
/var/lib/apt/lists/pkg.cloudflareclient.com_dists_*
path-to-bitcoin-log: '/home/runner/.bitcoin/debug.log'
- os: ubuntu-24.04
os-friendly-name: Ubuntu 24
check-environment-command: cat /etc/os-release && lscpu && grep Mem /proc/meminfo
remove-firefox-command: sudo apt-get remove --assume-yes firefox
path-to-bitcoin-log: '/home/runner/.bitcoin/debug.log'
- os: macos-13
os-friendly-name: macOS 13
- os: macos-latest
os-friendly-name: macOS 15 [arm64]
check-environment-command: sw_vers && sysctl machdep.cpu.core_count machdep.cpu.thread_count machdep.cpu.brand_string && memory_pressure -Q
path-to-bitcoin-log: '/Users/runner/Library/Application Support/Bitcoin/debug.log'
- os: macos-14
os-friendly-name: macOS 14
- os: macos-13
os-friendly-name: macOS 13 [x86_64]
check-environment-command: sw_vers && sysctl machdep.cpu.core_count machdep.cpu.thread_count machdep.cpu.brand_string && memory_pressure -Q
path-to-bitcoin-log: '/Users/runner/Library/Application Support/Bitcoin/debug.log'
- os: macos-15
os-friendly-name: macOS 15
- os: macos-14
os-friendly-name: macOS 14 [arm64]
check-environment-command: sw_vers && sysctl machdep.cpu.core_count machdep.cpu.thread_count machdep.cpu.brand_string && memory_pressure -Q
path-to-bitcoin-log: '/Users/runner/Library/Application Support/Bitcoin/debug.log'
steps:
Expand All @@ -259,16 +248,6 @@ jobs:
${{ matrix.check-environment-command }}
df -h
date -u
- name: Change owner of apt archives
if: contains(matrix.os, 'ubuntu')
run: sudo chown -R "$(whoami)" /var/cache/apt/archives
- name: Cache system archives
if: matrix.cache-path != null
uses: actions/cache@v4
with:
path: ${{ matrix.cache-path }}
key: cache-updates-${{ matrix.os }}-${{ github.run_id }}
restore-keys: cache-updates-${{ matrix.os }}
- name: Remove the snap package
if: matrix.remove-firefox-command != null
run: ${{ matrix.remove-firefox-command }}
Expand Down
32 changes: 22 additions & 10 deletions nodebuilder
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,25 @@ compile_bitcoin_from_source()
NetBSD)
cmake -B build \
-DCMAKE_C_COMPILER="/usr/pkg/gcc12/bin/gcc" \
-DCMAKE_CXX_COMPILER="/usr/pkg/gcc12/bin/g++" \
-DCMAKE_CXX_COMPILER="/usr/pkg/gcc12/bin/g++"
;;
OpenBSD)
cmake -B build \
-DBUILD_GUI=ON \
-DENABLE_IPC=OFF \
> /dev/null 2>&1
;;
gentoo)
cmake -B build
;;
Darwin | kali | alpine | arch | manjaro)
cmake -B build \
-DBUILD_GUI=ON \
> /dev/null 2>&1
;;
*)
cmake -B build \
-DBUILD_GUI=ON \
> /dev/null 2>&1
-DBUILD_GUI=ON
;;
esac

Expand Down Expand Up @@ -867,9 +875,9 @@ install_build_dependencies_aptget()
dependencies=$(curl --fail --silent --show-error --location --retry 5 "${BUILD_DEPENDENCIES_URL}")
[ -z "${dependencies:-}" ] && throw_error "The list of dependencies is empty."
sudo apt-get -qq update
printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo DEBIAN_FRONTEND=noninteractive apt-get -qq install --assume-yes --no-install-recommends > /dev/null 2>&1
printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo DEBIAN_FRONTEND=noninteractive apt-get -qq install --assume-yes --no-install-recommends
# TODO: Remove gcc-12 installation on next line when Ubuntu updates the default version of gcc to support C++ 20 features. Bitcoin Core requires gcc with support for C++ 20 features.
sudo DEBIAN_FRONTEND=noninteractive apt-get -qq install --assume-yes --no-install-recommends gcc-12 > /dev/null 2>&1
sudo DEBIAN_FRONTEND=noninteractive apt-get -qq install --assume-yes --no-install-recommends gcc-12
}

install_build_dependencies_darwin()
Expand Down Expand Up @@ -945,7 +953,7 @@ install_build_dependencies_freebsd()
dependencies=$(torsocks curl --fail --silent --show-error --location --retry 2 "${BUILD_DEPENDENCIES_URL}") ||
dependencies=$(curl --fail --silent --show-error --location --retry 5 "${BUILD_DEPENDENCIES_URL}")
[ -z "${dependencies:-}" ] && throw_error "The list of dependencies is empty."
printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo pkg install --yes > /dev/null
printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo pkg install --yes # > /dev/nul
}

install_build_dependencies_netbsd()
Expand All @@ -968,14 +976,15 @@ install_build_dependencies_openbsd()
dependencies=$(curl --fail --silent --show-error --location --retry 5 "${BUILD_DEPENDENCIES_URL}" | tr -d '\r')
[ -z "${dependencies:-}" ] && throw_error "The list of dependencies is empty."
for package in ${dependencies}; do
echo "DEBUG loop with package=${package}"
if [ "${package}" = 'sqlite3' ]; then
sudo pkg_add "${package}" > /dev/null
else
package_latest_version="$(pkg_info -Q "${package}" | grep "^${package}\-" | grep -v "${package}\-[A-Za-z0-9]*\-" | sort -V | tail -1)"
if [ -z "${package_latest_version}" ]; then
throw_error "Package '${package}' was not found in pkg_info."
elif [ "$(echo "${package_latest_version}" | cut -d' ' -f2)" != '(installed)' ]; then
sudo pkg_add "${package_latest_version}" > /dev/null
sudo pkg_add "${package_latest_version}"
fi
fi
done
Expand All @@ -999,6 +1008,8 @@ install_build_dependencies_zypper()
dependencies=$(torsocks curl --fail --silent --show-error --location --retry 2 "${BUILD_DEPENDENCIES_URL}") ||
dependencies=$(curl --fail --silent --show-error --location --retry 5 "${BUILD_DEPENDENCIES_URL}")
[ -z "${dependencies:-}" ] && throw_error "The list of dependencies is empty."
sudo zypper search '*qtbase*'
sudo zypper search '*qttools*'
printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo zypper --non-interactive --quiet install
export CXX='g++-14'
}
Expand Down Expand Up @@ -1526,10 +1537,10 @@ readonly VALID_BITCOIN_VERSION_LIST='0.9.5 0.10.0 0.10.1 0.10.2 0.10.3 0.10.4 \
0.16.3 0.17.0 0.17.0.1 0.17.1 0.17.2 0.18.0 0.18.1 0.19.0 0.19.0.1 0.19.1 \
0.20.0 0.20.1 0.20.2 0.21.0 0.21.1 0.21.2 22.0 22.1 23.0 23.1 23.2 24.0 \
24.0.1 24.1 24.2 25.0 25.1 25.2 26.0 26.1 26.2 27.0 27.1 27.2 28.0 28.1 \
28.2 29.0 29.1'
28.2 29.0 29.1 30.0'

# Bump this variable for new Bitcoin Core releases
target_bitcoin_version='29.1'
target_bitcoin_version='30.0rc1'

# Instantiate the parameter variables
compile_bitcoin_flag='false'
Expand Down Expand Up @@ -1643,7 +1654,7 @@ readonly TARGET_OPERATING_SYSTEM_RELEASE

readonly BITCOIN_CORE_REPO='https://github.com/bitcoin/bitcoin'
readonly NODEBUILDER_REPO='https://github.com/bitcoin-tools/nodebuilder'
readonly NODEBUILDER_DEPENDENCIES_TAG='v2.0.0'
readonly NODEBUILDER_DEPENDENCIES_TAG='2407-feat---add-support-for-bitcoin-core-300'
readonly DEPENDENCIES_BASE_URL="${NODEBUILDER_REPO}/raw/${NODEBUILDER_DEPENDENCIES_TAG}/resources/dependencies"

if [ "${TARGET_KERNEL}" = 'NetBSD' ] && is_running_in_ci; then
Expand Down Expand Up @@ -1779,6 +1790,7 @@ readonly TARGET_BITCOIN_VERSION_PADDED
if [ "${CURRENT_BITCOIN_VERSION_PADDED}" = "${TARGET_BITCOIN_VERSION_PADDED}" ]; then
log_info "Bitcoin Core ${target_bitcoin_version} was found."
elif [ "${compile_bitcoin_flag:-false}" = 'true' ] ||
is_running_in_container ||
[ "${TARGET_OPERATING_SYSTEM}" = 'alpine' ] ||
[ "${TARGET_OPERATING_SYSTEM}" = 'gentoo' ] ||
[ "${TARGET_OPERATING_SYSTEM}" = 'FreeBSD' ] ||
Expand Down
7 changes: 4 additions & 3 deletions resources/dependencies/build_dependencies_apk.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
boost-dev
build-base
capnproto
capnproto-dev
cmake
libevent-dev
libqrencode-dev
linux-headers
pkgconf
python3
qt5-qtbase
qt5-qtbase-x11
qt5-qttools-dev
qt6-qtbase
qt6-qttools-dev
sqlite-dev
zeromq-dev
11 changes: 7 additions & 4 deletions resources/dependencies/build_dependencies_aptget.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
build-essential
capnproto
cmake
pkgconf
python3
libevent-dev
libboost-dev
libcapnp-dev
libgl-dev
libqrencode-dev
libsqlite3-dev
libzmq3-dev
qtbase5-dev
qttools5-dev
qttools5-dev-tools
qtwayland5
qt6-base-dev
qt6-l10n-tools
qt6-wayland
qt6-tools-dev
qt6-tools-dev-tools
3 changes: 2 additions & 1 deletion resources/dependencies/build_dependencies_darwin.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
boost
capnp
libevent
pkgconf
python
qrencode
qt@5
qt@6
zeromq
9 changes: 5 additions & 4 deletions resources/dependencies/build_dependencies_dnf.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
boost-devel
capnproto
capnproto-devel
cmake
gcc-c++
libevent-devel
make
python3
qrencode-devel
qt5-qtbase-devel
qt5-qttools-devel
qt5-qtwayland
qt6-qtbase-devel
qt6-qttools-devel
qt6-qtwayland
sqlite-devel
zeromq-devel

3 changes: 1 addition & 2 deletions resources/dependencies/build_dependencies_emerge.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ dev-build/cmake
dev-db/sqlite
dev-lang/python
dev-libs/boost
dev-libs/capnproto
dev-libs/libevent
media-gfx/qrencode
net-libs/zeromq

13 changes: 7 additions & 6 deletions resources/dependencies/build_dependencies_freebsd.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
boost-libs
capnproto
cmake
databases/py-sqlite3
git
Expand All @@ -8,10 +9,10 @@ libzmq4
net/py-pyzmq
pkgconf
python3
qt5-buildtools
qt5-gui
qt5-linguisttools
qt5-qmake
qt5-testlib
qt5-widgets
qt6-buildtools
qt6-gui
qt6-linguisttools
qt6-qmake
qt6-testlib
qt6-widgets
sqlite3
2 changes: 1 addition & 1 deletion resources/dependencies/build_dependencies_netbsd.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
boost-headers
capnproto
cmake
gcc12
git
libevent
pkg-config
python312
py312-zmq
qrencode
sqlite3
zeromq
3 changes: 2 additions & 1 deletion resources/dependencies/build_dependencies_openbsd.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ libevent
libqrencode
python
py3-zmq
qttools
qt6-base
qt6-qttools
sqlite3
zeromq
4 changes: 3 additions & 1 deletion resources/dependencies/build_dependencies_pacman.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
base-devel
boost
boost-libs
capnproto
cmake
db
libevent
qrencode
qt5
qt6
zeromq
5 changes: 0 additions & 5 deletions resources/dependencies/build_dependencies_zypper.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,8 @@ cmake
gcc14-c++
libboost_headers1_75_0-devel
libevent-devel
libqt5-qtbase-devel
libqt5-qttools-devel
python312
qrencode-devel
sqlite
sqlite3
sqlite3-devel
zeromq-devel


Loading