Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker: Updated dependencies Cmake 3.13 and CPPZMQ 4.3.0 #4890

Closed
wants to merge 73 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
678d3d7
Update Dockerfile
homdx Sep 20, 2018
f3f5bee
Added features to epee::span<T> :
vtnerd Aug 2, 2018
65ce82f
query backing device
m2049r Aug 16, 2018
925c505
db_lmdb: do not use base for cumulative distribution
moneromooo-monero Sep 12, 2018
4760a28
blockchain: simplify output distribution code
moneromooo-monero Sep 12, 2018
6e42869
Adding expect<T> - a value-or-error implementation
vtnerd Sep 11, 2018
48c6d4d
rpc: add cumulative difficulty in block header data
moneromooo-monero Sep 13, 2018
434a05b
simplewallet: print reason why refresh+password is needed
moneromooo-monero Sep 14, 2018
ccdcb80
mlog: do not display http errors by default
moneromooo-monero Jun 17, 2018
6c69049
rpc: add a "is an update available" flag in get_info
moneromooo-monero Jun 18, 2018
dff8ca7
rct: avoid repeated unnecessary conversions when accummulating
moneromooo-monero Jun 24, 2018
f51addd
update readme fork table
Gingeropolous Sep 14, 2018
f749b96
tests: update test wallet keys file for encrypted keys
moneromooo-monero Sep 15, 2018
407f1ce
unit_tests: sanity check on transaction weight
moneromooo-monero Sep 15, 2018
7903f99
simplewallet: remove obsolete transfer_original command
moneromooo-monero Sep 16, 2018
fab2f93
node_rpc_proxy: return a non empty error string on connection failure
moneromooo-monero Sep 17, 2018
0fd457d
Fixed Keccak implementation on big-endian platforms
AlexAltea Sep 17, 2018
69ab3a2
rpc: allow pruning of json encoded txs
cryptochangements34 Sep 18, 2018
dbe0d11
README: fill in libsodium package name for Arch
phloatingman Dec 30, 2017
7071d0f
README: Compile boost with cxxflags=-fPIC cflags=-fPIC
italocoin-project Mar 25, 2018
0a6f279
wallet: add 'outputs' option for sweep_* commands
rodentrabies May 6, 2018
0ddb209
wallet: implement coin splitting for sweep_* 'outputs' option
rodentrabies May 6, 2018
8927e2b
disable AES on s390x architecture
tmh1999 May 1, 2018
0d73cfe
README: harmonize command formatting inside README.md
Jun 6, 2018
0ee2335
gpg_keys: bump my key validity for two more years
moneromooo-monero Sep 19, 2018
f74413c
simplewallet: fix --generate-from-json setting wrong wallet filename
moneromooo-monero Sep 19, 2018
71539ff
wallet_rpc_server: fix build for windows
moneromooo-monero Sep 21, 2018
e598619
cryptonote tweak v2.2
vtnerd Sep 19, 2018
ed5cc39
README: remove overlooked conflict
moneromooo-monero Sep 22, 2018
b356000
bulletproofs: multiply points by 8 first thing in verification
moneromooo-monero Sep 24, 2018
12bfaff
Replace USB-CCID (smartcard) by USB-HID
cslashm Aug 1, 2018
12f78ed
wallet_rpc_server: fix --run-as-service on Windows
moneromooo-monero Sep 22, 2018
7e00271
Dockerfile: use single build dir
MoroccanMalinois Sep 24, 2018
072eac3
A Travis to monero
TheCharlatan Sep 18, 2018
e8fa92e
Fix Darwin Sodium build
TheCharlatan Sep 22, 2018
2b4dde0
wallet_rpc_server: include account index in incoming_transfers RPC
moneromooo-monero Sep 20, 2018
b393335
blockchain: add stagenet v8 and v9, two weeks before mainnet
moneromooo-monero Sep 24, 2018
368b8c2
wallet2_api: fix for latest code changes
moneromooo-monero Sep 22, 2018
83f005e
device: fix warnings about overridden functions
moneromooo-monero Sep 21, 2018
26c50b0
Add hidapi to depends
TheCharlatan Sep 22, 2018
f19dd1c
tx_pool: fix tx removal at startup keeping references
moneromooo-monero Sep 25, 2018
fdc3cc2
epee: fix invalid memory write reading an array entry
moneromooo-monero Aug 2, 2018
8d123a4
epee: fix stack overflow on crafted input
moneromooo-monero Aug 5, 2018
556fa47
wallet2: fix duplicate output making it to the RPC
moneromooo-monero Sep 19, 2018
301fed2
update readme with v13.0
fluffypony Sep 22, 2018
f400b42
update version to 13.0
fluffypony Sep 22, 2018
9da7dfa
update checkpoints.dat
fluffypony Sep 23, 2018
29cdf5d
add checkpoints for testnet and mainnet
fluffypony Sep 25, 2018
10703b4
Merge pull request #4406
fluffypony Sep 29, 2018
4dedec1
Merge pull request #4407
fluffypony Sep 29, 2018
6e52a2a
Merge pull request #4409
fluffypony Sep 29, 2018
7e312b0
Merge pull request #4417
fluffypony Sep 29, 2018
be40e1b
Merge pull request #4424
fluffypony Sep 29, 2018
fbb595b
Merge pull request #4425
fluffypony Sep 29, 2018
153148b
Merge pull request #4427
fluffypony Sep 29, 2018
d8c9f0f
Merge pull request #4434
fluffypony Sep 29, 2018
e624356
Merge pull request #4439
fluffypony Sep 29, 2018
cec538f
Merge pull request #4443
fluffypony Sep 29, 2018
7ec1bab
Merge pull request #4445
fluffypony Sep 29, 2018
ec237eb
Merge pull request #4446
fluffypony Sep 29, 2018
2e34250
Merge pull request #4448
fluffypony Sep 29, 2018
e7580e7
Merge pull request #4449
fluffypony Sep 29, 2018
cbde713
Merge pull request #4456
fluffypony Sep 29, 2018
9a52eb8
Merge pull request #4457
fluffypony Sep 29, 2018
23fbfa1
Merge pull request #4458
fluffypony Sep 29, 2018
19ab4cf
Merge pull request #4459
fluffypony Sep 29, 2018
5eb9e04
Merge pull request #4461
fluffypony Sep 29, 2018
769e3a1
Merge pull request #4333
fluffypony Sep 29, 2018
4ff6ab9
dns_utils: refresh list of usable DNSSEC servers
moneromooo-monero Sep 28, 2018
81519ea
unit_tests: fix longstanding DNS related unit test
moneromooo-monero Sep 28, 2018
6a42acb
daemon: silence daemon update warnings on testnet
iDunk5400 Sep 29, 2018
9985aef
switch from master to rc
fluffypony Sep 25, 2018
825ff5f
bump version to 0.13.0.1
fluffypony Sep 25, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
sudo: required
dist: trusty
os: linux
language: minimal
cache:
directories:
- contrib/depends/built
- contrib/depends/sdk-sources
- $HOME/.ccache
env:
global:
- MAKEJOBS=-j3
- RUN_TESTS=false
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
- CCACHE_SIZE=100M
- CCACHE_TEMPDIR=/tmp/.ccache-temp
- CCACHE_COMPRESS=1
- CCACHE_DIR=$HOME/.ccache
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
- PYTHON_DEBUG=1
- WINEDEBUG=fixme-all
- DOCKER_PACKAGES="build-essential libtool cmake autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache"
matrix:
# ARM v7
- HOST=arm-linux-gnueabihf PACKAGES="gperf g++-arm-linux-gnueabihf"
# ARM v8
- HOST=aarch64-linux-gnu PACKAGES="gperf g++-aarch64-linux-gnu"
# i686 Linux
- HOST=i686-pc-linux-gnu PACKAGES="gperf cmake g++-multilib bc python3-zmq" RUN_TESTS=true
# Win64
- HOST=x86_64-w64-mingw32 PACKAGES="cmake python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64 bc" RUN_TESTS=true
# x86_64 Linux
- HOST=x86_64-unknown-linux-gnu PACKAGES="gperf cmake python3-zmq protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev" RUN_TESTS=true
# Cross-Mac
- HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python3-setuptools-git" OSX_SDK=10.11

