Skip to content

Commit e828fc8

Browse files
committed
Merge #21376: depends: Qt 5.12.10
550ed1b build: update qt qpaint non determinism patch for 5.12.10 (fanquake) 6093ae4 build: update qt no-xlib patch for 5.12.10 (fanquake) 84928c4 build: update qt android jni static patch for 5.12.10 (fanquake) cc6f47d build: update qt lrelease patch for 5.12.10 (fanquake) 286d07f build, qt: Fix lib paths in *.pc files (Hennadii Stepanov) fa5e97e build: disable qt SDK version checking (fanquake) 1be8e0f build: Add QMacStyle support (Hennadii Stepanov) e674e94 build: revert to using Qts internal zlib (fanquake) 06cd0da build: qt 5.12.10 (fanquake) 3272e34 build: Add xkbcommon 0.8.4 (Hennadii Stepanov) d769b33 build: only pass -optimized-tools to qt in debug mode (fanquake) Pull request description: Switch to Qt 5.12.10 in depends. Based on #21363. This is a much smaller changeset, and should be easier to review than #19716. Also postpones needing to bring a bunch of new libs into depends. Big thanks to Hebasto that has been helping with this. ACKs for top commit: laanwj: Code review ACK 550ed1b hebasto: ACK 550ed1b jarolrod: ACK 550ed1b , tested on macOS 11.2 built from depends Tree-SHA512: cb6b70f5a5372ba0b64f7ddfa696eda0411922cd261c67bfa2d9332c685a7b358ab18e5cfaa677b414ae8ad78296bba6ed0eecd071fdacdf736a0d030f679fe5
2 parents 767bb7d + 550ed1b commit e828fc8

29 files changed

+326
-289
lines changed

build-aux/m4/bitcoin_qt.m4

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
123123
_BITCOIN_QT_CHECK_STATIC_LIBS
124124
125125
if test "x$qt_plugin_path" != x; then
126-
QT_LIBS="$QT_LIBS -L$qt_plugin_path/platforms"
126+
QT_LIBS="$QT_LIBS -L$qt_plugin_path/platforms -L$qt_plugin_path/styles"
127127
if test -d "$qt_plugin_path/accessible"; then
128128
QT_LIBS="$QT_LIBS -L$qt_plugin_path/accessible"
129129
fi
@@ -138,13 +138,23 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
138138
AC_DEFINE(QT_QPA_PLATFORM_MINIMAL, 1, [Define this symbol if the minimal qt platform exists])
139139
fi
140140
if test "x$TARGET_OS" = xwindows; then
141+
dnl Linking against wtsapi32 is required. See #17749 and
142+
dnl https://bugreports.qt.io/browse/QTBUG-27097.
143+
AX_CHECK_LINK_FLAG([-lwtsapi32], [QT_LIBS="$QT_LIBS -lwtsapi32"], [AC_MSG_ERROR([could not link against -lwtsapi32])])
141144
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QWindowsIntegrationPlugin], [-lqwindows])
142145
AC_DEFINE(QT_QPA_PLATFORM_WINDOWS, 1, [Define this symbol if the qt platform is windows])
143146
elif test "x$TARGET_OS" = xlinux; then
147+
dnl workaround for https://bugreports.qt.io/browse/QTBUG-74874
148+
AX_CHECK_LINK_FLAG([-lxcb-shm], [QT_LIBS="-lxcb-shm $QT_LIBS"], [AC_MSG_ERROR([could not link against -lxcb-shm])])
144149
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QXcbIntegrationPlugin], [-lqxcb -lxcb-static])
145150
AC_DEFINE(QT_QPA_PLATFORM_XCB, 1, [Define this symbol if the qt platform is xcb])
146151
elif test "x$TARGET_OS" = xdarwin; then
152+
AX_CHECK_LINK_FLAG([[-framework Carbon]],[QT_LIBS="$QT_LIBS -framework Carbon"],[AC_MSG_ERROR(could not link against Carbon framework)])
153+
AX_CHECK_LINK_FLAG([[-framework IOSurface]],[QT_LIBS="$QT_LIBS -framework IOSurface"],[AC_MSG_ERROR(could not link against IOSurface framework)])
154+
AX_CHECK_LINK_FLAG([[-framework Metal]],[QT_LIBS="$QT_LIBS -framework Metal"],[AC_MSG_ERROR(could not link against Metal framework)])
155+
AX_CHECK_LINK_FLAG([[-framework QuartzCore]],[QT_LIBS="$QT_LIBS -framework QuartzCore"],[AC_MSG_ERROR(could not link against QuartzCore framework)])
147156
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QCocoaIntegrationPlugin], [-lqcocoa])
157+
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QMacStylePlugin], [-lqmacstyle])
148158
AC_DEFINE(QT_QPA_PLATFORM_COCOA, 1, [Define this symbol if the qt platform is cocoa])
149159
elif test "x$TARGET_OS" = xandroid; then
150160
QT_LIBS="-Wl,--export-dynamic,--undefined=JNI_OnLoad -lqtforandroid -ljnigraphics -landroid -lqtfreetype -lQt5EglSupport $QT_LIBS"
@@ -334,7 +344,8 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
334344
elif test "x$TARGET_OS" = xdarwin; then
335345
PKG_CHECK_MODULES([QTCLIPBOARD], [Qt5ClipboardSupport${qt_lib_suffix}], [QT_LIBS="-lQt5ClipboardSupport${qt_lib_suffix} $QT_LIBS"])
336346
PKG_CHECK_MODULES([QTGRAPHICS], [Qt5GraphicsSupport${qt_lib_suffix}], [QT_LIBS="-lQt5GraphicsSupport${qt_lib_suffix} $QT_LIBS"])
337-
PKG_CHECK_MODULES([QTCGL], [Qt5CglSupport${qt_lib_suffix}], [QT_LIBS="-lQt5CglSupport${qt_lib_suffix} $QT_LIBS"])
347+
elif test "x$TARGET_OS" = xwindows; then
348+
PKG_CHECK_MODULES([QTWINDOWSUIAUTOMATION], [Qt5WindowsUIAutomationSupport${qt_lib_suffix}], [QT_LIBS="-lQt5WindowsUIAutomationSupport${qt_lib_suffix} $QT_LIBS"])
338349
fi
339350
])
340351

