pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

work in progress to clamav update to 1.4.3. Known to build on netbsd-10. frechclam can download database and clamd does start.



Module Name:	pkgsrc-wip
Committed By:	Manuel Bouyer <bouyer%antioche.eu.org@localhost>
Pushed By:	bouyer
Date:		Sat Aug 23 19:53:41 2025 +0200
Changeset:	1623fd836639500f7cd12abfe64a15486802c62e

Added Files:
	clamav/COMMIT_MSG
	clamav/DEINSTALL
	clamav/DESCR
	clamav/Makefile
	clamav/Makefile.common
	clamav/PLIST
	clamav/TODO
	clamav/buildlink3.mk
	clamav/cargo-depends.mk
	clamav/distinfo
	clamav/files/clamav-milter.sh
	clamav/files/clamd.sh
	clamav/files/freshclamd.sh
	clamav/files/smf/clamd.sh
	clamav/files/smf/freshclamd.sh
	clamav/files/smf/manifest.xml
	clamav/options.mk
	clamav/patches/patch-aa
	clamav/patches/patch-etc_clamav-milter.conf.sample
	clamav/patches/patch-etc_clamd.conf.sample
	clamav/patches/patch-etc_freshclam.conf.sample
	clamav/patches/patch-libclamav_fmap.c
	clamav/patches/patch-libclamav_fmap.h

Log Message:
work in progress to clamav update to 1.4.3.
Known to build on netbsd-10. frechclam can download database and clamd
does start.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=1623fd836639500f7cd12abfe64a15486802c62e

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 clamav/COMMIT_MSG                                  | 133 +++++++
 clamav/DEINSTALL                                   |   9 +
 clamav/DESCR                                       |   5 +
 clamav/Makefile                                    | 116 ++++++
 clamav/Makefile.common                             |  15 +
 clamav/PLIST                                       |  46 +++
 clamav/TODO                                        |   3 +
 clamav/buildlink3.mk                               |  18 +
 clamav/cargo-depends.mk                            | 143 +++++++
 clamav/distinfo                                    | 434 +++++++++++++++++++++
 clamav/files/clamav-milter.sh                      |  76 ++++
 clamav/files/clamd.sh                              |  78 ++++
 clamav/files/freshclamd.sh                         |  20 +
 clamav/files/smf/clamd.sh                          |  30 ++
 clamav/files/smf/freshclamd.sh                     |  28 ++
 clamav/files/smf/manifest.xml                      |  71 ++++
 clamav/options.mk                                  |  42 ++
 clamav/patches/patch-aa                            |  14 +
 clamav/patches/patch-etc_clamav-milter.conf.sample |  24 ++
 clamav/patches/patch-etc_clamd.conf.sample         |  33 ++
 clamav/patches/patch-etc_freshclam.conf.sample     |  15 +
 clamav/patches/patch-libclamav_fmap.c              |  25 ++
 clamav/patches/patch-libclamav_fmap.h              |  25 ++
 23 files changed, 1403 insertions(+)

