Skip to content

py-rattler's sdist is not PEP 625 conformant #2464

Description

@woodruffw

Checklist

  • I added a descriptive title
  • I searched open reports and couldn't find a duplicate

What happened?

I'm opening this up for visibility. Fixing it is potentially a little nuanced, since py-rattler's sdist is non-conformant in a slightly different way than the other sdists I've seen 🙂

TL;DR: PEP 625 dictates the naming structure and format of sdists, and says that a valid sdist must be a pax-style tax. However, py-rattler's sdist is (1) a GNU tar, and (2) uses an S typeflag to encode a sparse entry. Either of these is sufficient to cause a failure on a strict pax decoder, although (2) is arguably more serious (since support for GNU tars is somewhat common, whereas support for sparse entries is relatively less common).

Additional Context

This can be reproduced by looking at the offending block in the latest sdist:

gunzip py_rattler-0.23.2.tar.gz
dd if=py_rattler-0.23.2.tar bs=512 skip=15819 count=1 | xxd

Observe that byte 156 (the typeflag field) is 0x53 i.e. S, which indicates a GNU sparse member.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions