Commit Graph

160 Commits

Author SHA1 Message Date
Jason Rhinelander f60d722e4d
curl: latest version; don't attempt to use nghttp2
If installed on the system curl will try linking to it dynamically,
which we definitely don't want.  If not installed, nghttp2 support would
get disabled, which is now always the case with this commit.
2022-11-30 17:43:09 -04:00
Jason Rhinelander 213a317bfb
Don't build curl with nghttp3/quic support
We aren't statically building them, and it will fail if ngtcp2 headers
are installed on the system but from some version curl doesn't like.
2022-11-30 17:43:09 -04:00
Jason Rhinelander db123cb8cb
Update sqlite static build to latest version 2022-11-04 11:02:45 -03:00
Jason Rhinelander e23514e093
Fix cmake 3.24 idiotic behaviour
cmake 3.24 defaults to ignoring all archive timestamps, which completely
breaks autotools packages (which rely on timestamps to know when they
need to be autoreconf'd).

Override this stupid default.
2022-10-17 13:45:23 -03:00
Jason Rhinelander a86995c057
sqlite3: update to latest; run autoreconf before configure
At some point the default automake version changed to 1.16, which bionic
doesn't support, so run autoreconf first to make sure it'll work.
2022-10-17 13:45:23 -03:00
Jason Rhinelander e724a9c086
zlib security update 2022-10-14 22:27:57 -03:00
Jason Rhinelander d0df2b9684
downgrade boost
1.80.0 breaks hard in an android-sdk build
2022-08-31 14:18:44 -03:00
Jason Rhinelander 600fb3aa96
Dependency/submodule updates 2022-08-31 12:46:53 -03:00
Jason Rhinelander 507a9d22ea
Better version tag generation (from oxenss/lokinet) 2022-05-30 15:16:50 -03:00
Jason Rhinelander 5ff7db6a8e
Make version.cpp depend on .git/index
Sometimes it doesn't get updated (and so the version ends up with the
wrong hash in it).  This will fix that.
2022-05-27 21:51:37 -03:00
Jason Rhinelander 5e95cef882
Remove openssl, unbound, expat, OpenAlias
openssl is a miserable dependency to fight with, especially for
iOS/Android, and we use it for very little:

- it gets (mis)used to write base64 data to a file in wallet2 for things
  like multisig data.  However this mode is *not* enabled by default,
  basically completely unknown, completely unused, only exists in the
  cli wallet, and is just dumb.  (Honestly the justification given in
  the PR is that "Windows users might want it", presupposing that there
  exists Windows users who are capable of generating a multisig wallet
  in a CLI-only application and yet are incapable of dealing with binary
  files).

- it's a dependency of unbound (in order to do dnssec, I believe).
  Unbound itself is fairly useless for Oxen, so I've removed it too:
    - it does OpenAlias lookups, which are a Monero thing that has never
      been used outside Monero, doesn't work reliably (because it fails
      if the result isn't DNSSEC validated) and is pointless when we
      have ONS.

    - it does DNS resolution on seed nodes, but we have never set seed
      nodes by name and just use seed node IPs instead (which seems a
      bit better anyway since the DNS lookup leaks some metadata).

- it *was* being used for sha256, but an earlier commit in this PR
  already replaced that with libsodium (entirely coincidentally).