before_install:
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
install:
- env | grep -E '^(CCACHE_|WINEDEBUG|DISPLAY|BOOST_TEST_RANDOM|CONFIG_SHELL)' | tee /tmp/env
- if [[ $HOST = *-mingw32 ]]; then DOCKER_ADMIN="--cap-add SYS_ADMIN"; fi
- DOCKER_ID=$(docker run $DOCKER_ADMIN -idt --mount type=bind,src=$TRAVIS_BUILD_DIR,dst=$TRAVIS_BUILD_DIR --mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR -w $TRAVIS_BUILD_DIR --env-file /tmp/env ubuntu:18.04)
- DOCKER_EXEC="docker exec $DOCKER_ID"
- if [ -n "$DPKG_ADD_ARCH" ]; then $DOCKER_EXEC dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
- travis_retry $DOCKER_EXEC apt-get update
- travis_retry $DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES $DOCKER_PACKAGES
before_script:
- mkdir -p contrib/depends/SDKs contrib/depends/sdk-sources
- if [ -n "$OSX_SDK" -a ! -f contrib/depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o contrib/depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- if [ -n "$OSX_SDK" -a -f contrib/depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C contrib/depends/SDKs -xf contrib/depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- if [[ $HOST = *-mingw32 ]]; then $DOCKER_EXEC bash -c "update-alternatives --set $HOST-g++ \$(which $HOST-g++-posix)"; fi
- if [ -z "$NO_DEPENDS" ]; then $DOCKER_EXEC bash -c "CONFIG_SHELL= make $MAKEJOBS -C contrib/depends HOST=$HOST $DEP_OPTS"; fi
script:
- git submodule init && git submodule update
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
- if [ -z "$NO_DEPENDS" ]; then $DOCKER_EXEC ccache --max-size=$CCACHE_SIZE; fi
- $DOCKER_EXEC bash -c "mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/contrib/depends/$HOST/share/toolchain.cmake .. && make $MAKEJOBS"
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/contrib/depends/$HOST/lib
after_script:
- echo $TRAVIS_COMMIT_RANGE
- echo $TRAVIS_COMMIT_LOG
108 changes: 67 additions & 41 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,10 @@ if(ARCH_ID STREQUAL "powerpc")
set(PPC 1)
endif()

if(ARCH_ID STREQUAL "s390x")
set(S390X 1)
endif()

if(WIN32 OR ARM OR PPC64LE OR PPC64 OR PPC)
set(OPT_FLAGS_RELEASE "-O2")
else()
Expand Down Expand Up @@ -431,7 +435,7 @@ if(STATIC AND NOT IOS)
endif()
endif()

find_package(PCSC)
find_package(HIDAPI)

add_definition_if_library_exists(c memset_s "string.h" HAVE_MEMSET_S)
add_definition_if_library_exists(c explicit_bzero "strings.h" HAVE_EXPLICIT_BZERO)
Expand Down Expand Up @@ -472,14 +476,14 @@ endif()
include_directories(${LIBUNWIND_INCLUDE})
link_directories(${LIBUNWIND_LIBRARY_DIRS})

# Final setup for libpcsc
if (PCSC_FOUND)
message(STATUS "Using PCSC include dir at ${PCSC_INCLUDE_DIR}")
add_definitions(-DHAVE_PCSC)
include_directories(${PCSC_INCLUDE_DIR})
link_directories(${LIBPCSC_LIBRARY_DIRS})
else (PCSC_FOUND)
message(STATUS "Could not find PCSC")
# Final setup for hid
if (HIDAPI_FOUND)
message(STATUS "Using HIDAPI include dir at ${HIDAPI_INCLUDE_DIR}")
add_definitions(-DHAVE_HIDAPI)
include_directories(${HIDAPI_INCLUDE_DIR})
link_directories(${LIBHIDAPI_LIBRARY_DIRS})
else (HIDAPI_FOUND)
message(STATUS "Could not find HIDAPI")
endif()

if(MSVC)
Expand Down Expand Up @@ -525,6 +529,40 @@ else()
endif()
endif()
endif()

option(NO_AES "Explicitly disable AES support" ${NO_AES})

if(NO_AES)
message(STATUS "AES support explicitly disabled")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_AES")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNO_AES")
elseif(NOT ARM AND NOT PPC64LE AND NOT PPC64 AND NOT PPC AND NOT S390X)
message(STATUS "AES support enabled")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
elseif(PPC64LE OR PPC64 OR PPC)
message(STATUS "AES support not available on POWER")
elseif(S390X)
message(STATUS "AES support not available on s390x")
elseif(ARM6)
message(STATUS "AES support not available on ARMv6")
elseif(ARM7)
message(STATUS "AES support not available on ARMv7")
elseif(ARM8)
CHECK_CXX_ACCEPTS_FLAG("-march=${ARCH}+crypto" ARCH_PLUS_CRYPTO)
if(ARCH_PLUS_CRYPTO)
message(STATUS "Crypto extensions enabled for ARMv8")
set(ARCH_FLAG "-march=${ARCH}+crypto")
else()
message(STATUS "Crypto extensions unavailable on your ARMv8 device")
endif()
else()
message(STATUS "AES support disabled")
endif()

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAG}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAG}")

