Description: Add support for zst compression Origin: https://github.com/aptly-dev/aptly/pull/1050/files/e686753656b340abbb80c593f43879bfc9806cfd Reviewed-By: Anton Gladky Last-Update: 2022-04-29 Index: aptly/deb/deb.go =================================================================== --- aptly.orig/deb/deb.go +++ aptly/deb/deb.go @@ -16,6 +16,7 @@ import ( "github.com/aptly-dev/aptly/pgp" "github.com/kjk/lzma" + "github.com/klauspost/compress/zstd" "github.com/smira/go-xz" ) @@ -74,6 +75,13 @@ func GetControlFileFromDeb(packageFile s } defer unxz.Close() tarInput = unxz + case "control.tar.zst": + unzstd, err := zstd.NewReader(bufReader) + if err != nil { + return nil, errors.Wrapf(err, "unable to unzstd %s from %s", header.Name, packageFile) + } + defer unzstd.Close() + tarInput = unzstd default: return nil, fmt.Errorf("unsupported tar compression in %s: %s", packageFile, header.Name) } @@ -189,6 +197,13 @@ func GetContentsFromDeb(file io.Reader, unlzma := lzma.NewReader(bufReader) defer unlzma.Close() tarInput = unlzma + case "data.tar.zst": + unzstd, err := zstd.NewReader(bufReader) + if err != nil { + return nil, errors.Wrapf(err, "unable to unzstd %s from %s", header.Name, packageFile) + } + defer unzstd.Close() + tarInput = unzstd default: return nil, fmt.Errorf("unsupported tar compression in %s: %s", packageFile, header.Name) }