- for static deps, it enables HTTPS support for the wallet.  However
  only the CLI wallet actually supports this (the GUI and mobile wallets
  don't), and since oxend hasn't support this for a while I have strong
  doubts it is being used anywhere.  (Plus wallet3 will do everything
  encrypted using zmq/libsodium, so doesn't need this to be secure).
  Note here that it is *only* removed by this commit for static builds:
  if doing a system build that links to libcurl supporting HTTPS then
  HTTPS support will still work.

Libexpat is also gone because it was only there for libunbound.
2022-04-15 13:51:57 -03:00
Jason Rhinelander 5d42ae4c4d
hidapi macos fix 2022-04-14 17:49:57 -03:00
Jason Rhinelander 7bc2a0aa7e
Android fixes
- fix openssl build on android with new openssl incantations needed with
  openssl 3.x
- disable Werror on android
2022-04-14 14:37:17 -03:00
Jason Rhinelander 3cfbf0fb66
Windows build fixes
- bump libusb version
- build hidapi using cmake (autoconf is deprecated, and doesn't properly
  set up the required linking on Windows)
- pass through toolchain
- zmq/win32 compilation fix
2022-04-14 14:36:59 -03:00
Jason Rhinelander 9d58a07260
Update submodules to latest stable versions 2022-04-14 14:32:02 -03:00
Jason Rhinelander 5a5c9bf450
Update static build deps to latest versions 2022-04-14 14:32:02 -03:00
Jason Rhinelander 06a9251f15 Add LedgerTCP hardware wallet support
This communicates with the Ledger over TCP, which is what the ledger
emulator requires.

To use, specify:

    --hw-device LedgerTCP --hw-device-address localhost:9999

to the wallet command-line arguments.
2021-11-04 01:35:46 -03:00
Thomas Winget 73e787a9ec sqlitecpp cmake nonsense 2021-10-06 19:36:46 -04:00
Jason Rhinelander 14cb314f70 Add patch for hidapi + autoconf 2.70+
Fixes the mac build, and will fix future linux build once distros start
shipping 2.70+.
2021-07-06 20:07:52 -03:00
Jason Rhinelander b0108481c9 Update boost download URL 2021-06-10 10:42:55 -03:00
Jason Rhinelander 96245f81d5 Undo version check on zmq patch
Apparently this isn't fixed in 4.3.4
2021-04-21 21:43:34 -03:00
Jason Rhinelander f470dddcff Fix broken curl hash
I put the .bz2 hash by mistake.
2021-04-21 01:19:33 -03:00
Jason Rhinelander c1cdf4cbaa Try again with cross compiler fix 2021-04-21 01:19:33 -03:00
Jason Rhinelander 5b5e8436d0 Boost build fixes
bootstrap.sh seems completely broken in boost 1.76.0 when you want to
use something other than the default compiler: it doesn't respect CXX
anymore, and if you give it --cxx to specify the CXX compiler it
produces a broken project-config.bjam file that prevents the project
from building.

Just skip that crap and build and use b2 ourselves.
2021-04-21 01:19:33 -03:00
Jason Rhinelander da50c398c1 Update bundled deps for static binaries
- openssl 1.1.1k
- libexpat 2.3.0
- libunbound 1.31.1
- boost 1.76.0
- readline 8.1
- sqlite 3.35.5
- eudev 3.2.10
- libusb 1.0.24
- libzmq 4.3.4
- curl 7.76.1
2021-04-21 01:19:33 -03:00
Jason Rhinelander eca6b6ad8d Disable Trezor by default
Trezor support currently doesn't work (Trezor's hardware wallet is
hard-coded for a Monero net-id), and this saves needing to muck around
with protobuf.
2021-01-08 18:15:25 -04:00
Jason Rhinelander c77278173c Update dependencies to latest stable versions
I tried to update protobuf as well, but it doesn't compile on mingw, so
leave it as-is for now.
2021-01-07 18:37:52 -04:00
Jason Rhinelander acaf12c013 Build hack for curl 2020-11-06 00:41:28 -04:00
Jason Rhinelander 119ed3770a ios build hack for unbound 2020-11-06 00:41:28 -04:00
Jason Rhinelander daaa8dbefd Lots of build hacks for iOS 2020-11-04 15:06:59 -04:00
Jason Rhinelander 8db38d6f23 Replace CMakeLists_IOS.txt hack job with proper toolchain file 2020-11-04 15:06:59 -04:00
Jason Rhinelander 1127ac51fd Remove BUILD_GUI_DEPS, enable FORCE_USE_HEAP on android
BUILD_GUI_DEPS was dumb: it should have just been a non-"all" target (as
it is now) that can be explicitly built, rather than misusing a cmake
option.

It was doing one useful thing, however, of turning on FORCE_USE_HEAP --
but that was wrong too, because that needs to be enabled when doing an
android build (and probably IOS as well).
2020-11-04 12:11:20 -04:00
Jason Rhinelander 749920e6c6 Force -fPIC for zlib 2020-11-04 12:11:20 -04:00
Jason Rhinelander 638a45f457 Update static deps library versions 2020-11-04 12:11:20 -04:00
Jason Rhinelander 7a533e19a3 Add android build to drone steps 2020-11-04 12:11:20 -04:00
Jason Rhinelander bb40433612 Android build infrastructure updates
- Various static deps updated needed for properly cross-compiling
libraries for android.
- disable LTO because it doesn't work reliably with the android NDK.
- allow building without miniupnpc, and default to not building it under
android.
- make sure we build translation tools on the native arch when
cross-compiling for android.
- don't build ncurses, libusb, hidapi when doing an android build
2020-11-04 12:11:20 -04:00
Jason Rhinelander fdc35d5114 Remove boost filesystem/date-time from deps 2020-10-24 12:46:26 -03:00
Jason Rhinelander 1dd98f3dae std::filesystem
Converts all use of boost::filesystem to std::filesystem.

For macos and potentially other exotic systems where std::filesystem
isn't available, we use ghc::filesystem instead (which is a drop-in
replacement for std::filesystem, unlike boost::filesystem).

This also greatly changes how we handle filenames internally by holding
them in filesystem::path objects as soon as possible (using
fs::u8path()), rather than strings, which avoids a ton of issues around
unicode filenames.  As a result this lets us drop the boost::locale
dependency on Windows along with a bunch of messy Windows ifdef code,
and avoids the need for doing gross boost locale codecvt calls.
2020-10-24 12:45:37 -03:00
Jason Rhinelander 026086613a Fix boost flags, enable LTO 2020-10-14 23:04:53 -03:00
Jason Rhinelander c4134a589e fix boost macosx target 2020-10-14 22:16:21 -03:00
Jason Rhinelander 68b0f93f5d Apply macosx target BS to static deps 2020-10-14 20:09:03 -03:00
Jason Rhinelander 4fd9a7dff5 Disable readline in static build 2020-10-02 01:02:48 -03:00
Jason Rhinelander 5ba6197d59 Update zeromq patches for mingw 2020-09-16 13:14:24 -03:00
Jason Rhinelander 83d9a95f44 Update submodules and static build deps to latest versions 2020-09-16 11:46:38 -03:00
Jason Rhinelander b7a7dfc080 Add zlib + curl to static deps 2020-08-07 17:14:03 -03:00
Jason Rhinelander dc9101d457 Set ZMQ_STATIC definition on the target rather than globally 2020-07-02 12:55:28 -03:00
Jason Rhinelander d667ff2edd Windows compilation fixes 2020-07-02 12:55:28 -03:00
Jason Rhinelander 718a9496fb Replace boost chrono & posix_time with stl chrono 2020-07-02 12:52:13 -03:00
Jason Rhinelander 37a341ff6b Remove boost regex dependencies
All boost::regex use is now replaced with std::regex.
2020-07-02 12:52:13 -03:00
Jason Rhinelander f226d1b180
Fix typo in static sqlite external target (#1184)
This could cause sqlite3 to not get built in time (found via lokinet,
which copied this, where this issue showed up).
2020-06-29 11:06:09 +10:00