clamav: Update to 0.104.0

Message ID 20210908162831.3800-1-matthias.fischer@ipfire.org
State Accepted
Commit f7627d868767e853e4f7f3db73d6191c082c1dc3
Headers show
Series clamav: Update to 0.104.0 | expand

Commit Message

Matthias Fischer Sept. 8, 2021, 4:28 p.m. UTC
For details see:
https://blog.clamav.net/2021/09/clamav-01040-released.html

New requirements and major changes:
"As of ClamAV 0.104, CMake is required to build ClamAV
...
The built-in LLVM for the bytecode runtime has been removed."

But since the current 'llvm 12.0.1' version refused to be build
"...you will need to supply the development libraries for LLVM
version 3.6.2" - which is ~6 years old - I gave up with 'llvm'
and stayed with the bytecode "interpreter".

Cited:
"The bytecode interpreter is the default runtime for bytecode
signatures just as it was in ClamAV 0.103.

@ALL:
In 'clamav 0.104.0' there is no appropriate cmake option for
"CONFIGURE_FLAGS = --disable-fanotify" for ARM buildings anymore.
Perhaps there is a kernel option for this?
=> https://docs.clamav.net/manual/OnAccess.html#requirements

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
---
 config/rootfiles/packages/clamav | 164 ++++++++++++++++++++++++++-----
 lfs/clamav                       |  40 +++++---
 2 files changed, 164 insertions(+), 40 deletions(-)

Comments

Michael Tremer Sept. 8, 2021, 8:27 p.m. UTC | #1
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>

Thank you.

