Bug 2478126

Summary: Review Request: peel - streaming, resumable, space-efficient HTTP archive extractor
Product: [Fedora] Fedora Reporter: Andrew Gouin <andrew>
Component: Package ReviewAssignee: Fabio Valentini <decathorpe>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: decathorpe, package-review
Target Milestone: ---Flags: decathorpe: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 177841    

Description Andrew Gouin 2026-05-16 06:47:15 UTC
Spec URL: https://github.com/agouin/peel/raw/refs/tags/v0.6.14/packaging/fedora/peel.spec
SRPM URL: https://packages.redhat.com/api/pulp-content/public-copr/agouin/peel/fedora-rawhide-x86_64/Packages/p/peel-0.6.14-1.fc45.src.rpm

Source: https://github.com/agouin/peel

Description:
peel downloads compressed archives over HTTP and streams them through
decompression in a single pass, hole-punching the compressed bytes from
disk as the decoder advances. A SIGKILL mid-extraction resumes exactly
where it left off, byte-identical to a clean run.

Supports tar / tar.zst / tar.xz / tar.lz4 / tar.gz / tar.bz2 / zip /
7z / rar (rar5 + rar3/rar4), plus the raw single-stream forms of those
codecs.

Fedora Account System Username: agouin

Successful COPR builds (Fedora 42, 43, 44, rawhide; x86_64 + aarch64):
https://copr.fedorainfracloud.org/coprs/agouin/peel/build/10465241/

This is my first package submission :) I am looking for a sponsor.

Comment 2 Fabio Valentini 2026-06-12 15:37:08 UTC
Some more comments after discussion on Matrix:

It looks like your spec file is based on very old (Rust) packaging practices. Some of the things done in the linked .spec file are quite outdated, and are now covered by either "SHOULD NOT" or "MUST NOT" rules in the Rust packaging guidelines:

https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/

I would recommend to take a look and make changes based on the template for packages like this:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_non_crate_rust_project

Issues include:

1. The package SHOULD use rpmautospec instead of managing Release and %changelog manually.

https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_release_tag
https://docs.fedoraproject.org/en-US/packaging-guidelines/#changelogs

2. The Source URL is not in line with guidelines for tarballs from GitHub:

https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_git_tags

Should be: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz

3. The package MUST NOT specify BuildRequires for Rust crates manually:

> packages for projects that build Rust code with cargo MUST use dynamically generated BuildRequires

https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_dynamically_generated_buildrequires_for_crate_dependencies

3. The license tag does not reflect statically linked Rust dependencies:

https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_license_tags

4. This __brp_mangle_shebangs hack should not be necessary:

> %global __brp_mangle_shebangs_exclude_from ^.*\.rs$

I'm not sure why you added this, but the package doesn't install any *.rs files, so this should be entirely unnecessary. I'm not sure why this is present.

Comment 3 Andrew Gouin 2026-06-13 05:26:06 UTC
Thank you for the feedback! I've updated it now in line with the packaging guidelines and your pointers.

Spec URL: https://github.com/agouin/peel/raw/refs/tags/v0.7.11/packaging/fedora/peel.spec
SRPM URL: https://packages.redhat.com/api/pulp-content/public-copr/agouin/peel/fedora-rawhide-x86_64/Packages/p/peel-0.7.11-1.fc45.src.rpm