File tree Expand file tree Collapse file tree 3 files changed +23
-1
lines changed Expand file tree Collapse file tree 3 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,15 @@ You need to install the following dependencies:
22
22
* [ Stable Rust] ( https://www.rust-lang.org/tools/install ) .
23
23
* The [ system dependencies] ( https://exonum.com/doc/version/0.11/get-started/install/ ) of Exonum.
24
24
You do _ not_ need to manually fetch and compile Exonum.
25
+ __ Important__ : On Mac OS it is necessary to install RocksDB
26
+ package and to set the environment variable ` ROCKSDB_LIB_DIR ` .
27
+ To install the package via Homebrew:
28
+
29
+ ``` bash
30
+ brew install rocksdb
31
+ export ROCKSDB_LIB_DIR=/usr/local/lib
32
+ ```
33
+
25
34
* For automatic packaging of the Exonum Java app you need [ CMake] ( https://cmake.org/ ) installed in your system.
26
35
Also on Mac you need a [ ` coreutils ` ] ( https://formulae.brew.sh/formula/coreutils ) package installed.
27
36
@@ -36,6 +45,7 @@ $ mvn install
36
45
```
37
46
38
47
#### Building Exonum Java App
48
+
39
49
Run:
40
50
41
51
``` $sh
Original file line number Diff line number Diff line change @@ -57,7 +57,8 @@ the [migration guide](https://github.com/exonum/exonum-java-binding/blob/ejb/v0.
57
57
` CommonTypeAdapterFactory ` . ` BlockTypeAdapterFactory ` is renamed to ` CoreTypeAdapterFactory ` .
58
58
` JsonSerializer#json ` and ` JsonSerializer#builder ` register ` CommonTypeAdapterFactory `
59
59
by default. ` CoreTypeAdapterFactory ` must be registered explicitly if needed. (#971 )
60
-
60
+ - Exonum Java App now uses static linkage for RocksDB on Mac OS. Installed RocksDB
61
+ is no more necessary to run the App. (#1011 )
61
62
62
63
### Fixed
63
64
- The default [ ` Transaction#info ` ] [ tx-info-07 ] implementation causing an error on ` transaction `
Original file line number Diff line number Diff line change @@ -44,6 +44,17 @@ function build-exonum-java-for-platform() {
44
44
}
45
45
46
46
function build-exonum-java-macos() {
47
+ # We use static linkage for RocksDB on Mac because dynamic linking
48
+ # on Mac does not work: the resulting app has a dependency on a _particular_
49
+ # version of the RocksDB library, hence, is incompatible with any updates
50
+ # to the library, even the patch ones. It is believed to be a Cargo issue
51
+ # or RocksDB build configuration issue, see ECR-3324.
52
+ export ROCKSDB_STATIC=1
53
+ # Check if ROCKSDB_LIB_DIR is set
54
+ if [ -z " ${ROCKSDB_LIB_DIR:- } " ]; then
55
+ echo " Please set ROCKSDB_LIB_DIR"
56
+ exit 1
57
+ fi
47
58
build-exonum-java-for-platform " @loader_path" " libjava_bindings.dylib"
48
59
}
49
60
You can’t perform that action at this time.
0 commit comments