Skip to content

Commit a9db850

Browse files
authored
Merge pull request #232 from chakrik73/feature/replace-libxml2
Replace libxml2 with pugixml
2 parents a261f9e + 90931fe commit a9db850

66 files changed

Lines changed: 25686 additions & 274 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.container/install-rocky-dependencies.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ sudo yum install \
2121
rpm-build \
2222
json-glib-devel \
2323
python3 \
24-
libxml2-devel \
2524
glibc-devel.i686 \
2625
gtest-devel \
2726
gmock \

.container/install-ubuntu-dependencies.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ sudo apt-get install -y --no-install-recommends \
2121
libelf-dev \
2222
llvm \
2323
clang \
24-
libxml2 \
25-
libxml2-dev \
2624
libzstd1 \
2725
libgtest-dev \
2826
libc6-dev-i386 \

CMakeLists.txt

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,12 @@ add_compile_options(-Wall -Werror -g -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fsta
9090
#
9191
# support for C++17
9292
#
93-
set(CMAKE_CXX_FLAGS "-std=gnu++17")
93+
set(CMAKE_CXX_FLAGS "-std=gnu++17 -Wno-write-strings")
9494

9595
#
96-
# rely on libxml2 having been installed, for XML configuration and output
96+
# pugixml - vendored lightweight XML library (replaces libxml2)
9797
#
98-
find_package(LibXml2 2.0.0 REQUIRED)
98+
set(PUGIXML_SOURCE_DIR "${CMAKE_SOURCE_DIR}/pugixml")
9999

100100
#
101101
# source directories
@@ -161,7 +161,9 @@ add_executable(sysmon
161161
linuxWideChar.c
162162
linuxHelpers.cpp
163163
networkTracker.cpp
164-
outputxml.c
164+
outputxml.cpp
165+
sysmonevents_defs.c
166+
${PUGIXML_SOURCE_DIR}/pugixml.cpp
165167
installer.c
166168
"${SYSMON_COMMON_SOURCE_DIR}/usage.c"
167169
"${SYSMON_COMMON_SOURCE_DIR}/parsecommandline.c"
@@ -213,7 +215,7 @@ target_include_directories(sysmon PUBLIC
213215
"${PROJECT_BINARY_DIR}"
214216
"/usr/include"
215217
"/usr/local/include"
216-
"${LIBXML2_INCLUDE_DIR}"
218+
"${PUGIXML_SOURCE_DIR}"
217219
"/opt/sysinternalsEBPF/ebpfKern"
218220
)
219221

@@ -370,7 +372,7 @@ set(EBPF_DEPENDS
370372
#
371373
# link sysmon
372374
#
373-
target_link_libraries(sysmon sysinternalsEBPF "${LIBXML2_LIBRARIES}" pthread ${openssl_SOURCE_DIR}/libcrypto.a ${CMAKE_DL_LIBS} )
375+
target_link_libraries(sysmon sysinternalsEBPF pthread ${openssl_SOURCE_DIR}/libcrypto.a ${CMAKE_DL_LIBS} )
374376

375377

376378
#
@@ -379,6 +381,7 @@ target_link_libraries(sysmon sysinternalsEBPF "${LIBXML2_LIBRARIES}" pthread ${o
379381
add_executable(sysmonLogView
380382
sysmonLogView/sysmonLogView.cpp
381383
sysmonLogView/sysmonGetEventName.c
384+
${PUGIXML_SOURCE_DIR}/pugixml.cpp
382385
sysmonmsgop.c
383386
sysmonevents.h
384387
sysmonmsg.h
@@ -390,10 +393,10 @@ target_include_directories(sysmonLogView PUBLIC
390393
"${SYSMON_COMMON_SOURCE_DIR}"
391394
"${PROJECT_BINARY_DIR}"
392395
"/usr/include"
393-
"${LIBXML2_INCLUDE_DIR}"
396+
"${PUGIXML_SOURCE_DIR}"
394397
)
395398

396-
target_link_libraries(sysmonLogView "${LIBXML2_LIBRARIES}")
399+
target_link_libraries(sysmonLogView )
397400

398401

399402
#
@@ -425,7 +428,9 @@ add_executable(sysmonUnitTests
425428
test/linuxRules.cpp
426429
linuxWideChar.c
427430
linuxHelpers.cpp
428-
outputxml.c
431+
outputxml.cpp
432+
sysmonevents_defs.c
433+
${PUGIXML_SOURCE_DIR}/pugixml.cpp
429434
hexdump.c
430435
"${SYSMON_COMMON_SOURCE_DIR}/parsecommandline.c"
431436
"${SYSMON_COMMON_SOURCE_DIR}/xml.cpp"
@@ -439,14 +444,14 @@ add_executable(sysmonUnitTests
439444
"${PROJECT_BINARY_DIR}/yoursleep"
440445
)
441446

442-
target_link_libraries(sysmonUnitTests "${LIBXML2_LIBRARIES}" ${GTEST_LIBRARIES} pthread ${openssl_SOURCE_DIR}/libcrypto.a ${CMAKE_DL_LIBS})
447+
target_link_libraries(sysmonUnitTests ${GTEST_LIBRARIES} pthread ${openssl_SOURCE_DIR}/libcrypto.a ${CMAKE_DL_LIBS})
443448
target_include_directories(sysmonUnitTests PUBLIC
444449
"${CMAKE_SOURCE_DIR}"
445450
"${SYSMON_COMMON_SOURCE_DIR}"
446451
"${SYSMON_TESTS_SOURCE_DIR}"
447452
"${PROJECT_BINARY_DIR}"
448453
"/usr/include"
449-
"${LIBXML2_INCLUDE_DIR}"
454+
"${PUGIXML_SOURCE_DIR}"
450455
"${GTEST_INCLUDE_DIRS}"
451456
)
452457

linuxVersion.h.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
//
3333
#define VER_COMPANY "Sysinternals - www.sysinternals.com"
3434

35-
#define VER_COPYRIGHT "By Mark Russinovich, Thomas Garnier and Kevin Sheldrake\nCopyright (C) 2014-2025 Microsoft Corporation\nLicensed under MIT/GPLv2\nUsing libxml2. libxml2 is Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved."
35+
#define VER_COPYRIGHT "By Mark Russinovich, Thomas Garnier and Kevin Sheldrake\nCopyright (C) 2014-2025 Microsoft Corporation\nLicensed under MIT/GPLv2\nUsing pugixml. pugixml is Copyright (C) 2006-2024 Arseny Kapoulkine. MIT License."
3636

outputxml.c

Lines changed: 0 additions & 165 deletions
This file was deleted.

0 commit comments

Comments
 (0)