DPDK CI discussions
 help / color / mirror / Atom feed
From: Adam Hassick <ahassick@iol.unh.edu>
To: ci@dpdk.org
Cc: Adam Hassick <ahassick@iol.unh.edu>,
	aconole@redhat.com, alialnu@nvidia.com
Subject: [PATCH v5 09/11] containers/templates: Update templates
Date: Tue, 23 May 2023 13:04:11 -0400	[thread overview]
Message-ID: <20230523170413.812922-10-ahassick@iol.unh.edu> (raw)
In-Reply-To: <20230523170413.812922-1-ahassick@iol.unh.edu>

 * 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 <ahassick@iol.unh.edu>
---
 .../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


  parent reply	other threads:[~2023-05-23 17:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-23 17:04 [PATCH v5 00/11] Community Lab Containers and Builder Engine Adam Hassick
2023-05-23 17:04 ` [PATCH v5 01/11] containers/docs: Add container builder start Adam Hassick
2023-05-25 13:48   ` Aaron Conole
2023-05-23 17:04 ` [PATCH v5 02/11] containers/inventory: Add inventory for container builder Adam Hassick
2023-05-23 17:04 ` [PATCH v5 03/11] containers/builder: Dockerfile creation script Adam Hassick
2023-05-23 17:04 ` [PATCH v5 04/11] containers/templates: Templates for Dockerfiles Adam Hassick
2023-05-23 17:04 ` [PATCH v5 05/11] containers/container_builder: Container for python scripts Adam Hassick
2023-05-23 17:04 ` [PATCH v5 06/11] containers/Makefile: Makefile to automate builds Adam Hassick
2023-05-23 17:04 ` [PATCH v5 07/11] containers/inventory: Add ABI rev and coverity attribute Adam Hassick
2023-05-23 17:04 ` [PATCH v5 08/11] containers/builder: Add arguments to templating script Adam Hassick
2023-05-23 17:04 ` Adam Hassick [this message]
2023-05-23 17:04 ` [PATCH v5 10/11] containers/Makefile: Add new variables and target changes Adam Hassick
2023-05-23 17:04 ` [PATCH v5 11/11] containers/docs: Update README Adam Hassick
2023-05-25 13:45   ` Aaron Conole
2023-06-05 20:09     ` Adam Hassick

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230523170413.812922-10-ahassick@iol.unh.edu \
    --to=ahassick@iol.unh.edu \
    --cc=aconole@redhat.com \
    --cc=alialnu@nvidia.com \
    --cc=ci@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).