mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
Merge #6362: backport: trivial 2024 10 25 pr1
b6544791b4
Merge bitcoin/bitcoin#30705: test: Avoid intermittent block download timeout in p2p_ibd_stalling (merge-script)745a819683
Merge bitcoin/bitcoin#30690: devtools, utxo-snapshot: Fix block height out of range in script (Ava Chow)01b570e9e2
Merge bitcoin/bitcoin#29999: guix: fix suggested fake date for openssl-1.1.1l (Ava Chow)432f352719
Merge bitcoin/bitcoin#30580: doc: Add note about distro's `g++-mingw-w64-x86-64-posix` version (merge-script)1bd090e7fb
Merge bitcoin/bitcoin#30597: doc: Drop no longer needed workaround for WSL (merge-script)8a12237745
Merge bitcoin/bitcoin#30630: doc: Update ccache website link (merge-script)f66547f84e
Merge bitcoin/bitcoin#30588: depends: fix ZMQ CMake getcachesize check (merge-script)ddaec964c0
Merge bitcoin/bitcoin#30565: depends: Fix `zeromq` build on OpenBSD (merge-script)e4e5605ef8
Merge bitcoin/bitcoin#30552: test: fix constructor of msg_tx (merge-script)df3c2392ca
Merge bitcoin/bitcoin#26950: cleanse: switch to SecureZeroMemory for Windows cross-compile (merge-script)57945ce337
Merge bitcoin/bitcoin#30506: depends: Cleanup postprocess commands after switching to CMake (merge-script)e016ffada1
Merge bitcoin/bitcoin#29878: depends: build expat with CMake (merge-script)62dcd43b58
Merge bitcoin/bitcoin#29880: depends: build FreeType with CMake (merge-script)745addf6a7
Merge bitcoin/bitcoin#30245: net: Allow -proxy=[::1] on nodes with IPV6 lo only (Ava Chow)4e144be0dd
Merge bitcoin-core/gui#795: Keep focus on "Hide" while ModalOverlay is visible (Hennadii Stepanov)69c04b2c48
Merge bitcoin/bitcoin#30372: util: Use SteadyClock in RandAddSeedPerfmon (merge-script)ebed8af1d0
Merge bitcoin/bitcoin#30336: depends: update doc in Qt pwd patch (merge-script)9793fb1a87
Merge bitcoin/bitcoin#30340: test: Added coverage to Block not found error using gettxoutsetinfo (Ava Chow)479cb8bcb8
Merge bitcoin/bitcoin#30312: contrib: add R(UN)PATH check to ELF symbol-check (merge-script)ca83773854
Merge bitcoin/bitcoin#30283: upnp: fix build with miniupnpc 2.2.8 (merge-script)63e139d11b
Merge bitcoin/bitcoin#30185: guix: show `*_FLAGS` variables in pre-build output (merge-script)3be0d3e5cd
Merge bitcoin/bitcoin#30097: crypto: disable asan for sha256_sse4 with clang and -O0 (merge-script)3070c3e388
Merge bitcoin/bitcoin#30078: depends: set AR & RANLIB for CMake (merge-script) Pull request description: ## Issue being fixed or feature implemented Trivial backports ## What was done? ## How Has This Been Tested? built locally ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACKb6544791b4
kwvg: utACKb6544791b4
Tree-SHA512: 10b5af4e92c83fa9d6764b20bf066bba8e4c600402966fd5c1d6dad07b0549d8a42151a33f21e2f8263336c12a810a6f3fc2828d90bc98153e09c165d9e5b043
This commit is contained in:
commit
565f2db930
@ -220,6 +220,11 @@ def check_exported_symbols(binary) -> bool:
|
|||||||
ok = False
|
ok = False
|
||||||
return ok
|
return ok
|
||||||
|
|
||||||
|
def check_RUNPATH(binary) -> bool:
|
||||||
|
assert binary.get(lief.ELF.DYNAMIC_TAGS.RUNPATH) is None
|
||||||
|
assert binary.get(lief.ELF.DYNAMIC_TAGS.RPATH) is None
|
||||||
|
return True
|
||||||
|
|
||||||
def check_ELF_libraries(binary) -> bool:
|
def check_ELF_libraries(binary) -> bool:
|
||||||
ok: bool = True
|
ok: bool = True
|
||||||
for library in binary.libraries:
|
for library in binary.libraries:
|
||||||
@ -280,6 +285,7 @@ lief.EXE_FORMATS.ELF: [
|
|||||||
('LIBRARY_DEPENDENCIES', check_ELF_libraries),
|
('LIBRARY_DEPENDENCIES', check_ELF_libraries),
|
||||||
('INTERPRETER_NAME', check_ELF_interpreter),
|
('INTERPRETER_NAME', check_ELF_interpreter),
|
||||||
('ABI', check_ELF_ABI),
|
('ABI', check_ELF_ABI),
|
||||||
|
('RUNPATH', check_RUNPATH),
|
||||||
],
|
],
|
||||||
lief.EXE_FORMATS.MACHO: [
|
lief.EXE_FORMATS.MACHO: [
|
||||||
('DYNAMIC_LIBRARIES', check_MACHO_libraries),
|
('DYNAMIC_LIBRARIES', check_MACHO_libraries),
|
||||||
|
@ -36,6 +36,16 @@ if (( GENERATE_AT_HEIGHT < PRUNED )); then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check current block height to ensure the node has synchronized past the required block
|
||||||
|
CURRENT_BLOCK_HEIGHT=$(${BITCOIN_CLI_CALL} getblockcount)
|
||||||
|
PIVOT_BLOCK_HEIGHT=$(( GENERATE_AT_HEIGHT + 1 ))
|
||||||
|
|
||||||
|
if (( PIVOT_BLOCK_HEIGHT > CURRENT_BLOCK_HEIGHT )); then
|
||||||
|
(>&2 echo "Error: The node has not yet synchronized to block height ${PIVOT_BLOCK_HEIGHT}.")
|
||||||
|
(>&2 echo "Please wait until the node has synchronized past this block height and try again.")
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Early exit if file at OUTPUT_PATH already exists
|
# Early exit if file at OUTPUT_PATH already exists
|
||||||
if [[ -e "$OUTPUT_PATH" ]]; then
|
if [[ -e "$OUTPUT_PATH" ]]; then
|
||||||
(>&2 echo "Error: $OUTPUT_PATH already exists or is not a valid path.")
|
(>&2 echo "Error: $OUTPUT_PATH already exists or is not a valid path.")
|
||||||
|
@ -671,6 +671,8 @@ More information: https://github.com/python/cpython/issues/81765
|
|||||||
OpenSSL includes tests that will fail once some certificate has expired.
|
OpenSSL includes tests that will fail once some certificate has expired.
|
||||||
The workarounds from the GnuTLS section immediately below can be used.
|
The workarounds from the GnuTLS section immediately below can be used.
|
||||||
|
|
||||||
|
For openssl-1.1.1l use 2022-05-01 as the date.
|
||||||
|
|
||||||
### GnuTLS: test-suite FAIL: status-request-revoked
|
### GnuTLS: test-suite FAIL: status-request-revoked
|
||||||
|
|
||||||
*The derivation is likely identified by: `/gnu/store/vhphki5sg9xkdhh2pbc8gi6vhpfzryf0-gnutls-3.6.12.drv`*
|
*The derivation is likely identified by: `/gnu/store/vhphki5sg9xkdhh2pbc8gi6vhpfzryf0-gnutls-3.6.12.drv`*
|
||||||
@ -705,11 +707,12 @@ authorized.
|
|||||||
This workaround was described [here](https://issues.guix.gnu.org/44559#5).
|
This workaround was described [here](https://issues.guix.gnu.org/44559#5).
|
||||||
|
|
||||||
Basically:
|
Basically:
|
||||||
2. Turn off NTP
|
|
||||||
3. Set system time to 2020-10-01
|
1. Turn off NTP
|
||||||
4. guix build --no-substitutes /gnu/store/vhphki5sg9xkdhh2pbc8gi6vhpfzryf0-gnutls-3.6.12.drv
|
2. Set system time to 2020-10-01
|
||||||
5. Set system time back to accurate current time
|
3. guix build --no-substitutes /gnu/store/vhphki5sg9xkdhh2pbc8gi6vhpfzryf0-gnutls-3.6.12.drv
|
||||||
6. Turn NTP back on
|
4. Set system time back to accurate current time
|
||||||
|
5. Turn NTP back on
|
||||||
|
|
||||||
For example,
|
For example,
|
||||||
|
|
||||||
|
@ -360,6 +360,10 @@ INFO: Building ${VERSION:?not set} for platform triple ${HOST:?not set}:
|
|||||||
...bind-mounted in container to: '$(DISTSRC_BASE=/distsrc-base && distsrc_for_host "$HOST")'
|
...bind-mounted in container to: '$(DISTSRC_BASE=/distsrc-base && distsrc_for_host "$HOST")'
|
||||||
...outputting in: '$(outdir_for_host "$HOST")'
|
...outputting in: '$(outdir_for_host "$HOST")'
|
||||||
...bind-mounted in container to: '$(OUTDIR_BASE=/outdir-base && outdir_for_host "$HOST")'
|
...bind-mounted in container to: '$(OUTDIR_BASE=/outdir-base && outdir_for_host "$HOST")'
|
||||||
|
ADDITIONAL FLAGS (if set)
|
||||||
|
ADDITIONAL_GUIX_COMMON_FLAGS: ${ADDITIONAL_GUIX_COMMON_FLAGS}
|
||||||
|
ADDITIONAL_GUIX_ENVIRONMENT_FLAGS: ${ADDITIONAL_GUIX_ENVIRONMENT_FLAGS}
|
||||||
|
ADDITIONAL_GUIX_TIMEMACHINE_FLAGS: ${ADDITIONAL_GUIX_TIMEMACHINE_FLAGS}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Run the build script 'contrib/guix/libexec/build.sh' in the build
|
# Run the build script 'contrib/guix/libexec/build.sh' in the build
|
||||||
|
@ -181,6 +181,9 @@ $(1)_cmake=env CC="$$($(1)_cc)" \
|
|||||||
CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \
|
CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \
|
||||||
LDFLAGS="$$($(1)_ldflags)" \
|
LDFLAGS="$$($(1)_ldflags)" \
|
||||||
cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)" \
|
cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)" \
|
||||||
|
-DCMAKE_AR=`which $$($(1)_ar)` \
|
||||||
|
-DCMAKE_NM=`which $$($(1)_nm)` \
|
||||||
|
-DCMAKE_RANLIB=`which $$($(1)_ranlib)` \
|
||||||
-DCMAKE_INSTALL_LIBDIR=lib/ \
|
-DCMAKE_INSTALL_LIBDIR=lib/ \
|
||||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=$(V) \
|
-DCMAKE_VERBOSE_MAKEFILE:BOOL=$(V) \
|
||||||
|
@ -3,19 +3,25 @@ $(package)_version=2.4.8
|
|||||||
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
|
$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
|
||||||
$(package)_file_name=$(package)-$($(package)_version).tar.xz
|
$(package)_file_name=$(package)-$($(package)_version).tar.xz
|
||||||
$(package)_sha256_hash=f79b8f904b749e3e0d20afeadecf8249c55b2e32d4ebb089ae378df479dcaf25
|
$(package)_sha256_hash=f79b8f904b749e3e0d20afeadecf8249c55b2e32d4ebb089ae378df479dcaf25
|
||||||
|
$(package)_build_subdir=build
|
||||||
|
$(package)_patches += cmake_minimum.patch
|
||||||
|
|
||||||
# -D_DEFAULT_SOURCE defines __USE_MISC, which exposes additional
|
# -D_DEFAULT_SOURCE defines __USE_MISC, which exposes additional
|
||||||
# definitions in endian.h, which are required for a working
|
# definitions in endian.h, which are required for a working
|
||||||
# endianess check in configure when building with -flto.
|
# endianess check in configure when building with -flto.
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
|
$(package)_config_opts := -DCMAKE_BUILD_TYPE=None -DEXPAT_BUILD_TOOLS=OFF
|
||||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
$(package)_config_opts += -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF
|
||||||
$(package)_config_opts += --without-xmlwf
|
$(package)_config_opts += -DBUILD_SHARED_LIBS=OFF
|
||||||
$(package)_cppflags += -D_DEFAULT_SOURCE
|
$(package)_cppflags += -D_DEFAULT_SOURCE
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define $(package)_preprocess_cmds
|
||||||
|
patch -p1 < $($(package)_patch_dir)/cmake_minimum.patch
|
||||||
|
endef
|
||||||
|
|
||||||
define $(package)_config_cmds
|
define $(package)_config_cmds
|
||||||
$($(package)_autoconf)
|
$($(package)_cmake) -S .. -B .
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_build_cmds
|
define $(package)_build_cmds
|
||||||
@ -27,5 +33,5 @@ define $(package)_stage_cmds
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_postprocess_cmds
|
define $(package)_postprocess_cmds
|
||||||
rm -rf share lib/cmake lib/*.la
|
rm -rf share lib/cmake
|
||||||
endef
|
endef
|
||||||
|
@ -3,14 +3,17 @@ $(package)_version=2.11.0
|
|||||||
$(package)_download_path=https://download.savannah.gnu.org/releases/$(package)
|
$(package)_download_path=https://download.savannah.gnu.org/releases/$(package)
|
||||||
$(package)_file_name=$(package)-$($(package)_version).tar.xz
|
$(package)_file_name=$(package)-$($(package)_version).tar.xz
|
||||||
$(package)_sha256_hash=8bee39bd3968c4804b70614a0a3ad597299ad0e824bc8aad5ce8aaf48067bde7
|
$(package)_sha256_hash=8bee39bd3968c4804b70614a0a3ad597299ad0e824bc8aad5ce8aaf48067bde7
|
||||||
|
$(package)_build_subdir=build
|
||||||
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_config_opts=--without-zlib --without-png --without-harfbuzz --without-bzip2 --disable-static
|
$(package)_config_opts := -DCMAKE_BUILD_TYPE=None -DBUILD_SHARED_LIBS=TRUE
|
||||||
$(package)_config_opts += --enable-option-checking --without-brotli
|
$(package)_config_opts += -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE
|
||||||
|
$(package)_config_opts += -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE
|
||||||
|
$(package)_config_opts += -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_config_cmds
|
define $(package)_config_cmds
|
||||||
$($(package)_autoconf)
|
$($(package)_cmake) -S .. -B .
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_build_cmds
|
define $(package)_build_cmds
|
||||||
@ -21,6 +24,3 @@ define $(package)_stage_cmds
|
|||||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_postprocess_cmds
|
|
||||||
rm -rf share/man lib/*.la
|
|
||||||
endef
|
|
||||||
|
@ -36,7 +36,7 @@ define $(package)_stage_cmds
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_postprocess_cmds
|
define $(package)_postprocess_cmds
|
||||||
rm bin/event_rpcgen.py && \
|
rm -rf bin && \
|
||||||
rm include/ev*.h && \
|
rm include/ev*.h && \
|
||||||
rm include/event2/*_compat.h
|
rm include/event2/*_compat.h
|
||||||
endef
|
endef
|
||||||
|
@ -28,3 +28,8 @@ define $(package)_stage_cmds
|
|||||||
install *.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\
|
install *.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\
|
||||||
install libminiupnpc.a $($(package)_staging_prefix_dir)/lib
|
install libminiupnpc.a $($(package)_staging_prefix_dir)/lib
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define $(package)_postprocess_cmds
|
||||||
|
rm -rf bin && \
|
||||||
|
rm -rf share
|
||||||
|
endef
|
||||||
|
@ -28,3 +28,7 @@ endef
|
|||||||
define $(package)_stage_cmds
|
define $(package)_stage_cmds
|
||||||
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
$(MAKE) DESTDIR=$($(package)_staging_dir) install
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define $(package)_postprocess_cmds
|
||||||
|
rm -rf share
|
||||||
|
endef
|
||||||
|
@ -8,7 +8,9 @@ $(package)_patches = remove_libstd_link.patch
|
|||||||
$(package)_patches += macos_mktemp_check.patch
|
$(package)_patches += macos_mktemp_check.patch
|
||||||
$(package)_patches += builtin_sha1.patch
|
$(package)_patches += builtin_sha1.patch
|
||||||
$(package)_patches += fix_have_windows.patch
|
$(package)_patches += fix_have_windows.patch
|
||||||
|
$(package)_patches += openbsd_kqueue_headers.patch
|
||||||
$(package)_patches += cmake_minimum.patch
|
$(package)_patches += cmake_minimum.patch
|
||||||
|
$(package)_patches += cacheline_undefined.patch
|
||||||
$(package)_patches += no_librt.patch
|
$(package)_patches += no_librt.patch
|
||||||
$(package)_patches += fix_mingw_link.patch
|
$(package)_patches += fix_mingw_link.patch
|
||||||
|
|
||||||
@ -27,7 +29,9 @@ define $(package)_preprocess_cmds
|
|||||||
patch -p1 < $($(package)_patch_dir)/remove_libstd_link.patch && \
|
patch -p1 < $($(package)_patch_dir)/remove_libstd_link.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/macos_mktemp_check.patch && \
|
patch -p1 < $($(package)_patch_dir)/macos_mktemp_check.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/builtin_sha1.patch && \
|
patch -p1 < $($(package)_patch_dir)/builtin_sha1.patch && \
|
||||||
|
patch -p1 < $($(package)_patch_dir)/cacheline_undefined.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/fix_have_windows.patch && \
|
patch -p1 < $($(package)_patch_dir)/fix_have_windows.patch && \
|
||||||
|
patch -p1 < $($(package)_patch_dir)/openbsd_kqueue_headers.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/cmake_minimum.patch && \
|
patch -p1 < $($(package)_patch_dir)/cmake_minimum.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/no_librt.patch && \
|
patch -p1 < $($(package)_patch_dir)/no_librt.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/fix_mingw_link.patch
|
patch -p1 < $($(package)_patch_dir)/fix_mingw_link.patch
|
||||||
@ -46,5 +50,5 @@ define $(package)_stage_cmds
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_postprocess_cmds
|
define $(package)_postprocess_cmds
|
||||||
rm -rf bin share lib/*.la
|
rm -rf share
|
||||||
endef
|
endef
|
||||||
|
13
depends/patches/expat/cmake_minimum.patch
Normal file
13
depends/patches/expat/cmake_minimum.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
build: set minimum required CMake to 3.16
|
||||||
|
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -33,7 +33,7 @@
|
||||||
|
# Unlike most of Expat,
|
||||||
|
# this file is copyrighted under the BSD-license for buildsystem files of KDE.
|
||||||
|
|
||||||
|
-cmake_minimum_required(VERSION 3.1.3)
|
||||||
|
+cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
|
# This allows controlling documented build time switches
|
||||||
|
# when Expat is pulled in using the add_subdirectory function, e.g.
|
@ -1,13 +1,13 @@
|
|||||||
commit 0e953866fc4672486e29e1ba6d83b4207e7b2f0b
|
Do not assume FHS in scripts
|
||||||
Author: fanquake <fanquake@gmail.com>
|
|
||||||
Date: Tue Aug 18 15:09:06 2020 +0800
|
|
||||||
|
|
||||||
Don't hardcode pwd path
|
On systems that do not follow the Filesystem Hierarchy Standard, such as
|
||||||
|
guix, the hardcoded `/bin/pwd` will fail to be found so that the script
|
||||||
|
will fail.
|
||||||
|
|
||||||
Let a man use his builtins if he wants to! Also, removes the unnecessary
|
Use `pwd`, instead, so that the command can be found through the normal
|
||||||
assumption that pwd lives under /bin/pwd.
|
path search mechanism.
|
||||||
|
|
||||||
See #15581.
|
See https://github.com/qt/qtbase/commit/3388de698bfb9bbc456c08f03e83bf3e749df35c.
|
||||||
|
|
||||||
diff --git a/qtbase/configure b/qtbase/configure
|
diff --git a/qtbase/configure b/qtbase/configure
|
||||||
index 08b49a8d..faea5b55 100755
|
index 08b49a8d..faea5b55 100755
|
||||||
|
15
depends/patches/zeromq/cacheline_undefined.patch
Normal file
15
depends/patches/zeromq/cacheline_undefined.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Use proper STREQUAL instead of EQUAL to compare strings.txt
|
||||||
|
|
||||||
|
See: https://github.com/zeromq/libzmq/pull/4711.
|
||||||
|
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -476,7 +476,7 @@ execute_process(
|
||||||
|
if(CACHELINE_SIZE STREQUAL ""
|
||||||
|
OR CACHELINE_SIZE EQUAL 0
|
||||||
|
OR CACHELINE_SIZE EQUAL -1
|
||||||
|
- OR CACHELINE_SIZE EQUAL "undefined")
|
||||||
|
+ OR CACHELINE_SIZE STREQUAL "undefined")
|
||||||
|
set(ZMQ_CACHELINE_SIZE 64)
|
||||||
|
else()
|
||||||
|
set(ZMQ_CACHELINE_SIZE ${CACHELINE_SIZE})
|
24
depends/patches/zeromq/openbsd_kqueue_headers.patch
Normal file
24
depends/patches/zeromq/openbsd_kqueue_headers.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
commit ff231d267370493814f933d151441866bf1e200b
|
||||||
|
Author: Min RK <benjaminrk@gmail.com>
|
||||||
|
Date: Fri Feb 23 13:21:08 2024 +0100
|
||||||
|
|
||||||
|
Problem: cmake search for kqueue missing headers
|
||||||
|
|
||||||
|
Solution: include sys/types.h and sys/time.h as documented by kqueue
|
||||||
|
and used in autotools
|
||||||
|
|
||||||
|
fixes kqueue detection on openbsd
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index f956f3fd..814d5d46 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -380,7 +380,7 @@ endif(WIN32)
|
||||||
|
|
||||||
|
if(NOT MSVC)
|
||||||
|
if(POLLER STREQUAL "")
|
||||||
|
- check_cxx_symbol_exists(kqueue sys/event.h HAVE_KQUEUE)
|
||||||
|
+ check_cxx_symbol_exists(kqueue "sys/types.h;sys/event.h;sys/time.h" HAVE_KQUEUE)
|
||||||
|
if(HAVE_KQUEUE)
|
||||||
|
set(POLLER "kqueue")
|
||||||
|
endif()
|
@ -12,6 +12,9 @@ Other options which may work, but which have not been extensively tested are (pl
|
|||||||
|
|
||||||
* On Windows, using a POSIX compatibility layer application such as [cygwin](https://www.cygwin.com/) or [msys2](https://www.msys2.org/).
|
* On Windows, using a POSIX compatibility layer application such as [cygwin](https://www.cygwin.com/) or [msys2](https://www.msys2.org/).
|
||||||
|
|
||||||
|
The instructions below work on Ubuntu and Debian. Make sure the distribution's `g++-mingw-w64-x86-64-posix`
|
||||||
|
package meets the minimum required `g++` version specified in [dependencies.md](dependencies.md).
|
||||||
|
|
||||||
Installing Windows Subsystem for Linux
|
Installing Windows Subsystem for Linux
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
@ -52,7 +55,6 @@ is to temporarily disable WSL support for Win32 applications.
|
|||||||
|
|
||||||
Build using:
|
Build using:
|
||||||
|
|
||||||
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
|
|
||||||
sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" # Disable WSL support for Win32 applications.
|
sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" # Disable WSL support for Win32 applications.
|
||||||
cd depends
|
cd depends
|
||||||
make HOST=x86_64-w64-mingw32
|
make HOST=x86_64-w64-mingw32
|
||||||
|
@ -33,7 +33,7 @@ The easiest way to faster compile times is to cache compiles. `ccache` is a way
|
|||||||
|
|
||||||
Install `ccache` through your distribution's package manager, and run `./configure` with your normal flags to pick it up.
|
Install `ccache` through your distribution's package manager, and run `./configure` with your normal flags to pick it up.
|
||||||
|
|
||||||
To use ccache for all your C/C++ projects, follow the symlinks method [here](https://ccache.samba.org/manual/latest.html#_run_modes) to set it up.
|
To use ccache for all your C/C++ projects, follow the symlinks method [here](https://ccache.dev/manual/latest.html#_run_modes) to set it up.
|
||||||
|
|
||||||
To get the most out of ccache, put something like this in `~/.ccache/ccache.conf`:
|
To get the most out of ccache, put something like this in `~/.ccache/ccache.conf`:
|
||||||
|
|
||||||
|
@ -13,6 +13,13 @@
|
|||||||
namespace sha256_sse4
|
namespace sha256_sse4
|
||||||
{
|
{
|
||||||
void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks)
|
void Transform(uint32_t* s, const unsigned char* chunk, size_t blocks)
|
||||||
|
#if defined(__clang__) && !defined(__OPTIMIZE__)
|
||||||
|
/*
|
||||||
|
clang is unable to compile this with -O0 and -fsanitize=address.
|
||||||
|
See upstream bug: https://github.com/llvm/llvm-project/issues/92182
|
||||||
|
*/
|
||||||
|
__attribute__((no_sanitize("address")))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
static const uint32_t K256 alignas(16) [] = {
|
static const uint32_t K256 alignas(16) [] = {
|
||||||
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
|
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
|
||||||
|
@ -167,8 +167,11 @@ static bool ProcessUpnp()
|
|||||||
struct UPNPUrls urls;
|
struct UPNPUrls urls;
|
||||||
struct IGDdatas data;
|
struct IGDdatas data;
|
||||||
int r;
|
int r;
|
||||||
|
#if MINIUPNPC_API_VERSION <= 17
|
||||||
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
|
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
|
||||||
|
#else
|
||||||
|
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr), nullptr, 0);
|
||||||
|
#endif
|
||||||
if (r == 1)
|
if (r == 1)
|
||||||
{
|
{
|
||||||
if (fDiscover) {
|
if (fDiscover) {
|
||||||
|
@ -47,6 +47,7 @@ std::vector<CNetAddr> WrappedGetAddrInfo(const std::string& name, bool allow_loo
|
|||||||
ai_hint.ai_protocol = IPPROTO_TCP;
|
ai_hint.ai_protocol = IPPROTO_TCP;
|
||||||
// We don't care which address family (IPv4 or IPv6) is returned
|
// We don't care which address family (IPv4 or IPv6) is returned
|
||||||
ai_hint.ai_family = AF_UNSPEC;
|
ai_hint.ai_family = AF_UNSPEC;
|
||||||
|
|
||||||
// If we allow lookups of hostnames, use the AI_ADDRCONFIG flag to only
|
// If we allow lookups of hostnames, use the AI_ADDRCONFIG flag to only
|
||||||
// return addresses whose family we have an address configured for.
|
// return addresses whose family we have an address configured for.
|
||||||
//
|
//
|
||||||
@ -58,7 +59,17 @@ std::vector<CNetAddr> WrappedGetAddrInfo(const std::string& name, bool allow_loo
|
|||||||
addrinfo* ai_res{nullptr};
|
addrinfo* ai_res{nullptr};
|
||||||
const int n_err{getaddrinfo(name.c_str(), nullptr, &ai_hint, &ai_res)};
|
const int n_err{getaddrinfo(name.c_str(), nullptr, &ai_hint, &ai_res)};
|
||||||
if (n_err != 0) {
|
if (n_err != 0) {
|
||||||
return {};
|
if ((ai_hint.ai_flags & AI_ADDRCONFIG) == AI_ADDRCONFIG) {
|
||||||
|
// AI_ADDRCONFIG on some systems may exclude loopback-only addresses
|
||||||
|
// If first lookup failed we perform a second lookup without AI_ADDRCONFIG
|
||||||
|
ai_hint.ai_flags = (ai_hint.ai_flags & ~AI_ADDRCONFIG);
|
||||||
|
const int n_err_retry{getaddrinfo(name.c_str(), nullptr, &ai_hint, &ai_res)};
|
||||||
|
if (n_err_retry != 0) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Traverse the linked list starting with ai_trav.
|
// Traverse the linked list starting with ai_trav.
|
||||||
|
@ -38,6 +38,7 @@ foreverHidden(false)
|
|||||||
parent->installEventFilter(this);
|
parent->installEventFilter(this);
|
||||||
raise();
|
raise();
|
||||||
}
|
}
|
||||||
|
ui->closeButton->installEventFilter(this);
|
||||||
|
|
||||||
blockProcessTime.clear();
|
blockProcessTime.clear();
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
@ -75,6 +76,11 @@ bool ModalOverlay::eventFilter(QObject * obj, QEvent * ev) {
|
|||||||
raise();
|
raise();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (obj == ui->closeButton && ev->type() == QEvent::FocusOut && layerIsVisible) {
|
||||||
|
ui->closeButton->setFocus(Qt::OtherFocusReason);
|
||||||
|
}
|
||||||
|
|
||||||
return QWidget::eventFilter(obj, ev);
|
return QWidget::eventFilter(obj, ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,6 +201,10 @@ void ModalOverlay::showHide(bool hide, bool userRequested)
|
|||||||
m_animation.setEndValue(QPoint(0, hide ? height() : 0));
|
m_animation.setEndValue(QPoint(0, hide ? height() : 0));
|
||||||
m_animation.start(QAbstractAnimation::KeepWhenStopped);
|
m_animation.start(QAbstractAnimation::KeepWhenStopped);
|
||||||
layerIsVisible = !hide;
|
layerIsVisible = !hide;
|
||||||
|
|
||||||
|
if (layerIsVisible) {
|
||||||
|
ui->closeButton->setFocus(Qt::OtherFocusReason);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModalOverlay::closeClicked()
|
void ModalOverlay::closeClicked()
|
||||||
|
@ -72,10 +72,10 @@ void RandAddSeedPerfmon(CSHA512& hasher)
|
|||||||
|
|
||||||
// This can take up to 2 seconds, so only do it every 10 minutes.
|
// This can take up to 2 seconds, so only do it every 10 minutes.
|
||||||
// Initialize last_perfmon to 0 seconds, we don't skip the first call.
|
// Initialize last_perfmon to 0 seconds, we don't skip the first call.
|
||||||
static std::atomic<std::chrono::seconds> last_perfmon{0s};
|
static std::atomic<SteadyClock::time_point> last_perfmon{SteadyClock::time_point{0s}};
|
||||||
auto last_time = last_perfmon.load();
|
auto last_time = last_perfmon.load();
|
||||||
auto current_time = GetTime<std::chrono::seconds>();
|
auto current_time = SteadyClock::now();
|
||||||
if (current_time < last_time + std::chrono::minutes{10}) return;
|
if (current_time < last_time + 10min) return;
|
||||||
last_perfmon = current_time;
|
last_perfmon = current_time;
|
||||||
|
|
||||||
std::vector<unsigned char> vData(250000, 0);
|
std::vector<unsigned char> vData(250000, 0);
|
||||||
|
@ -7,14 +7,14 @@
|
|||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(WIN32)
|
||||||
#include <Windows.h> // For SecureZeroMemory.
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void memory_cleanse(void *ptr, size_t len)
|
void memory_cleanse(void *ptr, size_t len)
|
||||||
{
|
{
|
||||||
#if defined(_MSC_VER)
|
#if defined(WIN32)
|
||||||
/* SecureZeroMemory is guaranteed not to be optimized out by MSVC. */
|
/* SecureZeroMemory is guaranteed not to be optimized out. */
|
||||||
SecureZeroMemory(ptr, len);
|
SecureZeroMemory(ptr, len);
|
||||||
#else
|
#else
|
||||||
std::memset(ptr, 0, len);
|
std::memset(ptr, 0, len);
|
||||||
|
@ -261,6 +261,9 @@ class CoinStatsIndexTest(BitcoinTestFramework):
|
|||||||
)
|
)
|
||||||
self.restart_node(1, extra_args=["-coinstatsindex"])
|
self.restart_node(1, extra_args=["-coinstatsindex"])
|
||||||
|
|
||||||
|
self.log.info("Test obtaining info for a non-existent block hash")
|
||||||
|
assert_raises_rpc_error(-5, "Block not found", index_node.gettxoutsetinfo, hash_type="none", hash_or_height="ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", use_index=True)
|
||||||
|
|
||||||
def _test_use_index_option(self):
|
def _test_use_index_option(self):
|
||||||
self.log.info("Test use_index option for nodes running the index")
|
self.log.info("Test use_index option for nodes running the index")
|
||||||
|
|
||||||
|
@ -76,6 +76,7 @@ class P2PIBDStallingTest(BitcoinTestFramework):
|
|||||||
peers = []
|
peers = []
|
||||||
|
|
||||||
self.log.info("Check that a staller does not get disconnected if the 1024 block lookahead buffer is filled")
|
self.log.info("Check that a staller does not get disconnected if the 1024 block lookahead buffer is filled")
|
||||||
|
self.mocktime = int(time.time()) + 1
|
||||||
for id in range(NUM_PEERS):
|
for id in range(NUM_PEERS):
|
||||||
peers.append(node.add_outbound_p2p_connection(P2PStaller(stall_block), services = NODE_NETWORK | NODE_BLOOM, p2p_idx=id, connection_type="outbound-full-relay"))
|
peers.append(node.add_outbound_p2p_connection(P2PStaller(stall_block), services = NODE_NETWORK | NODE_BLOOM, p2p_idx=id, connection_type="outbound-full-relay"))
|
||||||
peers[-1].block_store = block_dict
|
peers[-1].block_store = block_dict
|
||||||
@ -88,7 +89,7 @@ class P2PIBDStallingTest(BitcoinTestFramework):
|
|||||||
|
|
||||||
self.all_sync_send_with_ping(peers)
|
self.all_sync_send_with_ping(peers)
|
||||||
# If there was a peer marked for stalling, it would get disconnected
|
# If there was a peer marked for stalling, it would get disconnected
|
||||||
self.mocktime = int(time.time()) + 3
|
self.mocktime += 3
|
||||||
node.setmocktime(self.mocktime)
|
node.setmocktime(self.mocktime)
|
||||||
self.all_sync_send_with_ping(peers)
|
self.all_sync_send_with_ping(peers)
|
||||||
assert_equal(node.num_test_p2p_connections(), NUM_PEERS)
|
assert_equal(node.num_test_p2p_connections(), NUM_PEERS)
|
||||||
|
@ -1724,8 +1724,11 @@ class msg_tx:
|
|||||||
__slots__ = ("tx",)
|
__slots__ = ("tx",)
|
||||||
msgtype = b"tx"
|
msgtype = b"tx"
|
||||||
|
|
||||||
def __init__(self, tx=CTransaction()):
|
def __init__(self, tx=None):
|
||||||
self.tx = tx
|
if tx is None:
|
||||||
|
self.tx = CTransaction()
|
||||||
|
else:
|
||||||
|
self.tx = tx
|
||||||
|
|
||||||
def deserialize(self, f):
|
def deserialize(self, f):
|
||||||
self.tx.deserialize(f)
|
self.tx.deserialize(f)
|
||||||
|
Loading…
Reference in New Issue
Block a user