38 Commits

Author SHA1 Message Date
Patrick Lodder
886b0d571c
depends: remove unneeded features from qt post bip70 purge
- openssl (was only needed for BIP70/71)
- http and network modules (Qt no longer implements any networking)
- qt socks integration (does not affect p2p socks routing)
2025-03-03 20:04:01 -05:00
Patrick Lodder
92b439f375
depends: Backport Qt bugfixes
Dogecoin-Qt cannot upgrade Qt on a minor release without breaking
support for older systems, and thus preventing operators on these
to get important security updates. Therefore, it is important to
patch the fixed version of Qt we are stuck with when applicable.

This backports important bug fixes from later Qt versions that
harden Dogecoin-Qt's internals:

- Fix possible heap corruption in QXmlStream
  see: https://codereview.qt-project.org/c/qt/qtbase/+/236691

- do not attempt to load a library relative to $PWD
  see: https://codereview.qt-project.org/c/qt/qtbase/+/286795

- Fix specific overflow in qtextlayout
  see: https://codereview.qt-project.org/c/qt/qtbase/+/476125

- QDnsLookup/Unix: Ensure that both the RDATA and the Record header
  fields before it fall inside the buffer we have
  see: https://codereview.qt-project.org/c/qt/qtbase/+/477644

- Fix a crash while parsing an XML file with garbage data
  see: https://codereview.qt-project.org/c/qt/qtbase/+/471756
       https://codereview.qt-project.org/c/qt/qtbase/+/455027

- Fix crash when reading corrupt font data
  see: https://codereview.qt-project.org/c/qt/qtbase/+/503026
2024-02-16 21:05:15 -05:00
Patrick Lodder
7eaf406383
trivial: depends: one line per Qt patch 2024-02-16 21:05:14 -05:00
Patrick Lodder
01cdeec11a
build: remove libx11 dependency
We do not need libx11 to compile Qt with some very minor patches.
Removing this removes attack surface from dogecoin-qt and reduces
future maintenance cost.

- Removes packages:
  - libX11
  - libXext
  - xextproto
  - xtrans
- Patches Qt to not try to include X11 anywhere
- Removes x11-xcb check from bitcoin_qt.m4
- Remove permission to depend on libX11*so in release binaries

Backported-from: 1ec30b8f
                 aa53cb7a
                 92456991
                 0c55d8b5
                 689d3b4a
Co-Authored-By: Carl Dong <contact@carldong.me>
2023-10-28 07:49:23 -04:00
Patrick Lodder
a93bf1c1b0
depends: remove dbus dependency and fix qt configuration
dbus is not used by qt in depends per documentation of the
-dbus-runtime configuration flag - it uses the packaged interface
and can be removed as a managed dependency.

Since dbus interfaces are only used on linux, remove it from the
windows and macOS configurations.

Backported-from: e8fabd92
                 6fdf5dab
Co-authored-by: fanquake <fanquake@gmail.com>
2023-10-28 07:49:22 -04:00
Patrick Lodder
fe94986c35
depends: reduce exported features for qt 5.7.1
Remove functionality of Qt that we do not need, resulting in a
smaller dogecoin-qt binary and a reduced attack surface.

- removes all image support except png
  (xpm is needed for qt binary build tools)
- no longer use Qt's built-in libjpeg
- disable all unused features

Items that cannot be removed vs Bitcoin Core:
For paper wallets:
- printer dialogs and pdf
- html rendering
For BIP70 payment requests:
- network configuration
- openssl
- socks5 support
2023-10-28 07:39:11 -04:00
Old Dip Tracker
2cf7d3aa67
Merge pull request #3141 from xanimo/1.14.7-dev-depends-qfixed-patch
depends: adds QT 5.7.1 'QFixed' context error patch
2022-11-22 19:06:30 -05:00
Carl Dong
b364365dfb
depends: tar: Always extract as yourself
For normal users, --no-same-owner is default, but not so for root, where
it is assumed that root can change ownership willy-nilly. This is not
the case for privilege-limited container environments where we gaslight
the process into thinking it's root.

