From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E8CF042B83 for ; Tue, 23 May 2023 19:04:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E525F42D33; Tue, 23 May 2023 19:04:46 +0200 (CEST) Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by mails.dpdk.org (Postfix) with ESMTP id 786B04014F for ; Tue, 23 May 2023 19:04:45 +0200 (CEST) Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-3f41b73104eso37493031cf.3 for ; Tue, 23 May 2023 10:04:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1684861485; x=1687453485; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ss/i8w9/GX4SrCgJ5oz3ksyPwBm+v3SdHD/AvZN5AjM=; b=h8kZEyBzU4cftKAQ9R2XCfQeqR3/fmHRmiGZhqPKIFyaLmdCpJKWVg32+4LyLsi1Wa jUbPeqZ0l6Qg0Ee/JPCIGiix/Fc6umTYkU/VrtzvbEDclj0OzPLzn7x41GCkubLnzxfj RgrCK8aQYehxBDbtadx+7sBmfe7ZCdGYHZ2Pw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684861485; x=1687453485; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ss/i8w9/GX4SrCgJ5oz3ksyPwBm+v3SdHD/AvZN5AjM=; b=DOtGXcndUjd9jhRaiuYuqetAJoVhIABeUFGDqRsGDlYyWHPN/xc0OHf9PLiTYp3xJ/ flrgWloCWt8UJSWtBF3pNqNkqINn/9OCFdXeMIZyDwSzluk8uLFi94BghdJzr83h1ACA WovyEUHOet1x6aN8mqncbjEvmkohlYu4dpv5IsdXyrbnNtY6o+GSJL4StU7u6CsUYaV+ Yf7W0Nm7P42yqDPVSBhuwLicswzdenGnBPHcErf4D71S4WE87M4SDYqyCy8yFvvwExj8 saRpdwH2GeaefoduCJms918ttSVT7/P8tsJPJ4STGXN+Z3vmBJdTdlO7b6y1FdLJAUwJ X8cg== X-Gm-Message-State: AC+VfDyQCePMaICcKiaDinMtgaczIf28m0UjkFgYM4cfZU11pnJ9XgsE OR3//6qz19N6jkMlSn5Z/KDPDGeIiP6LDa6aelbgj+Tkx5uA2sjcdhw/5FIByxrCZwq/+t2RmsV FlQDgOcNKjLV1ZPdtR+BnN9yh0c4Tt9SgcAwHAAD22QyANq9LgYLvBuIhq9JGUw== X-Google-Smtp-Source: ACHHUZ7KPNfgND4HWvAL9eKpJKuu2QeKUiUyDZ6s9N19xcXUEw2IstD35IswD8CSGsGw4szjkn8JAw== X-Received: by 2002:ac8:5f0c:0:b0:3f5:38c2:4dff with SMTP id x12-20020ac85f0c000000b003f538c24dffmr22611059qta.49.1684861483477; Tue, 23 May 2023 10:04:43 -0700 (PDT) Received: from ahassick-Desktop.iol.unh.edu ([2606:4100:3880:1220:7704:829d:adaa:3294]) by smtp.gmail.com with ESMTPSA id g14-20020ac8774e000000b003e38c9a2a22sm2996553qtu.92.2023.05.23.10.04.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 10:04:43 -0700 (PDT) From: Adam Hassick To: ci@dpdk.org Cc: Adam Hassick , aconole@redhat.com, alialnu@nvidia.com Subject: [PATCH v5 09/11] containers/templates: Update templates Date: Tue, 23 May 2023 13:04:11 -0400 Message-Id: <20230523170413.812922-10-ahassick@iol.unh.edu> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230523170413.812922-1-ahassick@iol.unh.edu> References: <20230523170413.812922-1-ahassick@iol.unh.edu> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: ci@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK CI discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ci-bounces@dpdk.org * Add OCI manifest support * Add Docker multi-stage support * Add Coverity Scan container template * Add ARM ipsec container for cryptodev testing Various template updates for added features and use of new arguments. A check was added to distinguish between which ABI version is to be generated as a binary reference or an XML reference. Signed-off-by: Adam Hassick --- .../templates/containers.makefile.j2 | 62 ++++++++++++--- .../templates/containers/alpine.dockerfile.j2 | 33 -------- .../templates/containers/base.dockerfile.j2 | 78 ++++++++++++++----- .../containers/debian11.dockerfile.j2 | 2 +- .../debian11_arm_ipsec.dockerfile.j2 | 16 ++++ .../containers/fedora_clang.dockerfile.j2 | 7 ++ .../containers/fedora_coverity.dockerfile.j2 | 10 +++ .../templates/containers/rhel.dockerfile.j2 | 8 +- .../templates/containers/rhel7.dockerfile.j2 | 8 +- .../templates/containers/rhel8.dockerfile.j2 | 10 +-- .../templates/containers/rhel9.dockerfile.j2 | 12 +-- .../containers/ubuntu22.04.dockerfile.j2 | 6 +- .../containers/ubuntu_cross.dockerfile.j2 | 3 +- .../containers/ubuntu_sve.dockerfile.j2 | 2 + 14 files changed, 162 insertions(+), 95 deletions(-) create mode 100644 containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2 create mode 100644 containers/template_engine/templates/containers/fedora_clang.dockerfile.j2 create mode 100644 containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2 diff --git a/containers/template_engine/templates/containers.makefile.j2 b/containers/template_engine/templates/containers.makefile.j2 index fb71044..900bfc8 100644 --- a/containers/template_engine/templates/containers.makefile.j2 +++ b/containers/template_engine/templates/containers.makefile.j2 @@ -10,22 +10,64 @@ DPDK_CI_CONTAINERS_REGISTRY_HOSTNAME?={{ registry_hostname }} .PHONY: build_all build_all:{% for container in dockerfiles.targets %} build_{{ container.name }}{% endfor %} -.PHONY: push_all -push_all:{% for container in dockerfiles.targets %} push_{{ container.name }}{% endfor %} +.PHONY: push_image_all +push_image_all:{% for container in dockerfiles.targets %} push_image_{{ container.name }}{% endfor %} + +.PHONY: push_manifest_all +push_manifest_all: +{%- if is_builder %} + echo "Disabled: Builder mode was enabled." +{%- else -%} + {% for container in dockerfiles.targets %} push_manifest_{{ container.name }}{% endfor %} +{%- endif %} + +{%- macro push_indx(container, is_docker) %} + {%- for tag in container.tags -%} + {%- set formatted_tag = tag | replace('$R', registry_hostname) | replace('$T', timestamp) | replace('$N', container.name) | replace(':', '\\:') -%} + {%- set trunk_tag = formatted_tag.split('/')[1] -%} + {%- if is_docker -%} + {%- set ref_tag = formatted_tag -%} + {%- set push_xargs = '' -%} + {%- else -%} + {%- set ref_tag = trunk_tag -%} + {%- set push_xargs = ' docker\://%s' | format(formatted_tag) -%} + {%- endif -%} + $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) manifest rm {{ ref_tag }} || echo "Image {{ ref_tag }} did not exist initially." + $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) manifest create {{ ref_tag }} + {%- for platform in container.platforms -%} + {%- set plat_tag = "%s/%s\:image-%s-%s" | format(registry_hostname, container.name, platform.replace('/', ''), timestamp) %} \ + {{ plat_tag -}} {% endfor %} + $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) manifest push $(DPDK_CI_CONTAINERS_EXTRA_PUSH_ARGS) {{ ref_tag }} {{- push_xargs }} + {% endfor -%} +{% endmacro %} {% for container in dockerfiles.targets %} #################### START {{ container.name }} ##################### {% set container_id = container.name %} .PHONY: build_{{ container_id }} + build_{{ container_id }}: - {% set base_tag = "%s/%s\:latest" | format(registry_hostname, container_id) -%} - $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) build --target {{container.name}} --platform {{ container.platforms | join(',') }} {% for tag in container.tags -%}-t {{ tag | replace('$R', registry_hostname) | replace('$T', timestamp) | replace('$N', container.name) | replace(':', '\\:') }} {% endfor %} -f {{ container_id }}.dockerfile $(CURDIR) - -.PHONY: push_{{ container_id }} -push_{{ container_id }}: build_{{ container_id }} - {%- set base_tag = "%s/%s\:latest" | format(registry_hostname, container_id) -%} - {%- for tag in container.tags %} - $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) push $(DPDK_CI_CONTAINERS_EXTRA_PUSH_ARGS) {{ base_tag }} docker\://{{ tag | replace('$R', registry_hostname) | replace('$T', timestamp) | replace('$N', container.name) | replace(':', '\\:') }} + {%- for platform in container.platforms -%} + {%- set plat_tag = "%s/%s\:image-%s-%s" | format(registry_hostname, container_id, platform.replace('/', ''), timestamp) %} + $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) build --target {{container.name}} --platform {{ platform }} \ + -t {{ plat_tag }} -f {{ container_id }}.dockerfile $(CURDIR) {%- endfor %} + +.PHONY: push_image_{{ container_id }} +push_image_{{ container_id }}: build_{{ container_id }} + {%- for platform in container.platforms -%} + {%- set plat_tag = "%s/%s\:image-%s-%s" | format(registry_hostname, container_id, platform.replace('/', ''), timestamp) %} + $(DPDK_CI_CONTAINER_BUILDER_PROGRAM) push $(DPDK_CI_CONTAINERS_EXTRA_PUSH_ARGS) {{ plat_tag }} {%- endfor %} +{% if not is_builder %} +.PHONY: push_manifest_{{ container_id }} +push_manifest_{{ container_id }}: +{%- if host_arch_only and not is_builder %} push_image_{{ container_id }}{% endif %} +ifeq ($(DPDK_CI_CONTAINER_BUILDER_PROGRAM), docker) + {{ push_indx(container, true) }} +else + {{ push_indx(container, false) }} +endif +{% endif %} + #################### END {{ container.name }} ##################### {% endfor %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/alpine.dockerfile.j2 b/containers/template_engine/templates/containers/alpine.dockerfile.j2 index ab21bed..b258d64 100644 --- a/containers/template_engine/templates/containers/alpine.dockerfile.j2 +++ b/containers/template_engine/templates/containers/alpine.dockerfile.j2 @@ -2,36 +2,3 @@ {#- Copyright (c) 2022 University of New Hampshire -#} {% extends 'containers/base.dockerfile.j2' %} -{% block pip_installs %} -RUN python3 -m pip install ninja pyelftools -{% endblock %} - -{% block install_libabigail %} -{% if build_libabigail %} -COPY libabigail /libabigail -# libabigail2.0 does not build on alpine, this commit does with the modification done in the next step. -RUN --mount=type=cache,target=/ccache cd libabigail && git checkout df28c220976f41620b0bd7b22000815e11f66b75 && sed -i 's/fts-standalone/libfts/g' ./configure.ac && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && (make all install -j $(nproc) || echo 'failure expected') && (make install || echo 'failure expected') && cd / && rm -rf /libabigail -{% else %} -# libabigail build is disabled -{% endif %} -{% endblock install_libabigail %} - -{% block build_abi %} -{% for abi_version in abi.versions %} - {% if abi_version.major >= 22 %} -{% set abi_version_str = abi_version.git_tag %} -RUN echo '{{ abi_version_str }}' >> abi_versions -RUN mkdir {{ abi_version_str }} -# compile DPDK -RUN --mount=type=cache,target=/ccache \ - mkdir -p /dpdk/build && rm -rf /dpdk/build && cd /dpdk && git fetch --tags && git checkout tags/{{ abi_version_str }} && cd /references && \ - meson /dpdk /dpdk/build {% if "cross_file" in target -%} - --cross-file=/dpdk/{{ target.cross_file }} - {%- endif %} -Dexamples=all --buildtype=debugoptimized && DESTDIR={{ abi_folder }} ninja -C /dpdk/build install && \ - bash /dpdk/devtools/gen-abi.sh {{ abi_folder }} && mv {{ abi_folder }}/usr/local/include {{ abi_folder }} && \ - rm -rf {{ abi_folder }}/usr && rm -rf /dpdk/build - {% endif %} -{% endfor %} -RUN chmod -R 777 . -RUN rm -rf /dpdk -{% endblock build_abi %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/base.dockerfile.j2 b/containers/template_engine/templates/containers/base.dockerfile.j2 index 5ffeeb1..576ddb2 100644 --- a/containers/template_engine/templates/containers/base.dockerfile.j2 +++ b/containers/template_engine/templates/containers/base.dockerfile.j2 @@ -2,10 +2,18 @@ {#- Copyright (c) 2022 University of New Hampshire -#} # ------------------------ Begin {{ target.name }} ------------------------------------------------ -FROM {{ target.base_image }} as {{ target.name }} +{%- set build_base_img = target.name + "_base" %} +FROM {{ target.base_image }} as {% if build_abi and not target.force_disable_abi -%} +{{ build_base_img }} +{%- else -%} +{{ target.name }} +{%- endif %} + +ENV CCACHE_DIR=/ccache/ +ENV CCACHE_COMPILERCHECK=content +ENV CCACHE_NAMESPACE="{{ target.name }}-{{ build_timestamp }}" +ENV BUILD_TIMESTAMP="{{ build_timestamp }}" -ENV CCACHE_DIR=/ccache -RUN mkdir /ccache {% block extra_env_vars -%}{%- endblock extra_env_vars %} {% block pre_package_manager -%}{%- endblock pre_package_manager %} @@ -21,9 +29,10 @@ RUN {{ target.package_manager_command }} {{ target.packages | join(" ") }} # install libabigail {% block install_libabigail %} -{% if build_libabigail %} +{% if build_libabigail and build_abi and (not "force_disable_abi" in target or not target.force_disable_abi) %} COPY libabigail /libabigail -RUN --mount=type=cache,target=/ccache cd /libabigail && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && make all install && \ +RUN --mount=type=cache,target=/ccache,z cd /libabigail +{%- if "libabigail_revision" in target %} && git checkout {{ target.libabigail_revision }} {%- endif %} && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && make all install && \ ldconfig && cd / && rm -rf /libabigail {% else %} # libabigail build is disabled @@ -36,14 +45,15 @@ RUN --mount=type=cache,target=/ccache cd /libabigail && mkdir build && autorecon # Copy externally pulled DPDK into the container RUN mkdir /dpdk - -COPY dpdk /dpdk +COPY dpdk-stable /dpdk-stable # Install meson {% block install_meson %} # Install meson from dpdk main # Writes to the mount are discarded once the container is built and is not shared with other containers or the host -RUN --mount=type=cache,target=/ccache cd /dpdk && chown -R root /dpdk && git checkout main && sh .ci/linux-setup.sh +COPY dpdk /dpdk +RUN --mount=type=cache,target=/ccache,z cd /dpdk && chown -R root /dpdk && git checkout main && sh .ci/linux-setup.sh +RUN rm -rf /dpdk {% endblock install_meson %} ENV RTE_KERNELDIR CHANGE_ME @@ -52,25 +62,47 @@ RUN mkdir /references WORKDIR /references RUN touch abi_versions # build the abi -{% if build_abi %} +{% if build_abi and not target.force_disable_abi %} {% block build_abi %} - {% for abi_version in abi.versions %} - {%- set abi_version_str = abi_version.git_tag -%} + {% for version in abi.versions %} + {%- set abi_version_str = (version.abi_version.major|string) + "." + (version.abi_version.minor|string) -%} + {%- set abi_stage_name = target.name + "_" + abi_version_str -%} {%- set abi_folder = "/references/" + abi_version_str + "_reference" %} + {%- set meets_version_requirements = "minimum_dpdk_version" in target and version.dpdk_version.major >= target.minimum_dpdk_version.major and version.dpdk_version.minor >= target.minimum_dpdk_version.minor and version.dpdk_version.revision >= target.minimum_dpdk_version.revision -%} + {% if meets_version_requirements %} + +FROM {{ build_base_img }} AS {{ abi_stage_name }} RUN echo '{{ abi_version_str }}' >> abi_versions RUN mkdir -p {{ abi_folder }} # compile DPDK -RUN --mount=type=cache,target=/ccache \ - mkdir -p /dpdk/build && rm -rf /dpdk/build && cd /dpdk && git clean -xfd && git fetch --tags && git checkout tags/{{ abi_version_str }} && cd /references && \ - meson /dpdk /dpdk/build {% if "cross_file" in target -%} - --cross-file=/dpdk/{{ target.cross_file }} - {%- endif %} -Dexamples=all --buildtype=debugoptimized && DESTDIR={{ abi_folder }} ninja -C /dpdk/build install && \ - bash /dpdk/devtools/gen-abi.sh {{ abi_folder }} && mv {{ abi_folder }}/usr/local/include {{ abi_folder }} && \ - rm -rf {{ abi_folder }}/usr && rm -rf /dpdk/build +RUN --mount=type=cache,target=/ccache,z \ + mkdir -p /dpdk-stable/build && rm -rf /dpdk-stable/build && cd /dpdk-stable && git clean -xfd && git fetch --tags && git checkout {{ version.dpdk_version.git_tag }} && cd /references && \ + meson /dpdk-stable /dpdk-stable/build {% if "cross_file" in target -%} + --cross-file=/dpdk-stable/{{ target.cross_file }} + {%- endif %} -Dexamples=all --buildtype=debugoptimized && DESTDIR={{ abi_folder }} ninja {% if ninja_workers -%} + -j {{ ninja_workers }} {% endif -%} -C /dpdk-stable/build install && \ + {%- if (abi_version_str == '22.0' or abi_version_str == '23.10') %} + bash /dpdk-stable/devtools/gen-abi.sh {{ abi_folder }} && mv {{ abi_folder }}/usr/local/include {{ abi_folder }} && \ + rm -rf {{ abi_folder }}/usr + {%- else %} + find {{ abi_folder }}/usr/local -name '*.a' -delete && rm -rf {{ abi_folder }}/usr/local/bin && rm -rf {{ abi_folder }}/usr/local/share + {%- endif %} && rm -rf /dpdk-stable/build + {% endif %} {% endfor %} -RUN rm -rf /dpdk -RUN chmod -R 777 . + +FROM {{ build_base_img }} AS {{ target.name }} + {% for version in abi.versions %} + {%- set abi_version_str = (version.abi_version.major|string) + "." + (version.abi_version.minor|string) -%} + {%- set abi_stage_name = target.name + "_" + abi_version_str -%} + {%- set abi_folder = "/references/" + abi_version_str + "_reference" %} + {%- set meets_version_requirements = "minimum_dpdk_version" in target and version.dpdk_version.major >= target.minimum_dpdk_version.major and version.dpdk_version.minor >= target.minimum_dpdk_version.minor and version.dpdk_version.revision >= target.minimum_dpdk_version.revision -%} + {% if meets_version_requirements %} +RUN mkdir -p {{ abi_folder }} +COPY --from={{ abi_stage_name }} {{ abi_folder }} {{ abi_folder }} + {%- endif %} + {%- endfor %} {% endblock build_abi %} +RUN chmod -R 777 . {% else %} {% endif %} @@ -79,7 +111,11 @@ RUN chmod -R 777 . RUN echo '{{ target.extra_information | tojson }}' > /container_info.json {% endif %} -COPY ./scripts /scripts WORKDIR / + +{% block copy_extras -%} +COPY scripts scripts +{%- endblock copy_extras %} + # ------------------------ End {{ target.name }} ------------------------------------------------ diff --git a/containers/template_engine/templates/containers/debian11.dockerfile.j2 b/containers/template_engine/templates/containers/debian11.dockerfile.j2 index 0fd8a68..c52f866 100644 --- a/containers/template_engine/templates/containers/debian11.dockerfile.j2 +++ b/containers/template_engine/templates/containers/debian11.dockerfile.j2 @@ -1,3 +1,3 @@ {#- SPDX-License-Identifier: BSD-3-Clause -#} {#- Copyright (c) 2022 University of New Hampshire -#} -{% extends 'containers/debian.dockerfile.j2' %} +{% extends 'containers/debian.dockerfile.j2' %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2 b/containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2 new file mode 100644 index 0000000..ccef9cb --- /dev/null +++ b/containers/template_engine/templates/containers/debian11_arm_ipsec.dockerfile.j2 @@ -0,0 +1,16 @@ +{#- SPDX-License-Identifier: BSD-3-Clause -#} +{#- Copyright (c) 2022 University of New Hampshire -#} +{% extends 'containers/debian11.dockerfile.j2' %} + +{% block before_meson_after_pip %} +WORKDIR /opt + +# I would use ADD on a git repo, but the support for this was added so recently it doesn't run on my machine. +RUN git clone --depth 1 --branch SECLIB-IPSEC-2022.05.25 https://git.gitlab.arm.com/arm-reference-solutions/ipsec-mb.git + +WORKDIR /opt/ipsec-mb +RUN make -j $(nproc) && make install + +WORKDIR / + +{% endblock before_meson_after_pip %} diff --git a/containers/template_engine/templates/containers/fedora_clang.dockerfile.j2 b/containers/template_engine/templates/containers/fedora_clang.dockerfile.j2 new file mode 100644 index 0000000..bc104ba --- /dev/null +++ b/containers/template_engine/templates/containers/fedora_clang.dockerfile.j2 @@ -0,0 +1,7 @@ +{#- SPDX-License-Identifier: BSD-3-Clause -#} +{#- Copyright (c) 2022 University of New Hampshire -#} +{% extends 'containers/fedora.dockerfile.j2' %} + +{% block extra_env_vars -%} +ENV CC=clang +{%- endblock extra_env_vars %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2 b/containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2 new file mode 100644 index 0000000..f17eb7a --- /dev/null +++ b/containers/template_engine/templates/containers/fedora_coverity.dockerfile.j2 @@ -0,0 +1,10 @@ +{#- SPDX-License-Identifier: BSD-3-Clause -#} +{#- Copyright (c) 2023 University of New Hampshire -#} +{% extends 'containers/fedora.dockerfile.j2' %} + +{% block copy_extras -%} +COPY scripts scripts +COPY coverity coverity + +ENTRYPOINT /scripts/coverity.sh +{%- endblock copy_extras %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/rhel.dockerfile.j2 b/containers/template_engine/templates/containers/rhel.dockerfile.j2 index a350e84..b50b2e9 100644 --- a/containers/template_engine/templates/containers/rhel.dockerfile.j2 +++ b/containers/template_engine/templates/containers/rhel.dockerfile.j2 @@ -8,5 +8,9 @@ RUN python3 -m pip install pyelftools {% block before_meson_after_pip %} -RUN yum --disableplugin=subscription-manager clean all -{% endblock %} \ No newline at end of file +RUN yum clean all +{% endblock %} + +{% block install_libabigail %} +{# Install via package manager #} +{% endblock install_libabigail %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/rhel7.dockerfile.j2 b/containers/template_engine/templates/containers/rhel7.dockerfile.j2 index ccfc0ec..7045b99 100644 --- a/containers/template_engine/templates/containers/rhel7.dockerfile.j2 +++ b/containers/template_engine/templates/containers/rhel7.dockerfile.j2 @@ -9,11 +9,7 @@ RUN yum repolist RUN sed -i '/\[rhel-7-server-extras-rpms\]/,/^ *\[/ s/enabled\ =\ 0/enabled\ =\ 1/' /etc/yum.repos.d/redhat.repo \ && sed -i '/\[rhel-7-server-optional-rpms\]/,/^ *\[/ s/enabled\ =\ 0/enabled\ =\ 1/' /etc/yum.repos.d/redhat.repo RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -RUN yum --disableplugin=subscription-manager update -y +RUN yum update -y RUN yum groupinstall -y 'Development Tools' -{% endblock %} - -{% block install_libabigail %} -{# Install via package manager #} -{% endblock install_libabigail %} \ No newline at end of file +{% endblock %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/rhel8.dockerfile.j2 b/containers/template_engine/templates/containers/rhel8.dockerfile.j2 index dcaffc9..2824bfd 100644 --- a/containers/template_engine/templates/containers/rhel8.dockerfile.j2 +++ b/containers/template_engine/templates/containers/rhel8.dockerfile.j2 @@ -5,15 +5,11 @@ {% block pre_package_manager %} # repolist is needed to refresh the RHEL repos from the host this is being built on RUN yum repolist -RUN yum --disableplugin=subscription-manager update -y -RUN yum --disableplugin=subscription-manager config-manager --set-enable codeready-builder-for-rhel-8-$(uname -i)-rpms +RUN yum update -y +RUN yum config-manager --set-enable codeready-builder-for-rhel-8-$(uname -i)-rpms # Required to install ccache RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && yum upgrade -y RUN yum groupinstall -y 'Development Tools' -{% endblock %} - -{% block install_libabigail %} -{# Install via package manager #} -{% endblock install_libabigail %} \ No newline at end of file +{% endblock %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/rhel9.dockerfile.j2 b/containers/template_engine/templates/containers/rhel9.dockerfile.j2 index 8f0eccc..695f573 100644 --- a/containers/template_engine/templates/containers/rhel9.dockerfile.j2 +++ b/containers/template_engine/templates/containers/rhel9.dockerfile.j2 @@ -5,8 +5,8 @@ {% block pre_package_manager %} # repolist is needed to refresh the RHEL repos from the host this is being built on RUN yum repolist -RUN yum --disableplugin=subscription-manager config-manager --set-enable codeready-builder-for-rhel-9-$(uname -i)-rpms -RUN yum --disableplugin=subscription-manager update -y +RUN yum config-manager --set-enable codeready-builder-for-rhel-9-$(uname -i)-rpms +RUN yum update -y # Required to install ccache RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && yum upgrade -y @@ -16,10 +16,4 @@ RUN yum groupinstall -y 'Development Tools' {% block pip_installs %} RUN python3 -m pip install pyelftools ninja -{% endblock %} - -{% block install_libabigail %} -COPY libabigail libabigail -RUN cd libabigail && mkdir build && autoreconf -i && cd build && ../configure --prefix=/usr/local && make all install && \ - ldconfig && cd .. && rm -rf libabigail -{% endblock install_libabigail %} \ No newline at end of file +{% endblock %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2 b/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2 index 7a8b971..ba22471 100644 --- a/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2 +++ b/containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2 @@ -1,7 +1,3 @@ {#- SPDX-License-Identifier: BSD-3-Clause -#} {#- Copyright (c) 2022 University of New Hampshire -#} -{% extends 'containers/ubuntu.dockerfile.j2' %} - -{% block install_libabigail %} -# installed by package manager -{% endblock install_libabigail %} \ No newline at end of file +{% extends 'containers/ubuntu.dockerfile.j2' %} \ No newline at end of file diff --git a/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2 b/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2 index 236efbc..fbdd6dc 100644 --- a/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2 +++ b/containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2 @@ -8,4 +8,5 @@ RUN ln -s $(which ccache) /usr/local/bin/aarch64-linux-gnu-gcc && \ # aarch32 -> ccache ln -s $(which ccache) /usr/local/bin/arm-linux-gnueabihf-gcc -{% endblock cross_compilation_setup %} \ No newline at end of file +{% endblock cross_compilation_setup %} + diff --git a/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2 b/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2 index 3c3e471..5e940bf 100644 --- a/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2 +++ b/containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2 @@ -7,4 +7,6 @@ RUN ln -s $(which ccache) /usr/local/bin/gcc-10 {% block build_abi %} # ABI is disabled for this container + +FROM {{ build_base_img }} AS {{ target.name }} {% endblock build_abi %} \ No newline at end of file -- 2.34.1