GitXplorerGitXplorer
f

alquitran

public
21 stars
4 forks
0 issues

Commits

List of commits on branch master.
Verified
cd9711ccd73cb8ca167d64bbfc5ba4992418e3aa

Merge pull request #2 from ferivoz/clippy2021

fferivoz committed 10 months ago
Unverified
f5dc03cef1c857ccd72da4be927b4f20c67460b4

Update edition to 2021

fferivoz committed 10 months ago
Unverified
bbb7d33aee39fd7d4a6e8cd9eca0ce5d63d91629

Fix latest clippy warnings

fferivoz committed 10 months ago
Verified
253356eca76ebe2ff22e673652b96ecf2f7c10d9

Merge pull request #1 from ferivoz/clippy

fferivoz committed 3 years ago
Verified
77aae94b5a7d24152d4b90fc5989bc99819a6c04

Fix latest clippy warnings

fferivoz committed 3 years ago
Verified
9f01e25753b1c6185cd0d06554983a10da98e7e8

Initial public commit

fferivoz committed 3 years ago

README

The README file for this repository.

alquitran

Inspects tar archives and tries to spot portability issues in regard to POSIX 2017 pax specification and common tar implementations.

Usage

Run alquitran to inspect a tar archive through stdin or from given file on command line for known portability issues. Found issues are shown on standard error and the program exits with return code 1. If the archive does not contain known issues, then 0 is returned.

Processing stops after first encountered issue since further parsing can lead to ambiguous interpretation of archives. The affected header is shown as hex dump with highlighted fields and a short description.

Who should use alquitran?

This project is intended to be used by maintainers of projects who want to offer portable source code archives for as many systems as possible. Checking tar archives with alquitran before publishing them should help spotting issues before they reach distributors and users.

If you are a distributor and want to verify that your build environment is not bugged with obscure side effects of manipulated tar archives then alquitran is a good choice for you as well.

Sometimes portability is no priority, e.g. when creating packages of binaries for a specific Linux distribution or when using tar for backup purposes. In these cases alquitran would yield unnecessary warnings.

How to create portable tar archives?

An incomplete list of advices based on my experience with alquitran is:

  • Keep your paths short: At best less than 100 characters
  • Use only directories and files: No device files, fifos, links...
  • Use only portable characters in names: a-z, A-Z, 0-9, ., _, -
  • Keep files smaller than 2 GB for compatibility with old systems
  • Keep permissions simple: 755 for directories, 644 for files
  • Use POSIX ustar format if possible or pax format if required
  • Do not use absolute paths when creating archives
  • Do not append anything after initial archive creation

Example usage of bsdtar (libarchive 3.5.2):

bsdtar --uid 0 --gid 0 --numeric-owner               \
       --no-acls --no-fflags --no-xattrs             \
       -Lcozf project-version.tar.gz project-version