Include shim in individual released binaries.

The debian rules are also moved to the top-level, since they
apply to binaries outside the //runsc directory.

Fixes #3665

PiperOrigin-RevId: 328379709
This commit is contained in:
Adin Scannell 2020-08-25 12:21:37 -07:00 committed by gVisor bot
parent b0c53f8475
commit 3b2e50f539
6 changed files with 66 additions and 61 deletions

View File

@ -114,7 +114,7 @@ runsc: ## Builds the runsc binary.
.PHONY: runsc
debian: ## Builds the debian packages.
@$(call submake,build OPTIONS="-c opt" TARGETS="//runsc:runsc-debian")
@$(call submake,build OPTIONS="-c opt" TARGETS="//debian:debian")
.PHONY: debian
smoke-tests: ## Runs a simple smoke test after build runsc.
@ -301,8 +301,10 @@ $(RELEASE_KEY):
release: $(RELEASE_KEY) ## Builds a release.
@mkdir -p $(RELEASE_ROOT)
@T=$$(mktemp -d /tmp/release.XXXXXX); \
$(call submake,copy TARGETS="runsc" DESTINATION=$$T) && \
$(call submake,copy TARGETS="runsc:runsc-debian" DESTINATION=$$T) && \
$(call submake,copy TARGETS="//runsc:runsc" DESTINATION=$$T) && \
$(call submake,copy TARGETS="//shim/v1:gvisor-containerd-shim" DESTINATION=$$T) && \
$(call submake,copy TARGETS="//shim/v2:containerd-shim-runsc-v1" DESTINATION=$$T) && \
$(call submake,copy TARGETS="//debian:debian" DESTINATION=$$T) && \
NIGHTLY=$(RELEASE_NIGHTLY) tools/make_release.sh $(RELEASE_KEY) $(RELEASE_ROOT) $$T/*; \
rc=$$?; rm -rf $$T; exit $$rc
.PHONY: release

59
debian/BUILD vendored Normal file
View File

@ -0,0 +1,59 @@
load("//tools:defs.bzl", "pkg_deb", "pkg_tar")
package(licenses = ["notice"])
pkg_tar(
name = "debian-bin",
srcs = [
"//runsc",
"//shim/v1:gvisor-containerd-shim",
"//shim/v2:containerd-shim-runsc-v1",
],
mode = "0755",
package_dir = "/usr/bin",
)
pkg_tar(
name = "debian-data",
extension = "tar.gz",
deps = [
":debian-bin",
"//shim:config",
],
)
genrule(
name = "debian-version",
# Note that runsc must appear in the srcs parameter and not the tools
# parameter, otherwise it will not be stamped. This is reasonable, as tools
# may be encoded differently in the build graph (cached more aggressively
# because they are assumes to be hermetic).
srcs = ["//runsc"],
outs = ["version.txt"],
# Note that the little dance here is necessary because files in the $(SRCS)
# attribute are not executable by default, and we can't touch in place.
cmd = "cp $(location //runsc:runsc) $(@D)/runsc && \
chmod a+x $(@D)/runsc && \
$(@D)/runsc -version | grep version | sed 's/^[^0-9]*//' > $@ && \
rm -f $(@D)/runsc",
stamp = 1,
)
pkg_deb(
name = "debian",
architecture = "amd64",
data = ":debian-data",
# 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
# tool." and this is impossible with the flattening.
description_file = "description",
homepage = "https://gvisor.dev/",
maintainer = "The gVisor Authors <gvisor-dev@googlegroups.com>",
package = "runsc",
postinst = "postinst.sh",
version_file = ":version.txt",
visibility = [
"//visibility:public",
],
)

View File

@ -1,4 +1,4 @@
load("//tools:defs.bzl", "go_binary", "pkg_deb", "pkg_tar")
load("//tools:defs.bzl", "go_binary")
package(licenses = ["notice"])
@ -61,62 +61,6 @@ go_binary(
],
)
pkg_tar(
name = "debian-bin",
srcs = [
":runsc",
"//shim/v1:gvisor-containerd-shim",
"//shim/v2:containerd-shim-runsc-v1",
],
mode = "0755",
package_dir = "/usr/bin",
)
pkg_tar(
name = "debian-data",
extension = "tar.gz",
deps = [
":debian-bin",
"//shim:config",
],
)
genrule(
name = "deb-version",
# Note that runsc must appear in the srcs parameter and not the tools
# parameter, otherwise it will not be stamped. This is reasonable, as tools
# may be encoded differently in the build graph (cached more aggressively
# because they are assumes to be hermetic).
srcs = [":runsc"],
outs = ["version.txt"],
# Note that the little dance here is necessary because files in the $(SRCS)
# attribute are not executable by default, and we can't touch in place.
cmd = "cp $(location :runsc) $(@D)/runsc && \
chmod a+x $(@D)/runsc && \
$(@D)/runsc -version | grep version | sed 's/^[^0-9]*//' > $@ && \
rm -f $(@D)/runsc",
stamp = 1,
)
pkg_deb(
name = "runsc-debian",
architecture = "amd64",
data = ":debian-data",
# 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
# tool." and this is impossible with the flattening.
description_file = "debian/description",
homepage = "https://gvisor.dev/",
maintainer = "The gVisor Authors <gvisor-dev@googlegroups.com>",
package = "runsc",
postinst = "debian/postinst.sh",
version_file = ":version.txt",
visibility = [
"//visibility:public",
],
)
sh_test(
name = "version_test",
size = "small",

View File

@ -10,6 +10,6 @@ pkg_tar(
mode = "0644",
package_dir = "/etc/containerd",
visibility = [
"//runsc:__pkg__",
"//visibility:public",
],
)