silverstripe / sspak

Tool for managing bundles of db/assets from Silverstripe environments
http://silverstripe.github.io/sspak/
BSD 3-Clause "New" or "Revised" License
47 stars 34 forks source link

Sspak does not support assets over 8GB #53

Open mateusz opened 7 years ago

mateusz commented 7 years ago

Phar and PharData use "ustar" format for tar archives which does not support files over 8 GB. We pack assets into a assets.tar.gz, and then rebundle with Phar/PharData, so as soon as assets hit the 8 GB mark, sspak breaks.

You can go around it by using tar and gz directly - which produces POSIX/PAX (on osx) or GNU (on Debian) formats which all support >8 GB files. Such archive still cannot be accessed by Phar/PharData where PHP expect to see ustar headers, but finds garbage from other formats:

phar error: "some.sspak" is a corrupted tar file (checksum mismatch of file "?ep????
       ??
         /")

For now I'm proposing to put a message in: https://github.com/silverstripe/sspak/pull/52

dhensby commented 7 years ago

The message has been merged, but it doesn't solve the actual problem.

Perhaps we aim to try to use Phar and if it doesn't work fall back to trying a tar cli command?

sminnee commented 5 years ago

Perhaps the sspak tool could be amended to let it consume / produce separate database.sql.gz and assets.tar.gz files directly?

lerni commented 3 years ago

May recent fixes around phar with php 8.0.3 fixes this? https://www.php.net/ChangeLog-8.php#8.0.3