Windscribe / Desktop-App

Windscribe 2.0 desktop client for Windows, Mac and Linux
https://windscribe.com
GNU General Public License v2.0
624 stars 87 forks source link

settings.h lacks members (build is failing on docker) #169

Closed SDD701 closed 1 month ago

SDD701 commented 2 months ago

Describe the bug Can't build windscribe on docker libs/wsnet/src/public/settings.h lacks some members (setBasePlatform, setDeviceIdd, setOpenVersionVersion)

OS and app information:

To Reproduce Steps to reproduce the behavior: reproduce instructions in README for linux in docker

Expected behavior Windscribe is building successfully

Additional context log

Building Windscribe...
INFO: App version extracted: "2.11.5_guinea_pig"
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
All requested packages are currently installed.
Total install time: 196 ns
7zip provides CMake targets:

# this is heuristically generated, and may not be correct
find_package(7zip CONFIG REQUIRED)
target_link_libraries(main PRIVATE 7zip::7zip)

The package boost-thread is compatible with built-in CMake targets of FindBoost.cmake:

find_package(Boost REQUIRED COMPONENTS thread)
target_link_libraries(main PRIVATE Boost::thread)

or the generated cmake configs via:

find_package(boost_thread REQUIRED CONFIG)
target_link_libraries(main PRIVATE Boost::thread)

The package boost-serialization is compatible with built-in CMake targets of FindBoost.cmake:

find_package(Boost REQUIRED COMPONENTS serialization)
target_link_libraries(main PRIVATE Boost::serialization)

or the generated cmake configs via:

find_package(boost_serialization REQUIRED CONFIG)
target_link_libraries(main PRIVATE Boost::serialization)

advobfuscator is header-only and can be used from CMake via:

find_path(ADVOBFUSCATOR_INCLUDE_DIRS "Lib/Indexes.h")
target_include_directories(main PRIVATE ${ADVOBFUSCATOR_INCLUDE_DIRS})

The package boost-asio is compatible with built-in CMake targets of FindBoost.cmake:

find_package(Boost REQUIRED COMPONENTS asio)
target_link_libraries(main PRIVATE Boost::asio)

or the generated cmake configs via:

find_package(boost_asio REQUIRED CONFIG)
target_link_libraries(main PRIVATE Boost::asio)

The package boost-filesystem is compatible with built-in CMake targets of FindBoost.cmake:

find_package(Boost REQUIRED COMPONENTS filesystem)
target_link_libraries(main PRIVATE Boost::filesystem)

or the generated cmake configs via:

find_package(boost_filesystem REQUIRED CONFIG)
target_link_libraries(main PRIVATE Boost::filesystem)

The package boost-logic is compatible with built-in CMake targets of FindBoost.cmake:

find_package(Boost REQUIRED COMPONENTS logic)
target_link_libraries(main PRIVATE Boost::logic)

or the generated cmake configs via:

find_package(boost_logic REQUIRED CONFIG)
target_link_libraries(main PRIVATE Boost::logic)

The package boost-process is compatible with built-in CMake targets of FindBoost.cmake:

find_package(Boost REQUIRED COMPONENTS process)
target_link_libraries(main PRIVATE Boost::process)

or the generated cmake configs via:

find_package(boost_process REQUIRED CONFIG)
target_link_libraries(main PRIVATE Boost::process)

The package c-ares provides CMake targets:

find_package(c-ares CONFIG REQUIRED)
target_link_libraries(main PRIVATE c-ares::cares)

The package cmakerc provides additional cmake functions:

find_package(CMakeRC CONFIG REQUIRED)
cmrc_add_resource_library(foo-resources ALIAS foo::rc NAMESPACE foo  ...)
target_link_libraries(main PRIVATE foo::rc)

See https://github.com/vector-of-bool/cmrc/blob/master/README.md

cpp-base64 is header-only and can be used from CMake via:

find_path(CPP_BASE64_INCLUDE_DIRS "cpp-base64/base64.cpp")
target_include_directories(main PRIVATE ${CPP_BASE64_INCLUDE_DIRS})

The package openssl is compatible with built-in CMake targets:

find_package(OpenSSL REQUIRED)
target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)

curl provides CMake targets:

# this is heuristically generated, and may not be correct
find_package(CURL CONFIG REQUIRED)
target_link_libraries(main PRIVATE CURL::libcurl CURL::libcurl_static)

curl provides pkg-config modules:

# Library to transfer files with ftp, http, etc.
libcurl

The package gtest is compatible with built-in CMake targets:

enable_testing()

find_package(GTest CONFIG REQUIRED)
target_link_libraries(main PRIVATE GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main)

add_test(AllTestsInMain main)

rapidjson provides CMake targets:

# this is heuristically generated, and may not be correct
find_package(RapidJSON CONFIG REQUIRED)
target_link_libraries(main PRIVATE rapidjson)

rapidjson provides pkg-config modules:

# A fast JSON parser/generator for C++ with both SAX/DOM style API
RapidJSON

