diff --git a/cmake/hashes.cmake b/cmake/hashes.cmake index 1941d048..155f2479 100644 --- a/cmake/hashes.cmake +++ b/cmake/hashes.cmake @@ -7,6 +7,7 @@ set(EXPAT_HASH 85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb) set(GCC_HASH 51b9919ea69c980d7a381db95d4be27edf73b21254eb13d752a08003b4d013b1) set(GTEST_HASH 65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c) set(ICU_HASH a2c443404f00098e9e90acf29dc318e049d2dc78d9ae5f46efb261934a730ce2) +set(INNOSETUP_HASH f3c42116542c4cc57263c5ba6c4feabfc49fe771f2f98a79d2f7628b8762723b) set(JSON_HASH 4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187) set(LIBSODIUM_HASH 8e5aeca07a723a27bbecc3beef14b0068d37e7fc0e97f51b3f1c82d2a58005c1) set(MINGW_HASH 5afe822af5c4edbf67daaf45eec61d538f49eef6b19524de64897c6b95828caf) diff --git a/cmake/versions.cmake b/cmake/versions.cmake index 39c580d5..0c4fe230 100644 --- a/cmake/versions.cmake +++ b/cmake/versions.cmake @@ -1,18 +1,19 @@ set(BINUTILS_VERSION 2.44) -set(BOOST_MAJOR_VERSION 1) -set(BOOST_MINOR_VERSION 88) -set(BOOST_PATCH_VERSION 0) set(BOOST2_MAJOR_VERSION 1) set(BOOST2_MINOR_VERSION 76) set(BOOST2_PATCH_VERSION 0) +set(BOOST_MAJOR_VERSION 1) +set(BOOST_MINOR_VERSION 88) +set(BOOST_PATCH_VERSION 0) set(CPP_HTTPLIB_VERSION 0.23.1) -set(CURL_VERSION 8.15.0) set(CURL2_VERSION 8_15_0) -set(EXPAT_VERSION 2.7.1) +set(CURL_VERSION 8.15.0) set(EXPAT2_VERSION 2_7_1) +set(EXPAT_VERSION 2.7.1) set(GCC_VERSION 15.1.0) set(GTEST_VERSION 1.17.0) set(ICU_VERSION 76-1) +set(INNOSETUP_VERSION 6.4.3) set(JSON_VERSION 3.12.0) set(LIBSODIUM_VERSION 1.0.20) set(MINGW_VERSION 13.0.0) @@ -21,7 +22,7 @@ set(PKG_CONFIG_VERSION 0.29.2) set(PUGIXML_VERSION 1.15) set(ROCKSDB_VERSION 10.4.2) set(SPDLOG_VERSION 1.15.3) -set(SQLITE_VERSION 3500300) set(SQLITE2_VERSION 3.50.3) +set(SQLITE_VERSION 3500300) set(STDUUID_VERSION 1.2.3) set(ZLIB_VERSION 1.3.1) diff --git a/docker/x86_64/mingw64 b/docker/x86_64/mingw64 index 724a1fbf..f4c88dfa 100644 --- a/docker/x86_64/mingw64 +++ b/docker/x86_64/mingw64 @@ -12,6 +12,7 @@ RUN apk add \ bzip2 \ clang17-extra-tools \ cmake \ + curl \ file \ flex \ g++ \ @@ -43,6 +44,7 @@ RUN apk add \ ruby \ texinfo \ unzip \ + xvfb \ wget \ wine \ xz \ @@ -102,6 +104,39 @@ RUN echo -e \ "system = 'windows'\n"\ > ${MY_TOOLCHAIN_FILE_MESON} +RUN mkdir -p /opt/bin;echo -e \ + "#!/bin/sh\n"\ + "COUNT=0\n"\ + "echo \"Start waiting on \$@\"\n"\ + "while pgrep \"\$@\" > /dev/null; do \n"\ + " echo \"waiting ...\"\n"\ + " sleep 1;\n"\ + " COUNT=\$((COUNT+1))\n"\ + " if [ \$COUNT -eq 60 ]; then\n"\ + " exit 3;\n"\ + " fi\n"\ + "done\n"\ + "echo \"\$@ completed\"\n"\ + > /opt/bin/waitonprocess && \ + chmod +x /opt/bin/waitonprocess && \ + cat /opt/bin/waitonprocess + +RUN echo -e \ + "#!/bin/sh\n"\ + "Xvfb \$DISPLAY &\n"\ + "tokill=\$!\n"\ + "wine wineboot --init\n"\ + "waitonprocess wineserver\n"\ + "\"\$@\"\n"\ + "retval=\$?\n"\ + "kill -15 \$tokill\n"\ + "wine wineboot --shutdown\n"\ + "return \$retval\n"\ + > /opt/bin/wine-x11-run && \ + chmod +x /opt/bin/wine-x11-run && \ + cat /opt/bin/wine-x11-run + +ENV PATH="/opt/bin:${PATH}" SHELL [ "/bin/bash", "-c" ] RUN mkdir -p \ @@ -112,6 +147,16 @@ RUN mkdir -p \ ADD ./3rd_party /3rd_party +ENV DISPLAY=:99 +ENV WINEDEBUG=-all,err+all + +RUN wine64 reg add 'HKEY_CURRENT_USER\Software\Wine' /v ShowDotFiles /d Y \ + && while [ ! -f /root/.wine/user.reg ]; do sleep 1; done + +ARG INNOSETUP_VERSION +ENV MY_INNOSETUP_VERSION=${INNOSETUP_VERSION} +RUN wine-x11-run wine64 /3rd_party/mingw64/innosetup-${MY_INNOSETUP_VERSION}.exe /SP- /VERYSILENT /ALLUSERS /SUPPRESSMSGBOXES /DOWNLOADISCRYPT=1 + ARG BINUTILS_VERSION ENV MY_BINUTILS_VERSION=${BINUTILS_VERSION} RUN cd /3rd_party/mingw64 && sha256sum -c ./binutils-${MY_BINUTILS_VERSION}.tar.xz.sha256 && cd - \ diff --git a/scripts/env.sh b/scripts/env.sh index c439c13b..6d8c00c6 100755 --- a/scripts/env.sh +++ b/scripts/env.sh @@ -292,6 +292,8 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" != "1" ]; th MSYS=winsymlinks:nativestrict fi +PROJECT_ENABLE_INNOSETUP=1 + export MSYS export NUM_JOBS export OPENSSL_ROOT_DIR diff --git a/scripts/libraries.sh b/scripts/libraries.sh index cfb26a92..75c7f697 100755 --- a/scripts/libraries.sh +++ b/scripts/libraries.sh @@ -26,6 +26,7 @@ PROJECT_CLEANUP[EXPAT]="3rd_party/mingw64/expat-*" PROJECT_CLEANUP[GCC]="3rd_party/mingw64/gcc-*" PROJECT_CLEANUP[ICU]="3rd_party/mingw64/icu-release-*" PROJECT_CLEANUP[JSON]="3rd_party/json-*" +PROJECT_CLEANUP[INNOSETUP]="3rd_party/mingw64/innosetup-*" PROJECT_CLEANUP[LIBBITCOIN_SYSTEM_ON]="3rd_party/boost_${PROJECT_VERSIONS[BOOST_MAJOR]}_${PROJECT_VERSIONS[BOOST_MINOR]}_*" PROJECT_CLEANUP[LIBSODIUM]="3rd_party/libsodium-*:3rd_party/libsodium*" PROJECT_CLEANUP[MINGW]="3rd_party/mingw64/mingw-w64-*" @@ -52,6 +53,7 @@ PROJECT_DOWNLOADS[GCC]="https://mirrorservice.org/sites/sourceware.org/pub/gcc/r PROJECT_DOWNLOADS[GTEST]="https://github.com/google/googletest/archive/refs/tags/v${PROJECT_VERSIONS[GTEST]}.tar.gz;googletest-${PROJECT_VERSIONS[GTEST]}.tar.gz;3rd_party" PROJECT_DOWNLOADS[ICU]="https://github.com/unicode-org/icu/archive/refs/tags/release-${PROJECT_VERSIONS[ICU]}.tar.gz;icu-release-${PROJECT_VERSIONS[ICU]}.tar.gz;3rd_party/mingw64" PROJECT_DOWNLOADS[JSON]="https://github.com/nlohmann/json/archive/refs/tags/v${PROJECT_VERSIONS[JSON]}.tar.gz;json-${PROJECT_VERSIONS[JSON]}.tar.gz;3rd_party" +PROJECT_DOWNLOADS[INNOSETUP]="https://files.jrsoftware.org/is/6/innosetup-${PROJECT_VERSIONS[INNOSETUP]}.exe;innosetup-${PROJECT_VERSIONS[INNOSETUP]}.exe;3rd_party/mingw64" PROJECT_DOWNLOADS[LIBSODIUM]="https://github.com/jedisct1/libsodium/archive/refs/tags/${PROJECT_VERSIONS[LIBSODIUM]}-RELEASE.tar.gz;libsodium-${PROJECT_VERSIONS[LIBSODIUM]}.tar.gz;3rd_party" PROJECT_DOWNLOADS[MINGW]="https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v${PROJECT_VERSIONS[MINGW]}.tar.bz2;;mingw-w64-v${PROJECT_VERSIONS[MINGW]}.tar.bz2;3rd_party/mingw64" PROJECT_DOWNLOADS[OPENSSL]="https://github.com/openssl/openssl/releases/download/openssl-${PROJECT_VERSIONS[OPENSSL]}/openssl-${PROJECT_VERSIONS[OPENSSL]}.tar.gz;openssl-${PROJECT_VERSIONS[OPENSSL]}.tar.gz;3rd_party" diff --git a/scripts/versions.sh b/scripts/versions.sh index a1ebbd32..4fe2360a 100755 --- a/scripts/versions.sh +++ b/scripts/versions.sh @@ -16,6 +16,7 @@ PROJECT_VERSIONS[EXPAT2]="2_7_1" PROJECT_VERSIONS[GCC]="15.1.0" PROJECT_VERSIONS[GTEST]="1.17.0" PROJECT_VERSIONS[ICU]="76-1" +PROJECT_VERSIONS[INNOSETUP]="6.4.3" PROJECT_VERSIONS[JSON]="3.12.0" PROJECT_VERSIONS[LIBSODIUM]="1.0.20" PROJECT_VERSIONS[MINGW]="13.0.0" diff --git a/support/3rd_party/json-3.12.0.tar.gz.sha256 b/support/3rd_party/json-3.12.0.tar.gz.sha256 index 2ed5de7a..8140ff35 100644 --- a/support/3rd_party/json-3.12.0.tar.gz.sha256 +++ b/support/3rd_party/json-3.12.0.tar.gz.sha256 @@ -1 +1 @@ -4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187 json-3.12.0.tar.gz +4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187 *json-3.12.0.tar.gz