diff --git a/.gitignore b/.gitignore index be3d35a..66c40c1 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,37 @@ /zip-0.5.13.crate /zip-0.6.4.crate /zip-0.6.6.crate +/zip-1.1.4.crate +/zip2-1.1.4.tar.gz +/zip-2.1.0.crate +/zip2-2.1.0-filtered.tar.gz +/zip-2.1.3.crate +/zip2-2.1.3-filtered.tar.gz +/zip-2.1.4.crate +/zip2-2.1.4-filtered.tar.gz +/zip-2.1.5.crate +/zip2-2.1.5-filtered.tar.gz +/zip-2.2.2.crate +/zip2-2.2.2-filtered.tar.gz +/zip-2.2.3.crate +/zip2-2.2.3-filtered.tar.gz +/zip-2.3.0.crate +/zip2-2.3.0-filtered.tar.gz +/zip-2.4.0.crate +/zip2-2.4.0-filtered.tar.gz +/zip-2.4.1.crate +/zip2-2.4.1-filtered.tar.gz +/zip-2.4.2.crate +/zip2-2.4.2-filtered.tar.gz +/zip-2.5.0.crate +/zip2-2.5.0-filtered.tar.gz +/zip-2.6.0.crate +/zip2-2.6.0-filtered.tar.gz +/zip-2.6.1.crate +/zip2-2.6.1-filtered.tar.gz +/zip-3.0.0.crate +/zip2-3.0.0-filtered.tar.gz +/zip-6.0.0.crate +/zip2-6.0.0-filtered.tar.gz +/zip-7.0.0.crate +/zip2-7.0.0-filtered.tar.gz diff --git a/get_test_data.sh b/get_test_data.sh new file mode 100755 index 0000000..ab00a90 --- /dev/null +++ b/get_test_data.sh @@ -0,0 +1,171 @@ +#!/bin/sh +set -o nounset +set -o errexit + +FORGEURL='https://github.com/zip-rs/zip2' + +# These are test data files that have been audited for obvious issues. What +# kind of issues might there be? +# +# - Acceptable license, but no license text +# - No known license / presumed or explicitly proprietary +# - Mysterious precompiled binaries +# +# Files we have determined we should *not* include: +# +# - chinese.zip: +# The single text file it contains, 七个房间.txt, contains a significant +# amount of narrative text in GB2312 encoding: some kind of story, or an +# excerpt from one, perhaps a work of fiction. It’s not clear what the origin +# is or what license, if any, might apply. +# - lin-ub_iwd-v11.zip: +# LICENSE.lin-ub_iwd-v11.zip.txt clearly shows that this is at *best* not +# under a license acceptable in Fedora. +# - omni.ja: +# This is a Firefox application resource bundle, +# https://udn.realityripple.com/docs/Mozilla/About_omni.ja_(formerly_omni.jar). +# It is very likely that everything in it is properly licensed for Fedora, +# but it is complex to audit, and we would rather not do all that work to +# confirm it’s OK when the alternative is just disabling a single test. +# - pandoc_soft_links.zip: +# Contains a copy of pandoc 3.2 compiled for aarch64: pandoc itself is +# open-source, but who can say what was linked into it? The complete list of +# applicable licenses is not knowable. +OK_FILES="$(grep -vE '^(#|$)' <&2 + print_help "${0}" + exit 1 +elif [ "${1-}" = '-h' ] || [ "${1-}" = '--help' ] +then + print_help "${0}" + exit 0 +fi + +VERSION="${1}" +SOURCE0="${FORGEURL}/archive/v${VERSION}/zip2-${VERSION}.tar.gz" +TARNAME="$(basename "${SOURCE0}")" +TARDIR="$(basename "${SOURCE0}" '.tar.gz')" +NEWTAR="${TARDIR}-filtered.tar.gz" + +SAVEDIR="${PWD}" +XDIR="$(mktemp -d)" +trap "rm -rf '${XDIR}'" INT TERM EXIT + +cd "${XDIR}" +curl -L -O "${SOURCE0}" +tar -xzf "${TARNAME}" +MTIME="$(stat -c '%Y' "${TARDIR}")" +# Remove everything but tests/data +find "${TARDIR}" -mindepth 1 -maxdepth 1 ! -name tests -execdir rm -r '{}' '+' +find "${TARDIR}/tests" -mindepth 1 -maxdepth 1 ! -name data \ + -execdir rm -r '{}' '+' +# Empty tests/data (keeping the files in a duplicate tree), then move the files +# we want back in. +cp -lrp "${TARDIR}/tests/data" data_unfiltered +find "${TARDIR}/tests/data" -type f -delete +echo "${OK_FILES}" | while read -r fn +do + mkdir -p "${TARDIR}/tests/data/$(dirname "${fn}")" + mv "data_unfiltered/${fn}" "${TARDIR}/tests/data/${fn}" +done +# https://www.gnu.org/software/tar/manual/html_section/Reproducibility.html +# We reset all mtimes to that of the top-level extracted directory; since git +# archives don’t have meaningful per-file mtimes, nothing useful is lost. +TZ=UTC LC_ALL=C tar \ + --create --verbose \ + --sort=name \ + --format=posix \ + --numeric-owner --owner=0 --group=0 \ + --mode=go+u,go-w \ + --pax-option='delete=atime,delete=ctime' \ + --clamp-mtime --mtime="@${MTIME}" \ + "${TARDIR}/" | + gzip -9 > "${NEWTAR}" +touch -d @"${MTIME}" "${NEWTAR}" + +cd "${SAVEDIR}" +mv -v "${XDIR}/${NEWTAR}" . diff --git a/rust-zip.spec b/rust-zip.spec index fd33e21..75c22f5 100644 --- a/rust-zip.spec +++ b/rust-zip.spec @@ -1,23 +1,51 @@ -# Generated by rust2rpm 26 -%bcond_without check +# Generated by rust2rpm 28 +%bcond check 1 %global debug_package %{nil} %global crate zip Name: rust-zip -Version: 0.6.6 +Version: 7.0.0 Release: %autorelease Summary: Library to support the reading and writing of zip files License: MIT URL: https://crates.io/crates/zip Source: %{crates_source} +# * A copy of the GitHub source archive for zip-rs/zip2, with everything but the +# test/data/ subdirectory removed, and additionally, from which test files +# with known license issues have been removed. Fortunately, no removed test +# files are required for any of the tests that are present in the published +# crates. +Source10: zip2-%{version}-filtered.tar.gz +# * Script used to generate Source11: ./get_test_data.sh %%{version} +Source11: get_test_data.sh +# Automatically generated patch to strip dependencies and normalize metadata +Patch: zip-fix-metadata-auto.diff # Manually created patch for downstream crate metadata changes -# * bump constant_time_eq dependency from 0.1 to 0.3 -# * bump pbkdf2 dependency from 0.11 to 0.12 -# * bump zstd dependency from 0.11 to 0.13 -# * drop unused, benchmark-only bencher dev-dependency +# * Drop unused benchmark-only / example-only dev-dependencies +# * Remove the wasm_js feature from the getrandom dev-dependency. Our +# rust-getrandom does not provide this feature; see also “Unconditional use of +# getrandom’s wasm_js feature is counter to upstream guidance,” +# https://github.com/zip-rs/zip2/issues/336. Upstream fixed the issue for the +# dependency since 4.3.0, but not yet for the dev-dependency. +# * Patch out the nt-time features; rust-nt-time not yet packaged +# * Patch out ppmd support, even though it is in the default features. While the +# README.md for the ppmd-rust crate says “The code in this crate is in the +# public domain as the original code by their authors,” Cargo.toml lists the +# license as CC0-1.0, which is not precisely equivalent to the public-domain +# declaration in the README and is not-allowed for code in Fedora. +# * Patch out the deflate-flate2-zlib-ng-compat feature, which requires +# flate2/zlib-ng-compat, not packaged. +# * Unpin generic-array; see https://github.com/zip-rs/zip2/pull/458 for the +# upstream rationale, but we cannot use an old version and are not so +# concerned about deprecation warnings anyway. +# * Update constant_time_eq from 0.3.1 to 0.4.2. Downstream-only for MSRV +# reasons. Patch: zip-fix-metadata.diff +# * Downstream-only: patch out tests that would need omitted test files to +# compile +Patch10: zip-6.0.0-omitted-test-files.patch BuildRequires: cargo-rpm-macros >= 24 @@ -39,8 +67,13 @@ use the "%{crate}" crate. %license %{crate_instdir}/LICENSE %doc %{crate_instdir}/CHANGELOG.md %doc %{crate_instdir}/CODE_OF_CONDUCT.md +%doc %{crate_instdir}/CONTRIBUTING.md %doc %{crate_instdir}/README.md +%doc %{crate_instdir}/SECURITY.md %{crate_instdir}/ +%exclude %{crate_instdir}/cliff.toml +%exclude %{crate_instdir}/pull_request_template.md +%exclude %{crate_instdir}/release-plz.toml %package -n %{name}+default-devel Summary: %{summary} @@ -54,16 +87,28 @@ use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+aes-devel +%package -n %{name}+_all-features-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+aes-devel %{_description} +%description -n %{name}+_all-features-devel %{_description} This package contains library source intended for building other packages which -use the "aes" feature of the "%{crate}" crate. +use the "_all-features" feature of the "%{crate}" crate. -%files -n %{name}+aes-devel +%files -n %{name}+_all-features-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+_deflate-any-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+_deflate-any-devel %{_description} + +This package contains library source intended for building other packages which +use the "_deflate-any" feature of the "%{crate}" crate. + +%files -n %{name}+_deflate-any-devel %ghost %{crate_instdir}/Cargo.toml %package -n %{name}+aes-crypto-devel @@ -78,6 +123,18 @@ use the "aes-crypto" feature of the "%{crate}" crate. %files -n %{name}+aes-crypto-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+bitstream-io-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+bitstream-io-devel %{_description} + +This package contains library source intended for building other packages which +use the "bitstream-io" feature of the "%{crate}" crate. + +%files -n %{name}+bitstream-io-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+bzip2-devel Summary: %{summary} BuildArch: noarch @@ -90,16 +147,16 @@ use the "bzip2" feature of the "%{crate}" crate. %files -n %{name}+bzip2-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+constant_time_eq-devel +%package -n %{name}+chrono-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+constant_time_eq-devel %{_description} +%description -n %{name}+chrono-devel %{_description} This package contains library source intended for building other packages which -use the "constant_time_eq" feature of the "%{crate}" crate. +use the "chrono" feature of the "%{crate}" crate. -%files -n %{name}+constant_time_eq-devel +%files -n %{name}+chrono-devel %ghost %{crate_instdir}/Cargo.toml %package -n %{name}+deflate-devel @@ -114,76 +171,112 @@ use the "deflate" feature of the "%{crate}" crate. %files -n %{name}+deflate-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+deflate-miniz-devel +%package -n %{name}+deflate-flate2-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+deflate-miniz-devel %{_description} +%description -n %{name}+deflate-flate2-devel %{_description} This package contains library source intended for building other packages which -use the "deflate-miniz" feature of the "%{crate}" crate. +use the "deflate-flate2" feature of the "%{crate}" crate. -%files -n %{name}+deflate-miniz-devel +%files -n %{name}+deflate-flate2-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+deflate-zlib-devel +%package -n %{name}+deflate-flate2-zlib-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+deflate-zlib-devel %{_description} +%description -n %{name}+deflate-flate2-zlib-devel %{_description} This package contains library source intended for building other packages which -use the "deflate-zlib" feature of the "%{crate}" crate. +use the "deflate-flate2-zlib" feature of the "%{crate}" crate. -%files -n %{name}+deflate-zlib-devel +%files -n %{name}+deflate-flate2-zlib-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+flate2-devel +%package -n %{name}+deflate-flate2-zlib-ng-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+flate2-devel %{_description} +%description -n %{name}+deflate-flate2-zlib-ng-devel %{_description} This package contains library source intended for building other packages which -use the "flate2" feature of the "%{crate}" crate. +use the "deflate-flate2-zlib-ng" feature of the "%{crate}" crate. -%files -n %{name}+flate2-devel +%files -n %{name}+deflate-flate2-zlib-ng-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+hmac-devel +%package -n %{name}+deflate-flate2-zlib-rs-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+hmac-devel %{_description} +%description -n %{name}+deflate-flate2-zlib-rs-devel %{_description} This package contains library source intended for building other packages which -use the "hmac" feature of the "%{crate}" crate. +use the "deflate-flate2-zlib-rs" feature of the "%{crate}" crate. -%files -n %{name}+hmac-devel +%files -n %{name}+deflate-flate2-zlib-rs-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+pbkdf2-devel +%package -n %{name}+deflate-zopfli-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+pbkdf2-devel %{_description} +%description -n %{name}+deflate-zopfli-devel %{_description} This package contains library source intended for building other packages which -use the "pbkdf2" feature of the "%{crate}" crate. +use the "deflate-zopfli" feature of the "%{crate}" crate. -%files -n %{name}+pbkdf2-devel +%files -n %{name}+deflate-zopfli-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+sha1-devel +%package -n %{name}+deflate64-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+sha1-devel %{_description} +%description -n %{name}+deflate64-devel %{_description} This package contains library source intended for building other packages which -use the "sha1" feature of the "%{crate}" crate. +use the "deflate64" feature of the "%{crate}" crate. -%files -n %{name}+sha1-devel +%files -n %{name}+deflate64-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+jiff-02-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+jiff-02-devel %{_description} + +This package contains library source intended for building other packages which +use the "jiff-02" feature of the "%{crate}" crate. + +%files -n %{name}+jiff-02-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+legacy-zip-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+legacy-zip-devel %{_description} + +This package contains library source intended for building other packages which +use the "legacy-zip" feature of the "%{crate}" crate. + +%files -n %{name}+legacy-zip-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+lzma-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+lzma-devel %{_description} + +This package contains library source intended for building other packages which +use the "lzma" feature of the "%{crate}" crate. + +%files -n %{name}+lzma-devel %ghost %{crate_instdir}/Cargo.toml %package -n %{name}+time-devel @@ -210,6 +303,18 @@ use the "unreserved" feature of the "%{crate}" crate. %files -n %{name}+unreserved-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+xz-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+xz-devel %{_description} + +This package contains library source intended for building other packages which +use the "xz" feature of the "%{crate}" crate. + +%files -n %{name}+xz-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+zstd-devel Summary: %{summary} BuildArch: noarch @@ -237,6 +342,8 @@ use the "zstd" feature of the "%{crate}" crate. %if %{with check} %check +# Extract test data (only) from the GitHub archive +tar -xzvf '%{SOURCE10}' --strip-components=1 'zip2-%{version}/tests/data/' %cargo_test -a %endif diff --git a/rust2rpm.toml b/rust2rpm.toml index f5e36c2..c25ed64 100644 --- a/rust2rpm.toml +++ b/rust2rpm.toml @@ -1,11 +1,76 @@ [package] cargo-toml-patch-comments = [ - "bump constant_time_eq dependency from 0.1 to 0.3", - "bump pbkdf2 dependency from 0.11 to 0.12", - "bump zstd dependency from 0.11 to 0.13", - "drop unused, benchmark-only bencher dev-dependency", + "Drop unused benchmark-only / example-only dev-dependencies", + """\ + Remove the wasm_js feature from the getrandom dev-dependency. Our \ + rust-getrandom does not provide this feature; see also “Unconditional use of \ + getrandom’s wasm_js feature is counter to upstream guidance,” \ + https://github.com/zip-rs/zip2/issues/336. Upstream fixed the issue for the \ + dependency since 4.3.0, but not yet for the dev-dependency.\ + """, + "Patch out the nt-time features; rust-nt-time not yet packaged", + """\ + Patch out ppmd support, even though it is in the default features. While \ + the README.md for the ppmd-rust crate says “The code in this crate is in the \ + public domain as the original code by their authors,” Cargo.toml lists the \ + license as CC0-1.0, which is not precisely equivalent to the public-domain \ + declaration in the README and is not-allowed for code in Fedora.\ + """, + """\ + Patch out the deflate-flate2-zlib-ng-compat feature, which requires \ + flate2/zlib-ng-compat, not packaged.\ + """, + """\ + Unpin generic-array; see https://github.com/zip-rs/zip2/pull/458 for the \ + upstream rationale, but we cannot use an old version and are not so \ + concerned about deprecation warnings anyway.\ + """, + """\ + Update constant_time_eq from 0.3.1 to 0.4.2. Downstream-only for MSRV \ + reasons.\ + """, +] +doc-files.exclude = ["pull_request_template.md"] +exclude-crate-files = [ + "cliff.toml", + "pull_request_template.md", + "release-plz.toml", +] + +[[package.extra-sources]] +number = 10 +file = "zip2-%{version}-filtered.tar.gz" +comments = [ + """\ + A copy of the GitHub source archive for zip-rs/zip2, with everything but the \ + test/data/ subdirectory removed, and additionally, from which test files with \ + known license issues have been removed. Fortunately, no removed test files \ + are required for any of the tests that are present in the published crates.\ + """, +] +[[package.extra-sources]] +number = 11 +file = "get_test_data.sh" +comments = [ + "Script used to generate Source11: ./get_test_data.sh %%{version}" +] + +[[package.extra-patches]] +number = 10 +file = "zip-6.0.0-omitted-test-files.patch" +comments = [ + """\ + Downstream-only: patch out tests that would need omitted test files to \ + compile\ + """, ] [features] enable-all = true +[scripts] +check.pre = [ + "# Extract test data (only) from the GitHub archive", + "tar -xzvf '%{SOURCE10}' --strip-components=1 'zip2-%{version}/tests/data/'", +] + diff --git a/sources b/sources index b0f021f..ce5d3d4 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (zip-0.6.6.crate) = affd46c17ceaa0545a155250dfd16756f8706dda43bae8a322ec0481dbfb41e4cf3166bf9662fc139ef9d0ab3b0f9f158535b21d2a61b21d38b8b2407813eeef +SHA512 (zip-7.0.0.crate) = ef79949f6acb5e6d46f0458fb08fc465baab032e03b66af517c7db0812a33671cf12124e8a279521e072b83ae9d6ad74ca69a12541079e8b7d6db242e612f260 +SHA512 (zip2-7.0.0-filtered.tar.gz) = 68e02788edb45009430c808e79f89e0141082c883f13d653676152402ef54056af602721b388e4c0c186dcbc0c8d7699f476ecb7339b932cd9c48e6a669e65ad diff --git a/zip-6.0.0-omitted-test-files.patch b/zip-6.0.0-omitted-test-files.patch new file mode 100644 index 0000000..9bc23c1 --- /dev/null +++ b/zip-6.0.0-omitted-test-files.patch @@ -0,0 +1,21 @@ +diff -Naur zip-6.0.0-original/src/read.rs zip-6.0.0/src/read.rs +--- zip-6.0.0-original/src/read.rs 2006-07-24 02:21:28.000000000 +0100 ++++ zip-6.0.0/src/read.rs 2025-12-17 11:48:28.449459541 +0000 +@@ -2316,6 +2316,8 @@ + + #[test] + #[cfg(feature = "deflate-flate2")] ++ // Downstream patch: we do not include the test file needed for this test. ++ #[cfg(any())] + fn test_utf8_extra_field() { + let mut reader = + ZipArchive::new(Cursor::new(include_bytes!("../tests/data/chinese.zip"))).unwrap(); +@@ -2399,6 +2401,8 @@ + } + + #[test] ++ // Downstream patch: we do not include the test file needed for this test. ++ #[cfg(any())] + fn test_central_directory_not_at_end() -> ZipResult<()> { + let mut reader = ZipArchive::new(Cursor::new(include_bytes!("../tests/data/omni.ja")))?; + let mut file = reader.by_name("chrome.manifest")?; diff --git a/zip-fix-metadata-auto.diff b/zip-fix-metadata-auto.diff new file mode 100644 index 0000000..d1d32f2 --- /dev/null +++ b/zip-fix-metadata-auto.diff @@ -0,0 +1,9 @@ +--- zip-7.0.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ zip-7.0.0/Cargo.toml 2026-01-09T22:11:25.991905+00:00 +@@ -267,6 +267,3 @@ + [dev-dependencies.walkdir] + version = "2.5" + +-[target."cfg(fuzzing)".dependencies.arbitrary] +-version = "1.4.1" +-features = ["derive"] diff --git a/zip-fix-metadata.diff b/zip-fix-metadata.diff index 7992426..d869273 100644 --- a/zip-fix-metadata.diff +++ b/zip-fix-metadata.diff @@ -1,33 +1,94 @@ ---- zip-0.6.6/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ zip-0.6.6/Cargo.toml 2024-09-19T17:54:06.895145+00:00 -@@ -50,7 +50,7 @@ +--- zip-7.0.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ zip-7.0.0/Cargo.toml 2026-01-09T22:11:31.620816+00:00 +@@ -72,7 +72,6 @@ + "deflate64", + "deflate", + "lzma", +- "ppmd", + "time", + "zstd", + "xz", +@@ -93,10 +92,6 @@ + "deflate-flate2", + "flate2/zlib-ng", + ] +-deflate-flate2-zlib-ng-compat = [ +- "deflate-flate2", +- "flate2/zlib-ng-compat", +-] + deflate-flate2-zlib-rs = [ + "deflate-flate2", + "flate2/zlib-rs", +@@ -108,8 +103,6 @@ + jiff-02 = ["dep:jiff"] + legacy-zip = ["bitstream-io"] + lzma = ["dep:lzma-rust2"] +-nt-time = ["dep:nt-time"] +-ppmd = ["dep:ppmd-rust"] + unreserved = [] + xz = ["dep:lzma-rust2"] + +@@ -149,7 +142,7 @@ optional = true [dependencies.constant_time_eq] --version = "0.1.5" -+version = "0.3" +-version = "0.3.1" ++version = "0.4.2" optional = true [dependencies.crc32fast] -@@ -67,7 +67,7 @@ +@@ -165,7 +158,7 @@ + default-features = false + + [dependencies.generic-array] +-version = "=0.14.7" ++version = "0.14.7" optional = true + [dependencies.getrandom] +@@ -199,17 +192,8 @@ + [dependencies.memchr] + version = "2.7" + +-[dependencies.nt-time] +-version = "0.10.6" +-optional = true +-default-features = false +- [dependencies.pbkdf2] --version = "0.11.0" -+version = "0.12.0" + version = "0.12" +-optional = true +- +-[dependencies.ppmd-rust] +-version = "1.2" optional = true [dependencies.sha1] -@@ -81,11 +81,8 @@ +@@ -236,20 +220,9 @@ + optional = true default-features = false - [dependencies.zstd] --version = "0.11.2" -+version = "0.13" - optional = true +-[dev-dependencies.anyhow] +-version = "1.0.95" - -[dev-dependencies.bencher] -version = "0.1.5" - +- +-[dev-dependencies.clap] +-version = "=4.4.18" +-features = ["derive"] +- [dev-dependencies.getrandom] - version = "0.2.5" + version = "0.3.1" + features = [ +- "wasm_js", + "std", + ] + +@@ -264,6 +237,3 @@ + ] + default-features = false + +-[dev-dependencies.walkdir] +-version = "2.5" +-