diff --git a/CMakeLists.txt b/CMakeLists.txt index 913dcb72..880aa5d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8.6) +cmake_minimum_required(VERSION 3.1) PROJECT(Zano) @@ -185,8 +185,8 @@ else() endif() -# If BOOST_ROOT is set, ignore system-wide Boost -if(DEFINED ENV{BOOST_ROOT}) +# always use system-wide Boost (unless ZANO_USE_SYSTEM_BOOST is defined for some reason, which is not recommended) +if(NOT DEFINED ENV{ZANO_USE_SYSTEM_BOOST}) set(Boost_NO_SYSTEM_PATHS ON) endif() @@ -212,8 +212,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "iOS") elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") set(Boost_LIBRARY_DIRS "${Boost_LIBRARY_DIRS}/${CMAKE_ANDROID_ARCH_ABI}/") set(Boost_LIBRARIES "${Boost_LIBRARY_DIRS}libboost_system.a;${Boost_LIBRARY_DIRS}libboost_filesystem.a;${Boost_LIBRARY_DIRS}libboost_thread.a;${Boost_LIBRARY_DIRS}libboost_timer.a;${Boost_LIBRARY_DIRS}libboost_date_time.a;${Boost_LIBRARY_DIRS}libboost_chrono.a;${Boost_LIBRARY_DIRS}libboost_regex.a;${Boost_LIBRARY_DIRS}libboost_serialization.a;${Boost_LIBRARY_DIRS}libboost_atomic.a;${Boost_LIBRARY_DIRS}libboost_program_options.a") +elseif(APPLE) + find_package(Boost 1.71 EXACT REQUIRED COMPONENTS system filesystem thread timer date_time chrono regex serialization atomic program_options locale) else() - find_package(Boost 1.70 REQUIRED COMPONENTS system filesystem thread timer date_time chrono regex serialization atomic program_options locale) + find_package(Boost 1.70 EXACT REQUIRED COMPONENTS system filesystem thread timer date_time chrono regex serialization atomic program_options locale) endif() diff --git a/README.md b/README.md index 464c1410..8eea3e1a 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Be sure to clone the repository properly:\ | llvm/clang (Linux) | UNKNOWN | 7.0.1 | 8.0.0 | | [MSVC](https://visualstudio.microsoft.com/downloads/) (Windows) | 2015 (14.0 update 1) | 2017 (15.9.0) | 2022 (17.7.5) | | [XCode](https://developer.apple.com/downloads/) (macOS) | 9.2 | 12.3 | 12.3 | -| [CMake](https://cmake.org/download/) | 3.15.5 | 3.22.1 | 3.26.3 | +| [CMake](https://cmake.org/download/) | 3.1 | 3.22.1 | 3.26.3 | | [Boost](https://www.boost.org/users/download/) | 1.70 | 1.70 | 1.76 | | [OpenSSL](https://www.openssl.org/source/) [(win)](https://slproweb.com/products/Win32OpenSSL.html) | 1.1.1n | 1.1.1w | 1.1.1w | | [Qt](https://download.qt.io/archive/qt/) (*only for GUI*) | 5.8.0 | 5.11.2 | 5.15.2 | @@ -42,18 +42,25 @@ Recommended OS versions: Ubuntu 20.04, 22.04 LTS. sudo apt-get install -y build-essential g++ python-dev autotools-dev libicu-dev libbz2-dev cmake git screen checkinstall zlib1g-dev mesa-common-dev libglu1-mesa-dev -2. Download and build Boost\ - (Assuming you have cloned Zano into the 'zano' folder. If you used a different location for Zano, edit line 4 accordingly.) +2. Clone Zano into a local folder\ + (If for some reason you need to use alternative Zano branch, change 'master' to the required branch name.) + + git clone --recursive https://github.com/hyle-team/zano.git -b master + + In the following steps we assume that you cloned Zano into '~/zano' folder in your home directory. + +3. Download and build Boost\ + (Assuming you have cloned Zano into the 'zano' folder. If you used a different location for Zano, **edit line 4** accordingly.) curl -OL https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.bz2 echo "430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778 boost_1_70_0.tar.bz2" | shasum -c && tar -xjf boost_1_70_0.tar.bz2 rm boost_1_70_0.tar.bz2 && cd boost_1_70_0 patch -p0 < ../zano/utils/boost_1.70_gcc_8.patch || cd .. ./bootstrap.sh --with-libraries=system,filesystem,thread,date_time,chrono,regex,serialization,atomic,program_options,locale,timer,log - ./b2 + ./b2 && cd .. Make sure that you see "The Boost C++ Libraries were successfully built!" message at the end. -3. Install Qt\ +4. Install Qt\ (*GUI version only, skip this step if you're building server version*) [*GUI version*] @@ -64,18 +71,19 @@ Recommended OS versions: Ubuntu 20.04, 22.04 LTS. Then follow the instructions in Wizard. Don't forget to tick the WebEngine module checkbox! -4. Install OpenSSL +5. Install OpenSSL - We recommend installing OpenSSL v1.1.1w locally unless you would like to use the same version system-wide. Adjust the local path `/home/user/openssl` in the commands below according to your needs. + We recommend installing OpenSSL v1.1.1w locally unless you would like to use the same version system-wide.\ + (Assuming that `$HOME` environment variable is set to your home directory. Otherwise, edit line 4 accordingly.) curl -OL https://www.openssl.org/source/openssl-1.1.1w.tar.gz echo "cf3098950cb4d853ad95c0841f1f9c6d3dc102dccfcacd521d93925208b76ac8 openssl-1.1.1w.tar.gz" | shasum -c && tar xaf openssl-1.1.1w.tar.gz cd openssl-1.1.1w/ - ./config --prefix=/home/user/openssl --openssldir=/home/user/openssl shared zlib - make && make test && make install + ./config --prefix=$HOME/openssl --openssldir=$HOME/openssl shared zlib + make && make test && make install && cd .. -5. Set environment variables properly\ +6. [*OPTIONAL*] Set global environment variables for convenient use\ For instance, by adding the following lines to `~/.bashrc` [*server version*] @@ -90,18 +98,27 @@ For instance, by adding the following lines to `~/.bashrc` export OPENSSL_ROOT_DIR=/home/user/openssl export QT_PREFIX_PATH=/home/user/Qt5.11.2/5.11.2/gcc_64 - Make sure you've restarted your terminal session (by reopening the terminal window or reconnecting the server) to apply these changes. - -6. Build the binaries - 1. Build daemon and simplewallet: - - cd zano/ && make -j1 - or + **NOTICE: Please edit the lines above according to your actual paths.** + **NOTICE 2:** Make sure you've restarted your terminal session (by reopening the terminal window or reconnecting the server) to apply these changes. + +8. Build the binaries + 1. If you skipped step 6 and did not set the environment variables: + + cd zano && mkdir build && cd build + BOOST_ROOT=$HOME/boost_1_70_0 OPENSSL_ROOT_DIR=$HOME/openssl cmake .. + make -j1 daemon simplewallet + + 2. If you set the variables in step 6: + cd zano && mkdir build && cd build cmake .. make -j1 daemon simplewallet + or simply: + + cd zano && make -j1 + **NOTICE**: If you are building on a machine with a relatively high amount of RAM or with the proper setting of virtual memory, then you can use `-j2` or `-j` option to speed up the building process. Use with caution. **NOTICE 2**: If you'd like to build binaries for the testnet, use `cmake -D TESTNET=TRUE ..` instead of `cmake ..` . @@ -111,12 +128,12 @@ For instance, by adding the following lines to `~/.bashrc` cd zano utils/build_script_linux.sh -7. Look for the binaries in `build` folder + Look for the binaries in `build` folder
### Windows -Recommended OS version: Windows 7 x64. +Recommended OS version: Windows 7 x64, Windows 11 x64. 1. Install required prerequisites (Boost, Qt, CMake, OpenSSL). 2. Edit paths in `utils/configure_local_paths.cmd`. 3. Run one of `utils/configure_win64_msvsNNNN_gui.cmd` according to your MSVC version. diff --git a/src/common/pre_download.h b/src/common/pre_download.h index 373c0bd4..e9aecf5b 100644 --- a/src/common/pre_download.h +++ b/src/common/pre_download.h @@ -21,8 +21,8 @@ namespace tools }; #ifndef TESTNET - static constexpr pre_download_entry c_pre_download_mdbx = { "http://95.217.42.247/pre-download/zano_mdbx_95_2200000.pak", "c3bd64c62495c3f266759750952519f13f32fc161b59547beaa8202b6e26d516", 2628767033, 5100195840 }; - static constexpr pre_download_entry c_pre_download_lmdb = { "http://95.217.42.247/pre-download/zano_lmdb_95_2200000.pak", "fcbf0ab3b23836e1a51fa675e719900fb94110cfb74790b3323cebce7fb9f5bd", 3426025872, 4954472448 }; + static constexpr pre_download_entry c_pre_download_mdbx = { "http://95.217.42.247/pre-download/zano_mdbx_95_2390000.pak", "ffc8d2220a4d8b3fba51073a422cbb6139c60858469ea086623f9d16329eb5b4", 2767268964, 5368627200 }; + static constexpr pre_download_entry c_pre_download_lmdb = { "http://95.217.42.247/pre-download/zano_lmdb_95_2390000.pak", "7e58951bc523eb12e0ec07171bc67b3f96bad4d5454dd2da56f642a872e230d3", 3618283035, 5156397056 }; #else static constexpr pre_download_entry c_pre_download_mdbx = { "", "", 0, 0 }; static constexpr pre_download_entry c_pre_download_lmdb = { "", "", 0, 0 }; diff --git a/src/gui/qt-daemon/layout b/src/gui/qt-daemon/layout index 50e07717..45e91ea2 160000 --- a/src/gui/qt-daemon/layout +++ b/src/gui/qt-daemon/layout @@ -1 +1 @@ -Subproject commit 50e07717bff0bc00617bd8d14589e15f2647fabf +Subproject commit 45e91ea2d56ad4ce60b552052ec7c5abc8f86dcc diff --git a/src/version.h.in b/src/version.h.in index 018842ef..9f51f1d5 100644 --- a/src/version.h.in +++ b/src/version.h.in @@ -8,6 +8,6 @@ #define PROJECT_REVISION "2" #define PROJECT_VERSION PROJECT_MAJOR_VERSION "." PROJECT_MINOR_VERSION "." PROJECT_REVISION -#define PROJECT_VERSION_BUILD_NO 160 +#define PROJECT_VERSION_BUILD_NO 164 #define PROJECT_VERSION_BUILD_NO_STR STRINGIFY_EXPAND(PROJECT_VERSION_BUILD_NO) #define PROJECT_VERSION_LONG PROJECT_VERSION "." PROJECT_VERSION_BUILD_NO_STR "[" BUILD_COMMIT_ID "]" diff --git a/utils/Zano_appimage_wrapper.sh b/utils/Zano_appimage_wrapper.sh index 9c588e61..be3171c5 100755 --- a/utils/Zano_appimage_wrapper.sh +++ b/utils/Zano_appimage_wrapper.sh @@ -32,8 +32,8 @@ create_desktop_icon() echo GenericName=Zano | tee -a $target_file_name > /dev/null echo Comment=Privacy blockchain | tee -a $target_file_name > /dev/null echo Icon=${out_dir}/Zano.png | tee -a $target_file_name > /dev/null - echo Exec=$APPIMAGE --deeplink-params=%u | tee -a $target_file_name > /dev/null - echo Terminal=true | tee -a $target_file_name > /dev/null + echo Exec=$APPIMAGE --deeplink-params=\\\"%u\\\" | tee -a $target_file_name > /dev/null + echo Terminal=false | tee -a $target_file_name > /dev/null echo Type=Application | tee -a $target_file_name > /dev/null echo "Categories=Qt;Utility;" | tee -a $target_file_name > /dev/null echo "MimeType=x-scheme-handler/zano;" | tee -a $target_file_name > /dev/null diff --git a/utils/build_script_windows.bat b/utils/build_script_windows.bat index 90fba36a..fcd8fe53 100644 --- a/utils/build_script_windows.bat +++ b/utils/build_script_windows.bat @@ -44,7 +44,7 @@ rmdir build /s /q mkdir build cd build -cmake %TESTNET_DEF% -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_MSVC_PATH%" -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.1" -G "Visual Studio 16 2019" -A x64 -T host=x64 .. +cmake %TESTNET_DEF% -D OPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" -D CMAKE_PREFIX_PATH="%QT_MSVC_PATH%" -D BUILD_GUI=TRUE -D STATIC=FALSE -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_ROOT%\lib64-msvc-14.2" -G "Visual Studio 16 2019" -A x64 -T host=x64 .. IF %ERRORLEVEL% NEQ 0 ( goto error )