Generate Wazuh symbols for macOS, linux and windows separate from the binary file
Branch: enhancement/9913-generate-debug-symbols-epic
Description
This epic aims to generate the debugging symbols files for macOS, Linux, and Windows, having enough information to solve the issues quickly, without having to reproduce issues with a different version than the one that goes out on the production builds. Apart from this, the epic also aims to be able to carry out an active search for problems in the component that cause crashes and memory problems. This epic tries to help improve the product at a faster rate!
Goals
- Always generate debug information.
- Upload debug symbols on each CI compilation.
- Enable dump generation on installer process by default -> with references on documentation (how to disable the dump generation) quick reference.
Functional requirements
-
Debug Symbol Generation:
- Debug symbols must be generated for all project components during the build.
- Debug symbols should include information about functions, variables, and source code lines.
- Debug symbols must be generated in a format compatible with the target platform (e.g., DWARF for macOS and Linux, PDB for Windows).
-
Automatic Upload:
- Debug symbols generated during the CI/CD pipeline must be automatically uploaded to a centralized location.
- Uploaded symbols should be organized by build version and platform for easy retrieval.
-
Installer Dump Generation:
- The installer process must include a feature to generate crash dumps by default.
- Documentation should clearly explain how to disable dump generation for advanced users.
-
Crashpad Integration (Second Iteration):
- Integrate Crashpad to capture crash reports and generate minidump files.
- Configure Crashpad to report crashes to external services.
-
Integrate Crashpad for Advanced Crash Reporting: In the second phase, integrate Crashpad to enable advanced crash reporting and integration with services.
Non-functional requirements
-
Performance:
- Debug symbol generation and uploading should not significantly impact execution, build, or deployment times.
-
Reliability:
- Debug symbols must be generated consistently and accurately across different platforms.
- Uploaded symbols should be securely stored and easily accessible for debugging purposes.
Implementatin restrictions
-
Platform Compatibility:
- Ensure that the chosen debugging symbol format is compatible with target platforms (macOS, Linux, Windows).
-
Documentation:
- Properly document enabling and disabling dump generation for users and contributors.
Plan
Phase 1
-
Stage 1 - Debug Symbol Generation:
- [x] #21731
- [x] #21732
- [x] #21733
- [x] #21734
- [x] #21735
-
Stage 2 - Automatic Upload:
- [x] #21736
-
Stage 3 - Installer Integration:
-
Stage 4 - Testing and Validation:
- [ ] #21739
Phase 2
-
Stage 1 - Investigate about report crashes services:
- [ ] Investigate and evaluate a service that provides crash reports/workflows.
-
Stage 2 - Crashpad Integration:
- [ ] Integrate Crashpad into the project to capture crash reports.
- [ ] Configure Crashpad to report crashes to the chosen service.
- [ ] Exploratory test to validate crash reporting functionality.
Approval
DRI Name: @Dwordcito Objective: Generate debug symbols
ETA delayed because issue sub tasks have not been completed
ETA delayed because issue sub tasks have not been completed, some blocked by other issues. ETA was settled to may the 8th based on Adapt agent package generation workflows with VPN and allocator module
Delayed due last package upload mechanism changes.
Analysis
There are a few points to consider regarding the issue of symbol generation:
- Lack of macOS Testing: Currently, there are no tests to confirm that the implementation is functioning correctly on macOS. This needs to be addressed to ensure cross-platform compatibility.
- Obsolete Branch: The branch in question was not merged previously because it had fallen significantly behind the main branch. There were many commits ahead in the main branch due to ongoing changes in the packaging.
- Integration with New Packaging Mode: All the work related to this issue needs to be incorporated into the new packaging mode to maintain consistency and take advantage of recent updates.
First Step:
- Creating a New Branch for Integration and Testing: We need to create a new branch based on version 4.10.0. All the previous work should be carried over to this new branch. We then need to test to determine what is functioning and what is not. Finally, the existing code should be adapted to fit the new packaging model.
Update
- Started local migration to 4.10.0
- Resolving multiple conflicts
Update
- Basic research about the issue, goals and changes.
- Unsuccessful attempt at overcoming and resolving local conflicts.
- Migrated to 4.10 with single change commit (with co-authors).
Update
- Attempted to cherry-pick from the changes/upload-checksum-and-debug branch, but encountered numerous conflicts due to repeated commits and unresolved issues.
- Created a new branch with the same name (4.10.0) and incorporated the changes from changes/upload-checksum-and-debug.
- Conducting research on testing to ensure comprehensive validation once both development branches are stabilized.
Update
after a call with @jnasselle where he clarified the situation and bringing the centos docker fixes to generate the packages, I have generated the RPM for centos 6 > and tested on a centos 7. The tests were successful, gdb finds the symbols of the binaries and libraries. The results marked with :yellow_circle: , are pending discussion, as the symbols are not available in the installation of the symbols package.
Generate of packeages:
git cherry-pick 61d61e20505560b85d5b61a15f44151b6681e1eb
./generate_package.sh -b enhancement/9913-generate-debug-symbols-epic -t manager -d --system rpm
./generate_package.sh -b enhancement/9913-generate-debug-symbols-epic -t agent -d --system rpm
Results
| BIN \ Package | RPM - Agent | RPM - Manager |
|---|---|---|
| agent-auth | :green_circle: | ------- |
| clear_stats | ------- | :green_circle: |
| manage_agents | :green_circle: | :green_circle: |
| verify-agent-conf | ------- | :green_circle: |
| wazuh-agentd | :green_circle: | ------- |
| wazuh-agentlessd | :green_circle: | |
| wazuh-analysisd | ------- | :green_circle: |
| wazuh-authd | ------- | :green_circle: |
| wazuh-csyslogd | ------- | :green_circle: |
| wazuh-db | ------- | :green_circle: |
| wazuh-dbd | ------- | :green_circle: |
| wazuh-execd | :green_circle: | :green_circle: |
| wazuh-integratord | ------- | :green_circle: |
| wazuh-keystore | ------- | :green_circle: |
| wazuh-logcollector | :green_circle: | :green_circle: |
| wazuh-logtest-legacy | ------- | :green_circle: |
| wazuh-maild | ------- | :green_circle: |
| wazuh-modulesd | :green_circle: | :green_circle: |
| wazuh-regex | ------- | :green_circle: |
| wazuh-remoted | ------- | :green_circle: |
| wazuh-reportd | ------- | :green_circle: |
| wazuh-syscheckd | :green_circle: | :green_circle: |
| libcontent_manager.so | ------- | :green_circle: |
| libdbsync.so | :green_circle: | :green_circle: |
| libfimdb.so | :green_circle: | :green_circle: |
| libgcc_s.so.1 | :yellow_circle: | :yellow_circle: |
| libindexer_connector.so | ------- | :green_circle: |
| libjemalloc.so.2 | ------- | :yellow_circle: |
| libpython3.10.so.1.0 | ------- | :green_circle: |
| librocksdb.so.8 | ------- | :yellow_circle: |
| librouter.so | ------- | :green_circle: |
| librsync.so | :green_circle: | :green_circle: |
| libstdc++.so.6 | :yellow_circle: | :yellow_circle: |
| libsyscollector.so | :green_circle: | :green_circle: |
| libsysinfo.so | :green_circle: | :green_circle: |
| libvulnerability_scanner.so | ------- | :green_circle: |
| libwazuhext.so | :green_circle: | :green_circle: |
| libwazuhshared.so | :green_circle: | :green_circle: |
libstdc++.so.6, librocksdb.so.8, libpython3.10.so.1.0, libjemalloc.so.2, libgcc_s.so.1 they are not necessary, they are from external third parties.
Update:
Test manager in Ubuntu22
Results:
| BIN \ Package | DEB - Manager |
|---|---|
| clear_stats | :green_circle: |
| manage_agents | :green_circle: |
| verify-agent-conf | :green_circle: |
| wazuh-agentlessd | :green_circle: |
| wazuh-analysisd | :green_circle: |
| wazuh-authd | :green_circle: |
| wazuh-csyslogd | :green_circle: |
| wazuh-db | :green_circle: |
| wazuh-dbd | :green_circle: |
| wazuh-execd | :green_circle: |
| wazuh-integratord | :green_circle: |
| wazuh-keystore | :green_circle: |
| wazuh-logcollector | :green_circle: |
| wazuh-logtest-legacy | :green_circle: |
| wazuh-maild | :green_circle: |
| wazuh-modulesd | :green_circle: |
| wazuh-regex | :green_circle: |
| wazuh-remoted | :green_circle: |
| wazuh-reportd | :green_circle: |
| wazuh-syscheckd | :green_circle: |
| libcontent_manager.so | :green_circle: |
| libdbsync.so | :green_circle: |
| libfimdb.so | :green_circle: |
| libindexer_connector.so | :green_circle: |
| libpython3.10.so.1.0 | :green_circle: |
| librouter.so | :green_circle: |
| librsync.so | :green_circle: |
| libsyscollector.so | :green_circle: |
| libsysinfo.so | :green_circle: |
| libvulnerability_scanner.so | :green_circle: |
| libwazuhext.so | :green_circle: |
| libwazuhshared.so | :green_circle: |
Update
:yellow_circle: Windows
The development environment is set up with a Windows 2019. The MSI is builded and the symbols are extracted correctly. I have done a test by modifying the agent-auth.exe to force a crash with a testCrash() function and it can see that the coredump was generated correctly.
To this test is added the exploratory test done here, in the wazuh-agent binary.
On the other hand, the list of pb2 is as follows:
agent-auth.pdb
dbsync.pdb
libfimdb.pdb
libwazuhext.pdb
libwazuhshared.pdb
libwinpthread-1.pdb
manage_agents.pdb
netsh.pdb
os_win32ui.pdb
restart-wazuh.pdb
route-null.pdb
rsync.pdb
setup-iis.pdb
setup-syscheck.pdb
setup-windows.pdb
syscollector.pdb
sysinfo.pdb
wazuh-agent-eventchannel.pdb
wazuh-agent.pdb
This list is dynamic, and is generated with the ExtractDebugSymbols function of the generate_wazuh_msi.ps1 file and includes this logic:
https://github.com/wazuh/wazuh/blob/8c27b186f0613b2c61dbe7c8e39e40b84486befb/packages/windows/generate_wazuh_msi.ps1#L103-L116
As an advantage, this makes it unnecessary to modify the script when adding new binaries, as for example for Active Response, but generates pdb which are not necessary (the space it occupies is negligible).
:warning::question: We will consult with @Dwordcito to see if this is the desired behavior.
:red_circle: Centos 5
Centos 5 packages are a challenge. Currently it is not possible to generate them, there are errors in the generation of the same with the debug symbols. On the other hand there is no evidence that this development has been done or tested.
:red_circle: Deb Agent
There is definitely a problem with the generation of deb packages for the agent. A gdb analysis showed that the symbols are included in the binaries. It is possible to parse them without installing the symbols:
╰─# apt list --installed | grep wazuh
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
wazuh-agent/now 4.10.0-0 amd64 [installed,local]
╰─# echo "set pagination off \n info functions w_*" | gdb /var/ossec/bin/wazuh-logcollector | head -n50
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.2) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /var/ossec/bin/wazuh-logcollector... ## <<< Here should be the path to symbols and not the binary
(gdb) (gdb) All functions matching regular expression "w_*":
File ./headers/../external/curl/include/curl/typecheck-gcc.h:
178: static void _curl_easy_setopt_err_write_callback(void);
File addagent/validate.c:
39: int OS_AddNewAgent(keystore *, const char *, const char *, const char *, const char *);
File config/authd-config.c:
325: int w_read_force_config(XML_NODE, authd_config_t *);
401: static void w_authd_parse_agents(XML_NODE, authd_config_t *);
File config/localfile-config.c:
1172: _Bool init_w_journal_log_config_t(w_journal_log_config_t **);
1156: w_exp_type_t w_check_regex_type(xml_node *, const char *);
870: void w_clean_logreader(logreader *);
977: w_multiline_match_type_t w_get_attr_match(xml_node *);
1002: w_multiline_replace_type_t w_get_attr_replace(xml_node *);
1029: unsigned int w_get_attr_timeout(xml_node *);
1316: _Bool w_journal_add_filter_to_list(w_journal_filters_list_t *, w_journal_filter_t *);
1287: int w_journal_filter_add_condition(w_journal_filter_t **, const char *, char *, _Bool);
1271: void w_journal_filter_free(w_journal_filter_t *);
1397: cJSON *w_journal_filter_list_as_json(w_journal_filters_list_t);
1421: void w_journal_filters_list_free(w_journal_filters_list_t);
1181: void w_journal_log_config_free(w_journal_log_config_t **);
1433: _Bool w_logreader_journald_merge(logreader **, size_t);
1074: void w_macos_log_config_free(w_macos_log_config_t **);
1091: w_multiline_config_t *w_multiline_log_config_clone(w_multiline_config_t *);
1061: void w_multiline_log_config_free(w_multiline_config_t **);
1117: static int w_logcollector_get_macos_log_type(const char *);
File config/remote-config.c:
313: static int w_remoted_get_net_protocol(const char *);
351: static void w_remoted_parse_agents(XML_NODE, remoted *);
It can also be presumed that the symbols were not extracted. The symbol package has a size of 5kb for debian, while the agent doubles the RPM size for the agent.
╰─# la -lah ./packages/output/old/*.deb
-rw-r--r-- 1 root root 5.2K Jul 16 23:01 ./packages/output/old/wazuh-agent-dbg_4.10.0-0_amd64_71c4581.deb
-rw-r--r-- 1 root root 27M Jul 16 23:01 ./packages/output/old/wazuh-agent_4.10.0-0_amd64_71c4581.deb
-rw-r--r-- 1 root root 22M Jul 16 20:04 ./packages/output/old/wazuh-manager-dbg_4.10.0-0_amd64_71c4581.deb
-rw-r--r-- 1 root root 306M Jul 16 20:04 ./packages/output/old/wazuh-manager_4.10.0-0_amd64_71c4581.deb
╰─# la -lah ./packages/output/old/*.rpm
-rw-r--r-- 1 root root 15M Jul 16 18:39 ./packages/output/old/wazuh-agent-debuginfo_4.10.0-0_x86_64_71c4581.rpm
-rw-r--r-- 1 root root 11M Jul 16 18:39 ./packages/output/old/wazuh-agent_4.10.0-0_x86_64_71c4581.rpm
-rw-r--r-- 1 root root 33M Jul 16 17:58 ./packages/output/old/wazuh-manager-debuginfo_4.10.0-0_x86_64_71c4581.rpm
-rw-r--r-- 1 root root 288M Jul 16 18:02 ./packages/output/old/wazuh-manager_4.10.0-0_x86_64_71c4581.rpm
ETA cycles reset, because new team takes this issue.
🟢 Deb Manager
Based on the findings of agent deb, the manager has been reanalyzed.
The packages are generated correctly. When uninstalling the debug package, only non-Wazuh functions are listed.
# echo "info functions w_*" | gdb /var/ossec/bin/wazuh-logcollector:
GNU gdb (Ubuntu 14.0.50.20230907-0ubuntu1) 14.0.50.20230907-git
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /var/ossec/bin/wazuh-logcollector...
(No debugging symbols found in /var/ossec/bin/wazuh-logcollector)
(gdb) All functions matching regular expression "w_*":
Non-debugging symbols:
0x00000000004067b0 sem_wait@plt
0x0000000000406af0 EVP_CIPHER_CTX_new@plt
0x0000000000406ca0 pthread_rwlock_destroy@plt
0x0000000000406cf0 pthread_cond_timedwait@plt
0x0000000000406ee0 gzwrite@plt
0x0000000000407010 SSL_CTX_new@plt
0x0000000000407300 BIO_new_socket@plt
0x0000000000407410 pthread_rwlock_init@plt
0x00000000004074b0 waitpid@plt
0x0000000000407620 SSL_new@plt
0x0000000000407640 tolower@plt
0x0000000000407650 SSL_write@plt
0x0000000000407660 getcwd@plt
0x0000000000407710 pthread_rwlock_rdlock@plt
0x0000000000407720 chown@plt
0x0000000000407750 pthread_cond_wait@plt
0x00000000004077f0 getpwnam_r@plt
0x0000000000407880 pthread_rwlock_wrlock@plt
0x0000000000407900 inotify_add_watch@plt
0x0000000000407a50 EVP_MD_CTX_new@plt
0x0000000000407aa0 fwrite@plt
0x0000000000407ab0 pthread_rwlock_unlock@plt
0x0000000000407b00 getpwuid_r@plt
Update
RPM
After a more exaustive analysis (with the help of @jnasselle) on the script the following problems have been found:
- It doesn't build RPMs for CentOS 5. Neither with debug nor without debug.
- The scpect of the RPMs forces the _debugenabled=yes variable that all packages take the path to build without optimizations, it seems that this was done to not correct other problems that arise from not forcing the variable.
Work is currently underway to fix these problems, although fixing these problems is not trivial.
In a meeting with @Dwordcito, it has been decided that:
- It should be compiled with the optimizations and symbols by defaul.
- It should be possible to compile without the optimizations.
- It is desired that centos 5 can have both packages, but that if possible, the package should be generated with optimizations and without symbols.
Update
The files containt the output of the following scripts, before and after installing the debug packeage.
Manager
#!/bin/bash
# Output file
OUTPUT_FILE="manager_result.txt"
# Start by writing system information
echo "os-release:" > "$OUTPUT_FILE"
cat /etc/os-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo "lsb-release:" >> "$OUTPUT_FILE"
cat /etc/lsb-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo Wazuh version: >> "$OUTPUT_FILE"
/var/ossec/bin/wazuh-control info >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
# Commands to run in gdb
GDB_COMMANDS="set pagination off \n info functions w_*"
# List of binaries and libraries to process
BINARIES_AND_LIBS=(
/var/ossec/bin/clear_stats
/var/ossec/bin/manage_agents
/var/ossec/bin/verify-agent-conf
/var/ossec/bin/wazuh-agentlessd
/var/ossec/bin/wazuh-analysisd
/var/ossec/bin/wazuh-authd
/var/ossec/bin/wazuh-csyslogd
/var/ossec/bin/wazuh-db
/var/ossec/bin/wazuh-dbd
/var/ossec/bin/wazuh-execd
/var/ossec/bin/wazuh-integratord
/var/ossec/bin/wazuh-keystore
/var/ossec/bin/wazuh-logcollector
/var/ossec/bin/wazuh-logtest-legacy
/var/ossec/bin/wazuh-maild
/var/ossec/bin/wazuh-modulesd
/var/ossec/bin/wazuh-regex
/var/ossec/bin/wazuh-remoted
/var/ossec/bin/wazuh-reportd
/var/ossec/bin/wazuh-syscheckd
/var/ossec/lib/libcontent_manager.so
/var/ossec/lib/libdbsync.so
/var/ossec/lib/libfimdb.so
/var/ossec/lib/libindexer_connector.so
/var/ossec/lib/librouter.so
/var/ossec/lib/librsync.so
/var/ossec/lib/libsyscollector.so
/var/ossec/lib/libsysinfo.so
/var/ossec/lib/libvulnerability_scanner.so
/var/ossec/lib/libwazuhext.so
/var/ossec/lib/libwazuhshared.so
)
# Process each binary and library with gdb
for bin in "${BINARIES_AND_LIBS[@]}"; do
echo "Processing $bin with gdb..."
echo "${bin}: " >> "$OUTPUT_FILE"
echo -e "$GDB_COMMANDS" | gdb "$bin" | head -n30 >> "$OUTPUT_FILE"
echo -e "-------------------------------------------------------------------\n\n" >> "$OUTPUT_FILE"
done
echo "GDB processing complete. Results saved to $OUTPUT_FILE."
Agent
#!/bin/bash
# Output file
OUTPUT_FILE="result.txt"
# Start by writing system information
echo "os-release:" > "$OUTPUT_FILE"
cat /etc/os-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo "lsb-release:" >> "$OUTPUT_FILE"
cat /etc/lsb-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo Wazuh version: >> "$OUTPUT_FILE"
/var/ossec/bin/wazuh-control info >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
# Commands to run in gdb
GDB_COMMANDS="set pagination off \n info functions w_*"
# List of binaries and libraries to process
BINARIES_AND_LIBS=(
/var/ossec/bin/agent-auth
/var/ossec/bin/manage_agents
/var/ossec/bin/wazuh-agentd
/var/ossec/bin/wazuh-execd
/var/ossec/bin/wazuh-logcollector
/var/ossec/bin/wazuh-modulesd
/var/ossec/bin/wazuh-syscheckd
/var/ossec/lib/libdbsync.so
/var/ossec/lib/libfimdb.so
/var/ossec/lib/librsync.so
/var/ossec/lib/libsyscollector.so
/var/ossec/lib/libsysinfo.so
/var/ossec/lib/libwazuhext.so
/var/ossec/lib/libwazuhshared.so
)
# Process each binary and library with gdb
for bin in "${BINARIES_AND_LIBS[@]}"; do
echo "Processing $bin with gdb..."
echo "${bin}: " >> "$OUTPUT_FILE"
echo -e "$GDB_COMMANDS" | gdb "$bin" | head -n30 >> "$OUTPUT_FILE"
echo -e "-------------------------------------------------------------------\n\n" >> "$OUTPUT_FILE"
done
echo "GDB processing complete. Results saved to $OUTPUT_FILE."
:green_circle: RPM Centos 7
It is marked with :green_circle: when the symbol separation was successful and they are in the debug package.
Debug build
| BIN \ Package | RPM - Agent | RPM - Manager |
|---|---|---|
| agent-auth | :green_circle: | ------- |
| clear_stats | ------- | :green_circle: |
| manage_agents | :green_circle: | :green_circle: |
| verify-agent-conf | ------- | :green_circle: |
| wazuh-agentd | :green_circle: | ------- |
| wazuh-agentlessd | :green_circle: | |
| wazuh-analysisd | ------- | :green_circle: |
| wazuh-authd | ------- | :green_circle: |
| wazuh-csyslogd | ------- | :green_circle: |
| wazuh-db | ------- | :green_circle: |
| wazuh-dbd | ------- | :green_circle: |
| wazuh-execd | :green_circle: | :green_circle: |
| wazuh-integratord | ------- | :green_circle: |
| wazuh-keystore | ------- | :green_circle: |
| wazuh-logcollector | :green_circle: | :green_circle: |
| wazuh-logtest-legacy | ------- | :green_circle: |
| wazuh-maild | ------- | :green_circle: |
| wazuh-modulesd | :green_circle: | :green_circle: |
| wazuh-regex | ------- | :green_circle: |
| wazuh-remoted | ------- | :green_circle: |
| wazuh-reportd | ------- | :green_circle: |
| wazuh-syscheckd | :green_circle: | :green_circle: |
| libcontent_manager.so | ------- | :green_circle: |
| libdbsync.so | :green_circle: | :green_circle: |
| libfimdb.so | :green_circle: | :green_circle: |
| libindexer_connector.so | ------- | :green_circle: |
| librouter.so | ------- | :green_circle: |
| librsync.so | :green_circle: | :green_circle: |
| libsyscollector.so | :green_circle: | :green_circle: |
| libsysinfo.so | :green_circle: | :green_circle: |
| libvulnerability_scanner.so | ------- | :green_circle: |
| libwazuhext.so | :green_circle: | :green_circle: |
| libwazuhshared.so | :green_circle: | :green_circle: |
Release build
| BIN \ Package | RPM - Agent | RPM - Manager |
|---|---|---|
| agent-auth | :green_circle: | ------- |
| clear_stats | ------- | :green_circle: |
| manage_agents | :green_circle: | :green_circle: |
| verify-agent-conf | ------- | :green_circle: |
| wazuh-agentd | :green_circle: | ------- |
| wazuh-agentlessd | :green_circle: | |
| wazuh-analysisd | ------- | :green_circle: |
| wazuh-authd | ------- | :green_circle: |
| wazuh-csyslogd | ------- | :green_circle: |
| wazuh-db | ------- | :green_circle: |
| wazuh-dbd | ------- | :green_circle: |
| wazuh-execd | :green_circle: | :green_circle: |
| wazuh-integratord | ------- | :green_circle: |
| wazuh-keystore | ------- | :green_circle: |
| wazuh-logcollector | :green_circle: | :green_circle: |
| wazuh-logtest-legacy | ------- | :green_circle: |
| wazuh-maild | ------- | :green_circle: |
| wazuh-modulesd | :green_circle: | :green_circle: |
| wazuh-regex | ------- | :green_circle: |
| wazuh-remoted | ------- | :green_circle: |
| wazuh-reportd | ------- | :green_circle: |
| wazuh-syscheckd | :green_circle: | :green_circle: |
| libcontent_manager.so | ------- | :green_circle: |
| libdbsync.so | :green_circle: | :green_circle: |
| libfimdb.so | :green_circle: | :green_circle: |
| libindexer_connector.so | ------- | :green_circle: |
| librouter.so | ------- | :green_circle: |
| librsync.so | :green_circle: | :green_circle: |
| libsyscollector.so | :green_circle: | :green_circle: |
| libsysinfo.so | :green_circle: | :green_circle: |
| libvulnerability_scanner.so | ------- | :green_circle: |
| libwazuhext.so | :green_circle: | :green_circle: |
| libwazuhshared.so | :green_circle: | :green_circle: |
Centos 5 (Only agent)
In centos 5 there is no separation of packages, the release package does not have symbols and the debug package does.
Release build
In the case of release build it is marked :green_circle: when the packages do not have symbols.
| BIN \ Package | RPM - Agent |
|---|---|
| agent-auth | :green_circle: |
| manage_agents | :green_circle: |
| wazuh-agentd | :green_circle: |
| wazuh-execd | :green_circle: |
| wazuh-logcollector | :green_circle: |
| wazuh-modulesd | :green_circle: |
| wazuh-syscheckd | :green_circle: |
| libdbsync.so | :green_circle: |
| libfimdb.so | :green_circle: |
| librsync.so | :green_circle: |
| libsyscollector.so | :green_circle: |
| libsysinfo.so | :green_circle: |
| libwazuhext.so | :green_circle: |
| libwazuhshared.so | :green_circle: |
Debug build
In the case of debug build it is marked :green_circle: when the packages have symbols in binaries and libraries.
| BIN \ Package | RPM - Agent |
|---|---|
| agent-auth | :green_circle: |
| manage_agents | :green_circle: |
| wazuh-agentd | :green_circle: |
| wazuh-execd | :green_circle: |
| wazuh-logcollector | :green_circle: |
| wazuh-modulesd | :green_circle: |
| wazuh-syscheckd | :green_circle: |
| libdbsync.so | :green_circle: |
| libfimdb.so | :green_circle: |
| librsync.so | :green_circle: |
| libsyscollector.so | :green_circle: |
| libsysinfo.so | :green_circle: |
| libwazuhext.so | :red_circle: |
| libwazuhshared.so | :green_circle: |
The RPM package for centos 5, compiled as debug, seems to be missing the libwazuhext.so symbols, this is still under investigation, but it is the only problem that remains to be solved in RPM.
RPM Centos 5
I have verified the compilation process of the master branch on CentOS 5 using specific options not documented in the installation guide but necessary for successful compilation:
make deps TARGET=agent
make -j2 TARGET=agent USE_AUDIT=no USE_EXEC_ENVIRON=no DEBUG=yes
This ensures that the library compiles without debug symbols, confirming that the issue with RPM builds is due to compilation:
[root@204-C5 src]# gdb ./libwazuhext.so
GNU gdb (GDB) CentOS (7.0.1-45.el5.centos)
...
Reading symbols from /root/wazuh-master/src/libwazuhext.so...(no debugging symbols found)...done.
CentOS 5 Specific Build Adjustments
In CentOS 5 builds, the libarchive is not included, which is reflected in the conditional compilation statements:
ifeq ($(CHECK_CENTOS5),YES)
EXTERNAL_LIBS += $(PROCPS_LIB)
else
EXTERNAL_LIBS += $(PROCPS_LIB) $(LIBALPM_LIB) $(LIBARCHIVE_LIB)
endif
This leads to a minimized symbol set in libwazuhext.so specific to CentOS 5, differing from the builds on more recent systems where libarchive symbols are included.
Symbol Output for Non-CentOS 5 Agent
Ongoing Investigations
I am currently examining the DEB packaging process to identify all issues related to debug symbols in the Debian packages.
Update
- Reviewed work completed to date.
- Analyzed changes for symbol generation.
- Tested the generation of .deb packages.
- Successfully tested symbols on .deb packages.
Libraries and binaries
/var/ossec/bin/clear_stats
/var/ossec/bin/manage_agents
/var/ossec/bin/verify-agent-conf
/var/ossec/bin/wazuh-agentlessd
/var/ossec/bin/wazuh-analysisd
/var/ossec/bin/wazuh-authd
/var/ossec/bin/wazuh-csyslogd
/var/ossec/bin/wazuh-db
/var/ossec/bin/wazuh-dbd
/var/ossec/bin/wazuh-execd
/var/ossec/bin/wazuh-integratord
/var/ossec/bin/wazuh-keystore
/var/ossec/bin/wazuh-logcollector
/var/ossec/bin/wazuh-logtest-legacy
/var/ossec/bin/wazuh-maild
/var/ossec/bin/wazuh-modulesd
/var/ossec/bin/wazuh-regex
/var/ossec/bin/wazuh-remoted
/var/ossec/bin/wazuh-reportd
/var/ossec/bin/wazuh-syscheckd
/var/ossec/lib/libcontent_manager.so
/var/ossec/lib/libdbsync.so
/var/ossec/lib/libfimdb.so
/var/ossec/lib/libindexer_connector.so
/var/ossec/lib/librouter.so
/var/ossec/lib/librsync.so
/var/ossec/lib/libsyscollector.so
/var/ossec/lib/libsysinfo.so
/var/ossec/lib/libvulnerability_scanner.so
/var/ossec/lib/libwazuhext.so
/var/ossec/lib/libwazuhshared.so
Test
Deb Manager 🟢
| BIN \ Package | Manager |
|---|---|
| agent-auth | ------- |
| clear_stats | :green_circle: |
| manage_agents | :green_circle: |
| verify-agent-conf | :green_circle: |
| wazuh-agentd | ------- |
| wazuh-agentlessd | :green_circle: |
| wazuh-analysisd | :green_circle: |
| wazuh-authd | :green_circle: |
| wazuh-csyslogd | :green_circle: |
| wazuh-db | :green_circle: |
| wazuh-dbd | :green_circle: |
| wazuh-execd | :green_circle: |
| wazuh-integratord | :green_circle: |
| wazuh-keystore | :green_circle: |
| wazuh-logcollector | :green_circle: |
| wazuh-logtest-legacy | :green_circle: |
| wazuh-maild | :green_circle: |
| wazuh-modulesd | :green_circle: |
| wazuh-regex | :green_circle: |
| wazuh-remoted | :green_circle: |
| wazuh-reportd | :green_circle: |
| wazuh-syscheckd | :green_circle: |
| libcontent_manager.so | :green_circle: |
| libdbsync.so | :green_circle: |
| libfimdb.so | :green_circle: |
| libindexer_connector.so | :green_circle: |
| librouter.so | :green_circle: |
| librsync.so | :green_circle: |
| libsyscollector.so | :green_circle: |
| libsysinfo.so | :green_circle: |
| libvulnerability_scanner.so | :green_circle: |
| libwazuhext.so | :green_circle: |
| libwazuhshared.so | :green_circle: |
Deb Agent 🟢
| BIN \ Package | Agent |
|---|---|
| agent-auth | :green_circle: |
| clear_stats | ------- |
| manage_agents | :green_circle: |
| verify-agent-conf | ------- |
| wazuh-agentd | :green_circle: |
| wazuh-agentlessd | |
| wazuh-analysisd | ------- |
| wazuh-authd | ------- |
| wazuh-csyslogd | ------- |
| wazuh-db | ------- |
| wazuh-dbd | ------- |
| wazuh-execd | :green_circle: |
| wazuh-integratord | ------- |
| wazuh-keystore | ------- |
| wazuh-logcollector | :green_circle: |
| wazuh-logtest-legacy | ------- |
| wazuh-maild | ------- |
| wazuh-modulesd | :green_circle: |
| wazuh-regex | ------- |
| wazuh-remoted | ------- |
| wazuh-reportd | ------- |
| wazuh-syscheckd | :green_circle: |
| libcontent_manager.so | ------- |
| libdbsync.so | :green_circle: |
| libfimdb.so | :green_circle: |
| libindexer_connector.so | ------- |
| librouter.so | ------- |
| librsync.so | :green_circle: |
| libsyscollector.so | :green_circle: |
| libsysinfo.so | :green_circle: |
| libvulnerability_scanner.so | ------- |
| libwazuhext.so | :green_circle: |
| libwazuhshared.so | :green_circle: |
Update
The files containt the output of the following scripts, before and after installing the debug packeage.
Manager
#!/bin/bash
# Output file
OUTPUT_FILE="manager_result.txt"
# Start by writing system information
echo "os-release:" > "$OUTPUT_FILE"
cat /etc/os-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo "lsb-release:" >> "$OUTPUT_FILE"
cat /etc/lsb-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo Wazuh version: >> "$OUTPUT_FILE"
/var/ossec/bin/wazuh-control info >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
# Commands to run in gdb
GDB_COMMANDS="set pagination off \n info functions w_*"
# List of binaries and libraries to process
BINARIES_AND_LIBS=(
/var/ossec/bin/clear_stats
/var/ossec/bin/manage_agents
/var/ossec/bin/verify-agent-conf
/var/ossec/bin/wazuh-agentlessd
/var/ossec/bin/wazuh-analysisd
/var/ossec/bin/wazuh-authd
/var/ossec/bin/wazuh-csyslogd
/var/ossec/bin/wazuh-db
/var/ossec/bin/wazuh-dbd
/var/ossec/bin/wazuh-execd
/var/ossec/bin/wazuh-integratord
/var/ossec/bin/wazuh-keystore
/var/ossec/bin/wazuh-logcollector
/var/ossec/bin/wazuh-logtest-legacy
/var/ossec/bin/wazuh-maild
/var/ossec/bin/wazuh-modulesd
/var/ossec/bin/wazuh-regex
/var/ossec/bin/wazuh-remoted
/var/ossec/bin/wazuh-reportd
/var/ossec/bin/wazuh-syscheckd
/var/ossec/lib/libcontent_manager.so
/var/ossec/lib/libdbsync.so
/var/ossec/lib/libfimdb.so
/var/ossec/lib/libindexer_connector.so
/var/ossec/lib/librouter.so
/var/ossec/lib/librsync.so
/var/ossec/lib/libsyscollector.so
/var/ossec/lib/libsysinfo.so
/var/ossec/lib/libvulnerability_scanner.so
/var/ossec/lib/libwazuhext.so
/var/ossec/lib/libwazuhshared.so
)
# Process each binary and library with gdb
for bin in "${BINARIES_AND_LIBS[@]}"; do
echo "Processing $bin with gdb..."
echo "${bin}: " >> "$OUTPUT_FILE"
echo -e "$GDB_COMMANDS" | gdb "$bin" | head -n30 >> "$OUTPUT_FILE"
echo -e "-------------------------------------------------------------------\n\n" >> "$OUTPUT_FILE"
done
echo "GDB processing complete. Results saved to $OUTPUT_FILE."
Agent
#!/bin/bash
# Output file
OUTPUT_FILE="result.txt"
# Start by writing system information
echo "os-release:" > "$OUTPUT_FILE"
cat /etc/os-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo "lsb-release:" >> "$OUTPUT_FILE"
cat /etc/lsb-release >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
echo Wazuh version: >> "$OUTPUT_FILE"
/var/ossec/bin/wazuh-control info >> "$OUTPUT_FILE"
echo -e "\n\n" >> "$OUTPUT_FILE"
# Commands to run in gdb
GDB_COMMANDS="set pagination off \n info functions w_*"
# List of binaries and libraries to process
BINARIES_AND_LIBS=(
/var/ossec/bin/agent-auth
/var/ossec/bin/manage_agents
/var/ossec/bin/wazuh-agentd
/var/ossec/bin/wazuh-execd
/var/ossec/bin/wazuh-logcollector
/var/ossec/bin/wazuh-modulesd
/var/ossec/bin/wazuh-syscheckd
/var/ossec/lib/libdbsync.so
/var/ossec/lib/libfimdb.so
/var/ossec/lib/librsync.so
/var/ossec/lib/libsyscollector.so
/var/ossec/lib/libsysinfo.so
/var/ossec/lib/libwazuhext.so
/var/ossec/lib/libwazuhshared.so
)
# Process each binary and library with gdb
for bin in "${BINARIES_AND_LIBS[@]}"; do
echo "Processing $bin with gdb..."
echo "${bin}: " >> "$OUTPUT_FILE"
echo -e "$GDB_COMMANDS" | gdb "$bin" | head -n30 >> "$OUTPUT_FILE"
echo -e "-------------------------------------------------------------------\n\n" >> "$OUTPUT_FILE"
done
echo "GDB processing complete. Results saved to $OUTPUT_FILE."
:green_circle: DEB package
It is marked with :green_circle: when the symbol separation was successful and they are in the debug package.
Debug build
| BIN \ Package | RPM - Agent | RPM - Manager |
|---|---|---|
| agent-auth | :green_circle: | ------- |
| clear_stats | ------- | :green_circle: |
| manage_agents | :green_circle: | :green_circle: |
| verify-agent-conf | ------- | :green_circle: |
| wazuh-agentd | :green_circle: | ------- |
| wazuh-agentlessd | :green_circle: | |
| wazuh-analysisd | ------- | :green_circle: |
| wazuh-authd | ------- | :green_circle: |
| wazuh-csyslogd | ------- | :green_circle: |
| wazuh-db | ------- | :green_circle: |
| wazuh-dbd | ------- | :green_circle: |
| wazuh-execd | :green_circle: | :green_circle: |
| wazuh-integratord | ------- | :green_circle: |
| wazuh-keystore | ------- | :green_circle: |
| wazuh-logcollector | :green_circle: | :green_circle: |
| wazuh-logtest-legacy | ------- | :green_circle: |
| wazuh-maild | ------- | :green_circle: |
| wazuh-modulesd | :green_circle: | :green_circle: |
| wazuh-regex | ------- | :green_circle: |
| wazuh-remoted | ------- | :green_circle: |
| wazuh-reportd | ------- | :green_circle: |
| wazuh-syscheckd | :green_circle: | :green_circle: |
| libcontent_manager.so | ------- | :green_circle: |
| libdbsync.so | :green_circle: | :green_circle: |
| libfimdb.so | :green_circle: | :green_circle: |
| libindexer_connector.so | ------- | :green_circle: |
| librouter.so | ------- | :green_circle: |
| librsync.so | :green_circle: | :green_circle: |
| libsyscollector.so | :green_circle: | :green_circle: |
| libsysinfo.so | :green_circle: | :green_circle: |
| libvulnerability_scanner.so | ------- | :green_circle: |
| libwazuhext.so | :green_circle: | :green_circle: |
| libwazuhshared.so | :green_circle: | :green_circle: |
Release build
| BIN \ Package | RPM - Agent | RPM - Manager |
|---|---|---|
| agent-auth | :green_circle: | ------- |
| clear_stats | ------- | :green_circle: |
| manage_agents | :green_circle: | :green_circle: |
| verify-agent-conf | ------- | :green_circle: |
| wazuh-agentd | :green_circle: | ------- |
| wazuh-agentlessd | :green_circle: | |
| wazuh-analysisd | ------- | :green_circle: |
| wazuh-authd | ------- | :green_circle: |
| wazuh-csyslogd | ------- | :green_circle: |
| wazuh-db | ------- | :green_circle: |
| wazuh-dbd | ------- | :green_circle: |
| wazuh-execd | :green_circle: | :green_circle: |
| wazuh-integratord | ------- | :green_circle: |
| wazuh-keystore | ------- | :green_circle: |
| wazuh-logcollector | :green_circle: | :green_circle: |
| wazuh-logtest-legacy | ------- | :green_circle: |
| wazuh-maild | ------- | :green_circle: |
| wazuh-modulesd | :green_circle: | :green_circle: |
| wazuh-regex | ------- | :green_circle: |
| wazuh-remoted | ------- | :green_circle: |
| wazuh-reportd | ------- | :green_circle: |
| wazuh-syscheckd | :green_circle: | :green_circle: |
| libcontent_manager.so | ------- | :green_circle: |
| libdbsync.so | :green_circle: | :green_circle: |
| libfimdb.so | :green_circle: | :green_circle: |
| libindexer_connector.so | ------- | :green_circle: |
| librouter.so | ------- | :green_circle: |
| librsync.so | :green_circle: | :green_circle: |
| libsyscollector.so | :green_circle: | :green_circle: |
| libsysinfo.so | :green_circle: | :green_circle: |
| libvulnerability_scanner.so | ------- | :green_circle: |
| libwazuhext.so | :green_circle: | :green_circle: |
| libwazuhshared.so | :green_circle: | :green_circle: |
:green_circle: Windows
After a second analysis, I will not modify the windows package, the files that appeared to be extra (files starting with install-), may be useful in some cases during the installation,
MacOS
Currently in progress, creating a development environment for testing.
Update
- Reviewing macOS code
- Difficulty finding a working VM
- Packages are not generated correctly on current branch
Update
:green_circle: MacOS
After several problems, @jnasselle helped me to find some issues and to be able to properly clean/set up the environment for testing. Symbols in MacOS in release mode work correctly. I also modified the code to generate a crash and load the coredump. An execution step by step, can be seen in the following output:
sh-3.2# lldb
(lldb) target create -c /cores/core.33405 # <<< Load Core dump
Core file '/cores/core.33405' (x86_64) was loaded.
(lldb) add-dsym /private/var/root/packetes/tmp/symbols/wazuh-logcollector.dSYM/Contents/Resources/DWARF/wazuh-logcollector
symbol file '/private/var/root/packetes/tmp/symbols/wazuh-logcollector.dSYM/Contents/Resources/DWARF/wazuh-logcollector' has been added to '/Library/Ossec/bin/wazuh-logcollector' # <<< Load symbols
(lldb) image lookup -vn read_syslog # <<< Search Random function to find the build path
wazuh-logcollector was compiled with optimization - stepping may behave oddly; variables may not be available.
1 match found in /Library/Ossec/bin/wazuh-logcollector:
Address: wazuh-logcollector[0x0000000100014070] (wazuh-logcollector.__TEXT.__text + 64592)
Summary: wazuh-logcollector`read_syslog at read_syslog.c:19
Module: file = "/Library/Ossec/bin/wazuh-logcollector", arch = "x86_64"
CompileUnit: id = {0x00000013}, file = "/private/var/root/wazuh/src/logcollector/read_syslog.c", language = "c99" # <<< here is the build path
Function: id = {0x0001b598}, name = "read_syslog", range = [0x0000000104cad070-0x0000000104cad5b4)
FuncType: id = {0x0001b598}, byte-size = 0, decl = read_syslog.c:19, compiler_type = "void *(logreader *, int *, int)"
Blocks: id = {0x0001b598}, range = [0x104cad070-0x104cad5b4)
LineEntry: [0x0000000104cad070-0x0000000104cad0a3): /private/var/root/wazuh/src/logcollector/read_syslog.c:19
Symbol: id = {0x00000342}, range = [0x0000000104cad070-0x0000000104cad5c0), name="read_syslog"
Variable: id = {0x0001b5b1}, name = "lf", type = "logreader *", location = DW_OP_reg5 RDI, decl = read_syslog.c:19
Variable: id = {0x0001b5c0}, name = "rc", type = "int *", location = DW_OP_reg4 RSI, decl = read_syslog.c:19
Variable: id = {0x0001b5cf}, name = "drop_it", type = "int", location = DW_OP_reg1 RDX, decl = read_syslog.c:19
Variable: id = {0x0001b5de}, name = "str", type = "char [65537]", location = DW_OP_fbreg -65600, decl = read_syslog.c:22
Variable: id = {0x0001b657}, name = "is_valid_context_file", type = "_Bool", location = <empty>, decl = read_syslog.c:35
(lldb) settings set target.source-map /private/var/root/wazuh/src /var/root/wazuh_old/src # <<< Mapping the build path with local path to search in code
(lldb) add-dsym /private/var/root/packetes/tmp/symbols/wazuh-logcollector.dSYM/Contents/Resources/DWARF/wazuh-logcollector
symbol file '/private/var/root/packetes/tmp/symbols/wazuh-logcollector.dSYM/Contents/Resources/DWARF/wazuh-logcollector' has been added to '/Library/Ossec/bin/wazuh-logcollector' # <<< Reload symbols to map the build path
(lldb) gui # <<< Open GUI (image attached)
gui:
Resume lldb cmds (example)
# Load Core dump
(lldb) target create -c /cores/core.33405
# Load symbols
(lldb) add-dsym /private/var/root/packetes/tmp/symbols/wazuh-logcollector.dSYM/Contents/Resources/DWARF/wazuh-logcollector
# Search Random function to find the build path
(lldb) image lookup -vn read_syslog
# Mapping the buid path to local src path
(lldb) settings set target.source-map /private/var/root/wazuh/src /var/root/wazuh_old/src
# Reload symbols for mapping
(lldb) add-dsym /private/var/root/packetes/tmp/symbols/wazuh-logcollector.dSYM/Contents/Resources/DWARF/wazuh-logcollector
symbol file '/private/var/root/packetes/tmp/symbols/wazuh-logcollector.dSYM/Contents/Resources/DWARF/wazuh-logcollector' has been added to '/Library/Ossec/bin/wazuh-logcollector'
(lldb) gui
Util ref: https://werat.dev/blog/debugging-lldb-with-source-stepping/
:yellow_circle: It is under investigation because the packet creation is generated with an empty checksum.
Update
- Analisis of macos checksum and fix the generate script
- Fixes Centos 5 spec, changes on
changelog - Modify, generate coredump and testing of deb packeage
Pending:
- Review WPK and symbols It seems that this development has not been implemented
Update
After further review of WPK in the new versions of wazuh and WPK pipelines, it is determined that no changes are necessary, since they use RPM, DEB, MSI and PKG packages to update the product. I have started with the GHA research to modify the corresponding workflows for package generation. Thanks @jnasselle for taking the time to call me and solve some doubts.
Update
Old package warnings were detected and fixed today, also it is complex to test the workflow without altering development, since the workflows use dockers already built in the github, locally I don't have access to those containers, which makes the task difficult, although I have created a last commit to patch the docker on the fly. This commit will have to be removed and is only for testing until we update the containers on github.
- :green_circle: Build manager deb workflow https://github.com/wazuh/wazuh/actions/runs/10221707243
- :green_circle: Build manager rpm workflow https://github.com/wazuh/wazuh/actions/runs/10221857501
I don't have access to the bucket yet, but I will be able to test it as soon as I have it.
Update
- New pkg container generated and tested
- Test and fix manager workflows:
- deb manager with new container: https://github.com/wazuh/wazuh/actions/runs/10253165009/job/28365199980
- rpm manager with new container: https://github.com/wazuh/wazuh/actions/runs/10253940687/job/28367680193
S3 output:
Local Output:
Update
- Fix Centos5 RPM build, a bug with --checksum option
Update
- Fix ARM arm64 and aach64 build package
Update
- Analysis and fix of windows package construction bug after rebase
- Fixed MacOS generate package, sign and notarize
Update
- Reviewing MacOS fix
- Tes MacOS generate package
Update
After modifying the Windows installation script, I created a branch with a forced segmentation. Then I created the package with the agent workflow and tested it on a completely clean Windows. The coredump has been generated correctly and then from another vm it can be load without problems
Update
- The branch has been rebased with 4.10.0
- Conflicts resolved
- Testing has begun.