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

Merge srw-containers into main #12

Open
wants to merge 45 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
cbd60e5
Switched /bin/sh to bash and added gdb to install
mark-a-potts Mar 24, 2022
f7c6f2c
Intel oneapi-based container with hpc-stack
mark-a-potts Mar 24, 2022
4554783
Updated gnu for srw release
mark-a-potts Jun 28, 2022
8696e72
local changes
mark-a-potts Jul 28, 2022
ae462a5
Working series of Dockerfiles for ubuntu20.04 with intel/impi, spack-…
mark-a-potts Jul 28, 2022
bb5b746
Added readme and removed obsolete recipes
mark-a-potts Jul 28, 2022
f88309e
added in srw scripts
mark-a-potts Jul 28, 2022
a2d9c01
Updated scripts to match container
mark-a-potts Jul 29, 2022
a35fa11
Updates with paths
mark-a-potts Aug 11, 2022
2b637d8
updated stage to fix rgn_ issue
mark-a-potts Aug 11, 2022
1a2dee7
fixes
mark-a-potts Aug 12, 2022
68c0aad
Testing out .github build and push
mark-a-potts Aug 18, 2022
d364a50
enable github actions
mark-a-potts Aug 18, 2022
afe1503
enable github actions
mark-a-potts Aug 18, 2022
5d6f71f
added input files
mark-a-potts Aug 18, 2022
55aa632
updated recipe
mark-a-potts Aug 18, 2022
42f996e
updated recipe
mark-a-potts Aug 18, 2022
4c55247
Removed yml and updated recipe again
mark-a-potts Aug 18, 2022
1ad9b46
Another fix.
mark-a-potts Aug 18, 2022
8826998
fix
mark-a-potts Aug 18, 2022
2ff7d6d
another fix
mark-a-potts Aug 18, 2022
d59f39c
another fix
mark-a-potts Aug 18, 2022
5207855
another fix
mark-a-potts Aug 18, 2022
89a1538
Working locally
mark-a-potts Aug 22, 2022
1574600
changed to latest tag
mark-a-potts Aug 22, 2022
f60cba6
changed locenvs to work with docker
mark-a-potts Aug 22, 2022
81f4f4a
updated to get right FI_PROVIDER_PATH
mark-a-potts Aug 23, 2022
caae4cb
changed to release/public-v2 version of srw
mark-a-potts Aug 23, 2022
60ebe86
updated stage and template files
mark-a-potts Aug 24, 2022
98f61bf
Revised set of dockerfiles for building a base intel/spack container,…
mark-a-potts Sep 13, 2022
a34b47b
Updated dockerfile with arguments and added test def file
mark-a-potts Sep 13, 2022
8d32507
Removed references to regional_workflow in stage script
mark-a-potts Sep 19, 2022
11077d3
build script
mark-a-potts Sep 20, 2022
e408feb
Updated with build script
mark-a-potts Sep 20, 2022
eea6e2f
removed old def file
mark-a-potts Sep 21, 2022
d19e8ad
added more environment variables to final image
mark-a-potts Sep 23, 2022
6199deb
Updated to work with python/yaml configurations
mark-a-potts Oct 5, 2022
4814975
Updated with spec files and better build scripts
mark-a-potts Nov 9, 2022
46d26fa
fixes for build script
mark-a-potts Nov 18, 2022
6c406c5
reorganizing for merge to main
mark-a-potts Nov 21, 2022
cf5ce6e
moved srw-centric files to srw directory
mark-a-potts Nov 21, 2022
6e05369
removed extra stages
mark-a-potts Nov 21, 2022
49d10c1
Merge branch 'main' into feature/srw-containers
mark-a-potts Nov 21, 2022
cc82611
More clean up and updated README
mark-a-potts Nov 21, 2022
da3cf25
Merge branch 'main' into feature/srw-containers
mark-a-potts Nov 21, 2022
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
58 changes: 38 additions & 20 deletions .github/workflows/build-push-containers._yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ name: Build and Push Images (Docker)
on:
# run it on push to the default repository branch
push:
branches: [main]
branches: [feature/oneapi]
# run it during pull request
pull_request:

