Quoting Vagrant Cascadian (2021-06-05 19:39:56)
> On 2021-06-05, Johannes Schauer Marin Rodrigues wrote:
> > Quoting Vagrant Cascadian (2021-06-05 03:09:52)
> >> When mmdebstrap produces a tarball directly, it sets different tarball
> >> options:
> >> 
> >>     # tar2sqfs and genext2fs do not support extended attributes
> >>     if ($format eq "squashfs") {
> >>         warning("tar2sqfs does not support extended attributes"
> >>               . " from the 'system' namespace");
> >>         push @taropts, '--xattrs', '--xattrs-exclude=system.*';
> >> 
> >> But if you're trying to generate a squashfs image with different default
> >> compression (e.g. zstd), you have to pipe the mmdebstrap output to
> >> tar2sqfs. But in this case, tar is not passed the above options, as it
> >> is generating a tarball...
> >
> > yes. But you can filter the tarball and remove the system.* xattr later:
> >
> > mmdebstrap ... | mmtarfilter --pax-exclude=SCHILY.xattr.system.* | tar2sqfs 
> > ...
> 
> This might be worth mentioning in the mmdebstrap manpage! And updating
> the mmtarfilter manpage with --pax-exclude too... :)

In fact, that functionality only exists in git so far, sorry. I'm waiting for
the freeze to end so that I can upload a new mmdebstrap version to unstable.

> >> Maybe I'm missing something, but it would be very nice to be able to at
> >> least append to options passed to tar2sqfs (presuming it doesn't error
> >> when passing two different --compressor arguments), rather than having to
> >> extract them from the manpage and/or code, especially given that the tar
> >> output changes when you create a regular tarball vs. when mmdebstrap is
> >> aware that the eventual destination is a squashfs...
> >
> > Is that such a common task? Are you running mmdebstrap manually and find
> > yourself piping it to tar2sqfs by hand? Do you maybe suggest that the 
> > default
> > options might need changing? I'm trying to understand your use-case here.
> 
> Well, *mostly* just to build zstd squashfs instead of xz (the
> performance on various hardware I use is considerable better with zstd
> defaults). Being able to set the compression type directly from
> mmdebstrap would be nice!
> 
> I think I also needed to pipe to tar2sqfs manually in the past to
> workaround bugs that I think have since been fixed (e.g. the
> --xattrs-exclude patches).

But are you running mmdebstrap by hand or are you using it as part of a script?

> The current default for tar2sqfs is xz, so passing --compressor xz is
> redundant.

Maybe I should just drop the "--compressor xz" option and use the tar2sqfs
default and then you can post a bugreport about a good default with the
tar2sqfs people instead of here. ;)

> >> I'm also realizing that the squashfs call doesn't pass --num-jobs=0 to
> >> tar2sqfs (similar to when creating a .tar.zst).
> >
> > Indeed that can be fixed.
> 
> Apparently, the default for tar2sqfs is number of cores:
> 
>        --num-jobs, -j <count>
>               If libsquashfs was compiled with a thread pool based,
>               parallel data compressor, this option can be used to set
>               the number of compressor threads. If not set, the default
>               is the number of available CPU cores.
> 
> So I guess that's not needed at all.

Aha, cool. Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to