Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

makerel: always use ustar format #22273

Open
wants to merge 1 commit into
base: blead
Choose a base branch
from
Open

makerel: always use ustar format #22273

wants to merge 1 commit into from

Conversation

haarg
Copy link
Contributor

@haarg haarg commented Jun 10, 2024

When generating release tarballs, always use ustar format. The ustar format is one of the POSIX standard formats, and is the basis for future tar formats. It supports all of the features we need to create a release tarball. The newer formats support extended attributes that can produce warnings when extracting on some systems. This includes attributes like LIBARCHIVE.xattr.com.apple.quarantine, set on macOS systems on files downloaded from the internet. Using the ustar format prevents those attributes from being stored in the tarball and avoids the warnings.

When generating release tarballs, always use ustar format. The ustar
format is one of the POSIX standard formats, and is the basis for future
tar formats. It supports all of the features we need to create a release
tarball. The newer formats support extended attributes that can produce
warnings when extracting on some systems. This includes attributes like
LIBARCHIVE.xattr.com.apple.quarantine, set on macOS systems on files
downloaded from the internet. Using the ustar format prevents those
attributes from being stored in the tarball and avoids the warnings.
@haarg
Copy link
Contributor Author

haarg commented Jun 10, 2024

Fixes #22245

@jkeenan jkeenan added the Infrastructure Things needed to maintain Perl development label Jun 12, 2024
@jkeenan
Copy link
Contributor

jkeenan commented Jun 12, 2024

When generating release tarballs, always use ustar format. The ustar format is one of the POSIX standard formats, and is the basis for future tar formats. It supports all of the features we need to create a release tarball. The newer formats support extended attributes that can produce warnings when extracting on some systems. This includes attributes like LIBARCHIVE.xattr.com.apple.quarantine, set on macOS systems on files downloaded from the internet. Using the ustar format prevents those attributes from being stored in the tarball and avoids the warnings.

When generating release tarballs, always use ustar format. The ustar format is one of the POSIX standard formats, and is the basis for future tar formats. It supports all of the features we need to create a release tarball. The newer formats support extended attributes that can produce warnings when extracting on some systems. This includes attributes like LIBARCHIVE.xattr.com.apple.quarantine, set on macOS systems on files downloaded from the internet. Using the ustar format prevents those attributes from being stored in the tarball and avoids the warnings.

I don't know enough about the different tar formats to say whether or not we should be using ustar. I did, however, configure and build perl, then call perl Porting/makerel -r [rootdir] -x -c for both blead and this p.r. I then compared the resulting tarballs and the only difference I found was (as expected) in Porting/makerel. So LGTM.

@johannessen

This comment was marked as resolved.

@Grinnz
Copy link
Contributor

Grinnz commented Jun 16, 2024

Oh, I see now the CPAN module is canonical for EU:MM.

See Perl-Toolchain-Gang/ExtUtils-MakeMaker#349 for discussion there.

@tonycoz
Copy link
Contributor

tonycoz commented Jun 17, 2024

Going by the discussion in Perl-Toolchain-Gang/ExtUtils-MakeMaker#349 wouldn't we be better off using ptar?

Since:

while ptar always produces ustar

@haarg
Copy link
Contributor Author

haarg commented Jun 18, 2024

All of the tar implementations we care about support --format=ustar.

Producing an empty tarball requires a rather specific system setup that is not common. It's something I ran into before, but is no longer relevant to me. It's also more of an issue for CPAN releases, because they are often uploaded without being tested directly.

makerel doesn't need to work on as diverse of a set of systems as ExtUtils::MakeMaker, and we always verify the tarball that is produced.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Infrastructure Things needed to maintain Perl development
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants