From d6eb07724750dbf06d825b6bff999d121905be2b Mon Sep 17 00:00:00 2001 From: Gautham B A Date: Sun, 19 Sep 2021 00:21:33 +0530 Subject: [PATCH] HADOOP-17902. Fix Hadoop build on Debian 10 (#3408) --- dev-support/docker/Dockerfile_debian_10 | 14 +++---- .../pkg-resolver/install-pkg-resolver.sh | 39 +++++++++++++++++++ dev-support/docker/pkg-resolver/packages.json | 10 +++-- 3 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 dev-support/docker/pkg-resolver/install-pkg-resolver.sh diff --git a/dev-support/docker/Dockerfile_debian_10 b/dev-support/docker/Dockerfile_debian_10 index 9601c3f355..256f0d5786 100644 --- a/dev-support/docker/Dockerfile_debian_10 +++ b/dev-support/docker/Dockerfile_debian_10 @@ -29,11 +29,6 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN echo APT::Install-Recommends "0"\; > /etc/apt/apt.conf.d/10disableextras RUN echo APT::Install-Suggests "0"\; >> /etc/apt/apt.conf.d/10disableextras -##### -# For installing the latest packages -##### -RUN echo 'deb http://deb.debian.org/debian testing main' >> /etc/apt/sources.list - ENV DEBIAN_FRONTEND noninteractive ENV DEBCONF_TERSE true @@ -41,16 +36,18 @@ ENV DEBCONF_TERSE true # Platform package dependency resolver ###### COPY pkg-resolver pkg-resolver -RUN chmod a+x pkg-resolver/*.sh pkg-resolver/*.py \ - && chmod a+r pkg-resolver/*.json +RUN chmod a+x pkg-resolver/install-pkg-resolver.sh +RUN pkg-resolver/install-pkg-resolver.sh debian:10 ###### # Install packages from apt ###### # hadolint ignore=DL3008,SC2046 RUN apt-get -q update \ - && apt-get -q install -y --no-install-recommends python3 \ && apt-get -q install -y --no-install-recommends $(pkg-resolver/resolve.py debian:10) \ + && echo 'deb http://deb.debian.org/debian bullseye main' >> /etc/apt/sources.list \ + && apt-get -q update \ + && apt-get -q install -y --no-install-recommends -t bullseye $(pkg-resolver/resolve.py --release=bullseye debian:10) \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* @@ -85,7 +82,6 @@ ENV HADOOP_SKIP_YETUS_VERIFICATION true #### # Install packages #### -RUN pkg-resolver/install-common-pkgs.sh RUN pkg-resolver/install-spotbugs.sh debian:10 RUN pkg-resolver/install-boost.sh debian:10 RUN pkg-resolver/install-protobuf.sh debian:10 diff --git a/dev-support/docker/pkg-resolver/install-pkg-resolver.sh b/dev-support/docker/pkg-resolver/install-pkg-resolver.sh new file mode 100644 index 0000000000..70e94b3792 --- /dev/null +++ b/dev-support/docker/pkg-resolver/install-pkg-resolver.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + +if [ $# -lt 1 ]; then + echo "ERROR: No platform specified, please specify one" + exit 1 +fi + +chmod a+x pkg-resolver/*.sh pkg-resolver/*.py +chmod a+r pkg-resolver/*.json + +if [ "$1" == "debian:10" ]; then + apt-get -q update + apt-get -q install -y --no-install-recommends python3 \ + python3-pip \ + python3-pkg-resources \ + python3-setuptools \ + python3-wheel + pip3 install pylint==2.6.0 python-dateutil==2.8.1 +else + # Need to add the code for the rest of the platforms - HADOOP-17920 + echo "ERROR: The given platform $1 is not yet supported or is invalid" + exit 1 +fi diff --git a/dev-support/docker/pkg-resolver/packages.json b/dev-support/docker/pkg-resolver/packages.json index f84196fa70..afe8a7a32b 100644 --- a/dev-support/docker/pkg-resolver/packages.json +++ b/dev-support/docker/pkg-resolver/packages.json @@ -122,10 +122,12 @@ ] }, "gcc": { - "debian:10": [ - "gcc", - "g++" - ], + "debian:10": { + "bullseye": [ + "gcc", + "g++" + ] + }, "ubuntu:focal": [ "gcc", "g++"