From 7053d3a2b1301e6585c69147dcb52f608958bfc2 Mon Sep 17 00:00:00 2001 From: Andrew Haswell Date: Thu, 9 Dec 2021 14:31:05 -0800 Subject: [PATCH 1/4] added zstandard decompression needed for ubuntu 21.10 and newer --- deb/deb.go | 8 ++++++++ go.mod | 1 + go.sum | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/deb/deb.go b/deb/deb.go index b0ff3fe30..59f29ea86 100644 --- a/deb/deb.go +++ b/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" ) @@ -189,6 +190,13 @@ func GetContentsFromDeb(file io.Reader, packageFile string) ([]string, error) { 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 data.tar.zstd from %s", packageFile) + } + defer unzstd.Close() + tarInput = unzstd default: return nil, fmt.Errorf("unsupported tar compression in %s: %s", packageFile, header.Name) } diff --git a/go.mod b/go.mod index a9b0b9758..4896574f1 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( github.com/h2non/filetype v1.0.5 github.com/jlaffaye/ftp v0.0.0-20180404123514-2403248fa8cc // indirect github.com/kjk/lzma v0.0.0-20161016003348-3fd93898850d + github.com/klauspost/compress v1.13.6 github.com/mattn/go-colorable v0.1.2 // indirect github.com/mattn/go-runewidth v0.0.2 // indirect github.com/mattn/go-shellwords v1.0.2 diff --git a/go.sum b/go.sum index a5fd4a1cb..98d873726 100644 --- a/go.sum +++ b/go.sum @@ -32,6 +32,8 @@ github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5i github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/kjk/lzma v0.0.0-20161016003348-3fd93898850d h1:RnWZeH8N8KXfbwMTex/KKMYMj0FJRCF6tQubUuQ02GM= github.com/kjk/lzma v0.0.0-20161016003348-3fd93898850d/go.mod h1:phT/jsRPBAEqjAibu1BurrabCBNTYiVI+zbmyCZJY6Q= +github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= @@ -86,7 +88,6 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -107,7 +108,6 @@ gopkg.in/h2non/filetype.v1 v1.0.1 h1:JMZLYHwIsvWGh+6UcU//eA1aiM8g4SaZm3lJweIR5Ew gopkg.in/h2non/filetype.v1 v1.0.1/go.mod h1:M0yem4rwSX5lLVrkEuRRp2/NinFMD5vgJ4DlAhZcfNo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From e22b1289d89a4fa7732c4a25f66e8e12fd2dc8e2 Mon Sep 17 00:00:00 2001 From: Andrew Haswell Date: Thu, 9 Dec 2021 15:03:43 -0800 Subject: [PATCH 2/4] added zstandard decompression needed for ubuntu 21.10 and newer --- go.sum | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go.sum b/go.sum index 98d873726..238081ff1 100644 --- a/go.sum +++ b/go.sum @@ -88,6 +88,7 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -108,6 +109,7 @@ gopkg.in/h2non/filetype.v1 v1.0.1 h1:JMZLYHwIsvWGh+6UcU//eA1aiM8g4SaZm3lJweIR5Ew gopkg.in/h2non/filetype.v1 v1.0.1/go.mod h1:M0yem4rwSX5lLVrkEuRRp2/NinFMD5vgJ4DlAhZcfNo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 6d736948a34f55a06a1a76c1d2f3fb3ab0d9c15b Mon Sep 17 00:00:00 2001 From: Andrew Haswell Date: Thu, 9 Dec 2021 15:12:05 -0800 Subject: [PATCH 3/4] added decompression for control files --- deb/deb.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/deb/deb.go b/deb/deb.go index 59f29ea86..1bf637945 100644 --- a/deb/deb.go +++ b/deb/deb.go @@ -75,6 +75,13 @@ func GetControlFileFromDeb(packageFile string) (Stanza, error) { } 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 data.tar.zstd from %s", packageFile) + } + defer unzstd.Close() + tarInput = unzstd default: return nil, fmt.Errorf("unsupported tar compression in %s: %s", packageFile, header.Name) } From 8a2ab4c7f39b0e1682afde5023f5759e92350e65 Mon Sep 17 00:00:00 2001 From: Andrew Haswell Date: Thu, 9 Dec 2021 15:41:45 -0800 Subject: [PATCH 4/4] fixed comment typo --- deb/deb.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deb/deb.go b/deb/deb.go index 1bf637945..8ce1371f4 100644 --- a/deb/deb.go +++ b/deb/deb.go @@ -78,7 +78,7 @@ func GetControlFileFromDeb(packageFile string) (Stanza, error) { case "control.tar.zst": unzstd, err := zstd.NewReader(bufReader) if err != nil { - return nil, errors.Wrapf(err, "unable to unzstd data.tar.zstd from %s", packageFile) + return nil, errors.Wrapf(err, "unable to unzstd %s from %s", header.Name, packageFile) } defer unzstd.Close() tarInput = unzstd @@ -200,7 +200,7 @@ func GetContentsFromDeb(file io.Reader, packageFile string) ([]string, error) { case "data.tar.zst": unzstd, err := zstd.NewReader(bufReader) if err != nil { - return nil, errors.Wrapf(err, "unable to unzstd data.tar.zstd from %s", packageFile) + return nil, errors.Wrapf(err, "unable to unzstd %s from %s", header.Name, packageFile) } defer unzstd.Close() tarInput = unzstd