skyr-url provides CMake targets:

# this is heuristically generated, and may not be correct
find_package(skyr-url CONFIG REQUIRED)
target_link_libraries(main PRIVATE skyr::skyr-url skyr::skyr-json skyr::skyr-filesystem)

The package spdlog provides CMake targets:

find_package(spdlog CONFIG REQUIRED)
target_link_libraries(main PRIVATE spdlog::spdlog)

# Or use the header-only version
find_package(spdlog CONFIG REQUIRED)
target_link_libraries(main PRIVATE spdlog::spdlog_header_only)

Cleaning: "/w/temp/installer"...
INFO: Building CLI...
INFO: ['cmake', '-DCMAKE_PREFIX_PATH:PATH=/w/build-libs/qt', '/w/gui/cli/CMakeLists.txt', '--no-warn-unused-cli', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_TOOLCHAIN_FILE=/w/vcpkg/scripts/buildsystems/vcpkg.cmake', "-DVCPKG_OVERLAY_TRIPLETS='/w/tools/vcpkg/triplets'"]
Not searching for unused variables given on the command line.
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /w/build/gui/cli
INFO: ['cmake', '--build', '.', '--config', 'Release', '--parallel', '12', '--']
[  0%] Built target windscribe-cli_autogen_timestamp_deps
[  1%] Built target windscribe-cli_autogen
[100%] Built target windscribe-cli
-- Install configuration: "Release"
-- Installing: /w/temp/installer/InstallerFiles/./windscribe-cli
-- Set non-toolchain portion of runtime path of "/w/temp/installer/InstallerFiles/./windscribe-cli" to ""
INFO: Building Helper...
INFO: ['cmake', '-DCMAKE_PREFIX_PATH:PATH=/w/build-libs/qt', '/w/backend/linux/helper/CMakeLists.txt', '--no-warn-unused-cli', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_TOOLCHAIN_FILE=/w/vcpkg/scripts/buildsystems/vcpkg.cmake', "-DVCPKG_OVERLAY_TRIPLETS='/w/tools/vcpkg/triplets'"]
Not searching for unused variables given on the command line.
-- Found Boost: /w/vcpkg/installed/x64-linux/share/boost/BoostConfig.cmake (found version "1.85.0") found components: serialization thread filesystem
-- Found OpenSSL: /w/vcpkg/installed/x64-linux/lib/libcrypto.so (found version "3.2.0")
-- Found OpenSSL: /w/vcpkg/installed/x64-linux/lib/libcrypto.so (found suitable version "3.2.0", minimum required is "3")
CMake Warning at /w/vcpkg/installed/x64-linux/share/curl/vcpkg-cmake-wrapper.cmake:45 (message):
  CURL_LIBRARIES list at least one target.  This will not work for use cases
  where targets are not resolved.
Call Stack (most recent call first):
  /w/vcpkg/scripts/buildsystems/vcpkg.cmake:813 (include)
  /w/libs/wsnet/CMakeLists.txt:23 (find_package)

-- RapidJSON found. Headers: /w/vcpkg/installed/x64-linux/share/rapidjson/../../include
-- Found Boost: /w/vcpkg/installed/x64-linux/share/boost/BoostConfig.cmake (found version "1.85.0") found components: filesystem
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /w/build/backend/linux/helper
INFO: ['cmake', '--build', '.', '--config', 'Release', '--parallel', '12', '--']
[ 13%] Built target cert-resources
[ 14%] Building CXX object wsnet/CMakeFiles/wsnet.dir/src/wsnet.cpp.o
[ 15%] Building CXX object wsnet/CMakeFiles/wsnet.dir/src/apiresourcesmanager/apiresourcesmanager.cpp.o
[ 17%] Building CXX object wsnet/CMakeFiles/wsnet.dir/src/serverapi/serverapi.cpp.o
/w/libs/wsnet/src/apiresourcesmanager/apiresourcesmanager.cpp: In member function ‘void wsnet::ApiResourcesManager::updateSessionStatus()’:
/w/libs/wsnet/src/apiresourcesmanager/apiresourcesmanager.cpp:517:75: error: ‘class wsnet::Settings’ has no member named ‘deviceId’
  517 |             sessionStatus_->isContainsStaticDeviceId(Settings::instance().deviceId()) ||
      |                                                                           ^~~~~~~~
/w/libs/wsnet/src/serverapi/serverapi.cpp: In member function ‘virtual std::shared_ptr<wsnet::WSNetCancelableCallback> wsnet::ServerAPI::serverConfigs(const string&, wsnet::WSNetRequestFinishedCallback)’:
/w/libs/wsnet/src/serverapi/serverapi.cpp:97:91: error: ‘class wsnet::Settings’ has no member named ‘openVersionVersion’
   97 |     BaseRequest *request = requests_factory::serverConfigs(authHash, Settings::instance().openVersionVersion(), cancelableCallback);
      |                                                                                           ^~~~~~~~~~~~~~~~~~
/w/libs/wsnet/src/serverapi/serverapi.cpp: In member function ‘virtual std::shared_ptr<wsnet::WSNetCancelableCallback> wsnet::ServerAPI::recordInstall(wsnet::WSNetRequestFinishedCallback)’:
/w/libs/wsnet/src/serverapi/serverapi.cpp:113:81: error: ‘class wsnet::Settings’ has no member named ‘basePlatform’
  113 |     BaseRequest *request = requests_factory::recordInstall(Settings::instance().basePlatform(), cancelableCallback);
      |                                                                                 ^~~~~~~~~~~~
/w/libs/wsnet/src/serverapi/serverapi.cpp: In member function ‘virtual std::shared_ptr<wsnet::WSNetCancelableCallback> wsnet::ServerAPI::staticIps(const string&, wsnet::WSNetRequestFinishedCallback)’:
/w/libs/wsnet/src/serverapi/serverapi.cpp:178:87: error: ‘class wsnet::Settings’ has no member named ‘basePlatform’
  178 |     BaseRequest *request = requests_factory::staticIps(authHash, Settings::instance().basePlatform(), Settings::instance().deviceId(), cancelableCallback);
      |                                                                                       ^~~~~~~~~~~~
/w/libs/wsnet/src/serverapi/serverapi.cpp:178:124: error: ‘class wsnet::Settings’ has no member named ‘deviceId’
  178 |     BaseRequest *request = requests_factory::staticIps(authHash, Settings::instance().basePlatform(), Settings::instance().deviceId(), cancelableCallback);
      |                                                                                                                            ^~~~~~~~
/w/libs/wsnet/src/serverapi/serverapi.cpp: In member function ‘virtual std::shared_ptr<wsnet::WSNetCancelableCallback> wsnet::ServerAPI::sendSupportTicket(const string&, const string&, const string&, const string&, const string&, const string&, const string&, wsnet::WSNetRequestFinishedCallback)’:
/w/libs/wsnet/src/serverapi/serverapi.cpp:300:176: error: ‘class wsnet::Settings’ has no member named ‘basePlatform’
  300 |     BaseRequest *request = requests_factory::sendSupportTicket(supportEmail, supportName, supportSubject, supportMessage, supportCategory, type, channel, Settings::instance().basePlatform(), cancelableCallback);
      |                                                                                                                                                                                ^~~~~~~~~~~~
/w/libs/wsnet/src/serverapi/serverapi.cpp: In member function ‘virtual std::shared_ptr<wsnet::WSNetCancelableCallback> wsnet::ServerAPI::recordShakeForDataScore(const string&, const string&, const string&, wsnet::WSNetRequestFinishedCallback)’:
/w/libs/wsnet/src/serverapi/serverapi.cpp:340:101: error: ‘class wsnet::Settings’ has no member named ‘basePlatform’
  340 |     BaseRequest *request = requests_factory::recordShakeForDataScore(authHash, Settings::instance().basePlatform(), score, signature, cancelableCallback);
      |                                                                                                     ^~~~~~~~~~~~
make[2]: *** [wsnet/CMakeFiles/wsnet.dir/build.make:356: wsnet/CMakeFiles/wsnet.dir/src/serverapi/serverapi.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [wsnet/CMakeFiles/wsnet.dir/build.make:104: wsnet/CMakeFiles/wsnet.dir/src/apiresourcesmanager/apiresourcesmanager.cpp.o] Error 1
/w/libs/wsnet/src/wsnet.cpp: In member function ‘bool wsnet::WSNet_impl::initializeImpl(const string&, const string&, const string&, const string&, const string&, bool, const string&)’:
/w/libs/wsnet/src/wsnet.cpp:68:30: error: ‘class wsnet::Settings’ has no member named ‘setBasePlatform’
   68 |         Settings::instance().setBasePlatform(platformName);
      |                              ^~~~~~~~~~~~~~~
/w/libs/wsnet/src/wsnet.cpp:69:30: error: ‘class wsnet::Settings’ has no member named ‘setDeviceId’
   69 |         Settings::instance().setDeviceId(deviceId);
      |                              ^~~~~~~~~~~
/w/libs/wsnet/src/wsnet.cpp:70:30: error: ‘class wsnet::Settings’ has no member named ‘setOpenVersionVersion’
   70 |         Settings::instance().setOpenVersionVersion(openVpnVersion);
      |                              ^~~~~~~~~~~~~~~~~~~~~
make[2]: *** [wsnet/CMakeFiles/wsnet.dir/build.make:76: wsnet/CMakeFiles/wsnet.dir/src/wsnet.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:345: wsnet/CMakeFiles/wsnet.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
ERROR: Command failed: "['cmake', '--build', '.', '--config', 'Release', '--parallel', '12', '--']"
root@b1fb1ce55165:/w/tools# 
SDD701 commented 2 months ago

A note: tag 2.10.5 is building fine

jaxu commented 2 months ago

This will be fixed in 2.11.7.

bernerdad commented 2 months ago

This is fixed now with the push of 2.11.7 to this repo.