blob: aea398683ae6f2f2bfbd043b320631ec5ed4e005 [file] [log] [blame]
# Copyright 2017 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""package_names.bzl contains definitions of functions that return lists of package names.
This includes all package names for a given distro (i.e., def
<distro>_package_names) as well as private defs defining all packages for a
given tool (a tool requires several packages to be installed). This file also
contains a struct with the names of all tools. Lastly, this file defines a map
from tools to package names for each distro (i.e., def <distro>_tools()).
"""
tool_names = struct(
bazel="bazel",
binutils = "binutils",
curl="curl",
ed = "ed",
file = "file",
gcc="gcc",
git = "git",
java="java",
java_no_ca_certs = "java_no_ca_certs",
lib_cpp = "lib_cpp",
openssh_client = "openssh_client",
python3_dev = "python3_dev",
python3_numpy = "python3_numpy",
python3_pip = "python3_pip",
python_dev = "python_dev",
python_numpy = "python_numpy",
python_pip = "python_pip",
wget = "wget",
zip = "zip",
)
def jessie_tools():
return {
tool_names.binutils: _jessie_binutils_package_names(),
tool_names.curl: _jessie_curl_package_names(),
tool_names.ed: _jessie_ed_package_names(),
tool_names.file: _jessie_file_package_names(),
tool_names.gcc: _jessie_gcc_package_names(),
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.lib_cpp: _jessie_lib_cpp_package_names(),
tool_names.openssh_client: _jessie_openssh_client_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(),
tool_names.python3_dev: _jessie_python3_dev_package_names(),
tool_names.python3_numpy: _jessie_python3_numpy_package_names(),
tool_names.python3_pip: _jessie_python3_pip_package_names(),
tool_names.wget: _jessie_wget_package_names(),
tool_names.zip: _zip_package_names(),
}
def trusty_tools():
return {
tool_names.curl: _trusty_curl_package_names(),
tool_names.gcc: _trusty_gcc_package_names(),
tool_names.git: _trusty_git_package_names(),
tool_names.java: _trusty_java_package_names(),
tool_names.python_dev: _trusty_python_dev_package_names(),
tool_names.wget: _trusty_wget_package_names(),
tool_names.zip: _zip_package_names(),
}
def xenial_tools():
return {
tool_names.curl: _xenial_curl_package_names(),
tool_names.gcc: _xenial_gcc_package_names(),
tool_names.git: _xenial_git_package_names(),
tool_names.java: _xenial_java_package_names(),
tool_names.python_dev: _xenial_python_dev_package_names(),
tool_names.wget: _xenial_wget_package_names(),
tool_names.zip: _zip_package_names(),
}
def jessie_package_names():
return _package_names(jessie_tools)
def trusty_package_names():
return _package_names(trusty_tools)
def xenial_package_names():
return _package_names(xenial_tools)
def _package_names(tools):
packages = []
for tool in tools().values():
packages.extend(tool)
return depset(packages).to_list()
def _jessie_binutils_package_names():
return [
"binutils",
]
def _jessie_curl_package_names():
return [
"curl",
"libcurl3",
"libffi6",
"libgmp10",
"libgnutls-deb0-28",
"libgssapi-krb5-2",
"libhogweed2",
"libidn11",
"libk5crypto3",
"libkeyutils1",
"libkrb5-3",
"libkrb5support0",
"libldap-2.4-2",
"libnettle4",
"libp11-kit0",
"librtmp1",
"libsasl2-2",
"libsasl2-modules-db",
"libssh2-1",
"libtasn1-6",
]
def _jessie_gcc_package_names():
return [
"binutils",
"cpp",
"cpp-4.9",
"g++",
"g++-4.9",
"gcc",
"gcc-4.9",
"libasan1",
"libatomic1",
"libc-dev-bin",
"libc6-dev",
"libcilkrts5",
"libcloog-isl4",
"libgcc-4.9-dev",
"libgmp10",
"libgomp1",
"libisl10",
"libitm1",
"liblsan0",
"libmpc3",
"libmpfr4",
"libquadmath0",
"libstdc++-4.9-dev",
"libtsan0",
"libubsan0",
"linux-libc-dev",
]
def _jessie_ed_package_names():
return [
"ed",
]
def _jessie_file_package_names():
return [
"file",
"libmagic1",
]
def _jessie_git_package_names():
return [
"git",
"git-man",
"libcurl3-gnutls",
"liberror-perl",
"libexpat1",
"libffi6",
"libgdbm3",
"libgmp10",
"libgnutls-deb0-28",
"libgssapi-krb5-2",
"libhogweed2",
"libidn11",
"libk5crypto3",
"libkeyutils1",
"libkrb5-3",
"libkrb5support0",
"libldap-2.4-2",
"libnettle4",
"libp11-kit0",
"librtmp1",
"libsasl2-2",
"libsasl2-modules-db",
"libssh2-1",
"libtasn1-6",
"perl",
"perl-modules",
# Though not strictly required, we get a 'Problem with the SSL CA cert'
# errror w/o these packages
"ca-certificates",
"libssl1.0.0",
"openssl",
]
def _jessie_java_no_ca_certs_package_names():
return [
"fontconfig-config",
"fonts-dejavu-core",
"java-common",
"libavahi-client3",
"libavahi-common-data",
"libavahi-common3",
"libcups2",
"libdbus-1-3",
"libexpat1",
"libffi6",
"libfontconfig1",
"libfreetype6",
"libgmp10",
"libgnutls-deb0-28",
"libgssapi-krb5-2",
"libhogweed2",
"libjpeg62-turbo",
"libk5crypto3",
"libkeyutils1",
"libkrb5-3",
"libkrb5support0",
"liblcms2-2",
"libnettle4",
"libnspr4",
"libnss3",
"libp11-kit0",
"libpcsclite1",
"libpng12-0",
"libsqlite3-0",
"libtasn1-6",
"libx11-6",
"libx11-data",
"libxau6",
"libxcb1",
"libxdmcp6",
"libxext6",
"libxi6",
"libxrender1",
"libxtst6",
"openjdk-8-jdk-headless",
"openjdk-8-jre-headless",
"ucf",
"x11-common",
"zlib1g",
]
def _jessie_java_package_names():
return _jessie_java_no_ca_certs_package_names() + ["ca-certificates-java"]
def _jessie_lib_cpp_package_names():
return [
"libasan1",
"libatomic1",
"libc-dev-bin",
"libc6-dev",
"libcilkrts5",
"libgcc-4.9-dev",
"libgomp1",
"libitm1",
"liblsan0",
"libquadmath0",
"libstdc++-4.9-dev",
"libtsan0",
"libubsan0",
"linux-libc-dev",
]
def _jessie_openssh_client_package_names():
return [
"libbsd0",
"libedit2",
"libgssapi-krb5-2",
"libk5crypto3",
"libkeyutils1",
"libkrb5-3",
"libkrb5support0",
"openssh-client",
]
def _jessie_python3_dev_package_names():
return [
"dh-python",
"libc-dev-bin",
"libc6-dev",
"libexpat1",
"libexpat1-dev",
"libffi6",
"libmpdec2",
"libpython3-dev",
"libpython3-stdlib",
"libpython3.4",
"libpython3.4-dev",
"libpython3.4-minimal",
"libpython3.4-stdlib",
"libsqlite3-0",
"linux-libc-dev",
"mime-support",
"python3",
"python3-dev",
"python3-minimal",
"python3.4",
"python3.4-dev",
"python3.4-minimal",
]
def _jessie_python3_numpy_package_names():
return [
"dh-python",
"libblas-common",
"libblas3",
"libexpat1",
"libffi6",
"libgfortran3",
"liblapack3",
"libmpdec2",
"libpython3-stdlib",
"libpython3.4-minimal",
"libpython3.4-stdlib",
"libquadmath0",
"libsqlite3-0",
"mime-support",
"python3",
"python3-minimal",
"python3-numpy",
"python3.4",
"python3.4-minimal",
]
def _jessie_python3_pip_package_names():
return [
"dh-python",
"libexpat1",
"libffi6",
"libmpdec2",
"libpython3-stdlib",
"libpython3.4-minimal",
"libpython3.4-stdlib",
"libsqlite3-0",
"mime-support",
"python3",
"python3-chardet",
"python3-colorama",
"python3-distlib",
"python3-html5lib",
"python3-minimal",
"python3-pip",
"python3-pkg-resources",
"python3-requests",
"python3-setuptools",
"python3-six",
"python3-urllib3",
"python3.4",
"python3.4-minimal",
]
def _jessie_python_dev_package_names():
return [
"libc-dev-bin",
"libc6-dev",
"libexpat1",
"libexpat1-dev",
"libffi6",
"libpython-dev",
"libpython-stdlib",
"libpython2.7",
"libpython2.7-dev",
"libpython2.7-minimal",
"libpython2.7-stdlib",
"libsqlite3-0",
"linux-libc-dev",
"mime-support",
"python",
"python-dev",
"python-minimal",
"python2.7",
"python2.7-dev",
"python2.7-minimal",
]
def _jessie_python_pip_package_names():
return [
"libexpat1",
"libffi6",
"libpython-stdlib",
"libpython2.7-minimal",
"libpython2.7-stdlib",
"libsqlite3-0",
"mime-support",
"python",
"python-chardet",
"python-colorama",
"python-distlib",
"python-html5lib",
"python-minimal",
"python-pip",
"python-pkg-resources",
"python-requests",
"python-setuptools",
"python-six",
"python-urllib3",
"python2.7",
"python2.7-minimal",
]
def _jessie_python_numpy_package_names():
return [
"libblas-common",
"libblas3",
"libexpat1",
"libffi6",
"libgfortran3",
"liblapack3",
"libpython-stdlib",
"libpython2.7-minimal",
"libpython2.7-stdlib",
"libquadmath0",
"libsqlite3-0",
"mime-support",
"python",
"python-minimal",
"python-numpy",
"python2.7",
"python2.7-minimal",
]
def _jessie_wget_package_names():
return [
"libffi6",
"libgmp10",
"libgnutls-deb0-28",
"libhogweed2",
"libicu52",
"libidn11",
"libnettle4",
"libp11-kit0",
"libpsl0",
"libtasn1-6",
"wget",
# Needed for cert validation done by wget
"ca-certificates",
"libssl1.0.0",
"openssl",
]
def _trusty_curl_package_names():
return [
"curl",
"libasn1-8-heimdal",
"libcurl3",
"libgssapi-krb5-2",
"libgssapi3-heimdal",
"libhcrypto4-heimdal",
"libheimbase1-heimdal",
"libheimntlm0-heimdal",
"libhx509-5-heimdal",
"libidn11",
"libk5crypto3",
"libkeyutils1",
"libkrb5-26-heimdal",
"libkrb5-3",
"libkrb5support0",
"libldap-2.4-2",
"libroken18-heimdal",
"librtmp0",
"libsasl2-2",
"libsasl2-modules-db",
"libwind0-heimdal",
]
def _trusty_gcc_package_names():
return [
"binutils",
"cpp",
"cpp-4.8",
"g++",
"g++-4.8",
"gcc",
"gcc-4.8",
"libasan0",
"libatomic1",
"libc-dev-bin",
"libc6-dev",
"libcloog-isl4",
"libgcc-4.8-dev",
"libgmp10",
"libgomp1",
"libisl10",
"libitm1",
"libmpc3",
"libmpfr4",
"libquadmath0",
"libstdc++-4.8-dev",
"libtsan0",
"linux-libc-dev",
]
def _trusty_git_package_names():
return [
"git",
"git-man",
"libasn1-8-heimdal",
"libcurl3-gnutls",
"liberror-perl",
"libgssapi-krb5-2",
"libgssapi3-heimdal",
"libhcrypto4-heimdal",
"libheimbase1-heimdal",
"libheimntlm0-heimdal",
"libhx509-5-heimdal",
"libidn11",
"libk5crypto3",
"libkeyutils1",
"libkrb5-26-heimdal",
"libkrb5-3",
"libkrb5support0",
"libldap-2.4-2",
"libroken18-heimdal",
"librtmp0",
"libsasl2-2",
"libsasl2-modules-db",
"libwind0-heimdal",
# Though not strictly required, we get a 'Problem with the SSL CA cert'
# errror w/o these packages
"ca-certificates",
"openssl",
]
def _trusty_java_package_names():
return [
"ca-certificates-java",
"fontconfig",
"fontconfig-config",
"fonts-dejavu-core",
"java-common",
"libasound2",
"libasound2-data",
"libasyncns0",
"libatk-wrapper-java",
"libatk-wrapper-java-jni",
"libatk1.0-0",
"libatk1.0-data",
"libavahi-client3",
"libavahi-common-data",
"libavahi-common3",
"libcairo2",
"libcups2",
"libdatrie1",
"libflac8",
"libfontconfig1",
"libfreetype6",
"libgdk-pixbuf2.0-0",
"libgdk-pixbuf2.0-common",
"libgif4",
"libgl1-mesa-glx",
"libglapi-mesa",
"libgraphite2-3",
"libgtk2.0-0",
"libgtk2.0-common",
"libharfbuzz0b",
"libjasper1",
"libjbig0",
"libjpeg-turbo8",
"libjpeg8",
"liblcms2-2",
"libnspr4",
"libnss3",
"libnss3-nssdb",
"libogg0",
"libpango-1.0-0",
"libpangocairo-1.0-0",
"libpangoft2-1.0-0",
"libpcsclite1",
"libpixman-1-0",
"libpulse0",
"libsctp1",
"libsndfile1",
"libthai-data",
"libthai0",
"libtiff5",
"libvorbis0a",
"libvorbisenc2",
"libwrap0",
"libx11-6",
"libx11-data",
"libx11-xcb1",
"libxau6",
"libxcb-dri2-0",
"libxcb-dri3-0",
"libxcb-glx0",
"libxcb-present0",
"libxcb-render0",
"libxcb-shm0",
"libxcb-sync1",
"libxcb1",
"libxcomposite1",
"libxcursor1",
"libxdamage1",
"libxdmcp6",
"libxext6",
"libxfixes3",
"libxi6",
"libxinerama1",
"libxrandr2",
"libxrender1",
"libxshmfence1",
"libxtst6",
"libxxf86vm1",
"openjdk-8-jdk",
"openjdk-8-jdk-headless",
"openjdk-8-jre",
"openjdk-8-jre-headless",
"tzdata-java",
"x11-common",
]
def _trusty_python_dev_package_names():
return [
"libc-dev-bin",
"libc6-dev",
"libexpat1-dev",
"libpython-dev",
"libpython-stdlib",
"libpython2.7",
"libpython2.7-dev",
"libpython2.7-minimal",
"libpython2.7-stdlib",
"linux-libc-dev",
"python",
"python-dev",
"python-minimal",
"python2.7",
"python2.7-dev",
"python2.7-minimal",
]
def _trusty_wget_package_names():
return [
"wget",
"libidn11",
"zlib1g",
# Needed for cert validation done by wget
"ca-certificates",
"openssl",
]
def _xenial_curl_package_names():
return [
"curl",
"libasn1-8-heimdal",
"libcurl3-gnutls",
"libffi6",
"libgmp10",
"libgnutls30",
"libgssapi-krb5-2",
"libgssapi3-heimdal",
"libhcrypto4-heimdal",
"libheimbase1-heimdal",
"libheimntlm0-heimdal",
"libhogweed4",
"libhx509-5-heimdal",
"libidn11",
"libk5crypto3",
"libkeyutils1",
"libkrb5-26-heimdal",
"libkrb5-3",
"libkrb5support0",
"libldap-2.4-2",
"libnettle6",
"libp11-kit0",
"libroken18-heimdal",
"librtmp1",
"libsasl2-2",
"libsasl2-modules-db",
"libsqlite3-0",
"libtasn1-6",
"libwind0-heimdal",
]
def _xenial_gcc_package_names():
return [
"binutils",
"cpp",
"cpp-5",
"g++",
"g++-5",
"gcc",
"gcc-5",
"libasan2",
"libatomic1",
"libc-dev-bin",
"libc6-dev",
"libcc1-0",
"libcilkrts5",
"libgcc-5-dev",
"libgmp10",
"libgomp1",
"libisl15",
"libitm1",
"liblsan0",
"libmpc3",
"libmpfr4",
"libmpx0",
"libquadmath0",
"libstdc++-5-dev",
"libtsan0",
"libubsan0",
"linux-libc-dev",
]
def _xenial_git_package_names():
return [
"git",
"git-man",
"libasn1-8-heimdal",
"libcurl3-gnutls",
"liberror-perl",
"libexpat1",
"libffi6",
"libgdbm3",
"libgmp10",
"libgnutls30",
"libgssapi-krb5-2",
"libgssapi3-heimdal",
"libhcrypto4-heimdal",
"libheimbase1-heimdal",
"libheimntlm0-heimdal",
"libhogweed4",
"libhx509-5-heimdal",
"libidn11",
"libk5crypto3",
"libkeyutils1",
"libkrb5-26-heimdal",
"libkrb5-3",
"libkrb5support0",
"libldap-2.4-2",
"libnettle6",
"libp11-kit0",
"libperl5.22",
"libroken18-heimdal",
"librtmp1",
"libsasl2-2",
"libsasl2-modules-db",
"libsqlite3-0",
"libtasn1-6",
"libwind0-heimdal",
"perl",
"perl-modules-5.22",
# Though not strictly required, we get a 'Problem with the SSL CA cert'
# errror w/o these packages
"ca-certificates",
"libssl1.0.0",
"openssl",
]
def _xenial_java_package_names():
return [
"ca-certificates",
"ca-certificates-java",
"fontconfig",
"fontconfig-config",
"fonts-dejavu-core",
"java-common",
"libasound2",
"libasound2-data",
"libasyncns0",
"libatk1.0-0",
"libatk1.0-data",
"libavahi-client3",
"libavahi-common-data",
"libavahi-common3",
"libbsd0",
"libcairo2",
"libcups2",
"libdatrie1",
"libdbus-1-3",
"libdrm-amdgpu1",
"libdrm-intel1",
"libdrm-nouveau2",
"libdrm-radeon1",
"libdrm2",
"libedit2",
"libelf1",
"libexpat1",
"libffi6",
"libflac8",
"libfontconfig1",
"libfreetype6",
"libgdk-pixbuf2.0-0",
"libgdk-pixbuf2.0-common",
"libgif7",
"libgl1-mesa-dri",
"libgl1-mesa-glx",
"libglapi-mesa",
"libglib2.0-0",
"libgmp10",
"libgnutls30",
"libgraphite2-3",
"libgssapi-krb5-2",
"libgtk2.0-0",
"libgtk2.0-common",
"libharfbuzz0b",
"libhogweed4",
"libicu55",
"libidn11",
"libjbig0",
"libjpeg-turbo8",
"libjpeg8",
"libjson-c2",
"libk5crypto3",
"libkeyutils1",
"libkrb5-3",
"libkrb5support0",
"liblcms2-2",
"libllvm3.8",
"libnettle6",
"libnspr4",
"libnss3",
"libnss3-nssdb",
"libogg0",
"libp11-kit0",
"libpango-1.0-0",
"libpangocairo-1.0-0",
"libpangoft2-1.0-0",
"libpciaccess0",
"libpcsclite1",
"libpixman-1-0",
"libpng12-0",
"libpulse0",
"libsensors4",
"libsndfile1",
"libsqlite3-0",
"libssl1.0.0",
"libtasn1-6",
"libthai-data",
"libthai0",
"libtiff5",
"libvorbis0a",
"libvorbisenc2",
"libwrap0",
"libx11-6",
"libx11-data",
"libx11-xcb1",
"libxau6",
"libxcb-dri2-0",
"libxcb-dri3-0",
"libxcb-glx0",
"libxcb-present0",
"libxcb-render0",
"libxcb-shm0",
"libxcb-sync1",
"libxcb1",
"libxcomposite1",
"libxcursor1",
"libxdamage1",
"libxdmcp6",
"libxext6",
"libxfixes3",
"libxi6",
"libxinerama1",
"libxml2",
"libxrandr2",
"libxrender1",
"libxshmfence1",
"libxtst6",
"libxxf86vm1",
"openjdk-8-jdk",
"openjdk-8-jdk-headless",
"openjdk-8-jre",
"openjdk-8-jre-headless",
"openssl",
"shared-mime-info",
"ucf",
"x11-common",
]
def _xenial_python_dev_package_names():
return [
"libc-dev-bin",
"libc6-dev",
"libexpat1",
"libexpat1-dev",
"libffi6",
"libpython-dev",
"libpython-stdlib",
"libpython2.7",
"libpython2.7-dev",
"libpython2.7-minimal",
"libpython2.7-stdlib",
"libsqlite3-0",
"libssl1.0.0",
"linux-libc-dev",
"mime-support",
"python",
"python-dev",
"python-minimal",
"python2.7",
"python2.7-dev",
"python2.7-minimal",
]
def _xenial_wget_package_names():
return [
"libidn11",
"libssl1.0.0",
"wget",
# Needed for cert validation done by wget
"ca-certificates",
"libssl1.0.0",
"openssl",
]
def _zip_package_names():
return [
"zip",
"unzip",
]