Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package clamav for openSUSE:Factory checked in at 2025-11-12 21:14:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/clamav (Old) and /work/SRC/openSUSE:Factory/.clamav.new.1980 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clamav" Wed Nov 12 21:14:11 2025 rev:137 rq:1317166 version:1.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/clamav/clamav.changes 2025-10-17 17:26:02.914665013 +0200 +++ /work/SRC/openSUSE:Factory/.clamav.new.1980/clamav.changes 2025-11-12 21:14:26.946289082 +0100 @@ -1,0 +2,6 @@ +Tue Nov 4 16:09:50 UTC 2025 - Reinhard Max <[email protected]> + +- Add clamav-workaround.patch to work around symbol removals in + version 1.5.0 and 1.5.1. + +------------------------------------------------------------------- New: ---- clamav-workaround.patch ----------(New B)---------- New: - Add clamav-workaround.patch to work around symbol removals in version 1.5.0 and 1.5.1. ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ clamav.spec ++++++ --- /var/tmp/diff_new_pack.JjJBmE/_old 2025-11-12 21:14:28.102337539 +0100 +++ /var/tmp/diff_new_pack.JjJBmE/_new 2025-11-12 21:14:28.102337539 +0100 @@ -67,6 +67,7 @@ Patch5: clamav-obsolete-config.patch Patch14: clamav-document-maxsize.patch Patch15: clamav-format.patch +Patch16: clamav-workaround.patch ExcludeArch: %{arml} BuildRequires: cargo%{?vrust} @@ -207,6 +208,7 @@ %patch -P 5 %patch -P 14 %patch -P 15 +%patch -P 16 chmod -x docs/html/images/flamegraph.svg %build ++++++ clamav-workaround.patch ++++++ --- libclamav/clamav.h.orig +++ libclamav/clamav.h @@ -22,6 +22,15 @@ #ifndef __CLAMAV_H #define __CLAMAV_H +/* + * This workaround can be removed once the SONAME version of libclamav + * gets bumped beyond 12. + */ +#define WA(VER, RET, SYM) __attribute__ (( \ + __symver__ (#SYM "@@CLAMAV_PUBLIC"), \ + __symver__ (#SYM "@CLAMAV_" VER))) \ + RET wa_ ## SYM + #ifdef _WIN32 #ifndef OWN_WINSOCK #include <winsock2.h> --- libclamav/cvd.c.orig +++ libclamav/cvd.c @@ -416,7 +416,7 @@ cl_error_t cl_cvdverify(const char *file return cl_cvdverify_ex(file, NULL, 0); } -cl_error_t cl_cvdverify_ex(const char *file, const char *certs_directory, uint32_t dboptions) +WA("1.5.0", cl_error_t, cl_cvdverify_ex)(const char *file, const char *certs_directory, uint32_t dboptions) { struct cl_engine *engine = NULL; cl_error_t ret; @@ -749,7 +749,7 @@ done: return status; } -cl_error_t cl_cvdunpack_ex(const char *file, const char *dir, const char *certs_directory, uint32_t dboptions) +WA("1.5.0", cl_error_t, cl_cvdunpack_ex)(const char *file, const char *dir, const char *certs_directory, uint32_t dboptions) { cl_error_t status = CL_SUCCESS; cvd_t *cvd = NULL; @@ -823,7 +823,7 @@ done: return status; } -cl_error_t cl_cvdunpack(const char *file, const char *dir, bool dont_verify) +WA("1.0.0", cl_error_t, cl_cvdunpack)(const char *file, const char *dir, bool dont_verify) { cl_error_t status = CL_SUCCESS; cvd_t *cvd = NULL; @@ -914,7 +914,7 @@ done: return status; } -cl_error_t cl_cvdgetage(const char *path, time_t *age_seconds) +WA("1.1.0", cl_error_t, cl_cvdgetage)(const char *path, time_t *age_seconds) { STATBUF statbuf; struct dirent *dent; --- libclamav/libclamav.map.orig +++ libclamav/libclamav.map @@ -91,6 +91,34 @@ CLAMAV_PUBLIC { cl_scan_layer_get_attributes; cl_engine_set_scan_callback; }; + +# This block can be removed once the SONAME version of libclamav +# gets bumped beyond 12... +# +CLAMAV_0.104.0 { +# local: +# wa_cl_engine_set_clcb_engine_compile_progress; +# wa_cl_engine_set_clcb_engine_free_progress; +# wa_cl_engine_set_clcb_sigload_progress; +} CLAMAV_PUBLIC; +CLAMAV_1.0.0 { +# local: +# wa_cl_cvdunpack; +# wa_cl_engine_set_clcb_file_inspection; +} CLAMAV_0.104.0; +CLAMAV_1.1.0 { +# local: +# wa_cl_cvdgetage; +# wa_cl_engine_set_clcb_vba; +} CLAMAV_1.0.0; +CLAMAV_1.5.0 { +# local: +# wa_cl_cvdunpack_ex; +# wa_cl_cvdverify_ex; +} CLAMAV_1.1.0; +# +# ... up to here + CLAMAV_PRIVATE { global: cli_sigperf_print; --- libclamav/others.c.orig +++ libclamav/others.c @@ -2767,7 +2767,7 @@ void cl_engine_set_clcb_pre_cache(struct engine->cb_pre_cache = callback; } -void cl_engine_set_clcb_file_inspection(struct cl_engine *engine, clcb_file_inspection callback) +WA("1.0.0", void, cl_engine_set_clcb_file_inspection)(struct cl_engine *engine, clcb_file_inspection callback) { engine->cb_file_inspection = callback; } @@ -2793,19 +2793,19 @@ void cl_engine_set_clcb_sigload(struct c engine->cb_sigload_ctx = callback ? context : NULL; } -void cl_engine_set_clcb_sigload_progress(struct cl_engine *engine, clcb_progress callback, void *context) +WA("0.104.0", void, cl_engine_set_clcb_sigload_progress)(struct cl_engine *engine, clcb_progress callback, void *context) { engine->cb_sigload_progress = callback; engine->cb_sigload_progress_ctx = callback ? context : NULL; } -void cl_engine_set_clcb_engine_compile_progress(struct cl_engine *engine, clcb_progress callback, void *context) +WA("0.104.0", void, cl_engine_set_clcb_engine_compile_progress)(struct cl_engine *engine, clcb_progress callback, void *context) { engine->cb_engine_compile_progress = callback; engine->cb_engine_compile_progress_ctx = callback ? context : NULL; } -void cl_engine_set_clcb_engine_free_progress(struct cl_engine *engine, clcb_progress callback, void *context) +WA("0.104.0", void, cl_engine_set_clcb_engine_free_progress)(struct cl_engine *engine, clcb_progress callback, void *context) { engine->cb_engine_free_progress = callback; engine->cb_engine_free_progress_ctx = callback ? context : NULL; @@ -2826,7 +2826,7 @@ void cl_engine_set_clcb_file_props(struc engine->cb_file_props = callback; } -void cl_engine_set_clcb_vba(struct cl_engine *engine, clcb_generic_data callback) +WA("1.1.0", void, cl_engine_set_clcb_vba)(struct cl_engine *engine, clcb_generic_data callback) { engine->cb_vba = callback; }