> On 8 Sep 2021, at 17:28, Matthias Fischer <matthias.fischer@ipfire.org> wrote:
> 
> For details see:
> https://blog.clamav.net/2021/09/clamav-01040-released.html
> 
> New requirements and major changes:
> "As of ClamAV 0.104, CMake is required to build ClamAV
> ...
> The built-in LLVM for the bytecode runtime has been removed."
> 
> But since the current 'llvm 12.0.1' version refused to be build
> "...you will need to supply the development libraries for LLVM
> version 3.6.2" - which is ~6 years old - I gave up with 'llvm'
> and stayed with the bytecode "interpreter".
> 
> Cited:
> "The bytecode interpreter is the default runtime for bytecode
> signatures just as it was in ClamAV 0.103.
> 
> @ALL:
> In 'clamav 0.104.0' there is no appropriate cmake option for
> "CONFIGURE_FLAGS = --disable-fanotify" for ARM buildings anymore.
> Perhaps there is a kernel option for this?
> => https://docs.clamav.net/manual/OnAccess.html#requirements
> 
> Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
> ---
> config/rootfiles/packages/clamav | 164 ++++++++++++++++++++++++++-----
> lfs/clamav                       |  40 +++++---
> 2 files changed, 164 insertions(+), 40 deletions(-)
> 
> diff --git a/config/rootfiles/packages/clamav b/config/rootfiles/packages/clamav
> index a27bb584f..5240b71c6 100644
> --- a/config/rootfiles/packages/clamav
> +++ b/config/rootfiles/packages/clamav
> @@ -12,46 +12,162 @@ usr/bin/sigtool
> #usr/include/clamav-version.h
> #usr/include/clamav.h
> #usr/include/libfreshclam.h
> -#usr/lib/libclamav.la
> usr/lib/libclamav.so
> usr/lib/libclamav.so.9
> -usr/lib/libclamav.so.9.0.5
> -#usr/lib/libclammspack.la
> +usr/lib/libclamav.so.9.1.0
> usr/lib/libclammspack.so
> usr/lib/libclammspack.so.0
> -usr/lib/libclammspack.so.0.1.0
> -#usr/lib/libclamunrar.la
> +usr/lib/libclammspack.so.0.8.0
> usr/lib/libclamunrar.so
> usr/lib/libclamunrar.so.9
> -usr/lib/libclamunrar.so.9.0.5
> -#usr/lib/libclamunrar_iface.la
> +usr/lib/libclamunrar.so.9.1.0
> usr/lib/libclamunrar_iface.so
> usr/lib/libclamunrar_iface.so.9
> -usr/lib/libclamunrar_iface.so.9.0.5
> -#usr/lib/libfreshclam.la
> +usr/lib/libclamunrar_iface.so.9.1.0
> usr/lib/libfreshclam.so
> usr/lib/libfreshclam.so.2
> -usr/lib/libfreshclam.so.2.0.1
> +usr/lib/libfreshclam.so.2.0.2
> #usr/lib/pkgconfig/libclamav.pc
> usr/sbin/clamd
> -#usr/share/man/man1/clambc.1
> -#usr/share/man/man1/clamconf.1
> -#usr/share/man/man1/clamdscan.1
> -#usr/share/man/man1/clamdtop.1
> -#usr/share/man/man1/clamscan.1
> -#usr/share/man/man1/clamsubmit.1
> -#usr/share/man/man1/freshclam.1
> -#usr/share/man/man1/sigtool.1
> -#usr/share/man/man5/clamav-milter.conf.5
> -#usr/share/man/man5/clamd.conf.5
> -#usr/share/man/man5/freshclam.conf.5
> -#usr/share/man/man8/clamav-milter.8
> -#usr/share/man/man8/clamd.8
> +#usr/share/doc/ClamAV
> +#usr/share/doc/ClamAV/html
> +#usr/share/doc/ClamAV/html/404.html
> +#usr/share/doc/ClamAV/html/FontAwesome
> +#usr/share/doc/ClamAV/html/FontAwesome/css
> +#usr/share/doc/ClamAV/html/FontAwesome/css/font-awesome.css
> +#usr/share/doc/ClamAV/html/FontAwesome/fonts
> +#usr/share/doc/ClamAV/html/FontAwesome/fonts/FontAwesome.ttf
> +#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.eot
> +#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.svg
> +#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.ttf
> +#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.woff
> +#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.woff2
> +#usr/share/doc/ClamAV/html/Introduction.html
> +#usr/share/doc/ClamAV/html/ace.js
> +#usr/share/doc/ClamAV/html/appendix
> +#usr/share/doc/ClamAV/html/appendix/Appendix.html
> +#usr/share/doc/ClamAV/html/appendix/Authenticode.html
> +#usr/share/doc/ClamAV/html/appendix/CvdPrivateMirror.html
> +#usr/share/doc/ClamAV/html/appendix/FileTypes.html
> +#usr/share/doc/ClamAV/html/appendix/FunctionalityLevels.html
> +#usr/share/doc/ClamAV/html/appendix/Terminology.html
> +#usr/share/doc/ClamAV/html/ayu-highlight.css
> +#usr/share/doc/ClamAV/html/book.js
> +#usr/share/doc/ClamAV/html/clipboard.min.js
> +#usr/share/doc/ClamAV/html/css
> +#usr/share/doc/ClamAV/html/css/chrome.css
> +#usr/share/doc/ClamAV/html/css/general.css
> +#usr/share/doc/ClamAV/html/css/print.css
> +#usr/share/doc/ClamAV/html/css/variables.css
> +#usr/share/doc/ClamAV/html/editor.js
> +#usr/share/doc/ClamAV/html/elasticlunr.min.js
> +#usr/share/doc/ClamAV/html/faq
> +#usr/share/doc/ClamAV/html/faq/faq-cvd.html
> +#usr/share/doc/ClamAV/html/faq/faq-eol.html
> +#usr/share/doc/ClamAV/html/faq/faq-freshclam.html
> +#usr/share/doc/ClamAV/html/faq/faq-ignore.html
> +#usr/share/doc/ClamAV/html/faq/faq-misc.html
> +#usr/share/doc/ClamAV/html/faq/faq-ml.html
> +#usr/share/doc/ClamAV/html/faq/faq-pua.html
> +#usr/share/doc/ClamAV/html/faq/faq-safebrowsing.html
> +#usr/share/doc/ClamAV/html/faq/faq-scan-alerts.html
> +#usr/share/doc/ClamAV/html/faq/faq-troubleshoot.html
> +#usr/share/doc/ClamAV/html/faq/faq-uninstall.html
> +#usr/share/doc/ClamAV/html/faq/faq-upgrade.html
> +#usr/share/doc/ClamAV/html/faq/faq-whichversion.html
> +#usr/share/doc/ClamAV/html/faq/faq-win32.html
> +#usr/share/doc/ClamAV/html/faq/faq.html
> +#usr/share/doc/ClamAV/html/favicon.png
> +#usr/share/doc/ClamAV/html/fonts
> +#usr/share/doc/ClamAV/html/fonts/OPEN-SANS-LICENSE.txt
> +#usr/share/doc/ClamAV/html/fonts/SOURCE-CODE-PRO-LICENSE.txt
> +#usr/share/doc/ClamAV/html/fonts/fonts.css
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-300.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-300italic.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-600.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-600italic.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-700.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-700italic.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-800.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-800italic.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-italic.woff2
> +#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-regular.woff2
> +#usr/share/doc/ClamAV/html/fonts/source-code-pro-v11-all-charsets-500.woff2
> +#usr/share/doc/ClamAV/html/highlight.css
> +#usr/share/doc/ClamAV/html/highlight.js
> +#usr/share/doc/ClamAV/html/images
> +#usr/share/doc/ClamAV/html/images/change-fork-name.png
> +#usr/share/doc/ClamAV/html/images/cisco.png
> +#usr/share/doc/ClamAV/html/images/clone-your-fork.png
> +#usr/share/doc/ClamAV/html/images/create-a-fork.png
> +#usr/share/doc/ClamAV/html/images/demon.png
> +#usr/share/doc/ClamAV/html/images/flamegraph.svg
> +#usr/share/doc/ClamAV/html/images/fork-is-behind.png
> +#usr/share/doc/ClamAV/html/images/logo.png
> +#usr/share/doc/ClamAV/html/images/new-git-workflow.png
> +#usr/share/doc/ClamAV/html/images/old-git-workflow.png
> +#usr/share/doc/ClamAV/html/index.html
> +#usr/share/doc/ClamAV/html/manual
> +#usr/share/doc/ClamAV/html/manual/Development
> +#usr/share/doc/ClamAV/html/manual/Development.html
> +#usr/share/doc/ClamAV/html/manual/Development/Contribute.html
> +#usr/share/doc/ClamAV/html/manual/Development/build-installer-packages.html
> +#usr/share/doc/ClamAV/html/manual/Development/clamav-git-work-flow.html
> +#usr/share/doc/ClamAV/html/manual/Development/code-coverage.html
> +#usr/share/doc/ClamAV/html/manual/Development/development-builds.html
> +#usr/share/doc/ClamAV/html/manual/Development/fuzzing-sanitizers.html
> +#usr/share/doc/ClamAV/html/manual/Development/github-pr-basics.html
> +#usr/share/doc/ClamAV/html/manual/Development/libclamav.html
> +#usr/share/doc/ClamAV/html/manual/Development/performance-profiling.html
> +#usr/share/doc/ClamAV/html/manual/Development/personal-forks.html
> +#usr/share/doc/ClamAV/html/manual/Development/testing-pull-requests.html
> +#usr/share/doc/ClamAV/html/manual/Development/tips-and-tricks.html
> +#usr/share/doc/ClamAV/html/manual/Installing
> +#usr/share/doc/ClamAV/html/manual/Installing.html
> +#usr/share/doc/ClamAV/html/manual/Installing/Add-clamav-user.html
> +#usr/share/doc/ClamAV/html/manual/Installing/Community-projects.html
> +#usr/share/doc/ClamAV/html/manual/Installing/Docker.html
> +#usr/share/doc/ClamAV/html/manual/Installing/Installing-from-source-Unix-old.html
> +#usr/share/doc/ClamAV/html/manual/Installing/Installing-from-source-Unix.html
> +#usr/share/doc/ClamAV/html/manual/Installing/Installing-from-source-Windows.html
> +#usr/share/doc/ClamAV/html/manual/Installing/Packages.html
> +#usr/share/doc/ClamAV/html/manual/OnAccess.html
> +#usr/share/doc/ClamAV/html/manual/Signatures
> +#usr/share/doc/ClamAV/html/manual/Signatures.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/AllowLists.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/AuthenticodeRules.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/BodySignatureFormat.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/BytecodeSignatures.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/ContainerMetadata.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/DatabaseInfo.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/DynamicConfig.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/EncryptedArchives.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/ExtendedSignatures.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/FileTypeMagic.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/HashSignatures.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/LogicalSignatures.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/PhishSigs.html
> +#usr/share/doc/ClamAV/html/manual/Signatures/YaraRules.html
> +#usr/share/doc/ClamAV/html/manual/Usage
> +#usr/share/doc/ClamAV/html/manual/Usage.html
> +#usr/share/doc/ClamAV/html/manual/Usage/Configuration.html
> +#usr/share/doc/ClamAV/html/manual/Usage/ReportABug.html
> +#usr/share/doc/ClamAV/html/manual/Usage/Scanning.html
> +#usr/share/doc/ClamAV/html/manual/Usage/Services.html
> +#usr/share/doc/ClamAV/html/manual/Usage/SignatureManagement.html
> +#usr/share/doc/ClamAV/html/mark.min.js
> +#usr/share/doc/ClamAV/html/mode-rust.js
> +#usr/share/doc/ClamAV/html/print.html
> +#usr/share/doc/ClamAV/html/searcher.js
> +#usr/share/doc/ClamAV/html/searchindex.js
> +#usr/share/doc/ClamAV/html/searchindex.json
> +#usr/share/doc/ClamAV/html/theme-dawn.js
> +#usr/share/doc/ClamAV/html/theme-tomorrow_night.js
> +#usr/share/doc/ClamAV/html/tomorrow-night.css
> #var/ipfire/clamav
> var/ipfire/clamav/clamd.conf
> var/ipfire/clamav/clamd.conf.sample
> var/ipfire/clamav/freshclam.conf
> var/ipfire/clamav/freshclam.conf.sample
> var/lib/clamav
> -etc/rc.d/init.d/clamav
> usr/local/bin/clamavctrl
> diff --git a/lfs/clamav b/lfs/clamav
> index 4dc996ea4..9076d0f71 100644
> --- a/lfs/clamav
> +++ b/lfs/clamav
> @@ -24,7 +24,7 @@
> 
> include Config
> 
> -VER        = 0.103.3
> +VER        = 0.104.0
> 
> THISAPP    = clamav-$(VER)
> DL_FILE    = $(THISAPP).tar.gz
> @@ -32,14 +32,10 @@ DL_FROM    = $(URL_IPFIRE)
> DIR_APP    = $(DIR_SRC)/$(THISAPP)
> TARGET     = $(DIR_INFO)/$(THISAPP)
> PROG       = clamav
> -PAK_VER    = 56
> +PAK_VER    = 57
> 
> DEPS       =
> 
> -ifeq "$(BUILD_PLATFORM)" "arm"
> -CONFIGURE_FLAGS = --disable-fanotify
> -endif
> -
> DATABASE_DIR = /var/lib/clamav
> 
> ###############################################################################
> @@ -50,7 +46,7 @@ objects = $(DL_FILE)
> 
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
> -$(DL_FILE)_MD5 = f8dcf678953f6af056ddd5917bcc50c3
> +$(DL_FILE)_MD5 = 3f4789c09f5a35e9ea580edd5c3e54b6
> 
> install : $(TARGET)
> 
> @@ -83,19 +79,31 @@ $(subst %,%_MD5,$(objects)) :
> $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> 	@$(PREBUILD)
> 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
> -	cd $(DIR_APP) && ./configure \
> -		--prefix=/usr \
> -		--disable-clamonacc \
> -		--sysconfdir=/var/ipfire/clamav \
> -		--with-dbdir=$(DATABASE_DIR) \
> -		$(CONFIGURE_FLAGS)
> -	cd $(DIR_APP) && make $(MAKETUNING)
> -	cd $(DIR_APP) && make install
> +
> +	cd $(DIR_APP) && mkdir -pv build
> +	cd $(DIR_APP)/build && cmake .. -G Ninja \
> +		-DCMAKE_BUILD_TYPE=Release \
> +		-DCMAKE_INSTALL_PREFIX=/usr \
> +		-DCMAKE_INSTALL_LIBDIR=/usr/lib \
> +		-DOPTIMIZE=ON \
> +		-DBYTECODE_RUNTIME="interpreter" \
> +		-DENABLE_TESTS=OFF \
> +		-DENABLE_CLAMONACC=OFF \
> +		-DENABLE_MILTER=OFF \
> +		-DENABLE_MAN_PAGES=OFF \
> +		-DENABLE_EXTERNAL_MSPACK=OFF \
> +		-DENABLE_FRESHCLAM_DNS_FIX=ON \
> +		-DAPP_CONFIG_DIRECTORY=/var/ipfire/clamav \
> +		-DDATABASE_DIRECTORY=$(DATABASE_DIR)
> +
> +	cd $(DIR_APP)/build && ninja $(MAKETUNING) && ninja install
> +
> 	mkdir -pv $(DATABASE_DIR)
> 	chown clamav.clamav -R $(DATABASE_DIR)
> 	rm -rfv $(DATABASE_DIR)/*.cvd
> +	mkdir -pv /var/ipfire/clamav
> 	cp -rf $(DIR_SRC)/config/clamav/* /var/ipfire/clamav/
> -	mkdir -p /var/run/clamav
> +	mkdir -pv /var/run/clamav
> 	chown clamav:clamav /var/run/clamav
> 	#install initscripts
> 	$(call INSTALL_INITSCRIPT,clamav)
> -- 
> 2.18.0
>

Patch

diff --git a/config/rootfiles/packages/clamav b/config/rootfiles/packages/clamav
index a27bb584f..5240b71c6 100644
--- a/config/rootfiles/packages/clamav
+++ b/config/rootfiles/packages/clamav
@@ -12,46 +12,162 @@  usr/bin/sigtool
 #usr/include/clamav-version.h
 #usr/include/clamav.h
 #usr/include/libfreshclam.h
-#usr/lib/libclamav.la
 usr/lib/libclamav.so
 usr/lib/libclamav.so.9
-usr/lib/libclamav.so.9.0.5
-#usr/lib/libclammspack.la
+usr/lib/libclamav.so.9.1.0
 usr/lib/libclammspack.so
 usr/lib/libclammspack.so.0
-usr/lib/libclammspack.so.0.1.0
-#usr/lib/libclamunrar.la
+usr/lib/libclammspack.so.0.8.0
 usr/lib/libclamunrar.so
 usr/lib/libclamunrar.so.9
-usr/lib/libclamunrar.so.9.0.5
-#usr/lib/libclamunrar_iface.la
+usr/lib/libclamunrar.so.9.1.0
 usr/lib/libclamunrar_iface.so
 usr/lib/libclamunrar_iface.so.9
-usr/lib/libclamunrar_iface.so.9.0.5
-#usr/lib/libfreshclam.la
+usr/lib/libclamunrar_iface.so.9.1.0
 usr/lib/libfreshclam.so
 usr/lib/libfreshclam.so.2
-usr/lib/libfreshclam.so.2.0.1
+usr/lib/libfreshclam.so.2.0.2
 #usr/lib/pkgconfig/libclamav.pc
 usr/sbin/clamd
-#usr/share/man/man1/clambc.1
-#usr/share/man/man1/clamconf.1
-#usr/share/man/man1/clamdscan.1
-#usr/share/man/man1/clamdtop.1
-#usr/share/man/man1/clamscan.1
-#usr/share/man/man1/clamsubmit.1
-#usr/share/man/man1/freshclam.1
-#usr/share/man/man1/sigtool.1
-#usr/share/man/man5/clamav-milter.conf.5
-#usr/share/man/man5/clamd.conf.5
-#usr/share/man/man5/freshclam.conf.5
-#usr/share/man/man8/clamav-milter.8
-#usr/share/man/man8/clamd.8
+#usr/share/doc/ClamAV
+#usr/share/doc/ClamAV/html
+#usr/share/doc/ClamAV/html/404.html
+#usr/share/doc/ClamAV/html/FontAwesome
+#usr/share/doc/ClamAV/html/FontAwesome/css
+#usr/share/doc/ClamAV/html/FontAwesome/css/font-awesome.css
+#usr/share/doc/ClamAV/html/FontAwesome/fonts
+#usr/share/doc/ClamAV/html/FontAwesome/fonts/FontAwesome.ttf
+#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.eot
+#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.svg
+#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.ttf
+#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.woff
+#usr/share/doc/ClamAV/html/FontAwesome/fonts/fontawesome-webfont.woff2
+#usr/share/doc/ClamAV/html/Introduction.html
+#usr/share/doc/ClamAV/html/ace.js
+#usr/share/doc/ClamAV/html/appendix
+#usr/share/doc/ClamAV/html/appendix/Appendix.html
+#usr/share/doc/ClamAV/html/appendix/Authenticode.html
+#usr/share/doc/ClamAV/html/appendix/CvdPrivateMirror.html
+#usr/share/doc/ClamAV/html/appendix/FileTypes.html
+#usr/share/doc/ClamAV/html/appendix/FunctionalityLevels.html
+#usr/share/doc/ClamAV/html/appendix/Terminology.html
+#usr/share/doc/ClamAV/html/ayu-highlight.css
+#usr/share/doc/ClamAV/html/book.js
+#usr/share/doc/ClamAV/html/clipboard.min.js
+#usr/share/doc/ClamAV/html/css
+#usr/share/doc/ClamAV/html/css/chrome.css
+#usr/share/doc/ClamAV/html/css/general.css
+#usr/share/doc/ClamAV/html/css/print.css
+#usr/share/doc/ClamAV/html/css/variables.css
+#usr/share/doc/ClamAV/html/editor.js
+#usr/share/doc/ClamAV/html/elasticlunr.min.js
+#usr/share/doc/ClamAV/html/faq
+#usr/share/doc/ClamAV/html/faq/faq-cvd.html
+#usr/share/doc/ClamAV/html/faq/faq-eol.html
+#usr/share/doc/ClamAV/html/faq/faq-freshclam.html
+#usr/share/doc/ClamAV/html/faq/faq-ignore.html
+#usr/share/doc/ClamAV/html/faq/faq-misc.html
+#usr/share/doc/ClamAV/html/faq/faq-ml.html
+#usr/share/doc/ClamAV/html/faq/faq-pua.html
+#usr/share/doc/ClamAV/html/faq/faq-safebrowsing.html
+#usr/share/doc/ClamAV/html/faq/faq-scan-alerts.html
+#usr/share/doc/ClamAV/html/faq/faq-troubleshoot.html
+#usr/share/doc/ClamAV/html/faq/faq-uninstall.html
+#usr/share/doc/ClamAV/html/faq/faq-upgrade.html
+#usr/share/doc/ClamAV/html/faq/faq-whichversion.html
+#usr/share/doc/ClamAV/html/faq/faq-win32.html
+#usr/share/doc/ClamAV/html/faq/faq.html
+#usr/share/doc/ClamAV/html/favicon.png
+#usr/share/doc/ClamAV/html/fonts
+#usr/share/doc/ClamAV/html/fonts/OPEN-SANS-LICENSE.txt
+#usr/share/doc/ClamAV/html/fonts/SOURCE-CODE-PRO-LICENSE.txt
+#usr/share/doc/ClamAV/html/fonts/fonts.css
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-300.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-300italic.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-600.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-600italic.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-700.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-700italic.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-800.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-800italic.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-italic.woff2
+#usr/share/doc/ClamAV/html/fonts/open-sans-v17-all-charsets-regular.woff2
+#usr/share/doc/ClamAV/html/fonts/source-code-pro-v11-all-charsets-500.woff2
+#usr/share/doc/ClamAV/html/highlight.css
+#usr/share/doc/ClamAV/html/highlight.js
+#usr/share/doc/ClamAV/html/images
+#usr/share/doc/ClamAV/html/images/change-fork-name.png
+#usr/share/doc/ClamAV/html/images/cisco.png
+#usr/share/doc/ClamAV/html/images/clone-your-fork.png
+#usr/share/doc/ClamAV/html/images/create-a-fork.png
+#usr/share/doc/ClamAV/html/images/demon.png
+#usr/share/doc/ClamAV/html/images/flamegraph.svg
+#usr/share/doc/ClamAV/html/images/fork-is-behind.png
+#usr/share/doc/ClamAV/html/images/logo.png
+#usr/share/doc/ClamAV/html/images/new-git-workflow.png
+#usr/share/doc/ClamAV/html/images/old-git-workflow.png
+#usr/share/doc/ClamAV/html/index.html
+#usr/share/doc/ClamAV/html/manual
+#usr/share/doc/ClamAV/html/manual/Development
+#usr/share/doc/ClamAV/html/manual/Development.html
+#usr/share/doc/ClamAV/html/manual/Development/Contribute.html
+#usr/share/doc/ClamAV/html/manual/Development/build-installer-packages.html
+#usr/share/doc/ClamAV/html/manual/Development/clamav-git-work-flow.html
+#usr/share/doc/ClamAV/html/manual/Development/code-coverage.html
+#usr/share/doc/ClamAV/html/manual/Development/development-builds.html
+#usr/share/doc/ClamAV/html/manual/Development/fuzzing-sanitizers.html
+#usr/share/doc/ClamAV/html/manual/Development/github-pr-basics.html
+#usr/share/doc/ClamAV/html/manual/Development/libclamav.html
+#usr/share/doc/ClamAV/html/manual/Development/performance-profiling.html
+#usr/share/doc/ClamAV/html/manual/Development/personal-forks.html
+#usr/share/doc/ClamAV/html/manual/Development/testing-pull-requests.html
+#usr/share/doc/ClamAV/html/manual/Development/tips-and-tricks.html
+#usr/share/doc/ClamAV/html/manual/Installing
+#usr/share/doc/ClamAV/html/manual/Installing.html
+#usr/share/doc/ClamAV/html/manual/Installing/Add-clamav-user.html
+#usr/share/doc/ClamAV/html/manual/Installing/Community-projects.html
+#usr/share/doc/ClamAV/html/manual/Installing/Docker.html
+#usr/share/doc/ClamAV/html/manual/Installing/Installing-from-source-Unix-old.html
+#usr/share/doc/ClamAV/html/manual/Installing/Installing-from-source-Unix.html
+#usr/share/doc/ClamAV/html/manual/Installing/Installing-from-source-Windows.html
+#usr/share/doc/ClamAV/html/manual/Installing/Packages.html
+#usr/share/doc/ClamAV/html/manual/OnAccess.html
+#usr/share/doc/ClamAV/html/manual/Signatures
+#usr/share/doc/ClamAV/html/manual/Signatures.html
+#usr/share/doc/ClamAV/html/manual/Signatures/AllowLists.html
+#usr/share/doc/ClamAV/html/manual/Signatures/AuthenticodeRules.html
+#usr/share/doc/ClamAV/html/manual/Signatures/BodySignatureFormat.html
+#usr/share/doc/ClamAV/html/manual/Signatures/BytecodeSignatures.html
+#usr/share/doc/ClamAV/html/manual/Signatures/ContainerMetadata.html
+#usr/share/doc/ClamAV/html/manual/Signatures/DatabaseInfo.html
+#usr/share/doc/ClamAV/html/manual/Signatures/DynamicConfig.html
+#usr/share/doc/ClamAV/html/manual/Signatures/EncryptedArchives.html
+#usr/share/doc/ClamAV/html/manual/Signatures/ExtendedSignatures.html
+#usr/share/doc/ClamAV/html/manual/Signatures/FileTypeMagic.html
+#usr/share/doc/ClamAV/html/manual/Signatures/HashSignatures.html
+#usr/share/doc/ClamAV/html/manual/Signatures/LogicalSignatures.html
+#usr/share/doc/ClamAV/html/manual/Signatures/PhishSigs.html
+#usr/share/doc/ClamAV/html/manual/Signatures/YaraRules.html
+#usr/share/doc/ClamAV/html/manual/Usage
+#usr/share/doc/ClamAV/html/manual/Usage.html
+#usr/share/doc/ClamAV/html/manual/Usage/Configuration.html
+#usr/share/doc/ClamAV/html/manual/Usage/ReportABug.html
+#usr/share/doc/ClamAV/html/manual/Usage/Scanning.html
+#usr/share/doc/ClamAV/html/manual/Usage/Services.html
+#usr/share/doc/ClamAV/html/manual/Usage/SignatureManagement.html
+#usr/share/doc/ClamAV/html/mark.min.js
+#usr/share/doc/ClamAV/html/mode-rust.js
+#usr/share/doc/ClamAV/html/print.html
+#usr/share/doc/ClamAV/html/searcher.js
+#usr/share/doc/ClamAV/html/searchindex.js
+#usr/share/doc/ClamAV/html/searchindex.json
+#usr/share/doc/ClamAV/html/theme-dawn.js
+#usr/share/doc/ClamAV/html/theme-tomorrow_night.js
+#usr/share/doc/ClamAV/html/tomorrow-night.css
 #var/ipfire/clamav
 var/ipfire/clamav/clamd.conf
 var/ipfire/clamav/clamd.conf.sample
 var/ipfire/clamav/freshclam.conf
 var/ipfire/clamav/freshclam.conf.sample
 var/lib/clamav
-etc/rc.d/init.d/clamav
 usr/local/bin/clamavctrl
diff --git a/lfs/clamav b/lfs/clamav
index 4dc996ea4..9076d0f71 100644
--- a/lfs/clamav
+++ b/lfs/clamav
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 0.103.3
+VER        = 0.104.0
 
 THISAPP    = clamav-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,14 +32,10 @@  DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = clamav
-PAK_VER    = 56
+PAK_VER    = 57
 
 DEPS       =
 
-ifeq "$(BUILD_PLATFORM)" "arm"
-CONFIGURE_FLAGS = --disable-fanotify
-endif
-
 DATABASE_DIR = /var/lib/clamav
 
 ###############################################################################
@@ -50,7 +46,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f8dcf678953f6af056ddd5917bcc50c3
+$(DL_FILE)_MD5 = 3f4789c09f5a35e9ea580edd5c3e54b6
 
 install : $(TARGET)
 
@@ -83,19 +79,31 @@  $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && ./configure \
-		--prefix=/usr \
-		--disable-clamonacc \
-		--sysconfdir=/var/ipfire/clamav \
-		--with-dbdir=$(DATABASE_DIR) \
-		$(CONFIGURE_FLAGS)
-	cd $(DIR_APP) && make $(MAKETUNING)
-	cd $(DIR_APP) && make install
+
+	cd $(DIR_APP) && mkdir -pv build
+	cd $(DIR_APP)/build && cmake .. -G Ninja \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=/usr/lib \
+		-DOPTIMIZE=ON \
+		-DBYTECODE_RUNTIME="interpreter" \
+		-DENABLE_TESTS=OFF \
+		-DENABLE_CLAMONACC=OFF \
+		-DENABLE_MILTER=OFF \
+		-DENABLE_MAN_PAGES=OFF \
+		-DENABLE_EXTERNAL_MSPACK=OFF \
+		-DENABLE_FRESHCLAM_DNS_FIX=ON \
+		-DAPP_CONFIG_DIRECTORY=/var/ipfire/clamav \
+		-DDATABASE_DIRECTORY=$(DATABASE_DIR)
+
+	cd $(DIR_APP)/build && ninja $(MAKETUNING) && ninja install
+
 	mkdir -pv $(DATABASE_DIR)
 	chown clamav.clamav -R $(DATABASE_DIR)
 	rm -rfv $(DATABASE_DIR)/*.cvd
+	mkdir -pv /var/ipfire/clamav
 	cp -rf $(DIR_SRC)/config/clamav/* /var/ipfire/clamav/
-	mkdir -p /var/run/clamav
+	mkdir -pv /var/run/clamav
 	chown clamav:clamav /var/run/clamav
 	#install initscripts
 	$(call INSTALL_INITSCRIPT,clamav)