diffs:
diff --git a/clamav/COMMIT_MSG b/clamav/COMMIT_MSG
new file mode 100644
index 0000000000..3958995a63
--- /dev/null
+++ b/clamav/COMMIT_MSG
@@ -0,0 +1,133 @@
+clamav: update to 1.4.3
+main changes since 0.103.12:
+
+Added support for extracting ALZ archives. The new ClamAV file type for
+ALZ archives is CL_TYPE_ALZ. Added a DCONF option to enable or disable
+ALZ archive support.
+
+    Tip: DCONF (Dynamic CONFiguration) is a feature that allows for some
+	configuration changes to be made via ClamAV .cfg "signatures".
+
+Added support for extracting LHA/LZH archives. The new ClamAV file type
+for LHA/LZH archives is CL_TYPE_LHA_LZH. Added a DCONF option to enable
+or disable LHA/LZH archive support.
+
+Added the ability to disable image fuzzy hashing, if needed. For context,
+image fuzzy hashing is a detection mechanism useful for identifying malware
+by matching images included with the malware or phishing email/document.
+
+New ClamScan options:
+
+--scan-image[=yes(*)/no]
+--scan-image-fuzzy-hash[=yes(*)/no]
+
+New ClamD config options:
+
+ScanImage yes(*)/no
+ScanImageFuzzyHash yes(*)/no
+
+New libclamav scan options:
+
+options.parse &= ~CL_SCAN_PARSE_IMAGE;
+options.parse &= ~CL_SCAN_PARSE_IMAGE_FUZZY_HASH;
+
+    Added a DCONF option to enable or disable image fuzzy hashing support.
+
+Added support for extracting and scanning attachments found in Microsoft
+OneNote section files. OneNote parsing will be enabled by default, but may
+be optionally disabled using one of the following options:
+a. The clamscan command line option: --scan-onenote=no,
+b. The clamd.conf config option: ScanOneNote no,
+c. The libclamav scan option options.parse &= ~CL_SCAN_PARSE_ONENOTE;,
+d.  A signature change to the daily.cfg dynamic configuration (DCONF).
+
+Added support for extracting Universal Disk Format (UDF) partitions.
+Specifically, this version adds support for the
+Beginning Extended Area Descriptor (BEA01) type of UDF files.
+
+Added an option to customize the size of ClamAV's clean file cache.
+Increasing the size of the clean file cache may improve scan performance but
+will require more RAM. The cache size value should be a square number or
+will be rounded up to the nearest square number.
+The cache size option for clamd and clamscan is --cache-size. Alternatively,
+you can customize the cache size for ClamD by setting CacheSize in clamd.conf.
+
+Raised the MaxScanSize limit so the total amount of data scanned when
+scanning a file or archive may exceed 4 gigabytes.
+Introduced the ability to suffix the MaxScanSize and other config file size
+options with a "G" or "g" for the number of gigabytes. For example,
+for ClamD you may now specify MaxScanSize 10G in clamd.conf. And for ClamScan,
+you may now specify --max-scansize=10g.
+The MaxFileSize is still limited internally in ClamAV to 2 gigabytes.
+Any file, or embedded file, larger than 2GB will be skipped. You may use
+clamscan --alert-exceeds-max, or the clamd.conf option AlertExceedsMax yes
+to tell if a scan is not completed because of the scan limits.
+
+Added ability for Freshclam to use a client certificate PEM file
+and a private key PEM file for authentication to a private mirror by
+setting the following environment variables:
+
+    FRESHCLAM_CLIENT_CERT: May be set to the path of a file (PEM)
+    containing the client certificate.
+    FRESHCLAM_CLIENT_KEY: May be set to the path of a file (PEM)
+    containing the client private key.
+    FRESHCLAM_CLIENT_KEY_PASSWD: May be set to a password for the client
+    key PEM file, if it is password protected.
+
+Added the ability to extract images embedded in HTML CSS <style> blocks.
+
+Updated to Sigtool so that the --vba option will extract VBA code
+from Microsoft Office documents the same way that libclamav extracts VBA.
+This resolves several issues where Sigtool could not extract VBA.
+Sigtool will also now display the normalized VBA code instead of the
+pre-normalized VBA code.
+
+Added a new ClamScan and ClamD option: --fail-if-cvd-older-than=days.
+Additionally, we introduce FailIfCvdOlderThan as a clamd.conf synonym
+for --fail-if-cvd-older-than. When passed, it causes ClamD to exit on
+startup with a non-zero return code if the virus database is older than
+the specified number of days.
+
+Added a new function cl_cvdgetage() to the libclamav API. This function
+will retrieve the age in seconds of the youngest file in a database directory,
+or the age of a single CVD (or CLD) file.
+
+Added a new function cl_engine_set_clcb_vba() to the libclamav API. Use this
+function to set a cb_vba callback function. The cb_vba callback function will
+be run whenever VBA is extracted from office documents. The provided data will
+be a normalized copy of the extracted VBA. This callback was added to support
+Sigtool so that it can use the same VBA extraction logic that ClamAV uses to
+scan documents.
+
+Support for decrypting read-only OLE2-based XLS files that are encrypted
+with the default password. Use of the default password will now appear in
+the metadata JSON.
+
+Overhauled the implementation of the all-match feature. The newer code is
+more reliable and easier to maintain.
+This project fixed several known issues with signature detection in
+all- match mode:
+	Enabled embedded file-type recognition signatures to match when
+	    a malware signature also matched in a scan of the same layer.
+	Enabled bytecode signatures to run in all-match mode after a match
+	    has occurred.
+	Fixed an assortment of all-match edge case issues.
+	Added multiple test cases to verify correct all-match behavior.
+
+Increased the default limits for file-size and scan-size:
+
+    MaxScanSize: 100M -> 400M
+    MaxFileSize: 25M -> 100M
+    StreamMaxLength: 25M -> 100M
+    PCREMaxFileSize: 25M -> 100M
+    MaxEmbeddedPE: 10M -> 40M
+    MaxHTMLNormalize: 10M -> 40M
+    MaxScriptNormalize: 5M -> 20M
+    MaxHTMLNoTags: 2M -> 8M
+
+Added image fuzzy hash subsignatures for logical signatures.
+Image fuzzy hash subsignatures are a new feature for detecting images known
+to be used in phishing campaigns or otherwise used when distributing malware.
+
+For a full list of changes, including bug fixes, see
+https://github.com/Cisco-Talos/clamav/blob/rel/1.4/NEWS.md
diff --git a/clamav/DEINSTALL b/clamav/DEINSTALL
new file mode 100644
index 0000000000..59fd32191a
--- /dev/null
+++ b/clamav/DEINSTALL
@@ -0,0 +1,9 @@
+# $NetBSD: DEINSTALL,v 1.1.1.1 2010/12/24 07:11:05 kefren Exp $
+
+case ${STAGE} in
+DEINSTALL)
+	# Unconditionally remove the virus databases when deinstalling.
+	${RM} -f @CLAMAV_DBDIR@/daily.cvd
+	${RM} -f @CLAMAV_DBDIR@/main.cvd
+	;;
+esac
diff --git a/clamav/DESCR b/clamav/DESCR
new file mode 100644
index 0000000000..7621892cd9
--- /dev/null
+++ b/clamav/DESCR
@@ -0,0 +1,5 @@
+Clam AntiVirus is an anti-virus toolkit written from scratch. It is licensed
+under GNU GPL2 and uses the virus database from OpenAntiVirus, which is an
+another free anti-virus project. In contrast to OpenAntiVirus (which is written
+in Java), Clam AntiVirus is written entirely in C and its database is KEPT UP
+TO DATE. It also detects polymorphic viruses as well.
diff --git a/clamav/Makefile b/clamav/Makefile
new file mode 100644
index 0000000000..ad04a53668
--- /dev/null
+++ b/clamav/Makefile
@@ -0,0 +1,116 @@
+# $NetBSD: Makefile,v 1.99 2025/04/19 07:58:20 wiz Exp $
+
+#PKGREVISION= 5
+.include "cargo-depends.mk"
+.include "Makefile.common"
+
+COMMENT=	Anti-virus toolkit
+
+USE_LANGUAGES=		c c++
+USE_LIBTOOL=		yes
+USE_TOOLS+=		gsed pkg-config gmake
+SET_LIBDIR=		yes
+CMAKE_CONFIGURE_ARGS+=  -DCMAKE_INSTALL_PREFIX=${PREFIX}
+CMAKE_CONFIGURE_ARGS+=  -DAPP_CONFIG_DIRECTORY=${PKG_SYSCONFDIR}
+CMAKE_CONFIGURE_ARGS+=  -DDATABASE_DIRECTORY=${CLAMAV_DBDIR}
+CMAKE_CONFIGURE_ARGS+=  -DCLAMAV_USER=${CLAMAV_USER}
+CMAKE_CONFIGURE_ARGS+=  -DCLAMAV_GROUP=${CLAMAV_GROUP}
+CMAKE_CONFIGURE_ARGS+=  -DENABLE_EXTERNAL_MSPACK=on
+CMAKE_CONFIGURE_ARGS+=  -DENABLE_TESTS=off
+CMAKE_CONFIGURE_ARGS+=  -DENABLE_MILTER=off
+#CMAKE_CONFIGURE_ARGS+=  -DJSONC_LIBRARY={BUILDLINK_PREFIX.json-c}/lib
+#CMAKE_CONFIGURE_ARGS+=  -DJSONC_INCLUDE_DIR={BUILDLINK_PREFIX.json-c}/include
+#CMAKE_CONFIGURE_ARGS+=  -DJSONC_LIBRARY={BUILDLINK_PREFIX.json-c}/lib
+#CMAKE_CONFIGURE_ARGS+=  -DCURL_INCLUDE_DIR={BUILDLINK_PREFIX.curl}/include
+#CMAKE_CONFIGURE_ARGS+=  -DCURL_LIBRARY={BUILDLINK_PREFIX.curl}/lib
+#CMAKE_CONFIGURE_ARGS+=  -D_INCLUDE_DIR={BUILDLINK_PREFIX.curl}/include
+#CMAKE_CONFIGURE_ARGS+=  -DCURL_LIBRARY={BUILDLINK_PREFIX.curl}/lib
+#CONFIGURE_ARGS+=	--with-ltdl-include=${BUILDLINK_PREFIX.libltdl}/include
+#CONFIGURE_ARGS+=	--with-ltdl-lib=${BUILDLINK_PREFIX.libltdl}/lib
+#CONFIGURE_ARGS+=	--with-openssl=${BUILDLINK_PREFIX.openssl}
+#CONFIGURE_ARGS+=	--with-pcre=${BUILDLINK_PREFIX.pcre2}
+#CONFIGURE_ARGS+=	--with-system-libmspack=${BUILDLINK_PREFIX.libmspack}
+#CONFIGURE_ARGS+=	--with-xml=${BUILDLINK_PREFIX.libxml2}
+#CONFIGURE_ARGS+=	--with-zlib=${BUILDLINK_PREFIX.zlib}
+# Linux only:
+#CONFIGURE_ARGS+=	--disable-clamonacc
+# Work around build failure PR pkg/54420
+#CONFIGURE_ARGS+=	--disable-unrar
+
+#CONFIGURE_ENV.SunOS+=	ac_cv_ld_version_script=no
+
+CHECK_PORTABILITY_SKIP=	contrib/* unit_tests/* win32/*
+
+.include "../../mk/compiler.mk"
+
+NOT_PAX_MPROTECT_SAFE+=	sbin/clamd
+NOT_PAX_MPROTECT_SAFE+=	bin/clamscan
+NOT_PAX_MPROTECT_SAFE+=	bin/freshclam
+
+CFLAGS.SunOS+=		-D__EXTENSIONS__
+.if ${PKGSRC_COMPILER:Mclang} || ${CC_VERSION:Mgcc-[6-9]*} || ${CC_VERSION:Mgcc-1[0-9].*}
+CFLAGS.SunOS+=		-D_XOPEN_SOURCE=600
+.endif
+
+BUILD_DEFS+=	CLAMAV_USER CLAMAV_GROUP CLAMAV_DBDIR
+FILES_SUBST+=	CLAMAV_USER=${CLAMAV_USER}
+FILES_SUBST+=	CLAMAV_GROUP=${CLAMAV_GROUP}
+FILES_SUBST+=	CLAMAV_DBDIR=${CLAMAV_DBDIR}
+MESSAGE_SUBST+=	CLAMAV_USER=${CLAMAV_USER}
+
+SUBST_CLASSES+=		vars
+SUBST_STAGE.vars=	pre-configure
+SUBST_FILES.vars=	etc/clamav-milter.conf.sample etc/clamd.conf.sample
+SUBST_VARS.vars=	CLAMAV_DBDIR
+
+RCD_SCRIPTS=	clamd freshclamd
+SMF_METHODS=	clamd freshclamd
+SMF_INSTANCES=	${SMF_METHODS}
+
+PKG_GROUPS+=	${CLAMAV_GROUP}
+PKG_USERS+=	${CLAMAV_USER}:${CLAMAV_GROUP}
+
+PKG_GROUPS_VARS+=	CLAMAV_GROUP
+PKG_USERS_VARS=		CLAMAV_USER
+
+EGDIR=		${PREFIX}/share/examples/clamav
+
+CONF_SAMPLES=		clamd.conf freshclam.conf
+
+.include "options.mk"
+
+OWN_DIRS_PERMS=		${CLAMAV_DBDIR} ${CLAMAV_USER} ${CLAMAV_GROUP} 0775
+CONF_FILES=		# empty
+CONF_FILES_PERMS=	# empty
+.for i in ${CONF_SAMPLES}
+CONF_FILES+=		${EGDIR}/${i} ${PKG_SYSCONFDIR}/${i}
+.endfor
+
+INSTALLATION_DIRS+=	${EGDIR}
+
+pre-configure:
+	#prevent docs install
+	${RM} -r ${WRKSRC}/docs/html
+
+post-install:
+.for i in ${CONF_SAMPLES}
+	${MV} ${DESTDIR}${PKG_SYSCONFDIR}/${i}.sample ${DESTDIR}${EGDIR}/${i}
+.endfor
+
+.include "../../devel/cmake/build.mk"
+.include "../../lang/rust/cargo.mk"
+.include "../../archivers/bzip2/buildlink3.mk"
+.include "../../archivers/libmspack/buildlink3.mk"
+.include "../../converters/libiconv/buildlink3.mk"
+#.include "../../devel/libltdl/buildlink3.mk"
+.include "../../devel/pcre2/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+#.include "../../devel/gmp/buildlink3.mk"
+#.include "../../mail/libmilter/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.include "../../textproc/json-c/buildlink3.mk"
+.include "../../textproc/libxml2/buildlink3.mk"
+.include "../../www/curl/buildlink3.mk"
+.include "../../devel/ncurses/buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/clamav/Makefile.common b/clamav/Makefile.common
new file mode 100644
index 0000000000..a85fc21bf1
--- /dev/null
+++ b/clamav/Makefile.common
@@ -0,0 +1,15 @@
+# $NetBSD: Makefile.common,v 1.27 2024/09/05 15:10:15 taca Exp $
+#
+# used by security/clamav/Makefile
+# used by security/clamav-doc/Makefile
+
+DISTNAME=	clamav-1.4.3
+CATEGORIES=	security
+MASTER_SITES=	https://www.clamav.net/downloads/production/
+
+MAINTAINER?=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://www.clamav.net/
+LICENSE=	gnu-gpl-v2
+
+DISTINFO_FILE=	${.CURDIR}/../../security/clamav/distinfo
+PATCHDIR=	${.CURDIR}/../../security/clamav/patches
diff --git a/clamav/PLIST b/clamav/PLIST
new file mode 100644
index 0000000000..f72d78fdbf
--- /dev/null
+++ b/clamav/PLIST
@@ -0,0 +1,46 @@
+@comment $NetBSD: PLIST,v 1.8 2019/10/10 15:41:29 prlw1 Exp $
+bin/clamav-config
+bin/clambc
+bin/clamconf
+bin/clamdscan
+bin/clamdtop
+bin/clamscan
+bin/clamsubmit
+bin/freshclam
+bin/sigtool
+include/clamav-types.h
+include/clamav-version.h
+include/clamav.h
+include/libfreshclam.h
+lib/libclamav.so
+lib/libclamav.so.12
+lib/libclamav.so.12.0.3
+lib/libclamav_rust.a
+lib/libclamunrar.so
+lib/libclamunrar.so.12
+lib/libclamunrar.so.12.0.3
+lib/libclamunrar_iface.so
+lib/libclamunrar_iface.so.12
+lib/libclamunrar_iface.so.12.0.3
+lib/libfreshclam.so
+lib/libfreshclam.so.3
+lib/libfreshclam.so.3.0.2
+lib/pkgconfig/libclamav.pc
+man/man1/clambc.1
+man/man1/clamconf.1
+man/man1/clamdscan.1
+man/man1/clamdtop.1
+man/man1/clamscan.1
+man/man1/clamsubmit.1
+man/man1/freshclam.1
+man/man1/sigtool.1
+man/man5/clamav-milter.conf.5
+man/man5/clamd.conf.5
+man/man5/freshclam.conf.5
+man/man8/clamav-milter.8
+man/man8/clamd.8
+sbin/clamd
+${PLIST.milter}sbin/clamav-milter
+share/examples/clamav/clamd.conf
+share/examples/clamav/freshclam.conf
+${PLIST.milter}share/examples/clamav/clamav-milter.conf
diff --git a/clamav/TODO b/clamav/TODO
new file mode 100644
index 0000000000..5de95785a8
--- /dev/null
+++ b/clamav/TODO
@@ -0,0 +1,3 @@
+options.mk has not been ported to the new cmake build yet.
+The build has only been tested on netbsd-10
+Makefile needs more cleanup
diff --git a/clamav/buildlink3.mk b/clamav/buildlink3.mk
new file mode 100644
index 0000000000..c71fb70708
--- /dev/null
+++ b/clamav/buildlink3.mk
@@ -0,0 +1,18 @@
+# $NetBSD: buildlink3.mk,v 1.23 2025/04/17 21:52:13 wiz Exp $
+
+BUILDLINK_TREE+=	clamav
+
+.if !defined(CLAMAV_BUILDLINK3_MK)
+CLAMAV_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.clamav+=	clamav>=0.95.3nb1
+BUILDLINK_ABI_DEPENDS.clamav+=	clamav>=0.103.12nb4
+BUILDLINK_PKGSRCDIR.clamav?=	../../security/clamav
+
+.include "../../archivers/bzip2/buildlink3.mk"
+.include "../../devel/pcre2/buildlink3.mk"
+.include "../../textproc/json-c/buildlink3.mk"
+.include "../../textproc/libxml2/buildlink3.mk"
+.endif	# CLAMAV_BUILDLINK3_MK
+
+BUILDLINK_TREE+=	-clamav
diff --git a/clamav/cargo-depends.mk b/clamav/cargo-depends.mk
new file mode 100644
index 0000000000..bbcbdc8d88
--- /dev/null
+++ b/clamav/cargo-depends.mk
@@ -0,0 +1,143 @@
+# $NetBSD$
+
+CARGO_CRATE_DEPENDS+=	adler-1.0.2
+CARGO_CRATE_DEPENDS+=	adler32-1.2.0
+CARGO_CRATE_DEPENDS+=	aho-corasick-1.1.3
+CARGO_CRATE_DEPENDS+=	android-tzdata-0.1.1
+CARGO_CRATE_DEPENDS+=	android_system_properties-0.1.5
+CARGO_CRATE_DEPENDS+=	autocfg-1.3.0
+CARGO_CRATE_DEPENDS+=	base64-0.21.7
+CARGO_CRATE_DEPENDS+=	bindgen-0.65.1
+CARGO_CRATE_DEPENDS+=	bit_field-0.10.2
+CARGO_CRATE_DEPENDS+=	bitflags-1.3.2
+CARGO_CRATE_DEPENDS+=	bitflags-2.5.0
+CARGO_CRATE_DEPENDS+=	block-buffer-0.10.4
+CARGO_CRATE_DEPENDS+=	bumpalo-3.16.0
+CARGO_CRATE_DEPENDS+=	bytemuck-1.21.0
+CARGO_CRATE_DEPENDS+=	byteorder-1.5.0
+CARGO_CRATE_DEPENDS+=	bytes-1.9.0
+CARGO_CRATE_DEPENDS+=	bzip2-rs-0.1.2
+CARGO_CRATE_DEPENDS+=	cbindgen-0.25.0
+CARGO_CRATE_DEPENDS+=	cc-1.0.97
+CARGO_CRATE_DEPENDS+=	cexpr-0.6.0
+CARGO_CRATE_DEPENDS+=	cfg-if-1.0.0
+CARGO_CRATE_DEPENDS+=	chrono-0.4.38
+CARGO_CRATE_DEPENDS+=	clang-sys-1.7.0
+CARGO_CRATE_DEPENDS+=	color_quant-1.1.0
+CARGO_CRATE_DEPENDS+=	core-foundation-sys-0.8.6
+CARGO_CRATE_DEPENDS+=	cpufeatures-0.2.12
+CARGO_CRATE_DEPENDS+=	crc32fast-1.4.0
+CARGO_CRATE_DEPENDS+=	crossbeam-deque-0.8.5
+CARGO_CRATE_DEPENDS+=	crossbeam-epoch-0.9.18
+CARGO_CRATE_DEPENDS+=	crossbeam-utils-0.8.19
+CARGO_CRATE_DEPENDS+=	crunchy-0.2.2
+CARGO_CRATE_DEPENDS+=	crypto-common-0.1.6
+CARGO_CRATE_DEPENDS+=	delharc-0.6.1
+CARGO_CRATE_DEPENDS+=	digest-0.10.7
+CARGO_CRATE_DEPENDS+=	either-1.11.0
+CARGO_CRATE_DEPENDS+=	encoding_rs-0.8.34
+CARGO_CRATE_DEPENDS+=	enum-primitive-derive-0.2.2
+CARGO_CRATE_DEPENDS+=	errno-0.3.8
+CARGO_CRATE_DEPENDS+=	exr-1.72.0
+CARGO_CRATE_DEPENDS+=	fastrand-2.1.0
+CARGO_CRATE_DEPENDS+=	fdeflate-0.3.4
+CARGO_CRATE_DEPENDS+=	flate2-1.0.30
+CARGO_CRATE_DEPENDS+=	flume-0.11.0
+CARGO_CRATE_DEPENDS+=	generic-array-0.14.7
+CARGO_CRATE_DEPENDS+=	gif-0.13.1
+CARGO_CRATE_DEPENDS+=	glob-0.3.1
+CARGO_CRATE_DEPENDS+=	half-2.4.1
+CARGO_CRATE_DEPENDS+=	hashbrown-0.12.3
+CARGO_CRATE_DEPENDS+=	heck-0.4.1
+CARGO_CRATE_DEPENDS+=	hex-0.4.3
+CARGO_CRATE_DEPENDS+=	hex-literal-0.4.1
+CARGO_CRATE_DEPENDS+=	home-0.5.9
+CARGO_CRATE_DEPENDS+=	iana-time-zone-0.1.60
+CARGO_CRATE_DEPENDS+=	iana-time-zone-haiku-0.1.2
+CARGO_CRATE_DEPENDS+=	image-0.24.9
+CARGO_CRATE_DEPENDS+=	indexmap-1.9.3
+CARGO_CRATE_DEPENDS+=	inflate-0.4.5
+CARGO_CRATE_DEPENDS+=	itertools-0.10.5
+CARGO_CRATE_DEPENDS+=	itoa-1.0.11
+CARGO_CRATE_DEPENDS+=	jpeg-decoder-0.3.1
+CARGO_CRATE_DEPENDS+=	js-sys-0.3.69
+CARGO_CRATE_DEPENDS+=	lazy_static-1.4.0
+CARGO_CRATE_DEPENDS+=	lazycell-1.3.0
+CARGO_CRATE_DEPENDS+=	lebe-0.5.2
+CARGO_CRATE_DEPENDS+=	libc-0.2.155
+CARGO_CRATE_DEPENDS+=	libloading-0.8.3
+CARGO_CRATE_DEPENDS+=	linux-raw-sys-0.4.13
+CARGO_CRATE_DEPENDS+=	lock_api-0.4.12
+CARGO_CRATE_DEPENDS+=	log-0.4.21
+CARGO_CRATE_DEPENDS+=	memchr-2.7.2
+CARGO_CRATE_DEPENDS+=	minimal-lexical-0.2.1
+CARGO_CRATE_DEPENDS+=	miniz_oxide-0.7.2
+CARGO_CRATE_DEPENDS+=	nom-7.1.3
+CARGO_CRATE_DEPENDS+=	num-complex-0.4.5
+CARGO_CRATE_DEPENDS+=	num-integer-0.1.46
+CARGO_CRATE_DEPENDS+=	num-traits-0.2.19
+CARGO_CRATE_DEPENDS+=	once_cell-1.19.0
+CARGO_CRATE_DEPENDS+=	onenote_parser-0.3.1
+CARGO_CRATE_DEPENDS+=	paste-1.0.14
+CARGO_CRATE_DEPENDS+=	peeking_take_while-0.1.2
+CARGO_CRATE_DEPENDS+=	png-0.17.13
+CARGO_CRATE_DEPENDS+=	prettyplease-0.2.19
+CARGO_CRATE_DEPENDS+=	primal-check-0.3.3
+CARGO_CRATE_DEPENDS+=	proc-macro2-1.0.81
+CARGO_CRATE_DEPENDS+=	qoi-0.4.1
+CARGO_CRATE_DEPENDS+=	quote-1.0.36
+CARGO_CRATE_DEPENDS+=	rayon-1.10.0
+CARGO_CRATE_DEPENDS+=	rayon-core-1.12.1
+CARGO_CRATE_DEPENDS+=	regex-1.10.4
+CARGO_CRATE_DEPENDS+=	regex-automata-0.4.6
+CARGO_CRATE_DEPENDS+=	regex-syntax-0.8.3
+CARGO_CRATE_DEPENDS+=	rustc-hash-1.1.0
+CARGO_CRATE_DEPENDS+=	rustdct-0.7.1
+CARGO_CRATE_DEPENDS+=	rustfft-6.2.0
+CARGO_CRATE_DEPENDS+=	rustix-0.38.34
+CARGO_CRATE_DEPENDS+=	ryu-1.0.17
+CARGO_CRATE_DEPENDS+=	scopeguard-1.2.0
+CARGO_CRATE_DEPENDS+=	serde-1.0.200
+CARGO_CRATE_DEPENDS+=	serde_derive-1.0.200
+CARGO_CRATE_DEPENDS+=	serde_json-1.0.116
+CARGO_CRATE_DEPENDS+=	sha1-0.10.6
+CARGO_CRATE_DEPENDS+=	sha2-0.10.8
+CARGO_CRATE_DEPENDS+=	shlex-1.3.0
+CARGO_CRATE_DEPENDS+=	simd-adler32-0.3.7
+CARGO_CRATE_DEPENDS+=	smallvec-1.13.2
+CARGO_CRATE_DEPENDS+=	spin-0.9.8
+CARGO_CRATE_DEPENDS+=	strength_reduce-0.2.4
+CARGO_CRATE_DEPENDS+=	syn-1.0.109
+CARGO_CRATE_DEPENDS+=	syn-2.0.60
+CARGO_CRATE_DEPENDS+=	tempfile-3.10.1
+CARGO_CRATE_DEPENDS+=	thiserror-1.0.59
+CARGO_CRATE_DEPENDS+=	thiserror-impl-1.0.59
+CARGO_CRATE_DEPENDS+=	tiff-0.9.1
+CARGO_CRATE_DEPENDS+=	tinyvec-1.6.0
+CARGO_CRATE_DEPENDS+=	toml-0.5.11
+CARGO_CRATE_DEPENDS+=	transpose-0.2.3
+CARGO_CRATE_DEPENDS+=	typenum-1.17.0
+CARGO_CRATE_DEPENDS+=	unicode-ident-1.0.12
+CARGO_CRATE_DEPENDS+=	unicode-segmentation-1.11.0
+CARGO_CRATE_DEPENDS+=	uuid-1.8.0
+CARGO_CRATE_DEPENDS+=	version_check-0.9.4
+CARGO_CRATE_DEPENDS+=	wasm-bindgen-0.2.92
+CARGO_CRATE_DEPENDS+=	wasm-bindgen-backend-0.2.92
+CARGO_CRATE_DEPENDS+=	wasm-bindgen-macro-0.2.92
+CARGO_CRATE_DEPENDS+=	wasm-bindgen-macro-support-0.2.92
+CARGO_CRATE_DEPENDS+=	wasm-bindgen-shared-0.2.92
+CARGO_CRATE_DEPENDS+=	weezl-0.1.8
+CARGO_CRATE_DEPENDS+=	which-4.4.2
+CARGO_CRATE_DEPENDS+=	widestring-1.1.0
+CARGO_CRATE_DEPENDS+=	windows-core-0.52.0
+CARGO_CRATE_DEPENDS+=	windows-sys-0.52.0
+CARGO_CRATE_DEPENDS+=	windows-targets-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_aarch64_gnullvm-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_aarch64_msvc-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_i686_gnu-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_i686_gnullvm-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_i686_msvc-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_x86_64_gnu-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_x86_64_gnullvm-0.52.5
+CARGO_CRATE_DEPENDS+=	windows_x86_64_msvc-0.52.5
+CARGO_CRATE_DEPENDS+=	zune-inflate-0.2.54
diff --git a/clamav/distinfo b/clamav/distinfo
new file mode 100644
index 0000000000..afe5dce15b
--- /dev/null
+++ b/clamav/distinfo
@@ -0,0 +1,434 @@
+$NetBSD: distinfo,v 1.46 2024/09/05 15:10:15 taca Exp $
+
+BLAKE2s (adler-1.0.2.crate) = f263779d752af886455fc0f42c997893fb1a09edcf1bd2980605251c2e3602aa
+SHA512 (adler-1.0.2.crate) = 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
+Size (adler-1.0.2.crate) = 12778 bytes
+BLAKE2s (adler32-1.2.0.crate) = 8bc63ca383f40390bb522c750ef33e14b5e49bc48eb0ec33a140f615c598a6df
+SHA512 (adler32-1.2.0.crate) = 8ed72612fb78e213fc92963fdae0508ef26988656c939e6c9cddccbe2658d4a956a8ae934d9658262a8b2687dc446b3f1ee7614128b440487c81e606526dfda3
+Size (adler32-1.2.0.crate) = 6411 bytes
+BLAKE2s (aho-corasick-1.1.3.crate) = 36150b5dacb72fa7cd0d33aee15e14857914224878f0af76eabcb9daa68e3ae0
+SHA512 (aho-corasick-1.1.3.crate) = ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+Size (aho-corasick-1.1.3.crate) = 183311 bytes
+BLAKE2s (android-tzdata-0.1.1.crate) = fbf2ed4b7b8c2d0aac069c9d638b0010da9da1cd5dec9a2495a3b396966e55fd
+SHA512 (android-tzdata-0.1.1.crate) = 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
+Size (android-tzdata-0.1.1.crate) = 7674 bytes
+BLAKE2s (android_system_properties-0.1.5.crate) = e405a7701baf9817ca6e946b78ab2ae83f4667112c19c5214606cd863ca5c765
+SHA512 (android_system_properties-0.1.5.crate) = b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+Size (android_system_properties-0.1.5.crate) = 5243 bytes
+BLAKE2s (autocfg-1.3.0.crate) = 4b8d612ff5e388a3a839ce0211c16422cce28b2bf8a607944c90de0737f97850
+SHA512 (autocfg-1.3.0.crate) = a5570b955d57a7183ba148b335837dc5af24b202e80681027536d33fe2822509ba644fc70c29f018c893285ced2bf6774f44ca6c59f7c7e2226d5349cf7c3635
+Size (autocfg-1.3.0.crate) = 16524 bytes
+BLAKE2s (base64-0.21.7.crate) = df2f4858bff2d5cf89085ab367e7c3867edbd5c0b23e98ee510dd2d22c7634a7
+SHA512 (base64-0.21.7.crate) = c6986d88dd9aa081d914f35b4174be4ba874848657ac4b5e63b9b45af765d973289c548ccb5a01584edfc0d8d79ff5be25b51365295d6e7a311bd7f0ae3c0cb9
+Size (base64-0.21.7.crate) = 82576 bytes
+BLAKE2s (bindgen-0.65.1.crate) = 4b12287cf9645e668b849dff6a68015517e8905e966c8934c6aa273179b1149d
+SHA512 (bindgen-0.65.1.crate) = f3fab122b02abe8eca4438edb220eae0066a43f6ff4459aedca6c6261e769bdbdd6c820e5b29ddbc5b5cdf8ec0bdac1a4bc374fae2772117958e7c40bc22e8f2
+Size (bindgen-0.65.1.crate) = 213479 bytes
+BLAKE2s (bit_field-0.10.2.crate) = 498f63486a1fb1f3ce3cb2e9c62d45f87db96844f8cd92230e6fe3d5b0281314
+SHA512 (bit_field-0.10.2.crate) = 99bacb002aa9ef89cef1403429807042135898614df85e59475772b90d2d21972ddc77ef9b129ca931355ff11bfb3de66b55b828bbf792f76300fc5cfef066a8
+Size (bit_field-0.10.2.crate) = 10568 bytes
+BLAKE2s (bitflags-1.3.2.crate) = e3a3b45a4403823875a03dbda329ca16068fa8f847cef81987c6b780101f2415
+SHA512 (bitflags-1.3.2.crate) = 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+Size (bitflags-1.3.2.crate) = 23021 bytes
+BLAKE2s (bitflags-2.5.0.crate) = 12cca89a1d884de4866aa3c9cb0def390cb7b495c57ab4438fd5279ea90d7301
+SHA512 (bitflags-2.5.0.crate) = 75d7a89e53e5e7582591932bc430e6a1db7ed0f914ded6dbcf957125be52975598df7fee14ef816f66544432ef0505f0a081f3794d17138ec429e283fe14fcf9
+Size (bitflags-2.5.0.crate) = 43821 bytes
+BLAKE2s (block-buffer-0.10.4.crate) = 4422d2b2ea2e697a7339956a06cff79b3c5d6b263fbf51993c90fef1f9a0a9ef
+SHA512 (block-buffer-0.10.4.crate) = b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+Size (block-buffer-0.10.4.crate) = 10538 bytes
+BLAKE2s (bumpalo-3.16.0.crate) = 718bb7ba9add434df2b5e3f8ea1ac354f2e51c0f0a6d8d77296504d6c1ca87b2
+SHA512 (bumpalo-3.16.0.crate) = a51b75c36f6794db444cab20eeb24f42a319080ecb486a56d254d6f873f3d188b5ccba11db30c068bd0c52c4322d4a3f5f5195c81c94b0bc04387030418835b1
+Size (bumpalo-3.16.0.crate) = 85677 bytes
+BLAKE2s (bytemuck-1.21.0.crate) = d6a514c4709086dbe5197e1a7d56d36e821dfe26082847391bac0109c2c38b18
+SHA512 (bytemuck-1.21.0.crate) = 64abfc5c0430b8bbb4b75fa7ee43037ceb180699655c0862b2699f3823fc445d931d3284ccc88dfdc98ed1a24a660cf6ea1040f91c6b2ba1cb21ab83c89d9b18
+Size (bytemuck-1.21.0.crate) = 51553 bytes
+BLAKE2s (byteorder-1.5.0.crate) = b610119a2e2d4b96996b58e8d4920729fa24d4a96d14852953fdf8dbe035cad0
+SHA512 (byteorder-1.5.0.crate) = 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+Size (byteorder-1.5.0.crate) = 23288 bytes
+BLAKE2s (bytes-1.9.0.crate) = 6d973d1d9dd231e5f2a27d308385f60e27c3a2a9a7e487c9434ea089a0d97e39
+SHA512 (bytes-1.9.0.crate) = e6c0681c535db6035c1fb1c0481725bb8ab341b6324acde07ac4b60cc4f490ec6ff01478bc00fae00ade2bc5420f9d14cc44438e5d156bcce91cc0f06118296b
+Size (bytes-1.9.0.crate) = 67320 bytes
+BLAKE2s (bzip2-rs-0.1.2.crate) = 6997423ed8b591b23ac70538a83a11e0e1edbae2300733d675d9be9f6130af50
+SHA512 (bzip2-rs-0.1.2.crate) = 00683e16f06a3c5589fbb6cb215ecccba4a8619916de80024a917f98f10bab4c663036fa3f922783ca19bb04a1653ec2ab593c1f36f587e931bd80cb11a79765
+Size (bzip2-rs-0.1.2.crate) = 253906 bytes
+BLAKE2s (cbindgen-0.25.0.crate) = c01105b3a897692d4f7f3a78aed507ef1788b0968a1ea66dae52fbdcee5e509e
+SHA512 (cbindgen-0.25.0.crate) = 2a4bfcb41384a82dc1fea6f124187ee9f79a6795fcd68c74706d500d0c266cab962d1807627ceff58ded123939ff868ca329f9aa85fd5969556294a3e4ed5eed
+Size (cbindgen-0.25.0.crate) = 200141 bytes
+BLAKE2s (cc-1.0.97.crate) = 25639a563d6d28ac1d4c1d7f92c67ed4371e40411d4537770b74eb2815ad72ed
+SHA512 (cc-1.0.97.crate) = 119d1769530ec2fcc643b9b4a0f2a45db6f0772e4df882b832f961824bbb41d101d4a507573b4e05b4627d647fa823e81bc66dafdde40146878616af96b24143
+Size (cc-1.0.97.crate) = 76951 bytes
+BLAKE2s (cexpr-0.6.0.crate) = 8c05ce0b5d778ae61bd8ac4713e379eb82631c2745aafae8a3c1b709306f3abf
+SHA512 (cexpr-0.6.0.crate) = 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886
+Size (cexpr-0.6.0.crate) = 17966 bytes
+BLAKE2s (cfg-if-1.0.0.crate) = fbb02f63b24cc224b045ff2aac3aefd0a77cf7b578df4d5f9da9517a59aaf9bb
+SHA512 (cfg-if-1.0.0.crate) = 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+Size (cfg-if-1.0.0.crate) = 7934 bytes
+BLAKE2s (chrono-0.4.38.crate) = cd804c8f2c3ec8027f1a28fc2406b92e8cb27989956cf7e27fb98f6e338704cf
+SHA512 (chrono-0.4.38.crate) = 858e47e3facebd5383e71898f26b27d92fe4a69027e2cc47da2af59975ead7767355e0b699f4228eabe76a3eff8b2519c7cecf8b60dc3fc60fbf9b28e2f3d4d9
+Size (chrono-0.4.38.crate) = 220559 bytes
+BLAKE2s (clamav-1.4.3.tar.gz) = 419c9d306de5b139361f9c0de8ab5e8c62825edbaccd0cc37709f7c3a58ea619
+SHA512 (clamav-1.4.3.tar.gz) = 26d41f9ac6579a1a43be23076a7393ff877119cf6ccb83686927f8c680bfdc50c45be2a6abf8fdd9af98113fd7e6c25e5c658803fd37979d1c1af8667d8b24b5
+Size (clamav-1.4.3.tar.gz) = 49606835 bytes
+BLAKE2s (clang-sys-1.7.0.crate) = e2d4f063bac7ae563cef9363b02884fc718864129c02ae62606757b232db9c22
+SHA512 (clang-sys-1.7.0.crate) = e544984d5bd76824ea2093f43f98b59a99e1ca8a5de40e49164b870ed4a91a530f3492faf0678190b91e74aa5d122bdbb32c649998d0ce24912dfb0b83ed6b81
+Size (clang-sys-1.7.0.crate) = 42088 bytes
+BLAKE2s (color_quant-1.1.0.crate) = 1aecde4105fac2b5caed5200763780f18edfcf9ddcbad72d63b41e149d1885ea
+SHA512 (color_quant-1.1.0.crate) = 690c928bda4b7b57425f38ea68ac89cde2473b7a91b7e62c04a8f2c5a0fa3505e26b065d48b7ad0a8bb491f92f600f896fefdad3ce0e86e43cbf4f9a89e94201
+Size (color_quant-1.1.0.crate) = 6649 bytes
+BLAKE2s (core-foundation-sys-0.8.6.crate) = 1bc116ebd1f51c420896e37f6d9e217b899f4f637d69a2c54ad4f5c7bc87e69e
+SHA512 (core-foundation-sys-0.8.6.crate) = 24a8958cb16b081862a9000affb0147b8b3be1a664b834c3dbddbff03e709de3f4060ff4800e5a35453f4392ccf33168e8b864be71b17be38cb264a39b915100
+Size (core-foundation-sys-0.8.6.crate) = 37629 bytes
+BLAKE2s (cpufeatures-0.2.12.crate) = 1c3b51c1ad9e7bbe04b2019765e3e5f06b1066d12fc8bd7d8ebc27423ee81c73
+SHA512 (cpufeatures-0.2.12.crate) = 52742595702fc3371d4126fb355f3d7a6da514a94e43170f1db041cc6c560027f92115eab7846131dba1018ca5c72003ae36f945c1de88d57a0e7f66331623c6
+Size (cpufeatures-0.2.12.crate) = 12837 bytes
+BLAKE2s (crc32fast-1.4.0.crate) = d8afc5b7ff7f12dc81589a14d0012f8f687533491d6e066f984f85d3703bb24e
+SHA512 (crc32fast-1.4.0.crate) = 3e0bf1d2411ad9c651e0242c574cfda09403db24ab4b55560145ee73b31b08be45e5e12ce2db991d165ff056c7f2f67203fb2c048651f1c66ce90ec3276c455e
+Size (crc32fast-1.4.0.crate) = 38665 bytes
+BLAKE2s (crossbeam-deque-0.8.5.crate) = b7cdbff28b832e07a9d55043d30d145d09bbe2e0216369b37a8491e1005e9c98
+SHA512 (crossbeam-deque-0.8.5.crate) = 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+Size (crossbeam-deque-0.8.5.crate) = 21726 bytes
+BLAKE2s (crossbeam-epoch-0.9.18.crate) = 6c1696682cc558719ff48faa4ffdc28b562cafea7f084f9b09a99f317def636e
+SHA512 (crossbeam-epoch-0.9.18.crate) = 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+Size (crossbeam-epoch-0.9.18.crate) = 46875 bytes
+BLAKE2s (crossbeam-utils-0.8.19.crate) = e27f270c104f15e0674d86fb6a78b976eac1b5c4c45904489c78bc24c394770d
+SHA512 (crossbeam-utils-0.8.19.crate) = 6e742fbb0d2a6371db87e81f8ac583259530a288237d0e8347394581c60004703a822318ec945936c410bb44001b115d8d986bb264e5b2d8091bb63a8edd93a9
+Size (crossbeam-utils-0.8.19.crate) = 42328 bytes
+BLAKE2s (crunchy-0.2.2.crate) = 5238c2cdfcfcae0b56c35a607e1ce33cce4ba6f2c45c3996eb20abaa03ce1e0b
+SHA512 (crunchy-0.2.2.crate) = 36dc0aebc41a3aac5f1b178a7e61b65bcd9bb5c8539b2024f79428200f7c62daa7098af55c6ab0765febd2f8969bd6c0ac8096f73cdc0958e5c4e4eb6a4f7025
+Size (crunchy-0.2.2.crate) = 2995 bytes
+BLAKE2s (crypto-common-0.1.6.crate) = 855d36a49ecab87b6f8a58c85a0360ab113d0615fa206f5e1bf200caa2fcbfd5
+SHA512 (crypto-common-0.1.6.crate) = 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
+Size (crypto-common-0.1.6.crate) = 8760 bytes
+BLAKE2s (delharc-0.6.1.crate) = 9aa447d2e8d3b5ed2dd087a7ffa328c35d44aa0404640895c4a620822ee66446
+SHA512 (delharc-0.6.1.crate) = 33652b33c26880a4a5613fc9adad92364f15ed8d13d19f60b0eb92bd8163d36ae9329894b90f43ad5e76daa685882ec52ca01dd23b95e8bf4fb7d04955836939
+Size (delharc-0.6.1.crate) = 45625 bytes
+BLAKE2s (digest-0.10.7.crate) = b911195b0979a1cd8687a4a5a2c1a8900c92fe823cdf2f1b439f759315061807
+SHA512 (digest-0.10.7.crate) = 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
+Size (digest-0.10.7.crate) = 19557 bytes
+BLAKE2s (either-1.11.0.crate) = 5d239a8b7987abb103a9a2d1eca8a324a61618f9edbcbcd97b0d6d41a4d662c2
+SHA512 (either-1.11.0.crate) = f62a3859afdba762b004d4c766090a25d3bd81e4a14509c3bd0f39b0d433aeff997b39759f7dbc5a012bf3b680fc4510a4b2643d63dda8171bad7403554905ff
+Size (either-1.11.0.crate) = 18973 bytes
+BLAKE2s (encoding_rs-0.8.34.crate) = 29cbc373b85fa6cdba63ed4b45e9cd6ab4f07159b96e20739e55b6b7c5a51285
+SHA512 (encoding_rs-0.8.34.crate) = e23b87003814dd6e7e17924bd1f53989a5008dd1da07baa23c40d2a18dc1ab2d786d61e2c304b3f60e73be5f180ae2deea3b4499c0157b6afe3c9273d2f739f6
+Size (encoding_rs-0.8.34.crate) = 1378166 bytes
+BLAKE2s (enum-primitive-derive-0.2.2.crate) = 8817723cf5819c6c0c36a386453b819796bcba49d881c4294297ab8fc9b36714
+SHA512 (enum-primitive-derive-0.2.2.crate) = a9867cd412fa64825ff58de416b67742fedf9f7cdb8b1fafabeaba770d7fd47d87b77ef8305e1db13fba480ff345038c622341fa5062f6dc1cee953617d0f871
+Size (enum-primitive-derive-0.2.2.crate) = 4618 bytes
+BLAKE2s (errno-0.3.8.crate) = 8736de527eceda368bd98998bd940a44336f2e2b46bb26b7499535b32ae9248a
+SHA512 (errno-0.3.8.crate) = 29753c421c6f929760cd7565f8171696e4f70e677654a7507253f4fc495edbcf214ace27be46bdfe5c1a0d782f4b688f591476e56f4a1096471cb353c643328d
+Size (errno-0.3.8.crate) = 10645 bytes
+BLAKE2s (exr-1.72.0.crate) = 7bec9f3027efcc57d9735a31a5ec02c389db1863fb0d078fdc858a44b2c02c2f
+SHA512 (exr-1.72.0.crate) = eeab15189ca6801d3b3748c88395de9d2a3fd970f182f70bd39ff7dbc960bd27d06191a42d1a5cb895a334787f18dd3ff31af74d223419e1845396a5f696dd1c
+Size (exr-1.72.0.crate) = 243996 bytes
+BLAKE2s (fastrand-2.1.0.crate) = a91ba7ee35e61fcd1cbc8c53ea65622361efca0041a4cb736b56a22fcb9c4e5b
+SHA512 (fastrand-2.1.0.crate) = ce776a3d0fbc108017c93ce9bff7c9e7e65590acb149dcd55c2f349d2077ffdf5ac6427753732f60cd7acf141ef6f89359b2e7d9368016be53b24e8703e71104
+Size (fastrand-2.1.0.crate) = 14907 bytes
+BLAKE2s (fdeflate-0.3.4.crate) = 7261d155d7d24a0a95bcc0b8aaa2626aa2d59ec0a60394f215fea9b96e445e48
+SHA512 (fdeflate-0.3.4.crate) = a38b493eba656beb97275faf5a2f32c8a2c2cb12c5d5c280d37bbcf1406fe404151fd6312ec496aafdce802ef08745a6927e571890f9b290010ca5ac45ac9bdf
+Size (fdeflate-0.3.4.crate) = 25001 bytes
+BLAKE2s (flate2-1.0.30.crate) = ec0322c5972ccaaf94382f9dcc4a565d46e867cd7e777416bdfb13e411bf7c21
+SHA512 (flate2-1.0.30.crate) = 21528f80c1709cfa764723dce012903581dbc2b63ecad194ec601fc75103307e1b2ef17479186ad895ad957c9a33c6fd666b2981382a8a68ca78dfac7cb5d578
+Size (flate2-1.0.30.crate) = 75511 bytes
+BLAKE2s (flume-0.11.0.crate) = c302d210f410a2bd0d3e7fd16e971e0a96b3b93261030ffb81f31cb06341cfc3
+SHA512 (flume-0.11.0.crate) = 29e499f3de970d2d400c3826e912a49a01408dae8d933068dc94576cb0c2ca0e42ec4a9ebeffd17a20f56869f09eec04a2b90a335bfaa6462b8df474b2a49fcd
+Size (flume-0.11.0.crate) = 67502 bytes
+BLAKE2s (generic-array-0.14.7.crate) = 33b16435fa4f360b4b5548090f6bd5548cfc42c6c7415dd9fb884ba3a3b8b7c0
+SHA512 (generic-array-0.14.7.crate) = 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+Size (generic-array-0.14.7.crate) = 15950 bytes
+BLAKE2s (gif-0.13.1.crate) = 1b81ec07e351b52858fc533cbda599644d863067321801f7f035bc5b20f72cf2
+SHA512 (gif-0.13.1.crate) = 7e76ee111c6a94763c4dfe01faf4cb0b5272d5041e2b2b8f4db666debf647e192b963c6fb3228cdde28e1d112830c2aa31eaf0551d712ea9963e41e47e26fb26
+Size (gif-0.13.1.crate) = 36408 bytes
+BLAKE2s (glob-0.3.1.crate) = cf1632af0a03d2505ae99d4e4ed0ee695c8383a0cddf1191f7f59e197e9fb17f
+SHA512 (glob-0.3.1.crate) = 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b
+Size (glob-0.3.1.crate) = 18880 bytes
+BLAKE2s (half-2.4.1.crate) = 5b05db952633340c1f7340f0a0e3e4a05047302f5a401b5bfac0c0b58a47bf3f
+SHA512 (half-2.4.1.crate) = 0bce235583ca128723186e1fb50f636b519bf826c942f02c5b969db4117baa87c644665c541991c16d1f1dd97c7233c017a513d45075fc72c5d99ccc7c1ac193
+Size (half-2.4.1.crate) = 50892 bytes
+BLAKE2s (hashbrown-0.12.3.crate) = 333ec43a87815091d115d166101d9719d9b951279aea1a2050e6c49813d5a79a
+SHA512 (hashbrown-0.12.3.crate) = b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
+Size (hashbrown-0.12.3.crate) = 102968 bytes
+BLAKE2s (heck-0.4.1.crate) = 2d8cd3bc30076ec6e8717de87da253e7d5e1aac22079242ff7d74fba5a4e1741
+SHA512 (heck-0.4.1.crate) = 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+Size (heck-0.4.1.crate) = 11567 bytes
+BLAKE2s (hex-0.4.3.crate) = 299902a1da9d88101e5b8b06dde30b77e8f7a802285aae519981ada5959383f8
+SHA512 (hex-0.4.3.crate) = fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
+Size (hex-0.4.3.crate) = 13299 bytes
+BLAKE2s (hex-literal-0.4.1.crate) = d6e08fcf68ac243905fbfe652698dc7f4f599348e92e26d4a138b02c40d72061
+SHA512 (hex-literal-0.4.1.crate) = 8894e48485be7e1d7a16d2e061086c524b039a1be24a4c20126d3f175e12aa87d6d65ae295da6dea88f19708f3f3a051c3c3e334196c094ace68a249ad57fbb6
+Size (hex-literal-0.4.1.crate) = 8559 bytes
+BLAKE2s (home-0.5.9.crate) = 3ca501737a66c3e850c8337fb10efe9f3fbadabd3f9219e72e15cd380e788f1c
+SHA512 (home-0.5.9.crate) = 3f1f7b619f1a47694cda92321a11d66ebbb2dc0b0c33446a7a4b886f547ee88231b61c038de04bb82acd50e617f19b5085893b8401206d32cd54502033e04bf1
+Size (home-0.5.9.crate) = 8760 bytes
+BLAKE2s (iana-time-zone-0.1.60.crate) = 6b3556b4f80befe4567201038483fae051b4d958896df794030e050efa8a2973
+SHA512 (iana-time-zone-0.1.60.crate) = 5619b994d3277f56e65322a7903e4c5e03928a87bdb72831cbef88788aaf5573b8460abc0a4d5488c5df7052bb978531d973dd66002b0ec4a3af468928c9b722
+Size (iana-time-zone-0.1.60.crate) = 27074 bytes
+BLAKE2s (iana-time-zone-haiku-0.1.2.crate) = 72d858080e7d609fbf68822b7fa6d73a5b7e3860772a4aa823a9af142d9001cc
+SHA512 (iana-time-zone-haiku-0.1.2.crate) = 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+Size (iana-time-zone-haiku-0.1.2.crate) = 7185 bytes
+BLAKE2s (image-0.24.9.crate) = 962af6e83b1dc05bbd81f09004e864a89c5263c4523e1ec5229d3501ec7d5e4c
+SHA512 (image-0.24.9.crate) = 3f858efceeed54e21543eee065ca6008f40c568e1ece1016b38040eff5625c9fb6de77c7e950c08c9e82b9fcbd4c4ec2f8c4c1157ed5d232bc8e35b4850420d2
+Size (image-0.24.9.crate) = 9261055 bytes
+BLAKE2s (indexmap-1.9.3.crate) = fe9c741c1c6d6e741ce68d48bb49010f6c2c07169f76e07820305cf960ef2c72
+SHA512 (indexmap-1.9.3.crate) = 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
+Size (indexmap-1.9.3.crate) = 54653 bytes
+BLAKE2s (inflate-0.4.5.crate) = 5ab133b3d231d9a863b8501bc9b1ba9e36bb556d6d9841786303a9506ab2c7e2
+SHA512 (inflate-0.4.5.crate) = 1392402f72a8463dc5cdaf815d8933e8dfcc914fb3a91e69c38e54deb7d55b5211e157b640b7cfa999400fb4d2e233a4a1a678147594dfa0be300894126d17f2
+Size (inflate-0.4.5.crate) = 17715 bytes
+BLAKE2s (itertools-0.10.5.crate) = a445c07be8da5c4bdf8dd6fb0a92746438e9ee1767fc180b2da34b31daa4de8d
+SHA512 (itertools-0.10.5.crate) = d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3
+Size (itertools-0.10.5.crate) = 115354 bytes
+BLAKE2s (itoa-1.0.11.crate) = be2967c52bce05d38dd6647d64ea41d26d215abe3af2edfcbb7922637ac4372d
+SHA512 (itoa-1.0.11.crate) = 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+Size (itoa-1.0.11.crate) = 10563 bytes
+BLAKE2s (jpeg-decoder-0.3.1.crate) = ed12c5cc28b162bf218d48d37b82a198e7a50b742801335447e2fbc373c98eea
+SHA512 (jpeg-decoder-0.3.1.crate) = 103b7602876069603620cc2b5530e84fdab88ec96855a821606560a67cfa26f628b401eace62ee793e6c16ef282f958ed789f5db725ff901124fe6c9b123de00
+Size (jpeg-decoder-0.3.1.crate) = 744364 bytes
+BLAKE2s (js-sys-0.3.69.crate) = 125ca887ceb13c7f7fdc8679994e1ff9be43fa03b93d229d4cbe6ae739c2609a
+SHA512 (js-sys-0.3.69.crate) = 506722e6dc13484828a4147d974822ff9d103d9e7db58a48181b0957770d9fc43b97605ced105c5b680d8b2cda5fa1705f605707611cb48ed8a45a96d5f196b9
+Size (js-sys-0.3.69.crate) = 81083 bytes
+BLAKE2s (lazy_static-1.4.0.crate) = 0d5f7c2bcfe70610bc27bd6b339ea3e4ca3b7014149714db3a0c199ac6f07cd1
+SHA512 (lazy_static-1.4.0.crate) = e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
+Size (lazy_static-1.4.0.crate) = 10443 bytes
+BLAKE2s (lazycell-1.3.0.crate) = 4b68bb7aee4d9c2db1f382991cd5257b908571f8e550a9af7818ce4a2c268469
+SHA512 (lazycell-1.3.0.crate) = f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d
+Size (lazycell-1.3.0.crate) = 12502 bytes
+BLAKE2s (lebe-0.5.2.crate) = 01e8bce825913aa4c842bf5c4027c23c057e7ac73942ab45ef52df6fd5fce5fa
+SHA512 (lebe-0.5.2.crate) = ae8fce41c9a934999dad672ad74acabac9d7998aac4f1d03b54910d4b941375b9e9721cb1bfc8cd7cfcc4206fc0b18d725b0ea256a3a10a125a8d5848ed761ae
+Size (lebe-0.5.2.crate) = 8422 bytes
+BLAKE2s (libc-0.2.155.crate) = 7d2724d3fdb09b655c8f405ec03a9d9ed8c9c307c38e2461f86edc269f477aab
+SHA512 (libc-0.2.155.crate) = 05354bba532b8338bda1f88f12c7f3893429734a06e33925fca2b99d49548ae5216e2cd84e782d2368a2dfef20b0e035e2dcad8dd13ede7119462a8c639b2807
+Size (libc-0.2.155.crate) = 743539 bytes
+BLAKE2s (libloading-0.8.3.crate) = c6748d7af6c503b43107b286bb8ca2e9d039e966976b903973b3b6a34f4a80a6
+SHA512 (libloading-0.8.3.crate) = af8fa5fe2428fa98177d6adfc01bcd6e701b0d77ac18c95b8b8d5abb3a6376f16241ccc71b9fe100782c73c843ca53c9bad465545d8bb7def52320dad0eecef9
+Size (libloading-0.8.3.crate) = 28480 bytes
+BLAKE2s (linux-raw-sys-0.4.13.crate) = fd3daef2f4a801a1a3baa40c270dec6f684699a99c0b958be9fc06e8606b130c
+SHA512 (linux-raw-sys-0.4.13.crate) = 3918da6b667a08ef8a51aa0b087129e2dc5ab101669cbba7690fc98ae2659a36861bf9410a3b87d18522a7549d43ac169b995ea192d3073f7249305a809cac62
+Size (linux-raw-sys-0.4.13.crate) = 1493855 bytes
+BLAKE2s (lock_api-0.4.12.crate) = 15ae57312deba2e9aa3df7a4a7e61ace84bf1faad6c5701eb862da9c11b40f2a
+SHA512 (lock_api-0.4.12.crate) = 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
+Size (lock_api-0.4.12.crate) = 27591 bytes
+BLAKE2s (log-0.4.21.crate) = ca813eca404c65ce52e7ff9560ce68303f0ba32f45e14c8d3ee61a0798375b11
+SHA512 (log-0.4.21.crate) = 0becc1a06b6e7048cff6c0bb8df49a16ac4772133c00239e9e9459c0811e7715c500f440cf1a9aef8d7ad74f57434559ca9b55917f588b8e476cf36eb6d4e10b
+Size (log-0.4.21.crate) = 43442 bytes
+BLAKE2s (memchr-2.7.2.crate) = 58bad593cd29bb59ae79239f6f69364c2c512fa365107c1c46c37878bf53126f
+SHA512 (memchr-2.7.2.crate) = cadcb4239c7f3aaab042592c5186770a225621e32f8583052fd3dbebb4a6d9b99be28f589b39b5ca36cb2d56fb3709e7d4ba91838ebb882e28e51280c02bbc40
+Size (memchr-2.7.2.crate) = 96220 bytes
+BLAKE2s (minimal-lexical-0.2.1.crate) = 7868d0264ff2c8d6fd1944aac77710c2163c9c0bb7488ee70835966d9a324022
+SHA512 (minimal-lexical-0.2.1.crate) = 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c
+Size (minimal-lexical-0.2.1.crate) = 94841 bytes
+BLAKE2s (miniz_oxide-0.7.2.crate) = d432a6644275e3613826ac647ea132be5e00017717b4bcb4b09dd80dc860206d
+SHA512 (miniz_oxide-0.7.2.crate) = 2f8f09d7afdb9d78bfc80a228ded85a215fea05e577e907921f1808f84aae30ab118048d7b53295f11aeb5de70ab6cbdec892f3a2417bedf6f53a4576d095432
+Size (miniz_oxide-0.7.2.crate) = 55731 bytes
+BLAKE2s (nom-7.1.3.crate) = 226b78f1d2070ca94403c5e4f4cd27e43eba1397f201522f65528f19adff72fc
+SHA512 (nom-7.1.3.crate) = 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad
+Size (nom-7.1.3.crate) = 117570 bytes
+BLAKE2s (num-complex-0.4.5.crate) = 731f1d32bff3d49e553a04988fbaa1f82597e8e53fa7bdefcd4c0e5f45dd255c
+SHA512 (num-complex-0.4.5.crate) = 7b607f240773e4f4ff1954f46b2ee85be1a4f012e2d290343f6178543d10b69c0e9e1a93b0df8efa013c3914ad48321e1d96a4578092ae4d359acdc239ce1ebf
+Size (num-complex-0.4.5.crate) = 29614 bytes
+BLAKE2s (num-integer-0.1.46.crate) = 30d326e4be64cf2f9c9c8066c928b4f142db6fb7e5a15d45985091e652274588
+SHA512 (num-integer-0.1.46.crate) = e27986d91f6c6dc3d5a0900defe28ab5f47905cde3f84d0914b7acee076dca8fec6fdb7b631ac94d3a31eb01ecbc5854e51afc3187cd1abfa21e1bfafdc700ae
+Size (num-integer-0.1.46.crate) = 22331 bytes
+BLAKE2s (num-traits-0.2.19.crate) = 3c64996b86a2f99ad0c535cac3e95e5ca227315695c078d5b17ca8e1b7e47244
+SHA512 (num-traits-0.2.19.crate) = 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+Size (num-traits-0.2.19.crate) = 51631 bytes
+BLAKE2s (once_cell-1.19.0.crate) = a64a2331693b4389e1ee79eb9bdb3493c4cfe3568e532ff9d4e2ec04a491a132
+SHA512 (once_cell-1.19.0.crate) = 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
+Size (once_cell-1.19.0.crate) = 33046 bytes
+BLAKE2s (onenote_parser-0.3.1.crate) = b2fda3cdf1808187b9820f0b9949ab4f1219f46f388344ad1948ffbfc192a462
+SHA512 (onenote_parser-0.3.1.crate) = c8770e72c80d6beaa90ae1e725523b1e4c5f47b0effe39f804fdb16e390deb1a5bc4093f52564bacbd4e87b3d9a44f7c044410c4c7e22265235b3260c0953cab
+Size (onenote_parser-0.3.1.crate) = 689152 bytes
+BLAKE2s (paste-1.0.14.crate) = 0fe19bf917698739aa97da59ce4bd63186489f3136807e499d4e0554ffaebeaa
+SHA512 (paste-1.0.14.crate) = 3a793f0e5e773a7f7defc798a4c17ae9a40d715144632ea6cb0a8c785e14c4212046491df016bb9838281f8eaf327a79f01c1e2ac5f26785c028bc880faff9ee
+Size (paste-1.0.14.crate) = 18157 bytes
+BLAKE2s (peeking_take_while-0.1.2.crate) = 79fc1d7c8b820e30ed2253d0155b8f4c734b162a980690aa89233a74f9238be6
+SHA512 (peeking_take_while-0.1.2.crate) = 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721
+Size (peeking_take_while-0.1.2.crate) = 6697 bytes
+BLAKE2s (png-0.17.13.crate) = f3dd3c49182d10b7019b6ef4ceabf7369e8921ea8e3134e8999db5423233890e
+SHA512 (png-0.17.13.crate) = 064a932f4c48c2243286a9b4cdec0487cc976291bc8ecf4753691afdfe43acda4b17ea8d48ec933f309d158df28f40ee93b5b32b3ab5252e2e7aa1ee1c0e4e84
+Size (png-0.17.13.crate) = 103176 bytes
+BLAKE2s (prettyplease-0.2.19.crate) = 114ac558537788b104ace680cb96233ed540802070d1a4ba45c47131349d84bb
+SHA512 (prettyplease-0.2.19.crate) = c156eb23076560466ee1001d1d6ccf74fc7afe754518b2a21e16b5d05acb4a829da473dcbe43cd3499efbf03e09ca2dbcf2bf475c8260fae5550315ac09e93e6
+Size (prettyplease-0.2.19.crate) = 57713 bytes
+BLAKE2s (primal-check-0.3.3.crate) = b44b4d241726914ba6c2a767d74bf432190bcca9c2a5a28f1f91a8b0a8bebc5d
+SHA512 (primal-check-0.3.3.crate) = d56fcee65802b1ca272515589574786dfd066099c55a536cb1076193242859074918651c4fa3c1a7dab4fd13ba91c8f6a2a5b0789a6cd24faffc092edf27d75e
+Size (primal-check-0.3.3.crate) = 8720 bytes
+BLAKE2s (proc-macro2-1.0.81.crate) = 88d5d569775c7d3131b4bb2a9a8ba9f20925d88ce6a2ec45ef8a9c3cfc6eb1ae
+SHA512 (proc-macro2-1.0.81.crate) = 7edec4b786d9fe076ced4fa5c0d369c163fd1c27c895431245a8268ab2e16665b7c0a585552d46ceee6b8103979a4201f92abb381f0e678128abed359f514de7
+Size (proc-macro2-1.0.81.crate) = 48233 bytes
+BLAKE2s (qoi-0.4.1.crate) = 29f39d972ad32b28dc3df015117acd8674481596e6a2d5d2358c5641d2d715ea
+SHA512 (qoi-0.4.1.crate) = 884cde33bfb2d02716daa5f309890093bdb7b3f53eb06aca0b6eff0b7a66fd67cb8b9acd510d19e3ae7718930add971e871532a1605e4989639bf72f59329377
+Size (qoi-0.4.1.crate) = 71135 bytes
+BLAKE2s (quote-1.0.36.crate) = 9f7777159f1dce98b3d75c4080f5513185ed124a911edec785e5349ba70541fd
+SHA512 (quote-1.0.36.crate) = f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
+Size (quote-1.0.36.crate) = 28507 bytes
+BLAKE2s (rayon-1.10.0.crate) = f1769d4de9d61202f2b56b8e5bd1a053437df872b11b5cde35bbcb986fff6c73
+SHA512 (rayon-1.10.0.crate) = 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3
+Size (rayon-1.10.0.crate) = 180155 bytes
+BLAKE2s (rayon-core-1.12.1.crate) = 2402c16b62f8a112b43da9ab8c91e8b00bd22cd9252ea12dae77079bef92c16f
+SHA512 (rayon-core-1.12.1.crate) = 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e
+Size (rayon-core-1.12.1.crate) = 70701 bytes
+BLAKE2s (regex-1.10.4.crate) = 28cc3904c91fe8c5d20358f856de3332047ae5b9d6fcd05de0150e0d304e9f38
+SHA512 (regex-1.10.4.crate) = 88ef121a51759f418d5dc01607a6e02651bd00343dae92962c02a80f30343d3f079a0375457780ce46bf205ca38f279b03989154638199fe2fcede10554bf21b
+Size (regex-1.10.4.crate) = 253191 bytes
+BLAKE2s (regex-automata-0.4.6.crate) = 1ed0f1b2621a3903870a4ef6f0a265ee88d15525b0e2245bc6b4155df1ea6065
+SHA512 (regex-automata-0.4.6.crate) = b288e1facae2612f73d3de3fe9fd1af13d337107004f990263abe6277b31b948478ad9c2b807dcafa73fa565e48bdf2113139f5ca67eb73165b7d29e2ee5c9f1
+Size (regex-automata-0.4.6.crate) = 617565 bytes
+BLAKE2s (regex-syntax-0.8.3.crate) = db171d3785a9af130e8a121b79382c3e8a907ff60b725ba10a65b4f43222f36c
+SHA512 (regex-syntax-0.8.3.crate) = 925f7bcc50d94c65d34fcc770c6e58dd5b8a045541c0109e77b8efe842eef4c110087ac9c0f86c7c3022ed013abbc5c0a187d796dce292ad5361a0cdf7153d76
+Size (regex-syntax-0.8.3.crate) = 347497 bytes
+BLAKE2s (rustc-hash-1.1.0.crate) = ba3940200a72ad4ee115b0ef61c7c32278f6a3fa5d913220d1bd72362ef63aaf
+SHA512 (rustc-hash-1.1.0.crate) = 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544
+Size (rustc-hash-1.1.0.crate) = 9331 bytes
+BLAKE2s (rustdct-0.7.1.crate) = e154414c5d69d49026d58568e97e1c257e57cad80b07eac4a2bc99de1fa7c062
+SHA512 (rustdct-0.7.1.crate) = 6679df13888c1517fd8c8bf458e201b49e1607343f04a8eef1ccb39a1cdda673bd7835452a6eb06c83d4b3ef1e831acf24561721477985d3d52be931ae4f6493
+Size (rustdct-0.7.1.crate) = 41849 bytes
+BLAKE2s (rustfft-6.2.0.crate) = baa79139164cb89f888a771022033c148898a501aeb195e58acf01d46652bd5b
+SHA512 (rustfft-6.2.0.crate) = c8f4bbf66f3c7c990af36bacd65240bca2c6334cb7139a3f92790e66ffcb5ea62757a469a7aff56ef602a79ebf2f860dc017a1ef8bd5a896f8383183f3b179ec
+Size (rustfft-6.2.0.crate) = 363170 bytes
+BLAKE2s (rustix-0.38.34.crate) = efaf186ddf3d1011a0f4c9751fb8bce70325986b792025a884c605dd2c9a9e22
+SHA512 (rustix-0.38.34.crate) = 717cf26e2ec792b41819ff964888adb265a215d2b6c6e2b7a8ca1f7f793b713b853bba9cf03c2cc88b0f9a5eb1a0478faedbc05526f39bd81583e7b1f764756f
+Size (rustix-0.38.34.crate) = 365160 bytes
+BLAKE2s (ryu-1.0.17.crate) = d560e0e8c46610e28cdb7642335a2cc9d6967255a8ab3c30508966d7dea1aedd
+SHA512 (ryu-1.0.17.crate) = 6dad725c4fb2d3a33ea30107b63cb702eed56bd2f3c16a72265f648f5aaefcd3d5a7b919b1d037af926cc6311bc68ba58c4e0483da2b2e2135c6a7c2d6601af4
+Size (ryu-1.0.17.crate) = 47537 bytes
+BLAKE2s (scopeguard-1.2.0.crate) = 4daf97de7fabaf7fe5ba6000f7132a46cc0bab2a297127580d9ac127d0a8fcec
+SHA512 (scopeguard-1.2.0.crate) = 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+Size (scopeguard-1.2.0.crate) = 11619 bytes
+BLAKE2s (serde-1.0.200.crate) = 220bb1eaed5e46f9075a63250607885b357289267a3d896a4f60276719dc77f2
+SHA512 (serde-1.0.200.crate) = d4d01d62e7338b147f83bdbe358813e70b7ac218ddbdeab534926d205d46f86e2086f73a01f453c9d4a3bfed07e10d57ebd1f86bdafd4fe96c6298f1e527b8eb
+Size (serde-1.0.200.crate) = 77611 bytes
+BLAKE2s (serde_derive-1.0.200.crate) = a4371e92aca2c74be664bd440dd4af0e4b2129e71dbbfd9464fa81b6e1b76243
+SHA512 (serde_derive-1.0.200.crate) = e70f0e092d81542a96b33610da8ddbf04023d8ecc1fa4a4f31978699c118f096e8534f9e3e4e479ee74280efb86d752dd1fce038ef2def329fdcc10c1aa50942
+Size (serde_derive-1.0.200.crate) = 55785 bytes
+BLAKE2s (serde_json-1.0.116.crate) = 584645d446c8e1fcc0ee14c2796d92d3e70842cbc1800c2ba68fc4448d5df247
+SHA512 (serde_json-1.0.116.crate) = d383de754b0a50cc4ab3e6378b758ebd6178ad32ebed80cb4e32a9d8e81d0c689585ee5cd35f12b376e488d25ecfaca659be943c9bb4104b63a1c4f9ded2f337
+Size (serde_json-1.0.116.crate) = 146790 bytes
+BLAKE2s (sha1-0.10.6.crate) = de97b70d4fb6a4dc4e3db64696720ea96e7b38eec57b2e8fa01ecd5102d96eab
+SHA512 (sha1-0.10.6.crate) = fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f
+Size (sha1-0.10.6.crate) = 13517 bytes
+BLAKE2s (sha2-0.10.8.crate) = 3d55132822a83fae4fd13d4c1cf65ef7f53f56628a6f724c784e522645ad32ce
+SHA512 (sha2-0.10.8.crate) = 3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785
+Size (sha2-0.10.8.crate) = 26357 bytes
+BLAKE2s (shlex-1.3.0.crate) = 00a54f2882a7a2c2170fca55bd1acd51eea79f115f972ce143b5f4c9c974ee43
+SHA512 (shlex-1.3.0.crate) = 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+Size (shlex-1.3.0.crate) = 18713 bytes
+BLAKE2s (simd-adler32-0.3.7.crate) = 4e97d965efa10d40728db8210a078be56385eaa8c9226af960f1685713576ea7
+SHA512 (simd-adler32-0.3.7.crate) = 2976bb7fa153854ecd0d68ccdc108bf81d5da374839d53ce9dfb27e80d8db258bb817ea3dac73921e408541d75e2797b6d20fa63c42c1e8a935b6d75dee14bac
+Size (simd-adler32-0.3.7.crate) = 12086 bytes
+BLAKE2s (smallvec-1.13.2.crate) = b0c6aa90972d031feb8f50aa1562ab0dbce3a027e6a54bea2586c819ef8e369b
+SHA512 (smallvec-1.13.2.crate) = a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+Size (smallvec-1.13.2.crate) = 35216 bytes
+BLAKE2s (spin-0.9.8.crate) = 40d356ced615c0a4f5c7680d28ed15e6af96c3f6b9a1b9db71bc0c7728a63107
+SHA512 (spin-0.9.8.crate) = b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee
+Size (spin-0.9.8.crate) = 38958 bytes
+BLAKE2s (strength_reduce-0.2.4.crate) = 5d5288470caadd7f897f70f7abee963e753811505d7e9b03adf04440279b195c
+SHA512 (strength_reduce-0.2.4.crate) = 2d44e54e4cf78f718faf482ade6c33fd42e73187a7e4fbbe41fa0905e6bf1ad5f5241c3d8ddfd7b18d9bbfa3f331c54ef2d817b254e1200b50b146f04327f157
+Size (strength_reduce-0.2.4.crate) = 17859 bytes
+BLAKE2s (syn-1.0.109.crate) = 90f44fe8c2ae4039ac3ca0c29fbd3eb6820b5b3c163491885ed7dc0d096b593e
+SHA512 (syn-1.0.109.crate) = 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
+Size (syn-1.0.109.crate) = 237611 bytes
+BLAKE2s (syn-2.0.60.crate) = 6ec940951f056c7bd1f525be26986c4bad28298958284c67521471accfccc7fc
+SHA512 (syn-2.0.60.crate) = 20bfa02b03c193672a9922f9a5e196185341e082a262f7c00d7c2d467d9e2d77f4af3994634923cfaeee34aa9eab510415165f052ffd9b1ed0b1b581e272898d
+Size (syn-2.0.60.crate) = 255808 bytes
+BLAKE2s (tempfile-3.10.1.crate) = 4f7b06eecc5247baecdae6f053b331230e880d2a72e0cce7b0814e70d7674a87
+SHA512 (tempfile-3.10.1.crate) = bac7515b85b0d01ea914b527f0fadd3a4d8e77c9eabe786977d2625d8a3e91decaec502dd15bab4d49a43597fa7cf7660fff4be1b043112d13b542a72443bf39
+Size (tempfile-3.10.1.crate) = 33653 bytes
+BLAKE2s (thiserror-1.0.59.crate) = a3058430b3d4ed6ac9ea84b5e0b71eb2aac4001ffdc12308e95a6702b1c260eb
+SHA512 (thiserror-1.0.59.crate) = 254b0ad6c4b135234f89db8bd5674fb8c6b633495810140abf93cf06c58e911ad2ebcfdc002e7ce29739e95ea066eeed3fbd7c831e2858822dff620598dd147a
+Size (thiserror-1.0.59.crate) = 21040 bytes
+BLAKE2s (thiserror-impl-1.0.59.crate) = 1f200dabf3abd0d79895ce2a147f186641abfe1f10df9dcad6930b5182a1f5d5
+SHA512 (thiserror-impl-1.0.59.crate) = 75543ad39d1243dab23a4b50075bec337c39045f0271337a1ccc144f25dc1e7fc23b0163f16958ded9a1f44ff359378bd22f4c0f5e095c1823e928fc929457e8
+Size (thiserror-impl-1.0.59.crate) = 15726 bytes
+BLAKE2s (tiff-0.9.1.crate) = 8d55da3e058369328b6a7441da224d6c306bfdae7c6ac50bffac53936d01fd1f
+SHA512 (tiff-0.9.1.crate) = 82419e671c6a896f1d639d46a3c5a019e3bff6c75d961b838f5311e5ecb31c3baafc5f88fe928e88f6b3b31881a867ea4ca9905f43e3e24f77f183260dc27b93
+Size (tiff-0.9.1.crate) = 1423953 bytes
+BLAKE2s (tinyvec-1.6.0.crate) = 8b80d302f82b55581456246bdd3450b416b691513ffae386fd97d9808c05ebde
+SHA512 (tinyvec-1.6.0.crate) = e5acaf353c58c60ae5556130a934f1048abb79cf6668ae467d308bac44b689d8a9997227ea879f4b5fe50f29cde8761801b088d7149bcd063b973056c381921c
+Size (tinyvec-1.6.0.crate) = 45991 bytes
+BLAKE2s (toml-0.5.11.crate) = 0991e1e5d9cd92fe92d6a00cb0f1203bd50cd2dff1dd2f297dd3cd830b995c4a
+SHA512 (toml-0.5.11.crate) = eddb82aeb8fdeb5436579292c6f7a64a90a2c7bb54070beb437bc7890b99795d0505faa8d6451a99e8bcf440f78db8a1b273a697c8ad44275cc4163a9ee49317
+Size (toml-0.5.11.crate) = 54910 bytes
+BLAKE2s (transpose-0.2.3.crate) = 7e9b8e744954e529bccdfa334a4895ea5c18793271b2f4dd731c82800e1962fa
+SHA512 (transpose-0.2.3.crate) = 1a624e7baf2c74da48489558f9327d935bde67812eec50e205a4060180612d7e6d7d18f18c1b118bd7b08650cd089d8c1574db3fbd504a6915c9cd3b4ec09b59
+Size (transpose-0.2.3.crate) = 10913 bytes
+BLAKE2s (typenum-1.17.0.crate) = 09823684788c5902da7490db1fa86b53defd3c31eab6e511d3cbbc851616596c
+SHA512 (typenum-1.17.0.crate) = 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508
+Size (typenum-1.17.0.crate) = 42849 bytes
+BLAKE2s (unicode-ident-1.0.12.crate) = d3afb0938724e7bb0f5c2a5f76ff614511446dd54b363f76e84353254acd3739
+SHA512 (unicode-ident-1.0.12.crate) = bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
+Size (unicode-ident-1.0.12.crate) = 42168 bytes
+BLAKE2s (unicode-segmentation-1.11.0.crate) = 2ef901befa16a386195dccd99d30bf9f940331240d945d2d3d09e48e9ff667d6
+SHA512 (unicode-segmentation-1.11.0.crate) = 4914543cf022680f341c4a235f6d9204b3ac9a9098f34a80ee8c94e3d8ccbb82e78af016978eda910987533044593ac629a35286dc80707d349b33e405e86bef
+Size (unicode-segmentation-1.11.0.crate) = 102740 bytes
+BLAKE2s (uuid-1.8.0.crate) = f284d1259d6bce080c47a24e2932e85e250ebe7831d0d8fd68d201a3f4c76983
+SHA512 (uuid-1.8.0.crate) = fe254f0bf6b863538ce568405569a4c755b33bce561148661b10985bf4485fa7ee7a6ec650d93656552b3cdead46b2074ebfd45b040edef19cd1648300f68ed5
+Size (uuid-1.8.0.crate) = 44043 bytes
+BLAKE2s (version_check-0.9.4.crate) = a26f24d5e2c5e631462ebe434aa239957f5102009d3824d5dff2bc90d3c79fb0
+SHA512 (version_check-0.9.4.crate) = b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+Size (version_check-0.9.4.crate) = 14895 bytes
+BLAKE2s (wasm-bindgen-0.2.92.crate) = 1d566321e773017a79bc0dc65e300ddb6912acb1baf78db724a5df1ee47bf971
+SHA512 (wasm-bindgen-0.2.92.crate) = 6e46501276c0d4befbf930c816d6ae6c3764e3b5ce0ef4aafa627a6ea371f1a056ecc15970a817e9e9bf51c0a2ffa57df427d758b2d367beb6a474d75b8939a5
+Size (wasm-bindgen-0.2.92.crate) = 184119 bytes
+BLAKE2s (wasm-bindgen-backend-0.2.92.crate) = 2de0a8de1c80add5dac77631e8d8b768b4823588f0842ae8b562a514567862aa
+SHA512 (wasm-bindgen-backend-0.2.92.crate) = 22e4f5848d62bd1fd55f4f054ea1293e223b3cd6f916bde2523eec10388e733623492c3a3246d61831e696dffdec5d000b95e9aa1217be6e38dd6459872166aa
+Size (wasm-bindgen-backend-0.2.92.crate) = 28348 bytes
+BLAKE2s (wasm-bindgen-macro-0.2.92.crate) = 93c3de28d7af5a32be537882c2d0c6bd74dd13c3c8089f2c34029c7b8012a568
+SHA512 (wasm-bindgen-macro-0.2.92.crate) = 78d2ddac88a9ca3ca5eef8a7af81cdf2366187a67d844e69f65f6893d1949f9723ab5f2be762c2217a5c21aee2f3dbc2d5d55ef0c9cbf0dec0d52d67a6ba7462
+Size (wasm-bindgen-macro-0.2.92.crate) = 13835 bytes
+BLAKE2s (wasm-bindgen-macro-support-0.2.92.crate) = 3ea35949e4f0255c629d6c782abffa4b4d81a9cb49dc9ed84ad317d92856f7b2
+SHA512 (wasm-bindgen-macro-support-0.2.92.crate) = 92543d2aad0b25798ec20e68832b823610c2c01401088cd9cac1684a86ddd1b567b3e2712acb862060f9c645a0df509b01d9834fd3e13cdaab97960f66d8daa7
+Size (wasm-bindgen-macro-support-0.2.92.crate) = 20092 bytes
+BLAKE2s (wasm-bindgen-shared-0.2.92.crate) = cf9e073c7d5e3ebfe38d4e9ebe0a23bfff997d7ed3a28040df793a740b98220a
+SHA512 (wasm-bindgen-shared-0.2.92.crate) = 70e3a22731ed8aec428433bf30500eb3f62e3b7f4f1be34d8bb3b6f34f99690fc85d49eb413caecab807064494cfec64242c6a42709dffd638046e370bf86e07
+Size (wasm-bindgen-shared-0.2.92.crate) = 7263 bytes
+BLAKE2s (weezl-0.1.8.crate) = ca6120df03224228d4c7ee055875524f19ee17a006fe7be60e0bdb6aa1ce8382
+SHA512 (weezl-0.1.8.crate) = 6012de47d6bb5177820be9794e70ce6354577247750b8a125dad1d3e093d96cacba62471d8f67f056a72447bb6bf7fffabc6254ae96d93014a5200c71d571c97
+Size (weezl-0.1.8.crate) = 42175 bytes
+BLAKE2s (which-4.4.2.crate) = f92749eb4b4a60770558c4588afec96999bef0531d46a01073dbd1f27f27ce1e
+SHA512 (which-4.4.2.crate) = 2d12aa1d4c2dbc140e39c8f15bd4ee1eeb8e8de71bcdf579479ef4be860fb0839eaf4cdb818addba242d50420f6e08acaf2bfc979a889e092c83644819246fd5
+Size (which-4.4.2.crate) = 15953 bytes
+BLAKE2s (widestring-1.1.0.crate) = cc2af0f13d92fded88d26d713c59964b6be5fd8898b2c3f4f4b94e643790a528
+SHA512 (widestring-1.1.0.crate) = a4feb959e19d5238e89b0973f040b26849f896e7e9fd567d0e74fbb4972958a4dd76e74de5ea8d407b74cff28f20f9c80446488da6abdbee38aa87a94d683435
+Size (widestring-1.1.0.crate) = 85046 bytes
+BLAKE2s (windows-core-0.52.0.crate) = 77d9bb32ee278988564117784949be021514e73dbe8039a61a4606321aaa7d0b
+SHA512 (windows-core-0.52.0.crate) = 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+Size (windows-core-0.52.0.crate) = 42154 bytes
+BLAKE2s (windows-sys-0.52.0.crate) = c3fbc4dc1df8d727b7bee308e0c95dcfe190dc3f655d19dc027a7f522d496f79
+SHA512 (windows-sys-0.52.0.crate) = 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+Size (windows-sys-0.52.0.crate) = 2576877 bytes
+BLAKE2s (windows-targets-0.52.5.crate) = 4c8c0de66e2ad42560b049374646e634c1f10bb91354abee80b4ef08e197f1f3
+SHA512 (windows-targets-0.52.5.crate) = d00d7bc7eec3c10272e803ee5c9ea0d9b07c43311124dae975b4f5aae7408c5f2ccb2fe6e68228ea3d4e70b6b658382cac6992ea177f43a9cba2ef95c4fda0ee
+Size (windows-targets-0.52.5.crate) = 6376 bytes
+BLAKE2s (windows_aarch64_gnullvm-0.52.5.crate) = 3651029f0b510575385f22eec6cf2e37df8d716f2f0881816df9b9bbab710c46
+SHA512 (windows_aarch64_gnullvm-0.52.5.crate) = b4cf511025458fe30d5b11368af285610e1654a8986ea9f78fa81b8bb87d38a00c4869441c62692534df66d06baf14c8a4d17f8eb06468eb260b99e2fda6439d
+Size (windows_aarch64_gnullvm-0.52.5.crate) = 433266 bytes
+BLAKE2s (windows_aarch64_msvc-0.52.5.crate) = 307196c5b6053f65cff60fdd0838bd2ca32bd88c05b207755a501f382469a5b9
+SHA512 (windows_aarch64_msvc-0.52.5.crate) = c8974f81e37a43d92c4a8b142705e36b7acc58d9150d80ffa3997433da878044c467a2d9167ba792d37a183a0082d912500fea8c8fed743f395b63ca62a5758d
+Size (windows_aarch64_msvc-0.52.5.crate) = 827944 bytes
+BLAKE2s (windows_i686_gnu-0.52.5.crate) = 559a693a80114cfec0afb170a4d2b19d668fdb3d9aa137cc2e910fc047981271
+SHA512 (windows_i686_gnu-0.52.5.crate) = cc3e0362fb62dd5e8a855bda3be0177708ec8629ee9685f1f9aaac3f71a8cb082387388bdf49b09d3f5ee24a636b0b4f933d2c8bb75db434ee0192c8ce0547d2
+Size (windows_i686_gnu-0.52.5.crate) = 875699 bytes
+BLAKE2s (windows_i686_gnullvm-0.52.5.crate) = f12fa056bc9a16e7e923c5fb53d01f383ff7fc5492a39eaf6cbec3b150b61529
+SHA512 (windows_i686_gnullvm-0.52.5.crate) = da45c882248070911bf55698f62c245cb081a23254cdcf578df053905adb9117454235e52dcf1dd97c0d2248f92ff1d2fd3e18844a7be8d93ba08590c1eca22b
+Size (windows_i686_gnullvm-0.52.5.crate) = 473064 bytes
+BLAKE2s (windows_i686_msvc-0.52.5.crate) = 1a41dd21560df049b3ea3976f4e02e247d585a61e1cc3967eab6c1725871aad3
+SHA512 (windows_i686_msvc-0.52.5.crate) = 08c96f8e9385ac121549bae8ed228741b32004be20b2955d163a98d4b62af464f1682cb813681fa22823d20646f19335cf0a66203a876b105e119e05a4db0634
+Size (windows_i686_msvc-0.52.5.crate) = 895404 bytes
+BLAKE2s (windows_x86_64_gnu-0.52.5.crate) = ce079845db6c1d1ebf726bc274659231916b7f6cce3f22de9987ba11b599f8ac
+SHA512 (windows_x86_64_gnu-0.52.5.crate) = d9bf91765d02d2727344e42081f4bcfa73be97991495126f7e633f27e56a261ada3a8b865a559cfe71f9bc9aed5b14504f89138796766937b3521009726dfab8
+Size (windows_x86_64_gnu-0.52.5.crate) = 831539 bytes
+BLAKE2s (windows_x86_64_gnullvm-0.52.5.crate) = bab1e5b6bbe8c22e83573599ed8ec563570cd59ae2390a9ba21e741aecb922c4
+SHA512 (windows_x86_64_gnullvm-0.52.5.crate) = 22a978c40df9705cd94e4c52f2b706e477e667b564c608d0adb144b38cb486c279c09d1eb1dd2d6c7bd3401b75a2dc5eafe0f7d642ffe6453f394d1f59483a08
+Size (windows_x86_64_gnullvm-0.52.5.crate) = 433246 bytes
+BLAKE2s (windows_x86_64_msvc-0.52.5.crate) = cff55ffe9c61794935a56e2c6b21ca5f068efaad263d63575cfb0863d23be29d
+SHA512 (windows_x86_64_msvc-0.52.5.crate) = 81176090dc725d7fe3867e6322fdc4a4065168580847b35e6f8da345f685c4f66a81e35cd1880dbaabdd4cdc82446dde9d6a0e583cf0b7fe47dda8bc8002f1c6
+Size (windows_x86_64_msvc-0.52.5.crate) = 827905 bytes
+BLAKE2s (zune-inflate-0.2.54.crate) = c10d8be1628f8a0b68a2d35a2cc3ab5ca45461685e4d61623f4ef14b872fcb04
+SHA512 (zune-inflate-0.2.54.crate) = 0de30f310121c1fed42612b7bcb50631d699195a77c7ce4094729f502e63d1ae38034d6054d95b6825e7e9a2afb7bb614ff123e12736163fee04a46ef1dc56bd
+Size (zune-inflate-0.2.54.crate) = 37973 bytes
+SHA1 (patch-aa) = c07a7b6e883f384ce278964645f0658c0d986ab5
+SHA1 (patch-etc_clamav-milter.conf.sample) = 7452d9bda43eaf4ed8b1ebf557ad1910f5a0d15c
+SHA1 (patch-etc_clamd.conf.sample) = 7e181fa931ca40c02d607a3aeec74438c1cdff85
+SHA1 (patch-etc_freshclam.conf.sample) = 804df5480560acb915f9fcb5f2097673c657ae34
+SHA1 (patch-libclamav_fmap.c) = e7b48324527ed465802ca94fe98d52605bb5218c
+SHA1 (patch-libclamav_fmap.h) = 5a04f2534311994b1f3e8278189776fa7b4303c7
diff --git a/clamav/files/clamav-milter.sh b/clamav/files/clamav-milter.sh
new file mode 100644
index 0000000000..5be84dc67b
--- /dev/null
+++ b/clamav/files/clamav-milter.sh
@@ -0,0 +1,76 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: clamav-milter.sh,v 1.1 2020/09/14 16:54:35 taca Exp $
+#
+# clamav-milter provides milter socket for mail daemon
+#
+# PROVIDE: clamav_milter
+# REQUIRE: clamd
+# BEFORE: mail local
+# KEYWORD: shutdown
+
+if [ -f /etc/rc.subr ]; then
+	. /etc/rc.subr
+fi
+
+name="clamav_milter"
+rcvar=$name
+command="@PREFIX@/sbin/clamav-milter"
+required_files="@PKG_SYSCONFDIR@/clamav-milter.conf"
+start_precmd="clamd_precmd"
+stop_cmd="clamav_milter_stopcmd"
+
+if [ -f "${required_files}" ]; then
+	pidfile_=`@AWK@ '/^#/ {next}; /^PidFile[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+	if [ -n "${pidfile_}" ]; then
+		pidfile=${pidfile_}
+	fi
+	logfile=`@AWK@ 'BEGIN {r = "/tmp/clamd.log"};
+			/^#/ {next}; /^LogFile[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+	socket=`@AWK@ 'BEGIN {r = "/tmp/clamd"};
+			/^#/ {next}; /^LocalSocket[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+	clamav_milter_user=`@AWK@ 'BEGIN {r = "@CLAMAV_USER@"};
+			/^#/ {next}; /^User[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+fi
+
+clamav_milter_precmd()
+{
+	@RM@ -f ${socket}
+	if [ -n "${logfile}" ]; then
+		@TOUCH@ ${logfile}
+		@CHOWN@ ${clamav_milter_user} ${logfile}
+	fi
+	if [ -n "${pidfile}" ]; then
+		@TOUCH@ ${pidfile}
+		@CHOWN@ ${clamav_milter_user} ${pidfile}
+	fi
+}
+
+clamav_milter_stopcmd()
+{
+	# Workaround bug when clamd is built against pth by send TERM to
+	# clamd, then forcing it to start a worker thread that exits.
+	# This forces the main thread to awaken and realize that it's
+	# supposed to shutdown.
+	#
+	@ECHO@ "Stopping ${name}."
+	doit="@SU@ -m ${clamav_milter_user} -c \"kill -TERM $rc_pid\""
+	if ! eval $doit && [ -z "$rc_force" ]; then
+		return 1
+	fi
+	wait_for_pids $rc_pid
+}
+
+if [ -f /etc/rc.subr -a -f /etc/rc.conf \
+     -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
+	load_rc_config $name
+	run_rc_command "$1"
+else
+	@ECHO@ -n " ${name}"
+	eval ${start_precmd}
+	${command} ${clamav_milter_flags} ${command_args}
+fi
diff --git a/clamav/files/clamd.sh b/clamav/files/clamd.sh
new file mode 100644
index 0000000000..671d320afa
--- /dev/null
+++ b/clamav/files/clamd.sh
@@ -0,0 +1,78 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: clamd.sh,v 1.1.1.1 2010/12/24 07:11:05 kefren Exp $
+#
+# clamd does anti-virus checking.
+#
+# PROVIDE: clamd
+# REQUIRE: DAEMON
+# BEFORE: mail local
+# KEYWORD: shutdown
+
+if [ -f /etc/rc.subr ]; then
+	. /etc/rc.subr
+fi
+
+name="clamd"
+rcvar=$name
+command="@PREFIX@/sbin/${name}"
+scan_command="@PREFIX@/bin/clamdscan"
+required_files="@PKG_SYSCONFDIR@/clamd.conf"
+start_precmd="clamd_precmd"
+stop_cmd="clamd_stopcmd"
+
+if [ -f "${required_files}" ]; then
+	pidfile_=`@AWK@ '/^#/ {next}; /^PidFile[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+	if [ -n "${pidfile_}" ]; then
+		pidfile=${pidfile_}
+	fi
+	logfile=`@AWK@ 'BEGIN {r = "/tmp/clamd.log"};
+			/^#/ {next}; /^LogFile[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+	socket=`@AWK@ 'BEGIN {r = "/tmp/clamd"};
+			/^#/ {next}; /^LocalSocket[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+	clamd_user=`@AWK@ 'BEGIN {r = "@CLAMAV_USER@"};
+			/^#/ {next}; /^User[ 	]/ {r = $2};
+			END {print r}' ${required_files}`
+fi
+
+clamd_precmd()
+{
+	@RM@ -f ${socket}
+	if [ -n "${logfile}" ]; then
+    		@TOUCH@ ${logfile}
+    		@CHOWN@ ${clamd_user} ${logfile}
+	fi
+	if [ -n "${pidfile}" ]; then
+    		@TOUCH@ ${pidfile}
+    		@CHOWN@ ${clamd_user} ${pidfile}
+	fi
+}
+
+clamd_stopcmd()
+{
+	# Workaround bug when clamd is built against pth by send TERM to
+	# clamd, then forcing it to start a worker thread that exits.
+	# This forces the main thread to awaken and realize that it's
+	# supposed to shutdown.
+	#
+        @ECHO@ "Stopping ${name}."
+        doit="@SU@ -m ${clamd_user} -c \"kill -TERM $rc_pid\""
+        if ! eval $doit && [ -z "$rc_force" ]; then
+                return 1
+        fi
+        ${scan_command} --quiet ${scan_command} 2>/dev/null
+        wait_for_pids $rc_pid
+}
+
+if [ -f /etc/rc.subr -a -f /etc/rc.conf \
+     -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
+	load_rc_config $name
+	run_rc_command "$1"
+else
+	@ECHO@ -n " ${name}"
+	eval ${start_precmd}
+	${command} ${clamd_flags} ${command_args}
+fi
diff --git a/clamav/files/freshclamd.sh b/clamav/files/freshclamd.sh
new file mode 100644
index 0000000000..267c4f31a3
--- /dev/null
+++ b/clamav/files/freshclamd.sh
@@ -0,0 +1,20 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: freshclamd.sh,v 1.1.1.1 2010/12/24 07:11:05 kefren Exp $
+#
+# PROVIDE: freshclamd
+# REQUIRE: DAEMON LOGIN clamd
+
+name="freshclamd"
+rcvar=$name
+command="@PREFIX@/bin/freshclam"
+required_files="@PKG_SYSCONFDIR@/freshclam.conf"
+pidfile="@CLAMAV_DBDIR@/${name}.pid"
+freshclamd_user="@CLAMAV_USER@"
+freshclamd_flags=${freshclamd_flags:=-c 2}
+command_args="-d -p $pidfile"
+
+. /etc/rc.subr
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/clamav/files/smf/clamd.sh b/clamav/files/smf/clamd.sh
new file mode 100644
index 0000000000..4326c4e51b
--- /dev/null
+++ b/clamav/files/smf/clamd.sh
@@ -0,0 +1,30 @@
+#!@SMF_METHOD_SHELL@
+#
+# $NetBSD: clamd.sh,v 1.1 2014/03/11 14:34:39 jperkin Exp $
+#
+# Init script for clamd(8)
+#
+
+. /lib/svc/share/smf_include.sh
+
+PIDFILE="@CLAMAV_DBDIR@/clamd.pid"
+
+case "$1" in
+start)
+	@PREFIX@/sbin/clamd
+	;;
+stop)
+	kill `@HEAD@ -1 ${PIDFILE}`
+	;;
+refresh)
+	# Re-open any log files and reload the database
+	kill -HUP `@HEAD@ -1 ${PIDFILE}`
+	kill -USR2 `@HEAD@ -1 ${PIDFILE}`
+	;;
+*)
+	echo "Usage: $0 {start|stop|refresh}" >&2
+	exit 1
+	;;
+esac
+
+exit $SMF_EXIT_OK
diff --git a/clamav/files/smf/freshclamd.sh b/clamav/files/smf/freshclamd.sh
new file mode 100644
index 0000000000..f75d74a474
--- /dev/null
+++ b/clamav/files/smf/freshclamd.sh
@@ -0,0 +1,28 @@
+#!@SMF_METHOD_SHELL@
+#
+# $NetBSD: freshclamd.sh,v 1.1 2014/03/11 14:34:39 jperkin Exp $
+#
+# Init script for freshclam(1).
+#
+
+. /lib/svc/share/smf_include.sh
+
+PIDFILE="@CLAMAV_DBDIR@/freshclamd.pid"
+
+case "$1" in
+start)
+	@PREFIX@/bin/freshclam -c 2 -d -p ${PIDFILE} -u @CLAMAV_USER@
+	;;
+stop)
+	kill `@HEAD@ -1 ${PIDFILE}`
+	;;
+refresh)
+	kill -HUP `@HEAD@ -1 ${PIDFILE}`
+	;;
+*)
+	echo "Usage: $0 {start|stop|refresh}" >&2
+	exit 1
+	;;
+esac
+
+exit $SMF_EXIT_OK
diff --git a/clamav/files/smf/manifest.xml b/clamav/files/smf/manifest.xml
new file mode 100644
index 0000000000..c817934c8c
--- /dev/null
+++ b/clamav/files/smf/manifest.xml
@@ -0,0 +1,71 @@
+<?xml version='1.0'?>
+<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
+<service_bundle type='manifest' name='export'>
+  <service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
+    <dependency name='fs-local' grouping='require_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/system/filesystem/local'/>
+    </dependency>
+    <dependency name='network-service' grouping='require_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/network/service'/>
+    </dependency>
+    <dependency name='name-services' grouping='require_all' restart_on='refresh' type='service'>
+      <service_fmri value='svc:/milestone/name-services'/>
+    </dependency>
+    <dependency name='system-log' grouping='optional_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/system/system-log'/>
+    </dependency>
+    <method_context working_directory='@CLAMAV_DBDIR@'>
+        <method_credential user='@CLAMAV_USER@' group='@CLAMAV_GROUP@'/>
+    </method_context>
+    <property_group name='startd' type='framework'>
+      <propval name='ignore_error' type='astring' value='core,signal'/>
+    </property_group>
+    <instance name='clamd' enabled='false'>
+      <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
+        <service_fmri value='file://localhost@PKG_SYSCONFDIR@/clamd.conf'/>
+      </dependency>
+      <exec_method name='start' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.clamd@ start' timeout_seconds='0'/>
+      <exec_method name='stop' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.clamd@ stop' timeout_seconds='0'/>
+      <exec_method name='refresh' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.clamd@ refresh' timeout_seconds='0'/>
+      <template>
+        <common_name>
+          <loctext xml:lang='C'>ClamAV anti-virus scanner daemon</loctext>
+        </common_name>
+        <documentation>
+          <manpage title='clamd' section='8' manpath='@PREFIX@/@PKGMANDIR@'/>
+        </documentation>
+      </template>
+    </instance>
+    <instance name='freshclamd' enabled='false'>
+      <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
+        <service_fmri value='file://localhost@PKG_SYSCONFDIR@/freshclam.conf'/>
+      </dependency>
+      <exec_method name='start' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.freshclamd@ start' timeout_seconds='0'/>
+      <exec_method name='stop' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.freshclamd@ stop' timeout_seconds='0'/>
+      <exec_method name='refresh' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.freshclamd@ refresh' timeout_seconds='0'/>
+      <template>
+        <common_name>
+          <loctext xml:lang='C'>ClamAV anti-virus database update daemon</loctext>
+        </common_name>
+        <documentation>
+          <manpage title='freshclam' section='1' manpath='@PREFIX@/@PKGMANDIR@'/>
+        </documentation>
+      </template>
+    </instance>
+    <instance name='clamav-milter' enabled='false'>
+      <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
+        <service_fmri value='file://localhost@PKG_SYSCONFDIR@/clamav-milter.conf'/>
+      </dependency>
+      <exec_method name='start' type='method' exec='@PREFIX@/sbin/clamav-milter' timeout_seconds='60'/>
+      <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'/>
+      <template>
+        <common_name>
+          <loctext xml:lang='C'>ClamAV anti-virus sendmail filter</loctext>
+        </common_name>
+        <documentation>
+          <manpage title='clamav-milter' section='8' manpath='@PREFIX@/@PKGMANDIR@'/>
+        </documentation>
+      </template>
+    </instance>
+  </service>
+</service_bundle>
diff --git a/clamav/options.mk b/clamav/options.mk
new file mode 100644
index 0000000000..928144dc7e
--- /dev/null
+++ b/clamav/options.mk
@@ -0,0 +1,42 @@
+# $NetBSD: options.mk,v 1.9 2023/08/29 14:43:01 taca Exp $
+
+PKG_OPTIONS_VAR=	PKG_OPTIONS.clamav
+PKG_SUPPORTED_OPTIONS=	clamav-milter clamav-experimental clamav-unit-test
+
+PKG_OPTIONS_LEGACY_OPTS+=	unit-test:clamav-unit-test
+PKG_OPTIONS_LEGACY_OPTS+=	milter:clamav-milter
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+=	milter
+
+.if ${PKG_OPTIONS:Mclamav-milter}
+# force use of pkgsrc version of libmilter -- clamav uses the sendmail binary
+# to check API compatibility(!), so it must build with as new a version of
+# libmilter as pkgsrc is capable of providing
+USE_BUILTIN.libmilter=	no
+.  include "../../mail/libmilter/buildlink3.mk"
+CONFIGURE_ARGS+=	--enable-milter
+PLIST.milter=		yes
+CONF_SAMPLES+=		clamav-milter.conf
+SMF_INSTANCES+=		clamav-milter
+RCD_SCRIPTS+=		clamav-milter
+.else
+CONFIGURE_ARGS+=	--disable-milter
+# XXX --disable-milter doesn't work as expected, so we need this
+CONFIGURE_ENV+=		ac_cv_header_libmilter_mfapi_h=no
+.endif
+
+.if ${PKG_OPTIONS:Mclamav-experimental}
+CONFIGURE_ARGS+=	--enable-experimental
+.endif
+
+# Enable unit test
+.if ${PKG_OPTIONS:Mclamav-unit-test}
+CONFIGURE_ARGS+=		--enable-check
+TEST_TARGET=			check
+# unit test's Makefile depends on gmake.
+USE_TOOLS+=			gmake
+BUILDLINK_DEPMETHOD.check=	build
+.  include "../../devel/check/buildlink3.mk"
+.endif
diff --git a/clamav/patches/patch-aa b/clamav/patches/patch-aa
new file mode 100644
index 0000000000..3c64ba3854
--- /dev/null
+++ b/clamav/patches/patch-aa
@@ -0,0 +1,14 @@
+$NetBSD: patch-aa,v 1.2 2020/09/19 13:41:42 taca Exp $
+
+Fix compilation error DragonFly.
+
+--- clamdtop/clamdtop.c.orig	2020-09-13 00:27:09.000000000 +0000
++++ clamdtop/clamdtop.c
+@@ -36,6 +36,7 @@
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
++#include <stdarg.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
diff --git a/clamav/patches/patch-etc_clamav-milter.conf.sample b/clamav/patches/patch-etc_clamav-milter.conf.sample
new file mode 100644
index 0000000000..9c8e787d7a
--- /dev/null
+++ b/clamav/patches/patch-etc_clamav-milter.conf.sample
@@ -0,0 +1,24 @@
+$NetBSD: patch-etc_clamav-milter.conf.sample,v 1.2 2020/09/19 13:41:42 taca Exp $
+
+Make this useable out of the box.
+
+--- etc/clamav-milter.conf.sample.orig	2025-06-17 03:41:15.000000000 +0200
++++ etc/clamav-milter.conf.sample	2025-08-23 16:32:49.923593020 +0200
+@@ -3,7 +3,7 @@
+ ##
+ 
+ # Comment or remove the line below.
+-Example
++# Example
+ 
+ 
+ ##
+@@ -65,7 +65,7 @@
+ # also owned by root to keep other users from tampering with it.
+ #
+ # Default: disabled
+-#PidFile /run/clamav/clamav-milter.pid
++PidFile @CLAMAV_DBDIR@/clamd.pid
+ 
+ # Optional path to the global temporary directory.
+ # Default: system specific (usually /tmp or /var/tmp).
diff --git a/clamav/patches/patch-etc_clamd.conf.sample b/clamav/patches/patch-etc_clamd.conf.sample
new file mode 100644
index 0000000000..75275600fd
--- /dev/null
+++ b/clamav/patches/patch-etc_clamd.conf.sample
@@ -0,0 +1,33 @@
+$NetBSD: patch-etc_clamd.conf.sample,v 1.3 2020/09/19 13:41:42 taca Exp $
+
+Make this useable out of the box.
+
+--- etc/clamd.conf.sample.orig	2025-06-17 03:41:15.000000000 +0200
++++ etc/clamd.conf.sample	2025-08-23 16:34:54.711397995 +0200
+@@ -5,7 +5,7 @@
+ 
+ 
+ # Comment or remove the line below.
+-Example
++# Example
+ 
+ # Uncomment this option to enable logging.
+ # LogFile must be writable for the user running daemon.
+@@ -74,7 +74,7 @@
+ # It is recommended that the directory where this file is stored is
+ # also owned by root to keep other users from tampering with it.
+ # Default: disabled
+-#PidFile /run/clamav/clamd.pid
++PidFile @CLAMAV_DBDIR@/clamd.pid
+ 
+ # Optional path to the global temporary directory.
+ # Default: system specific (usually /tmp or /var/tmp).
+@@ -99,7 +99,7 @@
+ # Path to a local socket file the daemon will listen on.
+ # Default: disabled (must be specified by a user)
+ #LocalSocket /run/clamav/clamd.sock
+-#LocalSocket /tmp/clamd.sock
++LocalSocket @CLAMAV_DBDIR@/clamd.sock
+ 
+ # Sets the group ownership on the unix socket.
+ # Default: disabled (the primary group of the user running clamd)
diff --git a/clamav/patches/patch-etc_freshclam.conf.sample b/clamav/patches/patch-etc_freshclam.conf.sample
new file mode 100644
index 0000000000..1082a5a19f
--- /dev/null
+++ b/clamav/patches/patch-etc_freshclam.conf.sample
@@ -0,0 +1,15 @@
+$NetBSD: patch-etc_freshclam.conf.sample,v 1.2 2020/09/19 13:41:42 taca Exp $
+
+Make this useable out of the box.
+
+--- etc/freshclam.conf.sample.orig	2020-09-13 00:27:09.000000000 +0000
++++ etc/freshclam.conf.sample
+@@ -5,7 +5,7 @@
+ 
+ 
+ # Comment or remove the line below.
+-Example
++# Example
+ 
+ # Path to the database directory.
+ # WARNING: It must match clamd.conf's directive!
diff --git a/clamav/patches/patch-libclamav_fmap.c b/clamav/patches/patch-libclamav_fmap.c
new file mode 100644
index 0000000000..32902b0519
--- /dev/null
+++ b/clamav/patches/patch-libclamav_fmap.c
@@ -0,0 +1,25 @@
+$NetBSD: patch-libclamav_fmap.c,v 1.5 2021/11/08 14:49:23 taca Exp $
+
+rename gets to my_gets to avoid conflict with fortify/ssp - they use
+macros to override libc functions
+
+--- libclamav/fmap.c.orig	2025-06-17 03:41:15.000000000 +0200
++++ libclamav/fmap.c	2025-08-23 16:36:47.062952967 +0200
+@@ -428,7 +428,7 @@
+     m->unmap           = unmap_handle;
+     m->need            = handle_need;
+     m->need_offstr     = handle_need_offstr;
+-    m->gets            = handle_gets;
++    m->my_gets         = handle_gets;
+     m->unneed_off      = handle_unneed_off;
+     m->handle_is_fd    = true;
+     m->have_md5        = false;
+@@ -857,7 +857,7 @@
+     m->unmap       = unmap_malloc;
+     m->need        = mem_need;
+     m->need_offstr = mem_need_offstr;
+-    m->gets        = mem_gets;
++    m->my_gets     = mem_gets;
+     m->unneed_off  = mem_unneed_off;
+ 
+     if (NULL != name) {
diff --git a/clamav/patches/patch-libclamav_fmap.h b/clamav/patches/patch-libclamav_fmap.h
new file mode 100644
index 0000000000..ff712cbd46
--- /dev/null
+++ b/clamav/patches/patch-libclamav_fmap.h
@@ -0,0 +1,25 @@
+$NetBSD: patch-libclamav_fmap.h,v 1.3 2021/11/08 14:49:23 taca Exp $
+
+rename gets to my_gets to avoid conflict with fortify/ssp - they use
+macros to override libc functions
+
+--- libclamav/fmap.h.orig	2025-06-17 03:41:15.000000000 +0200
++++ libclamav/fmap.h	2025-08-23 16:37:55.759812359 +0200
+@@ -80,7 +80,7 @@
+     void (*unmap)(fmap_t *);
+     const void *(*need)(fmap_t *, size_t at, size_t len, int lock);
+     const void *(*need_offstr)(fmap_t *, size_t at, size_t len_hint);
+-    const void *(*gets)(fmap_t *, char *dst, size_t *at, size_t max_len);
++    const void *(*my_gets)(fmap_t *, char *dst, size_t *at, size_t max_len);
+     void (*unneed_off)(fmap_t *, size_t at, size_t len);
+     void *windows_file_handle;
+     void *windows_map_handle;
+@@ -357,7 +357,7 @@
+  */
+ static inline const void *fmap_gets(fmap_t *m, char *dst, size_t *at, size_t max_len)
+ {
+-    return m->gets(m, dst, at, max_len);
++    return m->my_gets(m, dst, at, max_len);
+ }
+ 
+ /**


Home | Main Index | Thread Index | Old Index