diff --git a/.gitignore b/.gitignore index b4d589c..66c40c1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,39 @@ /zip-0.5.11.crate /zip-0.5.12.crate /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/README.md b/README.md deleted file mode 100644 index 760766e..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-zip - -The rust-zip package \ No newline at end of file diff --git a/changelog b/changelog new file mode 100644 index 0000000..c29ffd0 --- /dev/null +++ b/changelog @@ -0,0 +1,45 @@ +* Sat Jan 21 2023 Fedora Release Engineering - 0.5.13-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 0.5.13-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 0.5.13-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.5.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jun 05 2021 Fabio Valentini - 0.5.13-1 +- Update to version 0.5.13. +- Fixes RHBZ#1968045 + +* Wed Apr 21 2021 Fabio Valentini - 0.5.12-1 +- Update to version 0.5.12. +- Fixes RHBZ#1950461 + +* Mon Mar 01 2021 Fabio Valentini - 0.5.11-1 +- Update to version 0.5.11. +- Bump to bzip2 0.4. + +* Wed Jan 27 2021 Fedora Release Engineering - 0.5.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 07 2020 Fabio Valentini - 0.5.9-1 +- Update to version 0.5.9. +- Fixes RHBZ#1904876 + +* Sun Nov 08 2020 Fabio Valentini - 0.5.8-2 +- Relax flate2 dependency. + +* Fri Sep 11 2020 Josh Stone - 0.5.8-1 +- Update to 0.5.8 + +* Wed Jul 29 2020 Fedora Release Engineering - 0.5.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jun 27 2020 Michel Alexandre Salim - 0.5.6-1 +- Update to 0.5.6 + +* Sat May 23 13:25:44 PDT 2020 Michel Alexandre Salim - 0.5.5-1 +- Initial package 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 2537903..75c22f5 100644 --- a/rust-zip.spec +++ b/rust-zip.spec @@ -1,25 +1,53 @@ -# Generated by rust2rpm 17 -%bcond_without check +# Generated by rust2rpm 28 +%bcond check 1 %global debug_package %{nil} %global crate zip -Name: rust-%{crate} -Version: 0.5.13 -Release: 1%{?dist} +Name: rust-zip +Version: 7.0.0 +Release: %autorelease Summary: Library to support the reading and writing of zip files -# Upstream license specification: MIT 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 +# * 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 -ExclusiveArch: %{rust_arches} -%if %{__cargo_skip_build} -BuildArch: noarch -%endif - -BuildRequires: rust-packaging +BuildRequires: cargo-rpm-macros >= 24 %global _description %{expand: Library to support the reading and writing of zip files.} @@ -32,13 +60,20 @@ BuildArch: noarch %description devel %{_description} -This package contains library source intended for building other packages -which use "%{crate}" crate. +This package contains library source intended for building other packages which +use the "%{crate}" crate. %files devel -%license LICENSE -%doc README.md -%{cargo_registry}/%{crate}-%{version_no_tilde}/ +%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} @@ -46,11 +81,59 @@ BuildArch: noarch %description -n %{name}+default-devel %{_description} -This package contains library source intended for building other packages -which use "default" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. %files -n %{name}+default-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+_all-features-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+_all-features-devel %{_description} + +This package contains library source intended for building other packages which +use the "_all-features" feature of the "%{crate}" crate. + +%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 +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+aes-crypto-devel %{_description} + +This package contains library source intended for building other packages which +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} @@ -58,11 +141,23 @@ BuildArch: noarch %description -n %{name}+bzip2-devel %{_description} -This package contains library source intended for building other packages -which use "bzip2" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "bzip2" feature of the "%{crate}" crate. %files -n %{name}+bzip2-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+chrono-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+chrono-devel %{_description} + +This package contains library source intended for building other packages which +use the "chrono" feature of the "%{crate}" crate. + +%files -n %{name}+chrono-devel +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+deflate-devel Summary: %{summary} @@ -70,47 +165,119 @@ BuildArch: noarch %description -n %{name}+deflate-devel %{_description} -This package contains library source intended for building other packages -which use "deflate" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "deflate" feature of the "%{crate}" crate. %files -n %{name}+deflate-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%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 "deflate-miniz" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "deflate-flate2" feature of the "%{crate}" crate. -%files -n %{name}+deflate-miniz-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%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 "deflate-zlib" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "deflate-flate2-zlib" feature of the "%{crate}" crate. -%files -n %{name}+deflate-zlib-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%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 "flate2" feature of "%{crate}" crate. +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}+flate2-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%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 + +%description -n %{name}+deflate-flate2-zlib-rs-devel %{_description} + +This package contains library source intended for building other packages which +use the "deflate-flate2-zlib-rs" feature of the "%{crate}" crate. + +%files -n %{name}+deflate-flate2-zlib-rs-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+deflate-zopfli-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+deflate-zopfli-devel %{_description} + +This package contains library source intended for building other packages which +use the "deflate-zopfli" feature of the "%{crate}" crate. + +%files -n %{name}+deflate-zopfli-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+deflate64-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+deflate64-devel %{_description} + +This package contains library source intended for building other packages which +use the "deflate64" feature of the "%{crate}" crate. + +%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 Summary: %{summary} @@ -118,11 +285,11 @@ BuildArch: noarch %description -n %{name}+time-devel %{_description} -This package contains library source intended for building other packages -which use "time" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "time" feature of the "%{crate}" crate. %files -n %{name}+time-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%ghost %{crate_instdir}/Cargo.toml %package -n %{name}+unreserved-devel Summary: %{summary} @@ -130,61 +297,55 @@ BuildArch: noarch %description -n %{name}+unreserved-devel %{_description} -This package contains library source intended for building other packages -which use "unreserved" feature of "%{crate}" crate. +This package contains library source intended for building other packages which +use the "unreserved" feature of the "%{crate}" crate. %files -n %{name}+unreserved-devel -%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml +%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 + +%description -n %{name}+zstd-devel %{_description} + +This package contains library source intended for building other packages which +use the "zstd" feature of the "%{crate}" crate. + +%files -n %{name}+zstd-devel +%ghost %{crate_instdir}/Cargo.toml %prep -%autosetup -n %{crate}-%{version_no_tilde} -p1 +%autosetup -n %{crate}-%{version} -p1 %cargo_prep %generate_buildrequires -%cargo_generate_buildrequires +%cargo_generate_buildrequires -a %build -%cargo_build +%cargo_build -a %install -%cargo_install +%cargo_install -a %if %{with check} %check -%cargo_test +# Extract test data (only) from the GitHub archive +tar -xzvf '%{SOURCE10}' --strip-components=1 'zip2-%{version}/tests/data/' +%cargo_test -a %endif %changelog -* Sat Jun 05 2021 Fabio Valentini - 0.5.13-1 -- Update to version 0.5.13. -- Fixes RHBZ#1968045 - -* Wed Apr 21 2021 Fabio Valentini - 0.5.12-1 -- Update to version 0.5.12. -- Fixes RHBZ#1950461 - -* Mon Mar 01 2021 Fabio Valentini - 0.5.11-1 -- Update to version 0.5.11. -- Bump to bzip2 0.4. - -* Wed Jan 27 2021 Fedora Release Engineering - 0.5.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Dec 07 2020 Fabio Valentini - 0.5.9-1 -- Update to version 0.5.9. -- Fixes RHBZ#1904876 - -* Sun Nov 08 2020 Fabio Valentini - 0.5.8-2 -- Relax flate2 dependency. - -* Fri Sep 11 2020 Josh Stone - 0.5.8-1 -- Update to 0.5.8 - -* Wed Jul 29 2020 Fedora Release Engineering - 0.5.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sat Jun 27 2020 Michel Alexandre Salim - 0.5.6-1 -- Update to 0.5.6 - -* Sat May 23 13:25:44 PDT 2020 Michel Alexandre Salim - 0.5.5-1 -- Initial package +%autochangelog diff --git a/rust2rpm.toml b/rust2rpm.toml new file mode 100644 index 0000000..c25ed64 --- /dev/null +++ b/rust2rpm.toml @@ -0,0 +1,76 @@ +[package] +cargo-toml-patch-comments = [ + "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 47e14fc..ce5d3d4 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (zip-0.5.13.crate) = b30950ede91cdb1d4ef4f9d6aee8f62a3aa5a1a6422bd10507dfd76edc02c1bd24d41c7bf2ac416a5ee045562cacda0d17cd04938ec02b8be0a0d64acbaf7e01 +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 new file mode 100644 index 0000000..d869273 --- /dev/null +++ b/zip-fix-metadata.diff @@ -0,0 +1,94 @@ +--- 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.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 + + [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.12" +-optional = true +- +-[dependencies.ppmd-rust] +-version = "1.2" + optional = true + + [dependencies.sha1] +@@ -236,20 +220,9 @@ + optional = true + default-features = false + +-[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.3.1" + features = [ +- "wasm_js", + "std", + ] + +@@ -264,6 +237,3 @@ + ] + default-features = false + +-[dev-dependencies.walkdir] +-version = "2.5" +-