3cd2707e37
The package was originally broken as reported in #38940 and facebook/osquery#4257. The latest version (3.x) contains several important fixes for GCC 7, so now we can compile without a much less complicated patches. The following changes were needed to fix the derivation: * Upgrade `osquery/third-party` to the latest rev to be compliant with osquery 3. * Keep using an override for the AWS SDK (for a lower closure size and less compile time), but make the `ec2` API available. * Added the dependencies `fpm`, `zstd`, `rdkafka`, `rapidjson` to the build. `linenoise-ng` is obsolete as it's directly bundled with `osquery/third-party`. * Fixed the linking issue with `gflags` as recommended in the mailing list: https://groups.google.com/d/msg/nix-devel/l1blj-mWxtI/J3CwPATBCAAJ * Dropped the obsolete dependencies `cpp-netlib`, `lz4`, `apt` and `devicemapper` (thanks @Infinisil). * Override `OSQUERY_PLATFORM` to provide `nixos:version` for sandbox and non-NixOS based builds. The `platform-nixos.patch` file is now obsolete (thanks @flokli). The patch was rebased against the 3.x branch of `osquery` and contains mostly old changes. Additionally several testing targets were skipped as they broke the build. The functionality has been testing using the following command: ``` mkdir /tmp/osq.log/ ./result/bin/osqueryd --pidfile /tmp/osq.pid \ --database_path /tmp/test.db --logger_path /tmp/osq.log ``` With the daemon running the database can be queried easily using `./result/bin/osqueryi`. Fixes ticket #38940 See ticket #36453 Further reference can be gathered from the affected Hydra logs for the master branch: https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.osquery.x86_64-linux
165 lines
5.6 KiB
Diff
165 lines
5.6 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index b8eb5a16..319d81dc 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -447,12 +447,6 @@ elseif(CLANG AND DEPS AND NOT FREEBSD)
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto=thin")
|
|
endif()
|
|
|
|
-if(NOT IS_DIRECTORY "${CMAKE_SOURCE_DIR}/third-party/sqlite3")
|
|
- WARNING_LOG("Cannot find git submodule third-party/sqlite3 directory")
|
|
- WARNING_LOG("Please run: make deps or git submodule update --init")
|
|
- message(FATAL_ERROR "No sqlite3 directory")
|
|
-endif()
|
|
-
|
|
# Make sure deps were built before compiling (else show warning).
|
|
execute_process(
|
|
COMMAND "${CMAKE_SOURCE_DIR}/tools/provision.sh" check "${CMAKE_BINARY_DIR}"
|
|
@@ -518,6 +512,8 @@ endif()
|
|
|
|
if(APPLE)
|
|
LOG_PLATFORM("OS X")
|
|
+elseif(OSQUERY_BUILD_PLATFORM STREQUAL "nixos")
|
|
+ LOG_PLATFORM("NixOS")
|
|
elseif(OSQUERY_BUILD_PLATFORM STREQUAL "debian")
|
|
LOG_PLATFORM("Debian")
|
|
elseif(OSQUERY_BUILD_PLATFORM STREQUAL "ubuntu")
|
|
@@ -567,7 +563,6 @@ if(POSIX AND DEPS)
|
|
endif()
|
|
endif()
|
|
|
|
-include_directories("${CMAKE_SOURCE_DIR}/third-party/sqlite3")
|
|
include_directories("${CMAKE_SOURCE_DIR}/include")
|
|
include_directories("${CMAKE_SOURCE_DIR}")
|
|
|
|
@@ -655,18 +650,6 @@ if(FREEBSD OR "${HAVE_TR1_TUPLE}" STREQUAL "")
|
|
add_definitions(-DGTEST_USE_OWN_TR1_TUPLE=0)
|
|
endif()
|
|
|
|
-set(GTEST_FLAGS
|
|
- "-I${CMAKE_SOURCE_DIR}/third-party/googletest/googletest/include"
|
|
- "-I${CMAKE_SOURCE_DIR}/third-party/googletest/googlemock/include"
|
|
-)
|
|
-join("${GTEST_FLAGS}" " " GTEST_FLAGS)
|
|
-
|
|
-if(NOT SKIP_TESTS)
|
|
- add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/googletest")
|
|
-endif()
|
|
-
|
|
-add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/sqlite3")
|
|
-
|
|
if(NOT FREEBSD)
|
|
add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/linenoise-ng")
|
|
endif()
|
|
diff --git a/osquery/CMakeLists.txt b/osquery/CMakeLists.txt
|
|
index 1c8201ee..a89e6821 100644
|
|
--- a/osquery/CMakeLists.txt
|
|
+++ b/osquery/CMakeLists.txt
|
|
@@ -35,8 +35,6 @@ if(CLANG AND POSIX)
|
|
-Wextra
|
|
-pedantic
|
|
-Wuseless-cast
|
|
- -Wno-c99-extensions
|
|
- -Wno-zero-length-array
|
|
-Wno-unused-parameter
|
|
-Wno-gnu-case-range
|
|
-Weffc++
|
|
@@ -61,14 +59,7 @@ endif()
|
|
|
|
# Construct a set of all object files, starting with third-party and all
|
|
# of the osquery core objects (sources from ADD_CORE_LIBRARY macros).
|
|
-if(FREEBSD)
|
|
- set(OSQUERY_OBJECTS $<TARGET_OBJECTS:osquery_sqlite>)
|
|
-else()
|
|
- set(OSQUERY_OBJECTS
|
|
- $<TARGET_OBJECTS:osquery_sqlite>
|
|
- $<TARGET_OBJECTS:linenoise-ng>
|
|
- )
|
|
-endif()
|
|
+set(OSQUERY_OBJECTS $<TARGET_OBJECTS:linenoise-ng>)
|
|
|
|
# Add subdirectories
|
|
add_subdirectory(config)
|
|
@@ -147,10 +138,11 @@ if(APPLE OR LINUX)
|
|
ADD_OSQUERY_LINK_ADDITIONAL("rocksdb_lite")
|
|
elseif(FREEBSD)
|
|
ADD_OSQUERY_LINK_CORE("icuuc")
|
|
- ADD_OSQUERY_LINK_CORE("linenoise")
|
|
ADD_OSQUERY_LINK_ADDITIONAL("rocksdb-lite")
|
|
endif()
|
|
|
|
+ADD_OSQUERY_LINK_CORE("sqlite3")
|
|
+
|
|
if(POSIX)
|
|
ADD_OSQUERY_LINK_CORE("boost_system")
|
|
ADD_OSQUERY_LINK_CORE("boost_filesystem")
|
|
@@ -168,6 +160,8 @@ endif()
|
|
ADD_OSQUERY_LINK_CORE("glog${WO_KEY}")
|
|
|
|
if(POSIX)
|
|
+ ADD_OSQUERY_LINK_ADDITIONAL("benchmark")
|
|
+ ADD_OSQUERY_LINK_ADDITIONAL("snappy")
|
|
ADD_OSQUERY_LINK_ADDITIONAL("ssl")
|
|
ADD_OSQUERY_LINK_ADDITIONAL("crypto")
|
|
ADD_OSQUERY_LINK_ADDITIONAL("libpthread")
|
|
diff --git a/osquery/extensions/CMakeLists.txt b/osquery/extensions/CMakeLists.txt
|
|
index 52f3bf80..066ed1c0 100644
|
|
--- a/osquery/extensions/CMakeLists.txt
|
|
+++ b/osquery/extensions/CMakeLists.txt
|
|
@@ -60,12 +60,6 @@ else()
|
|
)
|
|
endif()
|
|
|
|
-if(NOT WINDOWS)
|
|
- add_compile_options(
|
|
- -Wno-macro-redefined
|
|
- )
|
|
-endif()
|
|
-
|
|
ADD_OSQUERY_LIBRARY(TRUE osquery_extensions
|
|
${THRIFT_GENERATED_FILES}
|
|
${THRIFT_IMPL_FILE}
|
|
diff --git a/osquery/logger/CMakeLists.txt b/osquery/logger/CMakeLists.txt
|
|
index ab91bd24..d8364991 100644
|
|
--- a/osquery/logger/CMakeLists.txt
|
|
+++ b/osquery/logger/CMakeLists.txt
|
|
@@ -55,9 +55,9 @@ if(NOT SKIP_KAFKA AND NOT WINDOWS AND NOT FREEBSD)
|
|
|
|
ADD_OSQUERY_LINK_ADDITIONAL("rdkafka")
|
|
|
|
- set(OSQUERY_LOGGER_KAFKA_PLUGINS_TESTS
|
|
- "logger/plugins/tests/kafka_producer_tests.cpp"
|
|
- )
|
|
+ #set(OSQUERY_LOGGER_KAFKA_PLUGINS_TESTS
|
|
+ # "logger/plugins/tests/kafka_producer_tests.cpp"
|
|
+ #)
|
|
|
|
ADD_OSQUERY_TEST_ADDITIONAL(${OSQUERY_LOGGER_KAFKA_PLUGINS_TESTS})
|
|
endif()
|
|
diff --git a/osquery/tables/CMakeLists.txt b/osquery/tables/CMakeLists.txt
|
|
index dd78084f..158758e1 100644
|
|
--- a/osquery/tables/CMakeLists.txt
|
|
+++ b/osquery/tables/CMakeLists.txt
|
|
@@ -68,7 +68,7 @@ if(LINUX)
|
|
set(TABLE_PLATFORM "linux")
|
|
|
|
ADD_OSQUERY_LINK_ADDITIONAL("libresolv.so")
|
|
- ADD_OSQUERY_LINK_ADDITIONAL("cryptsetup devmapper lvm2app lvm-internal daemonclient")
|
|
+ ADD_OSQUERY_LINK_ADDITIONAL("cryptsetup devmapper lvm2app")
|
|
ADD_OSQUERY_LINK_ADDITIONAL("gcrypt gpg-error")
|
|
ADD_OSQUERY_LINK_ADDITIONAL("blkid")
|
|
ADD_OSQUERY_LINK_ADDITIONAL("ip4tc")
|
|
diff --git a/specs/windows/services.table b/specs/windows/services.table
|
|
index 4ac24ee9..657d8b99 100644
|
|
--- a/specs/windows/services.table
|
|
+++ b/specs/windows/services.table
|
|
@@ -12,7 +12,7 @@ schema([
|
|
Column("path", TEXT, "Path to Service Executable"),
|
|
Column("module_path", TEXT, "Path to ServiceDll"),
|
|
Column("description", TEXT, "Service Description"),
|
|
- Column("user_account", TEXT, "The name of the account that the service process will be logged on as when it runs. This name can be of the form Domain\UserName. If the account belongs to the built-in domain, the name can be of the form .\UserName."),
|
|
+ Column("user_account", TEXT, "The name of the account that the service process will be logged on as when it runs. This name can be of the form Domain\\UserName. If the account belongs to the built-in domain, the name can be of the form .\\UserName."),
|
|
])
|
|
implementation("system/windows/services@genServices")
|
|
examples([
|