doc: update MSVC instructions to remove Qt OpenSSL linking #17309

pull fanquake wants to merge 2 commits into bitcoin:master from fanquake:windows_notes_update changing 2 files +13 −19
  1. fanquake commented at 9:36 pm on October 29, 2019: member
    Follow up from #17165. Flips -openssl-linked to -no-openssl. Also adds some missing packages to the vcpkg install instructions.
  2. fanquake added the label Docs on Oct 29, 2019
  3. fanquake added the label Windows on Oct 29, 2019
  4. DrahtBot commented at 10:49 pm on October 29, 2019: member

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #17265 (Remove OpenSSL by fanquake)
    • #15382 (util: add runCommandParseJSON by Sjors)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  5. in build_msvc/README.md:15 in fa82ecfa78 outdated
    11@@ -12,7 +12,7 @@ Quick Start
    12 The minimal steps required to build Bitcoin Core with the msbuild toolchain are below. More detailed instructions are contained in the following sections.
    13 
    14 ```
    15-vcpkg install --triplet x64-windows-static boost-filesystem boost-signals2 boost-test libevent openssl zeromq berkeleydb rapidcheck double-conversion
    16+vcpkg install --triplet x64-windows-static boost-filesystem boost-multi-index boost-signals2 boost-test boost-thread libevent openssl zeromq berkeleydb rapidcheck double-conversion
    


    MarcoFalke commented at 6:53 pm on October 30, 2019:

    fanquake commented at 6:58 pm on October 30, 2019:
    I’d assume our appveyor image is using an older version of vcpkg.

    fanquake commented at 7:02 pm on October 30, 2019:
    Yep, looks like boost-multi-index used to be built as part of boost-signals2, but that recently changed. Assume the same is true for boost-thread.
  6. MarcoFalke commented at 7:00 pm on October 30, 2019: member
    ok fine. I don’t understand any of this. CC @sipsorcery
  7. MarcoFalke commented at 7:01 pm on October 30, 2019: member
    Maybe this should just wait until openssl is removed, so it wouldn’t have to be updated twice.
  8. sipsorcery commented at 7:28 pm on October 30, 2019: member

    I think it’s good to do this now. The Qt openssl dependency was solely for BIP70 as best I could tell. The openssl dependency for other parts of Bitcoin Core comes from random number generation etc. Removing openssl from the Qt build instructions as a first step will make it a LOT easier for anyone attempting to do their own Qt static build.

    I hadn’t spotted the Boost vcpkg changes. Will do a fresh install and build to verify.

  9. fanquake commented at 7:33 pm on October 30, 2019: member

    I think it’s good to do this now.

    I agree. @sipsorcery I can also add a commit here to change our appveyor so that we are always pulling the latest version of vcpkg.

  10. sipsorcery commented at 7:50 pm on October 30, 2019: member

    @fanquake keeping vcpkg up to date would be nice but due to time limits I don’t think it’s currently feasible. Appveyor limits jobs to 60 minutes and the last Bitcoin Core build I ran a couple of days days ago took 57min 29sec. Within that time the restore of the vcpkg directory with the required packages already installed took 22sec,

    Updating and rebuilding vcpkg itself only takes a minute or two but installing all the required packages takes somewhere from 30 to 40 mins. Currently the only way that Bitcoin Core can be made built on AppVeyor is by caching the vcpkg directory on build failures and then commencing from where the previous job failed.

  11. fanquake commented at 7:52 pm on October 30, 2019: member
    @sipsorcery Ok. I’ll leave this PR as is.
  12. sipsorcery commented at 3:06 pm on October 31, 2019: member

    @fanquake an additional instruction for building a Bitcoin Core compatible version of Qt is:

    0Modify settings below in file qt-everywhere-opensource-src-5.9.8\qtbase\mkspecs\common\msvc-desktop.conf:
    1QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MT
    2QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT
    3QMAKE_CFLAGS_DEBUG      = -Zi -MTd
    

    Without doing that the Qt build still results in non-static libraries (even though -static is set as a configure option).

    After doing that I was able to successfully build with your updated vcpkg instructions and the Qt5.9.8.

    bcqt

  13. sipsorcery commented at 3:14 pm on October 31, 2019: member

    Oh and one other minor thing worth adjusting is the vcpkg path in the configure command. Changing to -IC:\tools\vcpkg\installed\x64-windows-static\include -LC:\tools\vcpkg\installed\x64-windows-static\lib makes it compatible with the AppVeyor location rather than my dev machine, Full command I used was:

    0..\qt-everywhere-opensource-src-5.9.8\qt-everywhere-opensource-src-5.9.8\configure -developer-build -confirm-license -debug-and-release -opensource -platform win32-msvc -opengl desktop -no-shared -static -no-static-runtime -mp -qt-zlib -qt-pcre -qt-libpng -ltcg -make libs -make tools -no-libjpeg -nomake examples -no-compile-examples -no-dbus -no-libudev -no-qml-debug -no-icu -no-gtk -no-opengles3 -no-angle -no-sql-sqlite -no-sql-odbc -no-sqlite -no-libudev -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtx11extras -skip qtxmlpatterns -nomake tests -no-openssl -IC:\tools\vcpkg\installed\x64-windows-static\include -LC:\tools\vcpkg\installed\x64-windows-static\lib -prefix C:\Qt5.9.8_x64_static_vs2019
    
  14. fanquake force-pushed on Oct 31, 2019
  15. fanquake commented at 4:23 pm on October 31, 2019: member

    an additional instruction for building a Bitcoin Core compatible version of Qt is:

    What’s the change here? Those flags look like what is already present in \qtbase\mkspecs\common\msvc-desktop.conf:.

    Oh and one other minor thing worth adjusting is the vcpkg path in the configure command.

    I’ve rebased, updated the paths and added an additional commit to mention that Visual Studio is now a supported platform.

  16. sipsorcery commented at 4:37 pm on October 31, 2019: member

    What’s the change here? Those flags look like what is already present in \qtbase\mkspecs\common\msvc-desktop.conf:.

    The change is the last flag on each line from /MD to /MT which determines whether the libs generated as static or dynamic link libraries.

  17. fanquake commented at 6:31 pm on November 1, 2019: member

    The change is the last flag on each line from..

    Right. Do you just want to have that diff mentioned in the notes? Can you also make a mention of it here: https://github.com/sipsorcery/qt_win_binary/releases/tag/v1.3 ?

    Would you like me to swap Appveyor to using the new Qt in this PR? (If you wanted to push some changes up, I can cherry pick them in.)

  18. sipsorcery commented at 6:49 pm on November 1, 2019: member

    Right. Do you just want to have that diff mentioned in the notes? Can you also make a mention of it here: https://github.com/sipsorcery/qt_win_binary/releases/tag/v1.3 ?

    I’d already added the note on the main Readme. I’ll add a link from each release as well.

    Maybe it’d be better not to include the Qt build steps in the build_msvc\README.md doc. Building Qt does seem a bit off topic and could become a can of worms. For example if someone does have a problem with it do we want them creating an issue in the main Bitcoin repo?

    This README could stick to saying what’s needed (Qtvx.x.x static build with toolset v141/142) and then a the link for the pre-compiled binaries and build instructions to serve as a starting point. That will also mean the doc won’t have to get updated each time there’s a new version of Qt or Visual Studio.

    Would you like me to swap Appveyor to using the new Qt in this PR? (If you wanted to push some changes up, I can cherry pick them in.)

    I’m already working on that. Because the new Qt build is with VS2019 the vcpkg packages all have to be rebuilt and the appveyor build image changed from VS2017 to VS2019. I’ve got it working and am sorting out one final issue with the python tests. It will be better to do that update as a separate PR.

  19. doc: update MSVC instructions to remove Qt configuration
    Also adds missing Boost packages. Installing only the currently listed
    packages was not sufficient to complete a build.
    b1f1fb5f1d
  20. doc: compiling with Visual Studio is now supported on Windows 162d0038e7
  21. fanquake force-pushed on Nov 1, 2019
  22. fanquake commented at 7:26 pm on November 1, 2019: member

    This README could stick to saying what’s needed

    Sounds good. I’ve pushed some changes. Will leave further updates to you.

  23. sipsorcery commented at 8:14 pm on November 1, 2019: member
    tACK 162d0038e772bf6210b9218df35c14fd9719d3f7.
  24. MarcoFalke referenced this in commit c737839471 on Nov 1, 2019
  25. MarcoFalke merged this on Nov 1, 2019
  26. MarcoFalke closed this on Nov 1, 2019

  27. fanquake deleted the branch on Nov 1, 2019
  28. sidhujag referenced this in commit a1cc49265c on Nov 2, 2019
  29. sipsorcery referenced this in commit f5d2fd8d30 on Nov 4, 2019
  30. sipsorcery referenced this in commit c022e3aca9 on Nov 4, 2019
  31. sipsorcery referenced this in commit 4a8ecf1cc4 on Nov 4, 2019
  32. sipsorcery referenced this in commit 394d6740d6 on Nov 4, 2019
  33. sipsorcery referenced this in commit 6088564de8 on Nov 6, 2019
  34. sipsorcery referenced this in commit 6e0b9625f2 on Nov 6, 2019
  35. sipsorcery referenced this in commit c9d6f40f59 on Nov 6, 2019
  36. sipsorcery referenced this in commit 11836a8409 on Nov 6, 2019
  37. sipsorcery referenced this in commit 3c84deebaa on Nov 6, 2019
  38. MarcoFalke referenced this in commit 46e0e27639 on Nov 7, 2019
  39. Sjors referenced this in commit 96b97dbf84 on Nov 7, 2019
  40. Sjors referenced this in commit 037f2405f2 on Nov 7, 2019
  41. fanquake referenced this in commit cd7b3b254a on Jan 5, 2020
  42. laanwj referenced this in commit bb123c6527 on Jan 8, 2020
  43. HashUnlimited referenced this in commit ec5bbea7e1 on Apr 17, 2020
  44. sidhujag referenced this in commit 8ce33973c3 on Nov 10, 2020
  45. Munkybooty referenced this in commit 861ef02929 on Dec 9, 2021
  46. Munkybooty referenced this in commit fc6f77f098 on Dec 9, 2021
  47. Munkybooty referenced this in commit e32f0d5d86 on Dec 9, 2021
  48. DrahtBot locked this on Dec 16, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-11-22 09:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me