-
Notifications
You must be signed in to change notification settings - Fork 92
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
SquashFS use zstd as default #177
Conversation
@siboehm This looks really good. Thanks for investigating and polishing the compression settings. Out of scope of this PR, but still in the context of polishing the SquashFS feature: Would it make sense to also add a check to the constructor of SquashFSArchive to check that the mksquashfs command is available with a message ("Please make sure |
This PR has one drawback: While previously one could select between gzip, lzo and xz as squashfs compression algorithm by choosing different levels, it is then only zstd and xz. During creation that is maybe not a problem as e.g. the conda-forge::squashfs-tools are compiled with gzip, lzo, lz4, zstd and xz activated. But when trying to mount the conda-packed environment on another machine the existing kernel (afaik kernel >=4.14) or squashfuse have to be recent enough. |
That's true. We need I don't want to change the API and I want it to be easy for users to get good performance without having to tweak anything. We could introduce a |
Looking at current/LTS versions of still supported Linux distributions (Debian 9/10, CentOS 7/8, Ubuntu 18.04/20.04), shows that not all have a squashfuse version with zstd support or a recent enough kernel, e.g Debian 10 has version 0.1.103 but compiled without zstd support, Ubuntu 18.04 has 0.1.100 without zstd. Also the Linux kernels of Debian 9 and CentOS 7 are potentially (if nothing got backported) too old. I understand that having zstd as default would be technically super cool, while there are still tons of conservative managed machines running somewhere with older versions. Long story short to prevent any surprises, why not present the full information to the user by adding e.g. a print statement in case of zstd (the default) with "Using zstd level {} for best compression / speed ratio, which requires kernel >=4.14 or squashfuse >=0.1.101 compiled with zstd support for mounting (Select |
d988d96
to
d34dfc9
Compare
Ok I tried to be explicit about the downside of zstd in the Documentation, plus I added a log message. |
This way the cleanup of tempfiles still runs.
@siboehm Thanks! |
Closes #176