summaryrefslogtreecommitdiff
path: root/pkg/spec/config_linux_cgo.go
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2019-06-26 12:13:40 +0200
committerGiuseppe Scrivano <gscrivan@redhat.com>2019-07-02 16:41:03 +0200
commit825506d8f8d2aa5cc3b9f1b7ae6912f8c87dc0c1 (patch)
tree5718f6e7dc93738646835184981280b7cb94568b /pkg/spec/config_linux_cgo.go
parent35ab2184a368746366bae0cde664b5d6c7af8a99 (diff)
downloadpodman-825506d8f8d2aa5cc3b9f1b7ae6912f8c87dc0c1.tar.gz
podman-825506d8f8d2aa5cc3b9f1b7ae6912f8c87dc0c1.tar.bz2
podman-825506d8f8d2aa5cc3b9f1b7ae6912f8c87dc0c1.zip
spec: move cgo stuff to their own file
so it can build without cgo since seccomp requires it. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'pkg/spec/config_linux_cgo.go')
-rw-r--r--pkg/spec/config_linux_cgo.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkg/spec/config_linux_cgo.go b/pkg/spec/config_linux_cgo.go
new file mode 100644
index 000000000..e6e92a7cc
--- /dev/null
+++ b/pkg/spec/config_linux_cgo.go
@@ -0,0 +1,34 @@
+// +build linux,cgo
+
+package createconfig
+
+import (
+ "io/ioutil"
+
+ "github.com/docker/docker/profiles/seccomp"
+ spec "github.com/opencontainers/runtime-spec/specs-go"
+ "github.com/pkg/errors"
+)
+
+func getSeccompConfig(config *CreateConfig, configSpec *spec.Spec) (*spec.LinuxSeccomp, error) {
+ var seccompConfig *spec.LinuxSeccomp
+ var err error
+
+ if config.SeccompProfilePath != "" {
+ seccompProfile, err := ioutil.ReadFile(config.SeccompProfilePath)
+ if err != nil {
+ return nil, errors.Wrapf(err, "opening seccomp profile (%s) failed", config.SeccompProfilePath)
+ }
+ seccompConfig, err = seccomp.LoadProfile(string(seccompProfile), configSpec)
+ if err != nil {
+ return nil, errors.Wrapf(err, "loading seccomp profile (%s) failed", config.SeccompProfilePath)
+ }
+ } else {
+ seccompConfig, err = seccomp.GetDefaultProfile(configSpec)
+ if err != nil {
+ return nil, errors.Wrapf(err, "loading seccomp profile (%s) failed", config.SeccompProfilePath)
+ }
+ }
+
+ return seccompConfig, nil
+}