ci/test/00_setup_env.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export BASE_OUTDIR=${BASE_OUTDIR:-$BASE_SCRATCH_DIR/out/$HOST}
6565
export BASE_BUILD_DIR=${BASE_BUILD_DIR:-$BASE_SCRATCH_DIR/build}
6666
export PREVIOUS_RELEASES_DIR=${PREVIOUS_RELEASES_DIR:-$BASE_ROOT_DIR/releases/$HOST}
6767
export SDK_URL=${SDK_URL:-https://bitcoincore.org/depends-sources/sdks}
68-
export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps}
68+
export DOCKER_PACKAGES=${DOCKER_PACKAGES:-build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps bison}
6969
export GOAL=${GOAL:-install}
7070
export DIR_QA_ASSETS=${DIR_QA_ASSETS:-${BASE_SCRATCH_DIR}/qa-assets}
7171
export PATH=${BASE_ROOT_DIR}/ci/retry:$PATH

ci/test/00_setup_env_i686_centos.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
99
export HOST=i686-pc-linux-gnu
1010
export CONTAINER_NAME=ci_i686_centos_8
1111
export DOCKER_NAME_TAG=centos:8
12-
export DOCKER_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-zmq which patch lbzip2 dash rsync coreutils"
12+
export DOCKER_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-zmq which patch lbzip2 dash rsync coreutils bison"
1313
export GOAL="install"
1414
export BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-reduce-exports --with-boost-process"
1515
export CONFIG_SHELL="/bin/dash"

contrib/devtools/symbol-check.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@
7373
'ld-linux-riscv64-lp64d.so.1', # 64-bit RISC-V dynamic linker
7474
# bitcoin-qt only
7575
'libxcb.so.1', # part of X11
76+
'libxkbcommon.so.0', # keyboard keymapping
77+
'libxkbcommon-x11.so.0', # keyboard keymapping
7678
'libfontconfig.so.1', # font support
7779
'libfreetype.so.6', # font parsing
7880
'libdl.so.2' # programming interface to dynamic linker
@@ -98,10 +100,15 @@
98100
'CoreGraphics', # 2D rendering
99101
'CoreServices', # operating system services
100102
'CoreText', # interface for laying out text and handling fonts.
103+
'CoreVideo', # video processing
101104
'Foundation', # base layer functionality for apps/frameworks
102105
'ImageIO', # read and write image file formats.
103106
'IOKit', # user-space access to hardware devices and drivers.
107+
'IOSurface', # cross process image/drawing buffers
104108
'libobjc.A.dylib', # Objective-C runtime library
109+
'Metal', # 3D graphics
110+
'Security', # access control and authentication
111+
'QuartzCore', # animation
105112
}
106113

