1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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",
],
)
|