set(WARNINGS "-Wall -Wextra -Wpointer-arith -Wundef -Wvla -Wwrite-strings -Wno-error=extra -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-variable -Wno-error=unused-variable -Wno-error=undef -Wno-error=uninitialized")
if(NOT MINGW)
set(WARNINGS_AS_ERRORS_FLAG "-Werror")
Expand Down Expand Up @@ -635,36 +673,8 @@ else()
message(STATUS "Using C++ security hardening flags: ${CXX_SECURITY_FLAGS}")
message(STATUS "Using linker security hardening flags: ${LD_SECURITY_FLAGS}")

option(NO_AES "Explicitly disable AES support" ${NO_AES})

if(NO_AES)
message(STATUS "AES support explicitly disabled")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_AES")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNO_AES")
elseif(NOT ARM AND NOT PPC64LE AND NOT PPC64 AND NOT PPC)
message(STATUS "AES support enabled")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
elseif(PPC64LE OR PPC64 OR PPC)
message(STATUS "AES support not available on POWER")
elseif(ARM6)
message(STATUS "AES support not available on ARMv6")
elseif(ARM7)
message(STATUS "AES support not available on ARMv7")
elseif(ARM8)
CHECK_CXX_ACCEPTS_FLAG("-march=${ARCH}+crypto" ARCH_PLUS_CRYPTO)
if(ARCH_PLUS_CRYPTO)
message(STATUS "Crypto extensions enabled for ARMv8")
set(ARCH_FLAG "-march=${ARCH}+crypto")
else()
message(STATUS "Crypto extensions unavailable on your ARMv8 device")
endif()
else()
message(STATUS "AES support disabled")
endif()

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG} ${C_SECURITY_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_CPP_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG} ${CXX_SECURITY_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${COVERAGE_FLAGS} ${PIC_FLAG} ${C_SECURITY_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_CPP_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${COVERAGE_FLAGS} ${PIC_FLAG} ${CXX_SECURITY_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LD_SECURITY_FLAGS}")

# With GCC 6.1.1 the compiled binary malfunctions due to aliasing. Until that
Expand Down Expand Up @@ -763,7 +773,7 @@ else()
endif()

if(APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -DGTEST_HAS_TR1_TUPLE=0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default -DGTEST_HAS_TR1_TUPLE=0")
endif()

set(DEBUG_FLAGS "-g3")
Expand Down Expand Up @@ -868,13 +878,29 @@ elseif(DRAGONFLY)
set(EXTRA_LIBRARIES execinfo ${COMPAT})
elseif(CMAKE_SYSTEM_NAME MATCHES "(SunOS|Solaris)")
set(EXTRA_LIBRARIES socket nsl resolv)
elseif(NOT MSVC)
elseif(NOT MSVC AND NOT DEPENDS)
find_library(RT rt)
set(EXTRA_LIBRARIES ${RT})
endif()

list(APPEND EXTRA_LIBRARIES ${CMAKE_DL_LIBS})

if (HIDAPI_FOUND)
if (APPLE)
if(DEPENDS)
list(APPEND EXTRA_LIBRARIES "-framework Foundation -framework IOKit")
else()
find_library(COREFOUNDATION CoreFoundation)
find_library(IOKIT IOKit)
list(APPEND EXTRA_LIBRARIES ${IOKIT})
list(APPEND EXTRA_LIBRARIES ${COREFOUNDATION})
endif()
endif()
if (WIN32)
list(APPEND EXTRA_LIBRARIES setupapi)
endif()
endif()

option(USE_READLINE "Build with GNU readline support." ON)
if(USE_READLINE)
find_package(Readline)
Expand Down
9 changes: 7 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,18 @@ RUN set -ex \
WORKDIR /src
COPY . .

ENV USE_SINGLE_BUILDDIR=1
ARG NPROC
RUN set -ex && \
rm -rf build && \
if [ -z "$NPROC" ] ; \
then make -j$(nproc) release-static ; \
else make -j$NPROC release-static ; \
fi
fi && \
ls -la /src/build && \
ls -la /src/build/Linux && \
ls -la /src/build/master && \
ls -la /src/build/master\release

# runtime stage
FROM ubuntu:16.04
Expand All @@ -129,7 +134,7 @@ RUN set -ex && \
apt-get clean && \
rm -rf /var/lib/apt

COPY --from=builder /src/build/release/bin/* /usr/local/bin/
COPY --from=builder /src/build/Linux/master/release/* /usr/local/bin/

# Contains the blockchain
VOLUME /root/.bitmonero
Expand Down
32 changes: 22 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,9 @@ Dates are provided in the format YYYY-MM-DD.
| 1288616 | 2017-04-15 | v5 | v0.10.3.0 | v0.10.3.1 | Adjusted minimum blocksize and fee algorithm |
| 1400000 | 2017-09-16 | v6 | v0.11.0.0 | v0.11.0.0 | Allow only RingCT transactions, allow only >= ringsize 5 |
| 1546000 | 2018-04-06 | v7 | v0.12.0.0 | v0.12.3.0 | Cryptonight variant 1, ringsize >= 7, sorted inputs
| XXXXXXX | 2018-10-XX | XX | XXXXXXXXX | XXXXXXXXX | X
| 1685555 | 2018-10-18 | v8 | v0.13.0.0 | v0.13.0.0 | max transaction size at half the penalty free block size, bulletproofs enabled, cryptonight variant 2, fixed ringsize [11](https://youtu.be/KOO5S4vxi0o)
| 1686275 | 2018-10-19 | v9 | v0.13.0.0 | v0.13.0.0 | bulletproofs required
| XXXXXXX | 2019-04-XX | XX | XXXXXXXXX | XXXXXXXXX | X

X's indicate that these details have not been determined as of commit date.

Expand Down Expand Up @@ -139,7 +141,7 @@ library archives (`.a`).
| libzmq | 3.0.0 | NO | `libzmq3-dev` | `zeromq` | `cppzmq-devel` | NO | ZeroMQ library |
| OpenPGM | ? | NO | `libpgm-dev` | `libpgm` | `openpgm-devel` | NO | For ZeroMQ |
| libunbound | 1.4.16 | YES | `libunbound-dev` | `unbound` | `unbound-devel` | NO | DNS resolver |
| libsodium | ? | NO | `libsodium-dev` | ? | `libsodium-devel` | NO | cryptography |
| libsodium | ? | NO | `libsodium-dev` | `libsodium` | `libsodium-devel` | NO | cryptography |
| libunwind | any | NO | `libunwind8-dev` | `libunwind` | `libunwind-devel` | YES | Stack traces |
| liblzma | any | NO | `liblzma-dev` | `xz` | `xz-devel` | YES | For libunwind |
| libreadline | 6.3.0 | NO | `libreadline6-dev` | `readline` | `readline-devel` | YES | Input editing |
Expand Down Expand Up @@ -178,7 +180,7 @@ invokes cmake commands as needed.
* Change to the root of the source code directory, change to the most recent release branch, and build:

cd monero
git checkout v0.12.3.0
git checkout v0.13.0.0
make

*Optional*: If your machine has several cores and enough memory, enable
Expand Down Expand Up @@ -240,7 +242,7 @@ Tested on a Raspberry Pi Zero with a clean install of minimal Raspbian Stretch (
```
git clone https://github.com/monero-project/monero.git
cd monero
git checkout tags/v0.12.3.0
git checkout tags/v0.13.0.0
```
* Build:
```
Expand Down Expand Up @@ -282,7 +284,7 @@ If you are using the older Raspbian Jessie image, compiling Monero is a bit more
```
* Wait ~8 hours
```
sudo ./bjam install
sudo ./bjam cxxflags=-fPIC cflags=-fPIC -a install
```
* Wait ~4 hours

Expand Down Expand Up @@ -337,9 +339,9 @@ application.

cd monero

* If you would like a specific [version/tag](https://github.com/monero-project/monero/tags), do a git checkout for that version. eg. 'v0.12.3.0'. If you dont care about the version and just want binaries from master, skip this step:
* If you would like a specific [version/tag](https://github.com/monero-project/monero/tags), do a git checkout for that version. eg. 'v0.13.0.0'. If you dont care about the version and just want binaries from master, skip this step:

git checkout v0.12.3.0
git checkout v0.13.0.0

* If you are on a 64-bit system, run:

Expand Down Expand Up @@ -497,7 +499,7 @@ Packages are available for

* Ubuntu and [snap supported](https://snapcraft.io/docs/core/install) systems, via a community contributed build.

snap install monero --beta
snap install monero --beta

Installing a snap is very quick. Snaps are secure. They are isolated with all of their dependencies. Snaps also auto update when a new version is released.

Expand Down Expand Up @@ -664,9 +666,19 @@ Type `run` to run monerod

### Analysing memory corruption

We use the tool `valgrind` for this.
There are two tools available:

Run with `valgrind /path/to/monerod`. It will be slow.
* ASAN

Configure Monero with the -D SANITIZE=ON cmake flag, eg:

cd build/debug && cmake -D SANITIZE=ON -D CMAKE_BUILD_TYPE=Debug ../..

You can then run the monero tools normally. Performance will typically halve.

* valgrind

Install valgrind and run as `valgrind /path/to/monerod`. It will be very slow.

### LMDB

Expand Down
2 changes: 1 addition & 1 deletion cmake/CheckLinkerFlag.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ macro(CHECK_LINKER_FLAG flag VARIABLE)
endif()
set(${VARIABLE} "" CACHE INTERNAL "Have linker flag ${flag}")
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Determining if the ${flag} linker flag is suppored "
"Determining if the ${flag} linker flag is supported "
"failed with the following output:\n"
"${OUTPUT}\n\n")
endif()
Expand Down
Loading