summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAyush Ranjan <ayushranjan@google.com>2021-08-11 15:25:31 -0700
committergVisor bot <gvisor-bot@google.com>2021-08-11 15:28:51 -0700
commitc2353e4055ac77d5a205594b5e3d2697b96abd7d (patch)
treed3b60eb20016b02796de373f78d83d1bb78e90a1
parent14d6cb4436f19d0500e98179c3215517f1a77b08 (diff)
[op] Fix //debian:debian.
Co-authored-by: Andrei Vagin <avagin@google.com> PiperOrigin-RevId: 390232925
-rw-r--r--Makefile2
-rw-r--r--WORKSPACE4
-rw-r--r--debian/BUILD3
-rw-r--r--debian/show_paths.bzl9
-rw-r--r--tools/bazel.mk10
5 files changed, 22 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 68fb4c892..02555f27a 100644
--- a/Makefile
+++ b/Makefile
@@ -444,7 +444,7 @@ $(RELEASE_ARTIFACTS)/%:
@mkdir -p $@
@$(call copy,//runsc:runsc,$@)
@$(call copy,//shim:containerd-shim-runsc-v1,$@)
- @$(call copy,//debian:debian,$@)
+ @$(call deb_copy,//debian:debian,$@)
release: $(RELEASE_KEY) $(RELEASE_ARTIFACTS)/$(ARCH)
@mkdir -p $(RELEASE_ROOT)
diff --git a/WORKSPACE b/WORKSPACE
index a27f9afeb..8e99927a9 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1245,8 +1245,8 @@ rbe_autoconfig(name = "rbe_default")
http_archive(
name = "rules_pkg",
- sha256 = "6b5969a7acd7b60c02f816773b06fcf32fbe8ba0c7919ccdc2df4f8fb923804a",
- url = "https://github.com/bazelbuild/rules_pkg/releases/download/0.3.0/rules_pkg-0.3.0.tar.gz",
+ sha256 = "353b20e8b093d42dd16889c7f918750fb8701c485ac6cceb69a5236500507c27",
+ url = "https://github.com/bazelbuild/rules_pkg/releases/download/0.5.0/rules_pkg-0.5.0.tar.gz",
)
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
diff --git a/debian/BUILD b/debian/BUILD
index 32cc209bf..a62164cb0 100644
--- a/debian/BUILD
+++ b/debian/BUILD
@@ -28,12 +28,10 @@ pkg_deb(
amd64 = "amd64",
arm64 = "arm64",
),
- changes = "runsc.changes",
conffiles = [
"/etc/containerd/runsc.toml",
],
data = ":debian-data",
- deb = "runsc.deb",
# Note that the description_file will be flatten (all newlines removed),
# and therefore it is kept to a simple one-line description. The expected
# format for debian packages is "short summary\nLonger explanation of
@@ -42,6 +40,7 @@ pkg_deb(
homepage = "https://gvisor.dev/",
maintainer = "The gVisor Authors <gvisor-dev@googlegroups.com>",
package = "runsc",
+ package_file_name = "runsc.deb",
postinst = "postinst.sh",
version_file = version,
visibility = [
diff --git a/debian/show_paths.bzl b/debian/show_paths.bzl
new file mode 100644
index 000000000..366b9d2e8
--- /dev/null
+++ b/debian/show_paths.bzl
@@ -0,0 +1,9 @@
+"""Formatter to extract the output files from pkg_deb."""
+
+def format(target):
+ provider_map = providers(target)
+ return "\n".join([
+ provider_map["OutputGroupInfo"].out.to_list()[0].path,
+ provider_map["OutputGroupInfo"].deb.to_list()[0].path,
+ provider_map["OutputGroupInfo"].changes.to_list()[0].path,
+ ])
diff --git a/tools/bazel.mk b/tools/bazel.mk
index 60b50cfb0..5893c7c7e 100644
--- a/tools/bazel.mk
+++ b/tools/bazel.mk
@@ -84,7 +84,7 @@ DOCKER_RUN_OPTIONS += -v "$(shell readlink -m $(GCLOUD_CONFIG)):$(GCLOUD_CONFIG)
DOCKER_RUN_OPTIONS += -v "/tmp:/tmp"
DOCKER_EXEC_OPTIONS := --user $(UID):$(GID)
DOCKER_EXEC_OPTIONS += --interactive
-ifeq (true,$(shell test -t 0 && echo true))
+ifeq (true,$(shell test -t 1 && echo true))
DOCKER_EXEC_OPTIONS += --tty
endif
@@ -199,9 +199,17 @@ build_paths = \
| xargs -r -n 1 -I {} readlink -f "{}" \
| xargs -r -n 1 -I {} bash -c 'set -xeuo pipefail; $(2)')
+debian_paths = \
+ (set -euo pipefail; \
+ $(call wrapper,$(BAZEL) build $(BASE_OPTIONS) $(BAZEL_OPTIONS) $(1)) && \
+ $(call wrapper,$(BAZEL) cquery $(BASE_OPTIONS) $(BAZEL_OPTIONS) $(1) --output=starlark --starlark:file=debian/show_paths.bzl) \
+ | xargs -r -n 1 -I {} readlink -f "{}" \
+ | xargs -r -n 1 -I {} bash -c 'set -xeuo pipefail; $(2)')
+
clean = $(call header,CLEAN) && $(call wrapper,$(BAZEL) clean)
build = $(call header,BUILD $(1)) && $(call build_paths,$(1),echo {})
copy = $(call header,COPY $(1) $(2)) && $(call build_paths,$(1),cp -fa {} $(2))
+deb_copy = $(call header,COPY $(1) $(2)) && $(call debian_paths,$(1),cp -fa {} $(2))
run = $(call header,RUN $(1) $(2)) && $(call build_paths,$(1),{} $(2))
sudo = $(call header,SUDO $(1) $(2)) && $(call build_paths,$(1),sudo -E {} $(2))
test = $(call header,TEST $(1)) && $(call wrapper,$(BAZEL) test $(TEST_OPTIONS) $(1))