While the images seem to work well in most cases, removing ways for bits to change seems to be in the spirit of guix, and so the "-all-time" and "-mkfs-time" options remove one source of change. Additionally, without the "--no-recovery" an extra file is made which is not useful to the process, and for my manual testing seemed to cause write or permission issues which could cause failures. Guix already handles the failure cases in mksquashfs which the recovery file is for and so the redundant work is not helpful, can cause problems, slows down the process, and requires more resources.
As for the information given by `guix pack --list-formats`, I'd change to something like the following: ``` tarball Self-contained tarball, ready to run directly on any Linux machine squashfs Container suitable for Singularity 2.x and 3.x OCI OCI compliant tarball ready for 'docker load' and usable by Singularity 3.x sif Unsupported; container preferred by Singularity 3.x For more information, refer to https://guix.gnu.org/manual/en/html_node/Invoking-guix-pack.html ``` ________________________________________ From: Ludovic Courtès <[email protected]> Sent: Thursday, March 12, 2020 12:39 PM To: Josh Marshall Cc: [email protected] Subject: Re: [EXTERNAL]Re: Modifying squashfs usage for `guix pack` for supporting singularity Hi Josh, Josh Marshall <[email protected]> skribis: > Thanks for getting back to me on this. > > For the options I mentioned in the email, and the one not yet tracked > in email since it is only in IRC is "--no-recovery". These are what > stood out to me when reading the `mksquashfs` documentation ( > https://github.com/plougher/squashfs-tools/blob/master/USAGE ) and > looking at `guix/scripts/pack.scm'. Perhaps I’m missing something, but it’s still not clear to me why these options would be needed, especially since images produced with ‘guix pack -f squashfs’ today appear to work well. What am I missing? > The knowledge you're saying about the `guix pack` options is not > communicated by `guix pack --list-formats`, which yields > > ``` > $ guix pack --list-formats > The supported formats for 'guix pack' are: > > tarball Self-contained tarball, ready to run on another machine > squashfs Squashfs image suitable for Singularity > docker Tarball ready for 'docker load' > ``` Right, it just says “docker”, not “OCI”. The manual is a bit more verbose: https://guix.gnu.org/manual/en/html_node/Invoking-guix-pack.html What would you suggest adding? > All this seems to be tangential to the fact that `guix pack --format=squashfs > ...` fails on CentOS7 for an undescribed reason: > ``` > $ guix pack --format=squashfs bash-minimal [...] > \builder for > `/gnu/store/saar594fgxibr6vkrpjq2n2l5mpyycpp-squashfs-pack.gz.squashfs.drv' > failed with exit code 1 > build of > /gnu/store/saar594fgxibr6vkrpjq2n2l5mpyycpp-squashfs-pack.gz.squashfs.drv > failed > View build log at > '/var/log/guix/drvs/sa/ar594fgxibr6vkrpjq2n2l5mpyycpp-squashfs-pack.gz.squashfs.drv.bz2'. Could you email [email protected] with the command above, the output of ‘guix describe’, and the contents of /var/log/guix/drvs/sa/ar594fgxibr6vkrpjq2n2l5mpyycpp-squashfs-pack.gz.squashfs.drv.bz2 ? CentOS 7 runs a very old kernel, so it could be that we’re using some unsupported feature. Thanks for your feedback! Ludo’. --- The information in this email, including attachments, may be confidential and is intended solely for the addressee(s). If you believe you received this email by mistake, please notify the sender by return email as soon as possible.
