Refresh patches (and remove not relevant patches)

This commit is contained in:
Roland Mas
2023-01-02 14:24:52 +01:00
parent d8fea9f142
commit a8aeaff2a3
5 changed files with 11 additions and 221 deletions
@@ -1,57 +0,0 @@
From: Shengjing Zhu <zhsj@debian.org>
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
@@ -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 {
-106
View File
@@ -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 its not necessarily true. For that purpose we store
the MD5 object in a separate metadata field as well to make sure it
isnt lost. When the value returned clearly doesnt look like a valid
MD5 hash (length isnt exactly 32 characters), attempt to retrieve
the MD5 hash possibly stored in the metadata.
.
We cannot always do this since user-defined metadata isnt 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 <andrew.shadura@collabora.co.uk>
Origin: upstream
Bug: https://github.com/aptly-dev/aptly/issues/923
Bug-Debian: 983877
Applied-Upstream: commit:2422d3a
Reviewed-by: Sebastien Delafond <sdelafond@gmail.com>
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 {
+ // doesnt 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 {
+1 -3
View File
@@ -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
-45
View File
@@ -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 <gladk@debian.org>
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)
}