diff --git a/nodebuilder b/nodebuilder index b5271d6ad..4e6b7dce1 100755 --- a/nodebuilder +++ b/nodebuilder @@ -76,17 +76,33 @@ compile_bitcoin_from_source() -DCMAKE_CXX_COMPILER="/usr/pkg/gcc12/bin/g++" \ > /dev/null 2>&1 ;; - gentoo) + OpenBSD) cmake -B build \ + -DBUILD_GUI=ON \ -DWITH_ZMQ=ON \ + -DENABLE_IPC=OFF \ > /dev/null 2>&1 ;; - *) + gentoo) cmake -B build \ - -DBUILD_GUI=ON \ -DWITH_ZMQ=ON \ > /dev/null 2>&1 ;; + *) + if [ -f /etc/os-release ] && + [ "$(grep "^ID=" /etc/os-release | cut -d= -f2 | tr -d '"')" = 'ol' ]; then + cmake -B build \ + -DBUILD_GUI=ON \ + -DWITH_ZMQ=ON \ + -DENABLE_IPC=OFF \ + > /dev/null 2>&1 + else + cmake -B build \ + -DBUILD_GUI=ON \ + -DWITH_ZMQ=ON \ + > /dev/null 2>&1 + fi + ;; esac log_info 'Compiling source code. Please wait.' @@ -314,6 +330,7 @@ bitcoin_tarball_download_extract_test_install() readonly BITCOIN_CORE_EXTRACT_DIR="${TEMP_DIRECTORY}/bitcoin-core" readonly BITCOIN_INSTALL_BIN_SOURCE="${BITCOIN_CORE_EXTRACT_DIR}/bin" readonly BITCOIN_INSTALL_LIB_SOURCE="${BITCOIN_CORE_EXTRACT_DIR}/lib" + readonly BITCOIN_INSTALL_LIBEXEC_SOURCE="${BITCOIN_CORE_EXTRACT_DIR}/libexec" readonly BITCOIN_INSTALL_INCLUDE_SOURCE="${BITCOIN_CORE_EXTRACT_DIR}/include" readonly BITCOIN_INSTALL_MAN_SOURCE="${BITCOIN_CORE_EXTRACT_DIR}/share/man/man1" readonly BITCOIN_INSTALL_DESTINATION='/usr/local' @@ -456,9 +473,9 @@ bitcoin_tarball_test() # only sign test_bitcoin if on arm64 and target version is before 28.2 if [ "${TARGET_ARCHITECTURE}" = 'arm64' ] && ! is_arm64_test_bitcoin_signed "${target_bitcoin_version}"; then - codesign -s - "${BITCOIN_INSTALL_BIN_SOURCE}"/test_bitcoin + codesign -s - "${BITCOIN_INSTALL_LIBEXEC_SOURCE}"/test_bitcoin fi - UNIT_TEST_RESPONSE="$("${BITCOIN_INSTALL_BIN_SOURCE}"/test_bitcoin 2>&1)" + UNIT_TEST_RESPONSE="$("${BITCOIN_INSTALL_LIBEXEC_SOURCE}"/test_bitcoin 2>&1)" readonly UNIT_TEST_RESPONSE case "${UNIT_TEST_RESPONSE}" in *'No errors detected'*) ;; @@ -898,20 +915,16 @@ install_build_dependencies_dnf() amzn) throw_error "Building from source on Amazon Linux is unsupported." ;; + fedora) ;; rhel) sudo subscription-manager identity > /dev/null 2>&1 || throw_error "Register your RHEL subscription with 'sudo subscription-manager subscribe'." sudo dnf config-manager --enable "rhel-${OS_MAJOR_VERSION_ID}-for-${TARGET_ARCHITECTURE}-appstream-rpms" || throw_error "Failed to enable EPEL release rhel-${OS_MAJOR_VERSION_ID}-for-${TARGET_ARCHITECTURE}-appstream-rpms." ;; - *) ;; - esac - - case "$(grep "^ID=" /etc/os-release | cut -d= -f2 | tr -d '"')" in - fedora) ;; *) dnf list installed epel-release > /dev/null 2>&1 || - sudo dnf --assumeyes install "https://dl.fedoraproject.org/pub/epel/epel-release-latest-${OS_MAJOR_VERSION_ID}.noarch.rpm" + sudo dnf --assumeyes install "https://dl.fedoraproject.org/pub/epel/epel-release-latest-${OS_MAJOR_VERSION_ID}.noarch.rpm" > /dev/null 2>&1 ;; esac @@ -920,6 +933,11 @@ install_build_dependencies_dnf() dependencies=$(curl --fail --silent --show-error --location --retry 5 "${BUILD_DEPENDENCIES_URL}") [ -z "${dependencies:-}" ] && throw_error "The list of dependencies is empty." + # TODO: install capnp on Oracle Linux + if [ "$(grep "^ID=" /etc/os-release | cut -d= -f2 | tr -d '"')" = 'ol' ]; then + dependencies="$(echo "${dependencies}" | sed '/capnp/d')" + fi + printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo dnf install --assumeyes > /dev/null } @@ -948,7 +966,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/null 2>&1 } install_build_dependencies_netbsd() @@ -958,7 +976,11 @@ install_build_dependencies_netbsd() 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 pkgin -y install > /dev/null + sudo pkgin update + echo 'DEBUG SEARCHING FOR BOOST' + sudo pkgin search boost.* + echo 'DEBUG INSTALLING DEPS' + printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo pkgin -y install # TODO: Remove gcc-12 installation on next line when NetBSD updates the default version of gcc to support C++ 20 features. Bitcoin Core requires gcc with support for C++ 20 features. sudo pkgin -y install gcc12 && export PATH="/usr/pkg/gcc12/bin:${PATH}" } @@ -1002,6 +1024,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." + [ "$(grep "^ID=" /etc/os-release | cut -d= -f2 | tr -d '"')" = 'sles' ] && + dependencies="$(echo "${dependencies}" | sed 's/python3[0-9]+/python3/')" printf '%s\n' "${dependencies}" | tr -d '\r' | xargs sudo zypper --non-interactive --quiet install > /dev/null export CXX='g++-15' } @@ -1529,10 +1553,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.0' # Instantiate the parameter variables compile_bitcoin_flag='false' @@ -1646,7 +1670,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.1.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 diff --git a/resources/dependencies/build_dependencies_apk.txt b/resources/dependencies/build_dependencies_apk.txt index 1d4b1817b..f241f33f5 100644 --- a/resources/dependencies/build_dependencies_apk.txt +++ b/resources/dependencies/build_dependencies_apk.txt @@ -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 diff --git a/resources/dependencies/build_dependencies_aptget.txt b/resources/dependencies/build_dependencies_aptget.txt index 53ef4b061..be936b0cd 100644 --- a/resources/dependencies/build_dependencies_aptget.txt +++ b/resources/dependencies/build_dependencies_aptget.txt @@ -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 diff --git a/resources/dependencies/build_dependencies_darwin.txt b/resources/dependencies/build_dependencies_darwin.txt index 5cad8cae1..df37f148b 100644 --- a/resources/dependencies/build_dependencies_darwin.txt +++ b/resources/dependencies/build_dependencies_darwin.txt @@ -1,7 +1,8 @@ boost +capnp libevent pkgconf python qrencode -qt@5 +qt@6 zeromq diff --git a/resources/dependencies/build_dependencies_dnf.txt b/resources/dependencies/build_dependencies_dnf.txt index 508d316fe..893cc964a 100644 --- a/resources/dependencies/build_dependencies_dnf.txt +++ b/resources/dependencies/build_dependencies_dnf.txt @@ -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 - diff --git a/resources/dependencies/build_dependencies_emerge.txt b/resources/dependencies/build_dependencies_emerge.txt index bdf912d5d..a3ab6094a 100644 --- a/resources/dependencies/build_dependencies_emerge.txt +++ b/resources/dependencies/build_dependencies_emerge.txt @@ -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 - diff --git a/resources/dependencies/build_dependencies_freebsd.txt b/resources/dependencies/build_dependencies_freebsd.txt index 371017701..8a8968a61 100644 --- a/resources/dependencies/build_dependencies_freebsd.txt +++ b/resources/dependencies/build_dependencies_freebsd.txt @@ -1,4 +1,5 @@ boost-libs +capnproto cmake databases/py-sqlite3 git @@ -8,10 +9,6 @@ libzmq4 net/py-pyzmq pkgconf python3 -qt5-buildtools -qt5-gui -qt5-linguisttools -qt5-qmake -qt5-testlib -qt5-widgets +qt6-base +qt6-tools sqlite3 diff --git a/resources/dependencies/build_dependencies_netbsd.txt b/resources/dependencies/build_dependencies_netbsd.txt index b73f2d56a..8681ce26e 100644 --- a/resources/dependencies/build_dependencies_netbsd.txt +++ b/resources/dependencies/build_dependencies_netbsd.txt @@ -1,4 +1,6 @@ boost-headers +boost-libs +capnproto cmake gcc12 git @@ -6,6 +8,5 @@ libevent pkg-config python312 py312-zmq -qrencode sqlite3 zeromq diff --git a/resources/dependencies/build_dependencies_openbsd.txt b/resources/dependencies/build_dependencies_openbsd.txt index 74cbc2e63..9d47fd93d 100644 --- a/resources/dependencies/build_dependencies_openbsd.txt +++ b/resources/dependencies/build_dependencies_openbsd.txt @@ -5,6 +5,7 @@ libevent libqrencode python py3-zmq -qttools +qt6-qtbase +qt6-qttools sqlite3 zeromq diff --git a/resources/dependencies/build_dependencies_pacman.txt b/resources/dependencies/build_dependencies_pacman.txt index e1fd076ef..d79898726 100644 --- a/resources/dependencies/build_dependencies_pacman.txt +++ b/resources/dependencies/build_dependencies_pacman.txt @@ -1,8 +1,10 @@ base-devel boost boost-libs +capnproto cmake db +libevent qrencode -qt5 +qt6 zeromq diff --git a/resources/dependencies/build_dependencies_zypper.txt b/resources/dependencies/build_dependencies_zypper.txt index aed55a5a7..6a1d30b1c 100644 --- a/resources/dependencies/build_dependencies_zypper.txt +++ b/resources/dependencies/build_dependencies_zypper.txt @@ -1,11 +1,14 @@ +capnproto cmake gcc15-c++ libboost_headers1_86_0-devel +libcapnp-devel libevent-devel -libqt5-qtbase-devel -libqt5-qttools-devel python313 qrencode-devel +qt6-base-devel +qt6-linguist-devel +qt6-tools-devel sqlite sqlite3 sqlite3-devel