libzmq v4.3.4, cppzmq v4.8.1, cmake v3.23 for Docker Ubuntu 18.04
This commit is contained in:
parent
000aeaa721
commit
520505b667
4 changed files with 212 additions and 5 deletions
|
|
@ -22,6 +22,37 @@ endif()
|
||||||
|
|
||||||
list( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
|
list( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
|
||||||
|
|
||||||
|
function(get_linux_lsb_release_information)
|
||||||
|
find_program(LSB_RELEASE_EXEC lsb_release)
|
||||||
|
if(NOT LSB_RELEASE_EXEC)
|
||||||
|
message(FATAL_ERROR "Could not detect lsb_release executable, can not gather required information")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --id OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --release OUTPUT_VARIABLE LSB_RELEASE_VERSION_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --codename OUTPUT_VARIABLE LSB_RELEASE_CODENAME_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
set(LSB_RELEASE_ID_SHORT "${LSB_RELEASE_ID_SHORT}" PARENT_SCOPE)
|
||||||
|
set(LSB_RELEASE_VERSION_SHORT "${LSB_RELEASE_VERSION_SHORT}" PARENT_SCOPE)
|
||||||
|
set(LSB_RELEASE_CODENAME_SHORT "${LSB_RELEASE_CODENAME_SHORT}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
find_package(cppzmq)
|
||||||
|
target_link_libraries(cppzmq)
|
||||||
|
|
||||||
|
get_linux_lsb_release_information()
|
||||||
|
message(STATUS "Linux ${LSB_RELEASE_ID_SHORT} ${LSB_RELEASE_VERSION_SHORT} ${LSB_RELEASE_CODENAME_SHORT}")
|
||||||
|
string(REGEX MATCHALL "([0-9]+)" arg_list ${LSB_RELEASE_VERSION_SHORT})
|
||||||
|
list( LENGTH arg_list listlen )
|
||||||
|
if (NOT listlen)
|
||||||
|
message(FATAL_ERROR "Could not detect Ubuntu version")
|
||||||
|
endif()
|
||||||
|
list(GET arg_list 0 output)
|
||||||
|
message("Ubuntu version is: ${output}")
|
||||||
|
add_definitions(-DPEERPLAYS_UBUNTU_VERSION=${output})
|
||||||
|
endif()
|
||||||
|
|
||||||
# function to help with cUrl
|
# function to help with cUrl
|
||||||
macro(FIND_CURL)
|
macro(FIND_CURL)
|
||||||
if (NOT WIN32 AND NOT APPLE AND CURL_STATICLIB)
|
if (NOT WIN32 AND NOT APPLE AND CURL_STATICLIB)
|
||||||
|
|
|
||||||
33
Dockerfile
33
Dockerfile
|
|
@ -28,8 +28,8 @@ RUN \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtool \
|
libtool \
|
||||||
libzip-dev \
|
libzip-dev \
|
||||||
libzmq3-dev \
|
|
||||||
locales \
|
locales \
|
||||||
|
lsb-release \
|
||||||
mc \
|
mc \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
|
|
@ -40,6 +40,7 @@ RUN \
|
||||||
python3 \
|
python3 \
|
||||||
python3-jinja2 \
|
python3-jinja2 \
|
||||||
sudo \
|
sudo \
|
||||||
|
systemd-coredump \
|
||||||
wget
|
wget
|
||||||
|
|
||||||
ENV HOME /home/peerplays
|
ENV HOME /home/peerplays
|
||||||
|
|
@ -53,6 +54,36 @@ RUN echo 'peerplays:peerplays' | chpasswd
|
||||||
# SSH
|
# SSH
|
||||||
EXPOSE 22
|
EXPOSE 22
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# libzmq setup
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
WORKDIR /home/peerplays/
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
wget https://github.com/zeromq/libzmq/archive/refs/tags/v4.3.4.zip && \
|
||||||
|
unzip v4.3.4.zip && \
|
||||||
|
cd libzmq-4.3.4 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# cppzmq setup
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
WORKDIR /home/peerplays/
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
wget https://github.com/zeromq/cppzmq/archive/refs/tags/v4.8.1.zip && \
|
||||||
|
unzip v4.8.1.zip && \
|
||||||
|
cd cppzmq-4.8.1 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Peerplays setup
|
# Peerplays setup
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ RUN \
|
||||||
bash \
|
bash \
|
||||||
build-essential \
|
build-essential \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
cmake \
|
|
||||||
dnsutils \
|
dnsutils \
|
||||||
doxygen \
|
doxygen \
|
||||||
expect \
|
expect \
|
||||||
|
|
@ -27,8 +26,8 @@ RUN \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtool \
|
libtool \
|
||||||
libzip-dev \
|
libzip-dev \
|
||||||
libzmq3-dev \
|
|
||||||
locales \
|
locales \
|
||||||
|
lsb-release \
|
||||||
mc \
|
mc \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
|
|
@ -39,6 +38,7 @@ RUN \
|
||||||
python3 \
|
python3 \
|
||||||
python3-jinja2 \
|
python3-jinja2 \
|
||||||
sudo \
|
sudo \
|
||||||
|
systemd-coredump \
|
||||||
wget
|
wget
|
||||||
|
|
||||||
ENV HOME /home/peerplays
|
ENV HOME /home/peerplays
|
||||||
|
|
@ -65,6 +65,49 @@ RUN \
|
||||||
./bootstrap.sh && \
|
./bootstrap.sh && \
|
||||||
./b2 install
|
./b2 install
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# cmake setup
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
WORKDIR /home/peerplays/
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
cd src && \
|
||||||
|
wget -c 'https://cmake.org/files/v3.23/cmake-3.23.1-linux-x86_64.sh' -O cmake-3.23.1-linux-x86_64.sh && \
|
||||||
|
chmod 755 ./cmake-3.23.1-linux-x86_64.sh && \
|
||||||
|
./cmake-3.23.1-linux-x86_64.sh --prefix=/usr/ --skip-license && \
|
||||||
|
cmake --version
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# libzmq setup
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
WORKDIR /home/peerplays/
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
wget https://github.com/zeromq/libzmq/archive/refs/tags/v4.3.4.zip && \
|
||||||
|
unzip v4.3.4.zip && \
|
||||||
|
cd libzmq-4.3.4 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# cppzmq setup
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
WORKDIR /home/peerplays/
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
wget https://github.com/zeromq/cppzmq/archive/refs/tags/v4.8.1.zip && \
|
||||||
|
unzip v4.8.1.zip && \
|
||||||
|
cd cppzmq-4.8.1 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Peerplays setup
|
# Peerplays setup
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
|
||||||
106
README.md
106
README.md
|
|
@ -6,7 +6,88 @@ This is a quick introduction to get new developers and witnesses up to speed on
|
||||||
|
|
||||||
# Building and Installation Instructions
|
# Building and Installation Instructions
|
||||||
|
|
||||||
Officially supported OS is Ubuntu 20.04.
|
Officially supported OS is Ubuntu 18.04 and 20.04.
|
||||||
|
|
||||||
|
# To build for Ubuntu 18.04:
|
||||||
|
|
||||||
|
Following dependencies are needed for a clean install of Ubuntu 18.04:
|
||||||
|
```
|
||||||
|
sudo apt-get install \
|
||||||
|
apt-utils autoconf bash build-essential ca-certificates dnsutils doxygen \
|
||||||
|
expect git graphviz libbz2-dev libcurl4-openssl-dev libncurses-dev \
|
||||||
|
libreadline-dev libsnappy-dev libssl-dev libtool libzip-dev locales \
|
||||||
|
lsb-release mc nano net-tools ntp openssh-server pkg-config perl \
|
||||||
|
python3 python3-jinja2 sudo systemd-coredump wget
|
||||||
|
```
|
||||||
|
# Boost setup
|
||||||
|
```
|
||||||
|
mkdir $HOME/src
|
||||||
|
cd $HOME/src
|
||||||
|
export BOOST_ROOT=$HOME/src/boost_1_67_0
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y autotools-dev build-essential libbz2-dev libicu-dev python-dev
|
||||||
|
wget -c 'http://sourceforge.net/projects/boost/files/boost/1.67.0/boost_1_67_0.tar.bz2/download'\
|
||||||
|
-O boost_1_67_0.tar.bz2
|
||||||
|
tar xjf boost_1_67_0.tar.bz2
|
||||||
|
cd boost_1_67_0/
|
||||||
|
./bootstrap.sh "--prefix=$BOOST_ROOT"
|
||||||
|
./b2 install
|
||||||
|
```
|
||||||
|
# cmake setup
|
||||||
|
```
|
||||||
|
cd $HOME/src && \
|
||||||
|
wget -c 'https://cmake.org/files/v3.23/cmake-3.23.1-linux-x86_64.sh' -O cmake-3.23.1-linux-x86_64.sh && \
|
||||||
|
chmod 755 ./cmake-3.23.1-linux-x86_64.sh && \
|
||||||
|
./cmake-3.23.1-linux-x86_64.sh --prefix=/usr/ --skip-license && \
|
||||||
|
```
|
||||||
|
# libzmq setup
|
||||||
|
```
|
||||||
|
cd $HOME/src && \
|
||||||
|
wget https://github.com/zeromq/libzmq/archive/refs/tags/v4.3.4.zip && \
|
||||||
|
unzip v4.3.4.zip && \
|
||||||
|
cd libzmq-4.3.4 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
```
|
||||||
|
# cppzmq setup
|
||||||
|
```
|
||||||
|
cd $HOME/src && \
|
||||||
|
wget https://github.com/zeromq/cppzmq/archive/refs/tags/v4.8.1.zip && \
|
||||||
|
unzip v4.8.1.zip && \
|
||||||
|
cd cppzmq-4.8.1 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
```
|
||||||
|
## Building Peerplays
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir $HOME/src
|
||||||
|
cd $HOME/src
|
||||||
|
git clone https://gitlab.com/PBSA/peerplays.git
|
||||||
|
cd peerplays
|
||||||
|
git submodule update --init --recursive
|
||||||
|
|
||||||
|
# If you want to build Mainnet node
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release
|
||||||
|
|
||||||
|
# If you want to build Testnet node
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_PEERPLAYS_TESTNET=1
|
||||||
|
|
||||||
|
# Update -j flag depending on your current system specs;
|
||||||
|
# Recommended 4GB of RAM per 1 CPU core
|
||||||
|
# make -j2 for 8GB RAM
|
||||||
|
# make -j4 for 16GB RAM
|
||||||
|
# make -j8 for 32GB RAM
|
||||||
|
make -j$(nproc)
|
||||||
|
|
||||||
|
make install # this can install the executable files under /usr/local
|
||||||
|
```
|
||||||
|
|
||||||
|
# To build for Ubuntu 20.04:
|
||||||
|
|
||||||
Following dependencies are needed for a clean install of Ubuntu 20.04:
|
Following dependencies are needed for a clean install of Ubuntu 20.04:
|
||||||
```
|
```
|
||||||
|
|
@ -14,10 +95,31 @@ sudo apt-get install \
|
||||||
apt-utils autoconf bash build-essential ca-certificates clang-format cmake \
|
apt-utils autoconf bash build-essential ca-certificates clang-format cmake \
|
||||||
dnsutils doxygen expect git graphviz libboost-all-dev libbz2-dev \
|
dnsutils doxygen expect git graphviz libboost-all-dev libbz2-dev \
|
||||||
libcurl4-openssl-dev libncurses-dev libreadline-dev libsnappy-dev \
|
libcurl4-openssl-dev libncurses-dev libreadline-dev libsnappy-dev \
|
||||||
libssl-dev libtool libzip-dev libzmq3-dev locales mc nano net-tools ntp \
|
libssl-dev libtool libzip-dev libzmq3-dev locales lsb-release mc nano net-tools ntp \
|
||||||
openssh-server pkg-config perl python3 python3-jinja2 sudo wget
|
openssh-server pkg-config perl python3 python3-jinja2 sudo wget
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# libzmq setup
|
||||||
|
```
|
||||||
|
wget https://github.com/zeromq/libzmq/archive/refs/tags/v4.3.4.zip && \
|
||||||
|
unzip v4.3.4.zip && \
|
||||||
|
cd libzmq-4.3.4 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
```
|
||||||
|
# cppzmq setup
|
||||||
|
|
||||||
|
```
|
||||||
|
wget https://github.com/zeromq/cppzmq/archive/refs/tags/v4.8.1.zip && \
|
||||||
|
unzip v4.8.1.zip && \
|
||||||
|
cd cppzmq-4.8.1 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake .. && \
|
||||||
|
make -j$(nproc) install
|
||||||
|
```
|
||||||
|
|
||||||
## Building Peerplays
|
## Building Peerplays
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue