mirror of
https://git.openwrt.org/feed/packages.git
synced 2024-06-16 20:33:58 +02:00
podman: fix build on MIPS
Signed-off-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
be75f77973
commit
83d81616c5
|
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=podman
|
PKG_NAME:=podman
|
||||||
PKG_VERSION:=2.2.1
|
PKG_VERSION:=2.2.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
PKG_LICENSE:=Apache-2.0
|
PKG_LICENSE:=Apache-2.0
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
|
|
134
utils/podman/patches/010-Fix-build-for-mips-architecture.patch
Normal file
134
utils/podman/patches/010-Fix-build-for-mips-architecture.patch
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
From 1ad796677e1ce3f03463c791818176586987c389 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Holzinger <paul.holzinger@web.de>
|
||||||
|
Date: Mon, 21 Dec 2020 12:30:06 +0100
|
||||||
|
Subject: [PATCH] Fix build for mips architecture
|
||||||
|
|
||||||
|
The signal SIGSTKFLT does not exists on mips architectures.
|
||||||
|
Also RTMIN and RTMAX are different.
|
||||||
|
|
||||||
|
This code is copied from docker.
|
||||||
|
|
||||||
|
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
|
||||||
|
---
|
||||||
|
pkg/signal/signal_linux.go | 1 +
|
||||||
|
pkg/signal/signal_linux_mipsx.go | 106 +++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 107 insertions(+)
|
||||||
|
create mode 100644 pkg/signal/signal_linux_mipsx.go
|
||||||
|
|
||||||
|
--- a/pkg/signal/signal_linux.go
|
||||||
|
+++ b/pkg/signal/signal_linux.go
|
||||||
|
@@ -1,4 +1,5 @@
|
||||||
|
// +build linux
|
||||||
|
+// +build !mips,!mipsle,!mips64,!mips64le
|
||||||
|
|
||||||
|
// Signal handling for Linux only.
|
||||||
|
package signal
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/pkg/signal/signal_linux_mipsx.go
|
||||||
|
@@ -0,0 +1,106 @@
|
||||||
|
+// +build linux
|
||||||
|
+// +build mips mipsle mips64 mips64le
|
||||||
|
+
|
||||||
|
+// Special signal handling for mips architecture
|
||||||
|
+package signal
|
||||||
|
+
|
||||||
|
+// Copyright 2013-2018 Docker, Inc.
|
||||||
|
+
|
||||||
|
+// NOTE: this package has originally been copied from github.com/docker/docker.
|
||||||
|
+
|
||||||
|
+import (
|
||||||
|
+ "os"
|
||||||
|
+ "os/signal"
|
||||||
|
+ "syscall"
|
||||||
|
+
|
||||||
|
+ "golang.org/x/sys/unix"
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+const (
|
||||||
|
+ sigrtmin = 34
|
||||||
|
+ sigrtmax = 127
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
+// signalMap is a map of Linux signals.
|
||||||
|
+var signalMap = map[string]syscall.Signal{
|
||||||
|
+ "ABRT": unix.SIGABRT,
|
||||||
|
+ "ALRM": unix.SIGALRM,
|
||||||
|
+ "BUS": unix.SIGBUS,
|
||||||
|
+ "CHLD": unix.SIGCHLD,
|
||||||
|
+ "CLD": unix.SIGCLD,
|
||||||
|
+ "CONT": unix.SIGCONT,
|
||||||
|
+ "FPE": unix.SIGFPE,
|
||||||
|
+ "HUP": unix.SIGHUP,
|
||||||
|
+ "ILL": unix.SIGILL,
|
||||||
|
+ "INT": unix.SIGINT,
|
||||||
|
+ "IO": unix.SIGIO,
|
||||||
|
+ "IOT": unix.SIGIOT,
|
||||||
|
+ "KILL": unix.SIGKILL,
|
||||||
|
+ "PIPE": unix.SIGPIPE,
|
||||||
|
+ "POLL": unix.SIGPOLL,
|
||||||
|
+ "PROF": unix.SIGPROF,
|
||||||
|
+ "PWR": unix.SIGPWR,
|
||||||
|
+ "QUIT": unix.SIGQUIT,
|
||||||
|
+ "SEGV": unix.SIGSEGV,
|
||||||
|
+ "EMT": unix.SIGEMT,
|
||||||
|
+ "STOP": unix.SIGSTOP,
|
||||||
|
+ "SYS": unix.SIGSYS,
|
||||||
|
+ "TERM": unix.SIGTERM,
|
||||||
|
+ "TRAP": unix.SIGTRAP,
|
||||||
|
+ "TSTP": unix.SIGTSTP,
|
||||||
|
+ "TTIN": unix.SIGTTIN,
|
||||||
|
+ "TTOU": unix.SIGTTOU,
|
||||||
|
+ "URG": unix.SIGURG,
|
||||||
|
+ "USR1": unix.SIGUSR1,
|
||||||
|
+ "USR2": unix.SIGUSR2,
|
||||||
|
+ "VTALRM": unix.SIGVTALRM,
|
||||||
|
+ "WINCH": unix.SIGWINCH,
|
||||||
|
+ "XCPU": unix.SIGXCPU,
|
||||||
|
+ "XFSZ": unix.SIGXFSZ,
|
||||||
|
+ "RTMIN": sigrtmin,
|
||||||
|
+ "RTMIN+1": sigrtmin + 1,
|
||||||
|
+ "RTMIN+2": sigrtmin + 2,
|
||||||
|
+ "RTMIN+3": sigrtmin + 3,
|
||||||
|
+ "RTMIN+4": sigrtmin + 4,
|
||||||
|
+ "RTMIN+5": sigrtmin + 5,
|
||||||
|
+ "RTMIN+6": sigrtmin + 6,
|
||||||
|
+ "RTMIN+7": sigrtmin + 7,
|
||||||
|
+ "RTMIN+8": sigrtmin + 8,
|
||||||
|
+ "RTMIN+9": sigrtmin + 9,
|
||||||
|
+ "RTMIN+10": sigrtmin + 10,
|
||||||
|
+ "RTMIN+11": sigrtmin + 11,
|
||||||
|
+ "RTMIN+12": sigrtmin + 12,
|
||||||
|
+ "RTMIN+13": sigrtmin + 13,
|
||||||
|
+ "RTMIN+14": sigrtmin + 14,
|
||||||
|
+ "RTMIN+15": sigrtmin + 15,
|
||||||
|
+ "RTMAX-14": sigrtmax - 14,
|
||||||
|
+ "RTMAX-13": sigrtmax - 13,
|
||||||
|
+ "RTMAX-12": sigrtmax - 12,
|
||||||
|
+ "RTMAX-11": sigrtmax - 11,
|
||||||
|
+ "RTMAX-10": sigrtmax - 10,
|
||||||
|
+ "RTMAX-9": sigrtmax - 9,
|
||||||
|
+ "RTMAX-8": sigrtmax - 8,
|
||||||
|
+ "RTMAX-7": sigrtmax - 7,
|
||||||
|
+ "RTMAX-6": sigrtmax - 6,
|
||||||
|
+ "RTMAX-5": sigrtmax - 5,
|
||||||
|
+ "RTMAX-4": sigrtmax - 4,
|
||||||
|
+ "RTMAX-3": sigrtmax - 3,
|
||||||
|
+ "RTMAX-2": sigrtmax - 2,
|
||||||
|
+ "RTMAX-1": sigrtmax - 1,
|
||||||
|
+ "RTMAX": sigrtmax,
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+// CatchAll catches all signals and relays them to the specified channel.
|
||||||
|
+func CatchAll(sigc chan os.Signal) {
|
||||||
|
+ handledSigs := make([]os.Signal, 0, len(signalMap))
|
||||||
|
+ for _, s := range signalMap {
|
||||||
|
+ handledSigs = append(handledSigs, s)
|
||||||
|
+ }
|
||||||
|
+ signal.Notify(sigc, handledSigs...)
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+// StopCatch stops catching the signals and closes the specified channel.
|
||||||
|
+func StopCatch(sigc chan os.Signal) {
|
||||||
|
+ signal.Stop(sigc)
|
||||||
|
+ close(sigc)
|
||||||
|
+}
|
169
utils/podman/patches/020-vendor-containers-psgo-v1.5.2.patch
Normal file
169
utils/podman/patches/020-vendor-containers-psgo-v1.5.2.patch
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
From 21f5154399fc33959a4f3c42e29cade6757015c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Valentin Rothberg <rothberg@redhat.com>
|
||||||
|
Date: Tue, 5 Jan 2021 10:44:16 +0100
|
||||||
|
Subject: [PATCH] vendor containers/psgo@v1.5.2
|
||||||
|
|
||||||
|
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
|
||||||
|
---
|
||||||
|
go.mod | 2 +-
|
||||||
|
go.sum | 4 ++--
|
||||||
|
.../internal/capabilities/capabilities.go | 2 +-
|
||||||
|
.../containers/psgo/internal/dev/tty.go | 5 ++--
|
||||||
|
.../containers/psgo/internal/proc/status.go | 2 +-
|
||||||
|
.../psgo/internal/process/process.go | 4 ++--
|
||||||
|
vendor/github.com/containers/psgo/psgo.go | 24 +++++++++----------
|
||||||
|
vendor/modules.txt | 2 +-
|
||||||
|
8 files changed, 23 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
--- a/go.mod
|
||||||
|
+++ b/go.mod
|
||||||
|
@@ -14,7 +14,7 @@ require (
|
||||||
|
github.com/containers/common v0.29.0
|
||||||
|
github.com/containers/conmon v2.0.20+incompatible
|
||||||
|
github.com/containers/image/v5 v5.9.0
|
||||||
|
- github.com/containers/psgo v1.5.1
|
||||||
|
+ github.com/containers/psgo v1.5.2
|
||||||
|
github.com/containers/storage v1.24.1
|
||||||
|
github.com/coreos/go-systemd/v22 v22.1.0
|
||||||
|
github.com/cri-o/ocicni v0.2.1-0.20201102180012-75c612fda1a2
|
||||||
|
--- a/go.sum
|
||||||
|
+++ b/go.sum
|
||||||
|
@@ -109,8 +109,8 @@ github.com/containers/libtrust v0.0.0-20
|
||||||
|
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY=
|
||||||
|
github.com/containers/ocicrypt v1.0.3 h1:vYgl+RZ9Q3DPMuTfxmN+qp0X2Bj52uuY2vnt6GzVe1c=
|
||||||
|
github.com/containers/ocicrypt v1.0.3/go.mod h1:CUBa+8MRNL/VkpxYIpaMtgn1WgXGyvPQj8jcy0EVG6g=
|
||||||
|
-github.com/containers/psgo v1.5.1 h1:MQNb7FLbXqBdqz6u4lI2QWizVz4RSTzs1+Nk9XT1iVA=
|
||||||
|
-github.com/containers/psgo v1.5.1/go.mod h1:2ubh0SsreMZjSXW1Hif58JrEcFudQyIy9EzPUWfawVU=
|
||||||
|
+github.com/containers/psgo v1.5.2 h1:3aoozst/GIwsrr/5jnFy3FrJay98uujPCu9lTuSZ/Cw=
|
||||||
|
+github.com/containers/psgo v1.5.2/go.mod h1:2ubh0SsreMZjSXW1Hif58JrEcFudQyIy9EzPUWfawVU=
|
||||||
|
github.com/containers/storage v1.23.6/go.mod h1:haFs0HRowKwyzvWEx9EgI3WsL8XCSnBDb5f8P5CAxJY=
|
||||||
|
github.com/containers/storage v1.23.7/go.mod h1:cUT2zHjtx+WlVri30obWmM2gpqpi8jfPsmIzP1TVpEI=
|
||||||
|
github.com/containers/storage v1.24.0 h1:Fo2LkF7tkMLmo38sTZ/G8wHjcn8JfUFPfyTxM4WwMfk=
|
||||||
|
--- a/vendor/github.com/containers/psgo/internal/capabilities/capabilities.go
|
||||||
|
+++ b/vendor/github.com/containers/psgo/internal/capabilities/capabilities.go
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
// Package capabilities provides a mapping from common kernel bit masks to the
|
||||||
|
-// alphanumerical represenation of kernel capabilities. See capabilities(7)
|
||||||
|
+// alphanumerical representation of kernel capabilities. See capabilities(7)
|
||||||
|
// for additional information.
|
||||||
|
package capabilities
|
||||||
|
|
||||||
|
--- a/vendor/github.com/containers/psgo/internal/dev/tty.go
|
||||||
|
+++ b/vendor/github.com/containers/psgo/internal/dev/tty.go
|
||||||
|
@@ -113,8 +113,9 @@ func TTYs() (*[]TTY, error) {
|
||||||
|
}
|
||||||
|
s := fi.Sys().(*syscall.Stat_t)
|
||||||
|
t := TTY{
|
||||||
|
- Minor: minDevNum(s.Rdev),
|
||||||
|
- Major: majDevNum(s.Rdev),
|
||||||
|
+ // Rdev is type uint32 on mips arch so we have to cast to uint64
|
||||||
|
+ Minor: minDevNum(uint64(s.Rdev)),
|
||||||
|
+ Major: majDevNum(uint64(s.Rdev)),
|
||||||
|
Path: dev,
|
||||||
|
}
|
||||||
|
ttys = append(ttys, t)
|
||||||
|
--- a/vendor/github.com/containers/psgo/internal/proc/status.go
|
||||||
|
+++ b/vendor/github.com/containers/psgo/internal/proc/status.go
|
||||||
|
@@ -24,7 +24,7 @@ import (
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
-// Status is a direct translation of a `/proc/[pid]/status`, wich provides much
|
||||||
|
+// Status is a direct translation of a `/proc/[pid]/status`, which provides much
|
||||||
|
// of the information in /proc/[pid]/stat and /proc/[pid]/statm in a format
|
||||||
|
// that's easier for humans to parse.
|
||||||
|
type Status struct {
|
||||||
|
--- a/vendor/github.com/containers/psgo/internal/process/process.go
|
||||||
|
+++ b/vendor/github.com/containers/psgo/internal/process/process.go
|
||||||
|
@@ -31,9 +31,9 @@ type Process struct {
|
||||||
|
Pid string
|
||||||
|
// Stat contains data from /proc/$pid/stat.
|
||||||
|
Stat proc.Stat
|
||||||
|
- // Status containes data from /proc/$pid/status.
|
||||||
|
+ // Status contains data from /proc/$pid/status.
|
||||||
|
Status proc.Status
|
||||||
|
- // CmdLine containes data from /proc/$pid/cmdline.
|
||||||
|
+ // CmdLine contains data from /proc/$pid/cmdline.
|
||||||
|
CmdLine []string
|
||||||
|
// Label containers data from /proc/$pid/attr/current.
|
||||||
|
Label string
|
||||||
|
--- a/vendor/github.com/containers/psgo/psgo.go
|
||||||
|
+++ b/vendor/github.com/containers/psgo/psgo.go
|
||||||
|
@@ -482,7 +482,7 @@ func JoinNamespaceAndProcessInfoByPidsWi
|
||||||
|
// catch race conditions
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
- return nil, errors.Wrapf(err, "error extracing PID namespace")
|
||||||
|
+ return nil, errors.Wrapf(err, "error extracting PID namespace")
|
||||||
|
}
|
||||||
|
if _, exists := nsMap[ns]; !exists {
|
||||||
|
nsMap[ns] = true
|
||||||
|
@@ -759,7 +759,7 @@ func processVSZ(p *process.Process, ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
// parseCAP parses cap (a string bit mask) and returns the associated set of
|
||||||
|
-// capabilities. If all capabilties are set, "full" is returned. If no
|
||||||
|
+// capabilities. If all capabilities are set, "full" is returned. If no
|
||||||
|
// capability is enabled, "none" is returned.
|
||||||
|
func parseCAP(cap string) (string, error) {
|
||||||
|
mask, err := strconv.ParseUint(cap, 16, 64)
|
||||||
|
@@ -777,36 +777,36 @@ func parseCAP(cap string) (string, error
|
||||||
|
return strings.Join(caps, ","), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
-// processCAPAMB returns the set of ambient capabilties associated with
|
||||||
|
-// process p. If all capabilties are set, "full" is returned. If no
|
||||||
|
+// processCAPAMB returns the set of ambient capabilities associated with
|
||||||
|
+// process p. If all capabilities are set, "full" is returned. If no
|
||||||
|
// capability is enabled, "none" is returned.
|
||||||
|
func processCAPAMB(p *process.Process, ctx *psContext) (string, error) {
|
||||||
|
return parseCAP(p.Status.CapAmb)
|
||||||
|
}
|
||||||
|
|
||||||
|
-// processCAPINH returns the set of inheritable capabilties associated with
|
||||||
|
-// process p. If all capabilties are set, "full" is returned. If no
|
||||||
|
+// processCAPINH returns the set of inheritable capabilities associated with
|
||||||
|
+// process p. If all capabilities are set, "full" is returned. If no
|
||||||
|
// capability is enabled, "none" is returned.
|
||||||
|
func processCAPINH(p *process.Process, ctx *psContext) (string, error) {
|
||||||
|
return parseCAP(p.Status.CapInh)
|
||||||
|
}
|
||||||
|
|
||||||
|
-// processCAPPRM returns the set of permitted capabilties associated with
|
||||||
|
-// process p. If all capabilties are set, "full" is returned. If no
|
||||||
|
+// processCAPPRM returns the set of permitted capabilities associated with
|
||||||
|
+// process p. If all capabilities are set, "full" is returned. If no
|
||||||
|
// capability is enabled, "none" is returned.
|
||||||
|
func processCAPPRM(p *process.Process, ctx *psContext) (string, error) {
|
||||||
|
return parseCAP(p.Status.CapPrm)
|
||||||
|
}
|
||||||
|
|
||||||
|
-// processCAPEFF returns the set of effective capabilties associated with
|
||||||
|
-// process p. If all capabilties are set, "full" is returned. If no
|
||||||
|
+// processCAPEFF returns the set of effective capabilities associated with
|
||||||
|
+// process p. If all capabilities are set, "full" is returned. If no
|
||||||
|
// capability is enabled, "none" is returned.
|
||||||
|
func processCAPEFF(p *process.Process, ctx *psContext) (string, error) {
|
||||||
|
return parseCAP(p.Status.CapEff)
|
||||||
|
}
|
||||||
|
|
||||||
|
-// processCAPBND returns the set of bounding capabilties associated with
|
||||||
|
-// process p. If all capabilties are set, "full" is returned. If no
|
||||||
|
+// processCAPBND returns the set of bounding capabilities associated with
|
||||||
|
+// process p. If all capabilities are set, "full" is returned. If no
|
||||||
|
// capability is enabled, "none" is returned.
|
||||||
|
func processCAPBND(p *process.Process, ctx *psContext) (string, error) {
|
||||||
|
return parseCAP(p.Status.CapBnd)
|
||||||
|
--- a/vendor/modules.txt
|
||||||
|
+++ b/vendor/modules.txt
|
||||||
|
@@ -160,7 +160,7 @@ github.com/containers/ocicrypt/keywrap/p
|
||||||
|
github.com/containers/ocicrypt/keywrap/pkcs7
|
||||||
|
github.com/containers/ocicrypt/spec
|
||||||
|
github.com/containers/ocicrypt/utils
|
||||||
|
-# github.com/containers/psgo v1.5.1
|
||||||
|
+# github.com/containers/psgo v1.5.2
|
||||||
|
github.com/containers/psgo
|
||||||
|
github.com/containers/psgo/internal/capabilities
|
||||||
|
github.com/containers/psgo/internal/cgroups
|
|
@ -0,0 +1,24 @@
|
||||||
|
From fcba0df068d07ee7a26ec9d891220233d7d17dfd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Holzinger <paul.holzinger@web.de>
|
||||||
|
Date: Wed, 6 Jan 2021 23:32:40 +0100
|
||||||
|
Subject: [PATCH] Fix build for mips architecture followup
|
||||||
|
|
||||||
|
Followup to commit (1ad796677e1c). The build on mips is still
|
||||||
|
failing because SIGWINCH was not defined in the signal pkg.
|
||||||
|
|
||||||
|
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
|
||||||
|
---
|
||||||
|
pkg/signal/signal_linux_mipsx.go | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
--- a/pkg/signal/signal_linux_mipsx.go
|
||||||
|
+++ b/pkg/signal/signal_linux_mipsx.go
|
||||||
|
@@ -19,6 +19,8 @@ import (
|
||||||
|
const (
|
||||||
|
sigrtmin = 34
|
||||||
|
sigrtmax = 127
|
||||||
|
+
|
||||||
|
+ SIGWINCH = syscall.SIGWINCH
|
||||||
|
)
|
||||||
|
|
||||||
|
// signalMap is a map of Linux signals.
|
70
utils/podman/patches/040-mips.patch
Normal file
70
utils/podman/patches/040-mips.patch
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
--- a/pkg/spec/config_linux.go
|
||||||
|
+++ b/pkg/spec/config_linux.go
|
||||||
|
@@ -294,8 +294,8 @@ func (c *CreateConfig) createBlockIO() (
|
||||||
|
lwd := spec.LinuxWeightDevice{
|
||||||
|
Weight: &wd.Weight,
|
||||||
|
}
|
||||||
|
- lwd.Major = int64(unix.Major(wdStat.Rdev))
|
||||||
|
- lwd.Minor = int64(unix.Minor(wdStat.Rdev))
|
||||||
|
+ lwd.Major = int64(unix.Major(uint64(wdStat.Rdev))) //nolint: unconvert
|
||||||
|
+ lwd.Minor = int64(unix.Minor(uint64(wdStat.Rdev))) //nolint: unconvert
|
||||||
|
lwds = append(lwds, lwd)
|
||||||
|
}
|
||||||
|
bio.WeightDevice = lwds
|
||||||
|
@@ -357,8 +357,8 @@ func makeThrottleArray(throttleInput []s
|
||||||
|
ltd := spec.LinuxThrottleDevice{
|
||||||
|
Rate: t.rate,
|
||||||
|
}
|
||||||
|
- ltd.Major = int64(unix.Major(ltdStat.Rdev))
|
||||||
|
- ltd.Minor = int64(unix.Minor(ltdStat.Rdev))
|
||||||
|
+ ltd.Major = int64(unix.Major(uint64(ltdStat.Rdev))) // nolint: unconvert
|
||||||
|
+ ltd.Minor = int64(unix.Minor(uint64(ltdStat.Rdev))) // nolint: unconvert
|
||||||
|
ltds = append(ltds, ltd)
|
||||||
|
}
|
||||||
|
return ltds, nil
|
||||||
|
--- a/pkg/specgen/generate/container.go
|
||||||
|
+++ b/pkg/specgen/generate/container.go
|
||||||
|
@@ -282,8 +282,8 @@ func finishThrottleDevices(s *specgen.Sp
|
||||||
|
if err := unix.Stat(k, &statT); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
- v.Major = (int64(unix.Major(statT.Rdev)))
|
||||||
|
- v.Minor = (int64(unix.Minor(statT.Rdev)))
|
||||||
|
+ v.Major = (int64(unix.Major(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
+ v.Minor = (int64(unix.Minor(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
s.ResourceLimits.BlockIO.ThrottleReadBpsDevice = append(s.ResourceLimits.BlockIO.ThrottleReadBpsDevice, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -293,8 +293,8 @@ func finishThrottleDevices(s *specgen.Sp
|
||||||
|
if err := unix.Stat(k, &statT); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
- v.Major = (int64(unix.Major(statT.Rdev)))
|
||||||
|
- v.Minor = (int64(unix.Minor(statT.Rdev)))
|
||||||
|
+ v.Major = (int64(unix.Major(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
+ v.Minor = (int64(unix.Minor(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
s.ResourceLimits.BlockIO.ThrottleWriteBpsDevice = append(s.ResourceLimits.BlockIO.ThrottleWriteBpsDevice, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -304,8 +304,8 @@ func finishThrottleDevices(s *specgen.Sp
|
||||||
|
if err := unix.Stat(k, &statT); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
- v.Major = (int64(unix.Major(statT.Rdev)))
|
||||||
|
- v.Minor = (int64(unix.Minor(statT.Rdev)))
|
||||||
|
+ v.Major = (int64(unix.Major(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
+ v.Minor = (int64(unix.Minor(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
s.ResourceLimits.BlockIO.ThrottleReadIOPSDevice = append(s.ResourceLimits.BlockIO.ThrottleReadIOPSDevice, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -315,8 +315,8 @@ func finishThrottleDevices(s *specgen.Sp
|
||||||
|
if err := unix.Stat(k, &statT); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
- v.Major = (int64(unix.Major(statT.Rdev)))
|
||||||
|
- v.Minor = (int64(unix.Minor(statT.Rdev)))
|
||||||
|
+ v.Major = (int64(unix.Major(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
+ v.Minor = (int64(unix.Minor(uint64(statT.Rdev)))) // nolint: unconvert
|
||||||
|
s.ResourceLimits.BlockIO.ThrottleWriteIOPSDevice = append(s.ResourceLimits.BlockIO.ThrottleWriteIOPSDevice, v)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user