summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin English <austin.m.english@sony.com>2021-09-16 11:45:05 -0500
committerWilliam Hubbs <williamh@gentoo.org>2021-09-16 17:07:48 -0500
commit7fa16bc47f1c8d140656cfa0492e989da5c1bf67 (patch)
treee7450fed8c685ee237b9f5867aa686962145908d /app-admin
parentapp-admin/sudo: drop 1.9.8 (diff)
downloadgentoo-7fa16bc47f1c8d140656cfa0492e989da5c1bf67.tar.gz
gentoo-7fa16bc47f1c8d140656cfa0492e989da5c1bf67.tar.bz2
gentoo-7fa16bc47f1c8d140656cfa0492e989da5c1bf67.zip
app-admin/vault: fix build with newer golang
Closes: https://bugs.gentoo.org/808791 Closes: https://bugs.gentoo.org/810317 Signed-off-by: Austin English <austin.m.english@sony.com> Signed-off-by: William Hubbs <williamh@gentoo.org>
Diffstat (limited to 'app-admin')
-rw-r--r--app-admin/vault/Manifest4
-rw-r--r--app-admin/vault/files/vault-1.8.2-go-limiter.patch264
-rw-r--r--app-admin/vault/vault-1.8.2.ebuild6
3 files changed, 270 insertions, 4 deletions
diff --git a/app-admin/vault/Manifest b/app-admin/vault/Manifest
index 26de2c69e807..42ba4317b9e5 100644
--- a/app-admin/vault/Manifest
+++ b/app-admin/vault/Manifest
@@ -1120,8 +1120,8 @@ DIST github.com%2Fsean-%2Fconswriter%2F@v%2Fv0.0.0-20180208195008-f5ae3917a627.m
DIST github.com%2Fsean-%2Fpager%2F@v%2Fv0.0.0-20180208200047-666be9bf53b5.mod 30 BLAKE2B 77431281d4cec52a254453afe8c7438154b0ecae0116ba085401536adc1f71f6a7eea8b0e2181893b004d805e3ff8b3a7f212ac82e41877cd08c2cf0fc47af05 SHA512 5101454134688f96467dbbdf475b1d9bd9e446c29eb2cd04b85430ea0130c09dcbd8141d5ca0d63e63b74349c3dbf59d978ef2115a03c920ff2abfad10fe9a62
DIST github.com%2Fsean-%2Fseed%2F@v%2Fv0.0.0-20170313163322-e2103e2c3529.mod 29 BLAKE2B 8f509981164937fb0aab63b0344ddbf25c183b926a6e87400e745f6aee9dcc478f0ed455c62a9753722954acb3506be5f7810915a15d03647668e7bb707c09c0 SHA512 c7dc34c7a73c5899ca207c0cac88dd38ddebaffa04b5dd511a86dd10160e60be2806dfc6e079a5871b0cb6142f53d7d7dc87ddbe3fb19240bf894430feac5875
DIST github.com%2Fsean-%2Fseed%2F@v%2Fv0.0.0-20170313163322-e2103e2c3529.zip 4415 BLAKE2B f50a9fd1f74506625ae9460c6071bbbd1dd3ad3d83264fb7def028c757e8ad8f865fc7255db6e9b5cdb7a1744ac1f741bc6184f064eee7108f6fc0facc81f639 SHA512 acd19ece301ac146ae50dd784e3dc1c2cbc0c00a562fc5d2759b7b8a4acf0b5bf83d5bcd54122130877a1568a13709c28ab7e1cc7ba269ec91aa1b1a86c2065a
-DIST github.com%2Fsethvargo%2Fgo-limiter%2F@v%2Fv0.3.0.mod 48 BLAKE2B 33ddfe8d645092d307c8b8acd8b1c0c8c0c91224a6b0eb3bac20d707be49acc3d437cf00d341d4d37857a9ac4b5303d1df717d2a46ce717941ab7eedbfd133bd SHA512 4266c966fbdba482455fdd13f37891847cff194d1a6d169be35167b729c6e36e9517d72c5a5fda048d8465ada31927b0f3d00fe455e5339c554829e7fb914d2a
-DIST github.com%2Fsethvargo%2Fgo-limiter%2F@v%2Fv0.3.0.zip 32198 BLAKE2B d779ed09d9e00d6ff18be20b48068a1877d623070d2f74bebb6816d3a139b311276caf8f3f3099a6b6940e8d5ddaaae07719fb86f117f9ec987483b1573561d5 SHA512 35f0ae21b2af7e125e4c18a36a0c6695b024f9f53facf6f025c71237cd12658cd507d05b6d8e8249c53477b56ed7c8e0a960232715e7243da2a3f00d6dcdcd68
+DIST github.com%2Fsethvargo%2Fgo-limiter%2F@v%2Fv0.7.1.mod 48 BLAKE2B 33ddfe8d645092d307c8b8acd8b1c0c8c0c91224a6b0eb3bac20d707be49acc3d437cf00d341d4d37857a9ac4b5303d1df717d2a46ce717941ab7eedbfd133bd SHA512 4266c966fbdba482455fdd13f37891847cff194d1a6d169be35167b729c6e36e9517d72c5a5fda048d8465ada31927b0f3d00fe455e5339c554829e7fb914d2a
+DIST github.com%2Fsethvargo%2Fgo-limiter%2F@v%2Fv0.7.1.zip 24454 BLAKE2B 4958546c0be405c760d03db84554b582ae770c08893c1dd77445f655d76714a93a5c1f2a9d5cc9590564002df9c6e81eafc2d44082c6da50a0f2ef18152e1d17 SHA512 e303b4042ed3f18743bc0d11700c40e5661a32472802dd1a5f9cd4131d520c774dd98cd62c056b6bf45739600cea5cb6052eb02a113fb091316cf1c11b5c819b
DIST github.com%2Fshirou%2Fgopsutil%2F@v%2Fv3.21.5+incompatible.mod 34 BLAKE2B 790ec7277e4654961540dd09fcb7962328547009b0181183b7cb64972b872d30986d1e53ded5961588d89508c913b2b56dd7af3625d0e8d7be2253b6bcf59576 SHA512 a5f5d88a767a855b6ff24d7e2e0c4aeb81fb1365a7e81ed989b4c605a7a6c61dc52d7ce97fc672c21020ef56f597dce679184e5e8d3d199678487e6bebaa8127
DIST github.com%2Fshirou%2Fgopsutil%2F@v%2Fv3.21.5+incompatible.zip 257791 BLAKE2B d0c44078120582d20e3c3eb60d0ecfc2c8547323ea68eddaffee5614243b4410518eabaf0c17b24351cd269d85bfc5f32151bcb56680793682a17b61e8881204 SHA512 c2d405ad66b1e3d6860ef21dacb6b7f0a5daef57267c32773cb26ea9983ba75df39e6b3ab5bc97c4c0eb133e17eb587a565da30d89139982fd90102765d27ca9
DIST github.com%2Fshopspring%2Fdecimal%2F@v%2Fv0.0.0-20180709203117-cd690d0c9e24.mod 37 BLAKE2B 9945435440e0d3be57cdb12cab697382fe91c56329289bbde332bbd1fd15928a5101d7fcadd89064ecbd103130514a1cad383db097d02d596138fad0348c15d0 SHA512 7f46d39bc8f24a5c5c1ff513c0f0018d5341a008526a49bf0b3694008c272b3080b0386a44ba6c27f2894bef19dfbec5095c9189ed222ed5a55797788668315e
diff --git a/app-admin/vault/files/vault-1.8.2-go-limiter.patch b/app-admin/vault/files/vault-1.8.2-go-limiter.patch
new file mode 100644
index 000000000000..3aef43e5c17b
--- /dev/null
+++ b/app-admin/vault/files/vault-1.8.2-go-limiter.patch
@@ -0,0 +1,264 @@
+This is a combination of upstream commits:
+b368a675955707db4e940da29a1043871a3781b6
+21ea03e0f874991086d2f1bcdc285216878bd566
+
+Fixes https://bugs.gentoo.org/808791
+Fixes https://bugs.gentoo.org/810317
+
+diff --git a/go.mod b/go.mod
+index 548c0590f..22a8833e2 100644
+--- a/go.mod
++++ b/go.mod
+@@ -150,7 +150,7 @@ require (
+ github.com/ryanuber/go-glob v1.0.0
+ github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da
+ github.com/sasha-s/go-deadlock v0.2.0
+- github.com/sethvargo/go-limiter v0.3.0
++ github.com/sethvargo/go-limiter v0.7.1
+ github.com/shirou/gopsutil v3.21.5+incompatible
+ github.com/stretchr/testify v1.7.0
+ github.com/tidwall/pretty v1.0.1 // indirect
+diff --git a/go.sum b/go.sum
+index c5b3b410d..98a5dd0a8 100644
+--- a/go.sum
++++ b/go.sum
+@@ -1120,8 +1120,8 @@ github.com/sean-/conswriter v0.0.0-20180208195008-f5ae3917a627/go.mod h1:7zjs06q
+ github.com/sean-/pager v0.0.0-20180208200047-666be9bf53b5/go.mod h1:BeybITEsBEg6qbIiqJ6/Bqeq25bCLbL7YFmpaFfJDuM=
+ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
+ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
+-github.com/sethvargo/go-limiter v0.3.0 h1:yRMc+Qs2yqw6YJp6UxrO2iUs6DOSq4zcnljbB7/rMns=
+-github.com/sethvargo/go-limiter v0.3.0/go.mod h1:C0kbSFbiriE5k2FFOe18M1YZbAR2Fiwf72uGu0CXCcU=
++github.com/sethvargo/go-limiter v0.7.1 h1:wWNhTj0pxjyJ7wuJHpRJpYwJn+bUnjYfw2a85eu5w9U=
++github.com/sethvargo/go-limiter v0.7.1/go.mod h1:C0kbSFbiriE5k2FFOe18M1YZbAR2Fiwf72uGu0CXCcU=
+ github.com/shirou/gopsutil v3.21.5+incompatible h1:OloQyEerMi7JUrXiNzy8wQ5XN+baemxSl12QgIzt0jc=
+ github.com/shirou/gopsutil v3.21.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
+ github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 h1:pntxY8Ary0t43dCZ5dqY4YTJCObLY1kIXl0uzMv+7DE=
+diff --git a/http/util.go b/http/util.go
+index 0550a93c7..cbb364843 100644
+--- a/http/util.go
++++ b/http/util.go
+@@ -48,7 +48,7 @@ func rateLimitQuotaWrapping(handler http.Handler, core *vault.Core) http.Handler
+ return
+ }
+
+- quotaResp, err := core.ApplyRateLimitQuota(&quotas.Request{
++ quotaResp, err := core.ApplyRateLimitQuota(r.Context(), &quotas.Request{
+ Type: quotas.TypeRateLimit,
+ Path: path,
+ MountPath: strings.TrimPrefix(core.MatchingMount(r.Context(), path), ns.Path),
+diff --git a/vault/core.go b/vault/core.go
+index 3b6e461fd..27741e8c6 100644
+--- a/vault/core.go
++++ b/vault/core.go
+@@ -2744,7 +2744,7 @@ func (c *Core) setupQuotas(ctx context.Context, isPerfStandby bool) error {
+
+ // ApplyRateLimitQuota checks the request against all the applicable quota rules.
+ // If the given request's path is exempt, no rate limiting will be applied.
+-func (c *Core) ApplyRateLimitQuota(req *quotas.Request) (quotas.Response, error) {
++func (c *Core) ApplyRateLimitQuota(ctx context.Context, req *quotas.Request) (quotas.Response, error) {
+ req.Type = quotas.TypeRateLimit
+
+ resp := quotas.Response{
+@@ -2758,7 +2758,7 @@ func (c *Core) ApplyRateLimitQuota(req *quotas.Request) (quotas.Response, error)
+ return resp, nil
+ }
+
+- return c.quotaManager.ApplyQuota(req)
++ return c.quotaManager.ApplyQuota(ctx, req)
+ }
+
+ return resp, nil
+diff --git a/vault/quotas/quotas.go b/vault/quotas/quotas.go
+index 68cc72f9f..80ee59521 100644
+--- a/vault/quotas/quotas.go
++++ b/vault/quotas/quotas.go
+@@ -168,7 +168,7 @@ type Manager struct {
+ // Quota represents the common properties of every quota type
+ type Quota interface {
+ // allow checks the if the request is allowed by the quota type implementation.
+- allow(*Request) (Response, error)
++ allow(context.Context, *Request) (Response, error)
+
+ // quotaID is the identifier of the quota rule
+ quotaID() string
+@@ -181,7 +181,7 @@ type Quota interface {
+
+ // close defines any cleanup behavior that needs to be executed when a quota
+ // rule is deleted.
+- close() error
++ close(context.Context) error
+
+ // handleRemount takes in the new mount path in the quota
+ handleRemount(string)
+@@ -287,7 +287,7 @@ func (m *Manager) setQuotaLocked(ctx context.Context, qType string, quota Quota,
+ // If there already exists an entry in the db, remove that first.
+ if raw != nil {
+ quota := raw.(Quota)
+- if err := quota.close(); err != nil {
++ if err := quota.close(ctx); err != nil {
+ return err
+ }
+ err = txn.Delete(qType, raw)
+@@ -518,7 +518,7 @@ func (m *Manager) DeleteQuota(ctx context.Context, qType string, name string) er
+ }
+
+ quota := raw.(Quota)
+- if err := quota.close(); err != nil {
++ if err := quota.close(ctx); err != nil {
+ return err
+ }
+
+@@ -541,7 +541,7 @@ func (m *Manager) DeleteQuota(ctx context.Context, qType string, name string) er
+ // ApplyQuota runs the request against any quota rule that is applicable to it. If
+ // there are multiple quota rule that matches the request parameters, rule that
+ // takes precedence will be used to allow/reject the request.
+-func (m *Manager) ApplyQuota(req *Request) (Response, error) {
++func (m *Manager) ApplyQuota(ctx context.Context, req *Request) (Response, error) {
+ var resp Response
+
+ quota, err := m.QueryQuota(req)
+@@ -562,7 +562,7 @@ func (m *Manager) ApplyQuota(req *Request) (Response, error) {
+ return resp, nil
+ }
+
+- return quota.allow(req)
++ return quota.allow(ctx, req)
+ }
+
+ // SetEnableRateLimitAuditLogging updates the operator preference regarding the
+diff --git a/vault/quotas/quotas_rate_limit.go b/vault/quotas/quotas_rate_limit.go
+index 64117b002..ad58b2af3 100644
+--- a/vault/quotas/quotas_rate_limit.go
++++ b/vault/quotas/quotas_rate_limit.go
+@@ -1,6 +1,7 @@
+ package quotas
+
+ import (
++ "context"
+ "encoding/hex"
+ "fmt"
+ "math"
+@@ -264,7 +265,7 @@ func (rlq *RateLimitQuota) QuotaName() string {
+ // returned if the request ID or address is empty. If the path is exempt, the
+ // quota will not be evaluated. Otherwise, the client rate limiter is retrieved
+ // by address and the rate limit quota is checked against that limiter.
+-func (rlq *RateLimitQuota) allow(req *Request) (Response, error) {
++func (rlq *RateLimitQuota) allow(ctx context.Context, req *Request) (Response, error) {
+ resp := Response{
+ Headers: make(map[string]string),
+ }
+@@ -300,7 +301,11 @@ func (rlq *RateLimitQuota) allow(req *Request) (Response, error) {
+ }
+ }
+
+- limit, remaining, reset, allow := rlq.store.Take(req.ClientAddress)
++ limit, remaining, reset, allow, err := rlq.store.Take(ctx, req.ClientAddress)
++ if err != nil {
++ return resp, err
++ }
++
+ resp.Allowed = allow
+ resp.Headers[httplimit.HeaderRateLimitLimit] = strconv.FormatUint(limit, 10)
+ resp.Headers[httplimit.HeaderRateLimitRemaining] = strconv.FormatUint(remaining, 10)
+@@ -320,13 +325,13 @@ func (rlq *RateLimitQuota) allow(req *Request) (Response, error) {
+
+ // close stops the current running client purge loop.
+ // It should be called with the write lock held.
+-func (rlq *RateLimitQuota) close() error {
++func (rlq *RateLimitQuota) close(ctx context.Context) error {
+ if rlq.purgeBlocked {
+ close(rlq.closePurgeBlockedCh)
+ }
+
+ if rlq.store != nil {
+- return rlq.store.Close()
++ return rlq.store.Close(ctx)
+ }
+
+ return nil
+diff --git a/vault/quotas/quotas_rate_limit_test.go b/vault/quotas/quotas_rate_limit_test.go
+index 27225e338..21f35dac3 100644
+--- a/vault/quotas/quotas_rate_limit_test.go
++++ b/vault/quotas/quotas_rate_limit_test.go
+@@ -37,7 +37,7 @@ func TestNewRateLimitQuota(t *testing.T) {
+ err := tc.rlq.initialize(logging.NewVaultLogger(log.Trace), metricsutil.BlackholeSink())
+ require.Equal(t, tc.expectErr, err != nil, err)
+ if err == nil {
+- require.Nil(t, tc.rlq.close())
++ require.Nil(t, tc.rlq.close(context.Background()))
+ }
+ })
+ }
+@@ -46,7 +46,7 @@ func TestNewRateLimitQuota(t *testing.T) {
+ func TestRateLimitQuota_Close(t *testing.T) {
+ rlq := NewRateLimitQuota("test-rate-limiter", "qa", "/foo/bar", 16.7, time.Second, time.Minute)
+ require.NoError(t, rlq.initialize(logging.NewVaultLogger(log.Trace), metricsutil.BlackholeSink()))
+- require.NoError(t, rlq.close())
++ require.NoError(t, rlq.close(context.Background()))
+
+ time.Sleep(time.Second) // allow enough time for purgeClientsLoop to receive on closeCh
+ require.False(t, rlq.getPurgeBlocked(), "expected blocked client purging to be disabled after explicit close")
+@@ -66,14 +66,14 @@ func TestRateLimitQuota_Allow(t *testing.T) {
+ }
+
+ require.NoError(t, rlq.initialize(logging.NewVaultLogger(log.Trace), metricsutil.BlackholeSink()))
+- defer rlq.close()
++ defer rlq.close(context.Background())
+
+ var wg sync.WaitGroup
+
+ reqFunc := func(addr string, atomicNumAllow, atomicNumFail *atomic.Int32) {
+ defer wg.Done()
+
+- resp, err := rlq.allow(&Request{ClientAddress: addr})
++ resp, err := rlq.allow(context.Background(), &Request{ClientAddress: addr})
+ if err != nil {
+ return
+ }
+@@ -141,7 +141,7 @@ func TestRateLimitQuota_Allow_WithBlock(t *testing.T) {
+ }
+
+ require.NoError(t, rlq.initialize(logging.NewVaultLogger(log.Trace), metricsutil.BlackholeSink()))
+- defer rlq.close()
++ defer rlq.close(context.Background())
+ require.True(t, rlq.getPurgeBlocked())
+
+ var wg sync.WaitGroup
+@@ -149,7 +149,7 @@ func TestRateLimitQuota_Allow_WithBlock(t *testing.T) {
+ reqFunc := func(addr string, atomicNumAllow, atomicNumFail *atomic.Int32) {
+ defer wg.Done()
+
+- resp, err := rlq.allow(&Request{ClientAddress: addr})
++ resp, err := rlq.allow(context.Background(), &Request{ClientAddress: addr})
+ if err != nil {
+ return
+ }
+@@ -221,5 +221,5 @@ func TestRateLimitQuota_Update(t *testing.T) {
+ require.NoError(t, qm.SetQuota(context.Background(), TypeRateLimit.String(), quota, true))
+ require.NoError(t, qm.SetQuota(context.Background(), TypeRateLimit.String(), quota, true))
+
+- require.Nil(t, quota.close())
++ require.Nil(t, quota.close(context.Background()))
+ }
+diff --git a/vault/quotas/quotas_util.go b/vault/quotas/quotas_util.go
+index dc2fcdfac..7c0732f67 100644
+--- a/vault/quotas/quotas_util.go
++++ b/vault/quotas/quotas_util.go
+@@ -40,7 +40,7 @@ func (*entManager) Reset() error {
+
+ type LeaseCountQuota struct{}
+
+-func (l LeaseCountQuota) allow(request *Request) (Response, error) {
++func (l LeaseCountQuota) allow(_ context.Context, _ *Request) (Response, error) {
+ panic("implement me")
+ }
+
+@@ -56,7 +56,7 @@ func (l LeaseCountQuota) initialize(logger log.Logger, sink *metricsutil.Cluster
+ panic("implement me")
+ }
+
+-func (l LeaseCountQuota) close() error {
++func (l LeaseCountQuota) close(_ context.Context) error {
+ panic("implement me")
+ }
+
diff --git a/app-admin/vault/vault-1.8.2.ebuild b/app-admin/vault/vault-1.8.2.ebuild
index 57bba092722c..7f8468a86e1f 100644
--- a/app-admin/vault/vault-1.8.2.ebuild
+++ b/app-admin/vault/vault-1.8.2.ebuild
@@ -1130,8 +1130,8 @@ EGO_SUM=(
"github.com/sean-/pager v0.0.0-20180208200047-666be9bf53b5/go.mod"
"github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529"
"github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod"
-"github.com/sethvargo/go-limiter v0.3.0"
-"github.com/sethvargo/go-limiter v0.3.0/go.mod"
+"github.com/sethvargo/go-limiter v0.7.1"
+"github.com/sethvargo/go-limiter v0.7.1/go.mod"
"github.com/shirou/gopsutil v3.21.5+incompatible"
"github.com/shirou/gopsutil v3.21.5+incompatible/go.mod"
"github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24"
@@ -1780,6 +1780,8 @@ FILECAPS=(
-m 755 'cap_ipc_lock=+ep' usr/bin/${PN}
)
+PATCHES=( "${FILESDIR}"/${P}-go-limiter.patch )
+
RESTRICT+=" test"
src_prepare() {