Expand All @@ -27,42 +27,60 @@ jobs:
- name: Login to DockerHub Registry
run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin

- name: docker build tag noaaepic/ubuntu20.04-hpc-stack
- name: docker build tag noaaepic/ubuntu20.04-base
run: |
echo ${{ steps.abc.outputs.all }}
for file in ${{ steps.abc.outputs.all }}; do
if [[ $file == *"ubuntu20.04-gnu9.3-hpc-stack.docker"* ]]; then
echo "docker build tag noaaepic/ubuntu20.04-hpc-stack"
docker build -t noaaepic/ubuntu20.04-hpc-stack:0.1 -f ./docker/ubuntu20.04-gnu9.3-hpc-stack.docker .
if [[ $file == *"Dockerfile.ubuntu20.04-base"* ]]; then
echo "docker build tag noaaepic/ubuntu20.04-base"
docker build -t noaaepic/ubuntu20.04-base:1.0 -f ./Docker/Dockerfile.ubuntu20.04-base .
fi
done
- name: docker push tag noaaepic/ubuntu20.04-hpc-stack
- name: docker push tag noaaepic/ubuntu20.04-base
run: |
echo ${{ steps.abc.outputs.all }}
for file in ${{ steps.abc.outputs.all }}; do
if [[ $file == *"ubuntu20.04-gnu9.3-hpc-stack.docker"* ]]; then
echo "docker push tag noaaepic/ubuntu20.04-hpc-stack:0.1"
docker push noaaepic/ubuntu20.04-hpc-stack:0.1
if [[ $file == *"Dockerfile.ubuntu20.04-base"* ]]; then
echo "docker push tag noaaepic/ubuntu20.04-base:1.0"
docker push noaaepic/ubuntu20.04-base:1.0
fi
done
- name: docker build tag noaaepic/ubuntu20.04-epic-srwapp
- name: docker build tag noaaepic/ubuntu20.04-spack
run: |
echo ${{ steps.abc.outputs.all }}
for file in ${{ steps.abc.outputs.all }}; do
if [[ $file == *"Dockerfile.ubuntu20.04-spack"* ]]; then
echo "docker build tag noaaepic/ubuntu20.04-spack"
docker build -t noaaepic/ubuntu20.04-spack:1.0 -f ./Docker/Dockerfile.ubuntu20.04-spack .
fi
done
- name: docker push tag noaaepic/ubuntu20.04-spack
run: |
echo ${{ steps.abc.outputs.all }}
for file in ${{ steps.abc.outputs.all }}; do
if [[ $file == *"ubuntu20.04-ufs-srwapp.docker"* ]]; then
echo "docker build tag noaaepic/ubuntu20.04-epic-srwapp"
docker build -t noaaepic/ubuntu20.04-epic-srwapp:1.0 -f ./docker/ubuntu20.04-ufs-srwapp.docker .
fi
if [[ $file == *"Dockerfile.ubuntu20.04-spack"* ]]; then
echo "docker push tag noaaepic/ubuntu20.04-spack:1.0"
docker push noaaepic/ubuntu20.04-spack:1.0
fi
done
- name: docker push tag noaaepic/ubuntu20.04-epic-srwapp
- name: docker build tag noaaepic/ubuntu20.04-intel22-ufs-srwapp
run: |
echo ${{ steps.abc.outputs.all }}
for file in ${{ steps.abc.outputs.all }}; do
if [[ $file == *"Dockerfile.ubuntu20.04-intel22-ufs-srwapp"* ]]; then
echo "docker build tag noaaepic/ubuntu20.04-intel22-ufs-srwapp"
docker build -t noaaepic/ubuntu20.04-intel22-ufs-srwapp:1.0 -f ./Docker/Dockerfile.ubuntu20.04-intel22-ufs-srwapp .
fi
done
- name: docker push tag noaaepic/ubuntu20.04-intel22-ufs-srwapp
run: |
echo ${{ steps.abc.outputs.all }}
for file in ${{ steps.abc.outputs.all }}; do
if [[ $file == *"ubuntu20.04-ufs-srwapp.docker"* ]]; then
echo "docker push tag noaaepic/ubuntu20.04-epic-srwapp:1.0"
docker push noaaepic/ubuntu20.04-epic-srwapp:1.0
fi
done
if [[ $file == *"Dockerfile.ubuntu20.04-intel22-ufs-srwapp"* ]]; then
echo "docker push tag noaaepic/ubuntu20.04-intel22-ufs-srwapp:1.0"
docker push noaaepic/ubuntu20.04-intel22-ufs-srwapp:1.0
fi
done

