```
[root@localhost vagrant]# make sync
mkdir -p build/sync
rm -rf build/sync/osquery*
cp -R osquery build/sync
cp -R include/osquery build/sync
cp -R build/centos6/sdk/generated/ build/sync/osquery
cp osquery.thrift build/sync/osquery/extensions
find build/sync -type f -name "CMakeLists.txt" -exec rm -f {} \;
mkdir -p build/sync/code-analysis
cd build/sync/code-analysis && SDK=True cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../../../
CMake Warning at CMakeLists.txt:95 (message):
Requested dependencies may have changed, run: make deps
-- Building for CentOS
-- Found components for DL
-- Found readline library
-- Looking for include files libunwind.h, unwind.h
-- Looking for include files libunwind.h, unwind.h - not found
-- Found RocksDB
-- Thrift version 0.9.1
-- Found library dependency /usr/lib/x86_64-linux-gnu/libboost_thread.a
-- Found library dependency /usr/lib/x86_64-linux-gnu/librt.a
-- Found library dependency /usr/lib/x86_64-linux-gnu/libboost_system.a
-- Found library dependency /usr/lib/x86_64-linux-gnu/libboost_filesystem.a
-- Configuring done
-- Generating done
-- Build files have been written to: /vagrant/build/sync/code-analysis
SDK=True
python tools/codegen/gentargets.py -i build/sync/code-analysis/compile_commands.json > build/sync/osquery/TARGETS
cd build/sync && tar -zcf osquery-sync-1.4.1-29-g472c605.tar.gz osquery
The output file is located at build/sync/osquery-sync-1.4.1-29-g472c605.tar.gz
```
This introduces the notion of a DistributedQueryHandler that uses a "provider" to read/write requests and results to and from the master. The full flow is exercised via integration tests, and unit tests for each component.
It is intended to foster discussion around this client side interface, as well as provide a base to build from.
1. _FORTIFY_SOURCE=1 will cause readlink/recv to hang when using
heap-allocated target buffers.
2. Install boost/rocksdb/thrift using source, similar to CentOS6.5
3. Remove boost::regex, prefer extended std::regex without static
link to boost_regex.