diff --git a/CMakeLists.txt b/CMakeLists.txt index a663d8035c02fce2e0e3384532d5eede444d4430..e153dce034871ed46f2f9a8cfebd1766d6b0fb78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -338,7 +338,7 @@ if(MSVC) "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/restinio/dev;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/fmt/include;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/http_parser;" - "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/natpmp/include" + "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/natpmp/include;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/msgpack-c/include;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/opendht/include;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libarchive/libarchive;" @@ -353,7 +353,8 @@ if(MSVC) "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/webrtc-audio-processing;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/portaudio/include;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjmedia/include;" - "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libgit2/include" + "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libgit2/include;" + "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/dhtnet/include;" ) endif() @@ -467,6 +468,7 @@ if(MSVC) ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/webrtc-audio-processing/build/Release/webrtc-audio-processing.lib ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/portaudio/build/Release/portaudio_static_x64.lib ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libgit2/build/Release/git2.lib + ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/dhtnet/build/Release/dhtnet.lib /ignore:4006" ) diff --git a/compat/msvc/package.json b/compat/msvc/package.json index 6f85d2f1e0acdcf97f914226f2bc1d7cbde607b0..72d09ff464d9da3da1c56ea9ba5f54f5e35d72e5 100644 --- a/compat/msvc/package.json +++ b/compat/msvc/package.json @@ -13,7 +13,8 @@ "yaml-cpp", "libarchive", "webrtc-audio-processing", - "libgit2" + "libgit2", + "dhtnet" ], "configuration": "ReleaseLib_win32", "use_cmake": true diff --git a/compat/msvc/winmake.py b/compat/msvc/winmake.py index 58c4032d51e2fedc1fc11eaac67e73e7e031b42f..ee144a6744995030ac73e5efb14caae10ff3e821 100644 --- a/compat/msvc/winmake.py +++ b/compat/msvc/winmake.py @@ -377,15 +377,21 @@ def remove_archive_if_needed(pkg_build_path, dirty_path): getSHrunner().exec_batch('rmdir', ['/s', '/q', dirty_path]) -def extract_tar(pkg_build_path, name, path): +def extract_tar(pkg_build_path, name, path, pkg_name): with tarfile.open(path, 'r', encoding="utf8", errors='ignore') as tarball: tar_common_prefix = os.path.commonprefix(tarball.getnames()) - dirty_path = contrib_build_dir + '\\' + tar_common_prefix + prefix = tar_common_prefix + if prefix == "": + prefix = pkg_name + dirty_path = contrib_build_dir + '\\' + prefix remove_archive_if_needed(pkg_build_path, dirty_path) log.debug('Decompressing ' + name + ' to ' + pkg_build_path) - tarball.extractall(contrib_build_dir) - os.rename(contrib_build_dir + '\\' + tar_common_prefix, - pkg_build_path) + if tar_common_prefix == "": + tarball.extractall(dirty_path) + else: + tarball.extractall(contrib_build_dir) + os.rename(contrib_build_dir + '\\' + tar_common_prefix, + pkg_build_path) return True return False @@ -406,7 +412,7 @@ def extract_zip(pkg_build_path, name, path): def extract_archive(pkg_name, name, path): pkg_build_path = contrib_build_dir + '\\' + pkg_name if tarfile.is_tarfile(path): - return extract_tar(pkg_build_path, name, path) + return extract_tar(pkg_build_path, name, path, pkg_name) elif zipfile.is_zipfile(path): return extract_zip(pkg_build_path, name, path) diff --git a/contrib/src/asio/package.json b/contrib/src/asio/package.json index 23df6ff8ecfc11a812e06ffdf628e52268172a3f..c81580b6b3d73aaab155db7bf431bdcc659460e7 100644 --- a/contrib/src/asio/package.json +++ b/contrib/src/asio/package.json @@ -1,6 +1,6 @@ { "name": "asio", - "version": "asio-1-12-2", + "version": "asio-1-22-2", "url": "https://github.com/chriskohlhoff/asio/archive/__VERSION__.tar.gz", "deps": ["openssl"], "patches": [], diff --git a/contrib/src/dhtnet/libjami-testable.patch b/contrib/src/dhtnet/libjami-testable.patch index 0c8f18fc265672d53a604487f41c0059ed83c368..41107ac8916f8939869e7715b6ae5f0230b6743e 100644 --- a/contrib/src/dhtnet/libjami-testable.patch +++ b/contrib/src/dhtnet/libjami-testable.patch @@ -5,17 +5,16 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index d14bc98..e5ad5c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -14,6 +14,13 @@ set (libdir "${CMAKE_INSTALL_FULL_LIBDIR}") - set (includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}") - set (VERSION ${CMAKE_PROJECT_VERSION}) - -+OPTION(LIBJAMI_TESTABLE "Enable API for tests" ON) -+ -+IF(LIBJAMI_TESTABLE) -+ ADD_DEFINITIONS(-DLIBJAMI_TESTABLE) -+ENDIF(LIBJAMI_TESTABLE) +@@ -20,6 +20,12 @@ option(DHTNET_TESTABLE "Enable API for tests" ON) + option(BUILD_TOOLS "Build tools" ON) + + if (NOT MSVC) ++ OPTION(LIBJAMI_TESTABLE "Enable API for tests" ON) + ++ IF(LIBJAMI_TESTABLE) ++ ADD_DEFINITIONS(-DLIBJAMI_TESTABLE) ++ ENDIF(LIBJAMI_TESTABLE) + - find_package (PkgConfig REQUIRED) - - find_package(msgpack-cxx CONFIG) + find_package (PkgConfig REQUIRED) + + find_package(msgpack-cxx CONFIG) diff --git a/contrib/src/dhtnet/package.json b/contrib/src/dhtnet/package.json index d0b13618d0fe32421e2806dd6f21c5f883d66caf..fe9b38da24557d15bf6c5c3382706349c160e573 100644 --- a/contrib/src/dhtnet/package.json +++ b/contrib/src/dhtnet/package.json @@ -1,11 +1,14 @@ { "name": "dhtnet", - "version": "64bb00fc77f1322c4e0f5c1c7bc54e2fee81f0a6", + "version": "24cc01e3deacb1332745929840268af06ebe9068", "url": "https://review.jami.net/plugins/gitiles/dhtnet/+archive/__VERSION__.tar.gz", "deps": [ "opendht", "pjproject", - "asio" + "msgpack", + "asio", + "upnp", + "natpmp" ], "use_cmake" : true, "defines": [ @@ -17,8 +20,13 @@ "project_paths": [], "with_env" : "", "custom_scripts": { - "pre_build": [], + "pre_build": [ + "rmdir /S /Q \"%DAEMON_DIR%\\contrib\\msvc\\include\\dhtnet\"" + ], "build": [], - "post_build": [] + "post_build": [ + "mkdir \"%DAEMON_DIR%\\contrib\\msvc\\include\\dhtnet\"", + "xcopy /S /Y \"include\" \"%DAEMON_DIR%\\contrib\\msvc\\include\\dhtnet\"" + ] } } \ No newline at end of file diff --git a/contrib/src/dhtnet/rules.mak b/contrib/src/dhtnet/rules.mak index 17a7f2388f6227300240bdf0cf858a6cef0a64dc..737645140ce272942c7ea0b66d2a721624e9b5c3 100644 --- a/contrib/src/dhtnet/rules.mak +++ b/contrib/src/dhtnet/rules.mak @@ -1,5 +1,5 @@ # DHTNET -DHTNET_VERSION := 64bb00fc77f1322c4e0f5c1c7bc54e2fee81f0a6 +DHTNET_VERSION := 24cc01e3deacb1332745929840268af06ebe9068 DHTNET_URL := https://review.jami.net/plugins/gitiles/dhtnet/+archive/$(DHTNET_VERSION).tar.gz PKGS += dhtnet diff --git a/contrib/src/libgit2/package.json b/contrib/src/libgit2/package.json index 0152347245c7e1f953ff395e5a720eca9c542edb..fff9df0045a588c9769afec27f215c9192768648 100644 --- a/contrib/src/libgit2/package.json +++ b/contrib/src/libgit2/package.json @@ -10,6 +10,7 @@ "BUILD_SHARED_LIBS=OFF", "USE_SSH=OFF", "WINHTTP=OFF", + "USE_WINHTTP=OFF", "BUILD_TESTS=OFF", "BUILD_CLI=OFF", "USE_SSH=OFF" diff --git a/src/jamidht/archive_account_manager.cpp b/src/jamidht/archive_account_manager.cpp index 63fa1e11b1bbb864823fc6455c12a6a3c2595314..b945fe8ee55c1643d3f094e8568b24d81c6332c7 100644 --- a/src/jamidht/archive_account_manager.cpp +++ b/src/jamidht/archive_account_manager.cpp @@ -66,7 +66,7 @@ ArchiveAccountManager::initAuthentication(const std::string& accountId, return; } - dht::ThreadPool::computation().run([ctx = std::move(ctx), w = weak_from_this()] mutable { + dht::ThreadPool::computation().run([ctx = std::move(ctx), w = weak_from_this()] { auto this_ = std::static_pointer_cast<ArchiveAccountManager>(w.lock()); if (not this_) return; try { @@ -668,7 +668,7 @@ generatePIN(size_t length = 16, size_t split = 8) void ArchiveAccountManager::addDevice(const std::string& password, AddDeviceCallback cb) { - dht::ThreadPool::computation().run([password, cb = std::move(cb), w=weak_from_this()] mutable { + dht::ThreadPool::computation().run([password, cb = std::move(cb), w=weak_from_this()] { auto this_ = std::static_pointer_cast<ArchiveAccountManager>(w.lock()); if (not this_) return;