From 8a914e8a0b268121ede5e54032025b4f51dd0b02 Mon Sep 17 00:00:00 2001 From: Lokesh Mandvekar Date: Fri, 29 May 2020 14:38:33 -0400 Subject: [PATCH] default build without `varlink` tag Issue gh#6286 was already fixed in a prior commit but the Makefile still ran some varlink steps by default. This commit makes any varlink build steps dependent on the varlink build tag and also makes the contrib rpm spec file independent of varlink. Endpoint tests will be run only if BUILDTAGS contains varlink. Signed-off-by: Lokesh Mandvekar --- .cirrus.yml | 2 +- Makefile | 36 ++++++++++++++++++++++------ contrib/spec/podman.spec.in | 15 +----------- test/endpoint/commit.go | 2 ++ test/endpoint/config.go | 2 ++ test/endpoint/endpoint.go | 2 ++ test/endpoint/endpoint_suite_test.go | 2 ++ test/endpoint/exists_test.go | 2 ++ test/endpoint/pull_test.go | 2 ++ test/endpoint/setup.go | 2 ++ test/endpoint/version_test.go | 2 ++ 11 files changed, 47 insertions(+), 22 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 116dc90cd345..292f83951e98 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -268,7 +268,7 @@ varlink_api_task: timeout_in: 10m api_md_script: - - '/usr/local/bin/entrypoint.sh varlink_api_generate |& ${TIMESTAMP}' + - '/usr/local/bin/entrypoint.sh BUILDTAGS="varlink" varlink_api_generate |& ${TIMESTAMP}' - 'cd ${GOSRC} && ./hack/tree_status.sh |& ${TIMESTAMP}' on_failure: diff --git a/Makefile b/Makefile index 75cf64c6c7b5..b7bad33afc70 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ ETCDIR ?= /etc TMPFILESDIR ?= ${PREFIX}/lib/tmpfiles.d SYSTEMDDIR ?= ${PREFIX}/lib/systemd/system USERSYSTEMDDIR ?= ${PREFIX}/lib/systemd/user -REMOTETAGS ?= !ABISupport remote exclude_graphdriver_btrfs btrfs_noversion exclude_graphdriver_devicemapper containers_image_openpgp +REMOTETAGS ?= !ABISupport remote exclude_graphdriver_btrfs btrfs_noversion exclude_graphdriver_devicemapper containers_image_openpgp BUILDTAGS ?= \ $(shell hack/apparmor_tag.sh) \ $(shell hack/btrfs_installed_tag.sh) \ @@ -30,8 +30,7 @@ BUILDTAGS ?= \ $(shell hack/selinux_tag.sh) \ $(shell hack/systemd_tag.sh) \ exclude_graphdriver_devicemapper \ - seccomp \ - varlink + seccomp PYTHON ?= $(shell command -v python3 python|head -n1) PKG_MANAGER ?= $(shell command -v dnf yum|head -n1) # ~/.local/bin is not in PATH on all systems @@ -145,6 +144,9 @@ help: ifeq ("$(wildcard $(GOPKGDIR))","") mkdir -p "$(GOPKGBASEDIR)" ln -sfn "$(CURDIR)" "$(GOPKGDIR)" +endif + +ifneq (,$(findstring varlink,$(BUILDTAGS))) ln -sfn "$(CURDIR)/vendor/github.com/varlink" "$(FIRST_GOPATH)/src/github.com/varlink" endif touch $@ @@ -333,8 +335,11 @@ ginkgo-remote: ginkgo -v $(TESTFLAGS) -tags "$(REMOTETAGS)" $(GINKGOTIMEOUT) -cover -flakeAttempts 3 -progress -trace -noColor test/e2e/. .PHONY: endpoint +ifneq (,$(findstring varlink,$(BUILDTAGS))) endpoint: ginkgo -v $(TESTFLAGS) -tags "$(BUILDTAGS)" $(GINKGOTIMEOUT) -cover -flakeAttempts 3 -progress -trace -noColor -debug test/endpoint/. +endpoint: +endif .PHONY: localintegration localintegration: varlink_generate test-binaries ginkgo @@ -554,17 +559,25 @@ install.docker: docker-docs install ${SELINUXOPT} -m 755 -d ${DESTDIR}${SYSTEMDDIR} ${DESTDIR}${USERSYSTEMDDIR} ${DESTDIR}${TMPFILESDIR} install ${SELINUXOPT} -m 644 contrib/systemd/system/podman-docker.conf -t ${DESTDIR}${TMPFILESDIR} -.PHONY: install.systemd -install.systemd: - install ${SELINUXOPT} -m 755 -d ${DESTDIR}${SYSTEMDDIR} ${DESTDIR}${USERSYSTEMDDIR} ${DESTDIR}${TMPFILESDIR} +.PHONY: install.varlink +ifneq (,$(findstring varlink,$(BUILDTAGS))) +install.varlink: install ${SELINUXOPT} -m 644 contrib/varlink/io.podman.socket ${DESTDIR}${SYSTEMDDIR}/io.podman.socket install ${SELINUXOPT} -m 644 contrib/varlink/io.podman.socket ${DESTDIR}${USERSYSTEMDDIR}/io.podman.socket install ${SELINUXOPT} -m 644 contrib/varlink/io.podman.service ${DESTDIR}${SYSTEMDDIR}/io.podman.service - install ${SELINUXOPT} -d ${DESTDIR}${USERSYSTEMDDIR} # User units are ordered differently, we can't make the *system* multi-user.target depend on a user unit. # For user units the default.target that's the default is fine. sed -e 's,^WantedBy=.*,WantedBy=default.target,' < contrib/varlink/io.podman.service > ${DESTDIR}${USERSYSTEMDDIR}/io.podman.service install ${SELINUXOPT} -m 644 contrib/varlink/podman.conf ${DESTDIR}${TMPFILESDIR}/podman.conf +else +install.varlink: +endif + + +.PHONY: install.systemd +install.systemd: install.varlink + install ${SELINUXOPT} -m 755 -d ${DESTDIR}${SYSTEMDDIR} ${DESTDIR}${USERSYSTEMDDIR} ${DESTDIR}${TMPFILESDIR} + install ${SELINUXOPT} -d ${DESTDIR}${USERSYSTEMDDIR} # Install APIV2 services install ${SELINUXOPT} -m 644 contrib/systemd/user/podman.socket ${DESTDIR}${USERSYSTEMDDIR}/podman.socket install ${SELINUXOPT} -m 644 contrib/systemd/user/podman.service ${DESTDIR}${USERSYSTEMDDIR}/podman.service @@ -634,11 +647,20 @@ endef $(call go-get,github.com/cpuguy83/go-md2man); \ fi +# $BUILD_TAGS variable is used in hack/golangci-lint.sh .PHONY: varlink_generate +ifneq (or $(findstring varlink,$(BUILDTAGS)),$(findstring varlink,$(BUILD_TAGS))) varlink_generate: .gopathok pkg/varlink/iopodman.go ## Generate varlink +else +varlink_generate: +endif .PHONY: varlink_api_generate +ifneq (,$(findstring varlink,$(BUILDTAGS))) varlink_api_generate: .gopathok API.md +else +varlink_api_generate: +endif .PHONY: install.libseccomp.sudo install.libseccomp.sudo: diff --git a/contrib/spec/podman.spec.in b/contrib/spec/podman.spec.in index e4415c291a2c..701b5f0b1057 100644 --- a/contrib/spec/podman.spec.in +++ b/contrib/spec/podman.spec.in @@ -5,12 +5,6 @@ %bcond_without doc %bcond_without debug -%if 0%{?fedora} >= 28 -%bcond_without varlink -%else -%bcond_with varlink -%endif - %if %{with debug} %global _find_debuginfo_dwz_opts %{nil} %global _dwz_low_mem_die_limit 0 @@ -387,9 +381,7 @@ popd ln -s vendor src export GO111MODULE=off export GOPATH=$(pwd)/_build:$(pwd):$(pwd):%{gopath} -export BUILDTAGS="varlink selinux seccomp systemd $(%{hackdir}/hack/btrfs_installed_tag.sh) $(%{hackdir}/hack/btrfs_tag.sh) $(%{hackdir}/hack/libdm_tag.sh) exclude_graphdriver_devicemapper" - -GOPATH=$GOPATH go generate ./pkg/varlink/... +export BUILDTAGS="selinux seccomp systemd $(%{hackdir}/hack/btrfs_installed_tag.sh) $(%{hackdir}/hack/btrfs_tag.sh) $(%{hackdir}/hack/libdm_tag.sh) exclude_graphdriver_devicemapper" %if %{with doc} BUILDTAGS=$BUILDTAGS make binaries docs @@ -503,15 +495,10 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/vendor:%{gopath} %{_datadir}/zsh/site-functions/* %{_libexecdir}/%{name}/conmon %config(noreplace) %{_sysconfdir}/cni/net.d/87-%{name}-bridge.conflist -%{_unitdir}/io.podman.service -%{_unitdir}/io.podman.socket -%{_usr}/lib/systemd/user/io.podman.service -%{_usr}/lib/systemd/user/io.podman.socket %{_unitdir}/podman.service %{_unitdir}/podman.socket %{_usr}/lib/systemd/user/podman.service %{_usr}/lib/systemd/user/podman.socket -%{_usr}/lib/tmpfiles.d/%{name}.conf %if 0%{?with_devel} %files -n libpod-devel -f devel.file-list diff --git a/test/endpoint/commit.go b/test/endpoint/commit.go index ab9af819fb9e..2a8e365ae360 100644 --- a/test/endpoint/commit.go +++ b/test/endpoint/commit.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import ( diff --git a/test/endpoint/config.go b/test/endpoint/config.go index 15ee23547eb9..84f8ecb4cb77 100644 --- a/test/endpoint/config.go +++ b/test/endpoint/config.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import "encoding/json" diff --git a/test/endpoint/endpoint.go b/test/endpoint/endpoint.go index 6f4ae6b1f719..20b5c577eef4 100644 --- a/test/endpoint/endpoint.go +++ b/test/endpoint/endpoint.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import ( diff --git a/test/endpoint/endpoint_suite_test.go b/test/endpoint/endpoint_suite_test.go index 401da94c29fb..1cd5c2b9de25 100644 --- a/test/endpoint/endpoint_suite_test.go +++ b/test/endpoint/endpoint_suite_test.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import ( diff --git a/test/endpoint/exists_test.go b/test/endpoint/exists_test.go index 17e252a657d2..17e0fcab4246 100644 --- a/test/endpoint/exists_test.go +++ b/test/endpoint/exists_test.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import ( diff --git a/test/endpoint/pull_test.go b/test/endpoint/pull_test.go index 51eb9c760590..25141d7874b4 100644 --- a/test/endpoint/pull_test.go +++ b/test/endpoint/pull_test.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import ( diff --git a/test/endpoint/setup.go b/test/endpoint/setup.go index 11fa77b5c5a7..c05cc0cbb4cf 100644 --- a/test/endpoint/setup.go +++ b/test/endpoint/setup.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import ( diff --git a/test/endpoint/version_test.go b/test/endpoint/version_test.go index a1168da70ef3..403fca555368 100644 --- a/test/endpoint/version_test.go +++ b/test/endpoint/version_test.go @@ -1,3 +1,5 @@ +// +build varlink + package endpoint import (