1*1c60b9acSAndroid Build Coastguard Worker## Background 2*1c60b9acSAndroid Build Coastguard Worker 3*1c60b9acSAndroid Build Coastguard Workerlibressl is another fork of Openssl. 4*1c60b9acSAndroid Build Coastguard Worker 5*1c60b9acSAndroid Build Coastguard Worker## Example build for libressl itself 6*1c60b9acSAndroid Build Coastguard Worker 7*1c60b9acSAndroid Build Coastguard WorkerIf you unpack or clone into `/path/to/libressl` and enter that dir... 8*1c60b9acSAndroid Build Coastguard Worker 9*1c60b9acSAndroid Build Coastguard Worker``` 10*1c60b9acSAndroid Build Coastguard Worker$ mkdir build 11*1c60b9acSAndroid Build Coastguard Worker$ cd build 12*1c60b9acSAndroid Build Coastguard Worker$ cmake .. 13*1c60b9acSAndroid Build Coastguard Worker$ make -j8 14*1c60b9acSAndroid Build Coastguard Worker``` 15*1c60b9acSAndroid Build Coastguard Worker 16*1c60b9acSAndroid Build Coastguard Worker## Example build for lws against libressl 17*1c60b9acSAndroid Build Coastguard Worker 18*1c60b9acSAndroid Build Coastguard WorkerYou can just build lws as you would for a specific version of openssl 19*1c60b9acSAndroid Build Coastguard Worker 20*1c60b9acSAndroid Build Coastguard Worker``` 21*1c60b9acSAndroid Build Coastguard Worker$ mkdir build 22*1c60b9acSAndroid Build Coastguard Worker$ cd build 23*1c60b9acSAndroid Build Coastguard Worker$ cmake .. -DLWS_OPENSSL_LIBRARIES='/path/to/libressl/build/tls/libtls.a;/path/to/libressl/build/ssl/libssl.a;/path/to//libressl/build/crypto/libcrypto.a' -DLWS_OPENSSL_INCLUDE_DIRS=/path/to/libressl/include -DLWS_WITH_MINIMAL_EXAMPLES=1 24*1c60b9acSAndroid Build Coastguard Worker$ make -j8 25*1c60b9acSAndroid Build Coastguard Worker``` 26*1c60b9acSAndroid Build Coastguard Worker 27*1c60b9acSAndroid Build Coastguard WorkerLibressl by default will look for a trust bundle in `/usr/local/etc/ssl/cert.pem`, you either have to 28*1c60b9acSAndroid Build Coastguard Workersymlink this to your trust bundle if that doesnt happen to be where it is, or give your app the trusted CA 29*1c60b9acSAndroid Build Coastguard Workerspecifically as is done for MBEDTLS and WOLFSSL in the examples. 30*1c60b9acSAndroid Build Coastguard Worker 31*1c60b9acSAndroid Build Coastguard WorkerIn Fedora, the system trust store can be found at `/etc/pki/tls/cert.pem`, so you can symlink it 32*1c60b9acSAndroid Build Coastguard Worker 33*1c60b9acSAndroid Build Coastguard Worker``` 34*1c60b9acSAndroid Build Coastguard Worker$ sudo mkdir -p /usr/local/etc/ssl 35*1c60b9acSAndroid Build Coastguard Worker$ sudo ln -sf /etc/pki/tls/cert.pem /usr/local/etc/ssl/cert.pem 36*1c60b9acSAndroid Build Coastguard Worker``` 37*1c60b9acSAndroid Build Coastguard Worker 38*1c60b9acSAndroid Build Coastguard Workerafter that you can run examples from the build dir, eg, 39*1c60b9acSAndroid Build Coastguard Worker 40*1c60b9acSAndroid Build Coastguard Worker``` 41*1c60b9acSAndroid Build Coastguard Worker$ ./bin/lws-minimal-http-client 42*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:0781] U: LWS minimal http client [-d<verbosity>] [-l] [--h1] 43*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:0784] N: LWS: 4.1.99-v4.1.0-269-g762ef33fca, loglevel 1031 44*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:0784] N: NET CLI SRV H1 H2 WS IPv6-absent 45*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:0786] N: ++ [wsi|0|pipe] (1) 46*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:0787] N: ++ [vh|0|netlink] (1) 47*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:0802] N: ++ [vh|1|default] (2) 48*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:1850] N: ++ [wsicli|0|GET/h1/warmcat.com] (1) 49*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:2982] N: ++ [mux|0|h2_sid1_(wsicli|0|GET/h1/warmcat.com)] (1) 50*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3271] U: Connected to 46.105.127.147, http response: 200 51*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3335] U: RECEIVE_CLIENT_HTTP_READ: read 4087 52*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3335] U: RECEIVE_CLIENT_HTTP_READ: read 4096 53*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3526] U: RECEIVE_CLIENT_HTTP_READ: read 4087 54*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3526] U: RECEIVE_CLIENT_HTTP_READ: read 4096 55*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3543] U: RECEIVE_CLIENT_HTTP_READ: read 4087 56*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3543] U: RECEIVE_CLIENT_HTTP_READ: read 4096 57*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3545] U: RECEIVE_CLIENT_HTTP_READ: read 3502 58*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3546] U: LWS_CALLBACK_COMPLETED_CLIENT_HTTP 59*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3546] N: -- [wsi|0|pipe] (0) 276.019ms 60*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3547] N: -- [mux|0|h2_sid1_(wsicli|0|GET/h1/warmcat.com)] (0) 56.417ms 61*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3566] N: -- [vh|1|default] (1) 276.384ms 62*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3566] N: -- [wsicli|0|GET/h1/warmcat.com|default|h2|h2] (0) 171.599ms 63*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3567] N: -- [vh|0|netlink] (0) 277.974ms 64*1c60b9acSAndroid Build Coastguard Worker[2021/02/08 20:10:52:3567] U: Completed: OK 65*1c60b9acSAndroid Build Coastguard Worker``` 66*1c60b9acSAndroid Build Coastguard Worker 67