Cherry-picked from: 89bee1b
2022-10-18 11:18:31 -07:00
Dakoda Greaves
2c151a964b
depends: adds QT 5.7.1 'QFixed' context error patch
-After updating clang+llvm, QT 5.7.1's qfontengine_coretext.mm file's variable QFixed errors out as it's a constructor rather than a type in this context. This patch fixes that error.
2022-10-16 14:18:52 -07:00
Cory Fields
6912d93940
depends: qt: avoid system harfbuzz and bz2
We may eventually want to break out harfbuzz and build it in depends, but
for now just ensure that runtime dependencies don't depend on whether or not
harfbuzz was present on the builder.
2021-10-11 16:12:33 +02:00
Hennadii Stepanov
557a921835
build: Add xkbcommon 0.8.4
Cherry-picked from: bitcoin/bitcoin 3272e34f
                and bitcoin/bitcoin cc25f892
                and bitcoin/bitcoin a33381ac

Conflicts resolved:

- removed ci script and guix file changes that we don't have
- removed changes to libxcb
- squashed commits as cc25f892 was a fixup
- rewrote the change to depends/README

Co-authored-by: fanquake <fanquake@gmail.com>
Co-authored-by: W. J. van der Laan <laanwj@protonmail.com>
2021-09-28 21:33:05 +02:00
Patrick Lodder
354a6e3a12
Merge pull request #1785 from suprnurd/1.14-dev-fix-depends-links
Fix OpenSSL and QT depends links
2021-03-09 23:22:39 +01:00
Alan Rudolf
28d62c2b2b
update qt package download link 2020-03-31 13:11:31 -04:00
Max K
2a0c66035d Re-add paperwallet printer (#1467)
* Add paper wallet generator to QT wallet

* Replace print icon with Typeicons equivalent

* Re-add printer support to Qt

* depends: fix fontconfig with newer glibc

See comment for more detail

* Set fixed size for paper wallet dialog
2019-03-25 05:36:12 +00:00
langerhans
bec95b0cf2 Update dependency builder and its packages to be ready for Dogecoin specifics 2018-09-19 19:21:49 +01:00
Cory Fields
b5f374fef7 qt: fix build with zlib for target
This contains a few hacks very specific to Qt's buildsystem. These can be
reverted once we split the build between native and target builds.

Qt's build contains a circular dependency when not using a system zlib.
By far the easiest fix is to switch to a system zlib, rather than Qt's own.
However, that confuses Qt's cross build which assumes that when using a system
zlib, it should also find a system (native) zlib for native tools. The build
breaks if that zlib is not present.

To solve this:
1. Always use a system zlib rather than the one provided by qt
2. Set force_bootstrap, which instructs the build tools to be built as though
   we're cross-compiling (build != target)
3. For build tools, use qt's internal zlib so that a native zlib is not
required.

Step 3 means that if any zlib headers are found by the native build, it will
confuse Qt's internal zlib build. So we also need to make sure that the target
headers/libs aren't found. To do so, specify that our
cflags/cxxflags/cppflags/ldflags only apply for non-host builds.
2017-01-28 01:54:30 -05:00
Cory Fields
8efa34fb77 depends: add a zlib build
qt5.7 changed the location of some of its symbols, creating a circular
dependency in Qt5Core. Rather than trying to fix that up, build our own zlib
rather than having it built for us.
2017-01-28 01:54:30 -05:00
Cory Fields
c36ec715f0
depends: qt: disable printer for all platforms, not just osx
This also fixes the native osx build.
2017-01-19 15:31:55 +08:00
Cory Fields
c37ea4d403
depends: fix qt translations build
Their buildsystem insists on using the installed ltranslate, but gets confused
about how to find it. Since we manually control the build order, just drop the
dependency.
2017-01-14 14:23:48 +08:00
fanquake
02fcb2944d
[depends] Qt 5.7.1 2017-01-14 11:01:42 +08:00
fanquake
5776e8a596
[depends] Fix Qt compilation with Xcode 8 2016-09-27 12:32:20 +08:00
Jonas Schnelli
59d063d076
Use runtime linking of QT libdbus, use custom/temp. SDK URL 2016-06-18 13:51:45 +02:00
Jonas Schnelli
6194d9a501
Fix bitcoin_qt.m4 and fix-xcb-include-order.patch 2016-06-17 15:56:05 +02:00
Cory Fields
f25209a3e1
depends: bump OSX toolchain
clang: 3.7.1
cctools: 877.8
ld64: 253.9
2016-06-17 09:33:45 +02:00
Cory Fields
a398549b3b depends: use c++11 2016-04-27 12:47:41 +02:00
Cory Fields
9267a47d86 depends: enable pre-compiled headers for qt
All trusty compilers work ok with this now, and it shaves a few minutes off of
build time
2016-04-25 22:28:01 -04:00
Cory Fields
11d9f6b8b8 depends: qt/cctools: fix checksum checksum tests
Checksums were being verified after download, but not again before extraction
2016-04-04 19:26:45 -04:00
Wladimir J. van der Laan
0b416c6e9c depends: qt PIDLIST_ABSOLUTE patch
Remove sed-based qt PIDLIST_ABSOLUTE workaround, replace by a patch that
works for both old (such as used by Travis and Ubuntu Precise) and new
mingw (Ubuntu Trusty).
2015-11-16 16:39:24 +01:00
Cory Fields
ecd6a89381 depends: make more qt flags explicit 2015-07-27 12:25:28 +02:00
Cory Fields
ab67dd7818 depends: bump to qt 5.5 2015-07-23 21:10:35 -04:00
Jacob Welsh
5189fe3d88 depends: split qt config options to separate lines
Helps ease of reading and comparison. Removed some duplicates.
2015-07-23 21:10:35 -04:00
Cory Fields
4fe6c3c24f depends: major upgrade to darwin toolchain
tl;dr: Update to the newer stable toolchain and SDK for OSX without giving up
any backwards compatibility. We can move to clang 3.5 as a next step which
allows use to use libc++ and the 10.10 sdk, but we'll need to find a build that
works in gitian/travis first.

Switch to a new, better maintained fork of cctools:
https://github.com/tpoechtrager/cctools-port

I've forked this and will be working on it some as well:
https://github.com/theuni/cctools-port

This brings in:
cctools v862
ld64: v241.9

It also fixes 64bit builds, so there's no longer any need to use a 32bit clang.
Since clang is no longer tied to an old/crusty 32bit build, clang has been
upgraded to 3.3. Unfortunately, there's a bug in 3.4 that breaks builds. 3.5
works fine, but there are no binary builds compatible with precise, which is
currently used for gitian and travis. We could always build our own if
necessary.

After updating to stable clang/linker/cctools, it's possible to use a more
recent SDK. The current SDK (10.7) through the most recent 10.10 have all been
built/tested successfully, both with and without 10.6 compatibility. However,
10.10 requires clang 3.5.

SDKs >= 10.9 use libc++ rather than libstdc++. This is verified working as well.
2015-01-02 15:09:43 -05:00
Cory Fields
ec90c97d13 depends: osx: fix qt5 build against 10.10 sdk 2015-01-02 15:09:43 -05:00
Cory Fields
d61dc25c71 qt: osx: fix hidden symbol visibility
Fixes default hidden symbol visibility for our linux->osx cross build. Without
this change, the check for working -fvisibility=hidden fails, and all symbols
are visible by default.

Ugly as this is, it's just a simple find/replace to fix a bug in Qt's configure.
They assume in an "XPLATFORM_MAC" block that the builder is capable of running
osx programs. This should be "BUILD_ON_MAC" instead.
2014-11-24 22:00:31 -05:00
Cory Fields
187739006c depends: cleanup better after qt and force a bump
qt needs to be rebuilt for travis. The previous commit should help ensure that
this won't need to be done again.
2014-11-13 04:09:19 -05:00
Cory Fields
1d154db457 depends: teach qt to honor debug/release
This means it also needs to honor our flags, so patch them in as necessary.
2014-09-25 14:56:26 -04:00
Cory Fields
21f139b4a6 qt: fix tablet crash. closes #4854.
This backports the relevant parts of:
https://codereview.qt-project.org/#/c/82689/
2014-09-08 14:42:46 -04:00
Cory Fields
1dec09b341 depends: add shared dependency builder
See the README's in depends for documentation
2014-08-08 15:10:46 -04:00