feat: build Bitcoin with Cmake

Fixes: https://github.com/ben-grande/qusal/issues/102
This commit is contained in:
Ben Grande 2025-01-17 11:35:38 +01:00
parent 1047cabf6a
commit 907f8fb96b
No known key found for this signature in database
GPG key ID: 00C64E14F51F9E56
3 changed files with 67 additions and 63 deletions

View file

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -49,57 +49,58 @@ include:
- cwd: /home/user/src/bitcoin - cwd: /home/user/src/bitcoin
- runas: user - runas: user
"{{ slsdotpath }}-source-build-autogen":
cmd.run:
- require:
- cmd: "{{ slsdotpath }}-source-git-checkout-tag-{{ bitcoin_tag }}"
- name: ./autogen.sh
- cwd: /home/user/src/bitcoin
- runas: user
"{{ slsdotpath }}-source-build-configure": "{{ slsdotpath }}-source-build-configure":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-autogen" - cmd: "{{ slsdotpath }}-source-git-checkout-tag-{{ bitcoin_tag }}"
- env:
- CXX: "clang++"
- CC: "clang"
- name: | - name: |
./configure \ cmake \
--prefix=/home/user/bitcoin-build \ -B /home/user/bitcoin-build \
--disable-maintainer-mode \ -DCMAKE_INSTALL_PREFIX=/home/user/bitcoin-install \
--disable-tests \ -DCMAKE_CXX_COMPILER=clang++-{{ version.clang_version }} \
--disable-bench \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g0" \
--disable-fuzz-binary \ -DCMAKE_C_COMPILER=clang-{{ version.clang_version }} \
--disable-shared \ -DBUILD_BENCH=OFF \
--disable-dependency-tracking \ -DBUILD_CLI=ON \
--without-miniupnpc \ -DBUILD_DAEMON=ON \
--without-natpmp \ -DBUILD_FOR_FUZZING=OFF \
--without-bdb \ -DBUILD_GUI=ON \
--without-libs -DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_TX=ON \
-DBUILD_UTIL=ON \
-DBUILD_UTIL_CHAINSTATE=ON \
-DBUILD_WALLET_TOOL=ON \
-DENABLE_EXTERNAL_SIGNER=ON \
-DENABLE_HARDENING=ON \
-DENABLE_WALLET=ON \
-DWITH_BDB=OFF \
-DWITH_CCACHE=ON \
-DWITH_MINIUPNPC=OFF \
-DWITH_SQLITE=ON \
-DWITH_USDT=OFF \
-DWITH_ZMQ=ON
- cwd: /home/user/src/bitcoin - cwd: /home/user/src/bitcoin
- runas: user - runas: user
"{{ slsdotpath }}-source-build-make-clean": "{{ slsdotpath }}-source-build-execute":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-configure" - cmd: "{{ slsdotpath }}-source-build-configure"
- name: make clean - name: |
- cwd: /home/user/src/bitcoin cmake \
- runas: user --build /home/user/bitcoin-build \
--parallel "$(($(nproc)+1))" \
"{{ slsdotpath }}-source-build-make": --clean-first
cmd.run:
- require:
- cmd: "{{ slsdotpath }}-source-build-make-clean"
- name: make -j "$(($(nproc)+1))"
- cwd: /home/user/src/bitcoin - cwd: /home/user/src/bitcoin
- runas: user - runas: user
"{{ slsdotpath }}-source-build-gen-manpages": "{{ slsdotpath }}-source-build-gen-manpages":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make" - cmd: "{{ slsdotpath }}-source-build-execute"
- env:
- BUILDDIR: "/home/user/bitcoin-build"
- name: ./contrib/devtools/gen-manpages.py - name: ./contrib/devtools/gen-manpages.py
- cwd: /home/user/src/bitcoin - cwd: /home/user/src/bitcoin
- runas: user - runas: user
@ -107,73 +108,75 @@ include:
"{{ slsdotpath }}-source-build-gen-bitcoin-conf": "{{ slsdotpath }}-source-build-gen-bitcoin-conf":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make" - cmd: "{{ slsdotpath }}-source-build-execute"
- env:
- BUILDDIR: "/home/user/bitcoin-build"
- name: ./contrib/devtools/gen-bitcoin-conf.sh - name: ./contrib/devtools/gen-bitcoin-conf.sh
- cwd: /home/user/src/bitcoin - cwd: /home/user/src/bitcoin
- runas: user - runas: user
"{{ slsdotpath }}-source-build-make-install": "{{ slsdotpath }}-source-build-install":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make" - cmd: "{{ slsdotpath }}-source-build-execute"
- name: make install - name: cmake --install /home/user/bitcoin-build
- cwd: /home/user/src/bitcoin - cwd: /home/user/src/bitcoin
- runas: user - runas: user
"{{ slsdotpath }}-source-readme": "{{ slsdotpath }}-source-readme":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make-install" - cmd: "{{ slsdotpath }}-source-build-install"
- name: | - name: |
\mkdir -p -- share/bitcoin \mkdir -p -- share/bitcoin
\cp -v -- ~/src/bitcoin/README.md share/bitcoin/ \cp -v -- ~/src/bitcoin/README.md share/bitcoin/
- cwd: /home/user/bitcoin-build - cwd: /home/user/bitcoin-install
- runas: user - runas: user
"{{ slsdotpath }}-source-share-examples": "{{ slsdotpath }}-source-share-examples":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make-install" - cmd: "{{ slsdotpath }}-source-build-install"
- name: | - name: |
\cp -v -- ~/src/bitcoin/share/examples/bitcoin.conf bitcoin.conf \cp -v -- ~/src/bitcoin/share/examples/bitcoin.conf bitcoin.conf
- cwd: /home/user/bitcoin-build - cwd: /home/user/bitcoin-install
- runas: user - runas: user
"{{ slsdotpath }}-source-shell-completion": "{{ slsdotpath }}-source-shell-completion":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make-install" - cmd: "{{ slsdotpath }}-source-build-install"
- name: | - name: |
\mkdir -p -- share/bash-completion/completions/ \mkdir -p -- share/bash-completion/completions/
\cp -v -- ~/src/bitcoin/contrib/completions/bash/* share/bash-completion/completions/ \cp -v -- ~/src/bitcoin/contrib/completions/bash/* share/bash-completion/completions/
- cwd: /home/user/bitcoin-build - cwd: /home/user/bitcoin-install
- runas: user - runas: user
"{{ slsdotpath }}-source-rpcauth": "{{ slsdotpath }}-source-rpcauth":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make-install" - cmd: "{{ slsdotpath }}-source-build-install"
- name: | - name: |
\mkdir -p -- share/rpcauth \mkdir -p -- share/rpcauth
\cp -v -- ~/src/bitcoin/share/rpcauth/rpcauth.py share/rpcauth/ \cp -v -- ~/src/bitcoin/share/rpcauth/rpcauth.py share/rpcauth/
- cwd: /home/user/bitcoin-build - cwd: /home/user/bitcoin-install
- runas: user - runas: user
"{{ slsdotpath }}-source-rpcauth": "{{ slsdotpath }}-source-gui-icons":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make-install" - cmd: "{{ slsdotpath }}-source-build-install"
- name: | - name: |
\mkdir -p -- share/icons/hicolor/scalable/apps/ \mkdir -p -- share/icons/hicolor/scalable/apps/
\cp -v -- ~/src/bitcoin/src/qt/res/src/bitcoin.svg share/icons/hicolor/scalable/apps/ \cp -v -- ~/src/bitcoin/src/qt/res/src/bitcoin.svg share/icons/hicolor/scalable/apps/
- cwd: /home/user/bitcoin-build - cwd: /home/user/bitcoin-install
- runas: user - runas: user
"{{ slsdotpath }}-source-copy-files-to-template": "{{ slsdotpath }}-source-copy-files-to-template":
cmd.run: cmd.run:
- require: - require:
- cmd: "{{ slsdotpath }}-source-build-make" - cmd: "{{ slsdotpath }}-source-build-install"
- name: qrexec-client-vm -T -- @default qusal.InstallBitcoin /usr/lib/qubes/qfile-agent /home/user/bitcoin-build/* - name: qrexec-client-vm -T -- @default qusal.InstallBitcoin /usr/lib/qubes/qfile-agent /home/user/bitcoin-install/*
- runas: user - runas: user
{% endif -%} {% endif -%}

View file

@ -1,5 +1,5 @@
{# {#
SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com> SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
@ -21,19 +21,19 @@ include:
- skip_suggestions: True - skip_suggestions: True
- setopt: "install_weak_deps=False" - setopt: "install_weak_deps=False"
- pkgs: - pkgs:
- clang - cmake
- clang-{{ version.clang_version }}
- ccache - ccache
- help2man - help2man
{% set pkg = { {% set pkg = {
'Debian': { 'Debian': {
'pkg': ['build-essential', 'libtool', 'autotools-dev', 'automake', 'pkg': ['build-essential', 'pkg-config', 'python3', 'libevent-dev',
'pkg-config', 'bsdmainutils', 'python3', 'libevent-dev',
'libboost-dev', 'libsqlite3-dev', 'libzmq3-dev'], 'libboost-dev', 'libsqlite3-dev', 'libzmq3-dev'],
}, },
'RedHat': { 'RedHat': {
'pkg': ['gcc-c++', 'libtool', 'make', 'autoconf', 'automake', 'python3', 'pkg': ['gcc-c++', 'make', 'python3', 'libevent-devel', 'boost-devel',
'libevent-devel', 'boost-devel', 'sqlite-devel', 'zeromq-devel'], 'sqlite-devel', 'zeromq-devel'],
}, },
}.get(grains.os_family) -%} }.get(grains.os_family) -%}
@ -48,11 +48,11 @@ include:
{% set pkg = { {% set pkg = {
'Debian': { 'Debian': {
'pkg': ['qtbase5-dev', 'qttools5-dev', 'pkg': ['qt6-base-dev', 'qt6-tools-dev', 'qt6-tools-dev-tools',
'qttools5-dev-tools', 'libqrencode-dev'], 'qt6-l10n-tools' , 'libgl-dev', 'libqrencode-dev', 'libxcb-cursor0'],
}, },
'RedHat': { 'RedHat': {
'pkg': ['qt5-qttools-devel', 'qt5-qtbase-devel', 'qrencode-devel'], 'pkg': ['qt6-qtbase-devel', 'qt6-qttools-devel', 'xcb-util-cursor', 'qrencode-devel'],
}, },
}.get(grains.os_family) -%} }.get(grains.os_family) -%}

View file

@ -4,4 +4,5 @@ SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.co
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}
{% set version = '28.1' -%} {% set version = '29.0' -%}
{% set clang_version = '19' -%}