Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build powerpc (ppc64le) distroless base and static images #622

Merged
merged 2 commits into from
Oct 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,13 @@ http_file(
urls = ["https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-s390x"],
)

http_file(
name = "busybox_ppc64le",
executable = True,
sha256 = "7f896a2560ef3e2d11438018fef2fbdf8c2a6a2e4b84b1bcbaacc669967532d4",
urls = ["https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-powerpc64"],
)

# Docker rules.
http_archive(
name = "io_bazel_rules_docker",
Expand Down
10 changes: 10 additions & 0 deletions base/distro.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ load("@package_bundle_arm64_debian9//file:packages.bzl", packages_arm64_debian9
load("@package_bundle_arm64_debian10//file:packages.bzl", packages_arm64_debian10 = "packages")
load("@package_bundle_s390x_debian9//file:packages.bzl", packages_s390x_debian9 = "packages")
load("@package_bundle_s390x_debian10//file:packages.bzl", packages_s390x_debian10 = "packages")
load("@package_bundle_ppc64le_debian9//file:packages.bzl", packages_ppc64le_debian9 = "packages")
load("@package_bundle_ppc64le_debian10//file:packages.bzl", packages_ppc64le_debian10 = "packages")

DISTRO_SUFFIXES = ("_debian9", "_debian10")

Expand All @@ -20,6 +22,10 @@ DISTRO_PACKAGES = {
"_debian9": packages_s390x_debian9,
"_debian10": packages_s390x_debian10,
},
"ppc64le": {
"_debian9": packages_ppc64le_debian9,
"_debian10": packages_ppc64le_debian10,
},
}

DISTRO_REPOSITORY = {
Expand All @@ -35,4 +41,8 @@ DISTRO_REPOSITORY = {
"_debian9": "@s390x_debian9",
"_debian10": "@s390x_debian10",
},
"ppc64le": {
"_debian9": "@ppc64le_debian9",
"_debian10": "@ppc64le_debian10",
},
}
34 changes: 23 additions & 11 deletions checksums.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -3,54 +3,66 @@
# TO GENERATE THIS RUN: ./updateWorkspaceSnapshots.sh

BASE_ARCHITECTURES = ["amd64", "arm64"]
ARCHITECTURES = BASE_ARCHITECTURES + ["s390x"]
ARCHITECTURES = BASE_ARCHITECTURES + ["s390x", "ppc64le"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why can't this be in BASE_ARCHITECTURES?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chanseokoh i was just following the pattern set by the s390x :) we can revisit this in a subsequent PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that like s390x this is a starting point to get base & static in place?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the only reason that we distinguish BASE_ARCHITECTURES and ARCHITECTURES is to include or exclude libunwind8 because Debian doesn't have the library package on s390x.

So, the consequence of this would be that, Distroless won't be able to build ppc64le dotnet images (dotnet requires libunwind8, as it seems).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not that this is a major issue. We just need to be clear on why we have both BASE_ARCHITECTURES and ARCHITECTURES for what reason.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, but s390x doesn't publish python, node, or other images yet, so practically I think the "base" signifies what we publish //base for, but this may be back-filling the naming a bit 😅

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, but I do think ppc64le (basically any arch that doesn't need special handling such as x390x) should be in BASE_ARCHITECTURES. I can tolerate a brief transition state if this is to be fixed in a subsequent PR.


VERSIONS = [
("debian9", "stretch"),
("debian10", "buster"),
]

DEBIAN_SNAPSHOT = "20201013T085123Z"
DEBIAN_SNAPSHOT = "20201020T085102Z"

DEBIAN_SECURITY_SNAPSHOT = "20201011T134029Z"
DEBIAN_SECURITY_SNAPSHOT = "20201019T222439Z"

SHA256s = {
"amd64": {
"debian9": {
"main": "90ff32c8226b57b879bf6b8c3cfda15e24f2b8c22de28426872f162db4e8d444",
"backports": "d974ef641167c420730833c1ffc7256f44eed36af787f5efdbbbc0d4c5b47a2e",
"backports": "113f1ea6c7c7b218d17ee39a194f3179a563071ac7a9f6403e7fa364ea45b21b",
"updates": "b702e0888f32074ee212accbf56c732beacf0d9f570ca082a9c859b23a2596e9",
"security": "f1c1986b3737835bb218a295572db155062e20ebeebd6bbf46b2d74e2b8bcea8",
"security": "fe3720467cde121c2403ede7541485470ab726d47a5b04cedcdb97c19822d91c",
},
"debian10": {
"main": "369d45f6c138af98d8ea8a598564dcabc1f6991ac777fb2d351e846f195cdc13",
"updates": "80f0b86ca11476ea485625c3dff1505285f249f5603dd9458415707dacc5fb71",
"security": "b9b739373933c5b244cd6b5b55a9ffd64b6b267f690013e5cea81acb9ead8524",
"security": "9866f20bc7880ff53078655626a9f0992fbf3d05bbdbbcce9754c3ae56ddeeec",
},
},
"arm64": {
"debian9": {
"main": "881d279ca3536ce84dbe9073a150ec2dfba898cb4c5010cbd50d07ba54942b3e",
"backports": "b88b2b870ea716776c817a887be8f1b3fcb33e33f017f01798d0328d75787d2a",
"backports": "1c66410ff2c43f415507686199ba51405ee08b25ff59817b63454142f28c2879",
"updates": "df9eadde7ef2ea7c7d3c07417e4924aece7bf3ccad8575e13ae68c71dcaa1d40",
"security": "61f5517bae9ec4af0eee105c785acb4413bec1058dcbb3402c4af0b440eed7d2",
"security": "c4fd729b69fdf7380a4ff32706ace07a46f4f1a63d7d1e8629191325b8f43566",
},
"debian10": {
"main": "62a7e0c34f45a2524024ef4871e48f061f8d57d54e6f9d75d2aa2bff55ca91b8",
"updates": "dbaa8fd29f1fdd677468b6ec1dd6a0f68bcc037ae4a43f3550ef3435d3e651fd",
"security": "ca58beb4004a640021b75e7cda710ff88ae0e7091d7f14d53521b75c01bc116a",
"security": "30b78a7b70ad26e56d832de134ac0a64186c7e04f8209f248388be4e20a4f7bd",
},
},
"s390x": {
"debian9": {
"main": "f40e0f3d2c203557de8670874703b7462b40c7db3d9ef7ea45bee166c0327abb",
"backports": "e0509c6ecf3b015dc2e42a01b4f94bdd1e788e1246d5ec11c319678f24dd2777",
"backports": "2271a88ad912531e9beab00b54034d57df1fb51345e55336d8ad7ce11a24dfb1",
"updates": "dad6720cfbc75a335005e7c471722a2f67bfc7da9f75e653a74e73b3a7acc89f",
},
"debian10": {
"main": "ad07beb5da6151e8289f1f32b0eb43da061c28bbbb1a625c58974cfe5543cd1b",
"updates": "3be4fd77f75edd1b0d734530560f77c9fd0cbf2d721759b000f239bbf5ddd8b0",
"security": "e5b35f05ac5b446e8beaaf828e88a4708e8fabc03d86a0236a0ad5fc1d32efed",
"security": "47a3fe35d21f0f5135b03bc7f6ef53ff9bb27be1ee00e38e024cd963bec320af",
},
},
"ppc64le": {
"debian9": {
"main": "34aef3b450ec40c36b23aa61e8b1d68ed40ee4b496d597364db10a9eadad590e",
"backports": "b983f7ad16859e172b8481972c7de3fe3eb7ec23fbc01ee580c840e32b61aea0",
"updates": "2ef877054f0dd43151aed073c66214f217c25cc4a31efa7004a5aafb2442e809",
},
"debian10": {
"main": "6a60359ca6e3421c2b1ea1a9003f2127cb9e4c8e702a87c0c1074ea212cf171e",
"updates": "ebb59cadbf9ea75cdb90a3026bfcfaadc441602bd2f85e75ea393fa5e713dafe",
"security": "f114505bb208f38c9bb64d0485ebe67d1283e50f748ea23e08d05df9cad1709a",
},
},
}
12 changes: 12 additions & 0 deletions cloudbuild_bazel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ bazel run --host_force_python=PY2 //base:static_root_arm64_debian9
bazel run --host_force_python=PY2 //base:static_root_arm64_debian10
bazel run --host_force_python=PY2 //base:static_nonroot_arm64_debian9
bazel run --host_force_python=PY2 //base:static_nonroot_arm64_debian10
bazel run --host_force_python=PY2 //base:static_root_ppc64le_debian9
bazel run --host_force_python=PY2 //base:static_root_ppc64le_debian10
bazel run --host_force_python=PY2 //base:static_nonroot_ppc64le_debian9
bazel run --host_force_python=PY2 //base:static_nonroot_ppc64le_debian10
bazel run --host_force_python=PY2 //base:static_root_s390x_debian9
bazel run --host_force_python=PY2 //base:static_root_s390x_debian10
bazel run --host_force_python=PY2 //base:static_nonroot_s390x_debian9
Expand Down Expand Up @@ -42,6 +46,14 @@ bazel run --host_force_python=PY2 //base:debug_root_s390x_debian9
bazel run --host_force_python=PY2 //base:debug_root_s390x_debian10
bazel run --host_force_python=PY2 //base:debug_nonroot_s390x_debian9
bazel run --host_force_python=PY2 //base:debug_nonroot_s390x_debian10
bazel run --host_force_python=PY2 //base:base_root_ppc64le_debian9
bazel run --host_force_python=PY2 //base:base_root_ppc64le_debian10
bazel run --host_force_python=PY2 //base:base_nonroot_ppc64le_debian9
bazel run --host_force_python=PY2 //base:base_nonroot_ppc64le_debian10
bazel run --host_force_python=PY2 //base:debug_root_ppc64le_debian9
bazel run --host_force_python=PY2 //base:debug_root_ppc64le_debian10
bazel run --host_force_python=PY2 //base:debug_nonroot_ppc64le_debian9
bazel run --host_force_python=PY2 //base:debug_nonroot_ppc64le_debian10

bazel run --host_force_python=PY2 //cc:cc_root_amd64_debian9
bazel run --host_force_python=PY2 //cc:cc_root_amd64_debian10
Expand Down
31 changes: 25 additions & 6 deletions cloudbuild_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ docker tag bazel/base:base_nonroot_s390x_debian9 gcr.io/$PROJECT_ID/base:non
docker tag bazel/base:debug_root_s390x_debian9 gcr.io/$PROJECT_ID/base:debug-s390x
docker tag bazel/base:debug_nonroot_s390x_debian9 gcr.io/$PROJECT_ID/base:debug-nonroot-s390x

docker tag bazel/base:static_root_ppc64le_debian9 gcr.io/$PROJECT_ID/static:latest-ppc64le
docker tag bazel/base:static_nonroot_ppc64le_debian9 gcr.io/$PROJECT_ID/static:nonroot-ppc64le
docker tag bazel/base:base_root_ppc64le_debian9 gcr.io/$PROJECT_ID/base:latest-ppc64le
docker tag bazel/base:base_nonroot_ppc64le_debian9 gcr.io/$PROJECT_ID/base:nonroot-ppc64le
docker tag bazel/base:debug_root_ppc64le_debian9 gcr.io/$PROJECT_ID/base:debug-ppc64le
docker tag bazel/base:debug_nonroot_ppc64le_debian9 gcr.io/$PROJECT_ID/base:debug-nonroot-ppc64le

docker tag bazel/experimental/python3:python3_amd64_debian9 gcr.io/$PROJECT_ID/python3:latest-amd64
docker tag bazel/experimental/python3:python3_amd64_debian9 gcr.io/$PROJECT_ID/python3-debian9:latest
docker tag bazel/experimental/python3:python3_amd64_debian10 gcr.io/$PROJECT_ID/python3-debian10:latest
Expand Down Expand Up @@ -201,6 +208,8 @@ docker push gcr.io/$PROJECT_ID/static:latest-arm64
docker push gcr.io/$PROJECT_ID/static:nonroot-arm64
docker push gcr.io/$PROJECT_ID/static:latest-s390x
docker push gcr.io/$PROJECT_ID/static:nonroot-s390x
docker push gcr.io/$PROJECT_ID/static:latest-ppc64le
docker push gcr.io/$PROJECT_ID/static:nonroot-ppc64le
docker push gcr.io/$PROJECT_ID/static-debian9:${COMMIT_SHA}
docker push gcr.io/$PROJECT_ID/static-debian9:latest
docker push gcr.io/$PROJECT_ID/static-debian9:nonroot
Expand All @@ -220,6 +229,10 @@ docker push gcr.io/$PROJECT_ID/base:latest-s390x
docker push gcr.io/$PROJECT_ID/base:nonroot-s390x
docker push gcr.io/$PROJECT_ID/base:debug-s390x
docker push gcr.io/$PROJECT_ID/base:debug-nonroot-s390x
docker push gcr.io/$PROJECT_ID/base:latest-ppc64le
docker push gcr.io/$PROJECT_ID/base:nonroot-ppc64le
docker push gcr.io/$PROJECT_ID/base:debug-ppc64le
docker push gcr.io/$PROJECT_ID/base:debug-nonroot-ppc64le
docker push gcr.io/$PROJECT_ID/base-debian9:${COMMIT_SHA}
docker push gcr.io/$PROJECT_ID/base-debian9:latest
docker push gcr.io/$PROJECT_ID/base-debian9:nonroot
Expand Down Expand Up @@ -380,37 +393,43 @@ sed -i 's/^{/{"experimental": "enabled",/g' ~/.docker/config.json
docker manifest create gcr.io/$PROJECT_ID/static:nonroot \
gcr.io/$PROJECT_ID/static:nonroot-amd64 \
gcr.io/$PROJECT_ID/static:nonroot-arm64 \
gcr.io/$PROJECT_ID/static:nonroot-s390x
gcr.io/$PROJECT_ID/static:nonroot-s390x \
gcr.io/$PROJECT_ID/static:nonroot-ppc64le
docker manifest push gcr.io/$PROJECT_ID/static:nonroot

docker manifest create gcr.io/$PROJECT_ID/static:latest \
gcr.io/$PROJECT_ID/static:latest-amd64 \
gcr.io/$PROJECT_ID/static:latest-arm64 \
gcr.io/$PROJECT_ID/static:latest-s390x
gcr.io/$PROJECT_ID/static:latest-s390x \
gcr.io/$PROJECT_ID/static:latest-ppc64le
docker manifest push gcr.io/$PROJECT_ID/static:latest

docker manifest create gcr.io/$PROJECT_ID/base:nonroot \
gcr.io/$PROJECT_ID/base:nonroot-amd64 \
gcr.io/$PROJECT_ID/base:nonroot-arm64 \
gcr.io/$PROJECT_ID/base:nonroot-s390x
gcr.io/$PROJECT_ID/base:nonroot-s390x \
gcr.io/$PROJECT_ID/base:nonroot-ppc64le
docker manifest push gcr.io/$PROJECT_ID/base:nonroot

docker manifest create gcr.io/$PROJECT_ID/base:latest \
gcr.io/$PROJECT_ID/base:latest-amd64 \
gcr.io/$PROJECT_ID/base:latest-arm64 \
gcr.io/$PROJECT_ID/base:latest-s390x
gcr.io/$PROJECT_ID/base:latest-s390x \
gcr.io/$PROJECT_ID/base:latest-ppc64le
docker manifest push gcr.io/$PROJECT_ID/base:latest

docker manifest create gcr.io/$PROJECT_ID/base:debug-nonroot \
gcr.io/$PROJECT_ID/base:debug-nonroot-amd64 \
gcr.io/$PROJECT_ID/base:debug-nonroot-arm64 \
gcr.io/$PROJECT_ID/base:debug-nonroot-s390x
gcr.io/$PROJECT_ID/base:debug-nonroot-s390x \
gcr.io/$PROJECT_ID/base:debug-nonroot-ppc64le
docker manifest push gcr.io/$PROJECT_ID/base:debug-nonroot

docker manifest create gcr.io/$PROJECT_ID/base:debug \
gcr.io/$PROJECT_ID/base:debug-amd64 \
gcr.io/$PROJECT_ID/base:debug-arm64 \
gcr.io/$PROJECT_ID/base:debug-s390x
gcr.io/$PROJECT_ID/base:debug-s390x \
gcr.io/$PROJECT_ID/base:debug-ppc64le
docker manifest push gcr.io/$PROJECT_ID/base:debug

docker manifest create gcr.io/$PROJECT_ID/cc:latest \
Expand Down
77 changes: 77 additions & 0 deletions package_bundle_ppc64le_debian10.versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"base-files": "10.3+deb10u6",
"ca-certificates": "20200601~deb10u1",
"curl": "7.64.0-4+deb10u1",
"dash": "0.5.10.2-5",
"fontconfig-config": "2.13.1-2",
"fonts-dejavu-core": "2.37-1",
"libacl1": "2.2.53-4",
"libattr1": "1:2.4.48-4",
"libbz2-1.0": "1.0.6-9.2~deb10u1",
"libc-bin": "2.28-10",
"libc6": "2.28-10",
"libcomerr2": "1.44.5-1+deb10u3",
"libcurl4": "7.64.0-4+deb10u1",
"libdb5.3": "5.3.28+dfsg1-0.5",
"libexpat1": "2.2.6-2+deb10u1",
"libffi6": "3.2.1-9",
"libfontconfig1": "2.13.1-2",
"libfreetype6": "2.9.1-3+deb10u1",
"libgcc1": "1:8.3.0-6",
"libgcrypt20": "1.8.4-5",
"libgmp10": "2:6.1.2+dfsg-4",
"libgnutls30": "3.6.7-4+deb10u5",
"libgomp1": "8.3.0-6",
"libgpg-error0": "1.35-1",
"libgssapi-krb5-2": "1.17-3",
"libhogweed4": "3.4.1-1",
"libicu63": "63.1-6+deb10u1",
"libidn11": "1.33-2.2",
"libidn2-0": "2.0.5-1+deb10u1",
"libjpeg62-turbo": "1:1.5.2-2+b1",
"libk5crypto3": "1.17-3",
"libkeyutils1": "1.6-6",
"libkrb5-3": "1.17-3",
"libkrb5support0": "1.17-3",
"liblcms2-2": "2.9-3",
"libldap-2.4-2": "2.4.47+dfsg-3+deb10u2",
"libldap-common": "2.4.47+dfsg-3+deb10u2",
"liblttng-ust0": "2.10.3-1",
"liblzma5": "5.2.4-1",
"libmpdec2": "2.4.2-2",
"libncursesw6": "6.1+20181013-2+deb10u2",
"libnettle6": "3.4.1-1",
"libnghttp2-14": "1.36.0-2+deb10u1",
"libp11-kit0": "0.23.15-2",
"libpcre3": "2:8.39-12",
"libpng16-16": "1.6.36-6",
"libpsl5": "0.20.2-2",
"libpython2.7-minimal": "2.7.16-2+deb10u1",
"libpython2.7-stdlib": "2.7.16-2+deb10u1",
"libpython3.7-minimal": "3.7.3-2+deb10u2",
"libpython3.7-stdlib": "3.7.3-2+deb10u2",
"libreadline7": "7.0-5",
"librtmp1": "2.4+20151223.gitfa8646d.1-2",
"libsasl2-2": "2.1.27+dfsg-1+deb10u1",
"libsasl2-modules-db": "2.1.27+dfsg-1+deb10u1",
"libselinux1": "2.8-1+b1",
"libsqlite3-0": "3.27.2-3",
"libssh2-1": "1.8.0-2.1",
"libssl1.1": "1.1.1d-0+deb10u3",
"libstdc++6": "8.3.0-6",
"libtasn1-6": "4.13-3",
"libtinfo6": "6.1+20181013-2+deb10u2",
"libunistring2": "0.9.10-1",
"libuuid1": "2.33.1-0.1",
"mime-support": "3.62",
"netbase": "5.6",
"openjdk-11-jdk-headless": "11.0.8+10-1~deb10u1",
"openjdk-11-jre-headless": "11.0.8+10-1~deb10u1",
"openssl": "1.1.1d-0+deb10u3",
"python2.7-minimal": "2.7.16-2+deb10u1",
"python3-distutils": "3.7.3-1",
"python3.7-minimal": "3.7.3-2+deb10u2",
"readline-common": "7.0-5",
"tzdata": "2020a-0+deb10u1",
"zlib1g": "1:1.2.11.dfsg-1"
}
79 changes: 79 additions & 0 deletions package_bundle_ppc64le_debian9.versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{
"base-files": "9.9+deb9u13",
"ca-certificates": "20200601~deb9u1",
"curl": "7.52.1-5+deb9u10",
"dash": "0.5.8-2.4",
"fontconfig-config": "2.11.0-6.7",
"fonts-dejavu-core": "2.37-1",
"libacl1": "2.2.52-3+b1",
"libattr1": "1:2.4.47-2+b2",
"libbz2-1.0": "1.0.6-8.1",
"libc-bin": "2.24-11+deb9u4",
"libc6": "2.24-11+deb9u4",
"libcomerr2": "1.44.5-1~bpo9+1",
"libcurl3": "7.52.1-5+deb9u10",
"libdb5.3": "5.3.28-12+deb9u1",
"libexpat1": "2.2.0-2+deb9u3",
"libffi6": "3.2.1-6",
"libfontconfig1": "2.11.0-6.7+b1",
"libfreetype6": "2.6.3-3.2+deb9u1",
"libgcc1": "1:6.3.0-18+deb9u1",
"libgcrypt20": "1.7.6-2+deb9u3",
"libgmp10": "2:6.1.2+dfsg-1",
"libgnutls30": "3.5.8-5+deb9u5",
"libgomp1": "6.3.0-18+deb9u1",
"libgpg-error0": "1.35-1~bpo9+1",
"libgssapi-krb5-2": "1.15-1+deb9u1",
"libhogweed4": "3.3-1+b2",
"libicu57": "57.1-6+deb9u4",
"libidn11": "1.33-1+deb9u1",
"libidn2-0": "2.0.5-1~bpo9+1",
"libjpeg62-turbo": "1:1.5.1-2",
"libk5crypto3": "1.15-1+deb9u1",
"libkeyutils1": "1.5.9-9",
"libkrb5-3": "1.15-1+deb9u1",
"libkrb5support0": "1.15-1+deb9u1",
"liblcms2-2": "2.8-4+deb9u1",
"libldap-2.4-2": "2.4.47+dfsg-3+deb10u2~bpo9+1",
"libldap-common": "2.4.47+dfsg-3+deb10u2~bpo9+1",
"liblttng-ust0": "2.9.0-2+deb9u1",
"liblzma5": "5.2.2-1.2+b1",
"libmpdec2": "2.4.2-1",
"libncursesw5": "6.0+20161126-1+deb9u2",
"libnettle6": "3.3-1+b2",
"libnghttp2-14": "1.18.1-1+deb9u1",
"libp11-kit0": "0.23.3-2",
"libpcre3": "2:8.39-3",
"libpng16-16": "1.6.28-1+deb9u1",
"libpsl5": "0.17.0-3",
"libpython2.7-minimal": "2.7.13-2+deb9u3",
"libpython2.7-stdlib": "2.7.13-2+deb9u3",
"libpython3.5-minimal": "3.5.3-1+deb9u1",
"libpython3.5-stdlib": "3.5.3-1+deb9u1",
"libreadline7": "7.0-3",
"librtmp1": "2.4+20151223.gitfa8646d.1-1+b1",
"libsasl2-2": "2.1.27~101-g0780600+dfsg-3+deb9u1",
"libsasl2-modules-db": "2.1.27~101-g0780600+dfsg-3+deb9u1",
"libselinux1": "2.6-3+b3",
"libsqlite3-0": "3.27.2-3~bpo9+1",
"libssh2-1": "1.7.0-1+deb9u1",
"libssl1.0.2": "1.0.2u-1~deb9u1",
"libssl1.1": "1.1.0l-1~deb9u1",
"libstdc++6": "6.3.0-18+deb9u1",
"libtasn1-6": "4.10-1.1+deb9u1",
"libtinfo5": "6.0+20161126-1+deb9u2",
"libunistring0": "0.9.6+really0.9.3-0.1",
"libuuid1": "2.29.2-1+deb9u1",
"mime-support": "3.60",
"netbase": "5.4",
"openjdk-11-jdk-headless": "11.0.6+10-1~bpo9+1",
"openjdk-11-jre-headless": "11.0.6+10-1~bpo9+1",
"openjdk-8-jdk-headless": "8u252-b09-1~deb9u1",
"openjdk-8-jre-headless": "8u252-b09-1~deb9u1",
"openssl": "1.1.0l-1~deb9u1",
"python2.7-minimal": "2.7.13-2+deb9u3",
"python3.5-minimal": "3.5.3-1+deb9u1",
"readline-common": "7.0-3",
"tzdata": "2020a-0+deb9u1",
"zlib1g": "1:1.2.8.dfsg-5"
}
Loading