diff --git a/debian/patches/Fix-UUID-struct-field-not-encoded-in-msgpack.patch b/debian/patches/Fix-UUID-struct-field-not-encoded-in-msgpack.patch deleted file mode 100644 index 46a250f5..00000000 --- a/debian/patches/Fix-UUID-struct-field-not-encoded-in-msgpack.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: Shengjing Zhu -Date: Tue, 26 Mar 2019 15:49:40 +0800 -Subject: Fix UUID struct field not encoded in msgpack - -Upstream uses the old codec library, so there's no problem. -Bug-Debian: https://bugs.debian.org/923866 -Forwarded: no ---- - deb/local.go | 4 ++-- - deb/snapshot.go | 6 +++--- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/deb/local.go b/deb/local.go -index 229f6e1..5b8eb2a 100644 ---- a/deb/local.go -+++ b/deb/local.go -@@ -15,7 +15,7 @@ import ( - // LocalRepo is a collection of packages created locally - type LocalRepo struct { - // Permanent internal ID -- UUID string `json:"-"` -+ UUID string `codec:"UUID" json:"-"` - // User-assigned name - Name string - // Comment -@@ -25,7 +25,7 @@ type LocalRepo struct { - // DefaultComponent - DefaultComponent string `codec:",omitempty"` - // Uploaders configuration -- Uploaders *Uploaders `code:",omitempty" json:"-"` -+ Uploaders *Uploaders `codec:"Uploaders,omitempty" json:"-"` - // "Snapshot" of current list of packages - packageRefs *PackageRefList - } -diff --git a/deb/snapshot.go b/deb/snapshot.go -index 307433a..aef19ae 100644 ---- a/deb/snapshot.go -+++ b/deb/snapshot.go -@@ -19,15 +19,15 @@ import ( - // Snapshot is immutable state of repository: list of packages - type Snapshot struct { - // Persisten internal ID -- UUID string `json:"-"` -+ UUID string `codec:"UUID" json:"-"` - // Human-readable name - Name string - // Date of creation - CreatedAt time.Time - - // Source: kind + ID -- SourceKind string `json:"-"` -- SourceIDs []string `json:"-"` -+ SourceKind string `codec:"SourceKind" json:"-"` -+ SourceIDs []string `codec:"SourceIDs" json:"-"` - // Description of how snapshot was created - Description string - diff --git a/debian/patches/Fix-time.Time-msgpack-decoding-backwards-compatibili.patch b/debian/patches/Fix-time.Time-msgpack-decoding-backwards-compatibili.patch index 83049ac1..082ebcf3 100644 --- a/debian/patches/Fix-time.Time-msgpack-decoding-backwards-compatibili.patch +++ b/debian/patches/Fix-time.Time-msgpack-decoding-backwards-compatibili.patch @@ -10,11 +10,11 @@ Forwarded: https://github.com/aptly-dev/aptly/pull/830 deb/snapshot.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) -diff --git a/deb/remote.go b/deb/remote.go -index 72165ba..316636d 100644 ---- a/deb/remote.go -+++ b/deb/remote.go -@@ -662,7 +662,8 @@ func (repo *RemoteRepo) Decode(input []byte) error { +Index: aptly/deb/remote.go +=================================================================== +--- aptly.orig/deb/remote.go ++++ aptly/deb/remote.go +@@ -688,7 +688,8 @@ func (repo *RemoteRepo) Decode(input []b decoder := codec.NewDecoderBytes(input, &codec.MsgpackHandle{}) err := decoder.Decode(repo) if err != nil { @@ -24,11 +24,11 @@ index 72165ba..316636d 100644 // probably it is broken DB from go < 1.2, try decoding w/o time.Time var repo11 struct { // nolint: maligned UUID string -diff --git a/deb/snapshot.go b/deb/snapshot.go -index aef19ae..cefe82e 100644 ---- a/deb/snapshot.go -+++ b/deb/snapshot.go -@@ -140,7 +140,8 @@ func (s *Snapshot) Decode(input []byte) error { +Index: aptly/deb/snapshot.go +=================================================================== +--- aptly.orig/deb/snapshot.go ++++ aptly/deb/snapshot.go +@@ -152,7 +152,8 @@ func (s *Snapshot) Decode(input []byte) decoder := codec.NewDecoderBytes(input, &codec.MsgpackHandle{}) err := decoder.Decode(s) if err != nil { diff --git a/debian/patches/s3-etag.patch b/debian/patches/s3-etag.patch deleted file mode 100644 index 9a39ea20..00000000 --- a/debian/patches/s3-etag.patch +++ /dev/null @@ -1,106 +0,0 @@ -Description: fix etag issue with s3 backend - The S3 backend relies on ETag S3 returns being equal to the MD5 of - the object, but it’s not necessarily true. For that purpose we store - the MD5 object in a separate metadata field as well to make sure it - isn’t lost. When the value returned clearly doesn’t look like a valid - MD5 hash (length isn’t exactly 32 characters), attempt to retrieve - the MD5 hash possibly stored in the metadata. - . - We cannot always do this since user-defined metadata isn’t returned - by the ListObjects call, so verifying it for each object is - expensive as it requires one HEAD request per each object. -Author: Andrej Shadura -Origin: upstream -Bug: https://github.com/aptly-dev/aptly/issues/923 -Bug-Debian: 983877 -Applied-Upstream: commit:2422d3a -Reviewed-by: Sebastien Delafond -Last-Update: 2021-03-02 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- -diff --git a/s3/public.go b/s3/public.go -index a3e85a99..d6c161ad 100644 ---- a/s3/public.go -+++ b/s3/public.go -@@ -142,7 +142,7 @@ func (storage *PublishedStorage) PutFile(path string, sourceFilename string) err - } - defer source.Close() - -- err = storage.putFile(path, source) -+ err = storage.putFile(path, source, "") - if err != nil { - err = errors.Wrap(err, fmt.Sprintf("error uploading %s to %s", sourceFilename, storage)) - } -@@ -150,8 +150,22 @@ func (storage *PublishedStorage) PutFile(path string, sourceFilename string) err - return err - } - -+// getMD5 retrieves MD5 stored in the metadata, if any -+func (storage *PublishedStorage) getMD5(path string) (string, error) { -+ params := &s3.HeadObjectInput{ -+ Bucket: aws.String(storage.bucket), -+ Key: aws.String(filepath.Join(storage.prefix, path)), -+ } -+ output, err := storage.s3.HeadObject(params) -+ if err != nil { -+ return "", err -+ } -+ -+ return aws.StringValue(output.Metadata["Md5"]), nil -+} -+ - // putFile uploads file-like object to --func (storage *PublishedStorage) putFile(path string, source io.ReadSeeker) error { -+func (storage *PublishedStorage) putFile(path string, source io.ReadSeeker, sourceMD5 string) error { - - params := &s3.PutObjectInput{ - Bucket: aws.String(storage.bucket), -@@ -165,6 +179,11 @@ func (storage *PublishedStorage) putFile(path string, source io.ReadSeeker) erro - if storage.encryptionMethod != "" { - params.ServerSideEncryption = aws.String(storage.encryptionMethod) - } -+ if sourceMD5 != "" { -+ params.Metadata = map[string]*string{ -+ "Md5": aws.String(sourceMD5), -+ } -+ } - - _, err := storage.s3.PutObject(params) - if err != nil { -@@ -177,7 +196,7 @@ func (storage *PublishedStorage) putFile(path string, source io.ReadSeeker) erro - return err - } - -- return storage.putFile(strings.Replace(path, "+", " ", -1), source) -+ return storage.putFile(strings.Replace(path, "+", " ", -1), source, sourceMD5) - } - return nil - } -@@ -298,6 +317,17 @@ func (storage *PublishedStorage) LinkFromPool(publishedDirectory, fileName strin - sourceMD5 := sourceChecksums.MD5 - - if exists { -+ if len(destinationMD5) != 32 { -+ // doesn’t look like a valid MD5, -+ // attempt to fetch one from the metadata -+ var err error -+ destinationMD5, err = storage.getMD5(relPath) -+ if err != nil { -+ err = errors.Wrap(err, fmt.Sprintf("error verifying MD5 for %s: %s", storage, poolPath)) -+ return err -+ } -+ storage.pathCache[relPath] = destinationMD5 -+ } - if sourceMD5 == "" { - return fmt.Errorf("unable to compare object, MD5 checksum missing") - } -@@ -318,7 +348,7 @@ func (storage *PublishedStorage) LinkFromPool(publishedDirectory, fileName strin - } - defer source.Close() - -- err = storage.putFile(relPath, source) -+ err = storage.putFile(relPath, source, sourceMD5) - if err == nil { - storage.pathCache[relPath] = sourceMD5 - } else { diff --git a/debian/patches/series b/debian/patches/series index 883ced92..7c73829d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,2 @@ -Fix-UUID-struct-field-not-encoded-in-msgpack.patch Fix-time.Time-msgpack-decoding-backwards-compatibili.patch -s3-etag.patch -zstd.patch + diff --git a/debian/patches/zstd.patch b/debian/patches/zstd.patch deleted file mode 100644 index 406a6471..00000000 --- a/debian/patches/zstd.patch +++ /dev/null @@ -1,45 +0,0 @@ -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) - }