add less/netcat/patch to containers and the tests (#70)

diff --git a/container/experimental/rbe-debian8/BUILD b/container/experimental/rbe-debian8/BUILD
index d82fb70..959c024 100644
--- a/container/experimental/rbe-debian8/BUILD
+++ b/container/experimental/rbe-debian8/BUILD
@@ -46,9 +46,9 @@
     layers = [
         ":base-ltl",
         ":clang-ltl",
-        ":go-ltl",
         ":java-ltl",
         ":python-ltl",
+        ":go-ltl",
     ],
     tags = ["manual"],
 )
@@ -107,6 +107,7 @@
     },
     symlinks = {
         "/usr/bin/python": "/usr/bin/python2.7",
+        "/usr/bin/python3": "/opt/python3.6/bin/python3.6",
         "/opt/python3.6/bin/python3": "/opt/python3.6/bin/python3.6",
         "/opt/python3.6/bin/pip3": "/opt/python3.6/bin/pip3.6",
         "/opt/python3.6/bin/easy_install3": "/opt/python3.6/bin/easy_install-3.6",
diff --git a/container/experimental/rbe-debian9/BUILD b/container/experimental/rbe-debian9/BUILD
index 39e708c..e2593cd 100644
--- a/container/experimental/rbe-debian9/BUILD
+++ b/container/experimental/rbe-debian9/BUILD
@@ -62,7 +62,10 @@
         "ed",
         "file",
         "git",
+        "less",
+        "netcat",
         "openssh-client",
+        "patch",
         "unzip",
         "wget",
         "zip",
diff --git a/container/rbe-debian8/BUILD b/container/rbe-debian8/BUILD
index a922521..f405c94 100644
--- a/container/rbe-debian8/BUILD
+++ b/container/rbe-debian8/BUILD
@@ -62,7 +62,10 @@
         "ed",
         "file",
         "git",
+        "less",
+        "netcat",
         "openssh-client",
+        "patch",
         "unzip",
         "wget",
         "zip",
diff --git a/container/rbe-ubuntu16_04/BUILD b/container/rbe-ubuntu16_04/BUILD
index f19d787..d16b0af 100644
--- a/container/rbe-ubuntu16_04/BUILD
+++ b/container/rbe-ubuntu16_04/BUILD
@@ -62,7 +62,10 @@
         "ed",
         "file",
         "git",
+        "less",
+        "netcat",
         "openssh-client",
+        "patch",
         "unzip",
         "wget",
         "zip",
diff --git a/container/test/rbe-debian8.yaml b/container/test/rbe-debian8.yaml
index d4425e7..a957962 100644
--- a/container/test/rbe-debian8.yaml
+++ b/container/test/rbe-debian8.yaml
@@ -54,9 +54,18 @@
 - name: 'check-git'
   command: ['bash', '-c', 'git --version']
   expectedOutput: ['git version .*']
+- name: 'check-less'
+  command: ['bash', '-c', 'less --version']
+  expectedOutput: ['less .*']
+- name: 'check-netcat'
+  command: ['bash', '-c', 'nc -h 2>&1']
+  expectedOutput: ['\[v.*']
 - name: 'check-openssl'
   command: ['bash', '-c', 'openssl version']
   expectedOutput: ['OpenSSL .*']
+- name: 'check-patch'
+  command: ['bash', '-c', 'patch --version']
+  expectedOutput: ['GNU patch .*']
 - name: 'check-wget'
   command: ['bash', '-c', 'wget --version']
   expectedOutput: ['GNU Wget.* built on linux-gnu.*']
diff --git a/container/test/rbe-debian9.yaml b/container/test/rbe-debian9.yaml
index 7e9aaf1..f040271 100644
--- a/container/test/rbe-debian9.yaml
+++ b/container/test/rbe-debian9.yaml
@@ -55,9 +55,18 @@
 - name: 'check-git'
   command: ['bash', '-c', 'git --version']
   expectedOutput: ['git version .*']
+- name: 'check-less'
+  command: ['bash', '-c', 'less --version']
+  expectedOutput: ['less .*']
+- name: 'check-netcat'
+  command: ['bash', '-c', 'nc -h 2>&1']
+  expectedOutput: ['\[v.*']
 - name: 'check-openssl'
   command: ['bash', '-c', 'openssl version']
   expectedOutput: ['OpenSSL .*']
+- name: 'check-patch'
+  command: ['bash', '-c', 'patch --version']
+  expectedOutput: ['GNU patch .*']
 - name: 'check-wget'
   command: ['bash', '-c', 'wget --version']
   expectedOutput: ['GNU Wget.* built on linux-gnu.*']
diff --git a/container/test/rbe-ubuntu16_04.yaml b/container/test/rbe-ubuntu16_04.yaml
index 0265c1f..da592e3 100644
--- a/container/test/rbe-ubuntu16_04.yaml
+++ b/container/test/rbe-ubuntu16_04.yaml
@@ -54,9 +54,18 @@
 - name: 'check-git'
   command: ['bash', '-c', 'git --version']
   expectedOutput: ['git version .*']
+- name: 'check-less'
+  command: ['bash', '-c', 'less --version']
+  expectedOutput: ['less .*']
+- name: 'check-netcat'
+  command: ['bash', '-c', 'nc -h 2>&1']
+  expectedOutput: ['\[v.*']
 - name: 'check-openssl'
   command: ['bash', '-c', 'openssl version']
   expectedOutput: ['OpenSSL .*']
+- name: 'check-patch'
+  command: ['bash', '-c', 'patch --version']
+  expectedOutput: ['GNU patch .*']
 - name: 'check-wget'
   command: ['bash', '-c', 'wget --version']
   expectedOutput: ['GNU Wget.* built on linux-gnu.*']
diff --git a/skylib/package_names.bzl b/skylib/package_names.bzl
index c21269e..fdcad5b 100644
--- a/skylib/package_names.bzl
+++ b/skylib/package_names.bzl
@@ -30,8 +30,11 @@
     git = "git",
     java = "java",
     java_no_ca_certs = "java_no_ca_certs",
+    less = "less",
     lib_cpp = "lib_cpp",
+    netcat = "netcat",
     openssh_client = "openssh_client",
+    patch = "patch",
     python3_dev = "python3_dev",
     python3_numpy = "python3_numpy",
     python3_pip = "python3_pip",
@@ -52,8 +55,11 @@
         tool_names.git: _jessie_git_package_names(),
         tool_names.java: _jessie_java_package_names(),
         tool_names.java_no_ca_certs: _jessie_java_no_ca_certs_package_names(),
+        tool_names.less: _jessie_less_package_names(),
         tool_names.lib_cpp: _jessie_lib_cpp_package_names(),
+        tool_names.netcat: _jessie_netcat_package_names(),
         tool_names.openssh_client: _jessie_openssh_client_package_names(),
+        tool_names.patch: _jessie_patch_package_names(),
         tool_names.python_dev: _jessie_python_dev_package_names(),
         tool_names.python_numpy: _jessie_python_numpy_package_names(),
         tool_names.python_pip: _jessie_python_pip_package_names(),
@@ -229,6 +235,14 @@
 def _jessie_java_package_names():
     return _jessie_java_no_ca_certs_package_names() + ["ca-certificates-java"]
 
+def _jessie_less_package_names():
+    return [
+        "less",
+        "libc6",
+        "libtinfo5",
+        "debianutils",
+    ]
+
 def _jessie_lib_cpp_package_names():
     return [
         "libasan1",
@@ -247,6 +261,12 @@
         "linux-libc-dev",
     ]
 
+def _jessie_netcat_package_names():
+    return [
+        "netcat",
+        "netcat-traditional",
+    ]
+
 def _jessie_openssh_client_package_names():
     return [
         "libbsd0",
@@ -259,6 +279,12 @@
         "openssh-client",
     ]
 
+def _jessie_patch_package_names():
+    return [
+        "libc6",
+        "patch",
+    ]
+
 def _jessie_python3_dev_package_names():
     return [
         "dh-python",
diff --git a/skylib/packages.bzl b/skylib/packages.bzl
index 4d9c572..fa4e353 100644
--- a/skylib/packages.bzl
+++ b/skylib/packages.bzl
@@ -43,7 +43,10 @@
         tool_names.ed,
         tool_names.file,
         tool_names.git,
+        tool_names.less,
+        tool_names.netcat,
         tool_names.openssh_client,
+        tool_names.patch,
         tool_names.wget,
         tool_names.zip,
     ]