- name: docker logout
run: |
Expand Down
14 changes: 0 additions & 14 deletions Docker/Dockerfile.ubuntu20.04-gnu9.3-hpc-stack

This file was deleted.

36 changes: 0 additions & 36 deletions Docker/Dockerfile.ubuntu20.04-gnu9.3-ufs-srwapp

This file was deleted.

111 changes: 111 additions & 0 deletions Docker/Dockerfile.ubuntu20.04-hpc-intel
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Copyright (c) 2020-2021 Intel Corporation.
# SPDX-License-Identifier: BSD-3-Clause
FROM ubuntu:20.04 as build

RUN mkdir -p /opt/build && mkdir -p /opt/dist
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates curl && \
rm -rf /var/lib/apt/lists/*

# install cmake
RUN cd /opt/build && \
curl -LO https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1-linux-x86_64.sh && \
mkdir -p /opt/dist//usr/local && \
/bin/bash cmake-3.22.1-linux-x86_64.sh --prefix=/opt/dist//usr/local --skip-license




# cleanup
RUN rm -rf /opt/dist/usr/local/include && \
rm -rf /opt/dist/usr/local/lib/pkgconfig && \
find /opt/dist -name "*.a" -exec rm -f {} \; || echo ""
RUN rm -rf /opt/dist/usr/local/share/doc
RUN rm -rf /opt/dist/usr/local/share/man

FROM ubuntu:20.04
COPY third-party-programs.txt /
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
curl ca-certificates gpg-agent software-properties-common && \
rm -rf /var/lib/apt/lists/*
# repository to install Intel(R) oneAPI Libraries
RUN curl -fsSL https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB | apt-key add -
RUN echo "deb [trusted=yes] https://apt.repos.intel.com/oneapi all main " > /etc/apt/sources.list.d/oneAPI.list
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
curl ca-certificates gpg-agent software-properties-common && \
rm -rf /var/lib/apt/lists/*
# repository to install Intel(R) GPU drivers
RUN curl -fsSL https://repositories.intel.com/graphics/intel-graphics.key | apt-key add -
RUN echo "deb [trusted=yes arch=amd64] https://repositories.intel.com/graphics/ubuntu bionic main" > /etc/apt/sources.list.d/intel-graphics.list
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates build-essential pkg-config gnupg libarchive13 intel-basekit-getting-started intel-oneapi-advisor intel-oneapi-ccl-devel intel-oneapi-common-licensing intel-oneapi-common-vars intel-oneapi-compiler-dpcpp-cpp intel-oneapi-dal-devel intel-oneapi-dev-utilities intel-oneapi-dnnl-devel intel-oneapi-dpcpp-debugger intel-oneapi-ipp-devel intel-oneapi-ippcp-devel intel-oneapi-libdpstd-devel intel-oneapi-mkl-devel intel-oneapi-onevpl-devel intel-oneapi-python intel-oneapi-tbb-devel intel-oneapi-vtune intel-opencl intel-level-zero-gpu level-zero level-zero-devel openssh-server openssh-client intel-hpckit-getting-started intel-oneapi-clck intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-fortran intel-oneapi-inspector intel-oneapi-itac intel-oneapi-mpi-devel && \
rm -rf /var/lib/apt/lists/*

COPY --from=build /opt/dist /

ENV LANG=C.UTF-8

ENV ACL_BOARD_VENDOR_PATH='/opt/Intel/OpenCLFPGA/oneAPI/Boards'
ENV ADVISOR_2022_DIR='/opt/intel/oneapi/advisor/2022.0.0'
ENV APM='/opt/intel/oneapi/advisor/2022.0.0/perfmodels'
ENV CCL_CONFIGURATION='cpu_gpu_dpcpp'
ENV CCL_ROOT='/opt/intel/oneapi/ccl/2021.5.1'
ENV CLASSPATH='/opt/intel/oneapi/mpi/2021.5.1//lib/mpi.jar:/opt/intel/oneapi/dal/2021.5.3/lib/onedal.jar'
ENV CLCK_ROOT='/opt/intel/oneapi/clck/2021.5.0'
ENV CMAKE_PREFIX_PATH='/opt/intel/oneapi/vpl/2022.0.0:/opt/intel/oneapi/tbb/2021.5.1/env/..:/opt/intel/oneapi/dal/2021.5.3:/opt/intel/oneapi/compiler/2022.0.2/linux/IntelDPCPP'
ENV CMPLR_ROOT='/opt/intel/oneapi/compiler/2022.0.2'
ENV CONDA_DEFAULT_ENV='intelpython-python3.9'
ENV CONDA_EXE='/opt/intel/oneapi/intelpython/latest/bin/conda'
ENV CONDA_PREFIX='/opt/intel/oneapi/intelpython/latest'
ENV CONDA_PROMPT_MODIFIER='(intelpython-python3.9) '
ENV CONDA_PYTHON_EXE='/opt/intel/oneapi/intelpython/latest/bin/python'
ENV CONDA_SHLVL='1'
ENV CPATH='/opt/intel/oneapi/vpl/2022.0.0/include:/opt/intel/oneapi/tbb/2021.5.1/env/../include:/opt/intel/oneapi/mpi/2021.5.1//include:/opt/intel/oneapi/mkl/2022.0.2/include:/opt/intel/oneapi/ippcp/2021.5.1/include:/opt/intel/oneapi/ipp/2021.5.2/include:/opt/intel/oneapi/dpl/2021.6.0/linux/include:/opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/lib:/opt/intel/oneapi/dev-utilities/2021.5.2/include:/opt/intel/oneapi/dal/2021.5.3/include:/opt/intel/oneapi/ccl/2021.5.1/include/cpu_gpu_dpcpp'
ENV CPLUS_INCLUDE_PATH='/opt/intel/oneapi/clck/2021.5.0/include'
ENV DAALROOT='/opt/intel/oneapi/dal/2021.5.3'
ENV DALROOT='/opt/intel/oneapi/dal/2021.5.3'
ENV DAL_MAJOR_BINARY='1'
ENV DAL_MINOR_BINARY='1'
ENV DNNLROOT='/opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp'
ENV DPL_ROOT='/opt/intel/oneapi/dpl/2021.6.0'
ENV FI_PROVIDER_PATH='/opt/intel/oneapi/mpi/2021.5.1//libfabric/lib/prov:/usr/lib64/libfabric'
ENV FPGA_VARS_ARGS=''
ENV FPGA_VARS_DIR='/opt/intel/oneapi/compiler/2022.0.2/linux/lib/oclfpga'
ENV GDB_INFO='/opt/intel/oneapi/debugger/2021.5.0/documentation/info/'
ENV INFOPATH='/opt/intel/oneapi/debugger/2021.5.0/gdb/intel64/lib'
ENV INSPECTOR_2022_DIR='/opt/intel/oneapi/inspector/2022.0.0'
ENV INTELFPGAOCLSDKROOT='/opt/intel/oneapi/compiler/2022.0.2/linux/lib/oclfpga'
ENV INTEL_LICENSE_FILE='/opt/intel/licenses:/root/intel/licenses:/opt/intel/oneapi/clck/2021.5.0/licensing:/opt/intel/licenses:/root/intel/licenses:/Users/Shared/Library/Application Support/Intel/Licenses'
ENV INTEL_PYTHONHOME='/opt/intel/oneapi/debugger/2021.5.0/dep'
ENV IPPCP_TARGET_ARCH='intel64'
ENV IPPCRYPTOROOT='/opt/intel/oneapi/ippcp/2021.5.1'
ENV IPPROOT='/opt/intel/oneapi/ipp/2021.5.2'
ENV IPP_TARGET_ARCH='intel64'
ENV I_MPI_ROOT='/opt/intel/oneapi/mpi/2021.5.1'
ENV LD_LIBRARY_PATH='/opt/intel/oneapi/vpl/2022.0.0/lib:/opt/intel/oneapi/tbb/2021.5.1/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/mpi/2021.5.1//libfabric/lib:/opt/intel/oneapi/mpi/2021.5.1//lib/release:/opt/intel/oneapi/mpi/2021.5.1//lib:/opt/intel/oneapi/mkl/2022.0.2/lib/intel64:/opt/intel/oneapi/itac/2021.5.0/slib:/opt/intel/oneapi/ippcp/2021.5.1/lib/intel64:/opt/intel/oneapi/ipp/2021.5.2/lib/intel64:/opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/lib:/opt/intel/oneapi/debugger/2021.5.0/gdb/intel64/lib:/opt/intel/oneapi/debugger/2021.5.0/libipt/intel64/lib:/opt/intel/oneapi/debugger/2021.5.0/dep/lib:/opt/intel/oneapi/dal/2021.5.3/lib/intel64:/opt/intel/oneapi/compiler/2022.0.2/linux/lib:/opt/intel/oneapi/compiler/2022.0.2/linux/lib/x64:/opt/intel/oneapi/compiler/2022.0.2/linux/lib/oclfpga/host/linux64/lib:/opt/intel/oneapi/compiler/2022.0.2/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/ccl/2021.5.1/lib/cpu_gpu_dpcpp'
ENV LIBRARY_PATH='/opt/intel/oneapi/vpl/2022.0.0/lib:/opt/intel/oneapi/tbb/2021.5.1/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/mpi/2021.5.1//libfabric/lib:/opt/intel/oneapi/mpi/2021.5.1//lib/release:/opt/intel/oneapi/mpi/2021.5.1//lib:/opt/intel/oneapi/mkl/2022.0.2/lib/intel64:/opt/intel/oneapi/ippcp/2021.5.1/lib/intel64:/opt/intel/oneapi/ipp/2021.5.2/lib/intel64:/opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/lib:/opt/intel/oneapi/dal/2021.5.3/lib/intel64:/opt/intel/oneapi/compiler/2022.0.2/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/compiler/2022.0.2/linux/lib:/opt/intel/oneapi/clck/2021.5.0/lib/intel64:/opt/intel/oneapi/ccl/2021.5.1/lib/cpu_gpu_dpcpp'
ENV MANPATH='/opt/intel/oneapi/mpi/2021.5.1/man:/opt/intel/oneapi/itac/2021.5.0/man:/opt/intel/oneapi/debugger/2021.5.0/documentation/man:/opt/intel/oneapi/compiler/2022.0.2/documentation/en/man/common:/opt/intel/oneapi/clck/2021.5.0/man::'
ENV MKLROOT='/opt/intel/oneapi/mkl/2022.0.2'
ENV NLSPATH='/opt/intel/oneapi/mkl/2022.0.2/lib/intel64/locale/%l_%t/%N:/opt/intel/oneapi/compiler/2022.0.2/linux/compiler/lib/intel64_lin/locale/%l_%t/%N'
ENV OCL_ICD_FILENAMES='libintelocl_emu.so:libalteracl.so:/opt/intel/oneapi/compiler/2022.0.2/linux/lib/x64/libintelocl.so'
ENV ONEAPI_ROOT='/opt/intel/oneapi'
ENV PATH='/opt/intel/oneapi/vtune/2022.1.0/bin64:/opt/intel/oneapi/vpl/2022.0.0/bin:/opt/intel/oneapi/mpi/2021.5.1//libfabric/bin:/opt/intel/oneapi/mpi/2021.5.1//bin:/opt/intel/oneapi/mkl/2022.0.2/bin/intel64:/opt/intel/oneapi/itac/2021.5.0/bin:/opt/intel/oneapi/intelpython/latest/bin:/opt/intel/oneapi/intelpython/latest/condabin:/opt/intel/oneapi/inspector/2022.0.0/bin64:/opt/intel/oneapi/dev-utilities/2021.5.2/bin:/opt/intel/oneapi/debugger/2021.5.0/gdb/intel64/bin:/opt/intel/oneapi/compiler/2022.0.2/linux/lib/oclfpga/bin:/opt/intel/oneapi/compiler/2022.0.2/linux/bin/intel64:/opt/intel/oneapi/compiler/2022.0.2/linux/bin:/opt/intel/oneapi/clck/2021.5.0/bin/intel64:/opt/intel/oneapi/advisor/2022.0.0/bin64:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
ENV PKG_CONFIG_PATH='/opt/intel/oneapi/vtune/2022.1.0/include/pkgconfig/lib64:/opt/intel/oneapi/vpl/2022.0.0/lib/pkgconfig:/opt/intel/oneapi/tbb/2021.5.1/env/../lib/pkgconfig:/opt/intel/oneapi/mpi/2021.5.1/lib/pkgconfig:/opt/intel/oneapi/mkl/2022.0.2/lib/pkgconfig:/opt/intel/oneapi/ippcp/2021.5.1/lib/pkgconfig:/opt/intel/oneapi/inspector/2022.0.0/include/pkgconfig/lib64:/opt/intel/oneapi/dpl/2021.6.0/lib/pkgconfig:/opt/intel/oneapi/dnnl/2022.0.2/cpu_dpcpp_gpu_dpcpp/../lib/pkgconfig:/opt/intel/oneapi/dal/2021.5.3/lib/pkgconfig:/opt/intel/oneapi/compiler/2022.0.2/lib/pkgconfig:/opt/intel/oneapi/ccl/2021.5.1/lib/pkgconfig:/opt/intel/oneapi/advisor/2022.0.0/include/pkgconfig/lib64:'
ENV PYTHONPATH='/opt/intel/oneapi/advisor/2022.0.0/pythonapi'
ENV SETVARS_COMPLETED='1'
ENV TBBROOT='/opt/intel/oneapi/tbb/2021.5.1/env/..'
ENV VTUNE_PROFILER_2022_DIR='/opt/intel/oneapi/vtune/2022.1.0'
ENV VT_ADD_LIBS='-ldwarf -lelf -lvtunwind -lm -lpthread'
ENV VT_LIB_DIR='/opt/intel/oneapi/itac/2021.5.0/lib'
ENV VT_MPI='impi4'
ENV VT_ROOT='/opt/intel/oneapi/itac/2021.5.0'
ENV VT_SLIB_DIR='/opt/intel/oneapi/itac/2021.5.0/slib'
ENV _CE_CONDA=''
ENV _CE_M=''
RUN echo "dash dash/sh boolean false" | debconf-set-selections
RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

Loading