mirror of
https://github.com/containers/podman.git
synced 2025-06-23 02:18:13 +08:00
Merge pull request #12655 from giuseppe/fix-libsubid-test
build: fix test for subid 4
This commit is contained in:
2
go.mod
2
go.mod
@ -17,7 +17,7 @@ require (
|
|||||||
github.com/containers/image/v5 v5.17.1-0.20211207161909-6f3c8453e1a7
|
github.com/containers/image/v5 v5.17.1-0.20211207161909-6f3c8453e1a7
|
||||||
github.com/containers/ocicrypt v1.1.2
|
github.com/containers/ocicrypt v1.1.2
|
||||||
github.com/containers/psgo v1.7.1
|
github.com/containers/psgo v1.7.1
|
||||||
github.com/containers/storage v1.37.1-0.20211130181259-1a158c89a518
|
github.com/containers/storage v1.37.1-0.20211213220314-73a749e4fec5
|
||||||
github.com/coreos/go-systemd/v22 v22.3.2
|
github.com/coreos/go-systemd/v22 v22.3.2
|
||||||
github.com/coreos/stream-metadata-go v0.0.0-20210225230131-70edb9eb47b3
|
github.com/coreos/stream-metadata-go v0.0.0-20210225230131-70edb9eb47b3
|
||||||
github.com/cyphar/filepath-securejoin v0.2.3
|
github.com/cyphar/filepath-securejoin v0.2.3
|
||||||
|
4
go.sum
4
go.sum
@ -308,8 +308,8 @@ github.com/containers/storage v1.35.0/go.mod h1:qzYhasQP2/V9D9XdO+vRwkHBhsBO0ozn
|
|||||||
github.com/containers/storage v1.36.0/go.mod h1:vbd3SKVQNHdmU5qQI6hTEcKPxnZkGqydG4f6uwrI5a8=
|
github.com/containers/storage v1.36.0/go.mod h1:vbd3SKVQNHdmU5qQI6hTEcKPxnZkGqydG4f6uwrI5a8=
|
||||||
github.com/containers/storage v1.37.0/go.mod h1:kqeJeS0b7DO2ZT1nVWs0XufrmPFbgV3c+Q/45RlH6r4=
|
github.com/containers/storage v1.37.0/go.mod h1:kqeJeS0b7DO2ZT1nVWs0XufrmPFbgV3c+Q/45RlH6r4=
|
||||||
github.com/containers/storage v1.37.1-0.20211119174841-bf170b3ddac0/go.mod h1:XjCNlt5JUUmRuTJXhFxHb9hHGPho7DNg3o4N/14prdQ=
|
github.com/containers/storage v1.37.1-0.20211119174841-bf170b3ddac0/go.mod h1:XjCNlt5JUUmRuTJXhFxHb9hHGPho7DNg3o4N/14prdQ=
|
||||||
github.com/containers/storage v1.37.1-0.20211130181259-1a158c89a518 h1:p44O35V8XCefRxOxU1aY6eT9XNMxkWA1drtJpsl211c=
|
github.com/containers/storage v1.37.1-0.20211213220314-73a749e4fec5 h1:DOpYQGCHIJfrErey3FyondnZGfZrbfGpHAN6nQssE1o=
|
||||||
github.com/containers/storage v1.37.1-0.20211130181259-1a158c89a518/go.mod h1:T5DX08T/eKKRs0WGDhC/ztngMSth6YuHq15eF8C/Y5A=
|
github.com/containers/storage v1.37.1-0.20211213220314-73a749e4fec5/go.mod h1:5qRpx96WJRTCQCsArfrWjUh398JSNCaTJG6RbOhMlqY=
|
||||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||||
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||||
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
|
||||||
|
@ -7,9 +7,19 @@ mkdir -p "$tmpdir"
|
|||||||
trap 'rm -fr "$tmpdir"' EXIT
|
trap 'rm -fr "$tmpdir"' EXIT
|
||||||
cc -o "$tmpdir"/libsubid_tag -l subid -x c - > /dev/null 2> /dev/null << EOF
|
cc -o "$tmpdir"/libsubid_tag -l subid -x c - > /dev/null 2> /dev/null << EOF
|
||||||
#include <shadow/subid.h>
|
#include <shadow/subid.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
const char *Prog = "test";
|
||||||
|
FILE *shadow_logfd = NULL;
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
struct subid_range *ranges = NULL;
|
struct subid_range *ranges = NULL;
|
||||||
|
#if SUBID_ABI_MAJOR >= 4
|
||||||
|
subid_get_uid_ranges("root", &ranges);
|
||||||
|
#else
|
||||||
get_subuid_ranges("root", &ranges);
|
get_subuid_ranges("root", &ranges);
|
||||||
|
#endif
|
||||||
free(ranges);
|
free(ranges);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
2
vendor/github.com/containers/storage/go.mod
generated
vendored
2
vendor/github.com/containers/storage/go.mod
generated
vendored
@ -18,7 +18,7 @@ require (
|
|||||||
github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible
|
github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible
|
||||||
github.com/moby/sys/mountinfo v0.5.0
|
github.com/moby/sys/mountinfo v0.5.0
|
||||||
github.com/opencontainers/go-digest v1.0.0
|
github.com/opencontainers/go-digest v1.0.0
|
||||||
github.com/opencontainers/runc v1.0.2
|
github.com/opencontainers/runc v1.0.3
|
||||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
|
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
|
||||||
github.com/opencontainers/selinux v1.10.0
|
github.com/opencontainers/selinux v1.10.0
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
|
3
vendor/github.com/containers/storage/go.sum
generated
vendored
3
vendor/github.com/containers/storage/go.sum
generated
vendored
@ -514,8 +514,9 @@ github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59P
|
|||||||
github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
|
||||||
github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
|
github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0=
|
||||||
github.com/opencontainers/runc v1.0.2 h1:opHZMaswlyxz1OuGpBE53Dwe4/xF7EZTY0A2L/FpCOg=
|
|
||||||
github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
|
github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
|
||||||
|
github.com/opencontainers/runc v1.0.3 h1:1hbqejyQWCJBvtKAfdO0b1FmaEf2z/bxnjqbARass5k=
|
||||||
|
github.com/opencontainers/runc v1.0.3/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0=
|
||||||
github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
|
41
vendor/github.com/containers/storage/layers.go
generated
vendored
41
vendor/github.com/containers/storage/layers.go
generated
vendored
@ -23,6 +23,7 @@ import (
|
|||||||
"github.com/containers/storage/pkg/system"
|
"github.com/containers/storage/pkg/system"
|
||||||
"github.com/containers/storage/pkg/tarlog"
|
"github.com/containers/storage/pkg/tarlog"
|
||||||
"github.com/containers/storage/pkg/truncindex"
|
"github.com/containers/storage/pkg/truncindex"
|
||||||
|
multierror "github.com/hashicorp/go-multierror"
|
||||||
"github.com/klauspost/pgzip"
|
"github.com/klauspost/pgzip"
|
||||||
digest "github.com/opencontainers/go-digest"
|
digest "github.com/opencontainers/go-digest"
|
||||||
"github.com/opencontainers/selinux/go-selinux/label"
|
"github.com/opencontainers/selinux/go-selinux/label"
|
||||||
@ -1463,34 +1464,48 @@ func (r *layerStore) Diff(from, to string, options *DiffOptions) (io.ReadCloser,
|
|||||||
}
|
}
|
||||||
return maybeCompressReadCloser(diff)
|
return maybeCompressReadCloser(diff)
|
||||||
}
|
}
|
||||||
defer tsfile.Close()
|
|
||||||
|
|
||||||
decompressor, err := pgzip.NewReader(tsfile)
|
decompressor, err := pgzip.NewReader(tsfile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
if e := tsfile.Close(); e != nil {
|
||||||
|
logrus.Debug(e)
|
||||||
}
|
}
|
||||||
defer decompressor.Close()
|
|
||||||
|
|
||||||
tsbytes, err := ioutil.ReadAll(decompressor)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
metadata = storage.NewJSONUnpacker(bytes.NewBuffer(tsbytes))
|
metadata = storage.NewJSONUnpacker(decompressor)
|
||||||
|
|
||||||
fgetter, err := r.newFileGetter(to)
|
fgetter, err := r.newFileGetter(to)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
errs := multierror.Append(nil, errors.Wrapf(err, "creating file-getter"))
|
||||||
|
if err := decompressor.Close(); err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "closing decompressor"))
|
||||||
|
}
|
||||||
|
if err := tsfile.Close(); err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "closing tarstream headers"))
|
||||||
|
}
|
||||||
|
return nil, errs.ErrorOrNil()
|
||||||
}
|
}
|
||||||
|
|
||||||
tarstream := asm.NewOutputTarStream(fgetter, metadata)
|
tarstream := asm.NewOutputTarStream(fgetter, metadata)
|
||||||
rc := ioutils.NewReadCloserWrapper(tarstream, func() error {
|
rc := ioutils.NewReadCloserWrapper(tarstream, func() error {
|
||||||
err1 := tarstream.Close()
|
var errs *multierror.Error
|
||||||
err2 := fgetter.Close()
|
if err := decompressor.Close(); err != nil {
|
||||||
if err2 == nil {
|
errs = multierror.Append(errs, errors.Wrapf(err, "closing decompressor"))
|
||||||
return err1
|
|
||||||
}
|
}
|
||||||
return err2
|
if err := tsfile.Close(); err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "closing tarstream headers"))
|
||||||
|
}
|
||||||
|
if err := tarstream.Close(); err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "closing reconstructed tarstream"))
|
||||||
|
}
|
||||||
|
if err := fgetter.Close(); err != nil {
|
||||||
|
errs = multierror.Append(errs, errors.Wrapf(err, "closing file-getter"))
|
||||||
|
}
|
||||||
|
if errs != nil {
|
||||||
|
return errs.ErrorOrNil()
|
||||||
|
}
|
||||||
|
return nil
|
||||||
})
|
})
|
||||||
return maybeCompressReadCloser(rc)
|
return maybeCompressReadCloser(rc)
|
||||||
}
|
}
|
||||||
|
52
vendor/github.com/containers/storage/pkg/homedir/homedir.go
generated
vendored
Normal file
52
vendor/github.com/containers/storage/pkg/homedir/homedir.go
generated
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package homedir
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetConfigHome returns XDG_CONFIG_HOME.
|
||||||
|
// GetConfigHome returns $HOME/.config and nil error if XDG_CONFIG_HOME is not set.
|
||||||
|
//
|
||||||
|
// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html
|
||||||
|
func GetConfigHome() (string, error) {
|
||||||
|
if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" {
|
||||||
|
return xdgConfigHome, nil
|
||||||
|
}
|
||||||
|
home := Get()
|
||||||
|
if home == "" {
|
||||||
|
return "", errors.New("could not get either XDG_CONFIG_HOME or HOME")
|
||||||
|
}
|
||||||
|
return filepath.Join(home, ".config"), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDataHome returns XDG_DATA_HOME.
|
||||||
|
// GetDataHome returns $HOME/.local/share and nil error if XDG_DATA_HOME is not set.
|
||||||
|
//
|
||||||
|
// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html
|
||||||
|
func GetDataHome() (string, error) {
|
||||||
|
if xdgDataHome := os.Getenv("XDG_DATA_HOME"); xdgDataHome != "" {
|
||||||
|
return xdgDataHome, nil
|
||||||
|
}
|
||||||
|
home := Get()
|
||||||
|
if home == "" {
|
||||||
|
return "", errors.New("could not get either XDG_DATA_HOME or HOME")
|
||||||
|
}
|
||||||
|
return filepath.Join(home, ".local", "share"), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetCacheHome returns XDG_CACHE_HOME.
|
||||||
|
// GetCacheHome returns $HOME/.cache and nil error if XDG_CACHE_HOME is not set.
|
||||||
|
//
|
||||||
|
// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html
|
||||||
|
func GetCacheHome() (string, error) {
|
||||||
|
if xdgCacheHome := os.Getenv("XDG_CACHE_HOME"); xdgCacheHome != "" {
|
||||||
|
return xdgCacheHome, nil
|
||||||
|
}
|
||||||
|
home := Get()
|
||||||
|
if home == "" {
|
||||||
|
return "", errors.New("could not get either XDG_CACHE_HOME or HOME")
|
||||||
|
}
|
||||||
|
return filepath.Join(home, ".cache"), nil
|
||||||
|
}
|
15
vendor/github.com/containers/storage/pkg/homedir/homedir_others.go
generated
vendored
15
vendor/github.com/containers/storage/pkg/homedir/homedir_others.go
generated
vendored
@ -18,18 +18,3 @@ func GetRuntimeDir() (string, error) {
|
|||||||
func StickRuntimeDirContents(files []string) ([]string, error) {
|
func StickRuntimeDirContents(files []string) ([]string, error) {
|
||||||
return nil, errors.New("homedir.StickRuntimeDirContents() is not supported on this system")
|
return nil, errors.New("homedir.StickRuntimeDirContents() is not supported on this system")
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDataHome is unsupported on non-linux system.
|
|
||||||
func GetDataHome() (string, error) {
|
|
||||||
return "", errors.New("homedir.GetDataHome() is not supported on this system")
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetConfigHome is unsupported on non-linux system.
|
|
||||||
func GetConfigHome() (string, error) {
|
|
||||||
return "", errors.New("homedir.GetConfigHome() is not supported on this system")
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCacheHome is unsupported on non-linux system.
|
|
||||||
func GetCacheHome() (string, error) {
|
|
||||||
return "", errors.New("homedir.GetCacheHome() is not supported on this system")
|
|
||||||
}
|
|
||||||
|
45
vendor/github.com/containers/storage/pkg/homedir/homedir_unix.go
generated
vendored
45
vendor/github.com/containers/storage/pkg/homedir/homedir_unix.go
generated
vendored
@ -93,48 +93,3 @@ func stick(f string) error {
|
|||||||
m |= os.ModeSticky
|
m |= os.ModeSticky
|
||||||
return os.Chmod(f, m)
|
return os.Chmod(f, m)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDataHome returns XDG_DATA_HOME.
|
|
||||||
// GetDataHome returns $HOME/.local/share and nil error if XDG_DATA_HOME is not set.
|
|
||||||
//
|
|
||||||
// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html
|
|
||||||
func GetDataHome() (string, error) {
|
|
||||||
if xdgDataHome := os.Getenv("XDG_DATA_HOME"); xdgDataHome != "" {
|
|
||||||
return xdgDataHome, nil
|
|
||||||
}
|
|
||||||
home := Get()
|
|
||||||
if home == "" {
|
|
||||||
return "", errors.New("could not get either XDG_DATA_HOME or HOME")
|
|
||||||
}
|
|
||||||
return filepath.Join(home, ".local", "share"), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetConfigHome returns XDG_CONFIG_HOME.
|
|
||||||
// GetConfigHome returns $HOME/.config and nil error if XDG_CONFIG_HOME is not set.
|
|
||||||
//
|
|
||||||
// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html
|
|
||||||
func GetConfigHome() (string, error) {
|
|
||||||
if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" {
|
|
||||||
return xdgConfigHome, nil
|
|
||||||
}
|
|
||||||
home := Get()
|
|
||||||
if home == "" {
|
|
||||||
return "", errors.New("could not get either XDG_CONFIG_HOME or HOME")
|
|
||||||
}
|
|
||||||
return filepath.Join(home, ".config"), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetCacheHome returns XDG_CACHE_HOME.
|
|
||||||
// GetCacheHome returns $HOME/.cache and nil error if XDG_CACHE_HOME is not set.
|
|
||||||
//
|
|
||||||
// See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html
|
|
||||||
func GetCacheHome() (string, error) {
|
|
||||||
if xdgCacheHome := os.Getenv("XDG_CACHE_HOME"); xdgCacheHome != "" {
|
|
||||||
return xdgCacheHome, nil
|
|
||||||
}
|
|
||||||
home := Get()
|
|
||||||
if home == "" {
|
|
||||||
return "", errors.New("could not get either XDG_CACHE_HOME or HOME")
|
|
||||||
}
|
|
||||||
return filepath.Join(home, ".cache"), nil
|
|
||||||
}
|
|
||||||
|
7
vendor/github.com/containers/storage/pkg/homedir/homedir_windows.go
generated
vendored
7
vendor/github.com/containers/storage/pkg/homedir/homedir_windows.go
generated
vendored
@ -17,7 +17,12 @@ func Key() string {
|
|||||||
// environment variables depending on the target operating system.
|
// environment variables depending on the target operating system.
|
||||||
// Returned path should be used with "path/filepath" to form new paths.
|
// Returned path should be used with "path/filepath" to form new paths.
|
||||||
func Get() string {
|
func Get() string {
|
||||||
return os.Getenv(Key())
|
home := os.Getenv(Key())
|
||||||
|
if home != "" {
|
||||||
|
return home
|
||||||
|
}
|
||||||
|
home, _ = os.UserHomeDir()
|
||||||
|
return home
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetShortcutString returns the string that is shortcut to user's home directory
|
// GetShortcutString returns the string that is shortcut to user's home directory
|
||||||
|
10
vendor/github.com/containers/storage/pkg/idtools/idtools_supported.go
generated
vendored
10
vendor/github.com/containers/storage/pkg/idtools/idtools_supported.go
generated
vendored
@ -17,6 +17,12 @@ struct subid_range get_range(struct subid_range *ranges, int i)
|
|||||||
{
|
{
|
||||||
return ranges[i];
|
return ranges[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(SUBID_ABI_MAJOR) || (SUBID_ABI_MAJOR < 4)
|
||||||
|
# define subid_get_uid_ranges get_subuid_ranges
|
||||||
|
# define subid_get_gid_ranges get_subgid_ranges
|
||||||
|
#endif
|
||||||
|
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
@ -32,9 +38,9 @@ func readSubid(username string, isUser bool) (ranges, error) {
|
|||||||
var nRanges C.int
|
var nRanges C.int
|
||||||
var cRanges *C.struct_subid_range
|
var cRanges *C.struct_subid_range
|
||||||
if isUser {
|
if isUser {
|
||||||
nRanges = C.get_subuid_ranges(cUsername, &cRanges)
|
nRanges = C.subid_get_uid_ranges(cUsername, &cRanges)
|
||||||
} else {
|
} else {
|
||||||
nRanges = C.get_subgid_ranges(cUsername, &cRanges)
|
nRanges = C.subid_get_gid_ranges(cUsername, &cRanges)
|
||||||
}
|
}
|
||||||
if nRanges < 0 {
|
if nRanges < 0 {
|
||||||
return nil, errors.New("cannot read subids")
|
return nil, errors.New("cannot read subids")
|
||||||
|
33
vendor/github.com/containers/storage/types/options.go
generated
vendored
33
vendor/github.com/containers/storage/types/options.go
generated
vendored
@ -27,6 +27,13 @@ type tomlConfig struct {
|
|||||||
} `toml:"storage"`
|
} `toml:"storage"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
// these are default path for run and graph root for rootful users
|
||||||
|
// for rootless path is constructed via getRootlessStorageOpts
|
||||||
|
defaultRunRoot string = "/run/containers/storage"
|
||||||
|
defaultGraphRoot string = "/var/lib/containers/storage"
|
||||||
|
)
|
||||||
|
|
||||||
// defaultConfigFile path to the system wide storage.conf file
|
// defaultConfigFile path to the system wide storage.conf file
|
||||||
var (
|
var (
|
||||||
defaultConfigFile = "/usr/share/containers/storage.conf"
|
defaultConfigFile = "/usr/share/containers/storage.conf"
|
||||||
@ -36,9 +43,14 @@ var (
|
|||||||
defaultStoreOptions StoreOptions
|
defaultStoreOptions StoreOptions
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
overlayDriver = "overlay"
|
||||||
|
overlay2 = "overlay2"
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
defaultStoreOptions.RunRoot = "/run/containers/storage"
|
defaultStoreOptions.RunRoot = defaultRunRoot
|
||||||
defaultStoreOptions.GraphRoot = "/var/lib/containers/storage"
|
defaultStoreOptions.GraphRoot = defaultGraphRoot
|
||||||
defaultStoreOptions.GraphDriverName = ""
|
defaultStoreOptions.GraphDriverName = ""
|
||||||
|
|
||||||
if _, err := os.Stat(defaultOverrideConfigFile); err == nil {
|
if _, err := os.Stat(defaultOverrideConfigFile); err == nil {
|
||||||
@ -53,6 +65,13 @@ func init() {
|
|||||||
}
|
}
|
||||||
ReloadConfigurationFileIfNeeded(defaultConfigFile, &defaultStoreOptions)
|
ReloadConfigurationFileIfNeeded(defaultConfigFile, &defaultStoreOptions)
|
||||||
}
|
}
|
||||||
|
// reload could set values to empty for run and graph root if config does not contains anything
|
||||||
|
if defaultStoreOptions.RunRoot == "" {
|
||||||
|
defaultStoreOptions.RunRoot = defaultRunRoot
|
||||||
|
}
|
||||||
|
if defaultStoreOptions.GraphRoot == "" {
|
||||||
|
defaultStoreOptions.GraphRoot = defaultGraphRoot
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// defaultStoreOptionsIsolated is an internal implementation detail of DefaultStoreOptions to allow testing.
|
// defaultStoreOptionsIsolated is an internal implementation detail of DefaultStoreOptions to allow testing.
|
||||||
@ -180,7 +199,6 @@ func isRootlessDriver(driver string) bool {
|
|||||||
// getRootlessStorageOpts returns the storage opts for containers running as non root
|
// getRootlessStorageOpts returns the storage opts for containers running as non root
|
||||||
func getRootlessStorageOpts(rootlessUID int, systemOpts StoreOptions) (StoreOptions, error) {
|
func getRootlessStorageOpts(rootlessUID int, systemOpts StoreOptions) (StoreOptions, error) {
|
||||||
var opts StoreOptions
|
var opts StoreOptions
|
||||||
const overlayDriver = "overlay"
|
|
||||||
|
|
||||||
dataDir, rootlessRuntime, err := getRootlessDirInfo(rootlessUID)
|
dataDir, rootlessRuntime, err := getRootlessDirInfo(rootlessUID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -202,6 +220,11 @@ func getRootlessStorageOpts(rootlessUID int, systemOpts StoreOptions) (StoreOpti
|
|||||||
if driver := os.Getenv("STORAGE_DRIVER"); driver != "" {
|
if driver := os.Getenv("STORAGE_DRIVER"); driver != "" {
|
||||||
opts.GraphDriverName = driver
|
opts.GraphDriverName = driver
|
||||||
}
|
}
|
||||||
|
if opts.GraphDriverName == overlay2 {
|
||||||
|
logrus.Warnf("Switching default driver from overlay2 to the equivalent overlay driver.")
|
||||||
|
opts.GraphDriverName = overlayDriver
|
||||||
|
}
|
||||||
|
|
||||||
if opts.GraphDriverName == "" || opts.GraphDriverName == overlayDriver {
|
if opts.GraphDriverName == "" || opts.GraphDriverName == overlayDriver {
|
||||||
supported, err := overlay.SupportsNativeOverlay(opts.GraphRoot, rootlessRuntime)
|
supported, err := overlay.SupportsNativeOverlay(opts.GraphRoot, rootlessRuntime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -307,6 +330,10 @@ func ReloadConfigurationFile(configFile string, storeOptions *StoreOptions) {
|
|||||||
config.Storage.Driver = os.Getenv("STORAGE_DRIVER")
|
config.Storage.Driver = os.Getenv("STORAGE_DRIVER")
|
||||||
storeOptions.GraphDriverName = config.Storage.Driver
|
storeOptions.GraphDriverName = config.Storage.Driver
|
||||||
}
|
}
|
||||||
|
if storeOptions.GraphDriverName == overlay2 {
|
||||||
|
logrus.Warnf("Switching default driver from overlay2 to the equivalent overlay driver.")
|
||||||
|
storeOptions.GraphDriverName = overlayDriver
|
||||||
|
}
|
||||||
if storeOptions.GraphDriverName == "" {
|
if storeOptions.GraphDriverName == "" {
|
||||||
logrus.Errorf("The storage 'driver' option must be set in %s, guarantee proper operation.", configFile)
|
logrus.Errorf("The storage 'driver' option must be set in %s, guarantee proper operation.", configFile)
|
||||||
}
|
}
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -220,7 +220,7 @@ github.com/containers/psgo/internal/dev
|
|||||||
github.com/containers/psgo/internal/host
|
github.com/containers/psgo/internal/host
|
||||||
github.com/containers/psgo/internal/proc
|
github.com/containers/psgo/internal/proc
|
||||||
github.com/containers/psgo/internal/process
|
github.com/containers/psgo/internal/process
|
||||||
# github.com/containers/storage v1.37.1-0.20211130181259-1a158c89a518
|
# github.com/containers/storage v1.37.1-0.20211213220314-73a749e4fec5
|
||||||
## explicit
|
## explicit
|
||||||
github.com/containers/storage
|
github.com/containers/storage
|
||||||
github.com/containers/storage/drivers
|
github.com/containers/storage/drivers
|
||||||
|
Reference in New Issue
Block a user