diff --git a/.gitignore b/.gitignore index 66c40c1..ace15fb 100644 --- a/.gitignore +++ b/.gitignore @@ -36,7 +36,3 @@ /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 index ab00a90..c853d63 100755 --- a/get_test_data.sh +++ b/get_test_data.sh @@ -21,12 +21,6 @@ FORGEURL='https://github.com/zip-rs/zip2' # - 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 @@ -34,67 +28,27 @@ FORGEURL='https://github.com/zip-rs/zip2' OK_FILES="$(grep -vE '^(#|$)' <= 24 @@ -111,6 +99,18 @@ use the "_deflate-any" feature of the "%{crate}" crate. %files -n %{name}+_deflate-any-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+aes-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+aes-devel %{_description} + +This package contains library source intended for building other packages which +use the "aes" feature of the "%{crate}" crate. + +%files -n %{name}+aes-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+aes-crypto-devel Summary: %{summary} BuildArch: noarch @@ -123,18 +123,6 @@ 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 @@ -159,6 +147,18 @@ use the "chrono" feature of the "%{crate}" crate. %files -n %{name}+chrono-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+constant_time_eq-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+constant_time_eq-devel %{_description} + +This package contains library source intended for building other packages which +use the "constant_time_eq" feature of the "%{crate}" crate. + +%files -n %{name}+constant_time_eq-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+deflate-devel Summary: %{summary} BuildArch: noarch @@ -195,18 +195,6 @@ use the "deflate-flate2-zlib" feature of the "%{crate}" crate. %files -n %{name}+deflate-flate2-zlib-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+deflate-flate2-zlib-ng-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+deflate-flate2-zlib-ng-devel %{_description} - -This package contains library source intended for building other packages which -use the "deflate-flate2-zlib-ng" feature of the "%{crate}" crate. - -%files -n %{name}+deflate-flate2-zlib-ng-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+deflate-flate2-zlib-rs-devel Summary: %{summary} BuildArch: noarch @@ -243,6 +231,30 @@ use the "deflate64" feature of the "%{crate}" crate. %files -n %{name}+deflate64-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+getrandom-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+getrandom-devel %{_description} + +This package contains library source intended for building other packages which +use the "getrandom" feature of the "%{crate}" crate. + +%files -n %{name}+getrandom-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+hmac-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+hmac-devel %{_description} + +This package contains library source intended for building other packages which +use the "hmac" feature of the "%{crate}" crate. + +%files -n %{name}+hmac-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+jiff-02-devel Summary: %{summary} BuildArch: noarch @@ -255,18 +267,6 @@ 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 @@ -279,6 +279,42 @@ use the "lzma" feature of the "%{crate}" crate. %files -n %{name}+lzma-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+lzma-rs-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+lzma-rs-devel %{_description} + +This package contains library source intended for building other packages which +use the "lzma-rs" feature of the "%{crate}" crate. + +%files -n %{name}+lzma-rs-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+pbkdf2-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+pbkdf2-devel %{_description} + +This package contains library source intended for building other packages which +use the "pbkdf2" feature of the "%{crate}" crate. + +%files -n %{name}+pbkdf2-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+sha1-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+sha1-devel %{_description} + +This package contains library source intended for building other packages which +use the "sha1" feature of the "%{crate}" crate. + +%files -n %{name}+sha1-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+time-devel Summary: %{summary} BuildArch: noarch @@ -315,6 +351,30 @@ use the "xz" feature of the "%{crate}" crate. %files -n %{name}+xz-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+zeroize-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+zeroize-devel %{_description} + +This package contains library source intended for building other packages which +use the "zeroize" feature of the "%{crate}" crate. + +%files -n %{name}+zeroize-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+zopfli-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+zopfli-devel %{_description} + +This package contains library source intended for building other packages which +use the "zopfli" feature of the "%{crate}" crate. + +%files -n %{name}+zopfli-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+zstd-devel Summary: %{summary} BuildArch: noarch @@ -344,6 +404,7 @@ use the "zstd" feature of the "%{crate}" crate. %check # Extract test data (only) from the GitHub archive tar -xzvf '%{SOURCE10}' --strip-components=1 'zip2-%{version}/tests/data/' +cp -vp '%{SOURCE11}' tests/data/ %cargo_test -a %endif diff --git a/rust2rpm.toml b/rust2rpm.toml index c25ed64..ae2e4ab 100644 --- a/rust2rpm.toml +++ b/rust2rpm.toml @@ -1,34 +1,14 @@ [package] cargo-toml-patch-comments = [ - "Drop unused benchmark-only / example-only dev-dependencies", + "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.\ + Remove the wasm_js feature from the getrandom dependency for the getrandom \ + feature, and 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.\ """, + "patch out the nt-time features; rust-nt-time not yet packaged", ] doc-files.exclude = ["pull_request_template.md"] exclude-crate-files = [ @@ -57,7 +37,7 @@ comments = [ [[package.extra-patches]] number = 10 -file = "zip-6.0.0-omitted-test-files.patch" +file = "zip-3.0.0-omitted-test-files.patch" comments = [ """\ Downstream-only: patch out tests that would need omitted test files to \ @@ -72,5 +52,6 @@ enable-all = true check.pre = [ "# Extract test data (only) from the GitHub archive", "tar -xzvf '%{SOURCE10}' --strip-components=1 'zip2-%{version}/tests/data/'", + "cp -vp '%{SOURCE11}' tests/data/", ] diff --git a/sources b/sources index ce5d3d4..8fa925c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (zip-7.0.0.crate) = ef79949f6acb5e6d46f0458fb08fc465baab032e03b66af517c7db0812a33671cf12124e8a279521e072b83ae9d6ad74ca69a12541079e8b7d6db242e612f260 -SHA512 (zip2-7.0.0-filtered.tar.gz) = 68e02788edb45009430c808e79f89e0141082c883f13d653676152402ef54056af602721b388e4c0c186dcbc0c8d7699f476ecb7339b932cd9c48e6a669e65ad +SHA512 (zip-3.0.0.crate) = 64e0952ab5232a4c36e0f7c019fefd382f0373d2e7bbcdbe026bad522e14d9e483aa75793e9f592371497e068ba416a6939ef242223ed387c4d077a3ca044bc5 +SHA512 (zip2-3.0.0-filtered.tar.gz) = 8eb13dae727299566790ba067ebd85686fe62f4474cdfa8ac4d18c39d56c5fd258aba0d2f3babae1c6378f17d2e620c35dbb9e4afdc636fd45bf1b2924c6058d diff --git a/zip-3.0.0-omitted-test-files.patch b/zip-3.0.0-omitted-test-files.patch new file mode 100644 index 0000000..876a903 --- /dev/null +++ b/zip-3.0.0-omitted-test-files.patch @@ -0,0 +1,12 @@ +diff -Naur zip-3.0.0-original/src/read.rs zip-3.0.0/src/read.rs +--- zip-3.0.0-original/src/read.rs 2006-07-23 21:21:28.000000000 -0400 ++++ zip-3.0.0/src/read.rs 2025-05-16 07:16:07.587241056 -0400 +@@ -2170,6 +2170,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 v = Vec::new(); + v.extend_from_slice(include_bytes!("../tests/data/chinese.zip")); diff --git a/zip-6.0.0-omitted-test-files.patch b/zip-6.0.0-omitted-test-files.patch deleted file mode 100644 index 9bc23c1..0000000 --- a/zip-6.0.0-omitted-test-files.patch +++ /dev/null @@ -1,21 +0,0 @@ -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 index d1d32f2..fa93a29 100644 --- a/zip-fix-metadata-auto.diff +++ b/zip-fix-metadata-auto.diff @@ -1,6 +1,6 @@ ---- 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 @@ +--- zip-3.0.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ zip-3.0.0/Cargo.toml 2025-05-16T11:17:25.429348+00:00 +@@ -244,6 +244,3 @@ [dev-dependencies.walkdir] version = "2.5" diff --git a/zip-fix-metadata.diff b/zip-fix-metadata.diff index d869273..95bfdb7 100644 --- a/zip-fix-metadata.diff +++ b/zip-fix-metadata.diff @@ -1,52 +1,22 @@ ---- 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", +--- zip-3.0.0/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ zip-3.0.0/Cargo.toml 2025-05-16T11:17:25.430552+00:00 +@@ -97,7 +97,6 @@ ] --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"] + lzma = ["lzma-rs/stream"] -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.3.1" -+version = "0.4.2" - optional = true - - [dependencies.crc32fast] -@@ -165,7 +158,7 @@ - default-features = false - - [dependencies.generic-array] --version = "=0.14.7" -+version = "0.14.7" - optional = true + xz = ["dep:xz2"] +@@ -151,7 +150,6 @@ [dependencies.getrandom] -@@ -199,17 +192,8 @@ + version = "0.3.1" + features = [ +- "wasm_js", + "std", + ] + optional = true +@@ -176,11 +174,6 @@ [dependencies.memchr] version = "2.7" @@ -57,14 +27,8 @@ - [dependencies.pbkdf2] version = "0.12" --optional = true -- --[dependencies.ppmd-rust] --version = "1.2" optional = true - - [dependencies.sha1] -@@ -236,20 +220,9 @@ +@@ -213,20 +206,9 @@ optional = true default-features = false @@ -85,7 +49,7 @@ "std", ] -@@ -264,6 +237,3 @@ +@@ -241,6 +223,3 @@ ] default-features = false