<div dir="ltr"><div dir="ltr">On Mon, Oct 24, 2022 at 1:43 PM <<a href="mailto:ohilyard@iol.unh.edu">ohilyard@iol.unh.edu</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Owen Hilyard <<a href="mailto:ohilyard@iol.unh.edu" target="_blank">ohilyard@iol.unh.edu</a>><br>
<br>
This patch series contains a new version of the DPDK CI containers. The old<br>
version was tied very tightly to the Community Lab Infrastructure, so it was<br>
not suitable for general use. This version is designed to make adding new<br>
OSes or OS versions as easy as possible. The minimum functionality can easily<br>
be built on any system that can compile DPDK. It includes support for<br>
building containers for other non-native architectures (ex: arm containers<br>
on x86) and for baking ABI references into the images.<br>
<br>
The inventory file as added in this patch series defines what the community lab<br>
currently supports.<br>
<br>
If you want to build these yourself, don't try to do parallel Makefile builds<br>
on non-server hardware. Libabigail is built into the containers, and since it<br>
is not avaliable in all distros it is compiled from source for many targets.<br>
If embedding the abi is enabled (DPDK_CI_CONTAINERS_BUILD_ABI=Y), with the<br>
current settings, DPDK will be compiled twice for every target in the<br>
inventory file. This will become three times when DPDK main has ABI stability<br>
again. Due to how the containers are constructed, building on non-native<br>
architectures is especially expensive because DPDK is compiled with an emulated<br>
compiler in a qemu vm that only has one thread.<br>
<br>
Owen Hilyard (6):<br>
containers/docs: Add container builder start<br>
containers/inventory: Add inventory for container builder<br>
containers/builder: Dockerfile creation script<br>
containers/templates: Templates for Dockerfiles<br>
containers/container_builder: Container for python scripts<br>
containers/Makefile: Makefile to automate builds<br>
<br>
containers/Makefile | 166 ++++++++<br>
containers/README.md | 138 +++++++<br>
containers/container_builder.dockerfile | 26 ++<br>
containers/template_engine/inventory.yaml | 356 ++++++++++++++++++<br>
.../template_engine/inventory_schema.json | 153 ++++++++<br>
containers/template_engine/make_dockerfile.py | 240 ++++++++++++<br>
containers/template_engine/poetry.lock | 220 +++++++++++<br>
containers/template_engine/pyproject.toml | 21 ++<br>
.../templates/containers.makefile.j2 | 31 ++<br>
.../templates/containers/alpine.dockerfile.j2 | 37 ++<br>
.../templates/containers/arch.dockerfile.j2 | 37 ++<br>
.../templates/containers/base.dockerfile.j2 | 85 +++++<br>
.../containers/centos8.dockerfile.j2 | 21 ++<br>
.../containers/centos9.dockerfile.j2 | 17 +<br>
.../templates/containers/debian.dockerfile.j2 | 7 +<br>
.../containers/debian10.dockerfile.j2 | 3 +<br>
.../containers/debian11.dockerfile.j2 | 3 +<br>
.../containers/debian_bullseye.dockerfile.j2 | 3 +<br>
.../containers/debian_buster.dockerfile.j2 | 3 +<br>
.../templates/containers/fedora.dockerfile.j2 | 11 +<br>
.../containers/fedora36_clang.dockerfile.j2 | 7 +<br>
.../containers/opensuse.dockerfile.j2 | 10 +<br>
.../containers/redhat_family.dockerfile.j2 | 5 +<br>
.../templates/containers/rhel.dockerfile.j2 | 12 +<br>
.../templates/containers/rhel7.dockerfile.j2 | 19 +<br>
.../templates/containers/rhel8.dockerfile.j2 | 19 +<br>
.../templates/containers/rhel9.dockerfile.j2 | 25 ++<br>
.../templates/containers/rpm.dockerfile.j2 | 3 +<br>
.../templates/containers/ubuntu.dockerfile.j2 | 3 +<br>
.../containers/ubuntu20.04.dockerfile.j2 | 12 +<br>
.../containers/ubuntu22.04.dockerfile.j2 | 7 +<br>
.../containers/ubuntu_cross.dockerfile.j2 | 11 +<br>
.../containers/ubuntu_sve.dockerfile.j2 | 10 +<br>
33 files changed, 1721 insertions(+)<br>
create mode 100644 containers/Makefile<br>
create mode 100644 containers/README.md<br>
create mode 100644 containers/container_builder.dockerfile<br>
create mode 100644 containers/template_engine/inventory.yaml<br>
create mode 100644 containers/template_engine/inventory_schema.json<br>
create mode 100755 containers/template_engine/make_dockerfile.py<br>
create mode 100644 containers/template_engine/poetry.lock<br>
create mode 100644 containers/template_engine/pyproject.toml<br>
create mode 100644 containers/template_engine/templates/containers.makefile.j2<br>
create mode 100644 containers/template_engine/templates/containers/alpine.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/arch.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/base.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/centos8.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/centos9.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/debian.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/debian10.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/debian11.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/debian_bullseye.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/debian_buster.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/fedora.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/fedora36_clang.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/opensuse.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/redhat_family.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/rhel.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/rhel7.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/rhel8.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/rhel9.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/rpm.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/ubuntu.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/ubuntu20.04.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/ubuntu22.04.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/ubuntu_cross.dockerfile.j2<br>
create mode 100644 containers/template_engine/templates/containers/ubuntu_sve.dockerfile.j2<br>
<br>
-- <br>
2.34.1<br></blockquote><div><br>Ali, since I've made some functional modifications I would appreciate a retest. It should be the same as before, except that by default libabigail will not be built from source if DPDK_CI_CONTAINERS_BUILD_ABI=N.<br><br>Owen</div></div></div>