107114
PE_ALLOWED_LIBRARIES = {
@@ -116,12 +123,15 @@
116123
'dwmapi.dll', # desktop window manager
117124
'GDI32.dll', # graphics device interface
118125
'IMM32.dll', # input method editor
126+
'NETAPI32.dll',
119127
'ole32.dll', # component object model
120128
'OLEAUT32.dll', # OLE Automation API
121129
'SHLWAPI.dll', # light weight shell API
130+
'USERENV.dll',
122131
'UxTheme.dll',
123132
'VERSION.dll', # version checking
124133
'WINMM.dll', # WinMM audio API
134+
'WTSAPI32.dll',
125135
}
126136

127137
class CPPFilt(object):

contrib/gitian-descriptors/gitian-linux.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ packages:
1111
- "autoconf"
1212
- "automake"
1313
- "binutils"
14+
- "bison"
1415
- "bsdmainutils"
1516
- "ca-certificates"
1617
- "curl"

contrib/guix/manifest.scm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
(gnu packages autotools)
44
(gnu packages base)
55
(gnu packages bash)
6+
(gnu packages bison)
67
(gnu packages cdrom)
78
(gnu packages check)
89
(gnu packages cmake)
@@ -219,6 +220,7 @@ chain for " target " development."))
219220
autoconf
220221
automake
221222
pkg-config
223+
bison
222224
;; Scripting
223225
perl
224226
python-3

depends/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ The paths are automatically configured and no other options are needed unless ta
5454

5555
Common linux dependencies:
5656

57-
sudo apt-get install make automake cmake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch
57+
sudo apt-get install make automake cmake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch bison
5858

5959
For linux ARM cross compilation:
6060

depends/packages/libxcb.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ $(package)_config_opts += --disable-composite --disable-damage --disable-dpms
1515
$(package)_config_opts += --disable-dri2 --disable-dri3 --disable-glx
1616
$(package)_config_opts += --disable-present --disable-randr --disable-record
1717
$(package)_config_opts += --disable-render --disable-resource --disable-screensaver
18-
$(package)_config_opts += --disable-shape --disable-shm --disable-sync
18+
$(package)_config_opts += --disable-shape --disable-sync
1919
$(package)_config_opts += --disable-xevie --disable-xfixes --disable-xfree86-dri
20-
$(package)_config_opts += --disable-xinerama --disable-xinput --disable-xkb
20+
$(package)_config_opts += --disable-xinerama --disable-xinput
2121
$(package)_config_opts += --disable-xprint --disable-selinux --disable-xtest
2222
$(package)_config_opts += --disable-xv --disable-xvmc
2323
endef

depends/packages/libxkbcommon.mk

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package=libxkbcommon
2+
$(package)_version=0.8.4
3+
$(package)_download_path=https://xkbcommon.org/download/
4+
$(package)_file_name=$(package)-$($(package)_version).tar.xz
5+
$(package)_sha256_hash=60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b
6+
$(package)_dependencies=libxcb
7+
8+
define $(package)_set_vars
9+
$(package)_config_opts = --enable-option-checking --disable-dependency-tracking
10+
$(package)_config_opts += --disable-static --disable-docs
11+
endef
12+
13+
define $(package)_preprocess_cmds
14+
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux
15+
endef
16+
17+
define $(package)_config_cmds
18+
$($(package)_autoconf)
19+
endef
20+
21+
define $(package)_build_cmds
22+
$(MAKE)
23+
endef
24+
25+
define $(package)_stage_cmds
26+
$(MAKE) DESTDIR=$($(package)_staging_dir) install
27+
endef
28+
29+
define $(package)_postprocess_cmds
30+
rm -rf share/man share/doc lib/*.la
31+
endef
32+

depends/packages/packages.mk

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
packages:=boost libevent
22

3-
qt_packages = zlib
4-
53
qrencode_packages = qrencode
64

7-
qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig
5+
qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig libxkbcommon
86
qt_android_packages=qt
97

108
qt_darwin_packages=qt

0 commit comments

Comments
 (0)