summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-06-22 08:56:08 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-06-24 10:54:40 +0000
commite89bbd60687cd3ecf361e2d286791ece2f3b5d66 (patch)
tree3d9c185b56c7f8e3bf217b074525ea50d25f08ea
parent7182339d1abfd2859f04ecbb781a560de55e9384 (diff)
downloadpodman-e89bbd60687cd3ecf361e2d286791ece2f3b5d66.tar.gz
podman-e89bbd60687cd3ecf361e2d286791ece2f3b5d66.tar.bz2
podman-e89bbd60687cd3ecf361e2d286791ece2f3b5d66.zip
make varlink optional for podman
some platforms and operating systems do not have varlink. in those cases, we need to be able to turn off enablement of varlink in podman. this can now be done with BUILDTAGS passed to the build though perhaps in the future will be better. the default is to build with varlink Signed-off-by: baude <bbaude@redhat.com> squash! make varlink optional for podman The API.md and cmd/podman/varlink/ioprojectatomicpodman.go targets will continue to work regardless of the presence (or not) of 'varlink' is in BUILDTAGS. However, cmd/podman/varlink/ioprojectatomicpodman.go is now only required by the podman target when BUILDTAGS contains 'varlink'. API.md had also been an podman dependency since 5b2627dd (Makefile: Drop find-godeps.sh for podman target, 2018-05-15, #776) when I expanded varlink_api_generate. It had been an indirect podman dependency (via varlink_api_generate) since 25263558 (Generate varlink API documentation automatically, 2018-05-07, #734). But the podman executable obviously doesn't depend on the Markdown file, so I'm removing that dependency here. Signed-off-by: baude <bbaude@redhat.com> squash! make varlink optional for podman The command-pointer approach will scale well if/when we add additional optional commands behind their own build tags, because those tags won't all be competing for the same getOptionalCommands namespace. Signed-off-by: W. Trevor King <wking@tremily.us> Closes: #987 Approved by: rhatdan
-rw-r--r--Makefile9
-rw-r--r--cmd/podman/main.go6
-rw-r--r--cmd/podman/varlink.go4
-rw-r--r--cmd/podman/varlink_dummy.go9
4 files changed, 24 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index b808e09b3..0ab8443a4 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,12 @@ ETCDIR ?= ${DESTDIR}/etc
ETCDIR_LIBPOD ?= ${ETCDIR}/crio
TMPFILESDIR ?= ${PREFIX}/lib/tmpfiles.d
SYSTEMDDIR ?= ${PREFIX}/lib/systemd/system
-BUILDTAGS ?= seccomp $(shell hack/btrfs_tag.sh) $(shell hack/libdm_tag.sh) $(shell hack/btrfs_installed_tag.sh) $(shell hack/ostree_tag.sh) $(shell hack/selinux_tag.sh)
+BUILDTAGS ?= seccomp $(shell hack/btrfs_tag.sh) $(shell hack/libdm_tag.sh) $(shell hack/btrfs_installed_tag.sh) $(shell hack/ostree_tag.sh) $(shell hack/selinux_tag.sh) varlink
+
+ifneq (,$(findstring varlink,$(BUILDTAGS)))
+ PODMAN_VARLINK_DEPENDENCIES = cmd/podman/varlink/ioprojectatomicpodman.go
+endif
+
PYTHON ?= /usr/bin/python3
HAS_PYTHON3 := $(shell command -v python3 2>/dev/null)
@@ -92,7 +97,7 @@ test/copyimg/copyimg: .gopathok $(wildcard test/copyimg/*.go)
test/checkseccomp/checkseccomp: .gopathok $(wildcard test/checkseccomp/*.go)
$(GO) build -ldflags '$(LDFLAGS)' -tags "$(BUILDTAGS) containers_image_ostree_stub" -o $@ $(PROJECT)/test/checkseccomp
-podman: .gopathok API.md cmd/podman/varlink/ioprojectatomicpodman.go
+podman: .gopathok $(PODMAN_VARLINK_DEPENDENCIES)
$(GO) build -i -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o bin/$@ $(PROJECT)/cmd/podman
python-podman:
diff --git a/cmd/podman/main.go b/cmd/podman/main.go
index 8ee86dd92..f936a332f 100644
--- a/cmd/podman/main.go
+++ b/cmd/podman/main.go
@@ -75,10 +75,14 @@ func main() {
topCommand,
umountCommand,
unpauseCommand,
- varlinkCommand,
versionCommand,
waitCommand,
}
+
+ if varlinkCommand != nil {
+ app.Commands = append(app.Commands, *varlinkCommand)
+ }
+
app.Before = func(c *cli.Context) error {
logLevel := c.GlobalString("log-level")
if logLevel != "" {
diff --git a/cmd/podman/varlink.go b/cmd/podman/varlink.go
index ca3159460..f1bf2db6b 100644
--- a/cmd/podman/varlink.go
+++ b/cmd/podman/varlink.go
@@ -1,3 +1,5 @@
+// +build varlink
+
package main
import (
@@ -25,7 +27,7 @@ var (
Value: 1000,
},
}
- varlinkCommand = cli.Command{
+ varlinkCommand = &cli.Command{
Name: "varlink",
Usage: "Run varlink interface",
Description: varlinkDescription,
diff --git a/cmd/podman/varlink_dummy.go b/cmd/podman/varlink_dummy.go
new file mode 100644
index 000000000..ec4bbb208
--- /dev/null
+++ b/cmd/podman/varlink_dummy.go
@@ -0,0 +1,9 @@
+// +build !varlink
+
+package main
+
+import (
+ "github.com/urfave/cli"
+)
+
+var varlinkCommand *cli.Command